├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ └── feature-request.md └── workflows │ └── swift.yml ├── .gitignore ├── Assets ├── CarouselStack-Demo.gif ├── Previews │ ├── CarouselStack-Preview.gif │ ├── ShuffleDeck-Preview.gif │ └── ShuffleStack-Preview.gif ├── ShuffleDeck-Demo.gif ├── ShuffleIt.png └── ShuffleStack-Demo.gif ├── Demo ├── Demo.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── 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 │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 128.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 16.png │ │ │ ├── 167.png │ │ │ ├── 172.png │ │ │ ├── 180.png │ │ │ ├── 196.png │ │ │ ├── 20.png │ │ │ ├── 216.png │ │ │ ├── 256.png │ │ │ ├── 29.png │ │ │ ├── 32.png │ │ │ ├── 40.png │ │ │ ├── 48.png │ │ │ ├── 50.png │ │ │ ├── 512.png │ │ │ ├── 55.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 64.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ ├── 88.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── landmarks │ │ │ ├── Contents.json │ │ │ ├── christ_the_redeemer.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── christ_the_redeemer.svg │ │ │ ├── eiffel_tower.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── eiffel_tower.svg │ │ │ ├── great_wall_of_china.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── great_wall_of_china.svg │ │ │ ├── merlion_statue.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── merlion_statue.svg │ │ │ ├── niagara_falls.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── niagara_falls.svg │ │ │ ├── petronas_towers.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── petronas_towers.svg │ │ │ ├── shwedagon_pagoda.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── shwedagon_pagoda.svg │ │ │ ├── sphinx_statue.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── sphinx.svg │ │ │ └── statue_of_liberty.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── statue_of_liberty.svg │ │ ├── shuffle-it-logo.imageset │ │ │ ├── Contents.json │ │ │ ├── swift-theming-logo-with-text 1.png │ │ │ ├── swift-theming-logo-with-text 1@2x.png │ │ │ └── swift-theming-logo-with-text 1@3x.png │ │ └── sneakers │ │ │ ├── Contents.json │ │ │ ├── air-force-1-mid.imageset │ │ │ ├── Contents.json │ │ │ └── air-force-1-mid.png │ │ │ ├── air-forces │ │ │ ├── Contents.json │ │ │ ├── air-force1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-force1.svg │ │ │ ├── air-force2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-force2.svg │ │ │ ├── air-force3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-force3.svg │ │ │ ├── air-force4.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-force4.svg │ │ │ └── air-force5.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-force5.svg │ │ │ ├── air-jordan-1.imageset │ │ │ ├── Contents.json │ │ │ └── air-jordan-1.png │ │ │ ├── air-jordans │ │ │ ├── Contents.json │ │ │ ├── air-jordan1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-jorden1.svg │ │ │ ├── air-jordan2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-jorden2.svg │ │ │ └── air-jordan3.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-jorden3.svg │ │ │ ├── air-trainer-sc-high.imageset │ │ │ ├── Contents.json │ │ │ └── air-trainer-sc-high.png │ │ │ ├── air-trainers │ │ │ ├── Contents.json │ │ │ ├── air-trainer1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-trainer1.svg │ │ │ └── air-trainer2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── air-trainer2.svg │ │ │ ├── dunk-high-retro-premium.imageset │ │ │ ├── Contents.json │ │ │ └── dunk-high-retro-premium.png │ │ │ ├── dunk-high-vintage.imageset │ │ │ ├── Contents.json │ │ │ └── dunk-high-vintage.png │ │ │ ├── kyrie-infinity.imageset │ │ │ ├── Contents.json │ │ │ └── kyrie-infinity.png │ │ │ ├── kyrie-infiniy │ │ │ ├── Contents.json │ │ │ ├── kyrie-infinity1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── kyrie-infinity1.svg │ │ │ └── kyrie-infinity2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── kyrie-infinity2.svg │ │ │ ├── nike-air-presto.imageset │ │ │ ├── Contents.json │ │ │ └── nike-air-presto.png │ │ │ ├── prestos │ │ │ ├── Contents.json │ │ │ ├── presto1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── presto1.svg │ │ │ └── presto2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── presto2.svg │ │ │ ├── retros │ │ │ ├── Contents.json │ │ │ ├── retro1.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── retro1.svg │ │ │ └── retro2.imageset │ │ │ │ ├── Contents.json │ │ │ │ └── retro2.svg │ │ │ └── vintages │ │ │ ├── Contents.json │ │ │ ├── vintage1.imageset │ │ │ ├── Contents.json │ │ │ └── vintage1.svg │ │ │ ├── vintage2.imageset │ │ │ ├── Contents.json │ │ │ └── vintage2.svg │ │ │ ├── vintage3.imageset │ │ │ ├── Contents.json │ │ │ └── vintage3.svg │ │ │ └── vintage4.imageset │ │ │ ├── Contents.json │ │ │ └── retro2.svg │ ├── Json │ │ ├── Landmarks.json │ │ └── Sneakers.json │ └── Launch Screen.storyboard │ └── ViewModifier │ └── DragGestureViewModifier.swift ├── 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 │ ├── CarouselStack │ ├── ShuffleDeck │ ├── ShuffleIt.docc │ │ ├── Resources │ │ │ └── ShuffleIt.png │ │ └── ShuffleIt.md │ └── ShuffleStack ├── ShuffleItForTest │ ├── CarouselStack │ ├── ShuffleDeck │ └── ShuffleStack ├── 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.json │ └── shuffleit │ ├── carouselanimation.json │ ├── carouselanimation │ ├── !=(_:_:).json │ ├── easein.json │ ├── easeinout.json │ ├── easeout.json │ ├── equatable-implementations.json │ └── linear.json │ ├── carouselcontext.json │ ├── carouselcontext │ ├── direction.json │ ├── index.json │ └── previousindex.json │ ├── carouseldirection.json │ ├── carouseldirection │ ├── !=(_:_:).json │ ├── equatable-implementations.json │ ├── left.json │ └── right.json │ ├── carouselstack.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 │ ├── carouselstyle.json │ ├── carouselstyle │ ├── !=(_:_:).json │ ├── equatable-implementations.json │ ├── finitescroll.json │ └── infinitescroll.json │ ├── shuffleanimation.json │ ├── shuffleanimation │ ├── !=(_:_:).json │ ├── easein.json │ ├── easeinout.json │ ├── easeout.json │ ├── equatable-implementations.json │ └── linear.json │ ├── shufflecontext.json │ ├── shufflecontext │ ├── direction.json │ ├── index.json │ └── previousindex.json │ ├── shuffledeck.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 │ ├── shuffledeckanimation.json │ ├── shuffledeckanimation │ ├── !=(_:_:).json │ ├── easein.json │ ├── easeinout.json │ ├── easeout.json │ ├── equatable-implementations.json │ └── linear.json │ ├── shuffledeckcontext.json │ ├── shuffledeckcontext │ ├── direction.json │ ├── index.json │ └── previousindex.json │ ├── shuffledeckdirection.json │ ├── shuffledeckdirection │ ├── !=(_:_:).json │ ├── equatable-implementations.json │ ├── left.json │ └── right.json │ ├── shuffledeckstyle.json │ ├── shuffledeckstyle │ ├── !=(_:_:).json │ ├── equatable-implementations.json │ ├── finiteshuffle.json │ └── infiniteshuffle.json │ ├── shuffledirection.json │ ├── shuffledirection │ ├── !=(_:_:).json │ ├── equatable-implementations.json │ ├── left.json │ └── right.json │ ├── shufflestack.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 │ ├── shufflestyle.json │ └── shufflestyle │ ├── !=(_:_:).json │ ├── equatable-implementations.json │ ├── rotatein.json │ ├── rotateout.json │ └── slide.json ├── developer-og-twitter.jpg ├── developer-og.jpg ├── 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.html │ ├── index │ │ └── 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.html │ ├── index │ │ └── 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.html │ ├── index │ │ └── 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 ├── favicon.ico ├── favicon.svg ├── images └── ShuffleIt.png ├── img ├── added-icon.d6f7e47d.svg ├── deprecated-icon.015b4f17.svg ├── modified-icon.f496e73d.svg └── no-image@2x.df2a0a50.png ├── index.html ├── index └── index.json ├── 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 /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: dscyrescotti 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Minimum amount of code to reproduce: 15 | ``` 16 | /* add it here */ 17 | ``` 18 | Steps to reproduce the behavior: 19 | 1. Go to '...' 20 | 2. Click on '....' 21 | 3. Scroll down to '....' 22 | 4. See error 23 | 24 | **Expected behavior** 25 | A clear and concise description of what you expected to happen. 26 | 27 | **Screenshots** 28 | If applicable, add screenshots to help explain your problem. 29 | 30 | **Device information (please complete the following information):** 31 | - Device: [e.g. iPhone/Simulator] 32 | - OS: [e.g. iOS8.1] 33 | - Xcode version: [e.g. Xcode 13] 34 | 35 | **Additional context** 36 | Add any other context about the problem here. 37 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: dscyrescotti 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/swift.yml: -------------------------------------------------------------------------------- 1 | name: Swift 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | runs-on: macos-12 12 | steps: 13 | - uses: actions/checkout@v2 14 | - uses: maxim-lobanov/setup-xcode@v1 15 | with: 16 | xcode-version: '14.2' 17 | - name: Build 18 | run: swift build -v 19 | # - name: Build (iOS) 20 | # run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=ios" 21 | # - name: Build (macOS) 22 | # run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=macos" 23 | # - name: Build (tvOS) 24 | # run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=tvos" 25 | # - name: Build (watchOS) 26 | # run: xcrun xcodebuild -derivedDataPath "../.derivedData" clean build -scheme "ShuffleIt" -destination "generic/platform=watchos" 27 | - name: Run tests 28 | run: swift test --enable-code-coverage 29 | - name: Convert code coverage 30 | run: xcrun llvm-cov export -format="lcov" -instr-profile=$(find .build -name default.profdata) $(find .build -name ShuffleItPackageTests) > info.lcov 31 | - name: Codecov 32 | uses: codecov/codecov-action@v3.1.1 33 | with: 34 | file: info.lcov 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## User settings 6 | xcuserdata/ 7 | 8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 9 | *.xcscmblueprint 10 | *.xccheckout 11 | 12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 13 | build/ 14 | DerivedData/ 15 | *.moved-aside 16 | *.pbxuser 17 | !default.pbxuser 18 | *.mode1v3 19 | !default.mode1v3 20 | *.mode2v3 21 | !default.mode2v3 22 | *.perspectivev3 23 | !default.perspectivev3 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | 28 | ## App packaging 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | Packages/ 41 | Package.pins 42 | Package.resolved 43 | # *.xcodeproj 44 | # 45 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 46 | # hence it is not needed unless you have added a package configuration file to your project 47 | .swiftpm 48 | 49 | .build/ 50 | 51 | # CocoaPods 52 | # 53 | # We recommend against adding the Pods directory to your .gitignore. However 54 | # you should judge for yourself, the pros and cons are mentioned at: 55 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 56 | # 57 | # Pods/ 58 | # 59 | # Add this line if you want to avoid checking in source code from the Xcode workspace 60 | # *.xcworkspace 61 | 62 | # Carthage 63 | # 64 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 65 | # Carthage/Checkouts 66 | 67 | Carthage/Build/ 68 | 69 | # Accio dependency management 70 | Dependencies/ 71 | .accio/ 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. 76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 79 | 80 | fastlane/report.xml 81 | fastlane/Preview.html 82 | fastlane/screenshots/**/*.png 83 | fastlane/test_output 84 | 85 | # Code Injection 86 | # 87 | # After new code Injection tools there's a generated folder /iOSInjectionProject 88 | # https://github.com/johnno1962/injectionforxcode 89 | 90 | iOSInjectionProject/ -------------------------------------------------------------------------------- /Assets/CarouselStack-Demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/CarouselStack-Demo.gif -------------------------------------------------------------------------------- /Assets/Previews/CarouselStack-Preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/Previews/CarouselStack-Preview.gif -------------------------------------------------------------------------------- /Assets/Previews/ShuffleDeck-Preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/Previews/ShuffleDeck-Preview.gif -------------------------------------------------------------------------------- /Assets/Previews/ShuffleStack-Preview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/Previews/ShuffleStack-Preview.gif -------------------------------------------------------------------------------- /Assets/ShuffleDeck-Demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/ShuffleDeck-Demo.gif -------------------------------------------------------------------------------- /Assets/ShuffleIt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/ShuffleIt.png -------------------------------------------------------------------------------- /Assets/ShuffleStack-Demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Assets/ShuffleStack-Demo.gif -------------------------------------------------------------------------------- /Demo/Demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo/Demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Demo/Demo/App/DemoApp.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | @main 4 | struct DemoApp: App { 5 | var body: some Scene { 6 | WindowGroup { 7 | MainView() 8 | .preferredColorScheme(.light) 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Demo/Demo/App/MainView.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | struct MainView: View { 4 | @State private var route: Route? = nil 5 | var body: some View { 6 | NavigationView { 7 | List { 8 | Section { 9 | Button(action: { 10 | route = .shuffleStack 11 | }) { 12 | Label("ShuffleStack (Simple)", systemImage: "square.stack.3d.down.forward.fill") 13 | } 14 | Button(action: { 15 | route = .timingShuffleStack 16 | }) { 17 | Label("ShuffleStack (with Timer)", systemImage: "deskclock.fill") 18 | } 19 | Button(action: { 20 | route = .carouselStack 21 | }) { 22 | Label("CarouselStack", systemImage: "sparkles.rectangle.stack.fill") 23 | } 24 | Button(action: { 25 | route = .shuffleDeck 26 | }) { 27 | Label("ShuffleDeck", systemImage: "photo.on.rectangle.angled") 28 | } 29 | } header: { 30 | Text("ShuffleStack") 31 | } 32 | 33 | } 34 | .listStyle(.insetGrouped) 35 | .foregroundColor(.black) 36 | .navigationTitle("ShuffleIt ✌️") 37 | .fullScreenCover(item: $route) { route in 38 | switch route { 39 | case .shuffleStack: 40 | ShuffleStackDemoView() 41 | case .timingShuffleStack: 42 | TimingShuffleStackDemoView() 43 | case .carouselStack: 44 | CarouselStackDemoView() 45 | case .shuffleDeck: 46 | ShuffleDeckDemoView() 47 | } 48 | } 49 | } 50 | } 51 | } 52 | 53 | struct ContentView_Previews: PreviewProvider { 54 | static var previews: some View { 55 | MainView() 56 | } 57 | } 58 | 59 | enum Route: Identifiable { 60 | case shuffleStack 61 | case timingShuffleStack 62 | case carouselStack 63 | case shuffleDeck 64 | 65 | var id: String { 66 | switch self { 67 | case .shuffleStack: return "shuffle-stack" 68 | case .timingShuffleStack: return "timing-shuffle-stack" 69 | case .carouselStack: return "carousel-stack" 70 | case .shuffleDeck: return "shuffle-deck" 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo/Demo/Components/LandmarkCard.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | struct LandmarkCard: View { 4 | let landmark: Landmark 5 | 6 | var body: some View { 7 | ZStack(alignment: .bottomLeading) { 8 | Image(landmark.image) 9 | .resizable() 10 | LinearGradient( 11 | colors: [ 12 | .clear, 13 | .clear, 14 | .black.opacity(0.7) 15 | ], 16 | startPoint: .top, 17 | endPoint: .bottom 18 | ) 19 | VStack(alignment: .leading) { 20 | Text(landmark.name) 21 | .font(.title.bold()) 22 | Text(landmark.location) 23 | .font(.title3.bold()) 24 | } 25 | .foregroundColor(.white) 26 | .padding() 27 | } 28 | .frame(width: 300, height: 400) 29 | .cornerRadius(20) 30 | .shadow(radius: 10) 31 | } 32 | } 33 | 34 | struct LandmarkCard_Previews: PreviewProvider { 35 | static var previews: some View { 36 | LandmarkCard( 37 | landmark: Landmark( 38 | id: "shwedagon_pagoda", 39 | image: "shwedagon_pagoda", 40 | name: "Shwedagon Pagoda", 41 | location: "Yangon, Myanmar", 42 | lat: 0, 43 | long: 0, 44 | background: "" 45 | ) 46 | ) 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Demo/Demo/Components/SneakerItemRow.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | struct SneakerItemRow: View { 4 | let item: SneakerItem 5 | var body: some View { 6 | HStack(alignment: .top, spacing: 16) { 7 | Image(item.imageName) 8 | .resizable() 9 | .frame(width: 100, height: 100) 10 | .cornerRadius(16) 11 | VStack(alignment: .leading, spacing: 5) { 12 | Text(item.title) 13 | .font(.headline) 14 | .lineLimit(2) 15 | HStack(spacing: 5) { 16 | Group { 17 | Text(item.type) 18 | Text(item.colorVariants) 19 | } 20 | .padding(.horizontal, 10) 21 | .padding(.vertical, 5) 22 | .background(.gray.opacity(0.2)) 23 | .cornerRadius(10) 24 | } 25 | .font(.caption.bold()) 26 | Text(item.price) 27 | .font(.subheadline.bold()) 28 | } 29 | .frame(maxWidth: .infinity, alignment: .leading) 30 | } 31 | .padding(16) 32 | .background(.ultraThinMaterial) 33 | .cornerRadius(16) 34 | } 35 | } 36 | 37 | struct SneakerItemRow_Previews: PreviewProvider { 38 | static var previews: some View { 39 | SneakerItemRow( 40 | item: SneakerItem( 41 | id: "air-force4", 42 | imageName: "air-force4", 43 | title: "Nike Air Force 1 Mid '07 LV8 Next Nature", 44 | type: "Men's Shoes", 45 | colorVariants: "1 Color", 46 | price: "$130" 47 | ) 48 | ) 49 | .padding() 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Demo/Demo/Demos/ShuffleDeck/Scenes/ShuffleDeckDemoView.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import Combine 3 | import ShuffleIt 4 | import MapKit 5 | 6 | struct ShuffleDeckDemoView: View { 7 | @Environment(\.dismiss) var dismiss 8 | @State private var landmark: Landmark? 9 | 10 | let landmarks: [Landmark] = .landmarks() 11 | 12 | var body: some View { 13 | VStack(alignment: .leading, spacing: 0) { 14 | VStack(alignment: .leading) { 15 | Text("Captivating Landmarks") 16 | .font(.title.bold()) 17 | Text("For Your Next Adventure") 18 | .font(.title2.bold()) 19 | } 20 | .padding() 21 | Spacer() 22 | ShuffleDeck( 23 | landmarks, 24 | initialIndex: 0 25 | ) { landmark in 26 | LandmarkCard(landmark: landmark) 27 | } 28 | .shuffleDeckAnimation(.easeInOut) 29 | .shuffleDeckScale(0.5) 30 | .onShuffleDeck { context in 31 | landmark = landmarks[context.index] 32 | } 33 | .padding(.vertical) 34 | Spacer() 35 | Spacer() 36 | } 37 | .overlay(alignment: .topTrailing) { 38 | Button(action: { 39 | dismiss() 40 | }) { 41 | Image(systemName: "xmark.circle.fill") 42 | .font(.largeTitle) 43 | .foregroundStyle(.white) 44 | .background { 45 | Circle() 46 | .foregroundColor(.black.opacity(0.4)) 47 | .padding(4) 48 | } 49 | } 50 | .buttonStyle(.plain) 51 | .padding([.top, .horizontal]) 52 | } 53 | .background { 54 | if let landmark = landmark { 55 | GeometryReader { proxy in 56 | ZStack { 57 | Circle() 58 | .scale(1.1, anchor: .bottomTrailing) 59 | .position(x: proxy.size.width, y: proxy.size.height / 2.5) 60 | .foregroundColor(Color(hex: landmark.background).opacity(0.3)) 61 | Circle() 62 | .scale(0.7, anchor: .bottomTrailing) 63 | .position(x: 0, y: proxy.size.height / 1.5) 64 | .foregroundColor(Color(hex: landmark.background).opacity(0.2)) 65 | } 66 | .blur(radius: 40) 67 | .background(.white) 68 | .ignoresSafeArea() 69 | } 70 | } 71 | } 72 | .onAppear { 73 | landmark = landmarks.first 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /Demo/Demo/Extensions/Color+Extension.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | #if os(macOS) 4 | typealias _Color = NSColor 5 | #else 6 | typealias _Color = UIColor 7 | #endif 8 | 9 | extension Color { 10 | public init(hex: String) { 11 | self.init(_Color(hex: hex) ?? _Color()) 12 | } 13 | } 14 | 15 | extension _Color { 16 | public convenience init?(hex: String) { 17 | let r, g, b, a: CGFloat 18 | 19 | if hex.hasPrefix("#") { 20 | let start = hex.index(hex.startIndex, offsetBy: 1) 21 | let hexColor = String(hex[start...]) 22 | 23 | if hexColor.count == 8 { 24 | let scanner = Scanner(string: hexColor) 25 | var hexNumber: UInt64 = 0 26 | 27 | if scanner.scanHexInt64(&hexNumber) { 28 | r = CGFloat((hexNumber & 0xff000000) >> 24) / 255 29 | g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255 30 | b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255 31 | a = CGFloat(hexNumber & 0x000000ff) / 255 32 | 33 | self.init(red: r, green: g, blue: b, alpha: a) 34 | return 35 | } 36 | } 37 | } 38 | 39 | return nil 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Demo/Demo/Models/Landmark.swift: -------------------------------------------------------------------------------- 1 | import MapKit 2 | import Foundation 3 | 4 | struct Landmark: Decodable, Identifiable { 5 | let id: String 6 | let image: String 7 | let name: String 8 | let location: String 9 | let lat: Double 10 | let long: Double 11 | let background: String 12 | 13 | var coordinate: CLLocationCoordinate2D { 14 | CLLocationCoordinate2D(latitude: lat, longitude: long) 15 | } 16 | } 17 | 18 | extension Array where Element == Landmark { 19 | static func landmarks() -> Self { 20 | 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 [] } 21 | return landmarks 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Demo/Demo/Models/Sneaker.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | struct Sneaker: Decodable { 4 | let id: String 5 | let title: String 6 | let slogan: String 7 | let imageName: String 8 | let theme: SneakerTheme 9 | let items: [SneakerItem] 10 | } 11 | 12 | struct SneakerTheme: Decodable { 13 | let primary: String 14 | let secondary: String 15 | let tertiary: String 16 | let background: String 17 | let foreground: String 18 | } 19 | 20 | struct SneakerItem: Decodable, Identifiable { 21 | let id: String 22 | let imageName: String 23 | let title: String 24 | let type: String 25 | let colorVariants: String 26 | let price: String 27 | } 28 | 29 | extension Array where Element == Sneaker { 30 | static func sneakers() -> [Sneaker] { 31 | 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 [] } 32 | return sneakers 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/christ_the_redeemer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "christ_the_redeemer.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/eiffel_tower.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "eiffel_tower.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/great_wall_of_china.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "great_wall_of_china.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/merlion_statue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "merlion_statue.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/niagara_falls.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "niagara_falls.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/petronas_towers.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "petronas_towers.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/shwedagon_pagoda.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "shwedagon_pagoda.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/sphinx_statue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "sphinx.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/landmarks/statue_of_liberty.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "statue_of_liberty.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "template-rendering-intent" : "original" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "swift-theming-logo-with-text 1.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "swift-theming-logo-with-text 1@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "swift-theming-logo-with-text 1@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/swift-theming-logo-with-text 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/swift-theming-logo-with-text 1.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/swift-theming-logo-with-text 1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/swift-theming-logo-with-text 1@2x.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/swift-theming-logo-with-text 1@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/shuffle-it-logo.imageset/swift-theming-logo-with-text 1@3x.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-force-1-mid.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-force-1-mid.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-force-1-mid.imageset/air-force-1-mid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/air-force-1-mid.imageset/air-force-1-mid.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-force1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-force2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-force3.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-force4.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-forces/air-force5.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-force5.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordan-1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-jordan-1.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordan-1.imageset/air-jordan-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordan-1.imageset/air-jordan-1.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-jorden1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-jorden2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-jordans/air-jordan3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-jorden3.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainer-sc-high.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-trainer-sc-high.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainer-sc-high.imageset/air-trainer-sc-high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainer-sc-high.imageset/air-trainer-sc-high.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/air-trainer1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-trainer1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/air-trainers/air-trainer2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "air-trainer2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-retro-premium.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "dunk-high-retro-premium.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-retro-premium.imageset/dunk-high-retro-premium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-retro-premium.imageset/dunk-high-retro-premium.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-vintage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "dunk-high-vintage.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-vintage.imageset/dunk-high-vintage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/dunk-high-vintage.imageset/dunk-high-vintage.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infinity.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "kyrie-infinity.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infinity.imageset/kyrie-infinity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infinity.imageset/kyrie-infinity.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/kyrie-infinity1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "kyrie-infinity1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/kyrie-infiniy/kyrie-infinity2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "kyrie-infinity2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/nike-air-presto.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "nike-air-presto.png", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/nike-air-presto.imageset/nike-air-presto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Demo/Demo/Resources/Assets.xcassets/sneakers/nike-air-presto.imageset/nike-air-presto.png -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/presto1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "presto1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/prestos/presto2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "presto2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/retros/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/retros/retro1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "retro1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/retros/retro2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "retro2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "vintage1.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "vintage2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "vintage3.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Assets.xcassets/sneakers/vintages/vintage4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "retro2.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Demo/Demo/Resources/Json/Landmarks.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "christ_the_redeemer", 4 | "image": "christ_the_redeemer", 5 | "name": "Christ the Redeemer", 6 | "location": "Rio de Janeiro, Brazil", 7 | "lat": -22.9519, 8 | "long": -43.2105, 9 | "background": "#FFBF85FF" 10 | }, 11 | { 12 | "id": "eiffel_tower", 13 | "image": "eiffel_tower", 14 | "name": "Eiffel Tower", 15 | "location": "Paris, France", 16 | "lat": 48.8584, 17 | "long": 2.2945, 18 | "background": "#FFA490FF" 19 | }, 20 | { 21 | "id": "great_wall_of_china", 22 | "image": "great_wall_of_china", 23 | "name": "Great Wall of China", 24 | "location": "Huairou, China", 25 | "lat": 40.4319, 26 | "long": 116.5704, 27 | "background": "#FFDC62FF" 28 | }, 29 | { 30 | "id": "merlion_statue", 31 | "image": "merlion_statue", 32 | "name": "Merlion Statue", 33 | "location": "Singapore, Singapore", 34 | "lat": 1.2868, 35 | "long": 103.8545, 36 | "background": "#7451FFFF" 37 | }, 38 | { 39 | "id": "niagara_falls", 40 | "image": "niagara_falls", 41 | "name": "Niagara Falls", 42 | "location": "Ontario, Canada", 43 | "lat": 43.0962, 44 | "long": -79.0377, 45 | "background": "#FF4D00FF" 46 | }, 47 | { 48 | "id": "petronas_towers", 49 | "image": "petronas_towers", 50 | "name": "Petronas Towers", 51 | "location": "Kuala Lumpur, Malaysia", 52 | "lat": 3.1575, 53 | "long": 101.7116, 54 | "background": "#FF4B4BFF" 55 | }, 56 | { 57 | "id": "shwedagon_pagoda", 58 | "image": "shwedagon_pagoda", 59 | "name": "Shwedagon Pagoda", 60 | "location": "Yangon, Myanmar", 61 | "lat": 16.7985, 62 | "long": 96.1497, 63 | "background": "#2B10CFFF" 64 | }, 65 | { 66 | "id": "sphinx_statue", 67 | "image": "sphinx_statue", 68 | "name": "Great Sphinx of Giza", 69 | "location": "Giza, Egypt", 70 | "lat": 29.9753, 71 | "long": 31.1376, 72 | "background": "#993700FF" 73 | }, 74 | { 75 | "id": "statue_of_liberty", 76 | "image": "statue_of_liberty", 77 | "name": "Statue of Liberty", 78 | "location": "New York, US", 79 | "lat": 40.6892, 80 | "long": -74.0445, 81 | "background": "#7A320AFF" 82 | } 83 | ] -------------------------------------------------------------------------------- /Demo/Demo/ViewModifier/DragGestureViewModifier.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | // MARK: - https://developer.apple.com/forums/thread/123034 4 | struct DragGestureViewModifier: ViewModifier { 5 | @GestureState private var isDragging: Bool = false 6 | @State var gestureState: GestureStatus = .idle 7 | 8 | var onStart: (() -> Void)? 9 | var onUpdate: ((DragGesture.Value) -> Void)? 10 | var onEnd: ((DragGesture.Value) -> Void)? 11 | var onCancel: (() -> Void)? 12 | 13 | func body(content: Content) -> some View { 14 | content 15 | .gesture( 16 | DragGesture() 17 | .updating($isDragging) { _, isDragging, _ in 18 | isDragging = true 19 | } 20 | .onChanged(onDragChange(_:)) 21 | .onEnded(onDragEnded(_:)) 22 | ) 23 | .onChange(of: gestureState) { state in 24 | guard state == .started else { return } 25 | gestureState = .active 26 | } 27 | .onChange(of: isDragging) { value in 28 | if value, gestureState != .started { 29 | gestureState = .started 30 | onStart?() 31 | } else if !value, gestureState != .ended { 32 | gestureState = .cancelled 33 | onCancel?() 34 | } 35 | } 36 | } 37 | 38 | func onDragChange(_ value: DragGesture.Value) { 39 | guard gestureState == .started || gestureState == .active else { return } 40 | onUpdate?(value) 41 | } 42 | 43 | func onDragEnded(_ value: DragGesture.Value) { 44 | gestureState = .ended 45 | onEnd?(value) 46 | } 47 | 48 | enum GestureStatus: Equatable { 49 | case idle 50 | case started 51 | case active 52 | case ended 53 | case cancelled 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Dscyre Scotti 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version: 5.6 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription 5 | 6 | let package = Package( 7 | name: "ShuffleIt", 8 | platforms: [ 9 | .iOS(.v15), 10 | .macOS(.v12), 11 | .tvOS(.v15), 12 | .watchOS(.v8) 13 | ], 14 | products: [ 15 | .library( 16 | name: "ShuffleIt", 17 | targets: ["ShuffleIt"] 18 | ), 19 | .library( 20 | name: "ShuffleStack", 21 | targets: ["ShuffleStack"] 22 | ), 23 | .library( 24 | name: "CarouselStack", 25 | targets: ["CarouselStack"] 26 | ), 27 | .library( 28 | name: "ShuffleDeck", 29 | targets: ["ShuffleDeck"] 30 | ) 31 | ], 32 | dependencies: [ 33 | .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), 34 | .package(url: "https://github.com/nalexn/ViewInspector.git", from: "0.9.7"), 35 | ], 36 | targets: [ 37 | .target( 38 | name: "ShuffleIt", 39 | dependencies: ["Utils"] 40 | ), 41 | .target( 42 | name: "ShuffleStack", 43 | dependencies: ["Utils"] 44 | ), 45 | .target( 46 | name: "CarouselStack", 47 | dependencies: ["Utils"] 48 | ), 49 | .target( 50 | name: "ShuffleDeck", 51 | dependencies: ["Utils"] 52 | ), 53 | .target( 54 | name: "Utils", 55 | dependencies: [] 56 | ), 57 | .target( 58 | name: "UtilsForTest", 59 | dependencies: ["ViewInspector"] 60 | ), 61 | .target( 62 | name: "ShuffleItForTest", 63 | dependencies: ["ViewInspector", "UtilsForTest"] 64 | ), 65 | .testTarget( 66 | name: "ShuffleItTests", 67 | dependencies: ["ShuffleItForTest", "Utils", "ViewInspector"] 68 | ), 69 | ], 70 | swiftLanguageVersions: [.v5] 71 | ) 72 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselAnimation.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An enumeration of carousel animation that maps to `SwiftUI` animation. 4 | public enum CarouselAnimation { 5 | /// A linear animation. 6 | case linear 7 | /// An ease-in animation. 8 | case easeIn 9 | /// An ease-out animation. 10 | case easeOut 11 | /// An ease-in-out animation. 12 | case easeInOut 13 | 14 | func timing(duration: Double) -> Animation { 15 | switch self { 16 | case .linear: 17 | return .linear(duration: duration) 18 | case .easeIn: 19 | return .easeIn(duration: duration) 20 | case .easeOut: 21 | return .easeOut(duration: duration) 22 | case .easeInOut: 23 | return .easeInOut(duration: duration) 24 | } 25 | } 26 | } 27 | 28 | /// An environment key for carousel animation. 29 | struct CarouselAnimationKey: EnvironmentKey { 30 | static var defaultValue: CarouselAnimation = .linear 31 | } 32 | 33 | extension EnvironmentValues { 34 | var carouselAnimation: CarouselAnimation { 35 | get { self[CarouselAnimationKey.self] } 36 | set { self[CarouselAnimationKey.self] = newValue } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselContext.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// A structure that provides information about sliding. 4 | public struct CarouselContext { 5 | /// A property of current index of carousel stack view. 6 | public let index: Int 7 | /// A property of pervious index of carousel stack view. 8 | public let previousIndex: Int 9 | /// A property of carousel direction to which content view was slided. 10 | public let direction: CarouselDirection 11 | } 12 | 13 | /// An environment key for carousel context. 14 | struct CarouselContextKey: EnvironmentKey { 15 | static var defaultValue: ((CarouselContext) -> Void)? = nil 16 | } 17 | 18 | extension EnvironmentValues { 19 | var carouselContext: ((CarouselContext) -> Void)? { 20 | get { self[CarouselContextKey.self] } 21 | set { self[CarouselContextKey.self] = newValue } 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselDisabled.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for a flag to decide on whether sliding is disabled or not. 4 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 5 | @available(tvOS, unavailable) 6 | struct CarouselDisabledKey: EnvironmentKey { 7 | static var defaultValue: Bool = false 8 | } 9 | 10 | extension EnvironmentValues { 11 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 12 | @available(tvOS, unavailable) 13 | var carouselDisabled: Bool { 14 | get { self[CarouselDisabledKey.self] } 15 | set { self[CarouselDisabledKey.self] = newValue } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselPadding.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for carousel padding. 4 | struct CarouselPaddingKey: EnvironmentKey { 5 | static var defaultValue: CGFloat = 20 6 | } 7 | 8 | extension EnvironmentValues { 9 | var carouselPadding: CGFloat { 10 | get { self[CarouselPaddingKey.self] } 11 | set { self[CarouselPaddingKey.self] = newValue } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselScale.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for carousel scale. 4 | struct CarouselScaleKey: EnvironmentKey { 5 | static let defaultValue: CGFloat = 1 6 | } 7 | 8 | extension EnvironmentValues { 9 | var carouselScale: CGFloat { 10 | get { self[CarouselScaleKey.self] } 11 | set { self[CarouselScaleKey.self] = newValue } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselSpacing.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for carousel spacing. 4 | struct CarouselSpacingKey: EnvironmentKey { 5 | static var defaultValue: CGFloat = 10 6 | } 7 | 8 | extension EnvironmentValues { 9 | var carouselSpacing: CGFloat { 10 | get { self[CarouselSpacingKey.self] } 11 | set { self[CarouselSpacingKey.self] = newValue } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselStyle.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An enumeration of carousel style that is used to change sliding behaviour of the carousel stack view. 4 | public enum CarouselStyle { 5 | /// A carousel style which makes content views scroll in the loop without ending. 6 | case infiniteScroll 7 | /// A carousel style which ends content views at both ends so that it cannot be scrolled infinitely. 8 | case finiteScroll 9 | } 10 | 11 | /// An environment key for carousel style. 12 | struct CarouselStyleKey: EnvironmentKey { 13 | static var defaultValue: CarouselStyle = .finiteScroll 14 | } 15 | 16 | extension EnvironmentValues { 17 | var carouselStyle: CarouselStyle { 18 | get { self[CarouselStyleKey.self] } 19 | set { self[CarouselStyleKey.self] = newValue } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselTranslation.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for carousel translation. 4 | struct CarouselTranslationKey: EnvironmentKey { 5 | static var defaultValue: ((CGFloat) -> Void)? = nil 6 | } 7 | 8 | extension EnvironmentValues { 9 | var carouselTranslation: ((CGFloat) -> Void)? { 10 | get { self[CarouselTranslationKey.self] } 11 | set { self[CarouselTranslationKey.self] = newValue } 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /Sources/CarouselStack/EnvironmentValues/CarouselTrigger.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import Combine 3 | 4 | /// An enumeratoin of carousel direction. 5 | public enum CarouselDirection { 6 | /// A slide direction to the left. 7 | case left 8 | /// A slide direction to the right. 9 | case right 10 | } 11 | 12 | /// An environment key for carousel trigger. 13 | struct CarouselTriggerKey: EnvironmentKey { 14 | static var defaultValue: AnyPublisher = Empty().eraseToAnyPublisher() 15 | } 16 | 17 | extension EnvironmentValues { 18 | var carouselTrigger: AnyPublisher { 19 | get { self[CarouselTriggerKey.self] } 20 | set { self[CarouselTriggerKey.self] = newValue } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Sources/CarouselStack/View/CarouselStack+Data.swift: -------------------------------------------------------------------------------- 1 | import Utils 2 | import SwiftUI 3 | 4 | extension CarouselStack { 5 | /// A property that provides the upcoming element of left side. 6 | internal func leftDataElement(_ offset: Int) -> Data.Element? { 7 | switch style { 8 | case .infiniteScroll: 9 | return data.previousElement(forLoop: index, offset: offset) 10 | case .finiteScroll: 11 | return data.previousElement(forUnloop: index, offset: offset) 12 | } 13 | } 14 | 15 | /// A property that provides the upcoming element of right side. 16 | internal func rightDataElement(_ offset: Int) -> Data.Element? { 17 | switch style { 18 | case .infiniteScroll: 19 | return data.nextElement(forLoop: index, offset: offset) 20 | case .finiteScroll: 21 | return data.nextElement(forUnloop: index, offset: offset) 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Sources/CarouselStack/View/CarouselStack+Gesture.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | extension CarouselStack { 4 | /// A drag gesture that listens gesture state on content views and calculates rotation and position for sliding. 5 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 6 | @available(tvOS, unavailable) 7 | internal var dragGesture: some Gesture { 8 | DragGesture() 9 | .updating($isActiveGesture, body: { _, state, _ in 10 | state = true 11 | }) 12 | .onChanged({ value in 13 | let translation = value.translation.width 14 | if translation > 0 { 15 | switch style { 16 | case .infiniteScroll: 17 | xPosition = translation - (data.distance(from: data.startIndex, to: data.endIndex) == 1 ? translation * 0.7 : 0) 18 | case .finiteScroll: 19 | xPosition = translation - (index == data.startIndex ? translation * 0.7 : 0) 20 | } 21 | direction = .left 22 | } else if translation < 0 { 23 | switch style { 24 | case .infiniteScroll: 25 | xPosition = translation - (data.distance(from: data.startIndex, to: data.endIndex) == 1 ? translation * 0.7 : 0) 26 | case .finiteScroll: 27 | xPosition = translation - (index == data.index(before: data.endIndex) ? translation * 0.7 : 0) 28 | } 29 | direction = .right 30 | } 31 | }) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckAnimation.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An enumeration of shuffle deck animation that maps to `SwiftUI` animation. 4 | public enum ShuffleDeckAnimation { 5 | /// A linear animation. 6 | case linear 7 | /// An ease-in animation. 8 | case easeIn 9 | /// An ease-out animation. 10 | case easeOut 11 | /// An ease-in-out animation. 12 | case easeInOut 13 | 14 | func timing(duration: Double) -> Animation { 15 | switch self { 16 | case .linear: 17 | return .linear(duration: duration) 18 | case .easeIn: 19 | return .easeIn(duration: duration) 20 | case .easeOut: 21 | return .easeOut(duration: duration) 22 | case .easeInOut: 23 | return .easeInOut(duration: duration) 24 | } 25 | } 26 | } 27 | 28 | /// An environment key for shuffle deck animation. 29 | struct ShuffleDeckAnimationKey: EnvironmentKey { 30 | static var defaultValue: ShuffleDeckAnimation = .linear 31 | } 32 | 33 | extension EnvironmentValues { 34 | var shuffleDeckAnimation: ShuffleDeckAnimation { 35 | get { self[ShuffleDeckAnimationKey.self] } 36 | set { self[ShuffleDeckAnimationKey.self] = newValue } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckContext.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// A structure that provides information about shuffling. 4 | public struct ShuffleDeckContext { 5 | /// A property of current index of shuffle deck view. 6 | public let index: Int 7 | /// A property of previous index of shuffle deck view. 8 | public let previousIndex: Int 9 | /// A property of shuffle deck direction to which content view was dragged. 10 | public let direction: ShuffleDeckDirection 11 | } 12 | 13 | /// An environment key for shuffle deck context. 14 | struct ShuffleDeckContextKey: EnvironmentKey { 15 | static var defaultValue: ((ShuffleDeckContext) -> Void)? = nil 16 | } 17 | 18 | extension EnvironmentValues { 19 | var shuffleDeckContext: ((ShuffleDeckContext) -> Void)? { 20 | get { self[ShuffleDeckContextKey.self] } 21 | set { self[ShuffleDeckContextKey.self] = newValue } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckDisabled.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environent key for a flag to decide on whether shuffling is disabled or not. 4 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 5 | @available(tvOS, unavailable) 6 | struct ShuffleDeckDisabledKey: EnvironmentKey { 7 | static var defaultValue: Bool = false 8 | } 9 | 10 | extension EnvironmentValues { 11 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 12 | @available(tvOS, unavailable) 13 | var shuffleDeckDisabled: Bool { 14 | get { self[ShuffleDeckDisabledKey.self] } 15 | set { self[ShuffleDeckDisabledKey.self] = newValue } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckScale.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for shuffle deck scale. 4 | struct ShuffleDeckScaleKey: EnvironmentKey { 5 | static var defaultValue: CGFloat = 0.07 6 | } 7 | 8 | extension EnvironmentValues { 9 | var shuffleDeckScale: CGFloat { 10 | get { self[ShuffleDeckScaleKey.self] } 11 | set { self[ShuffleDeckScaleKey.self] = (min(1, max(0, newValue)) * 0.1) } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckStyle.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An enumeration of shuffle deck style that is used to change shuffling behaviour of the shuffle deck view. 4 | public enum ShuffleDeckStyle { 5 | /// A shuffle deck style which makes content views scroll in the loop without ending. 6 | case infiniteShuffle 7 | /// A shuffle deck style which ends content views at both ends so that it cannot be shuffled infinitely. 8 | case finiteShuffle 9 | } 10 | 11 | /// An environment key for shuffle deck style. 12 | struct ShuffleDeckStyleKey: EnvironmentKey { 13 | static var defaultValue: ShuffleDeckStyle = .finiteShuffle 14 | } 15 | 16 | extension EnvironmentValues { 17 | var shuffleDeckStyle: ShuffleDeckStyle { 18 | get { self[ShuffleDeckStyleKey.self] } 19 | set { self[ShuffleDeckStyleKey.self] = newValue } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckTranslation.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for shuffle deck translation. 4 | struct ShuffleDeckTranslationKey: EnvironmentKey { 5 | static var defaultValue: ((CGFloat) -> Void)? = nil 6 | } 7 | 8 | extension EnvironmentValues { 9 | var shuffleDeckTranslation: ((CGFloat) -> Void)? { 10 | get { self[ShuffleDeckTranslationKey.self] } 11 | set { self[ShuffleDeckTranslationKey.self] = newValue } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/EnvironmentValues/ShuffleDeckTrigger.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import Combine 3 | 4 | /// An enumeration of shuffle deck direction. 5 | public enum ShuffleDeckDirection { 6 | /// A shuffle direction to the left. 7 | case left 8 | /// A shuffle direction to the right. 9 | case right 10 | } 11 | 12 | /// An environment key for shuffle deck trigger. 13 | struct ShuffleDeckTriggerKey: EnvironmentKey { 14 | static var defaultValue: AnyPublisher = Empty().eraseToAnyPublisher() 15 | } 16 | 17 | extension EnvironmentValues { 18 | var shuffleDeckTrigger: AnyPublisher { 19 | get { self[ShuffleDeckTriggerKey.self] } 20 | set { self[ShuffleDeckTriggerKey.self] = newValue } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/View/ShuffleDeck+Data.swift: -------------------------------------------------------------------------------- 1 | import Utils 2 | import SwiftUI 3 | 4 | extension ShuffleDeck { 5 | /// A method that generates the upcoming element of left side. 6 | internal func leftDataElement(_ offset: Int) -> Data.Element? { 7 | switch style { 8 | case .infiniteShuffle: 9 | return data.previousElement(forLoop: index, offset: offset) 10 | case .finiteShuffle: 11 | return data.previousElement(forUnloop: index, offset: offset) 12 | } 13 | } 14 | 15 | /// A method that generates the upcoming element of right side. 16 | internal func rightDataElement(_ offset: Int) -> Data.Element? { 17 | switch style { 18 | case .infiniteShuffle: 19 | return data.nextElement(forLoop: index, offset: offset) 20 | case .finiteShuffle: 21 | return data.nextElement(forUnloop: index, offset: offset) 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Sources/ShuffleDeck/View/ShuffleDeck+Gesture.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | extension ShuffleDeck { 4 | /// A drag gesture that listens gesture state on content views and calculates rotation and position for shuffling. 5 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 6 | @available(tvOS, unavailable) 7 | internal var dragGesture: some Gesture { 8 | DragGesture() 9 | .updating($isActiveGesture) { _, state, _ in 10 | state = true 11 | } 12 | .onChanged { value in 13 | var position: CGFloat 14 | switch style { 15 | case .infiniteShuffle: 16 | position = value.translation.width / 1.2 17 | case .finiteShuffle: 18 | position = value.translation.width / 1.2 19 | if position > 0, data.previousIndex(forUnloop: index, offset: 1) == nil { 20 | position /= 15 21 | } 22 | if position < 0, data.nextIndex(forUnloop: index, offset: 1) == nil { 23 | position /= 15 24 | } 25 | } 26 | let range = size.width * 0.5 27 | xPosition = min(max(position, -range), range) 28 | if xPosition > 0 { 29 | direction = .left 30 | } else if xPosition < 0 { 31 | direction = .right 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Sources/ShuffleIt/CarouselStack: -------------------------------------------------------------------------------- 1 | ../CarouselStack -------------------------------------------------------------------------------- /Sources/ShuffleIt/ShuffleDeck: -------------------------------------------------------------------------------- 1 | ../ShuffleDeck -------------------------------------------------------------------------------- /Sources/ShuffleIt/ShuffleIt.docc/Resources/ShuffleIt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/Sources/ShuffleIt/ShuffleIt.docc/Resources/ShuffleIt.png -------------------------------------------------------------------------------- /Sources/ShuffleIt/ShuffleIt.docc/ShuffleIt.md: -------------------------------------------------------------------------------- 1 | # ``ShuffleIt`` 2 | 3 | A UI element library for **SwiftUI**. 4 | 5 | ## Overview 6 | 7 | **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. 8 | 9 | !["logo"](ShuffleIt.png) 10 | 11 | ## Topics 12 | 13 | ### CarouselStack 14 | - ``CarouselStack`` 15 | - ``CarouselAnimation`` 16 | - ``CarouselContext`` 17 | - ``CarouselDirection`` 18 | - ``CarouselStyle`` 19 | 20 | ### ShuffleDeck 21 | - ``ShuffleDeck`` 22 | - ``ShuffleDeckAnimation`` 23 | - ``ShuffleDeckContext`` 24 | - ``ShuffleDeckDirection`` 25 | - ``ShuffleDeckStyle`` 26 | 27 | ### ShuffleStack 28 | - ``ShuffleStack`` 29 | - ``ShuffleAnimation`` 30 | - ``ShuffleContext`` 31 | - ``ShuffleDirection`` 32 | - ``ShuffleStyle`` 33 | -------------------------------------------------------------------------------- /Sources/ShuffleIt/ShuffleStack: -------------------------------------------------------------------------------- 1 | ../ShuffleStack -------------------------------------------------------------------------------- /Sources/ShuffleItForTest/CarouselStack: -------------------------------------------------------------------------------- 1 | ../CarouselStack -------------------------------------------------------------------------------- /Sources/ShuffleItForTest/ShuffleDeck: -------------------------------------------------------------------------------- 1 | ../ShuffleDeck -------------------------------------------------------------------------------- /Sources/ShuffleItForTest/ShuffleStack: -------------------------------------------------------------------------------- 1 | ../ShuffleStack -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleAnimation.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An enumeration of shuffle animation that maps to `SwiftUI` animation. 4 | public enum ShuffleAnimation { 5 | /// A linear animation. 6 | case linear 7 | /// An ease-in animation. 8 | case easeIn 9 | /// An ease-out animation. 10 | case easeOut 11 | /// An ease-in-out animation. 12 | case easeInOut 13 | 14 | func timing(duration: Double) -> Animation { 15 | switch self { 16 | case .linear: 17 | return .linear(duration: duration) 18 | case .easeIn: 19 | return .easeIn(duration: duration) 20 | case .easeOut: 21 | return .easeOut(duration: duration) 22 | case .easeInOut: 23 | return .easeInOut(duration: duration) 24 | } 25 | } 26 | } 27 | 28 | /// An environment key for shuffle animation. 29 | struct ShuffleAnimationKey: EnvironmentKey { 30 | static var defaultValue: ShuffleAnimation = .linear 31 | } 32 | 33 | extension EnvironmentValues { 34 | var shuffleAnimation: ShuffleAnimation { 35 | get { self[ShuffleAnimationKey.self] } 36 | set { self[ShuffleAnimationKey.self] = newValue } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleContext.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// A structure that provides information about shuffling. 4 | public struct ShuffleContext { 5 | /// A property of current index of shuffle stack view. 6 | public let index: Int 7 | /// A property of previous index of shuffle stack view. 8 | public let previousIndex: Int 9 | /// A property of shuffling direction to which content view was swiped. 10 | public let direction: ShuffleDirection 11 | } 12 | 13 | /// An environment key for shuffle context. 14 | struct ShuffleContextKey: EnvironmentKey { 15 | static var defaultValue: ((ShuffleContext) -> Void)? = nil 16 | } 17 | 18 | extension EnvironmentValues { 19 | var shuffleContext: ((ShuffleContext) -> Void)? { 20 | get { self[ShuffleContextKey.self] } 21 | set { self[ShuffleContextKey.self] = newValue } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleDiabled.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for a flag to decide on whether shuffling is disabled or not. 4 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 5 | @available(tvOS, unavailable) 6 | struct ShuffleDisabledKey: EnvironmentKey { 7 | static var defaultValue: Bool = false 8 | } 9 | 10 | extension EnvironmentValues { 11 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 12 | @available(tvOS, unavailable) 13 | var shuffleDisabled: Bool { 14 | get { self[ShuffleDisabledKey.self] } 15 | set { self[ShuffleDisabledKey.self] = newValue } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleOffset.swift: -------------------------------------------------------------------------------- 1 | import Utils 2 | import SwiftUI 3 | 4 | /// An environment key for shuffle stack offset. 5 | struct ShuffleOffsetKey: EnvironmentKey { 6 | static var defaultValue: CGFloat = 15 7 | } 8 | 9 | extension EnvironmentValues { 10 | var shuffleOffset: CGFloat { 11 | get { self[ShuffleOffsetKey.self] } 12 | set { self[ShuffleOffsetKey.self] = max(newValue, 0) } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShufflePadding.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for shuffle stack padding. 4 | struct ShufflePaddingKey: EnvironmentKey { 5 | static var defaultValue: CGFloat = 15 6 | } 7 | 8 | extension EnvironmentValues { 9 | var shufflePadding: CGFloat { 10 | get { self[ShufflePaddingKey.self] } 11 | set { self[ShufflePaddingKey.self] = newValue } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleScale.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for shuffle stack scale. 4 | struct ShuffleScaleKey: EnvironmentKey { 5 | static var defaultValue: CGFloat = 0.95 6 | } 7 | 8 | extension EnvironmentValues { 9 | var shuffleScale: CGFloat { 10 | get { self[ShuffleScaleKey.self] } 11 | set { self[ShuffleScaleKey.self] = (min(1, max(0, newValue)) * 0.1) + 0.9 } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleStyle.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view. 4 | public enum ShuffleStyle { 5 | /// A shuffle style which just slides content views without rotating. 6 | case slide 7 | /// A shuffle style which rotates and scales into center while shuffling. 8 | case rotateIn 9 | /// A shuffle style which rotates and scales to outside while shuffling. 10 | case rotateOut 11 | } 12 | 13 | /// An environment key for shuffle style. 14 | struct ShuffleStyleKey: EnvironmentKey { 15 | static var defaultValue: ShuffleStyle = .slide 16 | } 17 | 18 | extension EnvironmentValues { 19 | var shuffleStyle: ShuffleStyle { 20 | get { self[ShuffleStyleKey.self] } 21 | set { self[ShuffleStyleKey.self] = newValue } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleTranslation.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// An environment key for suffle translation. 4 | struct ShuffleTranslationKey: EnvironmentKey { 5 | static var defaultValue: ((CGFloat) -> Void)? = nil 6 | } 7 | 8 | extension EnvironmentValues { 9 | var shuffleTranslation: ((CGFloat) -> Void)? { 10 | get { self[ShuffleTranslationKey.self] } 11 | set { self[ShuffleTranslationKey.self] = newValue } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/EnvironmentValues/ShuffleTrigger.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import Combine 3 | 4 | /// An enumeration of shuffle direction. 5 | public enum ShuffleDirection { 6 | /// A shuffle direction to the left. 7 | case left 8 | /// A shuffle direction to the right. 9 | case right 10 | } 11 | 12 | /// An environment key for shuffle trigger. 13 | struct ShuffleTriggerKey: EnvironmentKey { 14 | static var defaultValue: AnyPublisher = Empty().eraseToAnyPublisher() 15 | } 16 | 17 | extension EnvironmentValues { 18 | var shuffleTrigger: AnyPublisher { 19 | get { self[ShuffleTriggerKey.self] } 20 | set { self[ShuffleTriggerKey.self] = newValue } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/View/ShuffleStack+Data.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | extension ShuffleStack { 4 | /// A property that provides the upcoming element of left side. 5 | internal var leftDataElement: Data.Element? { 6 | isLockedLeft ? data.nextElement(forLoop: index, offset: 2) : data.previousElement(forLoop: index, offset: 1) 7 | } 8 | 9 | /// A property that provides the upcoming element of right side. 10 | internal var rightDataElement: Data.Element? { 11 | isLockedRight ? data.previousElement(forLoop: index, offset: 2) : data.nextElement(forLoop: index, offset: 1) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Sources/ShuffleStack/View/ShuffleStack+Gesture.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | extension ShuffleStack { 4 | /// A drag gesture that listens gesture state on content views and calculates rotation and position for shuffling. 5 | @available(iOS 15.0, macOS 12.0, watchOS 8.0, *) 6 | @available(tvOS, unavailable) 7 | internal var dragGesture: some Gesture { 8 | DragGesture() 9 | .updating($isActiveGesture, body: { _, state, _ in 10 | state = true 11 | }) 12 | .onChanged({ value in 13 | xPosition = value.translation.width / 2.3 - (data.distance(from: data.startIndex, to: data.endIndex) == 1 ? value.translation.width * 0.2 : 0) 14 | if xPosition > 0 { 15 | direction = .left 16 | } else if xPosition < 0 { 17 | direction = .right 18 | } 19 | }) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Sources/Utils/PreferenceKeys/SizePreferenceKey.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | 3 | /// A perference key to reveal the size of child view. 4 | public struct SizePreferenceKey: PreferenceKey { 5 | public typealias Value = CGSize 6 | 7 | public static var defaultValue: Value = .zero 8 | 9 | public static func reduce(value: inout Value, nextValue: () -> Value) { } 10 | } 11 | -------------------------------------------------------------------------------- /Sources/UtilsForTest/Inspection.swift: -------------------------------------------------------------------------------- 1 | #if canImport(ViewInspector) 2 | import Combine 3 | import SwiftUI 4 | import ViewInspector 5 | 6 | public final class Inspection { 7 | public let notice = PassthroughSubject() 8 | public var callbacks: [UInt: (V) -> Void] = [:] 9 | 10 | public init() { } 11 | 12 | public func visit(_ view: V, _ line: UInt) { 13 | if let callback = callbacks.removeValue(forKey: line) { 14 | callback(view) 15 | } 16 | } 17 | } 18 | 19 | extension Inspection: InspectionEmissary { } 20 | #endif 21 | -------------------------------------------------------------------------------- /Tests/ShuffleItTests/Utils/BaseTestCase.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import XCTest 3 | 4 | class BaseTestCase: XCTestCase { 5 | let colors: [Color] = [.red, .orange, .yellow, .green, .teal, .blue, .purple] 6 | } 7 | -------------------------------------------------------------------------------- /Tests/ShuffleItTests/Utils/ColorView.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import ViewInspector 3 | 4 | struct ColorView: View { 5 | let color: Color 6 | var body: some View { 7 | color 8 | .frame(height: 200) 9 | .cornerRadius(15) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Tests/ShuffleItTests/Utils/ValueSpy.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | import Combine 3 | 4 | class ValueSpy { 5 | private(set) var values: [Value] = [] 6 | private var cancellable: AnyCancellable? 7 | init(_ publisher: AnyPublisher) { 8 | self.values = [] 9 | self.cancellable = publisher.sink { [weak self] value in 10 | self?.values.append(value) 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /codecov.yaml: -------------------------------------------------------------------------------- 1 | codecov: 2 | require_ci_to_pass: yes 3 | 4 | coverage: 5 | precision: 2 6 | round: down 7 | range: "70...100" 8 | ignore: 9 | - "Tests" 10 | 11 | parsers: 12 | gcov: 13 | branch_detection: 14 | conditional: yes 15 | loop: yes 16 | method: no 17 | macro: no 18 | 19 | comment: 20 | layout: "reach,diff,flags,files,footer" 21 | behavior: default 22 | require_changes: no 23 | -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselanimation/easein.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselanimation\/easein"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/easeIn","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-in animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"title":"CarouselAnimation.easeIn","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt17CarouselAnimationO6easeInyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation/easeIn":{"role":"symbol","title":"CarouselAnimation.easeIn","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"abstract":[{"type":"text","text":"An ease-in animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/easeIn","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselanimation\/easein"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation":{"role":"symbol","title":"CarouselAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselAnimation"}],"abstract":[{"type":"text","text":"An enumeration of carousel animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselAnimation"}],"url":"\/documentation\/shuffleit\/carouselanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselanimation/easeinout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselanimation\/easeinout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/easeInOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-in-out animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"title":"CarouselAnimation.easeInOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt17CarouselAnimationO9easeInOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation/easeInOut":{"role":"symbol","title":"CarouselAnimation.easeInOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"abstract":[{"type":"text","text":"An ease-in-out animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/easeInOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselanimation\/easeinout"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation":{"role":"symbol","title":"CarouselAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselAnimation"}],"abstract":[{"type":"text","text":"An enumeration of carousel animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselAnimation"}],"url":"\/documentation\/shuffleit\/carouselanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselanimation/easeout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselanimation\/easeout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/easeOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-out animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"title":"CarouselAnimation.easeOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt17CarouselAnimationO7easeOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation":{"role":"symbol","title":"CarouselAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselAnimation"}],"abstract":[{"type":"text","text":"An enumeration of carousel animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselAnimation"}],"url":"\/documentation\/shuffleit\/carouselanimation"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation/easeOut":{"role":"symbol","title":"CarouselAnimation.easeOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"abstract":[{"type":"text","text":"An ease-out animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/easeOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselanimation\/easeout"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselanimation/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/carouselanimation\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation":{"role":"symbol","title":"CarouselAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselAnimation"}],"abstract":[{"type":"text","text":"An enumeration of carousel animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselAnimation"}],"url":"\/documentation\/shuffleit\/carouselanimation"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselanimation\/!=(_:_:)"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselanimation/linear.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselanimation\/linear"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/linear","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A linear animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"title":"CarouselAnimation.linear","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt17CarouselAnimationO6linearyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation":{"role":"symbol","title":"CarouselAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselAnimation"}],"abstract":[{"type":"text","text":"An enumeration of carousel animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselAnimation"}],"url":"\/documentation\/shuffleit\/carouselanimation"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselAnimation/linear":{"role":"symbol","title":"CarouselAnimation.linear","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"abstract":[{"type":"text","text":"A linear animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselAnimation\/linear","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselanimation\/linear"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselcontext/index.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselcontext\/index"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext\/index","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A property of current index of carousel stack view."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"index","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt15CarouselContextV5indexSivp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselContext":{"role":"symbol","title":"CarouselContext","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselContext"}],"abstract":[{"type":"text","text":"A structure that provides information about sliding."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselContext"}],"url":"\/documentation\/shuffleit\/carouselcontext"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselContext/index":{"role":"symbol","title":"index","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"A property of current index of carousel stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext\/index","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselcontext\/index"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselcontext/previousindex.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselcontext\/previousindex"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext\/previousIndex","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A property of pervious index of carousel stack view."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"previousIndex","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt15CarouselContextV13previousIndexSivp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselContext":{"role":"symbol","title":"CarouselContext","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselContext"}],"abstract":[{"type":"text","text":"A structure that provides information about sliding."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselContext"}],"url":"\/documentation\/shuffleit\/carouselcontext"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselContext/previousIndex":{"role":"symbol","title":"previousIndex","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"A property of pervious index of carousel stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselContext\/previousIndex","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselcontext\/previousindex"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouseldirection/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/carouseldirection\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselDirection/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouseldirection\/!=(_:_:)"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselDirection":{"role":"symbol","title":"CarouselDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselDirection"}],"abstract":[{"type":"text","text":"An enumeratoin of carousel direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselDirection"}],"url":"\/documentation\/shuffleit\/carouseldirection"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouseldirection/left.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouseldirection\/left"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/left","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A slide direction to the left."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"title":"CarouselDirection.left","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt17CarouselDirectionO4leftyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselDirection":{"role":"symbol","title":"CarouselDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselDirection"}],"abstract":[{"type":"text","text":"An enumeratoin of carousel direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselDirection"}],"url":"\/documentation\/shuffleit\/carouseldirection"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselDirection/left":{"role":"symbol","title":"CarouselDirection.left","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"abstract":[{"type":"text","text":"A slide direction to the left."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/left","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouseldirection\/left"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouseldirection/right.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouseldirection\/right"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/right","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A slide direction to the right."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"title":"CarouselDirection.right","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt17CarouselDirectionO5rightyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselDirection":{"role":"symbol","title":"CarouselDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselDirection"}],"abstract":[{"type":"text","text":"An enumeratoin of carousel direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselDirection"}],"url":"\/documentation\/shuffleit\/carouseldirection"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselDirection/right":{"role":"symbol","title":"CarouselDirection.right","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"abstract":[{"type":"text","text":"A slide direction to the right."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselDirection\/right","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouseldirection\/right"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselstyle/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/carouselstyle\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselStyle":{"role":"symbol","title":"CarouselStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselStyle"}],"abstract":[{"type":"text","text":"An enumeration of carousel style that is used to change sliding behaviour of the carousel stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselStyle"}],"url":"\/documentation\/shuffleit\/carouselstyle"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselStyle/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselstyle\/!=(_:_:)"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselstyle/finitescroll.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"finiteScroll"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselstyle\/finitescroll"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/finiteScroll","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A carousel style which ends content views at both ends so that it cannot be scrolled infinitely."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"finiteScroll"}],"title":"CarouselStyle.finiteScroll","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt13CarouselStyleO12finiteScrollyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselStyle":{"role":"symbol","title":"CarouselStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselStyle"}],"abstract":[{"type":"text","text":"An enumeration of carousel style that is used to change sliding behaviour of the carousel stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselStyle"}],"url":"\/documentation\/shuffleit\/carouselstyle"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselStyle/finiteScroll":{"role":"symbol","title":"CarouselStyle.finiteScroll","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"finiteScroll"}],"abstract":[{"type":"text","text":"A carousel style which ends content views at both ends so that it cannot be scrolled infinitely."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/finiteScroll","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselstyle\/finitescroll"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/carouselstyle/infinitescroll.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"infiniteScroll"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/carouselstyle\/infinitescroll"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/infiniteScroll","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A carousel style which makes content views scroll in the loop without ending."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"infiniteScroll"}],"title":"CarouselStyle.infiniteScroll","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt13CarouselStyleO14infiniteScrollyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/CarouselStyle/infiniteScroll":{"role":"symbol","title":"CarouselStyle.infiniteScroll","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"infiniteScroll"}],"abstract":[{"type":"text","text":"A carousel style which makes content views scroll in the loop without ending."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle\/infiniteScroll","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/carouselstyle\/infinitescroll"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/CarouselStyle":{"role":"symbol","title":"CarouselStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"CarouselStyle"}],"abstract":[{"type":"text","text":"An enumeration of carousel style that is used to change sliding behaviour of the carousel stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/CarouselStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"CarouselStyle"}],"url":"\/documentation\/shuffleit\/carouselstyle"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffleanimation/easein.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffleanimation\/easein"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/easeIn","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-in animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"title":"ShuffleAnimation.easeIn","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9AnimationO6easeInyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation/easeIn":{"role":"symbol","title":"ShuffleAnimation.easeIn","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"abstract":[{"type":"text","text":"An ease-in animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/easeIn","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffleanimation\/easein"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation":{"role":"symbol","title":"ShuffleAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleAnimation"}],"url":"\/documentation\/shuffleit\/shuffleanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffleanimation/easeinout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffleanimation\/easeinout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/easeInOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-in-out animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"title":"ShuffleAnimation.easeInOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9AnimationO9easeInOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation/easeInOut":{"role":"symbol","title":"ShuffleAnimation.easeInOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"abstract":[{"type":"text","text":"An ease-in-out animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/easeInOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffleanimation\/easeinout"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation":{"role":"symbol","title":"ShuffleAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleAnimation"}],"url":"\/documentation\/shuffleit\/shuffleanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffleanimation/easeout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffleanimation\/easeout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/easeOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-out animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"title":"ShuffleAnimation.easeOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9AnimationO7easeOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation/easeOut":{"role":"symbol","title":"ShuffleAnimation.easeOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"abstract":[{"type":"text","text":"An ease-out animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/easeOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffleanimation\/easeout"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation":{"role":"symbol","title":"ShuffleAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleAnimation"}],"url":"\/documentation\/shuffleit\/shuffleanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffleanimation/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/shuffleanimation\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation":{"role":"symbol","title":"ShuffleAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleAnimation"}],"url":"\/documentation\/shuffleit\/shuffleanimation"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffleanimation\/!=(_:_:)"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffleanimation/linear.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffleanimation\/linear"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/linear","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A linear animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"title":"ShuffleAnimation.linear","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9AnimationO6linearyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation/linear":{"role":"symbol","title":"ShuffleAnimation.linear","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"abstract":[{"type":"text","text":"A linear animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation\/linear","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffleanimation\/linear"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleAnimation":{"role":"symbol","title":"ShuffleAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleAnimation"}],"url":"\/documentation\/shuffleit\/shuffleanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflecontext/index.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shufflecontext\/index"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext\/index","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A property of current index of shuffle stack view."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"index","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt0A7ContextV5indexSivp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleContext/index":{"role":"symbol","title":"index","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"A property of current index of shuffle stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext\/index","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflecontext\/index"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleContext":{"role":"symbol","title":"ShuffleContext","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleContext"}],"abstract":[{"type":"text","text":"A structure that provides information about shuffling."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleContext"}],"url":"\/documentation\/shuffleit\/shufflecontext"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflecontext/previousindex.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shufflecontext\/previousindex"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext\/previousIndex","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A property of previous index of shuffle stack view."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"previousIndex","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt0A7ContextV13previousIndexSivp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleContext":{"role":"symbol","title":"ShuffleContext","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleContext"}],"abstract":[{"type":"text","text":"A structure that provides information about shuffling."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleContext"}],"url":"\/documentation\/shuffleit\/shufflecontext"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleContext/previousIndex":{"role":"symbol","title":"previousIndex","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"A property of previous index of shuffle stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleContext\/previousIndex","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflecontext\/previousindex"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeck/body.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"body"},{"kind":"text","text":": "},{"kind":"keyword","text":"some"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"View","preciseIdentifier":"s:7SwiftUI4ViewP"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeck\/body"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeck\/body","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Inherited from "},{"type":"codeVoice","code":"View.body"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"body"},{"kind":"text","text":": "},{"kind":"keyword","text":"some"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"View","preciseIdentifier":"s:7SwiftUI4ViewP"}],"title":"body","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt0A4DeckV4bodyQrvp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeck"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeck":{"role":"symbol","title":"ShuffleDeck","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeck"}],"abstract":[{"type":"text","text":"A stack view providing shuffling behaviour to shuffle to left and right like a deck of cards."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeck","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeck"}],"url":"\/documentation\/shuffleit\/shuffledeck"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeck/body":{"role":"symbol","title":"body","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"body"},{"kind":"text","text":": "},{"kind":"keyword","text":"some"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"View","preciseIdentifier":"s:7SwiftUI4ViewP"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeck\/body","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeck\/body"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckanimation/easein.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckanimation\/easein"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/easeIn","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-in animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"title":"ShuffleDeckAnimation.easeIn","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A13DeckAnimationO6easeInyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation":{"role":"symbol","title":"ShuffleDeckAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckAnimation"}],"url":"\/documentation\/shuffleit\/shuffledeckanimation"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation/easeIn":{"role":"symbol","title":"ShuffleDeckAnimation.easeIn","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeIn"}],"abstract":[{"type":"text","text":"An ease-in animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/easeIn","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckanimation\/easein"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckanimation/easeinout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckanimation\/easeinout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/easeInOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-in-out animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"title":"ShuffleDeckAnimation.easeInOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A13DeckAnimationO9easeInOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation/easeInOut":{"role":"symbol","title":"ShuffleDeckAnimation.easeInOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeInOut"}],"abstract":[{"type":"text","text":"An ease-in-out animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/easeInOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckanimation\/easeinout"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation":{"role":"symbol","title":"ShuffleDeckAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckAnimation"}],"url":"\/documentation\/shuffleit\/shuffledeckanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckanimation/easeout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckanimation\/easeout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/easeOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"An ease-out animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"title":"ShuffleDeckAnimation.easeOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A13DeckAnimationO7easeOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation":{"role":"symbol","title":"ShuffleDeckAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckAnimation"}],"url":"\/documentation\/shuffleit\/shuffledeckanimation"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation/easeOut":{"role":"symbol","title":"ShuffleDeckAnimation.easeOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"easeOut"}],"abstract":[{"type":"text","text":"An ease-out animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/easeOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckanimation\/easeout"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckanimation/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckanimation\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckanimation\/!=(_:_:)"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation":{"role":"symbol","title":"ShuffleDeckAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckAnimation"}],"url":"\/documentation\/shuffleit\/shuffledeckanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckanimation/linear.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckanimation\/linear"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/linear","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A linear animation."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"title":"ShuffleDeckAnimation.linear","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A13DeckAnimationO6linearyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation/linear":{"role":"symbol","title":"ShuffleDeckAnimation.linear","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"linear"}],"abstract":[{"type":"text","text":"A linear animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation\/linear","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckanimation\/linear"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckAnimation":{"role":"symbol","title":"ShuffleDeckAnimation","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckAnimation"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck animation that maps to "},{"type":"codeVoice","code":"SwiftUI"},{"type":"text","text":" animation."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckAnimation","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckAnimation"}],"url":"\/documentation\/shuffleit\/shuffledeckanimation"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckcontext/index.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckcontext\/index"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext\/index","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A property of current index of shuffle deck view."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"index","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt0A11DeckContextV5indexSivp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckContext":{"role":"symbol","title":"ShuffleDeckContext","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckContext"}],"abstract":[{"type":"text","text":"A structure that provides information about shuffling."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckContext"}],"url":"\/documentation\/shuffleit\/shuffledeckcontext"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckContext/index":{"role":"symbol","title":"index","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"index"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"A property of current index of shuffle deck view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext\/index","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckcontext\/index"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckcontext/previousindex.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckcontext\/previousindex"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext\/previousIndex","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A property of previous index of shuffle deck view."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"title":"previousIndex","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt0A11DeckContextV13previousIndexSivp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckContext":{"role":"symbol","title":"ShuffleDeckContext","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckContext"}],"abstract":[{"type":"text","text":"A structure that provides information about shuffling."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckContext"}],"url":"\/documentation\/shuffleit\/shuffledeckcontext"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckContext/previousIndex":{"role":"symbol","title":"previousIndex","fragments":[{"kind":"keyword","text":"let"},{"kind":"text","text":" "},{"kind":"identifier","text":"previousIndex"},{"kind":"text","text":": "},{"kind":"typeIdentifier","text":"Int","preciseIdentifier":"s:Si"}],"abstract":[{"type":"text","text":"A property of previous index of shuffle deck view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckContext\/previousIndex","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckcontext\/previousindex"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckdirection/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckdirection\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckDirection/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckdirection\/!=(_:_:)"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckDirection":{"role":"symbol","title":"ShuffleDeckDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckDirection"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckDirection"}],"url":"\/documentation\/shuffleit\/shuffledeckdirection"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckdirection/left.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckdirection\/left"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/left","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle direction to the left."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"title":"ShuffleDeckDirection.left","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A13DeckDirectionO4leftyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckDirection":{"role":"symbol","title":"ShuffleDeckDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckDirection"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckDirection"}],"url":"\/documentation\/shuffleit\/shuffledeckdirection"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckDirection/left":{"role":"symbol","title":"ShuffleDeckDirection.left","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"abstract":[{"type":"text","text":"A shuffle direction to the left."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/left","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckdirection\/left"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckdirection/right.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckdirection\/right"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/right","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle direction to the right."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"title":"ShuffleDeckDirection.right","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A13DeckDirectionO5rightyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckDirection":{"role":"symbol","title":"ShuffleDeckDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckDirection"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckDirection"}],"url":"\/documentation\/shuffleit\/shuffledeckdirection"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckDirection/right":{"role":"symbol","title":"ShuffleDeckDirection.right","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"abstract":[{"type":"text","text":"A shuffle direction to the right."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckDirection\/right","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckdirection\/right"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckstyle/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckstyle\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckStyle/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckstyle\/!=(_:_:)"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckStyle":{"role":"symbol","title":"ShuffleDeckStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck style that is used to change shuffling behaviour of the shuffle deck view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckStyle"}],"url":"\/documentation\/shuffleit\/shuffledeckstyle"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckstyle/finiteshuffle.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"finiteShuffle"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckstyle\/finiteshuffle"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/finiteShuffle","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle deck style which ends content views at both ends so that it cannot be shuffled infinitely."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"finiteShuffle"}],"title":"ShuffleDeckStyle.finiteShuffle","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9DeckStyleO06finiteA0yA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckStyle":{"role":"symbol","title":"ShuffleDeckStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck style that is used to change shuffling behaviour of the shuffle deck view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckStyle"}],"url":"\/documentation\/shuffleit\/shuffledeckstyle"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckStyle/finiteShuffle":{"role":"symbol","title":"ShuffleDeckStyle.finiteShuffle","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"finiteShuffle"}],"abstract":[{"type":"text","text":"A shuffle deck style which ends content views at both ends so that it cannot be shuffled infinitely."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/finiteShuffle","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckstyle\/finiteshuffle"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledeckstyle/infiniteshuffle.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"infiniteShuffle"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledeckstyle\/infiniteshuffle"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/infiniteShuffle","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle deck style which makes content views scroll in the loop without ending."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"infiniteShuffle"}],"title":"ShuffleDeckStyle.infiniteShuffle","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9DeckStyleO08infiniteA0yA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckStyle":{"role":"symbol","title":"ShuffleDeckStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDeckStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle deck style that is used to change shuffling behaviour of the shuffle deck view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDeckStyle"}],"url":"\/documentation\/shuffleit\/shuffledeckstyle"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDeckStyle/infiniteShuffle":{"role":"symbol","title":"ShuffleDeckStyle.infiniteShuffle","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"infiniteShuffle"}],"abstract":[{"type":"text","text":"A shuffle deck style which makes content views scroll in the loop without ending."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDeckStyle\/infiniteShuffle","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledeckstyle\/infiniteshuffle"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledirection/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/shuffledirection\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDirection":{"role":"symbol","title":"ShuffleDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDirection"}],"abstract":[{"type":"text","text":"An enumeration of shuffle direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDirection"}],"url":"\/documentation\/shuffleit\/shuffledirection"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDirection/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledirection\/!=(_:_:)"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledirection/left.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledirection\/left"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/left","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle direction to the left."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"title":"ShuffleDirection.left","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9DirectionO4leftyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDirection/left":{"role":"symbol","title":"ShuffleDirection.left","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"left"}],"abstract":[{"type":"text","text":"A shuffle direction to the left."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/left","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledirection\/left"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDirection":{"role":"symbol","title":"ShuffleDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDirection"}],"abstract":[{"type":"text","text":"An enumeration of shuffle direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDirection"}],"url":"\/documentation\/shuffleit\/shuffledirection"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shuffledirection/right.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shuffledirection\/right"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/right","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle direction to the right."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"title":"ShuffleDirection.right","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A9DirectionO5rightyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDirection":{"role":"symbol","title":"ShuffleDirection","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleDirection"}],"abstract":[{"type":"text","text":"An enumeration of shuffle direction."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleDirection"}],"url":"\/documentation\/shuffleit\/shuffledirection"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleDirection/right":{"role":"symbol","title":"ShuffleDirection.right","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"right"}],"abstract":[{"type":"text","text":"A shuffle direction to the right."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleDirection\/right","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shuffledirection\/right"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflestack/body.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"body"},{"kind":"text","text":": "},{"kind":"keyword","text":"some"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"View","preciseIdentifier":"s:7SwiftUI4ViewP"},{"kind":"text","text":" { "},{"kind":"keyword","text":"get"},{"kind":"text","text":" }"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shufflestack\/body"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStack\/body","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"Inherited from "},{"type":"codeVoice","code":"View.body"},{"type":"text","text":"."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"body"},{"kind":"text","text":": "},{"kind":"keyword","text":"some"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"View","preciseIdentifier":"s:7SwiftUI4ViewP"}],"title":"body","roleHeading":"Instance Property","role":"symbol","symbolKind":"property","externalID":"s:9ShuffleIt0A5StackV4bodyQrvp","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStack"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStack/body":{"role":"symbol","title":"body","fragments":[{"kind":"keyword","text":"var"},{"kind":"text","text":" "},{"kind":"identifier","text":"body"},{"kind":"text","text":": "},{"kind":"keyword","text":"some"},{"kind":"text","text":" "},{"kind":"typeIdentifier","text":"View","preciseIdentifier":"s:7SwiftUI4ViewP"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStack\/body","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflestack\/body"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStack":{"role":"symbol","title":"ShuffleStack","fragments":[{"kind":"keyword","text":"struct"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleStack"}],"abstract":[{"type":"text","text":"A stack view that provides shuffling behaviour to swipe contents to left and right."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStack","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleStack"}],"url":"\/documentation\/shuffleit\/shufflestack"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflestyle/equatable-implementations.json: -------------------------------------------------------------------------------- 1 | {"variants":[{"paths":["\/documentation\/shuffleit\/shufflestyle\/equatable-implementations"],"traits":[{"interfaceLanguage":"swift"}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/Equatable-Implementations","interfaceLanguage":"swift"},"topicSections":[{"title":"Operators","identifiers":["doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/!=(_:_:)"],"generated":true}],"kind":"article","metadata":{"modules":[{"name":"ShuffleIt"}],"role":"collectionGroup","title":"Equatable Implementations"},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle/!=(_:_:)":{"role":"symbol","title":"!=(_:_:)","fragments":[{"kind":"keyword","text":"static"},{"kind":"text","text":" "},{"kind":"keyword","text":"func"},{"kind":"text","text":" "},{"kind":"identifier","text":"!="},{"kind":"text","text":" "},{"kind":"text","text":"("},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":", "},{"kind":"typeIdentifier","text":"Self"},{"kind":"text","text":") -> "},{"kind":"typeIdentifier","text":"Bool","preciseIdentifier":"s:Sb"}],"abstract":[],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/!=(_:_:)","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflestyle\/!=(_:_:)"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle":{"role":"symbol","title":"ShuffleStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleStyle"}],"url":"\/documentation\/shuffleit\/shufflestyle"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflestyle/rotatein.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"rotateIn"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shufflestyle\/rotatein"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/rotateIn","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle style which rotates and scales into center while shuffling."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"rotateIn"}],"title":"ShuffleStyle.rotateIn","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A5StyleO8rotateInyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle":{"role":"symbol","title":"ShuffleStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleStyle"}],"url":"\/documentation\/shuffleit\/shufflestyle"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle/rotateIn":{"role":"symbol","title":"ShuffleStyle.rotateIn","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"rotateIn"}],"abstract":[{"type":"text","text":"A shuffle style which rotates and scales into center while shuffling."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/rotateIn","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflestyle\/rotatein"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflestyle/rotateout.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"rotateOut"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shufflestyle\/rotateout"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/rotateOut","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle style which rotates and scales to outside while shuffling."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"rotateOut"}],"title":"ShuffleStyle.rotateOut","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A5StyleO9rotateOutyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle/rotateOut":{"role":"symbol","title":"ShuffleStyle.rotateOut","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"rotateOut"}],"abstract":[{"type":"text","text":"A shuffle style which rotates and scales to outside while shuffling."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/rotateOut","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflestyle\/rotateout"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle":{"role":"symbol","title":"ShuffleStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleStyle"}],"url":"\/documentation\/shuffleit\/shufflestyle"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/data/documentation/shuffleit/shufflestyle/slide.json: -------------------------------------------------------------------------------- 1 | {"primaryContentSections":[{"kind":"declarations","declarations":[{"tokens":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"slide"}],"languages":["swift"],"platforms":["macOS"]}]}],"schemaVersion":{"major":0,"minor":3,"patch":0},"sections":[],"variants":[{"paths":["\/documentation\/shuffleit\/shufflestyle\/slide"],"traits":[{"interfaceLanguage":"swift"}]}],"identifier":{"url":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/slide","interfaceLanguage":"swift"},"abstract":[{"type":"text","text":"A shuffle style which just slides content views without rotating."}],"kind":"symbol","metadata":{"fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"slide"}],"title":"ShuffleStyle.slide","roleHeading":"Case","role":"symbol","symbolKind":"case","externalID":"s:9ShuffleIt0A5StyleO5slideyA2CmF","modules":[{"name":"ShuffleIt"}]},"hierarchy":{"paths":[["doc:\/\/ShuffleIt\/documentation\/ShuffleIt","doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle"]]},"references":{"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle/slide":{"role":"symbol","title":"ShuffleStyle.slide","fragments":[{"kind":"keyword","text":"case"},{"kind":"text","text":" "},{"kind":"identifier","text":"slide"}],"abstract":[{"type":"text","text":"A shuffle style which just slides content views without rotating."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle\/slide","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit\/shufflestyle\/slide"},"doc://ShuffleIt/documentation/ShuffleIt/ShuffleStyle":{"role":"symbol","title":"ShuffleStyle","fragments":[{"kind":"keyword","text":"enum"},{"kind":"text","text":" "},{"kind":"identifier","text":"ShuffleStyle"}],"abstract":[{"type":"text","text":"An enumeration of shuffle style that is used to change shuffling behaviour of the shuffle stack view."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt\/ShuffleStyle","kind":"symbol","type":"topic","navigatorTitle":[{"kind":"identifier","text":"ShuffleStyle"}],"url":"\/documentation\/shuffleit\/shufflestyle"},"doc://ShuffleIt/documentation/ShuffleIt":{"role":"collection","title":"ShuffleIt","abstract":[{"type":"text","text":"A UI element library for "},{"type":"strong","inlineContent":[{"type":"text","text":"SwiftUI"}]},{"type":"text","text":"."}],"identifier":"doc:\/\/ShuffleIt\/documentation\/ShuffleIt","kind":"symbol","type":"topic","url":"\/documentation\/shuffleit"}}} -------------------------------------------------------------------------------- /docs/developer-og-twitter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/docs/developer-og-twitter.jpg -------------------------------------------------------------------------------- /docs/developer-og.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/docs/developer-og.jpg -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/docs/favicon.ico -------------------------------------------------------------------------------- /docs/favicon.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/images/ShuffleIt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/docs/images/ShuffleIt.png -------------------------------------------------------------------------------- /docs/img/added-icon.d6f7e47d.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/deprecated-icon.015b4f17.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/modified-icon.f496e73d.svg: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /docs/img/no-image@2x.df2a0a50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dscyrescotti/ShuffleIt/e0e70737c1f32f72aec305036484b737ef9d0467/docs/img/no-image@2x.df2a0a50.png -------------------------------------------------------------------------------- /docs/js/highlight-js-diff.62d66733.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-diff"],{"48b8":function(e,n){function a(e){const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-http.163e45b6.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-http"],{c01d:function(e,n){function a(e){const n=e.regex,a="HTTP/(2|1\\.[01])",s=/[A-Za-z][A-Za-z0-9-]*/,t={className:"attribute",begin:n.concat("^",s,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},i=[t,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",end:/$/,contains:[{className:"meta",begin:a},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},{begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:i}},e.inherit(t,{relevance:0})]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-java.8326d9d8.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-java"],{"332f":function(e,a){var n="[0-9](_*[0-9])*",s=`\\.(${n})`,i="[0-9a-fA-F](_*[0-9a-fA-F])*",t={className:"number",variants:[{begin:`(\\b(${n})((${s})|\\.)?|(${s}))[eE][+-]?(${n})[fFdD]?\\b`},{begin:`\\b(${n})((${s})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${s})[fFdD]?\\b`},{begin:`\\b(${n})[fFdD]\\b`},{begin:`\\b0[xX]((${i})\\.?|(${i})?\\.(${i}))[pP][+-]?(${n})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${i})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function r(e,a,n){return-1===n?"":e.replace(a,s=>r(e,a,n-1))}function c(e){e.regex;const a="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",n=a+r("(?:<"+a+"~~~(?:\\s*,\\s*"+a+"~~~)*>)?",/~~~/g,2),s=["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do"],i=["super","this"],c=["false","true","null"],l=["char","boolean","long","float","int","byte","short","double"],o={keyword:s,literal:c,type:l,built_in:i},b={className:"meta",begin:"@"+a,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},_={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,a],className:{1:"keyword",3:"title.class"}},{begin:[a,/\s+/,a,/\s+/,/=/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,a],className:{1:"keyword",3:"title.class"},contains:[_,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+n+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[b,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,t,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},t,b]}}e.exports=c}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-json.471128d2.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-json"],{"5ad2":function(n,e){function a(n){const e={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},a={match:/[{}[\],:]/,className:"punctuation",relevance:0},s={beginKeywords:["true","false","null"].join(" ")};return{name:"JSON",contains:[e,a,n.QUOTE_STRING_MODE,s,n.C_NUMBER_MODE,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}n.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-markdown.90077643.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-markdown"],{"04b0":function(n,e){function a(n){const e=n.regex,a={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},s={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},t={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},g=/[A-Za-z][A-Za-z0-9+.-]*/,d={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,g,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},l={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},o={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};l.contains.push(o),o.contains.push(l);let b=[a,d];l.contains=l.contains.concat(b),o.contains=o.contains.concat(b),b=b.concat(l,o);const r={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:b},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:b}]}]},m={className:"quote",begin:"^>\\s+",contains:b,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[r,a,c,l,o,m,s,i,d,t]}}n.exports=a}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-shell.dd7f411f.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-shell"],{b65b:function(s,n){function e(s){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}s.exports=e}}]); -------------------------------------------------------------------------------- /docs/js/highlight-js-xml.9c3688c7.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * This source file is part of the Swift.org open source project 3 | * 4 | * Copyright (c) 2021 Apple Inc. and the Swift project authors 5 | * Licensed under Apache License v2.0 with Runtime Library Exception 6 | * 7 | * See https://swift.org/LICENSE.txt for license information 8 | * See https://swift.org/CONTRIBUTORS.txt for Swift project authors 9 | */ 10 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["highlight-js-xml"],{"8dcb":function(e,n){function a(e){const n=e.regex,a=n.concat(/[A-Z_]/,n.optional(/[A-Z0-9_.-]*:/),/[A-Z0-9_.-]*/),s=/[A-Za-z0-9._:-]+/,t={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},c=e.inherit(i,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),r=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),g={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,r,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[i,c,r,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},t,{className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[g],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[g],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:g}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}e.exports=a}}]); -------------------------------------------------------------------------------- /docs/metadata.json: -------------------------------------------------------------------------------- 1 | {"bundleDisplayName":"ShuffleIt","bundleIdentifier":"ShuffleIt","schemaVersion":{"major":0,"minor":1,"patch":0}} -------------------------------------------------------------------------------- /docs/theme-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "meta": {}, 3 | "theme": { 4 | "code": { 5 | "indentationWidth": 4 6 | }, 7 | "colors": { 8 | "text": "", 9 | "text-background": "", 10 | "grid": "", 11 | "article-background": "", 12 | "generic-modal-background": "", 13 | "secondary-label": "", 14 | "header-text": "", 15 | "not-found": { 16 | "input-border": "" 17 | }, 18 | "runtime-preview": { 19 | "text": "" 20 | }, 21 | "tabnav-item": { 22 | "border-color": "" 23 | }, 24 | "svg-icon": { 25 | "fill-light": "", 26 | "fill-dark": "" 27 | }, 28 | "loading-placeholder": { 29 | "background": "" 30 | }, 31 | "button": { 32 | "text": "", 33 | "light": { 34 | "background": "", 35 | "backgroundHover": "", 36 | "backgroundActive": "" 37 | }, 38 | "dark": { 39 | "background": "", 40 | "backgroundHover": "", 41 | "backgroundActive": "" 42 | } 43 | }, 44 | "link": null 45 | }, 46 | "style": { 47 | "button": { 48 | "borderRadius": null 49 | } 50 | }, 51 | "typography": { 52 | "html-font": "" 53 | } 54 | }, 55 | "features": { 56 | "docs": { 57 | } 58 | } 59 | } 60 | --------------------------------------------------------------------------------