rn-feav-ui 1.0.6 → 1.0.7

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.
@@ -1,2 +1,10 @@
1
1
  import * as React from "react";
2
- export declare const Showcase: () => React.JSX.Element;
2
+ import { ViewStyle } from "react-native";
3
+ type ShowcaseScreenPropsFEA = {
4
+ contentContainerStyle?: ViewStyle;
5
+ };
6
+ export declare const ShowcaseScreenFEA: ({ contentContainerStyle }: ShowcaseScreenPropsFEA) => React.JSX.Element;
7
+ export declare const ShowcaseWithProviderFEA: (props: ShowcaseScreenPropsFEA) => React.JSX.Element;
8
+ export declare const ShowcaseFEA: (props: ShowcaseScreenPropsFEA) => React.JSX.Element;
9
+ export declare const Showcase: (props: ShowcaseScreenPropsFEA) => React.JSX.Element;
10
+ export {};
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,212 +44,207 @@ var __importStar = (this && this.__importStar) || (function () {
33
44
  };
34
45
  })();
35
46
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Showcase = void 0;
47
+ exports.Showcase = exports.ShowcaseFEA = exports.ShowcaseWithProviderFEA = exports.ShowcaseScreenFEA = void 0;
37
48
  var React = __importStar(require("react"));
38
49
  var react_native_1 = require("react-native");
39
50
  var ThemeFEAVUiProvider_1 = require("../theme/ThemeFEAVUiProvider");
40
51
  var components_1 = require("../components");
