@admin-layout/gluestack-ui-mobile 11.0.4-alpha.0 → 12.0.16-alpha.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/CHANGELOG.md +60 -4
- package/lib/__tests__/prolayout-layout-feature.test.js +1 -1
- package/lib/__tests__/prolayout-layout-feature.test.js.map +1 -1
- package/lib/components/AuthWrapper.js +5 -3
- package/lib/components/AuthWrapper.js.map +1 -1
- package/lib/components/ErrorBounday.js.map +1 -1
- package/lib/components/NavigationComponent.js.map +1 -1
- package/lib/components/UnAuthenticatedComponent.js.map +1 -1
- package/lib/components/WithConfiguration.js +4 -4
- package/lib/components/WithConfiguration.js.map +1 -1
- package/lib/components/WithPermission.js +1 -1
- package/lib/components/WithPermission.js.map +1 -1
- package/lib/components/WithPolicy.js +2 -2
- package/lib/components/WithPolicy.js.map +1 -1
- package/lib/components/ui/accordion/index.web.d.ts +209 -0
- package/lib/components/ui/accordion/index.web.js +156 -0
- package/lib/components/ui/accordion/index.web.js.map +1 -0
- package/lib/components/ui/actionsheet/index.web.d.ts +872 -0
- package/lib/components/ui/actionsheet/index.web.js +286 -0
- package/lib/components/ui/actionsheet/index.web.js.map +1 -0
- package/lib/components/ui/alert/index.web.d.ts +135 -0
- package/lib/components/ui/alert/index.web.js +38 -0
- package/lib/components/ui/alert/index.web.js.map +1 -0
- package/lib/components/ui/alert-dialog/index.web.d.ts +64 -0
- package/lib/components/ui/alert-dialog/index.web.js +139 -0
- package/lib/components/ui/alert-dialog/index.web.js.map +1 -0
- package/lib/components/ui/avatar/index.web.d.ts +21 -0
- package/lib/components/ui/avatar/index.web.js +92 -0
- package/lib/components/ui/avatar/index.web.js.map +1 -0
- package/lib/components/ui/badge/index.web.d.ts +382 -0
- package/lib/components/ui/badge/index.web.js +138 -0
- package/lib/components/ui/badge/index.web.js.map +1 -0
- package/lib/components/ui/button/index.web.d.ts +247 -0
- package/lib/components/ui/button/index.web.js +57 -0
- package/lib/components/ui/button/index.web.js.map +1 -0
- package/lib/components/ui/checkbox/index.web.d.ts +265 -0
- package/lib/components/ui/checkbox/index.web.js +77 -0
- package/lib/components/ui/checkbox/index.web.js.map +1 -0
- package/lib/components/ui/divider/index.web.d.ts +53 -0
- package/lib/components/ui/divider/index.web.js +21 -0
- package/lib/components/ui/divider/index.web.js.map +1 -0
- package/lib/components/ui/drawer/index.web.d.ts +174 -0
- package/lib/components/ui/drawer/index.web.js +65 -0
- package/lib/components/ui/drawer/index.web.js.map +1 -0
- package/lib/components/ui/fab/index.web.d.ts +520 -0
- package/lib/components/ui/fab/index.web.js +146 -0
- package/lib/components/ui/fab/index.web.js.map +1 -0
- package/lib/components/ui/flat-list/index.web.d.ts +21 -0
- package/lib/components/ui/flat-list/index.web.js +41 -0
- package/lib/components/ui/flat-list/index.web.js.map +1 -0
- package/lib/components/ui/form-control/index.web.d.ts +2071 -0
- package/lib/components/ui/form-control/index.web.js +290 -0
- package/lib/components/ui/form-control/index.web.js.map +1 -0
- package/lib/components/ui/image/index.web.d.ts +142 -0
- package/lib/components/ui/image/index.web.js +29 -0
- package/lib/components/ui/image/index.web.js.map +1 -0
- package/lib/components/ui/image-background/index.web.d.ts +8 -0
- package/lib/components/ui/image-background/index.web.js +23 -0
- package/lib/components/ui/image-background/index.web.js.map +1 -0
- package/lib/components/ui/input/index.web.d.ts +163 -0
- package/lib/components/ui/input/index.web.js +50 -0
- package/lib/components/ui/input/index.web.js.map +1 -0
- package/lib/components/ui/input-accessory-view/index.web.d.ts +9 -0
- package/lib/components/ui/input-accessory-view/index.web.js +16 -0
- package/lib/components/ui/input-accessory-view/index.web.js.map +1 -0
- package/lib/components/ui/keyboard-avoiding-view/index.web.d.ts +9 -0
- package/lib/components/ui/keyboard-avoiding-view/index.web.js +8 -0
- package/lib/components/ui/keyboard-avoiding-view/index.web.js.map +1 -0
- package/lib/components/ui/link/index.web.d.ts +365 -0
- package/lib/components/ui/link/index.web.js +70 -0
- package/lib/components/ui/link/index.web.js.map +1 -0
- package/lib/components/ui/menu/index.web.d.ts +142 -0
- package/lib/components/ui/menu/index.web.js +83 -0
- package/lib/components/ui/menu/index.web.js.map +1 -0
- package/lib/components/ui/modal/index.web.d.ts +111 -0
- package/lib/components/ui/modal/index.web.js +58 -0
- package/lib/components/ui/modal/index.web.js.map +1 -0
- package/lib/components/ui/popover/index.web.d.ts +309 -0
- package/lib/components/ui/popover/index.web.js +184 -0
- package/lib/components/ui/popover/index.web.js.map +1 -0
- package/lib/components/ui/portal/index.web.d.ts +9 -0
- package/lib/components/ui/portal/index.web.js +16 -0
- package/lib/components/ui/portal/index.web.js.map +1 -0
- package/lib/components/ui/pressable/index.web.d.ts +8 -0
- package/lib/components/ui/pressable/index.web.js +44 -0
- package/lib/components/ui/pressable/index.web.js.map +1 -0
- package/lib/components/ui/progress/index.web.d.ts +237 -0
- package/lib/components/ui/progress/index.web.js +73 -0
- package/lib/components/ui/progress/index.web.js.map +1 -0
- package/lib/components/ui/radio/index.web.d.ts +224 -0
- package/lib/components/ui/radio/index.web.js +69 -0
- package/lib/components/ui/radio/index.web.js.map +1 -0
- package/lib/components/ui/refresh-control/index.web.d.ts +14 -0
- package/lib/components/ui/refresh-control/index.web.js +69 -0
- package/lib/components/ui/refresh-control/index.web.js.map +1 -0
- package/lib/components/ui/safe-area-view/index.web.d.ts +6 -0
- package/lib/components/ui/safe-area-view/index.web.js +10 -0
- package/lib/components/ui/safe-area-view/index.web.js.map +1 -0
- package/lib/components/ui/scroll-view/index.web.d.ts +44 -0
- package/lib/components/ui/scroll-view/index.web.js +41 -0
- package/lib/components/ui/scroll-view/index.web.js.map +1 -0
- package/lib/components/ui/section-list/index.web.d.ts +26 -0
- package/lib/components/ui/section-list/index.web.js +35 -0
- package/lib/components/ui/section-list/index.web.js.map +1 -0
- package/lib/components/ui/select/index.web.d.ts +162 -0
- package/lib/components/ui/select/index.web.js +51 -0
- package/lib/components/ui/select/index.web.js.map +1 -0
- package/lib/components/ui/slider/index.web.d.ts +223 -0
- package/lib/components/ui/slider/index.web.js +189 -0
- package/lib/components/ui/slider/index.web.js.map +1 -0
- package/lib/components/ui/spinner/index.web.d.ts +176 -0
- package/lib/components/ui/spinner/index.web.js +55 -0
- package/lib/components/ui/spinner/index.web.js.map +1 -0
- package/lib/components/ui/status-bar/index.web.d.ts +14 -0
- package/lib/components/ui/status-bar/index.web.js +7 -0
- package/lib/components/ui/status-bar/index.web.js.map +1 -0
- package/lib/components/ui/switch/index.web.d.ts +71 -0
- package/lib/components/ui/switch/index.web.js +27 -0
- package/lib/components/ui/switch/index.web.js.map +1 -0
- package/lib/components/ui/tabs/index.web.d.ts +351 -0
- package/lib/components/ui/tabs/index.web.js +120 -0
- package/lib/components/ui/tabs/index.web.js.map +1 -0
- package/lib/components/ui/textarea/index.web.d.ts +162 -0
- package/lib/components/ui/textarea/index.web.js +50 -0
- package/lib/components/ui/textarea/index.web.js.map +1 -0
- package/lib/components/ui/toast/index.web.d.ts +225 -0
- package/lib/components/ui/toast/index.web.js +80 -0
- package/lib/components/ui/toast/index.web.js.map +1 -0
- package/lib/components/ui/tooltip/index.web.d.ts +86 -0
- package/lib/components/ui/tooltip/index.web.js +110 -0
- package/lib/components/ui/tooltip/index.web.js.map +1 -0
- package/lib/components/ui/view/index.web.d.ts +2 -0
- package/lib/components/ui/view/index.web.js +7 -0
- package/lib/components/ui/view/index.web.js.map +1 -0
- package/lib/components/ui/virtualized-list/index.web.d.ts +19 -0
- package/lib/components/ui/virtualized-list/index.web.js +30 -0
- package/lib/components/ui/virtualized-list/index.web.js.map +1 -0
- package/lib/components/usePermissionAutoFetch.d.ts +7 -19
- package/lib/components/with-interactions-lifecycle-managed.js.map +1 -1
- package/lib/components/with-interactions-managed.js +2 -3
- package/lib/components/with-interactions-managed.js.map +1 -1
- package/lib/containers/layout/DrawerBottomNavigationConfig.d.ts +47 -47
- package/lib/containers/layout/DrawerConfig.d.ts +31 -31
- package/lib/containers/layout/module.js +1 -1
- package/lib/containers/layout/module.js.map +1 -1
- package/lib/interfaces/settings.d.ts +1 -0
- package/lib/redux/settings.d.ts +4 -9
- package/lib/utils/routeConfigKeyReplace.test.js +1 -1
- package/lib/utils/routeConfigKeyReplace.test.js.map +1 -1
- package/package.json +7 -4
- package/src/__tests__/prolayout-layout-feature.test.tsx +2 -2
- package/src/components/AuthWrapper.tsx +6 -3
- package/src/components/ErrorBounday.tsx +18 -19
- package/src/components/NavigationComponent.tsx +1 -1
- package/src/components/UnAuthenticatedComponent.tsx +1 -3
- package/src/components/WithConfiguration.tsx +5 -8
- package/src/components/WithPermission.tsx +1 -1
- package/src/components/WithPolicy.tsx +4 -3
- package/src/components/ui/accordion/index.web.tsx +294 -0
- package/src/components/ui/actionsheet/index.web.tsx +555 -0
- package/src/components/ui/alert/index.web.tsx +71 -0
- package/src/components/ui/alert-dialog/index.web.tsx +241 -0
- package/src/components/ui/avatar/index.web.tsx +150 -0
- package/src/components/ui/badge/index.web.tsx +188 -0
- package/src/components/ui/button/index.web.tsx +86 -0
- package/src/components/ui/checkbox/index.web.tsx +151 -0
- package/src/components/ui/divider/index.web.tsx +37 -0
- package/src/components/ui/drawer/index.web.tsx +144 -0
- package/src/components/ui/fab/index.web.tsx +201 -0
- package/src/components/ui/flat-list/index.web.tsx +89 -0
- package/src/components/ui/form-control/index.web.tsx +451 -0
- package/src/components/ui/image/index.web.tsx +43 -0
- package/src/components/ui/image-background/index.web.tsx +43 -0
- package/src/components/ui/input/index.web.tsx +80 -0
- package/src/components/ui/input-accessory-view/index.web.tsx +31 -0
- package/src/components/ui/keyboard-avoiding-view/index.web.tsx +23 -0
- package/src/components/ui/link/index.web.tsx +103 -0
- package/src/components/ui/menu/index.web.tsx +159 -0
- package/src/components/ui/modal/index.web.tsx +135 -0
- package/src/components/ui/popover/index.web.tsx +326 -0
- package/src/components/ui/portal/index.web.tsx +34 -0
- package/src/components/ui/pressable/index.web.tsx +73 -0
- package/src/components/ui/progress/index.web.tsx +123 -0
- package/src/components/ui/radio/index.web.tsx +130 -0
- package/src/components/ui/refresh-control/index.web.tsx +104 -0
- package/src/components/ui/safe-area-view/index.web.tsx +24 -0
- package/src/components/ui/scroll-view/index.web.tsx +142 -0
- package/src/components/ui/section-list/index.web.tsx +93 -0
- package/src/components/ui/select/index.web.tsx +83 -0
- package/src/components/ui/slider/index.web.tsx +283 -0
- package/src/components/ui/spinner/index.web.tsx +81 -0
- package/src/components/ui/status-bar/index.web.tsx +20 -0
- package/src/components/ui/switch/index.web.tsx +44 -0
- package/src/components/ui/tabs/index.web.tsx +205 -0
- package/src/components/ui/textarea/index.web.tsx +86 -0
- package/src/components/ui/toast/index.web.tsx +132 -0
- package/src/components/ui/tooltip/index.web.tsx +155 -0
- package/src/components/ui/view/index.web.tsx +15 -0
- package/src/components/ui/virtualized-list/index.web.tsx +84 -0
- package/src/components/with-interactions-lifecycle-managed.tsx +0 -4
- package/src/components/with-interactions-managed.tsx +3 -4
- package/src/containers/layout/module.ts +1 -1
- package/src/interfaces/settings.ts +1 -0
- package/src/utils/routeConfigKeyReplace.test.ts +4 -4
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { createActionsheet } from '@gluestack-ui/actionsheet';
|
|
4
|
+
import { PrimitiveIcon, UIIcon } from '@gluestack-ui/icon';
|
|
5
|
+
import { tva } from '@gluestack-ui/nativewind-utils/tva';
|
|
6
|
+
import type { VariantProps } from '@gluestack-ui/nativewind-utils';
|
|
7
|
+
import { cssInterop } from 'nativewind';
|
|
8
|
+
import { Motion, AnimatePresence, createMotionAnimatedComponent } from '@legendapp/motion';
|
|
9
|
+
|
|
10
|
+
// Web-specific components
|
|
11
|
+
const ItemWrapper = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ ...props }, ref) => {
|
|
12
|
+
return <div {...props} ref={ref} />;
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const AnimatedDiv = createMotionAnimatedComponent(({ children, ...props }) => <div {...props}>{children}</div>);
|
|
16
|
+
|
|
17
|
+
// Define proper types for the web components
|
|
18
|
+
type WebComponentProps = {
|
|
19
|
+
children?: React.ReactNode;
|
|
20
|
+
className?: string;
|
|
21
|
+
style?: React.CSSProperties;
|
|
22
|
+
} & React.HTMLAttributes<HTMLElement>;
|
|
23
|
+
|
|
24
|
+
const WebRoot = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
25
|
+
<div ref={ref} {...props}>
|
|
26
|
+
{children}
|
|
27
|
+
</div>
|
|
28
|
+
));
|
|
29
|
+
|
|
30
|
+
const WebContent = Motion.View;
|
|
31
|
+
|
|
32
|
+
const WebItemText = React.forwardRef<HTMLSpanElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
33
|
+
<span ref={ref} {...props}>
|
|
34
|
+
{children}
|
|
35
|
+
</span>
|
|
36
|
+
));
|
|
37
|
+
|
|
38
|
+
const WebDragIndicator = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
39
|
+
<div ref={ref} {...props}>
|
|
40
|
+
{children}
|
|
41
|
+
</div>
|
|
42
|
+
));
|
|
43
|
+
|
|
44
|
+
const WebIndicatorWrapper = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
45
|
+
<div ref={ref} {...props}>
|
|
46
|
+
{children}
|
|
47
|
+
</div>
|
|
48
|
+
));
|
|
49
|
+
|
|
50
|
+
const WebScrollView = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
51
|
+
<div ref={ref} {...props}>
|
|
52
|
+
{children}
|
|
53
|
+
</div>
|
|
54
|
+
));
|
|
55
|
+
|
|
56
|
+
const WebVirtualizedList = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
57
|
+
<div ref={ref} {...props}>
|
|
58
|
+
{children}
|
|
59
|
+
</div>
|
|
60
|
+
));
|
|
61
|
+
|
|
62
|
+
const WebFlatList = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
63
|
+
<div ref={ref} {...props}>
|
|
64
|
+
{children}
|
|
65
|
+
</div>
|
|
66
|
+
));
|
|
67
|
+
|
|
68
|
+
const WebSectionList = React.forwardRef<HTMLDivElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
69
|
+
<div ref={ref} {...props}>
|
|
70
|
+
{children}
|
|
71
|
+
</div>
|
|
72
|
+
));
|
|
73
|
+
|
|
74
|
+
const WebSectionHeaderText = React.forwardRef<HTMLHeadingElement, WebComponentProps>(({ children, ...props }, ref) => (
|
|
75
|
+
<h4 ref={ref} {...props}>
|
|
76
|
+
{children}
|
|
77
|
+
</h4>
|
|
78
|
+
));
|
|
79
|
+
|
|
80
|
+
export const UIActionsheet = createActionsheet({
|
|
81
|
+
Root: WebRoot,
|
|
82
|
+
Content: WebContent,
|
|
83
|
+
Item: ItemWrapper,
|
|
84
|
+
ItemText: WebItemText,
|
|
85
|
+
DragIndicator: WebDragIndicator,
|
|
86
|
+
IndicatorWrapper: WebIndicatorWrapper,
|
|
87
|
+
Backdrop: AnimatedDiv,
|
|
88
|
+
ScrollView: WebScrollView,
|
|
89
|
+
VirtualizedList: WebVirtualizedList,
|
|
90
|
+
FlatList: WebFlatList,
|
|
91
|
+
SectionList: WebSectionList,
|
|
92
|
+
SectionHeaderText: WebSectionHeaderText,
|
|
93
|
+
Icon: UIIcon,
|
|
94
|
+
AnimatePresence: AnimatePresence,
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
cssInterop(UIActionsheet, { target: 'style', className: true });
|
|
98
|
+
cssInterop(UIActionsheet.Content, { target: 'style', className: true });
|
|
99
|
+
cssInterop(ItemWrapper, { target: 'style', className: true });
|
|
100
|
+
cssInterop(UIActionsheet.ItemText, { target: 'style', className: true });
|
|
101
|
+
cssInterop(UIActionsheet.DragIndicator, { target: 'style', className: true });
|
|
102
|
+
cssInterop(UIActionsheet.DragIndicatorWrapper, { target: 'style', className: true });
|
|
103
|
+
cssInterop(UIActionsheet.Backdrop, { target: 'style', className: true });
|
|
104
|
+
cssInterop(UIActionsheet.ScrollView, {
|
|
105
|
+
target: 'style',
|
|
106
|
+
className: true,
|
|
107
|
+
contentContainerStyle: true,
|
|
108
|
+
indicatorStyle: true,
|
|
109
|
+
});
|
|
110
|
+
cssInterop(UIActionsheet.VirtualizedList, {
|
|
111
|
+
target: 'style',
|
|
112
|
+
className: true,
|
|
113
|
+
ListFooterComponentStyle: true,
|
|
114
|
+
ListHeaderComponentStyle: true,
|
|
115
|
+
contentContainerStyle: true,
|
|
116
|
+
indicatorStyle: true,
|
|
117
|
+
});
|
|
118
|
+
cssInterop(UIActionsheet.FlatList, {
|
|
119
|
+
target: 'style',
|
|
120
|
+
className: true,
|
|
121
|
+
ListFooterComponentStyle: true,
|
|
122
|
+
ListHeaderComponentStyle: true,
|
|
123
|
+
columnWrapperStyle: true,
|
|
124
|
+
contentContainerStyle: true,
|
|
125
|
+
indicatorStyle: true,
|
|
126
|
+
});
|
|
127
|
+
cssInterop(UIActionsheet.SectionList, { target: 'style', className: true });
|
|
128
|
+
cssInterop(UIActionsheet.SectionHeaderText, { target: 'style', className: true });
|
|
129
|
+
|
|
130
|
+
cssInterop(PrimitiveIcon, {
|
|
131
|
+
className: {
|
|
132
|
+
target: 'style',
|
|
133
|
+
nativeStyleToProp: {
|
|
134
|
+
height: true,
|
|
135
|
+
width: true,
|
|
136
|
+
fill: true,
|
|
137
|
+
color: 'classNameColor',
|
|
138
|
+
stroke: true,
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const actionsheetStyle = tva({ base: 'w-full h-full pointer-events-none' });
|
|
144
|
+
|
|
145
|
+
const actionsheetContentStyle = tva({
|
|
146
|
+
base: 'items-center rounded-tl-3xl rounded-tr-3xl p-5 pt-2 bg-background-0 pointer-events-auto select-none shadow-hard-5 border border-b-0 border-outline-100',
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
const actionsheetItemStyle = tva({
|
|
150
|
+
base: 'w-full flex-row items-center p-3 rounded-sm cursor-pointer data-[disabled=true]:opacity-40 data-[disabled=true]:pointer-events-auto data-[disabled=true]:cursor-not-allowed hover:bg-background-50 active:bg-background-100 data-[focus=true]:bg-background-100 data-[focus-visible=true]:bg-background-100 data-[focus-visible=true]:outline-indicator-primary gap-2',
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
const actionsheetItemTextStyle = tva({
|
|
154
|
+
base: 'text-typography-700 font-normal font-body',
|
|
155
|
+
variants: {
|
|
156
|
+
isTruncated: {
|
|
157
|
+
true: 'truncate',
|
|
158
|
+
},
|
|
159
|
+
bold: {
|
|
160
|
+
true: 'font-bold',
|
|
161
|
+
},
|
|
162
|
+
underline: {
|
|
163
|
+
true: 'underline',
|
|
164
|
+
},
|
|
165
|
+
strikeThrough: {
|
|
166
|
+
true: 'line-through',
|
|
167
|
+
},
|
|
168
|
+
size: {
|
|
169
|
+
'2xs': 'text-2xs',
|
|
170
|
+
xs: 'text-xs',
|
|
171
|
+
sm: 'text-sm',
|
|
172
|
+
md: 'text-base',
|
|
173
|
+
lg: 'text-lg',
|
|
174
|
+
xl: 'text-xl',
|
|
175
|
+
'2xl': 'text-2xl',
|
|
176
|
+
'3xl': 'text-3xl',
|
|
177
|
+
'4xl': 'text-4xl',
|
|
178
|
+
'5xl': 'text-5xl',
|
|
179
|
+
'6xl': 'text-6xl',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
const actionsheetDragIndicatorStyle = tva({
|
|
185
|
+
base: 'w-16 h-1 bg-background-400 rounded-full',
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
const actionsheetDragIndicatorWrapperStyle = tva({
|
|
189
|
+
base: 'w-full py-1 items-center',
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
const actionsheetBackdropStyle = tva({
|
|
193
|
+
base: 'absolute left-0 top-0 right-0 bottom-0 bg-background-dark cursor-default pointer-events-auto',
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
const actionsheetScrollViewStyle = tva({
|
|
197
|
+
base: 'w-full h-auto overflow-auto',
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
const actionsheetVirtualizedListStyle = tva({
|
|
201
|
+
base: 'w-full h-auto overflow-auto',
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
const actionsheetFlatListStyle = tva({
|
|
205
|
+
base: 'w-full h-auto overflow-auto',
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
const actionsheetSectionListStyle = tva({
|
|
209
|
+
base: 'w-full h-auto overflow-auto',
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
const actionsheetSectionHeaderTextStyle = tva({
|
|
213
|
+
base: 'leading-5 font-bold font-heading my-0 text-typography-500 p-3 uppercase',
|
|
214
|
+
variants: {
|
|
215
|
+
isTruncated: {
|
|
216
|
+
true: 'truncate',
|
|
217
|
+
},
|
|
218
|
+
bold: {
|
|
219
|
+
true: 'font-bold',
|
|
220
|
+
},
|
|
221
|
+
underline: {
|
|
222
|
+
true: 'underline',
|
|
223
|
+
},
|
|
224
|
+
strikeThrough: {
|
|
225
|
+
true: 'line-through',
|
|
226
|
+
},
|
|
227
|
+
size: {
|
|
228
|
+
'5xl': 'text-5xl',
|
|
229
|
+
'4xl': 'text-4xl',
|
|
230
|
+
'3xl': 'text-3xl',
|
|
231
|
+
'2xl': 'text-2xl',
|
|
232
|
+
xl: 'text-xl',
|
|
233
|
+
lg: 'text-lg',
|
|
234
|
+
md: 'text-base',
|
|
235
|
+
sm: 'text-sm',
|
|
236
|
+
xs: 'text-xs',
|
|
237
|
+
},
|
|
238
|
+
sub: {
|
|
239
|
+
true: 'text-xs',
|
|
240
|
+
},
|
|
241
|
+
italic: {
|
|
242
|
+
true: 'italic',
|
|
243
|
+
},
|
|
244
|
+
highlight: {
|
|
245
|
+
true: 'bg-yellow500',
|
|
246
|
+
},
|
|
247
|
+
},
|
|
248
|
+
defaultVariants: {
|
|
249
|
+
size: 'xs',
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
const actionsheetIconStyle = tva({
|
|
254
|
+
base: 'text-background-500 fill-none',
|
|
255
|
+
variants: {
|
|
256
|
+
size: {
|
|
257
|
+
'2xs': 'h-3 w-3',
|
|
258
|
+
xs: 'h-3.5 w-3.5',
|
|
259
|
+
sm: 'h-4 w-4',
|
|
260
|
+
md: 'w-[18px] h-[18px]',
|
|
261
|
+
lg: 'h-5 w-5',
|
|
262
|
+
xl: 'h-6 w-6',
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
|
|
267
|
+
// Web-specific types
|
|
268
|
+
type IActionsheetProps = VariantProps<typeof actionsheetStyle> & React.ComponentPropsWithoutRef<typeof UIActionsheet>;
|
|
269
|
+
|
|
270
|
+
type IActionsheetContentProps = VariantProps<typeof actionsheetContentStyle> &
|
|
271
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.Content> & {
|
|
272
|
+
className?: string;
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
type IActionsheetItemProps = VariantProps<typeof actionsheetItemStyle> &
|
|
276
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.Item>;
|
|
277
|
+
|
|
278
|
+
type IActionsheetItemTextProps = VariantProps<typeof actionsheetItemTextStyle> &
|
|
279
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.ItemText>;
|
|
280
|
+
|
|
281
|
+
type IActionsheetDragIndicatorProps = VariantProps<typeof actionsheetDragIndicatorStyle> &
|
|
282
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.DragIndicator>;
|
|
283
|
+
|
|
284
|
+
type IActionsheetDragIndicatorWrapperProps = VariantProps<typeof actionsheetDragIndicatorWrapperStyle> &
|
|
285
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.DragIndicatorWrapper>;
|
|
286
|
+
|
|
287
|
+
type IActionsheetBackdropProps = VariantProps<typeof actionsheetBackdropStyle> &
|
|
288
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.Backdrop> & {
|
|
289
|
+
className?: string;
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
type IActionsheetScrollViewProps = VariantProps<typeof actionsheetScrollViewStyle> &
|
|
293
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.ScrollView>;
|
|
294
|
+
|
|
295
|
+
type IActionsheetVirtualizedListProps = VariantProps<typeof actionsheetVirtualizedListStyle> &
|
|
296
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.VirtualizedList>;
|
|
297
|
+
|
|
298
|
+
type IActionsheetFlatListProps = VariantProps<typeof actionsheetFlatListStyle> &
|
|
299
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.FlatList>;
|
|
300
|
+
|
|
301
|
+
type IActionsheetSectionListProps = VariantProps<typeof actionsheetSectionListStyle> &
|
|
302
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.SectionList>;
|
|
303
|
+
|
|
304
|
+
type IActionsheetSectionHeaderTextProps = VariantProps<typeof actionsheetSectionHeaderTextStyle> &
|
|
305
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.SectionHeaderText>;
|
|
306
|
+
|
|
307
|
+
type IActionsheetIconProps = VariantProps<typeof actionsheetIconStyle> &
|
|
308
|
+
React.ComponentPropsWithoutRef<typeof UIActionsheet.Icon> & {
|
|
309
|
+
className?: string;
|
|
310
|
+
as?: React.ElementType;
|
|
311
|
+
height?: number;
|
|
312
|
+
width?: number;
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
const Actionsheet = React.forwardRef<React.ElementRef<typeof UIActionsheet>, IActionsheetProps>(
|
|
316
|
+
({ className, ...props }, ref) => {
|
|
317
|
+
return (
|
|
318
|
+
<UIActionsheet
|
|
319
|
+
className={actionsheetStyle({
|
|
320
|
+
class: className,
|
|
321
|
+
})}
|
|
322
|
+
ref={ref}
|
|
323
|
+
{...props}
|
|
324
|
+
/>
|
|
325
|
+
);
|
|
326
|
+
},
|
|
327
|
+
);
|
|
328
|
+
|
|
329
|
+
const ActionsheetContent = React.forwardRef<React.ElementRef<typeof UIActionsheet.Content>, IActionsheetContentProps>(
|
|
330
|
+
({ className, ...props }, ref) => {
|
|
331
|
+
return (
|
|
332
|
+
<UIActionsheet.Content
|
|
333
|
+
className={actionsheetContentStyle({
|
|
334
|
+
class: className,
|
|
335
|
+
})}
|
|
336
|
+
ref={ref}
|
|
337
|
+
{...props}
|
|
338
|
+
/>
|
|
339
|
+
);
|
|
340
|
+
},
|
|
341
|
+
);
|
|
342
|
+
|
|
343
|
+
const ActionsheetItem = React.forwardRef<React.ElementRef<typeof UIActionsheet.Item>, IActionsheetItemProps>(
|
|
344
|
+
({ className, ...props }, ref) => {
|
|
345
|
+
return (
|
|
346
|
+
<UIActionsheet.Item
|
|
347
|
+
className={actionsheetItemStyle({
|
|
348
|
+
class: className,
|
|
349
|
+
})}
|
|
350
|
+
ref={ref}
|
|
351
|
+
{...props}
|
|
352
|
+
/>
|
|
353
|
+
);
|
|
354
|
+
},
|
|
355
|
+
);
|
|
356
|
+
|
|
357
|
+
const ActionsheetItemText = React.forwardRef<
|
|
358
|
+
React.ElementRef<typeof UIActionsheet.ItemText>,
|
|
359
|
+
IActionsheetItemTextProps
|
|
360
|
+
>(({ isTruncated, bold, underline, strikeThrough, size = 'sm', className, ...props }, ref) => {
|
|
361
|
+
return (
|
|
362
|
+
<UIActionsheet.ItemText
|
|
363
|
+
className={actionsheetItemTextStyle({
|
|
364
|
+
class: className,
|
|
365
|
+
isTruncated,
|
|
366
|
+
bold,
|
|
367
|
+
underline,
|
|
368
|
+
strikeThrough,
|
|
369
|
+
size,
|
|
370
|
+
})}
|
|
371
|
+
ref={ref}
|
|
372
|
+
{...props}
|
|
373
|
+
/>
|
|
374
|
+
);
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
const ActionsheetDragIndicator = React.forwardRef<
|
|
378
|
+
React.ElementRef<typeof UIActionsheet.DragIndicator>,
|
|
379
|
+
IActionsheetDragIndicatorProps
|
|
380
|
+
>(({ className, ...props }, ref) => {
|
|
381
|
+
return (
|
|
382
|
+
<UIActionsheet.DragIndicator
|
|
383
|
+
className={actionsheetDragIndicatorStyle({
|
|
384
|
+
class: className,
|
|
385
|
+
})}
|
|
386
|
+
ref={ref}
|
|
387
|
+
{...props}
|
|
388
|
+
/>
|
|
389
|
+
);
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
const ActionsheetDragIndicatorWrapper = React.forwardRef<
|
|
393
|
+
React.ElementRef<typeof UIActionsheet.DragIndicatorWrapper>,
|
|
394
|
+
IActionsheetDragIndicatorWrapperProps
|
|
395
|
+
>(({ className, ...props }, ref) => {
|
|
396
|
+
return (
|
|
397
|
+
<UIActionsheet.DragIndicatorWrapper
|
|
398
|
+
className={actionsheetDragIndicatorWrapperStyle({
|
|
399
|
+
class: className,
|
|
400
|
+
})}
|
|
401
|
+
ref={ref}
|
|
402
|
+
{...props}
|
|
403
|
+
/>
|
|
404
|
+
);
|
|
405
|
+
});
|
|
406
|
+
|
|
407
|
+
const ActionsheetBackdrop = React.forwardRef<
|
|
408
|
+
React.ElementRef<typeof UIActionsheet.Backdrop>,
|
|
409
|
+
IActionsheetBackdropProps
|
|
410
|
+
>(({ className, ...props }, ref) => {
|
|
411
|
+
return (
|
|
412
|
+
<UIActionsheet.Backdrop
|
|
413
|
+
initial={{
|
|
414
|
+
opacity: 0,
|
|
415
|
+
}}
|
|
416
|
+
animate={{
|
|
417
|
+
opacity: 0.5,
|
|
418
|
+
}}
|
|
419
|
+
exit={{
|
|
420
|
+
opacity: 0,
|
|
421
|
+
}}
|
|
422
|
+
{...props}
|
|
423
|
+
className={actionsheetBackdropStyle({
|
|
424
|
+
class: className,
|
|
425
|
+
})}
|
|
426
|
+
ref={ref}
|
|
427
|
+
/>
|
|
428
|
+
);
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
const ActionsheetScrollView = React.forwardRef<
|
|
432
|
+
React.ElementRef<typeof UIActionsheet.ScrollView>,
|
|
433
|
+
IActionsheetScrollViewProps
|
|
434
|
+
>(({ className, ...props }, ref) => {
|
|
435
|
+
return (
|
|
436
|
+
<UIActionsheet.ScrollView
|
|
437
|
+
className={actionsheetScrollViewStyle({
|
|
438
|
+
class: className,
|
|
439
|
+
})}
|
|
440
|
+
ref={ref}
|
|
441
|
+
{...props}
|
|
442
|
+
/>
|
|
443
|
+
);
|
|
444
|
+
});
|
|
445
|
+
|
|
446
|
+
const ActionsheetVirtualizedList = React.forwardRef<
|
|
447
|
+
React.ElementRef<typeof UIActionsheet.VirtualizedList>,
|
|
448
|
+
IActionsheetVirtualizedListProps
|
|
449
|
+
>(({ className, ...props }, ref) => {
|
|
450
|
+
return (
|
|
451
|
+
<UIActionsheet.VirtualizedList
|
|
452
|
+
className={actionsheetVirtualizedListStyle({
|
|
453
|
+
class: className,
|
|
454
|
+
})}
|
|
455
|
+
ref={ref}
|
|
456
|
+
{...props}
|
|
457
|
+
/>
|
|
458
|
+
);
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
const ActionsheetFlatList = React.forwardRef<
|
|
462
|
+
React.ElementRef<typeof UIActionsheet.FlatList>,
|
|
463
|
+
IActionsheetFlatListProps
|
|
464
|
+
>(({ className, ...props }, ref) => {
|
|
465
|
+
return (
|
|
466
|
+
<UIActionsheet.FlatList
|
|
467
|
+
className={actionsheetFlatListStyle({
|
|
468
|
+
class: className,
|
|
469
|
+
})}
|
|
470
|
+
ref={ref}
|
|
471
|
+
{...props}
|
|
472
|
+
/>
|
|
473
|
+
);
|
|
474
|
+
});
|
|
475
|
+
|
|
476
|
+
const ActionsheetSectionList = React.forwardRef<
|
|
477
|
+
React.ElementRef<typeof UIActionsheet.SectionList>,
|
|
478
|
+
IActionsheetSectionListProps
|
|
479
|
+
>(({ className, ...props }, ref) => {
|
|
480
|
+
return (
|
|
481
|
+
<UIActionsheet.SectionList
|
|
482
|
+
className={actionsheetSectionListStyle({
|
|
483
|
+
class: className,
|
|
484
|
+
})}
|
|
485
|
+
ref={ref}
|
|
486
|
+
{...props}
|
|
487
|
+
/>
|
|
488
|
+
);
|
|
489
|
+
});
|
|
490
|
+
|
|
491
|
+
const ActionsheetSectionHeaderText = React.forwardRef<
|
|
492
|
+
React.ElementRef<typeof UIActionsheet.SectionHeaderText>,
|
|
493
|
+
IActionsheetSectionHeaderTextProps
|
|
494
|
+
>(({ className, isTruncated, bold, underline, strikeThrough, size, sub, italic, highlight, ...props }, ref) => {
|
|
495
|
+
return (
|
|
496
|
+
<UIActionsheet.SectionHeaderText
|
|
497
|
+
className={actionsheetSectionHeaderTextStyle({
|
|
498
|
+
class: className,
|
|
499
|
+
isTruncated,
|
|
500
|
+
bold,
|
|
501
|
+
underline,
|
|
502
|
+
strikeThrough,
|
|
503
|
+
size,
|
|
504
|
+
sub,
|
|
505
|
+
italic,
|
|
506
|
+
highlight,
|
|
507
|
+
})}
|
|
508
|
+
ref={ref}
|
|
509
|
+
{...props}
|
|
510
|
+
/>
|
|
511
|
+
);
|
|
512
|
+
});
|
|
513
|
+
|
|
514
|
+
const ActionsheetIcon = React.forwardRef<React.ElementRef<typeof UIActionsheet.Icon>, IActionsheetIconProps>(
|
|
515
|
+
({ className, size = 'sm', ...props }, ref) => {
|
|
516
|
+
if (typeof size === 'number') {
|
|
517
|
+
return (
|
|
518
|
+
<UIActionsheet.Icon
|
|
519
|
+
ref={ref}
|
|
520
|
+
{...props}
|
|
521
|
+
className={actionsheetIconStyle({ class: className })}
|
|
522
|
+
size={size}
|
|
523
|
+
/>
|
|
524
|
+
);
|
|
525
|
+
} else if ((props.height !== undefined || props.width !== undefined) && size === undefined) {
|
|
526
|
+
return <UIActionsheet.Icon ref={ref} {...props} className={actionsheetIconStyle({ class: className })} />;
|
|
527
|
+
}
|
|
528
|
+
return (
|
|
529
|
+
<UIActionsheet.Icon
|
|
530
|
+
className={actionsheetIconStyle({
|
|
531
|
+
class: className,
|
|
532
|
+
size,
|
|
533
|
+
})}
|
|
534
|
+
ref={ref}
|
|
535
|
+
{...props}
|
|
536
|
+
/>
|
|
537
|
+
);
|
|
538
|
+
},
|
|
539
|
+
);
|
|
540
|
+
|
|
541
|
+
export {
|
|
542
|
+
Actionsheet,
|
|
543
|
+
ActionsheetContent,
|
|
544
|
+
ActionsheetItem,
|
|
545
|
+
ActionsheetItemText,
|
|
546
|
+
ActionsheetDragIndicator,
|
|
547
|
+
ActionsheetDragIndicatorWrapper,
|
|
548
|
+
ActionsheetBackdrop,
|
|
549
|
+
ActionsheetScrollView,
|
|
550
|
+
ActionsheetVirtualizedList,
|
|
551
|
+
ActionsheetFlatList,
|
|
552
|
+
ActionsheetSectionList,
|
|
553
|
+
ActionsheetSectionHeaderText,
|
|
554
|
+
ActionsheetIcon,
|
|
555
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import { createAlert } from '@gluestack-ui/alert';
|
|
4
|
+
import { tva } from '@gluestack-ui/nativewind-utils/tva';
|
|
5
|
+
import { withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext';
|
|
6
|
+
import { cssInterop } from 'nativewind';
|
|
7
|
+
import type { VariantProps } from '@gluestack-ui/nativewind-utils';
|
|
8
|
+
|
|
9
|
+
const SCOPE = 'ALERT';
|
|
10
|
+
|
|
11
|
+
const alertStyle = tva({
|
|
12
|
+
base: 'rounded-lg p-4 mb-4',
|
|
13
|
+
variants: {
|
|
14
|
+
variant: {
|
|
15
|
+
solid: '',
|
|
16
|
+
outline: 'border',
|
|
17
|
+
accent: 'border-l-4',
|
|
18
|
+
},
|
|
19
|
+
status: {
|
|
20
|
+
info: 'bg-blue-50 text-blue-700 border-blue-500',
|
|
21
|
+
success: 'bg-green-50 text-green-700 border-green-500',
|
|
22
|
+
warning: 'bg-yellow-50 text-yellow-700 border-yellow-500',
|
|
23
|
+
error: 'bg-red-50 text-red-700 border-red-500',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
variant: 'solid',
|
|
28
|
+
status: 'info',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
export const AlertIcon = forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(
|
|
33
|
+
({ className, children, ...props }, ref) => (
|
|
34
|
+
<div ref={ref} className={`mr-3 flex-shrink-0 ${className || ''}`} {...props}>
|
|
35
|
+
{children}
|
|
36
|
+
</div>
|
|
37
|
+
),
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
AlertIcon.displayName = 'AlertIcon';
|
|
41
|
+
|
|
42
|
+
export const AlertText = forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => (
|
|
43
|
+
<div ref={ref} className={`flex-1 ${className || ''}`} {...props} />
|
|
44
|
+
));
|
|
45
|
+
|
|
46
|
+
AlertText.displayName = 'AlertText';
|
|
47
|
+
|
|
48
|
+
export const AlertTitle = forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => (
|
|
49
|
+
<div ref={ref} className={`font-semibold mb-1 ${className || ''}`} {...props} />
|
|
50
|
+
));
|
|
51
|
+
|
|
52
|
+
AlertTitle.displayName = 'AlertTitle';
|
|
53
|
+
|
|
54
|
+
export const AlertDescription = forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(
|
|
55
|
+
({ className, ...props }, ref) => <div ref={ref} className={className} {...props} />,
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
AlertDescription.displayName = 'AlertDescription';
|
|
59
|
+
|
|
60
|
+
type IAlertProps = React.ComponentProps<'div'> & {
|
|
61
|
+
variant?: VariantProps<typeof alertStyle>['variant'];
|
|
62
|
+
status?: VariantProps<typeof alertStyle>['status'];
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const Alert = forwardRef<HTMLDivElement, IAlertProps>(({ className, variant, status, ...props }, ref) => {
|
|
66
|
+
return <div ref={ref} role="alert" className={alertStyle({ variant, status, class: className })} {...props} />;
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
Alert.displayName = 'Alert';
|
|
70
|
+
|
|
71
|
+
export { Alert };
|