168675f3eSEvan Baconimport React, { ComponentType, forwardRef } from 'react';
268675f3eSEvan Baconimport { Platform } from 'react-native';
368675f3eSEvan Bacon
468675f3eSEvan Baconimport View, { ViewProps } from '../primitives/View';
568675f3eSEvan Bacon
668675f3eSEvan Baconfunction createView(nativeProps: ViewProps = {}): ComponentType<ViewProps> {
768675f3eSEvan Bacon  return forwardRef((props: ViewProps, ref) => {
868675f3eSEvan Bacon    return <View {...nativeProps} {...props} ref={ref} />;
968675f3eSEvan Bacon  }) as ComponentType<ViewProps>;
1068675f3eSEvan Bacon}
1168675f3eSEvan Bacon
12*f4a8f663SEvan Baconexport const Div = createView();
13*f4a8f663SEvan Bacon
1468675f3eSEvan Baconexport const Nav = createView(
1568675f3eSEvan Bacon  Platform.select({
1668675f3eSEvan Bacon    web: {
1768675f3eSEvan Bacon      accessibilityRole: 'navigation',
1868675f3eSEvan Bacon    },
1968675f3eSEvan Bacon  })
2068675f3eSEvan Bacon);
2168675f3eSEvan Baconexport const Footer = createView(
2268675f3eSEvan Bacon  Platform.select({
2368675f3eSEvan Bacon    web: {
2468675f3eSEvan Bacon      accessibilityRole: 'contentinfo',
2568675f3eSEvan Bacon    },
2668675f3eSEvan Bacon  })
2768675f3eSEvan Bacon);
2868675f3eSEvan Baconexport const Aside = createView(
2968675f3eSEvan Bacon  Platform.select({
3068675f3eSEvan Bacon    web: {
3168675f3eSEvan Bacon      accessibilityRole: 'complementary',
3268675f3eSEvan Bacon    },
3368675f3eSEvan Bacon  })
3468675f3eSEvan Bacon);
3568675f3eSEvan Baconexport const Header = createView(
3668675f3eSEvan Bacon  Platform.select({
3768675f3eSEvan Bacon    web: {
3868675f3eSEvan Bacon      accessibilityRole: 'banner',
3968675f3eSEvan Bacon    },
4068675f3eSEvan Bacon    default: {
4168675f3eSEvan Bacon      accessibilityRole: 'header',
4268675f3eSEvan Bacon    },
4368675f3eSEvan Bacon  })
4468675f3eSEvan Bacon);
4568675f3eSEvan Baconexport const Main = createView(
4668675f3eSEvan Bacon  Platform.select({
4768675f3eSEvan Bacon    web: {
4868675f3eSEvan Bacon      accessibilityRole: 'main',
4968675f3eSEvan Bacon    },
5068675f3eSEvan Bacon  })
5168675f3eSEvan Bacon);
5268675f3eSEvan Baconexport const Article = createView(
5368675f3eSEvan Bacon  Platform.select({
5468675f3eSEvan Bacon    web: {
5568675f3eSEvan Bacon      accessibilityRole: 'article',
5668675f3eSEvan Bacon    },
5768675f3eSEvan Bacon  })
5868675f3eSEvan Bacon);
5968675f3eSEvan Baconexport const Section = createView({
6068675f3eSEvan Bacon  accessibilityRole: 'summary', // region?
6168675f3eSEvan Bacon});
62