41
- var ShowcaseContent = function () {
42
- var _a = (0, ThemeFEAVUiProvider_1.useTheme)(), theme = _a.theme, toggleTheme = _a.toggleTheme;
52
+ var SectionFEA = function (_a) {
53
+ var title = _a.title, children = _a.children;
54
+ return (React.createElement(components_1.CardFEA, null,
55
+ React.createElement(components_1.TypographyFEA, { variant: "h2" }, title),
56
+ React.createElement(react_native_1.View, { style: styles.sectionBody }, children)));
57
+ };
58
+ var ShowcaseScreenFEA = function (_a) {
59
+ var contentContainerStyle = _a.contentContainerStyle;
60
+ var _b = (0, ThemeFEAVUiProvider_1.useTheme)(), theme = _b.theme, toggleTheme = _b.toggleTheme;
43
61
  var toast = (0, components_1.useToastFEA)().toast;
44
- var _b = React.useState(true), checked = _b[0], setChecked = _b[1];
45
- var _c = React.useState(false), switchOn = _c[0], setSwitchOn = _c[1];
46
- var _d = React.useState(false), dialogOpen = _d[0], setDialogOpen = _d[1];
47
- var _e = React.useState(false), modalOpen = _e[0], setModalOpen = _e[1];
48
- var _f = React.useState(false), sheetOpen = _f[0], setSheetOpen = _f[1];
49
- var _g = React.useState(false), drawerOpen = _g[0], setDrawerOpen = _g[1];
50
- var _h = React.useState(false), alertDialogOpen = _h[0], setAlertDialogOpen = _h[1];
51
- var _j = React.useState(false), popoverOpen = _j[0], setPopoverOpen = _j[1];
52
- var _k = React.useState(false), menuOpen = _k[0], setMenuOpen = _k[1];
53
- var _l = React.useState(false), commandOpen = _l[0], setCommandOpen = _l[1];
54
- var _m = React.useState("dashboard"), sidebarValue = _m[0], setSidebarValue = _m[1];
55
- var _o = React.useState("home"), navValue = _o[0], setNavValue = _o[1];
56
- var _p = React.useState(3), page = _p[0], setPage = _p[1];
57
- var _q = React.useState("personal"), radio = _q[0], setRadio = _q[1];
58
- var _r = React.useState(undefined), selectValue = _r[0], setSelectValue = _r[1];
59
- var _s = React.useState(undefined), comboValue = _s[0], setComboValue = _s[1];
60
- var _t = React.useState(""), otp = _t[0], setOtp = _t[1];
61
- var _u = React.useState(new Date()), date = _u[0], setDate = _u[1];
62
- var _v = React.useState(false), collapseOpen = _v[0], setCollapseOpen = _v[1];
63
- var _w = React.useState(false), togglePressed = _w[0], setTogglePressed = _w[1];
64
- var _x = React.useState("left"), toggleGroupValue = _x[0], setToggleGroupValue = _x[1];
65
- var _y = React.useState(35), sliderValue = _y[0], setSliderValue = _y[1];
66
- return (React.createElement(react_native_1.View, { style: { flex: 1, backgroundColor: theme.colors.background } },
67
- React.createElement(components_1.ScrollAreaFEA, { contentContainerStyle: { padding: 16, gap: 14 } },
68
- React.createElement(components_1.NavbarFEA, { title: "FEA Full Showcase" }),
69
- React.createElement(components_1.CardFEA, null,
70
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Theme + Feedback"),
62
+ var _c = React.useState(true), checked = _c[0], setChecked = _c[1];
63
+ var _d = React.useState(false), switchOn = _d[0], setSwitchOn = _d[1];
64
+ var _e = React.useState(false), dialogOpen = _e[0], setDialogOpen = _e[1];
65
+ var _f = React.useState(false), modalOpen = _f[0], setModalOpen = _f[1];
66
+ var _g = React.useState(false), sheetOpen = _g[0], setSheetOpen = _g[1];
67
+ var _h = React.useState(false), drawerOpen = _h[0], setDrawerOpen = _h[1];
68
+ var _j = React.useState(false), alertDialogOpen = _j[0], setAlertDialogOpen = _j[1];
69
+ var _k = React.useState(false), popoverOpen = _k[0], setPopoverOpen = _k[1];
70
+ var _l = React.useState(false), menuOpen = _l[0], setMenuOpen = _l[1];
71
+ var _m = React.useState(false), commandOpen = _m[0], setCommandOpen = _m[1];
72
+ var _o = React.useState("dashboard"), sidebarValue = _o[0], setSidebarValue = _o[1];
73
+ var _p = React.useState("home"), navValue = _p[0], setNavValue = _p[1];
74
+ var _q = React.useState(3), page = _q[0], setPage = _q[1];
75
+ var _r = React.useState("personal"), radio = _r[0], setRadio = _r[1];
76
+ var _s = React.useState(undefined), selectValue = _s[0], setSelectValue = _s[1];
77
+ var _t = React.useState(undefined), comboValue = _t[0], setComboValue = _t[1];
78
+ var _u = React.useState(""), otp = _u[0], setOtp = _u[1];
79
+ var _v = React.useState(new Date()), date = _v[0], setDate = _v[1];
80
+ var _w = React.useState(false), collapseOpen = _w[0], setCollapseOpen = _w[1];
81
+ var _x = React.useState(false), togglePressed = _x[0], setTogglePressed = _x[1];
82
+ var _y = React.useState("left"), toggleGroupValue = _y[0], setToggleGroupValue = _y[1];
83
+ var _z = React.useState(35), sliderValue = _z[0], setSliderValue = _z[1];
84
+ return (React.createElement(react_native_1.View, { style: [styles.screen, { backgroundColor: theme.colors.background }] },
85
+ React.createElement(components_1.ScrollAreaFEA, { contentContainerStyle: [styles.container, contentContainerStyle] },
86
+ React.createElement(components_1.NavbarFEA, { title: "FEA UI Showcase" }),
87
+ React.createElement(SectionFEA, { title: "Theme + Feedback" },
71
88
  React.createElement(components_1.TypographyFEA, { variant: "muted" },
72
- "Current: ",
89
+ "Current theme: ",
73
90
  theme.mode),
74
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 8 } },
91
+ React.createElement(react_native_1.View, { style: styles.stackSm },
75
92
  React.createElement(components_1.ButtonFEA, { title: "Toggle Theme", variant: "outline", onPress: toggleTheme }),
76
93
  React.createElement(components_1.ThemeSwitchFEA, null),
77
- React.createElement(components_1.ButtonFEA, { title: "Toast", onPress: function () { return toast({ title: "Saved", description: "Your changes are saved." }); } }))),
78
- React.createElement(components_1.CardFEA, null,
79
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Core"),
80
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 10 } },
81
- React.createElement(react_native_1.View, { style: { flexDirection: "row", gap: 8 } },
82
- React.createElement(components_1.AvatarFEA, { fallback: "NT" }),
83
- React.createElement(components_1.AvatarFEA, { fallback: "UI", size: 32 }),
84
- React.createElement(components_1.BadgeFEA, { label: "Beta" }),
85
- React.createElement(components_1.KbdFEA, null, "Cmd+K")),
86
- React.createElement(components_1.ButtonFEA, { title: "Primary", onPress: function () { return null; } }),
87
- React.createElement(components_1.ButtonFEA, { title: "Outline", variant: "outline", onPress: function () { return null; } }),
88
- React.createElement(components_1.ProgressFEA, { value: 66 }),
89
- React.createElement(components_1.SkeletonFEA, { height: 38 }),
90
- React.createElement(components_1.EmptyFEA, { title: "No notifications", description: "Everything is clean." }))),
91
- React.createElement(components_1.CardFEA, null,
92
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Form"),
93
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 10 } },
94
- React.createElement(components_1.FieldFEA, { label: "Username", description: "This will be visible publicly" },
95
- React.createElement(components_1.InputFEA, { placeholder: "nura.trong" })),
96
- React.createElement(components_1.FieldFEA, { label: "Bio" },
97
- React.createElement(components_1.TextareaFEA, { placeholder: "Write something..." })),
98
- React.createElement(react_native_1.View, { style: { gap: 8 } },
99
- React.createElement(components_1.CheckboxFEA, { checked: checked, onChange: setChecked, label: "Accept terms" }),
100
- React.createElement(components_1.SwitchFEA, { value: switchOn, onValueChange: setSwitchOn, label: "Enable notifications" }),
101
- React.createElement(components_1.RadioGroupFEA, { value: radio, onValueChange: setRadio, options: [
102
- { label: "Personal", value: "personal" },
103
- { label: "Business", value: "business" },
104
- ] })),
105
- React.createElement(components_1.NativeSelectFEA, { value: selectValue, onValueChange: setSelectValue, options: [
106
- { label: "Vietnam", value: "vn" },
107
- { label: "Japan", value: "jp" },
108
- { label: "US", value: "us" },
109
- ] }),
110
- React.createElement(components_1.SelectFEA, { value: selectValue, onValueChange: setSelectValue, options: [
111
- { label: "Vietnam", value: "vn" },
112
- { label: "Japan", value: "jp" },
113
- { label: "US", value: "us" },
114
- ] }),
115
- React.createElement(components_1.ComboboxFEA, { value: comboValue, onValueChange: setComboValue, options: [
116
- { label: "React Native", value: "rn" },
117
- { label: "TypeScript", value: "ts" },
118
- { label: "Expo", value: "expo" },
119
- ] }),
120
- React.createElement(components_1.InputOTPFEA, { value: otp, onChange: setOtp }))),
121
- React.createElement(components_1.CardFEA, null,
122
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Navigation"),
123
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 10 } },
124
- React.createElement(components_1.BreadcrumbFEA, { items: [
125
- { label: "Home", onPress: function () { return null; } },
126
- { label: "Docs", onPress: function () { return null; } },
127
- { label: "Components" },
128
- ] }),
129
- React.createElement(components_1.NavigationMenuFEA, { value: navValue, onValueChange: setNavValue, items: [
130
- { label: "Home", value: "home" },
131
- { label: "Pricing", value: "pricing" },
132
- { label: "About", value: "about" },
133
- ] }),
134
- React.createElement(components_1.MenubarFEA, { items: [
135
- {
136
- label: "File",
137
- items: [{ label: "New" }, { label: "Open" }, { label: "Save" }],
138
- },
139
- {
140
- label: "Edit",
141
- items: [{ label: "Undo" }, { label: "Redo" }],
142
- },
143
- ] }),
144
- React.createElement(components_1.PaginationFEA, { page: page, pageCount: 12, onPageChange: setPage }))),
145
- React.createElement(components_1.CardFEA, null,
146
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Data Display"),
147
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 12 } },
148
- React.createElement(components_1.TableFEA, null,
149
- React.createElement(components_1.TableHeadFEA, null,
150
- React.createElement(react_native_1.View, { style: { flexDirection: "row" } },
151
- React.createElement(components_1.TableCellFEA, { flex: 2 }, "Name"),
152
- React.createElement(components_1.TableCellFEA, null, "Status"))),
153
- React.createElement(components_1.SeparatorFEA, null),
154
- React.createElement(components_1.TableRowFEA, null,
155
- React.createElement(components_1.TableCellFEA, { flex: 2 }, "Nura"),
156
- React.createElement(components_1.TableCellFEA, null, "Active"))),
157
- React.createElement(components_1.DataTableFEA, { columns: [
158
- { key: "name", header: "Name", flex: 2 },
159
- { key: "role", header: "Role" },
160
- ], data: [
161
- { name: "Alice", role: "Admin" },
162
- { name: "Bob", role: "Editor" },
163
- ], rowKey: function (row) { return row.name; } }),
164
- React.createElement(components_1.CalendarFEA, { value: date, onChange: setDate }),
165
- React.createElement(components_1.ChartFEA, { title: "Sales", data: [
166
- { label: "Mon", value: 12 },
167
- { label: "Tue", value: 8 },
168
- { label: "Wed", value: 15 },
169
- { label: "Thu", value: 10 },
170
- { label: "Fri", value: 18 },
171
- ] }))),
172
- React.createElement(components_1.CardFEA, null,
173
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Interaction"),
174
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 10 } },
175
- React.createElement(components_1.CollapsibleFEA, { open: collapseOpen, onOpenChange: setCollapseOpen, trigger: React.createElement(components_1.CollapsibleTriggerFEA, { title: "Collapsible Section", open: collapseOpen, onPress: function () { return setCollapseOpen(function (v) { return !v; }); } }) },
176
- React.createElement(components_1.TypographyFEA, { variant: "p" }, "Hidden content here.")),
177
- React.createElement(react_native_1.View, { style: { flexDirection: "row", gap: 8, flexWrap: "wrap" } },
178
- React.createElement(components_1.ToggleFEA, { pressed: togglePressed, onPressedChange: setTogglePressed }, "Toggle"),
179
- React.createElement(components_1.ToggleGroupFEA, { type: "single", value: toggleGroupValue, onValueChange: setToggleGroupValue, items: [
180
- { label: "Left", value: "left" },
181
- { label: "Center", value: "center" },
182
- { label: "Right", value: "right" },
183
- ] })),
184
- React.createElement(components_1.SliderFEA, { value: sliderValue, onValueChange: setSliderValue }),
185
- React.createElement(components_1.TypographyFEA, { variant: "small" },
186
- "Slider value: ",
187
- Math.round(sliderValue)),
188
- React.createElement(components_1.CarouselFEA, null, [1, 2, 3].map(function (n) { return (React.createElement(components_1.CardFEA, { key: n },
189
- React.createElement(components_1.TypographyFEA, { variant: "h3" },
190
- "Slide ",
191
- n))); })),
192
- React.createElement(components_1.ResizableFEA, { width: "100%", height: 80 },
193
- React.createElement(components_1.CardFEA, null,
194
- React.createElement(components_1.TypographyFEA, { variant: "small" }, "Resizable Area"))))),
195
- React.createElement(components_1.CardFEA, null,
196
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Overlay & Menu"),
197
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 8 } },
198
- React.createElement(components_1.PopoverFEA, { open: popoverOpen, onOpenChange: setPopoverOpen, trigger: React.createElement(components_1.ButtonFEA, { title: "Open Popover", onPress: function () { return setPopoverOpen(true); } }) },
199
- React.createElement(components_1.TypographyFEA, { variant: "p" }, "Popover content")),
200
- React.createElement(components_1.DropdownMenuFEA, { open: menuOpen, onOpenChange: setMenuOpen, trigger: React.createElement(components_1.ButtonFEA, { title: "Open Dropdown", onPress: function () { return setMenuOpen(true); } }), items: [
201
- { label: "Profile", onSelect: function () { return null; } },
202
- { label: "Settings", onSelect: function () { return null; } },
203
- { label: "Delete", destructive: true, onSelect: function () { return null; } },
204
- ] }),
205
- React.createElement(components_1.CommandFEA, { open: commandOpen, onOpenChange: setCommandOpen, trigger: React.createElement(components_1.ButtonFEA, { title: "Open Command", onPress: function () { return setCommandOpen(true); } }), items: [
206
- { label: "Go to dashboard", value: "dashboard" },
207
- { label: "Open profile", value: "profile" },
208
- { label: "Open settings", value: "settings" },
209
- ] }),
210
- React.createElement(react_native_1.View, { style: { flexDirection: "row", gap: 8, flexWrap: "wrap" } },
211
- React.createElement(components_1.TooltipFEA, { text: "Tooltip example" },
212
- React.createElement(components_1.ButtonFEA, { title: "Tooltip", variant: "outline", onPress: function () { return null; } })),
213
- React.createElement(components_1.HoverCardFEA, { text: "Hover card style info" },
214
- React.createElement(components_1.ButtonFEA, { title: "HoverCard", variant: "outline", onPress: function () { return null; } })),
215
- React.createElement(components_1.ButtonFEA, { title: "Open Dialog", onPress: function () { return setDialogOpen(true); } }),
216
- React.createElement(components_1.ButtonFEA, { title: "Open AlertDialog", variant: "outline", onPress: function () { return setAlertDialogOpen(true); } }),
217
- React.createElement(components_1.ButtonFEA, { title: "Open Modal", variant: "outline", onPress: function () { return setModalOpen(true); } }),
218
- React.createElement(components_1.ButtonFEA, { title: "Open Sheet", variant: "outline", onPress: function () { return setSheetOpen(true); } }),
219
- React.createElement(components_1.ButtonFEA, { title: "Open Drawer", variant: "outline", onPress: function () { return setDrawerOpen(true); } }),
220
- React.createElement(components_1.ButtonFEA, { title: "Open Sidebar", variant: "outline", onPress: function () { return setDrawerOpen(true); } })))),
221
- React.createElement(components_1.CardFEA, null,
222
- React.createElement(components_1.TypographyFEA, { variant: "h2" }, "Legacy / Existing"),
223
- React.createElement(react_native_1.View, { style: { marginTop: 10, gap: 8 } },
224
- React.createElement(components_1.TabsFEA, { defaultValue: "account" },
225
- React.createElement(components_1.TabsListFEA, null,
226
- React.createElement(components_1.TabsTriggerFEA, { value: "account" }, "Account"),
227
- React.createElement(components_1.TabsTriggerFEA, { value: "password" }, "Password")),
228
- React.createElement(components_1.TabsContentFEA, { value: "account" },
229
- React.createElement(components_1.TypographyFEA, { variant: "p" }, "Account content.")),
230
- React.createElement(components_1.TabsContentFEA, { value: "password" },
231
- React.createElement(components_1.TypographyFEA, { variant: "p" }, "Password content."))),
232
- React.createElement(components_1.ListItemFEA, { title: "List title", subtitle: "Supporting text." }),
233
- React.createElement(components_1.TabBarFEA, null,
234
- React.createElement(components_1.ButtonFEA, { title: "Home", variant: "ghost", onPress: function () { return null; } }),
235
- React.createElement(components_1.ButtonFEA, { title: "Search", variant: "ghost", onPress: function () { return null; } }),
236
- React.createElement(components_1.ButtonFEA, { title: "Profile", variant: "ghost", onPress: function () { return null; } })),
237
- React.createElement(components_1.BottomSheetFEA, null,
238
- React.createElement(components_1.TypographyFEA, { variant: "small" }, "BottomSheet preview")))),
94
+ React.createElement(components_1.ButtonFEA, { title: "Show Toast", onPress: function () { return toast({ title: "Saved", description: "Your changes were saved." }); } }))),
95
+ React.createElement(SectionFEA, { title: "Core" },
96
+ React.createElement(react_native_1.View, { style: styles.rowWrap },
97
+ React.createElement(components_1.AvatarFEA, { fallback: "NT" }),
98
+ React.createElement(components_1.AvatarFEA, { fallback: "UI", size: 32 }),
99
+ React.createElement(components_1.BadgeFEA, { label: "Beta" }),
100
+ React.createElement(components_1.KbdFEA, null, "Cmd+K")),
101
+ React.createElement(components_1.ButtonFEA, { title: "Primary", onPress: function () { return null; } }),
102
+ React.createElement(components_1.ButtonFEA, { title: "Outline", variant: "outline", onPress: function () { return null; } }),
103
+ React.createElement(components_1.ProgressFEA, { value: 66 }),
104
+ React.createElement(components_1.SkeletonFEA, { height: 38 }),
105
+ React.createElement(components_1.EmptyFEA, { title: "No notifications", description: "Everything is clean." })),
106
+ React.createElement(SectionFEA, { title: "Form" },
107
+ React.createElement(components_1.FieldFEA, { label: "Username", description: "This will be visible publicly" },
108
+ React.createElement(components_1.InputFEA, { placeholder: "nura.trong" })),
109
+ React.createElement(components_1.FieldFEA, { label: "Bio" },
110
+ React.createElement(components_1.TextareaFEA, { placeholder: "Write something..." })),
111
+ React.createElement(react_native_1.View, { style: styles.stackSm },
112
+ React.createElement(components_1.CheckboxFEA, { checked: checked, onChange: setChecked, label: "Accept terms" }),
113
+ React.createElement(components_1.SwitchFEA, { value: switchOn, onValueChange: setSwitchOn, label: "Enable notifications" }),
114
+ React.createElement(components_1.RadioGroupFEA, { value: radio, onValueChange: setRadio, options: [
115
+ { label: "Personal", value: "personal" },
116
+ { label: "Business", value: "business" },
117
+ ] })),
118
+ React.createElement(components_1.NativeSelectFEA, { value: selectValue, onValueChange: setSelectValue, options: [
119
+ { label: "Vietnam", value: "vn" },
120
+ { label: "Japan", value: "jp" },
121
+ { label: "US", value: "us" },
122
+ ] }),
123
+ React.createElement(components_1.SelectFEA, { value: selectValue, onValueChange: setSelectValue, options: [
124
+ { label: "Vietnam", value: "vn" },
125
+ { label: "Japan", value: "jp" },
126
+ { label: "US", value: "us" },
127
+ ] }),
128
+ React.createElement(components_1.ComboboxFEA, { value: comboValue, onValueChange: setComboValue, options: [
129
+ { label: "React Native", value: "rn" },
130
+ { label: "TypeScript", value: "ts" },
131
+ { label: "Expo", value: "expo" },
132
+ ] }),
133
+ React.createElement(components_1.InputOTPFEA, { value: otp, onChange: setOtp })),
134
+ React.createElement(SectionFEA, { title: "Navigation" },
135
+ React.createElement(components_1.BreadcrumbFEA, { items: [
136
+ { label: "Home", onPress: function () { return null; } },
137
+ { label: "Docs", onPress: function () { return null; } },
138
+ { label: "Components" },
139
+ ] }),
140
+ React.createElement(components_1.NavigationMenuFEA, { value: navValue, onValueChange: setNavValue, items: [
141
+ { label: "Home", value: "home" },
142
+ { label: "Pricing", value: "pricing" },
143
+ { label: "About", value: "about" },
144
+ ] }),
145
+ React.createElement(components_1.MenubarFEA, { items: [
146
+ {
147
+ label: "File",
148
+ items: [{ label: "New" }, { label: "Open" }, { label: "Save" }],
149
+ },
150
+ {
151
+ label: "Edit",
152
+ items: [{ label: "Undo" }, { label: "Redo" }],
153
+ },
154
+ ] }),
155
+ React.createElement(components_1.PaginationFEA, { page: page, pageCount: 12, onPageChange: setPage })),
156
+ React.createElement(SectionFEA, { title: "Data Display" },
157
+ React.createElement(components_1.TableFEA, null,
158
+ React.createElement(components_1.TableHeadFEA, null,
159
+ React.createElement(react_native_1.View, { style: styles.row },
160
+ React.createElement(components_1.TableCellFEA, { flex: 2 }, "Name"),
161
+ React.createElement(components_1.TableCellFEA, null, "Status"))),
162
+ React.createElement(components_1.SeparatorFEA, null),
163
+ React.createElement(components_1.TableRowFEA, null,
164
+ React.createElement(components_1.TableCellFEA, { flex: 2 }, "Nura"),
165
+ React.createElement(components_1.TableCellFEA, null, "Active"))),
166
+ React.createElement(components_1.DataTableFEA, { columns: [
167
+ { key: "name", header: "Name", flex: 2 },
168
+ { key: "role", header: "Role" },
169
+ ], data: [
170
+ { name: "Alice", role: "Admin" },
171
+ { name: "Bob", role: "Editor" },
172
+ ], rowKey: function (row) { return row.name; } }),
173
+ React.createElement(components_1.CalendarFEA, { value: date, onChange: setDate }),
174
+ React.createElement(components_1.ChartFEA, { title: "Sales", data: [
175
+ { label: "Mon", value: 12 },
176
+ { label: "Tue", value: 8 },
177
+ { label: "Wed", value: 15 },
178
+ { label: "Thu", value: 10 },
179
+ { label: "Fri", value: 18 },
180
+ ] })),
181
+ React.createElement(SectionFEA, { title: "Interaction" },
182
+ React.createElement(components_1.AccordionFEA, { title: "Accordion Item" },
183
+ React.createElement(components_1.TypographyFEA, { variant: "small" }, "Accordion content here.")),
184
+ React.createElement(components_1.CollapsibleFEA, { open: collapseOpen, onOpenChange: setCollapseOpen, trigger: React.createElement(components_1.CollapsibleTriggerFEA, { title: "Collapsible Section", open: collapseOpen, onPress: function () { return setCollapseOpen(function (v) { return !v; }); } }) },
185
+ React.createElement(components_1.TypographyFEA, { variant: "p" }, "Hidden content here.")),
186
+ React.createElement(react_native_1.View, { style: styles.rowWrap },
187
+ React.createElement(components_1.ToggleFEA, { pressed: togglePressed, onPressedChange: setTogglePressed }, "Toggle"),
188
+ React.createElement(components_1.ToggleGroupFEA, { type: "single", value: toggleGroupValue, onValueChange: setToggleGroupValue, items: [
189
+ { label: "Left", value: "left" },
190
+ { label: "Center", value: "center" },
191
+ { label: "Right", value: "right" },
192
+ ] })),
193
+ React.createElement(components_1.SliderFEA, { value: sliderValue, onValueChange: setSliderValue }),
194
+ React.createElement(components_1.TypographyFEA, { variant: "small" },
195
+ "Slider value: ",
196
+ Math.round(sliderValue)),
197
+ React.createElement(components_1.CarouselFEA, null, [1, 2, 3].map(function (n) { return (React.createElement(components_1.CardFEA, { key: n },
198
+ React.createElement(components_1.TypographyFEA, { variant: "h3" },
199
+ "Slide ",
200
+ n))); })),
201
+ React.createElement(components_1.ResizableFEA, { width: "100%", height: 80 },
202
+ React.createElement(components_1.CardFEA, null,
203
+ React.createElement(components_1.TypographyFEA, { variant: "small" }, "Resizable Area")))),
204
+ React.createElement(SectionFEA, { title: "Overlay + Menu" },
205
+ React.createElement(components_1.PopoverFEA, { open: popoverOpen, onOpenChange: setPopoverOpen, trigger: React.createElement(components_1.ButtonFEA, { title: "Open Popover", onPress: function () { return setPopoverOpen(true); } }) },
206
+ React.createElement(components_1.TypographyFEA, { variant: "p" }, "Popover content")),
207
+ React.createElement(components_1.DropdownMenuFEA, { open: menuOpen, onOpenChange: setMenuOpen, trigger: React.createElement(components_1.ButtonFEA, { title: "Open Dropdown", onPress: function () { return setMenuOpen(true); } }), items: [
208
+ { label: "Profile", onSelect: function () { return null; } },
209
+ { label: "Settings", onSelect: function () { return null; } },
210
+ { label: "Delete", destructive: true, onSelect: function () { return null; } },
211
+ ] }),
212
+ React.createElement(components_1.CommandFEA, { open: commandOpen, onOpenChange: setCommandOpen, trigger: React.createElement(components_1.ButtonFEA, { title: "Open Command", onPress: function () { return setCommandOpen(true); } }), items: [
213
+ { label: "Go to dashboard", value: "dashboard" },
214
+ { label: "Open profile", value: "profile" },
215
+ { label: "Open settings", value: "settings" },
216
+ ] }),
217
+ React.createElement(react_native_1.View, { style: styles.rowWrap },
218
+ React.createElement(components_1.TooltipFEA, { text: "Tooltip example" },
219
+ React.createElement(components_1.ButtonFEA, { title: "Tooltip", variant: "outline", onPress: function () { return null; } })),
220
+ React.createElement(components_1.HoverCardFEA, { text: "Hover card style info" },
221
+ React.createElement(components_1.ButtonFEA, { title: "HoverCard", variant: "outline", onPress: function () { return null; } })),
222
+ React.createElement(components_1.ButtonFEA, { title: "Open Dialog", onPress: function () { return setDialogOpen(true); } }),
223
+ React.createElement(components_1.ButtonFEA, { title: "Open AlertDialog", variant: "outline", onPress: function () { return setAlertDialogOpen(true); } }),
224
+ React.createElement(components_1.ButtonFEA, { title: "Open Modal", variant: "outline", onPress: function () { return setModalOpen(true); } }),
225
+ React.createElement(components_1.ButtonFEA, { title: "Open Sheet", variant: "outline", onPress: function () { return setSheetOpen(true); } }),
226
+ React.createElement(components_1.ButtonFEA, { title: "Open Drawer", variant: "outline", onPress: function () { return setDrawerOpen(true); } }),
227
+ React.createElement(components_1.ButtonFEA, { title: "Open Sidebar", variant: "outline", onPress: function () { return setDrawerOpen(true); } }))),
228
+ React.createElement(SectionFEA, { title: "Legacy + Existing" },
229
+ React.createElement(components_1.TabsFEA, { defaultValue: "account" },
230
+ React.createElement(components_1.TabsListFEA, null,
231
+ React.createElement(components_1.TabsTriggerFEA, { value: "account" }, "Account"),
232
+ React.createElement(components_1.TabsTriggerFEA, { value: "password" }, "Password")),
233
+ React.createElement(components_1.TabsContentFEA, { value: "account" },
234
+ React.createElement(components_1.TypographyFEA, { variant: "p" }, "Account content.")),
235
+ React.createElement(components_1.TabsContentFEA, { value: "password" },
236
+ React.createElement(components_1.TypographyFEA, { variant: "p" }, "Password content."))),
237
+ React.createElement(components_1.ListItemFEA, { title: "List title", subtitle: "Supporting text." }),
238
+ React.createElement(components_1.LabelFEA, { required: true }, "Required label sample"),
239
+ React.createElement(components_1.TabBarFEA, null,
240
+ React.createElement(components_1.ButtonFEA, { title: "Home", variant: "ghost", onPress: function () { return null; } }),
241
+ React.createElement(components_1.ButtonFEA, { title: "Search", variant: "ghost", onPress: function () { return null; } }),
242
+ React.createElement(components_1.ButtonFEA, { title: "Profile", variant: "ghost", onPress: function () { return null; } })),
243
+ React.createElement(components_1.BottomSheetFEA, null,
244
+ React.createElement(components_1.TypographyFEA, { variant: "small" }, "BottomSheet preview"))),
239
245
  React.createElement(components_1.AspectRatioFEA, { ratio: 16 / 9 },
240
- React.createElement(components_1.CardFEA, { style: { flex: 1, justifyContent: "center" } },
241
- React.createElement(components_1.TypographyFEA, { variant: "small" }, "Aspect Ratio 16:9"))),
246
+ React.createElement(components_1.CardFEA, { style: styles.aspectCard },
247
+ React.createElement(components_1.TypographyFEA, { variant: "small" }, "Aspect ratio 16:9"))),
242
248
  React.createElement(components_1.SpinnerFEA, { size: "large" })),
