├── .all-contributorsrc ├── .autorc ├── .circleci └── config.yml ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── APP-CONFIG.md ├── APP-TESTING.md ├── CHANGELOG.md ├── LICENSE.md ├── MIGRATION.md ├── README.md ├── STORYBOOK-CONFIG.md ├── examples ├── android-material-ui │ ├── .babelrc.json │ ├── .storybook │ │ ├── main.js │ │ └── preview.js │ ├── app │ │ ├── app │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src │ │ │ │ ├── androidTest │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── intuit │ │ │ │ │ └── august2020 │ │ │ │ │ └── storybookdemoapp │ │ │ │ │ └── ExampleInstrumentedTest.kt │ │ │ │ ├── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── ic_launcher-playstore.png │ │ │ │ ├── java │ │ │ │ │ └── com │ │ │ │ │ │ └── intuit │ │ │ │ │ │ └── august2020 │ │ │ │ │ │ └── storybookdemoapp │ │ │ │ │ │ ├── ButtonActivity.kt │ │ │ │ │ │ ├── CardActivity.kt │ │ │ │ │ │ ├── ChipsActivity.kt │ │ │ │ │ │ ├── DialogsActivity.kt │ │ │ │ │ │ ├── FloatingButtonActivity.kt │ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ │ ├── RadioActivity.kt │ │ │ │ │ │ ├── SliderActivity.kt │ │ │ │ │ │ ├── SnackbarActivity.kt │ │ │ │ │ │ ├── SwitchActivity.kt │ │ │ │ │ │ ├── TabsActivity.kt │ │ │ │ │ │ └── TextFieldActivity.kt │ │ │ │ └── res │ │ │ │ │ ├── drawable-v24 │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ ├── drawable │ │ │ │ │ ├── ic_add_24px.xml │ │ │ │ │ ├── ic_alarm_24px.xml │ │ │ │ │ ├── ic_android_black_24dp.xml │ │ │ │ │ ├── ic_call_24px.xml │ │ │ │ │ ├── ic_delete_outline_24px.xml │ │ │ │ │ ├── ic_favorite_24px.xml │ │ │ │ │ ├── ic_info_24px.xml │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ └── ic_room_24px.xml │ │ │ │ │ ├── layout │ │ │ │ │ ├── activity_button.xml │ │ │ │ │ ├── activity_card.xml │ │ │ │ │ ├── activity_chips.xml │ │ │ │ │ ├── activity_dialogs.xml │ │ │ │ │ ├── activity_floating_button.xml │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ ├── activity_radio.xml │ │ │ │ │ ├── activity_slider.xml │ │ │ │ │ ├── activity_snackbar.xml │ │ │ │ │ ├── activity_switch.xml │ │ │ │ │ ├── activity_tabs.xml │ │ │ │ │ └── activity_text_field.xml │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ ├── ic_card_media.png │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ ├── ic_card_media.png │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ ├── ic_card_media.png │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── ic_card_media.png │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ ├── ic_card_media.png │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ └── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── intuit │ │ │ │ └── august2020 │ │ │ │ └── storybookdemoapp │ │ │ │ └── ExampleUnitTest.kt │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ ├── generate.js │ └── package.json ├── controls │ ├── .babelrc.json │ ├── .storybook │ │ ├── main.js │ │ └── preview.js │ ├── app │ │ └── README.md │ ├── package.json │ └── src │ │ ├── button.stories.jsx │ │ ├── card.stories.jsx │ │ ├── chips.stories.jsx │ │ ├── constants.js │ │ ├── dialogs.stories.jsx │ │ ├── floatingButton.stories.jsx │ │ ├── radio.stories.jsx │ │ ├── slider.stories.jsx │ │ ├── snackbar.stories.jsx │ │ ├── switch.stories.jsx │ │ ├── tabs.stories.jsx │ │ └── textfield.stories.jsx ├── cross-platform │ ├── .babelrc.json │ ├── .storybook │ │ ├── main.js │ │ ├── middleware.js │ │ └── preview.js │ ├── package.json │ └── src │ │ ├── android.stories.jsx │ │ ├── comparison.stories.jsx │ │ ├── ios.stories.jsx │ │ └── web.stories.jsx ├── flutter │ ├── .babelrc.json │ ├── .storybook │ │ ├── main.js │ │ └── preview.js │ ├── app │ │ ├── README.md │ │ ├── android │ │ │ ├── .gitignore │ │ │ ├── app │ │ │ │ ├── build.gradle │ │ │ │ └── src │ │ │ │ │ ├── debug │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ │ ├── main │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── kotlin │ │ │ │ │ │ └── flutter │ │ │ │ │ │ │ └── company │ │ │ │ │ │ │ └── com │ │ │ │ │ │ │ └── flutter_storybook │ │ │ │ │ │ │ ├── JsonUtils.java │ │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ │ └── values │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── profile │ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── build.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ └── wrapper │ │ │ │ │ └── gradle-wrapper.properties │ │ │ └── settings.gradle │ │ ├── ios │ │ │ ├── .gitignore │ │ │ ├── Flutter │ │ │ │ ├── AppFrameworkInfo.plist │ │ │ │ ├── Debug.xcconfig │ │ │ │ └── Release.xcconfig │ │ │ ├── Podfile │ │ │ ├── Podfile.lock │ │ │ ├── Runner.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata │ │ │ │ │ └── xcschemes │ │ │ │ │ └── Runner.xcscheme │ │ │ ├── Runner.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ └── Runner │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── Assets.xcassets │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ │ │ ├── Icon-App-20x20@1x.png │ │ │ │ │ ├── Icon-App-20x20@2x.png │ │ │ │ │ ├── Icon-App-20x20@3x.png │ │ │ │ │ ├── Icon-App-29x29@1x.png │ │ │ │ │ ├── Icon-App-29x29@2x.png │ │ │ │ │ ├── Icon-App-29x29@3x.png │ │ │ │ │ ├── Icon-App-40x40@1x.png │ │ │ │ │ ├── Icon-App-40x40@2x.png │ │ │ │ │ ├── Icon-App-40x40@3x.png │ │ │ │ │ ├── Icon-App-60x60@2x.png │ │ │ │ │ ├── Icon-App-60x60@3x.png │ │ │ │ │ ├── Icon-App-76x76@1x.png │ │ │ │ │ ├── Icon-App-76x76@2x.png │ │ │ │ │ └── Icon-App-83.5x83.5@2x.png │ │ │ │ └── LaunchImage.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── LaunchImage.png │ │ │ │ │ ├── LaunchImage@2x.png │ │ │ │ │ ├── LaunchImage@3x.png │ │ │ │ │ └── README.md │ │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── Main.storyboard │ │ │ │ ├── Info.plist │ │ │ │ └── Runner-Bridging-Header.h │ │ ├── lib │ │ │ ├── bannerPage.dart │ │ │ ├── buttonPage.dart │ │ │ ├── checkboxPage.dart │ │ │ ├── chipsPage.dart │ │ │ ├── fabPage.dart │ │ │ ├── main.dart │ │ │ └── textPage.dart │ │ ├── pubspec.lock │ │ ├── pubspec.yaml │ │ └── test │ │ │ └── widget_test.dart │ ├── package.json │ └── src │ │ ├── android.stories.jsx │ │ └── ios.stories.jsx └── ios-material-ui │ ├── .babelrc.json │ ├── .storybook │ ├── main.js │ ├── middleware.js │ └── preview.js │ ├── app │ ├── LICENSE │ └── iOSStoryBookDemo │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── Pods │ │ ├── MDFInternationalization │ │ │ ├── LICENSE │ │ │ └── Sources │ │ │ │ ├── MDFInternationalization.h │ │ │ │ ├── MDFRTL.h │ │ │ │ ├── MDFRTL.m │ │ │ │ ├── NSLocale+MaterialRTL.h │ │ │ │ ├── NSLocale+MaterialRTL.m │ │ │ │ ├── NSString+MaterialBidi.h │ │ │ │ ├── NSString+MaterialBidi.m │ │ │ │ ├── UIImage+MaterialRTL.h │ │ │ │ ├── UIImage+MaterialRTL.m │ │ │ │ ├── UIView+MaterialRTL.h │ │ │ │ └── UIView+MaterialRTL.m │ │ ├── MDFTextAccessibility │ │ │ ├── LICENSE │ │ │ └── src │ │ │ │ ├── MDFTextAccessibility-Bridging-Header.h │ │ │ │ ├── MDFTextAccessibility.h │ │ │ │ ├── MDFTextAccessibility.m │ │ │ │ └── private │ │ │ │ ├── MDFColorCalculations.h │ │ │ │ ├── MDFColorCalculations.m │ │ │ │ ├── MDFImageCalculations.h │ │ │ │ ├── MDFImageCalculations.m │ │ │ │ ├── NSArray+MDFUtils.h │ │ │ │ └── NSArray+MDFUtils.m │ │ ├── Manifest.lock │ │ ├── MaterialComponents │ │ │ ├── LICENSE │ │ │ └── components │ │ │ │ ├── ActivityIndicator │ │ │ │ └── src │ │ │ │ │ ├── MDCActivityIndicator.h │ │ │ │ │ ├── MDCActivityIndicator.m │ │ │ │ │ ├── MDCActivityIndicatorDelegate.h │ │ │ │ │ ├── MaterialActivityIndicator.bundle │ │ │ │ │ └── Resources │ │ │ │ │ │ └── en.lproj │ │ │ │ │ │ └── MaterialActivityIndicator.strings │ │ │ │ │ ├── MaterialActivityIndicator.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCActivityIndicator+Private.h │ │ │ │ │ ├── MDCActivityIndicatorMotionSpec.h │ │ │ │ │ ├── MDCActivityIndicatorMotionSpec.m │ │ │ │ │ ├── MaterialActivityIndicatorStrings.h │ │ │ │ │ └── MaterialActivityIndicatorStrings_table.h │ │ │ │ ├── AnimationTiming │ │ │ │ └── src │ │ │ │ │ ├── CAMediaTimingFunction+MDCAnimationTiming.h │ │ │ │ │ ├── CAMediaTimingFunction+MDCAnimationTiming.m │ │ │ │ │ ├── MaterialAnimationTiming.h │ │ │ │ │ ├── UIView+MDCTimingFunction.h │ │ │ │ │ └── UIView+MDCTimingFunction.m │ │ │ │ ├── Availability │ │ │ │ └── src │ │ │ │ │ ├── MDCAvailability.h │ │ │ │ │ └── MaterialAvailability.h │ │ │ │ ├── Buttons │ │ │ │ └── src │ │ │ │ │ ├── ColorThemer │ │ │ │ │ ├── MDCButtonColorThemer.h │ │ │ │ │ ├── MDCButtonColorThemer.m │ │ │ │ │ ├── MDCContainedButtonColorThemer.h │ │ │ │ │ ├── MDCContainedButtonColorThemer.m │ │ │ │ │ ├── MDCFloatingButtonColorThemer.h │ │ │ │ │ ├── MDCFloatingButtonColorThemer.m │ │ │ │ │ ├── MDCOutlinedButtonColorThemer.h │ │ │ │ │ ├── MDCOutlinedButtonColorThemer.m │ │ │ │ │ ├── MDCTextButtonColorThemer.h │ │ │ │ │ ├── MDCTextButtonColorThemer.m │ │ │ │ │ └── MaterialButtons+ColorThemer.h │ │ │ │ │ ├── MDCButton.h │ │ │ │ │ ├── MDCButton.m │ │ │ │ │ ├── MDCFlatButton.h │ │ │ │ │ ├── MDCFlatButton.m │ │ │ │ │ ├── MDCFloatingButton+Animation.h │ │ │ │ │ ├── MDCFloatingButton+Animation.m │ │ │ │ │ ├── MDCFloatingButton.h │ │ │ │ │ ├── MDCFloatingButton.m │ │ │ │ │ ├── MDCRaisedButton.h │ │ │ │ │ ├── MDCRaisedButton.m │ │ │ │ │ ├── MaterialButtons.h │ │ │ │ │ ├── ShapeThemer │ │ │ │ │ ├── MDCButtonShapeThemer.h │ │ │ │ │ ├── MDCButtonShapeThemer.m │ │ │ │ │ └── MaterialButtons+ShapeThemer.h │ │ │ │ │ ├── Theming │ │ │ │ │ ├── MDCButton+MaterialTheming.h │ │ │ │ │ ├── MDCButton+MaterialTheming.m │ │ │ │ │ ├── MDCFloatingButton+MaterialTheming.h │ │ │ │ │ ├── MDCFloatingButton+MaterialTheming.m │ │ │ │ │ └── MaterialButtons+Theming.h │ │ │ │ │ ├── TypographyThemer │ │ │ │ │ ├── MDCButtonTypographyThemer.h │ │ │ │ │ ├── MDCButtonTypographyThemer.m │ │ │ │ │ └── MaterialButtons+TypographyThemer.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCButton+Subclassing.h │ │ │ │ │ ├── MDCFloatingButtonModeAnimator.h │ │ │ │ │ ├── MDCFloatingButtonModeAnimator.m │ │ │ │ │ └── MDCFloatingButtonModeAnimatorDelegate.h │ │ │ │ ├── Elevation │ │ │ │ └── src │ │ │ │ │ ├── MDCElevatable.h │ │ │ │ │ ├── MDCElevationOverriding.h │ │ │ │ │ ├── MaterialElevation.h │ │ │ │ │ ├── UIColor+MaterialElevation.h │ │ │ │ │ ├── UIColor+MaterialElevation.m │ │ │ │ │ ├── UIView+MaterialElevationResponding.h │ │ │ │ │ └── UIView+MaterialElevationResponding.m │ │ │ │ ├── Ink │ │ │ │ └── src │ │ │ │ │ ├── MDCInkGestureRecognizer.h │ │ │ │ │ ├── MDCInkGestureRecognizer.m │ │ │ │ │ ├── MDCInkTouchController.h │ │ │ │ │ ├── MDCInkTouchController.m │ │ │ │ │ ├── MDCInkTouchControllerDelegate.h │ │ │ │ │ ├── MDCInkView.h │ │ │ │ │ ├── MDCInkView.m │ │ │ │ │ ├── MDCInkViewDelegate.h │ │ │ │ │ ├── MaterialInk.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCInkLayer.h │ │ │ │ │ ├── MDCInkLayer.m │ │ │ │ │ ├── MDCInkLayerDelegate.h │ │ │ │ │ ├── MDCLegacyInkLayer+Private.h │ │ │ │ │ ├── MDCLegacyInkLayer.h │ │ │ │ │ ├── MDCLegacyInkLayer.m │ │ │ │ │ ├── MDCLegacyInkLayerDelegate.h │ │ │ │ │ └── MDCLegacyInkLayerRippleDelegate.h │ │ │ │ ├── Palettes │ │ │ │ └── src │ │ │ │ │ ├── MDCPalettes.h │ │ │ │ │ ├── MDCPalettes.m │ │ │ │ │ ├── MaterialPalettes.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCPaletteExpansions.h │ │ │ │ │ ├── MDCPaletteExpansions.m │ │ │ │ │ ├── MDCPaletteNames.h │ │ │ │ │ └── MDCPaletteNames.m │ │ │ │ ├── ProgressView │ │ │ │ └── src │ │ │ │ │ ├── MDCProgressView.h │ │ │ │ │ ├── MDCProgressView.m │ │ │ │ │ ├── MaterialProgressView.bundle │ │ │ │ │ └── Resources │ │ │ │ │ │ └── en.lproj │ │ │ │ │ │ └── MaterialProgressView.strings │ │ │ │ │ ├── MaterialProgressView.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCProgressGradientView.h │ │ │ │ │ ├── MDCProgressGradientView.m │ │ │ │ │ ├── MaterialProgressViewStrings.h │ │ │ │ │ └── MaterialProgressViewStrings_table.h │ │ │ │ ├── Ripple │ │ │ │ └── src │ │ │ │ │ ├── MDCRippleTouchController.h │ │ │ │ │ ├── MDCRippleTouchController.m │ │ │ │ │ ├── MDCRippleTouchControllerDelegate.h │ │ │ │ │ ├── MDCRippleView.h │ │ │ │ │ ├── MDCRippleView.m │ │ │ │ │ ├── MDCRippleViewDelegate.h │ │ │ │ │ ├── MDCStatefulRippleView.h │ │ │ │ │ ├── MDCStatefulRippleView.m │ │ │ │ │ ├── MaterialRipple.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCRippleLayer.h │ │ │ │ │ ├── MDCRippleLayer.m │ │ │ │ │ └── MDCRippleLayerDelegate.h │ │ │ │ ├── ShadowElevations │ │ │ │ └── src │ │ │ │ │ ├── MDCShadowElevations.h │ │ │ │ │ ├── MaterialShadowElevations.h │ │ │ │ │ └── MaterialShadowElevationsDummy.m │ │ │ │ ├── ShadowLayer │ │ │ │ └── src │ │ │ │ │ ├── MDCShadowLayer.h │ │ │ │ │ ├── MDCShadowLayer.m │ │ │ │ │ └── MaterialShadowLayer.h │ │ │ │ ├── ShapeLibrary │ │ │ │ └── src │ │ │ │ │ ├── MDCCornerTreatment+CornerTypeInitalizer.h │ │ │ │ │ ├── MDCCornerTreatment+CornerTypeInitalizer.m │ │ │ │ │ ├── MDCCurvedCornerTreatment.h │ │ │ │ │ ├── MDCCurvedCornerTreatment.m │ │ │ │ │ ├── MDCCurvedRectShapeGenerator.h │ │ │ │ │ ├── MDCCurvedRectShapeGenerator.m │ │ │ │ │ ├── MDCCutCornerTreatment.h │ │ │ │ │ ├── MDCCutCornerTreatment.m │ │ │ │ │ ├── MDCPillShapeGenerator.h │ │ │ │ │ ├── MDCPillShapeGenerator.m │ │ │ │ │ ├── MDCRoundedCornerTreatment.h │ │ │ │ │ ├── MDCRoundedCornerTreatment.m │ │ │ │ │ ├── MDCSlantedRectShapeGenerator.h │ │ │ │ │ ├── MDCSlantedRectShapeGenerator.m │ │ │ │ │ ├── MDCTriangleEdgeTreatment.h │ │ │ │ │ ├── MDCTriangleEdgeTreatment.m │ │ │ │ │ └── MaterialShapeLibrary.h │ │ │ │ ├── Shapes │ │ │ │ └── src │ │ │ │ │ ├── MDCCornerTreatment.h │ │ │ │ │ ├── MDCCornerTreatment.m │ │ │ │ │ ├── MDCEdgeTreatment.h │ │ │ │ │ ├── MDCEdgeTreatment.m │ │ │ │ │ ├── MDCPathGenerator.h │ │ │ │ │ ├── MDCPathGenerator.m │ │ │ │ │ ├── MDCRectangleShapeGenerator.h │ │ │ │ │ ├── MDCRectangleShapeGenerator.m │ │ │ │ │ ├── MDCShapeGenerating.h │ │ │ │ │ ├── MDCShapedShadowLayer.h │ │ │ │ │ ├── MDCShapedShadowLayer.m │ │ │ │ │ ├── MDCShapedView.h │ │ │ │ │ ├── MDCShapedView.m │ │ │ │ │ └── MaterialShapes.h │ │ │ │ ├── Slider │ │ │ │ └── src │ │ │ │ │ ├── MDCSlider.h │ │ │ │ │ ├── MDCSlider.m │ │ │ │ │ ├── MDCSliderDelegate.h │ │ │ │ │ ├── MaterialSlider.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCSlider+Private.h │ │ │ │ │ └── MDCSlider_Subclassable.h │ │ │ │ ├── TextFields │ │ │ │ └── src │ │ │ │ │ ├── ColorThemer │ │ │ │ │ ├── MDCFilledTextFieldColorThemer.h │ │ │ │ │ ├── MDCFilledTextFieldColorThemer.m │ │ │ │ │ └── MaterialTextFields+ColorThemer.h │ │ │ │ │ ├── MDCIntrinsicHeightTextView.h │ │ │ │ │ ├── MDCIntrinsicHeightTextView.m │ │ │ │ │ ├── MDCMultilineTextField.h │ │ │ │ │ ├── MDCMultilineTextField.m │ │ │ │ │ ├── MDCMultilineTextInputDelegate.h │ │ │ │ │ ├── MDCMultilineTextInputLayoutDelegate.h │ │ │ │ │ ├── MDCTextField.h │ │ │ │ │ ├── MDCTextField.m │ │ │ │ │ ├── MDCTextFieldPositioningDelegate.h │ │ │ │ │ ├── MDCTextInput.h │ │ │ │ │ ├── MDCTextInputBorderView.h │ │ │ │ │ ├── MDCTextInputBorderView.m │ │ │ │ │ ├── MDCTextInputCharacterCounter.h │ │ │ │ │ ├── MDCTextInputController.h │ │ │ │ │ ├── MDCTextInputControllerBase.h │ │ │ │ │ ├── MDCTextInputControllerBase.m │ │ │ │ │ ├── MDCTextInputControllerFilled.h │ │ │ │ │ ├── MDCTextInputControllerFilled.m │ │ │ │ │ ├── MDCTextInputControllerFloatingPlaceholder.h │ │ │ │ │ ├── MDCTextInputControllerFullWidth.h │ │ │ │ │ ├── MDCTextInputControllerFullWidth.m │ │ │ │ │ ├── MDCTextInputControllerLegacyDefault.h │ │ │ │ │ ├── MDCTextInputControllerLegacyDefault.m │ │ │ │ │ ├── MDCTextInputControllerLegacyFullWidth.h │ │ │ │ │ ├── MDCTextInputControllerLegacyFullWidth.m │ │ │ │ │ ├── MDCTextInputControllerOutlined.h │ │ │ │ │ ├── MDCTextInputControllerOutlined.m │ │ │ │ │ ├── MDCTextInputControllerOutlinedTextArea.h │ │ │ │ │ ├── MDCTextInputControllerOutlinedTextArea.m │ │ │ │ │ ├── MDCTextInputControllerUnderline.h │ │ │ │ │ ├── MDCTextInputControllerUnderline.m │ │ │ │ │ ├── MDCTextInputUnderlineView.h │ │ │ │ │ ├── MDCTextInputUnderlineView.m │ │ │ │ │ ├── MaterialTextFields.h │ │ │ │ │ ├── Theming │ │ │ │ │ ├── MDCTextInputControllerFilled+MaterialTheming.h │ │ │ │ │ ├── MDCTextInputControllerFilled+MaterialTheming.m │ │ │ │ │ ├── MDCTextInputControllerOutlined+MaterialTheming.h │ │ │ │ │ ├── MDCTextInputControllerOutlined+MaterialTheming.m │ │ │ │ │ ├── MDCTextInputControllerUnderline+MaterialTheming.h │ │ │ │ │ ├── MDCTextInputControllerUnderline+MaterialTheming.m │ │ │ │ │ └── MaterialTextFields+Theming.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCTextField+Testing.h │ │ │ │ │ ├── MDCTextInputAllCharactersCounter.m │ │ │ │ │ ├── MDCTextInputArt.h │ │ │ │ │ ├── MDCTextInputCommonFundament.h │ │ │ │ │ ├── MDCTextInputCommonFundament.m │ │ │ │ │ └── MDCTextInputControllerBase+Subclassing.h │ │ │ │ ├── Themes │ │ │ │ └── src │ │ │ │ │ ├── MDCColorScheme.h │ │ │ │ │ ├── MDCFontScheme.h │ │ │ │ │ ├── MDCTonalColorScheme.h │ │ │ │ │ ├── MDCTonalPalette.h │ │ │ │ │ └── MaterialThemes.h │ │ │ │ ├── Typography │ │ │ │ └── src │ │ │ │ │ ├── MDCFontScaler.h │ │ │ │ │ ├── MDCFontScaler.m │ │ │ │ │ ├── MDCFontTextStyle.h │ │ │ │ │ ├── MDCTypography.h │ │ │ │ │ ├── MDCTypography.m │ │ │ │ │ ├── MaterialTypography.h │ │ │ │ │ ├── UIFont+MaterialScalable.h │ │ │ │ │ ├── UIFont+MaterialScalable.m │ │ │ │ │ ├── UIFont+MaterialSimpleEquality.h │ │ │ │ │ ├── UIFont+MaterialSimpleEquality.m │ │ │ │ │ ├── UIFont+MaterialTypography.h │ │ │ │ │ ├── UIFont+MaterialTypography.m │ │ │ │ │ ├── UIFontDescriptor+MaterialTypography.h │ │ │ │ │ ├── UIFontDescriptor+MaterialTypography.m │ │ │ │ │ └── private │ │ │ │ │ ├── MDCFontTraits.h │ │ │ │ │ ├── MDCFontTraits.m │ │ │ │ │ ├── MDCTypographyUtilities.h │ │ │ │ │ ├── MDCTypographyUtilities.m │ │ │ │ │ ├── UIFont+MaterialTypographyPrivate.h │ │ │ │ │ └── UIFont+MaterialTypographyPrivate.m │ │ │ │ ├── private │ │ │ │ ├── Application │ │ │ │ │ └── src │ │ │ │ │ │ ├── MaterialApplication.h │ │ │ │ │ │ ├── UIApplication+MDCAppExtensions.h │ │ │ │ │ │ └── UIApplication+MDCAppExtensions.m │ │ │ │ ├── Color │ │ │ │ │ └── src │ │ │ │ │ │ ├── MaterialColor.h │ │ │ │ │ │ ├── UIColor+MaterialBlending.h │ │ │ │ │ │ ├── UIColor+MaterialBlending.m │ │ │ │ │ │ ├── UIColor+MaterialDynamic.h │ │ │ │ │ │ └── UIColor+MaterialDynamic.m │ │ │ │ ├── Math │ │ │ │ │ └── src │ │ │ │ │ │ ├── MDCMath.h │ │ │ │ │ │ ├── MaterialMath.h │ │ │ │ │ │ └── MaterialMathDummy.m │ │ │ │ └── ThumbTrack │ │ │ │ │ └── src │ │ │ │ │ ├── MDCNumericValueLabel.h │ │ │ │ │ ├── MDCNumericValueLabel.m │ │ │ │ │ ├── MDCThumbTrack.h │ │ │ │ │ ├── MDCThumbTrack.m │ │ │ │ │ ├── MDCThumbView.h │ │ │ │ │ ├── MDCThumbView.m │ │ │ │ │ ├── MaterialThumbTrack.h │ │ │ │ │ └── private │ │ │ │ │ ├── MDCDiscreteDotView.h │ │ │ │ │ ├── MDCDiscreteDotView.m │ │ │ │ │ └── MDCThumbTrack+Private.h │ │ │ │ └── schemes │ │ │ │ ├── Color │ │ │ │ └── src │ │ │ │ │ ├── MDCLegacyColorScheme.h │ │ │ │ │ ├── MDCLegacyColorScheme.m │ │ │ │ │ ├── MDCLegacyTonalColorScheme.h │ │ │ │ │ ├── MDCLegacyTonalColorScheme.m │ │ │ │ │ ├── MDCLegacyTonalPalette.h │ │ │ │ │ ├── MDCLegacyTonalPalette.m │ │ │ │ │ ├── MDCSemanticColorScheme.h │ │ │ │ │ ├── MDCSemanticColorScheme.m │ │ │ │ │ └── MaterialColorScheme.h │ │ │ │ ├── Container │ │ │ │ └── src │ │ │ │ │ ├── MDCContainerScheme.h │ │ │ │ │ ├── MDCContainerScheme.m │ │ │ │ │ └── MaterialContainerScheme.h │ │ │ │ ├── Shape │ │ │ │ └── src │ │ │ │ │ ├── MDCShapeCategory.h │ │ │ │ │ ├── MDCShapeCategory.m │ │ │ │ │ ├── MDCShapeScheme.h │ │ │ │ │ ├── MDCShapeScheme.m │ │ │ │ │ └── MaterialShapeScheme.h │ │ │ │ └── Typography │ │ │ │ └── src │ │ │ │ ├── BasicFontScheme │ │ │ │ ├── MDCBasicFontScheme.h │ │ │ │ ├── MDCBasicFontScheme.m │ │ │ │ └── MaterialTypographyScheme+BasicFontScheme.h │ │ │ │ ├── MDCLegacyFontScheme.h │ │ │ │ ├── MDCTypographyScheme.h │ │ │ │ ├── MDCTypographyScheme.m │ │ │ │ ├── MaterialTypographyScheme.h │ │ │ │ └── Scheming │ │ │ │ ├── MDCTypographyScheming.h │ │ │ │ └── MaterialTypographyScheme+Scheming.h │ │ ├── MotionAnimator │ │ │ ├── LICENSE │ │ │ └── src │ │ │ │ ├── CATransaction+MotionAnimator.h │ │ │ │ ├── CATransaction+MotionAnimator.m │ │ │ │ ├── MDMAnimatableKeyPaths.h │ │ │ │ ├── MDMAnimatableKeyPaths.m │ │ │ │ ├── MDMCoreAnimationTraceable.h │ │ │ │ ├── MDMMotionAnimator.h │ │ │ │ ├── MDMMotionAnimator.m │ │ │ │ ├── MotionAnimator.h │ │ │ │ └── private │ │ │ │ ├── CABasicAnimation+MotionAnimator.h │ │ │ │ ├── CABasicAnimation+MotionAnimator.m │ │ │ │ ├── CAMediaTimingFunction+MotionAnimator.h │ │ │ │ ├── CAMediaTimingFunction+MotionAnimator.m │ │ │ │ ├── MDMAnimationRegistrar.h │ │ │ │ ├── MDMAnimationRegistrar.m │ │ │ │ ├── MDMBlockAnimations.h │ │ │ │ ├── MDMBlockAnimations.m │ │ │ │ ├── MDMDragCoefficient.h │ │ │ │ ├── MDMDragCoefficient.m │ │ │ │ ├── MDMRegisteredAnimation.h │ │ │ │ ├── MDMRegisteredAnimation.m │ │ │ │ ├── MDMUIKitValueCoercion.h │ │ │ │ └── MDMUIKitValueCoercion.m │ │ ├── MotionInterchange │ │ │ ├── LICENSE │ │ │ └── src │ │ │ │ ├── CAMediaTimingFunction+MDMTimingCurve.h │ │ │ │ ├── CAMediaTimingFunction+MDMTimingCurve.m │ │ │ │ ├── MDMAnimationTraits.h │ │ │ │ ├── MDMAnimationTraits.m │ │ │ │ ├── MDMMotionCurve.h │ │ │ │ ├── MDMMotionCurve.m │ │ │ │ ├── MDMMotionRepetition.h │ │ │ │ ├── MDMMotionTiming.h │ │ │ │ ├── MDMRepetition.h │ │ │ │ ├── MDMRepetition.m │ │ │ │ ├── MDMRepetitionOverTime.h │ │ │ │ ├── MDMRepetitionOverTime.m │ │ │ │ ├── MDMRepetitionTraits.h │ │ │ │ ├── MDMSpringTimingCurve.h │ │ │ │ ├── MDMSpringTimingCurve.m │ │ │ │ ├── MDMSpringTimingCurveGenerator.h │ │ │ │ ├── MDMSpringTimingCurveGenerator.m │ │ │ │ ├── MDMSubclassingRestricted.h │ │ │ │ ├── MDMTimingCurve.h │ │ │ │ └── MotionInterchange.h │ │ ├── Pods.xcodeproj │ │ │ └── project.pbxproj │ │ └── Target Support Files │ │ │ ├── MDFInternationalization │ │ │ ├── MDFInternationalization-Info.plist │ │ │ ├── MDFInternationalization-dummy.m │ │ │ ├── MDFInternationalization-prefix.pch │ │ │ ├── MDFInternationalization-umbrella.h │ │ │ ├── MDFInternationalization.debug.xcconfig │ │ │ ├── MDFInternationalization.modulemap │ │ │ └── MDFInternationalization.release.xcconfig │ │ │ ├── MDFTextAccessibility │ │ │ ├── MDFTextAccessibility-Info.plist │ │ │ ├── MDFTextAccessibility-dummy.m │ │ │ ├── MDFTextAccessibility-prefix.pch │ │ │ ├── MDFTextAccessibility-umbrella.h │ │ │ ├── MDFTextAccessibility.debug.xcconfig │ │ │ ├── MDFTextAccessibility.modulemap │ │ │ └── MDFTextAccessibility.release.xcconfig │ │ │ ├── MaterialComponents │ │ │ ├── MaterialComponents-Info.plist │ │ │ ├── MaterialComponents-dummy.m │ │ │ ├── MaterialComponents-prefix.pch │ │ │ ├── MaterialComponents-umbrella.h │ │ │ ├── MaterialComponents.debug.xcconfig │ │ │ ├── MaterialComponents.modulemap │ │ │ └── MaterialComponents.release.xcconfig │ │ │ ├── MotionAnimator │ │ │ ├── MotionAnimator-Info.plist │ │ │ ├── MotionAnimator-dummy.m │ │ │ ├── MotionAnimator-prefix.pch │ │ │ ├── MotionAnimator-umbrella.h │ │ │ ├── MotionAnimator.debug.xcconfig │ │ │ ├── MotionAnimator.modulemap │ │ │ └── MotionAnimator.release.xcconfig │ │ │ ├── MotionInterchange │ │ │ ├── MotionInterchange-Info.plist │ │ │ ├── MotionInterchange-dummy.m │ │ │ ├── MotionInterchange-prefix.pch │ │ │ ├── MotionInterchange-umbrella.h │ │ │ ├── MotionInterchange.debug.xcconfig │ │ │ ├── MotionInterchange.modulemap │ │ │ └── MotionInterchange.release.xcconfig │ │ │ └── Pods-iOSStoryBookDemo │ │ │ ├── Pods-iOSStoryBookDemo-Info.plist │ │ │ ├── Pods-iOSStoryBookDemo-acknowledgements.markdown │ │ │ ├── Pods-iOSStoryBookDemo-acknowledgements.plist │ │ │ ├── Pods-iOSStoryBookDemo-dummy.m │ │ │ ├── Pods-iOSStoryBookDemo-frameworks-Debug-input-files.xcfilelist │ │ │ ├── Pods-iOSStoryBookDemo-frameworks-Debug-output-files.xcfilelist │ │ │ ├── Pods-iOSStoryBookDemo-frameworks-Release-input-files.xcfilelist │ │ │ ├── Pods-iOSStoryBookDemo-frameworks-Release-output-files.xcfilelist │ │ │ ├── Pods-iOSStoryBookDemo-frameworks.sh │ │ │ ├── Pods-iOSStoryBookDemo-umbrella.h │ │ │ ├── Pods-iOSStoryBookDemo.debug.xcconfig │ │ │ ├── Pods-iOSStoryBookDemo.modulemap │ │ │ └── Pods-iOSStoryBookDemo.release.xcconfig │ │ ├── iOSStoryBookDemo.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── iOSStoryBookDemo.xcscheme │ │ ├── iOSStoryBookDemo.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── iOSStoryBookDemo │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets │ │ ├── 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 │ │ ├── Base.lproj │ │ ├── Custom~.storyboard │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ │ ├── Components ViewController │ │ ├── ButtonViewController.swift │ │ ├── FloatingButtonController.swift │ │ ├── SliderViewController.swift │ │ ├── SpinnerViewController.swift │ │ └── TextFieldViewController.swift │ │ ├── Info.plist │ │ ├── MenuBaseViewController.swift │ │ ├── MenuViewController.swift │ │ ├── StorybookControlsProtocol.swift │ │ ├── Supporting Files │ │ ├── AnimationTransactions.swift │ │ ├── CALayer+Extensions.swift │ │ ├── ColorHelper.swift │ │ ├── Localizable.strings │ │ ├── RawColors.plist │ │ ├── RawColors.swift │ │ ├── UIColor+Extensions.swift │ │ ├── UIView+Extensions.swift │ │ └── label.swift │ │ ├── TableView+Extensions │ │ ├── TableViewCell.swift │ │ └── TableViewCellBaseViewController.swift │ │ └── TableViewCellBaseViewController.swift │ ├── package.json │ └── src │ ├── button.stories.jsx │ ├── floatingbutton.stories.jsx │ ├── slider.stories.jsx │ ├── spinner.stories.jsx │ └── textfield.stories.jsx ├── images ├── appetize-emulator.gif └── local-emulators.gif ├── lerna.json ├── package.json ├── packages ├── addon │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── register.js │ ├── src │ │ ├── components │ │ │ ├── CountrySelector.tsx │ │ │ ├── DeveloperOptionsSelector.tsx │ │ │ ├── DeviceSelector.tsx │ │ │ ├── FontSelector.tsx │ │ │ ├── LogsContainer.tsx │ │ │ ├── MapContainer.tsx │ │ │ ├── MediaContainer.tsx │ │ │ ├── NetworkLogsContainer.tsx │ │ │ ├── ThemeSelector.tsx │ │ │ └── VersionSelector.tsx │ │ ├── constants.ts │ │ ├── deviceDecorator.tsx │ │ ├── index.ts │ │ ├── register.tsx │ │ └── utils │ │ │ └── localStorageUtils.ts │ └── tsconfig.json ├── controllers │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── constants.ts │ │ ├── controllers │ │ │ ├── AppetizeEmulatorController.ts │ │ │ ├── EmulatorController.ts │ │ │ └── LocalEmulatorController.ts │ │ ├── index.ts │ │ ├── manager │ │ │ ├── ControllerManager.ts │ │ │ └── controllerFactory.ts │ │ ├── state │ │ │ ├── commandsSlice.ts │ │ │ ├── hooks.ts │ │ │ ├── logsSlice.ts │ │ │ ├── networkLogsSlice.ts │ │ │ ├── reducer.ts │ │ │ └── store.ts │ │ ├── types.ts │ │ └── utils │ │ │ ├── deepLinkUtils.ts │ │ │ ├── getAppetizeUrl.ts │ │ │ ├── iframeUtils.ts │ │ │ └── rotationUtils.ts │ └── tsconfig.json ├── deep-link-logger │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── DeepLinkDetails.tsx │ │ │ ├── DeepLinksContainer.tsx │ │ │ └── DeepLinksList.tsx │ │ ├── constants.ts │ │ ├── deepLinkUtils.ts │ │ └── index.ts │ └── tsconfig.json ├── dev-middleware │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── configUtils.ts │ │ ├── constants.ts │ │ ├── handlers │ │ │ ├── deepLink.ts │ │ │ ├── saveScreenshot.ts │ │ │ ├── setRotation.ts │ │ │ ├── stopApp.ts │ │ │ └── updateConfig.ts │ │ ├── index.ts │ │ ├── middleware.ts │ │ └── types.ts │ └── tsconfig.json ├── devices │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── DeviceContext.tsx │ │ ├── DeviceWrapper.tsx │ │ ├── getDevices.ts │ │ ├── getFonts.ts │ │ ├── getLocations.ts │ │ ├── index.ts │ │ ├── locations.json │ │ ├── types.ts │ │ └── useDevice.ts │ └── tsconfig.json ├── native-components │ ├── CHANGELOG.md │ ├── README.md │ ├── package.json │ ├── src │ │ ├── commands │ │ │ ├── BaseMessage.tsx │ │ │ ├── CommandDetails.tsx │ │ │ ├── CommandsList.tsx │ │ │ ├── ErrorMessage.tsx │ │ │ └── SuccessMessage.tsx │ │ ├── index.ts │ │ ├── log │ │ │ ├── LogDetails.tsx │ │ │ ├── LogsList.tsx │ │ │ ├── NetworkLogDetails.tsx │ │ │ └── NetworkLogsList.tsx │ │ ├── renderers │ │ │ ├── DeepLinkRenderer.tsx │ │ │ ├── EmulatorRenderer.tsx │ │ │ └── LaunchParamsRenderer.tsx │ │ └── types.ts │ └── tsconfig.json ├── native │ ├── CHANGELOG.md │ ├── README.md │ ├── category.template │ ├── categoryControl.template │ ├── defaults.template │ ├── package.json │ ├── src │ │ ├── generateStories.ts │ │ ├── generateStory.ts │ │ ├── index.ts │ │ ├── previewHeader.ts │ │ └── types.ts │ ├── story.template │ └── tsconfig.json └── types │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ └── index.ts │ └── tsconfig.json ├── scripts ├── buildExamples.sh └── deploy.sh ├── tsconfig.json └── yarn.lock /.autorc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [ 3 | "all-contributors", 4 | "npm", 5 | "conventional-commits", 6 | "released", 7 | "first-time-contributor", 8 | ], 9 | "labels": [ 10 | { 11 | "name": "dependency-update", 12 | "changelogTitle": "🔩 Dependency Updates", 13 | "releaseType": "none" 14 | } 15 | ], 16 | "prereleaseBranches": ["next", "alpha", "beta"], 17 | "name": "lshadler", 18 | "email": "lshadler13@gmail.com" 19 | } -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry="https://registry.npmjs.com" -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | app/ 3 | storybook-static/ 4 | stories/ 5 | .circleci/config.yml 6 | LICENSE.md 7 | README.md 8 | package.json -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": false, 3 | "tabWidth": 4, 4 | "trailingComma": "none" 5 | } 6 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Intuit 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 13 | all 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 NON-INFRINGEMENT. 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 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /STORYBOOK-CONFIG.md: -------------------------------------------------------------------------------- 1 | ## Configuring Storybook 2 | 3 | Storybook Native can be used either as a [build tool](packages/native/README.md), or as a [React component library](packages/native-components/README.md) that manages switching between stories. 4 | 5 | You must create a `.storybook` folder with a `main.js` file inside of it, where you must configure the path to your stories, as well as any addons you want to use. The `@storybook/addon-docs` and `@storybook/addon-controls` addons must always be included. The `@storybook/native-addon` addon is required if you want to be able to rotate the emulator, capture screenshots, or switch between devices. [Here](examples/android-material-ui/.storybook/main.js) is an example of a valid `main.js` file. 6 | 7 | To enable switching between devices, you must also create a `preview.js` file in your `.storybook` folder, with the [contents found here](examples/android-material-ui/.storybook/preview.js) 8 | -------------------------------------------------------------------------------- /examples/android-material-ui/.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "presets": [ 4 | [ 5 | "@babel/preset-env", 6 | { 7 | "targets": { 8 | "chrome": 100, 9 | "safari": 15, 10 | "firefox": 91 11 | } 12 | } 13 | ], 14 | "@babel/preset-typescript", 15 | "@babel/preset-react" 16 | ], 17 | "plugins": [] 18 | } -------------------------------------------------------------------------------- /examples/android-material-ui/.storybook/main.js: -------------------------------------------------------------------------------- 1 | import { nativePreviewHead } from "@storybook/native"; 2 | 3 | const config = { 4 | stories: ["../stories/*.stories.jsx"], 5 | framework: { 6 | name: "@storybook/react-webpack5", 7 | options: {} 8 | }, 9 | addons: [ 10 | "@storybook/addon-docs", 11 | "@storybook/addon-controls", 12 | "@storybook/native-addon/dist/register.js" 13 | ], 14 | docs: { 15 | autodocs: true 16 | }, 17 | previewHead: nativePreviewHead 18 | }; 19 | 20 | export default config; 21 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/androidTest/java/com/intuit/august2020/storybookdemoapp/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("com.intuit.august2020.storybookdemoapp", appContext.packageName) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/ButtonActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import kotlinx.android.synthetic.main.activity_button.* 6 | 7 | class ButtonActivity : AppCompatActivity() { 8 | override fun onCreate(savedInstanceState: Bundle?) { 9 | super.onCreate(savedInstanceState) 10 | setContentView(R.layout.activity_button); 11 | 12 | if (intent.hasExtra("label")) { 13 | var label = intent.getStringExtra("label"); 14 | textButton.text = label 15 | outlinedButton.text = label 16 | containedButton.text = label 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/ChipsActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import com.google.android.material.chip.Chip 6 | import kotlinx.android.synthetic.main.activity_chips.* 7 | 8 | class ChipsActivity : AppCompatActivity() { 9 | private fun updateChipText(chip: Chip, key: String) { 10 | if (intent.hasExtra(key)) { 11 | var title = intent.getStringExtra(key) 12 | chip.text = title 13 | } 14 | } 15 | 16 | override fun onCreate(savedInstanceState: Bundle?) { 17 | super.onCreate(savedInstanceState) 18 | setContentView(R.layout.activity_chips) 19 | 20 | updateChipText(chip1, "chip1") 21 | updateChipText(chip2, "chip2") 22 | updateChipText(chip3, "chip3") 23 | updateChipText(chip4, "chip4") 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/FloatingButtonActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import android.graphics.Color 4 | import androidx.appcompat.app.AppCompatActivity 5 | import android.os.Bundle 6 | import kotlinx.android.synthetic.main.activity_floating_button.* 7 | 8 | class FloatingButtonActivity : AppCompatActivity() { 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | setContentView(R.layout.activity_floating_button) 12 | 13 | if (intent.hasExtra("rippleColor")) { 14 | var colourHex = "#" + intent.getStringExtra("rippleColor") 15 | val colour = Color.parseColor(colourHex) 16 | floating_action_button.rippleColor = colour 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/RadioActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import android.widget.RadioButton 6 | import kotlinx.android.synthetic.main.activity_radio.* 7 | 8 | class RadioActivity : AppCompatActivity() { 9 | private fun updateRadioLabel(radio: RadioButton, key: String) { 10 | if (intent.hasExtra(key)) { 11 | var label = intent.getStringExtra(key) 12 | radio.text = label 13 | } 14 | } 15 | 16 | override fun onCreate(savedInstanceState: Bundle?) { 17 | super.onCreate(savedInstanceState) 18 | setContentView(R.layout.activity_radio) 19 | 20 | updateRadioLabel(radio_button_1, "label1") 21 | updateRadioLabel(radio_button_2, "label2") 22 | updateRadioLabel(radio_button_3, "label3") 23 | updateRadioLabel(radio_button_4, "label4") 24 | updateRadioLabel(radio_button_5, "label5") 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/SnackbarActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import com.google.android.material.snackbar.Snackbar 6 | import kotlinx.android.synthetic.main.activity_snackbar.* 7 | 8 | class SnackbarActivity : AppCompatActivity() { 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | setContentView(R.layout.activity_snackbar) 12 | 13 | var title = "title" 14 | if (intent.hasExtra("title")) { 15 | title = intent.getStringExtra("title"); 16 | } 17 | 18 | var action = "Action" 19 | if (intent.hasExtra("action")) { 20 | action = intent.getStringExtra("action"); 21 | } 22 | 23 | Snackbar.make(snackbar, title, Snackbar.LENGTH_INDEFINITE) 24 | .setAction(action) { 25 | // Responds to click on the action 26 | } 27 | .show() 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/TabsActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import com.google.android.material.tabs.TabLayout 6 | import kotlinx.android.synthetic.main.activity_tabs.* 7 | 8 | class TabsActivity : AppCompatActivity() { 9 | private fun updateTabLabel(index: Int, key: String) { 10 | var tab: TabLayout.Tab = tabLayout.getTabAt(index) ?: return 11 | 12 | if (intent.hasExtra(key)) { 13 | var label = intent.getStringExtra(key) 14 | tab.text = label 15 | } 16 | } 17 | 18 | override fun onCreate(savedInstanceState: Bundle?) { 19 | super.onCreate(savedInstanceState) 20 | setContentView(R.layout.activity_tabs) 21 | 22 | updateTabLabel(0, "label1") 23 | updateTabLabel(1, "label2") 24 | updateTabLabel(2, "label3") 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/java/com/intuit/august2020/storybookdemoapp/TextFieldActivity.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import androidx.appcompat.app.AppCompatActivity 4 | import android.os.Bundle 5 | import kotlinx.android.synthetic.main.activity_text_field.* 6 | 7 | class TextFieldActivity : AppCompatActivity() { 8 | override fun onCreate(savedInstanceState: Bundle?) { 9 | super.onCreate(savedInstanceState) 10 | setContentView(R.layout.activity_text_field) 11 | 12 | if (intent.hasExtra("helperText")) { 13 | var text = intent.getStringExtra("helperText") 14 | textField.helperText = text 15 | } 16 | 17 | if (intent.hasExtra("placeholderText")) { 18 | var text = intent.getStringExtra("placeholderText") 19 | textField.placeholderText = text 20 | } 21 | 22 | if (intent.hasExtra("hintText")) { 23 | var text = intent.getStringExtra("hintText") 24 | textField.hint = text 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_add_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_alarm_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_android_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_call_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_delete_outline_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_favorite_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_info_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/drawable/ic_room_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/layout/activity_dialogs.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/layout/activity_snackbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 18 | 19 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-hdpi/ic_card_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-hdpi/ic_card_media.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-mdpi/ic_card_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-mdpi/ic_card_media.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xhdpi/ic_card_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xhdpi/ic_card_media.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xxhdpi/ic_card_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xxhdpi/ic_card_media.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xxxhdpi/ic_card_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xxxhdpi/ic_card_media.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/android-material-ui/app/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #853BEF 4 | #3700B3 5 | #03DAC5 6 | 7 | #ffffff 8 | 9 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/app/src/test/java/com/intuit/august2020/storybookdemoapp/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.intuit.august2020.storybookdemoapp 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | ext.kotlin_version = "1.3.72" 4 | repositories { 5 | google() 6 | jcenter() 7 | } 8 | dependencies { 9 | classpath "com.android.tools.build:gradle:4.0.1" 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | google() 19 | jcenter() 20 | } 21 | } 22 | 23 | task clean(type: Delete) { 24 | delete rootProject.buildDir 25 | } 26 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Sep 12 01:17:24 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 7 | -------------------------------------------------------------------------------- /examples/android-material-ui/app/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name = "Storybook Demo App" 3 | -------------------------------------------------------------------------------- /examples/controls/.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "presets": [ 4 | [ 5 | "@babel/preset-env", 6 | { 7 | "targets": { 8 | "chrome": 100, 9 | "safari": 15, 10 | "firefox": 91 11 | } 12 | } 13 | ], 14 | "@babel/preset-typescript", 15 | "@babel/preset-react" 16 | ], 17 | "plugins": [] 18 | } -------------------------------------------------------------------------------- /examples/controls/.storybook/main.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | stories: [{ directory: '../src', files: '**/*.stories.@(mdx|tsx|ts|jsx|js)' }], 3 | framework: { 4 | name: "@storybook/react-webpack5", 5 | options: {}, 6 | }, 7 | addons: [ 8 | "@storybook/addon-docs", 9 | "@storybook/addon-controls", 10 | "@storybook/native-addon" 11 | ], 12 | docs: { 13 | autodocs: true 14 | } 15 | }; 16 | 17 | export default config; 18 | -------------------------------------------------------------------------------- /examples/controls/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | import { DeviceDecorator } from "@storybook/native-addon"; 2 | 3 | export const decorators = [DeviceDecorator]; 4 | -------------------------------------------------------------------------------- /examples/controls/app/README.md: -------------------------------------------------------------------------------- 1 | This application is the same as the one [here](../../android-material-ui/app) 2 | -------------------------------------------------------------------------------- /examples/controls/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-controls-example", 3 | "version": "3.1.2", 4 | "private": true, 5 | "description": "An Android demo app showing how to use controls", 6 | "repository": "", 7 | "author": "Adil Malik ", 8 | "license": "MIT", 9 | "contributors": [ 10 | "Adil Malik " 11 | ], 12 | "scripts": { 13 | "start": "storybook dev -p 53743", 14 | "build:storybook": "storybook build" 15 | }, 16 | "keywords": [], 17 | "dependencies": { 18 | "@storybook/native": "link:../../packages/native", 19 | "@storybook/native-addon": "link:../../packages/addon", 20 | "rgb-hex": "^3.0.0" 21 | }, 22 | "devDependencies": { 23 | "@babel/preset-env": "^7.23.2", 24 | "@babel/preset-react": "^7.22.15", 25 | "@babel/preset-typescript": "^7.23.2", 26 | "@storybook/react-webpack5": "^7.5.3", 27 | "storybook": "^7.5.3" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/controls/src/button.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Button" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | label: "Default button label", 23 | object: { 24 | key1: "value1", 25 | key2: { 26 | key3: "value3" 27 | } 28 | } 29 | }; 30 | -------------------------------------------------------------------------------- /examples/controls/src/card.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Card" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | title: "Card title", 23 | subtitle: "Card subtitle", 24 | body: "Card body", 25 | action1: "Cancel", 26 | action2: "Confirm" 27 | }; 28 | -------------------------------------------------------------------------------- /examples/controls/src/chips.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Chips" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | chip1: "Chip 1", 23 | chip2: "Chip 2", 24 | chip3: "Chip 3", 25 | chip4: "Chip 4" 26 | }; 27 | -------------------------------------------------------------------------------- /examples/controls/src/constants.js: -------------------------------------------------------------------------------- 1 | export const API_KEY = "zv034bdme9je7c9d43chzmc2yg"; 2 | export const PLATFORM = "android"; 3 | export const DEEP_LINK_BASE_URL = "sb-native://deep.link"; 4 | -------------------------------------------------------------------------------- /examples/controls/src/dialogs.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Dialogs" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | header: "Modal example", 23 | confirmText: "Confirm", 24 | cancelText: "Cancel" 25 | }; 26 | -------------------------------------------------------------------------------- /examples/controls/src/floatingButton.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import rgbHex from "rgb-hex"; 4 | 5 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 6 | 7 | export default { 8 | title: "FloatingButton", 9 | argTypes: { 10 | rippleColor: { 11 | control: "color" 12 | } 13 | } 14 | }; 15 | 16 | export const Example = (props) => { 17 | const rippleColor = rgbHex(props.rippleColor); 18 | 19 | return ( 20 | 29 | ); 30 | }; 31 | 32 | Example.args = { 33 | rippleColor: "rgb(0,255,255)" 34 | }; 35 | -------------------------------------------------------------------------------- /examples/controls/src/radio.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Radio" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | label1: "Radio 1", 23 | label2: "Radio 2", 24 | label3: "Radio 3", 25 | label4: "Radio 4", 26 | label5: "Radio 5" 27 | }; 28 | -------------------------------------------------------------------------------- /examples/controls/src/slider.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Slider", 7 | argTypes: { 8 | rangeMax: { 9 | control: { type: "range", min: 1, max: 100, step: 1 } 10 | } 11 | } 12 | }; 13 | 14 | export const Example = (props) => { 15 | return ( 16 | 25 | ); 26 | }; 27 | 28 | Example.args = { 29 | rangeMax: 100 30 | }; 31 | -------------------------------------------------------------------------------- /examples/controls/src/snackbar.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Snackbar" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | title: "Snackbar", 23 | action: "Dismiss" 24 | }; 25 | -------------------------------------------------------------------------------- /examples/controls/src/switch.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Switch" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | label1: "Switch 1", 23 | label2: "Switch 2", 24 | label3: "Switch 3", 25 | label4: "Switch 4", 26 | label5: "Switch 5", 27 | enableLastSwitch: false 28 | }; 29 | -------------------------------------------------------------------------------- /examples/controls/src/tabs.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Tabs" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | label1: "Tab 1", 23 | label2: "Tab 2", 24 | label3: "Tab 3" 25 | }; 26 | -------------------------------------------------------------------------------- /examples/controls/src/textfield.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | import { PLATFORM, API_KEY, DEEP_LINK_BASE_URL } from "./constants"; 4 | 5 | export default { 6 | title: "Textfield" 7 | }; 8 | 9 | export const Example = (props) => { 10 | return ( 11 | 18 | ); 19 | }; 20 | 21 | Example.args = { 22 | helperText: "Enter some text!", 23 | hintText: "Example TextField", 24 | placeholderText: "Text..." 25 | }; 26 | -------------------------------------------------------------------------------- /examples/cross-platform/.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "presets": [ 4 | [ 5 | "@babel/preset-env", 6 | { 7 | "targets": { 8 | "chrome": 100, 9 | "safari": 15, 10 | "firefox": 91 11 | } 12 | } 13 | ], 14 | "@babel/preset-typescript", 15 | "@babel/preset-react" 16 | ], 17 | "plugins": [] 18 | } -------------------------------------------------------------------------------- /examples/cross-platform/.storybook/main.js: -------------------------------------------------------------------------------- 1 | import { nativePreviewHead } from "@storybook/native"; 2 | 3 | const config = { 4 | stories: [ 5 | { directory: "../src", files: "**/*.stories.@(mdx|tsx|ts|jsx|js)" } 6 | ], 7 | framework: { 8 | name: "@storybook/react-webpack5", 9 | options: {} 10 | }, 11 | addons: [ 12 | "@storybook/addon-docs", 13 | "@storybook/addon-controls", 14 | "@storybook/native-addon/dist/register.js" 15 | ], 16 | docs: { 17 | autodocs: true 18 | }, 19 | previewHead: nativePreviewHead 20 | }; 21 | 22 | export default config; 23 | -------------------------------------------------------------------------------- /examples/cross-platform/.storybook/middleware.js: -------------------------------------------------------------------------------- 1 | const { middleware } = require("@storybook/native-dev-middleware"); 2 | module.exports = middleware(); 3 | -------------------------------------------------------------------------------- /examples/cross-platform/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | import { DeviceDecorator } from "@storybook/native-addon"; 2 | 3 | export const decorators = [DeviceDecorator]; 4 | -------------------------------------------------------------------------------- /examples/cross-platform/src/ios.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | 4 | const IosRenderer = ({ extraParams, component }) => { 5 | return ( 6 | 14 | ); 15 | }; 16 | 17 | export default { 18 | title: "iOS" 19 | }; 20 | 21 | export const Button = (props) => { 22 | return ; 23 | }; 24 | 25 | Button.args = { 26 | label: "Default button label" 27 | }; 28 | 29 | export const FAB = (props) => { 30 | return ; 31 | }; 32 | -------------------------------------------------------------------------------- /examples/flutter/.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "presets": [ 4 | [ 5 | "@babel/preset-env", 6 | { 7 | "targets": { 8 | "chrome": 100, 9 | "safari": 15, 10 | "firefox": 91 11 | } 12 | } 13 | ], 14 | "@babel/preset-typescript", 15 | "@babel/preset-react" 16 | ], 17 | "plugins": [] 18 | } -------------------------------------------------------------------------------- /examples/flutter/.storybook/main.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | stories: [{ directory: '../src', files: '**/*.stories.@(mdx|tsx|ts|jsx|js)' }], 3 | framework: { 4 | name: "@storybook/react-webpack5", 5 | options: {}, 6 | }, 7 | addons: [ 8 | "@storybook/addon-docs", 9 | "@storybook/addon-controls", 10 | "@storybook/native-addon/dist/register.js" 11 | ], 12 | docs: { 13 | autodocs: true 14 | } 15 | }; 16 | 17 | export default config; -------------------------------------------------------------------------------- /examples/flutter/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | import { DeviceDecorator } from "@storybook/native-addon"; 2 | 3 | export const decorators = [DeviceDecorator]; 4 | -------------------------------------------------------------------------------- /examples/flutter/app/android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/kotlin/flutter/company/com/flutter_storybook/JsonUtils.java: -------------------------------------------------------------------------------- 1 | package flutter.company.com.flutter_storybook; 2 | 3 | import android.net.Uri; 4 | 5 | import org.json.JSONException; 6 | import org.json.JSONObject; 7 | 8 | public class JsonUtils { 9 | 10 | public static String convertQueryStringToJSON(Uri uri) throws JSONException { 11 | JSONObject object = new JSONObject(); 12 | for (String param : uri.getQueryParameterNames()) { 13 | object.put(param, uri.getQueryParameter(param)); 14 | } 15 | 16 | return object.toString(); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/kotlin/flutter/company/com/flutter_storybook/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package flutter.company.com.flutter_storybook 2 | 3 | import io.flutter.embedding.android.FlutterActivity; 4 | 5 | class MainActivity : FlutterActivity() { 6 | } -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /examples/flutter/app/android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /examples/flutter/app/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /examples/flutter/app/android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /examples/flutter/app/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /examples/flutter/app/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.mode1v3 2 | *.mode2v3 3 | *.moved-aside 4 | *.pbxuser 5 | *.perspectivev3 6 | **/*sync/ 7 | .sconsign.dblite 8 | .tags* 9 | **/.vagrant/ 10 | **/DerivedData/ 11 | Icon? 12 | **/Pods/ 13 | **/.symlinks/ 14 | profile 15 | xcuserdata 16 | **/.generated/ 17 | Flutter/App.framework 18 | Flutter/Flutter.framework 19 | Flutter/Flutter.podspec 20 | Flutter/Generated.xcconfig 21 | Flutter/app.flx 22 | Flutter/app.zip 23 | Flutter/flutter_assets/ 24 | Flutter/flutter_export_environment.sh 25 | ServiceDefinitions.json 26 | Runner/GeneratedPluginRegistrant.* 27 | 28 | # Exceptions to above rules. 29 | !default.mode1v3 30 | !default.mode2v3 31 | !default.pbxuser 32 | !default.perspectivev3 33 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 8.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Flutter (1.0.0) 3 | - uni_links (0.0.1): 4 | - Flutter 5 | 6 | DEPENDENCIES: 7 | - Flutter (from `Flutter`) 8 | - uni_links (from `.symlinks/plugins/uni_links/ios`) 9 | 10 | EXTERNAL SOURCES: 11 | Flutter: 12 | :path: Flutter 13 | uni_links: 14 | :path: ".symlinks/plugins/uni_links/ios" 15 | 16 | SPEC CHECKSUMS: 17 | Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c 18 | uni_links: d97da20c7701486ba192624d99bffaaffcfc298a 19 | 20 | PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c 21 | 22 | COCOAPODS: 1.10.0 23 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /examples/flutter/app/ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /examples/flutter/app/lib/bannerPage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class BannerPage extends StatelessWidget { 4 | final Map launchOptions; 5 | 6 | BannerPage({Key key, @required this.launchOptions}) : super(key: key); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | var text = launchOptions["message"] ?? "Hello, banner!"; 11 | return Scaffold( 12 | appBar: AppBar( 13 | title: Text("Banner Page"), 14 | ), 15 | body: Center( 16 | child: Banner( 17 | message: launchOptions["ribbon"] ?? "Banner", 18 | location: BannerLocation.topEnd, 19 | color: Colors.red, 20 | child: Container( 21 | color: Colors.blue, 22 | height: 100, 23 | child: Center( 24 | child: Text(text, style: TextStyle(color: Colors.white),), 25 | ), 26 | ), 27 | ), 28 | ), 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /examples/flutter/app/lib/buttonPage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ButtonPage extends StatelessWidget { 4 | final Map launchOptions; 5 | 6 | ButtonPage({Key key, @required this.launchOptions}) : super(key: key); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | var label = this.launchOptions["label"] ?? "Default button label"; 11 | return Scaffold( 12 | appBar: AppBar( 13 | title: Text("Button Page"), 14 | ), 15 | body: Center( 16 | child: RaisedButton( 17 | color: Colors.blue, 18 | textColor: Colors.white, 19 | onPressed: () { 20 | print("Button pressed"); 21 | }, 22 | child: Text(label), 23 | ), 24 | ), 25 | ); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /examples/flutter/app/lib/chipsPage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ChipsPage extends StatelessWidget { 4 | final Map launchOptions; 5 | 6 | ChipsPage({Key key, @required this.launchOptions}) : super(key: key); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | var label = this.launchOptions["label"] ?? "Default chip label"; 11 | return Scaffold( 12 | appBar: AppBar( 13 | title: Text("Chips Page"), 14 | ), 15 | body: Center( 16 | child: InputChip( 17 | label: Text(label), 18 | onPressed: () { 19 | print("Chip pressed"); 20 | }), 21 | ), 22 | ); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /examples/flutter/app/lib/textPage.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class TextPage extends StatelessWidget { 4 | final Map launchOptions; 5 | 6 | TextPage({Key key, @required this.launchOptions}) : super(key: key); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | var text = this.launchOptions["text"] ?? "Default text"; 11 | return Scaffold( 12 | appBar: AppBar( 13 | title: Text("TextView Page"), 14 | ), 15 | body: Center( 16 | child: FlatButton( 17 | textColor: Colors.blue, 18 | onPressed: () { 19 | print("text pressed"); 20 | }, 21 | child: Text(text), 22 | ), 23 | ), 24 | ); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /examples/flutter/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-flutter-example", 3 | "version": "3.1.2", 4 | "private": true, 5 | "description": "A Flutter demo app showcasing cross-platform controls", 6 | "repository": "", 7 | "author": "Thomas Baker ", 8 | "license": "MIT", 9 | "contributors": [ 10 | "Thomas Baker ", 11 | "Adil Malik " 12 | ], 13 | "scripts": { 14 | "start": "storybook dev", 15 | "build:storybook": "storybook build" 16 | }, 17 | "keywords": [], 18 | "dependencies": { 19 | "@storybook/native": "link:../../packages/native", 20 | "@storybook/native-addon": "link:../../packages/addon", 21 | "rgb-hex": "^3.0.0" 22 | }, 23 | "devDependencies": { 24 | "@babel/preset-env": "^7.23.2", 25 | "@babel/preset-react": "^7.22.15", 26 | "@babel/preset-typescript": "^7.23.2", 27 | "@storybook/react-webpack5": "^7.5.3", 28 | "storybook": "^7.5.3" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /examples/ios-material-ui/.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "presets": [ 4 | [ 5 | "@babel/preset-env", 6 | { 7 | "targets": { 8 | "chrome": 100, 9 | "safari": 15, 10 | "firefox": 91 11 | } 12 | } 13 | ], 14 | "@babel/preset-typescript", 15 | "@babel/preset-react" 16 | ], 17 | "plugins": [] 18 | } -------------------------------------------------------------------------------- /examples/ios-material-ui/.storybook/main.js: -------------------------------------------------------------------------------- 1 | const config = { 2 | stories: [{ directory: '../src', files: '**/*.stories.@(mdx|tsx|ts|jsx|js)' }], 3 | framework: { 4 | name: "@storybook/react-webpack5", 5 | options: {}, 6 | }, 7 | addons: [ 8 | "@storybook/addon-docs", 9 | "@storybook/addon-controls", 10 | "@storybook/native-addon/dist/register.js" 11 | ], 12 | docs: { 13 | autodocs: true 14 | } 15 | }; 16 | 17 | export default config; -------------------------------------------------------------------------------- /examples/ios-material-ui/.storybook/middleware.js: -------------------------------------------------------------------------------- 1 | const { middleware } = require("@storybook/native-dev-middleware"); 2 | module.exports = middleware(); 3 | -------------------------------------------------------------------------------- /examples/ios-material-ui/.storybook/preview.js: -------------------------------------------------------------------------------- 1 | import { DeviceDecorator } from "@storybook/native-addon"; 2 | 3 | export const decorators = [DeviceDecorator]; 4 | 5 | export const parameters = { 6 | native: { 7 | iosSelection: "iphone12pro", 8 | iosVersion: "15.5" 9 | } 10 | }; 11 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'iOSStoryBookDemo' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for iOSStoryBookDemo 9 | pod 'MaterialComponents/Buttons' 10 | pod 'MaterialComponents/Buttons+Theming' 11 | pod 'MaterialComponents/TextFields' 12 | pod 'MaterialComponents/TextFields+Theming' 13 | pod 'MaterialComponents/ProgressView' 14 | pod 'MaterialComponents/ActivityIndicator' 15 | pod 'MaterialComponents/Slider' 16 | pod 'MaterialComponents/schemes/Color' 17 | end 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MDFTextAccessibility/src/MDFTextAccessibility-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2016-present Google Inc. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import "MDFTextAccessibility.h" 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ActivityIndicator/src/MaterialActivityIndicator.bundle/Resources/en.lproj/MaterialActivityIndicator.strings: -------------------------------------------------------------------------------- 1 | /* Accessibility label for activity indicator. */ 2 | "MaterialActivityIndicatorAccessibilityLabel" = "Activity Indicator"; 3 | 4 | /* Accessibility value for indeterminate activity indicator in progress. */ 5 | "MaterialActivityIndicatorInProgressAccessibilityValue" = "In Progress"; 6 | 7 | /* Accessibility value for determinate activity indicator in progress. */ 8 | "MaterialActivityIndicatorProgressCompletedAccessibilityValue" = "%ld Percent Complete"; 9 | 10 | /* Accessibility value for activity indicator progress halted. */ 11 | "MaterialActivityIndicatorProgressHaltedAccessibilityValue" = "Progress Halted"; 12 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ActivityIndicator/src/MaterialActivityIndicator.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCActivityIndicator.h" 16 | #import "MDCActivityIndicatorDelegate.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ActivityIndicator/src/private/MaterialActivityIndicatorStrings.h: -------------------------------------------------------------------------------- 1 | // GENERATED CODE: DO NOT EDIT BY HAND 2 | // GENERATED FROM: 3 | // components/ActivityIndicator/src/MaterialActivityIndicator.bundle/Resources/en.lproj/MaterialActivityIndicator.strings 4 | // GENERATED BY: generate_string_tables.py 5 | 6 | typedef enum { 7 | kStr_MaterialActivityIndicatorInProgressAccessibilityValue = 0, 8 | kStr_MaterialActivityIndicatorAccessibilityLabel = 1, 9 | kStr_MaterialActivityIndicatorProgressHaltedAccessibilityValue = 2, 10 | kStr_MaterialActivityIndicatorProgressCompletedAccessibilityValue = 3, 11 | } MaterialActivityIndicatorStringId; 12 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/AnimationTiming/src/MaterialAnimationTiming.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "CAMediaTimingFunction+MDCAnimationTiming.h" 16 | #import "UIView+MDCTimingFunction.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Availability/src/MaterialAvailability.h: -------------------------------------------------------------------------------- 1 | // Copyright 2020-present the Material Components for iOS authors. All Rights 2 | // Reserved. 3 | // 4 | // Licensed under the Apache License, Version 2.0 (the "License"); 5 | // you may not use this file except in compliance with the License. 6 | // You may obtain a copy of the License at 7 | // 8 | // http://www.apache.org/licenses/LICENSE-2.0 9 | // 10 | // Unless required by applicable law or agreed to in writing, software 11 | // distributed under the License is distributed on an "AS IS" BASIS, 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | // See the License for the specific language governing permissions and 14 | // limitations under the License. 15 | 16 | #import "MDCAvailability.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Buttons/src/ColorThemer/MaterialButtons+ColorThemer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCButtonColorThemer.h" 16 | #import "MDCContainedButtonColorThemer.h" 17 | #import "MDCFloatingButtonColorThemer.h" 18 | #import "MDCOutlinedButtonColorThemer.h" 19 | #import "MDCTextButtonColorThemer.h" 20 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Buttons/src/MaterialButtons.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCButton.h" 16 | #import "MDCFlatButton.h" 17 | #import "MDCFloatingButton+Animation.h" 18 | #import "MDCFloatingButton.h" 19 | #import "MDCRaisedButton.h" 20 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Buttons/src/ShapeThemer/MaterialButtons+ShapeThemer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCButtonShapeThemer.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Buttons/src/Theming/MaterialButtons+Theming.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCButton+MaterialTheming.h" 16 | #import "MDCFloatingButton+MaterialTheming.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Buttons/src/TypographyThemer/MaterialButtons+TypographyThemer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCButtonTypographyThemer.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Elevation/src/MaterialElevation.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCElevatable.h" 16 | #import "MDCElevationOverriding.h" 17 | #import "UIColor+MaterialElevation.h" 18 | #import "UIView+MaterialElevationResponding.h" 19 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Ink/src/MaterialInk.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCInkGestureRecognizer.h" 16 | #import "MDCInkTouchController.h" 17 | #import "MDCInkTouchControllerDelegate.h" 18 | #import "MDCInkView.h" 19 | #import "MDCInkViewDelegate.h" 20 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Palettes/src/MaterialPalettes.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCPalettes.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ProgressView/src/MaterialProgressView.bundle/Resources/en.lproj/MaterialProgressView.strings: -------------------------------------------------------------------------------- 1 | /* Accessibility label for progress view. */ 2 | "MaterialProgressViewAccessibilityLabel" = "Progress View"; 3 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ProgressView/src/MaterialProgressView.h: -------------------------------------------------------------------------------- 1 | // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCProgressView.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Ripple/src/MaterialRipple.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCRippleTouchController.h" 16 | #import "MDCRippleTouchControllerDelegate.h" 17 | #import "MDCRippleView.h" 18 | #import "MDCRippleViewDelegate.h" 19 | #import "MDCStatefulRippleView.h" 20 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ShadowElevations/src/MaterialShadowElevations.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCShadowElevations.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ShadowElevations/src/MaterialShadowElevationsDummy.m: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | /** 16 | This file exists to keep pod lib lint passing 17 | */ 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ShadowLayer/src/MaterialShadowLayer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCShadowLayer.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/ShapeLibrary/src/MDCPillShapeGenerator.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import 16 | 17 | #import "MaterialShapes.h" 18 | 19 | /** 20 | A pill shape generator. Rounds the corners such that the shorter sides of the generated shape are 21 | entirely rounded. 22 | */ 23 | @interface MDCPillShapeGenerator : NSObject 24 | @end 25 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Shapes/src/MaterialShapes.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCCornerTreatment.h" 16 | #import "MDCEdgeTreatment.h" 17 | #import "MDCPathGenerator.h" 18 | #import "MDCRectangleShapeGenerator.h" 19 | #import "MDCShapeGenerating.h" 20 | #import "MDCShapedShadowLayer.h" 21 | #import "MDCShapedView.h" 22 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Slider/src/MaterialSlider.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCSlider.h" 16 | #import "MDCSliderDelegate.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Slider/src/private/MDCSlider+Private.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCSlider.h" 16 | #import "MaterialThumbTrack.h" 17 | 18 | @interface MDCSlider (Private) 19 | @property(nonatomic, nonnull, readonly) MDCThumbTrack *thumbTrack; 20 | @end 21 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/TextFields/src/ColorThemer/MaterialTextFields+ColorThemer.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCFilledTextFieldColorThemer.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/TextFields/src/Theming/MaterialTextFields+Theming.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCTextInputControllerFilled+MaterialTheming.h" 16 | #import "MDCTextInputControllerOutlined+MaterialTheming.h" 17 | #import "MDCTextInputControllerUnderline+MaterialTheming.h" 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/TextFields/src/private/MDCTextField+Testing.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import 16 | 17 | #import "MDCTextField.h" 18 | 19 | /** 20 | Exposes parts of MDCTextField for testing. 21 | */ 22 | @interface MDCTextField (Testing) 23 | 24 | /** 25 | Synthesizes a touch on the clear button of the text field. 26 | */ 27 | - (void)clearButtonDidTouch; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/TextFields/src/private/MDCTextInputAllCharactersCounter.m: -------------------------------------------------------------------------------- 1 | // Copyright 2016-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCTextInputCharacterCounter.h" 16 | 17 | #import "MDCTextInput.h" 18 | 19 | @implementation MDCTextInputAllCharactersCounter 20 | 21 | - (NSUInteger)characterCountForTextInput:(UIView *)textInput { 22 | return textInput.text.length; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Themes/src/MDCColorScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MaterialColorScheme.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Themes/src/MDCFontScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MaterialTypographyScheme.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Themes/src/MDCTonalColorScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MaterialColorScheme.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Themes/src/MDCTonalPalette.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MaterialColorScheme.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Themes/src/MaterialThemes.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCColorScheme.h" 16 | #import "MDCFontScheme.h" 17 | #import "MDCTonalColorScheme.h" 18 | #import "MDCTonalPalette.h" 19 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/Typography/src/private/MDCTypographyUtilities.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import 16 | 17 | UIContentSizeCategory GetCurrentSizeCategory(void); 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/private/Application/src/MaterialApplication.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | #import "UIApplication+MDCAppExtensions.h" 15 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/private/Color/src/MaterialColor.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "UIColor+MaterialBlending.h" 16 | #import "UIColor+MaterialDynamic.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/private/Math/src/MaterialMath.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCMath.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/private/Math/src/MaterialMathDummy.m: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | /** 16 | This file exists to keep pod lib lint passing 17 | */ 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/private/ThumbTrack/src/MaterialThumbTrack.h: -------------------------------------------------------------------------------- 1 | // Copyright 2015-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCThumbTrack.h" 16 | #import "MDCThumbView.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Color/src/MaterialColorScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCLegacyColorScheme.h" 16 | #import "MDCLegacyTonalColorScheme.h" 17 | #import "MDCLegacyTonalPalette.h" 18 | 19 | #import "MDCSemanticColorScheme.h" 20 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Container/src/MaterialContainerScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCContainerScheme.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Shape/src/MaterialShapeScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCShapeCategory.h" 16 | #import "MDCShapeScheme.h" 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Typography/src/BasicFontScheme/MDCBasicFontScheme.m: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCBasicFontScheme.h" 16 | 17 | @implementation MDCBasicFontScheme 18 | @end 19 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Typography/src/BasicFontScheme/MaterialTypographyScheme+BasicFontScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCBasicFontScheme.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Typography/src/MDCLegacyFontScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2017-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Typography/src/MaterialTypographyScheme.h: -------------------------------------------------------------------------------- 1 | // Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import 16 | 17 | #import "MDCTypographyScheme.h" 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MaterialComponents/components/schemes/Typography/src/Scheming/MaterialTypographyScheme+Scheming.h: -------------------------------------------------------------------------------- 1 | // Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. 2 | // 3 | // Licensed under the Apache License, Version 2.0 (the "License"); 4 | // you may not use this file except in compliance with the License. 5 | // You may obtain a copy of the License at 6 | // 7 | // http://www.apache.org/licenses/LICENSE-2.0 8 | // 9 | // Unless required by applicable law or agreed to in writing, software 10 | // distributed under the License is distributed on an "AS IS" BASIS, 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | // See the License for the specific language governing permissions and 13 | // limitations under the License. 14 | 15 | #import "MDCTypographyScheming.h" 16 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionAnimator/src/MotionAnimator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import "CATransaction+MotionAnimator.h" 18 | #import "MDMAnimatableKeyPaths.h" 19 | #import "MDMMotionAnimator.h" 20 | 21 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionAnimator/src/private/CAMediaTimingFunction+MotionAnimator.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | #import 20 | 21 | // Returns a timing function with the given control points. 22 | FOUNDATION_EXPORT 23 | CAMediaTimingFunction* MDMTimingFunctionWithControlPoints(CGFloat controlPoints[4]); 24 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionAnimator/src/private/MDMDragCoefficient.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | // Returns the simulator drag coefficient when being run in the simulator, or 1.0 otherwise. 21 | FOUNDATION_EXTERN CGFloat MDMSimulatorAnimationDragCoefficient(void); 22 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionAnimator/src/private/MDMRegisteredAnimation.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | @interface MDMRegisteredAnimation : NSObject 21 | 22 | - (instancetype)initWithKey:(NSString *)key animation:(CABasicAnimation *)animation; 23 | 24 | @property(nonatomic, copy, readonly) NSString *key; 25 | 26 | @property(nonatomic, strong, readonly) CABasicAnimation *animation; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionInterchange/src/MDMRepetitionTraits.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | /** 20 | A generalized representation of a repetition traits. 21 | */ 22 | @protocol MDMRepetitionTraits 23 | 24 | /** 25 | Whether the animation should animate backwards after animating forwards. 26 | */ 27 | @property(nonatomic, assign) BOOL autoreverses; 28 | 29 | @end 30 | 31 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionInterchange/src/MDMSubclassingRestricted.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | 19 | #ifndef MDM_SUBCLASSING_RESTRICTED 20 | #if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted) 21 | #define MDM_SUBCLASSING_RESTRICTED __attribute__((objc_subclassing_restricted)) 22 | #else 23 | #define MDM_SUBCLASSING_RESTRICTED 24 | #endif 25 | #endif // #ifndef MDM_SUBCLASSING_RESTRICTED 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/MotionInterchange/src/MDMTimingCurve.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-present The Material Motion Authors. All Rights Reserved. 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | */ 16 | 17 | #import 18 | #import 19 | 20 | /** 21 | A generalized representation of a timing curve. 22 | */ 23 | @protocol MDMTimingCurve 24 | @end 25 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MDFInternationalization : NSObject 3 | @end 4 | @implementation PodsDummy_MDFInternationalization 5 | @end 6 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "MDFInternationalization.h" 14 | #import "MDFRTL.h" 15 | #import "NSLocale+MaterialRTL.h" 16 | #import "NSString+MaterialBidi.h" 17 | #import "UIImage+MaterialRTL.h" 18 | #import "UIView+MaterialRTL.h" 19 | 20 | FOUNDATION_EXPORT double MDFInternationalizationVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char MDFInternationalizationVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MDFInternationalization 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MDFInternationalization 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization.modulemap: -------------------------------------------------------------------------------- 1 | framework module MDFInternationalization { 2 | umbrella header "MDFInternationalization-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFInternationalization/MDFInternationalization.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MDFInternationalization 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MDFInternationalization 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MDFTextAccessibility : NSObject 3 | @end 4 | @implementation PodsDummy_MDFTextAccessibility 5 | @end 6 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "MDFTextAccessibility.h" 14 | 15 | FOUNDATION_EXPORT double MDFTextAccessibilityVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char MDFTextAccessibilityVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MDFTextAccessibility 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MDFTextAccessibility 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility.modulemap: -------------------------------------------------------------------------------- 1 | framework module MDFTextAccessibility { 2 | umbrella header "MDFTextAccessibility-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MDFTextAccessibility/MDFTextAccessibility.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MDFTextAccessibility 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MDFTextAccessibility 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MaterialComponents/MaterialComponents-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 117.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MaterialComponents/MaterialComponents-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MaterialComponents : NSObject 3 | @end 4 | @implementation PodsDummy_MaterialComponents 5 | @end 6 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MaterialComponents/MaterialComponents-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MaterialComponents/MaterialComponents.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MDFInternationalization" "${PODS_CONFIGURATION_BUILD_DIR}/MDFTextAccessibility" "${PODS_CONFIGURATION_BUILD_DIR}/MotionAnimator" "${PODS_CONFIGURATION_BUILD_DIR}/MotionInterchange" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MaterialComponents 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MaterialComponents/MaterialComponents.modulemap: -------------------------------------------------------------------------------- 1 | framework module MaterialComponents { 2 | umbrella header "MaterialComponents-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MaterialComponents/MaterialComponents.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MaterialComponents 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MDFInternationalization" "${PODS_CONFIGURATION_BUILD_DIR}/MDFTextAccessibility" "${PODS_CONFIGURATION_BUILD_DIR}/MotionAnimator" "${PODS_CONFIGURATION_BUILD_DIR}/MotionInterchange" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MaterialComponents 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.8.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MotionAnimator : NSObject 3 | @end 4 | @implementation PodsDummy_MotionAnimator 5 | @end 6 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "CATransaction+MotionAnimator.h" 14 | #import "MDMAnimatableKeyPaths.h" 15 | #import "MDMCoreAnimationTraceable.h" 16 | #import "MDMMotionAnimator.h" 17 | #import "MotionAnimator.h" 18 | 19 | FOUNDATION_EXPORT double MotionAnimatorVersionNumber; 20 | FOUNDATION_EXPORT const unsigned char MotionAnimatorVersionString[]; 21 | 22 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MotionAnimator 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MotionInterchange" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MotionAnimator 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator.modulemap: -------------------------------------------------------------------------------- 1 | framework module MotionAnimator { 2 | umbrella header "MotionAnimator-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionAnimator/MotionAnimator.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MotionAnimator 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/MotionInterchange" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MotionAnimator 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.6.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_MotionInterchange : NSObject 3 | @end 4 | @implementation PodsDummy_MotionInterchange 5 | @end 6 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "CAMediaTimingFunction+MDMTimingCurve.h" 14 | #import "MDMAnimationTraits.h" 15 | #import "MDMMotionCurve.h" 16 | #import "MDMMotionRepetition.h" 17 | #import "MDMMotionTiming.h" 18 | #import "MDMRepetition.h" 19 | #import "MDMRepetitionOverTime.h" 20 | #import "MDMRepetitionTraits.h" 21 | #import "MDMSpringTimingCurve.h" 22 | #import "MDMSpringTimingCurveGenerator.h" 23 | #import "MDMSubclassingRestricted.h" 24 | #import "MDMTimingCurve.h" 25 | #import "MotionInterchange.h" 26 | 27 | FOUNDATION_EXPORT double MotionInterchangeVersionNumber; 28 | FOUNDATION_EXPORT const unsigned char MotionInterchangeVersionString[]; 29 | 30 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MotionInterchange 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MotionInterchange 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange.modulemap: -------------------------------------------------------------------------------- 1 | framework module MotionInterchange { 2 | umbrella header "MotionInterchange-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/MotionInterchange/MotionInterchange.release.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/MotionInterchange 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | PODS_BUILD_DIR = ${BUILD_DIR} 4 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 5 | PODS_ROOT = ${SRCROOT} 6 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/MotionInterchange 7 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 8 | SKIP_INSTALL = YES 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_iOSStoryBookDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_iOSStoryBookDemo 5 | @end 6 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/MDFInternationalization/MDFInternationalization.framework 3 | ${BUILT_PRODUCTS_DIR}/MDFTextAccessibility/MDFTextAccessibility.framework 4 | ${BUILT_PRODUCTS_DIR}/MaterialComponents/MaterialComponents.framework 5 | ${BUILT_PRODUCTS_DIR}/MotionAnimator/MotionAnimator.framework 6 | ${BUILT_PRODUCTS_DIR}/MotionInterchange/MotionInterchange.framework -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MDFInternationalization.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MDFTextAccessibility.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MaterialComponents.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionAnimator.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionInterchange.framework -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/MDFInternationalization/MDFInternationalization.framework 3 | ${BUILT_PRODUCTS_DIR}/MDFTextAccessibility/MDFTextAccessibility.framework 4 | ${BUILT_PRODUCTS_DIR}/MaterialComponents/MaterialComponents.framework 5 | ${BUILT_PRODUCTS_DIR}/MotionAnimator/MotionAnimator.framework 6 | ${BUILT_PRODUCTS_DIR}/MotionInterchange/MotionInterchange.framework -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MDFInternationalization.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MDFTextAccessibility.framework 3 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MaterialComponents.framework 4 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionAnimator.framework 5 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MotionInterchange.framework -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_iOSStoryBookDemoVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_iOSStoryBookDemoVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/Pods/Target Support Files/Pods-iOSStoryBookDemo/Pods-iOSStoryBookDemo.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_iOSStoryBookDemo { 2 | umbrella header "Pods-iOSStoryBookDemo-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/128.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/16.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/172.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/196.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/216.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/256.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/32.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/48.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/512.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/55.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/64.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/AppIcon.appiconset/88.png -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Components ViewController/FloatingButtonController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FloatingButtonController.swift 3 | // SBDemo 4 | // 5 | // Created by junnikrishn on 10/2/20. 6 | // Copyright © 2020. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MaterialComponents 11 | import MaterialComponents.MaterialButtons 12 | import MaterialComponents.MaterialButtons_Theming 13 | 14 | class FloatingButtonController: UIViewController { 15 | 16 | @IBOutlet weak var floatingButton: MDCFloatingButton! 17 | let backgroundColor = UIColor(white: 1, alpha: 1.0) 18 | override func viewDidLoad() { 19 | super.viewDidLoad() 20 | floatingButton.backgroundColor = backgroundColor 21 | floatingButton.sizeToFit() // Do any additional setup after loading the view. 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Components ViewController/SliderViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SliderViewController.swift 3 | // iOSStoryBookDemo 4 | // 5 | // Created by junnikrishn on 10/5/20. 6 | // Copyright © 2020 Jayakrishnan u. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import MaterialComponents.MaterialSlider 11 | 12 | class SliderViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | @objc func didChangeSliderValue(senderSlider:MDCSlider) { 20 | print("Did change slider value to: %@", senderSlider.value) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/StorybookControlsProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StorybookControlsProtocol.swift 3 | // iOSStoryBookDemo 4 | // 5 | // Created by Adil Malik on 2021-04-30. 6 | // Copyright © 2021 Jayakrishnan u. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol StorybookControlsProtocol { 12 | func loadControls(_ params: [String:String]); 13 | } 14 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Supporting Files/ColorHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ColorHelper.swift 3 | // iOSStoryBookDemo 4 | // 5 | // Created by junnikrishn on 10/2/20. 6 | // Copyright © 2020 Jayakrishnan u. All rights reserved. 7 | // 8 | import UIKit 9 | 10 | /** 11 | Reads a value from a plist file. 12 | */ 13 | func readPlist(bundle: Bundle = Bundle(identifier: "com.test.iOSStoryBookDemo")!, file: String, key: String) -> String { 14 | var result = "ERROR" 15 | if let url = bundle.url(forResource: file, withExtension: "plist") { 16 | do { 17 | let data = try Data(contentsOf: url) 18 | let designData = try PropertyListSerialization.propertyList(from: data, options: [], format: nil) as! [String: Any] 19 | result = designData[key] as! String 20 | } catch { 21 | print(error) 22 | } 23 | } 24 | return result 25 | } 26 | 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Supporting Files/Localizable.strings: -------------------------------------------------------------------------------- 1 | "menuItemName.label_control" = "Controls"; 2 | "menuItemName.button" = "Button"; 3 | "menuItemName.floatingbutton" = "Floating Button"; 4 | "menuItemName.label_inputs" = "Inputs"; 5 | "menuItemName.textfield" = "TextField"; 6 | "menuItemName.slider" = "Slider"; 7 | "menuItemName.label_communications" = "Communications"; 8 | "menuItemName.spinner" = "Spinner"; 9 | -------------------------------------------------------------------------------- /examples/ios-material-ui/app/iOSStoryBookDemo/iOSStoryBookDemo/Supporting Files/label.swift: -------------------------------------------------------------------------------- 1 | // 2 | // label.swift 3 | // iOSStoryBookDemo 4 | // 5 | // Created by junnikrishn on 10/5/20. 6 | // Copyright © 2020 Jayakrishnan u. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class TitleLabel: UILabel { 12 | 13 | required init(coder aDecoder: NSCoder) { 14 | super.init(coder: aDecoder)! 15 | self.commonInit() 16 | 17 | } 18 | 19 | override init(frame: CGRect) { 20 | super.init(frame: frame) 21 | self.commonInit() 22 | } 23 | func commonInit(){ 24 | self.font = UIFont.boldSystemFont(ofSize: 20.0) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /examples/ios-material-ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-ios-example-deep-link", 3 | "version": "3.1.2", 4 | "private": true, 5 | "description": "An iOS demo app for storybook native", 6 | "repository": "", 7 | "author": "Adil Malik ", 8 | "license": "MIT", 9 | "contributors": [ 10 | "Adil Malik " 11 | ], 12 | "scripts": { 13 | "start": "storybook dev", 14 | "build:storybook": "storybook build" 15 | }, 16 | "keywords": [], 17 | "dependencies": { 18 | "@storybook/native": "link:../../packages/native", 19 | "@storybook/native-addon": "link:../../packages/addon" 20 | }, 21 | "devDependencies": { 22 | "@babel/preset-env": "^7.23.2", 23 | "@babel/preset-react": "^7.22.15", 24 | "@babel/preset-typescript": "^7.23.2", 25 | "@storybook/react-webpack5": "^7.5.3", 26 | "storybook": "^7.5.3" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /examples/ios-material-ui/src/button.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | 4 | export default { 5 | title: "Button" 6 | }; 7 | 8 | export const Example = (props) => { 9 | return ( 10 | 17 | ); 18 | }; 19 | 20 | Example.args = { 21 | label: "Button" 22 | }; 23 | -------------------------------------------------------------------------------- /examples/ios-material-ui/src/floatingbutton.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | 4 | export default { 5 | title: "FloatingButton" 6 | }; 7 | 8 | export const Example = (props) => { 9 | return ( 10 | 17 | ); 18 | }; 19 | -------------------------------------------------------------------------------- /examples/ios-material-ui/src/slider.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | 4 | export default { 5 | title: "Slider" 6 | }; 7 | 8 | export const Example = (props) => { 9 | return ( 10 | 17 | ); 18 | }; 19 | -------------------------------------------------------------------------------- /examples/ios-material-ui/src/spinner.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | 4 | export default { 5 | title: "Spinner" 6 | }; 7 | 8 | export const Example = (props) => { 9 | return ( 10 | 17 | ); 18 | }; 19 | -------------------------------------------------------------------------------- /examples/ios-material-ui/src/textfield.stories.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { EmulatorRenderer } from "@storybook/native-components"; 3 | 4 | export default { 5 | title: "TextField" 6 | }; 7 | 8 | export const Example = (props) => { 9 | return ( 10 | 17 | ); 18 | }; 19 | -------------------------------------------------------------------------------- /images/appetize-emulator.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/images/appetize-emulator.gif -------------------------------------------------------------------------------- /images/local-emulators.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/native/6e5efce2b57f1b6941b0e533560bb176e7f2d4da/images/local-emulators.gif -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3.1.2", 3 | "npmClient": "yarn", 4 | "registry": "https://registry.npmjs.com", 5 | "useWorkspaces": true 6 | } 7 | -------------------------------------------------------------------------------- /packages/addon/register.js: -------------------------------------------------------------------------------- 1 | require("./dist/register"); 2 | -------------------------------------------------------------------------------- /packages/addon/src/constants.ts: -------------------------------------------------------------------------------- 1 | export const ADDON_ID = "native"; 2 | export const LOCAL_STORAGE_KEY = "native-device-selection-v2"; 3 | export const DEEP_LINKS_PARAM_KEY = "native-deep-links"; 4 | export const MAP_PARAM_KEY = "native-map"; 5 | export const MEDIA_PARAM_KEY = "native-map"; 6 | export const NETWORK_LOGS_PARAM_KEY = "native-network-logs"; 7 | -------------------------------------------------------------------------------- /packages/addon/src/deviceDecorator.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { useAddonState } from "@storybook/client-api"; 3 | import { DeviceSelections, DeviceWrapper } from "@storybook/native-devices"; 4 | import { StoryContext, Renderer } from "@storybook/types"; 5 | 6 | import { ADDON_ID } from "./constants"; 7 | import { restoreFromLocalStorage } from "./utils/localStorageUtils"; 8 | 9 | export const DeviceDecorator = ( 10 | storyFn: () => any, 11 | context: StoryContext 12 | ): React.ReactElement => { 13 | const { parameters } = context; 14 | const fallbackState = parameters[ADDON_ID]; 15 | 16 | const [state] = useAddonState( 17 | ADDON_ID, 18 | restoreFromLocalStorage(fallbackState) 19 | ); 20 | 21 | return {storyFn()}; 22 | }; 23 | -------------------------------------------------------------------------------- /packages/addon/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./deviceDecorator"; 2 | -------------------------------------------------------------------------------- /packages/addon/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "jsx": "react", 9 | "module": "commonjs", 10 | "target": "es5", 11 | "lib": ["es5", "es6", "DOM"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../controllers" 16 | }, 17 | { 18 | "path": "../deep-link-logger" 19 | }, 20 | { 21 | "path": "../devices" 22 | }, 23 | { 24 | "path": "../types" 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /packages/controllers/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-controllers", 3 | "version": "3.1.2", 4 | "main": "./dist/index.js", 5 | "description": "Functions for programatically interacting with emulators", 6 | "files": [ 7 | "dist" 8 | ], 9 | "repository": "https://github.com/storybookjs/native.git", 10 | "author": "Adil Malik ", 11 | "license": "MIT", 12 | "contributors": [ 13 | "Adil Malik " 14 | ], 15 | "scripts": { 16 | "build": "tsc -b" 17 | }, 18 | "gitHead": "0f52a30495259d2b515e3a23cd516553894a4b30", 19 | "publishConfig": { 20 | "access": "public" 21 | }, 22 | "dependencies": { 23 | "@storybook/deep-link-logger": "link:../deep-link-logger", 24 | "@storybook/native-types": "link:../types", 25 | "@types/lodash.debounce": "^4.0.6", 26 | "add": "^2.0.6", 27 | "axios": "^0.21.1", 28 | "lodash": "^4.17.21", 29 | "react-redux": "^7.2.2", 30 | "react-toastify": "^9.1.3", 31 | "redux": "^4.0.5", 32 | "redux-thunk": "^2.3.0", 33 | "yarn": "^1.22.21" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/controllers/src/constants.ts: -------------------------------------------------------------------------------- 1 | export const BASE_IFRAME_ID = "appetize-iframe"; 2 | export const ACTION_EVENT_NAME = "native-action"; 3 | 4 | export enum ActionTypes { 5 | PERFORM_COMMAND = "load", 6 | COMMAND_ERROR = "error", 7 | COMMAND_SUCCESS = "success", 8 | RESET_COMMANDS = "reset-commands", 9 | 10 | ADD_NETWORK_LOG = "add-network-log", 11 | FILTER_NETWORK_LOG = "filter-network-log", 12 | RESET_NETWORK_LOGS = "reset-network-logs", 13 | 14 | ADD_LOG = "add-log", 15 | FILTER_LOG = "filter-log", 16 | RESET_LOGS = "reset-logs" 17 | } 18 | -------------------------------------------------------------------------------- /packages/controllers/src/controllers/EmulatorController.ts: -------------------------------------------------------------------------------- 1 | import type { EmulatorContext, EmulatorConfig } from "@storybook/native-types"; 2 | import type { SendMessageOptions } from "../types"; 3 | 4 | export default interface EmulatorController { 5 | sendMessage(options: SendMessageOptions): void; 6 | 7 | createEmulator(): void; 8 | 9 | openDeepLink(deepLinkUrl: string): void; 10 | 11 | getContext(): EmulatorContext | undefined; 12 | 13 | updateConfig(config: EmulatorConfig): void; 14 | } 15 | -------------------------------------------------------------------------------- /packages/controllers/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./utils/getAppetizeUrl"; 2 | export * from "./utils/iframeUtils"; 3 | export * from "./utils/deepLinkUtils"; 4 | export * from "./constants"; 5 | export * from "./types"; 6 | export * from "./state/hooks"; 7 | export * from "./state/commandsSlice"; 8 | export * from "./state/networkLogsSlice"; 9 | export * from "./state/logsSlice"; 10 | export { default as store } from "./state/store"; 11 | 12 | export { default as AppetizeEmulatorController } from "./controllers/AppetizeEmulatorController"; 13 | export { default as EmulatorController } from "./controllers/EmulatorController"; 14 | export { default as ControllerManager } from "./manager/ControllerManager"; 15 | -------------------------------------------------------------------------------- /packages/controllers/src/manager/controllerFactory.ts: -------------------------------------------------------------------------------- 1 | import { EmulatorContext } from "@storybook/native-types"; 2 | import AppetizeEmulatorController from "../controllers/AppetizeEmulatorController"; 3 | import EmulatorController from "../controllers/EmulatorController"; 4 | import LocalEmulatorController from "../controllers/LocalEmulatorController"; 5 | 6 | export const getNewController = ( 7 | context?: EmulatorContext 8 | ): EmulatorController => { 9 | if (process.env.STORYBOOK_NATIVE_LOCAL_EMULATOR) { 10 | return new LocalEmulatorController(context); 11 | } 12 | 13 | return new AppetizeEmulatorController(context); 14 | }; 15 | -------------------------------------------------------------------------------- /packages/controllers/src/state/hooks.ts: -------------------------------------------------------------------------------- 1 | import { useDispatch } from "react-redux"; 2 | import type { AppDispatch } from "./store"; 3 | 4 | export const useAppDispatch = () => useDispatch(); 5 | -------------------------------------------------------------------------------- /packages/controllers/src/state/logsSlice.ts: -------------------------------------------------------------------------------- 1 | import { ActionTypes } from "../constants"; 2 | import type { AppDispatch } from "./store"; 3 | 4 | export const addLog = (dispatch: AppDispatch, log: Log) => { 5 | dispatch({ 6 | type: ActionTypes.ADD_LOG, 7 | log 8 | }); 9 | }; 10 | 11 | export const filterLogs = (dispatch: AppDispatch, keyword: string) => { 12 | dispatch({ 13 | type: ActionTypes.FILTER_LOG, 14 | logsFilterKeyword: keyword 15 | }); 16 | }; 17 | 18 | export const resetLogs = (dispatch: AppDispatch) => { 19 | dispatch({ 20 | type: ActionTypes.RESET_LOGS 21 | }); 22 | }; 23 | -------------------------------------------------------------------------------- /packages/controllers/src/state/store.ts: -------------------------------------------------------------------------------- 1 | import { createStore, applyMiddleware, AnyAction } from "redux"; 2 | import thunkMiddleware from "redux-thunk"; 3 | import type { ThunkAction } from "redux-thunk"; 4 | import reducer from "./reducer"; 5 | 6 | const enhancer = applyMiddleware(thunkMiddleware); 7 | 8 | const store = createStore(reducer, enhancer); 9 | export default store; 10 | 11 | export type RootState = ReturnType; 12 | export type AppDispatch = typeof store.dispatch; 13 | export type ThunkActionHandler = ThunkAction< 14 | void, 15 | RootState, 16 | unknown, 17 | AnyAction 18 | >; 19 | 20 | export const dispatchThunk = (thunk: ThunkActionHandler) => { 21 | // @ts-ignore 22 | return store.dispatch(thunk); 23 | }; 24 | -------------------------------------------------------------------------------- /packages/controllers/src/utils/deepLinkUtils.ts: -------------------------------------------------------------------------------- 1 | const getQueryString = (data: Record) => { 2 | return Object.keys(data) 3 | .map((key) => { 4 | const value = data[key]; 5 | return `${encodeURIComponent(key)}=${ 6 | typeof value === "object" || Array.isArray(value) 7 | ? btoa(JSON.stringify(value)) 8 | : encodeURIComponent(value) 9 | }`; 10 | }) 11 | .join("&"); 12 | }; 13 | 14 | export const getFullDeepLinkUrl = ( 15 | baseDeepLinkUrl: string, 16 | storyParams: Record 17 | ) => { 18 | const qsParams = getQueryString(storyParams); 19 | return `${baseDeepLinkUrl}?${qsParams}`; 20 | }; 21 | -------------------------------------------------------------------------------- /packages/controllers/src/utils/getAppetizeUrl.ts: -------------------------------------------------------------------------------- 1 | import type { EmulatorConfig } from "@storybook/native-types"; 2 | 3 | export const getAppetizeUrl = ({ 4 | launchArgs, 5 | settings, 6 | apiKey, 7 | baseUrl = "https://appetize.io" 8 | }: EmulatorConfig) => { 9 | if (!apiKey) { 10 | throw new Error("No appetize API key was specified"); 11 | } 12 | 13 | const options: Record = { 14 | xdocMsg: true, 15 | autoplay: true, 16 | ...settings 17 | }; 18 | if (launchArgs) { 19 | options.params = JSON.stringify(launchArgs); 20 | } 21 | 22 | const urlWithoutParams = `${baseUrl}/embed/${apiKey}`; 23 | // @ts-ignore 24 | const qsParams = new URLSearchParams(options).toString(); 25 | 26 | return `${urlWithoutParams}?${qsParams}`; 27 | }; 28 | -------------------------------------------------------------------------------- /packages/controllers/src/utils/rotationUtils.ts: -------------------------------------------------------------------------------- 1 | import { EmulatorRotation, RotationsList } from "@storybook/native-types"; 2 | 3 | export const getPreviousRotation = ( 4 | rotation: EmulatorRotation 5 | ): EmulatorRotation => { 6 | const index = RotationsList.findIndex((val) => val === rotation); 7 | if (index === 0) { 8 | return RotationsList[RotationsList.length - 1]; 9 | } 10 | 11 | return RotationsList[index - 1]; 12 | }; 13 | 14 | export const getNextRotation = ( 15 | rotation: EmulatorRotation 16 | ): EmulatorRotation => { 17 | const index = RotationsList.findIndex((val) => val === rotation); 18 | const newIndex = (index + 1) % RotationsList.length; 19 | return RotationsList[newIndex]; 20 | }; 21 | -------------------------------------------------------------------------------- /packages/controllers/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "jsx": "react", 9 | "module": "commonjs", 10 | "target": "es5", 11 | "lib": ["es5", "es6", "DOM"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../deep-link-logger" 16 | }, 17 | { 18 | "path": "../types" 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /packages/deep-link-logger/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/deep-link-logger", 3 | "version": "3.1.2", 4 | "main": "./dist/index.js", 5 | "files": [ 6 | "dist" 7 | ], 8 | "repository": "https://github.com/storybookjs/native.git", 9 | "author": "Adil Malik ", 10 | "license": "MIT", 11 | "contributors": [ 12 | "Raj Vasikarla ", 13 | "Adil Malik " 14 | ], 15 | "scripts": { 16 | "build": "tsc -b" 17 | }, 18 | "dependencies": { 19 | "@storybook/addons": "^7.5.3", 20 | "@storybook/api": "^7.5.3", 21 | "@storybook/components": "^7.5.3", 22 | "@storybook/theming": "^7.5.3", 23 | "copy-to-clipboard": "^3.3.1", 24 | "react": "^18.2.0", 25 | "react-dom": "^18.2.0" 26 | }, 27 | "gitHead": "fbc105e027161ddd733378b77cb64c28d776a371", 28 | "publishConfig": { 29 | "access": "public" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /packages/deep-link-logger/src/components/DeepLinkDetails.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Button } from "@storybook/components"; 3 | import copy from "copy-to-clipboard"; 4 | 5 | export interface DeepLinkDetailsProps { 6 | link: string; 7 | } 8 | 9 | export default ({ link }: DeepLinkDetailsProps) => { 10 | const onCopyClicked = () => { 11 | copy(link); 12 | }; 13 | 14 | return ( 15 | <> 16 |
17 | 20 |
21 | {link} 22 |
23 |
24 |
25 | 26 | ); 27 | }; 28 | -------------------------------------------------------------------------------- /packages/deep-link-logger/src/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEEP_LINKS_EVENT_ID = "native-deep-links-add"; 2 | -------------------------------------------------------------------------------- /packages/deep-link-logger/src/deepLinkUtils.ts: -------------------------------------------------------------------------------- 1 | import { addons } from "@storybook/addons"; 2 | 3 | import { DEEP_LINKS_EVENT_ID } from "./constants"; 4 | 5 | export const logDeepLink = (url: string) => { 6 | const channel = addons.getChannel(); 7 | channel.emit(DEEP_LINKS_EVENT_ID, url); 8 | }; 9 | -------------------------------------------------------------------------------- /packages/deep-link-logger/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./deepLinkUtils"; 2 | export { default as DeepLinksContainer } from "./components/DeepLinksContainer"; 3 | -------------------------------------------------------------------------------- /packages/deep-link-logger/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "jsx": "react", 9 | "module": "commonjs", 10 | "target": "es5", 11 | "lib": ["es5", "es6", "DOM"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/dev-middleware/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-dev-middleware", 3 | "version": "3.1.2", 4 | "main": "./dist/index.js", 5 | "description": "Middleware for using storybook with emulators open on a local machine", 6 | "files": [ 7 | "dist" 8 | ], 9 | "repository": "https://github.com/storybookjs/native.git", 10 | "author": "Adil Malik ", 11 | "license": "MIT", 12 | "contributors": [ 13 | "Adil Malik " 14 | ], 15 | "scripts": { 16 | "build": "tsc -b" 17 | }, 18 | "dependencies": { 19 | "@storybook/native-types": "link:../types", 20 | "@types/express": "^4.17.11", 21 | "express": "^4.17.0" 22 | }, 23 | "gitHead": "fbc105e027161ddd733378b77cb64c28d776a371", 24 | "publishConfig": { 25 | "access": "public" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/dev-middleware/src/configUtils.ts: -------------------------------------------------------------------------------- 1 | import { 2 | DEFAULT_ADB_COMMAND_PATH, 3 | DEFAULT_COMMAND_TIMEOUT, 4 | DEFAULT_XCRUN_COMMAND_PATH 5 | } from "./constants"; 6 | import type { FullConfig, NativeDevMiddlewareConfig } from "./types"; 7 | 8 | export const getCompleteConfig = ( 9 | config: Partial 10 | ): FullConfig => { 11 | return { 12 | androidCommandPath: 13 | config.androidCommandPath || DEFAULT_ADB_COMMAND_PATH, 14 | iosCommandPath: config.iosCommandPath || DEFAULT_XCRUN_COMMAND_PATH, 15 | timeout: config.timeout || DEFAULT_COMMAND_TIMEOUT 16 | }; 17 | }; 18 | -------------------------------------------------------------------------------- /packages/dev-middleware/src/constants.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_COMMAND_TIMEOUT = 10000; 2 | export const DEFAULT_ADB_COMMAND_PATH = "adb"; 3 | export const DEFAULT_XCRUN_COMMAND_PATH = "xcrun"; 4 | -------------------------------------------------------------------------------- /packages/dev-middleware/src/handlers/updateConfig.ts: -------------------------------------------------------------------------------- 1 | import { Request, Response } from "express"; 2 | import type { ResponseBody } from "../types"; 3 | 4 | // TODO: handle switching devices + possibly support launch options 5 | 6 | export const postUpdateConfig = () => { 7 | return (req: Request, res: Response) => { 8 | return res.json({ message: "Config update (no-op)" } as ResponseBody); 9 | }; 10 | }; 11 | -------------------------------------------------------------------------------- /packages/dev-middleware/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./middleware"; 2 | export * from "./types"; 3 | -------------------------------------------------------------------------------- /packages/dev-middleware/src/middleware.ts: -------------------------------------------------------------------------------- 1 | import { Application, json } from "express"; 2 | import { getCompleteConfig } from "./configUtils"; 3 | import { postDeepLink } from "./handlers/deepLink"; 4 | import { postSaveScreenshot } from "./handlers/saveScreenshot"; 5 | import { postSetRotation } from "./handlers/setRotation"; 6 | import { postUpdateConfig } from "./handlers/updateConfig"; 7 | import { postStopApp } from "./handlers/stopApp"; 8 | import type { NativeDevMiddlewareConfig } from "./types"; 9 | 10 | export const middleware = (config: NativeDevMiddlewareConfig = {}) => { 11 | const fullConfig = getCompleteConfig(config); 12 | return (app: Application) => { 13 | app.use(json()); 14 | app.post("/deepLink", postDeepLink(fullConfig)); 15 | app.post("/updateConfig", postUpdateConfig()); 16 | app.post("/screenshot", postSaveScreenshot(fullConfig)); 17 | app.post("/rotation", postSetRotation(fullConfig)); 18 | app.post("/stopApp", postStopApp(fullConfig)); 19 | }; 20 | }; 21 | -------------------------------------------------------------------------------- /packages/dev-middleware/src/types.ts: -------------------------------------------------------------------------------- 1 | export interface NativeDevMiddlewareConfig { 2 | /** Path to `adb`. Defaults to `adb` */ 3 | androidCommandPath?: string; 4 | /** Path to `xcrun`. Defaults to `xcrun` */ 5 | iosCommandPath?: string; 6 | /** How long before a command times out. Defaults to `10000` ms */ 7 | timeout?: number; 8 | } 9 | 10 | export type FullConfig = Required; 11 | 12 | export interface ResponseBody { 13 | message: string; 14 | } 15 | -------------------------------------------------------------------------------- /packages/dev-middleware/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "module": "commonjs", 9 | "target": "es5", 10 | "lib": ["es5", "es6"] 11 | }, 12 | "references": [ 13 | { 14 | "path": "../types" 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /packages/devices/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-devices", 3 | "version": "3.1.2", 4 | "main": "./dist/index.js", 5 | "files": [ 6 | "dist" 7 | ], 8 | "repository": "https://github.com/storybookjs/native.git", 9 | "author": "Adil Malik ", 10 | "license": "MIT", 11 | "contributors": [ 12 | "Adil Malik " 13 | ], 14 | "scripts": { 15 | "build": "tsc -b" 16 | }, 17 | "dependencies": { 18 | "@storybook/native-types": "link:../types", 19 | "react": "^18.2.0", 20 | "react-dom": "^18.2.0" 21 | }, 22 | "gitHead": "fbc105e027161ddd733378b77cb64c28d776a371", 23 | "publishConfig": { 24 | "access": "public" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /packages/devices/src/DeviceContext.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import { DeviceSelections } from "./types"; 3 | import { getDefaultDevice, getDefaultOsVersion } from "./getDevices"; 4 | import { getDefaultFont } from "./getFonts"; 5 | import { getDefaultLocation } from "./getLocations"; 6 | 7 | export const DeviceContext = React.createContext({ 8 | androidSelection: getDefaultDevice("android"), 9 | iosSelection: getDefaultDevice("ios"), 10 | 11 | iosVersion: getDefaultOsVersion("ios"), 12 | androidVersion: getDefaultOsVersion("android"), 13 | 14 | androidFont: getDefaultFont("android"), 15 | iosFont: getDefaultFont("ios"), 16 | 17 | location: getDefaultLocation(), 18 | networkLogs: false, 19 | logs: false, 20 | isDarkTheme: false 21 | }); 22 | -------------------------------------------------------------------------------- /packages/devices/src/DeviceWrapper.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { DeviceContext } from "./DeviceContext"; 3 | import { DeviceSelections } from "./types"; 4 | 5 | export const DeviceWrapper = ({ 6 | children, 7 | ...value 8 | }: React.PropsWithChildren) => { 9 | const context = React.useContext(DeviceContext); 10 | 11 | return ( 12 | 13 | {children} 14 | 15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /packages/devices/src/getLocations.ts: -------------------------------------------------------------------------------- 1 | import { GlobalLocation } from "@storybook/native-types"; 2 | import locationsArray from "./locations.json"; 3 | 4 | export const getDefaultLocationCode = () => { 5 | return "US"; 6 | }; 7 | 8 | export const getLocations = () => { 9 | return locationsArray; 10 | }; 11 | 12 | export const getLocationsCodes = () => { 13 | return getLocations().map((e) => { 14 | return e.code2; 15 | }); 16 | }; 17 | 18 | export const getDefaultLocation = (code?: string) => { 19 | return getLocations().filter((e) => { 20 | return e.code2 === (code ?? getDefaultLocationCode()); 21 | })[0]; 22 | }; 23 | 24 | export const getFilteredLocations = (onlyCodes2: string[]) => { 25 | const filteredList = getLocations().filter((e) => { 26 | return onlyCodes2.includes(e.code2); 27 | }); 28 | return filteredList.sort( 29 | (a, b) => onlyCodes2.indexOf(a.code2) - onlyCodes2.indexOf(b.code2) 30 | ); 31 | }; 32 | 33 | export const getGlobalLocationJson = ( 34 | globalLocation: GlobalLocation 35 | ): string => { 36 | return JSON.stringify(globalLocation); 37 | }; 38 | -------------------------------------------------------------------------------- /packages/devices/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./DeviceContext"; 2 | export * from "./DeviceWrapper"; 3 | export * from "./useDevice"; 4 | export * from "./getDevices"; 5 | export * from "./getFonts"; 6 | export * from "./getLocations"; 7 | export type { DeviceSelections } from "./types"; 8 | -------------------------------------------------------------------------------- /packages/devices/src/types.ts: -------------------------------------------------------------------------------- 1 | import { Font, Location } from "@storybook/native-types"; 2 | 3 | export interface DeviceSelections { 4 | androidSelection: string; 5 | iosSelection: string; 6 | 7 | iosVersion: string; 8 | androidVersion: string; 9 | 10 | androidFont: Font; 11 | iosFont: Font; 12 | 13 | location: Location; 14 | networkLogs: boolean; 15 | logs: boolean; 16 | isDarkTheme: boolean; 17 | } 18 | -------------------------------------------------------------------------------- /packages/devices/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*", "src/locations.json"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "jsx": "react", 9 | "module": "commonjs", 10 | "target": "es5", 11 | "lib": ["es5", "es6", "DOM"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../types" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /packages/native-components/README.md: -------------------------------------------------------------------------------- 1 | # @storybook/native-components 2 | This module contains React components that allow you to interact with appetize.io. This lets you take advantage of controls, as well as add-ons. 3 | 4 | ## Installation 5 | This package is included within the `@storybook/native` package already, so if you have that as a dependency you do not need to manually install this. 6 | 7 | If you are not using that package, use one of these commands to install this package: 8 | `npm install @storybook/native-components` 9 | or 10 | `yarn add @storybook/native-components` 11 | 12 | ## Usage 13 | `import { EmulatorRenderer } from '@storybook/native-components';` 14 | 15 | An example usage can be found [here](../../examples/controls/src/button.stories.jsx) 16 | -------------------------------------------------------------------------------- /packages/native-components/src/commands/BaseMessage.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export interface MessageProps { 4 | children?: React.ReactNode; 5 | backgroundColor: string; 6 | } 7 | 8 | export default ({ children, backgroundColor }: MessageProps) => { 9 | return ( 10 |
19 | {children} 20 |
21 | ); 22 | }; 23 | -------------------------------------------------------------------------------- /packages/native-components/src/commands/CommandDetails.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import type { HandledMessageResponse } from "@storybook/native-controllers"; 3 | import SuccessMessage from "./SuccessMessage"; 4 | import ErrorMessage from "./ErrorMessage"; 5 | 6 | export interface CommandDetailsProps { 7 | command: HandledMessageResponse; 8 | } 9 | 10 | export default ({ command }: CommandDetailsProps) => { 11 | const { successful, response, message } = command; 12 | let textToRender = response; 13 | if (!textToRender) { 14 | textToRender = `Sent data to app: ${JSON.stringify(message, null, 2)}`; 15 | } 16 | 17 | if (successful) { 18 | return {textToRender}; 19 | } 20 | 21 | return {textToRender}; 22 | }; 23 | -------------------------------------------------------------------------------- /packages/native-components/src/commands/ErrorMessage.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import BaseMessage from "./BaseMessage"; 3 | 4 | export interface ErrorMessageProps { 5 | children?: React.ReactNode; 6 | } 7 | 8 | export default ({ children }: ErrorMessageProps) => { 9 | return {children}; 10 | }; 11 | -------------------------------------------------------------------------------- /packages/native-components/src/commands/SuccessMessage.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import BaseMessage from "./BaseMessage"; 3 | 4 | export interface SuccessMessageProps { 5 | children?: React.ReactNode; 6 | } 7 | 8 | export default ({ children }: SuccessMessageProps) => { 9 | return {children}; 10 | }; 11 | -------------------------------------------------------------------------------- /packages/native-components/src/index.ts: -------------------------------------------------------------------------------- 1 | export { default as EmulatorRenderer } from "./renderers/EmulatorRenderer"; 2 | export { default as DeepLinkRenderer } from "./renderers/DeepLinkRenderer"; 3 | export { default as NetworkLogsList } from "./log/NetworkLogsList"; 4 | export { default as LogsList } from "./log/LogsList"; 5 | export * from "./types"; 6 | -------------------------------------------------------------------------------- /packages/native-components/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "jsx": "react", 9 | "module": "commonjs", 10 | "target": "es5", 11 | "lib": ["es5", "es6", "DOM"] 12 | }, 13 | "references": [ 14 | { 15 | "path": "../controllers" 16 | }, 17 | { 18 | "path": "../devices" 19 | }, 20 | { 21 | "path": "../types" 22 | } 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /packages/native/category.template: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Description } from '@storybook/addon-docs/blocks'; 3 | import { EmulatorRenderer } from '@storybook/native-components'; 4 | 5 | export default { 6 | title: '<%= category %>' 7 | }; 8 | 9 | <%= stories %> 10 | -------------------------------------------------------------------------------- /packages/native/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./generateStories"; 2 | export * from "./previewHeader"; 3 | -------------------------------------------------------------------------------- /packages/native/src/previewHeader.ts: -------------------------------------------------------------------------------- 1 | export const nativePreviewHead = (head: string) => `${head} 2 | ${process.env.STORYBOOK_NATIVE_LOCAL_EMULATOR ? '' : 3 | ''} 4 | `; 5 | -------------------------------------------------------------------------------- /packages/native/src/types.ts: -------------------------------------------------------------------------------- 1 | import { Platform } from "@storybook/native-types"; 2 | 3 | export interface StoryParams { 4 | name: string; 5 | appParams: Record; 6 | docs?: string; 7 | } 8 | 9 | export interface Config { 10 | category: string; 11 | appetizeBaseUrl: string; 12 | filePath: string; 13 | apiKey: string; 14 | platform: Platform; 15 | stories: StoryParams[]; 16 | controls: [string, unknown][]; 17 | deepLinkUrl?: string; 18 | applicationId?: string; 19 | } 20 | -------------------------------------------------------------------------------- /packages/native/story.template: -------------------------------------------------------------------------------- 1 | export const <%= storyName %> = (props) => { 2 | return 4 | applicationId="<%= applicationId %>" 5 | <% } %> 6 | <% if (appetizeBaseUrl) { %> 7 | appetizeBaseUrl="<%= appetizeBaseUrl %>" 8 | <% } %> 9 | apiKey="<%= apiKey %>" 10 | platform="<%= platform %>" 11 | storyParams={<%= storyParams %>} 12 | deepLinkBaseUrl={<%= deepLinkBaseUrl %>} 13 | extraParams={props} 14 | />; 15 | }; 16 | 17 | <%= storyName %>.parameters = { 18 | docs: { 19 | page: () => } /> 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /packages/native/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "module": "commonjs", 9 | "target": "es5", 10 | "lib": ["es5", "es6"] 11 | }, 12 | "references": [ 13 | { 14 | "path": "../controllers" 15 | }, 16 | { 17 | "path": "../addon" 18 | }, 19 | { 20 | "path": "../native-components" 21 | }, 22 | { 23 | "path": "../types" 24 | } 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /packages/types/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@storybook/native-types", 3 | "version": "3.1.2", 4 | "main": "./dist/index.js", 5 | "files": [ 6 | "dist" 7 | ], 8 | "repository": "https://github.com/storybookjs/native.git", 9 | "author": "Adil Malik ", 10 | "license": "MIT", 11 | "contributors": [ 12 | "Adil Malik " 13 | ], 14 | "scripts": { 15 | "build": "tsc -b" 16 | }, 17 | "gitHead": "0f52a30495259d2b515e3a23cd516553894a4b30", 18 | "publishConfig": { 19 | "access": "public" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/types/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "include": ["src/**/*"], 4 | "compilerOptions": { 5 | "outDir": "./dist", 6 | "rootDir": "./src", 7 | "composite": true, 8 | "jsx": "react", 9 | "module": "commonjs", 10 | "target": "es5", 11 | "lib": ["es5", "es6", "DOM"] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /scripts/buildExamples.sh: -------------------------------------------------------------------------------- 1 | cd ./examples/android-material-ui && yarn build:storybook 2 | cd ../controls && yarn build:storybook 3 | cd ../cross-platform && yarn build:storybook 4 | cd ../flutter && yarn build:storybook 5 | cd ../ios-material-ui && yarn build:storybook 6 | -------------------------------------------------------------------------------- /scripts/deploy.sh: -------------------------------------------------------------------------------- 1 | if [ "${CIRCLE_BRANCH}" == "master" ]; then 2 | yarn release:storybook 3 | fi 4 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2017", 4 | "module": "commonjs", 5 | "strict": true, 6 | "allowSyntheticDefaultImports": true, 7 | "sourceMap": true, 8 | "declaration": true, 9 | "esModuleInterop": true, 10 | "experimentalDecorators": true, 11 | "resolveJsonModule": true, 12 | "downlevelIteration": true, 13 | "skipLibCheck": true 14 | } 15 | } 16 | --------------------------------------------------------------------------------