Full Code of dscyrescotti/ShuffleIt for AI

main e0e70737c1f3 cached
2691 files
14.1 MB
3.9M tokens
1269 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (15,508K chars total). Download the full file to get everything.
Repository: dscyrescotti/ShuffleIt
Branch: main
Commit: e0e70737c1f3
Files: 2691
Total size: 14.1 MB

Directory structure:
gitextract_czsyd4_6/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.md
│   │   └── feature-request.md
│   └── workflows/
│       └── swift.yml
├── .gitignore
├── Demo/
│   ├── Demo/
│   │   ├── App/
│   │   │   ├── DemoApp.swift
│   │   │   └── MainView.swift
│   │   ├── Components/
│   │   │   ├── LandmarkCard.swift
│   │   │   ├── SneakerCard.swift
│   │   │   └── SneakerItemRow.swift
│   │   ├── Demos/
│   │   │   ├── CarouselStack/
│   │   │   │   └── Scenes/
│   │   │   │       └── CarouselStackDemoView.swift
│   │   │   ├── ShuffleDeck/
│   │   │   │   └── Scenes/
│   │   │   │       └── ShuffleDeckDemoView.swift
│   │   │   └── ShuffleStack/
│   │   │       └── Scenes/
│   │   │           ├── ShuffleStackDemoView.swift
│   │   │           └── TimingShuffleStackDemoView.swift
│   │   ├── Extensions/
│   │   │   └── Color+Extension.swift
│   │   ├── Models/
│   │   │   ├── Landmark.swift
│   │   │   └── Sneaker.swift
│   │   ├── Resources/
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AccentColor.colorset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── landmarks/
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── christ_the_redeemer.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── eiffel_tower.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── great_wall_of_china.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── merlion_statue.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── niagara_falls.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── petronas_towers.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── shwedagon_pagoda.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── sphinx_statue.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── statue_of_liberty.imageset/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── shuffle-it-logo.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── sneakers/
│   │   │   │       ├── Contents.json
│   │   │   │       ├── air-force-1-mid.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── air-forces/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── air-force1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-force2.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-force3.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-force4.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── air-force5.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── air-jordan-1.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── air-jordans/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── air-jordan1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-jordan2.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── air-jordan3.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── air-trainer-sc-high.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── air-trainers/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── air-trainer1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── air-trainer2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── dunk-high-retro-premium.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── dunk-high-vintage.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── kyrie-infinity.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── kyrie-infiniy/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── kyrie-infinity1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── kyrie-infinity2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── nike-air-presto.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── prestos/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── presto1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── presto2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── retros/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── retro1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── retro2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       └── vintages/
│   │   │   │           ├── Contents.json
│   │   │   │           ├── vintage1.imageset/
│   │   │   │           │   └── Contents.json
│   │   │   │           ├── vintage2.imageset/
│   │   │   │           │   └── Contents.json
│   │   │   │           ├── vintage3.imageset/
│   │   │   │           │   └── Contents.json
│   │   │   │           └── vintage4.imageset/
│   │   │   │               └── Contents.json
│   │   │   ├── Json/
│   │   │   │   ├── Landmarks.json
│   │   │   │   └── Sneakers.json
│   │   │   └── Launch Screen.storyboard
│   │   └── ViewModifier/
│   │       └── DragGestureViewModifier.swift
│   └── Demo.xcodeproj/
│       ├── project.pbxproj
│       └── project.xcworkspace/
│           ├── contents.xcworkspacedata
│           └── xcshareddata/
│               └── IDEWorkspaceChecks.plist
├── LICENSE
├── Package.swift
├── README.md
├── Sources/
│   ├── CarouselStack/
│   │   ├── EnvironmentValues/
│   │   │   ├── CarouselAnimation.swift
│   │   │   ├── CarouselContext.swift
│   │   │   ├── CarouselDisabled.swift
│   │   │   ├── CarouselPadding.swift
│   │   │   ├── CarouselScale.swift
│   │   │   ├── CarouselSpacing.swift
│   │   │   ├── CarouselStyle.swift
│   │   │   ├── CarouselTranslation.swift
│   │   │   └── CarouselTrigger.swift
│   │   ├── Extensions/
│   │   │   └── CarouselStack+View.swift
│   │   └── View/
│   │       ├── CarouselStack+Content.swift
│   │       ├── CarouselStack+Data.swift
│   │       ├── CarouselStack+Gesture.swift
│   │       ├── CarouselStack+Sliding.swift
│   │       └── CarouselStack.swift
│   ├── ShuffleDeck/
│   │   ├── EnvironmentValues/
│   │   │   ├── ShuffleDeckAnimation.swift
│   │   │   ├── ShuffleDeckContext.swift
│   │   │   ├── ShuffleDeckDisabled.swift
│   │   │   ├── ShuffleDeckScale.swift
│   │   │   ├── ShuffleDeckStyle.swift
│   │   │   ├── ShuffleDeckTranslation.swift
│   │   │   └── ShuffleDeckTrigger.swift
│   │   ├── Extensions/
│   │   │   └── ShuffleDeck+View.swift
│   │   └── View/
│   │       ├── ShuffleDeck+Content.swift
│   │       ├── ShuffleDeck+Data.swift
│   │       ├── ShuffleDeck+Gesture.swift
│   │       ├── ShuffleDeck+Shuffling.swift
│   │       └── ShuffleDeck.swift
│   ├── ShuffleIt/
│   │   └── ShuffleIt.docc/
│   │       └── ShuffleIt.md
│   ├── ShuffleStack/
│   │   ├── EnvironmentValues/
│   │   │   ├── ShuffleAnimation.swift
│   │   │   ├── ShuffleContext.swift
│   │   │   ├── ShuffleDiabled.swift
│   │   │   ├── ShuffleOffset.swift
│   │   │   ├── ShufflePadding.swift
│   │   │   ├── ShuffleScale.swift
│   │   │   ├── ShuffleStyle.swift
│   │   │   ├── ShuffleTranslation.swift
│   │   │   └── ShuffleTrigger.swift
│   │   ├── Extensions/
│   │   │   └── ShuffleStack+View.swift
│   │   └── View/
│   │       ├── ShuffleStack+Content.swift
│   │       ├── ShuffleStack+Data.swift
│   │       ├── ShuffleStack+Gesture.swift
│   │       ├── ShuffleStack+Shuffling.swift
│   │       └── ShuffleStack.swift
│   ├── Utils/
│   │   ├── Extensions/
│   │   │   └── RandomAccessCollection+Extension.swift
│   │   └── PreferenceKeys/
│   │       └── SizePreferenceKey.swift
│   └── UtilsForTest/
│       └── Inspection.swift
├── Tests/
│   └── ShuffleItTests/
│       ├── CarouselStack/
│       │   ├── CarouselStackGestureTests.swift
│       │   ├── CarouselStackShufflingTests.swift
│       │   └── CarouselStackTests.swift
│       ├── ShuffleDeck/
│       │   ├── ShuffleDeckGestureTests.swift
│       │   ├── ShuffleDeckSlidingTests.swift
│       │   └── ShuffleDeckTests.swift
│       ├── ShuffleStack/
│       │   ├── ShuffleStackGestureTests.swift
│       │   ├── ShuffleStackShufflingTests.swift
│       │   └── ShuffleStackTests.swift
│       └── Utils/
│           ├── BaseTestCase.swift
│           ├── ColorView.swift
│           └── ValueSpy.swift
├── codecov.yaml
└── docs/
    ├── css/
    │   ├── documentation-topic.3bca6578.css
    │   ├── documentation-topic~topic~tutorials-overview.82acfe22.css
    │   ├── index.12bb178a.css
    │   ├── topic.ee15af52.css
    │   └── tutorials-overview.06e8bcf7.css
    ├── data/
    │   └── documentation/
    │       ├── shuffleit/
    │       │   ├── carouselanimation/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── easein.json
    │       │   │   ├── easeinout.json
    │       │   │   ├── easeout.json
    │       │   │   ├── equatable-implementations.json
    │       │   │   └── linear.json
    │       │   ├── carouselanimation.json
    │       │   ├── carouselcontext/
    │       │   │   ├── direction.json
    │       │   │   ├── index.json
    │       │   │   └── previousindex.json
    │       │   ├── carouselcontext.json
    │       │   ├── carouseldirection/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── left.json
    │       │   │   └── right.json
    │       │   ├── carouseldirection.json
    │       │   ├── carouselstack/
    │       │   │   ├── accentcolor(_:).json
    │       │   │   ├── accessibility(activationpoint:)-4y62.json
    │       │   │   ├── accessibility(activationpoint:)-695kx.json
    │       │   │   ├── accessibility(addtraits:).json
    │       │   │   ├── accessibility(hidden:).json
    │       │   │   ├── accessibility(hint:).json
    │       │   │   ├── accessibility(identifier:).json
    │       │   │   ├── accessibility(inputlabels:).json
    │       │   │   ├── accessibility(label:).json
    │       │   │   ├── accessibility(removetraits:).json
    │       │   │   ├── accessibility(selectionidentifier:).json
    │       │   │   ├── accessibility(sortpriority:).json
    │       │   │   ├── accessibility(value:).json
    │       │   │   ├── accessibilityaction(_:_:).json
    │       │   │   ├── accessibilityaction(action:label:).json
    │       │   │   ├── accessibilityaction(named:_:)-3lqsr.json
    │       │   │   ├── accessibilityaction(named:_:)-69c69.json
    │       │   │   ├── accessibilityaction(named:_:)-rgyh.json
    │       │   │   ├── accessibilityactivationpoint(_:)-5bbv5.json
    │       │   │   ├── accessibilityactivationpoint(_:)-8dokx.json
    │       │   │   ├── accessibilityaddtraits(_:).json
    │       │   │   ├── accessibilityadjustableaction(_:).json
    │       │   │   ├── accessibilitychartdescriptor(_:).json
    │       │   │   ├── accessibilitychildren(children:).json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1586n.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1u9b5.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-3t2kq.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-46frq.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-47g1f.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-5xqqc.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-8rfm7.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-9cou3.json
    │       │   │   ├── accessibilityelement(children:).json
    │       │   │   ├── accessibilityfocused(_:).json
    │       │   │   ├── accessibilityfocused(_:equals:).json
    │       │   │   ├── accessibilityheading(_:).json
    │       │   │   ├── accessibilityhidden(_:).json
    │       │   │   ├── accessibilityhint(_:)-2j7te.json
    │       │   │   ├── accessibilityhint(_:)-37ope.json
    │       │   │   ├── accessibilityhint(_:)-7yi0h.json
    │       │   │   ├── accessibilityidentifier(_:).json
    │       │   │   ├── accessibilityignoresinvertcolors(_:).json
    │       │   │   ├── accessibilityinputlabels(_:)-3feba.json
    │       │   │   ├── accessibilityinputlabels(_:)-3p703.json
    │       │   │   ├── accessibilityinputlabels(_:)-95tn0.json
    │       │   │   ├── accessibilitylabel(_:)-2tohn.json
    │       │   │   ├── accessibilitylabel(_:)-755g2.json
    │       │   │   ├── accessibilitylabel(_:)-8bin6.json
    │       │   │   ├── accessibilitylabeledpair(role:id:in:).json
    │       │   │   ├── accessibilitylinkedgroup(id:in:).json
    │       │   │   ├── accessibilityremovetraits(_:).json
    │       │   │   ├── accessibilityrepresentation(representation:).json
    │       │   │   ├── accessibilityrespondstouserinteraction(_:).json
    │       │   │   ├── accessibilityrotor(_:entries:)-1c2au.json
    │       │   │   ├── accessibilityrotor(_:entries:)-4pacb.json
    │       │   │   ├── accessibilityrotor(_:entries:)-4w7j0.json
    │       │   │   ├── accessibilityrotor(_:entries:)-825mo.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1w44t.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-4vvcg.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-5gz2c.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-utor.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-25t4x.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-3evdd.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-4e9vu.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-59b0s.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-25npe.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-3d2p8.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-4jxor.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-9sgga.json
    │       │   │   ├── accessibilityrotorentry(id:in:).json
    │       │   │   ├── accessibilityscrollaction(_:).json
    │       │   │   ├── accessibilityshowslargecontentviewer().json
    │       │   │   ├── accessibilityshowslargecontentviewer(_:).json
    │       │   │   ├── accessibilitysortpriority(_:).json
    │       │   │   ├── accessibilitytextcontenttype(_:).json
    │       │   │   ├── accessibilityvalue(_:)-5fw6g.json
    │       │   │   ├── accessibilityvalue(_:)-5y8gy.json
    │       │   │   ├── accessibilityvalue(_:)-8ihs6.json
    │       │   │   ├── alert(_:ispresented:actions:)-1q2gb.json
    │       │   │   ├── alert(_:ispresented:actions:)-76wk8.json
    │       │   │   ├── alert(_:ispresented:actions:)-7wghk.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-5s7hn.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-9a4q7.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-f5o2.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-4edmo.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-4uw7u.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-8axxo.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-226oe.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-4tvm3.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7b0gl.json
    │       │   │   ├── alert(ispresented:content:).json
    │       │   │   ├── alert(ispresented:error:actions:).json
    │       │   │   ├── alert(ispresented:error:actions:message:).json
    │       │   │   ├── alert(item:content:).json
    │       │   │   ├── alignmentguide(_:computevalue:)-4r6p.json
    │       │   │   ├── alignmentguide(_:computevalue:)-8e6vc.json
    │       │   │   ├── allowshittesting(_:).json
    │       │   │   ├── allowstightening(_:).json
    │       │   │   ├── anchorpreference(key:value:transform:).json
    │       │   │   ├── animation(_:).json
    │       │   │   ├── animation(_:value:).json
    │       │   │   ├── aspectratio(_:contentmode:)-72t0z.json
    │       │   │   ├── aspectratio(_:contentmode:)-8gir9.json
    │       │   │   ├── background(_:alignment:).json
    │       │   │   ├── background(_:ignoressafeareaedges:).json
    │       │   │   ├── background(_:in:fillstyle:)-4hb5h.json
    │       │   │   ├── background(_:in:fillstyle:)-5xuxn.json
    │       │   │   ├── background(alignment:content:).json
    │       │   │   ├── background(ignoressafeareaedges:).json
    │       │   │   ├── background(in:fillstyle:)-2lcq8.json
    │       │   │   ├── background(in:fillstyle:)-6gtsb.json
    │       │   │   ├── backgroundpreferencevalue(_:_:).json
    │       │   │   ├── badge(_:)-10ceg.json
    │       │   │   ├── badge(_:)-6ah2.json
    │       │   │   ├── badge(_:)-7kz0m.json
    │       │   │   ├── badge(_:)-8lj4d.json
    │       │   │   ├── blendmode(_:).json
    │       │   │   ├── blur(radius:opaque:).json
    │       │   │   ├── body.json
    │       │   │   ├── border(_:width:).json
    │       │   │   ├── brightness(_:).json
    │       │   │   ├── buttonbordershape(_:).json
    │       │   │   ├── buttonstyle(_:)-6awhx.json
    │       │   │   ├── buttonstyle(_:)-8ljh4.json
    │       │   │   ├── carouselanimation(_:).json
    │       │   │   ├── carouseldisabled(_:).json
    │       │   │   ├── carouselpadding(_:).json
    │       │   │   ├── carouselscale(_:).json
    │       │   │   ├── carouselspacing(_:).json
    │       │   │   ├── carouselstyle(_:).json
    │       │   │   ├── carouseltrigger(on:).json
    │       │   │   ├── clipped(antialiased:).json
    │       │   │   ├── clipshape(_:style:).json
    │       │   │   ├── colorinvert().json
    │       │   │   ├── colormultiply(_:).json
    │       │   │   ├── colorscheme(_:).json
    │       │   │   ├── compositinggroup().json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-1uzrt.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-5d29j.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-718e5.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-65zoh.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-951t3.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9yu7k.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1ji6h.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-4fi9z.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-51cln.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-2m470.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-9o8j.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-g5bx.json
    │       │   │   ├── containershape(_:).json
    │       │   │   ├── contentshape(_:_:eofill:).json
    │       │   │   ├── contentshape(_:eofill:).json
    │       │   │   ├── contextmenu(_:).json
    │       │   │   ├── contextmenu(menuitems:).json
    │       │   │   ├── contrast(_:).json
    │       │   │   ├── controlgroupstyle(_:).json
    │       │   │   ├── controlsize(_:).json
    │       │   │   ├── coordinatespace(name:).json
    │       │   │   ├── cornerradius(_:antialiased:).json
    │       │   │   ├── datepickerstyle(_:).json
    │       │   │   ├── defaultappstorage(_:).json
    │       │   │   ├── deletedisabled(_:).json
    │       │   │   ├── disableautocorrection(_:).json
    │       │   │   ├── disabled(_:).json
    │       │   │   ├── drawinggroup(opaque:colormode:).json
    │       │   │   ├── dynamictypesize(_:).json
    │       │   │   ├── edgesignoringsafearea(_:).json
    │       │   │   ├── environment(_:_:).json
    │       │   │   ├── environmentobject(_:).json
    │       │   │   ├── exportsitemproviders(_:onexport:).json
    │       │   │   ├── exportsitemproviders(_:onexport:onedit:).json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-2xo1j.json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-5w70m.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-9dfyf.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-vkdb.json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:).json
    │       │   │   ├── filemover(ispresented:file:oncompletion:).json
    │       │   │   ├── filemover(ispresented:files:oncompletion:).json
    │       │   │   ├── fixedsize().json
    │       │   │   ├── fixedsize(horizontal:vertical:).json
    │       │   │   ├── flipsforrighttoleftlayoutdirection(_:).json
    │       │   │   ├── focusable(_:).json
    │       │   │   ├── focusable(_:onfocuschange:).json
    │       │   │   ├── focused(_:).json
    │       │   │   ├── focused(_:equals:).json
    │       │   │   ├── focusedscenevalue(_:_:).json
    │       │   │   ├── focusedvalue(_:_:).json
    │       │   │   ├── focusscope(_:).json
    │       │   │   ├── font(_:).json
    │       │   │   ├── foregroundcolor(_:).json
    │       │   │   ├── foregroundstyle(_:).json
    │       │   │   ├── foregroundstyle(_:_:).json
    │       │   │   ├── foregroundstyle(_:_:_:).json
    │       │   │   ├── frame().json
    │       │   │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:).json
    │       │   │   ├── frame(width:height:alignment:).json
    │       │   │   ├── gesture(_:including:).json
    │       │   │   ├── grayscale(_:).json
    │       │   │   ├── groupboxstyle(_:).json
    │       │   │   ├── handlesexternalevents(preferring:allowing:).json
    │       │   │   ├── headerprominence(_:).json
    │       │   │   ├── help(_:)-1f2w4.json
    │       │   │   ├── help(_:)-1g6m4.json
    │       │   │   ├── help(_:)-9mw1c.json
    │       │   │   ├── hidden().json
    │       │   │   ├── highprioritygesture(_:including:).json
    │       │   │   ├── horizontalradiogrouplayout().json
    │       │   │   ├── huerotation(_:).json
    │       │   │   ├── id(_:).json
    │       │   │   ├── ignoressafearea(_:edges:).json
    │       │   │   ├── imagescale(_:).json
    │       │   │   ├── importsitemproviders(_:onimport:).json
    │       │   │   ├── init(_:initialindex:content:)-70npt.json
    │       │   │   ├── init(_:initialindex:content:)-7edjn.json
    │       │   │   ├── interactivedismissdisabled(_:).json
    │       │   │   ├── itemprovider(_:).json
    │       │   │   ├── keyboardshortcut(_:)-2vfia.json
    │       │   │   ├── keyboardshortcut(_:)-6bxt2.json
    │       │   │   ├── keyboardshortcut(_:modifiers:).json
    │       │   │   ├── keyboardshortcut(_:modifiers:localization:).json
    │       │   │   ├── labelshidden().json
    │       │   │   ├── labelstyle(_:).json
    │       │   │   ├── layoutpriority(_:).json
    │       │   │   ├── linelimit(_:).json
    │       │   │   ├── linespacing(_:).json
    │       │   │   ├── listitemtint(_:)-9yojl.json
    │       │   │   ├── listitemtint(_:)-w4ry.json
    │       │   │   ├── listrowbackground(_:).json
    │       │   │   ├── listrowinsets(_:).json
    │       │   │   ├── liststyle(_:).json
    │       │   │   ├── luminancetoalpha().json
    │       │   │   ├── mask(_:).json
    │       │   │   ├── mask(alignment:_:).json
    │       │   │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:).json
    │       │   │   ├── menubuttonstyle(_:).json
    │       │   │   ├── menuindicator(_:).json
    │       │   │   ├── menustyle(_:).json
    │       │   │   ├── minimumscalefactor(_:).json
    │       │   │   ├── modifier(_:).json
    │       │   │   ├── monospaceddigit().json
    │       │   │   ├── movedisabled(_:).json
    │       │   │   ├── multilinetextalignment(_:).json
    │       │   │   ├── navigationsubtitle(_:)-10991.json
    │       │   │   ├── navigationsubtitle(_:)-7xq4j.json
    │       │   │   ├── navigationsubtitle(_:)-8lv93.json
    │       │   │   ├── navigationtitle(_:)-544cp.json
    │       │   │   ├── navigationtitle(_:)-5xkgg.json
    │       │   │   ├── navigationtitle(_:)-7209e.json
    │       │   │   ├── navigationtitle(_:)-8mmxy.json
    │       │   │   ├── navigationviewstyle(_:).json
    │       │   │   ├── offset(_:).json
    │       │   │   ├── offset(x:y:).json
    │       │   │   ├── onappear(perform:).json
    │       │   │   ├── oncarousel(_:).json
    │       │   │   ├── oncarouseltranslation(_:).json
    │       │   │   ├── onchange(of:perform:).json
    │       │   │   ├── oncommand(_:perform:).json
    │       │   │   ├── oncontinueuseractivity(_:perform:).json
    │       │   │   ├── oncopycommand(perform:).json
    │       │   │   ├── oncutcommand(perform:).json
    │       │   │   ├── ondeletecommand(perform:).json
    │       │   │   ├── ondisappear(perform:).json
    │       │   │   ├── ondrag(_:).json
    │       │   │   ├── ondrag(_:preview:).json
    │       │   │   ├── ondrop(of:delegate:)-2phlc.json
    │       │   │   ├── ondrop(of:delegate:)-5rv2.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-1ne0m.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-2dbsa.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-3z0u6.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-7mvpm.json
    │       │   │   ├── onexitcommand(perform:).json
    │       │   │   ├── onhover(perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:pressing:perform:).json
    │       │   │   ├── onmovecommand(perform:).json
    │       │   │   ├── onopenurl(perform:).json
    │       │   │   ├── onpastecommand(of:perform:)-27ier.json
    │       │   │   ├── onpastecommand(of:perform:)-2cj5d.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-18sg7.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-1ws2h.json
    │       │   │   ├── onplaypausecommand(perform:).json
    │       │   │   ├── onpreferencechange(_:perform:).json
    │       │   │   ├── onreceive(_:perform:).json
    │       │   │   ├── onshuffle(_:).json
    │       │   │   ├── onshuffledeck(_:).json
    │       │   │   ├── onshuffledecktranslation(_:).json
    │       │   │   ├── onshuffletranslation(_:).json
    │       │   │   ├── onsubmit(of:_:).json
    │       │   │   ├── ontapgesture(count:perform:).json
    │       │   │   ├── opacity(_:).json
    │       │   │   ├── overlay(_:alignment:).json
    │       │   │   ├── overlay(_:ignoressafeareaedges:).json
    │       │   │   ├── overlay(_:in:fillstyle:).json
    │       │   │   ├── overlay(alignment:content:).json
    │       │   │   ├── overlaypreferencevalue(_:_:).json
    │       │   │   ├── padding(_:)-254fg.json
    │       │   │   ├── padding(_:)-h9m6.json
    │       │   │   ├── padding(_:_:).json
    │       │   │   ├── pagecommand(value:in:step:).json
    │       │   │   ├── pickerstyle(_:).json
    │       │   │   ├── popover(ispresented:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── popover(item:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── position(_:).json
    │       │   │   ├── position(x:y:).json
    │       │   │   ├── preference(key:value:).json
    │       │   │   ├── preferredcolorscheme(_:).json
    │       │   │   ├── prefersdefaultfocus(_:in:).json
    │       │   │   ├── presentedwindowstyle(_:).json
    │       │   │   ├── presentedwindowtoolbarstyle(_:).json
    │       │   │   ├── previewcontext(_:).json
    │       │   │   ├── previewdevice(_:).json
    │       │   │   ├── previewdisplayname(_:).json
    │       │   │   ├── previewinterfaceorientation(_:).json
    │       │   │   ├── previewlayout(_:).json
    │       │   │   ├── privacysensitive(_:).json
    │       │   │   ├── progressviewstyle(_:).json
    │       │   │   ├── projectioneffect(_:).json
    │       │   │   ├── redacted(reason:).json
    │       │   │   ├── refreshable(action:).json
    │       │   │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:).json
    │       │   │   ├── rotationeffect(_:anchor:).json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-5p4xh.json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-8nq8e.json
    │       │   │   ├── saturation(_:).json
    │       │   │   ├── scaledtofill().json
    │       │   │   ├── scaledtofit().json
    │       │   │   ├── scaleeffect(_:anchor:)-7oq71.json
    │       │   │   ├── scaleeffect(_:anchor:)-9chpl.json
    │       │   │   ├── scaleeffect(x:y:anchor:).json
    │       │   │   ├── scenepadding(_:).json
    │       │   │   ├── searchable(text:placement:prompt:)-31g2u.json
    │       │   │   ├── searchable(text:placement:prompt:)-5dpdp.json
    │       │   │   ├── searchable(text:placement:prompt:)-9859.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-2uz54.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-7bvn6.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-8bmqj.json
    │       │   │   ├── searchcompletion(_:).json
    │       │   │   ├── shadow(color:radius:x:y:).json
    │       │   │   ├── sheet(ispresented:ondismiss:content:).json
    │       │   │   ├── sheet(item:ondismiss:content:).json
    │       │   │   ├── shuffleanimation(_:).json
    │       │   │   ├── shuffledeckanimation(_:).json
    │       │   │   ├── shuffledeckdisabled(_:).json
    │       │   │   ├── shuffledeckscale(_:).json
    │       │   │   ├── shuffledeckstyle(_:).json
    │       │   │   ├── shuffledecktrigger(on:).json
    │       │   │   ├── shuffledisabled(_:).json
    │       │   │   ├── shuffleoffset(_:).json
    │       │   │   ├── shufflepadding(_:).json
    │       │   │   ├── shufflescale(_:).json
    │       │   │   ├── shufflestyle(_:).json
    │       │   │   ├── shuffletrigger(on:).json
    │       │   │   ├── simultaneousgesture(_:including:).json
    │       │   │   ├── speechadjustedpitch(_:).json
    │       │   │   ├── speechalwaysincludespunctuation(_:).json
    │       │   │   ├── speechannouncementsqueued(_:).json
    │       │   │   ├── speechspellsoutcharacters(_:).json
    │       │   │   ├── submitlabel(_:).json
    │       │   │   ├── submitscope(_:).json
    │       │   │   ├── swipeactions(edge:allowsfullswipe:content:).json
    │       │   │   ├── symbolrenderingmode(_:).json
    │       │   │   ├── symbolvariant(_:).json
    │       │   │   ├── tabitem(_:).json
    │       │   │   ├── tablestyle(_:).json
    │       │   │   ├── tabviewstyle(_:).json
    │       │   │   ├── tag(_:).json
    │       │   │   ├── task(id:priority:_:).json
    │       │   │   ├── task(priority:_:).json
    │       │   │   ├── textcase(_:).json
    │       │   │   ├── textcontenttype(_:).json
    │       │   │   ├── textfieldstyle(_:).json
    │       │   │   ├── textselection(_:).json
    │       │   │   ├── tint(_:).json
    │       │   │   ├── togglestyle(_:).json
    │       │   │   ├── toolbar(content:)-6zmlc.json
    │       │   │   ├── toolbar(content:)-7j09e.json
    │       │   │   ├── toolbar(id:content:).json
    │       │   │   ├── touchbar(_:).json
    │       │   │   ├── touchbar(content:).json
    │       │   │   ├── touchbarcustomizationlabel(_:).json
    │       │   │   ├── touchbaritempresence(_:).json
    │       │   │   ├── touchbaritemprincipal(_:).json
    │       │   │   ├── transaction(_:).json
    │       │   │   ├── transformanchorpreference(key:value:transform:).json
    │       │   │   ├── transformeffect(_:).json
    │       │   │   ├── transformenvironment(_:transform:).json
    │       │   │   ├── transformpreference(_:_:).json
    │       │   │   ├── transition(_:).json
    │       │   │   ├── truncationmode(_:).json
    │       │   │   ├── unredacted().json
    │       │   │   ├── useractivity(_:element:_:).json
    │       │   │   ├── useractivity(_:isactive:_:).json
    │       │   │   ├── view-implementations.json
    │       │   │   └── zindex(_:).json
    │       │   ├── carouselstack.json
    │       │   ├── carouselstyle/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── finitescroll.json
    │       │   │   └── infinitescroll.json
    │       │   ├── carouselstyle.json
    │       │   ├── shuffleanimation/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── easein.json
    │       │   │   ├── easeinout.json
    │       │   │   ├── easeout.json
    │       │   │   ├── equatable-implementations.json
    │       │   │   └── linear.json
    │       │   ├── shuffleanimation.json
    │       │   ├── shufflecontext/
    │       │   │   ├── direction.json
    │       │   │   ├── index.json
    │       │   │   └── previousindex.json
    │       │   ├── shufflecontext.json
    │       │   ├── shuffledeck/
    │       │   │   ├── accentcolor(_:).json
    │       │   │   ├── accessibility(activationpoint:)-5yxv.json
    │       │   │   ├── accessibility(activationpoint:)-6f80.json
    │       │   │   ├── accessibility(addtraits:).json
    │       │   │   ├── accessibility(hidden:).json
    │       │   │   ├── accessibility(hint:).json
    │       │   │   ├── accessibility(identifier:).json
    │       │   │   ├── accessibility(inputlabels:).json
    │       │   │   ├── accessibility(label:).json
    │       │   │   ├── accessibility(removetraits:).json
    │       │   │   ├── accessibility(selectionidentifier:).json
    │       │   │   ├── accessibility(sortpriority:).json
    │       │   │   ├── accessibility(value:).json
    │       │   │   ├── accessibilityaction(_:_:).json
    │       │   │   ├── accessibilityaction(action:label:).json
    │       │   │   ├── accessibilityaction(named:_:)-5vajk.json
    │       │   │   ├── accessibilityaction(named:_:)-7cvr0.json
    │       │   │   ├── accessibilityaction(named:_:)-7d1bz.json
    │       │   │   ├── accessibilityactivationpoint(_:)-4i64i.json
    │       │   │   ├── accessibilityactivationpoint(_:)-8rijn.json
    │       │   │   ├── accessibilityaddtraits(_:).json
    │       │   │   ├── accessibilityadjustableaction(_:).json
    │       │   │   ├── accessibilitychartdescriptor(_:).json
    │       │   │   ├── accessibilitychildren(children:).json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1dnrk.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1ucuw.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-2nazk.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-3pllm.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-3pod7.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-4xdb3.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-5vxjo.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-qwm7.json
    │       │   │   ├── accessibilityelement(children:).json
    │       │   │   ├── accessibilityfocused(_:).json
    │       │   │   ├── accessibilityfocused(_:equals:).json
    │       │   │   ├── accessibilityheading(_:).json
    │       │   │   ├── accessibilityhidden(_:).json
    │       │   │   ├── accessibilityhint(_:)-1rrl0.json
    │       │   │   ├── accessibilityhint(_:)-5nt5z.json
    │       │   │   ├── accessibilityhint(_:)-v4ao.json
    │       │   │   ├── accessibilityidentifier(_:).json
    │       │   │   ├── accessibilityignoresinvertcolors(_:).json
    │       │   │   ├── accessibilityinputlabels(_:)-3x55a.json
    │       │   │   ├── accessibilityinputlabels(_:)-6n0d7.json
    │       │   │   ├── accessibilityinputlabels(_:)-8jm4t.json
    │       │   │   ├── accessibilitylabel(_:)-3ly3t.json
    │       │   │   ├── accessibilitylabel(_:)-4h91y.json
    │       │   │   ├── accessibilitylabel(_:)-6a6no.json
    │       │   │   ├── accessibilitylabeledpair(role:id:in:).json
    │       │   │   ├── accessibilitylinkedgroup(id:in:).json
    │       │   │   ├── accessibilityremovetraits(_:).json
    │       │   │   ├── accessibilityrepresentation(representation:).json
    │       │   │   ├── accessibilityrespondstouserinteraction(_:).json
    │       │   │   ├── accessibilityrotor(_:entries:)-1orax.json
    │       │   │   ├── accessibilityrotor(_:entries:)-2p5bh.json
    │       │   │   ├── accessibilityrotor(_:entries:)-5mxjh.json
    │       │   │   ├── accessibilityrotor(_:entries:)-7dolw.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-10oqf.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-25d98.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-51dnw.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6jn71.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-3f3j9.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-3lh2p.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-6wf02.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-7t24j.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-6nczq.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-8d4es.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-8l6zm.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-964n8.json
    │       │   │   ├── accessibilityrotorentry(id:in:).json
    │       │   │   ├── accessibilityscrollaction(_:).json
    │       │   │   ├── accessibilityshowslargecontentviewer().json
    │       │   │   ├── accessibilityshowslargecontentviewer(_:).json
    │       │   │   ├── accessibilitysortpriority(_:).json
    │       │   │   ├── accessibilitytextcontenttype(_:).json
    │       │   │   ├── accessibilityvalue(_:)-3kff4.json
    │       │   │   ├── accessibilityvalue(_:)-7dd6l.json
    │       │   │   ├── accessibilityvalue(_:)-7tnqf.json
    │       │   │   ├── alert(_:ispresented:actions:)-2i24c.json
    │       │   │   ├── alert(_:ispresented:actions:)-6i5wg.json
    │       │   │   ├── alert(_:ispresented:actions:)-6mdoc.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-5j65x.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-6iohl.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-8x9o0.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-43fim.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-6dwv5.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-77clm.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7p8yz.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7ptxx.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-88es2.json
    │       │   │   ├── alert(ispresented:content:).json
    │       │   │   ├── alert(ispresented:error:actions:).json
    │       │   │   ├── alert(ispresented:error:actions:message:).json
    │       │   │   ├── alert(item:content:).json
    │       │   │   ├── alignmentguide(_:computevalue:)-5dc06.json
    │       │   │   ├── alignmentguide(_:computevalue:)-98bnf.json
    │       │   │   ├── allowshittesting(_:).json
    │       │   │   ├── allowstightening(_:).json
    │       │   │   ├── anchorpreference(key:value:transform:).json
    │       │   │   ├── animation(_:).json
    │       │   │   ├── animation(_:value:).json
    │       │   │   ├── aspectratio(_:contentmode:)-7qpsf.json
    │       │   │   ├── aspectratio(_:contentmode:)-98csp.json
    │       │   │   ├── background(_:alignment:).json
    │       │   │   ├── background(_:ignoressafeareaedges:).json
    │       │   │   ├── background(_:in:fillstyle:)-16mk7.json
    │       │   │   ├── background(_:in:fillstyle:)-3xtjy.json
    │       │   │   ├── background(alignment:content:).json
    │       │   │   ├── background(ignoressafeareaedges:).json
    │       │   │   ├── background(in:fillstyle:)-22zkr.json
    │       │   │   ├── background(in:fillstyle:)-pkki.json
    │       │   │   ├── backgroundpreferencevalue(_:_:).json
    │       │   │   ├── badge(_:)-23vvh.json
    │       │   │   ├── badge(_:)-3b7a5.json
    │       │   │   ├── badge(_:)-4eyh0.json
    │       │   │   ├── badge(_:)-5yfrj.json
    │       │   │   ├── blendmode(_:).json
    │       │   │   ├── blur(radius:opaque:).json
    │       │   │   ├── body.json
    │       │   │   ├── border(_:width:).json
    │       │   │   ├── brightness(_:).json
    │       │   │   ├── buttonbordershape(_:).json
    │       │   │   ├── buttonstyle(_:)-1hkio.json
    │       │   │   ├── buttonstyle(_:)-1mobg.json
    │       │   │   ├── carouselanimation(_:).json
    │       │   │   ├── carouseldisabled(_:).json
    │       │   │   ├── carouselpadding(_:).json
    │       │   │   ├── carouselscale(_:).json
    │       │   │   ├── carouselspacing(_:).json
    │       │   │   ├── carouselstyle(_:).json
    │       │   │   ├── carouseltrigger(on:).json
    │       │   │   ├── clipped(antialiased:).json
    │       │   │   ├── clipshape(_:style:).json
    │       │   │   ├── colorinvert().json
    │       │   │   ├── colormultiply(_:).json
    │       │   │   ├── colorscheme(_:).json
    │       │   │   ├── compositinggroup().json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7c2i9.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7p1mg.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-9t8f5.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-592a8.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-6sq5i.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-8ffij.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-455gp.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pvn4.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-8fhv.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4bg57.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4pxpc.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-50r8e.json
    │       │   │   ├── containershape(_:).json
    │       │   │   ├── contentshape(_:_:eofill:).json
    │       │   │   ├── contentshape(_:eofill:).json
    │       │   │   ├── contextmenu(_:).json
    │       │   │   ├── contextmenu(menuitems:).json
    │       │   │   ├── contrast(_:).json
    │       │   │   ├── controlgroupstyle(_:).json
    │       │   │   ├── controlsize(_:).json
    │       │   │   ├── coordinatespace(name:).json
    │       │   │   ├── cornerradius(_:antialiased:).json
    │       │   │   ├── datepickerstyle(_:).json
    │       │   │   ├── defaultappstorage(_:).json
    │       │   │   ├── deletedisabled(_:).json
    │       │   │   ├── disableautocorrection(_:).json
    │       │   │   ├── disabled(_:).json
    │       │   │   ├── drawinggroup(opaque:colormode:).json
    │       │   │   ├── dynamictypesize(_:).json
    │       │   │   ├── edgesignoringsafearea(_:).json
    │       │   │   ├── environment(_:_:).json
    │       │   │   ├── environmentobject(_:).json
    │       │   │   ├── exportsitemproviders(_:onexport:).json
    │       │   │   ├── exportsitemproviders(_:onexport:onedit:).json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-54p9i.json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-z1af.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-4ixib.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-72o0w.json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:).json
    │       │   │   ├── filemover(ispresented:file:oncompletion:).json
    │       │   │   ├── filemover(ispresented:files:oncompletion:).json
    │       │   │   ├── fixedsize().json
    │       │   │   ├── fixedsize(horizontal:vertical:).json
    │       │   │   ├── flipsforrighttoleftlayoutdirection(_:).json
    │       │   │   ├── focusable(_:).json
    │       │   │   ├── focusable(_:onfocuschange:).json
    │       │   │   ├── focused(_:).json
    │       │   │   ├── focused(_:equals:).json
    │       │   │   ├── focusedscenevalue(_:_:).json
    │       │   │   ├── focusedvalue(_:_:).json
    │       │   │   ├── focusscope(_:).json
    │       │   │   ├── font(_:).json
    │       │   │   ├── foregroundcolor(_:).json
    │       │   │   ├── foregroundstyle(_:).json
    │       │   │   ├── foregroundstyle(_:_:).json
    │       │   │   ├── foregroundstyle(_:_:_:).json
    │       │   │   ├── frame().json
    │       │   │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:).json
    │       │   │   ├── frame(width:height:alignment:).json
    │       │   │   ├── gesture(_:including:).json
    │       │   │   ├── grayscale(_:).json
    │       │   │   ├── groupboxstyle(_:).json
    │       │   │   ├── handlesexternalevents(preferring:allowing:).json
    │       │   │   ├── headerprominence(_:).json
    │       │   │   ├── help(_:)-4gfc1.json
    │       │   │   ├── help(_:)-57kg7.json
    │       │   │   ├── help(_:)-5c7gg.json
    │       │   │   ├── hidden().json
    │       │   │   ├── highprioritygesture(_:including:).json
    │       │   │   ├── horizontalradiogrouplayout().json
    │       │   │   ├── huerotation(_:).json
    │       │   │   ├── id(_:).json
    │       │   │   ├── ignoressafearea(_:edges:).json
    │       │   │   ├── imagescale(_:).json
    │       │   │   ├── importsitemproviders(_:onimport:).json
    │       │   │   ├── init(_:initialindex:content:)-6ou47.json
    │       │   │   ├── init(_:initialindex:content:)-9osfg.json
    │       │   │   ├── interactivedismissdisabled(_:).json
    │       │   │   ├── itemprovider(_:).json
    │       │   │   ├── keyboardshortcut(_:)-8kg9p.json
    │       │   │   ├── keyboardshortcut(_:)-92las.json
    │       │   │   ├── keyboardshortcut(_:modifiers:).json
    │       │   │   ├── keyboardshortcut(_:modifiers:localization:).json
    │       │   │   ├── labelshidden().json
    │       │   │   ├── labelstyle(_:).json
    │       │   │   ├── layoutpriority(_:).json
    │       │   │   ├── linelimit(_:).json
    │       │   │   ├── linespacing(_:).json
    │       │   │   ├── listitemtint(_:)-4okc6.json
    │       │   │   ├── listitemtint(_:)-8uys6.json
    │       │   │   ├── listrowbackground(_:).json
    │       │   │   ├── listrowinsets(_:).json
    │       │   │   ├── liststyle(_:).json
    │       │   │   ├── luminancetoalpha().json
    │       │   │   ├── mask(_:).json
    │       │   │   ├── mask(alignment:_:).json
    │       │   │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:).json
    │       │   │   ├── menubuttonstyle(_:).json
    │       │   │   ├── menuindicator(_:).json
    │       │   │   ├── menustyle(_:).json
    │       │   │   ├── minimumscalefactor(_:).json
    │       │   │   ├── modifier(_:).json
    │       │   │   ├── monospaceddigit().json
    │       │   │   ├── movedisabled(_:).json
    │       │   │   ├── multilinetextalignment(_:).json
    │       │   │   ├── navigationsubtitle(_:)-4xcr1.json
    │       │   │   ├── navigationsubtitle(_:)-62wq4.json
    │       │   │   ├── navigationsubtitle(_:)-89wf8.json
    │       │   │   ├── navigationtitle(_:)-15ycd.json
    │       │   │   ├── navigationtitle(_:)-3gz4j.json
    │       │   │   ├── navigationtitle(_:)-6t67o.json
    │       │   │   ├── navigationtitle(_:)-8moj6.json
    │       │   │   ├── navigationviewstyle(_:).json
    │       │   │   ├── offset(_:).json
    │       │   │   ├── offset(x:y:).json
    │       │   │   ├── onappear(perform:).json
    │       │   │   ├── oncarousel(_:).json
    │       │   │   ├── oncarouseltranslation(_:).json
    │       │   │   ├── onchange(of:perform:).json
    │       │   │   ├── oncommand(_:perform:).json
    │       │   │   ├── oncontinueuseractivity(_:perform:).json
    │       │   │   ├── oncopycommand(perform:).json
    │       │   │   ├── oncutcommand(perform:).json
    │       │   │   ├── ondeletecommand(perform:).json
    │       │   │   ├── ondisappear(perform:).json
    │       │   │   ├── ondrag(_:).json
    │       │   │   ├── ondrag(_:preview:).json
    │       │   │   ├── ondrop(of:delegate:)-55jbd.json
    │       │   │   ├── ondrop(of:delegate:)-9xy3o.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-2wosm.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-4zd72.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-6o6wo.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-btgb.json
    │       │   │   ├── onexitcommand(perform:).json
    │       │   │   ├── onhover(perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:pressing:perform:).json
    │       │   │   ├── onmovecommand(perform:).json
    │       │   │   ├── onopenurl(perform:).json
    │       │   │   ├── onpastecommand(of:perform:)-3phpt.json
    │       │   │   ├── onpastecommand(of:perform:)-7nzf4.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-5h2lv.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-7k6qm.json
    │       │   │   ├── onplaypausecommand(perform:).json
    │       │   │   ├── onpreferencechange(_:perform:).json
    │       │   │   ├── onreceive(_:perform:).json
    │       │   │   ├── onshuffle(_:).json
    │       │   │   ├── onshuffledeck(_:).json
    │       │   │   ├── onshuffledecktranslation(_:).json
    │       │   │   ├── onshuffletranslation(_:).json
    │       │   │   ├── onsubmit(of:_:).json
    │       │   │   ├── ontapgesture(count:perform:).json
    │       │   │   ├── opacity(_:).json
    │       │   │   ├── overlay(_:alignment:).json
    │       │   │   ├── overlay(_:ignoressafeareaedges:).json
    │       │   │   ├── overlay(_:in:fillstyle:).json
    │       │   │   ├── overlay(alignment:content:).json
    │       │   │   ├── overlaypreferencevalue(_:_:).json
    │       │   │   ├── padding(_:)-5f3wf.json
    │       │   │   ├── padding(_:)-7cp9q.json
    │       │   │   ├── padding(_:_:).json
    │       │   │   ├── pagecommand(value:in:step:).json
    │       │   │   ├── pickerstyle(_:).json
    │       │   │   ├── popover(ispresented:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── popover(item:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── position(_:).json
    │       │   │   ├── position(x:y:).json
    │       │   │   ├── preference(key:value:).json
    │       │   │   ├── preferredcolorscheme(_:).json
    │       │   │   ├── prefersdefaultfocus(_:in:).json
    │       │   │   ├── presentedwindowstyle(_:).json
    │       │   │   ├── presentedwindowtoolbarstyle(_:).json
    │       │   │   ├── previewcontext(_:).json
    │       │   │   ├── previewdevice(_:).json
    │       │   │   ├── previewdisplayname(_:).json
    │       │   │   ├── previewinterfaceorientation(_:).json
    │       │   │   ├── previewlayout(_:).json
    │       │   │   ├── privacysensitive(_:).json
    │       │   │   ├── progressviewstyle(_:).json
    │       │   │   ├── projectioneffect(_:).json
    │       │   │   ├── redacted(reason:).json
    │       │   │   ├── refreshable(action:).json
    │       │   │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:).json
    │       │   │   ├── rotationeffect(_:anchor:).json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-4gojk.json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-9bx6p.json
    │       │   │   ├── saturation(_:).json
    │       │   │   ├── scaledtofill().json
    │       │   │   ├── scaledtofit().json
    │       │   │   ├── scaleeffect(_:anchor:)-4byje.json
    │       │   │   ├── scaleeffect(_:anchor:)-6bduh.json
    │       │   │   ├── scaleeffect(x:y:anchor:).json
    │       │   │   ├── scenepadding(_:).json
    │       │   │   ├── searchable(text:placement:prompt:)-2i9jl.json
    │       │   │   ├── searchable(text:placement:prompt:)-50j7i.json
    │       │   │   ├── searchable(text:placement:prompt:)-75a6t.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-5bsg8.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-5ib9a.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-8fyqc.json
    │       │   │   ├── searchcompletion(_:).json
    │       │   │   ├── shadow(color:radius:x:y:).json
    │       │   │   ├── sheet(ispresented:ondismiss:content:).json
    │       │   │   ├── sheet(item:ondismiss:content:).json
    │       │   │   ├── shuffleanimation(_:).json
    │       │   │   ├── shuffledeckanimation(_:).json
    │       │   │   ├── shuffledeckdisabled(_:).json
    │       │   │   ├── shuffledeckscale(_:).json
    │       │   │   ├── shuffledeckstyle(_:).json
    │       │   │   ├── shuffledecktrigger(on:).json
    │       │   │   ├── shuffledisabled(_:).json
    │       │   │   ├── shuffleoffset(_:).json
    │       │   │   ├── shufflepadding(_:).json
    │       │   │   ├── shufflescale(_:).json
    │       │   │   ├── shufflestyle(_:).json
    │       │   │   ├── shuffletrigger(on:).json
    │       │   │   ├── simultaneousgesture(_:including:).json
    │       │   │   ├── speechadjustedpitch(_:).json
    │       │   │   ├── speechalwaysincludespunctuation(_:).json
    │       │   │   ├── speechannouncementsqueued(_:).json
    │       │   │   ├── speechspellsoutcharacters(_:).json
    │       │   │   ├── submitlabel(_:).json
    │       │   │   ├── submitscope(_:).json
    │       │   │   ├── swipeactions(edge:allowsfullswipe:content:).json
    │       │   │   ├── symbolrenderingmode(_:).json
    │       │   │   ├── symbolvariant(_:).json
    │       │   │   ├── tabitem(_:).json
    │       │   │   ├── tablestyle(_:).json
    │       │   │   ├── tabviewstyle(_:).json
    │       │   │   ├── tag(_:).json
    │       │   │   ├── task(id:priority:_:).json
    │       │   │   ├── task(priority:_:).json
    │       │   │   ├── textcase(_:).json
    │       │   │   ├── textcontenttype(_:).json
    │       │   │   ├── textfieldstyle(_:).json
    │       │   │   ├── textselection(_:).json
    │       │   │   ├── tint(_:).json
    │       │   │   ├── togglestyle(_:).json
    │       │   │   ├── toolbar(content:)-2k0pt.json
    │       │   │   ├── toolbar(content:)-4sm5t.json
    │       │   │   ├── toolbar(id:content:).json
    │       │   │   ├── touchbar(_:).json
    │       │   │   ├── touchbar(content:).json
    │       │   │   ├── touchbarcustomizationlabel(_:).json
    │       │   │   ├── touchbaritempresence(_:).json
    │       │   │   ├── touchbaritemprincipal(_:).json
    │       │   │   ├── transaction(_:).json
    │       │   │   ├── transformanchorpreference(key:value:transform:).json
    │       │   │   ├── transformeffect(_:).json
    │       │   │   ├── transformenvironment(_:transform:).json
    │       │   │   ├── transformpreference(_:_:).json
    │       │   │   ├── transition(_:).json
    │       │   │   ├── truncationmode(_:).json
    │       │   │   ├── unredacted().json
    │       │   │   ├── useractivity(_:element:_:).json
    │       │   │   ├── useractivity(_:isactive:_:).json
    │       │   │   ├── view-implementations.json
    │       │   │   └── zindex(_:).json
    │       │   ├── shuffledeck.json
    │       │   ├── shuffledeckanimation/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── easein.json
    │       │   │   ├── easeinout.json
    │       │   │   ├── easeout.json
    │       │   │   ├── equatable-implementations.json
    │       │   │   └── linear.json
    │       │   ├── shuffledeckanimation.json
    │       │   ├── shuffledeckcontext/
    │       │   │   ├── direction.json
    │       │   │   ├── index.json
    │       │   │   └── previousindex.json
    │       │   ├── shuffledeckcontext.json
    │       │   ├── shuffledeckdirection/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── left.json
    │       │   │   └── right.json
    │       │   ├── shuffledeckdirection.json
    │       │   ├── shuffledeckstyle/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── finiteshuffle.json
    │       │   │   └── infiniteshuffle.json
    │       │   ├── shuffledeckstyle.json
    │       │   ├── shuffledirection/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── left.json
    │       │   │   └── right.json
    │       │   ├── shuffledirection.json
    │       │   ├── shufflestack/
    │       │   │   ├── accentcolor(_:).json
    │       │   │   ├── accessibility(activationpoint:)-1nikr.json
    │       │   │   ├── accessibility(activationpoint:)-9o1ut.json
    │       │   │   ├── accessibility(addtraits:).json
    │       │   │   ├── accessibility(hidden:).json
    │       │   │   ├── accessibility(hint:).json
    │       │   │   ├── accessibility(identifier:).json
    │       │   │   ├── accessibility(inputlabels:).json
    │       │   │   ├── accessibility(label:).json
    │       │   │   ├── accessibility(removetraits:).json
    │       │   │   ├── accessibility(selectionidentifier:).json
    │       │   │   ├── accessibility(sortpriority:).json
    │       │   │   ├── accessibility(value:).json
    │       │   │   ├── accessibilityaction(_:_:).json
    │       │   │   ├── accessibilityaction(action:label:).json
    │       │   │   ├── accessibilityaction(named:_:)-5nf29.json
    │       │   │   ├── accessibilityaction(named:_:)-7rxae.json
    │       │   │   ├── accessibilityaction(named:_:)-7tk0c.json
    │       │   │   ├── accessibilityactivationpoint(_:)-57vfb.json
    │       │   │   ├── accessibilityactivationpoint(_:)-9osvr.json
    │       │   │   ├── accessibilityaddtraits(_:).json
    │       │   │   ├── accessibilityadjustableaction(_:).json
    │       │   │   ├── accessibilitychartdescriptor(_:).json
    │       │   │   ├── accessibilitychildren(children:).json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1gi9v.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-375xz.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-571fc.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-72sim.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-7h1pz.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-8sma2.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-956rk.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-96ur4.json
    │       │   │   ├── accessibilityelement(children:).json
    │       │   │   ├── accessibilityfocused(_:).json
    │       │   │   ├── accessibilityfocused(_:equals:).json
    │       │   │   ├── accessibilityheading(_:).json
    │       │   │   ├── accessibilityhidden(_:).json
    │       │   │   ├── accessibilityhint(_:)-45b9m.json
    │       │   │   ├── accessibilityhint(_:)-6451d.json
    │       │   │   ├── accessibilityhint(_:)-6m2eb.json
    │       │   │   ├── accessibilityidentifier(_:).json
    │       │   │   ├── accessibilityignoresinvertcolors(_:).json
    │       │   │   ├── accessibilityinputlabels(_:)-3mfon.json
    │       │   │   ├── accessibilityinputlabels(_:)-7hs3b.json
    │       │   │   ├── accessibilityinputlabels(_:)-7kg3p.json
    │       │   │   ├── accessibilitylabel(_:)-3has0.json
    │       │   │   ├── accessibilitylabel(_:)-6dv6y.json
    │       │   │   ├── accessibilitylabel(_:)-e66p.json
    │       │   │   ├── accessibilitylabeledpair(role:id:in:).json
    │       │   │   ├── accessibilitylinkedgroup(id:in:).json
    │       │   │   ├── accessibilityremovetraits(_:).json
    │       │   │   ├── accessibilityrepresentation(representation:).json
    │       │   │   ├── accessibilityrespondstouserinteraction(_:).json
    │       │   │   ├── accessibilityrotor(_:entries:)-3a01s.json
    │       │   │   ├── accessibilityrotor(_:entries:)-661b4.json
    │       │   │   ├── accessibilityrotor(_:entries:)-7kbeo.json
    │       │   │   ├── accessibilityrotor(_:entries:)-f4c5.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1kufn.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1o7jk.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-2ng74.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6akr8.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-6o30j.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-8e6r9.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-bva6.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-cxx7.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-1v5os.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-5mce6.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-7fpc1.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-91on2.json
    │       │   │   ├── accessibilityrotorentry(id:in:).json
    │       │   │   ├── accessibilityscrollaction(_:).json
    │       │   │   ├── accessibilityshowslargecontentviewer().json
    │       │   │   ├── accessibilityshowslargecontentviewer(_:).json
    │       │   │   ├── accessibilitysortpriority(_:).json
    │       │   │   ├── accessibilitytextcontenttype(_:).json
    │       │   │   ├── accessibilityvalue(_:)-6kh76.json
    │       │   │   ├── accessibilityvalue(_:)-6x5in.json
    │       │   │   ├── accessibilityvalue(_:)-tcbi.json
    │       │   │   ├── alert(_:ispresented:actions:)-13ppe.json
    │       │   │   ├── alert(_:ispresented:actions:)-31fv4.json
    │       │   │   ├── alert(_:ispresented:actions:)-svpk.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-1lplz.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-42hzu.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-8jr1q.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-135kk.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-7je0d.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-7zzve.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-17uu0.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-36zvz.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7caah.json
    │       │   │   ├── alert(ispresented:content:).json
    │       │   │   ├── alert(ispresented:error:actions:).json
    │       │   │   ├── alert(ispresented:error:actions:message:).json
    │       │   │   ├── alert(item:content:).json
    │       │   │   ├── alignmentguide(_:computevalue:)-23g26.json
    │       │   │   ├── alignmentguide(_:computevalue:)-4kcej.json
    │       │   │   ├── allowshittesting(_:).json
    │       │   │   ├── allowstightening(_:).json
    │       │   │   ├── anchorpreference(key:value:transform:).json
    │       │   │   ├── animation(_:).json
    │       │   │   ├── animation(_:value:).json
    │       │   │   ├── aspectratio(_:contentmode:)-9iav9.json
    │       │   │   ├── aspectratio(_:contentmode:)-ggdx.json
    │       │   │   ├── background(_:alignment:).json
    │       │   │   ├── background(_:ignoressafeareaedges:).json
    │       │   │   ├── background(_:in:fillstyle:)-1a2bf.json
    │       │   │   ├── background(_:in:fillstyle:)-8qwr1.json
    │       │   │   ├── background(alignment:content:).json
    │       │   │   ├── background(ignoressafeareaedges:).json
    │       │   │   ├── background(in:fillstyle:)-58j5e.json
    │       │   │   ├── background(in:fillstyle:)-8w09p.json
    │       │   │   ├── backgroundpreferencevalue(_:_:).json
    │       │   │   ├── badge(_:)-26gjx.json
    │       │   │   ├── badge(_:)-2cz64.json
    │       │   │   ├── badge(_:)-31kbp.json
    │       │   │   ├── badge(_:)-4i0v1.json
    │       │   │   ├── blendmode(_:).json
    │       │   │   ├── blur(radius:opaque:).json
    │       │   │   ├── body.json
    │       │   │   ├── border(_:width:).json
    │       │   │   ├── brightness(_:).json
    │       │   │   ├── buttonbordershape(_:).json
    │       │   │   ├── buttonstyle(_:)-42cf.json
    │       │   │   ├── buttonstyle(_:)-4hs9e.json
    │       │   │   ├── carouselanimation(_:).json
    │       │   │   ├── carouseldisabled(_:).json
    │       │   │   ├── carouselpadding(_:).json
    │       │   │   ├── carouselscale(_:).json
    │       │   │   ├── carouselspacing(_:).json
    │       │   │   ├── carouselstyle(_:).json
    │       │   │   ├── carouseltrigger(on:).json
    │       │   │   ├── clipped(antialiased:).json
    │       │   │   ├── clipshape(_:style:).json
    │       │   │   ├── colorinvert().json
    │       │   │   ├── colormultiply(_:).json
    │       │   │   ├── colorscheme(_:).json
    │       │   │   ├── compositinggroup().json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-41ud8.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-4ywhx.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7ipnf.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-1kurz.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-5vmyl.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9sue3.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1tkx.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-5diu1.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pkdq.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-296mh.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-5uj0y.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-7cjsq.json
    │       │   │   ├── containershape(_:).json
    │       │   │   ├── contentshape(_:_:eofill:).json
    │       │   │   ├── contentshape(_:eofill:).json
    │       │   │   ├── contextmenu(_:).json
    │       │   │   ├── contextmenu(menuitems:).json
    │       │   │   ├── contrast(_:).json
    │       │   │   ├── controlgroupstyle(_:).json
    │       │   │   ├── controlsize(_:).json
    │       │   │   ├── coordinatespace(name:).json
    │       │   │   ├── cornerradius(_:antialiased:).json
    │       │   │   ├── datepickerstyle(_:).json
    │       │   │   ├── defaultappstorage(_:).json
    │       │   │   ├── deletedisabled(_:).json
    │       │   │   ├── disableautocorrection(_:).json
    │       │   │   ├── disabled(_:).json
    │       │   │   ├── drawinggroup(opaque:colormode:).json
    │       │   │   ├── dynamictypesize(_:).json
    │       │   │   ├── edgesignoringsafearea(_:).json
    │       │   │   ├── environment(_:_:).json
    │       │   │   ├── environmentobject(_:).json
    │       │   │   ├── exportsitemproviders(_:onexport:).json
    │       │   │   ├── exportsitemproviders(_:onexport:onedit:).json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-6evgr.json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-8iv2y.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-233kd.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-7map2.json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:).json
    │       │   │   ├── filemover(ispresented:file:oncompletion:).json
    │       │   │   ├── filemover(ispresented:files:oncompletion:).json
    │       │   │   ├── fixedsize().json
    │       │   │   ├── fixedsize(horizontal:vertical:).json
    │       │   │   ├── flipsforrighttoleftlayoutdirection(_:).json
    │       │   │   ├── focusable(_:).json
    │       │   │   ├── focusable(_:onfocuschange:).json
    │       │   │   ├── focused(_:).json
    │       │   │   ├── focused(_:equals:).json
    │       │   │   ├── focusedscenevalue(_:_:).json
    │       │   │   ├── focusedvalue(_:_:).json
    │       │   │   ├── focusscope(_:).json
    │       │   │   ├── font(_:).json
    │       │   │   ├── foregroundcolor(_:).json
    │       │   │   ├── foregroundstyle(_:).json
    │       │   │   ├── foregroundstyle(_:_:).json
    │       │   │   ├── foregroundstyle(_:_:_:).json
    │       │   │   ├── frame().json
    │       │   │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:).json
    │       │   │   ├── frame(width:height:alignment:).json
    │       │   │   ├── gesture(_:including:).json
    │       │   │   ├── grayscale(_:).json
    │       │   │   ├── groupboxstyle(_:).json
    │       │   │   ├── handlesexternalevents(preferring:allowing:).json
    │       │   │   ├── headerprominence(_:).json
    │       │   │   ├── help(_:)-296.json
    │       │   │   ├── help(_:)-2u744.json
    │       │   │   ├── help(_:)-4q5ms.json
    │       │   │   ├── hidden().json
    │       │   │   ├── highprioritygesture(_:including:).json
    │       │   │   ├── horizontalradiogrouplayout().json
    │       │   │   ├── huerotation(_:).json
    │       │   │   ├── id(_:).json
    │       │   │   ├── ignoressafearea(_:edges:).json
    │       │   │   ├── imagescale(_:).json
    │       │   │   ├── importsitemproviders(_:onimport:).json
    │       │   │   ├── init(_:initialindex:stackcontent:)-4x5f3.json
    │       │   │   ├── init(_:initialindex:stackcontent:)-8ktnr.json
    │       │   │   ├── interactivedismissdisabled(_:).json
    │       │   │   ├── itemprovider(_:).json
    │       │   │   ├── keyboardshortcut(_:)-30f12.json
    │       │   │   ├── keyboardshortcut(_:)-38k96.json
    │       │   │   ├── keyboardshortcut(_:modifiers:).json
    │       │   │   ├── keyboardshortcut(_:modifiers:localization:).json
    │       │   │   ├── labelshidden().json
    │       │   │   ├── labelstyle(_:).json
    │       │   │   ├── layoutpriority(_:).json
    │       │   │   ├── linelimit(_:).json
    │       │   │   ├── linespacing(_:).json
    │       │   │   ├── listitemtint(_:)-66j6h.json
    │       │   │   ├── listitemtint(_:)-6zn9q.json
    │       │   │   ├── listrowbackground(_:).json
    │       │   │   ├── listrowinsets(_:).json
    │       │   │   ├── liststyle(_:).json
    │       │   │   ├── luminancetoalpha().json
    │       │   │   ├── mask(_:).json
    │       │   │   ├── mask(alignment:_:).json
    │       │   │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:).json
    │       │   │   ├── menubuttonstyle(_:).json
    │       │   │   ├── menuindicator(_:).json
    │       │   │   ├── menustyle(_:).json
    │       │   │   ├── minimumscalefactor(_:).json
    │       │   │   ├── modifier(_:).json
    │       │   │   ├── monospaceddigit().json
    │       │   │   ├── movedisabled(_:).json
    │       │   │   ├── multilinetextalignment(_:).json
    │       │   │   ├── navigationsubtitle(_:)-16d52.json
    │       │   │   ├── navigationsubtitle(_:)-206md.json
    │       │   │   ├── navigationsubtitle(_:)-7em2i.json
    │       │   │   ├── navigationtitle(_:)-7aj99.json
    │       │   │   ├── navigationtitle(_:)-7jd07.json
    │       │   │   ├── navigationtitle(_:)-7twkm.json
    │       │   │   ├── navigationtitle(_:)-7w547.json
    │       │   │   ├── navigationviewstyle(_:).json
    │       │   │   ├── offset(_:).json
    │       │   │   ├── offset(x:y:).json
    │       │   │   ├── onappear(perform:).json
    │       │   │   ├── oncarousel(_:).json
    │       │   │   ├── oncarouseltranslation(_:).json
    │       │   │   ├── onchange(of:perform:).json
    │       │   │   ├── oncommand(_:perform:).json
    │       │   │   ├── oncontinueuseractivity(_:perform:).json
    │       │   │   ├── oncopycommand(perform:).json
    │       │   │   ├── oncutcommand(perform:).json
    │       │   │   ├── ondeletecommand(perform:).json
    │       │   │   ├── ondisappear(perform:).json
    │       │   │   ├── ondrag(_:).json
    │       │   │   ├── ondrag(_:preview:).json
    │       │   │   ├── ondrop(of:delegate:)-1ea27.json
    │       │   │   ├── ondrop(of:delegate:)-8thdr.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-363wn.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-3bmbv.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-82gpe.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-84ef9.json
    │       │   │   ├── onexitcommand(perform:).json
    │       │   │   ├── onhover(perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:pressing:perform:).json
    │       │   │   ├── onmovecommand(perform:).json
    │       │   │   ├── onopenurl(perform:).json
    │       │   │   ├── onpastecommand(of:perform:)-4k6ie.json
    │       │   │   ├── onpastecommand(of:perform:)-wliz.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-7tcqn.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-9ddq9.json
    │       │   │   ├── onplaypausecommand(perform:).json
    │       │   │   ├── onpreferencechange(_:perform:).json
    │       │   │   ├── onreceive(_:perform:).json
    │       │   │   ├── onshuffle(_:).json
    │       │   │   ├── onshuffledeck(_:).json
    │       │   │   ├── onshuffledecktranslation(_:).json
    │       │   │   ├── onshuffletranslation(_:).json
    │       │   │   ├── onsubmit(of:_:).json
    │       │   │   ├── ontapgesture(count:perform:).json
    │       │   │   ├── opacity(_:).json
    │       │   │   ├── overlay(_:alignment:).json
    │       │   │   ├── overlay(_:ignoressafeareaedges:).json
    │       │   │   ├── overlay(_:in:fillstyle:).json
    │       │   │   ├── overlay(alignment:content:).json
    │       │   │   ├── overlaypreferencevalue(_:_:).json
    │       │   │   ├── padding(_:)-7zetw.json
    │       │   │   ├── padding(_:)-9obs7.json
    │       │   │   ├── padding(_:_:).json
    │       │   │   ├── pagecommand(value:in:step:).json
    │       │   │   ├── pickerstyle(_:).json
    │       │   │   ├── popover(ispresented:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── popover(item:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── position(_:).json
    │       │   │   ├── position(x:y:).json
    │       │   │   ├── preference(key:value:).json
    │       │   │   ├── preferredcolorscheme(_:).json
    │       │   │   ├── prefersdefaultfocus(_:in:).json
    │       │   │   ├── presentedwindowstyle(_:).json
    │       │   │   ├── presentedwindowtoolbarstyle(_:).json
    │       │   │   ├── previewcontext(_:).json
    │       │   │   ├── previewdevice(_:).json
    │       │   │   ├── previewdisplayname(_:).json
    │       │   │   ├── previewinterfaceorientation(_:).json
    │       │   │   ├── previewlayout(_:).json
    │       │   │   ├── privacysensitive(_:).json
    │       │   │   ├── progressviewstyle(_:).json
    │       │   │   ├── projectioneffect(_:).json
    │       │   │   ├── redacted(reason:).json
    │       │   │   ├── refreshable(action:).json
    │       │   │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:).json
    │       │   │   ├── rotationeffect(_:anchor:).json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-9cc9j.json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-9ojua.json
    │       │   │   ├── saturation(_:).json
    │       │   │   ├── scaledtofill().json
    │       │   │   ├── scaledtofit().json
    │       │   │   ├── scaleeffect(_:anchor:)-2caa5.json
    │       │   │   ├── scaleeffect(_:anchor:)-718iu.json
    │       │   │   ├── scaleeffect(x:y:anchor:).json
    │       │   │   ├── scenepadding(_:).json
    │       │   │   ├── searchable(text:placement:prompt:)-2vm7x.json
    │       │   │   ├── searchable(text:placement:prompt:)-8rgzb.json
    │       │   │   ├── searchable(text:placement:prompt:)-988ga.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-3zci7.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-5taln.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-8jhzt.json
    │       │   │   ├── searchcompletion(_:).json
    │       │   │   ├── shadow(color:radius:x:y:).json
    │       │   │   ├── sheet(ispresented:ondismiss:content:).json
    │       │   │   ├── sheet(item:ondismiss:content:).json
    │       │   │   ├── shuffleanimation(_:).json
    │       │   │   ├── shuffledeckanimation(_:).json
    │       │   │   ├── shuffledeckdisabled(_:).json
    │       │   │   ├── shuffledeckscale(_:).json
    │       │   │   ├── shuffledeckstyle(_:).json
    │       │   │   ├── shuffledecktrigger(on:).json
    │       │   │   ├── shuffledisabled(_:).json
    │       │   │   ├── shuffleoffset(_:).json
    │       │   │   ├── shufflepadding(_:).json
    │       │   │   ├── shufflescale(_:).json
    │       │   │   ├── shufflestyle(_:).json
    │       │   │   ├── shuffletrigger(on:).json
    │       │   │   ├── simultaneousgesture(_:including:).json
    │       │   │   ├── speechadjustedpitch(_:).json
    │       │   │   ├── speechalwaysincludespunctuation(_:).json
    │       │   │   ├── speechannouncementsqueued(_:).json
    │       │   │   ├── speechspellsoutcharacters(_:).json
    │       │   │   ├── submitlabel(_:).json
    │       │   │   ├── submitscope(_:).json
    │       │   │   ├── swipeactions(edge:allowsfullswipe:content:).json
    │       │   │   ├── symbolrenderingmode(_:).json
    │       │   │   ├── symbolvariant(_:).json
    │       │   │   ├── tabitem(_:).json
    │       │   │   ├── tablestyle(_:).json
    │       │   │   ├── tabviewstyle(_:).json
    │       │   │   ├── tag(_:).json
    │       │   │   ├── task(id:priority:_:).json
    │       │   │   ├── task(priority:_:).json
    │       │   │   ├── textcase(_:).json
    │       │   │   ├── textcontenttype(_:).json
    │       │   │   ├── textfieldstyle(_:).json
    │       │   │   ├── textselection(_:).json
    │       │   │   ├── tint(_:).json
    │       │   │   ├── togglestyle(_:).json
    │       │   │   ├── toolbar(content:)-2fsde.json
    │       │   │   ├── toolbar(content:)-9838r.json
    │       │   │   ├── toolbar(id:content:).json
    │       │   │   ├── touchbar(_:).json
    │       │   │   ├── touchbar(content:).json
    │       │   │   ├── touchbarcustomizationlabel(_:).json
    │       │   │   ├── touchbaritempresence(_:).json
    │       │   │   ├── touchbaritemprincipal(_:).json
    │       │   │   ├── transaction(_:).json
    │       │   │   ├── transformanchorpreference(key:value:transform:).json
    │       │   │   ├── transformeffect(_:).json
    │       │   │   ├── transformenvironment(_:transform:).json
    │       │   │   ├── transformpreference(_:_:).json
    │       │   │   ├── transition(_:).json
    │       │   │   ├── truncationmode(_:).json
    │       │   │   ├── unredacted().json
    │       │   │   ├── useractivity(_:element:_:).json
    │       │   │   ├── useractivity(_:isactive:_:).json
    │       │   │   ├── view-implementations.json
    │       │   │   └── zindex(_:).json
    │       │   ├── shufflestack.json
    │       │   ├── shufflestyle/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── rotatein.json
    │       │   │   ├── rotateout.json
    │       │   │   └── slide.json
    │       │   └── shufflestyle.json
    │       └── shuffleit.json
    ├── documentation/
    │   └── shuffleit/
    │       ├── carouselanimation/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── easein/
    │       │   │   └── index.html
    │       │   ├── easeinout/
    │       │   │   └── index.html
    │       │   ├── easeout/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── linear/
    │       │       └── index.html
    │       ├── carouselcontext/
    │       │   ├── direction/
    │       │   │   └── index.html
    │       │   ├── index/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── previousindex/
    │       │       └── index.html
    │       ├── carouseldirection/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── left/
    │       │   │   └── index.html
    │       │   └── right/
    │       │       └── index.html
    │       ├── carouselstack/
    │       │   ├── accentcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-4y62/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-695kx/
    │       │   │   └── index.html
    │       │   ├── accessibility(addtraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hidden:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hint:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(identifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(inputlabels:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(label:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(removetraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(selectionidentifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(sortpriority:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(value:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(_:_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(action:label:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-3lqsr/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-69c69/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-rgyh/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-5bbv5/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-8dokx/
    │       │   │   └── index.html
    │       │   ├── accessibilityaddtraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityadjustableaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychartdescriptor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychildren(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1586n/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1u9b5/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-3t2kq/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-46frq/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-47g1f/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-5xqqc/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-8rfm7/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-9cou3/
    │       │   │   └── index.html
    │       │   ├── accessibilityelement(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityheading(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhidden(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-2j7te/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-37ope/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-7yi0h/
    │       │   │   └── index.html
    │       │   ├── accessibilityidentifier(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityignoresinvertcolors(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3feba/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3p703/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-95tn0/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-2tohn/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-755g2/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-8bin6/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabeledpair(role:id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitylinkedgroup(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityremovetraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrepresentation(representation:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrespondstouserinteraction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-1c2au/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-4pacb/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-4w7j0/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-825mo/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1w44t/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-4vvcg/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-5gz2c/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-utor/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-25t4x/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-3evdd/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-4e9vu/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-59b0s/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-25npe/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-3d2p8/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-4jxor/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-9sgga/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotorentry(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityscrollaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer()/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitysortpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitytextcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-5fw6g/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-5y8gy/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-8ihs6/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-1q2gb/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-76wk8/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-7wghk/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-5s7hn/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-9a4q7/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-f5o2/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-4edmo/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-4uw7u/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-8axxo/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-226oe/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-4tvm3/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7b0gl/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:content:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:message:)/
    │       │   │   └── index.html
    │       │   ├── alert(item:content:)/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-4r6p/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-8e6vc/
    │       │   │   └── index.html
    │       │   ├── allowshittesting(_:)/
    │       │   │   └── index.html
    │       │   ├── allowstightening(_:)/
    │       │   │   └── index.html
    │       │   ├── anchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:value:)/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-72t0z/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-8gir9/
    │       │   │   └── index.html
    │       │   ├── background(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── background(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-4hb5h/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-5xuxn/
    │       │   │   └── index.html
    │       │   ├── background(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── background(ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-2lcq8/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-6gtsb/
    │       │   │   └── index.html
    │       │   ├── backgroundpreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-10ceg/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-6ah2/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-7kz0m/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-8lj4d/
    │       │   │   └── index.html
    │       │   ├── blendmode(_:)/
    │       │   │   └── index.html
    │       │   ├── blur(radius:opaque:)/
    │       │   │   └── index.html
    │       │   ├── body/
    │       │   │   └── index.html
    │       │   ├── border(_:width:)/
    │       │   │   └── index.html
    │       │   ├── brightness(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonbordershape(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-6awhx/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-8ljh4/
    │       │   │   └── index.html
    │       │   ├── carouselanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseldisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselpadding(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselscale(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselspacing(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseltrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── clipped(antialiased:)/
    │       │   │   └── index.html
    │       │   ├── clipshape(_:style:)/
    │       │   │   └── index.html
    │       │   ├── colorinvert()/
    │       │   │   └── index.html
    │       │   ├── colormultiply(_:)/
    │       │   │   └── index.html
    │       │   ├── colorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── compositinggroup()/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-1uzrt/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-5d29j/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-718e5/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-65zoh/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-951t3/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9yu7k/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1ji6h/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-4fi9z/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-51cln/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-2m470/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-9o8j/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-g5bx/
    │       │   │   └── index.html
    │       │   ├── containershape(_:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(_:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(menuitems:)/
    │       │   │   └── index.html
    │       │   ├── contrast(_:)/
    │       │   │   └── index.html
    │       │   ├── controlgroupstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── controlsize(_:)/
    │       │   │   └── index.html
    │       │   ├── coordinatespace(name:)/
    │       │   │   └── index.html
    │       │   ├── cornerradius(_:antialiased:)/
    │       │   │   └── index.html
    │       │   ├── datepickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── defaultappstorage(_:)/
    │       │   │   └── index.html
    │       │   ├── deletedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── disableautocorrection(_:)/
    │       │   │   └── index.html
    │       │   ├── disabled(_:)/
    │       │   │   └── index.html
    │       │   ├── drawinggroup(opaque:colormode:)/
    │       │   │   └── index.html
    │       │   ├── dynamictypesize(_:)/
    │       │   │   └── index.html
    │       │   ├── edgesignoringsafearea(_:)/
    │       │   │   └── index.html
    │       │   ├── environment(_:_:)/
    │       │   │   └── index.html
    │       │   ├── environmentobject(_:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:onedit:)/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-2xo1j/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-5w70m/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-9dfyf/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-vkdb/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:file:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:files:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fixedsize()/
    │       │   │   └── index.html
    │       │   ├── fixedsize(horizontal:vertical:)/
    │       │   │   └── index.html
    │       │   ├── flipsforrighttoleftlayoutdirection(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:onfocuschange:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── focusedscenevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusedvalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusscope(_:)/
    │       │   │   └── index.html
    │       │   ├── font(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:_:)/
    │       │   │   └── index.html
    │       │   ├── frame()/
    │       │   │   └── index.html
    │       │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)/
    │       │   │   └── index.html
    │       │   ├── frame(width:height:alignment:)/
    │       │   │   └── index.html
    │       │   ├── gesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── grayscale(_:)/
    │       │   │   └── index.html
    │       │   ├── groupboxstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── handlesexternalevents(preferring:allowing:)/
    │       │   │   └── index.html
    │       │   ├── headerprominence(_:)/
    │       │   │   └── index.html
    │       │   ├── help(_:)-1f2w4/
    │       │   │   └── index.html
    │       │   ├── help(_:)-1g6m4/
    │       │   │   └── index.html
    │       │   ├── help(_:)-9mw1c/
    │       │   │   └── index.html
    │       │   ├── hidden()/
    │       │   │   └── index.html
    │       │   ├── highprioritygesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── horizontalradiogrouplayout()/
    │       │   │   └── index.html
    │       │   ├── huerotation(_:)/
    │       │   │   └── index.html
    │       │   ├── id(_:)/
    │       │   │   └── index.html
    │       │   ├── ignoressafearea(_:edges:)/
    │       │   │   └── index.html
    │       │   ├── imagescale(_:)/
    │       │   │   └── index.html
    │       │   ├── importsitemproviders(_:onimport:)/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── init(_:initialindex:content:)-70npt/
    │       │   │   └── index.html
    │       │   ├── init(_:initialindex:content:)-7edjn/
    │       │   │   └── index.html
    │       │   ├── interactivedismissdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── itemprovider(_:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-2vfia/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-6bxt2/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:localization:)/
    │       │   │   └── index.html
    │       │   ├── labelshidden()/
    │       │   │   └── index.html
    │       │   ├── labelstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── layoutpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── linelimit(_:)/
    │       │   │   └── index.html
    │       │   ├── linespacing(_:)/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-9yojl/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-w4ry/
    │       │   │   └── index.html
    │       │   ├── listrowbackground(_:)/
    │       │   │   └── index.html
    │       │   ├── listrowinsets(_:)/
    │       │   │   └── index.html
    │       │   ├── liststyle(_:)/
    │       │   │   └── index.html
    │       │   ├── luminancetoalpha()/
    │       │   │   └── index.html
    │       │   ├── mask(_:)/
    │       │   │   └── index.html
    │       │   ├── mask(alignment:_:)/
    │       │   │   └── index.html
    │       │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:)/
    │       │   │   └── index.html
    │       │   ├── menubuttonstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── menuindicator(_:)/
    │       │   │   └── index.html
    │       │   ├── menustyle(_:)/
    │       │   │   └── index.html
    │       │   ├── minimumscalefactor(_:)/
    │       │   │   └── index.html
    │       │   ├── modifier(_:)/
    │       │   │   └── index.html
    │       │   ├── monospaceddigit()/
    │       │   │   └── index.html
    │       │   ├── movedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── multilinetextalignment(_:)/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-10991/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-7xq4j/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-8lv93/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-544cp/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-5xkgg/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7209e/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-8mmxy/
    │       │   │   └── index.html
    │       │   ├── navigationviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(x:y:)/
    │       │   │   └── index.html
    │       │   ├── onappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncarousel(_:)/
    │       │   │   └── index.html
    │       │   ├── oncarouseltranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onchange(of:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncommand(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncontinueuseractivity(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncopycommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncutcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondeletecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondisappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:preview:)/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-2phlc/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-5rv2/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-1ne0m/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-2dbsa/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-3z0u6/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-7mvpm/
    │       │   │   └── index.html
    │       │   ├── onexitcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onhover(perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onmovecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onopenurl(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-27ier/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-2cj5d/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-18sg7/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-1ws2h/
    │       │   │   └── index.html
    │       │   ├── onplaypausecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpreferencechange(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onreceive(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onshuffle(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledeck(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledecktranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffletranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onsubmit(of:_:)/
    │       │   │   └── index.html
    │       │   ├── ontapgesture(count:perform:)/
    │       │   │   └── index.html
    │       │   ├── opacity(_:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:in:fillstyle:)/
    │       │   │   └── index.html
    │       │   ├── overlay(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── overlaypreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-254fg/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-h9m6/
    │       │   │   └── index.html
    │       │   ├── padding(_:_:)/
    │       │   │   └── index.html
    │       │   ├── pagecommand(value:in:step:)/
    │       │   │   └── index.html
    │       │   ├── pickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── popover(ispresented:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── popover(item:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── position(_:)/
    │       │   │   └── index.html
    │       │   ├── position(x:y:)/
    │       │   │   └── index.html
    │       │   ├── preference(key:value:)/
    │       │   │   └── index.html
    │       │   ├── preferredcolorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── prefersdefaultfocus(_:in:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowtoolbarstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── previewcontext(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdevice(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdisplayname(_:)/
    │       │   │   └── index.html
    │       │   ├── previewinterfaceorientation(_:)/
    │       │   │   └── index.html
    │       │   ├── previewlayout(_:)/
    │       │   │   └── index.html
    │       │   ├── privacysensitive(_:)/
    │       │   │   └── index.html
    │       │   ├── progressviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── projectioneffect(_:)/
    │       │   │   └── index.html
    │       │   ├── redacted(reason:)/
    │       │   │   └── index.html
    │       │   ├── refreshable(action:)/
    │       │   │   └── index.html
    │       │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:)/
    │       │   │   └── index.html
    │       │   ├── rotationeffect(_:anchor:)/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-5p4xh/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-8nq8e/
    │       │   │   └── index.html
    │       │   ├── saturation(_:)/
    │       │   │   └── index.html
    │       │   ├── scaledtofill()/
    │       │   │   └── index.html
    │       │   ├── scaledtofit()/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-7oq71/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-9chpl/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(x:y:anchor:)/
    │       │   │   └── index.html
    │       │   ├── scenepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-31g2u/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-5dpdp/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-9859/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-2uz54/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-7bvn6/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-8bmqj/
    │       │   │   └── index.html
    │       │   ├── searchcompletion(_:)/
    │       │   │   └── index.html
    │       │   ├── shadow(color:radius:x:y:)/
    │       │   │   └── index.html
    │       │   ├── sheet(ispresented:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── sheet(item:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── shuffleanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckscale(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledecktrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── shuffledisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffleoffset(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflescale(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffletrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── simultaneousgesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── speechadjustedpitch(_:)/
    │       │   │   └── index.html
    │       │   ├── speechalwaysincludespunctuation(_:)/
    │       │   │   └── index.html
    │       │   ├── speechannouncementsqueued(_:)/
    │       │   │   └── index.html
    │       │   ├── speechspellsoutcharacters(_:)/
    │       │   │   └── index.html
    │       │   ├── submitlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── submitscope(_:)/
    │       │   │   └── index.html
    │       │   ├── swipeactions(edge:allowsfullswipe:content:)/
    │       │   │   └── index.html
    │       │   ├── symbolrenderingmode(_:)/
    │       │   │   └── index.html
    │       │   ├── symbolvariant(_:)/
    │       │   │   └── index.html
    │       │   ├── tabitem(_:)/
    │       │   │   └── index.html
    │       │   ├── tablestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tabviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tag(_:)/
    │       │   │   └── index.html
    │       │   ├── task(id:priority:_:)/
    │       │   │   └── index.html
    │       │   ├── task(priority:_:)/
    │       │   │   └── index.html
    │       │   ├── textcase(_:)/
    │       │   │   └── index.html
    │       │   ├── textcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── textfieldstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── textselection(_:)/
    │       │   │   └── index.html
    │       │   ├── tint(_:)/
    │       │   │   └── index.html
    │       │   ├── togglestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-6zmlc/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-7j09e/
    │       │   │   └── index.html
    │       │   ├── toolbar(id:content:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(content:)/
    │       │   │   └── index.html
    │       │   ├── touchbarcustomizationlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritempresence(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritemprincipal(_:)/
    │       │   │   └── index.html
    │       │   ├── transaction(_:)/
    │       │   │   └── index.html
    │       │   ├── transformanchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformeffect(_:)/
    │       │   │   └── index.html
    │       │   ├── transformenvironment(_:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformpreference(_:_:)/
    │       │   │   └── index.html
    │       │   ├── transition(_:)/
    │       │   │   └── index.html
    │       │   ├── truncationmode(_:)/
    │       │   │   └── index.html
    │       │   ├── unredacted()/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:element:_:)/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:isactive:_:)/
    │       │   │   └── index.html
    │       │   ├── view-implementations/
    │       │   │   └── index.html
    │       │   └── zindex(_:)/
    │       │       └── index.html
    │       ├── carouselstyle/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── finitescroll/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── infinitescroll/
    │       │       └── index.html
    │       ├── index.html
    │       ├── shuffleanimation/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── easein/
    │       │   │   └── index.html
    │       │   ├── easeinout/
    │       │   │   └── index.html
    │       │   ├── easeout/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── linear/
    │       │       └── index.html
    │       ├── shufflecontext/
    │       │   ├── direction/
    │       │   │   └── index.html
    │       │   ├── index/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── previousindex/
    │       │       └── index.html
    │       ├── shuffledeck/
    │       │   ├── accentcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-5yxv/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-6f80/
    │       │   │   └── index.html
    │       │   ├── accessibility(addtraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hidden:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hint:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(identifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(inputlabels:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(label:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(removetraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(selectionidentifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(sortpriority:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(value:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(_:_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(action:label:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-5vajk/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7cvr0/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7d1bz/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-4i64i/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-8rijn/
    │       │   │   └── index.html
    │       │   ├── accessibilityaddtraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityadjustableaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychartdescriptor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychildren(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1dnrk/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1ucuw/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-2nazk/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-3pllm/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-3pod7/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-4xdb3/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-5vxjo/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-qwm7/
    │       │   │   └── index.html
    │       │   ├── accessibilityelement(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityheading(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhidden(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-1rrl0/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-5nt5z/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-v4ao/
    │       │   │   └── index.html
    │       │   ├── accessibilityidentifier(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityignoresinvertcolors(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3x55a/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-6n0d7/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-8jm4t/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-3ly3t/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-4h91y/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-6a6no/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabeledpair(role:id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitylinkedgroup(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityremovetraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrepresentation(representation:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrespondstouserinteraction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-1orax/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-2p5bh/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-5mxjh/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-7dolw/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-10oqf/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-25d98/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-51dnw/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6jn71/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-3f3j9/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-3lh2p/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-6wf02/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-7t24j/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-6nczq/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-8d4es/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-8l6zm/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-964n8/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotorentry(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityscrollaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer()/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitysortpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitytextcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-3kff4/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-7dd6l/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-7tnqf/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-2i24c/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-6i5wg/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-6mdoc/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-5j65x/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-6iohl/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-8x9o0/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-43fim/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-6dwv5/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-77clm/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7p8yz/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7ptxx/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-88es2/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:content:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:message:)/
    │       │   │   └── index.html
    │       │   ├── alert(item:content:)/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-5dc06/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-98bnf/
    │       │   │   └── index.html
    │       │   ├── allowshittesting(_:)/
    │       │   │   └── index.html
    │       │   ├── allowstightening(_:)/
    │       │   │   └── index.html
    │       │   ├── anchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:value:)/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-7qpsf/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-98csp/
    │       │   │   └── index.html
    │       │   ├── background(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── background(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-16mk7/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-3xtjy/
    │       │   │   └── index.html
    │       │   ├── background(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── background(ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-22zkr/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-pkki/
    │       │   │   └── index.html
    │       │   ├── backgroundpreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-23vvh/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-3b7a5/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-4eyh0/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-5yfrj/
    │       │   │   └── index.html
    │       │   ├── blendmode(_:)/
    │       │   │   └── index.html
    │       │   ├── blur(radius:opaque:)/
    │       │   │   └── index.html
    │       │   ├── body/
    │       │   │   └── index.html
    │       │   ├── border(_:width:)/
    │       │   │   └── index.html
    │       │   ├── brightness(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonbordershape(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-1hkio/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-1mobg/
    │       │   │   └── index.html
    │       │   ├── carouselanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseldisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselpadding(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselscale(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselspacing(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseltrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── clipped(antialiased:)/
    │       │   │   └── index.html
    │       │   ├── clipshape(_:style:)/
    │       │   │   └── index.html
    │       │   ├── colorinvert()/
    │       │   │   └── index.html
    │       │   ├── colormultiply(_:)/
    │       │   │   └── index.html
    │       │   ├── colorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── compositinggroup()/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7c2i9/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7p1mg/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-9t8f5/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-592a8/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-6sq5i/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-8ffij/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-455gp/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pvn4/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-8fhv/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4bg57/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4pxpc/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-50r8e/
    │       │   │   └── index.html
    │       │   ├── containershape(_:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(_:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(menuitems:)/
    │       │   │   └── index.html
    │       │   ├── contrast(_:)/
    │       │   │   └── index.html
    │       │   ├── controlgroupstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── controlsize(_:)/
    │       │   │   └── index.html
    │       │   ├── coordinatespace(name:)/
    │       │   │   └── index.html
    │       │   ├── cornerradius(_:antialiased:)/
    │       │   │   └── index.html
    │       │   ├── datepickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── defaultappstorage(_:)/
    │       │   │   └── index.html
    │       │   ├── deletedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── disableautocorrection(_:)/
    │       │   │   └── index.html
    │       │   ├── disabled(_:)/
    │       │   │   └── index.html
    │       │   ├── drawinggroup(opaque:colormode:)/
    │       │   │   └── index.html
    │       │   ├── dynamictypesize(_:)/
    │       │   │   └── index.html
    │       │   ├── edgesignoringsafearea(_:)/
    │       │   │   └── index.html
    │       │   ├── environment(_:_:)/
    │       │   │   └── index.html
    │       │   ├── environmentobject(_:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:onedit:)/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-54p9i/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-z1af/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-4ixib/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-72o0w/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:file:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:files:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fixedsize()/
    │       │   │   └── index.html
    │       │   ├── fixedsize(horizontal:vertical:)/
    │       │   │   └── index.html
    │       │   ├── flipsforrighttoleftlayoutdirection(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:onfocuschange:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── focusedscenevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusedvalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusscope(_:)/
    │       │   │   └── index.html
    │       │   ├── font(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:_:)/
    │       │   │   └── index.html
    │       │   ├── frame()/
    │       │   │   └── index.html
    │       │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)/
    │       │   │   └── index.html
    │       │   ├── frame(width:height:alignment:)/
    │       │   │   └── index.html
    │       │   ├── gesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── grayscale(_:)/
    │       │   │   └── index.html
    │       │   ├── groupboxstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── handlesexternalevents(preferring:allowing:)/
    │       │   │   └── index.html
    │       │   ├── headerprominence(_:)/
    │       │   │   └── index.html
    │       │   ├── help(_:)-4gfc1/
    │       │   │   └── index.html
    │       │   ├── help(_:)-57kg7/
    │       │   │   └── index.html
    │       │   ├── help(_:)-5c7gg/
    │       │   │   └── index.html
    │       │   ├── hidden()/
    │       │   │   └── index.html
    │       │   ├── highprioritygesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── horizontalradiogrouplayout()/
    │       │   │   └── index.html
    │       │   ├── huerotation(_:)/
    │       │   │   └── index.html
    │       │   ├── id(_:)/
    │       │   │   └── index.html
    │       │   ├── ignoressafearea(_:edges:)/
    │       │   │   └── index.html
    │       │   ├── imagescale(_:)/
    │       │   │   └── index.html
    │       │   ├── importsitemproviders(_:onimport:)/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── init(_:initialindex:content:)-6ou47/
    │       │   │   └── index.html
    │       │   ├── init(_:initialindex:content:)-9osfg/
    │       │   │   └── index.html
    │       │   ├── interactivedismissdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── itemprovider(_:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-8kg9p/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-92las/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:localization:)/
    │       │   │   └── index.html
    │       │   ├── labelshidden()/
    │       │   │   └── index.html
    │       │   ├── labelstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── layoutpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── linelimit(_:)/
    │       │   │   └── index.html
    │       │   ├── linespacing(_:)/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-4okc6/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-8uys6/
    │       │   │   └── index.html
    │       │   ├── listrowbackground(_:)/
    │       │   │   └── index.html
    │       │   ├── listrowinsets(_:)/
    │       │   │   └── index.html
    │       │   ├── liststyle(_:)/
    │       │   │   └── index.html
    │       │   ├── luminancetoalpha()/
    │       │   │   └── index.html
    │       │   ├── mask(_:)/
    │       │   │   └── index.html
    │       │   ├── mask(alignment:_:)/
    │       │   │   └── index.html
    │       │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:)/
    │       │   │   └── index.html
    │       │   ├── menubuttonstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── menuindicator(_:)/
    │       │   │   └── index.html
    │       │   ├── menustyle(_:)/
    │       │   │   └── index.html
    │       │   ├── minimumscalefactor(_:)/
    │       │   │   └── index.html
    │       │   ├── modifier(_:)/
    │       │   │   └── index.html
    │       │   ├── monospaceddigit()/
    │       │   │   └── index.html
    │       │   ├── movedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── multilinetextalignment(_:)/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-4xcr1/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-62wq4/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-89wf8/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-15ycd/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-3gz4j/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-6t67o/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-8moj6/
    │       │   │   └── index.html
    │       │   ├── navigationviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(x:y:)/
    │       │   │   └── index.html
    │       │   ├── onappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncarousel(_:)/
    │       │   │   └── index.html
    │       │   ├── oncarouseltranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onchange(of:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncommand(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncontinueuseractivity(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncopycommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncutcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondeletecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondisappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:preview:)/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-55jbd/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-9xy3o/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-2wosm/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-4zd72/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-6o6wo/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-btgb/
    │       │   │   └── index.html
    │       │   ├── onexitcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onhover(perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onmovecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onopenurl(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-3phpt/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-7nzf4/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-5h2lv/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-7k6qm/
    │       │   │   └── index.html
    │       │   ├── onplaypausecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpreferencechange(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onreceive(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onshuffle(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledeck(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledecktranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffletranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onsubmit(of:_:)/
    │       │   │   └── index.html
    │       │   ├── ontapgesture(count:perform:)/
    │       │   │   └── index.html
    │       │   ├── opacity(_:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:in:fillstyle:)/
    │       │   │   └── index.html
    │       │   ├── overlay(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── overlaypreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-5f3wf/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-7cp9q/
    │       │   │   └── index.html
    │       │   ├── padding(_:_:)/
    │       │   │   └── index.html
    │       │   ├── pagecommand(value:in:step:)/
    │       │   │   └── index.html
    │       │   ├── pickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── popover(ispresented:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── popover(item:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── position(_:)/
    │       │   │   └── index.html
    │       │   ├── position(x:y:)/
    │       │   │   └── index.html
    │       │   ├── preference(key:value:)/
    │       │   │   └── index.html
    │       │   ├── preferredcolorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── prefersdefaultfocus(_:in:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowtoolbarstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── previewcontext(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdevice(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdisplayname(_:)/
    │       │   │   └── index.html
    │       │   ├── previewinterfaceorientation(_:)/
    │       │   │   └── index.html
    │       │   ├── previewlayout(_:)/
    │       │   │   └── index.html
    │       │   ├── privacysensitive(_:)/
    │       │   │   └── index.html
    │       │   ├── progressviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── projectioneffect(_:)/
    │       │   │   └── index.html
    │       │   ├── redacted(reason:)/
    │       │   │   └── index.html
    │       │   ├── refreshable(action:)/
    │       │   │   └── index.html
    │       │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:)/
    │       │   │   └── index.html
    │       │   ├── rotationeffect(_:anchor:)/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-4gojk/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-9bx6p/
    │       │   │   └── index.html
    │       │   ├── saturation(_:)/
    │       │   │   └── index.html
    │       │   ├── scaledtofill()/
    │       │   │   └── index.html
    │       │   ├── scaledtofit()/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-4byje/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-6bduh/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(x:y:anchor:)/
    │       │   │   └── index.html
    │       │   ├── scenepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-2i9jl/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-50j7i/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-75a6t/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-5bsg8/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-5ib9a/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-8fyqc/
    │       │   │   └── index.html
    │       │   ├── searchcompletion(_:)/
    │       │   │   └── index.html
    │       │   ├── shadow(color:radius:x:y:)/
    │       │   │   └── index.html
    │       │   ├── sheet(ispresented:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── sheet(item:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── shuffleanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckscale(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledecktrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── shuffledisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffleoffset(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflescale(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffletrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── simultaneousgesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── speechadjustedpitch(_:)/
    │       │   │   └── index.html
    │       │   ├── speechalwaysincludespunctuation(_:)/
    │       │   │   └── index.html
    │       │   ├── speechannouncementsqueued(_:)/
    │       │   │   └── index.html
    │       │   ├── speechspellsoutcharacters(_:)/
    │       │   │   └── index.html
    │       │   ├── submitlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── submitscope(_:)/
    │       │   │   └── index.html
    │       │   ├── swipeactions(edge:allowsfullswipe:content:)/
    │       │   │   └── index.html
    │       │   ├── symbolrenderingmode(_:)/
    │       │   │   └── index.html
    │       │   ├── symbolvariant(_:)/
    │       │   │   └── index.html
    │       │   ├── tabitem(_:)/
    │       │   │   └── index.html
    │       │   ├── tablestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tabviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tag(_:)/
    │       │   │   └── index.html
    │       │   ├── task(id:priority:_:)/
    │       │   │   └── index.html
    │       │   ├── task(priority:_:)/
    │       │   │   └── index.html
    │       │   ├── textcase(_:)/
    │       │   │   └── index.html
    │       │   ├── textcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── textfieldstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── textselection(_:)/
    │       │   │   └── index.html
    │       │   ├── tint(_:)/
    │       │   │   └── index.html
    │       │   ├── togglestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-2k0pt/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-4sm5t/
    │       │   │   └── index.html
    │       │   ├── toolbar(id:content:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(content:)/
    │       │   │   └── index.html
    │       │   ├── touchbarcustomizationlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritempresence(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritemprincipal(_:)/
    │       │   │   └── index.html
    │       │   ├── transaction(_:)/
    │       │   │   └── index.html
    │       │   ├── transformanchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformeffect(_:)/
    │       │   │   └── index.html
    │       │   ├── transformenvironment(_:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformpreference(_:_:)/
    │       │   │   └── index.html
    │       │   ├── transition(_:)/
    │       │   │   └── index.html
    │       │   ├── truncationmode(_:)/
    │       │   │   └── index.html
    │       │   ├── unredacted()/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:element:_:)/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:isactive:_:)/
    │       │   │   └── index.html
    │       │   ├── view-implementations/
    │       │   │   └── index.html
    │       │   └── zindex(_:)/
    │       │       └── index.html
    │       ├── shuffledeckanimation/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── easein/
    │       │   │   └── index.html
    │       │   ├── easeinout/
    │       │   │   └── index.html
    │       │   ├── easeout/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── linear/
    │       │       └── index.html
    │       ├── shuffledeckcontext/
    │       │   ├── direction/
    │       │   │   └── index.html
    │       │   ├── index/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── previousindex/
    │       │       └── index.html
    │       ├── shuffledeckdirection/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── left/
    │       │   │   └── index.html
    │       │   └── right/
    │       │       └── index.html
    │       ├── shuffledeckstyle/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── finiteshuffle/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── infiniteshuffle/
    │       │       └── index.html
    │       ├── shuffledirection/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── left/
    │       │   │   └── index.html
    │       │   └── right/
    │       │       └── index.html
    │       ├── shufflestack/
    │       │   ├── accentcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-1nikr/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-9o1ut/
    │       │   │   └── index.html
    │       │   ├── accessibility(addtraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hidden:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hint:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(identifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(inputlabels:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(label:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(removetraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(selectionidentifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(sortpriority:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(value:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(_:_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(action:label:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-5nf29/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7rxae/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7tk0c/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-57vfb/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-9osvr/
    │       │   │   └── index.html
    │       │   ├── accessibilityaddtraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityadjustableaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychartdescriptor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychildren(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1gi9v/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-375xz/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-571fc/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-72sim/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-7h1pz/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-8sma2/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-956rk/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-96ur4/
    │       │   │   └── index.html
    │       │   ├── accessibilityelement(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityheading(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhidden(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-45b9m/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-6451d/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-6m2eb/
    │       │   │   └── index.html
    │       │   ├── accessibilityidentifier(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityignoresinvertcolors(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3mfon/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-7hs3b/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-7kg3p/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-3has0/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-6dv6y/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-e66p/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabeledpair(role:id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitylinkedgroup(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityremovetraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrepresentation(representation:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrespondstouserinteraction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-3a01s/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-661b4/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-7kbeo/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-f4c5/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1kufn/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1o7jk/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-2ng74/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6akr8/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-6o30j/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-8e6r9/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-bva6/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-cxx7/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-1v5os/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-5mce6/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-7fpc1/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-91on2/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotorentry(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityscrollaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer()/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitysortpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitytextcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-6kh76/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-6x5in/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-tcbi/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-13ppe/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-31fv4/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-svpk/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-1lplz/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-42hzu/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-8jr1q/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-135kk/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-7je0d/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-7zzve/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-17uu0/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-36zvz/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7caah/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:content:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:message:)/
    │       │   │   └── index.html
    │       │   ├── alert(item:content:)/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-23g26/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-4kcej/
    │       │   │   └── index.html
    │       │   ├── allowshittesting(_:)/
    │       │   │   └── index.html
    │       │   ├── allowstightening(_:)/
    │       │   │   └── index.html
    │       │   ├── anchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:value:)/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-9iav9/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-ggdx/
    │       │   │   └── index.html
    │       │   ├── background(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── background(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-1a2bf/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-8qwr1/
    │       │   │   └── index.html
    │       │   ├── background(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── background(ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-58j5e/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-8w09p/
    │       │   │   └── index.html
    │       │   ├── backgroundpreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-26gjx/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-2cz64/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-31kbp/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-4i0v1/
    │       │   │   └── index.html
    │       │   ├── blendmode(_:)/
    │       │   │   └── index.html
    │       │   ├── blur(radius:opaque:)/
    │       │   │   └── index.html
    │       │   ├── body/
    │       │   │   └── index.html
    │       │   ├── border(_:width:)/
    │       │   │   └── index.html
    │       │   ├── brightness(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonbordershape(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-42cf/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-4hs9e/
    │       │   │   └── index.html
    │       │   ├── carouselanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseldisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselpadding(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselscale(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselspacing(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseltrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── clipped(antialiased:)/
    │       │   │   └── index.html
    │       │   ├── clipshape(_:style:)/
    │       │   │   └── index.html
    │       │   ├── colorinvert()/
    │       │   │   └── index.html
    │       │   ├── colormultiply(_:)/
    │       │   │   └── index.html
    │       │   ├── colorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── compositinggroup()/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-41ud8/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-4ywhx/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7ipnf/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-1kurz/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-5vmyl/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9sue3/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1tkx/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-5diu1/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pkdq/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-296mh/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-5uj0y/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-7cjsq/
    │       │   │   └── index.html
    │       │   ├── containershape(_:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(_:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(menuitems:)/
    │       │   │   └── index.html
    │       │   ├── contrast(_:)/
    │       │   │   └── index.html
    │       │   ├── controlgroupstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── controlsize(_:)/
    │       │   │   └── index.html
    │       │   ├── coordinatespace(name:)/
    │       │   │   └── index.html
    │       │   ├── cornerradius(_:antialiased:)/
    │       │   │   └── index.html
    │       │   ├── datepickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── defaultappstorage(_:)/
    │       │   │   └── index.html
    │       │   ├── deletedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── disableautocorrection(_:)/
    │       │   │   └── index.html
    │       │   ├── disabled(_:)/
    │       │   │   └── index.html
    │       │   ├── drawinggroup(opaque:colormode:)/
    │       │   │   └── index.html
    │       │   ├── dynamictypesize(_:)/
    │       │   │   └── index.html
    │       │   ├── edgesignoringsafearea(_:)/
    │       │   │   └── index.html
    │       │   ├── environment(_:_:)/
    │       │   │   └── index.html
    │       │   ├── environmentobject(_:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:onedit:)/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-6evgr/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-8iv2y/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-233kd/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-7map2/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:file:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:files:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fixedsize()/
    │       │   │   └── index.html
    │       │   ├── fixedsize(horizontal:vertical:)/
    │       │   │   └── index.html
    │       │   ├── flipsforrighttoleftlayoutdirection(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:onfocuschange:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── focusedscenevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusedvalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusscope(_:)/
    │       │   │   └── index.html
    │       │   ├── font(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:_:)/
    │       │   │   └── index.html
    │       │   ├── frame()/
    │       │   │   └── index.html
    │       │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)/
    │       │   │   └── index.html
    │       │   ├── frame(width:height:alignment:)/
    │       │   │   └── index.html
    │       │   ├── gesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── grayscale(_:)/
    │       │   │   └── index.html
    │       │   ├── groupboxstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── handlesexternalevents(preferring:allowing:)/
    │       │   │   └── index.html
    │       │   ├── headerprominence(_:)/
    │       │   │   └── index.html
    │       │   ├── help(_:)-296/
    │       │   │   └── index.html
    │       │   ├── help(_:)-2u744/
    │       │   │   └── index.html
    │       │   ├── help(_:)-4q5ms/
    │       │   │   └── index.html
    │       │   ├── hidden()/
    │       │   │   └── index.html
    │       │   ├── highprioritygesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── horizontalradiogrouplayout()/
    │       │   │   └── index.html
    │       │   ├── huerotation(_:)/
    │       │   │   └── index.html
    │       │   ├── id(_:)/
    │       │   │   └── index.html
    │       │   ├── ignoressafearea(_:edges:)/
    │       │   │   └── index.html
    │       │   ├── imagescale(_:)/
    │       │   │   └── index.html
    │       │   ├── importsitemproviders(_:onimport:)/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── init(_:initialindex:stackcontent:)-4x5f3/
    │       │   │   └── index.html
    │       │   ├── init(_:initialindex:stackcontent:)-8ktnr/
    │       │   │   └── index.html
    │       │   ├── interactivedismissdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── itemprovider(_:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-30f12/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-38k96/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:localization:)/
    │       │   │   └── index.html
    │       │   ├── labelshidden()/
    │       │   │   └── index.html
    │       │   ├── labelstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── layoutpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── linelimit(_:)/
    │       │   │   └── index.html
    │       │   ├── linespacing(_:)/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-66j6h/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-6zn9q/
    │       │   │   └── index.html
    │       │   ├── listrowbackground(_:)/
    │       │   │   └── index.html
    │       │   ├── listrowinsets(_:)/
    │       │   │   └── index.html
    │       │   ├── liststyle(_:)/
    │       │   │   └── index.html
    │       │   ├── luminancetoalpha()/
    │       │   │   └── index.html
    │       │   ├── mask(_:)/
    │       │   │   └── index.html
    │       │   ├── mask(alignment:_:)/
    │       │   │   └── index.html
    │       │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:)/
    │       │   │   └── index.html
    │       │   ├── menubuttonstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── menuindicator(_:)/
    │       │   │   └── index.html
    │       │   ├── menustyle(_:)/
    │       │   │   └── index.html
    │       │   ├── minimumscalefactor(_:)/
    │       │   │   └── index.html
    │       │   ├── modifier(_:)/
    │       │   │   └── index.html
    │       │   ├── monospaceddigit()/
    │       │   │   └── index.html
    │       │   ├── movedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── multilinetextalignment(_:)/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-16d52/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-206md/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-7em2i/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7aj99/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7jd07/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7twkm/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7w547/
    │       │   │   └── index.html
    │       │   ├── navigationviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(x:y:)/
    │       │   │   └── index.html
    │       │   ├── onappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncarousel(_:)/
    │       │   │   └── index.html
    │       │   ├── oncarouseltranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onchange(of:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncommand(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncontinueuseractivity(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncopycommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncutcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondeletecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondisappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:preview:)/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-1ea27/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-8thdr/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-363wn/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-3bmbv/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-82gpe/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-84ef9/
    │       │   │   └── index.html
    │       │   ├── onexitcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onhover(perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onmovecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onopenurl(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-4k6ie/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-wliz/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-7tcqn/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-9ddq9/
    │       │   │   └── index.html
    │       │   ├── onplaypausecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpreferencechange(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onreceive(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onshuffle(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledeck(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledecktranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffletranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onsubmit(of:_:)/
    │       │   │   └── index.html
    │       │   ├── ontapgesture(count:perform:)/
    │       │   │   └── index.html
    │       │   ├── opacity(_:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:in:fillstyle:)/
    │       │   │   └── index.html
    │       │   ├── overlay(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── overlaypreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-7zetw/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-9obs7/
    │       │   │   └── index.html
    │       │   ├── padding(_:_:)/
    │       │   │   └── index.html
    │       │   ├── pagecommand(value:in:step:)/
    │       │   │   └── index.html
    │       │   ├── pickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── popover(ispresented:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── popover(item:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── position(_:)/
    │       │   │   └── index.html
    │       │   ├── position(x:y:)/
    │       │   │   └── index.html
    │       │   ├── preference(key:value:)/
    │       │   │   └── index.html
    │       │   ├── preferredcolorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── prefersdefaultfocus(_:in:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowtoolbarstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── previewcontext(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdevice(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdisplayname(_:)/
    │       │   │   └── index.html
    │       │   ├── previewinterfaceorientation(_:)/
    │       │   │   └── index.html
    │       │   ├── previewlayout(_:)/
    │       │   │   └── index.html
    │       │   ├── privacysensitive(_:)/
    │       │   │   └── index.html
    │       │   ├── progressviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── projectioneffect(_:)/
    │       │   │   └── index.html
    │       │   ├── redacted(reason:)/
    │       │   │   └── index.html
    │       │   ├── refreshable(action:)/
    │       │   │   └── index.html
    │       │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:)/
    │       │   │   └── index.html
    │       │   ├── rotationeffect(_:anchor:)/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-9cc9j/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-9ojua/
    │       │   │   └── index.html
    │       │   ├── saturation(_:)/
    │       │   │   └── index.html
    │       │   ├── scaledtofill()/
    │       │   │   └── index.html
    │       │   ├── scaledtofit()/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-2caa5/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-718iu/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(x:y:anchor:)/
    │       │   │   └── index.html
    │       │   ├── scenepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-2vm7x/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-8rgzb/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-988ga/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-3zci7/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-5taln/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-8jhzt/
    │       │   │   └── index.html
    │       │   ├── searchcompletion(_:)/
    │       │   │   └── index.html
    │       │   ├── shadow(color:radius:x:y:)/
    │       │   │   └── index.html
    │       │   ├── sheet(ispresented:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── sheet(item:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── shuffleanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckscale(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledecktrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── shuffledisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffleoffset(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflescale(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffletrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── simultaneousgesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── speechadjustedpitch(_:)/
    │       │   │   └── index.html
    │       │   ├── speechalwaysincludespunctuation(_:)/
    │       │   │   └── index.html
    │       │   ├── speechannouncementsqueued(_:)/
    │       │   │   └── index.html
    │       │   ├── speechspellsoutcharacters(_:)/
    │       │   │   └── index.html
    │       │   ├── submitlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── submitscope(_:)/
    │       │   │   └── index.html
    │       │   ├── swipeactions(edge:allowsfullswipe:content:)/
    │       │   │   └── index.html
    │       │   ├── symbolrenderingmode(_:)/
    │       │   │   └── index.html
    │       │   ├── symbolvariant(_:)/
    │       │   │   └── index.html
    │       │   ├── tabitem(_:)/
    │       │   │   └── index.html
    │       │   ├── tablestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tabviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tag(_:)/
    │       │   │   └── index.html
    │       │   ├── task(id:priority:_:)/
    │       │   │   └── index.html
    │       │   ├── task(priority:_:)/
    │       │   │   └── index.html
    │       │   ├── textcase(_:)/
    │       │   │   └── index.html
    │       │   ├── textcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── textfieldstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── textselection(_:)/
    │       │   │   └── index.html
    │       │   ├── tint(_:)/
    │       │   │   └── index.html
    │       │   ├── togglestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-2fsde/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-9838r/
    │       │   │   └── index.html
    │       │   ├── toolbar(id:content:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(content:)/
    │       │   │   └── index.html
    │       │   ├── touchbarcustomizationlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritempresence(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritemprincipal(_:)/
    │       │   │   └── index.html
    │       │   ├── transaction(_:)/
    │       │   │   └── index.html
    │       │   ├── transformanchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformeffect(_:)/
    │       │   │   └── index.html
    │       │   ├── transformenvironment(_:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformpreference(_:_:)/
    │       │   │   └── index.html
    │       │   ├── transition(_:)/
    │       │   │   └── index.html
    │       │   ├── truncationmode(_:)/
    │       │   │   └── index.html
    │       │   ├── unredacted()/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:element:_:)/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:isactive:_:)/
    │       │   │   └── index.html
    │       │   ├── view-implementations/
    │       │   │   └── index.html
    │       │   └── zindex(_:)/
    │       │       └── index.html
    │       └── shufflestyle/
    │           ├── !=(_:_:)/
    │           │   └── index.html
    │           ├── equatable-implementations/
    │           │   └── index.html
    │           ├── index.html
    │           ├── rotatein/
    │           │   └── index.html
    │           ├── rotateout/
    │           │   └── index.html
    │           └── slide/
    │               └── index.html
    ├── index/
    │   └── index.json
    ├── index.html
    ├── js/
    │   ├── chunk-2d0d3105.cd72cc8e.js
    │   ├── chunk-vendors.b24b7aaa.js
    │   ├── documentation-topic.f62098b6.js
    │   ├── documentation-topic~topic~tutorials-overview.8e36e44f.js
    │   ├── highlight-js-bash.1b52852f.js
    │   ├── highlight-js-c.d1db3f17.js
    │   ├── highlight-js-cpp.eaddddbe.js
    │   ├── highlight-js-css.75eab1fe.js
    │   ├── highlight-js-custom-markdown.7cffc4b3.js
    │   ├── highlight-js-custom-swift.5cda5c20.js
    │   ├── highlight-js-diff.62d66733.js
    │   ├── highlight-js-http.163e45b6.js
    │   ├── highlight-js-java.8326d9d8.js
    │   ├── highlight-js-javascript.acb8a8eb.js
    │   ├── highlight-js-json.471128d2.js
    │   ├── highlight-js-llvm.6100b125.js
    │   ├── highlight-js-markdown.90077643.js
    │   ├── highlight-js-objectivec.bcdf5156.js
    │   ├── highlight-js-perl.757d7b6f.js
    │   ├── highlight-js-php.cc8d6c27.js
    │   ├── highlight-js-python.c214ed92.js
    │   ├── highlight-js-ruby.f889d392.js
    │   ├── highlight-js-scss.62ee18da.js
    │   ├── highlight-js-shell.dd7f411f.js
    │   ├── highlight-js-swift.84f3e88c.js
    │   ├── highlight-js-xml.9c3688c7.js
    │   ├── index.58e30ec4.js
    │   ├── topic.6a1c7b7f.js
    │   └── tutorials-overview.c8178b83.js
    ├── metadata.json
    └── theme-settings.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.md
================================================
---
name: Bug Report
about: Create a report to help us improve
title: ''
labels: bug
assignees: dscyrescotti

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Minimum amount of code to reproduce:
```
/* add it here */
```
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Device information (please complete the following information):**
 - Device: [e.g. iPhone/Simulator]
 - OS: [e.g. iOS8.1]
 - Xcode version: [e.g. Xcode 13]

**Additional context**
Add any other context about the problem here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.md
================================================
---
name: Feature Request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: dscyrescotti

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.


================================================
FILE: .github/workflows/swift.yml
================================================
name: Swift

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:
    runs-on: macos-12
    steps:
    - uses: actions/checkout@v2
    - uses: maxim-lobanov/setup-xcode@v1
      with:
        xcode-version: '14.2'
    - name: Build
      run: swift build -v
    # - name: Build (iOS)
    #   run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=ios"
    # - name: Build (macOS)
    #   run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=macos"
    # - name: Build (tvOS)
    #   run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=tvos"
    # - name: Build (watchOS)
    #   run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=watchos"
    - name: Run tests
      run: swift test --enable-code-coverage
    - name: Convert code coverage
      run: xcrun llvm-cov export -format="lcov" -instr-profile=$(find .build -name default.profdata) $(find .build -name ShuffleItPackageTests) > info.lcov
    - name: Codecov
      uses: codecov/codecov-action@v3.1.1
      with:
        file: info.lcov


================================================
FILE: .gitignore
================================================
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

## Obj-C/Swift specific
*.hmap

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
Packages/
Package.pins
Package.resolved
# *.xcodeproj
#
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
.swiftpm

.build/

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
#
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
#
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

================================================
FILE: Demo/Demo/App/DemoApp.swift
================================================
import SwiftUI

@main
struct DemoApp: App {
    var body: some Scene {
        WindowGroup {
            MainView()
                .preferredColorScheme(.light)
        }
    }
}


================================================
FILE: Demo/Demo/App/MainView.swift
================================================
import SwiftUI

struct MainView: View {
    @State private var route: Route? = nil
    var body: some View {
        NavigationView {
            List {
                Section {
                    Button(action: {
                        route = .shuffleStack
                    }) {
                        Label("ShuffleStack (Simple)", systemImage: "square.stack.3d.down.forward.fill")
                    }
                    Button(action: {
                        route = .timingShuffleStack
                    }) {
                        Label("ShuffleStack (with Timer)", systemImage: "deskclock.fill")
                    }
                    Button(action: {
                        route = .carouselStack
                    }) {
                        Label("CarouselStack", systemImage: "sparkles.rectangle.stack.fill")
                    }
                    Button(action: {
                        route = .shuffleDeck
                    }) {
                        Label("ShuffleDeck", systemImage: "photo.on.rectangle.angled")
                    }
                } header: {
                    Text("ShuffleStack")
                }

            }
            .listStyle(.insetGrouped)
            .foregroundColor(.black)
            .navigationTitle("ShuffleIt ✌️")
            .fullScreenCover(item: $route) { route in
                switch route {
                case .shuffleStack:
                    ShuffleStackDemoView()
                case .timingShuffleStack:
                    TimingShuffleStackDemoView()
                case .carouselStack:
                    CarouselStackDemoView()
                case .shuffleDeck:
                    ShuffleDeckDemoView()
                }
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        MainView()
    }
}

enum Route: Identifiable {
    case shuffleStack
    case timingShuffleStack
    case carouselStack
    case shuffleDeck
    
    var id: String {
        switch self {
        case .shuffleStack: return "shuffle-stack"
        case .timingShuffleStack: return "timing-shuffle-stack"
        case .carouselStack: return "carousel-stack"
        case .shuffleDeck: return "shuffle-deck"
        }
    }
}


================================================
FILE: Demo/Demo/Components/LandmarkCard.swift
================================================
import SwiftUI

struct LandmarkCard: View {
    let landmark: Landmark

    var body: some View {
        ZStack(alignment: .bottomLeading) {
            Image(landmark.image)
                .resizable()
            LinearGradient(
                colors: [
                    .clear,
                    .clear,
                    .black.opacity(0.7)
                ],
                startPoint: .top,
                endPoint: .bottom
            )
            VStack(alignment: .leading) {
                Text(landmark.name)
                    .font(.title.bold())
                Text(landmark.location)
                    .font(.title3.bold())
            }
            .foregroundColor(.white)
            .padding()
        }
        .frame(width: 300, height: 400)
        .cornerRadius(20)
        .shadow(radius: 10)
    }
}

struct LandmarkCard_Previews: PreviewProvider {
    static var previews: some View {
        LandmarkCard(
            landmark: Landmark(
                id: "shwedagon_pagoda",
                image: "shwedagon_pagoda",
                name: "Shwedagon Pagoda",
                location: "Yangon, Myanmar",
                lat: 0,
                long: 0,
                background: ""
            )
        )
    }
}


================================================
FILE: Demo/Demo/Components/SneakerCard.swift
================================================
import SwiftUI

struct SneakerCard: View {
    let sneaker: Sneaker
    let translation: CGFloat
    @Environment(\.horizontalSizeClass) var horizontalSizeClass
    
    var body: some View {
        Group {
            if horizontalSizeClass == .compact {
                compactContent
            } else {
                regularContent
            }
        }
        .frame(maxWidth: .infinity)
        .foregroundColor(Color(hex: sneaker.theme.foreground))
        .background {
            GeometryReader { proxy in
                ZStack {
                    Circle()
                        .position(x: -30, y: 30)
                        .foregroundColor(Color(hex: sneaker.theme.secondary).opacity(0.6))
                    Circle()
                        .scale(1.3, anchor: .bottomTrailing)
                        .position(x: 250, y: proxy.size.height + 60)
                        .foregroundColor(Color(hex: sneaker.theme.primary).opacity(0.45))
                    Circle()
                        .scale(0.5)
                        .position(x: proxy.size.width, y: 60)
                        .foregroundColor(Color(hex: sneaker.theme.tertiary).opacity(0.6))
                }
                .blur(radius: 40)
            }
        }
        .background(Color(hex: sneaker.theme.background).opacity(0.4))
        .background(.white)
        .cornerRadius(16)
    }
    
    var compactContent: some View {
        VStack(spacing: 0) {
            Image(sneaker.imageName)
                .resizable()
                .scaledToFit()
                .frame(width: 180, height: 180)
                .rotationEffect(.degrees(-40 * Double(1 - translation)))
                .offset(x: -20 * Double(1 - translation))
            Text(sneaker.title)
                .font(.title.bold())
                .offset(y: -15)
                .padding(.bottom, -15)
            Text(sneaker.slogan)
                .font(.headline)
                .lineLimit(1)
        }
        .padding(.bottom)
    }
    
    var regularContent: some View {
        HStack(spacing: 0) {
            Image(sneaker.imageName)
                .resizable()
                .scaledToFit()
                .frame(width: 300, height: 300)
                .rotationEffect(.degrees(-40 * Double(1 - translation)))
                .offset(x: -40 * Double(1 - translation))
            VStack(alignment: .leading, spacing: 0) {
                Text(sneaker.title)
                    .font(.system(size: 60).bold())
                Text(sneaker.slogan)
                    .font(.title)
            }
            .padding(.trailing, 30)
            .lineLimit(2)
        }
        .padding(20)
    }
}

struct SneakerCard_Previews: PreviewProvider {
    static var previews: some View {
        SneakerCard(
            sneaker: Sneaker(
                id: "air-trainer-sc-high",
                title: "Air Force 1",
                slogan: "To Air force, or not to the Air force.",
                imageName: "air-trainer-sc-high",
                theme: .init(
                    primary: "#FFBF85FF",
                    secondary: "#FFA490FF",
                    tertiary: "#FF7A00FF",
                    background: "#FFCFA3FF",
                    foreground: "#000000FF"
                ),
                items: []
            ),
            translation: 1
        )
        .foregroundColor(.white)
        .padding()
    }
}


================================================
FILE: Demo/Demo/Components/SneakerItemRow.swift
================================================
import SwiftUI

struct SneakerItemRow: View {
    let item: SneakerItem
    var body: some View {
        HStack(alignment: .top, spacing: 16) {
            Image(item.imageName)
                .resizable()
                .frame(width: 100, height: 100)
                .cornerRadius(16)
            VStack(alignment: .leading, spacing: 5) {
                Text(item.title)
                    .font(.headline)
                    .lineLimit(2)
                HStack(spacing: 5) {
                    Group {
                        Text(item.type)
                        Text(item.colorVariants)
                    }
                    .padding(.horizontal, 10)
                    .padding(.vertical, 5)
                    .background(.gray.opacity(0.2))
                    .cornerRadius(10)
                }
                .font(.caption.bold())
                Text(item.price)
                    .font(.subheadline.bold())
            }
            .frame(maxWidth: .infinity, alignment: .leading)
        }
        .padding(16)
        .background(.ultraThinMaterial)
        .cornerRadius(16)
    }
}

struct SneakerItemRow_Previews: PreviewProvider {
    static var previews: some View {
        SneakerItemRow(
            item: SneakerItem(
                id: "air-force4",
                imageName: "air-force4",
                title: "Nike Air Force 1 Mid '07 LV8 Next Nature",
                type: "Men's Shoes",
                colorVariants: "1 Color",
                price: "$130"
            )
        )
        .padding()
    }
}


================================================
FILE: Demo/Demo/Demos/CarouselStack/Scenes/CarouselStackDemoView.swift
================================================
import SwiftUI
import Combine
import ShuffleIt

struct CarouselStackDemoView: View {
    @Environment(\.dismiss) var dismiss
    @State private var sneaker: Sneaker?
    @State private var isShowItems: Bool = false
    let carouselPublisher = PassthroughSubject<CarouselDirection, Never>()
    let timer = Timer.publish(every: 10, tolerance: 0.1, on: .main, in: .default).autoconnect()
    @Environment(\.horizontalSizeClass) var horizontalSizeClass
    let columns: [GridItem] = .init(repeating: GridItem(.flexible(), spacing: 20, alignment: .leading), count: 2)
    let sneakers: [Sneaker] = .sneakers()
    
    var body: some View {
        VStack(alignment: .leading, spacing: 16) {
            CarouselStack(sneakers, initialIndex: 0) { sneaker, translation in
                SneakerCard(sneaker: sneaker, translation: translation)
            }
            .carouselScale(0.7)
            .carouselPadding(horizontalSizeClass == .compact ? 20 : 40)
            .carouselSpacing(horizontalSizeClass == .compact ? 10 : 30)
            .carouselStyle(.infiniteScroll)
            .onCarousel { context in
                withAnimation(.easeInOut(duration: 0.2)) {
                    isShowItems = false
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                    withAnimation(.easeInOut(duration: 0.2)) {
                        sneaker = sneakers[context.index]
                        isShowItems = true
                    }
                }
            }
            .carouselTrigger(on: carouselPublisher)
            .carouselAnimation(.easeInOut)
            if let sneaker = sneaker, isShowItems {
                Text("Explore in \(sneaker.title)")
                    .font(.title.bold())
                    .animation(.none)
                    .transition(AnyTransition.slide.combined(with: .opacity))
                    .padding(.horizontal, 20)
            }
            if let sneaker = sneaker, isShowItems {
                ScrollView {
                    Group {
                        if horizontalSizeClass == .compact {
                            LazyVStack(alignment: .leading) {
                                ForEach(sneaker.items) { item in
                                    SneakerItemRow(item: item)
                                }
                            }
                        } else {
                            LazyVGrid(columns: columns) {
                                ForEach(sneaker.items) { item in
                                    SneakerItemRow(item: item)
                                }
                            }
                        }
                    }
                    .padding(.horizontal, 20)
                    .animation(.none, value: sneaker.id)
                }
                .transition(AnyTransition.move(edge: .bottom).combined(with: .opacity))
                .modifier(DragGestureViewModifier(onEnd: { value in
                    switch(value.translation.width, value.translation.height) {
                    case (...0, -30...30):
                        carouselPublisher.send(.right)
                    case (0..., -30...30):
                        carouselPublisher.send(.left)
                    default: break
                    }
                }))
                .padding(.bottom, 20)
            } else {
                Spacer()
            }
        }
        .background {
            if let sneaker = sneaker {
                GeometryReader { proxy in
                    ZStack {
                        Circle()
                            .scale(1.1, anchor: .bottomTrailing)
                            .position(x: proxy.size.width, y: proxy.size.height / 2.5)
                            .foregroundColor(Color(hex: sneaker.theme.tertiary).opacity(0.3))
                        Circle()
                            .scale(0.7, anchor: .bottomTrailing)
                            .position(x: 0, y: proxy.size.height)
                            .foregroundColor(Color(hex: sneaker.theme.primary).opacity(0.45))
                    }
                    .blur(radius: 40)
                    .background(.white)
                    .ignoresSafeArea()
                }
            }
        }
        .onAppear {
            sneaker = sneakers.first
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                withAnimation(.easeInOut(duration: 0.2)) {
                    isShowItems = true
                }
            }
        }
        .overlay(alignment: .topTrailing) {
            Button(action: {
                dismiss()
            }) {
                Image(systemName: "xmark.circle.fill")
                    .font(.largeTitle)
                    .foregroundStyle(.white)
                    .background {
                        Circle()
                            .foregroundColor(.black.opacity(0.4))
                            .padding(4)
                    }
            }
            .buttonStyle(.plain)
            .padding(.horizontal, 20)
        }
        .onReceive(timer) { _ in
            carouselPublisher.send(.right)
        }
    }
}


================================================
FILE: Demo/Demo/Demos/ShuffleDeck/Scenes/ShuffleDeckDemoView.swift
================================================
import SwiftUI
import Combine
import ShuffleIt
import MapKit

struct ShuffleDeckDemoView: View {
    @Environment(\.dismiss) var dismiss
    @State private var landmark: Landmark?

    let landmarks: [Landmark] = .landmarks()
    
    var body: some View {
        VStack(alignment: .leading, spacing: 0) {
            VStack(alignment: .leading) {
                Text("Captivating Landmarks")
                    .font(.title.bold())
                Text("For Your Next Adventure")
                    .font(.title2.bold())
            }
            .padding()
            Spacer()
            ShuffleDeck(
                landmarks,
                initialIndex: 0
            ) { landmark in
                LandmarkCard(landmark: landmark)
            }
            .shuffleDeckAnimation(.easeInOut)
            .shuffleDeckScale(0.5)
            .onShuffleDeck { context in
                landmark = landmarks[context.index]
            }
            .padding(.vertical)
            Spacer()
            Spacer()
        }
        .overlay(alignment: .topTrailing) {
            Button(action: {
                dismiss()
            }) {
                Image(systemName: "xmark.circle.fill")
                    .font(.largeTitle)
                    .foregroundStyle(.white)
                    .background {
                        Circle()
                            .foregroundColor(.black.opacity(0.4))
                            .padding(4)
                    }
            }
            .buttonStyle(.plain)
            .padding([.top, .horizontal])
        }
        .background {
            if let landmark = landmark {
                GeometryReader { proxy in
                    ZStack {
                        Circle()
                            .scale(1.1, anchor: .bottomTrailing)
                            .position(x: proxy.size.width, y: proxy.size.height / 2.5)
                            .foregroundColor(Color(hex: landmark.background).opacity(0.3))
                        Circle()
                            .scale(0.7, anchor: .bottomTrailing)
                            .position(x: 0, y: proxy.size.height / 1.5)
                            .foregroundColor(Color(hex: landmark.background).opacity(0.2))
                    }
                    .blur(radius: 40)
                    .background(.white)
                    .ignoresSafeArea()
                }
            }
        }
        .onAppear {
            landmark = landmarks.first
        }
    }
}


================================================
FILE: Demo/Demo/Demos/ShuffleStack/Scenes/ShuffleStackDemoView.swift
================================================
import Combine
import SwiftUI
import ShuffleIt

struct ShuffleStackDemoView: View {
    @Environment(\.dismiss) var dismiss
    @State private var sneaker: Sneaker?
    @State private var isShowItems: Bool = false
    let shufflePublisher = PassthroughSubject<ShuffleDirection, Never>()
    @Environment(\.horizontalSizeClass) var horizontalSizeClass
    let columns: [GridItem] = .init(repeating: GridItem(.flexible(), spacing: 20, alignment: .leading), count: 2)
    let sneakers: [Sneaker] = .sneakers()
    
    var body: some View {
        VStack(alignment: .leading, spacing: 16) {
            ShuffleStack(sneakers) { sneaker, translation in
                SneakerCard(
                    sneaker: sneaker,
                    translation: abs(translation)
                )
            }
            .shuffleOffset(horizontalSizeClass == .compact ? 20 : 40)
            .shuffleScale(horizontalSizeClass == .compact ? 0.5 : 0.4)
            .shufflePadding(20)
            .onShuffle { context in
                withAnimation(.easeInOut(duration: 0.2)) {
                    isShowItems = false
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                    withAnimation(.easeInOut(duration: 0.2)) {
                        sneaker = sneakers[context.index]
                        isShowItems = true
                    }
                }
            }
            .shuffleTrigger(on: shufflePublisher)
            .shuffleAnimation(.easeInOut)
            .shuffleStyle(horizontalSizeClass == .compact ? .rotateIn : .slide)
            if let sneaker = sneaker, isShowItems {
                Text("Explore in \(sneaker.title)")
                    .font(.title.bold())
                    .animation(.none)
                    .transition(AnyTransition.slide.combined(with: .opacity))
                    .padding(.horizontal, 20)
            }
            if let sneaker = sneaker, isShowItems {
                ScrollView {
                    Group {
                        if horizontalSizeClass == .compact {
                            LazyVStack(alignment: .leading) {
                                ForEach(sneaker.items) { item in
                                    SneakerItemRow(item: item)
                                }
                            }
                        } else {
                            LazyVGrid(columns: columns) {
                                ForEach(sneaker.items) { item in
                                    SneakerItemRow(item: item)
                                }
                            }
                        }
                    }
                    .padding(.horizontal, 20)
                    .animation(.none, value: sneaker.id)
                }
                .clipped()
                .transition(AnyTransition.move(edge: .bottom).combined(with: .opacity))
                .modifier(DragGestureViewModifier(onEnd: { value in
                    switch(value.translation.width, value.translation.height) {
                    case (...0, -30...30):
                        shufflePublisher.send(.right)
                    case (0..., -30...30):
                        shufflePublisher.send(.left)
                    default: break
                    }
                }))
                .padding(.bottom, 20)
            } else {
                Spacer()
            }
        }
        .background {
            if let sneaker = sneaker {
                GeometryReader { proxy in
                    ZStack {
                        Circle()
                            .scale(1.1, anchor: .bottomTrailing)
                            .position(x: proxy.size.width, y: proxy.size.height / 2.5)
                            .foregroundColor(Color(hex: sneaker.theme.tertiary).opacity(0.3))
                        Circle()
                            .scale(0.7, anchor: .bottomTrailing)
                            .position(x: 0, y: proxy.size.height)
                            .foregroundColor(Color(hex: sneaker.theme.primary).opacity(0.45))
                    }
                    .blur(radius: 40)
                    .background(.white)
                    .ignoresSafeArea()
                }
            }
        }
        .onAppear {
            sneaker = sneakers.first
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                withAnimation(.easeInOut(duration: 0.2)) {
                    isShowItems = true
                }
            }
        }
        .overlay(alignment: .topTrailing) {
            Button(action: {
                dismiss()
            }) {
                Image(systemName: "xmark.circle.fill")
                    .font(.largeTitle)
                    .foregroundStyle(.white)
                    .background {
                        Circle()
                            .foregroundColor(.black.opacity(0.4))
                            .padding(4)
                    }
            }
            .buttonStyle(.plain)
            .padding(.horizontal, 20)
        }
    }
}

struct ShuffleStackDemoView_Previews: PreviewProvider {
    static var previews: some View {
        ShuffleStackDemoView()
    }
}


================================================
FILE: Demo/Demo/Demos/ShuffleStack/Scenes/TimingShuffleStackDemoView.swift
================================================
import Combine
import SwiftUI
import ShuffleIt

struct TimingShuffleStackDemoView: View {
    @Environment(\.dismiss) var dismiss
    @State private var sneaker: Sneaker?
    @State private var isShowItems: Bool = false
    let shufflePublisher = PassthroughSubject<ShuffleDirection, Never>()
    let timer = Timer.publish(every: 10, tolerance: 0.1, on: .main, in: .default).autoconnect()
    @Environment(\.horizontalSizeClass) var horizontalSizeClass
    let columns: [GridItem] = .init(repeating: GridItem(.flexible(), spacing: 20, alignment: .leading), count: 2)
    let sneakers: [Sneaker] = .sneakers()
    
    var body: some View {
        VStack(alignment: .leading, spacing: 16) {
            ShuffleStack(sneakers) { sneaker, translation in
                SneakerCard(
                    sneaker: sneaker,
                    translation: abs(translation)
                )
            }
            .shuffleOffset(horizontalSizeClass == .compact ? 20 : 40)
            .shuffleScale(horizontalSizeClass == .compact ? 0.5 : 0.4)
            .shufflePadding(20)
            .onShuffle { context in
                withAnimation(.easeInOut(duration: 0.2)) {
                    isShowItems = false
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                    withAnimation(.easeInOut(duration: 0.2)) {
                        sneaker = sneakers[context.index]
                        isShowItems = true
                    }
                }
            }
            .shuffleTrigger(on: shufflePublisher)
            .shuffleAnimation(.easeInOut)
            .shuffleStyle(horizontalSizeClass == .compact ? .rotateIn : .slide)
            if let sneaker = sneaker, isShowItems {
                Text("Explore in \(sneaker.title)")
                    .font(.title.bold())
                    .animation(.none)
                    .transition(AnyTransition.slide.combined(with: .opacity))
                    .padding(.horizontal, 20)
            }
            if let sneaker = sneaker, isShowItems {
                ScrollView {
                    Group {
                        if horizontalSizeClass == .compact {
                            LazyVStack(alignment: .leading) {
                                ForEach(sneaker.items) { item in
                                    SneakerItemRow(item: item)
                                }
                            }
                        } else {
                            LazyVGrid(columns: columns) {
                                ForEach(sneaker.items) { item in
                                    SneakerItemRow(item: item)
                                }
                            }
                        }
                    }
                    .padding(.horizontal, 20)
                    .animation(.none, value: sneaker.id)
                }
                .transition(AnyTransition.move(edge: .bottom).combined(with: .opacity))
                .modifier(DragGestureViewModifier(onEnd: { value in
                    switch(value.translation.width, value.translation.height) {
                    case (...0, -30...30):
                        shufflePublisher.send(.right)
                    case (0..., -30...30):
                        shufflePublisher.send(.left)
                    default: break
                    }
                }))
                .padding(.bottom, 20)
            } else {
                Spacer()
            }
        }
        .background {
            if let sneaker = sneaker {
                GeometryReader { proxy in
                    ZStack {
                        Circle()
                            .scale(1.1, anchor: .bottomTrailing)
                            .position(x: proxy.size.width, y: proxy.size.height / 2.5)
                            .foregroundColor(Color(hex: sneaker.theme.tertiary).opacity(0.3))
                        Circle()
                            .scale(0.7, anchor: .bottomTrailing)
                            .position(x: 0, y: proxy.size.height)
                            .foregroundColor(Color(hex: sneaker.theme.primary).opacity(0.45))
                    }
                    .blur(radius: 40)
                    .background(.white)
                    .ignoresSafeArea()
                }
            }
        }
        .onAppear {
            sneaker = sneakers.first
            DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                withAnimation(.easeInOut(duration: 0.2)) {
                    isShowItems = true
                }
            }
        }
        .overlay(alignment: .topTrailing) {
            Button(action: {
                dismiss()
            }) {
                Image(systemName: "xmark.circle.fill")
                    .font(.largeTitle)
                    .foregroundStyle(.white)
                    .background {
                        Circle()
                            .foregroundColor(.black.opacity(0.4))
                            .padding(4)
                    }
            }
            .buttonStyle(.plain)
            .padding(.horizontal, 20)
        }
        .onReceive(timer) { _ in
            shufflePublisher.send(.right)
        }
    }
}

struct TimingShuffleStackDemoView_Previews: PreviewProvider {
    static var previews: some View {
        TimingShuffleStackDemoView()
    }
}


================================================
FILE: Demo/Demo/Extensions/Color+Extension.swift
================================================
import SwiftUI

#if os(macOS)
typealias _Color = NSColor
#else
typealias _Color = UIColor
#endif

extension Color {
    public init(hex: String) {
        self.init(_Color(hex: hex) ?? _Color())
   }
}

extension _Color {
    public convenience init?(hex: String) {
        let r, g, b, a: CGFloat

        if hex.hasPrefix("#") {
            let start = hex.index(hex.startIndex, offsetBy: 1)
            let hexColor = String(hex[start...])

            if hexColor.count == 8 {
                let scanner = Scanner(string: hexColor)
                var hexNumber: UInt64 = 0

                if scanner.scanHexInt64(&hexNumber) {
                    r = CGFloat((hexNumber & 0xff000000) >> 24) / 255
                    g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255
                    b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255
                    a = CGFloat(hexNumber & 0x000000ff) / 255

                    self.init(red: r, green: g, blue: b, alpha: a)
                    return
                }
            }
        }

        return nil
    }
}


================================================
FILE: Demo/Demo/Models/Landmark.swift
================================================
import MapKit
import Foundation

struct Landmark: Decodable, Identifiable {
    let id: String
    let image: String
    let name: String
    let location: String
    let lat: Double
    let long: Double
    let background: String

    var coordinate: CLLocationCoordinate2D {
        CLLocationCoordinate2D(latitude: lat, longitude: long)
    }
}

extension Array where Element == Landmark {
    static func landmarks() -> Self {
        guard let path = Bundle.main.url(forResource: "Landmarks", withExtension: "json"), let data = try? Data(contentsOf: path), let landmarks = try? JSONDecoder().decode([Landmark].self, from: data) else { return [] }
        return landmarks
    }
}


================================================
FILE: Demo/Demo/Models/Sneaker.swift
================================================
import Foundation

struct Sneaker: Decodable {
    let id: String
    let title: String
    let slogan: String
    let imageName: String
    let theme: SneakerTheme
    let items: [SneakerItem]
}

struct SneakerTheme: Decodable {
    let primary: String
    let secondary: String
    let tertiary: String
    let background: String
    let foreground: String
}

struct SneakerItem: Decodable, Identifiable {
    let id: String
    let imageName: String
    let title: String
    let type: String
    let colorVariants: String
    let price: String
}

extension Array where Element == Sneaker {
    static func sneakers() -> [Sneaker] {
        guard let path = Bundle.main.url(forResource: "Sneakers", withExtension: "json"), let data = try? Data(contentsOf: path), let sneakers = try? JSONDecoder().decode([Sneaker].self, from: data) else { return [] }
        return sneakers
    }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/AccentColor.colorset/Contents.json
================================================
{
  "colors" : [
    {
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "40.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "20x20"
    },
    {
      "filename" : "60.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "20x20"
    },
    {
      "filename" : "29.png",
      "idiom" : "iphone",
      "scale" : "1x",
      "size" : "29x29"
    },
    {
      "filename" : "58.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "29x29"
    },
    {
      "filename" : "87.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "29x29"
    },
    {
      "filename" : "80.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "40x40"
    },
    {
      "filename" : "120.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "40x40"
    },
    {
      "filename" : "57.png",
      "idiom" : "iphone",
      "scale" : "1x",
      "size" : "57x57"
    },
    {
      "filename" : "114.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "57x57"
    },
    {
      "filename" : "120.png",
      "idiom" : "iphone",
      "scale" : "2x",
      "size" : "60x60"
    },
    {
      "filename" : "180.png",
      "idiom" : "iphone",
      "scale" : "3x",
      "size" : "60x60"
    },
    {
      "filename" : "20.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "20x20"
    },
    {
      "filename" : "40.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "20x20"
    },
    {
      "filename" : "29.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "29x29"
    },
    {
      "filename" : "58.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "29x29"
    },
    {
      "filename" : "40.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "40x40"
    },
    {
      "filename" : "80.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "40x40"
    },
    {
      "filename" : "50.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "50x50"
    },
    {
      "filename" : "100.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "50x50"
    },
    {
      "filename" : "72.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "72x72"
    },
    {
      "filename" : "144.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "72x72"
    },
    {
      "filename" : "76.png",
      "idiom" : "ipad",
      "scale" : "1x",
      "size" : "76x76"
    },
    {
      "filename" : "152.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "76x76"
    },
    {
      "filename" : "167.png",
      "idiom" : "ipad",
      "scale" : "2x",
      "size" : "83.5x83.5"
    },
    {
      "filename" : "1024.png",
      "idiom" : "ios-marketing",
      "scale" : "1x",
      "size" : "1024x1024"
    },
    {
      "filename" : "16.png",
      "idiom" : "mac",
      "scale" : "1x",
      "size" : "16x16"
    },
    {
      "filename" : "32.png",
      "idiom" : "mac",
      "scale" : "2x",
      "size" : "16x16"
    },
    {
      "filename" : "32.png",
      "idiom" : "mac",
      "scale" : "1x",
      "size" : "32x32"
    },
    {
      "filename" : "64.png",
      "idiom" : "mac",
      "scale" : "2x",
      "size" : "32x32"
    },
    {
      "filename" : "128.png",
      "idiom" : "mac",
      "scale" : "1x",
      "size" : "128x128"
    },
    {
      "filename" : "256.png",
      "idiom" : "mac",
      "scale" : "2x",
      "size" : "128x128"
    },
    {
      "filename" : "256.png",
      "idiom" : "mac",
      "scale" : "1x",
      "size" : "256x256"
    },
    {
      "filename" : "512.png",
      "idiom" : "mac",
      "scale" : "2x",
      "size" : "256x256"
    },
    {
      "filename" : "512.png",
      "idiom" : "mac",
      "scale" : "1x",
      "size" : "512x512"
    },
    {
      "filename" : "1024.png",
      "idiom" : "mac",
      "scale" : "2x",
      "size" : "512x512"
    },
    {
      "filename" : "48.png",
      "idiom" : "watch",
      "role" : "notificationCenter",
      "scale" : "2x",
      "size" : "24x24",
      "subtype" : "38mm"
    },
    {
      "filename" : "55.png",
      "idiom" : "watch",
      "role" : "notificationCenter",
      "scale" : "2x",
      "size" : "27.5x27.5",
      "subtype" : "42mm"
    },
    {
      "filename" : "58.png",
      "idiom" : "watch",
      "role" : "companionSettings",
      "scale" : "2x",
      "size" : "29x29"
    },
    {
      "filename" : "87.png",
      "idiom" : "watch",
      "role" : "companionSettings",
      "scale" : "3x",
      "size" : "29x29"
    },
    {
      "idiom" : "watch",
      "role" : "notificationCenter",
      "scale" : "2x",
      "size" : "33x33",
      "subtype" : "45mm"
    },
    {
      "filename" : "80.png",
      "idiom" : "watch",
      "role" : "appLauncher",
      "scale" : "2x",
      "size" : "40x40",
      "subtype" : "38mm"
    },
    {
      "filename" : "88.png",
      "idiom" : "watch",
      "role" : "appLauncher",
      "scale" : "2x",
      "size" : "44x44",
      "subtype" : "40mm"
    },
    {
      "idiom" : "watch",
      "role" : "appLauncher",
      "scale" : "2x",
      "size" : "46x46",
      "subtype" : "41mm"
    },
    {
      "filename" : "100.png",
      "idiom" : "watch",
      "role" : "appLauncher",
      "scale" : "2x",
      "size" : "50x50",
      "subtype" : "44mm"
    },
    {
      "idiom" : "watch",
      "role" : "appLauncher",
      "scale" : "2x",
      "size" : "51x51",
      "subtype" : "45mm"
    },
    {
      "idiom" : "watch",
      "role" : "appLauncher",
      "scale" : "2x",
      "size" : "54x54",
      "subtype" : "49mm"
    },
    {
      "filename" : "172.png",
      "idiom" : "watch",
      "role" : "quickLook",
      "scale" : "2x",
      "size" : "86x86",
      "subtype" : "38mm"
    },
    {
      "filename" : "196.png",
      "idiom" : "watch",
      "role" : "quickLook",
      "scale" : "2x",
      "size" : "98x98",
      "subtype" : "42mm"
    },
    {
      "filename" : "216.png",
      "idiom" : "watch",
      "role" : "quickLook",
      "scale" : "2x",
      "size" : "108x108",
      "subtype" : "44mm"
    },
    {
      "idiom" : "watch",
      "role" : "quickLook",
      "scale" : "2x",
      "size" : "117x117",
      "subtype" : "45mm"
    },
    {
      "idiom" : "watch",
      "role" : "quickLook",
      "scale" : "2x",
      "size" : "129x129",
      "subtype" : "49mm"
    },
    {
      "filename" : "1024.png",
      "idiom" : "watch-marketing",
      "scale" : "1x",
      "size" : "1024x1024"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/christ_the_redeemer.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "christ_the_redeemer.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/eiffel_tower.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "eiffel_tower.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/great_wall_of_china.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "great_wall_of_china.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/merlion_statue.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "merlion_statue.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/niagara_falls.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "niagara_falls.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/petronas_towers.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "petronas_towers.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/shwedagon_pagoda.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "shwedagon_pagoda.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/sphinx_statue.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "sphinx.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/landmarks/statue_of_liberty.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "statue_of_liberty.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  },
  "properties" : {
    "template-rendering-intent" : "original"
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "swift-theming-logo-with-text 1.png",
      "idiom" : "universal",
      "scale" : "1x"
    },
    {
      "filename" : "swift-theming-logo-with-text 1@2x.png",
      "idiom" : "universal",
      "scale" : "2x"
    },
    {
      "filename" : "swift-theming-logo-with-text 1@3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-force-1-mid.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-force-1-mid.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-force1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-force2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force3.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-force3.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force4.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-force4.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force5.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-force5.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordan-1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-jordan-1.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-jorden1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-jorden2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan3.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-jorden3.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainer-sc-high.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-trainer-sc-high.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/air-trainer1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-trainer1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/air-trainer2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "air-trainer2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-retro-premium.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "dunk-high-retro-premium.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-vintage.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "dunk-high-vintage.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infinity.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "kyrie-infinity.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/kyrie-infinity1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "kyrie-infinity1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/kyrie-infinity2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "kyrie-infinity2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/nike-air-presto.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "nike-air-presto.png",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/presto1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "presto1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/presto2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "presto2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/retros/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/retros/retro1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "retro1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/retros/retro2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "retro2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/Contents.json
================================================
{
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage1.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "vintage1.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage2.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "vintage2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage3.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "vintage3.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage4.imageset/Contents.json
================================================
{
  "images" : [
    {
      "filename" : "retro2.svg",
      "idiom" : "universal"
    }
  ],
  "info" : {
    "author" : "xcode",
    "version" : 1
  }
}


================================================
FILE: Demo/Demo/Resources/Json/Landmarks.json
================================================
[
    {
        "id": "christ_the_redeemer",
        "image": "christ_the_redeemer",
        "name": "Christ the Redeemer",
        "location": "Rio de Janeiro, Brazil",
        "lat": -22.9519,
        "long": -43.2105,
        "background": "#FFBF85FF"
    },
    {
        "id": "eiffel_tower",
        "image": "eiffel_tower",
        "name": "Eiffel Tower",
        "location": "Paris, France",
        "lat": 48.8584,
        "long": 2.2945,
        "background": "#FFA490FF"
    },
    {
        "id": "great_wall_of_china",
        "image": "great_wall_of_china",
        "name": "Great Wall of China",
        "location": "Huairou, China",
        "lat": 40.4319,
        "long": 116.5704,
        "background": "#FFDC62FF"
    },
    {
        "id": "merlion_statue",
        "image": "merlion_statue",
        "name": "Merlion Statue",
        "location": "Singapore, Singapore",
        "lat": 1.2868,
        "long": 103.8545,
        "background": "#7451FFFF"
    },
    {
        "id": "niagara_falls",
        "image": "niagara_falls",
        "name": "Niagara Falls",
        "location": "Ontario, Canada",
        "lat": 43.0962,
        "long": -79.0377,
        "background": "#FF4D00FF"
    },
    {
        "id": "petronas_towers",
        "image": "petronas_towers",
        "name": "Petronas Towers",
        "location": "Kuala Lumpur, Malaysia",
        "lat": 3.1575,
        "long": 101.7116,
        "background": "#FF4B4BFF"
    },
    {
        "id": "shwedagon_pagoda",
        "image": "shwedagon_pagoda",
        "name": "Shwedagon Pagoda",
        "location": "Yangon, Myanmar",
        "lat": 16.7985,
        "long": 96.1497,
        "background": "#2B10CFFF"
    },
    {
        "id": "sphinx_statue",
        "image": "sphinx_statue",
        "name": "Great Sphinx of Giza",
        "location": "Giza, Egypt",
        "lat": 29.9753,
        "long": 31.1376,
        "background": "#993700FF"
    },
    {
        "id": "statue_of_liberty",
        "image": "statue_of_liberty",
        "name": "Statue of Liberty",
        "location": "New York, US",
        "lat": 40.6892,
        "long": -74.0445,
        "background": "#7A320AFF"
    }
]

================================================
FILE: Demo/Demo/Resources/Json/Sneakers.json
================================================
[
    {
        "id": "air-force-1-mid",
        "title": "Air Force",
        "slogan": "To Air force, or not to the Air force.",
        "imageName": "air-force-1-mid",
        "theme": {
            "primary": "#FFBF85FF",
            "secondary": "#FFA490FF",
            "tertiary": "#FF7A00FF",
            "background": "#FFCFA3FF",
            "foreground": "#343434FF"
        },
        "items": [
            {
                "imageName": "air-force1",
                "id": "air-force1",
                "title": "Nike Air Force 1 Mid Premium",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$140"
            },
            {
                "imageName": "air-force2",
                "id": "air-force2",
                "title": "Nike Air Force 1 Mid '07 QS",
                "type": "Men's Shoes",
                "colorVariants": "2 Colors",
                "price": "$150"
            },
            {
                "imageName": "air-force3",
                "id": "air-force3",
                "title": "Nike Air Force 1 '07 Mid",
                "type": "Women's Shoes",
                "colorVariants": "1 Color",
                "price": "$110"
            },
            {
                "imageName": "air-force4",
                "id": "air-force4",
                "title": "Nike Air Force 1 Mid '07 LV8 Next Nature",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$130"
            },
            {
                "imageName": "air-force5",
                "id": "air-force5",
                "title": "Nike Force 1 Mid LE",
                "type": "Toddler Shoes",
                "colorVariants": "2 Colors",
                "price": "$60"
            }
        ]
    },
    {
        "id": "air-jordan-1",
        "title": "Air Jordan",
        "slogan": "The science of MJ is in the sole.",
        "imageName": "air-jordan-1",
        "theme": {
            "primary": "#7451FFFF",
            "secondary": "#6D8DFFFF",
            "tertiary": "#BD00FFFF",
            "background": "#8C56FFFF",
            "foreground": "#FFFFFFFF"
        },
        "items": [
            {
                "imageName": "air-jordan1",
                "id": "air-jordan1",
                "title": "Air Jordan 1 Low",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$110"
            },
            {
                "imageName": "air-jordan2",
                "id": "air-jordan2",
                "title": "Air Jordan 1 Low Flyease",
                "type": "Big Kids' Shoes",
                "colorVariants": "1 Color",
                "price": "$90"
            },
            {
                "imageName": "air-jordan3",
                "id": "air-jordan3",
                "title": "Air Jordan 1 Utility Q",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$190"
            }
        ]
    },
    {
        "id": "air-trainer-sc-high",
        "title": "Air Trainer",
        "slogan": "Run the day. Don’t let it run you.",
        "imageName": "air-trainer-sc-high",
        "theme": {
            "primary": "#FF4D00FF",
            "secondary": "#FFDC62FF",
            "tertiary": "#FF1010FF",
            "background": "#FF7575FF",
            "foreground": "#323232FF"
        },
        "items": [
            {
                "imageName": "air-trainer1",
                "id": "air-trainer1",
                "title": "Nike Air Trainer SC High",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$140"
            },
            {
                "imageName": "air-trainer2",
                "id": "air-trainer2",
                "title": "Nike Air Trainer 1 SP",
                "type": "Men's Shoes",
                "colorVariants": "2 Colors",
                "price": "$150"
            }
        ]
    },
    {
        "id": "dunk-high-retro-premium",
        "title": "Dunk High Retro",
        "slogan": "Who said man was not meant to fly.",
        "imageName": "dunk-high-retro-premium",
        "theme": {
            "primary": "#001DB7FF",
            "secondary": "#2B10CFFF",
            "tertiary": "#4400D6FF",
            "background": "#0400CBFF",
            "foreground": "#FFFFFFFF"
        },
        "items": [
            {
                "imageName": "retro1",
                "id": "retro1",
                "title": "Nike Dunk High Retro Premium EMB",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$135"
            },
            {
                "imageName": "retro2",
                "id": "retro2",
                "title": "Nike Dunk High Retro Premium",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$135"
            }
        ]
    },
    {
        "id": "dunk-high-vintage",
        "title": "Dunk High Vintage",
        "slogan": "Be legendary.",
        "imageName": "dunk-high-vintage",
        "theme": {
            "primary": "#7A320AFF",
            "secondary": "#993700FF",
            "tertiary": "#624600FF",
            "background": "#451D00FF",
            "foreground": "#FFFFFFFF"
        },
        "items": [
            {
                "imageName": "vintage1",
                "id": "vintage1",
                "title": "Nike Dunk High",
                "type": "Big Kids' Shoes",
                "colorVariants": "2 Colors",
                "price": "$105"
            },
            {
                "imageName": "vintage2",
                "id": "vintage2",
                "title": "Nike Dunk High 85",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$140"
            },
            {
                "imageName": "vintage3",
                "id": "vintage3",
                "title": "Nike Dunk High 1985",
                "type": "Women's Shoes",
                "colorVariants": "1 Color",
                "price": "$140"
            },
            {
                "imageName": "vintage4",
                "id": "vintage4",
                "title": "Nike Dunk High Retro Premium",
                "type": "Men's Shoes",
                "colorVariants": "1 Color",
                "price": "$135"
            }
        ]
    },
    {
        "id": "kyrie-infinity",
        "title": "Kyrie Infinity",
        "slogan": "The best to play the game.",
        "imageName": "kyrie-infinity",
        "theme": {
            "primary": "#FF12A0FF",
            "secondary": "#FF4B4BFF",
            "tertiary": "#E8FF5CFF",
            "background": "#FFA3A3FF",
            "foreground": "#282828FF"
        },
        "items": [
            {
                "imageName": "kyrie-infinity1",
                "id": "kyrie-infinity1",
                "title": "Kyrie Infinity",
                "type": "Basketball Shoes",
                "colorVariants": "17 Colors",
                "price": "$140"
            },
            {
                "imageName": "kyrie-infinity2",
                "id": "kyrie-infinity2",
                "title": "Kyrie Infinity (Team)",
                "type": "Basketball Shoes",
                "colorVariants": "6 Colors",
                "price": "$140"
            }
        ]
    },
    {
        "id": "nike-air-presto",
        "title": "Air Presto",
        "slogan": "Where do you stand.",
        "imageName": "nike-air-presto",
        "theme": {
            "primary": "#00B2FFFF",
            "secondary": "#86CCFFFF",
            "tertiary": "#35FFB6FF",
            "background": "#71FFF6FF",
            "foreground": "#000000FF"
        },
        "items": [
            {
                "imageName": "presto1",
                "id": "presto1",
                "title": "Nike Air Presto Mid Utility",
                "type": "Men's Shoes",
                "colorVariants": "4 Colors",
                "price": "$150"
            },
            {
                "imageName": "presto2",
                "id": "presto2",
                "title": "Nike Air Presto",
                "type": "Women's Shoes",
                "colorVariants": "1 Colors",
                "price": "$130"
            }
        ]
    }
]



================================================
FILE: Demo/Demo/Resources/Launch Screen.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
    <device id="retina6_1" orientation="portrait" appearance="light"/>
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
    </dependencies>
    <scenes>
        <!--View Controller-->
        <scene sceneID="EHf-IW-A2E">
            <objects>
                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                        <subviews>
                            <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="shuffle-it-logo" translatesAutoresizingMaskIntoConstraints="NO" id="yEG-cm-jdP">
                                <rect key="frame" x="0.0" y="353" width="414" height="200"/>
                                <constraints>
                                    <constraint firstAttribute="height" constant="200" id="oNN-Dc-FmQ"/>
                                </constraints>
                            </imageView>
                        </subviews>
                        <viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                        <constraints>
                            <constraint firstItem="Bcu-3y-fUS" firstAttribute="trailing" secondItem="yEG-cm-jdP" secondAttribute="trailing" id="73I-eP-vKx"/>
                            <constraint firstItem="yEG-cm-jdP" firstAttribute="leading" secondItem="Bcu-3y-fUS" secondAttribute="leading" id="WOS-Gc-UZu"/>
                            <constraint firstItem="yEG-cm-jdP" firstAttribute="centerY" secondItem="Bcu-3y-fUS" secondAttribute="centerY" id="jIV-Hd-Inp"/>
                        </constraints>
                    </view>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="52.173913043478265" y="375"/>
        </scene>
    </scenes>
    <resources>
        <image name="shuffle-it-logo" width="400" height="253"/>
    </resources>
</document>


================================================
FILE: Demo/Demo/ViewModifier/DragGestureViewModifier.swift
================================================
import SwiftUI

// MARK: - https://developer.apple.com/forums/thread/123034
struct DragGestureViewModifier: ViewModifier {
    @GestureState private var isDragging: Bool = false
    @State var gestureState: GestureStatus = .idle

    var onStart: (() -> Void)?
    var onUpdate: ((DragGesture.Value) -> Void)?
    var onEnd: ((DragGesture.Value) -> Void)?
    var onCancel: (() -> Void)?

    func body(content: Content) -> some View {
        content
            .gesture(
                DragGesture()
                    .updating($isDragging) { _, isDragging, _ in
                        isDragging = true
                    }
                    .onChanged(onDragChange(_:))
                    .onEnded(onDragEnded(_:))
            )
            .onChange(of: gestureState) { state in
                guard state == .started else { return }
                gestureState = .active
            }
            .onChange(of: isDragging) { value in
                if value, gestureState != .started {
                    gestureState = .started
                    onStart?()
                } else if !value, gestureState != .ended {
                    gestureState = .cancelled
                    onCancel?()
                }
            }
    }

    func onDragChange(_ value: DragGesture.Value) {
        guard gestureState == .started || gestureState == .active else { return }
        onUpdate?(value)
    }

    func onDragEnded(_ value: DragGesture.Value) {
        gestureState = .ended
        onEnd?(value)
    }

    enum GestureStatus: Equatable {
        case idle
        case started
        case active
        case ended
        case cancelled
    }
}


================================================
FILE: Demo/Demo.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 55;
	objects = {

/* Begin PBXBuildFile section */
		EC1D2D6328C366F80000668C /* ShuffleStackDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1D2D6228C366F80000668C /* ShuffleStackDemoView.swift */; };
		EC1D2D6B28C37D280000668C /* Sneakers.json in Resources */ = {isa = PBXBuildFile; fileRef = EC1D2D6A28C37D280000668C /* Sneakers.json */; };
		EC1D2D6E28C382EF0000668C /* Color+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1D2D6D28C382EF0000668C /* Color+Extension.swift */; };
		EC1D2D7128C3882D0000668C /* Sneaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1D2D7028C3882D0000668C /* Sneaker.swift */; };
		EC1D2D7628C3A6EF0000668C /* SneakerItemRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1D2D7528C3A6EF0000668C /* SneakerItemRow.swift */; };
		EC1D2D7D28C3C8B50000668C /* DragGestureViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC1D2D7C28C3C8B50000668C /* DragGestureViewModifier.swift */; };
		EC467D8028D6CCC700291DFD /* CarouselStackDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC467D7F28D6CCC700291DFD /* CarouselStackDemoView.swift */; };
		EC467D8228D6CF4800291DFD /* SneakerCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC467D8128D6CF4800291DFD /* SneakerCard.swift */; };
		EC64DECA28C4EB4000C317A3 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EC64DEC928C4EB4000C317A3 /* Launch Screen.storyboard */; };
		EC67A95D28BE69F800BDAB83 /* DemoApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC67A94D28BE69F700BDAB83 /* DemoApp.swift */; };
		EC67A96128BE69F800BDAB83 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC67A94F28BE69F800BDAB83 /* Assets.xcassets */; };
		EC7410B928C44DA3005EFC41 /* MainView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7410B828C44DA3005EFC41 /* MainView.swift */; };
		EC7410BD28C45605005EFC41 /* TimingShuffleStackDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC7410BC28C45605005EFC41 /* TimingShuffleStackDemoView.swift */; };
		EC98DC2128C8E1E7000F3DD9 /* ShuffleIt in Frameworks */ = {isa = PBXBuildFile; productRef = EC98DC2028C8E1E7000F3DD9 /* ShuffleIt */; };
		ECBE0E4B294D782E002239C1 /* ShuffleDeckDemoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBE0E4A294D782E002239C1 /* ShuffleDeckDemoView.swift */; };
		ECDE4B4829584BC800FF1876 /* LandmarkCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECDE4B4729584BC800FF1876 /* LandmarkCard.swift */; };
		ECDE4B4A295859A700FF1876 /* Landmarks.json in Resources */ = {isa = PBXBuildFile; fileRef = ECDE4B49295859A700FF1876 /* Landmarks.json */; };
		ECDE4B4C295859D300FF1876 /* Landmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECDE4B4B295859D300FF1876 /* Landmark.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		EC1D2D6228C366F80000668C /* ShuffleStackDemoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShuffleStackDemoView.swift; sourceTree = "<group>"; };
		EC1D2D6A28C37D280000668C /* Sneakers.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = Sneakers.json; sourceTree = "<group>"; };
		EC1D2D6D28C382EF0000668C /* Color+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Extension.swift"; sourceTree = "<group>"; };
		EC1D2D7028C3882D0000668C /* Sneaker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sneaker.swift; sourceTree = "<group>"; };
		EC1D2D7528C3A6EF0000668C /* SneakerItemRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SneakerItemRow.swift; sourceTree = "<group>"; };
		EC1D2D7C28C3C8B50000668C /* DragGestureViewModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DragGestureViewModifier.swift; sourceTree = "<group>"; };
		EC467D7F28D6CCC700291DFD /* CarouselStackDemoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselStackDemoView.swift; sourceTree = "<group>"; };
		EC467D8128D6CF4800291DFD /* SneakerCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SneakerCard.swift; sourceTree = "<group>"; };
		EC64DEC928C4EB4000C317A3 /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = "<group>"; };
		EC67A94D28BE69F700BDAB83 /* DemoApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoApp.swift; sourceTree = "<group>"; };
		EC67A94F28BE69F800BDAB83 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		EC67A95428BE69F800BDAB83 /* ShuffleIt Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "ShuffleIt Demo.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		EC7410B828C44DA3005EFC41 /* MainView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainView.swift; sourceTree = "<group>"; };
		EC7410BC28C45605005EFC41 /* TimingShuffleStackDemoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimingShuffleStackDemoView.swift; sourceTree = "<group>"; };
		EC98DC1F28C8E1D6000F3DD9 /* ShuffleIt */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = ShuffleIt; path = ..; sourceTree = "<group>"; };
		ECBE0E4A294D782E002239C1 /* ShuffleDeckDemoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShuffleDeckDemoView.swift; sourceTree = "<group>"; };
		ECDE4B4729584BC800FF1876 /* LandmarkCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LandmarkCard.swift; sourceTree = "<group>"; };
		ECDE4B49295859A700FF1876 /* Landmarks.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Landmarks.json; sourceTree = "<group>"; };
		ECDE4B4B295859D300FF1876 /* Landmark.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Landmark.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		EC67A95128BE69F800BDAB83 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				EC98DC2128C8E1E7000F3DD9 /* ShuffleIt in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		EC1D2D5F28C366A10000668C /* ShuffleStack */ = {
			isa = PBXGroup;
			children = (
				EC7410BB28C455DB005EFC41 /* Scenes */,
			);
			path = ShuffleStack;
			sourceTree = "<group>";
		};
		EC1D2D6028C366AB0000668C /* App */ = {
			isa = PBXGroup;
			children = (
				EC7410B828C44DA3005EFC41 /* MainView.swift */,
				EC67A94D28BE69F700BDAB83 /* DemoApp.swift */,
			);
			path = App;
			sourceTree = "<group>";
		};
		EC1D2D6128C366C20000668C /* Resources */ = {
			isa = PBXGroup;
			children = (
				EC1D2D6428C367E00000668C /* Json */,
				EC67A94F28BE69F800BDAB83 /* Assets.xcassets */,
				EC64DEC928C4EB4000C317A3 /* Launch Screen.storyboard */,
			);
			path = Resources;
			sourceTree = "<group>";
		};
		EC1D2D6428C367E00000668C /* Json */ = {
			isa = PBXGroup;
			children = (
				ECDE4B49295859A700FF1876 /* Landmarks.json */,
				EC1D2D6A28C37D280000668C /* Sneakers.json */,
			);
			path = Json;
			sourceTree = "<group>";
		};
		EC1D2D6528C368F30000668C /* Components */ = {
			isa = PBXGroup;
			children = (
				EC467D8128D6CF4800291DFD /* SneakerCard.swift */,
				EC1D2D7528C3A6EF0000668C /* SneakerItemRow.swift */,
				ECDE4B4729584BC800FF1876 /* LandmarkCard.swift */,
			);
			path = Components;
			sourceTree = "<group>";
		};
		EC1D2D6C28C382D80000668C /* Extensions */ = {
			isa = PBXGroup;
			children = (
				EC1D2D6D28C382EF0000668C /* Color+Extension.swift */,
			);
			path = Extensions;
			sourceTree = "<group>";
		};
		EC1D2D6F28C388170000668C /* Models */ = {
			isa = PBXGroup;
			children = (
				EC1D2D7028C3882D0000668C /* Sneaker.swift */,
				ECDE4B4B295859D300FF1876 /* Landmark.swift */,
			);
			path = Models;
			sourceTree = "<group>";
		};
		EC1D2D7B28C3C8A80000668C /* ViewModifier */ = {
			isa = PBXGroup;
			children = (
				EC1D2D7C28C3C8B50000668C /* DragGestureViewModifier.swift */,
			);
			path = ViewModifier;
			sourceTree = "<group>";
		};
		EC467D7D28D6CC5200291DFD /* CarouselStack */ = {
			isa = PBXGroup;
			children = (
				EC467D7E28D6CC8F00291DFD /* Scenes */,
			);
			path = CarouselStack;
			sourceTree = "<group>";
		};
		EC467D7E28D6CC8F00291DFD /* Scenes */ = {
			isa = PBXGroup;
			children = (
				EC467D7F28D6CCC700291DFD /* CarouselStackDemoView.swift */,
			);
			path = Scenes;
			sourceTree = "<group>";
		};
		EC467D8328D6CF8C00291DFD /* Demos */ = {
			isa = PBXGroup;
			children = (
				ECBE0E49294D7659002239C1 /* ShuffleDeck */,
				EC467D7D28D6CC5200291DFD /* CarouselStack */,
				EC1D2D5F28C366A10000668C /* ShuffleStack */,
			);
			path = Demos;
			sourceTree = "<group>";
		};
		EC67A94728BE69F700BDAB83 = {
			isa = PBXGroup;
			children = (
				EC98DC1E28C8E1D6000F3DD9 /* Packages */,
				EC67A94C28BE69F700BDAB83 /* Demo */,
				EC67A95528BE69F800BDAB83 /* Products */,
				ECF6A7AA28BE6C360098E2BA /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		EC67A94C28BE69F700BDAB83 /* Demo */ = {
			isa = PBXGroup;
			children = (
				EC1D2D6028C366AB0000668C /* App */,
				EC1D2D6528C368F30000668C /* Components */,
				EC467D8328D6CF8C00291DFD /* Demos */,
				EC1D2D6C28C382D80000668C /* Extensions */,
				EC1D2D6F28C388170000668C /* Models */,
				EC1D2D6128C366C20000668C /* Resources */,
				EC1D2D7B28C3C8A80000668C /* ViewModifier */,
			);
			path = Demo;
			sourceTree = "<group>";
		};
		EC67A95528BE69F800BDAB83 /* Products */ = {
			isa = PBXGroup;
			children = (
				EC67A95428BE69F800BDAB83 /* ShuffleIt Demo.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		EC7410BB28C455DB005EFC41 /* Scenes */ = {
			isa = PBXGroup;
			children = (
				EC1D2D6228C366F80000668C /* ShuffleStackDemoView.swift */,
				EC7410BC28C45605005EFC41 /* TimingShuffleStackDemoView.swift */,
			);
			path = Scenes;
			sourceTree = "<group>";
		};
		EC98DC1E28C8E1D6000F3DD9 /* Packages */ = {
			isa = PBXGroup;
			children = (
				EC98DC1F28C8E1D6000F3DD9 /* ShuffleIt */,
			);
			name = Packages;
			sourceTree = "<group>";
		};
		ECBE0E49294D7659002239C1 /* ShuffleDeck */ = {
			isa = PBXGroup;
			children = (
				ECBE0E4C294D789A002239C1 /* Scenes */,
			);
			path = ShuffleDeck;
			sourceTree = "<group>";
		};
		ECBE0E4C294D789A002239C1 /* Scenes */ = {
			isa = PBXGroup;
			children = (
				ECBE0E4A294D782E002239C1 /* ShuffleDeckDemoView.swift */,
			);
			path = Scenes;
			sourceTree = "<group>";
		};
		ECF6A7AA28BE6C360098E2BA /* Frameworks */ = {
			isa = PBXGroup;
			children = (
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		EC67A95328BE69F800BDAB83 /* Demo (iOS) */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = EC67A96528BE69F800BDAB83 /* Build configuration list for PBXNativeTarget "Demo (iOS)" */;
			buildPhases = (
				EC67A95028BE69F800BDAB83 /* Sources */,
				EC67A95128BE69F800BDAB83 /* Frameworks */,
				EC67A95228BE69F800BDAB83 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "Demo (iOS)";
			packageProductDependencies = (
				EC98DC2028C8E1E7000F3DD9 /* ShuffleIt */,
			);
			productName = "Demo (iOS)";
			productReference = EC67A95428BE69F800BDAB83 /* ShuffleIt Demo.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		EC67A94828BE69F700BDAB83 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				BuildIndependentTargetsInParallel = 1;
				LastSwiftUpdateCheck = 1330;
				LastUpgradeCheck = 1330;
				TargetAttributes = {
					EC67A95328BE69F800BDAB83 = {
						CreatedOnToolsVersion = 13.3.1;
					};
				};
			};
			buildConfigurationList = EC67A94B28BE69F700BDAB83 /* Build configuration list for PBXProject "Demo" */;
			compatibilityVersion = "Xcode 13.0";
			developmentRegion = en;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = EC67A94728BE69F700BDAB83;
			packageReferences = (
			);
			productRefGroup = EC67A95528BE69F800BDAB83 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				EC67A95328BE69F800BDAB83 /* Demo (iOS) */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		EC67A95228BE69F800BDAB83 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				EC64DECA28C4EB4000C317A3 /* Launch Screen.storyboard in Resources */,
				EC1D2D6B28C37D280000668C /* Sneakers.json in Resources */,
				EC67A96128BE69F800BDAB83 /* Assets.xcassets in Resources */,
				ECDE4B4A295859A700FF1876 /* Landmarks.json in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		EC67A95028BE69F800BDAB83 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				ECDE4B4C295859D300FF1876 /* Landmark.swift in Sources */,
				EC1D2D7128C3882D0000668C /* Sneaker.swift in Sources */,
				EC467D8228D6CF4800291DFD /* SneakerCard.swift in Sources */,
				EC7410B928C44DA3005EFC41 /* MainView.swift in Sources */,
				EC1D2D7D28C3C8B50000668C /* DragGestureViewModifier.swift in Sources */,
				EC7410BD28C45605005EFC41 /* TimingShuffleStackDemoView.swift in Sources */,
				ECDE4B4829584BC800FF1876 /* LandmarkCard.swift in Sources */,
				EC467D8028D6CCC700291DFD /* CarouselStackDemoView.swift in Sources */,
				EC1D2D7628C3A6EF0000668C /* SneakerItemRow.swift in Sources */,
				EC1D2D6E28C382EF0000668C /* Color+Extension.swift in Sources */,
				ECBE0E4B294D782E002239C1 /* ShuffleDeckDemoView.swift in Sources */,
				EC1D2D6328C366F80000668C /* ShuffleStackDemoView.swift in Sources */,
				EC67A95D28BE69F800BDAB83 /* DemoApp.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		EC67A96328BE69F800BDAB83 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
				MTL_FAST_MATH = YES;
				ONLY_ACTIVE_ARCH = YES;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		EC67A96428BE69F800BDAB83 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_ENABLE_OBJC_WEAK = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MTL_ENABLE_DEBUG_INFO = NO;
				MTL_FAST_MATH = YES;
				SWIFT_COMPILATION_MODE = wholemodule;
				SWIFT_OPTIMIZATION_LEVEL = "-O";
			};
			name = Release;
		};
		EC67A96628BE69F800BDAB83 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
				CODE_SIGN_STYLE = Automatic;
				CURRENT_PROJECT_VERSION = 1;
				DEVELOPMENT_TEAM = 9TYSSFKV5U;
				ENABLE_PREVIEWS = YES;
				GENERATE_INFOPLIST_FILE = YES;
				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
				INFOPLIST_KEY_UILaunchStoryboardName = "Launch Screen";
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = UIInterfaceOrientationPortrait;
				IPHONEOS_DEPLOYMENT_TARGET = 15.4;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.ShuffleIt;
				PRODUCT_NAME = "ShuffleIt Demo";
				SDKROOT = iphoneos;
				SWIFT_EMIT_LOC_STRINGS = YES;
				SWIFT_VERSION = 5.0;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		EC67A96728BE69F800BDAB83 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
				CODE_SIGN_STYLE = Automatic;
				CURRENT_PROJECT_VERSION = 1;
				DEVELOPMENT_TEAM = 9TYSSFKV5U;
				ENABLE_PREVIEWS = YES;
				GENERATE_INFOPLIST_FILE = YES;
				INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
				INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
				INFOPLIST_KEY_UILaunchScreen_Generation = YES;
				INFOPLIST_KEY_UILaunchStoryboardName = "Launch Screen";
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
				INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = UIInterfaceOrientationPortrait;
				IPHONEOS_DEPLOYMENT_TARGET = 15.4;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
				);
				MARKETING_VERSION = 1.0;
				PRODUCT_BUNDLE_IDENTIFIER = com.example.ShuffleIt;
				PRODUCT_NAME = "ShuffleIt Demo";
				SDKROOT = iphoneos;
				SWIFT_EMIT_LOC_STRINGS = YES;
				SWIFT_VERSION = 5.0;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		EC67A94B28BE69F700BDAB83 /* Build configuration list for PBXProject "Demo" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				EC67A96328BE69F800BDAB83 /* Debug */,
				EC67A96428BE69F800BDAB83 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		EC67A96528BE69F800BDAB83 /* Build configuration list for PBXNativeTarget "Demo (iOS)" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				EC67A96628BE69F800BDAB83 /* Debug */,
				EC67A96728BE69F800BDAB83 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */

/* Begin XCSwiftPackageProductDependency section */
		EC98DC2028C8E1E7000F3DD9 /* ShuffleIt */ = {
			isa = XCSwiftPackageProductDependency;
			productName = ShuffleIt;
		};
/* End XCSwiftPackageProductDependency section */
	};
	rootObject = EC67A94828BE69F700BDAB83 /* Project object */;
}


================================================
FILE: Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
   version = "1.0">
   <FileRef
      location = "self:">
   </FileRef>
</Workspace>


================================================
FILE: Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>IDEDidComputeMac32BitWarning</key>
	<true/>
</dict>
</plist>


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2022 Dscyre Scotti

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: Package.swift
================================================
// swift-tools-version: 5.6
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "ShuffleIt",
    platforms: [
        .iOS(.v15),
        .macOS(.v12),
        .tvOS(.v15),
        .watchOS(.v8)
    ],
    products: [
        .library(
            name: "ShuffleIt",
            targets: ["ShuffleIt"]
        ),
        .library(
            name: "ShuffleStack",
            targets: ["ShuffleStack"]
        ),
        .library(
            name: "CarouselStack",
            targets: ["CarouselStack"]
        ),
        .library(
            name: "ShuffleDeck",
            targets: ["ShuffleDeck"]
        )
    ],
    dependencies: [
        .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
        .package(url: "https://github.com/nalexn/ViewInspector.git", from: "0.9.7"),
    ],
    targets: [
        .target(
            name: "ShuffleIt",
            dependencies: ["Utils"]
        ),
        .target(
            name: "ShuffleStack",
            dependencies: ["Utils"]
        ),
        .target(
            name: "CarouselStack",
            dependencies: ["Utils"]
        ),
        .target(
            name: "ShuffleDeck",
            dependencies: ["Utils"]
        ),
        .target(
            name: "Utils",
            dependencies: []
        ),
        .target(
            name: "UtilsForTest",
            dependencies: ["ViewInspector"]
        ),
        .target(
            name: "ShuffleItForTest",
            dependencies: ["ViewInspector", "UtilsForTest"]
        ),
        .testTarget(
            name: "ShuffleItTests",
            dependencies: ["ShuffleItForTest", "Utils", "ViewInspector"]
        ),
    ],
    swiftLanguageVersions: [.v5]
)


================================================
FILE: README.md
================================================
<p align="center">
<img width="70%" src="./Assets/ShuffleIt.png">
</p>

<p align="center">
    <a href="https://swiftpackageindex.com/dscyrescotti/ShuffleIt">
	    <img  src="https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fdscyrescotti%2FShuffleIt%2Fbadge%3Ftype%3Dplatforms"/> 
    </a>
    <a href="https://swiftpackageindex.com/dscyrescotti/ShuffleIt">
	    <img  src="https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fdscyrescotti%2FShuffleIt%2Fbadge%3Ftype%3Dswift-versions"/> 
    </a>
    <a href="https://codecov.io/gh/dscyrescotti/ShuffleIt">
	    <img  src="https://codecov.io/gh/dscyrescotti/ShuffleIt/branch/main/graph/badge.svg?token=D7DRKAD0VP"/> 
    </a>
    <a href="https://github.com/dscyrescotti/ShuffleIt/actions/workflows/swift.yml">
     	<img src="https://github.com/dscyrescotti/ShuffleIt/actions/workflows/swift.yml/badge.svg" alt="Action Status"/>
    </a>
    <a href="LICENSE">
        <img src="https://img.shields.io/badge/license-MIT-brightgreen.svg" alt="MIT License">
    </a>
</p>

**ShuffleIt** is a user interface library for **SwiftUI** which delivers a collection of customizable stack views with a wide range of elegant shuffling, sliding and swiping behaviours.

<table>
<tr>
<th>CarouselStack</th>
<th>ShuffleDeck</th>
<th>ShuffleStack</th>
</tr>
<tr>
<td align="center" width="30%"><img src="./Assets/CarouselStack-Demo.gif" alt="CarouselStack-Demo" width="100%"/></td>
<td align="center" width="30%"><img src="./Assets/ShuffleDeck-Demo.gif" width="100%"/></td>
<td align="center" width="30%"><img src="./Assets/ShuffleStack-Demo.gif" alt="ShuffleStack-Demo" width="100%"/></td>
</tr>
</table>

## 💡 Features
- [CarouselStack](#carouselstack)
- [ShuffleDeck](#shuffledeck)
- [ShuffleStack](#shufflestack)

### CarouselStack <a id="carouselstack"></a>
**CarouselStack** is a stack view with sliding behaviour on the stack of content views with carousel effect. Just like **ShuffleStack**, it doesn't render all content views but it renders at most five content views which is enough to display content views with sliding animation. Besides, it provides customizablae modifiers to modify the view's appearance so that it is easy to adjust to what is desired.

#### Usage
```swift
let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
var body: some View {
    CarouselStack(
        colors,
        initialIndex: 0
    ) { color in
        color
            .frame(height: 200)
            .cornerRadius(16)
    }
}
```
<details>
<summary>Preview</summary>
<img src="./Assets/Previews/CarouselStack-Preview.gif" alt="CarouselStack-Preview"  height="300px"/>
</details>

To explore more about **CarouselStack**, check out the [documentation](https://dscyrescotti.github.io/ShuffleIt/documentation/shuffleit/carouselstack/).

### ShuffleDeck <a id="shuffledeck"></a>
**ShuffleDeck** is a stack view with shuffling behaviour on the stack of content views which mimics the behaviour of photo collections in Apple's Messages App. As it is based on the reusability of content views, it only renders views that are visible on the screen and switches data of content views based on the current index. As it comes with a bunch of modifiers, it fully supports to tailor the view to meet the wanted appearance.

#### Usage
```swift
let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
var body: some View {
    ShuffleDeck(
        colors,
        initialIndex: 0
    ) { color in
        color
            .frame(width: 200, height: 300)
            .cornerRadius(16)
    }
}
```
<details>
<summary>Preview</summary>
<img src="./Assets/Previews/ShuffleDeck-Preview.gif" alt="ShuffleDeck-Preview" height="300px"/>
</details>

To explore more about **ShuffleDeck**, check out the [documentation](https://dscyrescotti.github.io/ShuffleIt/documentation/shuffleit/shuffledeck/).

### ShuffleStack <a id="shufflestack"></a>
**ShuffleStack** is a stack view with shuffling behaviour on the stack of content views which will be useful as a banner. Not like normal stack view, it only renders three content views visible on the screen and switches data of content views based on the current index. As it comes with a bunch of modifiers, it is highly customizable to get the desired appearance.

#### Usage
```swift
let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
var body: some View {
    ShuffleStack(
        colors,
        initialIndex: 0
    ) { color in
        color
            .frame(height: 200)
            .cornerRadius(16)
    }
}
```
<details>
<summary>Preview</summary>
<img src="./Assets/Previews/ShuffleStack-Preview.gif" alt="ShuffleStack-Preview" height="300px"/>
</details>

To explore more about **ShuffleStack**, check out the [documentation](https://dscyrescotti.github.io/ShuffleIt/documentation/shuffleit/shufflestack/).

> Starting from Version 2.0.0, there are some changes which rename some modifiers and some types of ShuffleStack. Please check out [documentation](https://dscyrescotti.github.io/ShuffleIt/documentation/shuffleit/shufflestack/) to update your code accordingly.

## ⚠️ Requirements 
- iOS 15+, macOS 12+, watchOS 8+, tvOS 15+
> ShuffleIt is developed using Xcode 13.3.1. Make sure you are using Xcode 13.3.1 and above.

## 🛠 Installation 
### 📦 Using Swift Package Manager
Add it as a dependency within your Package.swift.
```
dependencies: [
    .package(url: "https://github.com/dscyrescotti/ShuffleIt.git", from: "2.1.3")
]
```

## 🔎 Exploration
### Documentation
**ShuffleIt** provides a clear documentation to increase the familiarity with the API and shallow learning curve when using it. You can check it out via this [link](https://dscyrescotti.github.io/ShuffleIt/documentation/shuffleit/).

### Demo Project
**ShuffleIt** also comes with the demo project which is an optimal spot to explore the API usage for available stack views. To run the demo project, you can use the following commands in your terminal.
```
> git clone https://github.com/dscyrescotti/ShuffleIt.git
> cd ShuffleIt && xed Demo
```
Afterwards, Xcode will open the project and then you can hit ⌘+R to run the project.


## 🎉 Motivation 
As I'm kinda like an artistic guy, I really indulge in crafting something innovative, in particular, in area of implementing user interface elements. It's a huge pleasure for me to explore the API and create an elegant components and then it has attached to me as my precious hobby. That's why, I used to craft various components to test out what I can achieve so far. Recently, I got the idea of gathering my creations in one place and delivering them to the world so that it can be easily used in other projects and also used as a learning resource for other developers. With this intention, I eventually published my first UI library called **ShuffleIt** for SwiftUI.

## ✍️ Author
Scotti | [@dscyrescotti](https://twitter.com/dscyrescotti) 

<p>
<a href="https://twitter.com/dscyrescotti">
<img src="https://img.shields.io/twitter/follow/dscyrescotti.svg?style=social">
</a>
&nbsp;
<a href="https://github.com/dscyrescotti">
<img src="https://img.shields.io/github/followers/dscyrescotti.svg?style=social&label=Follow">
</a>
</p>

## 👨‍💻 Contributions

**ShuffleIt**  welcomes all developers to contribute if you have any idea to enhance and open an issue if you encounter any bug.

## © License

**ShuffleIt** is available under the MIT license. See the  [LICENSE](https://github.com/dscyrescotti/ShuffleIt/blob/main/LICENSE)  file for more info.


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselAnimation.swift
================================================
import SwiftUI

/// An enumeration of carousel animation that maps to `SwiftUI` animation.
public enum CarouselAnimation {
    /// A linear animation.
    case linear
    /// An ease-in animation.
    case easeIn
    /// An ease-out animation.
    case easeOut
    /// An ease-in-out animation.
    case easeInOut
    
    func timing(duration: Double) -> Animation {
        switch self {
        case .linear:
            return .linear(duration: duration)
        case .easeIn:
            return .easeIn(duration: duration)
        case .easeOut:
            return .easeOut(duration: duration)
        case .easeInOut:
            return .easeInOut(duration: duration)
        }
    }
}

/// An environment key for carousel animation.
struct CarouselAnimationKey: EnvironmentKey {
    static var defaultValue: CarouselAnimation = .linear
}

extension EnvironmentValues {
    var carouselAnimation: CarouselAnimation {
        get { self[CarouselAnimationKey.self] }
        set { self[CarouselAnimationKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselContext.swift
================================================
import SwiftUI

/// A structure that provides information about sliding.
public struct CarouselContext {
    /// A property of current index of carousel stack view.
    public let index: Int
    /// A property of pervious index of carousel stack view.
    public let previousIndex: Int
    /// A property of carousel direction to which content view was slided.
    public let direction: CarouselDirection
}

/// An environment key for carousel context.
struct CarouselContextKey: EnvironmentKey {
    static var defaultValue: ((CarouselContext) -> Void)? = nil
}

extension EnvironmentValues {
    var carouselContext: ((CarouselContext) -> Void)? {
        get { self[CarouselContextKey.self] }
        set { self[CarouselContextKey.self] = newValue }
    }
}



================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselDisabled.swift
================================================
import SwiftUI

/// An environment key for a flag to decide on whether sliding is disabled or not.
@available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
@available(tvOS, unavailable)
struct CarouselDisabledKey: EnvironmentKey {
    static var defaultValue: Bool = false
}

extension EnvironmentValues {
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    var carouselDisabled: Bool {
        get { self[CarouselDisabledKey.self] }
        set { self[CarouselDisabledKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselPadding.swift
================================================
import SwiftUI

/// An environment key for carousel padding.
struct CarouselPaddingKey: EnvironmentKey {
    static var defaultValue: CGFloat = 20
}

extension EnvironmentValues {
    var carouselPadding: CGFloat {
        get { self[CarouselPaddingKey.self] }
        set { self[CarouselPaddingKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselScale.swift
================================================
import SwiftUI

/// An environment key for carousel scale.
struct CarouselScaleKey: EnvironmentKey {
    static let defaultValue: CGFloat = 1
}

extension EnvironmentValues {
    var carouselScale: CGFloat {
        get { self[CarouselScaleKey.self] }
        set { self[CarouselScaleKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselSpacing.swift
================================================
import SwiftUI

/// An environment key for carousel spacing.
struct CarouselSpacingKey: EnvironmentKey {
    static var defaultValue: CGFloat = 10
}

extension EnvironmentValues {
    var carouselSpacing: CGFloat {
        get { self[CarouselSpacingKey.self] }
        set { self[CarouselSpacingKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselStyle.swift
================================================
import SwiftUI

/// An enumeration of carousel style that is used to change sliding behaviour of the carousel stack view.
public enum CarouselStyle {
    /// A carousel style which makes content views scroll in the loop without ending.
    case infiniteScroll
    /// A carousel style which ends content views at both ends so that it cannot be scrolled infinitely.
    case finiteScroll
}

/// An environment key for carousel style.
struct CarouselStyleKey: EnvironmentKey {
    static var defaultValue: CarouselStyle = .finiteScroll
}

extension EnvironmentValues {
    var carouselStyle: CarouselStyle {
        get { self[CarouselStyleKey.self] }
        set { self[CarouselStyleKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselTranslation.swift
================================================
import SwiftUI

/// An environment key for carousel translation.
struct CarouselTranslationKey: EnvironmentKey {
    static var defaultValue: ((CGFloat) -> Void)? = nil
}

extension EnvironmentValues {
    var carouselTranslation: ((CGFloat) -> Void)? {
        get { self[CarouselTranslationKey.self] }
        set { self[CarouselTranslationKey.self] = newValue }
    }
}



================================================
FILE: Sources/CarouselStack/EnvironmentValues/CarouselTrigger.swift
================================================
import SwiftUI
import Combine

/// An enumeratoin of carousel direction.
public enum CarouselDirection {
    /// A slide direction to the left.
    case left
    /// A slide direction to the right.
    case right
}

/// An environment key for carousel trigger.
struct CarouselTriggerKey: EnvironmentKey {
    static var defaultValue: AnyPublisher<CarouselDirection, Never> = Empty<CarouselDirection, Never>().eraseToAnyPublisher()
}

extension EnvironmentValues {
    var carouselTrigger: AnyPublisher<CarouselDirection, Never> {
        get { self[CarouselTriggerKey.self] }
        set { self[CarouselTriggerKey.self] = newValue }
    }
}


================================================
FILE: Sources/CarouselStack/Extensions/CarouselStack+View.swift
================================================
import SwiftUI
import Combine

public extension View {
    /// A modifer that overrides default carousel style of the carousel stack view.
    ///
    /// `CarouselStack` provides two different carousel styles - `finiteScroll` (default) and `infiniteScroll`. To apply style as desired, it can be overridden with `carouselStyle(_:)` modifier.
    ///
    /// The following code snippet demonstrates how to override the carousel style to be able to scroll infinitely left and right.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselStyle(.infiniteScroll)
    /// }
    /// ```
    /// - Parameter style: A carousel style for carousel stack view.
    /// - Returns: A view with the given carousel style.
    func carouselStyle(_ style: CarouselStyle) -> some View {
        environment(\.carouselStyle, style)
    }
    
    /// A modifier that overrides default carousel animation of the carousel stack view.
    ///
    /// By default, `CarouselStack` comes with `linear` animation to animate scrolling behaviour. With `carouselAnimation(_:)` modifier, it can be overridden with the given animation value.
    ///
    /// The following example shows the usage of overriding default carousel animation with `easeInOut` animation that will be used while shuffling.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselAnimation(.easeInOut)
    /// }
    /// ```
    /// - Parameter animation: A shuffle animation for carousel stack view.
    /// - Returns: A view with the given carousel animation.
    func carouselAnimation(_ animation: CarouselAnimation) -> some View {
        environment(\.carouselAnimation, animation)
    }
    
    /// A modifier that disables user interaction to carousel content views.
    ///
    /// Based on the boolean passing into the modifier, the user interaction will be disabled accordingly. If the boolean is `true`, it will no longer turn on the interaction to UI. If the boolean is `false`, it allows to carousel content views.
    ///
    /// The following piece of code show how to disable the user interaction on the shuffle stack view.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselDisabled(false)
    /// }
    /// ```
    /// - Parameter disabled: A boolean value to decide whether it should be disabled or not.
    /// - Returns: A view with the given boolean.
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    func carouselDisabled(_ disabled: Bool) -> some View {
        environment(\.carouselDisabled, disabled)
    }
    
    /// A modifier that accepts events of direction to perform programmatic sliding.
    ///
    /// In purpose of programmatic sliding such as using timer, `CarouselStack` accepts events via `carouselTrigger(on:)` modifier which is needed to inject an instance of publisher with `CarouselDirection` output type and `Never` failure type.
    ///
    /// The following example provides the programmatic approach of triggering slide event by sending `CarouselDirection` value through the publisher.
    ///```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// let carouselPublisher = PassthroughSubject<CarouselDirection, Never>()
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselPublisher(on: carouselPublisher)
    /// }
    /// carouselPublisher.send(.left)
    /// carouselPublisher.send(.right)
    /// ```
    /// - Parameter publisher: A publisher object that fires `CarouselDirection` values.
    /// - Returns: A view with the given publisher object.
    func carouselTrigger<P: Publisher>(on publisher: P) -> some View where P.Output == CarouselDirection, P.Failure == Never {
        environment(\.carouselTrigger, publisher.eraseToAnyPublisher())
    }
    
    /// A modifier that sets value which is used to add some spacing between carousel stack contents.
    ///
    /// To add spacing between carousel stack contents, it can be achieved by passing the value through `carouselSpacing(_:)` modifier. By default, it uses 10 pixels to make a gap between contents.
    ///
    /// The following code sample shows the usage of `carouselSpacing(_:)` modifier by adding the space of 15 pixels to see a gap between stack contents.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselSpacing(15)
    /// }
    /// ```
    /// - Parameter spacing: A spacing value between the content views of the carousel stack view.
    /// - Returns: A view with the given spacing.
    func carouselSpacing(_ spacing: CGFloat) -> some View {
        environment(\.carouselSpacing, spacing)
    }
    
    /// A modifier that sets horizontal padding to the carousel stack view.
    ///
    /// By default, `CarouselStack` come with 20 pixels to add extra space between its frame and its content views. To be overriden, it can be done by passing the desired padding value through `carouselPadding(_:)` modifier.
    ///
    /// The following code snippet shows the usage of `carouselPadding(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselPadding(15)
    /// }
    /// ```
    /// - Parameter padding: A padding value for a carousel stack view.
    /// - Returns: A view with the given padding.
    func carouselPadding(_ padding: CGFloat) -> some View {
        environment(\.carouselPadding, padding)
    }
    
    /// A modifier that sets scale factor to shrink the size of the contents right next to the current content of the carousel stack view.
    ///
    /// `CarouselStack` allows to scale up (set value above 1) and scale down (set value below 1) contents so that the desired ui can be achieved by passing the value through `carouselScale(_:)` modifier. By defaults, it comes with the value of 1.
    ///
    /// The following code snippet shows the usage of `carouselScale(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .carouselScale(1.2)
    /// }
    /// ```
    /// - Parameter scale: A scaling factor to shrink or enlarge the size of content views.
    /// - Returns: A view with the given scaling factor.
    func carouselScale(_ scale: CGFloat) -> some View {
        environment(\.carouselScale, scale)
    }
    
    /// A modifier that listens sliding events occurring on the carousel stack view.
    ///
    /// Using `onCarousel(_:)` modifier, it can be injected with a closure that exposes sliding information - `CarouselContext` through its parameter to perform a particular task whenever the user slides content views or sliding is executed programmatically.
    ///
    /// The following piece of code provides the usage of `onCarousel(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .onCarousel { (context: CarouselContext) in
    ///         /* some stuff */
    ///     }
    /// }
    /// ```
    /// - Parameter perform: A closure that exposes carousel context to perform everytime sliding occurs.
    /// - Returns: A view with the given action for side effect of sliding.
    func onCarousel(_ perform: @escaping (CarouselContext) -> Void) -> some View {
        environment(\.carouselContext, perform)
    }
    
    /// A modifier that listens translation changes while sliding content views.
    ///
    /// To listen translation value of content views while sliding, `onCarouselTranslation(_:)` modifier can be used by passing a closure in order to perform a specific task based on the translation value.
    ///
    /// The following example provides the usage of `onCarouselTranslation(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     CarouselStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .onCarouselTranslation { (translation: CGFloat) in
    ///         /* some stuff */
    ///     }
    /// }
    /// ```
    /// Besides, you can also directly listen translation value through the initializer instead of using this modifier.
    /// - Parameter perform: A closure that exposes translation changes while sliding.
    /// - Returns: A view with the given action to listen translation changes.
    func onCarouselTranslation(_ perform: @escaping (CGFloat) -> Void) -> some View {
        environment(\.carouselTranslation, perform)
    }
}


================================================
FILE: Sources/CarouselStack/View/CarouselStack+Content.swift
================================================
import SwiftUI

extension CarouselStack {
    /// A view that renders the content view for the element of the current index.
    @ViewBuilder
    internal var mainContent: some View {
        if let element = data[safe: index] {
            let scale = 1 - (1 - scale) * scaleFactor
            content(element, translation)
                .scaleEffect(scale)
                .offset(x: mainOffset(on: scale))
        }
    }
    
    /// A view that renders the content view for the element of the previous index.
    @ViewBuilder
    internal var leftContent: some View {
        if let element = leftDataElement(1) {
            let scale = scale + (1 - scale) * scaleFactor
            let scaledWidth = size.width * scale
            let offset = xPosition - size.width - spacing - (spacing * scaleFactor) + (size.width - scaledWidth) / 2
            content(element, translation)
                .scaleEffect(scale)
                .offset(x: offset)
        }
    }
    
    /// A view that renders the content view for the element of the next index.
    @ViewBuilder
    internal var rightContent: some View {
        if let element = rightDataElement(1) {
            let scale = scale + (1 - scale) * scaleFactor
            let scaledWidth = size.width * scale
            let offset = xPosition + size.width + spacing + (spacing * scaleFactor) - (size.width - scaledWidth) / 2
            content(element, translation)
                .scaleEffect(scale)
                .offset(x: offset)
        }
    }
    
    /// A view that renders the content view for the element of the second previous index.
    @ViewBuilder
    internal var secondLeftContent: some View {
        if let element = leftDataElement(2) {
            let scaledWidth = size.width * scale
            let offsetRight = xPosition - size.width - spacing - (spacing * scaleFactor) + (size.width - scaledWidth) / 2
            let offset = offsetRight - size.width - spacing * scaleFactor
            content(element, translation)
                .scaleEffect(scale)
                .offset(x: offset)
        }
    }
    
    /// A view that renders the content view for the element of the second next index.
    @ViewBuilder
    internal var secondRightContent: some View {
        if let element = rightDataElement(2) {
            let scaledWidth = size.width * scale
            let offsetRight = xPosition + size.width + spacing + (spacing * scaleFactor) - (size.width - scaledWidth) / 2
            let offset = offsetRight + size.width + spacing * scaleFactor
            content(element, translation)
                .scaleEffect(scale)
                .offset(x: offset)
        }
    }
    
    func mainOffset(on scale: CGFloat) -> CGFloat {
        let scaledWidth = size.width * scale
        let translation: CGFloat = scaleFactor > 0.5 ? (scaleFactor == 1 ? 0 : 0.5 - scaleFactor.truncatingRemainder(dividingBy: 0.5)) : scaleFactor
        if xPosition > 0 {
            return xPosition + (spacing * translation) - (spacing * scaleFactor) - (size.width - scaledWidth) / 2
        } else {
            return xPosition - (spacing * translation) + (spacing * scaleFactor) + (size.width - scaledWidth) / 2
        }
    }
}


================================================
FILE: Sources/CarouselStack/View/CarouselStack+Data.swift
================================================
import Utils
import SwiftUI

extension CarouselStack {
    /// A property that provides the upcoming element of left side.
    internal func leftDataElement(_ offset: Int) -> Data.Element? {
        switch style {
        case .infiniteScroll:
            return data.previousElement(forLoop: index, offset: offset)
        case .finiteScroll:
            return data.previousElement(forUnloop: index, offset: offset)
        }
    }
    
    /// A property that provides the upcoming element of right side.
    internal func rightDataElement(_ offset: Int) -> Data.Element? {
        switch style {
        case .infiniteScroll:
            return data.nextElement(forLoop: index, offset: offset)
        case .finiteScroll:
            return data.nextElement(forUnloop: index, offset: offset)
        }
    }
}


================================================
FILE: Sources/CarouselStack/View/CarouselStack+Gesture.swift
================================================
import SwiftUI

extension CarouselStack {
    /// A drag gesture that listens gesture state on content views and calculates rotation and position for sliding.
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    internal var dragGesture: some Gesture {
        DragGesture()
            .updating($isActiveGesture, body: { _, state, _ in
                state = true
            })
            .onChanged({ value in
                let translation = value.translation.width
                if translation > 0 {
                    switch style {
                    case .infiniteScroll:
                        xPosition = translation - (data.distance(from: data.startIndex, to: data.endIndex) == 1 ? translation * 0.7 : 0)
                    case .finiteScroll:
                        xPosition = translation - (index == data.startIndex ? translation * 0.7 : 0)
                    }
                    direction = .left
                } else if translation < 0 {
                    switch style {
                    case .infiniteScroll:
                        xPosition = translation - (data.distance(from: data.startIndex, to: data.endIndex) == 1 ? translation * 0.7 : 0)
                    case .finiteScroll:
                        xPosition = translation - (index == data.index(before: data.endIndex) ? translation * 0.7 : 0)
                    }
                    direction = .right
                }
            })
    }
}


================================================
FILE: Sources/CarouselStack/View/CarouselStack+Sliding.swift
================================================
import SwiftUI

extension CarouselStack {
    /// A method that mimics sliding behaviour for the purpose of programmatic sliding.
    internal func performSliding(_ direction: CarouselDirection) {
        self.autoSliding = true
        self.direction = direction
        performMovingToMiddle()
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.21) {
            self.performRestoring()
        }
    }
    
    /// A method that mimics sliding behaviour to slide view to left or right for the purpose of programmatic sliding.
    internal func performMovingToMiddle() {
        let maXSwipeDistance = size.width * 0.75
        withAnimation(animation.timing(duration: 0.21)) {
            switch direction {
            case .left:
                xPosition = maXSwipeDistance
            case .right:
                xPosition = -maXSwipeDistance
            }
        }
    }
    
    /// A method that performs to restore content views, which have already been in the middle of sliding in the process of sliding, to the original position.
    internal func performRestoring() {
        let maxSwipeDistance = size.width * 0.5
        if xPosition > 0 {
            let newIndex: Data.Index?
            switch style {
            case .infiniteScroll:
                newIndex = data.previousIndex(forLoop: index, offset: 1)
            case .finiteScroll:
                newIndex = data.previousIndex(forUnloop: index, offset: 1)
            }
            if xPosition >= maxSwipeDistance, let newIndex = newIndex {
                xPosition = xPosition - size.width - spacing
                let context = CarouselContext(
                    index: data.distance(from: data.startIndex, to: newIndex),
                    previousIndex: data.distance(from: data.startIndex, to: index),
                    direction: .left
                )
                index = newIndex
                direction = .right
                withAnimation(animation.timing(duration: duration(0.07))) {
                    xPosition = 0
                    autoSliding = false
                }
                notifyListener(context: context)
            } else {
                withAnimation(animation.timing(duration: duration(0.05))) {
                    xPosition = 0
                }
            }
        } else if xPosition < 0 {
            let newIndex: Data.Index?
            switch style {
            case .infiniteScroll:
                newIndex = data.nextIndex(forLoop: index, offset: 1)
            case .finiteScroll:
                newIndex = data.nextIndex(forUnloop: index, offset: 1)
            }
            if xPosition <= -maxSwipeDistance, let newIndex = newIndex {
                xPosition = xPosition + size.width + spacing
                let context = CarouselContext(
                    index: data.distance(from: data.startIndex, to: newIndex),
                    previousIndex: data.distance(from: data.startIndex, to: index),
                    direction: .right
                )
                index = newIndex
                direction = .left
                withAnimation(animation.timing(duration: duration(0.07))) {
                    xPosition = 0
                    autoSliding = false
                }
                notifyListener(context: context)
            } else {
                withAnimation(animation.timing(duration: duration(0.05))) {
                    xPosition = 0
                }
            }
        }
    }
    
    private func duration(_ fraction: CGFloat) -> CGFloat {
        let ratio = abs(xPosition / size.width)
        return ratio * fraction + derivativeOf(fn: { $0 * fraction }, atX: ratio)
    }
    
    private func derivativeOf(fn: (CGFloat) -> CGFloat, atX x: CGFloat) -> CGFloat {
        let h = 0.0000001
        return (fn(x + h) - fn(x)) / h
    }
    
    /// A method that notifies an listener with context value after sliding succeeds.
    private func notifyListener(context: CarouselContext) {
        carouselContext?(context)
    }
    
    /// A property that calculates translation value of swiping content views.
    internal var translation: CGFloat {
        if size.width > 0 {
            let width = (size.width + spacing * 2) / 2
            let position = abs(xPosition).truncatingRemainder(dividingBy: width)
            if abs(xPosition) > width {
                return 1 - (position / width)
            } else {
                return position / width
            }
        }
        return 0
    }
    
    /// A property that calculates scaleFactor for the views based on their position.
    internal var scaleFactor: CGFloat {
        if size.width > 0 {
            let width = (size.width + spacing * 2)
            return min(1, abs(xPosition) / width)
        }
        return 0
    }
}


================================================
FILE: Sources/CarouselStack/View/CarouselStack.swift
================================================
import Utils
import SwiftUI
#if canImport(UtilsForTest)
import UtilsForTest
import ViewInspector
#endif

/// A stack view which provides carousel-style sliding behaviour to slide contents to left and right.
///
/// ## Overview
/// `CarouselStack` is built on top of `ZStack` to renders carousel sliding view which only allocates at most five content views and reuses them when index changes. In case the data passed into the stack view is empty, there will be empty view on the screen.
///
/// The following code snippet demonstrates the simple usage of `CarouselStack` which creates a slide view of color cards with default carousel style and animation.
/// ```
/// struct ContentView: View {
///     let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
///     var body: some View {
///         CarouselStack(
///             colors,
///             initialIndex: 0
///         ) { color in
///             color
///                 .frame(height: 200)
///                 .cornerRadius(16)
///         }
///     }
/// }
/// ```
///
/// ## Customizing default behaviours
/// `CarouselStack` provides a wide range of modifiers to override default behaviour of the stack view so that it is easy to tailor to view with custom values such as animation, style, spacing, padding and scale factor.
///
/// The following table shows a list of available modifiers that customizes the view.
///
/// Modifier | Description
/// --- | ---
/// ``carouselAnimation(_:)`` | A modifier that overrides default carousel animation of the carousel stack view.
/// ``carouselStyle(_:)`` | A modifer that overrides default carousel style of the carousel stack view.
/// ``carouselPadding(_:)`` | A modifier that sets horizontal padding to the carousel stack view.
/// ``carouselScale(_:)`` | A modifier that sets scale factor to shrink the size of the contents right next to the current content of the carousel stack view.
/// ``carouselSpacing(_:)`` | A modifier that sets value which is used to add some spacing between carousel stack contents.
/// ``carouselDisabled(_:)`` | A modifier that disables user interaction to carousel content views.
///
/// ## Observing sliding events and swiping translation
/// `CarouselStack` comes with useful modifiers that listens sliding events and swiping translation to perform a particular action based on those values after sliding succeeds or while swiping the views.
///
/// The following modifiers helps to observe sliding events and translation changes.
///
/// Modifier | Description
/// --- | ---
/// ``onCarousel(_:)`` | A modifier that listens sliding events occurring on the carousel stack view.
/// ``onCarouselTranslation(_:)`` | A modifier that listens translation changes while sliding content views.
///
/// ## Triggering the programmatic sliding
/// `CarouselStack` also allows programmatic sliding by accepting a series of events from the upstream publisher. Whenever the publisher fires an event, it blocks user interaction on the view and performs sliding action.
/// 
/// Modifier | Description
/// --- | ---
/// ``carouselTrigger(on:)`` | A modifier that accepts events of direction to perform programmatic sliding.
///
/// ## Topics
public struct CarouselStack<Data: RandomAccessCollection, Content: View>: View {
    @Environment(\.carouselStyle) internal var style
    @Environment(\.carouselAnimation) internal var animation
    #if !os(tvOS)
    @Environment(\.carouselDisabled) internal var disabled
    #endif
    @Environment(\.carouselTrigger) internal var carouselTrigger
    @Environment(\.carouselPadding) internal var padding
    @Environment(\.carouselSpacing) internal var spacing
    @Environment(\.carouselScale) internal var scale
    @Environment(\.carouselContext) internal var carouselContext
    @Environment(\.carouselTranslation) internal var carouselTranslation
    
    @State internal var index: Data.Index
    @State internal var xPosition: CGFloat = .zero
    @State internal var direction: CarouselDirection = .left
    @State internal var size: CGSize = .zero
    @State internal var autoSliding: Bool = false
    
    @GestureState internal var isActiveGesture: Bool = false
    
    internal let data: Data
    internal let content: (Data.Element, CGFloat) -> Content
    
    #if canImport(UtilsForTest)
    internal let inspection = Inspection<Self>()
    #endif
    
    public var body: some View {
        ZStack {
            secondLeftContent
            leftContent
            contentView
                .background {
                    GeometryReader { proxy in
                        Color.clear
                            .preference(key: SizePreferenceKey.self, value: proxy.size)
                    }
                }
            rightContent
            secondRightContent
        }
        .frame(maxWidth: .infinity)
        .padding(.horizontal, padding)
        .frame(minHeight: size.height)
        .onPreferenceChange(SizePreferenceKey.self) { size in
            if size != .zero {
                DispatchQueue.main.async {
                    self.size = size
                }
            }
        }
        .onReceive(carouselTrigger) { direction in
            switch style {
            case .infiniteScroll:
                guard data.distance(from: data.startIndex, to: data.endIndex) > 1 else { return }
            case .finiteScroll:
                switch direction {
                case .left:
                    guard data.startIndex != index else { return }
                case .right:
                    guard data.index(before: data.endIndex) != index else { return }
                }
            }
            if !autoSliding && xPosition == 0 {
                performSliding(direction)
            }
        }
        .onChange(of: xPosition) { _ in
            DispatchQueue.main.async {
                carouselTranslation?(translation)
            }
        }
        .disabled(autoSliding)
        .onChange(of: isActiveGesture) { value in
            if !isActiveGesture {
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.02) {
                    performRestoring()
                }
            }
        }
        #if canImport(UtilsForTest)
        .onReceive(inspection.notice) {
            self.inspection.visit(self, $0)
        }
        #endif
    }

    @ViewBuilder
    private var contentView: some View {
        #if os(tvOS)
        mainContent
        #else
        if disabled {
            mainContent
        } else {
            mainContent.gesture(dragGesture)
        }
        #endif
    }
}

extension CarouselStack {
    /// An initializer that returns an instance of `CarouselStack`.
    /// - Parameters:
    ///   - data: A collection of data that will be provided to content views through closure.
    ///   - initialIndex: An initiai index of data for which content view will be rendered first.
    ///   - content: A view builder that dynamically renders content view based on current index and data provided.
    public init(
        _ data: Data,
        initialIndex: Data.Index? = nil,
        @ViewBuilder content: @escaping (Data.Element) -> Content
    ) {
        self.data = data
        self.content = { element, _ in
            content(element)
        }
        self._index = State(initialValue: initialIndex ?? data.startIndex)
    }
    
    /// An initializer that returns an instance of `CarouselStack` and exposes translation value to child content through view builder.
    /// - Parameters:
    ///   - data: A collection of data that will be provided to content views through closure.
    ///   - initialIndex: An initial index of data for which content view will be rendered first.
    ///   - content: A view builder that dynamically renders content view based on current index and data provided. It also exposes the translation value of how much view is been dragging while sliding.
    public init(
        _ data: Data,
        initialIndex: Data.Index? = nil,
        @ViewBuilder content: @escaping (Data.Element, CGFloat) -> Content
    ) {
        self.data = data
        self.content = content
        self._index = State(initialValue: data.startIndex)
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckAnimation.swift
================================================
import SwiftUI

/// An enumeration of shuffle deck animation that maps to `SwiftUI` animation.
public enum ShuffleDeckAnimation {
    /// A linear animation.
    case linear
    /// An ease-in animation.
    case easeIn
    /// An ease-out animation.
    case easeOut
    /// An ease-in-out animation.
    case easeInOut

    func timing(duration: Double) -> Animation {
        switch self {
        case .linear:
            return .linear(duration: duration)
        case .easeIn:
            return .easeIn(duration: duration)
        case .easeOut:
            return .easeOut(duration: duration)
        case .easeInOut:
            return .easeInOut(duration: duration)
        }
    }
}

/// An environment key for shuffle deck animation.
struct ShuffleDeckAnimationKey: EnvironmentKey {
    static var defaultValue: ShuffleDeckAnimation = .linear
}

extension EnvironmentValues {
    var shuffleDeckAnimation: ShuffleDeckAnimation {
        get { self[ShuffleDeckAnimationKey.self] }
        set { self[ShuffleDeckAnimationKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckContext.swift
================================================
import SwiftUI

/// A structure that provides information about shuffling.
public struct ShuffleDeckContext {
    /// A property of current index of shuffle deck view.
    public let index: Int
    /// A property of previous index of shuffle deck view.
    public let previousIndex: Int
    /// A property of shuffle deck direction to which content view was dragged.
    public let direction: ShuffleDeckDirection
}

/// An environment key for shuffle deck context.
struct ShuffleDeckContextKey: EnvironmentKey {
    static var defaultValue: ((ShuffleDeckContext) -> Void)? = nil
}

extension EnvironmentValues {
    var shuffleDeckContext: ((ShuffleDeckContext) -> Void)? {
        get { self[ShuffleDeckContextKey.self] }
        set { self[ShuffleDeckContextKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckDisabled.swift
================================================
import SwiftUI

/// An environent key for a flag to decide on whether shuffling is disabled or not.
@available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
@available(tvOS, unavailable)
struct ShuffleDeckDisabledKey: EnvironmentKey {
    static var defaultValue: Bool = false
}

extension EnvironmentValues {
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    var shuffleDeckDisabled: Bool {
        get { self[ShuffleDeckDisabledKey.self] }
        set { self[ShuffleDeckDisabledKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckScale.swift
================================================
import SwiftUI

/// An environment key for shuffle deck scale.
struct ShuffleDeckScaleKey: EnvironmentKey {
    static var defaultValue: CGFloat = 0.07
}

extension EnvironmentValues {
    var shuffleDeckScale: CGFloat {
        get { self[ShuffleDeckScaleKey.self] }
        set { self[ShuffleDeckScaleKey.self] = (min(1, max(0, newValue)) * 0.1) }
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckStyle.swift
================================================
import SwiftUI

/// An enumeration of shuffle deck style that is used to change shuffling behaviour of the shuffle deck view.
public enum ShuffleDeckStyle {
    /// A shuffle deck style which makes content views scroll in the loop without ending.
    case infiniteShuffle
    /// A shuffle deck style which ends content views at both ends so that it cannot be shuffled infinitely.
    case finiteShuffle
}

/// An environment key for shuffle deck style.
struct ShuffleDeckStyleKey: EnvironmentKey {
    static var defaultValue: ShuffleDeckStyle = .finiteShuffle
}

extension EnvironmentValues {
    var shuffleDeckStyle: ShuffleDeckStyle {
        get { self[ShuffleDeckStyleKey.self] }
        set { self[ShuffleDeckStyleKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckTranslation.swift
================================================
import SwiftUI

/// An environment key for shuffle deck translation.
struct ShuffleDeckTranslationKey: EnvironmentKey {
    static var defaultValue: ((CGFloat) -> Void)? = nil
}

extension EnvironmentValues {
    var shuffleDeckTranslation: ((CGFloat) -> Void)? {
        get { self[ShuffleDeckTranslationKey.self] }
        set { self[ShuffleDeckTranslationKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckTrigger.swift
================================================
import SwiftUI
import Combine

/// An enumeration of shuffle deck direction.
public enum ShuffleDeckDirection {
    /// A shuffle direction to the left.
    case left
    /// A shuffle direction to the right.
    case right
}

/// An environment key for shuffle deck trigger.
struct ShuffleDeckTriggerKey: EnvironmentKey {
    static var defaultValue: AnyPublisher<ShuffleDeckDirection, Never> = Empty<ShuffleDeckDirection, Never>().eraseToAnyPublisher()
}

extension EnvironmentValues {
    var shuffleDeckTrigger: AnyPublisher<ShuffleDeckDirection, Never> {
        get { self[ShuffleDeckTriggerKey.self] }
        set { self[ShuffleDeckTriggerKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleDeck/Extensions/ShuffleDeck+View.swift
================================================
import SwiftUI
import Combine

public extension View {
    /// A modifier that overrides default shuffle animation of the shuffle deck view.
    ///
    /// By default, `ShuffleDeck` uses `linear` animation to animate shuffling behaviour. With `shuffleDeckAnimation` modifier, it can be overridden with the given animation value.
    ///
    /// The following example shows the usage of tailoring default shuffle deck animation with `easeIn` animation that will be used while shuffling.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleDeckAnimation(.easeIn)
    /// }
    /// ```
    /// - Parameter animation: A shuffle animation for shuffle deck view.
    /// - Returns: A view with the given shuffle deck animation.
    func shuffleDeckAnimation(_ animation: ShuffleDeckAnimation) -> some View {
        environment(\.shuffleDeckAnimation, animation)
    }

    /// A modifier that disables user interaction to shuffle deck content views.
    ///
    /// Based on the boolen passing into the modifier, the user interaction will be disabled accordingly, If the boolean is `true`, it will no longer turn on the interaction to UI. If the boolean is `false`, it allows to shuffle views.
    ///
    /// The following code snippet shows how to disable the user interaction on the shuffle deck view.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleDeckDisabled(false)
    /// }
    /// ```
    /// - Parameter disabled: A boolean value to decide whether it should be disabled or not.
    /// - Returns: A view with the given boolean.
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    func shuffleDeckDisabled(_ disabled: Bool) -> some View {
        environment(\.shuffleDeckDisabled, disabled)
    }

    /// A modifier that sets scale factor to shrink the size of the left and right content views of shuffle deck view.
    ///
    /// Regarding scaling content views, `ShuffleDeck` only allows to set value between 0 and 1 inclusively. If the value is out of this range, it will be replaced with 0 and 1 based on the given value. The default scaling factor is 0.7.
    ///
    /// The following code snippet shows the usage of `shuffleDeckScale(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleDeckScale(0.5)
    /// }
    /// ```
    /// - Parameter scale: A scaling factor to shrink the size of content views.
    /// - Returns: A view with the given scaling factor.
    func shuffleDeckScale(_ scale: CGFloat) -> some View {
        environment(\.shuffleDeckScale, scale)
    }

    /// A modifier that overrides default shuffle style of the shuffle deck view.
    ///
    /// `ShuffleDeck` comes with two different shuffling styles - `finiteShuffle` (default) and `infiniteShuffle`. To apply style as wanted, it can be overridden with `shuffleDeckStyle(_:)` modifier.
    ///
    /// The following code snippet demonstrates how to override the shuffle style to be able to shuffle infinitely.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleDeckStyle(.infiniteShuffle)
    /// }
    /// ```
    /// - Parameter style: A shuffle style for shuffle deck view.
    /// - Returns: A view with the given shuffle deck style.
    func shuffleDeckStyle(_ style: ShuffleDeckStyle) -> some View {
        environment(\.shuffleDeckStyle, style)
    }

    /// A modifier that accepts events of direction to perform programmatic shuffling.
    ///
    /// In purpose of programmatic shuffling using timer or manually, `ShuffleDeck` fires events via `shuffleDeckTrigger(on:)` modifier which is needed to inject an instance of publisher with `ShuffleDeckDirection` output type and `Never` failure type.
    ///
    /// The following example provides the programmatic approach of triggering shuffle event by sending `ShuffleDeckDirection` value through the publisher.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// let shuffleDeckPublisher = PassthroughSubject<ShuffleDeckDirection, Never>()
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleDeckTrigger(on: shuffleDeckPublisher)
    /// }
    /// shuffleDeckPublisher.send(.left)
    /// shuffleDeckPublisher.send(.right)
    /// ```
    /// - Parameter publisher: A publisher object that fires `ShuffleDeckDirection` values.
    /// - Returns: A view with the given publisher object.
    func shuffleDeckTrigger<P: Publisher>(on publisher: P) -> some View where P.Output == ShuffleDeckDirection, P.Failure == Never {
        environment(\.shuffleDeckTrigger, publisher.eraseToAnyPublisher())
    }

    /// A modifier that listens shuffling events occurring on the shuffle deck view.
    ///
    /// Using `onShuffleDeck(_:)` modifier, it can inject a closure that exposes shuffling information - `ShuffleDeckContext` through its parameter to perform a particular task whenever the user shuffle content views or shuffling is triggered programmatically.
    ///
    /// The following piece of code provides the usage of `onShuffleDeck(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .onShuffleDeck { (context: ShuffleDeckContext) in
    ///         /* some stuff */
    ///     }
    /// }
    /// ```
    /// - Parameter perform: A closure that exposes shuffle deck context to perform everytime shuffling occurs.
    /// - Returns: A view with the given action for side effect of shuffling.
    func onShuffleDeck(_ perform: @escaping (ShuffleDeckContext) -> Void) -> some View {
        environment(\.shuffleDeckContext, perform)
    }

    /// A modifier that listens translation changes while shuffling content views.
    ///
    /// To listen translation value of content views, `onShuffleDeckTranslation(_:)` modifier can be used by passing a closure in order to perform a specific task based on the translation value.
    ///
    /// The following example provides the usage of `onShuffleDeckTranslation(_:)` modifier.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleDeck(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(width: 200, height: 300)
    ///             .cornerRadius(16)
    ///     }
    ///     .onShuffleDeckTranslation { (translation: CGFloat) in
    ///         /* some stuff */
    ///     }
    /// }
    /// ```
    /// Besides, you can also directly listen translation value through the view builder instead.
    /// - Parameter perform: A closure that exposes translation changes while shuffling.
    /// - Returns: A view with the given action to listen translation changes.
    func onShuffleDeckTranslation(_ perform: @escaping (CGFloat) -> Void) -> some View {
        environment(\.shuffleDeckTranslation, perform)
    }
}


================================================
FILE: Sources/ShuffleDeck/View/ShuffleDeck+Content.swift
================================================
import SwiftUI

extension ShuffleDeck {
    /// A view that renders the content view with the element of the current index from data provided.
    @ViewBuilder
    internal var mainContent: some View {
        if let element = data[safe: index] {
            let factor: CGFloat = factor * 4
            let anchor: UnitPoint = direction == .left ? .bottomTrailing : .bottomLeading
            let scale: CGFloat = isLockedLeft || isLockedRight ? 1 - scale : 1 - scale * (direction == .left ? 1 : -1) * factor
            let degree: Double = isLockedLeft ? 2 : isLockedRight ? -2 : Double(factor) * 2
            let xOffset: CGFloat = isLockedLeft ? 3 : isLockedRight ? -3 : xPosition * 0.8
            let yOffset: CGFloat = isLockedLeft || isLockedRight ? -5 : -5 * abs(factor)
            let index: Double = isLockedLeft || isLockedRight ? 2 : 10
            content(element, translation)
                .scaleEffect(scale, anchor: anchor)
                .rotationEffect(.degrees(degree), anchor: anchor)
                .offset(x: xOffset, y: yOffset)
                .zIndex(index)
        }
    }

    /// A view that renders the content view on the left side of the main content view.
    @ViewBuilder
    internal var leftContent: some View {
        if let element = leftDataElement(1) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = 1 - scale + factor * scale
            let degree: Double = -2 + Double(factor) * 2
            let xOffset: CGFloat = -3 + factor * 2
            let yOffset: CGFloat = -5 + factor * 5
            let index: Double = direction == .left ? 3 : 1
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomLeading)
                .rotationEffect(.degrees(degree), anchor: .bottomLeading)
                .offset(x: xOffset, y: yOffset)
                .zIndex(index)
        }
    }

    /// A view that renders the content view on the right side of the main content view.
    @ViewBuilder
    internal var rightContent: some View {
        if let element = rightDataElement(1) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = 1 - scale + (-factor) * scale
            let degree: Double = 2 + Double(factor) * 2
            let xOffset: CGFloat = 3 + factor * 2
            let yOffset: CGFloat = -5 - factor * 5
            let index: Double = direction == .right ? 3 : 1
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomTrailing)
                .rotationEffect(.degrees(degree), anchor: .bottomTrailing)
                .offset(x: xOffset, y: yOffset)
                .zIndex(index)
        }
    }

    /// A second view that renders the content view on the left side of the first left content view.
    @ViewBuilder
    internal var secondLeftContent: some View {
        if let element = leftDataElement(2) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = 1 - (scale * 2) + (factor * scale)
            let degree: Double = -4 + Double(factor) * 2
            let xOffset: CGFloat = -5 + factor * 2
            let yOffset: CGFloat = -10 + factor * 5
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomLeading)
                .rotationEffect(.degrees(degree), anchor: .bottomLeading)
                .offset(x: xOffset, y: yOffset)
        }
    }

    /// A second view that renders the content view on the right side of the first right content view.
    @ViewBuilder
    internal var secondRightContent: some View {
        if let element = rightDataElement(2) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = 1 + (-scale * 2) - (factor * scale)
            let degree: Double = 4 + Double(factor) * 2
            let xOffset: CGFloat = 5 + factor * 2
            let yOffset: CGFloat = -10 - factor * 5
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomTrailing)
                .rotationEffect(.degrees(degree), anchor: .bottomTrailing)
                .offset(x: xOffset, y: yOffset)
        }
    }

    /// A third view that renders the content view on the left side of the second left content view.
    @ViewBuilder
    internal var thirdLeftContent: some View {
        if let element = leftDataElement(3) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = 1 - (scale * 3) + (factor * scale)
            let degree: Double = -6 + Double(factor) * 2
            let xOffset: CGFloat = -7 + factor * 2
            let yOffset: CGFloat = -15 + factor * 5
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomLeading)
                .rotationEffect(.degrees(degree), anchor: .bottomLeading)
                .offset(x: xOffset, y: yOffset)
        }
    }

    /// A third view that renders the content view on the right side of the second right content view.
    @ViewBuilder
    internal var thirdRightContent: some View {
        if let element = rightDataElement(3) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = 1 + (-scale * 3) - (factor * scale)
            let degree: Double = 6 + Double(factor) * 2
            let xOffset: CGFloat = 7 + factor * 2
            let yOffset: CGFloat = -15 - factor * 5
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomTrailing)
                .rotationEffect(.degrees(degree), anchor: .bottomTrailing)
                .offset(x: xOffset, y: yOffset)
        }
    }

    /// A fourth view that renders the content view on the left side of the third left content view.
    @ViewBuilder
    internal var fourthLeftContent: some View {
        if let element = leftDataElement(4) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = isShiftedLeft ? 1 - (scale * 3) : 1 - (scale * 4)  + (factor * scale)
            let degree: Double = isShiftedLeft ? -6 : -8 + Double(factor) * 2
            let xOffset: CGFloat = isShiftedLeft ? -7 : -9 + factor * 2
            let yOffset: CGFloat = isShiftedLeft ? -15 : -20 + factor * 5
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomLeading)
                .rotationEffect(.degrees(degree), anchor: .bottomLeading)
                .offset(x: xOffset, y: yOffset)
        }
    }

    /// A fourth view that renders the content view on the right side of the third right content view.
    @ViewBuilder
    internal var fourthRightContent: some View {
        if let element = rightDataElement(4) {
            let factor: CGFloat = direction == .left ? max(0, factor - 0.2) : min(0, factor + 0.2)
            let scale: CGFloat = isShiftedRight ? 1 - (scale * 3) : 1 - (scale * 4) - (factor * scale)
            let degree: Double = isShiftedRight ? 6 : 8 + Double(factor) * 2
            let xOffset: CGFloat = isShiftedRight ? 7 : 9 + factor * 2
            let yOffset: CGFloat = isShiftedRight ? -15 : -20 - factor * 5
            content(element, translation)
                .scaleEffect(scale, anchor: .bottomTrailing)
                .rotationEffect(.degrees(degree), anchor: .bottomTrailing)
                .offset(x: xOffset, y: yOffset)
        }
    }

    /// A view that renders to illustrate the fifth content view with the upcoming element from left or right side if there is any elements left.
    @ViewBuilder
    internal var nextContent: some View {
        if let element = leftDataElement(5), xPosition > 0 {
            content(element, translation)
                .scaleEffect(1 - scale * 4, anchor: .bottomLeading)
                .rotationEffect(.degrees(-8), anchor: .bottomLeading)
                .offset(x: isShiftedRight ? -9 : 0, y: -20)
                .zIndex(-2)
        }
        if let element = rightDataElement(5), xPosition < 0 {
            content(element, translation)
                .scaleEffect(1 - scale * 4, anchor: .bottomTrailing)
                .rotationEffect(.degrees(8), anchor: .bottomTrailing)
                .offset(x: isShiftedLeft ? 9 : 0, y: -20)
                .zIndex(-2)
        }
    }
}


================================================
FILE: Sources/ShuffleDeck/View/ShuffleDeck+Data.swift
================================================
import Utils
import SwiftUI

extension ShuffleDeck {
    /// A method that generates the upcoming element of left side.
    internal func leftDataElement(_ offset: Int) -> Data.Element? {
        switch style {
        case .infiniteShuffle:
            return data.previousElement(forLoop: index, offset: offset)
        case .finiteShuffle:
            return data.previousElement(forUnloop: index, offset: offset)
        }
    }

    /// A method that generates the upcoming element of right side.
    internal func rightDataElement(_ offset: Int) -> Data.Element? {
        switch style {
        case .infiniteShuffle:
            return data.nextElement(forLoop: index, offset: offset)
        case .finiteShuffle:
            return data.nextElement(forUnloop: index, offset: offset)
        }
    }
}


================================================
FILE: Sources/ShuffleDeck/View/ShuffleDeck+Gesture.swift
================================================
import SwiftUI

extension ShuffleDeck {
    /// A drag gesture that listens gesture state on content views and calculates rotation and position for shuffling.
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    internal var dragGesture: some Gesture {
        DragGesture()
            .updating($isActiveGesture) { _, state, _ in
                state = true
            }
            .onChanged { value in
                var position: CGFloat
                switch style {
                case .infiniteShuffle:
                    position = value.translation.width / 1.2
                case .finiteShuffle:
                    position = value.translation.width / 1.2
                    if position > 0, data.previousIndex(forUnloop: index, offset: 1) == nil {
                        position /= 15
                    }
                    if position < 0, data.nextIndex(forUnloop: index, offset: 1) == nil {
                        position /= 15
                    }
                }
                let range = size.width * 0.5
                xPosition = min(max(position, -range), range)
                if xPosition > 0 {
                    direction = .left
                } else if xPosition < 0 {
                    direction = .right
                }
            }
    }
}


================================================
FILE: Sources/ShuffleDeck/View/ShuffleDeck+Shuffling.swift
================================================
import Utils
import SwiftUI

extension ShuffleDeck {
    /// A method that mimics shuffling behavoir for the purpose of programmatic shuffling.
    internal func performShuffling(_ direction: ShuffleDeckDirection) {
        self.autoShuffling = true
        self.direction = direction
        performSpreadingOut()
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
            self.performRestoring()
        }
    }

    /// A method that mimics shuffling behaviour of dragging view to left or right for the purpose of programmatic shuffling.
    internal func performSpreadingOut() {
        let maxSwipeDistance = size.width * 0.25
        withAnimation(animation.timing(duration: 0.08)) {
            switch direction {
            case .left:
                xPosition = maxSwipeDistance
            case .right:
                xPosition = -maxSwipeDistance
            }
        }
    }

    /// A method that performs to restore content views, which have already spread out in the process of shuffling, to the original position.
    internal func performRestoring() {
        let midX = size.width * 0.5
        let maxSwipeDistance = size.width * 0.25
        if xPosition > 0 {
            let newIndex: Data.Index?
            switch style {
            case .infiniteShuffle:
                newIndex = data.previousIndex(forLoop: index, offset: 1)
            case .finiteShuffle:
                newIndex = data.previousIndex(forUnloop: index, offset: 1)
            }
            if xPosition >= maxSwipeDistance, let nextIndex = newIndex {
                withAnimation(animation.timing(duration: 0.08)) {
                    xPosition = midX + midX * 0.2
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
                    withAnimation(animation.timing(duration: 0.03)) {
                        isShiftedRight = true
                    }
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
                    withAnimation(animation.timing(duration: 0.08)) {
                        isLockedLeft = true
                    }
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                    let previousIndex = index
                    index = nextIndex
                    isShiftedRight = false
                    isLockedLeft = false
                    xPosition = 0
                    autoShuffling = false
                    let context = ShuffleDeckContext(
                        index: data.distance(from: data.startIndex, to: index),
                        previousIndex: data.distance(from: data.startIndex, to: previousIndex),
                        direction: .left
                    )
                    notifyListener(context: context)
                }
            } else {
                withAnimation(animation.timing(duration: 0.1)) {
                    xPosition = 0
                }
            }
        } else if xPosition < 0 {
            let newIndex: Data.Index?
            switch style {
            case .infiniteShuffle:
                newIndex = data.nextIndex(forLoop: index, offset: 1)
            case .finiteShuffle:
                newIndex = data.nextIndex(forUnloop: index, offset: 1)
            }
            if xPosition <= -maxSwipeDistance, let nextIndex = newIndex {
                withAnimation(animation.timing(duration: 0.08)) {
                    xPosition = -midX - midX * 0.2
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {
                    withAnimation(animation.timing(duration: 0.03)) {
                        isShiftedLeft = true
                    }
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
                    withAnimation(animation.timing(duration: 0.08)) {
                        isLockedRight = true
                    }
                }
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                    let previousIndex = index
                    index = nextIndex
                    isShiftedLeft = false
                    isLockedRight = false
                    xPosition = 0
                    autoShuffling = false
                    let context = ShuffleDeckContext(
                        index: data.distance(from: data.startIndex, to: index),
                        previousIndex: data.distance(from: data.startIndex, to: previousIndex),
                        direction: .right
                    )
                    notifyListener(context: context)
                }
            } else {
                withAnimation(animation.timing(duration: 0.1)) {
                    xPosition = 0
                }
            }
        }
    }

    /// A method that notifies an listener with context value after shuffling succeeds.
    private func notifyListener(context: ShuffleDeckContext) {
        shuffleDeckContext?(context)
    }

    /// A property that calculates translation value of dragging content views.
    internal var translation: CGFloat {
        return size.width > 0 ? min(abs(xPosition) / (size.width * 0.5), 1) : 0
    }

    /// A property that calculates drag amount of the content view.
    internal var factor: CGFloat {
        return size.width > 0 ? xPosition / (size.width * 0.5) : 0
    }
}


================================================
FILE: Sources/ShuffleDeck/View/ShuffleDeck.swift
================================================
import Utils
import SwiftUI
#if canImport(UtilsForTest)
import UtilsForTest
import ViewInspector
#endif

/// A stack view providing shuffling behaviour to shuffle to left and right like a deck of cards.
///
/// ## Overview
/// `ShuffleDeck` is built on top of `ZStack` to mimic the shuffling behavior of a deck of cards. Like other stack views, it only renders the visible child views and switches data to display based on the current index. In case the data provided to the view is empty, there will be empty on the screen.
///
/// The following code snippet provides the usage of `ShuffleDeck` which creates a deck of cards with default shuffle style and animation.
///
/// ```swift
/// struct ContentView: View {
///     let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
///     var body: some View {
///         ShuffleDeck(
///             colors,
///             initialIndex: 0
///         ) { color in
///             color
///                 .frame(width: 200, height: 300)
///                 .cornerRadius(16)
///         }
///     }
/// }
/// ```
///
/// ## Tailoring default behaviours
/// `ShuffleDeck` comes with multiple modifiers to override default behaviour of the stack view so that it is easy to customize view with unique animation, style and scale factor.
///
/// The following table reveals a list of available modifiers that adjust the view as expected.
///
/// Modifier | Description
/// --- | ---
/// ``shuffleDeckAnimation(_:)`` | A modifier that overrides default shuffle animation of the shuffle deck view.
/// ``shuffleDeckDisabled(_:)`` | A modifier that disables user interaction to shuffle deck content views.
/// ``shuffleDeckScale(_:)`` | A modifier that sets scale factor to shrink the size of the left and right content views of shuffle deck view.
/// ``shuffleDeckStyle(_:)`` | A modifier that overrides default shuffle style of the shuffle deck view.
///
/// ## Monitoring shuffle events and translation
/// `ShuffleDeck` provides useful modifiers that listens shuffle events and shuffling translation to perform a particular action based on those values after shuffling succeeds or while shuffling deck view.
///
/// The following modifiers helps to observe shuffling events and translation changes.
///
/// Modifier | Decription
/// --- | ---
/// ``onShuffleDeck(_:)`` | A modifier that listens shuffling events occurring on the shuffle deck view.
/// ``onShuffleDeckTranslation(_:)`` | A modifier that listens translation changes while shuffling content views.
///
/// ## Triggering shuffling programmatically
/// `ShuffleDeck` also allows programmatic shuffling by accepting a series of events from the upstream publisher. Whenever the publisher fires an event, it blocks user interaction on the view and performs shuffling action.
///
/// Modifier | Description
/// --- | ---
/// ``shuffleDeckTrigger(on:)`` | A modifier that accepts events of direction to perform programmatic shuffling.
///
/// ## Topics
public struct ShuffleDeck<Data: RandomAccessCollection, Content: View>: View {
    @Environment(\.shuffleDeckStyle) internal var style
    @Environment(\.shuffleDeckScale) internal var scale
    @Environment(\.shuffleDeckAnimation) internal var animation
    @Environment(\.shuffleDeckTrigger) internal var shuffleDeckTrigger
    #if !os(tvOS)
    @Environment(\.shuffleDeckDisabled) internal var disabled
    #endif
    @Environment(\.shuffleDeckContext) internal var shuffleDeckContext
    @Environment(\.shuffleDeckTranslation) internal var shuffleDeckTranslation

    @State internal var index: Data.Index
    @State internal var xPosition: CGFloat = .zero
    @State internal var size: CGSize = .zero
    @State internal var direction: ShuffleDeckDirection = .left
    @State internal var autoShuffling: Bool = false

    @State internal var isLockedLeft = false
    @State internal var isLockedRight = false
    // MARK: - fourth content animation
    @State internal var isShiftedLeft = false
    @State internal var isShiftedRight = false

    @GestureState internal var isActiveGesture: Bool = false

    internal let data: Data
    internal let content: (Data.Element, CGFloat) -> Content

    #if canImport(UtilsForTest)
    internal let inspection = Inspection<Self>()
    #endif

    public var body: some View {
        ZStack {
            // MARK: - Next Contents
            nextContent
            // MARK: - Left Contents
            fourthLeftContent
            thirdLeftContent
            secondLeftContent
            leftContent
            // MARK: - Right Contents
            fourthRightContent
            thirdRightContent
            secondRightContent
            rightContent
            // MARK: - Main Content
            mainContentView
                .background {
                    GeometryReader { proxy in
                        Color.clear
                            .preference(key: SizePreferenceKey.self, value: proxy.size)
                            .onAppear {
                                self.size = proxy.size
                            }
                    }
                }
        }
        .frame(maxWidth: .infinity, minHeight: size.height)
        .onPreferenceChange(SizePreferenceKey.self) { size in
            if size != .zero {
                DispatchQueue.main.async {
                    self.size = size
                }
            }
        }
        .onChange(of: isActiveGesture) { value in
            if !isActiveGesture {
                performRestoring()
            }
        }
        .onReceive(shuffleDeckTrigger) { direction in
            switch style {
            case .infiniteShuffle:
                guard data.distance(from: data.startIndex, to: data.endIndex) > 1 else { return }
            case .finiteShuffle:
                switch direction {
                case .left:
                    guard data.startIndex != index else { return }
                case .right:
                    guard data.index(before: data.endIndex) != index else { return }
                }
            }
            if !autoShuffling && xPosition == 0 {
                performShuffling(direction)
            }
        }
        .disabled(autoShuffling)
        .onChange(of: xPosition) { _ in
            DispatchQueue.main.async {
                shuffleDeckTranslation?(translation)
            }
        }
        #if canImport(UtilsForTest)
        .onReceive(inspection.notice) {
            self.inspection.visit(self, $0)
        }
        #endif
    }

    @ViewBuilder
    var mainContentView: some View {
        #if os(tvOS)
        mainContent
        #else
        if disabled {
            mainContent
        } else {
            mainContent
                .gesture(dragGesture)
        }
        #endif
    }
}

extension ShuffleDeck {
    /// An initializer that returns an instance of `ShuffleDeck`.
    /// - Parameters:
    ///   - data: A collection of data that will be provided to content views through closure.
    ///   - initialIndex: An initial index of data for which content view will be rendered first.
    ///   - content: A view builder that dynamically renders content view based on current index and data provided.
    public init(
        _ data: Data,
        initialIndex: Data.Index? = nil,
        @ViewBuilder content: @escaping (Data.Element) -> Content
    ) {
        self.data = data
        self._index = State(initialValue: initialIndex ?? data.startIndex)
        self.content = { element, _ in
            content(element)
        }
    }

    /// An initializer that returns an instance of `ShuffleDeck` and exposes translation value to child content through view builder.
    /// - Parameters:
    ///   - data: A collection of data that will be provided to content views through closure.
    ///   - initialIndex: An initial index of data for which content view will be rendered first.
    ///   - content: A view builder that dynamically renders content view based on current index and data provided. It also exposes the translation value of how much view is been dragging while shuffling.
    public init(
        _ data: Data,
        initialIndex: Data.Index? = nil,
        content: @escaping (Data.Element, CGFloat) -> Content
    ) {
        self.data = data
        self._index = State(initialValue: initialIndex ?? data.startIndex)
        self.content = content
    }
}


================================================
FILE: Sources/ShuffleIt/ShuffleIt.docc/ShuffleIt.md
================================================
# ``ShuffleIt``

A UI element library for **SwiftUI**.

## Overview

**ShuffleIt** is a user interface library for **SwiftUI** which delivers a collection of customizable stack views with a wide range of elegant shuffling, sliding and swiping behaviours.

!["logo"](ShuffleIt.png)

## Topics

### CarouselStack
- ``CarouselStack``
- ``CarouselAnimation``
- ``CarouselContext``
- ``CarouselDirection``
- ``CarouselStyle``

### ShuffleDeck
- ``ShuffleDeck``
- ``ShuffleDeckAnimation``
- ``ShuffleDeckContext``
- ``ShuffleDeckDirection``
- ``ShuffleDeckStyle``

### ShuffleStack
- ``ShuffleStack``
- ``ShuffleAnimation``
- ``ShuffleContext``
- ``ShuffleDirection``
- ``ShuffleStyle``


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleAnimation.swift
================================================
import SwiftUI

/// An enumeration of shuffle animation that maps to `SwiftUI` animation.
public enum ShuffleAnimation {
    /// A linear animation.
    case linear
    /// An ease-in animation.
    case easeIn
    /// An ease-out animation.
    case easeOut
    /// An ease-in-out animation.
    case easeInOut
    
    func timing(duration: Double) -> Animation {
        switch self {
        case .linear:
            return .linear(duration: duration)
        case .easeIn:
            return .easeIn(duration: duration)
        case .easeOut:
            return .easeOut(duration: duration)
        case .easeInOut:
            return .easeInOut(duration: duration)
        }
    }
}

/// An environment key for shuffle animation.
struct ShuffleAnimationKey: EnvironmentKey {
    static var defaultValue: ShuffleAnimation = .linear
}

extension EnvironmentValues {
    var shuffleAnimation: ShuffleAnimation {
        get { self[ShuffleAnimationKey.self] }
        set { self[ShuffleAnimationKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleContext.swift
================================================
import SwiftUI

/// A structure that provides information about shuffling.
public struct ShuffleContext {
    /// A property of current index of shuffle stack view.
    public let index: Int
    /// A property of previous index of shuffle stack view.
    public let previousIndex: Int
    /// A property of shuffling direction to which content view was swiped.
    public let direction: ShuffleDirection
}

/// An environment key for shuffle context.
struct ShuffleContextKey: EnvironmentKey {
    static var defaultValue: ((ShuffleContext) -> Void)? = nil
}

extension EnvironmentValues {
    var shuffleContext: ((ShuffleContext) -> Void)? {
        get { self[ShuffleContextKey.self] }
        set { self[ShuffleContextKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleDiabled.swift
================================================
import SwiftUI

/// An environment key for a flag to decide on whether shuffling is disabled or not.
@available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
@available(tvOS, unavailable)
struct ShuffleDisabledKey: EnvironmentKey {
    static var defaultValue: Bool = false
}

extension EnvironmentValues {
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    var shuffleDisabled: Bool {
        get { self[ShuffleDisabledKey.self] }
        set { self[ShuffleDisabledKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleOffset.swift
================================================
import Utils
import SwiftUI

/// An environment key for shuffle stack offset.
struct ShuffleOffsetKey: EnvironmentKey {
    static var defaultValue: CGFloat = 15
}

extension EnvironmentValues {
    var shuffleOffset: CGFloat {
        get { self[ShuffleOffsetKey.self] }
        set { self[ShuffleOffsetKey.self] = max(newValue, 0) }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShufflePadding.swift
================================================
import SwiftUI

/// An environment key for shuffle stack padding.
struct ShufflePaddingKey: EnvironmentKey {
    static var defaultValue: CGFloat = 15
}

extension EnvironmentValues {
    var shufflePadding: CGFloat {
        get { self[ShufflePaddingKey.self] }
        set { self[ShufflePaddingKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleScale.swift
================================================
import SwiftUI

/// An environment key for shuffle stack scale.
struct ShuffleScaleKey: EnvironmentKey {
    static var defaultValue: CGFloat = 0.95
}

extension EnvironmentValues {
    var shuffleScale: CGFloat {
        get { self[ShuffleScaleKey.self] }
        set { self[ShuffleScaleKey.self] = (min(1, max(0, newValue)) * 0.1) + 0.9 }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleStyle.swift
================================================
import SwiftUI

/// An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view.
public enum ShuffleStyle {
    /// A shuffle style which just slides content views without rotating.
    case slide
    /// A shuffle style which rotates and scales into center while shuffling.
    case rotateIn
    /// A shuffle style which rotates and scales to outside while shuffling.
    case rotateOut
}

/// An environment key for shuffle style.
struct ShuffleStyleKey: EnvironmentKey {
    static var defaultValue: ShuffleStyle = .slide
}

extension EnvironmentValues {
    var shuffleStyle: ShuffleStyle {
        get { self[ShuffleStyleKey.self] }
        set { self[ShuffleStyleKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleTranslation.swift
================================================
import SwiftUI

/// An environment key for suffle translation.
struct ShuffleTranslationKey: EnvironmentKey {
    static var defaultValue: ((CGFloat) -> Void)? = nil
}

extension EnvironmentValues {
    var shuffleTranslation: ((CGFloat) -> Void)? {
        get { self[ShuffleTranslationKey.self] }
        set { self[ShuffleTranslationKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/EnvironmentValues/ShuffleTrigger.swift
================================================
import SwiftUI
import Combine

/// An enumeration of shuffle direction.
public enum ShuffleDirection {
    /// A shuffle direction to the left.
    case left
    /// A shuffle direction to the right.
    case right
}

/// An environment key for shuffle trigger.
struct ShuffleTriggerKey: EnvironmentKey {
    static var defaultValue: AnyPublisher<ShuffleDirection, Never> = Empty<ShuffleDirection, Never>().eraseToAnyPublisher()
}

extension EnvironmentValues {
    var shuffleTrigger: AnyPublisher<ShuffleDirection, Never> {
        get { self[ShuffleTriggerKey.self] }
        set { self[ShuffleTriggerKey.self] = newValue }
    }
}


================================================
FILE: Sources/ShuffleStack/Extensions/ShuffleStack+View.swift
================================================
import SwiftUI
import Combine

public extension View {
    /// A modifer that overrides default shuffle style of the shuffle stack view.
    ///
    /// `ShuffleStack` comes with three different shuffle styles - `slide` (default), `rotateIn` and `rotateOut` and uses `slide` as a default style. To apply other style, it can be overridden by using `shuffleStyle(_:)` modifier.
    ///
    /// The following example shows the usage of overriding default shuffle style with `rotateOut` style to rotate and scale to the outside while shuffling.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleStyle(.rotateOut)
    /// }
    /// ```
    /// - Parameter style: A shuffle style for shuffle stack view.
    /// - Returns: A view with the given shuffle style.
    func shuffleStyle(_ style: ShuffleStyle) -> some View {
        environment(\.shuffleStyle, style)
    }
    
    /// A modifer that overrides default shuffle animation of the shuffle stack view.
    ///
    /// By default, `ShuffleStack` uses `linear` animation to animate shuffling behaviour. With `shuffleAnimation(_:)` modifier, it can be overridden with the given animation value.
    ///
    /// The following example shows the usage of overriding default shuffle animation with `easeInOut` animation that will be used while shuffling.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleAnimation(.easeInOut)
    /// }
    /// ```
    /// - Parameter animation: A shuffle animation for shuffle stack view.
    /// - Returns: A view with the given shuffle animation.
    func shuffleAnimation(_ animation: ShuffleAnimation) -> some View {
        environment(\.shuffleAnimation, animation)
    }
    
    /// A modifer that disables user interaction to shuffle content views.
    ///
    /// Based on the boolean passing into the modifier, the user interaction will be disabled accordingly. If the boolean is `true`,  it will no longer turn on the interaction to UI. If the boolean is `false`, it allows to shuffle content views.
    ///
    /// The following piece of code shows how to disable the user interaction on the shuffle stack view.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// var body: some View {
    ///     ShuffleStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///         color
    ///             .frame(height: 200)
    ///             .cornerRadius(16)
    ///     }
    ///     .shuffleDisabled(false)
    /// }
    /// ```
    /// - Parameter disabled: A boolean value to decide whether it should be disabled or not.
    /// - Returns: A view with the given boolean.
    @available(iOS 15.0, macOS 12.0, watchOS 8.0, *)
    @available(tvOS, unavailable)
    func shuffleDisabled(_ disabled: Bool) -> some View {
        environment(\.shuffleDisabled, disabled)
    }
    
    
    /// A modifier that accpets events of direction to perform programmatic shuffling.
    ///
    /// In purpose of shuffling programmatically such as using timer, `ShuffleStack` accepts events via `shuffleTrigger(on:)` modifier which is needed to inject an instance of publisher with `ShuffleDirection` output type and `Never` failure type.
    ///
    /// The following example provides the programmatic way of triggering shuffle event by sending `ShuffleDirection` value through the publisher.
    /// ```swift
    /// let colors: [Color] = [.blue, .brown, .black, .cyan, .green, .indigo, .pink, .purple, .red, .orange, .yellow]
    /// let shufflePublisher = PassthroughSubject<ShuffleDirection, Never>()
    /// var body: some View {
    ///     ShuffleStack(
    ///         colors,
    ///         initialIndex: 0
    ///     ) { color in
    ///  
Download .txt
Showing preview only (237K chars total). Download the full file or copy to clipboard to get everything.
gitextract_czsyd4_6/

├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug-report.md
│   │   └── feature-request.md
│   └── workflows/
│       └── swift.yml
├── .gitignore
├── Demo/
│   ├── Demo/
│   │   ├── App/
│   │   │   ├── DemoApp.swift
│   │   │   └── MainView.swift
│   │   ├── Components/
│   │   │   ├── LandmarkCard.swift
│   │   │   ├── SneakerCard.swift
│   │   │   └── SneakerItemRow.swift
│   │   ├── Demos/
│   │   │   ├── CarouselStack/
│   │   │   │   └── Scenes/
│   │   │   │       └── CarouselStackDemoView.swift
│   │   │   ├── ShuffleDeck/
│   │   │   │   └── Scenes/
│   │   │   │       └── ShuffleDeckDemoView.swift
│   │   │   └── ShuffleStack/
│   │   │       └── Scenes/
│   │   │           ├── ShuffleStackDemoView.swift
│   │   │           └── TimingShuffleStackDemoView.swift
│   │   ├── Extensions/
│   │   │   └── Color+Extension.swift
│   │   ├── Models/
│   │   │   ├── Landmark.swift
│   │   │   └── Sneaker.swift
│   │   ├── Resources/
│   │   │   ├── Assets.xcassets/
│   │   │   │   ├── AccentColor.colorset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── AppIcon.appiconset/
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── landmarks/
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── christ_the_redeemer.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── eiffel_tower.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── great_wall_of_china.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── merlion_statue.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── niagara_falls.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── petronas_towers.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── shwedagon_pagoda.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── sphinx_statue.imageset/
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── statue_of_liberty.imageset/
│   │   │   │   │       └── Contents.json
│   │   │   │   ├── shuffle-it-logo.imageset/
│   │   │   │   │   └── Contents.json
│   │   │   │   └── sneakers/
│   │   │   │       ├── Contents.json
│   │   │   │       ├── air-force-1-mid.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── air-forces/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── air-force1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-force2.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-force3.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-force4.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── air-force5.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── air-jordan-1.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── air-jordans/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── air-jordan1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   ├── air-jordan2.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── air-jordan3.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── air-trainer-sc-high.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── air-trainers/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── air-trainer1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── air-trainer2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── dunk-high-retro-premium.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── dunk-high-vintage.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── kyrie-infinity.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── kyrie-infiniy/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── kyrie-infinity1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── kyrie-infinity2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── nike-air-presto.imageset/
│   │   │   │       │   └── Contents.json
│   │   │   │       ├── prestos/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── presto1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── presto2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       ├── retros/
│   │   │   │       │   ├── Contents.json
│   │   │   │       │   ├── retro1.imageset/
│   │   │   │       │   │   └── Contents.json
│   │   │   │       │   └── retro2.imageset/
│   │   │   │       │       └── Contents.json
│   │   │   │       └── vintages/
│   │   │   │           ├── Contents.json
│   │   │   │           ├── vintage1.imageset/
│   │   │   │           │   └── Contents.json
│   │   │   │           ├── vintage2.imageset/
│   │   │   │           │   └── Contents.json
│   │   │   │           ├── vintage3.imageset/
│   │   │   │           │   └── Contents.json
│   │   │   │           └── vintage4.imageset/
│   │   │   │               └── Contents.json
│   │   │   ├── Json/
│   │   │   │   ├── Landmarks.json
│   │   │   │   └── Sneakers.json
│   │   │   └── Launch Screen.storyboard
│   │   └── ViewModifier/
│   │       └── DragGestureViewModifier.swift
│   └── Demo.xcodeproj/
│       ├── project.pbxproj
│       └── project.xcworkspace/
│           ├── contents.xcworkspacedata
│           └── xcshareddata/
│               └── IDEWorkspaceChecks.plist
├── LICENSE
├── Package.swift
├── README.md
├── Sources/
│   ├── CarouselStack/
│   │   ├── EnvironmentValues/
│   │   │   ├── CarouselAnimation.swift
│   │   │   ├── CarouselContext.swift
│   │   │   ├── CarouselDisabled.swift
│   │   │   ├── CarouselPadding.swift
│   │   │   ├── CarouselScale.swift
│   │   │   ├── CarouselSpacing.swift
│   │   │   ├── CarouselStyle.swift
│   │   │   ├── CarouselTranslation.swift
│   │   │   └── CarouselTrigger.swift
│   │   ├── Extensions/
│   │   │   └── CarouselStack+View.swift
│   │   └── View/
│   │       ├── CarouselStack+Content.swift
│   │       ├── CarouselStack+Data.swift
│   │       ├── CarouselStack+Gesture.swift
│   │       ├── CarouselStack+Sliding.swift
│   │       └── CarouselStack.swift
│   ├── ShuffleDeck/
│   │   ├── EnvironmentValues/
│   │   │   ├── ShuffleDeckAnimation.swift
│   │   │   ├── ShuffleDeckContext.swift
│   │   │   ├── ShuffleDeckDisabled.swift
│   │   │   ├── ShuffleDeckScale.swift
│   │   │   ├── ShuffleDeckStyle.swift
│   │   │   ├── ShuffleDeckTranslation.swift
│   │   │   └── ShuffleDeckTrigger.swift
│   │   ├── Extensions/
│   │   │   └── ShuffleDeck+View.swift
│   │   └── View/
│   │       ├── ShuffleDeck+Content.swift
│   │       ├── ShuffleDeck+Data.swift
│   │       ├── ShuffleDeck+Gesture.swift
│   │       ├── ShuffleDeck+Shuffling.swift
│   │       └── ShuffleDeck.swift
│   ├── ShuffleIt/
│   │   └── ShuffleIt.docc/
│   │       └── ShuffleIt.md
│   ├── ShuffleStack/
│   │   ├── EnvironmentValues/
│   │   │   ├── ShuffleAnimation.swift
│   │   │   ├── ShuffleContext.swift
│   │   │   ├── ShuffleDiabled.swift
│   │   │   ├── ShuffleOffset.swift
│   │   │   ├── ShufflePadding.swift
│   │   │   ├── ShuffleScale.swift
│   │   │   ├── ShuffleStyle.swift
│   │   │   ├── ShuffleTranslation.swift
│   │   │   └── ShuffleTrigger.swift
│   │   ├── Extensions/
│   │   │   └── ShuffleStack+View.swift
│   │   └── View/
│   │       ├── ShuffleStack+Content.swift
│   │       ├── ShuffleStack+Data.swift
│   │       ├── ShuffleStack+Gesture.swift
│   │       ├── ShuffleStack+Shuffling.swift
│   │       └── ShuffleStack.swift
│   ├── Utils/
│   │   ├── Extensions/
│   │   │   └── RandomAccessCollection+Extension.swift
│   │   └── PreferenceKeys/
│   │       └── SizePreferenceKey.swift
│   └── UtilsForTest/
│       └── Inspection.swift
├── Tests/
│   └── ShuffleItTests/
│       ├── CarouselStack/
│       │   ├── CarouselStackGestureTests.swift
│       │   ├── CarouselStackShufflingTests.swift
│       │   └── CarouselStackTests.swift
│       ├── ShuffleDeck/
│       │   ├── ShuffleDeckGestureTests.swift
│       │   ├── ShuffleDeckSlidingTests.swift
│       │   └── ShuffleDeckTests.swift
│       ├── ShuffleStack/
│       │   ├── ShuffleStackGestureTests.swift
│       │   ├── ShuffleStackShufflingTests.swift
│       │   └── ShuffleStackTests.swift
│       └── Utils/
│           ├── BaseTestCase.swift
│           ├── ColorView.swift
│           └── ValueSpy.swift
├── codecov.yaml
└── docs/
    ├── css/
    │   ├── documentation-topic.3bca6578.css
    │   ├── documentation-topic~topic~tutorials-overview.82acfe22.css
    │   ├── index.12bb178a.css
    │   ├── topic.ee15af52.css
    │   └── tutorials-overview.06e8bcf7.css
    ├── data/
    │   └── documentation/
    │       ├── shuffleit/
    │       │   ├── carouselanimation/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── easein.json
    │       │   │   ├── easeinout.json
    │       │   │   ├── easeout.json
    │       │   │   ├── equatable-implementations.json
    │       │   │   └── linear.json
    │       │   ├── carouselanimation.json
    │       │   ├── carouselcontext/
    │       │   │   ├── direction.json
    │       │   │   ├── index.json
    │       │   │   └── previousindex.json
    │       │   ├── carouselcontext.json
    │       │   ├── carouseldirection/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── left.json
    │       │   │   └── right.json
    │       │   ├── carouseldirection.json
    │       │   ├── carouselstack/
    │       │   │   ├── accentcolor(_:).json
    │       │   │   ├── accessibility(activationpoint:)-4y62.json
    │       │   │   ├── accessibility(activationpoint:)-695kx.json
    │       │   │   ├── accessibility(addtraits:).json
    │       │   │   ├── accessibility(hidden:).json
    │       │   │   ├── accessibility(hint:).json
    │       │   │   ├── accessibility(identifier:).json
    │       │   │   ├── accessibility(inputlabels:).json
    │       │   │   ├── accessibility(label:).json
    │       │   │   ├── accessibility(removetraits:).json
    │       │   │   ├── accessibility(selectionidentifier:).json
    │       │   │   ├── accessibility(sortpriority:).json
    │       │   │   ├── accessibility(value:).json
    │       │   │   ├── accessibilityaction(_:_:).json
    │       │   │   ├── accessibilityaction(action:label:).json
    │       │   │   ├── accessibilityaction(named:_:)-3lqsr.json
    │       │   │   ├── accessibilityaction(named:_:)-69c69.json
    │       │   │   ├── accessibilityaction(named:_:)-rgyh.json
    │       │   │   ├── accessibilityactivationpoint(_:)-5bbv5.json
    │       │   │   ├── accessibilityactivationpoint(_:)-8dokx.json
    │       │   │   ├── accessibilityaddtraits(_:).json
    │       │   │   ├── accessibilityadjustableaction(_:).json
    │       │   │   ├── accessibilitychartdescriptor(_:).json
    │       │   │   ├── accessibilitychildren(children:).json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1586n.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1u9b5.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-3t2kq.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-46frq.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-47g1f.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-5xqqc.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-8rfm7.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-9cou3.json
    │       │   │   ├── accessibilityelement(children:).json
    │       │   │   ├── accessibilityfocused(_:).json
    │       │   │   ├── accessibilityfocused(_:equals:).json
    │       │   │   ├── accessibilityheading(_:).json
    │       │   │   ├── accessibilityhidden(_:).json
    │       │   │   ├── accessibilityhint(_:)-2j7te.json
    │       │   │   ├── accessibilityhint(_:)-37ope.json
    │       │   │   ├── accessibilityhint(_:)-7yi0h.json
    │       │   │   ├── accessibilityidentifier(_:).json
    │       │   │   ├── accessibilityignoresinvertcolors(_:).json
    │       │   │   ├── accessibilityinputlabels(_:)-3feba.json
    │       │   │   ├── accessibilityinputlabels(_:)-3p703.json
    │       │   │   ├── accessibilityinputlabels(_:)-95tn0.json
    │       │   │   ├── accessibilitylabel(_:)-2tohn.json
    │       │   │   ├── accessibilitylabel(_:)-755g2.json
    │       │   │   ├── accessibilitylabel(_:)-8bin6.json
    │       │   │   ├── accessibilitylabeledpair(role:id:in:).json
    │       │   │   ├── accessibilitylinkedgroup(id:in:).json
    │       │   │   ├── accessibilityremovetraits(_:).json
    │       │   │   ├── accessibilityrepresentation(representation:).json
    │       │   │   ├── accessibilityrespondstouserinteraction(_:).json
    │       │   │   ├── accessibilityrotor(_:entries:)-1c2au.json
    │       │   │   ├── accessibilityrotor(_:entries:)-4pacb.json
    │       │   │   ├── accessibilityrotor(_:entries:)-4w7j0.json
    │       │   │   ├── accessibilityrotor(_:entries:)-825mo.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1w44t.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-4vvcg.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-5gz2c.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-utor.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-25t4x.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-3evdd.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-4e9vu.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-59b0s.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-25npe.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-3d2p8.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-4jxor.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-9sgga.json
    │       │   │   ├── accessibilityrotorentry(id:in:).json
    │       │   │   ├── accessibilityscrollaction(_:).json
    │       │   │   ├── accessibilityshowslargecontentviewer().json
    │       │   │   ├── accessibilityshowslargecontentviewer(_:).json
    │       │   │   ├── accessibilitysortpriority(_:).json
    │       │   │   ├── accessibilitytextcontenttype(_:).json
    │       │   │   ├── accessibilityvalue(_:)-5fw6g.json
    │       │   │   ├── accessibilityvalue(_:)-5y8gy.json
    │       │   │   ├── accessibilityvalue(_:)-8ihs6.json
    │       │   │   ├── alert(_:ispresented:actions:)-1q2gb.json
    │       │   │   ├── alert(_:ispresented:actions:)-76wk8.json
    │       │   │   ├── alert(_:ispresented:actions:)-7wghk.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-5s7hn.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-9a4q7.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-f5o2.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-4edmo.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-4uw7u.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-8axxo.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-226oe.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-4tvm3.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7b0gl.json
    │       │   │   ├── alert(ispresented:content:).json
    │       │   │   ├── alert(ispresented:error:actions:).json
    │       │   │   ├── alert(ispresented:error:actions:message:).json
    │       │   │   ├── alert(item:content:).json
    │       │   │   ├── alignmentguide(_:computevalue:)-4r6p.json
    │       │   │   ├── alignmentguide(_:computevalue:)-8e6vc.json
    │       │   │   ├── allowshittesting(_:).json
    │       │   │   ├── allowstightening(_:).json
    │       │   │   ├── anchorpreference(key:value:transform:).json
    │       │   │   ├── animation(_:).json
    │       │   │   ├── animation(_:value:).json
    │       │   │   ├── aspectratio(_:contentmode:)-72t0z.json
    │       │   │   ├── aspectratio(_:contentmode:)-8gir9.json
    │       │   │   ├── background(_:alignment:).json
    │       │   │   ├── background(_:ignoressafeareaedges:).json
    │       │   │   ├── background(_:in:fillstyle:)-4hb5h.json
    │       │   │   ├── background(_:in:fillstyle:)-5xuxn.json
    │       │   │   ├── background(alignment:content:).json
    │       │   │   ├── background(ignoressafeareaedges:).json
    │       │   │   ├── background(in:fillstyle:)-2lcq8.json
    │       │   │   ├── background(in:fillstyle:)-6gtsb.json
    │       │   │   ├── backgroundpreferencevalue(_:_:).json
    │       │   │   ├── badge(_:)-10ceg.json
    │       │   │   ├── badge(_:)-6ah2.json
    │       │   │   ├── badge(_:)-7kz0m.json
    │       │   │   ├── badge(_:)-8lj4d.json
    │       │   │   ├── blendmode(_:).json
    │       │   │   ├── blur(radius:opaque:).json
    │       │   │   ├── body.json
    │       │   │   ├── border(_:width:).json
    │       │   │   ├── brightness(_:).json
    │       │   │   ├── buttonbordershape(_:).json
    │       │   │   ├── buttonstyle(_:)-6awhx.json
    │       │   │   ├── buttonstyle(_:)-8ljh4.json
    │       │   │   ├── carouselanimation(_:).json
    │       │   │   ├── carouseldisabled(_:).json
    │       │   │   ├── carouselpadding(_:).json
    │       │   │   ├── carouselscale(_:).json
    │       │   │   ├── carouselspacing(_:).json
    │       │   │   ├── carouselstyle(_:).json
    │       │   │   ├── carouseltrigger(on:).json
    │       │   │   ├── clipped(antialiased:).json
    │       │   │   ├── clipshape(_:style:).json
    │       │   │   ├── colorinvert().json
    │       │   │   ├── colormultiply(_:).json
    │       │   │   ├── colorscheme(_:).json
    │       │   │   ├── compositinggroup().json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-1uzrt.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-5d29j.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-718e5.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-65zoh.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-951t3.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9yu7k.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1ji6h.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-4fi9z.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-51cln.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-2m470.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-9o8j.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-g5bx.json
    │       │   │   ├── containershape(_:).json
    │       │   │   ├── contentshape(_:_:eofill:).json
    │       │   │   ├── contentshape(_:eofill:).json
    │       │   │   ├── contextmenu(_:).json
    │       │   │   ├── contextmenu(menuitems:).json
    │       │   │   ├── contrast(_:).json
    │       │   │   ├── controlgroupstyle(_:).json
    │       │   │   ├── controlsize(_:).json
    │       │   │   ├── coordinatespace(name:).json
    │       │   │   ├── cornerradius(_:antialiased:).json
    │       │   │   ├── datepickerstyle(_:).json
    │       │   │   ├── defaultappstorage(_:).json
    │       │   │   ├── deletedisabled(_:).json
    │       │   │   ├── disableautocorrection(_:).json
    │       │   │   ├── disabled(_:).json
    │       │   │   ├── drawinggroup(opaque:colormode:).json
    │       │   │   ├── dynamictypesize(_:).json
    │       │   │   ├── edgesignoringsafearea(_:).json
    │       │   │   ├── environment(_:_:).json
    │       │   │   ├── environmentobject(_:).json
    │       │   │   ├── exportsitemproviders(_:onexport:).json
    │       │   │   ├── exportsitemproviders(_:onexport:onedit:).json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-2xo1j.json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-5w70m.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-9dfyf.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-vkdb.json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:).json
    │       │   │   ├── filemover(ispresented:file:oncompletion:).json
    │       │   │   ├── filemover(ispresented:files:oncompletion:).json
    │       │   │   ├── fixedsize().json
    │       │   │   ├── fixedsize(horizontal:vertical:).json
    │       │   │   ├── flipsforrighttoleftlayoutdirection(_:).json
    │       │   │   ├── focusable(_:).json
    │       │   │   ├── focusable(_:onfocuschange:).json
    │       │   │   ├── focused(_:).json
    │       │   │   ├── focused(_:equals:).json
    │       │   │   ├── focusedscenevalue(_:_:).json
    │       │   │   ├── focusedvalue(_:_:).json
    │       │   │   ├── focusscope(_:).json
    │       │   │   ├── font(_:).json
    │       │   │   ├── foregroundcolor(_:).json
    │       │   │   ├── foregroundstyle(_:).json
    │       │   │   ├── foregroundstyle(_:_:).json
    │       │   │   ├── foregroundstyle(_:_:_:).json
    │       │   │   ├── frame().json
    │       │   │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:).json
    │       │   │   ├── frame(width:height:alignment:).json
    │       │   │   ├── gesture(_:including:).json
    │       │   │   ├── grayscale(_:).json
    │       │   │   ├── groupboxstyle(_:).json
    │       │   │   ├── handlesexternalevents(preferring:allowing:).json
    │       │   │   ├── headerprominence(_:).json
    │       │   │   ├── help(_:)-1f2w4.json
    │       │   │   ├── help(_:)-1g6m4.json
    │       │   │   ├── help(_:)-9mw1c.json
    │       │   │   ├── hidden().json
    │       │   │   ├── highprioritygesture(_:including:).json
    │       │   │   ├── horizontalradiogrouplayout().json
    │       │   │   ├── huerotation(_:).json
    │       │   │   ├── id(_:).json
    │       │   │   ├── ignoressafearea(_:edges:).json
    │       │   │   ├── imagescale(_:).json
    │       │   │   ├── importsitemproviders(_:onimport:).json
    │       │   │   ├── init(_:initialindex:content:)-70npt.json
    │       │   │   ├── init(_:initialindex:content:)-7edjn.json
    │       │   │   ├── interactivedismissdisabled(_:).json
    │       │   │   ├── itemprovider(_:).json
    │       │   │   ├── keyboardshortcut(_:)-2vfia.json
    │       │   │   ├── keyboardshortcut(_:)-6bxt2.json
    │       │   │   ├── keyboardshortcut(_:modifiers:).json
    │       │   │   ├── keyboardshortcut(_:modifiers:localization:).json
    │       │   │   ├── labelshidden().json
    │       │   │   ├── labelstyle(_:).json
    │       │   │   ├── layoutpriority(_:).json
    │       │   │   ├── linelimit(_:).json
    │       │   │   ├── linespacing(_:).json
    │       │   │   ├── listitemtint(_:)-9yojl.json
    │       │   │   ├── listitemtint(_:)-w4ry.json
    │       │   │   ├── listrowbackground(_:).json
    │       │   │   ├── listrowinsets(_:).json
    │       │   │   ├── liststyle(_:).json
    │       │   │   ├── luminancetoalpha().json
    │       │   │   ├── mask(_:).json
    │       │   │   ├── mask(alignment:_:).json
    │       │   │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:).json
    │       │   │   ├── menubuttonstyle(_:).json
    │       │   │   ├── menuindicator(_:).json
    │       │   │   ├── menustyle(_:).json
    │       │   │   ├── minimumscalefactor(_:).json
    │       │   │   ├── modifier(_:).json
    │       │   │   ├── monospaceddigit().json
    │       │   │   ├── movedisabled(_:).json
    │       │   │   ├── multilinetextalignment(_:).json
    │       │   │   ├── navigationsubtitle(_:)-10991.json
    │       │   │   ├── navigationsubtitle(_:)-7xq4j.json
    │       │   │   ├── navigationsubtitle(_:)-8lv93.json
    │       │   │   ├── navigationtitle(_:)-544cp.json
    │       │   │   ├── navigationtitle(_:)-5xkgg.json
    │       │   │   ├── navigationtitle(_:)-7209e.json
    │       │   │   ├── navigationtitle(_:)-8mmxy.json
    │       │   │   ├── navigationviewstyle(_:).json
    │       │   │   ├── offset(_:).json
    │       │   │   ├── offset(x:y:).json
    │       │   │   ├── onappear(perform:).json
    │       │   │   ├── oncarousel(_:).json
    │       │   │   ├── oncarouseltranslation(_:).json
    │       │   │   ├── onchange(of:perform:).json
    │       │   │   ├── oncommand(_:perform:).json
    │       │   │   ├── oncontinueuseractivity(_:perform:).json
    │       │   │   ├── oncopycommand(perform:).json
    │       │   │   ├── oncutcommand(perform:).json
    │       │   │   ├── ondeletecommand(perform:).json
    │       │   │   ├── ondisappear(perform:).json
    │       │   │   ├── ondrag(_:).json
    │       │   │   ├── ondrag(_:preview:).json
    │       │   │   ├── ondrop(of:delegate:)-2phlc.json
    │       │   │   ├── ondrop(of:delegate:)-5rv2.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-1ne0m.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-2dbsa.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-3z0u6.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-7mvpm.json
    │       │   │   ├── onexitcommand(perform:).json
    │       │   │   ├── onhover(perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:pressing:perform:).json
    │       │   │   ├── onmovecommand(perform:).json
    │       │   │   ├── onopenurl(perform:).json
    │       │   │   ├── onpastecommand(of:perform:)-27ier.json
    │       │   │   ├── onpastecommand(of:perform:)-2cj5d.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-18sg7.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-1ws2h.json
    │       │   │   ├── onplaypausecommand(perform:).json
    │       │   │   ├── onpreferencechange(_:perform:).json
    │       │   │   ├── onreceive(_:perform:).json
    │       │   │   ├── onshuffle(_:).json
    │       │   │   ├── onshuffledeck(_:).json
    │       │   │   ├── onshuffledecktranslation(_:).json
    │       │   │   ├── onshuffletranslation(_:).json
    │       │   │   ├── onsubmit(of:_:).json
    │       │   │   ├── ontapgesture(count:perform:).json
    │       │   │   ├── opacity(_:).json
    │       │   │   ├── overlay(_:alignment:).json
    │       │   │   ├── overlay(_:ignoressafeareaedges:).json
    │       │   │   ├── overlay(_:in:fillstyle:).json
    │       │   │   ├── overlay(alignment:content:).json
    │       │   │   ├── overlaypreferencevalue(_:_:).json
    │       │   │   ├── padding(_:)-254fg.json
    │       │   │   ├── padding(_:)-h9m6.json
    │       │   │   ├── padding(_:_:).json
    │       │   │   ├── pagecommand(value:in:step:).json
    │       │   │   ├── pickerstyle(_:).json
    │       │   │   ├── popover(ispresented:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── popover(item:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── position(_:).json
    │       │   │   ├── position(x:y:).json
    │       │   │   ├── preference(key:value:).json
    │       │   │   ├── preferredcolorscheme(_:).json
    │       │   │   ├── prefersdefaultfocus(_:in:).json
    │       │   │   ├── presentedwindowstyle(_:).json
    │       │   │   ├── presentedwindowtoolbarstyle(_:).json
    │       │   │   ├── previewcontext(_:).json
    │       │   │   ├── previewdevice(_:).json
    │       │   │   ├── previewdisplayname(_:).json
    │       │   │   ├── previewinterfaceorientation(_:).json
    │       │   │   ├── previewlayout(_:).json
    │       │   │   ├── privacysensitive(_:).json
    │       │   │   ├── progressviewstyle(_:).json
    │       │   │   ├── projectioneffect(_:).json
    │       │   │   ├── redacted(reason:).json
    │       │   │   ├── refreshable(action:).json
    │       │   │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:).json
    │       │   │   ├── rotationeffect(_:anchor:).json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-5p4xh.json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-8nq8e.json
    │       │   │   ├── saturation(_:).json
    │       │   │   ├── scaledtofill().json
    │       │   │   ├── scaledtofit().json
    │       │   │   ├── scaleeffect(_:anchor:)-7oq71.json
    │       │   │   ├── scaleeffect(_:anchor:)-9chpl.json
    │       │   │   ├── scaleeffect(x:y:anchor:).json
    │       │   │   ├── scenepadding(_:).json
    │       │   │   ├── searchable(text:placement:prompt:)-31g2u.json
    │       │   │   ├── searchable(text:placement:prompt:)-5dpdp.json
    │       │   │   ├── searchable(text:placement:prompt:)-9859.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-2uz54.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-7bvn6.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-8bmqj.json
    │       │   │   ├── searchcompletion(_:).json
    │       │   │   ├── shadow(color:radius:x:y:).json
    │       │   │   ├── sheet(ispresented:ondismiss:content:).json
    │       │   │   ├── sheet(item:ondismiss:content:).json
    │       │   │   ├── shuffleanimation(_:).json
    │       │   │   ├── shuffledeckanimation(_:).json
    │       │   │   ├── shuffledeckdisabled(_:).json
    │       │   │   ├── shuffledeckscale(_:).json
    │       │   │   ├── shuffledeckstyle(_:).json
    │       │   │   ├── shuffledecktrigger(on:).json
    │       │   │   ├── shuffledisabled(_:).json
    │       │   │   ├── shuffleoffset(_:).json
    │       │   │   ├── shufflepadding(_:).json
    │       │   │   ├── shufflescale(_:).json
    │       │   │   ├── shufflestyle(_:).json
    │       │   │   ├── shuffletrigger(on:).json
    │       │   │   ├── simultaneousgesture(_:including:).json
    │       │   │   ├── speechadjustedpitch(_:).json
    │       │   │   ├── speechalwaysincludespunctuation(_:).json
    │       │   │   ├── speechannouncementsqueued(_:).json
    │       │   │   ├── speechspellsoutcharacters(_:).json
    │       │   │   ├── submitlabel(_:).json
    │       │   │   ├── submitscope(_:).json
    │       │   │   ├── swipeactions(edge:allowsfullswipe:content:).json
    │       │   │   ├── symbolrenderingmode(_:).json
    │       │   │   ├── symbolvariant(_:).json
    │       │   │   ├── tabitem(_:).json
    │       │   │   ├── tablestyle(_:).json
    │       │   │   ├── tabviewstyle(_:).json
    │       │   │   ├── tag(_:).json
    │       │   │   ├── task(id:priority:_:).json
    │       │   │   ├── task(priority:_:).json
    │       │   │   ├── textcase(_:).json
    │       │   │   ├── textcontenttype(_:).json
    │       │   │   ├── textfieldstyle(_:).json
    │       │   │   ├── textselection(_:).json
    │       │   │   ├── tint(_:).json
    │       │   │   ├── togglestyle(_:).json
    │       │   │   ├── toolbar(content:)-6zmlc.json
    │       │   │   ├── toolbar(content:)-7j09e.json
    │       │   │   ├── toolbar(id:content:).json
    │       │   │   ├── touchbar(_:).json
    │       │   │   ├── touchbar(content:).json
    │       │   │   ├── touchbarcustomizationlabel(_:).json
    │       │   │   ├── touchbaritempresence(_:).json
    │       │   │   ├── touchbaritemprincipal(_:).json
    │       │   │   ├── transaction(_:).json
    │       │   │   ├── transformanchorpreference(key:value:transform:).json
    │       │   │   ├── transformeffect(_:).json
    │       │   │   ├── transformenvironment(_:transform:).json
    │       │   │   ├── transformpreference(_:_:).json
    │       │   │   ├── transition(_:).json
    │       │   │   ├── truncationmode(_:).json
    │       │   │   ├── unredacted().json
    │       │   │   ├── useractivity(_:element:_:).json
    │       │   │   ├── useractivity(_:isactive:_:).json
    │       │   │   ├── view-implementations.json
    │       │   │   └── zindex(_:).json
    │       │   ├── carouselstack.json
    │       │   ├── carouselstyle/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── finitescroll.json
    │       │   │   └── infinitescroll.json
    │       │   ├── carouselstyle.json
    │       │   ├── shuffleanimation/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── easein.json
    │       │   │   ├── easeinout.json
    │       │   │   ├── easeout.json
    │       │   │   ├── equatable-implementations.json
    │       │   │   └── linear.json
    │       │   ├── shuffleanimation.json
    │       │   ├── shufflecontext/
    │       │   │   ├── direction.json
    │       │   │   ├── index.json
    │       │   │   └── previousindex.json
    │       │   ├── shufflecontext.json
    │       │   ├── shuffledeck/
    │       │   │   ├── accentcolor(_:).json
    │       │   │   ├── accessibility(activationpoint:)-5yxv.json
    │       │   │   ├── accessibility(activationpoint:)-6f80.json
    │       │   │   ├── accessibility(addtraits:).json
    │       │   │   ├── accessibility(hidden:).json
    │       │   │   ├── accessibility(hint:).json
    │       │   │   ├── accessibility(identifier:).json
    │       │   │   ├── accessibility(inputlabels:).json
    │       │   │   ├── accessibility(label:).json
    │       │   │   ├── accessibility(removetraits:).json
    │       │   │   ├── accessibility(selectionidentifier:).json
    │       │   │   ├── accessibility(sortpriority:).json
    │       │   │   ├── accessibility(value:).json
    │       │   │   ├── accessibilityaction(_:_:).json
    │       │   │   ├── accessibilityaction(action:label:).json
    │       │   │   ├── accessibilityaction(named:_:)-5vajk.json
    │       │   │   ├── accessibilityaction(named:_:)-7cvr0.json
    │       │   │   ├── accessibilityaction(named:_:)-7d1bz.json
    │       │   │   ├── accessibilityactivationpoint(_:)-4i64i.json
    │       │   │   ├── accessibilityactivationpoint(_:)-8rijn.json
    │       │   │   ├── accessibilityaddtraits(_:).json
    │       │   │   ├── accessibilityadjustableaction(_:).json
    │       │   │   ├── accessibilitychartdescriptor(_:).json
    │       │   │   ├── accessibilitychildren(children:).json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1dnrk.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1ucuw.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-2nazk.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-3pllm.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-3pod7.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-4xdb3.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-5vxjo.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-qwm7.json
    │       │   │   ├── accessibilityelement(children:).json
    │       │   │   ├── accessibilityfocused(_:).json
    │       │   │   ├── accessibilityfocused(_:equals:).json
    │       │   │   ├── accessibilityheading(_:).json
    │       │   │   ├── accessibilityhidden(_:).json
    │       │   │   ├── accessibilityhint(_:)-1rrl0.json
    │       │   │   ├── accessibilityhint(_:)-5nt5z.json
    │       │   │   ├── accessibilityhint(_:)-v4ao.json
    │       │   │   ├── accessibilityidentifier(_:).json
    │       │   │   ├── accessibilityignoresinvertcolors(_:).json
    │       │   │   ├── accessibilityinputlabels(_:)-3x55a.json
    │       │   │   ├── accessibilityinputlabels(_:)-6n0d7.json
    │       │   │   ├── accessibilityinputlabels(_:)-8jm4t.json
    │       │   │   ├── accessibilitylabel(_:)-3ly3t.json
    │       │   │   ├── accessibilitylabel(_:)-4h91y.json
    │       │   │   ├── accessibilitylabel(_:)-6a6no.json
    │       │   │   ├── accessibilitylabeledpair(role:id:in:).json
    │       │   │   ├── accessibilitylinkedgroup(id:in:).json
    │       │   │   ├── accessibilityremovetraits(_:).json
    │       │   │   ├── accessibilityrepresentation(representation:).json
    │       │   │   ├── accessibilityrespondstouserinteraction(_:).json
    │       │   │   ├── accessibilityrotor(_:entries:)-1orax.json
    │       │   │   ├── accessibilityrotor(_:entries:)-2p5bh.json
    │       │   │   ├── accessibilityrotor(_:entries:)-5mxjh.json
    │       │   │   ├── accessibilityrotor(_:entries:)-7dolw.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-10oqf.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-25d98.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-51dnw.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6jn71.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-3f3j9.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-3lh2p.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-6wf02.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-7t24j.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-6nczq.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-8d4es.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-8l6zm.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-964n8.json
    │       │   │   ├── accessibilityrotorentry(id:in:).json
    │       │   │   ├── accessibilityscrollaction(_:).json
    │       │   │   ├── accessibilityshowslargecontentviewer().json
    │       │   │   ├── accessibilityshowslargecontentviewer(_:).json
    │       │   │   ├── accessibilitysortpriority(_:).json
    │       │   │   ├── accessibilitytextcontenttype(_:).json
    │       │   │   ├── accessibilityvalue(_:)-3kff4.json
    │       │   │   ├── accessibilityvalue(_:)-7dd6l.json
    │       │   │   ├── accessibilityvalue(_:)-7tnqf.json
    │       │   │   ├── alert(_:ispresented:actions:)-2i24c.json
    │       │   │   ├── alert(_:ispresented:actions:)-6i5wg.json
    │       │   │   ├── alert(_:ispresented:actions:)-6mdoc.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-5j65x.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-6iohl.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-8x9o0.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-43fim.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-6dwv5.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-77clm.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7p8yz.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7ptxx.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-88es2.json
    │       │   │   ├── alert(ispresented:content:).json
    │       │   │   ├── alert(ispresented:error:actions:).json
    │       │   │   ├── alert(ispresented:error:actions:message:).json
    │       │   │   ├── alert(item:content:).json
    │       │   │   ├── alignmentguide(_:computevalue:)-5dc06.json
    │       │   │   ├── alignmentguide(_:computevalue:)-98bnf.json
    │       │   │   ├── allowshittesting(_:).json
    │       │   │   ├── allowstightening(_:).json
    │       │   │   ├── anchorpreference(key:value:transform:).json
    │       │   │   ├── animation(_:).json
    │       │   │   ├── animation(_:value:).json
    │       │   │   ├── aspectratio(_:contentmode:)-7qpsf.json
    │       │   │   ├── aspectratio(_:contentmode:)-98csp.json
    │       │   │   ├── background(_:alignment:).json
    │       │   │   ├── background(_:ignoressafeareaedges:).json
    │       │   │   ├── background(_:in:fillstyle:)-16mk7.json
    │       │   │   ├── background(_:in:fillstyle:)-3xtjy.json
    │       │   │   ├── background(alignment:content:).json
    │       │   │   ├── background(ignoressafeareaedges:).json
    │       │   │   ├── background(in:fillstyle:)-22zkr.json
    │       │   │   ├── background(in:fillstyle:)-pkki.json
    │       │   │   ├── backgroundpreferencevalue(_:_:).json
    │       │   │   ├── badge(_:)-23vvh.json
    │       │   │   ├── badge(_:)-3b7a5.json
    │       │   │   ├── badge(_:)-4eyh0.json
    │       │   │   ├── badge(_:)-5yfrj.json
    │       │   │   ├── blendmode(_:).json
    │       │   │   ├── blur(radius:opaque:).json
    │       │   │   ├── body.json
    │       │   │   ├── border(_:width:).json
    │       │   │   ├── brightness(_:).json
    │       │   │   ├── buttonbordershape(_:).json
    │       │   │   ├── buttonstyle(_:)-1hkio.json
    │       │   │   ├── buttonstyle(_:)-1mobg.json
    │       │   │   ├── carouselanimation(_:).json
    │       │   │   ├── carouseldisabled(_:).json
    │       │   │   ├── carouselpadding(_:).json
    │       │   │   ├── carouselscale(_:).json
    │       │   │   ├── carouselspacing(_:).json
    │       │   │   ├── carouselstyle(_:).json
    │       │   │   ├── carouseltrigger(on:).json
    │       │   │   ├── clipped(antialiased:).json
    │       │   │   ├── clipshape(_:style:).json
    │       │   │   ├── colorinvert().json
    │       │   │   ├── colormultiply(_:).json
    │       │   │   ├── colorscheme(_:).json
    │       │   │   ├── compositinggroup().json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7c2i9.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7p1mg.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-9t8f5.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-592a8.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-6sq5i.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-8ffij.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-455gp.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pvn4.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-8fhv.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4bg57.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4pxpc.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-50r8e.json
    │       │   │   ├── containershape(_:).json
    │       │   │   ├── contentshape(_:_:eofill:).json
    │       │   │   ├── contentshape(_:eofill:).json
    │       │   │   ├── contextmenu(_:).json
    │       │   │   ├── contextmenu(menuitems:).json
    │       │   │   ├── contrast(_:).json
    │       │   │   ├── controlgroupstyle(_:).json
    │       │   │   ├── controlsize(_:).json
    │       │   │   ├── coordinatespace(name:).json
    │       │   │   ├── cornerradius(_:antialiased:).json
    │       │   │   ├── datepickerstyle(_:).json
    │       │   │   ├── defaultappstorage(_:).json
    │       │   │   ├── deletedisabled(_:).json
    │       │   │   ├── disableautocorrection(_:).json
    │       │   │   ├── disabled(_:).json
    │       │   │   ├── drawinggroup(opaque:colormode:).json
    │       │   │   ├── dynamictypesize(_:).json
    │       │   │   ├── edgesignoringsafearea(_:).json
    │       │   │   ├── environment(_:_:).json
    │       │   │   ├── environmentobject(_:).json
    │       │   │   ├── exportsitemproviders(_:onexport:).json
    │       │   │   ├── exportsitemproviders(_:onexport:onedit:).json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-54p9i.json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-z1af.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-4ixib.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-72o0w.json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:).json
    │       │   │   ├── filemover(ispresented:file:oncompletion:).json
    │       │   │   ├── filemover(ispresented:files:oncompletion:).json
    │       │   │   ├── fixedsize().json
    │       │   │   ├── fixedsize(horizontal:vertical:).json
    │       │   │   ├── flipsforrighttoleftlayoutdirection(_:).json
    │       │   │   ├── focusable(_:).json
    │       │   │   ├── focusable(_:onfocuschange:).json
    │       │   │   ├── focused(_:).json
    │       │   │   ├── focused(_:equals:).json
    │       │   │   ├── focusedscenevalue(_:_:).json
    │       │   │   ├── focusedvalue(_:_:).json
    │       │   │   ├── focusscope(_:).json
    │       │   │   ├── font(_:).json
    │       │   │   ├── foregroundcolor(_:).json
    │       │   │   ├── foregroundstyle(_:).json
    │       │   │   ├── foregroundstyle(_:_:).json
    │       │   │   ├── foregroundstyle(_:_:_:).json
    │       │   │   ├── frame().json
    │       │   │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:).json
    │       │   │   ├── frame(width:height:alignment:).json
    │       │   │   ├── gesture(_:including:).json
    │       │   │   ├── grayscale(_:).json
    │       │   │   ├── groupboxstyle(_:).json
    │       │   │   ├── handlesexternalevents(preferring:allowing:).json
    │       │   │   ├── headerprominence(_:).json
    │       │   │   ├── help(_:)-4gfc1.json
    │       │   │   ├── help(_:)-57kg7.json
    │       │   │   ├── help(_:)-5c7gg.json
    │       │   │   ├── hidden().json
    │       │   │   ├── highprioritygesture(_:including:).json
    │       │   │   ├── horizontalradiogrouplayout().json
    │       │   │   ├── huerotation(_:).json
    │       │   │   ├── id(_:).json
    │       │   │   ├── ignoressafearea(_:edges:).json
    │       │   │   ├── imagescale(_:).json
    │       │   │   ├── importsitemproviders(_:onimport:).json
    │       │   │   ├── init(_:initialindex:content:)-6ou47.json
    │       │   │   ├── init(_:initialindex:content:)-9osfg.json
    │       │   │   ├── interactivedismissdisabled(_:).json
    │       │   │   ├── itemprovider(_:).json
    │       │   │   ├── keyboardshortcut(_:)-8kg9p.json
    │       │   │   ├── keyboardshortcut(_:)-92las.json
    │       │   │   ├── keyboardshortcut(_:modifiers:).json
    │       │   │   ├── keyboardshortcut(_:modifiers:localization:).json
    │       │   │   ├── labelshidden().json
    │       │   │   ├── labelstyle(_:).json
    │       │   │   ├── layoutpriority(_:).json
    │       │   │   ├── linelimit(_:).json
    │       │   │   ├── linespacing(_:).json
    │       │   │   ├── listitemtint(_:)-4okc6.json
    │       │   │   ├── listitemtint(_:)-8uys6.json
    │       │   │   ├── listrowbackground(_:).json
    │       │   │   ├── listrowinsets(_:).json
    │       │   │   ├── liststyle(_:).json
    │       │   │   ├── luminancetoalpha().json
    │       │   │   ├── mask(_:).json
    │       │   │   ├── mask(alignment:_:).json
    │       │   │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:).json
    │       │   │   ├── menubuttonstyle(_:).json
    │       │   │   ├── menuindicator(_:).json
    │       │   │   ├── menustyle(_:).json
    │       │   │   ├── minimumscalefactor(_:).json
    │       │   │   ├── modifier(_:).json
    │       │   │   ├── monospaceddigit().json
    │       │   │   ├── movedisabled(_:).json
    │       │   │   ├── multilinetextalignment(_:).json
    │       │   │   ├── navigationsubtitle(_:)-4xcr1.json
    │       │   │   ├── navigationsubtitle(_:)-62wq4.json
    │       │   │   ├── navigationsubtitle(_:)-89wf8.json
    │       │   │   ├── navigationtitle(_:)-15ycd.json
    │       │   │   ├── navigationtitle(_:)-3gz4j.json
    │       │   │   ├── navigationtitle(_:)-6t67o.json
    │       │   │   ├── navigationtitle(_:)-8moj6.json
    │       │   │   ├── navigationviewstyle(_:).json
    │       │   │   ├── offset(_:).json
    │       │   │   ├── offset(x:y:).json
    │       │   │   ├── onappear(perform:).json
    │       │   │   ├── oncarousel(_:).json
    │       │   │   ├── oncarouseltranslation(_:).json
    │       │   │   ├── onchange(of:perform:).json
    │       │   │   ├── oncommand(_:perform:).json
    │       │   │   ├── oncontinueuseractivity(_:perform:).json
    │       │   │   ├── oncopycommand(perform:).json
    │       │   │   ├── oncutcommand(perform:).json
    │       │   │   ├── ondeletecommand(perform:).json
    │       │   │   ├── ondisappear(perform:).json
    │       │   │   ├── ondrag(_:).json
    │       │   │   ├── ondrag(_:preview:).json
    │       │   │   ├── ondrop(of:delegate:)-55jbd.json
    │       │   │   ├── ondrop(of:delegate:)-9xy3o.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-2wosm.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-4zd72.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-6o6wo.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-btgb.json
    │       │   │   ├── onexitcommand(perform:).json
    │       │   │   ├── onhover(perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:pressing:perform:).json
    │       │   │   ├── onmovecommand(perform:).json
    │       │   │   ├── onopenurl(perform:).json
    │       │   │   ├── onpastecommand(of:perform:)-3phpt.json
    │       │   │   ├── onpastecommand(of:perform:)-7nzf4.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-5h2lv.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-7k6qm.json
    │       │   │   ├── onplaypausecommand(perform:).json
    │       │   │   ├── onpreferencechange(_:perform:).json
    │       │   │   ├── onreceive(_:perform:).json
    │       │   │   ├── onshuffle(_:).json
    │       │   │   ├── onshuffledeck(_:).json
    │       │   │   ├── onshuffledecktranslation(_:).json
    │       │   │   ├── onshuffletranslation(_:).json
    │       │   │   ├── onsubmit(of:_:).json
    │       │   │   ├── ontapgesture(count:perform:).json
    │       │   │   ├── opacity(_:).json
    │       │   │   ├── overlay(_:alignment:).json
    │       │   │   ├── overlay(_:ignoressafeareaedges:).json
    │       │   │   ├── overlay(_:in:fillstyle:).json
    │       │   │   ├── overlay(alignment:content:).json
    │       │   │   ├── overlaypreferencevalue(_:_:).json
    │       │   │   ├── padding(_:)-5f3wf.json
    │       │   │   ├── padding(_:)-7cp9q.json
    │       │   │   ├── padding(_:_:).json
    │       │   │   ├── pagecommand(value:in:step:).json
    │       │   │   ├── pickerstyle(_:).json
    │       │   │   ├── popover(ispresented:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── popover(item:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── position(_:).json
    │       │   │   ├── position(x:y:).json
    │       │   │   ├── preference(key:value:).json
    │       │   │   ├── preferredcolorscheme(_:).json
    │       │   │   ├── prefersdefaultfocus(_:in:).json
    │       │   │   ├── presentedwindowstyle(_:).json
    │       │   │   ├── presentedwindowtoolbarstyle(_:).json
    │       │   │   ├── previewcontext(_:).json
    │       │   │   ├── previewdevice(_:).json
    │       │   │   ├── previewdisplayname(_:).json
    │       │   │   ├── previewinterfaceorientation(_:).json
    │       │   │   ├── previewlayout(_:).json
    │       │   │   ├── privacysensitive(_:).json
    │       │   │   ├── progressviewstyle(_:).json
    │       │   │   ├── projectioneffect(_:).json
    │       │   │   ├── redacted(reason:).json
    │       │   │   ├── refreshable(action:).json
    │       │   │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:).json
    │       │   │   ├── rotationeffect(_:anchor:).json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-4gojk.json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-9bx6p.json
    │       │   │   ├── saturation(_:).json
    │       │   │   ├── scaledtofill().json
    │       │   │   ├── scaledtofit().json
    │       │   │   ├── scaleeffect(_:anchor:)-4byje.json
    │       │   │   ├── scaleeffect(_:anchor:)-6bduh.json
    │       │   │   ├── scaleeffect(x:y:anchor:).json
    │       │   │   ├── scenepadding(_:).json
    │       │   │   ├── searchable(text:placement:prompt:)-2i9jl.json
    │       │   │   ├── searchable(text:placement:prompt:)-50j7i.json
    │       │   │   ├── searchable(text:placement:prompt:)-75a6t.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-5bsg8.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-5ib9a.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-8fyqc.json
    │       │   │   ├── searchcompletion(_:).json
    │       │   │   ├── shadow(color:radius:x:y:).json
    │       │   │   ├── sheet(ispresented:ondismiss:content:).json
    │       │   │   ├── sheet(item:ondismiss:content:).json
    │       │   │   ├── shuffleanimation(_:).json
    │       │   │   ├── shuffledeckanimation(_:).json
    │       │   │   ├── shuffledeckdisabled(_:).json
    │       │   │   ├── shuffledeckscale(_:).json
    │       │   │   ├── shuffledeckstyle(_:).json
    │       │   │   ├── shuffledecktrigger(on:).json
    │       │   │   ├── shuffledisabled(_:).json
    │       │   │   ├── shuffleoffset(_:).json
    │       │   │   ├── shufflepadding(_:).json
    │       │   │   ├── shufflescale(_:).json
    │       │   │   ├── shufflestyle(_:).json
    │       │   │   ├── shuffletrigger(on:).json
    │       │   │   ├── simultaneousgesture(_:including:).json
    │       │   │   ├── speechadjustedpitch(_:).json
    │       │   │   ├── speechalwaysincludespunctuation(_:).json
    │       │   │   ├── speechannouncementsqueued(_:).json
    │       │   │   ├── speechspellsoutcharacters(_:).json
    │       │   │   ├── submitlabel(_:).json
    │       │   │   ├── submitscope(_:).json
    │       │   │   ├── swipeactions(edge:allowsfullswipe:content:).json
    │       │   │   ├── symbolrenderingmode(_:).json
    │       │   │   ├── symbolvariant(_:).json
    │       │   │   ├── tabitem(_:).json
    │       │   │   ├── tablestyle(_:).json
    │       │   │   ├── tabviewstyle(_:).json
    │       │   │   ├── tag(_:).json
    │       │   │   ├── task(id:priority:_:).json
    │       │   │   ├── task(priority:_:).json
    │       │   │   ├── textcase(_:).json
    │       │   │   ├── textcontenttype(_:).json
    │       │   │   ├── textfieldstyle(_:).json
    │       │   │   ├── textselection(_:).json
    │       │   │   ├── tint(_:).json
    │       │   │   ├── togglestyle(_:).json
    │       │   │   ├── toolbar(content:)-2k0pt.json
    │       │   │   ├── toolbar(content:)-4sm5t.json
    │       │   │   ├── toolbar(id:content:).json
    │       │   │   ├── touchbar(_:).json
    │       │   │   ├── touchbar(content:).json
    │       │   │   ├── touchbarcustomizationlabel(_:).json
    │       │   │   ├── touchbaritempresence(_:).json
    │       │   │   ├── touchbaritemprincipal(_:).json
    │       │   │   ├── transaction(_:).json
    │       │   │   ├── transformanchorpreference(key:value:transform:).json
    │       │   │   ├── transformeffect(_:).json
    │       │   │   ├── transformenvironment(_:transform:).json
    │       │   │   ├── transformpreference(_:_:).json
    │       │   │   ├── transition(_:).json
    │       │   │   ├── truncationmode(_:).json
    │       │   │   ├── unredacted().json
    │       │   │   ├── useractivity(_:element:_:).json
    │       │   │   ├── useractivity(_:isactive:_:).json
    │       │   │   ├── view-implementations.json
    │       │   │   └── zindex(_:).json
    │       │   ├── shuffledeck.json
    │       │   ├── shuffledeckanimation/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── easein.json
    │       │   │   ├── easeinout.json
    │       │   │   ├── easeout.json
    │       │   │   ├── equatable-implementations.json
    │       │   │   └── linear.json
    │       │   ├── shuffledeckanimation.json
    │       │   ├── shuffledeckcontext/
    │       │   │   ├── direction.json
    │       │   │   ├── index.json
    │       │   │   └── previousindex.json
    │       │   ├── shuffledeckcontext.json
    │       │   ├── shuffledeckdirection/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── left.json
    │       │   │   └── right.json
    │       │   ├── shuffledeckdirection.json
    │       │   ├── shuffledeckstyle/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── finiteshuffle.json
    │       │   │   └── infiniteshuffle.json
    │       │   ├── shuffledeckstyle.json
    │       │   ├── shuffledirection/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── left.json
    │       │   │   └── right.json
    │       │   ├── shuffledirection.json
    │       │   ├── shufflestack/
    │       │   │   ├── accentcolor(_:).json
    │       │   │   ├── accessibility(activationpoint:)-1nikr.json
    │       │   │   ├── accessibility(activationpoint:)-9o1ut.json
    │       │   │   ├── accessibility(addtraits:).json
    │       │   │   ├── accessibility(hidden:).json
    │       │   │   ├── accessibility(hint:).json
    │       │   │   ├── accessibility(identifier:).json
    │       │   │   ├── accessibility(inputlabels:).json
    │       │   │   ├── accessibility(label:).json
    │       │   │   ├── accessibility(removetraits:).json
    │       │   │   ├── accessibility(selectionidentifier:).json
    │       │   │   ├── accessibility(sortpriority:).json
    │       │   │   ├── accessibility(value:).json
    │       │   │   ├── accessibilityaction(_:_:).json
    │       │   │   ├── accessibilityaction(action:label:).json
    │       │   │   ├── accessibilityaction(named:_:)-5nf29.json
    │       │   │   ├── accessibilityaction(named:_:)-7rxae.json
    │       │   │   ├── accessibilityaction(named:_:)-7tk0c.json
    │       │   │   ├── accessibilityactivationpoint(_:)-57vfb.json
    │       │   │   ├── accessibilityactivationpoint(_:)-9osvr.json
    │       │   │   ├── accessibilityaddtraits(_:).json
    │       │   │   ├── accessibilityadjustableaction(_:).json
    │       │   │   ├── accessibilitychartdescriptor(_:).json
    │       │   │   ├── accessibilitychildren(children:).json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-1gi9v.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-375xz.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-571fc.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-72sim.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-7h1pz.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-8sma2.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-956rk.json
    │       │   │   ├── accessibilitycustomcontent(_:_:importance:)-96ur4.json
    │       │   │   ├── accessibilityelement(children:).json
    │       │   │   ├── accessibilityfocused(_:).json
    │       │   │   ├── accessibilityfocused(_:equals:).json
    │       │   │   ├── accessibilityheading(_:).json
    │       │   │   ├── accessibilityhidden(_:).json
    │       │   │   ├── accessibilityhint(_:)-45b9m.json
    │       │   │   ├── accessibilityhint(_:)-6451d.json
    │       │   │   ├── accessibilityhint(_:)-6m2eb.json
    │       │   │   ├── accessibilityidentifier(_:).json
    │       │   │   ├── accessibilityignoresinvertcolors(_:).json
    │       │   │   ├── accessibilityinputlabels(_:)-3mfon.json
    │       │   │   ├── accessibilityinputlabels(_:)-7hs3b.json
    │       │   │   ├── accessibilityinputlabels(_:)-7kg3p.json
    │       │   │   ├── accessibilitylabel(_:)-3has0.json
    │       │   │   ├── accessibilitylabel(_:)-6dv6y.json
    │       │   │   ├── accessibilitylabel(_:)-e66p.json
    │       │   │   ├── accessibilitylabeledpair(role:id:in:).json
    │       │   │   ├── accessibilitylinkedgroup(id:in:).json
    │       │   │   ├── accessibilityremovetraits(_:).json
    │       │   │   ├── accessibilityrepresentation(representation:).json
    │       │   │   ├── accessibilityrespondstouserinteraction(_:).json
    │       │   │   ├── accessibilityrotor(_:entries:)-3a01s.json
    │       │   │   ├── accessibilityrotor(_:entries:)-661b4.json
    │       │   │   ├── accessibilityrotor(_:entries:)-7kbeo.json
    │       │   │   ├── accessibilityrotor(_:entries:)-f4c5.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1kufn.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1o7jk.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-2ng74.json
    │       │   │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6akr8.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-6o30j.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-8e6r9.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-bva6.json
    │       │   │   ├── accessibilityrotor(_:entries:entrylabel:)-cxx7.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-1v5os.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-5mce6.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-7fpc1.json
    │       │   │   ├── accessibilityrotor(_:textranges:)-91on2.json
    │       │   │   ├── accessibilityrotorentry(id:in:).json
    │       │   │   ├── accessibilityscrollaction(_:).json
    │       │   │   ├── accessibilityshowslargecontentviewer().json
    │       │   │   ├── accessibilityshowslargecontentviewer(_:).json
    │       │   │   ├── accessibilitysortpriority(_:).json
    │       │   │   ├── accessibilitytextcontenttype(_:).json
    │       │   │   ├── accessibilityvalue(_:)-6kh76.json
    │       │   │   ├── accessibilityvalue(_:)-6x5in.json
    │       │   │   ├── accessibilityvalue(_:)-tcbi.json
    │       │   │   ├── alert(_:ispresented:actions:)-13ppe.json
    │       │   │   ├── alert(_:ispresented:actions:)-31fv4.json
    │       │   │   ├── alert(_:ispresented:actions:)-svpk.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-1lplz.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-42hzu.json
    │       │   │   ├── alert(_:ispresented:actions:message:)-8jr1q.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-135kk.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-7je0d.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:)-7zzve.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-17uu0.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-36zvz.json
    │       │   │   ├── alert(_:ispresented:presenting:actions:message:)-7caah.json
    │       │   │   ├── alert(ispresented:content:).json
    │       │   │   ├── alert(ispresented:error:actions:).json
    │       │   │   ├── alert(ispresented:error:actions:message:).json
    │       │   │   ├── alert(item:content:).json
    │       │   │   ├── alignmentguide(_:computevalue:)-23g26.json
    │       │   │   ├── alignmentguide(_:computevalue:)-4kcej.json
    │       │   │   ├── allowshittesting(_:).json
    │       │   │   ├── allowstightening(_:).json
    │       │   │   ├── anchorpreference(key:value:transform:).json
    │       │   │   ├── animation(_:).json
    │       │   │   ├── animation(_:value:).json
    │       │   │   ├── aspectratio(_:contentmode:)-9iav9.json
    │       │   │   ├── aspectratio(_:contentmode:)-ggdx.json
    │       │   │   ├── background(_:alignment:).json
    │       │   │   ├── background(_:ignoressafeareaedges:).json
    │       │   │   ├── background(_:in:fillstyle:)-1a2bf.json
    │       │   │   ├── background(_:in:fillstyle:)-8qwr1.json
    │       │   │   ├── background(alignment:content:).json
    │       │   │   ├── background(ignoressafeareaedges:).json
    │       │   │   ├── background(in:fillstyle:)-58j5e.json
    │       │   │   ├── background(in:fillstyle:)-8w09p.json
    │       │   │   ├── backgroundpreferencevalue(_:_:).json
    │       │   │   ├── badge(_:)-26gjx.json
    │       │   │   ├── badge(_:)-2cz64.json
    │       │   │   ├── badge(_:)-31kbp.json
    │       │   │   ├── badge(_:)-4i0v1.json
    │       │   │   ├── blendmode(_:).json
    │       │   │   ├── blur(radius:opaque:).json
    │       │   │   ├── body.json
    │       │   │   ├── border(_:width:).json
    │       │   │   ├── brightness(_:).json
    │       │   │   ├── buttonbordershape(_:).json
    │       │   │   ├── buttonstyle(_:)-42cf.json
    │       │   │   ├── buttonstyle(_:)-4hs9e.json
    │       │   │   ├── carouselanimation(_:).json
    │       │   │   ├── carouseldisabled(_:).json
    │       │   │   ├── carouselpadding(_:).json
    │       │   │   ├── carouselscale(_:).json
    │       │   │   ├── carouselspacing(_:).json
    │       │   │   ├── carouselstyle(_:).json
    │       │   │   ├── carouseltrigger(on:).json
    │       │   │   ├── clipped(antialiased:).json
    │       │   │   ├── clipshape(_:style:).json
    │       │   │   ├── colorinvert().json
    │       │   │   ├── colormultiply(_:).json
    │       │   │   ├── colorscheme(_:).json
    │       │   │   ├── compositinggroup().json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-41ud8.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-4ywhx.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7ipnf.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-1kurz.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-5vmyl.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9sue3.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1tkx.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-5diu1.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pkdq.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-296mh.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-5uj0y.json
    │       │   │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-7cjsq.json
    │       │   │   ├── containershape(_:).json
    │       │   │   ├── contentshape(_:_:eofill:).json
    │       │   │   ├── contentshape(_:eofill:).json
    │       │   │   ├── contextmenu(_:).json
    │       │   │   ├── contextmenu(menuitems:).json
    │       │   │   ├── contrast(_:).json
    │       │   │   ├── controlgroupstyle(_:).json
    │       │   │   ├── controlsize(_:).json
    │       │   │   ├── coordinatespace(name:).json
    │       │   │   ├── cornerradius(_:antialiased:).json
    │       │   │   ├── datepickerstyle(_:).json
    │       │   │   ├── defaultappstorage(_:).json
    │       │   │   ├── deletedisabled(_:).json
    │       │   │   ├── disableautocorrection(_:).json
    │       │   │   ├── disabled(_:).json
    │       │   │   ├── drawinggroup(opaque:colormode:).json
    │       │   │   ├── dynamictypesize(_:).json
    │       │   │   ├── edgesignoringsafearea(_:).json
    │       │   │   ├── environment(_:_:).json
    │       │   │   ├── environmentobject(_:).json
    │       │   │   ├── exportsitemproviders(_:onexport:).json
    │       │   │   ├── exportsitemproviders(_:onexport:onedit:).json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-6evgr.json
    │       │   │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-8iv2y.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-233kd.json
    │       │   │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-7map2.json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:).json
    │       │   │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:).json
    │       │   │   ├── filemover(ispresented:file:oncompletion:).json
    │       │   │   ├── filemover(ispresented:files:oncompletion:).json
    │       │   │   ├── fixedsize().json
    │       │   │   ├── fixedsize(horizontal:vertical:).json
    │       │   │   ├── flipsforrighttoleftlayoutdirection(_:).json
    │       │   │   ├── focusable(_:).json
    │       │   │   ├── focusable(_:onfocuschange:).json
    │       │   │   ├── focused(_:).json
    │       │   │   ├── focused(_:equals:).json
    │       │   │   ├── focusedscenevalue(_:_:).json
    │       │   │   ├── focusedvalue(_:_:).json
    │       │   │   ├── focusscope(_:).json
    │       │   │   ├── font(_:).json
    │       │   │   ├── foregroundcolor(_:).json
    │       │   │   ├── foregroundstyle(_:).json
    │       │   │   ├── foregroundstyle(_:_:).json
    │       │   │   ├── foregroundstyle(_:_:_:).json
    │       │   │   ├── frame().json
    │       │   │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:).json
    │       │   │   ├── frame(width:height:alignment:).json
    │       │   │   ├── gesture(_:including:).json
    │       │   │   ├── grayscale(_:).json
    │       │   │   ├── groupboxstyle(_:).json
    │       │   │   ├── handlesexternalevents(preferring:allowing:).json
    │       │   │   ├── headerprominence(_:).json
    │       │   │   ├── help(_:)-296.json
    │       │   │   ├── help(_:)-2u744.json
    │       │   │   ├── help(_:)-4q5ms.json
    │       │   │   ├── hidden().json
    │       │   │   ├── highprioritygesture(_:including:).json
    │       │   │   ├── horizontalradiogrouplayout().json
    │       │   │   ├── huerotation(_:).json
    │       │   │   ├── id(_:).json
    │       │   │   ├── ignoressafearea(_:edges:).json
    │       │   │   ├── imagescale(_:).json
    │       │   │   ├── importsitemproviders(_:onimport:).json
    │       │   │   ├── init(_:initialindex:stackcontent:)-4x5f3.json
    │       │   │   ├── init(_:initialindex:stackcontent:)-8ktnr.json
    │       │   │   ├── interactivedismissdisabled(_:).json
    │       │   │   ├── itemprovider(_:).json
    │       │   │   ├── keyboardshortcut(_:)-30f12.json
    │       │   │   ├── keyboardshortcut(_:)-38k96.json
    │       │   │   ├── keyboardshortcut(_:modifiers:).json
    │       │   │   ├── keyboardshortcut(_:modifiers:localization:).json
    │       │   │   ├── labelshidden().json
    │       │   │   ├── labelstyle(_:).json
    │       │   │   ├── layoutpriority(_:).json
    │       │   │   ├── linelimit(_:).json
    │       │   │   ├── linespacing(_:).json
    │       │   │   ├── listitemtint(_:)-66j6h.json
    │       │   │   ├── listitemtint(_:)-6zn9q.json
    │       │   │   ├── listrowbackground(_:).json
    │       │   │   ├── listrowinsets(_:).json
    │       │   │   ├── liststyle(_:).json
    │       │   │   ├── luminancetoalpha().json
    │       │   │   ├── mask(_:).json
    │       │   │   ├── mask(alignment:_:).json
    │       │   │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:).json
    │       │   │   ├── menubuttonstyle(_:).json
    │       │   │   ├── menuindicator(_:).json
    │       │   │   ├── menustyle(_:).json
    │       │   │   ├── minimumscalefactor(_:).json
    │       │   │   ├── modifier(_:).json
    │       │   │   ├── monospaceddigit().json
    │       │   │   ├── movedisabled(_:).json
    │       │   │   ├── multilinetextalignment(_:).json
    │       │   │   ├── navigationsubtitle(_:)-16d52.json
    │       │   │   ├── navigationsubtitle(_:)-206md.json
    │       │   │   ├── navigationsubtitle(_:)-7em2i.json
    │       │   │   ├── navigationtitle(_:)-7aj99.json
    │       │   │   ├── navigationtitle(_:)-7jd07.json
    │       │   │   ├── navigationtitle(_:)-7twkm.json
    │       │   │   ├── navigationtitle(_:)-7w547.json
    │       │   │   ├── navigationviewstyle(_:).json
    │       │   │   ├── offset(_:).json
    │       │   │   ├── offset(x:y:).json
    │       │   │   ├── onappear(perform:).json
    │       │   │   ├── oncarousel(_:).json
    │       │   │   ├── oncarouseltranslation(_:).json
    │       │   │   ├── onchange(of:perform:).json
    │       │   │   ├── oncommand(_:perform:).json
    │       │   │   ├── oncontinueuseractivity(_:perform:).json
    │       │   │   ├── oncopycommand(perform:).json
    │       │   │   ├── oncutcommand(perform:).json
    │       │   │   ├── ondeletecommand(perform:).json
    │       │   │   ├── ondisappear(perform:).json
    │       │   │   ├── ondrag(_:).json
    │       │   │   ├── ondrag(_:preview:).json
    │       │   │   ├── ondrop(of:delegate:)-1ea27.json
    │       │   │   ├── ondrop(of:delegate:)-8thdr.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-363wn.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-3bmbv.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-82gpe.json
    │       │   │   ├── ondrop(of:istargeted:perform:)-84ef9.json
    │       │   │   ├── onexitcommand(perform:).json
    │       │   │   ├── onhover(perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:).json
    │       │   │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:).json
    │       │   │   ├── onlongpressgesture(minimumduration:pressing:perform:).json
    │       │   │   ├── onmovecommand(perform:).json
    │       │   │   ├── onopenurl(perform:).json
    │       │   │   ├── onpastecommand(of:perform:)-4k6ie.json
    │       │   │   ├── onpastecommand(of:perform:)-wliz.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-7tcqn.json
    │       │   │   ├── onpastecommand(of:validator:perform:)-9ddq9.json
    │       │   │   ├── onplaypausecommand(perform:).json
    │       │   │   ├── onpreferencechange(_:perform:).json
    │       │   │   ├── onreceive(_:perform:).json
    │       │   │   ├── onshuffle(_:).json
    │       │   │   ├── onshuffledeck(_:).json
    │       │   │   ├── onshuffledecktranslation(_:).json
    │       │   │   ├── onshuffletranslation(_:).json
    │       │   │   ├── onsubmit(of:_:).json
    │       │   │   ├── ontapgesture(count:perform:).json
    │       │   │   ├── opacity(_:).json
    │       │   │   ├── overlay(_:alignment:).json
    │       │   │   ├── overlay(_:ignoressafeareaedges:).json
    │       │   │   ├── overlay(_:in:fillstyle:).json
    │       │   │   ├── overlay(alignment:content:).json
    │       │   │   ├── overlaypreferencevalue(_:_:).json
    │       │   │   ├── padding(_:)-7zetw.json
    │       │   │   ├── padding(_:)-9obs7.json
    │       │   │   ├── padding(_:_:).json
    │       │   │   ├── pagecommand(value:in:step:).json
    │       │   │   ├── pickerstyle(_:).json
    │       │   │   ├── popover(ispresented:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── popover(item:attachmentanchor:arrowedge:content:).json
    │       │   │   ├── position(_:).json
    │       │   │   ├── position(x:y:).json
    │       │   │   ├── preference(key:value:).json
    │       │   │   ├── preferredcolorscheme(_:).json
    │       │   │   ├── prefersdefaultfocus(_:in:).json
    │       │   │   ├── presentedwindowstyle(_:).json
    │       │   │   ├── presentedwindowtoolbarstyle(_:).json
    │       │   │   ├── previewcontext(_:).json
    │       │   │   ├── previewdevice(_:).json
    │       │   │   ├── previewdisplayname(_:).json
    │       │   │   ├── previewinterfaceorientation(_:).json
    │       │   │   ├── previewlayout(_:).json
    │       │   │   ├── privacysensitive(_:).json
    │       │   │   ├── progressviewstyle(_:).json
    │       │   │   ├── projectioneffect(_:).json
    │       │   │   ├── redacted(reason:).json
    │       │   │   ├── refreshable(action:).json
    │       │   │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:).json
    │       │   │   ├── rotationeffect(_:anchor:).json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-9cc9j.json
    │       │   │   ├── safeareainset(edge:alignment:spacing:content:)-9ojua.json
    │       │   │   ├── saturation(_:).json
    │       │   │   ├── scaledtofill().json
    │       │   │   ├── scaledtofit().json
    │       │   │   ├── scaleeffect(_:anchor:)-2caa5.json
    │       │   │   ├── scaleeffect(_:anchor:)-718iu.json
    │       │   │   ├── scaleeffect(x:y:anchor:).json
    │       │   │   ├── scenepadding(_:).json
    │       │   │   ├── searchable(text:placement:prompt:)-2vm7x.json
    │       │   │   ├── searchable(text:placement:prompt:)-8rgzb.json
    │       │   │   ├── searchable(text:placement:prompt:)-988ga.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-3zci7.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-5taln.json
    │       │   │   ├── searchable(text:placement:prompt:suggestions:)-8jhzt.json
    │       │   │   ├── searchcompletion(_:).json
    │       │   │   ├── shadow(color:radius:x:y:).json
    │       │   │   ├── sheet(ispresented:ondismiss:content:).json
    │       │   │   ├── sheet(item:ondismiss:content:).json
    │       │   │   ├── shuffleanimation(_:).json
    │       │   │   ├── shuffledeckanimation(_:).json
    │       │   │   ├── shuffledeckdisabled(_:).json
    │       │   │   ├── shuffledeckscale(_:).json
    │       │   │   ├── shuffledeckstyle(_:).json
    │       │   │   ├── shuffledecktrigger(on:).json
    │       │   │   ├── shuffledisabled(_:).json
    │       │   │   ├── shuffleoffset(_:).json
    │       │   │   ├── shufflepadding(_:).json
    │       │   │   ├── shufflescale(_:).json
    │       │   │   ├── shufflestyle(_:).json
    │       │   │   ├── shuffletrigger(on:).json
    │       │   │   ├── simultaneousgesture(_:including:).json
    │       │   │   ├── speechadjustedpitch(_:).json
    │       │   │   ├── speechalwaysincludespunctuation(_:).json
    │       │   │   ├── speechannouncementsqueued(_:).json
    │       │   │   ├── speechspellsoutcharacters(_:).json
    │       │   │   ├── submitlabel(_:).json
    │       │   │   ├── submitscope(_:).json
    │       │   │   ├── swipeactions(edge:allowsfullswipe:content:).json
    │       │   │   ├── symbolrenderingmode(_:).json
    │       │   │   ├── symbolvariant(_:).json
    │       │   │   ├── tabitem(_:).json
    │       │   │   ├── tablestyle(_:).json
    │       │   │   ├── tabviewstyle(_:).json
    │       │   │   ├── tag(_:).json
    │       │   │   ├── task(id:priority:_:).json
    │       │   │   ├── task(priority:_:).json
    │       │   │   ├── textcase(_:).json
    │       │   │   ├── textcontenttype(_:).json
    │       │   │   ├── textfieldstyle(_:).json
    │       │   │   ├── textselection(_:).json
    │       │   │   ├── tint(_:).json
    │       │   │   ├── togglestyle(_:).json
    │       │   │   ├── toolbar(content:)-2fsde.json
    │       │   │   ├── toolbar(content:)-9838r.json
    │       │   │   ├── toolbar(id:content:).json
    │       │   │   ├── touchbar(_:).json
    │       │   │   ├── touchbar(content:).json
    │       │   │   ├── touchbarcustomizationlabel(_:).json
    │       │   │   ├── touchbaritempresence(_:).json
    │       │   │   ├── touchbaritemprincipal(_:).json
    │       │   │   ├── transaction(_:).json
    │       │   │   ├── transformanchorpreference(key:value:transform:).json
    │       │   │   ├── transformeffect(_:).json
    │       │   │   ├── transformenvironment(_:transform:).json
    │       │   │   ├── transformpreference(_:_:).json
    │       │   │   ├── transition(_:).json
    │       │   │   ├── truncationmode(_:).json
    │       │   │   ├── unredacted().json
    │       │   │   ├── useractivity(_:element:_:).json
    │       │   │   ├── useractivity(_:isactive:_:).json
    │       │   │   ├── view-implementations.json
    │       │   │   └── zindex(_:).json
    │       │   ├── shufflestack.json
    │       │   ├── shufflestyle/
    │       │   │   ├── !=(_:_:).json
    │       │   │   ├── equatable-implementations.json
    │       │   │   ├── rotatein.json
    │       │   │   ├── rotateout.json
    │       │   │   └── slide.json
    │       │   └── shufflestyle.json
    │       └── shuffleit.json
    ├── documentation/
    │   └── shuffleit/
    │       ├── carouselanimation/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── easein/
    │       │   │   └── index.html
    │       │   ├── easeinout/
    │       │   │   └── index.html
    │       │   ├── easeout/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── linear/
    │       │       └── index.html
    │       ├── carouselcontext/
    │       │   ├── direction/
    │       │   │   └── index.html
    │       │   ├── index/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── previousindex/
    │       │       └── index.html
    │       ├── carouseldirection/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── left/
    │       │   │   └── index.html
    │       │   └── right/
    │       │       └── index.html
    │       ├── carouselstack/
    │       │   ├── accentcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-4y62/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-695kx/
    │       │   │   └── index.html
    │       │   ├── accessibility(addtraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hidden:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hint:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(identifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(inputlabels:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(label:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(removetraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(selectionidentifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(sortpriority:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(value:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(_:_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(action:label:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-3lqsr/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-69c69/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-rgyh/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-5bbv5/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-8dokx/
    │       │   │   └── index.html
    │       │   ├── accessibilityaddtraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityadjustableaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychartdescriptor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychildren(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1586n/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1u9b5/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-3t2kq/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-46frq/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-47g1f/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-5xqqc/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-8rfm7/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-9cou3/
    │       │   │   └── index.html
    │       │   ├── accessibilityelement(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityheading(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhidden(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-2j7te/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-37ope/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-7yi0h/
    │       │   │   └── index.html
    │       │   ├── accessibilityidentifier(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityignoresinvertcolors(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3feba/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3p703/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-95tn0/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-2tohn/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-755g2/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-8bin6/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabeledpair(role:id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitylinkedgroup(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityremovetraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrepresentation(representation:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrespondstouserinteraction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-1c2au/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-4pacb/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-4w7j0/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-825mo/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1w44t/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-4vvcg/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-5gz2c/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-utor/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-25t4x/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-3evdd/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-4e9vu/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-59b0s/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-25npe/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-3d2p8/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-4jxor/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-9sgga/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotorentry(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityscrollaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer()/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitysortpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitytextcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-5fw6g/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-5y8gy/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-8ihs6/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-1q2gb/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-76wk8/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-7wghk/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-5s7hn/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-9a4q7/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-f5o2/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-4edmo/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-4uw7u/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-8axxo/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-226oe/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-4tvm3/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7b0gl/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:content:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:message:)/
    │       │   │   └── index.html
    │       │   ├── alert(item:content:)/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-4r6p/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-8e6vc/
    │       │   │   └── index.html
    │       │   ├── allowshittesting(_:)/
    │       │   │   └── index.html
    │       │   ├── allowstightening(_:)/
    │       │   │   └── index.html
    │       │   ├── anchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:value:)/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-72t0z/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-8gir9/
    │       │   │   └── index.html
    │       │   ├── background(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── background(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-4hb5h/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-5xuxn/
    │       │   │   └── index.html
    │       │   ├── background(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── background(ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-2lcq8/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-6gtsb/
    │       │   │   └── index.html
    │       │   ├── backgroundpreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-10ceg/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-6ah2/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-7kz0m/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-8lj4d/
    │       │   │   └── index.html
    │       │   ├── blendmode(_:)/
    │       │   │   └── index.html
    │       │   ├── blur(radius:opaque:)/
    │       │   │   └── index.html
    │       │   ├── body/
    │       │   │   └── index.html
    │       │   ├── border(_:width:)/
    │       │   │   └── index.html
    │       │   ├── brightness(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonbordershape(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-6awhx/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-8ljh4/
    │       │   │   └── index.html
    │       │   ├── carouselanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseldisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselpadding(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselscale(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselspacing(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseltrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── clipped(antialiased:)/
    │       │   │   └── index.html
    │       │   ├── clipshape(_:style:)/
    │       │   │   └── index.html
    │       │   ├── colorinvert()/
    │       │   │   └── index.html
    │       │   ├── colormultiply(_:)/
    │       │   │   └── index.html
    │       │   ├── colorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── compositinggroup()/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-1uzrt/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-5d29j/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-718e5/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-65zoh/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-951t3/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9yu7k/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1ji6h/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-4fi9z/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-51cln/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-2m470/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-9o8j/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-g5bx/
    │       │   │   └── index.html
    │       │   ├── containershape(_:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(_:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(menuitems:)/
    │       │   │   └── index.html
    │       │   ├── contrast(_:)/
    │       │   │   └── index.html
    │       │   ├── controlgroupstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── controlsize(_:)/
    │       │   │   └── index.html
    │       │   ├── coordinatespace(name:)/
    │       │   │   └── index.html
    │       │   ├── cornerradius(_:antialiased:)/
    │       │   │   └── index.html
    │       │   ├── datepickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── defaultappstorage(_:)/
    │       │   │   └── index.html
    │       │   ├── deletedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── disableautocorrection(_:)/
    │       │   │   └── index.html
    │       │   ├── disabled(_:)/
    │       │   │   └── index.html
    │       │   ├── drawinggroup(opaque:colormode:)/
    │       │   │   └── index.html
    │       │   ├── dynamictypesize(_:)/
    │       │   │   └── index.html
    │       │   ├── edgesignoringsafearea(_:)/
    │       │   │   └── index.html
    │       │   ├── environment(_:_:)/
    │       │   │   └── index.html
    │       │   ├── environmentobject(_:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:onedit:)/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-2xo1j/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-5w70m/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-9dfyf/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-vkdb/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:file:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:files:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fixedsize()/
    │       │   │   └── index.html
    │       │   ├── fixedsize(horizontal:vertical:)/
    │       │   │   └── index.html
    │       │   ├── flipsforrighttoleftlayoutdirection(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:onfocuschange:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── focusedscenevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusedvalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusscope(_:)/
    │       │   │   └── index.html
    │       │   ├── font(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:_:)/
    │       │   │   └── index.html
    │       │   ├── frame()/
    │       │   │   └── index.html
    │       │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)/
    │       │   │   └── index.html
    │       │   ├── frame(width:height:alignment:)/
    │       │   │   └── index.html
    │       │   ├── gesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── grayscale(_:)/
    │       │   │   └── index.html
    │       │   ├── groupboxstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── handlesexternalevents(preferring:allowing:)/
    │       │   │   └── index.html
    │       │   ├── headerprominence(_:)/
    │       │   │   └── index.html
    │       │   ├── help(_:)-1f2w4/
    │       │   │   └── index.html
    │       │   ├── help(_:)-1g6m4/
    │       │   │   └── index.html
    │       │   ├── help(_:)-9mw1c/
    │       │   │   └── index.html
    │       │   ├── hidden()/
    │       │   │   └── index.html
    │       │   ├── highprioritygesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── horizontalradiogrouplayout()/
    │       │   │   └── index.html
    │       │   ├── huerotation(_:)/
    │       │   │   └── index.html
    │       │   ├── id(_:)/
    │       │   │   └── index.html
    │       │   ├── ignoressafearea(_:edges:)/
    │       │   │   └── index.html
    │       │   ├── imagescale(_:)/
    │       │   │   └── index.html
    │       │   ├── importsitemproviders(_:onimport:)/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── init(_:initialindex:content:)-70npt/
    │       │   │   └── index.html
    │       │   ├── init(_:initialindex:content:)-7edjn/
    │       │   │   └── index.html
    │       │   ├── interactivedismissdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── itemprovider(_:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-2vfia/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-6bxt2/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:localization:)/
    │       │   │   └── index.html
    │       │   ├── labelshidden()/
    │       │   │   └── index.html
    │       │   ├── labelstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── layoutpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── linelimit(_:)/
    │       │   │   └── index.html
    │       │   ├── linespacing(_:)/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-9yojl/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-w4ry/
    │       │   │   └── index.html
    │       │   ├── listrowbackground(_:)/
    │       │   │   └── index.html
    │       │   ├── listrowinsets(_:)/
    │       │   │   └── index.html
    │       │   ├── liststyle(_:)/
    │       │   │   └── index.html
    │       │   ├── luminancetoalpha()/
    │       │   │   └── index.html
    │       │   ├── mask(_:)/
    │       │   │   └── index.html
    │       │   ├── mask(alignment:_:)/
    │       │   │   └── index.html
    │       │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:)/
    │       │   │   └── index.html
    │       │   ├── menubuttonstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── menuindicator(_:)/
    │       │   │   └── index.html
    │       │   ├── menustyle(_:)/
    │       │   │   └── index.html
    │       │   ├── minimumscalefactor(_:)/
    │       │   │   └── index.html
    │       │   ├── modifier(_:)/
    │       │   │   └── index.html
    │       │   ├── monospaceddigit()/
    │       │   │   └── index.html
    │       │   ├── movedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── multilinetextalignment(_:)/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-10991/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-7xq4j/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-8lv93/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-544cp/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-5xkgg/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7209e/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-8mmxy/
    │       │   │   └── index.html
    │       │   ├── navigationviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(x:y:)/
    │       │   │   └── index.html
    │       │   ├── onappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncarousel(_:)/
    │       │   │   └── index.html
    │       │   ├── oncarouseltranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onchange(of:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncommand(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncontinueuseractivity(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncopycommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncutcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondeletecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondisappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:preview:)/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-2phlc/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-5rv2/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-1ne0m/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-2dbsa/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-3z0u6/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-7mvpm/
    │       │   │   └── index.html
    │       │   ├── onexitcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onhover(perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onmovecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onopenurl(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-27ier/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-2cj5d/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-18sg7/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-1ws2h/
    │       │   │   └── index.html
    │       │   ├── onplaypausecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpreferencechange(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onreceive(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onshuffle(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledeck(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledecktranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffletranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onsubmit(of:_:)/
    │       │   │   └── index.html
    │       │   ├── ontapgesture(count:perform:)/
    │       │   │   └── index.html
    │       │   ├── opacity(_:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:in:fillstyle:)/
    │       │   │   └── index.html
    │       │   ├── overlay(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── overlaypreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-254fg/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-h9m6/
    │       │   │   └── index.html
    │       │   ├── padding(_:_:)/
    │       │   │   └── index.html
    │       │   ├── pagecommand(value:in:step:)/
    │       │   │   └── index.html
    │       │   ├── pickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── popover(ispresented:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── popover(item:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── position(_:)/
    │       │   │   └── index.html
    │       │   ├── position(x:y:)/
    │       │   │   └── index.html
    │       │   ├── preference(key:value:)/
    │       │   │   └── index.html
    │       │   ├── preferredcolorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── prefersdefaultfocus(_:in:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowtoolbarstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── previewcontext(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdevice(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdisplayname(_:)/
    │       │   │   └── index.html
    │       │   ├── previewinterfaceorientation(_:)/
    │       │   │   └── index.html
    │       │   ├── previewlayout(_:)/
    │       │   │   └── index.html
    │       │   ├── privacysensitive(_:)/
    │       │   │   └── index.html
    │       │   ├── progressviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── projectioneffect(_:)/
    │       │   │   └── index.html
    │       │   ├── redacted(reason:)/
    │       │   │   └── index.html
    │       │   ├── refreshable(action:)/
    │       │   │   └── index.html
    │       │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:)/
    │       │   │   └── index.html
    │       │   ├── rotationeffect(_:anchor:)/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-5p4xh/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-8nq8e/
    │       │   │   └── index.html
    │       │   ├── saturation(_:)/
    │       │   │   └── index.html
    │       │   ├── scaledtofill()/
    │       │   │   └── index.html
    │       │   ├── scaledtofit()/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-7oq71/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-9chpl/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(x:y:anchor:)/
    │       │   │   └── index.html
    │       │   ├── scenepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-31g2u/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-5dpdp/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-9859/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-2uz54/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-7bvn6/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-8bmqj/
    │       │   │   └── index.html
    │       │   ├── searchcompletion(_:)/
    │       │   │   └── index.html
    │       │   ├── shadow(color:radius:x:y:)/
    │       │   │   └── index.html
    │       │   ├── sheet(ispresented:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── sheet(item:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── shuffleanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckscale(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledecktrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── shuffledisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffleoffset(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflescale(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffletrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── simultaneousgesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── speechadjustedpitch(_:)/
    │       │   │   └── index.html
    │       │   ├── speechalwaysincludespunctuation(_:)/
    │       │   │   └── index.html
    │       │   ├── speechannouncementsqueued(_:)/
    │       │   │   └── index.html
    │       │   ├── speechspellsoutcharacters(_:)/
    │       │   │   └── index.html
    │       │   ├── submitlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── submitscope(_:)/
    │       │   │   └── index.html
    │       │   ├── swipeactions(edge:allowsfullswipe:content:)/
    │       │   │   └── index.html
    │       │   ├── symbolrenderingmode(_:)/
    │       │   │   └── index.html
    │       │   ├── symbolvariant(_:)/
    │       │   │   └── index.html
    │       │   ├── tabitem(_:)/
    │       │   │   └── index.html
    │       │   ├── tablestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tabviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tag(_:)/
    │       │   │   └── index.html
    │       │   ├── task(id:priority:_:)/
    │       │   │   └── index.html
    │       │   ├── task(priority:_:)/
    │       │   │   └── index.html
    │       │   ├── textcase(_:)/
    │       │   │   └── index.html
    │       │   ├── textcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── textfieldstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── textselection(_:)/
    │       │   │   └── index.html
    │       │   ├── tint(_:)/
    │       │   │   └── index.html
    │       │   ├── togglestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-6zmlc/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-7j09e/
    │       │   │   └── index.html
    │       │   ├── toolbar(id:content:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(content:)/
    │       │   │   └── index.html
    │       │   ├── touchbarcustomizationlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritempresence(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritemprincipal(_:)/
    │       │   │   └── index.html
    │       │   ├── transaction(_:)/
    │       │   │   └── index.html
    │       │   ├── transformanchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformeffect(_:)/
    │       │   │   └── index.html
    │       │   ├── transformenvironment(_:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformpreference(_:_:)/
    │       │   │   └── index.html
    │       │   ├── transition(_:)/
    │       │   │   └── index.html
    │       │   ├── truncationmode(_:)/
    │       │   │   └── index.html
    │       │   ├── unredacted()/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:element:_:)/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:isactive:_:)/
    │       │   │   └── index.html
    │       │   ├── view-implementations/
    │       │   │   └── index.html
    │       │   └── zindex(_:)/
    │       │       └── index.html
    │       ├── carouselstyle/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── finitescroll/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── infinitescroll/
    │       │       └── index.html
    │       ├── index.html
    │       ├── shuffleanimation/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── easein/
    │       │   │   └── index.html
    │       │   ├── easeinout/
    │       │   │   └── index.html
    │       │   ├── easeout/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── linear/
    │       │       └── index.html
    │       ├── shufflecontext/
    │       │   ├── direction/
    │       │   │   └── index.html
    │       │   ├── index/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── previousindex/
    │       │       └── index.html
    │       ├── shuffledeck/
    │       │   ├── accentcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-5yxv/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-6f80/
    │       │   │   └── index.html
    │       │   ├── accessibility(addtraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hidden:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hint:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(identifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(inputlabels:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(label:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(removetraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(selectionidentifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(sortpriority:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(value:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(_:_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(action:label:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-5vajk/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7cvr0/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7d1bz/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-4i64i/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-8rijn/
    │       │   │   └── index.html
    │       │   ├── accessibilityaddtraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityadjustableaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychartdescriptor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychildren(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1dnrk/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1ucuw/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-2nazk/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-3pllm/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-3pod7/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-4xdb3/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-5vxjo/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-qwm7/
    │       │   │   └── index.html
    │       │   ├── accessibilityelement(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityheading(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhidden(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-1rrl0/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-5nt5z/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-v4ao/
    │       │   │   └── index.html
    │       │   ├── accessibilityidentifier(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityignoresinvertcolors(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3x55a/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-6n0d7/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-8jm4t/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-3ly3t/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-4h91y/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-6a6no/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabeledpair(role:id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitylinkedgroup(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityremovetraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrepresentation(representation:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrespondstouserinteraction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-1orax/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-2p5bh/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-5mxjh/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-7dolw/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-10oqf/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-25d98/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-51dnw/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6jn71/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-3f3j9/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-3lh2p/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-6wf02/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-7t24j/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-6nczq/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-8d4es/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-8l6zm/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-964n8/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotorentry(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityscrollaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer()/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitysortpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitytextcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-3kff4/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-7dd6l/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-7tnqf/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-2i24c/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-6i5wg/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-6mdoc/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-5j65x/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-6iohl/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-8x9o0/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-43fim/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-6dwv5/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-77clm/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7p8yz/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7ptxx/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-88es2/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:content:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:message:)/
    │       │   │   └── index.html
    │       │   ├── alert(item:content:)/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-5dc06/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-98bnf/
    │       │   │   └── index.html
    │       │   ├── allowshittesting(_:)/
    │       │   │   └── index.html
    │       │   ├── allowstightening(_:)/
    │       │   │   └── index.html
    │       │   ├── anchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:value:)/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-7qpsf/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-98csp/
    │       │   │   └── index.html
    │       │   ├── background(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── background(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-16mk7/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-3xtjy/
    │       │   │   └── index.html
    │       │   ├── background(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── background(ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-22zkr/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-pkki/
    │       │   │   └── index.html
    │       │   ├── backgroundpreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-23vvh/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-3b7a5/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-4eyh0/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-5yfrj/
    │       │   │   └── index.html
    │       │   ├── blendmode(_:)/
    │       │   │   └── index.html
    │       │   ├── blur(radius:opaque:)/
    │       │   │   └── index.html
    │       │   ├── body/
    │       │   │   └── index.html
    │       │   ├── border(_:width:)/
    │       │   │   └── index.html
    │       │   ├── brightness(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonbordershape(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-1hkio/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-1mobg/
    │       │   │   └── index.html
    │       │   ├── carouselanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseldisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselpadding(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselscale(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselspacing(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseltrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── clipped(antialiased:)/
    │       │   │   └── index.html
    │       │   ├── clipshape(_:style:)/
    │       │   │   └── index.html
    │       │   ├── colorinvert()/
    │       │   │   └── index.html
    │       │   ├── colormultiply(_:)/
    │       │   │   └── index.html
    │       │   ├── colorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── compositinggroup()/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7c2i9/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7p1mg/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-9t8f5/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-592a8/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-6sq5i/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-8ffij/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-455gp/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pvn4/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-8fhv/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4bg57/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-4pxpc/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-50r8e/
    │       │   │   └── index.html
    │       │   ├── containershape(_:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(_:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(menuitems:)/
    │       │   │   └── index.html
    │       │   ├── contrast(_:)/
    │       │   │   └── index.html
    │       │   ├── controlgroupstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── controlsize(_:)/
    │       │   │   └── index.html
    │       │   ├── coordinatespace(name:)/
    │       │   │   └── index.html
    │       │   ├── cornerradius(_:antialiased:)/
    │       │   │   └── index.html
    │       │   ├── datepickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── defaultappstorage(_:)/
    │       │   │   └── index.html
    │       │   ├── deletedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── disableautocorrection(_:)/
    │       │   │   └── index.html
    │       │   ├── disabled(_:)/
    │       │   │   └── index.html
    │       │   ├── drawinggroup(opaque:colormode:)/
    │       │   │   └── index.html
    │       │   ├── dynamictypesize(_:)/
    │       │   │   └── index.html
    │       │   ├── edgesignoringsafearea(_:)/
    │       │   │   └── index.html
    │       │   ├── environment(_:_:)/
    │       │   │   └── index.html
    │       │   ├── environmentobject(_:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:onedit:)/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-54p9i/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-z1af/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-4ixib/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-72o0w/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:file:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:files:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fixedsize()/
    │       │   │   └── index.html
    │       │   ├── fixedsize(horizontal:vertical:)/
    │       │   │   └── index.html
    │       │   ├── flipsforrighttoleftlayoutdirection(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:onfocuschange:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── focusedscenevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusedvalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusscope(_:)/
    │       │   │   └── index.html
    │       │   ├── font(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:_:)/
    │       │   │   └── index.html
    │       │   ├── frame()/
    │       │   │   └── index.html
    │       │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)/
    │       │   │   └── index.html
    │       │   ├── frame(width:height:alignment:)/
    │       │   │   └── index.html
    │       │   ├── gesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── grayscale(_:)/
    │       │   │   └── index.html
    │       │   ├── groupboxstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── handlesexternalevents(preferring:allowing:)/
    │       │   │   └── index.html
    │       │   ├── headerprominence(_:)/
    │       │   │   └── index.html
    │       │   ├── help(_:)-4gfc1/
    │       │   │   └── index.html
    │       │   ├── help(_:)-57kg7/
    │       │   │   └── index.html
    │       │   ├── help(_:)-5c7gg/
    │       │   │   └── index.html
    │       │   ├── hidden()/
    │       │   │   └── index.html
    │       │   ├── highprioritygesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── horizontalradiogrouplayout()/
    │       │   │   └── index.html
    │       │   ├── huerotation(_:)/
    │       │   │   └── index.html
    │       │   ├── id(_:)/
    │       │   │   └── index.html
    │       │   ├── ignoressafearea(_:edges:)/
    │       │   │   └── index.html
    │       │   ├── imagescale(_:)/
    │       │   │   └── index.html
    │       │   ├── importsitemproviders(_:onimport:)/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── init(_:initialindex:content:)-6ou47/
    │       │   │   └── index.html
    │       │   ├── init(_:initialindex:content:)-9osfg/
    │       │   │   └── index.html
    │       │   ├── interactivedismissdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── itemprovider(_:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-8kg9p/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-92las/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:localization:)/
    │       │   │   └── index.html
    │       │   ├── labelshidden()/
    │       │   │   └── index.html
    │       │   ├── labelstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── layoutpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── linelimit(_:)/
    │       │   │   └── index.html
    │       │   ├── linespacing(_:)/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-4okc6/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-8uys6/
    │       │   │   └── index.html
    │       │   ├── listrowbackground(_:)/
    │       │   │   └── index.html
    │       │   ├── listrowinsets(_:)/
    │       │   │   └── index.html
    │       │   ├── liststyle(_:)/
    │       │   │   └── index.html
    │       │   ├── luminancetoalpha()/
    │       │   │   └── index.html
    │       │   ├── mask(_:)/
    │       │   │   └── index.html
    │       │   ├── mask(alignment:_:)/
    │       │   │   └── index.html
    │       │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:)/
    │       │   │   └── index.html
    │       │   ├── menubuttonstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── menuindicator(_:)/
    │       │   │   └── index.html
    │       │   ├── menustyle(_:)/
    │       │   │   └── index.html
    │       │   ├── minimumscalefactor(_:)/
    │       │   │   └── index.html
    │       │   ├── modifier(_:)/
    │       │   │   └── index.html
    │       │   ├── monospaceddigit()/
    │       │   │   └── index.html
    │       │   ├── movedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── multilinetextalignment(_:)/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-4xcr1/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-62wq4/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-89wf8/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-15ycd/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-3gz4j/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-6t67o/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-8moj6/
    │       │   │   └── index.html
    │       │   ├── navigationviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(x:y:)/
    │       │   │   └── index.html
    │       │   ├── onappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncarousel(_:)/
    │       │   │   └── index.html
    │       │   ├── oncarouseltranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onchange(of:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncommand(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncontinueuseractivity(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncopycommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncutcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondeletecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondisappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:preview:)/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-55jbd/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-9xy3o/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-2wosm/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-4zd72/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-6o6wo/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-btgb/
    │       │   │   └── index.html
    │       │   ├── onexitcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onhover(perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onmovecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onopenurl(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-3phpt/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-7nzf4/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-5h2lv/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-7k6qm/
    │       │   │   └── index.html
    │       │   ├── onplaypausecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpreferencechange(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onreceive(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onshuffle(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledeck(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledecktranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffletranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onsubmit(of:_:)/
    │       │   │   └── index.html
    │       │   ├── ontapgesture(count:perform:)/
    │       │   │   └── index.html
    │       │   ├── opacity(_:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:in:fillstyle:)/
    │       │   │   └── index.html
    │       │   ├── overlay(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── overlaypreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-5f3wf/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-7cp9q/
    │       │   │   └── index.html
    │       │   ├── padding(_:_:)/
    │       │   │   └── index.html
    │       │   ├── pagecommand(value:in:step:)/
    │       │   │   └── index.html
    │       │   ├── pickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── popover(ispresented:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── popover(item:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── position(_:)/
    │       │   │   └── index.html
    │       │   ├── position(x:y:)/
    │       │   │   └── index.html
    │       │   ├── preference(key:value:)/
    │       │   │   └── index.html
    │       │   ├── preferredcolorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── prefersdefaultfocus(_:in:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowtoolbarstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── previewcontext(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdevice(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdisplayname(_:)/
    │       │   │   └── index.html
    │       │   ├── previewinterfaceorientation(_:)/
    │       │   │   └── index.html
    │       │   ├── previewlayout(_:)/
    │       │   │   └── index.html
    │       │   ├── privacysensitive(_:)/
    │       │   │   └── index.html
    │       │   ├── progressviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── projectioneffect(_:)/
    │       │   │   └── index.html
    │       │   ├── redacted(reason:)/
    │       │   │   └── index.html
    │       │   ├── refreshable(action:)/
    │       │   │   └── index.html
    │       │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:)/
    │       │   │   └── index.html
    │       │   ├── rotationeffect(_:anchor:)/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-4gojk/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-9bx6p/
    │       │   │   └── index.html
    │       │   ├── saturation(_:)/
    │       │   │   └── index.html
    │       │   ├── scaledtofill()/
    │       │   │   └── index.html
    │       │   ├── scaledtofit()/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-4byje/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-6bduh/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(x:y:anchor:)/
    │       │   │   └── index.html
    │       │   ├── scenepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-2i9jl/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-50j7i/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-75a6t/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-5bsg8/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-5ib9a/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-8fyqc/
    │       │   │   └── index.html
    │       │   ├── searchcompletion(_:)/
    │       │   │   └── index.html
    │       │   ├── shadow(color:radius:x:y:)/
    │       │   │   └── index.html
    │       │   ├── sheet(ispresented:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── sheet(item:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── shuffleanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckscale(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledecktrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── shuffledisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffleoffset(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflescale(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffletrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── simultaneousgesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── speechadjustedpitch(_:)/
    │       │   │   └── index.html
    │       │   ├── speechalwaysincludespunctuation(_:)/
    │       │   │   └── index.html
    │       │   ├── speechannouncementsqueued(_:)/
    │       │   │   └── index.html
    │       │   ├── speechspellsoutcharacters(_:)/
    │       │   │   └── index.html
    │       │   ├── submitlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── submitscope(_:)/
    │       │   │   └── index.html
    │       │   ├── swipeactions(edge:allowsfullswipe:content:)/
    │       │   │   └── index.html
    │       │   ├── symbolrenderingmode(_:)/
    │       │   │   └── index.html
    │       │   ├── symbolvariant(_:)/
    │       │   │   └── index.html
    │       │   ├── tabitem(_:)/
    │       │   │   └── index.html
    │       │   ├── tablestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tabviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tag(_:)/
    │       │   │   └── index.html
    │       │   ├── task(id:priority:_:)/
    │       │   │   └── index.html
    │       │   ├── task(priority:_:)/
    │       │   │   └── index.html
    │       │   ├── textcase(_:)/
    │       │   │   └── index.html
    │       │   ├── textcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── textfieldstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── textselection(_:)/
    │       │   │   └── index.html
    │       │   ├── tint(_:)/
    │       │   │   └── index.html
    │       │   ├── togglestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-2k0pt/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-4sm5t/
    │       │   │   └── index.html
    │       │   ├── toolbar(id:content:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(content:)/
    │       │   │   └── index.html
    │       │   ├── touchbarcustomizationlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritempresence(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritemprincipal(_:)/
    │       │   │   └── index.html
    │       │   ├── transaction(_:)/
    │       │   │   └── index.html
    │       │   ├── transformanchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformeffect(_:)/
    │       │   │   └── index.html
    │       │   ├── transformenvironment(_:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformpreference(_:_:)/
    │       │   │   └── index.html
    │       │   ├── transition(_:)/
    │       │   │   └── index.html
    │       │   ├── truncationmode(_:)/
    │       │   │   └── index.html
    │       │   ├── unredacted()/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:element:_:)/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:isactive:_:)/
    │       │   │   └── index.html
    │       │   ├── view-implementations/
    │       │   │   └── index.html
    │       │   └── zindex(_:)/
    │       │       └── index.html
    │       ├── shuffledeckanimation/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── easein/
    │       │   │   └── index.html
    │       │   ├── easeinout/
    │       │   │   └── index.html
    │       │   ├── easeout/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── linear/
    │       │       └── index.html
    │       ├── shuffledeckcontext/
    │       │   ├── direction/
    │       │   │   └── index.html
    │       │   ├── index/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── previousindex/
    │       │       └── index.html
    │       ├── shuffledeckdirection/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── left/
    │       │   │   └── index.html
    │       │   └── right/
    │       │       └── index.html
    │       ├── shuffledeckstyle/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── finiteshuffle/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   └── infiniteshuffle/
    │       │       └── index.html
    │       ├── shuffledirection/
    │       │   ├── !=(_:_:)/
    │       │   │   └── index.html
    │       │   ├── equatable-implementations/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── left/
    │       │   │   └── index.html
    │       │   └── right/
    │       │       └── index.html
    │       ├── shufflestack/
    │       │   ├── accentcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-1nikr/
    │       │   │   └── index.html
    │       │   ├── accessibility(activationpoint:)-9o1ut/
    │       │   │   └── index.html
    │       │   ├── accessibility(addtraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hidden:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(hint:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(identifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(inputlabels:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(label:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(removetraits:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(selectionidentifier:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(sortpriority:)/
    │       │   │   └── index.html
    │       │   ├── accessibility(value:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(_:_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(action:label:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-5nf29/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7rxae/
    │       │   │   └── index.html
    │       │   ├── accessibilityaction(named:_:)-7tk0c/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-57vfb/
    │       │   │   └── index.html
    │       │   ├── accessibilityactivationpoint(_:)-9osvr/
    │       │   │   └── index.html
    │       │   ├── accessibilityaddtraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityadjustableaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychartdescriptor(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitychildren(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-1gi9v/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-375xz/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-571fc/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-72sim/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-7h1pz/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-8sma2/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-956rk/
    │       │   │   └── index.html
    │       │   ├── accessibilitycustomcontent(_:_:importance:)-96ur4/
    │       │   │   └── index.html
    │       │   ├── accessibilityelement(children:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityfocused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityheading(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhidden(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-45b9m/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-6451d/
    │       │   │   └── index.html
    │       │   ├── accessibilityhint(_:)-6m2eb/
    │       │   │   └── index.html
    │       │   ├── accessibilityidentifier(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityignoresinvertcolors(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-3mfon/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-7hs3b/
    │       │   │   └── index.html
    │       │   ├── accessibilityinputlabels(_:)-7kg3p/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-3has0/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-6dv6y/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabel(_:)-e66p/
    │       │   │   └── index.html
    │       │   ├── accessibilitylabeledpair(role:id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitylinkedgroup(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityremovetraits(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrepresentation(representation:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrespondstouserinteraction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-3a01s/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-661b4/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-7kbeo/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:)-f4c5/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1kufn/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-1o7jk/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-2ng74/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entryid:entrylabel:)-6akr8/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-6o30j/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-8e6r9/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-bva6/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:entries:entrylabel:)-cxx7/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-1v5os/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-5mce6/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-7fpc1/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotor(_:textranges:)-91on2/
    │       │   │   └── index.html
    │       │   ├── accessibilityrotorentry(id:in:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityscrollaction(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer()/
    │       │   │   └── index.html
    │       │   ├── accessibilityshowslargecontentviewer(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitysortpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilitytextcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-6kh76/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-6x5in/
    │       │   │   └── index.html
    │       │   ├── accessibilityvalue(_:)-tcbi/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-13ppe/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-31fv4/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:)-svpk/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-1lplz/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-42hzu/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:actions:message:)-8jr1q/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-135kk/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-7je0d/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:)-7zzve/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-17uu0/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-36zvz/
    │       │   │   └── index.html
    │       │   ├── alert(_:ispresented:presenting:actions:message:)-7caah/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:content:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:)/
    │       │   │   └── index.html
    │       │   ├── alert(ispresented:error:actions:message:)/
    │       │   │   └── index.html
    │       │   ├── alert(item:content:)/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-23g26/
    │       │   │   └── index.html
    │       │   ├── alignmentguide(_:computevalue:)-4kcej/
    │       │   │   └── index.html
    │       │   ├── allowshittesting(_:)/
    │       │   │   └── index.html
    │       │   ├── allowstightening(_:)/
    │       │   │   └── index.html
    │       │   ├── anchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:)/
    │       │   │   └── index.html
    │       │   ├── animation(_:value:)/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-9iav9/
    │       │   │   └── index.html
    │       │   ├── aspectratio(_:contentmode:)-ggdx/
    │       │   │   └── index.html
    │       │   ├── background(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── background(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-1a2bf/
    │       │   │   └── index.html
    │       │   ├── background(_:in:fillstyle:)-8qwr1/
    │       │   │   └── index.html
    │       │   ├── background(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── background(ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-58j5e/
    │       │   │   └── index.html
    │       │   ├── background(in:fillstyle:)-8w09p/
    │       │   │   └── index.html
    │       │   ├── backgroundpreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-26gjx/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-2cz64/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-31kbp/
    │       │   │   └── index.html
    │       │   ├── badge(_:)-4i0v1/
    │       │   │   └── index.html
    │       │   ├── blendmode(_:)/
    │       │   │   └── index.html
    │       │   ├── blur(radius:opaque:)/
    │       │   │   └── index.html
    │       │   ├── body/
    │       │   │   └── index.html
    │       │   ├── border(_:width:)/
    │       │   │   └── index.html
    │       │   ├── brightness(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonbordershape(_:)/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-42cf/
    │       │   │   └── index.html
    │       │   ├── buttonstyle(_:)-4hs9e/
    │       │   │   └── index.html
    │       │   ├── carouselanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseldisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselpadding(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselscale(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselspacing(_:)/
    │       │   │   └── index.html
    │       │   ├── carouselstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── carouseltrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── clipped(antialiased:)/
    │       │   │   └── index.html
    │       │   ├── clipshape(_:style:)/
    │       │   │   └── index.html
    │       │   ├── colorinvert()/
    │       │   │   └── index.html
    │       │   ├── colormultiply(_:)/
    │       │   │   └── index.html
    │       │   ├── colorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── compositinggroup()/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-41ud8/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-4ywhx/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:)-7ipnf/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-1kurz/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-5vmyl/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:actions:message:)-9sue3/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-1tkx/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-5diu1/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:)-7pkdq/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-296mh/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-5uj0y/
    │       │   │   └── index.html
    │       │   ├── confirmationdialog(_:ispresented:titlevisibility:presenting:actions:message:)-7cjsq/
    │       │   │   └── index.html
    │       │   ├── containershape(_:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contentshape(_:eofill:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(_:)/
    │       │   │   └── index.html
    │       │   ├── contextmenu(menuitems:)/
    │       │   │   └── index.html
    │       │   ├── contrast(_:)/
    │       │   │   └── index.html
    │       │   ├── controlgroupstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── controlsize(_:)/
    │       │   │   └── index.html
    │       │   ├── coordinatespace(name:)/
    │       │   │   └── index.html
    │       │   ├── cornerradius(_:antialiased:)/
    │       │   │   └── index.html
    │       │   ├── datepickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── defaultappstorage(_:)/
    │       │   │   └── index.html
    │       │   ├── deletedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── disableautocorrection(_:)/
    │       │   │   └── index.html
    │       │   ├── disabled(_:)/
    │       │   │   └── index.html
    │       │   ├── drawinggroup(opaque:colormode:)/
    │       │   │   └── index.html
    │       │   ├── dynamictypesize(_:)/
    │       │   │   └── index.html
    │       │   ├── edgesignoringsafearea(_:)/
    │       │   │   └── index.html
    │       │   ├── environment(_:_:)/
    │       │   │   └── index.html
    │       │   ├── environmentobject(_:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:)/
    │       │   │   └── index.html
    │       │   ├── exportsitemproviders(_:onexport:onedit:)/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-6evgr/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:document:contenttype:defaultfilename:oncompletion:)-8iv2y/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-233kd/
    │       │   │   └── index.html
    │       │   ├── fileexporter(ispresented:documents:contenttype:oncompletion:)-7map2/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:allowsmultipleselection:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fileimporter(ispresented:allowedcontenttypes:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:file:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── filemover(ispresented:files:oncompletion:)/
    │       │   │   └── index.html
    │       │   ├── fixedsize()/
    │       │   │   └── index.html
    │       │   ├── fixedsize(horizontal:vertical:)/
    │       │   │   └── index.html
    │       │   ├── flipsforrighttoleftlayoutdirection(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:)/
    │       │   │   └── index.html
    │       │   ├── focusable(_:onfocuschange:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:)/
    │       │   │   └── index.html
    │       │   ├── focused(_:equals:)/
    │       │   │   └── index.html
    │       │   ├── focusedscenevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusedvalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── focusscope(_:)/
    │       │   │   └── index.html
    │       │   ├── font(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundcolor(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:)/
    │       │   │   └── index.html
    │       │   ├── foregroundstyle(_:_:_:)/
    │       │   │   └── index.html
    │       │   ├── frame()/
    │       │   │   └── index.html
    │       │   ├── frame(minwidth:idealwidth:maxwidth:minheight:idealheight:maxheight:alignment:)/
    │       │   │   └── index.html
    │       │   ├── frame(width:height:alignment:)/
    │       │   │   └── index.html
    │       │   ├── gesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── grayscale(_:)/
    │       │   │   └── index.html
    │       │   ├── groupboxstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── handlesexternalevents(preferring:allowing:)/
    │       │   │   └── index.html
    │       │   ├── headerprominence(_:)/
    │       │   │   └── index.html
    │       │   ├── help(_:)-296/
    │       │   │   └── index.html
    │       │   ├── help(_:)-2u744/
    │       │   │   └── index.html
    │       │   ├── help(_:)-4q5ms/
    │       │   │   └── index.html
    │       │   ├── hidden()/
    │       │   │   └── index.html
    │       │   ├── highprioritygesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── horizontalradiogrouplayout()/
    │       │   │   └── index.html
    │       │   ├── huerotation(_:)/
    │       │   │   └── index.html
    │       │   ├── id(_:)/
    │       │   │   └── index.html
    │       │   ├── ignoressafearea(_:edges:)/
    │       │   │   └── index.html
    │       │   ├── imagescale(_:)/
    │       │   │   └── index.html
    │       │   ├── importsitemproviders(_:onimport:)/
    │       │   │   └── index.html
    │       │   ├── index.html
    │       │   ├── init(_:initialindex:stackcontent:)-4x5f3/
    │       │   │   └── index.html
    │       │   ├── init(_:initialindex:stackcontent:)-8ktnr/
    │       │   │   └── index.html
    │       │   ├── interactivedismissdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── itemprovider(_:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-30f12/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:)-38k96/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:)/
    │       │   │   └── index.html
    │       │   ├── keyboardshortcut(_:modifiers:localization:)/
    │       │   │   └── index.html
    │       │   ├── labelshidden()/
    │       │   │   └── index.html
    │       │   ├── labelstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── layoutpriority(_:)/
    │       │   │   └── index.html
    │       │   ├── linelimit(_:)/
    │       │   │   └── index.html
    │       │   ├── linespacing(_:)/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-66j6h/
    │       │   │   └── index.html
    │       │   ├── listitemtint(_:)-6zn9q/
    │       │   │   └── index.html
    │       │   ├── listrowbackground(_:)/
    │       │   │   └── index.html
    │       │   ├── listrowinsets(_:)/
    │       │   │   └── index.html
    │       │   ├── liststyle(_:)/
    │       │   │   └── index.html
    │       │   ├── luminancetoalpha()/
    │       │   │   └── index.html
    │       │   ├── mask(_:)/
    │       │   │   └── index.html
    │       │   ├── mask(alignment:_:)/
    │       │   │   └── index.html
    │       │   ├── matchedgeometryeffect(id:in:properties:anchor:issource:)/
    │       │   │   └── index.html
    │       │   ├── menubuttonstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── menuindicator(_:)/
    │       │   │   └── index.html
    │       │   ├── menustyle(_:)/
    │       │   │   └── index.html
    │       │   ├── minimumscalefactor(_:)/
    │       │   │   └── index.html
    │       │   ├── modifier(_:)/
    │       │   │   └── index.html
    │       │   ├── monospaceddigit()/
    │       │   │   └── index.html
    │       │   ├── movedisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── multilinetextalignment(_:)/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-16d52/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-206md/
    │       │   │   └── index.html
    │       │   ├── navigationsubtitle(_:)-7em2i/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7aj99/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7jd07/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7twkm/
    │       │   │   └── index.html
    │       │   ├── navigationtitle(_:)-7w547/
    │       │   │   └── index.html
    │       │   ├── navigationviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(_:)/
    │       │   │   └── index.html
    │       │   ├── offset(x:y:)/
    │       │   │   └── index.html
    │       │   ├── onappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncarousel(_:)/
    │       │   │   └── index.html
    │       │   ├── oncarouseltranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onchange(of:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncommand(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncontinueuseractivity(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── oncopycommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── oncutcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondeletecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondisappear(perform:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:)/
    │       │   │   └── index.html
    │       │   ├── ondrag(_:preview:)/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-1ea27/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:delegate:)-8thdr/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-363wn/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-3bmbv/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-82gpe/
    │       │   │   └── index.html
    │       │   ├── ondrop(of:istargeted:perform:)-84ef9/
    │       │   │   └── index.html
    │       │   ├── onexitcommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onhover(perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:maximumdistance:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:perform:onpressingchanged:)/
    │       │   │   └── index.html
    │       │   ├── onlongpressgesture(minimumduration:pressing:perform:)/
    │       │   │   └── index.html
    │       │   ├── onmovecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onopenurl(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-4k6ie/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:perform:)-wliz/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-7tcqn/
    │       │   │   └── index.html
    │       │   ├── onpastecommand(of:validator:perform:)-9ddq9/
    │       │   │   └── index.html
    │       │   ├── onplaypausecommand(perform:)/
    │       │   │   └── index.html
    │       │   ├── onpreferencechange(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onreceive(_:perform:)/
    │       │   │   └── index.html
    │       │   ├── onshuffle(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledeck(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffledecktranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onshuffletranslation(_:)/
    │       │   │   └── index.html
    │       │   ├── onsubmit(of:_:)/
    │       │   │   └── index.html
    │       │   ├── ontapgesture(count:perform:)/
    │       │   │   └── index.html
    │       │   ├── opacity(_:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:alignment:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:ignoressafeareaedges:)/
    │       │   │   └── index.html
    │       │   ├── overlay(_:in:fillstyle:)/
    │       │   │   └── index.html
    │       │   ├── overlay(alignment:content:)/
    │       │   │   └── index.html
    │       │   ├── overlaypreferencevalue(_:_:)/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-7zetw/
    │       │   │   └── index.html
    │       │   ├── padding(_:)-9obs7/
    │       │   │   └── index.html
    │       │   ├── padding(_:_:)/
    │       │   │   └── index.html
    │       │   ├── pagecommand(value:in:step:)/
    │       │   │   └── index.html
    │       │   ├── pickerstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── popover(ispresented:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── popover(item:attachmentanchor:arrowedge:content:)/
    │       │   │   └── index.html
    │       │   ├── position(_:)/
    │       │   │   └── index.html
    │       │   ├── position(x:y:)/
    │       │   │   └── index.html
    │       │   ├── preference(key:value:)/
    │       │   │   └── index.html
    │       │   ├── preferredcolorscheme(_:)/
    │       │   │   └── index.html
    │       │   ├── prefersdefaultfocus(_:in:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── presentedwindowtoolbarstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── previewcontext(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdevice(_:)/
    │       │   │   └── index.html
    │       │   ├── previewdisplayname(_:)/
    │       │   │   └── index.html
    │       │   ├── previewinterfaceorientation(_:)/
    │       │   │   └── index.html
    │       │   ├── previewlayout(_:)/
    │       │   │   └── index.html
    │       │   ├── privacysensitive(_:)/
    │       │   │   └── index.html
    │       │   ├── progressviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── projectioneffect(_:)/
    │       │   │   └── index.html
    │       │   ├── redacted(reason:)/
    │       │   │   └── index.html
    │       │   ├── refreshable(action:)/
    │       │   │   └── index.html
    │       │   ├── rotation3deffect(_:axis:anchor:anchorz:perspective:)/
    │       │   │   └── index.html
    │       │   ├── rotationeffect(_:anchor:)/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-9cc9j/
    │       │   │   └── index.html
    │       │   ├── safeareainset(edge:alignment:spacing:content:)-9ojua/
    │       │   │   └── index.html
    │       │   ├── saturation(_:)/
    │       │   │   └── index.html
    │       │   ├── scaledtofill()/
    │       │   │   └── index.html
    │       │   ├── scaledtofit()/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-2caa5/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(_:anchor:)-718iu/
    │       │   │   └── index.html
    │       │   ├── scaleeffect(x:y:anchor:)/
    │       │   │   └── index.html
    │       │   ├── scenepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-2vm7x/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-8rgzb/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:)-988ga/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-3zci7/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-5taln/
    │       │   │   └── index.html
    │       │   ├── searchable(text:placement:prompt:suggestions:)-8jhzt/
    │       │   │   └── index.html
    │       │   ├── searchcompletion(_:)/
    │       │   │   └── index.html
    │       │   ├── shadow(color:radius:x:y:)/
    │       │   │   └── index.html
    │       │   ├── sheet(ispresented:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── sheet(item:ondismiss:content:)/
    │       │   │   └── index.html
    │       │   ├── shuffleanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckanimation(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckdisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckscale(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledeckstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffledecktrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── shuffledisabled(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffleoffset(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflepadding(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflescale(_:)/
    │       │   │   └── index.html
    │       │   ├── shufflestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── shuffletrigger(on:)/
    │       │   │   └── index.html
    │       │   ├── simultaneousgesture(_:including:)/
    │       │   │   └── index.html
    │       │   ├── speechadjustedpitch(_:)/
    │       │   │   └── index.html
    │       │   ├── speechalwaysincludespunctuation(_:)/
    │       │   │   └── index.html
    │       │   ├── speechannouncementsqueued(_:)/
    │       │   │   └── index.html
    │       │   ├── speechspellsoutcharacters(_:)/
    │       │   │   └── index.html
    │       │   ├── submitlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── submitscope(_:)/
    │       │   │   └── index.html
    │       │   ├── swipeactions(edge:allowsfullswipe:content:)/
    │       │   │   └── index.html
    │       │   ├── symbolrenderingmode(_:)/
    │       │   │   └── index.html
    │       │   ├── symbolvariant(_:)/
    │       │   │   └── index.html
    │       │   ├── tabitem(_:)/
    │       │   │   └── index.html
    │       │   ├── tablestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tabviewstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── tag(_:)/
    │       │   │   └── index.html
    │       │   ├── task(id:priority:_:)/
    │       │   │   └── index.html
    │       │   ├── task(priority:_:)/
    │       │   │   └── index.html
    │       │   ├── textcase(_:)/
    │       │   │   └── index.html
    │       │   ├── textcontenttype(_:)/
    │       │   │   └── index.html
    │       │   ├── textfieldstyle(_:)/
    │       │   │   └── index.html
    │       │   ├── textselection(_:)/
    │       │   │   └── index.html
    │       │   ├── tint(_:)/
    │       │   │   └── index.html
    │       │   ├── togglestyle(_:)/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-2fsde/
    │       │   │   └── index.html
    │       │   ├── toolbar(content:)-9838r/
    │       │   │   └── index.html
    │       │   ├── toolbar(id:content:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbar(content:)/
    │       │   │   └── index.html
    │       │   ├── touchbarcustomizationlabel(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritempresence(_:)/
    │       │   │   └── index.html
    │       │   ├── touchbaritemprincipal(_:)/
    │       │   │   └── index.html
    │       │   ├── transaction(_:)/
    │       │   │   └── index.html
    │       │   ├── transformanchorpreference(key:value:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformeffect(_:)/
    │       │   │   └── index.html
    │       │   ├── transformenvironment(_:transform:)/
    │       │   │   └── index.html
    │       │   ├── transformpreference(_:_:)/
    │       │   │   └── index.html
    │       │   ├── transition(_:)/
    │       │   │   └── index.html
    │       │   ├── truncationmode(_:)/
    │       │   │   └── index.html
    │       │   ├── unredacted()/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:element:_:)/
    │       │   │   └── index.html
    │       │   ├── useractivity(_:isactive:_:)/
    │       │   │   └── index.html
    │       │   ├── view-implementations/
    │       │   │   └── index.html
    │       │   └── zindex(_:)/
    │       │       └── index.html
    │       └── shufflestyle/
    │           ├── !=(_:_:)/
    │           │   └── index.html
    │           ├── equatable-implementations/
    │           │   └── index.html
    │           ├── index.html
    │           ├── rotatein/
    │           │   └── index.html
    │           ├── rotateout/
    │           │   └── index.html
    │           └── slide/
    │               └── index.html
    ├── index/
    │   └── index.json
    ├── index.html
    ├── js/
    │   ├── chunk-2d0d3105.cd72cc8e.js
    │   ├── chunk-vendors.b24b7aaa.js
    │   ├── documentation-topic.f62098b6.js
    │   ├── documentation-topic~topic~tutorials-overview.8e36e44f.js
    │   ├── highlight-js-bash.1b52852f.js
    │   ├── highlight-js-c.d1db3f17.js
    │   ├── highlight-js-cpp.eaddddbe.js
    │   ├── highlight-js-css.75eab1fe.js
    │   ├── highlight-js-custom-markdown.7cffc4b3.js
    │   ├── highlight-js-custom-swift.5cda5c20.js
    │   ├── highlight-js-diff.62d66733.js
    │   ├── highlight-js-http.163e45b6.js
    │   ├── highlight-js-java.8326d9d8.js
    │   ├── highlight-js-javascript.acb8a8eb.js
    │   ├── highlight-js-json.471128d2.js
    │   ├── highlight-js-llvm.6100b125.js
    │   ├── highlight-js-markdown.90077643.js
    │   ├── highlight-js-objectivec.bcdf5156.js
    │   ├── highlight-js-perl.757d7b6f.js
    │   ├── highlight-js-php.cc8d6c27.js
    │   ├── highlight-js-python.c214ed92.js
    │   ├── highlight-js-ruby.f889d392.js
    │   ├── highlight-js-scss.62ee18da.js
    │   ├── highlight-js-shell.dd7f411f.js
    │   ├── highlight-js-swift.84f3e88c.js
    │   ├── highlight-js-xml.9c3688c7.js
    │   ├── index.58e30ec4.js
    │   ├── topic.6a1c7b7f.js
    │   └── tutorials-overview.c8178b83.js
    ├── metadata.json
    └── theme-settings.json
Download .txt
SYMBOL INDEX (1269 symbols across 29 files)

FILE: docs/js/chunk-2d0d3105.cd72cc8e.js
  function i (line 10) | function i(t){try{return t.defaultView&&t.defaultView.frameElement||null...
  function r (line 10) | function r(t){this.time=t.time,this.target=t.target,this.rootBounds=d(t....
  function s (line 10) | function s(t,e){var n=e||{};if("function"!=typeof t)throw new Error("cal...
  function h (line 10) | function h(){return window.performance&&performance.now&&performance.now()}
  function u (line 10) | function u(t,e){var n=null;return function(){n||(n=setTimeout((function(...
  function c (line 10) | function c(t,e,n,o){"function"==typeof t.addEventListener?t.addEventList...
  function a (line 10) | function a(t,e,n,o){"function"==typeof t.removeEventListener?t.removeEve...
  function l (line 10) | function l(t,e){var n=Math.max(t.top,e.top),o=Math.min(t.bottom,e.bottom...
  function f (line 10) | function f(t){var e;try{e=t.getBoundingClientRect()}catch(n){}return e?(...
  function p (line 10) | function p(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}
  function d (line 10) | function d(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,lef...
  function g (line 10) | function g(t,e){var n=e.top-t.top,o=e.left-t.left;return{top:n,left:o,he...
  function m (line 10) | function m(t,e){var n=e;while(n){if(n==t)return!0;n=v(n)}return!1}
  function v (line 10) | function v(e){var n=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(n&&n.a...
  function w (line 10) | function w(t){return t&&9===t.nodeType}

FILE: docs/js/chunk-vendors.b24b7aaa.js
  function r (line 10) | function r(t,e,n,r,o,i,a,s){var c,u="function"===typeof t?t.options:t;if...
  function r (line 16) | function r(t){return void 0===t||null===t}
  function o (line 16) | function o(t){return void 0!==t&&null!==t}
  function i (line 16) | function i(t){return!0===t}
  function a (line 16) | function a(t){return!1===t}
  function s (line 16) | function s(t){return"string"===typeof t||"number"===typeof t||"symbol"==...
  function c (line 16) | function c(t){return null!==t&&"object"===typeof t}
  function f (line 16) | function f(t){return"[object Object]"===u.call(t)}
  function l (line 16) | function l(t){return"[object RegExp]"===u.call(t)}
  function p (line 16) | function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e...
  function d (line 16) | function d(t){return o(t)&&"function"===typeof t.then&&"function"===type...
  function h (line 16) | function h(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===u?J...
  function v (line 16) | function v(t){var e=parseFloat(t);return isNaN(e)?t:e}
  function y (line 16) | function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.len...
  function g (line 16) | function g(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(...
  function b (line 16) | function b(t,e){return _.call(t,e)}
  function w (line 16) | function w(t){var e=Object.create(null);return function(n){var r=e[n];re...
  function O (line 16) | function O(t,e){function n(n){var r=arguments.length;return r?r>1?t.appl...
  function S (line 16) | function S(t,e){return t.bind(e)}
  function T (line 16) | function T(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[...
  function j (line 16) | function j(t,e){for(var n in e)t[n]=e[n];return t}
  function R (line 16) | function R(t){for(var e={},n=0;n<t.length;n++)t[n]&&j(e,t[n]);return e}
  function P (line 16) | function P(t,e,n){}
  function N (line 16) | function N(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&...
  function D (line 16) | function D(t,e){for(var n=0;n<t.length;n++)if(N(t[n],e))return n;return-1}
  function M (line 16) | function M(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments...
  function q (line 16) | function q(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}
  function z (line 16) | function z(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,wr...
  function K (line 16) | function K(t){if(!W.test(t)){var e=t.split(".");return function(t){for(v...
  function ft (line 16) | function ft(t){return"function"===typeof t&&/native code/.test(t.toStrin...
  function t (line 16) | function t(){this.set=Object.create(null)}
  function mt (line 16) | function mt(t){yt.push(t),vt.target=t}
  function gt (line 16) | function gt(){yt.pop(),vt.target=yt[yt.length-1]}
  function Ct (line 16) | function Ct(t){return new _t(void 0,void 0,void 0,String(t))}
  function xt (line 16) | function xt(t){var e=new _t(t.tag,t.data,t.children&&t.children.slice(),...
  function Et (line 16) | function Et(t){St=t}
  function jt (line 16) | function jt(t,e){t.__proto__=e}
  function Rt (line 16) | function Rt(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];z(t,i,e[i])}}
  function Pt (line 16) | function Pt(t,e){var n;if(c(t)&&!(t instanceof _t))return b(t,"__ob__")&...
  function It (line 16) | function It(t,e,n,r,o){var i=new vt,a=Object.getOwnPropertyDescriptor(t,...
  function Lt (line 16) | function Lt(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t....
  function Nt (line 16) | function Nt(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__...
  function Dt (line 16) | function Dt(t){for(var e=void 0,n=0,r=t.length;n<r;n++)e=t[n],e&&e.__ob_...
  function Ft (line 16) | function Ft(t,e){if(!e)return t;for(var n,r,o,i=pt?Reflect.ownKeys(e):Ob...
  function Ut (line 16) | function Ut(t,e,n){return n?function(){var r="function"===typeof e?e.cal...
  function Vt (line 16) | function Vt(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n...
  function Bt (line 16) | function Bt(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.p...
  function Ht (line 16) | function Ht(t,e,n,r){var o=Object.create(t||null);return e?j(o,e):o}
  function zt (line 16) | function zt(t,e){var n=t.props;if(n){var r,o,i,a={};if(Array.isArray(n))...
  function Wt (line 16) | function Wt(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray...
  function Kt (line 16) | function Kt(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"funct...
  function Xt (line 16) | function Xt(t,e,n){if("function"===typeof e&&(e=e.options),zt(e,n),Wt(e,...
  function Jt (line 16) | function Jt(t,e,n,r){if("string"===typeof n){var o=t[e];if(b(o,n))return...
  function Gt (line 16) | function Gt(t,e,n,r){var o=e[t],i=!b(n,t),a=n[t],s=ee(Boolean,o.type);if...
  function Qt (line 16) | function Qt(t,e,n){if(b(e,"default")){var r=e.default;return t&&t.$optio...
  function Zt (line 16) | function Zt(t){var e=t&&t.toString().match(Yt);return e?e[1]:""}
  function te (line 16) | function te(t,e){return Zt(t)===Zt(e)}
  function ee (line 16) | function ee(t,e){if(!Array.isArray(e))return te(e,t)?0:-1;for(var n=0,r=...
  function ne (line 16) | function ne(t,e,n){mt();try{if(e){var r=e;while(r=r.$parent){var o=r.$op...
  function re (line 16) | function re(t,e,n,r,o){var i;try{i=n?t.apply(e,n):t.call(e),i&&!i._isVue...
  function oe (line 16) | function oe(t,e,n){if(B.errorHandler)try{return B.errorHandler.call(null...
  function ie (line 16) | function ie(t,e,n){if(!G&&!Q||"undefined"===typeof console)throw t;conso...
  function fe (line 16) | function fe(){ue=!1;var t=ce.slice(0);ce.length=0;for(var e=0;e<t.length...
  function ve (line 16) | function ve(t,e){var n;if(ce.push((function(){if(t)try{t.call(e)}catch(A...
  function me (line 16) | function me(t){ge(t,ye),ye.clear()}
  function ge (line 16) | function ge(t,e){var n,r,o=Array.isArray(t);if(!(!o&&!c(t)||Object.isFro...
  function be (line 16) | function be(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(...
  function we (line 16) | function we(t,e,n,o,a,s){var c,u,f,l;for(c in t)u=t[c],f=e[c],l=_e(c),r(...
  function Ce (line 16) | function Ce(t,e,n){var a;t instanceof _t&&(t=t.data.hook||(t.data.hook={...
  function xe (line 16) | function xe(t,e,n){var i=e.options.props;if(!r(i)){var a={},s=t.attrs,c=...
  function Ae (line 16) | function Ae(t,e,n,r,i){if(o(e)){if(b(e,n))return t[n]=e[n],i||delete e[n...
  function $e (line 16) | function $e(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return ...
  function ke (line 16) | function ke(t){return s(t)?[Ct(t)]:Array.isArray(t)?Se(t):void 0}
  function Oe (line 16) | function Oe(t){return o(t)&&o(t.text)&&a(t.isComment)}
  function Se (line 16) | function Se(t,e){var n,a,c,u,f=[];for(n=0;n<t.length;n++)a=t[n],r(a)||"b...
  function Ee (line 16) | function Ee(t){var e=t.$options.provide;e&&(t._provided="function"===typ...
  function Te (line 16) | function Te(t){var e=je(t.$options.inject,t);e&&(Et(!1),Object.keys(e).f...
  function je (line 16) | function je(t,e){if(t){for(var n=Object.create(null),r=pt?Reflect.ownKey...
  function Re (line 16) | function Re(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r...
  function Pe (line 16) | function Pe(t){return t.isComment&&!t.asyncFactory||" "===t.text}
  function Ie (line 16) | function Ie(t){return t.isComment&&t.asyncFactory}
  function Le (line 16) | function Le(t,e,r){var o,i=Object.keys(e).length>0,a=t?!!t.$stable:!i,s=...
  function Ne (line 16) | function Ne(t,e,n){var r=function(){var t=arguments.length?n.apply(null,...
  function De (line 16) | function De(t,e){return function(){return t[e]}}
  function Me (line 16) | function Me(t,e){var n,r,i,a,s;if(Array.isArray(t)||"string"===typeof t)...
  function Fe (line 16) | function Fe(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&(n=j(j({...
  function Ue (line 16) | function Ue(t){return Jt(this.$options,"filters",t,!0)||L}
  function Ve (line 16) | function Ve(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}
  function Be (line 16) | function Be(t,e,n,r,o){var i=B.keyCodes[e]||n;return o&&r&&!B.keyCodes[e...
  function He (line 16) | function He(t,e,n,r,o){if(n)if(c(n)){var i;Array.isArray(n)&&(n=R(n));va...
  function qe (line 16) | function qe(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];...
  function ze (line 16) | function ze(t,e,n){return We(t,"__once__"+e+(n?"_"+n:""),!0),t}
  function We (line 16) | function We(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&...
  function Ke (line 16) | function Ke(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}
  function Xe (line 16) | function Xe(t,e){if(e)if(f(e)){var n=t.on=t.on?j({},t.on):{};for(var r i...
  function Je (line 16) | function Je(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var i...
  function Ge (line 16) | function Ge(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"===type...
  function Qe (line 16) | function Qe(t,e){return"string"===typeof t?e+t:t}
  function Ye (line 16) | function Ye(t){t._o=ze,t._n=v,t._s=h,t._l=Me,t._t=Fe,t._q=N,t._i=D,t._m=...
  function Ze (line 16) | function Ze(t,e,r,o,a){var s,c=this,u=a.options;b(o,"_uid")?(s=Object.cr...
  function tn (line 16) | function tn(t,e,r,i,a){var s=t.options,c={},u=s.props;if(o(u))for(var f ...
  function en (line 16) | function en(t,e,n,r,o){var i=xt(t);return i.fnContext=n,i.fnOptions=r,e....
  function nn (line 16) | function nn(t,e){for(var n in e)t[x(n)]=e[n]}
  function an (line 16) | function an(t,e,n,a,s){if(!r(t)){var u=n.$options._base;if(c(t)&&(t=u.ex...
  function sn (line 16) | function sn(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.dat...
  function cn (line 16) | function cn(t){for(var e=t.hook||(t.hook={}),n=0;n<on.length;n++){var r=...
  function un (line 16) | function un(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}
  function fn (line 16) | function fn(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model...
  function dn (line 16) | function dn(t,e,n,r,o,a){return(Array.isArray(n)||s(n))&&(o=r,r=n,n=void...
  function hn (line 16) | function hn(t,e,n,r,i){if(o(n)&&o(n.__ob__))return wt();if(o(n)&&o(n.is)...
  function vn (line 16) | function vn(t,e,n){if(t.ns=e,"foreignObject"===t.tag&&(e=void 0,n=!0),o(...
  function yn (line 16) | function yn(t){c(t.style)&&me(t.style),c(t.class)&&me(t.class)}
  function mn (line 16) | function mn(t){t._vnode=null,t._staticTrees=null;var e=t.$options,r=t.$v...
  function bn (line 16) | function bn(t){Ye(t.prototype),t.prototype.$nextTick=function(t){return ...
  function wn (line 16) | function wn(t,e){return(t.__esModule||pt&&"Module"===t[Symbol.toStringTa...
  function Cn (line 16) | function Cn(t,e,n,r,o){var i=wt();return i.asyncFactory=t,i.asyncMeta={d...
  function xn (line 16) | function xn(t,e){if(i(t.error)&&o(t.errorComp))return t.errorComp;if(o(t...
  function An (line 16) | function An(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e...
  function $n (line 16) | function $n(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t....
  function kn (line 16) | function kn(t,e){gn.$on(t,e)}
  function On (line 16) | function On(t,e){gn.$off(t,e)}
  function Sn (line 16) | function Sn(t,e){var n=gn;return function r(){var o=e.apply(null,argumen...
  function En (line 16) | function En(t,e,n){gn=t,we(e,n||{},kn,On,Sn,t),gn=void 0}
  function Tn (line 16) | function Tn(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;i...
  function Rn (line 16) | function Rn(t){var e=jn;return jn=t,function(){jn=e}}
  function Pn (line 16) | function Pn(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){while(n.$o...
  function In (line 16) | function In(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n....
  function Ln (line 16) | function Ln(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.r...
  function Nn (line 16) | function Nn(t,e,r,o,i){var a=o.data.scopedSlots,s=t.$scopedSlots,c=!!(a&...
  function Dn (line 16) | function Dn(t){while(t&&(t=t.$parent))if(t._inactive)return!0;return!1}
  function Mn (line 16) | function Mn(t,e){if(e){if(t._directInactive=!1,Dn(t))return}else if(t._d...
  function Fn (line 16) | function Fn(t,e){if((!e||(t._directInactive=!0,!Dn(t)))&&!t._inactive){t...
  function Un (line 16) | function Un(t,e){mt();var n=t.$options[e],r=e+" hook";if(n)for(var o=0,i...
  function Kn (line 16) | function Kn(){Wn=Vn.length=Bn.length=0,Hn={},qn=zn=!1}
  function Qn (line 16) | function Qn(){var t,e;for(Xn=Jn(),zn=!0,Vn.sort((function(t,e){return t....
  function Yn (line 16) | function Yn(t){var e=t.length;while(e--){var n=t[e],r=n.vm;r._watcher===...
  function Zn (line 16) | function Zn(t){t._inactive=!1,Bn.push(t)}
  function tr (line 16) | function tr(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Mn(t[e],!0)}
  function er (line 16) | function er(t){var e=t.id;if(null==Hn[e]){if(Hn[e]=!0,zn){var n=Vn.lengt...
  function ir (line 16) | function ir(t,e,n){or.get=function(){return this[e][n]},or.set=function(...
  function ar (line 16) | function ar(t){t._watchers=[];var e=t.$options;e.props&&sr(t,e.props),e....
  function sr (line 16) | function sr(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$optio...
  function cr (line 16) | function cr(t){var e=t.$options.data;e=t._data="function"===typeof e?ur(...
  function ur (line 16) | function ur(t,e){mt();try{return t.call(e,e)}catch(Aa){return ne(Aa,e,"d...
  function lr (line 16) | function lr(t,e){var n=t._computedWatchers=Object.create(null),r=ct();fo...
  function pr (line 16) | function pr(t,e,n){var r=!ct();"function"===typeof n?(or.get=r?dr(e):hr(...
  function dr (line 16) | function dr(t){return function(){var e=this._computedWatchers&&this._com...
  function hr (line 16) | function hr(t){return function(){return t.call(this,this)}}
  function vr (line 16) | function vr(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeo...
  function yr (line 16) | function yr(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var ...
  function mr (line 16) | function mr(t,e,n,r){return f(n)&&(r=n,n=n.handler),"string"===typeof n&...
  function gr (line 16) | function gr(t){var e={get:function(){return this._data}},n={get:function...
  function br (line 16) | function br(t){t.prototype._init=function(t){var e=this;e._uid=_r++,e._i...
  function wr (line 16) | function wr(t,e){var n=t.$options=Object.create(t.constructor.options),r...
  function Cr (line 16) | function Cr(t){var e=t.options;if(t.super){var n=Cr(t.super),r=t.superOp...
  function xr (line 16) | function xr(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!=...
  function Ar (line 16) | function Ar(t){this._init(t)}
  function $r (line 16) | function $r(t){t.use=function(t){var e=this._installedPlugins||(this._in...
  function kr (line 16) | function kr(t){t.mixin=function(t){return this.options=Xt(this.options,t...
  function Or (line 16) | function Or(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r...
  function Sr (line 16) | function Sr(t){var e=t.options.props;for(var n in e)ir(t.prototype,"_pro...
  function Er (line 16) | function Er(t){var e=t.options.computed;for(var n in e)pr(t.prototype,n,...
  function Tr (line 16) | function Tr(t){U.forEach((function(e){t[e]=function(t,n){return n?("comp...
  function jr (line 16) | function jr(t){return t&&(t.Ctor.options.name||t.tag)}
  function Rr (line 16) | function Rr(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===type...
  function Pr (line 16) | function Pr(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a...
  function Ir (line 16) | function Ir(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstanc...
  function Mr (line 16) | function Mr(t){var e={get:function(){return B}};Object.defineProperty(t,...
  function Gr (line 16) | function Gr(t){var e=t.data,n=t,r=t;while(o(r.componentInstance))r=r.com...
  function Qr (line 16) | function Qr(t,e){return{staticClass:Zr(t.staticClass,e.staticClass),clas...
  function Yr (line 16) | function Yr(t,e){return o(t)||o(e)?Zr(t,to(e)):""}
  function Zr (line 16) | function Zr(t,e){return t?e?t+" "+e:t:e||""}
  function to (line 16) | function to(t){return Array.isArray(t)?eo(t):c(t)?no(t):"string"===typeo...
  function eo (line 16) | function eo(t){for(var e,n="",r=0,i=t.length;r<i;r++)o(e=to(t[r]))&&""!=...
  function no (line 16) | function no(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}
  function so (line 16) | function so(t){return io(t)?"svg":"math"===t?"math":void 0}
  function uo (line 16) | function uo(t){if(!G)return!0;if(ao(t))return!1;if(t=t.toLowerCase(),nul...
  function lo (line 16) | function lo(t){if("string"===typeof t){var e=document.querySelector(t);r...
  function po (line 16) | function po(t,e){var n=document.createElement(t);return"select"!==t||e.d...
  function ho (line 16) | function ho(t,e){return document.createElementNS(ro[t],e)}
  function vo (line 16) | function vo(t){return document.createTextNode(t)}
  function yo (line 16) | function yo(t){return document.createComment(t)}
  function mo (line 16) | function mo(t,e,n){t.insertBefore(e,n)}
  function go (line 16) | function go(t,e){t.removeChild(e)}
  function _o (line 16) | function _o(t,e){t.appendChild(e)}
  function bo (line 16) | function bo(t){return t.parentNode}
  function wo (line 16) | function wo(t){return t.nextSibling}
  function Co (line 16) | function Co(t){return t.tagName}
  function xo (line 16) | function xo(t,e){t.textContent=e}
  function Ao (line 16) | function Ao(t,e){t.setAttribute(e,"")}
  function Oo (line 16) | function Oo(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.component...
  function To (line 16) | function To(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&...
  function jo (line 16) | function jo(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n....
  function Ro (line 16) | function Ro(t,e,n){var r,i,a={};for(r=e;r<=n;++r)i=t[r].key,o(i)&&(a[i]=...
  function Po (line 16) | function Po(t){var e,n,a={},c=t.modules,u=t.nodeOps;for(e=0;e<Eo.length;...
  function Lo (line 16) | function Lo(t,e){(t.data.directives||e.data.directives)&&No(t,e)}
  function No (line 16) | function No(t,e){var n,r,o,i=t===So,a=e===So,s=Mo(t.data.directives,t.co...
  function Mo (line 16) | function Mo(t,e){var n,r,o=Object.create(null);if(!t)return o;for(n=0;n<...
  function Fo (line 16) | function Fo(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{})...
  function Uo (line 16) | function Uo(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}c...
  function Bo (line 16) | function Bo(t,e){var n=e.componentOptions;if((!o(n)||!1!==n.Ctor.options...
  function Ho (line 16) | function Ho(t,e,n,r){r||t.tagName.indexOf("-")>-1?qo(t,e,n):zr(e)?Jr(n)?...
  function qo (line 16) | function qo(t,e,n){if(Jr(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTA...
  function Wo (line 16) | function Wo(t,e){var n=e.elm,i=e.data,a=t.data;if(!(r(i.staticClass)&&r(...
  function Qo (line 16) | function Qo(t){if(o(t[Jo])){var e=tt?"change":"input";t[e]=[].concat(t[J...
  function Yo (line 16) | function Yo(t,e,n){var r=Ko;return function o(){var i=e.apply(null,argum...
  function ti (line 16) | function ti(t,e,n,r){if(Zo){var o=Xn,i=e;e=i._wrapper=function(t){if(t.t...
  function ei (line 16) | function ei(t,e,n,r){(r||Ko).removeEventListener(t,e._wrapper||e,n)}
  function ni (line 16) | function ni(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=...
  function ii (line 16) | function ii(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,a=...
  function ai (line 16) | function ai(t,e){return!t.composing&&("OPTION"===t.tagName||si(t,e)||ci(...
  function si (line 16) | function si(t,e){var n=!0;try{n=document.activeElement!==t}catch(Aa){}re...
  function ci (line 16) | function ci(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.number)retu...
  function li (line 16) | function li(t){var e=pi(t.style);return t.staticStyle?j(t.staticStyle,e):e}
  function pi (line 16) | function pi(t){return Array.isArray(t)?R(t):"string"===typeof t?fi(t):t}
  function di (line 16) | function di(t,e){var n,r={};if(e){var o=t;while(o.componentInstance)o=o....
  function bi (line 16) | function bi(t,e){var n=e.data,i=t.data;if(!(r(n.staticStyle)&&r(n.style)...
  function xi (line 16) | function xi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.s...
  function Ai (line 16) | function Ai(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.s...
  function $i (line 16) | function $i(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&...
  function Li (line 16) | function Li(t){Ii((function(){Ii(t)}))}
  function Ni (line 16) | function Ni(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n...
  function Di (line 16) | function Di(t,e){t._transitionClasses&&g(t._transitionClasses,e),Ai(t,e)}
  function Mi (line 16) | function Mi(t,e,n){var r=Ui(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!...
  function Ui (line 16) | function Ui(t,e){var n,r=window.getComputedStyle(t),o=(r[Ti+"Delay"]||""...
  function Vi (line 16) | function Vi(t,e){while(t.length<e.length)t=t.concat(t);return Math.max.a...
  function Bi (line 16) | function Bi(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}
  function Hi (line 16) | function Hi(t,e){var n=t.elm;o(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._...
  function qi (line 16) | function qi(t,e){var n=t.elm;o(n._enterCb)&&(n._enterCb.cancelled=!0,n._...
  function zi (line 16) | function zi(t){return"number"===typeof t&&!isNaN(t)}
  function Wi (line 16) | function Wi(t){if(r(t))return!1;var e=t.fns;return o(e)?Wi(Array.isArray...
  function Ki (line 16) | function Ki(t,e){!0!==e.data.show&&Hi(e)}
  function Zi (line 16) | function Zi(t,e,n){ta(t,e,n),(tt||nt)&&setTimeout((function(){ta(t,e,n)}...
  function ta (line 16) | function ta(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){f...
  function ea (line 16) | function ea(t,e){return e.every((function(e){return!N(e,t)}))}
  function na (line 16) | function na(t){return"_value"in t?t._value:t.value}
  function ra (line 16) | function ra(t){t.target.composing=!0}
  function oa (line 16) | function oa(t){t.target.composing&&(t.target.composing=!1,ia(t.target,"i...
  function ia (line 16) | function ia(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,...
  function aa (line 16) | function aa(t){return!t.componentInstance||t.data&&t.data.transition?t:a...
  function fa (line 16) | function fa(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abst...
  function la (line 16) | function la(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];...
  function pa (line 16) | function pa(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{...
  function da (line 16) | function da(t){while(t=t.parent)if(t.data.transition)return!0}
  function ha (line 16) | function ha(t,e){return e.key===t.key&&e.tag===t.tag}
  function ba (line 16) | function ba(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._ent...
  function wa (line 16) | function wa(t){t.data.newPos=t.elm.getBoundingClientRect()}
  function Ca (line 16) | function Ca(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-...
  function r (line 21) | function r(t,e){0}
  function o (line 21) | function o(t,e){for(var n in e)t[n]=e[n];return t}
  function u (line 21) | function u(t){try{return decodeURIComponent(t)}catch(e){0}return t}
  function f (line 21) | function f(t,e,n){void 0===e&&(e={});var r,o=n||p;try{r=o(t||"")}catch(s...
  function p (line 21) | function p(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t?(t.sp...
  function d (line 21) | function d(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void...
  function v (line 21) | function v(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{...
  function y (line 21) | function y(t){if(Array.isArray(t))return t.map(y);if(t&&"object"===typeo...
  function g (line 21) | function g(t){var e=[];while(t)e.unshift(t),t=t.parent;return e}
  function _ (line 21) | function _(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;v...
  function b (line 21) | function b(t,e,n){return e===m?t===e:!!e&&(t.path&&e.path?t.path.replace...
  function w (line 21) | function w(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t...
  function C (line 21) | function C(t,e){return 0===t.path.replace(h,"/").indexOf(e.path.replace(...
  function x (line 21) | function x(t,e){for(var n in e)if(!(n in t))return!1;return!0}
  function A (line 21) | function A(t){for(var e=0;e<t.matched.length;e++){var n=t.matched[e];for...
  function k (line 21) | function k(t,e,n,r){var i=e.props=O(n,r);if(i){i=e.props=o({},i);var a=e...
  function O (line 21) | function O(t,e){switch(typeof e){case"undefined":return;case"object":ret...
  function S (line 21) | function S(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"=...
  function E (line 21) | function E(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.sli...
  function T (line 21) | function T(t){return t.replace(/\/\//g,"/")}
  function M (line 21) | function M(t,e){var n,r=[],o=0,i=0,a="",s=e&&e.delimiter||"/";while(null...
  function F (line 21) | function F(t,e){return B(M(t,e),e)}
  function U (line 21) | function U(t){return encodeURI(t).replace(/[\/?#]/g,(function(t){return"...
  function V (line 21) | function V(t){return encodeURI(t).replace(/[?#]/g,(function(t){return"%"...
  function B (line 21) | function B(t,e){for(var n=new Array(t.length),r=0;r<t.length;r++)"object...
  function H (line 21) | function H(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}
  function q (line 21) | function q(t){return t.replace(/([=!:$\/()])/g,"\\$1")}
  function z (line 21) | function z(t,e){return t.keys=e,t}
  function W (line 21) | function W(t){return t&&t.sensitive?"":"i"}
  function K (line 21) | function K(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.l...
  function X (line 21) | function X(t,e,n){for(var r=[],o=0;o<t.length;o++)r.push(Q(t[o],e,n).sou...
  function J (line 21) | function J(t,e,n){return G(M(t,n),e,n)}
  function G (line 21) | function G(t,e,n){j(e)||(n=e||n,e=[]),n=n||{};for(var r=n.strict,o=!1!==...
  function Q (line 21) | function Q(t,e,n){return j(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp...
  function Z (line 21) | function Z(t,e,n){e=e||{};try{var r=Y[t]||(Y[t]=R.compile(t));return"str...
  function tt (line 21) | function tt(t,e,n,r){var i="string"===typeof t?{path:t}:t;if(i._normaliz...
  function at (line 21) | function at(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defa...
  function st (line 21) | function st(t){if(t)for(var e,n=0;n<t.length;n++){if(e=t[n],"a"===e.tag)...
  function ct (line 21) | function ct(t){if(!ct.installed||et!==t){ct.installed=!0,et=t;var e=func...
  function ft (line 21) | function ft(t,e,n,r,o){var i=e||[],a=n||Object.create(null),s=r||Object....
  function lt (line 21) | function lt(t,e,n,r,o,i){var a=r.path,s=r.name;var c=r.pathToRegexpOptio...
  function pt (line 21) | function pt(t,e){var n=R(t,[],e);return n}
  function dt (line 21) | function dt(t,e,n){return n||(t=t.replace(/\/$/,"")),"/"===t[0]||null==e...
  function ht (line 21) | function ht(t,e){var n=ft(t),r=n.pathList,o=n.pathMap,i=n.nameMap;functi...
  function vt (line 21) | function vt(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(va...
  function yt (line 21) | function yt(t,e){return S(t,e.parent?e.parent.path:"/",!0)}
  function gt (line 21) | function gt(){return mt.now().toFixed(3)}
  function bt (line 21) | function bt(){return _t}
  function wt (line 21) | function wt(t){return _t=t}
  function xt (line 21) | function xt(){"scrollRestoration"in window.history&&(window.history.scro...
  function At (line 21) | function At(t,e,n,r){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$...
  function $t (line 21) | function $t(){var t=bt();t&&(Ct[t]={x:window.pageXOffset,y:window.pageYO...
  function kt (line 21) | function kt(t){$t(),t.state&&t.state.key&&wt(t.state.key)}
  function Ot (line 21) | function Ot(){var t=bt();if(t)return Ct[t]}
  function St (line 21) | function St(t,e){var n=document.documentElement,r=n.getBoundingClientRec...
  function Et (line 21) | function Et(t){return Rt(t.x)||Rt(t.y)}
  function Tt (line 21) | function Tt(t){return{x:Rt(t.x)?t.x:window.pageXOffset,y:Rt(t.y)?t.y:win...
  function jt (line 21) | function jt(t){return{x:Rt(t.x)?t.x:0,y:Rt(t.y)?t.y:0}}
  function Rt (line 21) | function Rt(t){return"number"===typeof t}
  function It (line 21) | function It(t,e){var n="object"===typeof t;if(n&&"string"===typeof t.sel...
  function Nt (line 21) | function Nt(t,e){$t();var n=window.history;try{if(e){var r=o({},n.state)...
  function Dt (line 21) | function Dt(t){Nt(t,!0)}
  function Mt (line 21) | function Mt(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(functi...
  function Ut (line 21) | function Ut(t,e){return qt(t,e,Ft.redirected,'Redirected when going from...
  function Vt (line 21) | function Vt(t,e){var n=qt(t,e,Ft.duplicated,'Avoided redundant navigatio...
  function Bt (line 21) | function Bt(t,e){return qt(t,e,Ft.cancelled,'Navigation cancelled from "...
  function Ht (line 21) | function Ht(t,e){return qt(t,e,Ft.aborted,'Navigation aborted from "'+t....
  function qt (line 21) | function qt(t,e,n,r){var o=new Error(r);return o._isRouter=!0,o.from=t,o...
  function Wt (line 21) | function Wt(t){if("string"===typeof t)return t;if("path"in t)return t.pa...
  function Kt (line 21) | function Kt(t){return Object.prototype.toString.call(t).indexOf("Error")...
  function Xt (line 21) | function Xt(t,e){return Kt(t)&&t._isRouter&&(null==e||t.type===e)}
  function Jt (line 21) | function Jt(t){return function(e,n,r){var o=!1,i=0,a=null;Gt(t,(function...
  function Gt (line 21) | function Gt(t,e){return Qt(t.map((function(t){return Object.keys(t.compo...
  function Qt (line 21) | function Qt(t){return Array.prototype.concat.apply([],t)}
  function Zt (line 21) | function Zt(t){return t.__esModule||Yt&&"Module"===t[Symbol.toStringTag]}
  function te (line 21) | function te(t){var e=!1;return function(){var n=[],r=arguments.length;wh...
  function ne (line 21) | function ne(t){if(!t)if(ut){var e=document.querySelector("base");t=e&&e....
  function re (line 21) | function re(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r;n++)if(...
  function oe (line 21) | function oe(t,e,n,r){var o=Gt(t,(function(t,r,o,i){var a=ie(t,e);if(a)re...
  function ie (line 21) | function ie(t,e){return"function"!==typeof t&&(t=et.extend(t)),t.options...
  function ae (line 21) | function ae(t){return oe(t,"beforeRouteLeave",ce,!0)}
  function se (line 21) | function se(t){return oe(t,"beforeRouteUpdate",ce)}
  function ce (line 21) | function ce(t,e){if(e)return function(){return t.apply(e,arguments)}}
  function ue (line 21) | function ue(t){return oe(t,"beforeRouteEnter",(function(t,e,n,r){return ...
  function fe (line 21) | function fe(t,e,n){return function(r,o,i){return t(r,o,(function(t){"fun...
  function e (line 21) | function e(e,n){t.call(this,e,n),this._startLocation=pe(this.base)}
  function pe (line 21) | function pe(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLo...
  function e (line 21) | function e(e,n,r){t.call(this,e,n),r&&he(this.base)||ve()}
  function he (line 21) | function he(t){var e=pe(t);if(!/^\/#/.test(e))return window.location.rep...
  function ve (line 21) | function ve(){var t=ye();return"/"===t.charAt(0)||(_e("/"+t),!1)}
  function ye (line 21) | function ye(){var t=window.location.href,e=t.indexOf("#");return e<0?"":...
  function me (line 21) | function me(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slic...
  function ge (line 21) | function ge(t){Lt?Nt(me(t)):window.location.hash=t}
  function _e (line 21) | function _e(t){Lt?Dt(me(t)):window.location.replace(me(t))}
  function e (line 21) | function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}
  function xe (line 21) | function xe(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t....
  function Ae (line 21) | function Ae(t,e,n){var r="hash"===n?"#"+e:e;return t?T(t+"/"+r):r}

FILE: docs/js/documentation-topic.f62098b6.js
  function a (line 10) | function a(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>...
  function s (line 10) | function s(){s.init||(s.init=!0,i=-1!==a())}
  function o (line 10) | function o(e){e.component("resize-observer",r),e.component("ResizeObserv...
  method reset (line 10) | reset(){this.state.codeColors=null}
  method updateCodeColors (line 10) | updateCodeColors(e){const t=e=>e?`rgba(${e.red}, ${e.green}, ${e.blue}, ...
  function l (line 10) | function l(e){const t=e.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d+\.?\...
  function c (line 10) | function c(e){const{r:t,g:n,b:a}=l(e);return.2126*t+.7152*n+.0722*a}
  function u (line 10) | function u(e,t){const n=Math.round(o*t),a=l(e),{a:i}=a,[s,c,u]=[a.r,a.g,...
  function d (line 10) | function d(e,t){return u(e,t)}
    method constructor (line 10) | constructor(e){super("invalid pointer "+e),this.pointer=e}
  function h (line 10) | function h(e,t){return u(e,-1*t)}
  method data (line 10) | data(){return{codeThemeState:s["a"].state}}
  method codeStyle (line 10) | codeStyle(){const{codeColors:e}=this.codeThemeState;return e?{"--text":e...
  method internalParamNameColor (line 10) | internalParamNameColor(){const{background:e,text:t}=this.codeThemeState....
  function a (line 10) | function a(e){return a="function"===typeof Symbol&&"symbol"===typeof Sym...
  function i (line 10) | function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a ...
  function s (line 10) | function s(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.en...
  function r (line 10) | function r(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}
  function o (line 10) | function o(e){return l(e)||c(e)||u()}
  function l (line 10) | function l(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e...
  function c (line 10) | function c(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Ob...
  function u (line 10) | function u(){throw new TypeError("Invalid attempt to spread non-iterable...
  function d (line 10) | function d(e){var t;return t="function"===typeof e?{callback:e}:e,t}
    method constructor (line 10) | constructor(e){super("invalid pointer "+e),this.pointer=e}
  function h (line 10) | function h(e,t){var n,a,i,s=arguments.length>2&&void 0!==arguments[2]?ar...
  function p (line 10) | function p(e,t){if(e===t)return!0;if("object"===a(e)){for(var n in e)if(...
  function e (line 10) | function e(t,n,a){i(this,e),this.el=t,this.observer=null,this.frozen=!1,...
  function g (line 10) | function g(e,t,n){var a=t.value;if(a)if("undefined"===typeof Intersectio...
  function m (line 10) | function m(e,t,n){var a=t.value,i=t.oldValue;if(!p(a,i)){var s=e._vue_vi...
  function y (line 10) | function y(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delet...
  function b (line 10) | function b(e){e.directive("observe-visibility",v)}
  function c (line 10) | function c(e){return c="function"===typeof Symbol&&"symbol"===typeof Sym...
  function u (line 10) | function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enume...
  function d (line 10) | function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){va...
    method constructor (line 10) | constructor(e){super("invalid pointer "+e),this.pointer=e}
  function h (line 10) | function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[...
  function p (line 10) | function p(e,t){if(e){if("string"===typeof e)return f(e,t);var n=Object....
  function f (line 10) | function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Ar...
  function g (line 10) | function g(e){if("undefined"===typeof Symbol||null==e[Symbol.iterator]){...
  function y (line 10) | function y(){return this.items.length&&"object"!==c(this.items[0])}
  function C (line 10) | function C(e,t,n,a,i,s,r,o,l,c){"boolean"!==typeof r&&(l=o,o=r,r=!1);con...
  function U (line 10) | function U(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function G (line 10) | function G(e,t){e.component("".concat(t,"recycle-scroller"),D),e.compone...
  function r (line 10) | function r(e){return e.replace(/~[0,1]/g,e=>({"~0":"~","~1":"/"}[e]||e))}
  class d (line 10) | class d extends Error{constructor(e){super("invalid pointer "+e),this.po...
    method constructor (line 10) | constructor(e){super("invalid pointer "+e),this.pointer=e}
  function h (line 10) | function h(e,{length:t}){if(e===c)return t||0;const n=parseInt(e,l);if(!...
  function f (line 10) | function f(e,t){let n=e;for(const{node:a}of p(e,t,{strict:!0}))n=a;retur...
  function g (line 10) | function g(e,t,n){let a=null,i=e,s=null;for(const{node:o,token:l}of p(e,...
  function m (line 10) | function m(e,t){let n=null,a=e,i=null;for(const{node:r,token:o}of p(e,t)...
  function y (line 10) | function y(e,t,n){return m(e,t),g(e,t,n),e}
  function v (line 10) | function v(e,t,n){const a=f(e,t);return m(e,t),g(e,n,a),e}
  function b (line 10) | function b(e,t,n){return g(e,n,f(e,t)),e}
  function T (line 10) | function T(e,t,n){function a(e,t){const n=typeof e,i=typeof t;if(n!==i)r...
  function C (line 10) | function C(e,{op:t,...n}){const a=_[t];if(!a)throw new Error("unknown op...
  function S (line 10) | function S(e,t){return t.reduce(C,e)}
  method default (line 10) | default(){return{setPreferredLanguage(){}}}
  method chooseLanguage (line 10) | chooseLanguage(e){this.isTargetIDE||this.store.setPreferredLanguage(e.ke...
  method normalizePath (line 10) | normalizePath(e){return e.startsWith("/")?e:"/"+e}
  method default (line 10) | default(){return{addOnThisPageSection(){}}}
  method created (line 10) | created(){this.store.addOnThisPageSection({anchor:this.anchor,title:this...
  method render (line 10) | render(e){const{kind:t,tokens:n}=this;return e("span",{class:["token-"+t...
  method render (line 10) | render(e){const{_v:t=(t=>e("span",t)),text:n}=this;return t(n)}
  method render (line 10) | render(e){return e("span",{class:"token-"+this.kind},this.text)}
  method default (line 10) | default(){return{}}
  method render (line 10) | render(e){const t="type-identifier-link",n=this.references[this.identifi...
  method render (line 10) | render(e){const{kind:t,text:n,tokens:a}=this;switch(t){case ha.text:{con...
  method classFor (line 10) | classFor({kind:e}){switch(e){case ba.externalParam:case ba.identifier:re...
  method componentFor (line 10) | componentFor(e){return/^\s+$/.test(e.text)?"span":It["a"]}
  function qa (line 10) | function qa(e){if(!e)return!1;const t=window.getComputedStyle(e.$el||e),...
  method data (line 10) | data(){return{multipleLinesClass:Ka}}
  method toVersionRange (line 10) | toVersionRange({platform:e,versions:t}){return`${e} ${t[0]} – ${e} ${t[1...
  method getOptionsForDiffAvailability (line 10) | getOptionsForDiffAvailability(e={}){return this.getOptionsForDiffAvailab...
  method getOptionsForDiffAvailabilities (line 10) | getOptionsForDiffAvailabilities(e=[]){const t=e.reduce((e,t={})=>Object....
  method changesClassesFor (line 10) | changesClassesFor(e,t){const n=this.changeFor(e,t);return this.getChange...
  method changeFor (line 10) | changeFor(e,t){const{change:n}=(t||{})[e]||{};return n}
  method splitOptionsPerPlatform (line 10) | splitOptionsPerPlatform(e){return e.reduce((e,t)=>{const n=t.platform===...
  method getChangeName (line 10) | getChangeName(e){return za[e]}
  method availableOptions (line 10) | availableOptions({diffAvailability:e={},toOptionValue:t}){return new Set...
  method data (line 10) | data(){return{state:this.store.state}}
  method linkProps (line 10) | linkProps({topic:e}){const t=Object(q["b"])(e.url,this.$route.query);ret...
  method titleTag (line 10) | titleTag({topic:e}){if(e.titleStyle===Ga.title)return e.ideTitle?"span":...
  method change (line 10) | change({topic:{identifier:e},state:{apiChanges:t}}){return this.changeFo...
  method default (line 10) | default(){return{}}
  method default (line 10) | default(){return"Topics"}
  method default (line 10) | default(){return"topics"}
  method sectionsWithTopics (line 10) | sectionsWithTopics(){return this.sections.map(e=>({...e,topics:e.identif...
  function _i (line 10) | function _i(e){const t=e.getElementsByClassName("token-identifier");if(t...
  function Ci (line 10) | function Ci(e,t){const n=e.innerHTML;try{switch(t){case O["a"].objective...
  method data (line 10) | data(){return{hasMultipleLines:!1,multipleLinesClass:Ka}}
  method propsFor (line 10) | propsFor(e){return{kind:e.kind,identifier:e.identifier,text:e.text,token...
  method mounted (line 10) | async mounted(){qa(this.$refs.declarationGroup)&&(this.hasMultipleLines=...
  method caption (line 10) | caption(){return this.declaration.platforms.join(", ")}
  method hasPlatformVariants (line 10) | hasPlatformVariants(){return this.declarations.length>1}
  method hasModifiedChanges (line 10) | hasModifiedChanges({declarationChanges:e}){if(!e||!e.declaration)return!...
  method englishTypes (line 10) | englishTypes(){return this.types.map(({arrayMode:e,baseType:t="*"})=>e?"...
  method typeOutput (line 10) | typeOutput(){return this.englishTypes.length>2?[this.englishTypes.slice(...
  method pluralizeKeyType (line 10) | pluralizeKeyType(e){switch(e){case"dictionary":return"dictionaries";case...
  method isTitle (line 10) | isTitle(){return"title"===this.details.titleStyle&&this.details.ideTitle}
  method isSymbol (line 10) | isSymbol(){return"symbol"===this.details.titleStyle&&this.details.ideTitle}
  method default (line 10) | default(){return{addOnThisPageSection(){}}}
  method addOnThisPageSections (line 10) | addOnThisPageSections(){const{isTopLevelHeading:e,store:t}=this;this.for...
  method isTopLevelHeading (line 10) | isTopLevelHeading(e){const{level:t,type:n}=e;return n===Bt.BlockType.hea...
  method created (line 10) | created(){this.addOnThisPageSections()}
  method getProps (line 10) | getProps(e,t={}){return{...e,changes:t}}
  method changedClasses (line 10) | changedClasses(e){const{changes:t}=this,{change:n}=t[e]||{};return{["cha...
  method render (line 10) | render(e){const{value:t,changes:n={},wrapChanges:a,renderSingleChange:i}...
  method shouldRender (line 10) | shouldRender(e){return Object.prototype.hasOwnProperty.call(this.attribu...
  method getValues (line 10) | getValues(e){return Array.isArray(e)?e:e.values}
  method changeValues (line 10) | changeValues({change:e,changes:t}){return e===Ra.modified&&"string"!==ty...
  method span (line 10) | span(){return{large:9,medium:9,small:12}}
  method componentFor (line 10) | componentFor(e){return{[Vr.content]:gs,[Vr.declarations]:Ji,[Vr.details]...
  method propsFor (line 10) | propsFor(e){const{conformance:t}=this,{bodyContentType:n,content:a,decla...
  method data (line 10) | data(){return{state:this.store.state}}
  method classes (line 10) | classes({changeType:e,multipleLinesClass:t,hasMultipleLinesAfterAPIChang...
  method hasAvailabilityConstraints (line 10) | hasAvailabilityConstraints(){return this.symbols.some(e=>!!(e.conformanc...
  method changes (line 10) | changes({identifier:e,state:{apiChanges:t}}){return(t||{})[e]||{}}
  method changeType (line 10) | changeType({changes:e,type:t}){const n=eo[t];if(e.change!==Ra.modified)r...
  method shouldDisplayInline (line 10) | shouldDisplayInline(){const{hasAvailabilityConstraints:e,symbols:t}=this...
  method default (line 10) | default(){return{}}
  method sectionsWithSymbols (line 10) | sectionsWithSymbols(){return this.sections.map(e=>({...e,symbols:e.ident...
  method ariaLabel (line 10) | ariaLabel(){const{deprecatedAt:e,description:t,text:n}=this;return[n].co...
  method description (line 10) | description(){const{deprecatedAt:e,introducedAt:t,platformName:n}=this;r...
  method text (line 10) | text(){const{deprecatedAt:e,introducedAt:t,platformName:n}=this;return e...
  method data (line 10) | data(){return{state:this.store.state}}
  method changeFor (line 10) | changeFor(e){const{identifier:t,state:{apiChanges:n}}=this,{availability...
  method default (line 10) | default(){return!1}
  method default (line 10) | default(){return{reset(){},state:{onThisPageSections:[]}}}
  method provide (line 10) | provide(){return{references:this.references,identifier:this.identifier,l...
  method data (line 10) | data(){return{topicState:this.store.state}}
  method defaultImplementationsCount (line 10) | defaultImplementationsCount(){return(this.defaultImplementationsSections...
  method onThisPageSections (line 10) | onThisPageSections(){return this.topicState.onThisPageSections}
  method technologies (line 10) | technologies({modules:e=[]}){const t=e.reduce((e,t)=>(e.push(t.name),e.c...
  method normalizePath (line 10) | normalizePath(e){return e.startsWith("/")?e:"/"+e}
  method created (line 10) | created(){if(this.topicState.preferredLanguage===O["a"].objectiveC.key.u...
  method setAPIChanges (line 10) | setAPIChanges(e){this.state.apiChanges=e}
  method setSelectedAPIChangesVersion (line 10) | setSelectedAPIChangesVersion(e){this.state.selectedAPIChangesVersion=e}
  method resetApiChanges (line 10) | resetApiChanges(){this.state.apiChanges=null,this.state.apiChangesCounts...
  method updateApiChangesCounts (line 10) | async updateApiChangesCounts(){await Vo["default"].nextTick(),Object.key...
  method countChangeType (line 10) | countChangeType(e){if(document&&document.querySelectorAll){const t=`.cha...
  method reset (line 10) | reset(){this.state.onThisPageSections=[],this.state.preferredLanguage=Uo...
  method addOnThisPageSection (line 10) | addOnThisPageSection(e){this.state.onThisPageSections.push(e)}
  method setPreferredLanguage (line 10) | setPreferredLanguage(e){this.state.preferredLanguage=e,Uo["a"].preferred...
  method data (line 10) | data(){return{isFetching:!1,errorFetching:!1,isFetchingAPIChanges:!1,nav...
  method technologyWithChildren (line 10) | technologyWithChildren({navigationIndex:e,interfaceLanguage:t,technology...
  method created (line 10) | created(){this.fetchIndexData()}
  method fetchIndexData (line 10) | async fetchIndexData(){try{this.isFetching=!0;const{interfaceLanguages:e...
  method render (line 10) | render(){return this.$scopedSlots.default({technology:this.technologyWit...
  function ul (line 10) | function ul(e,t,n,a){let i,s;return function(...r){function o(){clearTim...
  function yl (line 10) | function yl(e,t){let n,a;return function(...i){const s=this;if(!a)return...
  method data (line 10) | data(){const e=window.innerWidth,t=window.innerHeight,n=hl["b"].large,a=...
  method mounted (line 10) | async mounted(){window.addEventListener("keydown",this.onEscapeKeydown),...
  method breakpoint (line 10) | async breakpoint(e){this.getWidthInCheck(),e===hl["b"].large&&this.close...
  method onEscapeKeydown (line 10) | onEscapeKeydown({key:e}){"Escape"===e&&this.closeMobileSidebar()}
  method closeMobileSidebar (line 10) | closeMobileSidebar(){this.openExternally&&this.$emit("update:openExterna...
  method startDrag (line 10) | startDrag({type:e}){this.isTouch="touchstart"===e,this.isDragging||(this...
  method handleDrag (line 10) | handleDrag(e){if(this.isTouch||e.preventDefault(),!this.isDragging)retur...
  method stopDrag (line 10) | stopDrag(e){e.preventDefault(),this.isDragging&&(this.isDragging=!1,cl["...
  method emitEventChange (line 10) | emitEventChange(e){this.$emit("width-change",e)}
  method getTopOffset (line 10) | getTopOffset(){const e=document.getElementById(vl["d"]);if(!e)return 0;c...
  method handleExternalOpen (line 10) | handleExternalOpen(e){e&&(this.mobileTopOffset=this.getTopOffset()),this...
  method toggleScrollLock (line 10) | async toggleScrollLock(e){const t=document.getElementById(this.scrollLoc...
  function Nl (line 10) | function Nl(e){const t=Object(vi["h"])(Object(vi["d"])(e));return new Re...
  method render (line 10) | render(e){const{matcher:t,text:n}=this;if(!t)return e("p",{class:"highli...
  method idState (line 10) | idState(){return{isOpening:!1}}
  method ariaDescribedBy (line 10) | ariaDescribedBy({item:e,siblingsLabel:t,parentLabel:n,isParent:a}){const...
  method toggleTree (line 10) | toggleTree(){this.idState.isOpening=!0,this.$emit("toggle",this.item)}
  method toggleEntireTree (line 10) | toggleEntireTree(){this.idState.isOpening=!0,this.$emit("toggle-full",th...
  method toggleSiblings (line 10) | toggleSiblings(){this.idState.isOpening=!0,this.$emit("toggle-siblings",...
  method handleLeftKeydown (line 10) | handleLeftKeydown(){this.expanded?this.toggleTree():this.$emit("focus-pa...
  method handleRightKeydown (line 10) | handleRightKeydown(){!this.expanded&&this.isParent&&this.toggleTree()}
  method clickReference (line 10) | clickReference(){(this.$refs.reference.$el||this.$refs.reference).click()}
  method focusReference (line 10) | focusReference(){(this.$refs.reference.$el||this.$refs.reference).focus()}
  method handleClick (line 10) | handleClick(){this.isGroupMarker||this.$emit("navigate",this.item.uid)}
  method isFocused (line 10) | async isFocused(e){await Object(pl["b"])(8),e&&this.isRendered&&this.ena...
  method expanded (line 10) | async expanded(){await Object(pl["b"])(9),this.idState.isOpening=!1}
  function vc (line 10) | function vc(){if(window.getSelection)try{const{activeElement:e}=document...
  function bc (line 10) | function bc(e){if("number"===typeof e.selectionStart)e.selectionStart=e....
  function Tc (line 10) | function Tc(e){e.selectionStart=e.selectionEnd=0}
  function _c (line 10) | function _c(e){return/^[\w\W\s]$/.test(e)}
  function Cc (line 10) | function Cc(e){const t=e.match(/<data (?:.*?)id="copy-data"(?:.*?)>(.*)<...
  function Sc (line 10) | function Sc(e){return"string"!==typeof e&&(e=JSON.stringify(e)),`<data i...
  method data (line 10) | data(){return{keyboardIsVirtual:!1,activeTags:[],initTagIndex:null,focus...
  method selectRangeActiveTags (line 10) | selectRangeActiveTags(e=this.focusedTagIndex,t=this.selectedTags.length)...
  method selectTag (line 10) | selectTag(e){this.updateSelectedTags([e]),this.clearFilterOnTagSelect&&t...
  method unselectActiveTags (line 10) | unselectActiveTags(){this.activeTags.length&&(this.deleteTags(this.activ...
  method deleteHandler (line 10) | async deleteHandler(e){this.activeTags.length>0&&this.setSelectedTags(th...
  method leftKeyInputHandler (line 10) | leftKeyInputHandler(e){if(this.assignEventValues(e),this.hasSelectedTags...
  method rightKeyInputHandler (line 10) | rightKeyInputHandler(e){if(this.assignEventValues(e),this.activeTags.len...
  method enterHandler (line 10) | async enterHandler(){this.$refs.input.blur()}
  method inputKeydownHandler (line 10) | inputKeydownHandler(e){const{key:t}=e;this.inputIsSelected()&&_c(t)&&thi...
  method selectedTagsKeydownHandler (line 10) | selectedTagsKeydownHandler({event:e,tagName:t}){"Enter"===e.key&&e.preve...
  method selectInputTextToTags (line 10) | selectInputTextToTags(){const{input:e}=this.$refs;e.selectionStart===e.s...
  method selectTagsPressingShift (line 10) | selectTagsPressingShift(){null!==this.initTagIndex&&this.shiftKey&&!this...
  method focusTagHandler (line 10) | focusTagHandler({event:e={},tagName:t}){this.focusedTagIndex=this.select...
  method focusInputFromTags (line 10) | focusInputFromTags(){this.focusInput(),Tc(this.$refs.input)}
  method selectToDirections (line 10) | selectToDirections(e){this.metaKey&&this.shiftKey&&("ArrowRight"===e?(th...
  method metaKeyClickSelection (line 10) | metaKeyClickSelection(e,t){this.metaKey&&e instanceof MouseEvent&&(this....
  method assignEventValues (line 10) | assignEventValues(e={}){const{shiftKey:t=!1,metaKey:n=!1,ctrlKey:a=!1,ke...
  method initTag (line 10) | initTag(e){null!==this.initTagIndex||this.activeTags.includes(e)||(e?(th...
  method multipleTagsSelectionHandler (line 10) | multipleTagsSelectionHandler({event:e=new KeyboardEvent("keydown",{}),ta...
  method resetActiveTags (line 10) | resetActiveTags(){this.activeTags=[],this.initTagIndex=null,this.metaKey...
  method selectInputAndTags (line 10) | selectInputAndTags(){this.activeTags=[...this.selectedTags],this.input.l...
  method handleSingleTagClick (line 10) | handleSingleTagClick({event:e,tagName:t}){this.keyboardIsVirtual?(this.d...
  method inputIsSelected (line 10) | inputIsSelected(){return this.input.length&&vc()===this.input}
  method inputHasPartialTextSelected (line 10) | inputHasPartialTextSelected(){const e=vc();return!this.inputIsSelected()...
  method setFilterInput (line 10) | setFilterInput(e){this.$emit("update:input",e)}
  method setSelectedTags (line 10) | setSelectedTags(e){this.$emit("update:selectedTags",e)}
  method updateSelectedTags (line 10) | updateSelectedTags(e){this.setSelectedTags([...new Set([...this.selected...
  method handleCopy (line 10) | handleCopy(e){e.preventDefault();const t=[],n={tags:[],input:vc()};if(th...
  method handleCut (line 10) | handleCut(e){e.preventDefault();const{input:t,tags:n}=this.handleCopy(e)...
  method handlePaste (line 10) | handlePaste(e){e.preventDefault();const{types:t}=e.clipboardData;let n=[...
  method handleDeleteTag (line 10) | async handleDeleteTag({tagName:e,event:t={}}){const{key:n}=t;this.active...
  method mounted (line 10) | mounted(){window.visualViewport&&(window.visualViewport.addEventListener...
  method data (line 10) | data(){return{isScrolling:!1,scrollRemovedAt:0}}
  method created (line 10) | created(){this.deleteScroll=ul(this.deleteScroll,Ic)}
  method deleteScroll (line 10) | deleteScroll(){this.isScrolling=!1,this.scrollRemovedAt=Date.now()}
  method handleScroll (line 10) | handleScroll(e){const{target:t}=e;if(0!==t.scrollTop)return t.scrollTop=...
  method data (line 10) | data(){return{focusedIndex:0,externalFocusChange:!1}}
  method focusIndex (line 10) | focusIndex(e){e<0||(this.focusedIndex=e)}
  method focusPrev (line 10) | focusPrev({metaKey:e,ctrlKey:t,shiftKey:n}){(e||t)&&n||(this.externalFoc...
  method focusNext (line 10) | focusNext({metaKey:e,ctrlKey:t,shiftKey:n}){(e||t)&&n||(this.externalFoc...
  method focusFirst (line 10) | async focusFirst(){this.externalFocusChange=!1,this.focusIndex(null),awa...
  method focusLast (line 10) | async focusLast(){this.externalFocusChange=!1,this.focusIndex(null),awai...
  method startingPointHook (line 10) | startingPointHook(){}
  method endingPointHook (line 10) | endingPointHook(){}
  method scrollToFocus (line 10) | scrollToFocus(){}
  method isFocused (line 10) | isFocused(e){e&&this.focusButton()}
  method mounted (line 10) | mounted(){document.addEventListener("copy",this.handleCopy),document.add...
  method isCurrentlyActiveElement (line 10) | isCurrentlyActiveElement(){return document.activeElement===this.$refs.bu...
  method handleCopy (line 10) | handleCopy(e){if(!this.isCurrentlyActiveElement())return;e.preventDefaul...
  method handleCut (line 10) | handleCut(e){this.isCurrentlyActiveElement()&&this.isRemovableTag&&(this...
  method handlePaste (line 10) | handlePaste(e){this.isCurrentlyActiveElement()&&this.isRemovableTag&&(e....
  method deleteTag (line 10) | deleteTag(e){this.$emit("delete-tag",{tagName:this.name,event:e}),this.$...
  method focusButton (line 10) | focusButton(e={}){this.keyboardIsVirtual||this.$refs.button.focus(),0===...
  method focusTag (line 10) | focusTag(e){this.focusIndex(this.tags.indexOf(e))}
  method startingPointHook (line 10) | startingPointHook(){this.$emit("focus-prev")}
  method handleFocus (line 10) | handleFocus(e,t){this.focusIndex(t),this.isScrolling=!1,this.$emit("focu...
  method endingPointHook (line 10) | endingPointHook(){this.$emit("focus-next")}
  method resetScroll (line 10) | resetScroll(){this.$refs["scroll-wrapper"].scrollLeft=0}
  method handleKeydown (line 10) | handleKeydown(e){const{key:t}=e,n=this.tags[this.focusedIndex];_c(t)&&n&...
  method data (line 10) | data(){return{resetedTagsViaDeleteButton:!1,FilterInputId:Xc,SelectedTag...
  method set (line 10) | set(e){this.$emit("input",e)}
  method selectedTags (line 10) | async selectedTags(){this.resetedTagsViaDeleteButton?this.resetedTagsVia...
  method handler (line 10) | handler(e){this.$emit("suggested-tags",e)}
  method showSuggestedTags (line 10) | showSuggestedTags(e){this.$emit("show-suggested-tags",e)}
  method focusInput (line 10) | async focusInput(){await this.$nextTick(),this.$refs.input.focus(),!this...
  method resetFilters (line 10) | async resetFilters(e=!1){if(this.setFilterInput(""),this.setSelectedTags...
  method focusFirstTag (line 10) | focusFirstTag(e=(()=>{})){this.showSuggestedTags||(this.showSuggestedTag...
  method setFilterInput (line 10) | setFilterInput(e){this.$emit("input",e)}
  method setSelectedTags (line 10) | setSelectedTags(e){this.$emit("update:selectedTags",e)}
  method deleteTags (line 10) | deleteTags(e){this.setSelectedTags(this.selectedTags.filter(t=>!e.includ...
  method handleBlur (line 10) | async handleBlur(e){const t=e.relatedTarget;t&&t.matches&&t.matches("but...
  method downHandler (line 10) | downHandler(e){const t=()=>this.$emit("focus-next",e);this.positionRever...
  method upHandler (line 10) | upHandler(e){const t=()=>this.$emit("focus-prev",e);this.positionReverse...
  method handleFocusPrevOnSelectedTags (line 10) | handleFocusPrevOnSelectedTags(){this.positionReversed?this.focusFirstTag...
  method created (line 10) | created(){this.focusInputWhenCreated&&document.activeElement!==this.$ref...
  method data (line 10) | data(){return{filter:"",debouncedFilter:"",selectedTags:[],openNodes:{},...
  method set (line 10) | set(e){this.selectedTags=e.map(e=>hu[e]||Ma[e]||e),this.resetScroll=!0}
  method childrenMap (line 10) | childrenMap({children:e}){return this.convertChildrenArrayToObject(e)}
  method activePathChildren (line 10) | activePathChildren({activeUID:e,childrenMap:t}){return e&&t[e]?this.getP...
  method filteredChildren (line 10) | filteredChildren({hasFilter:e,children:t,filterPattern:n,selectedTags:a,...
  method renderableChildNodesMap (line 10) | renderableChildNodesMap({filteredChildrenUpToRootSet:e,childrenMap:t,has...
  method hasFilter (line 10) | hasFilter({debouncedFilter:e,selectedTags:t,apiChanges:n}){return Boolea...
  method apiChangesObject (line 10) | apiChangesObject(){return this.apiChanges||{}}
  method created (line 10) | created(){this.restorePersistedState()}
  method apiChanges (line 10) | apiChanges(e){e||(this.selectedTags=this.selectedTags.filter(e=>!za[e]))}
  method clearFilters (line 10) | clearFilters(){this.filter="",this.debouncedFilter="",this.selectedTags=...
  method scrollToFocus (line 10) | scrollToFocus(){this.$refs.scroller.scrollToItem(this.focusedIndex)}
  method trackOpenNodes (line 10) | trackOpenNodes([e,t,n,a],[,i=[],s="",r=[]]=[]){if(n!==s&&!s&&this.getFro...
  method toggle (line 10) | toggle(e){const t=this.openNodes[e.uid];let n=[],a=[];if(t){const t=Obje...
  method toggleFullTree (line 10) | toggleFullTree(e){const t=this.openNodes[e.uid],n=Object(w["a"])(this.op...
  method toggleSiblings (line 10) | toggleSiblings(e){const t=this.openNodes[e.uid],n=Object(w["a"])(this.op...
  method getAllChildren (line 10) | getAllChildren(e){const t=[],n=[e];let a=null;while(n.length){a=n.shift(...
  method getParents (line 10) | getParents(e){const t=[],n=[e];let a=null;while(n.length){a=n.pop();cons...
  method getSiblings (line 10) | getSiblings(e){const t=this.childrenMap[e];return t?this.getChildren(t.p...
  method getChildren (line 10) | getChildren(e){if(e===Bl)return this.children.filter(e=>e.parent===Bl);c...
  method generateNodesToRender (line 10) | generateNodesToRender(){const{children:e,openNodes:t,renderableChildNode...
  method augmentRenderNodes (line 10) | augmentRenderNodes({uid:e,include:t=[],exclude:n=[]}){const a=this.nodes...
  method getFromStorage (line 10) | getFromStorage(e,t=null){const n=cl["b"].get(su,{}),a=n[this.technologyP...
  method persistState (line 10) | persistState(){const e={path:this.lastActivePathItem},{path:t}=this.acti...
  method clearPersistedState (line 10) | clearPersistedState(){const e={...cl["b"].get(su,{}),[this.technologyPat...
  method restorePersistedState (line 10) | restorePersistedState(){const e=this.getFromStorage();if(!e||e.path!==th...
  method scrollToElement (line 10) | async scrollToElement(){if(await Object(pl["b"])(1),!this.$refs.scroller...
  method getChildPositionInScroller (line 10) | getChildPositionInScroller(e){if(!e)return 0;const{paddingTop:t,paddingB...
  method isInsideScroller (line 10) | isInsideScroller(e){return this.$refs.scroller.$el.contains(e)}
  method handleFocusIn (line 10) | handleFocusIn(e){this.lastFocusTarget=e.target;const t=this.getChildPosi...
  method handleFocusOut (line 10) | handleFocusOut(e){e.relatedTarget&&(this.isInsideScroller(e.relatedTarge...
  method setActiveUID (line 10) | setActiveUID(e){this.activeUID=e,this.resetScroll=!1}
  method handleNavigationChange (line 10) | handleNavigationChange(e){this.childrenMap[e].path.startsWith(this.techn...
  method pathsToFlatChildren (line 10) | pathsToFlatChildren(e){const t=e.slice(0).reverse();let n=this.children;...
  method handleActivePathChange (line 10) | handleActivePathChange(e){const t=this.childrenMap[this.activeUID],n=au(...
  method updateFocusIndexExternally (line 10) | updateFocusIndexExternally(){this.externalFocusChange=!0,this.activeInde...
  method convertChildrenArrayToObject (line 10) | convertChildrenArrayToObject(e){return e.reduce((e,t)=>(e[t.uid]=t,e),{})}
  method focusNodeParent (line 10) | focusNodeParent(e){const t=this.childrenMap[e.parent];if(!t)return;const...
  method data (line 10) | data(){return{INDEX_ROOT_KEY:Bl}}
  method parentTopicReferences (line 10) | parentTopicReferences({references:e,parentTopicIdentifiers:t}){return t....
  method activePath (line 10) | activePath({parentTopicReferences:e,$route:{path:t}}){if(t=t.replace(/\/...
  method hashCode (line 10) | hashCode(e){return e.split("").reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0)}
  method flattenNestedData (line 10) | flattenNestedData(e,t=null,n=0,a=!1){let i=[];const s=e.length;let r;for...
  method collapsed (line 10) | collapsed(e,t){t&&!e?document.addEventListener("click",this.handleDocume...
  method beforeDestroy (line 10) | beforeDestroy(){document.removeEventListener("click",this.handleDocument...
  method handleDocumentClick (line 10) | handleDocumentClick(e){const{target:t}=e,{collapsed:n,$refs:{btn:a,dropd...
  method toggleCollapsed (line 10) | toggleCollapsed(){this.collapsed=!this.collapsed}
  method data (line 10) | data(){return{windowWidth:window.innerWidth}}
  method mounted (line 10) | mounted(){const e=yl(()=>{this.windowWidth=window.innerWidth},150);windo...
  method parentTopics (line 10) | parentTopics(){return this.parentTopicIdentifiers.reduce((e,t)=>{const n...
  method addQueryParamsToUrl (line 10) | addQueryParamsToUrl(e){return Object(q["b"])(e,this.$route.query)}
  method default (line 10) | default(){return{setPreferredLanguage(){}}}
  method data (line 10) | data(){return{languageModel:null,adjustedWidth:0}}
  method mounted (line 10) | mounted(){const e=ul(async()=>{await Object(pl["b"])(3),this.calculateSe...
  method handler (line 10) | handler(e){this.languageModel=e}
  method getRoute (line 10) | getRoute(e){const t=e.query===O["a"].swift.key.url?void 0:e.query;return...
  method pushRoute (line 10) | async pushRoute(e){await this.closeNav(),this.store.setPreferredLanguage...
  method isCurrentPath (line 10) | isCurrentPath(e){return this.$route.path.replace(/^\//,"")===e}
  method normalizePath (line 10) | normalizePath(e){return e.startsWith("/")?e:"/"+e}
  method calculateSelectWidth (line 10) | async calculateSelectWidth(){await this.$nextTick(),this.adjustedWidth=t...
  method languages (line 10) | languages(){return[{name:O["a"].swift.name,api:O["a"].swift.key.api,rout...
  method handleSidenavToggle (line 10) | async handleSidenavToggle(e){await e(),this.$emit("toggle-sidenav")}
  method data (line 10) | data(){return{topicDataDefault:null,topicDataObjc:null,isSideNavOpen:!1,...
  method get (line 10) | get(){return this.topicDataObjc?this.topicDataObjc:this.topicDataDefault}
  method set (line 10) | set(e){this.topicDataDefault=e}
  method topicProps (line 10) | topicProps(){const{abstract:e,defaultImplementationsSections:t,deprecati...
  method sidebarListeners (line 10) | sidebarListeners(){return this.enableNavigator?{"update:openExternally":...
  method applyObjcOverrides (line 10) | applyObjcOverrides(){this.topicDataObjc=S(Object(w["a"])(this.topicData)...
  method handleCodeColorsChange (line 10) | handleCodeColorsChange(e){el["a"].updateCodeColors(e)}
  method mounted (line 10) | mounted(){this.$bridge.on("contentUpdate",e=>{this.topicData=e}),this.$b...
  method provide (line 10) | provide(){return{store:this.store}}
  method default (line 10) | default(){return!1}
  method beforeDestroy (line 10) | beforeDestroy(){this.$bridge.off("codeColors",this.handleCodeColorsChange)}
  method beforeRouteEnter (line 10) | beforeRouteEnter(e,t,n){Object(w["b"])(e,t,n).then(t=>n(n=>{n.topicData=...
  method beforeRouteUpdate (line 10) | beforeRouteUpdate(e,t,n){e.path===t.path&&e.query.language===O["a"].obje...
  method created (line 10) | created(){this.store.reset()}
  method topicData (line 10) | topicData(){this.$nextTick(()=>{this.newContentMounted()})}

FILE: docs/js/documentation-topic~topic~tutorials-overview.8e36e44f.js
  function i (line 10) | function i(e){return e instanceof Map?e.clear=e.delete=e.set=function(){...
  class s (line 10) | class s{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,thi...
    method constructor (line 10) | constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMa...
    method ignoreMatch (line 10) | ignoreMatch(){this.isMatchIgnored=!0}
  function a (line 10) | function a(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replac...
  function o (line 10) | function o(e,...t){const n=Object.create(null);for(const i in e)n[i]=e[i...
    method constructor (line 10) | constructor({location:e,response:t}){super("Request redirected"),this....
    method constructor (line 10) | constructor(e){i(this,"focusContainer",null),i(this,"tabTargets",[]),i...
    method updateFocusContainer (line 10) | updateFocusContainer(e){this.focusContainer=e}
    method start (line 10) | start(){this.collectTabTargets(),this.firstTabTarget?this.focusContain...
    method stop (line 10) | stop(){document.removeEventListener("focus",this.onFocus,!0)}
    method collectTabTargets (line 10) | collectTabTargets(){this.tabTargets=a.getTabbableElements(this.focusCo...
    method onFocus (line 10) | onFocus(e){if(this.focusContainer.contains(e.target))this.lastFocusedE...
    method destroy (line 10) | destroy(){this.stop(),this.focusContainer=null,this.tabTargets=[],this...
  class d (line 10) | class d{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e...
    method constructor (line 10) | constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(...
    method addText (line 10) | addText(e){this.buffer+=a(e)}
    method openNode (line 10) | openNode(e){if(!l(e))return;let t=e.kind;t=e.sublanguage?"language-"+t...
    method closeNode (line 10) | closeNode(e){l(e)&&(this.buffer+=c)}
    method value (line 10) | value(){return this.buffer}
    method span (line 10) | span(e){this.buffer+=`<span class="${e}">`}
  class h (line 10) | class h{constructor(){this.rootNode={children:[]},this.stack=[this.rootN...
    method constructor (line 10) | constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}
    method top (line 10) | get top(){return this.stack[this.stack.length-1]}
    method root (line 10) | get root(){return this.rootNode}
    method add (line 10) | add(e){this.top.children.push(e)}
    method openNode (line 10) | openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}
    method closeNode (line 10) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
    method closeAllNodes (line 10) | closeAllNodes(){while(this.closeNode());}
    method toJSON (line 10) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
    method walk (line 10) | walk(e){return this.constructor._walk(e,this.rootNode)}
    method _walk (line 10) | static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(...
    method _collapse (line 10) | static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every...
  class p (line 10) | class p extends h{constructor(e){super(),this.options=e}addKeyword(e,t){...
    method constructor (line 10) | constructor(e){super(),this.options=e}
    method addKeyword (line 10) | addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNo...
    method addText (line 10) | addText(e){""!==e&&this.add(e)}
    method addSublanguage (line 10) | addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}
    method toHTML (line 10) | toHTML(){const e=new d(this,this.options);return e.value()}
    method finalize (line 10) | finalize(){return!0}
  function g (line 10) | function g(e){return e?"string"===typeof e?e:e.source:null}
  function f (line 10) | function f(e){return v("(?=",e,")")}
  function m (line 10) | function m(e){return v("(?:",e,")*")}
  function b (line 10) | function b(e){return v("(?:",e,")?")}
  function v (line 10) | function v(...e){const t=e.map(e=>g(e)).join("");return t}
  function y (line 10) | function y(e){const t=e[e.length-1];return"object"===typeof t&&t.constru...
  function w (line 10) | function w(...e){const t=y(e),n="("+(t.capture?"":"?:")+e.map(e=>g(e)).j...
  function x (line 10) | function x(e){return new RegExp(e.toString()+"|").exec("").length-1}
  function E (line 10) | function E(e,t){const n=e&&e.exec(t);return n&&0===n.index}
  function j (line 10) | function j(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;const t=n;let i...
  function X (line 10) | function X(e,t){const n=e.input[e.index-1];"."===n&&t.ignoreMatch()}
  function Z (line 10) | function Z(e,t){void 0!==e.className&&(e.scope=e.className,delete e.clas...
  function J (line 10) | function J(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.spli...
  function Q (line 10) | function Q(e,t){Array.isArray(e.illegal)&&(e.illegal=w(...e.illegal))}
  function ee (line 10) | function ee(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & ...
  function te (line 10) | function te(e,t){void 0===e.relevance&&(e.relevance=1)}
  function se (line 10) | function se(e,t,n=re){const i=Object.create(null);return"string"===typeo...
  function ae (line 10) | function ae(e,t){return t?Number(t):oe(e)?0:1}
  function oe (line 10) | function oe(e){return ie.includes(e.toLowerCase())}
  function pe (line 10) | function pe(e,t,{key:n}){let i=0;const r=e[n],s={},a={};for(let o=1;o<=t...
  function ge (line 10) | function ge(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.r...
  function fe (line 10) | function fe(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.retur...
  function me (line 10) | function me(e){e.scope&&"object"===typeof e.scope&&null!==e.scope&&(e.be...
  function be (line 10) | function be(e){me(e),"string"===typeof e.beginScope&&(e.beginScope={_wra...
  function ve (line 10) | function ve(e){function t(t,n){return new RegExp(g(t),"m"+(e.case_insens...
  function ye (line 10) | function ye(e){return!!e&&(e.endsWithParent||ye(e.starts))}
  function we (line 10) | function we(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e...
  class Ee (line 10) | class Ee extends Error{constructor(e,t){super(e),this.name="HTMLInjectio...
    method constructor (line 10) | constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}
  function u (line 10) | function u(e){return l.noHighlightRe.test(e)}
  function d (line 10) | function d(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.classNa...
    method constructor (line 10) | constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(...
    method addText (line 10) | addText(e){this.buffer+=a(e)}
    method openNode (line 10) | openNode(e){if(!l(e))return;let t=e.kind;t=e.sublanguage?"language-"+t...
    method closeNode (line 10) | closeNode(e){l(e)&&(this.buffer+=c)}
    method value (line 10) | value(){return this.buffer}
    method span (line 10) | span(e){this.buffer+=`<span class="${e}">`}
  function h (line 10) | function h(e,t,n){let i="",r="";"object"===typeof t?(i=e,n=t.ignoreIlleg...
    method constructor (line 10) | constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}
    method top (line 10) | get top(){return this.stack[this.stack.length-1]}
    method root (line 10) | get root(){return this.rootNode}
    method add (line 10) | add(e){this.top.children.push(e)}
    method openNode (line 10) | openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}
    method closeNode (line 10) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
    method closeAllNodes (line 10) | closeAllNodes(){while(this.closeNode());}
    method toJSON (line 10) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
    method walk (line 10) | walk(e){return this.constructor._walk(e,this.rootNode)}
    method _walk (line 10) | static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(...
    method _collapse (line 10) | static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every...
  function g (line 10) | function g(e,n,i,r){const c=Object.create(null);function u(e,t){return e...
  function y (line 10) | function y(e){const t={value:_e(e),illegal:!1,relevance:0,_top:c,_emitte...
  function x (line 10) | function x(e,n){n=n||l.languages||Object.keys(t);const i=y(e),r=n.filter...
  function _ (line 10) | function _(e,t,i){const r=t&&n[t]||i;e.classList.add("hljs"),e.classList...
  function j (line 10) | function j(e){let t=null;const n=d(e);if(u(n))return;if(P("before:highli...
  function k (line 10) | function k(e){l=je(l,e)}
  function C (line 10) | function C(){O(),de("10.6.0","initHighlightingOnLoad() deprecated.  Use ...
  function O (line 10) | function O(){if("loading"===document.readyState)return void(S=!0);const ...
  function N (line 10) | function N(){S&&O()}
  function I (line 10) | function I(n,i){let r=null;try{r=i(e)}catch(s){if(le("Language definitio...
  function L (line 10) | function L(e){delete t[e];for(const t of Object.keys(n))n[t]===e&&delete...
  function A (line 10) | function A(){return Object.keys(t)}
  function B (line 10) | function B(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}
  function M (line 10) | function M(e,{languageName:t}){"string"===typeof e&&(e=[e]),e.forEach(e=...
  function $ (line 10) | function $(e){const t=B(e);return t&&!t.disableAutodetect}
  function R (line 10) | function R(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&...
  function D (line 10) | function D(e){R(e),i.push(e)}
  function P (line 10) | function P(e,t){const n=e;i.forEach((function(e){e[n]&&e[n](t)}))}
  function F (line 10) | function F(e){return de("10.7.0","highlightBlock will be removed entirel...
  function r (line 10) | function r(e){if(!n.o(i,e))return Promise.resolve().then((function(){var...
  method mounted (line 10) | mounted(){this.$route.hash&&this.scrollToElement(this.$route.hash)}
  class o (line 10) | class o extends Error{constructor({location:e,response:t}){super("Reques...
    method constructor (line 10) | constructor({location:e,response:t}){super("Request redirected"),this....
    method constructor (line 10) | constructor(e){i(this,"focusContainer",null),i(this,"tabTargets",[]),i...
    method updateFocusContainer (line 10) | updateFocusContainer(e){this.focusContainer=e}
    method start (line 10) | start(){this.collectTabTargets(),this.firstTabTarget?this.focusContain...
    method stop (line 10) | stop(){document.removeEventListener("focus",this.onFocus,!0)}
    method collectTabTargets (line 10) | collectTabTargets(){this.tabTargets=a.getTabbableElements(this.focusCo...
    method onFocus (line 10) | onFocus(e){if(this.focusContainer.contains(e.target))this.lastFocusedE...
    method destroy (line 10) | destroy(){this.stop(),this.focusContainer=null,this.tabTargets=[],this...
  class c (line 10) | class c extends Error{constructor(e){super("Unable to fetch data"),this....
    method constructor (line 10) | constructor(e){super("Unable to fetch data"),this.route=e}
  function l (line 10) | async function l(e,t={}){function n(e){return("ide"!==Object({NODE_ENV:"...
  function u (line 10) | function u(e){const t=e.replace(/\/$/,"");return Object(i["c"])([a["a"],...
  function d (line 10) | function d(e){const{pathname:t,search:n}=new URL(e),i=/\/data(\/.*).json...
    method constructor (line 10) | constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(...
    method addText (line 10) | addText(e){this.buffer+=a(e)}
    method openNode (line 10) | openNode(e){if(!l(e))return;let t=e.kind;t=e.sublanguage?"language-"+t...
    method closeNode (line 10) | closeNode(e){l(e)&&(this.buffer+=c)}
    method value (line 10) | value(){return this.buffer}
    method span (line 10) | span(e){this.buffer+=`<span class="${e}">`}
  function h (line 10) | async function h(e,t,n){const i=u(e.path);let r;try{r=await l(i,e.query)...
    method constructor (line 10) | constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}
    method top (line 10) | get top(){return this.stack[this.stack.length-1]}
    method root (line 10) | get root(){return this.rootNode}
    method add (line 10) | add(e){this.top.children.push(e)}
    method openNode (line 10) | openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}
    method closeNode (line 10) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
    method closeAllNodes (line 10) | closeAllNodes(){while(this.closeNode());}
    method toJSON (line 10) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
    method walk (line 10) | walk(e){return this.constructor._walk(e,this.rootNode)}
    method _walk (line 10) | static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(...
    method _collapse (line 10) | static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every...
  function p (line 10) | function p(e,t){return!Object(r["a"])(e,t)}
    method constructor (line 10) | constructor(e){super(),this.options=e}
    method addKeyword (line 10) | addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNo...
    method addText (line 10) | addText(e){""!==e&&this.add(e)}
    method addSublanguage (line 10) | addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}
    method toHTML (line 10) | toHTML(){const e=new d(this,this.options);return e.value()}
    method finalize (line 10) | finalize(){return!0}
  function g (line 10) | function g(e){return JSON.parse(JSON.stringify(e))}
  function f (line 10) | async function f(){const e=new URL(""+Object(i["c"])([a["a"],"index/inde...
  function r (line 10) | function r(e){if(!n.o(i,e))return Promise.resolve().then((function(){var...
  function r (line 10) | function r({major:e,minor:t,patch:n}){return[e,t,n].join(".")}
  function s (line 10) | function s(e){const[t=0,n=0,i=0]=e.split(".");return[Number(t),Number(n)...
    method constructor (line 10) | constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMa...
    method ignoreMatch (line 10) | ignoreMatch(){this.isMatchIgnored=!0}
  function a (line 10) | function a(e,t){const n=s(e),i=s(t);for(let r=0;r<n.length;r+=1){if(n[r]...
  function c (line 10) | function c(e){return`[Swift-DocC-Render] The render node version for thi...
    method constructor (line 10) | constructor(e){super("Unable to fetch data"),this.route=e}
  function u (line 10) | function u(e){const{major:t,minor:n}=e,{major:s,minor:a}=i;return t!==s?...
  function d (line 10) | function d(e){if(!e)return;const t=u(e);t&&console.warn(t)}
    method constructor (line 10) | constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(...
    method addText (line 10) | addText(e){this.buffer+=a(e)}
    method openNode (line 10) | openNode(e){if(!l(e))return;let t=e.kind;t=e.sublanguage?"language-"+t...
    method closeNode (line 10) | closeNode(e){l(e)&&(this.buffer+=c)}
    method value (line 10) | value(){return this.buffer}
    method span (line 10) | span(e){this.buffer+=`<span class="${e}">`}
  method provide (line 10) | provide(){const e={selectTab:this.selectTab};return Object.definePropert...
  method selectTab (line 10) | selectTab(e){this.$emit("input",e)}
  method isActive (line 10) | isActive({tabnavData:e,value:t}){return e.activeTab===t}
  method data (line 10) | data(){return{isCollapsed:!0,currentTab:Y.request}}
  method isCurrent (line 10) | isCurrent(e){return this.currentTab===e}
  method showMore (line 10) | showMore(){this.isCollapsed=!1}
  method showLess (line 10) | showLess(){this.isCollapsed=!0}
  function Me (line 10) | function Me(e,t){const n=n=>n.map(Me(e,t)),a=t=>t.map(t=>e("li",{},n(t.c...
  method default (line 10) | default(){return{}}
  method map (line 10) | map(e){function t(n=[]){return n.map(n=>{switch(n.type){case Le.aside:re...
  method forEach (line 10) | forEach(e){function t(n=[]){n.forEach(n=>{switch(e(n),n.type){case Le.as...
  method reduce (line 10) | reduce(e,t){let n=t;return this.forEach(t=>{n=e(n,t)}),n}
  method plaintext (line 10) | plaintext(){return this.reduce((e,t)=>t.type===Le.paragraph?e+"\n":t.typ...
  method data (line 10) | data(){return{intersectionObserver:null,intersectionPreviousScrollY:0,in...
  method intersectionThreshold (line 10) | intersectionThreshold(){const e=[];for(let t=0;t<=1;t+=.01)e.push(t);ret...
  method intersectionRoot (line 10) | intersectionRoot(){return null}
  method intersectionRootMargin (line 10) | intersectionRootMargin(){return"0px 0px 0px 0px"}
  method intersectionObserverOptions (line 10) | intersectionObserverOptions(){return{root:this.intersectionRoot,rootMarg...
  method mounted (line 10) | async mounted(){await n.e("chunk-2d0d3105").then(n.t.bind(null,"5abe",7)...
  method beforeDestroy (line 10) | beforeDestroy(){this.intersectionObserver&&this.intersectionObserver.dis...
  method getIntersectionTargets (line 10) | getIntersectionTargets(){return[this.$el]}
  method detectIntersectionScrollDirection (line 10) | detectIntersectionScrollDirection(){window.scrollY<this.intersectionPrev...
  method render (line 10) | render(e,{props:t,slots:n,data:i}){const r=n().default||[],s=r.filter(e=...
  function f (line 10) | async function f(e){const t=[e];try{return await t.reduce(async(e,t)=>{l...
  function m (line 10) | function m(e){if(p.has(e))return e;const t=h.find(([,t])=>t.includes(e))...
  function b (line 10) | function b(e){if(g.has(e))return g.get(e);const t=m(e);return g.set(e,t),t}
  function x (line 10) | function x(e){return 0===e.length?[]:e.split(y)}
  function E (line 10) | function E(e){return(e.trim().match(y)||[]).length}
  function _ (line 10) | function _(e){const t=document.createElement("template");return t.innerH...
  function j (line 10) | function j(e){const{className:t}=e;if(!w.test(t))return null;const n=x(e...
  function k (line 10) | function k(e){return Array.from(e.childNodes).forEach(e=>{if(E(e.textCon...
  function T (line 10) | function T(e,t){const n=m(t);if(!c.a.getLanguage(n))throw new Error("Uns...
  function C (line 10) | function C(e,t){const n=e.join("\n"),i=T(n,t),r=document.createElement("...
  method data (line 10) | data(){return{syntaxHighlightedLines:[]}}
  method highlightedLineNumbers (line 10) | highlightedLineNumbers(){return new Set(this.highlights.map(({line:e})=>...
  method syntaxNameNormalized (line 10) | syntaxNameNormalized(){const e={occ:a["a"].objectiveC.key.url};return e[...
  method isHighlighted (line 10) | isHighlighted(e){return this.highlightedLineNumbers.has(this.lineNumberF...
  method lineNumberFor (line 10) | lineNumberFor(e){return this.startLineNumber+e}
  method syntaxHighlightLines (line 10) | async syntaxHighlightLines(){let e;try{await v(this.syntaxNameNormalized...
  method isInternal (line 10) | isInternal({url:e}){if(!e.startsWith("/")&&!e.startsWith("#"))return!1;c...
  method isSymbolReference (line 10) | isSymbolReference(){return"symbol"===this.kind&&(this.role===a["a"].symb...
  method isDisplaySymbol (line 10) | isDisplaySymbol({isSymbolReference:e,titleStyle:t,ideTitle:n}){return n?...
  method refComponent (line 10) | refComponent(){return this.isInternal?this.isDisplaySymbol?C:E:g}
  method urlWithParams (line 10) | urlWithParams({isInternal:e}){return e?Object(s["b"])(this.url,this.$rou...
  method isActiveComputed (line 10) | isActiveComputed({url:e,isActive:t}){return!(!e||!t)}
  method scrollToElement (line 10) | async scrollToElement(e){await Object(i["b"])(8);const t=this.$router.re...
  method variantsGroupedByAppearance (line 10) | variantsGroupedByAppearance(){return Object(s["d"])(this.variants)}
  method lightVariants (line 10) | lightVariants(){return Object(s["a"])(this.variantsGroupedByAppearance.l...
  method darkVariants (line 10) | darkVariants(){return Object(s["a"])(this.variantsGroupedByAppearance.da...
  function h (line 10) | function h(e){return new Promise((t,n)=>{const i=new Image;i.src=e,i.one...
    method constructor (line 10) | constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}
    method top (line 10) | get top(){return this.stack[this.stack.length-1]}
    method root (line 10) | get root(){return this.rootNode}
    method add (line 10) | add(e){this.top.children.push(e)}
    method openNode (line 10) | openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}
    method closeNode (line 10) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
    method closeAllNodes (line 10) | closeAllNodes(){while(this.closeNode());}
    method toJSON (line 10) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
    method walk (line 10) | walk(e){return this.constructor._walk(e,this.rootNode)}
    method _walk (line 10) | static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(...
    method _collapse (line 10) | static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every...
  function p (line 10) | function p(e){if(!e.length)return null;const t=e.map(e=>`${Object(s["b"]...
    method constructor (line 10) | constructor(e){super(),this.options=e}
    method addKeyword (line 10) | addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNo...
    method addText (line 10) | addText(e){""!==e&&this.add(e)}
    method addSublanguage (line 10) | addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}
    method toHTML (line 10) | toHTML(){const e=new d(this,this.options);return e.value()}
    method finalize (line 10) | finalize(){return!0}
  method handleImageLoadError (line 10) | handleImageLoadError(){this.fallbackImageSrcSet=u.a+" 2x"}
  method calculateOptimalWidth (line 10) | async calculateOptimalWidth(){const{$refs:{img:{currentSrc:e}},allVarian...
  method optimizeImageSize (line 10) | async optimizeImageSize(){if(!this.defaultAttributes.width)try{this.opti...
  method mounted (line 10) | mounted(){this.$refs.img.addEventListener("load",this.optimizeImageSize)}
  function i (line 10) | function i(e,t){const n=document.body;let r=e,s=e;while(r=r.previousElem...
  method hide (line 10) | hide(e){i(e,o)}
  method show (line 10) | show(e){i(e,c)}
  function a (line 10) | function a({minWidth:e,maxWidth:t}){return["only screen",s(e),r(t)].filt...
  function o (line 10) | function o({maxWidth:e,minWidth:t}){return window.matchMedia(a({minWidth...
    method constructor (line 10) | constructor({location:e,response:t}){super("Request redirected"),this....
    method constructor (line 10) | constructor(e){i(this,"focusContainer",null),i(this,"tabTargets",[]),i...
    method updateFocusContainer (line 10) | updateFocusContainer(e){this.focusContainer=e}
    method start (line 10) | start(){this.collectTabTargets(),this.firstTabTarget?this.focusContain...
    method stop (line 10) | stop(){document.removeEventListener("focus",this.onFocus,!0)}
    method collectTabTargets (line 10) | collectTabTargets(){this.tabTargets=a.getTabbableElements(this.focusCo...
    method onFocus (line 10) | onFocus(e){if(this.focusContainer.contains(e.target))this.lastFocusedE...
    method destroy (line 10) | destroy(){this.stop(),this.focusContainer=null,this.tabTargets=[],this...
  method render (line 10) | render(){return this.$scopedSlots.default?this.$scopedSlots.default({mat...
  method initMediaQuery (line 10) | initMediaQuery(e,t){const n=o(t),i=t=>this.handleMediaQueryChange(t,e);n...
  method handleMediaQueryChange (line 10) | handleMediaQueryChange(e,t){e.matches&&(this.matchingBreakpoint=t,this.$...
  method mounted (line 10) | mounted(){const e=i["a"][this.scope]||{};Object.entries(e).forEach(([e,t...
  method newContentMounted (line 10) | newContentMounted(){let e;this.performanceMetricsEnabled&&(e=Math.round(...
  function u (line 10) | function u({title:e,description:t,url:n}){const i=o(e);l(i),a({title:i,d...
  method extractFirstParagraphText (line 10) | extractFirstParagraphText(e=[]){const t=h["a"].computed.plaintext.bind({...
  method mounted (line 10) | mounted(){u({title:this.pageTitle,description:this.pageDescription,url:t...
  method formatAriaLabel (line 10) | formatAriaLabel(e){return this.shouldAppendOpensInBrowser?e+" (opens in ...
  method render (line 10) | render(){return this.$scopedSlots.default({url:this.linkUrl||"",title:th...
  function i (line 10) | function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enume...
  method getTabbableElements (line 10) | getTabbableElements(e){const t=e.querySelectorAll(s),n=t.length;let i;co...
  method isTabbableElement (line 10) | isTabbableElement(e){if(!e.offsetParent)return!1;const t=parseFloat(e.ge...
  method isFocusableElement (line 10) | isFocusableElement(e){const t=e.nodeName.toLowerCase(),n=r.includes(t);r...
  class o (line 10) | class o{constructor(e){i(this,"focusContainer",null),i(this,"tabTargets"...
    method constructor (line 10) | constructor({location:e,response:t}){super("Request redirected"),this....
    method constructor (line 10) | constructor(e){i(this,"focusContainer",null),i(this,"tabTargets",[]),i...
    method updateFocusContainer (line 10) | updateFocusContainer(e){this.focusContainer=e}
    method start (line 10) | start(){this.collectTabTargets(),this.firstTabTarget?this.focusContain...
    method stop (line 10) | stop(){document.removeEventListener("focus",this.onFocus,!0)}
    method collectTabTargets (line 10) | collectTabTargets(){this.tabTargets=a.getTabbableElements(this.focusCo...
    method onFocus (line 10) | onFocus(e){if(this.focusContainer.contains(e.target))this.lastFocusedE...
    method destroy (line 10) | destroy(){this.stop(),this.focusContainer=null,this.tabTargets=[],this...
  method data (line 10) | data(){return{isOpen:!1,inBreakpoint:!1,isTransitioning:!1,isSticking:!1...
  method isOpen (line 10) | isOpen(e){this.$emit("change",e),e?this.onExpand():this.onClose()}
  method mounted (line 10) | async mounted(){window.addEventListener("keydown",this.onEscape),window....
  method beforeDestroy (line 10) | beforeDestroy(){window.removeEventListener("keydown",this.onEscape),wind...
  method getIntersectionTargets (line 10) | getIntersectionTargets(){return[document.getElementById(u["d"])||this.$el]}
  method toggleNav (line 10) | toggleNav(){this.isOpen=!this.isOpen,this.isTransitioning=!0}
  method closeNav (line 10) | closeNav(){const e=this.isOpen;return this.isOpen=!1,this.resolveOnceTra...
  method resolveOnceTransitionsEnd (line 10) | resolveOnceTransitionsEnd(e){return e&&this.inBreakpoint?(this.isTransit...
  method onTransitionEnd (line 10) | async onTransitionEnd({propertyName:e}){"max-height"===e&&(this.$emit("c...
  method onBreakpointChange (line 10) | onBreakpointChange(e){const t=Object(d["d"])(e,this.breakpoint);this.inB...
  method onIntersect (line 10) | onIntersect({intersectionRatio:e}){window.scrollY<0||(this.isSticking=1!...
  method onEscape (line 10) | onEscape({key:e}){"Escape"===e&&this.isOpen&&(this.closeNav(),this.$refs...
  method handleTrayClick (line 10) | handleTrayClick({target:e}){e.href&&!e.classList.contains(g)&&this.close...
  method handleClickOutside (line 10) | handleClickOutside({target:e}){this.$refs.nav.contains(e)||this.closeNav()}
  method toggleScrollLock (line 10) | toggleScrollLock(e){e?l["a"].lockScroll(this.$refs.tray):l["a"].unlockSc...
  method onExpand (line 10) | onExpand(){this.$emit("open"),this.focusTrapInstance.start(),h["a"].hide...
  method onClose (line 10) | onClose(){this.$emit("close"),this.toggleScrollLock(!1),this.focusTrapIn...
  method handleFlashOnMount (line 10) | async handleFlashOnMount(){await Object(p["b"])(b),this.noBackgroundTran...
  function o (line 10) | function o(e){e.touches.length>1||e.preventDefault()}
    method constructor (line 10) | constructor({location:e,response:t}){super("Request redirected"),this....
    method constructor (line 10) | constructor(e){i(this,"focusContainer",null),i(this,"tabTargets",[]),i...
    method updateFocusContainer (line 10) | updateFocusContainer(e){this.focusContainer=e}
    method start (line 10) | start(){this.collectTabTargets(),this.firstTabTarget?this.focusContain...
    method stop (line 10) | stop(){document.removeEventListener("focus",this.onFocus,!0)}
    method collectTabTargets (line 10) | collectTabTargets(){this.tabTargets=a.getTabbableElements(this.focusCo...
    method onFocus (line 10) | onFocus(e){if(this.focusContainer.contains(e.target))this.lastFocusedE...
    method destroy (line 10) | destroy(){this.stop(),this.focusContainer=null,this.tabTargets=[],this...
  function l (line 10) | function l(){s=document.body.getBoundingClientRect().top,document.body.s...
  function u (line 10) | function u(e){e&&(e.ontouchstart=null,e.ontouchmove=null),document.remov...
  function d (line 10) | function d(e,t){const n=e.targetTouches[0].clientY-r;return 0===t.scroll...
    method constructor (line 10) | constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(...
    method addText (line 10) | addText(e){this.buffer+=a(e)}
    method openNode (line 10) | openNode(e){if(!l(e))return;let t=e.kind;t=e.sublanguage?"language-"+t...
    method closeNode (line 10) | closeNode(e){l(e)&&(this.buffer+=c)}
    method value (line 10) | value(){return this.buffer}
    method span (line 10) | span(e){this.buffer+=`<span class="${e}">`}
  function h (line 10) | function h(e){document.addEventListener("touchmove",o,{passive:!1}),e&&(...
    method constructor (line 10) | constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}
    method top (line 10) | get top(){return this.stack[this.stack.length-1]}
    method root (line 10) | get root(){return this.rootNode}
    method add (line 10) | add(e){this.top.children.push(e)}
    method openNode (line 10) | openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}
    method closeNode (line 10) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
    method closeAllNodes (line 10) | closeAllNodes(){while(this.closeNode());}
    method toJSON (line 10) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
    method walk (line 10) | walk(e){return this.constructor._walk(e,this.rootNode)}
    method _walk (line 10) | static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(...
    method _collapse (line 10) | static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every...
  method lockScroll (line 10) | lockScroll(e){i||(a()?h(e):l(),i=!0)}
  method unlockScroll (line 10) | unlockScroll(e){i&&(a()?u(e):(document.body.style.cssText="",window.scro...

FILE: docs/js/highlight-js-bash.1b52852f.js
  function t (line 10) | function t(e){const s=e.regex,t={},n={begin:/\$\{/,end:/\}/,contains:["s...

FILE: docs/js/highlight-js-c.d1db3f17.js
  function s (line 10) | function s(e){const n=e.regex,s=e.COMMENT("//","$",{contains:[{begin:/\\...

FILE: docs/js/highlight-js-cpp.eaddddbe.js
  function n (line 10) | function n(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\...

FILE: docs/js/highlight-js-css.75eab1fe.js
  function s (line 10) | function s(e){const t=e.regex,s=o(e),d={begin:/-(webkit|moz|ms|o)-(?=[a-...

FILE: docs/js/highlight-js-custom-markdown.7cffc4b3.js
  function a (line 10) | function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLangua...

FILE: docs/js/highlight-js-custom-swift.5cda5c20.js
  function t (line 10) | function t(e){return e?"string"===typeof e?e:e.source:null}
  function a (line 10) | function a(e){return i("(?=",e,")")}
  function i (line 10) | function i(...e){const n=e.map(e=>t(e)).join("");return n}
  function s (line 10) | function s(e){const n=e[e.length-1];return"object"===typeof n&&n.constru...
  function c (line 10) | function c(...e){const n=s(e),a="("+(n.capture?"":"?:")+e.map(e=>t(e)).j...
  function k (line 10) | function k(e){const n={match:/\s+/,relevance:0},t=e.COMMENT("/\\*","\\*/...

FILE: docs/js/highlight-js-diff.62d66733.js
  function a (line 10) | function a(e){const n=e.regex;return{name:"Diff",aliases:["patch"],conta...

FILE: docs/js/highlight-js-http.163e45b6.js
  function a (line 10) | function a(e){const n=e.regex,a="HTTP/(2|1\\.[01])",s=/[A-Za-z][A-Za-z0-...

FILE: docs/js/highlight-js-java.8326d9d8.js
  function r (line 10) | function r(e,a,n){return-1===n?"":e.replace(a,s=>r(e,a,n-1))}
  function c (line 10) | function c(e){e.regex;const a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=a+r("(?...

FILE: docs/js/highlight-js-javascript.acb8a8eb.js
  function b (line 10) | function b(e){const n=e.regex,b=(e,{after:n})=>{const a="</"+e[0].slice(...

FILE: docs/js/highlight-js-json.471128d2.js
  function a (line 10) | function a(n){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*...

FILE: docs/js/highlight-js-llvm.6100b125.js
  function a (line 10) | function a(e){const n=e.regex,a=/([-a-zA-Z$._][\w$.-]*)/,t={className:"t...

FILE: docs/js/highlight-js-markdown.90077643.js
  function a (line 10) | function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLangua...

FILE: docs/js/highlight-js-objectivec.bcdf5156.js
  function _ (line 10) | function _(e){const n={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL...

FILE: docs/js/highlight-js-perl.757d7b6f.js
  function t (line 10) | function t(e){const n=e.regex,t=["abs","accept","alarm","and","atan2","b...

FILE: docs/js/highlight-js-php.cc8d6c27.js
  function t (line 10) | function t(e){const r={className:"variable",begin:"\\$+[a-zA-Z_-ÿ][a-zA...

FILE: docs/js/highlight-js-python.c214ed92.js
  function a (line 10) | function a(e){const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=[...

FILE: docs/js/highlight-js-ruby.f889d392.js
  function a (line 10) | function a(e){const n=e.regex,a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|==...

FILE: docs/js/highlight-js-scss.62ee18da.js
  function s (line 10) | function s(e){const t=i(e),s=n,d=a,c="@[a-z-]+",p="and or not only",g="[...

FILE: docs/js/highlight-js-shell.dd7f411f.js
  function e (line 10) | function e(s){return{name:"Shell Session",aliases:["console","shellsessi...

FILE: docs/js/highlight-js-swift.84f3e88c.js
  function a (line 10) | function a(e){return e?"string"===typeof e?e:e.source:null}
  function t (line 10) | function t(e){return i("(?=",e,")")}
  function i (line 10) | function i(...e){const n=e.map(e=>a(e)).join("");return n}
  function s (line 10) | function s(e){const n=e[e.length-1];return"object"===typeof n&&n.constru...
  function u (line 10) | function u(...e){const n=s(e),t="("+(n.capture?"":"?:")+e.map(e=>a(e)).j...
  function C (line 10) | function C(e){const n={match:/\s+/,relevance:0},a=e.COMMENT("/\\*","\\*/...

FILE: docs/js/highlight-js-xml.9c3688c7.js
  function a (line 10) | function a(e){const n=e.regex,a=n.concat(/[A-Z_]/,n.optional(/[A-Z0-9_.-...

FILE: docs/js/index.58e30ec4.js
  function t (line 9) | function t(t){for(var o,i,c=t[0],h=t[1],a=t[2],l=0,u=[];l<c.length;l++)i...
  function n (line 9) | function n(){for(var e,t=0;t<s.length;t++){for(var n=s[t],o=!0,i=1;i<n.l...
  function c (line 9) | function c(e){return h.p+"js/"+({"documentation-topic~topic~tutorials-ov...
  function h (line 9) | function h(t){if(o[t])return o[t].exports;var n=o[t]={i:t,l:!1,exports:{...
  function s (line 9) | function s(e){return e.trim().replace(o,"-").replace(i,"").toLowerCase()}
  function c (line 9) | function c(e){const t=e=>({'"':"&quot;","'":"&apos;","&":"&amp;","<":"&l...
  function l (line 9) | function l(e,t){const{cardinal:n}=a,{one:o,other:i}=h,r="en",s=1===t?o:i...
  function u (line 9) | function u(e){return e.replace(/#(.*)/,(e,t)=>"#"+CSS.escape(t))}
  function d (line 9) | function d(e){return e.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}
  function g (line 9) | function g(e){let t,n;const o="\\s*",i=" ",r=e.trim(),s=r.length;if(!s)r...
  function f (line 9) | function f(e,t,n=0){return`${e.slice(0,n)}${t}${e.slice(n)}`}
  function m (line 9) | function m(e){const t=e.split(/(?:\r?\n)+/);return t[0]}
  function o (line 9) | function o(e){let t=null,n=e-1;const o=new Promise(e=>{t=e});return requ...
  function i (line 9) | function i(e){return new Promise(t=>{setTimeout(t,e)})}
  function i (line 9) | function i(e=localStorage){return{getItem:t=>{try{return e.getItem(t)}ca...
  function r (line 9) | function r(e){return{get:(t,n)=>{const i=JSON.parse(e.getItem(o+t));retu...
  function c (line 9) | function c(e,t){return s[e]>s[t]}
  function o (line 9) | function o(e,t,n){let o,i=e,r=t;for("string"===typeof r&&(r=[r]),o=0;o<r...
  function s (line 9) | async function s(){const e=new URL(r+"theme-settings.json",window.locati...
  function i (line 9) | function i(e){return e.reduce((e,t)=>(t.traits.includes("dark")?e.dark.p...
  function r (line 9) | function r(e){const t=["1x","2x","3x"];return t.reduce((t,n)=>{const o=e...
  function s (line 9) | function s(e){const t="/",n=new RegExp(t+"+","g");return e.join(t).repla...
  function c (line 9) | function c(e){return e&&"string"===typeof e&&!e.startsWith(o["a"])&&e.st...
  function r (line 9) | function r(e={}){return Object.entries(e).reduce((e,[t,n])=>n?e.concat(`...
  function s (line 9) | function s(e,{changes:t,language:n,context:o}={}){const[i,s]=e.split("#"...
  function c (line 9) | function c(e,t){const{query:{changes:n,[i.input]:o,[i.tags]:r,...s}={}}=...
  function h (line 9) | function h(e,t=window.location.origin){return new URL(Object(o["b"])(e),...
  method setPreferredColorScheme (line 9) | setPreferredColorScheme(e){this.state.preferredColorScheme=e,i["a"].pref...
  method setSystemColorScheme (line 9) | setSystemColorScheme(e){this.state.systemColorScheme=e}
  method syncPreferredColorScheme (line 9) | syncPreferredColorScheme(){i["a"].preferredColorScheme&&i["a"].preferred...
  method handler (line 9) | handler(e){document.body.dataset.colorScheme=e}
  method data (line 9) | data(){return{loaded:!1}}
  method created (line 9) | created(){const e=()=>{this.loaded=!0};this.$router.onReady(e,e)}
  function A (line 9) | function A(e,t){return e&&"object"===typeof e&&Object.prototype.hasOwnPr...
  function x (line 9) | function x(e,t,n,o){if(!t||"object"!==typeof t||o&&(A(t,"light")||A(t,"d...
  function I (line 9) | function I(e,t="light"){const n={},o=e||{};return x("-",o,n,t),n}
  method provide (line 9) | provide(){return{isTargetIDE:this.isTargetIDE,performanceMetricsEnabled:...
  method data (line 9) | data(){return{appState:c["a"].state,fromKeyboard:!1,isTargetIDE:"ide"===...
  method handler (line 9) | handler(e){this.detachStylesFromRoot(e),this.attachStylesToRoot(e)}
  method created (line 9) | async created(){window.addEventListener("keydown",this.onKeyDown),this.$...
  method mounted (line 9) | mounted(){(document.querySelector(".footer-current-year")||{}).innerText...
  method beforeDestroy (line 9) | beforeDestroy(){this.fromKeyboard?window.removeEventListener("mousedown"...
  method onKeyDown (line 9) | onKeyDown(){this.fromKeyboard=!0,window.addEventListener("mousedown",thi...
  method onMouseDown (line 9) | onMouseDown(){this.fromKeyboard=!1,window.addEventListener("keydown",thi...
  method handleNavigationRequest (line 9) | handleNavigationRequest(e){this.$router.push(e)}
  method attachColorSchemeListeners (line 9) | attachColorSchemeListeners(){if(!window.matchMedia)return;const e=window...
  method onColorSchemePreferenceChange (line 9) | onColorSchemePreferenceChange({matches:e}){const t=e?h["a"].dark:h["a"]....
  method attachStylesToRoot (line 9) | attachStylesToRoot(e){const t=document.documentElement;Object.entries(e)...
  method detachStylesFromRoot (line 9) | detachStylesFromRoot(e){const t=document.documentElement;Object.entries(...
  method syncPreferredColorScheme (line 9) | syncPreferredColorScheme(){c["a"].syncPreferredColorScheme()}
  class R (line 9) | class R{constructor(){this.$send=()=>{}}send(e){this.$send(e)}}
    method constructor (line 9) | constructor(){this.$send=()=>{}}
    method send (line 9) | send(e){this.$send(e)}
  class U (line 9) | class U{constructor(){const{webkit:{messageHandlers:{bridge:e={}}={}}={}...
    method constructor (line 9) | constructor(){const{webkit:{messageHandlers:{bridge:e={}}={}}={}}=wind...
    method send (line 9) | send(e){this.$send(e)}
  class M (line 9) | class M{constructor(e=new R){this.backend=e,this.listeners={}}send(e){th...
    method constructor (line 9) | constructor(e=new R){this.backend=e,this.listeners={}}
    method send (line 9) | send(e){this.backend.send(e)}
    method receive (line 9) | receive(e){this.emit(e.type,e.data)}
    method emit (line 9) | emit(e,t){this.listeners[e]&&this.listeners[e].forEach(e=>e(t))}
    method on (line 9) | on(e,t){this.listeners[e]||(this.listeners[e]=new Set),this.listeners[...
    method off (line 9) | off(e,t){this.listeners[e]&&this.listeners[e].delete(t)}
  method install (line 9) | install(e,t){let n;n=t.performanceMetricsEnabled||"ide"===t.appTarget?ne...
  function W (line 9) | function W(e){return"custom-"+e}
  function V (line 9) | function V(e){return class extends HTMLElement{constructor(){super();con...
  function q (line 9) | function q(e){const t=W(e),n=document.getElementById(t);n&&window.custom...
  function F (line 9) | function F(e,t={names:["header","footer"]}){const{names:n}=t;e.config.ig...
  function H (line 9) | function H(e,t){const{value:n=!1}=t;e.style.display=n?"none":""}
  function G (line 9) | function G(e,{performanceMetrics:t=!1}={}){e.config.productionTip=!1,e.u...
  function Z (line 9) | function Z(){const{location:e}=window;return e.pathname+e.search+e.hash}
  function ee (line 9) | function ee(){const e=Math.max(document.documentElement.clientWidth||0,w...
  function te (line 9) | async function te(e,t,n){if(n)return await this.app.$nextTick(),n;if(e.h...
  function ne (line 9) | async function ne(){let e=window.sessionStorage.getItem("scrollPosition"...
  function oe (line 9) | function oe(){window.location.hash||sessionStorage.setItem("scrollPositi...
  function Ee (line 9) | function Ee(e={}){const t=new i["a"]({mode:"history",base:O["a"],scrollB...

FILE: docs/js/topic.6a1c7b7f.js
  function s (line 20) | function s(e){return e&&"object"===typeof e&&"default"in e?e["default"]:e}
  function r (line 20) | function r(e){return r="function"===typeof Symbol&&"symbol"===typeof Sym...
  function o (line 20) | function o(e){return a(e)||l(e)||c()}
  function a (line 20) | function a(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e...
  function l (line 20) | function l(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Ob...
  function c (line 20) | function c(){throw new TypeError("Invalid attempt to spread non-iterable...
  function d (line 20) | function d(e){return Array.isArray(e)||"object"===r(e)?Object.freeze(e):e}
  function p (line 20) | function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function h (line 20) | function h(e,t){return e.map((function(e,t){return[t,e]})).sort((functio...
  function m (line 20) | function m(e,t){return t.reduce((function(t,n){return e.hasOwnProperty(n...
  function A (line 20) | function A(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[...
  method addLinkableSection (line 20) | addLinkableSection(e){const t={...e,visibility:0};t.sectionNumber=this.s...
  method reset (line 20) | reset(){this.state.linkableSections=[],this.state.breakpoint=a.large}
  method updateLinkableSection (line 20) | updateLinkableSection(e){this.state.linkableSections=this.state.linkable...
  method updateBreakpoint (line 20) | updateBreakpoint(e){this.state.breakpoint=e}
  method render (line 20) | render(){return this.$scopedSlots.default({url:this.url,urlWithParams:Ob...
  method classesFor (line 20) | classesFor(e){return["option","section",{active:this.currentOption===e.t...
  method depthClass (line 20) | depthClass(e){const{depth:t=0}=e;return"depth"+t}
  method onClick (line 20) | onClick(e){this.$emit("select-section",e.path)}
  method set (line 20) | set(e){this.$emit("input",e)}
  method dropdownClasses (line 20) | dropdownClasses({value:e}){return["form-dropdown",{"form-dropdown-select...
  method data (line 20) | data(){return{isOpen:!1,OpenedClass:J,OptionClass:Y,ActiveOptionClass:Z}}
  method mounted (line 20) | mounted(){document.addEventListener("click",this.closeOnLoseFocus)}
  method beforeDestroy (line 20) | beforeDestroy(){document.removeEventListener("click",this.closeOnLoseFoc...
  method onChangeAction (line 20) | onChangeAction(e){this.$emit("input",e)}
  method toggleDropdown (line 20) | toggleDropdown(){this.isOpen?this.closeDropdown():this.openDropdown()}
  method closeAndFocusToggler (line 20) | async closeAndFocusToggler(){this.closeDropdown(),await this.$nextTick()...
  method closeDropdown (line 20) | closeDropdown(){this.isOpen=!1,this.$emit("close")}
  method openDropdown (line 20) | openDropdown(){this.isOpen=!0,this.$emit("open"),this.focusActiveLink()}
  method closeOnLoseFocus (line 20) | closeOnLoseFocus(e){!this.$el.contains(e.target)&&this.isOpen&&this.clos...
  method navigateOverOptions (line 20) | navigateOverOptions({target:e},t){const n=this.$el.querySelectorAll("."+...
  method focusActiveLink (line 20) | async focusActiveLink(){const e=this.$el.querySelector("."+Z);e&&(await ...
  method ariaCurrent (line 20) | ariaCurrent(e){return this.currentOption===e&&"section"}
  method setActive (line 20) | setActive(e,t,n,s){t(s),this.$emit("select-section",e.path),n()}
  method setActive (line 20) | setActive(e,t,n){e(n),t()}
  method data (line 20) | data(){return{currentSection:me,tutorialState:this.store.state}}
  method pageSectionWithHighestVisibility (line 20) | pageSectionWithHighestVisibility(e){e&&(this.currentSection=e)}
  method currentProject (line 20) | currentProject(){return this.chapters.reduce((e,{projects:t})=>e.concat(...
  method pageSections (line 20) | pageSections(){if(!this.currentProject)return[];const e=[me].concat(this...
  method optionsForSections (line 20) | optionsForSections(){return this.pageSections.map(({depth:e,path:t,title...
  method pageSectionWithHighestVisibility (line 20) | pageSectionWithHighestVisibility(){return[...this.pageSections].sort((e,...
  method sectionIndicatorText (line 20) | sectionIndicatorText(){const e=this.tutorialState.linkableSections.lengt...
  method onSelectSection (line 20) | onSelectSection(e){const t="#"+e.split("#")[1];this.scrollToElement(t)}
  method articleContent (line 20) | articleContent(){return this.map(e=>{switch(e.type){case $e["a"].BlockTy...
  method classes (line 20) | classes(){return{"cols-2":2===this.columns.length,"cols-3":3===this.colu...
  method classes (line 20) | classes(){return{"media-leading":this.mediaPosition===Ve.leading,"media-...
  method default (line 20) | default(){}
  method default (line 20) | default(){return{addLinkableSection(){},updateLinkableSection(){}}}
  method intersectionRootMargin (line 20) | intersectionRootMargin(){const e=this.navigationBarHeight?`-${this.navig...
  method created (line 20) | created(){this.store.addLinkableSection({anchor:this.anchor,depth:this.d...
  method onIntersect (line 20) | onIntersect(e){const t=Math.min(1,e.intersectionRatio);this.store.update...
  method componentFor (line 20) | componentFor(e){return e.heading?Ze:"div"}
  method depthFor (line 20) | depthFor(e){switch(e.level){case 1:case 2:return 0;default:return 1}}
  method propsFor (line 20) | propsFor(e){return e.heading?{anchor:e.heading.anchor,depth:this.depthFo...
  method componentFor (line 20) | componentFor(e){return{[rt.columns]:qe,[rt.contentAndMedia]:Ue,[rt.fullW...
  method propsFor (line 20) | propsFor(e){const{content:t,kind:n,media:s,mediaPosition:i}=e;return{[rt...
  method render (line 20) | render(e){return e(wt["a"],{props:{span:{large:5,small:12}}},this.$slots...
  method render (line 20) | render(e){return e(wt["a"],{props:{span:{large:6,small:12}}},this.$slots...
  method abstractParagraph (line 20) | abstractParagraph(){return{type:"paragraph",inlineContent:this.abstract}}
  method baseProps (line 20) | baseProps(){return{title:this.title,abstract:this.abstract,action:this.a...
  method data (line 20) | data(){return{lastFocusItem:null,prefersDarkStyle:!1,focusTrapInstance:n...
  method set (line 20) | set(e){this.$emit("update:visible",e)}
  method modalColors (line 20) | modalColors(){return{"--background":this.codeBackgroundColorOverride}}
  method themeClass (line 20) | themeClass({theme:e,prefersDarkStyle:t,isThemeDynamic:n}){let s={};retur...
  method isVisible (line 20) | isVisible(e){e?this.onShow():this.onHide()}
  method mounted (line 20) | mounted(){if(this.focusTrapInstance=new Yt["a"],document.addEventListene...
  method beforeDestroy (line 20) | beforeDestroy(){this.isVisible&&Jt["a"].unlockScroll(this.$refs.containe...
  method onShow (line 20) | async onShow(){await this.$nextTick(),Jt["a"].lockScroll(this.$refs.cont...
  method onHide (line 20) | onHide(){Jt["a"].unlockScroll(this.$refs.container),this.focusTrapInstan...
  method closeModal (line 20) | closeModal(){this.isVisible=!1}
  method selectContent (line 20) | selectContent(){window.getSelection().selectAllChildren(this.$refs.conte...
  method onClickOutside (line 20) | onClickOutside(){this.closeModal()}
  method onKeydown (line 20) | onKeydown(e){const{metaKey:t=!1,ctrlKey:n=!1,key:s}=e;this.isVisible&&("...
  method onColorSchemePreferenceChange (line 20) | onColorSchemePreferenceChange({matches:e}){this.prefersDarkStyle=e}
  method focusCloseButton (line 20) | async focusCloseButton(){this.lastFocusItem=document.activeElement,await...
  method render (line 20) | render(e){return e(wt["a"],{props:{span:{large:7,medium:9,small:12}}},th...
  method backgroundImageUrl (line 20) | backgroundImageUrl(){const e=this.references[this.backgroundImage]||{},{...
  method projectFilesUrl (line 20) | projectFilesUrl(){return this.projectFiles?Object(hn["b"])(this.referenc...
  method bgStyle (line 20) | bgStyle(){return{backgroundImage:`url('${this.backgroundImageUrl}')`}}
  method xcodeRequirementData (line 20) | xcodeRequirementData(){return this.references[this.xcodeRequirement]}
  method sectionTitle (line 20) | sectionTitle(){return"Introduction"}
  method data (line 20) | data(){return{callToActionModalVisible:!1}}
  method toggleCallToActionModal (line 20) | async toggleCallToActionModal(){this.callToActionModalVisible=!0,await t...
  method handleVideoEnd (line 20) | handleVideoEnd(){this.callToActionModalVisible=!1}
  method data (line 20) | data(){return{userChoices:this.choices.map(()=>({checked:!1})),selectedI...
  method correctChoices (line 20) | correctChoices(){return this.choices.reduce((e,t,n)=>t.isCorrect?e.add(n...
  method choiceClasses (line 20) | choiceClasses(){return this.userChoices.map((e,t)=>({choice:!0,active:th...
  method showNextQuestion (line 20) | showNextQuestion(){return Array.from(this.correctChoices).every(e=>this....
  method getIconComponent (line 20) | getIconComponent(e){const t=this.userChoices[e];if(t&&t.checked)return t...
  method submit (line 20) | submit(){this.$set(this.userChoices,this.selectedIndex,{checked:!0}),thi...
  method advance (line 20) | advance(){this.$emit("advance")}
  method seeResults (line 20) | seeResults(){this.$emit("see-results")}
  method render (line 20) | render(e){return e(wt["a"],{props:{isCentered:{large:!0},span:{large:10}...
  method render (line 20) | render(e){return e(wt["a"],{props:{isCentered:{large:!0},span:{large:10,...
  method data (line 20) | data(){return{activeIndex:0,completed:!1,SuccessMessage:ys}}
  method activeAssessment (line 20) | activeAssessment(){return this.assessments[this.activeIndex]}
  method isLast (line 20) | isLast(){return this.activeIndex===this.assessments.length-1}
  method progress (line 20) | progress(){return{index:this.activeIndex+1,total:this.assessments.length}}
  method title (line 20) | title(){return"Check Your Understanding"}
  method scrollTo (line 20) | scrollTo(e,t=0){e.scrollIntoView(!0),window.scrollBy(0,-this.navigationB...
  method onSubmit (line 20) | onSubmit(){this.$nextTick(()=>{this.scrollTo(this.$refs.progress.$el,gs)})}
  method onAdvance (line 20) | onAdvance(){this.activeIndex+=1,this.$nextTick(()=>{this.scrollTo(this.$...
  method onSeeResults (line 20) | onSeeResults(){this.completed=!0,this.$nextTick(()=>{this.scrollTo(this....
  method default (line 20) | default(){return{reset(){}}}
  method heroSection (line 20) | heroSection(){return this.sections.find(this.isHero)}
  method heroTitle (line 20) | heroTitle(){return(this.heroSection||{}).title}
  method pageTitle (line 20) | pageTitle(){return this.heroTitle?`${this.heroTitle} — ${this.metadata.c...
  method componentFor (line 20) | componentFor(e){const{kind:t}=e;return{[As.articleBody]:ht,[As.callToAct...
  method isHero (line 20) | isHero(e){return e.kind===As.hero}
  method propsFor (line 20) | propsFor(e){const{abstract:t,action:n,anchor:s,assessments:i,backgroundI...
  method provide (line 20) | provide(){return{references:this.references}}
  method created (line 20) | created(){this.store.reset()}
  method isClientMobile (line 20) | isClientMobile(){let e=!1;return e="maxTouchPoints"in navigator||"msMaxT...
  method render (line 20) | render(e){return e(wt["a"],{props:{span:{large:6,small:12}}},this.$slots...
  method focus (line 20) | focus(){this.$emit("focus",this.media)}
  method sectionLink (line 20) | sectionLink(){return{path:this.$route.path,hash:this.sectionAnchor,query...
  function ri (line 20) | function ri({width:e,height:t},n=1){const s=400,i=e<=s?1.75:3;return{wid...
  method data (line 20) | data(){return{tutorialState:this.store.state}}
  method currentBreakpoint (line 20) | currentBreakpoint(){return this.tutorialState.breakpoint}
  method hasRuntimePreview (line 20) | hasRuntimePreview(){return!!this.preview}
  method previewAssetSize (line 20) | previewAssetSize(){const e=this.hasRuntimePreview?this.references[this.p...
  method previewSize (line 20) | previewSize(){const e={width:102};return this.shouldDisplayHideLabel&&th...
  method previewStyles (line 20) | previewStyles(){const{width:e}=this.previewSize;return{width:e+"px"}}
  method codeProps (line 20) | codeProps(){return this.references[this.code]}
  method runtimePreviewClasses (line 20) | runtimePreviewClasses(){return{collapsed:!this.shouldDisplayHideLabel,di...
  method shouldDisplayHideLabel (line 20) | shouldDisplayHideLabel(){return this.hasRuntimePreview&&this.isRuntimePr...
  method runtimePreviewTitle (line 20) | runtimePreviewTitle(){return this.hasRuntimePreview?null:"No preview ava...
  method togglePreviewText (line 20) | togglePreviewText(){return this.hasRuntimePreview?"Preview":"No Preview"}
  method handleLeave (line 20) | handleLeave(e,t){setTimeout(t,200)}
  method togglePreview (line 20) | togglePreview(){this.hasRuntimePreview&&this.$emit("runtime-preview-togg...
  method data (line 20) | data(){return{codeThemeState:Ds["a"].state}}
  method backgroundStyle (line 20) | backgroundStyle(){const{codeColors:e}=this.codeThemeState;return e?{"--b...
  method highlightedLineNumbers (line 20) | highlightedLineNumbers(){return new Set(this.highlights.map(({line:e})=>...
  method firstHighlightRange (line 20) | firstHighlightRange(){if(0===this.highlightedLineNumbers.size)return{sta...
  method displayedRange (line 20) | displayedRange(){const e=this.firstHighlightRange,t=e.start-2<1?1:e.star...
  method previewedLines (line 20) | previewedLines(){return this.content.slice(this.displayedRange.start-1,t...
  method codeProps (line 20) | codeProps(){return this.references[this.code]}
  method modalBackgroundColor (line 20) | modalBackgroundColor(){const{codeColors:e}=this.store.state;return e?e.b...
  method data (line 20) | data(){return{previewIsVisible:!1,fullCodeIsVisible:!1}}
  method togglePreview (line 20) | togglePreview(){this.previewIsVisible=!this.previewIsVisible}
  method toggleFullCode (line 20) | toggleFullCode(){this.fullCodeIsVisible=!this.fullCodeIsVisible}
  method data (line 20) | data(){return{tutorialState:this.store.state}}
  method isBreakpointSmall (line 20) | isBreakpointSmall(){return this.tutorialState.breakpoint===zi.small}
  method data (line 20) | data(){const e=this.content.findIndex(this.isStepNode),{code:t,media:n,r...
  method assetContainerClasses (line 20) | assetContainerClasses(){return{"for-step-code":!!this.visibleAsset.code,...
  method numberOfSteps (line 20) | numberOfSteps(){return this.content.filter(this.isStepNode).length}
  method contentNodes (line 20) | contentNodes(){return this.content.reduce(({stepCounter:e,nodes:t},n,s)=...
  method isBreakpointSmall (line 20) | isBreakpointSmall(){return this.tutorialState.breakpoint===Qi.small}
  method mounted (line 20) | async mounted(){await Object(ui["b"])(8),this.findClosestStepNode()}
  method isStepNode (line 20) | isStepNode({type:e}){return"step"===e}
  method contentClass (line 20) | contentClass(e){return{["interstitial interstitial-"+(e+1)]:!this.isStep...
  method onReverseIntoLastStep (line 20) | onReverseIntoLastStep(){const{asset:e}=this.$refs;if(e){const t=e.$el.qu...
  method onFocus (line 20) | onFocus(e){const{code:t,media:n,runtimePreview:s}=this.content[e];this.a...
  method onRuntimePreviewToggle (line 20) | onRuntimePreviewToggle(e){this.$emit("runtime-preview-toggle",e)}
  method findClosestStepNode (line 20) | findClosestStepNode(){const e=.333*window.innerHeight;let t=null,n=0;thi...
  method getIntersectionTargets (line 20) | getIntersectionTargets(){const{stepNodes:e,$refs:t}=this;return e.map(({...
  method onIntersect (line 20) | onIntersect(e){const{target:t,isIntersecting:n}=e;if(!n)return;const s=p...
  method introProps (line 20) | introProps(){const[{content:e,media:t},...n]=this.contentSection;return{...
  method onRuntimePreviewToggle (line 20) | onRuntimePreviewToggle(e){this.$emit("runtime-preview-toggle",e)}
  method data (line 20) | data(){return{isRuntimePreviewVisible:!0}}
  method onRuntimePreviewToggle (line 20) | onRuntimePreviewToggle(e){this.isRuntimePreviewVisible=e}
  method heroSection (line 20) | heroSection(){return this.sections.find(({kind:e})=>"hero"===e)}
  method tutorialTitle (line 20) | tutorialTitle(){return(this.heroSection||{}).title}
  method pageTitle (line 20) | pageTitle(){return this.tutorialTitle?`${this.tutorialTitle} — ${this.me...
  method handleBreakpointChange (line 20) | handleBreakpointChange(e){this.store.updateBreakpoint(e)}
  method handleCodeColorsChange (line 20) | handleCodeColorsChange(e){Ds["a"].updateCodeColors(e)}
  method created (line 20) | created(){this.store.reset()}
  method mounted (line 20) | mounted(){this.$bridge.on("codeColors",this.handleCodeColorsChange),this...
  method provide (line 20) | provide(){return{references:this.references,isClientMobile:this.isClient...
  method beforeDestroy (line 20) | beforeDestroy(){this.$bridge.off("codeColors",this.handleCodeColorsChange)}
  method data (line 20) | data(){return{topicData:null}}
  method navigationBarHeight (line 20) | navigationBarHeight(){return this.isTargetIDE?0:52}
  method store (line 20) | store(){return u}
  method hierarchy (line 20) | hierarchy(){const{hierarchy:e={}}=this.topicData,{technologyNavigation:t...
  method beforeRouteEnter (line 20) | beforeRouteEnter(e,t,n){Object(r["b"])(e,t,n).then(e=>n(t=>{t.topicData=...
  method beforeRouteUpdate (line 20) | beforeRouteUpdate(e,t,n){Object(r["d"])(e,t)?Object(r["b"])(e,t,n).then(...
  method created (line 20) | created(){this.store.reset()}
  method mounted (line 20) | mounted(){this.$bridge.on("contentUpdate",e=>{this.topicData=e})}
  method componentFor (line 20) | componentFor(e){const{kind:t}=e;return{[yr.article]:Ps,[yr.tutorial]:fr}...
  method propsFor (line 20) | propsFor(e){const{hierarchy:t,kind:n,metadata:s,references:i,sections:r,...
  method provide (line 20) | provide(){return{navigationBarHeight:this.navigationBarHeight,store:this...
  method topicData (line 20) | topicData(){this.$nextTick(()=>{this.newContentMounted()})}
  method reset (line 20) | reset(){this.state.codeColors=null}
  method updateCodeColors (line 20) | updateCodeColors(e){const t=e=>e?`rgba(${e.red}, ${e.green}, ${e.blue}, ...
  method defaultVideoAttributes (line 20) | defaultVideoAttributes(){return this.videoVariantsGroupedByAppearance.li...
  method darkVideoVariantAttributes (line 20) | darkVideoVariantAttributes(){return this.videoVariantsGroupedByAppearanc...
  method videoVariantsGroupedByAppearance (line 20) | videoVariantsGroupedByAppearance(){return Object(l["d"])(this.variants)}
  method posterVariantsGroupedByAppearance (line 20) | posterVariantsGroupedByAppearance(){return Object(l["d"])(this.posterVar...
  method data (line 20) | data(){return{showsReplayButton:!1}}
  method replay (line 20) | async replay(){const e=this.$refs.asset.$el;e&&(await e.play(),this.show...
  method onVideoEnd (line 20) | onVideoEnd(){this.showsReplayButton=!0}
  method rawAsset (line 20) | rawAsset(){return this.references[this.identifier]||{}}
  method videoPoster (line 20) | videoPoster(){return this.isRawAssetVideo&&this.references[this.rawAsset...
  method asset (line 20) | asset(){return this.isRawAssetVideo&&this.prefersReducedMotion&&this.vid...
  method assetComponent (line 20) | assetComponent(){switch(this.asset.type){case $.image:return r["a"];case...
  method prefersReducedMotion (line 20) | prefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion...
  method assetProps (line 20) | assetProps(){return{[$.image]:this.imageProps,[$.video]:this.videoProps}...
  method imageProps (line 20) | imageProps(){return{alt:this.asset.alt,variants:this.asset.variants}}
  method videoProps (line 20) | videoProps(){return{variants:this.asset.variants,showsControls:this.show...
  method assetListeners (line 20) | assetListeners(){return{[$.image]:null,[$.video]:{ended:()=>this.$emit("...
  function l (line 20) | function l(e){const t=e.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*(\d+\.?\...
  function c (line 20) | function c(e){const{r:t,g:n,b:s}=l(e);return.2126*t+.7152*n+.0722*s}
  function u (line 20) | function u(e,t){const n=Math.round(a*t),s=l(e),{a:i}=s,[r,c,u]=[s.r,s.g,...
  function d (line 20) | function d(e,t){return u(e,t)}
  function p (line 20) | function p(e,t){return u(e,-1*t)}
  method data (line 20) | data(){return{codeThemeState:r["a"].state}}
  method codeStyle (line 20) | codeStyle(){const{codeColors:e}=this.codeThemeState;return e?{"--text":e...
  method internalParamNameColor (line 20) | internalParamNameColor(){const{background:e,text:t}=this.codeThemeState....

FILE: docs/js/tutorials-overview.c8178b83.js
  method defaultVideoAttributes (line 10) | defaultVideoAttributes(){return this.videoVariantsGroupedByAppearance.li...
  method darkVideoVariantAttributes (line 10) | darkVideoVariantAttributes(){return this.videoVariantsGroupedByAppearanc...
  method videoVariantsGroupedByAppearance (line 10) | videoVariantsGroupedByAppearance(){return Object(c["d"])(this.variants)}
  method posterVariantsGroupedByAppearance (line 10) | posterVariantsGroupedByAppearance(){return Object(c["d"])(this.posterVar...
  method data (line 10) | data(){return{showsReplayButton:!1}}
  method replay (line 10) | async replay(){const t=this.$refs.asset.$el;t&&(await t.play(),this.show...
  method onVideoEnd (line 10) | onVideoEnd(){this.showsReplayButton=!0}
  method rawAsset (line 10) | rawAsset(){return this.references[this.identifier]||{}}
  method videoPoster (line 10) | videoPoster(){return this.isRawAssetVideo&&this.references[this.rawAsset...
  method asset (line 10) | asset(){return this.isRawAssetVideo&&this.prefersReducedMotion&&this.vid...
  method assetComponent (line 10) | assetComponent(){switch(this.asset.type){case x.image:return i["a"];case...
  method prefersReducedMotion (line 10) | prefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion...
  method assetProps (line 10) | assetProps(){return{[x.image]:this.imageProps,[x.video]:this.videoProps}...
  method imageProps (line 10) | imageProps(){return{alt:this.asset.alt,variants:this.asset.variants}}
  method videoProps (line 10) | videoProps(){return{variants:this.asset.variants,showsControls:this.show...
  method assetListeners (line 10) | assetListeners(){return{[x.image]:null,[x.video]:{ended:()=>this.$emit("...
  method reset (line 10) | reset(){this.state.activeTutorialLink=null,this.state.activeVolume=null}
  method setActiveSidebarLink (line 10) | setActiveSidebarLink(t){this.state.activeTutorialLink=t}
  method setActiveVolume (line 10) | setActiveVolume(t){this.state.activeVolume=t}
  method data (line 10) | data(){return{state:this.store.state}}
  method handleFocus (line 10) | async handleFocus(){const{hash:t}=this.fragment,e=document.getElementByI...
  method render (line 10) | render(t,e){const n={props:{name:"expand"},on:{afterEnter(t){t.style.hei...
  method onClick (line 10) | onClick(){this.collapsed?this.$emit("select-menu",this.title):this.$emit...
  method setActiveVolume (line 10) | setActiveVolume(){}
  method data (line 10) | data(){return{state:this.store.state}}
  method sectionClasses (line 10) | sectionClasses(t){return{volume:this.isVolume(t),"volume--named":this.is...
  method activateFirstNamedVolume (line 10) | activateFirstNamedVolume(){const{isNamedVolume:t,sections:e}=this,n=e.fi...
  method isNamedVolume (line 10) | isNamedVolume(t){return this.isVolume(t)&&t.name}
  method onDeselectMenu (line 10) | onDeselectMenu(){this.store.setActiveVolume(null)}
  method onSelectMenu (line 10) | onSelectMenu(t){this.store.setActiveVolume(t)}
  method propsForVolume (line 10) | propsForVolume({name:t}){const{activeVolume:e}=this;return t?{collapsed:...
  method created (line 10) | created(){this.activateFirstNamedVolume()}
  method intersectionRoot (line 10) | intersectionRoot(){return null}
  method intersectionRootMargin (line 10) | intersectionRootMargin(){return xt.center}
  method onIntersect (line 10) | onIntersect(t){if(!t.isIntersecting)return;const e=this.onIntersectViewp...
  method setActiveSidebarLink (line 10) | setActiveSidebarLink(){}
  method setActiveVolume (line 10) | setActiveVolume(){}
  method onIntersectViewport (line 10) | onIntersectViewport(){this.store.setActiveSidebarLink("Resources"),this....
  method ariaLabelFor (line 10) | ariaLabelFor({title:t,estimatedTime:e,kind:n}){const s=[t,Ie[n]];return ...
  method setActiveSidebarLink (line 10) | setActiveSidebarLink(){}
  method setActiveVolume (line 10) | setActiveVolume(){}
  method onIntersectViewport (line 10) | onIntersectViewport(){this.store.setActiveSidebarLink(this.name),this.vo...
  method setActiveVolume (line 10) | setActiveVolume(){}
  method lookupTopics (line 10) | lookupTopics(t){return t.reduce((t,e)=>t.concat(this.references[e]||[]),...
  method onIntersectViewport (line 10) | onIntersectViewport(){this.name&&this.store.setActiveVolume(this.name)}
  method provide (line 10) | provide(){return{references:this.references,store:this.store}}
  method created (line 10) | created(){this.store.reset()}
  method data (line 10) | data(){return{topicData:null}}
  method beforeRouteEnter (line 10) | beforeRouteEnter(t,e,n){Object(r["b"])(t,e,n).then(t=>n(e=>{e.topicData=...
  method beforeRouteUpdate (line 10) | beforeRouteUpdate(t,e,n){Object(r["d"])(t,e)?Object(r["b"])(t,e,n).then(...
  method topicData (line 10) | topicData(){this.$nextTick(()=>{this.newContentMounted()})}
Copy disabled (too large) Download .json
Condensed preview — 2691 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,699K chars).
[
  {
    "path": ".github/ISSUE_TEMPLATE/bug-report.md",
    "chars": 768,
    "preview": "---\nname: Bug Report\nabout: Create a report to help us improve\ntitle: ''\nlabels: bug\nassignees: dscyrescotti\n\n---\n\n**Des"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature-request.md",
    "chars": 614,
    "preview": "---\nname: Feature Request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: dscyrescotti\n"
  },
  {
    "path": ".github/workflows/swift.yml",
    "chars": 1300,
    "preview": "name: Swift\n\non:\n  push:\n    branches: [ main ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  build:\n    runs-on: maco"
  },
  {
    "path": ".gitignore",
    "chars": 2162,
    "preview": "# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n"
  },
  {
    "path": "Demo/Demo/App/DemoApp.swift",
    "chars": 180,
    "preview": "import SwiftUI\n\n@main\nstruct DemoApp: App {\n    var body: some Scene {\n        WindowGroup {\n            MainView()\n    "
  },
  {
    "path": "Demo/Demo/App/MainView.swift",
    "chars": 2282,
    "preview": "import SwiftUI\n\nstruct MainView: View {\n    @State private var route: Route? = nil\n    var body: some View {\n        Nav"
  },
  {
    "path": "Demo/Demo/Components/LandmarkCard.swift",
    "chars": 1265,
    "preview": "import SwiftUI\n\nstruct LandmarkCard: View {\n    let landmark: Landmark\n\n    var body: some View {\n        ZStack(alignme"
  },
  {
    "path": "Demo/Demo/Components/SneakerCard.swift",
    "chars": 3426,
    "preview": "import SwiftUI\n\nstruct SneakerCard: View {\n    let sneaker: Sneaker\n    let translation: CGFloat\n    @Environment(\\.hori"
  },
  {
    "path": "Demo/Demo/Components/SneakerItemRow.swift",
    "chars": 1565,
    "preview": "import SwiftUI\n\nstruct SneakerItemRow: View {\n    let item: SneakerItem\n    var body: some View {\n        HStack(alignme"
  },
  {
    "path": "Demo/Demo/Demos/CarouselStack/Scenes/CarouselStackDemoView.swift",
    "chars": 5179,
    "preview": "import SwiftUI\nimport Combine\nimport ShuffleIt\n\nstruct CarouselStackDemoView: View {\n    @Environment(\\.dismiss) var dis"
  },
  {
    "path": "Demo/Demo/Demos/ShuffleDeck/Scenes/ShuffleDeckDemoView.swift",
    "chars": 2508,
    "preview": "import SwiftUI\nimport Combine\nimport ShuffleIt\nimport MapKit\n\nstruct ShuffleDeckDemoView: View {\n    @Environment(\\.dism"
  },
  {
    "path": "Demo/Demo/Demos/ShuffleStack/Scenes/ShuffleStackDemoView.swift",
    "chars": 5226,
    "preview": "import Combine\nimport SwiftUI\nimport ShuffleIt\n\nstruct ShuffleStackDemoView: View {\n    @Environment(\\.dismiss) var dism"
  },
  {
    "path": "Demo/Demo/Demos/ShuffleStack/Scenes/TimingShuffleStackDemoView.swift",
    "chars": 5398,
    "preview": "import Combine\nimport SwiftUI\nimport ShuffleIt\n\nstruct TimingShuffleStackDemoView: View {\n    @Environment(\\.dismiss) va"
  },
  {
    "path": "Demo/Demo/Extensions/Color+Extension.swift",
    "chars": 1070,
    "preview": "import SwiftUI\n\n#if os(macOS)\ntypealias _Color = NSColor\n#else\ntypealias _Color = UIColor\n#endif\n\nextension Color {\n    "
  },
  {
    "path": "Demo/Demo/Models/Landmark.swift",
    "chars": 685,
    "preview": "import MapKit\nimport Foundation\n\nstruct Landmark: Decodable, Identifiable {\n    let id: String\n    let image: String\n   "
  },
  {
    "path": "Demo/Demo/Models/Sneaker.swift",
    "chars": 886,
    "preview": "import Foundation\n\nstruct Sneaker: Decodable {\n    let id: String\n    let title: String\n    let slogan: String\n    let i"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/AccentColor.colorset/Contents.json",
    "chars": 123,
    "preview": "{\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "chars": 6652,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"40.png\",\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x2"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/christ_the_redeemer.imageset/Contents.json",
    "chars": 238,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"christ_the_redeemer.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/eiffel_tower.imageset/Contents.json",
    "chars": 231,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"eiffel_tower.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"a"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/great_wall_of_china.imageset/Contents.json",
    "chars": 238,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"great_wall_of_china.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/merlion_statue.imageset/Contents.json",
    "chars": 233,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"merlion_statue.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/niagara_falls.imageset/Contents.json",
    "chars": 232,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"niagara_falls.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \""
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/petronas_towers.imageset/Contents.json",
    "chars": 234,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"petronas_towers.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n   "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/shwedagon_pagoda.imageset/Contents.json",
    "chars": 235,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"shwedagon_pagoda.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n  "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/sphinx_statue.imageset/Contents.json",
    "chars": 225,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"sphinx.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\""
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/landmarks/statue_of_liberty.imageset/Contents.json",
    "chars": 236,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"statue_of_liberty.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/Contents.json",
    "chars": 448,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"swift-theming-logo-with-text 1.png\",\n      \"idiom\" : \"universal\",\n      \"scal"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-force-1-mid.imageset/Contents.json",
    "chars": 165,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-force-1-mid.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n   "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force1.imageset/Contents.json",
    "chars": 160,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-force1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"aut"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force2.imageset/Contents.json",
    "chars": 160,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-force2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"aut"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force3.imageset/Contents.json",
    "chars": 160,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-force3.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"aut"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force4.imageset/Contents.json",
    "chars": 160,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-force4.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"aut"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force5.imageset/Contents.json",
    "chars": 160,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-force5.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"aut"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordan-1.imageset/Contents.json",
    "chars": 162,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-jordan-1.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"a"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan1.imageset/Contents.json",
    "chars": 161,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-jorden1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"au"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan2.imageset/Contents.json",
    "chars": 161,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-jorden2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"au"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan3.imageset/Contents.json",
    "chars": 161,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-jorden3.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"au"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainer-sc-high.imageset/Contents.json",
    "chars": 169,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-trainer-sc-high.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/air-trainer1.imageset/Contents.json",
    "chars": 162,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-trainer1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"a"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/air-trainer2.imageset/Contents.json",
    "chars": 162,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"air-trainer2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"a"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-retro-premium.imageset/Contents.json",
    "chars": 173,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"dunk-high-retro-premium.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\""
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-vintage.imageset/Contents.json",
    "chars": 167,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"dunk-high-vintage.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infinity.imageset/Contents.json",
    "chars": 164,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"kyrie-infinity.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/kyrie-infinity1.imageset/Contents.json",
    "chars": 165,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"kyrie-infinity1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n   "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/kyrie-infinity2.imageset/Contents.json",
    "chars": 165,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"kyrie-infinity2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n   "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/nike-air-presto.imageset/Contents.json",
    "chars": 165,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"nike-air-presto.png\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n   "
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/presto1.imageset/Contents.json",
    "chars": 157,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"presto1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/presto2.imageset/Contents.json",
    "chars": 157,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"presto2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/retros/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/retros/retro1.imageset/Contents.json",
    "chars": 156,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"retro1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\""
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/retros/retro2.imageset/Contents.json",
    "chars": 156,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"retro2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\""
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/Contents.json",
    "chars": 63,
    "preview": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage1.imageset/Contents.json",
    "chars": 158,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"vintage1.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"autho"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage2.imageset/Contents.json",
    "chars": 158,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"vintage2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"autho"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage3.imageset/Contents.json",
    "chars": 158,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"vintage3.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"autho"
  },
  {
    "path": "Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage4.imageset/Contents.json",
    "chars": 156,
    "preview": "{\n  \"images\" : [\n    {\n      \"filename\" : \"retro2.svg\",\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\""
  },
  {
    "path": "Demo/Demo/Resources/Json/Landmarks.json",
    "chars": 2182,
    "preview": "[\n    {\n        \"id\": \"christ_the_redeemer\",\n        \"image\": \"christ_the_redeemer\",\n        \"name\": \"Christ the Redeeme"
  },
  {
    "path": "Demo/Demo/Resources/Json/Sneakers.json",
    "chars": 8455,
    "preview": "[\n    {\n        \"id\": \"air-force-1-mid\",\n        \"title\": \"Air Force\",\n        \"slogan\": \"To Air force, or not to the Ai"
  },
  {
    "path": "Demo/Demo/Resources/Launch Screen.storyboard",
    "chars": 3037,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
  },
  {
    "path": "Demo/Demo/ViewModifier/DragGestureViewModifier.swift",
    "chars": 1676,
    "preview": "import SwiftUI\n\n// MARK: - https://developer.apple.com/forums/thread/123034\nstruct DragGestureViewModifier: ViewModifier"
  },
  {
    "path": "Demo/Demo.xcodeproj/project.pbxproj",
    "chars": 22383,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 55;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "chars": 135,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef"
  },
  {
    "path": "Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "chars": 238,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "LICENSE",
    "chars": 1070,
    "preview": "MIT License\n\nCopyright (c) 2022 Dscyre Scotti\n\nPermission is hereby granted, free of charge, to any person obtaining a c"
  },
  {
    "path": "Package.swift",
    "chars": 1827,
    "preview": "// swift-tools-version: 5.6\n// The swift-tools-version declares the minimum version of Swift required to build this pack"
  },
  {
    "path": "README.md",
    "chars": 7695,
    "preview": "<p align=\"center\">\n<img width=\"70%\" src=\"./Assets/ShuffleIt.png\">\n</p>\n\n<p align=\"center\">\n    <a href=\"https://swiftpac"
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselAnimation.swift",
    "chars": 1038,
    "preview": "import SwiftUI\n\n/// An enumeration of carousel animation that maps to `SwiftUI` animation.\npublic enum CarouselAnimation"
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselContext.swift",
    "chars": 762,
    "preview": "import SwiftUI\n\n/// A structure that provides information about sliding.\npublic struct CarouselContext {\n    /// A prope"
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselDisabled.swift",
    "chars": 531,
    "preview": "import SwiftUI\n\n/// An environment key for a flag to decide on whether sliding is disabled or not.\n@available(iOS 15.0, "
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselPadding.swift",
    "chars": 326,
    "preview": "import SwiftUI\n\n/// An environment key for carousel padding.\nstruct CarouselPaddingKey: EnvironmentKey {\n    static var "
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselScale.swift",
    "chars": 315,
    "preview": "import SwiftUI\n\n/// An environment key for carousel scale.\nstruct CarouselScaleKey: EnvironmentKey {\n    static let defa"
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselSpacing.swift",
    "chars": 326,
    "preview": "import SwiftUI\n\n/// An environment key for carousel spacing.\nstruct CarouselSpacingKey: EnvironmentKey {\n    static var "
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselStyle.swift",
    "chars": 713,
    "preview": "import SwiftUI\n\n/// An enumeration of carousel style that is used to change sliding behaviour of the carousel stack view"
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselTranslation.swift",
    "chars": 374,
    "preview": "import SwiftUI\n\n/// An environment key for carousel translation.\nstruct CarouselTranslationKey: EnvironmentKey {\n    sta"
  },
  {
    "path": "Sources/CarouselStack/EnvironmentValues/CarouselTrigger.swift",
    "chars": 641,
    "preview": "import SwiftUI\nimport Combine\n\n/// An enumeratoin of carousel direction.\npublic enum CarouselDirection {\n    /// A slide"
  },
  {
    "path": "Sources/CarouselStack/Extensions/CarouselStack+View.swift",
    "chars": 11139,
    "preview": "import SwiftUI\nimport Combine\n\npublic extension View {\n    /// A modifer that overrides default carousel style of the ca"
  },
  {
    "path": "Sources/CarouselStack/View/CarouselStack+Content.swift",
    "chars": 3220,
    "preview": "import SwiftUI\n\nextension CarouselStack {\n    /// A view that renders the content view for the element of the current in"
  },
  {
    "path": "Sources/CarouselStack/View/CarouselStack+Data.swift",
    "chars": 814,
    "preview": "import Utils\nimport SwiftUI\n\nextension CarouselStack {\n    /// A property that provides the upcoming element of left sid"
  },
  {
    "path": "Sources/CarouselStack/View/CarouselStack+Gesture.swift",
    "chars": 1483,
    "preview": "import SwiftUI\n\nextension CarouselStack {\n    /// A drag gesture that listens gesture state on content views and calcula"
  },
  {
    "path": "Sources/CarouselStack/View/CarouselStack+Sliding.swift",
    "chars": 4818,
    "preview": "import SwiftUI\n\nextension CarouselStack {\n    /// A method that mimics sliding behaviour for the purpose of programmatic"
  },
  {
    "path": "Sources/CarouselStack/View/CarouselStack.swift",
    "chars": 8233,
    "preview": "import Utils\nimport SwiftUI\n#if canImport(UtilsForTest)\nimport UtilsForTest\nimport ViewInspector\n#endif\n\n/// A stack vie"
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckAnimation.swift",
    "chars": 1063,
    "preview": "import SwiftUI\n\n/// An enumeration of shuffle deck animation that maps to `SwiftUI` animation.\npublic enum ShuffleDeckAn"
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckContext.swift",
    "chars": 792,
    "preview": "import SwiftUI\n\n/// A structure that provides information about shuffling.\npublic struct ShuffleDeckContext {\n    /// A "
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckDisabled.swift",
    "chars": 544,
    "preview": "import SwiftUI\n\n/// An environent key for a flag to decide on whether shuffling is disabled or not.\n@available(iOS 15.0,"
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckScale.swift",
    "chars": 358,
    "preview": "import SwiftUI\n\n/// An environment key for shuffle deck scale.\nstruct ShuffleDeckScaleKey: EnvironmentKey {\n    static v"
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckStyle.swift",
    "chars": 753,
    "preview": "import SwiftUI\n\n/// An enumeration of shuffle deck style that is used to change shuffling behaviour of the shuffle deck "
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckTranslation.swift",
    "chars": 389,
    "preview": "import SwiftUI\n\n/// An environment key for shuffle deck translation.\nstruct ShuffleDeckTranslationKey: EnvironmentKey {\n"
  },
  {
    "path": "Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckTrigger.swift",
    "chars": 677,
    "preview": "import SwiftUI\nimport Combine\n\n/// An enumeration of shuffle deck direction.\npublic enum ShuffleDeckDirection {\n    /// "
  },
  {
    "path": "Sources/ShuffleDeck/Extensions/ShuffleDeck+View.swift",
    "chars": 8948,
    "preview": "import SwiftUI\nimport Combine\n\npublic extension View {\n    /// A modifier that overrides default shuffle animation of th"
  },
  {
    "path": "Sources/ShuffleDeck/View/ShuffleDeck+Content.swift",
    "chars": 8582,
    "preview": "import SwiftUI\n\nextension ShuffleDeck {\n    /// A view that renders the content view with the element of the current ind"
  },
  {
    "path": "Sources/ShuffleDeck/View/ShuffleDeck+Data.swift",
    "chars": 810,
    "preview": "import Utils\nimport SwiftUI\n\nextension ShuffleDeck {\n    /// A method that generates the upcoming element of left side.\n"
  },
  {
    "path": "Sources/ShuffleDeck/View/ShuffleDeck+Gesture.swift",
    "chars": 1339,
    "preview": "import SwiftUI\n\nextension ShuffleDeck {\n    /// A drag gesture that listens gesture state on content views and calculate"
  },
  {
    "path": "Sources/ShuffleDeck/View/ShuffleDeck+Shuffling.swift",
    "chars": 5406,
    "preview": "import Utils\nimport SwiftUI\n\nextension ShuffleDeck {\n    /// A method that mimics shuffling behavoir for the purpose of "
  },
  {
    "path": "Sources/ShuffleDeck/View/ShuffleDeck.swift",
    "chars": 8432,
    "preview": "import Utils\nimport SwiftUI\n#if canImport(UtilsForTest)\nimport UtilsForTest\nimport ViewInspector\n#endif\n\n/// A stack vie"
  },
  {
    "path": "Sources/ShuffleIt/ShuffleIt.docc/ShuffleIt.md",
    "chars": 681,
    "preview": "# ``ShuffleIt``\n\nA UI element library for **SwiftUI**.\n\n## Overview\n\n**ShuffleIt** is a user interface library for **Swi"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleAnimation.swift",
    "chars": 1029,
    "preview": "import SwiftUI\n\n/// An enumeration of shuffle animation that maps to `SwiftUI` animation.\npublic enum ShuffleAnimation {"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleContext.swift",
    "chars": 753,
    "preview": "import SwiftUI\n\n/// A structure that provides information about shuffling.\npublic struct ShuffleContext {\n    /// A prop"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleDiabled.swift",
    "chars": 529,
    "preview": "import SwiftUI\n\n/// An environment key for a flag to decide on whether shuffling is disabled or not.\n@available(iOS 15.0"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleOffset.swift",
    "chars": 343,
    "preview": "import Utils\nimport SwiftUI\n\n/// An environment key for shuffle stack offset.\nstruct ShuffleOffsetKey: EnvironmentKey {\n"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShufflePadding.swift",
    "chars": 327,
    "preview": "import SwiftUI\n\n/// An environment key for shuffle stack padding.\nstruct ShufflePaddingKey: EnvironmentKey {\n    static "
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleScale.swift",
    "chars": 349,
    "preview": "import SwiftUI\n\n/// An environment key for shuffle stack scale.\nstruct ShuffleScaleKey: EnvironmentKey {\n    static var "
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleStyle.swift",
    "chars": 742,
    "preview": "import SwiftUI\n\n/// An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleTranslation.swift",
    "chars": 367,
    "preview": "import SwiftUI\n\n/// An environment key for suffle translation.\nstruct ShuffleTranslationKey: EnvironmentKey {\n    static"
  },
  {
    "path": "Sources/ShuffleStack/EnvironmentValues/ShuffleTrigger.swift",
    "chars": 635,
    "preview": "import SwiftUI\nimport Combine\n\n/// An enumeration of shuffle direction.\npublic enum ShuffleDirection {\n    /// A shuffle"
  },
  {
    "path": "Sources/ShuffleStack/Extensions/ShuffleStack+View.swift",
    "chars": 11316,
    "preview": "import SwiftUI\nimport Combine\n\npublic extension View {\n    /// A modifer that overrides default shuffle style of the shu"
  },
  {
    "path": "Sources/ShuffleStack/View/ShuffleStack+Content.swift",
    "chars": 4298,
    "preview": "import SwiftUI\n\nextension ShuffleStack {\n    /// A view that renders the content view for the element of the previous in"
  },
  {
    "path": "Sources/ShuffleStack/View/ShuffleStack+Data.swift",
    "chars": 533,
    "preview": "import SwiftUI\n\nextension ShuffleStack {\n    /// A property that provides the upcoming element of left side.\n    interna"
  },
  {
    "path": "Sources/ShuffleStack/View/ShuffleStack+Gesture.swift",
    "chars": 809,
    "preview": "import SwiftUI\n\nextension ShuffleStack {\n    /// A drag gesture that listens gesture state on content views and calculat"
  },
  {
    "path": "Sources/ShuffleStack/View/ShuffleStack+Shuffling.swift",
    "chars": 4124,
    "preview": "import Utils\nimport SwiftUI\n\nextension ShuffleStack {\n    /// A method that mimics shuffling behaviour for the purpose o"
  },
  {
    "path": "Sources/ShuffleStack/View/ShuffleStack.swift",
    "chars": 8086,
    "preview": "import Utils\nimport SwiftUI\n#if canImport(UtilsForTest)\nimport UtilsForTest\nimport ViewInspector\n#endif\n\n/// A stack vie"
  },
  {
    "path": "Sources/Utils/Extensions/RandomAccessCollection+Extension.swift",
    "chars": 2791,
    "preview": "import Foundation\n\npublic extension RandomAccessCollection {\n    // MARK: - Loop\n    /// A method that returns the upcom"
  },
  {
    "path": "Sources/Utils/PreferenceKeys/SizePreferenceKey.swift",
    "chars": 288,
    "preview": "import SwiftUI\n\n/// A perference key to reveal the size of child view.\npublic struct SizePreferenceKey: PreferenceKey {\n"
  },
  {
    "path": "Sources/UtilsForTest/Inspection.swift",
    "chars": 465,
    "preview": "#if canImport(ViewInspector)\nimport Combine\nimport SwiftUI\nimport ViewInspector\n\npublic final class Inspection<V> {\n    "
  },
  {
    "path": "Tests/ShuffleItTests/CarouselStack/CarouselStackGestureTests.swift",
    "chars": 3641,
    "preview": "import XCTest\nimport Combine\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\n#if !os(tvOS)\nfinal "
  },
  {
    "path": "Tests/ShuffleItTests/CarouselStack/CarouselStackShufflingTests.swift",
    "chars": 14260,
    "preview": "import XCTest\nimport SwiftUI\nimport Combine\nimport ViewInspector\n@testable import ShuffleItForTest\n\nfinal class Carousel"
  },
  {
    "path": "Tests/ShuffleItTests/CarouselStack/CarouselStackTests.swift",
    "chars": 4581,
    "preview": "import XCTest\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\nfinal class CarouselStackTests: Bas"
  },
  {
    "path": "Tests/ShuffleItTests/ShuffleDeck/ShuffleDeckGestureTests.swift",
    "chars": 3950,
    "preview": "import XCTest\nimport Combine\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\n#if !os(tvOS)\nfinal "
  },
  {
    "path": "Tests/ShuffleItTests/ShuffleDeck/ShuffleDeckSlidingTests.swift",
    "chars": 13769,
    "preview": "import XCTest\nimport SwiftUI\nimport Combine\nimport ViewInspector\n@testable import ShuffleItForTest\n\nfinal class ShuffleD"
  },
  {
    "path": "Tests/ShuffleItTests/ShuffleDeck/ShuffleDeckTests.swift",
    "chars": 2791,
    "preview": "import XCTest\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\nfinal class ShuffleDeckTests: BaseT"
  },
  {
    "path": "Tests/ShuffleItTests/ShuffleStack/ShuffleStackGestureTests.swift",
    "chars": 3847,
    "preview": "import XCTest\nimport Combine\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\n#if !os(tvOS)\nfinal "
  },
  {
    "path": "Tests/ShuffleItTests/ShuffleStack/ShuffleStackShufflingTests.swift",
    "chars": 15181,
    "preview": "import XCTest\nimport Combine\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\nfinal class ShuffleS"
  },
  {
    "path": "Tests/ShuffleItTests/ShuffleStack/ShuffleStackTests.swift",
    "chars": 16011,
    "preview": "import XCTest\nimport Combine\nimport SwiftUI\nimport ViewInspector\n@testable import ShuffleItForTest\n\nfinal class ShuffleS"
  },
  {
    "path": "Tests/ShuffleItTests/Utils/BaseTestCase.swift",
    "chars": 147,
    "preview": "import SwiftUI\nimport XCTest\n\nclass BaseTestCase: XCTestCase {\n    let colors: [Color] = [.red, .orange, .yellow, .green"
  },
  {
    "path": "Tests/ShuffleItTests/Utils/ColorView.swift",
    "chars": 193,
    "preview": "import SwiftUI\nimport ViewInspector\n\nstruct ColorView: View {\n    let color: Color\n    var body: some View {\n        col"
  },
  {
    "path": "Tests/ShuffleItTests/Utils/ValueSpy.swift",
    "chars": 344,
    "preview": "import Foundation\nimport Combine\n\nclass ValueSpy<Value> {\n    private(set) var values: [Value] = []\n    private var canc"
  },
  {
    "path": "codecov.yaml",
    "chars": 325,
    "preview": "codecov:\n  require_ci_to_pass: yes\n\ncoverage:\n  precision: 2\n  round: down\n  range: \"70...100\"\n  ignore:\n    - \"Tests\"\n\n"
  },
  {
    "path": "docs/css/documentation-topic.3bca6578.css",
    "chars": 60617,
    "preview": "/*!\n * This source file is part of the Swift.org open source project\n * \n * Copyright (c) 2021 Apple Inc. and the Swift "
  },
  {
    "path": "docs/css/documentation-topic~topic~tutorials-overview.82acfe22.css",
    "chars": 40829,
    "preview": "/*!\n * This source file is part of the Swift.org open source project\n * \n * Copyright (c) 2021 Apple Inc. and the Swift "
  },
  {
    "path": "docs/css/index.12bb178a.css",
    "chars": 26379,
    "preview": "/*!\n * This source file is part of the Swift.org open source project\n * \n * Copyright (c) 2021 Apple Inc. and the Swift "
  },
  {
    "path": "docs/css/topic.ee15af52.css",
    "chars": 41761,
    "preview": "/*!\n * This source file is part of the Swift.org open source project\n * \n * Copyright (c) 2021 Apple Inc. and the Swift "
  },
  {
    "path": "docs/css/tutorials-overview.06e8bcf7.css",
    "chars": 17105,
    "preview": "/*!\n * This source file is part of the Swift.org open source project\n * \n * Copyright (c) 2021 Apple Inc. and the Swift "
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation/!=(_:_:).json",
    "chars": 4143,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"static\"},{\"kind\":"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation/easein.json",
    "chars": 2533,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"case\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation/easeinout.json",
    "chars": 2574,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"case\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation/easeout.json",
    "chars": 2546,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"case\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation/equatable-implementations.json",
    "chars": 2495,
    "preview": "{\"variants\":[{\"paths\":[\"\\/documentation\\/shuffleit\\/carouselanimation\\/equatable-implementations\"],\"traits\":[{\"interface"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation/linear.json",
    "chars": 2529,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"case\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselanimation.json",
    "chars": 7899,
    "preview": "{\"seeAlsoSections\":[{\"title\":\"CarouselStack\",\"identifiers\":[\"doc:\\/\\/ShuffleIt\\/documentation\\/ShuffleIt\\/CarouselStack\""
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselcontext/direction.json",
    "chars": 3570,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"let\"},{\"kind\":\"te"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselcontext/index.json",
    "chars": 2743,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"let\"},{\"kind\":\"te"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselcontext/previousindex.json",
    "chars": 2834,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"let\"},{\"kind\":\"te"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselcontext.json",
    "chars": 6738,
    "preview": "{\"seeAlsoSections\":[{\"title\":\"CarouselStack\",\"identifiers\":[\"doc:\\/\\/ShuffleIt\\/documentation\\/ShuffleIt\\/CarouselStack\""
  },
  {
    "path": "docs/data/documentation/shuffleit/carouseldirection/!=(_:_:).json",
    "chars": 4055,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"static\"},{\"kind\":"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouseldirection/equatable-implementations.json",
    "chars": 2407,
    "preview": "{\"variants\":[{\"paths\":[\"\\/documentation\\/shuffleit\\/carouseldirection\\/equatable-implementations\"],\"traits\":[{\"interface"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouseldirection/left.json",
    "chars": 2441,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"case\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouseldirection/right.json",
    "chars": 2454,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"case\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouseldirection.json",
    "chars": 6697,
    "preview": "{\"seeAlsoSections\":[{\"title\":\"CarouselStack\",\"identifiers\":[\"doc:\\/\\/ShuffleIt\\/documentation\\/ShuffleIt\\/CarouselStack\""
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accentcolor(_:).json",
    "chars": 4992,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(activationpoint:)-4y62.json",
    "chars": 5675,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(activationpoint:)-695kx.json",
    "chars": 5713,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(addtraits:).json",
    "chars": 5713,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(hidden:).json",
    "chars": 5463,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(hint:).json",
    "chars": 5473,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(identifier:).json",
    "chars": 5534,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(inputlabels:).json",
    "chars": 5596,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(label:).json",
    "chars": 5489,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(removetraits:).json",
    "chars": 5762,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(selectionidentifier:).json",
    "chars": 5441,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(sortpriority:).json",
    "chars": 5566,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibility(value:).json",
    "chars": 5489,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityaction(_:_:).json",
    "chars": 5860,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityaction(action:label:).json",
    "chars": 5629,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityaction(named:_:)-3lqsr.json",
    "chars": 6035,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityaction(named:_:)-69c69.json",
    "chars": 5931,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityaction(named:_:)-rgyh.json",
    "chars": 6208,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityactivationpoint(_:)-5bbv5.json",
    "chars": 5334,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityactivationpoint(_:)-8dokx.json",
    "chars": 5367,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityaddtraits(_:).json",
    "chars": 5315,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityadjustableaction(_:).json",
    "chars": 5877,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitychartdescriptor(_:).json",
    "chars": 5005,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitychildren(children:).json",
    "chars": 5005,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-1586n.json",
    "chars": 7048,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-1u9b5.json",
    "chars": 6883,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-3t2kq.json",
    "chars": 7277,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-46frq.json",
    "chars": 6994,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-47g1f.json",
    "chars": 7326,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-5xqqc.json",
    "chars": 7148,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-8rfm7.json",
    "chars": 7078,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilitycustomcontent(_:_:importance:)-9cou3.json",
    "chars": 7657,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityelement(children:).json",
    "chars": 4829,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityfocused(_:).json",
    "chars": 5366,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityfocused(_:equals:).json",
    "chars": 6287,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityheading(_:).json",
    "chars": 5331,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityhidden(_:).json",
    "chars": 5145,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityhint(_:)-2j7te.json",
    "chars": 5474,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityhint(_:)-37ope.json",
    "chars": 5296,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityhint(_:)-7yi0h.json",
    "chars": 5191,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityidentifier(_:).json",
    "chars": 5203,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityignoresinvertcolors(_:).json",
    "chars": 4622,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityinputlabels(_:)-3feba.json",
    "chars": 5292,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  },
  {
    "path": "docs/data/documentation/shuffleit/carouselstack/accessibilityinputlabels(_:)-3p703.json",
    "chars": 5397,
    "preview": "{\"primaryContentSections\":[{\"kind\":\"declarations\",\"declarations\":[{\"tokens\":[{\"kind\":\"keyword\",\"text\":\"func\"},{\"kind\":\"t"
  }
]

// ... and 2491 more files (download for full content)

About this extraction

This page contains the full source code of the dscyrescotti/ShuffleIt GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2691 files (14.1 MB), approximately 3.9M tokens, and a symbol index with 1269 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!