243
249
  React.createElement(components_1.DialogFEA, { open: dialogOpen, onOpenChange: setDialogOpen },
244
250
  React.createElement(components_1.DialogHeaderFEA, null,
@@ -251,7 +257,7 @@ var ShowcaseContent = function () {
251
257
  React.createElement(components_1.ModalFEA, { visible: modalOpen },
252
258
  React.createElement(components_1.TypographyFEA, { variant: "h3" }, "Modal Content"),
253
259
  React.createElement(components_1.TypographyFEA, { variant: "muted" }, "This is modal preview."),
254
- React.createElement(react_native_1.View, { style: { marginTop: 12 } },
260
+ React.createElement(react_native_1.View, { style: styles.stackSm },
255
261
  React.createElement(components_1.ButtonFEA, { title: "Close", onPress: function () { return setModalOpen(false); } }))),
256
262
  React.createElement(components_1.SheetFEA, { open: sheetOpen, onOpenChange: setSheetOpen },
257
263
  React.createElement(components_1.TypographyFEA, { variant: "h3" }, "Sheet"),
@@ -264,7 +270,19 @@ var ShowcaseContent = function () {
264
270
  { label: "Settings", value: "settings" },
265
271
  ] })));
266
272
  };
267
- var Showcase = function () { return (React.createElement(ThemeFEAVUiProvider_1.ThemeFEAVUiProvider, null,
273
+ exports.ShowcaseScreenFEA = ShowcaseScreenFEA;
274
+ var ShowcaseWithProviderFEA = function (props) { return (React.createElement(ThemeFEAVUiProvider_1.ThemeFEAVUiProvider, null,
268
275
  React.createElement(components_1.SonnerFEA, null,
269
- React.createElement(ShowcaseContent, null)))); };
270
- exports.Showcase = Showcase;
276
+ React.createElement(exports.ShowcaseScreenFEA, __assign({}, props))))); };
277
+ exports.ShowcaseWithProviderFEA = ShowcaseWithProviderFEA;
278
+ exports.ShowcaseFEA = exports.ShowcaseWithProviderFEA;
279
+ exports.Showcase = exports.ShowcaseWithProviderFEA;
280
+ var styles = react_native_1.StyleSheet.create({
281
+ screen: { flex: 1 },
282
+ container: { padding: 16, gap: 14 },
283
+ sectionBody: { marginTop: 10, gap: 10 },
284
+ stackSm: { marginTop: 10, gap: 8 },
285
+ row: { flexDirection: "row" },
286
+ rowWrap: { flexDirection: "row", gap: 8, flexWrap: "wrap" },
287
+ aspectCard: { flex: 1, justifyContent: "center" },
288
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rn-feav-ui",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "Shadcn-style React Native UI kit with theme support.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/readme.md CHANGED
@@ -82,6 +82,41 @@ Full demo screen:
82
82
 
83
83
  - `src/examples/Showcase.tsx`
84
84
 
85
+ Imports from package root:
86
+
87
+ - `ShowcaseFEA` (recommended): full demo with internal `ThemeFEAVUiProvider` + `SonnerFEA`.
88
+ - `ShowcaseWithProviderFEA`: same as `ShowcaseFEA` (explicit naming).
89
+ - `ShowcaseScreenFEA`: screen only, for apps that already wrap provider + toast host.
90
+ - `Showcase`: backward-compatible alias of `ShowcaseFEA`.
91
+
92
+ Example (standalone):
93
+
94
+ ```tsx
95
+ import * as React from "react";
96
+ import { ShowcaseFEA } from "rn-feav-ui";
97
+
98
+ export default function Screen() {
99
+ return <ShowcaseFEA />;
100
+ }
101
+ ```
102
+
103
+ Example (already using your own provider tree):
104
+
105
+ ```tsx
106
+ import * as React from "react";
107
+ import { SonnerFEA, ShowcaseScreenFEA, ThemeFEAVUiProvider } from "rn-feav-ui";
108
+
109
+ export default function Screen() {
110
+ return (
111
+ <ThemeFEAVUiProvider>
112
+ <SonnerFEA>
113
+ <ShowcaseScreenFEA />
114
+ </SonnerFEA>
115
+ </ThemeFEAVUiProvider>
116
+ );
117
+ }
118
+ ```
119
+
85
120
  ---
86
121
 
87
122
  ## API Reference