├── .editorconfig ├── .gitattributes ├── .github ├── CODEOWNERS ├── FUNDING.yml ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md ├── stale.yml └── workflows │ ├── docs.yml │ └── test.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode └── settings.json ├── .yarn ├── patches │ └── jotai-npm-2.6.2-d482bf2d42.patch └── releases │ └── yarn-4.1.0.cjs ├── .yarnrc.yml ├── CHANGELOG.md ├── CLAUDE.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── MAINTAINERS.md ├── MANUAL_SETUP.md ├── MIGRATION.md ├── PORTABLE_STORIES.md ├── README.md ├── RELEASES.md ├── ROADMAP.md ├── docs ├── .gitignore ├── README.md ├── blog │ ├── 2025-03-23-first-blog-post.md │ ├── authors.yml │ └── tags.yml ├── docs │ └── intro │ │ ├── addons │ │ ├── controls.md │ │ └── index.md │ │ ├── configuration │ │ ├── custom-ui.md │ │ └── index.md │ │ ├── getting-started │ │ ├── expo-router.md │ │ ├── index.md │ │ └── manual-setup.md │ │ ├── index.md │ │ ├── testing.md │ │ └── writing-stories.md ├── docusaurus.config.ts ├── package.json ├── sidebars.ts ├── src │ ├── components │ │ └── HomepageFeatures │ │ │ ├── index.tsx │ │ │ └── styles.module.css │ ├── css │ │ └── custom.css │ └── pages │ │ ├── index.module.css │ │ └── index.tsx ├── static │ ├── .nojekyll │ ├── img │ │ ├── favicon.ico │ │ ├── logo.svg │ │ └── social-card.jpg │ └── robots.txt └── tsconfig.json ├── eslint.config.js ├── examples └── expo-example │ ├── .gitignore │ ├── .maestro │ ├── baseline │ │ ├── ActionExample-Actions---Another-Action.png │ │ ├── ActionExample-Actions---Basic.png │ │ ├── BackgroundExample-BackgroundCsf---Basic.png │ │ ├── ControlExamples-Array---Basic.png │ │ ├── ControlExamples-Boolean---Basic.png │ │ ├── ControlExamples-Boolean---On.png │ │ ├── ControlExamples-Color---Color-Example.png │ │ ├── ControlExamples-ControlExample---Example.png │ │ ├── ControlExamples-Date---Basic.png │ │ ├── ControlExamples-Number---Basic.png │ │ ├── ControlExamples-Number---Range.png │ │ ├── ControlExamples-Object---Basic.png │ │ ├── ControlExamples-Radio---Basic.png │ │ ├── ControlExamples-Reproductions-SelectWithNumber---Basic.png │ │ ├── ControlExamples-Select---Basic.png │ │ ├── ControlExamples-Select---With-Labels.png │ │ ├── ControlExamples-Select---With-Mapping.png │ │ ├── ControlExamples-Text---Basic.png │ │ ├── ControlExamples-WebCompatibility---Defined.png │ │ ├── ControlExamples-WebCompatibility---Undefined.png │ │ ├── DeepControls---Basic.png │ │ ├── InputExample-TextInput---Basic.png │ │ ├── InteractionExample---Scrolling.png │ │ ├── InteractionExample---Static.png │ │ ├── InteractionExample---Touchable.png │ │ ├── NestingExample-ChatMessage---Message-First.png │ │ ├── NestingExample-ChatMessage---Message-Second.png │ │ ├── NestingExample-Message-Reactions---Message-One.png │ │ ├── NestingExample-Message-Reactions---Message-Two.png │ │ ├── NestingExample-Message-bubble---First.png │ │ ├── NestingExample-Message-bubble---Second-Story.png │ │ ├── NestingExample-Message-bubble-a-very-long-name-for-a-title-that-just-keeps-going-and-going---First.png │ │ ├── NestingExample-Message-bubble-a-very-long-name-for-a-title-that-just-keeps-going-and-going---Second-Story.png │ │ ├── NestingExample-MessageInput---Basic.png │ │ ├── NotesExample---Notes-Example.png │ │ ├── SafeAreaExample-SafeAreaInside---Basic.png │ │ ├── SafeAreaExample-SafeAreaInside---List-Basic.png │ │ ├── SafeAreaExample-SafeAreaOutside---Basic.png │ │ ├── SafeAreaExample-SafeAreaOutside---List-Basic.png │ │ ├── SafeAreaExample-UsableArea---No-Safe-Area.png │ │ ├── SafeAreaExample-UsableArea---Safe-Area.png │ │ ├── TestCase---Basic.png │ │ ├── TestCase2---Basic.png │ │ ├── react-native-ui-UI-Button---Active.png │ │ ├── react-native-ui-UI-Button---Animated.png │ │ ├── react-native-ui-UI-Button---Base.png │ │ ├── react-native-ui-UI-Button---Disabled.png │ │ ├── react-native-ui-UI-Button---Icon-Only.png │ │ ├── react-native-ui-UI-Button---Sizes.png │ │ ├── react-native-ui-UI-Button---Variants.png │ │ ├── react-native-ui-UI-Button---With-Icon.png │ │ ├── react-native-ui-UI-SearchResults---Default.png │ │ ├── react-native-ui-UI-Sidebar-Explorer---Simple.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Bottom.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Empty.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Index-Error.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Loading-With-Ref-Error.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Loading-With-Refs.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Loading.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Scrolled.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Searching.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Simple.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Statuses-Collapsed.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---Statuses-Open.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---With-Ref-Empty.png │ │ ├── react-native-ui-UI-Sidebar-Sidebar---With-Refs.png │ │ ├── react-native-ui-UI-Sidebar-Tree---Dark.png │ │ ├── react-native-ui-UI-Sidebar-Tree---Full.png │ │ ├── react-native-ui-UI-Sidebar-Tree---Single-Story-Components.png │ │ ├── react-native-ui-UI-Sidebar-Tree---Story-with-a-storyName.png │ │ ├── react-native-ui-UI-Sidebar-TreeNode---Expandable-Long-Name.png │ │ ├── react-native-ui-UI-Sidebar-TreeNode---Expandable.png │ │ ├── react-native-ui-UI-Sidebar-TreeNode---Nested.png │ │ ├── react-native-ui-UI-Sidebar-TreeNode---Selection-With-Long-Name.png │ │ ├── react-native-ui-UI-Sidebar-TreeNode---Selection.png │ │ ├── react-native-ui-UI-Sidebar-TreeNode---Types.png │ │ ├── react-native-ui-UI-StorybookLogo---Image-Element-Logo.png │ │ ├── react-native-ui-UI-StorybookLogo---Image-Logo.png │ │ ├── react-native-ui-UI-StorybookLogo---Image-Source-Logo.png │ │ ├── react-native-ui-UI-StorybookLogo---Image-Url-Logo.png │ │ ├── react-native-ui-UI-StorybookLogo---Title-Logo.png │ │ ├── react-native-ui-src-Layout---Basic.png │ │ ├── react-native-ui-src-Layout---Overflow-Addons-Example.png │ │ └── react-native-ui-src-Layout---Overflow-Sidebar-Example.png │ └── storybook-screenshots.yaml │ ├── .rnstorybook │ ├── index.tsx │ ├── local-addon-example │ │ ├── preview.js │ │ └── register.js │ ├── main.ts │ ├── preview.tsx │ └── storybook.requires.ts │ ├── .storybook │ ├── main.ts │ └── preview.tsx │ ├── App.tsx │ ├── README.md │ ├── app.config.ts │ ├── assets │ └── icon.png │ ├── babel.config.js │ ├── components │ ├── ActionExample │ │ ├── Actions.stories.tsx │ │ ├── Actions.test.tsx │ │ └── Actions.tsx │ ├── BackgroundExample │ │ ├── BackgroundCsf.stories.tsx │ │ └── BackgroundCsf.test.tsx │ ├── ControlExamples │ │ ├── Array │ │ │ ├── Array.stories.tsx │ │ │ ├── Array.test.tsx │ │ │ └── Array.tsx │ │ ├── Boolean │ │ │ ├── Boolean.stories.tsx │ │ │ ├── Boolean.test.tsx │ │ │ └── Boolean.tsx │ │ ├── Color │ │ │ ├── Color.stories.tsx │ │ │ ├── Color.test.tsx │ │ │ └── Color.tsx │ │ ├── ControlExample │ │ │ ├── ControlExample.stories.tsx │ │ │ └── ControlExample.tsx │ │ ├── Date │ │ │ ├── Date.stories.tsx │ │ │ ├── Date.test.tsx │ │ │ └── Date.tsx │ │ ├── Number │ │ │ ├── Number.stories.tsx │ │ │ ├── Number.test.tsx │ │ │ └── Number.tsx │ │ ├── Object │ │ │ ├── Object.stories.tsx │ │ │ ├── Object.test.tsx │ │ │ └── Object.tsx │ │ ├── Radio │ │ │ ├── Radio.stories.tsx │ │ │ ├── Radio.test.tsx │ │ │ └── Radio.tsx │ │ ├── Reproductions │ │ │ ├── SelectWithNumber.stories.tsx │ │ │ └── SelectWithNumber.tsx │ │ ├── Select │ │ │ ├── Select.stories.tsx │ │ │ ├── Select.test.tsx │ │ │ └── Select.tsx │ │ ├── Text │ │ │ ├── Text.stories.tsx │ │ │ ├── Text.test.tsx │ │ │ └── Text.tsx │ │ └── WebCompatibility │ │ │ └── WebCompatibility.stories.tsx │ ├── DeepControls │ │ └── DeepControls.stories.tsx │ ├── HiddenControls │ │ └── HiddenControls.stories.tsx │ ├── InputExample │ │ ├── TextInput.stories.tsx │ │ ├── TextInput.test.tsx │ │ └── TextInput.tsx │ ├── InteractionExample │ │ └── InteractionExample.stories.tsx │ ├── NestingExample │ │ ├── ChatMessage.stories.tsx │ │ ├── ChatMessageBubble.stories.tsx │ │ ├── ChatMessageBubbleAgain.stories.tsx │ │ ├── ChatMessageMessageInput.stories.tsx │ │ └── ChatMessageReactions.stories.tsx │ ├── NotesExample │ │ └── NotesExample.stories.tsx │ └── SafeAreaExample │ │ ├── AButton.tsx │ │ ├── SafeAreaInside.stories.tsx │ │ ├── SafeAreaOutside.stories.tsx │ │ └── UsableArea.stories.tsx │ ├── index.js │ ├── jest.config.js │ ├── metro.config.js │ ├── other_components │ ├── TestCase │ │ └── TestCase.stories.tsx │ └── TestCase2 │ │ └── TestCase2.stories.tsx │ ├── package.json │ ├── scripts │ ├── compare-screenshots.ts │ ├── generate-maestro-tests.ts │ └── generatePerfTests.ts │ ├── setup-jest.ts │ └── tsconfig.json ├── lerna.json ├── package.json ├── packages ├── ondevice-actions │ ├── README.md │ ├── package.json │ ├── preview.js │ ├── register.js │ ├── src │ │ ├── components │ │ │ └── ActionLogger │ │ │ │ ├── Inspect.tsx │ │ │ │ └── index.tsx │ │ ├── containers │ │ │ └── ActionLogger │ │ │ │ └── index.tsx │ │ ├── index.tsx │ │ └── preview.ts │ └── tsconfig.json ├── ondevice-backgrounds │ ├── README.md │ ├── docs │ │ └── demo.gif │ ├── package.json │ ├── register.js │ ├── src │ │ ├── BackgroundPanel.tsx │ │ ├── Swatch.tsx │ │ ├── constants.ts │ │ ├── container.tsx │ │ ├── index.tsx │ │ └── register.tsx │ └── tsconfig.json ├── ondevice-controls │ ├── README.md │ ├── package.json │ ├── register.js │ ├── src │ │ ├── ControlsPanel.tsx │ │ ├── NoControlsWarning.tsx │ │ ├── Panel.tsx │ │ ├── PropField.tsx │ │ ├── PropForm.tsx │ │ ├── components │ │ │ ├── RadioSelect.tsx │ │ │ ├── SelectModal.tsx │ │ │ └── color-picker │ │ │ │ ├── HoloColorPicker.tsx │ │ │ │ ├── TriangleColorPicker.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── resources │ │ │ │ ├── color-circle.png │ │ │ │ ├── color-circle.xcf │ │ │ │ └── hsv_triangle_mask.png │ │ │ │ └── utils.ts │ │ ├── hooks.ts │ │ ├── index.tsx │ │ ├── sharedTypes.ts │ │ ├── types │ │ │ ├── Array.tsx │ │ │ ├── Boolean.tsx │ │ │ ├── Color.tsx │ │ │ ├── Date.tsx │ │ │ ├── Number.tsx │ │ │ ├── Object.tsx │ │ │ ├── Radio.tsx │ │ │ ├── Select.tsx │ │ │ ├── Text.tsx │ │ │ ├── common.tsx │ │ │ ├── index.ts │ │ │ └── useResyncValue.ts │ │ └── useDebounceCallback.ts │ └── tsconfig.json ├── ondevice-notes │ ├── README.md │ ├── docs │ │ └── demo.png │ ├── package.json │ ├── register.js │ ├── src │ │ ├── ErrorBoundary.tsx │ │ ├── components │ │ │ └── Notes.tsx │ │ ├── index.ts │ │ ├── register.tsx │ │ └── typings.d.ts │ └── tsconfig.json ├── react-native-theming │ ├── README.md │ ├── package.json │ ├── scripts │ │ ├── gendtsdev.ts │ │ └── patchdts.ts │ ├── src │ │ ├── emotionAugmentation.d.ts │ │ ├── index.ts │ │ ├── theme.ts │ │ └── web-theme.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── react-native-ui-common │ ├── package.json │ ├── src │ │ ├── Button.stories.tsx │ │ ├── Button.tsx │ │ ├── IconButton.tsx │ │ ├── LayoutProvider.tsx │ │ ├── StorageProvider.tsx │ │ ├── assets │ │ │ └── react-native-logo.png │ │ ├── constants.ts │ │ ├── hooks │ │ │ ├── index.ts │ │ │ ├── useExpanded.ts │ │ │ ├── useLastViewed.ts │ │ │ └── useStoreState.ts │ │ ├── index.tsx │ │ ├── types.ts │ │ └── util │ │ │ ├── StoryHash.ts │ │ │ ├── index.ts │ │ │ ├── tree.ts │ │ │ └── useStyle.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── react-native-ui-lite │ ├── package.json │ ├── src │ │ ├── Explorer.stories.tsx │ │ ├── Explorer.tsx │ │ ├── Layout.stories.tsx │ │ ├── Layout.tsx │ │ ├── MobileAddonsPanel.tsx │ │ ├── MobileMenuDrawer.tsx │ │ ├── Refs.tsx │ │ ├── Search.tsx │ │ ├── SearchResults.stories.tsx │ │ ├── SearchResults.tsx │ │ ├── SelectedNodeProvider.tsx │ │ ├── Sidebar.stories.tsx │ │ ├── Sidebar.tsx │ │ ├── StorybookLogo.stories.tsx │ │ ├── StorybookLogo.tsx │ │ ├── Tree.stories.tsx │ │ ├── Tree.tsx │ │ ├── TreeNode.stories.tsx │ │ ├── TreeNode.tsx │ │ ├── assets │ │ │ └── react-native-logo.png │ │ ├── constants.ts │ │ ├── icon │ │ │ └── iconDataUris.tsx │ │ ├── index.tsx │ │ ├── mockdata.large.ts │ │ └── mockdata.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── react-native-ui │ ├── iconsToPng.ts │ ├── package.json │ ├── src │ │ ├── Explorer.stories.tsx │ │ ├── Explorer.tsx │ │ ├── Layout.stories.tsx │ │ ├── Layout.tsx │ │ ├── MobileAddonsPanel.tsx │ │ ├── MobileMenuDrawer.tsx │ │ ├── Refs.tsx │ │ ├── Search.tsx │ │ ├── SearchResults.stories.tsx │ │ ├── SearchResults.tsx │ │ ├── SelectedNodeProvider.tsx │ │ ├── Sidebar.stories.tsx │ │ ├── Sidebar.tsx │ │ ├── StorybookLogo.stories.tsx │ │ ├── StorybookLogo.tsx │ │ ├── Tree.stories.tsx │ │ ├── Tree.tsx │ │ ├── TreeNode.stories.tsx │ │ ├── TreeNode.tsx │ │ ├── assets │ │ │ └── react-native-logo.png │ │ ├── constants.ts │ │ ├── icon │ │ │ ├── BottomBarToggleIcon.tsx │ │ │ ├── CloseFullscreenIcon.tsx │ │ │ ├── CloseIcon.tsx │ │ │ ├── CollapseAllIcon.tsx │ │ │ ├── CollapseIcon.tsx │ │ │ ├── ComponentIcon.tsx │ │ │ ├── DarkLogo.tsx │ │ │ ├── ExpandAllIcon.tsx │ │ │ ├── FaceHappyIcon.tsx │ │ │ ├── FullscreenIcon.tsx │ │ │ ├── GroupIcon.tsx │ │ │ ├── Logo.tsx │ │ │ ├── MenuIcon.tsx │ │ │ ├── SearchIcon.tsx │ │ │ └── StoryIcon.tsx │ │ ├── index.tsx │ │ ├── mockdata.large.ts │ │ └── mockdata.ts │ ├── tsconfig.json │ └── tsup.config.ts └── react-native │ ├── babel.config.js │ ├── bin │ └── get-stories.js │ ├── buildscripts │ └── gendtsdev.ts │ ├── jest.config.js │ ├── metro │ └── withStorybook.js │ ├── package.json │ ├── preset.js │ ├── preview.js │ ├── readme.md │ ├── scripts │ ├── __snapshots__ │ │ └── generate.test.js.snap │ ├── common.js │ ├── generate.js │ ├── generate.test.js │ ├── get-stories.js │ ├── handle-args.js │ └── mocks │ │ ├── all-config-files │ │ ├── FakeComponent.tsx │ │ ├── FakeStory.stories.tsx │ │ ├── main.js │ │ └── preview.js │ │ ├── blank-config │ │ └── main.js │ │ ├── configuration-objects │ │ ├── components │ │ │ ├── FakeComponent.tsx │ │ │ └── FakeStory.stories.tsx │ │ ├── main.js │ │ └── preview.js │ │ ├── exclude-config-files │ │ ├── exclude-components │ │ │ ├── FakeComponent.tsx │ │ │ └── FakeStory.stories.tsx │ │ ├── include-components │ │ │ ├── FakeComponent.tsx │ │ │ └── FakeStory.stories.tsx │ │ ├── main.js │ │ └── preview.js │ │ ├── file-extensions │ │ ├── FakeComponent.tsx │ │ ├── FakeStory.stories.tsx │ │ ├── main.ts │ │ └── preview.tsx │ │ ├── no-preview │ │ ├── FakeComponent.tsx │ │ ├── FakeStory.stories.tsx │ │ └── main.js │ │ ├── preview-files │ │ ├── js │ │ │ └── preview.js │ │ ├── jsx │ │ │ └── preview.jsx │ │ ├── ts │ │ │ └── preview.ts │ │ └── tsx │ │ │ └── preview.tsx │ │ └── wrong-extension-preview │ │ ├── FakeComponent.tsx │ │ ├── FakeStory.stories.tsx │ │ ├── main.js │ │ └── preview.txt │ ├── src │ ├── Start.test.ts │ ├── Start.tsx │ ├── View.tsx │ ├── components │ │ └── StoryView │ │ │ ├── ErrorBoundary.tsx │ │ │ ├── StoryView.tsx │ │ │ └── index.tsx │ ├── hooks.tsx │ ├── index.ts │ ├── metro │ │ └── withStorybook.ts │ ├── preview.ts │ ├── rn-host-detect.js │ └── types │ │ └── index.ts │ ├── template │ └── cli │ │ ├── index.ts │ │ ├── main.ts │ │ ├── preview.tsx │ │ ├── stories │ │ ├── Button.stories.tsx │ │ ├── Button.tsx │ │ ├── Header.stories.tsx │ │ ├── Header.tsx │ │ ├── Page.stories.tsx │ │ └── Page.tsx │ │ └── storybook.requires.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── tsconfig.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | 6 | [*.{js,json,ts,vue,html}] 7 | indent_style = space 8 | indent_size = 2 9 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | .yarn/releases/yarn-*.js linguist-generated=true 2 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @dannyhw 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: storybook 2 | github: dannyhw 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | --- 5 | 6 | **Describe the bug** 7 | A clear and concise description of what the bug is. 8 | 9 | **To Reproduce** 10 | Steps to reproduce the behavior: 11 | 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Code snippets** 24 | If applicable, add code samples to help explain your problem. 25 | 26 | **System:** 27 | Please paste the results of `npx -p @storybook/cli@next sb info` here. 28 | 29 | **Additional context** 30 | Add any other context about the problem here. 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | --- 5 | 6 | **Is your feature request related to a problem? Please describe.** 7 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 8 | 9 | **Describe the solution you'd like** 10 | A clear and concise description of what you want to happen. 11 | 12 | **Describe alternatives you've considered** 13 | A clear and concise description of any alternative solutions or features you've considered. 14 | 15 | **Are you able to assist bring the feature to reality?** 16 | no | yes, I can... 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Issue: 2 | 3 | ## What I did 4 | 5 | ## How to test 6 | 7 | Please explain how to test your changes and consider the following questions 8 | 9 | - Does this need a new example in examples/expo-example? 10 | - Does this need an update to the documentation? 11 | 12 | If your answer is yes to any of these, please make sure to include it in your PR. 13 | 14 | 22 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 21 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 30 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - todo 8 | - ready 9 | - 'in progress' 10 | - 'do not merge' 11 | - 'needs review' 12 | - 'high priority' 13 | - 'good first issue' 14 | - dependencies:update 15 | 16 | # Label to use when marking an issue as stale 17 | staleLabel: inactive 18 | # Comment to post when marking an issue as stale. Set to `false` to disable 19 | markComment: > 20 | Hi everyone! Seems like there hasn't been much going on in this issue lately. 21 | If there are still questions, comments, or bugs, please feel free to continue 22 | the discussion. Unfortunately, we don't have time to get to every issue. We 23 | are always open to contributions so please send us a pull request if you would 24 | like to help. Inactive issues will be closed after 30 days. Thanks! 25 | # Comment to post when closing a stale issue. Set to `false` to disable 26 | closeComment: > 27 | Hey there, it's me again! I am going close this issue to help our maintainers 28 | focus on the current development roadmap instead. If the issue mentioned is 29 | still a concern, please open a new ticket and mention this old one. Cheers 30 | and thanks for using Storybook! 31 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | name: Deploy to GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: [next] 6 | # Allows you to run this workflow manually from the Actions tab on GitHub. 7 | workflow_dispatch: 8 | 9 | # Allow this job to clone the repo and create a page deployment 10 | permissions: 11 | contents: read 12 | pages: write 13 | id-token: write 14 | 15 | jobs: 16 | build: 17 | runs-on: ubuntu-latest 18 | steps: 19 | - name: Checkout your repository using git 20 | uses: actions/checkout@v4 21 | 22 | - name: Set node version 23 | uses: actions/setup-node@v4 24 | with: 25 | node-version: 20 26 | 27 | - name: Install 28 | shell: 'bash' 29 | run: yarn install 30 | 31 | - name: Build 32 | shell: 'bash' 33 | working-directory: docs 34 | run: yarn build 35 | 36 | - name: Upload Pages Artifact 37 | uses: actions/upload-pages-artifact@v3 38 | with: 39 | path: 'docs/build/' 40 | 41 | deploy: 42 | needs: build 43 | runs-on: ubuntu-latest 44 | environment: 45 | name: github-pages 46 | url: ${{ steps.deployment.outputs.page_url }} 47 | steps: 48 | - name: Deploy to GitHub Pages 49 | id: deployment 50 | uses: actions/deploy-pages@v4 51 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Checks 2 | 3 | on: 4 | push: 5 | branches: 6 | - next 7 | pull_request: 8 | types: [opened, synchronize, reopened] 9 | 10 | jobs: 11 | build: 12 | name: Check everything! 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v4 16 | - name: Set node version 17 | uses: actions/setup-node@v4 18 | with: 19 | node-version: 20 20 | - name: install and compile 21 | run: yarn 22 | - name: build 23 | run: yarn build 24 | - name: lint 25 | run: yarn lint 26 | - name: format check 27 | run: yarn format:check 28 | - name: test 29 | run: yarn test 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log 3 | .idea 4 | *.iml 5 | *.sw* 6 | npm-shrinkwrap.json 7 | dist 8 | .tern-port 9 | *.DS_Store 10 | .cache 11 | junit.xml 12 | coverage/ 13 | *.lerna_backup 14 | build 15 | /**/LICENSE 16 | docs/public 17 | packs/*.tgz 18 | package-lock.json 19 | .nvmrc 20 | storybook-static 21 | integration/__image_snapshots__/__diff_output__ 22 | .jest-test-results.json 23 | lib/*.jar 24 | lib/**/dll 25 | .expo/packager-info.json 26 | scripts/storage 27 | htpasswd 28 | /false 29 | storybook-out 30 | /addons/docs/common/config-* 31 | built-storybooks 32 | .yarn/* 33 | !.yarn/patches 34 | !.yarn/plugins 35 | !.yarn/releases 36 | !.yarn/sdks 37 | !.yarn/versions 38 | .eslintcache 39 | examples/expo-example/.maestro/diffs 40 | examples/expo-example/.maestro/screenshots 41 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .yarn 2 | dist/ 3 | examples/expo-example/.expo 4 | examples/expo-example/.rnstorybook/storybook.requires.ts 5 | docs/.docusaurus 6 | docs/build 7 | .claude/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "tabWidth": 2, 4 | "bracketSpacing": true, 5 | "trailingComma": "es5", 6 | "singleQuote": true 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | compressionLevel: mixed 2 | 3 | enableGlobalCache: false 4 | 5 | nodeLinker: node-modules 6 | 7 | yarnPath: .yarn/releases/yarn-4.1.0.cjs 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Kadira Inc. 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. 22 | -------------------------------------------------------------------------------- /ROADMAP.md: -------------------------------------------------------------------------------- 1 | # Roadmap 2 | 3 | TBD 4 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | /node_modules 3 | 4 | # Production 5 | /build 6 | 7 | # Generated files 8 | .docusaurus 9 | .cache-loader 10 | 11 | # Misc 12 | .DS_Store 13 | .env.local 14 | .env.development.local 15 | .env.test.local 16 | .env.production.local 17 | 18 | npm-debug.log* 19 | yarn-debug.log* 20 | yarn-error.log* 21 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Website 2 | 3 | This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator. 4 | 5 | ### Installation 6 | 7 | ``` 8 | $ yarn 9 | ``` 10 | 11 | ### Local Development 12 | 13 | ``` 14 | $ yarn start 15 | ``` 16 | 17 | This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. 18 | 19 | ### Build 20 | 21 | ``` 22 | $ yarn build 23 | ``` 24 | 25 | This command generates static content into the `build` directory and can be served using any static contents hosting service. 26 | 27 | ### Deployment 28 | 29 | Using SSH: 30 | 31 | ``` 32 | $ USE_SSH=true yarn deploy 33 | ``` 34 | 35 | Not using SSH: 36 | 37 | ``` 38 | $ GIT_USER= yarn deploy 39 | ``` 40 | 41 | If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. 42 | -------------------------------------------------------------------------------- /docs/blog/2025-03-23-first-blog-post.md: -------------------------------------------------------------------------------- 1 | --- 2 | slug: hello-world 3 | title: Hello World 4 | authors: [dannyhw] 5 | tags: [] 6 | --- 7 | 8 | React Native Storybook docs are here. Over the next few weeks and months we'll be building out the documentation. 9 | 10 | 11 | 12 | As part of an effort to make React Native Storybook easier to use we've started working on dedicated documentation that will explain the nuances of running Storybook on React Native. 13 | 14 | If you have something you want to be documented help us build out the docs by submitting a pull request. 15 | -------------------------------------------------------------------------------- /docs/blog/authors.yml: -------------------------------------------------------------------------------- 1 | dannyhw: 2 | name: Danny Williams 3 | title: Senior Software Engineer 4 | url: https://github.com/dannyhw 5 | image_url: https://github.com/dannyhw.png 6 | page: true 7 | socials: 8 | x: Danny_H_W 9 | github: dannyhw 10 | -------------------------------------------------------------------------------- /docs/blog/tags.yml: -------------------------------------------------------------------------------- 1 | releases: 2 | label: Releases 3 | permalink: /releases 4 | description: Release posts 5 | 6 | guides: 7 | label: Guides 8 | permalink: /guides 9 | description: Guide posts 10 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "docs", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "docusaurus": "docusaurus", 7 | "start": "docusaurus start", 8 | "build": "docusaurus build", 9 | "swizzle": "docusaurus swizzle", 10 | "deploy": "docusaurus deploy", 11 | "clear": "docusaurus clear", 12 | "serve": "docusaurus serve", 13 | "write-translations": "docusaurus write-translations", 14 | "write-heading-ids": "docusaurus write-heading-ids", 15 | "typecheck": "tsc", 16 | "lint": "eslint . --ext .js,.jsx,.ts,.tsx" 17 | }, 18 | "dependencies": { 19 | "@docusaurus/core": "3.8.0", 20 | "@docusaurus/faster": "3.8.0", 21 | "@docusaurus/preset-classic": "3.8.0", 22 | "@mdx-js/react": "^3.0.0", 23 | "clsx": "^2.0.0", 24 | "prism-react-renderer": "^2.3.0", 25 | "react": "19.0.0", 26 | "react-dom": "19.0.0" 27 | }, 28 | "devDependencies": { 29 | "@docusaurus/module-type-aliases": "3.8.0", 30 | "@docusaurus/tsconfig": "3.8.0", 31 | "@docusaurus/types": "3.8.0", 32 | "typescript": "~5.8.3" 33 | }, 34 | "browserslist": { 35 | "production": [ 36 | ">0.5%", 37 | "not dead", 38 | "not op_mini all" 39 | ], 40 | "development": [ 41 | "last 3 chrome version", 42 | "last 3 firefox version", 43 | "last 5 safari version" 44 | ] 45 | }, 46 | "engines": { 47 | "node": ">=18.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /docs/sidebars.ts: -------------------------------------------------------------------------------- 1 | import type { SidebarsConfig } from '@docusaurus/plugin-content-docs'; 2 | 3 | // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) 4 | 5 | /** 6 | * Creating a sidebar enables you to: 7 | - create an ordered group of docs 8 | - render a sidebar for each doc of that group 9 | - provide next/previous navigation 10 | 11 | The sidebars can be generated from the filesystem, or explicitly defined here. 12 | 13 | Create as many sidebars as you want. 14 | */ 15 | const sidebars: SidebarsConfig = { 16 | // By default, Docusaurus generates a sidebar from the docs folder structure 17 | tutorialSidebar: [{ type: 'autogenerated', dirName: '.' }], 18 | 19 | // But you can create a sidebar manually 20 | /* 21 | tutorialSidebar: [ 22 | 'intro', 23 | 'hello', 24 | { 25 | type: 'category', 26 | label: 'Tutorial', 27 | items: ['tutorial-basics/create-a-document'], 28 | }, 29 | ], 30 | */ 31 | }; 32 | 33 | export default sidebars; 34 | -------------------------------------------------------------------------------- /docs/src/components/HomepageFeatures/styles.module.css: -------------------------------------------------------------------------------- 1 | .features { 2 | display: flex; 3 | align-items: center; 4 | padding: 5rem 0; 5 | width: 100%; 6 | } 7 | 8 | .featureSvg { 9 | height: 200px; 10 | width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /docs/src/css/custom.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Any CSS included here will be global. The classic template 3 | * bundles Infima by default. Infima is a CSS framework designed to 4 | * work well for content-centric websites. 5 | */ 6 | 7 | /* You can override the default Infima variables here. */ 8 | :root { 9 | --ifm-color-primary: #029cfd; 10 | --ifm-color-primary-dark: #0288e4; 11 | --ifm-color-primary-darker: #0280d7; 12 | --ifm-color-primary-darkest: #026ab1; 13 | --ifm-color-primary-light: #1ba6fd; 14 | --ifm-color-primary-lighter: #28acfd; 15 | --ifm-color-primary-lightest: #4fb8fd; 16 | --ifm-code-font-size: 95%; 17 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); 18 | } 19 | 20 | /* For readability concerns, you should choose a lighter palette in dark mode. */ 21 | [data-theme='dark'] { 22 | --ifm-color-primary: #029cfd; 23 | --ifm-color-primary-dark: #0288e4; 24 | --ifm-color-primary-darker: #0280d7; 25 | --ifm-color-primary-darkest: #026ab1; 26 | --ifm-color-primary-light: #1ba6fd; 27 | --ifm-color-primary-lighter: #28acfd; 28 | --ifm-color-primary-lightest: #4fb8fd; 29 | --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); 30 | } 31 | -------------------------------------------------------------------------------- /docs/src/pages/index.module.css: -------------------------------------------------------------------------------- 1 | /** 2 | * CSS files with the .module.css suffix will be treated as CSS modules 3 | * and scoped locally. 4 | */ 5 | 6 | .heroBanner { 7 | padding: 4rem 0; 8 | text-align: center; 9 | position: relative; 10 | overflow: hidden; 11 | } 12 | 13 | @media screen and (max-width: 996px) { 14 | .heroBanner { 15 | padding: 2rem; 16 | } 17 | } 18 | 19 | .buttons { 20 | display: flex; 21 | align-items: center; 22 | justify-content: center; 23 | } 24 | -------------------------------------------------------------------------------- /docs/src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | import type { ReactNode } from 'react'; 2 | import clsx from 'clsx'; 3 | import Link from '@docusaurus/Link'; 4 | import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; 5 | import Layout from '@theme/Layout'; 6 | import HomepageFeatures from '@site/src/components/HomepageFeatures'; 7 | import Heading from '@theme/Heading'; 8 | 9 | import styles from './index.module.css'; 10 | 11 | function HomepageHeader() { 12 | const { siteConfig } = useDocusaurusContext(); 13 | return ( 14 |
15 |
16 | 17 | {siteConfig.title} 18 | 19 |

