@tamagui/demos 1.125.34 → 1.126.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/AccordionDemo.native.js.map +1 -1
- package/dist/cjs/AddThemeDemo.native.js.map +1 -1
- package/dist/cjs/AlertDialogDemo.native.js.map +1 -1
- package/dist/cjs/AnimationsDemo.native.js.map +1 -1
- package/dist/cjs/AnimationsEnterDemo.native.js.map +1 -1
- package/dist/cjs/AnimationsHoverDemo.native.js.map +1 -1
- package/dist/cjs/AnimationsPresenceDemo.native.js.map +1 -1
- package/dist/cjs/AnimationsTimingDemo.native.js.map +1 -1
- package/dist/cjs/AvatarDemo.native.js.map +1 -1
- package/dist/cjs/BuildAButtonDemo.native.js.map +1 -1
- package/dist/cjs/ButtonDemo.native.js.map +1 -1
- package/dist/cjs/CardDemo.cjs +1 -1
- package/dist/cjs/CardDemo.js +1 -1
- package/dist/cjs/CardDemo.js.map +1 -1
- package/dist/cjs/CardDemo.native.js +1 -1
- package/dist/cjs/CardDemo.native.js.map +3 -3
- package/dist/cjs/CheckboxDemo.native.js.map +1 -1
- package/dist/cjs/CheckboxHeadlessDemo.native.js.map +1 -1
- package/dist/cjs/CheckboxUnstyledDemo.native.js.map +1 -1
- package/dist/cjs/ColorsDemo.native.js.map +1 -1
- package/dist/cjs/DialogDemo.cjs +1 -1
- package/dist/cjs/DialogDemo.js +1 -1
- package/dist/cjs/DialogDemo.js.map +1 -1
- package/dist/cjs/DialogDemo.native.js +1 -1
- package/dist/cjs/DialogDemo.native.js.map +2 -2
- package/dist/cjs/FormsDemo.native.js.map +1 -1
- package/dist/cjs/Grid.native.js.map +1 -1
- package/dist/cjs/GroupDemo.native.js.map +1 -1
- package/dist/cjs/HeadingsDemo.native.js.map +1 -1
- package/dist/cjs/ImageDemo.native.js.map +1 -1
- package/dist/cjs/InputsDemo.cjs +1 -1
- package/dist/cjs/InputsDemo.js +1 -1
- package/dist/cjs/InputsDemo.js.map +1 -1
- package/dist/cjs/InputsDemo.native.js +1 -1
- package/dist/cjs/InputsDemo.native.js.map +3 -3
- package/dist/cjs/LabelDemo.cjs +5 -3
- package/dist/cjs/LabelDemo.js +2 -2
- package/dist/cjs/LabelDemo.js.map +1 -1
- package/dist/cjs/LabelDemo.native.js +5 -3
- package/dist/cjs/LabelDemo.native.js.map +3 -3
- package/dist/cjs/LinearGradientDemo.native.js.map +1 -1
- package/dist/cjs/ListItemDemo.cjs +1 -1
- package/dist/cjs/ListItemDemo.js +1 -1
- package/dist/cjs/ListItemDemo.js.map +1 -1
- package/dist/cjs/ListItemDemo.native.js +1 -1
- package/dist/cjs/ListItemDemo.native.js.map +3 -3
- package/dist/cjs/LucideIconsDemo.native.js.map +1 -1
- package/dist/cjs/NewInputsDemo.native.js.map +1 -1
- package/dist/cjs/PopoverDemo.cjs +1 -1
- package/dist/cjs/PopoverDemo.js +1 -1
- package/dist/cjs/PopoverDemo.js.map +1 -1
- package/dist/cjs/PopoverDemo.native.js +1 -1
- package/dist/cjs/PopoverDemo.native.js.map +2 -2
- package/dist/cjs/ProgressDemo.native.js.map +1 -1
- package/dist/cjs/RadioGroupDemo.native.js.map +1 -1
- package/dist/cjs/RadioGroupHeadlessDemo.native.js.map +1 -1
- package/dist/cjs/RadioGroupUnstyledDemo.native.js.map +1 -1
- package/dist/cjs/ReplaceThemeDemo.native.js.map +1 -1
- package/dist/cjs/ScrollViewDemo.native.js.map +1 -1
- package/dist/cjs/SelectDemo.cjs +6 -4
- package/dist/cjs/SelectDemo.js +6 -6
- package/dist/cjs/SelectDemo.js.map +1 -1
- package/dist/cjs/SelectDemo.native.js +6 -4
- package/dist/cjs/SelectDemo.native.js.map +3 -3
- package/dist/cjs/SeparatorDemo.cjs +3 -3
- package/dist/cjs/SeparatorDemo.js +3 -3
- package/dist/cjs/SeparatorDemo.js.map +1 -1
- package/dist/cjs/SeparatorDemo.native.js +3 -3
- package/dist/cjs/SeparatorDemo.native.js.map +3 -3
- package/dist/cjs/ShapesDemo.native.js.map +1 -1
- package/dist/cjs/SheetDemo.cjs +1 -1
- package/dist/cjs/SheetDemo.js +1 -1
- package/dist/cjs/SheetDemo.js.map +1 -1
- package/dist/cjs/SheetDemo.native.js +1 -1
- package/dist/cjs/SheetDemo.native.js.map +3 -3
- package/dist/cjs/SliderDemo.native.js.map +1 -1
- package/dist/cjs/SpinnerDemo.native.js.map +1 -1
- package/dist/cjs/StacksDemo.native.js.map +1 -1
- package/dist/cjs/SwitchDemo.native.js.map +1 -1
- package/dist/cjs/SwitchHeadlessDemo.native.js.map +1 -1
- package/dist/cjs/SwitchUnstyledDemo.native.js.map +1 -1
- package/dist/cjs/TabsAdvancedDemo.native.js.map +1 -1
- package/dist/cjs/TabsDemo.cjs +8 -2
- package/dist/cjs/TabsDemo.js +5 -4
- package/dist/cjs/TabsDemo.js.map +1 -1
- package/dist/cjs/TabsDemo.native.js +8 -2
- package/dist/cjs/TabsDemo.native.js.map +3 -3
- package/dist/cjs/TabsHeadlessDemo.cjs +126 -0
- package/dist/cjs/TabsHeadlessDemo.js +112 -0
- package/dist/cjs/TabsHeadlessDemo.js.map +6 -0
- package/dist/cjs/TabsHeadlessDemo.native.js +140 -0
- package/dist/cjs/TabsHeadlessDemo.native.js.map +6 -0
- package/dist/cjs/TextDemo.native.js.map +1 -1
- package/dist/cjs/ThemeBuilderDemo.native.js.map +1 -1
- package/dist/cjs/ThemeInverseDemo.native.js.map +1 -1
- package/dist/cjs/ToastDemo.native.js.map +1 -1
- package/dist/cjs/ToastDuplicateDemo.native.js.map +1 -1
- package/dist/cjs/ToggleGroupDemo.native.js.map +1 -1
- package/dist/cjs/TokensDemo.native.js.map +1 -1
- package/dist/cjs/TooltipDemo.cjs +1 -0
- package/dist/cjs/TooltipDemo.js +1 -0
- package/dist/cjs/TooltipDemo.js.map +1 -1
- package/dist/cjs/TooltipDemo.native.js +1 -0
- package/dist/cjs/TooltipDemo.native.js.map +3 -3
- package/dist/cjs/UpdateThemeDemo.native.js.map +1 -1
- package/dist/cjs/WebNativeImageDemo.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +3 -1
- package/dist/cjs/index.native.js.map +2 -2
- package/dist/cjs/tamagui.config.native.js.map +1 -1
- package/dist/cjs/useOnIntersecting.native.js.map +1 -1
- package/dist/esm/CardDemo.js +1 -1
- package/dist/esm/CardDemo.js.map +1 -1
- package/dist/esm/CardDemo.mjs +1 -1
- package/dist/esm/CardDemo.mjs.map +1 -1
- package/dist/esm/CardDemo.native.js +1 -1
- package/dist/esm/CardDemo.native.js.map +1 -1
- package/dist/esm/DialogDemo.js +1 -1
- package/dist/esm/DialogDemo.js.map +1 -1
- package/dist/esm/DialogDemo.mjs +1 -1
- package/dist/esm/DialogDemo.mjs.map +1 -1
- package/dist/esm/DialogDemo.native.js +1 -1
- package/dist/esm/InputsDemo.js +1 -1
- package/dist/esm/InputsDemo.js.map +1 -1
- package/dist/esm/InputsDemo.mjs +1 -1
- package/dist/esm/InputsDemo.mjs.map +1 -1
- package/dist/esm/InputsDemo.native.js +1 -1
- package/dist/esm/InputsDemo.native.js.map +1 -1
- package/dist/esm/LabelDemo.js +2 -2
- package/dist/esm/LabelDemo.js.map +1 -1
- package/dist/esm/LabelDemo.mjs +5 -3
- package/dist/esm/LabelDemo.mjs.map +1 -1
- package/dist/esm/LabelDemo.native.js +5 -3
- package/dist/esm/LabelDemo.native.js.map +1 -1
- package/dist/esm/ListItemDemo.js +1 -1
- package/dist/esm/ListItemDemo.js.map +1 -1
- package/dist/esm/ListItemDemo.mjs +1 -1
- package/dist/esm/ListItemDemo.mjs.map +1 -1
- package/dist/esm/ListItemDemo.native.js +1 -1
- package/dist/esm/ListItemDemo.native.js.map +1 -1
- package/dist/esm/PopoverDemo.js +1 -1
- package/dist/esm/PopoverDemo.js.map +1 -1
- package/dist/esm/PopoverDemo.mjs +1 -1
- package/dist/esm/PopoverDemo.mjs.map +1 -1
- package/dist/esm/PopoverDemo.native.js +1 -1
- package/dist/esm/SelectDemo.js +6 -6
- package/dist/esm/SelectDemo.js.map +1 -1
- package/dist/esm/SelectDemo.mjs +6 -4
- package/dist/esm/SelectDemo.mjs.map +1 -1
- package/dist/esm/SelectDemo.native.js +6 -4
- package/dist/esm/SelectDemo.native.js.map +1 -1
- package/dist/esm/SeparatorDemo.js +3 -3
- package/dist/esm/SeparatorDemo.js.map +1 -1
- package/dist/esm/SeparatorDemo.mjs +3 -3
- package/dist/esm/SeparatorDemo.mjs.map +1 -1
- package/dist/esm/SeparatorDemo.native.js +3 -3
- package/dist/esm/SeparatorDemo.native.js.map +1 -1
- package/dist/esm/SheetDemo.js +1 -1
- package/dist/esm/SheetDemo.js.map +1 -1
- package/dist/esm/SheetDemo.mjs +1 -1
- package/dist/esm/SheetDemo.mjs.map +1 -1
- package/dist/esm/SheetDemo.native.js +1 -1
- package/dist/esm/SheetDemo.native.js.map +1 -1
- package/dist/esm/TabsDemo.js +5 -4
- package/dist/esm/TabsDemo.js.map +1 -1
- package/dist/esm/TabsDemo.mjs +8 -2
- package/dist/esm/TabsDemo.mjs.map +1 -1
- package/dist/esm/TabsDemo.native.js +8 -2
- package/dist/esm/TabsDemo.native.js.map +1 -1
- package/dist/esm/TabsHeadlessDemo.js +108 -0
- package/dist/esm/TabsHeadlessDemo.js.map +6 -0
- package/dist/esm/TabsHeadlessDemo.mjs +101 -0
- package/dist/esm/TabsHeadlessDemo.mjs.map +1 -0
- package/dist/esm/TabsHeadlessDemo.native.js +110 -0
- package/dist/esm/TabsHeadlessDemo.native.js.map +1 -0
- package/dist/esm/TooltipDemo.js +1 -0
- package/dist/esm/TooltipDemo.js.map +1 -1
- package/dist/esm/TooltipDemo.mjs +1 -0
- package/dist/esm/TooltipDemo.mjs.map +1 -1
- package/dist/esm/TooltipDemo.native.js +1 -0
- package/dist/esm/TooltipDemo.native.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +1 -0
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +20 -20
- package/src/CardDemo.tsx +1 -1
- package/src/DialogDemo.tsx +1 -1
- package/src/InputsDemo.tsx +1 -1
- package/src/LabelDemo.tsx +2 -2
- package/src/ListItemDemo.tsx +1 -1
- package/src/PopoverDemo.tsx +1 -1
- package/src/SelectDemo.tsx +6 -6
- package/src/SeparatorDemo.tsx +3 -3
- package/src/SheetDemo.tsx +1 -1
- package/src/TabsDemo.tsx +11 -4
- package/src/TabsHeadlessDemo.tsx +122 -0
- package/src/TooltipDemo.tsx +1 -0
- package/src/index.tsx +1 -0
package/src/ListItemDemo.tsx
CHANGED
|
@@ -3,7 +3,7 @@ import { ListItem, Separator, XStack, YGroup } from 'tamagui'
|
|
|
3
3
|
|
|
4
4
|
export function ListItemDemo() {
|
|
5
5
|
return (
|
|
6
|
-
<XStack $
|
|
6
|
+
<XStack $maxMd={{ flexDirection: 'column' }} paddingHorizontal="$4" space>
|
|
7
7
|
<ListItemDemo1 />
|
|
8
8
|
<ListItemDemo2 />
|
|
9
9
|
</XStack>
|
package/src/PopoverDemo.tsx
CHANGED
|
@@ -57,7 +57,7 @@ export function Demo({
|
|
|
57
57
|
</Popover.Trigger>
|
|
58
58
|
|
|
59
59
|
{shouldAdapt && (
|
|
60
|
-
<Adapt when="
|
|
60
|
+
<Adapt when="maxMd" platform="touch">
|
|
61
61
|
<Popover.Sheet animation="medium" modal dismissOnSnapToBottom>
|
|
62
62
|
<Popover.Sheet.Frame padding="$4">
|
|
63
63
|
<Adapt.Contents />
|
package/src/SelectDemo.tsx
CHANGED
|
@@ -8,15 +8,15 @@ import { LinearGradient } from 'tamagui/linear-gradient'
|
|
|
8
8
|
export function SelectDemo() {
|
|
9
9
|
return (
|
|
10
10
|
<YStack gap="$4">
|
|
11
|
-
<XStack ai="center" gap="$4">
|
|
12
|
-
<Label htmlFor="select-demo-1"
|
|
11
|
+
<XStack w={'100%'} ai="center" gap="$4">
|
|
12
|
+
<Label htmlFor="select-demo-1" flex={1} miw={80}>
|
|
13
13
|
Custom
|
|
14
14
|
</Label>
|
|
15
15
|
<SelectDemoItem id="select-demo-1" />
|
|
16
16
|
</XStack>
|
|
17
17
|
|
|
18
|
-
<XStack ai="center" gap="$4">
|
|
19
|
-
<Label htmlFor="select-demo-2"
|
|
18
|
+
<XStack w={'100%'} ai="center" gap="$4">
|
|
19
|
+
<Label htmlFor="select-demo-2" flex={1} miw={80}>
|
|
20
20
|
Native
|
|
21
21
|
</Label>
|
|
22
22
|
<SelectDemoItem id="select-demo-2" native />
|
|
@@ -30,11 +30,11 @@ export function SelectDemoItem(props: SelectProps) {
|
|
|
30
30
|
|
|
31
31
|
return (
|
|
32
32
|
<Select value={val} onValueChange={setVal} disablePreventBodyScroll {...props}>
|
|
33
|
-
<Select.Trigger
|
|
33
|
+
<Select.Trigger maxWidth={220} iconAfter={ChevronDown}>
|
|
34
34
|
<Select.Value placeholder="Something" />
|
|
35
35
|
</Select.Trigger>
|
|
36
36
|
|
|
37
|
-
<Adapt when="
|
|
37
|
+
<Adapt when="maxMd" platform="touch">
|
|
38
38
|
<Sheet native={!!props.native} modal dismissOnSnapToBottom animation="medium">
|
|
39
39
|
<Sheet.Frame>
|
|
40
40
|
<Sheet.ScrollView>
|
package/src/SeparatorDemo.tsx
CHANGED
|
@@ -3,15 +3,15 @@ import { Paragraph, Separator, XStack, YStack } from 'tamagui'
|
|
|
3
3
|
|
|
4
4
|
export function SeparatorDemo() {
|
|
5
5
|
return (
|
|
6
|
-
<YStack width="100%" maxWidth={300}
|
|
6
|
+
<YStack width="100%" maxWidth={300} mx={16}>
|
|
7
7
|
<Paragraph fontWeight="800">Tamagui</Paragraph>
|
|
8
8
|
<Paragraph>A cross-platform component library.</Paragraph>
|
|
9
9
|
<Separator marginVertical={15} />
|
|
10
10
|
<XStack height={20} alignItems="center">
|
|
11
11
|
<Paragraph>Blog</Paragraph>
|
|
12
|
-
<Separator alignSelf="stretch" vertical
|
|
12
|
+
<Separator alignSelf="stretch" vertical mx={16} />
|
|
13
13
|
<Paragraph>Docs</Paragraph>
|
|
14
|
-
<Separator alignSelf="stretch" vertical
|
|
14
|
+
<Separator alignSelf="stretch" vertical mx={16} />
|
|
15
15
|
<Paragraph>Source</Paragraph>
|
|
16
16
|
</XStack>
|
|
17
17
|
</YStack>
|
package/src/SheetDemo.tsx
CHANGED
|
@@ -32,7 +32,7 @@ export const SheetDemo = () => {
|
|
|
32
32
|
return (
|
|
33
33
|
<>
|
|
34
34
|
<YStack gap="$4">
|
|
35
|
-
<XStack gap="$4" $
|
|
35
|
+
<XStack gap="$4" $maxMd={{ flexDirection: 'column', alignItems: 'center' }}>
|
|
36
36
|
<Button onPress={() => setOpen(true)}>Open</Button>
|
|
37
37
|
<Button onPress={() => setModal((x) => !x)}>
|
|
38
38
|
{modal ? 'Type: Modal' : 'Type: Inline'}
|
package/src/TabsDemo.tsx
CHANGED
|
@@ -28,7 +28,7 @@ export function TabsDemo() {
|
|
|
28
28
|
position="absolute"
|
|
29
29
|
bottom="$3"
|
|
30
30
|
left="$4"
|
|
31
|
-
$
|
|
31
|
+
$maxXs={{ display: 'none' }}
|
|
32
32
|
>
|
|
33
33
|
<Button size="$2" onPress={() => setDemoIndex((x) => (x + 1) % demos.length)}>
|
|
34
34
|
{demosTitle[demo]}
|
|
@@ -44,6 +44,7 @@ const HorizontalTabs = () => {
|
|
|
44
44
|
defaultValue="tab1"
|
|
45
45
|
orientation="horizontal"
|
|
46
46
|
flexDirection="column"
|
|
47
|
+
$maxMd={{ width: 300 }}
|
|
47
48
|
width={400}
|
|
48
49
|
height={150}
|
|
49
50
|
borderRadius="$4"
|
|
@@ -63,7 +64,9 @@ const HorizontalTabs = () => {
|
|
|
63
64
|
flex={1}
|
|
64
65
|
value="tab1"
|
|
65
66
|
>
|
|
66
|
-
<SizableText fontFamily="$body"
|
|
67
|
+
<SizableText fontFamily="$body" textAlign="center">
|
|
68
|
+
Profile
|
|
69
|
+
</SizableText>
|
|
67
70
|
</Tabs.Tab>
|
|
68
71
|
<Tabs.Tab
|
|
69
72
|
focusStyle={{
|
|
@@ -72,7 +75,9 @@ const HorizontalTabs = () => {
|
|
|
72
75
|
flex={1}
|
|
73
76
|
value="tab2"
|
|
74
77
|
>
|
|
75
|
-
<SizableText fontFamily="$body">
|
|
78
|
+
<SizableText fontFamily="$body" textAlign="center">
|
|
79
|
+
Connections
|
|
80
|
+
</SizableText>
|
|
76
81
|
</Tabs.Tab>
|
|
77
82
|
<Tabs.Tab
|
|
78
83
|
focusStyle={{
|
|
@@ -81,7 +86,9 @@ const HorizontalTabs = () => {
|
|
|
81
86
|
flex={1}
|
|
82
87
|
value="tab3"
|
|
83
88
|
>
|
|
84
|
-
<SizableText fontFamily="$body">
|
|
89
|
+
<SizableText fontFamily="$body" textAlign="center">
|
|
90
|
+
Notifications
|
|
91
|
+
</SizableText>
|
|
85
92
|
</Tabs.Tab>
|
|
86
93
|
</Tabs.List>
|
|
87
94
|
<Separator />
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
import type { TabsContentProps } from 'tamagui'
|
|
3
|
+
import {
|
|
4
|
+
Button,
|
|
5
|
+
SizableStack,
|
|
6
|
+
ThemeableStack,
|
|
7
|
+
XStack,
|
|
8
|
+
YStack,
|
|
9
|
+
isWeb,
|
|
10
|
+
styled,
|
|
11
|
+
} from 'tamagui'
|
|
12
|
+
import { createTabs } from '@tamagui/tabs'
|
|
13
|
+
import { getButtonSized } from '@tamagui/get-button-sized'
|
|
14
|
+
|
|
15
|
+
const demos = ['horizontal', 'vertical'] as const
|
|
16
|
+
|
|
17
|
+
export const TabsFrame = styled(SizableStack, {
|
|
18
|
+
name: 'TabsFrame',
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
export const TabFrame = styled(ThemeableStack, {
|
|
22
|
+
name: 'TabsTrigger',
|
|
23
|
+
tag: 'button',
|
|
24
|
+
cursor: 'pointer',
|
|
25
|
+
variants: {
|
|
26
|
+
size: {
|
|
27
|
+
'...size': getButtonSized,
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
disabled: {
|
|
31
|
+
true: {
|
|
32
|
+
pointerEvents: 'none',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
active: {
|
|
37
|
+
true: {
|
|
38
|
+
hoverStyle: {
|
|
39
|
+
backgroundColor: '$background',
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
focusStyle: {
|
|
43
|
+
backgroundColor: '$background',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
} as const,
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const CONTENT_NAME = 'TabsContent'
|
|
51
|
+
|
|
52
|
+
export const ContentFrame = styled(ThemeableStack, {
|
|
53
|
+
name: CONTENT_NAME,
|
|
54
|
+
flex: 1,
|
|
55
|
+
padding: '$6',
|
|
56
|
+
justifyContent: 'center',
|
|
57
|
+
alignItems: 'center',
|
|
58
|
+
backgroundColor: '$color4',
|
|
59
|
+
borderRadius: '$4',
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
export const CustomTabs = createTabs({
|
|
63
|
+
TabsFrame,
|
|
64
|
+
TabFrame,
|
|
65
|
+
ContentFrame,
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
export function TabsHeadlessDemo() {
|
|
69
|
+
const [demo, setDemo] = useState<(typeof demos)[number]>(demos[0])
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
// web only fix for position relative
|
|
73
|
+
<YStack
|
|
74
|
+
paddingHorizontal="$4"
|
|
75
|
+
{...(isWeb && {
|
|
76
|
+
position: 'unset' as any,
|
|
77
|
+
})}
|
|
78
|
+
>
|
|
79
|
+
<TabsView flexDirection={demo === 'horizontal' ? 'row' : 'column'} />
|
|
80
|
+
|
|
81
|
+
<XStack
|
|
82
|
+
alignItems="center"
|
|
83
|
+
space
|
|
84
|
+
position="absolute"
|
|
85
|
+
bottom="$3"
|
|
86
|
+
left="$4"
|
|
87
|
+
$xxs={{ display: 'none' }}
|
|
88
|
+
>
|
|
89
|
+
<Button
|
|
90
|
+
size="$2"
|
|
91
|
+
onPress={() => setDemo(demo === 'horizontal' ? 'vertical' : 'horizontal')}
|
|
92
|
+
>
|
|
93
|
+
<Button.Text textTransform="capitalize">{demo}</Button.Text>
|
|
94
|
+
</Button>
|
|
95
|
+
</XStack>
|
|
96
|
+
</YStack>
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const content = ['Home', 'Profile', 'Settings']
|
|
101
|
+
|
|
102
|
+
const TabsView = ({ flexDirection = 'row' }: { flexDirection: 'row' | 'column' }) => {
|
|
103
|
+
return (
|
|
104
|
+
<CustomTabs
|
|
105
|
+
flexDirection={flexDirection === 'column' ? 'row' : 'column'}
|
|
106
|
+
defaultValue={content[0]}
|
|
107
|
+
>
|
|
108
|
+
<CustomTabs.List flexDirection={flexDirection}>
|
|
109
|
+
{content.map((name, index) => (
|
|
110
|
+
<CustomTabs.Tab key={index} value={name}>
|
|
111
|
+
{name}
|
|
112
|
+
</CustomTabs.Tab>
|
|
113
|
+
))}
|
|
114
|
+
</CustomTabs.List>
|
|
115
|
+
{content.map((name, index) => (
|
|
116
|
+
<CustomTabs.Content key={index} value={name}>
|
|
117
|
+
{name}
|
|
118
|
+
</CustomTabs.Content>
|
|
119
|
+
))}
|
|
120
|
+
</CustomTabs>
|
|
121
|
+
)
|
|
122
|
+
}
|
package/src/TooltipDemo.tsx
CHANGED
package/src/index.tsx
CHANGED