{siteConfig.tagline}

20 |
21 | 22 | Get started 23 | 24 |
25 |
26 |
27 | ); 28 | } 29 | 30 | export default function Home(): ReactNode { 31 | const { siteConfig } = useDocusaurusContext(); 32 | return ( 33 | 37 | 38 |
39 | 40 |
41 |
42 | ); 43 | } 44 | -------------------------------------------------------------------------------- /docs/static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/docs/static/.nojekyll -------------------------------------------------------------------------------- /docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/docs/static/img/favicon.ico -------------------------------------------------------------------------------- /docs/static/img/social-card.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/docs/static/img/social-card.jpg -------------------------------------------------------------------------------- /docs/static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: -------------------------------------------------------------------------------- /docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // This file is not used in compilation. It is here just for a nice editor experience. 3 | "extends": "@docusaurus/tsconfig", 4 | "compilerOptions": { 5 | "baseUrl": "." 6 | }, 7 | "exclude": [".docusaurus", "build"] 8 | } 9 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('eslint/config'); 2 | const expoConfig = require('eslint-config-expo/flat'); 3 | const globals = require('globals'); 4 | const reactCompiler = require('eslint-plugin-react-compiler'); 5 | const pluginDocusaurus = require('@docusaurus/eslint-plugin'); 6 | 7 | module.exports = defineConfig([ 8 | { 9 | ignores: [ 10 | '.yarn/**', 11 | '**/dist/**', 12 | 'packages/react-native/template/**/*', 13 | 'packages/react-native/src/rn-host-detect.js', 14 | '**/storybook.requires.ts', 15 | 'examples/expo-example/.expo/**/*', 16 | 'docs/build/**/*', 17 | ], 18 | }, 19 | ...expoConfig.map((config) => ({ 20 | ...config, 21 | ignores: [...(config.ignores || []), 'docs/**/*'], 22 | })), 23 | reactCompiler.configs.recommended, 24 | { 25 | files: ['**/*.spec.js', '**/*.spec.jsx', '**/*.test.js', '**/*.test.jsx'], 26 | languageOptions: { 27 | globals: { ...globals.jest, ...globals.node }, 28 | }, 29 | }, 30 | { 31 | rules: { 32 | '@typescript-eslint/no-require-imports': 'off', 33 | '@typescript-eslint/array-type': 'off', 34 | }, 35 | }, 36 | { 37 | files: ['docs/**/*.ts', 'docs/**/*.tsx'], 38 | plugins: { 39 | '@docusaurus': pluginDocusaurus, 40 | }, 41 | rules: pluginDocusaurus.configs.recommended.rules, 42 | }, 43 | ]); 44 | -------------------------------------------------------------------------------- /examples/expo-example/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | *.hprof 33 | 34 | # node.js 35 | # 36 | node_modules/ 37 | npm-debug.log 38 | yarn-error.log 39 | 40 | # BUCK 41 | buck-out/ 42 | \.buckd/ 43 | *.keystore 44 | 45 | # fastlane 46 | # 47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 48 | # screenshots whenever they are needed. 49 | # For more information about the recommended setup visit: 50 | # https://docs.fastlane.tools/best-practices/source-control/ 51 | 52 | */fastlane/report.xml 53 | */fastlane/Preview.html 54 | */fastlane/screenshots 55 | 56 | # Bundle artifacts 57 | *.jsbundle 58 | 59 | # CocoaPods 60 | /ios/Pods/ 61 | 62 | # Expo 63 | .expo/* 64 | web-build/ 65 | -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ActionExample-Actions---Another-Action.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ActionExample-Actions---Another-Action.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ActionExample-Actions---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ActionExample-Actions---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/BackgroundExample-BackgroundCsf---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/BackgroundExample-BackgroundCsf---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Array---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Array---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Boolean---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Boolean---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Boolean---On.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Boolean---On.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Color---Color-Example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Color---Color-Example.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-ControlExample---Example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-ControlExample---Example.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Date---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Date---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Number---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Number---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Number---Range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Number---Range.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Object---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Object---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Radio---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Radio---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Reproductions-SelectWithNumber---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Reproductions-SelectWithNumber---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Select---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Select---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Select---With-Labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Select---With-Labels.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Select---With-Mapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Select---With-Mapping.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-Text---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-Text---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-WebCompatibility---Defined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-WebCompatibility---Defined.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/ControlExamples-WebCompatibility---Undefined.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/ControlExamples-WebCompatibility---Undefined.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/DeepControls---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/DeepControls---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/InputExample-TextInput---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/InputExample-TextInput---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/InteractionExample---Scrolling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/InteractionExample---Scrolling.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/InteractionExample---Static.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/InteractionExample---Static.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/InteractionExample---Touchable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/InteractionExample---Touchable.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-ChatMessage---Message-First.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-ChatMessage---Message-First.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-ChatMessage---Message-Second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-ChatMessage---Message-Second.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-Message-Reactions---Message-One.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-Message-Reactions---Message-One.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-Message-Reactions---Message-Two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-Message-Reactions---Message-Two.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-Message-bubble---First.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-Message-bubble---First.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-Message-bubble---Second-Story.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-Message-bubble---Second-Story.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-Message-bubble-a-very-long-name-for-a-title-that-just-keeps-going-and-going---First.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-Message-bubble-a-very-long-name-for-a-title-that-just-keeps-going-and-going---First.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-Message-bubble-a-very-long-name-for-a-title-that-just-keeps-going-and-going---Second-Story.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-Message-bubble-a-very-long-name-for-a-title-that-just-keeps-going-and-going---Second-Story.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NestingExample-MessageInput---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NestingExample-MessageInput---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/NotesExample---Notes-Example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/NotesExample---Notes-Example.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaInside---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaInside---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaInside---List-Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaInside---List-Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaOutside---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaOutside---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaOutside---List-Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/SafeAreaExample-SafeAreaOutside---List-Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/SafeAreaExample-UsableArea---No-Safe-Area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/SafeAreaExample-UsableArea---No-Safe-Area.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/SafeAreaExample-UsableArea---Safe-Area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/SafeAreaExample-UsableArea---Safe-Area.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/TestCase---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/TestCase---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/TestCase2---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/TestCase2---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Active.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Animated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Animated.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Base.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Disabled.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Icon-Only.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Icon-Only.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Sizes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Sizes.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Variants.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---Variants.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---With-Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Button---With-Icon.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-SearchResults---Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-SearchResults---Default.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Explorer---Simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Explorer---Simple.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Bottom.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Empty.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Index-Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Index-Error.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Loading-With-Ref-Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Loading-With-Ref-Error.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Loading-With-Refs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Loading-With-Refs.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Loading.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Scrolled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Scrolled.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Searching.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Searching.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Simple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Simple.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Statuses-Collapsed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Statuses-Collapsed.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Statuses-Open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---Statuses-Open.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---With-Ref-Empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---With-Ref-Empty.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---With-Refs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Sidebar---With-Refs.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Dark.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Full.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Single-Story-Components.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Single-Story-Components.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Story-with-a-storyName.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-Tree---Story-with-a-storyName.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Expandable-Long-Name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Expandable-Long-Name.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Expandable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Expandable.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Nested.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Nested.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Selection-With-Long-Name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Selection-With-Long-Name.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Selection.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-Sidebar-TreeNode---Types.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Element-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Element-Logo.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Logo.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Source-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Source-Logo.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Url-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Image-Url-Logo.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Title-Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-UI-StorybookLogo---Title-Logo.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-src-Layout---Basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-src-Layout---Basic.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-src-Layout---Overflow-Addons-Example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-src-Layout---Overflow-Addons-Example.png -------------------------------------------------------------------------------- /examples/expo-example/.maestro/baseline/react-native-ui-src-Layout---Overflow-Sidebar-Example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/.maestro/baseline/react-native-ui-src-Layout---Overflow-Sidebar-Example.png -------------------------------------------------------------------------------- /examples/expo-example/.rnstorybook/index.tsx: -------------------------------------------------------------------------------- 1 | import AsyncStorage from '@react-native-async-storage/async-storage'; 2 | import { theme, ThemeProvider } from '@storybook/react-native-theming'; 3 | // import { LiteUI } from '@storybook/react-native-ui-lite'; 4 | import { SafeAreaView, StatusBar } from 'react-native'; 5 | import { SafeAreaProvider } from 'react-native-safe-area-context'; 6 | import { view } from './storybook.requires'; 7 | 8 | const isScreenshotTesting = process.env.EXPO_PUBLIC_SCREENSHOT_TESTING === 'true'; 9 | 10 | const StorybookUIRoot = view.getStorybookUI({ 11 | shouldPersistSelection: true, 12 | storage: { 13 | getItem: AsyncStorage.getItem, 14 | setItem: AsyncStorage.setItem, 15 | }, 16 | enableWebsockets: true, 17 | // onDeviceUI: !isScreenshotTesting, 18 | host: 'localhost', 19 | port: 7007, 20 | // host: '192.x.x.x', 21 | // port: 7007, 22 | 23 | // initialSelection: { kind: 'TextInput', name: 'Basic' }, 24 | // onDeviceUI: true, 25 | // host: '192.168.1.69', 26 | /* theme: { 27 | brand: { 28 | image: { 29 | uri: 'https://upload.wikimedia.org/wikipedia/commons/thumb/a/a7/React-icon.svg/512px-React-icon.svg.png', 30 | width: 25, 31 | height: 25, 32 | } , 33 | }, 34 | }, */ 35 | 36 | onDeviceUI: true, 37 | // CustomUIComponent: LiteUI, 38 | }); 39 | 40 | const StorybookUI = () => { 41 | if (isScreenshotTesting) { 42 | return ( 43 | 44 | 51 | ); 52 | } 53 | 54 | return ; 55 | }; 56 | 57 | export default StorybookUI; 58 | -------------------------------------------------------------------------------- /examples/expo-example/.rnstorybook/local-addon-example/preview.js: -------------------------------------------------------------------------------- 1 | console.log('preview-local-addon'); 2 | -------------------------------------------------------------------------------- /examples/expo-example/.rnstorybook/local-addon-example/register.js: -------------------------------------------------------------------------------- 1 | console.log('register-local-addon'); 2 | -------------------------------------------------------------------------------- /examples/expo-example/.rnstorybook/main.ts: -------------------------------------------------------------------------------- 1 | import { StorybookConfig } from '@storybook/react-native'; 2 | 3 | const main: StorybookConfig = { 4 | stories: [ 5 | '../components/**/*.stories.?(ts|tsx|js|jsx)', 6 | '../other_components/**/*.stories.?(ts|tsx|js|jsx)', 7 | { 8 | directory: '../../../packages/react-native-ui', 9 | titlePrefix: 'react-native-ui', 10 | files: '**/*.stories.?(ts|tsx|js|jsx)', 11 | }, 12 | ], 13 | addons: [ 14 | { name: '@storybook/addon-ondevice-controls' }, 15 | '@storybook/addon-ondevice-backgrounds', 16 | '@storybook/addon-ondevice-actions', 17 | '@storybook/addon-ondevice-notes', 18 | 'storybook-addon-deep-controls', 19 | './local-addon-example', 20 | ], 21 | reactNative: { 22 | playFn: false, 23 | }, 24 | 25 | framework: '@storybook/react-native', 26 | }; 27 | 28 | export default main; 29 | -------------------------------------------------------------------------------- /examples/expo-example/.rnstorybook/preview.tsx: -------------------------------------------------------------------------------- 1 | import { View, Appearance } from 'react-native'; 2 | import { withBackgrounds } from '@storybook/addon-ondevice-backgrounds'; 3 | import type { Preview } from '@storybook/react'; 4 | 5 | const preview: Preview = { 6 | decorators: [ 7 | (Story) => ( 8 | 9 | 10 | 11 | ), 12 | withBackgrounds, 13 | ], 14 | parameters: { 15 | actions: { argTypesRegex: '^on[A-Z].*' }, 16 | controls: { 17 | matchers: { 18 | color: /(background|color)$/i, 19 | date: /Date$/, 20 | }, 21 | }, 22 | options: { 23 | storySort: { 24 | method: 'alphabetical', 25 | includeNames: true, 26 | order: ['ControlExamples', ['ControlExample'], 'InteractionExample', 'DeepControls'], 27 | }, 28 | }, 29 | hideFullScreenButton: false, 30 | noSafeArea: false, 31 | my_param: 'anything', 32 | backgrounds: { 33 | default: Appearance.getColorScheme() === 'dark' ? 'dark' : 'plain', 34 | values: [ 35 | { name: 'plain', value: 'white' }, 36 | { name: 'dark', value: '#333' }, 37 | { name: 'app', value: '#eeeeee' }, 38 | ], 39 | }, 40 | }, 41 | }; 42 | 43 | export default preview; 44 | -------------------------------------------------------------------------------- /examples/expo-example/.storybook/main.ts: -------------------------------------------------------------------------------- 1 | import type { StorybookConfig } from '@storybook/react-native-web-vite'; 2 | 3 | type ServerStorybookConfig = StorybookConfig & { 4 | reactNativeServerOptions: { host: string; port: number }; 5 | }; 6 | 7 | const main: ServerStorybookConfig = { 8 | stories: ['../components/**/*.stories.?(ts|tsx|js|jsx)'], 9 | 10 | addons: ['@storybook/addon-react-native-server', 'storybook-addon-deep-controls'], 11 | 12 | framework: { 13 | name: '@storybook/react-native-web-vite', 14 | options: {}, 15 | }, 16 | 17 | // logLevel: 'debug', 18 | 19 | reactNativeServerOptions: { 20 | host: 'localhost', 21 | port: 7007, 22 | }, 23 | }; 24 | 25 | export default main; 26 | -------------------------------------------------------------------------------- /examples/expo-example/.storybook/preview.tsx: -------------------------------------------------------------------------------- 1 | /** @type { import('@storybook/react').Preview } */ 2 | const preview = { 3 | parameters: { 4 | // actions: { argTypesRegex: '^on[A-Z].*' }, 5 | controls: { 6 | matchers: { 7 | color: /(background|color)$/i, 8 | date: /Date$/i, 9 | }, 10 | }, 11 | }, 12 | }; 13 | 14 | export default preview; 15 | -------------------------------------------------------------------------------- /examples/expo-example/App.tsx: -------------------------------------------------------------------------------- 1 | // fixes fast refresh on web 2 | import '@expo/metro-runtime'; 3 | import { Text, View } from 'react-native'; 4 | 5 | function App() { 6 | return ( 7 | 15 | {"didn't get storybook enabled flag"} 16 | 17 | ); 18 | } 19 | 20 | let AppEntryPoint = App; 21 | 22 | if (process.env.EXPO_PUBLIC_STORYBOOK_ENABLED === 'true') { 23 | AppEntryPoint = require('./.rnstorybook').default; 24 | } 25 | 26 | export default AppEntryPoint; 27 | -------------------------------------------------------------------------------- /examples/expo-example/README.md: -------------------------------------------------------------------------------- 1 | Try this: 2 | `npx uri-scheme open "exp://127.0.0.1:8081/--/?STORYBOOK_STORY_ID=controlexamples-boolean--basic" --ios` 3 | or this: 4 | `npx uri-scheme open "exp://127.0.0.1:8081/--/?STORYBOOK_STORY_ID=controlexamples-controlexample--example" --ios` 5 | -------------------------------------------------------------------------------- /examples/expo-example/app.config.ts: -------------------------------------------------------------------------------- 1 | import type { ExpoConfig } from 'expo/config'; 2 | 3 | export default { 4 | name: 'Expo Example', 5 | slug: 'expo-example', 6 | web: { 7 | bundler: 'metro', 8 | }, 9 | experiments: { 10 | reactCompiler: false, 11 | }, 12 | userInterfaceStyle: 'automatic', 13 | newArchEnabled: true, 14 | } satisfies ExpoConfig; 15 | -------------------------------------------------------------------------------- /examples/expo-example/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/storybookjs/react-native/76546d25757814b465f4d6739bd2f814eb133dcd/examples/expo-example/assets/icon.png -------------------------------------------------------------------------------- /examples/expo-example/babel.config.js: -------------------------------------------------------------------------------- 1 | // const path = require('path'); 2 | 3 | module.exports = function (api) { 4 | api.cache(true); 5 | return { 6 | presets: [['babel-preset-expo']], 7 | plugins: [['babel-plugin-react-docgen-typescript', { exclude: 'node_modules' }]], 8 | }; 9 | }; 10 | -------------------------------------------------------------------------------- /examples/expo-example/components/ActionExample/Actions.stories.tsx: -------------------------------------------------------------------------------- 1 | import type { Meta, StoryObj } from '@storybook/react'; 2 | import { ActionButton } from './Actions'; 3 | import { fn } from 'storybook/test'; 4 | 5 | const meta = { 6 | component: ActionButton, 7 | parameters: { 8 | notes: ` 9 | # Button 10 | 11 | This is a button component. 12 | You use it like this: 13 | 14 | \`\`\`tsx 15 |