rn-feav-ui 1.0.4 → 1.0.6

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.
Files changed (97) hide show
  1. package/dist/components/AlertDialog/index.d.ts +11 -0
  2. package/dist/components/AlertDialog/index.js +54 -0
  3. package/dist/components/AspectRatio/index.d.ts +7 -0
  4. package/dist/components/AspectRatio/index.js +43 -0
  5. package/dist/components/Badge/index.d.ts +9 -2
  6. package/dist/components/Badge/index.js +24 -9
  7. package/dist/components/Breadcrumb/index.d.ts +11 -0
  8. package/dist/components/Breadcrumb/index.js +60 -0
  9. package/dist/components/Button/index.d.ts +10 -3
  10. package/dist/components/Button/index.js +63 -42
  11. package/dist/components/Calendar/index.d.ts +7 -0
  12. package/dist/components/Calendar/index.js +105 -0
  13. package/dist/components/Card/index.d.ts +7 -3
  14. package/dist/components/Card/index.js +16 -9
  15. package/dist/components/Carousel/index.d.ts +7 -0
  16. package/dist/components/Carousel/index.js +47 -0
  17. package/dist/components/Chart/index.d.ts +12 -0
  18. package/dist/components/Chart/index.js +75 -0
  19. package/dist/components/Checkbox/index.d.ts +9 -1
  20. package/dist/components/Checkbox/index.js +13 -9
  21. package/dist/components/Collapsible/index.d.ts +15 -0
  22. package/dist/components/Collapsible/index.js +73 -0
  23. package/dist/components/Combobox/index.d.ts +13 -0
  24. package/dist/components/Combobox/index.js +107 -0
  25. package/dist/components/Command/index.d.ts +16 -0
  26. package/dist/components/Command/index.js +87 -0
  27. package/dist/components/ContextMenu/index.d.ts +6 -0
  28. package/dist/components/ContextMenu/index.js +45 -0
  29. package/dist/components/DataTable/index.d.ts +16 -0
  30. package/dist/components/DataTable/index.js +72 -0
  31. package/dist/components/DatePicker/index.d.ts +9 -0
  32. package/dist/components/DatePicker/index.js +83 -0
  33. package/dist/components/Drawer/index.d.ts +9 -0
  34. package/dist/components/Drawer/index.js +70 -0
  35. package/dist/components/DropdownMenu/index.d.ts +15 -0
  36. package/dist/components/DropdownMenu/index.js +80 -0
  37. package/dist/components/Empty/index.d.ts +7 -0
  38. package/dist/components/Empty/index.js +63 -0
  39. package/dist/components/Field/index.d.ts +9 -0
  40. package/dist/components/Field/index.js +54 -0
  41. package/dist/components/Input/index.d.ts +5 -6
  42. package/dist/components/Input/index.js +26 -3
  43. package/dist/components/InputGroup/index.d.ts +6 -0
  44. package/dist/components/InputGroup/index.js +59 -0
  45. package/dist/components/InputOTP/index.d.ts +8 -0
  46. package/dist/components/InputOTP/index.js +79 -0
  47. package/dist/components/Kbd/index.d.ts +6 -0
  48. package/dist/components/Kbd/index.js +62 -0
  49. package/dist/components/Label/index.d.ts +8 -1
  50. package/dist/components/Label/index.js +8 -2
  51. package/dist/components/Menubar/index.d.ts +11 -0
  52. package/dist/components/Menubar/index.js +69 -0
  53. package/dist/components/NativeSelect/index.d.ts +21 -0
  54. package/dist/components/NativeSelect/index.js +76 -0
  55. package/dist/components/NavigationMenu/index.d.ts +13 -0
  56. package/dist/components/NavigationMenu/index.js +81 -0
  57. package/dist/components/Pagination/index.d.ts +9 -0
  58. package/dist/components/Pagination/index.js +101 -0
  59. package/dist/components/Popover/index.d.ts +9 -0
  60. package/dist/components/Popover/index.js +69 -0
  61. package/dist/components/RadioGroup/index.d.ts +13 -0
  62. package/dist/components/RadioGroup/index.js +66 -0
  63. package/dist/components/Resizable/index.d.ts +8 -0
  64. package/dist/components/Resizable/index.js +45 -0
  65. package/dist/components/ScrollArea/index.d.ts +6 -0
  66. package/dist/components/ScrollArea/index.js +65 -0
  67. package/dist/components/Sheet/index.d.ts +8 -0
  68. package/dist/components/Sheet/index.js +65 -0
  69. package/dist/components/Sidebar/index.d.ts +17 -0
  70. package/dist/components/Sidebar/index.js +81 -0
  71. package/dist/components/Slider/index.d.ts +10 -0
  72. package/dist/components/Slider/index.js +104 -0
  73. package/dist/components/Sonner/index.d.ts +16 -0
  74. package/dist/components/Sonner/index.js +97 -0
  75. package/dist/components/Spinner/index.d.ts +6 -0
  76. package/dist/components/Spinner/index.js +46 -0
  77. package/dist/components/Switch/index.d.ts +9 -2
  78. package/dist/components/Switch/index.js +10 -4
  79. package/dist/components/Table/index.d.ts +20 -0
  80. package/dist/components/Table/index.js +91 -0
  81. package/dist/components/Textarea/index.d.ts +5 -5
  82. package/dist/components/Textarea/index.js +26 -3
  83. package/dist/components/Toggle/index.d.ts +9 -0
  84. package/dist/components/Toggle/index.js +68 -0
  85. package/dist/components/ToggleGroup/index.d.ts +13 -0
  86. package/dist/components/ToggleGroup/index.js +68 -0
  87. package/dist/components/Tooltip/index.d.ts +9 -0
  88. package/dist/components/Tooltip/index.js +77 -0
  89. package/dist/components/Typography/index.d.ts +8 -1
  90. package/dist/components/Typography/index.js +2 -2
  91. package/dist/components/index.d.ts +36 -0
  92. package/dist/components/index.js +36 -0
  93. package/dist/examples/Showcase.js +197 -58
  94. package/dist/index.d.ts +2 -0
  95. package/dist/index.js +5 -0
  96. package/package.json +1 -1
  97. package/readme.md +615 -29
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.InputOTPFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var InputOTPFEA = function (_a) {
41
+ var value = _a.value, onChange = _a.onChange, _b = _a.length, length = _b === void 0 ? 6 : _b, style = _a.style;
42
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
+ var refs = React.useRef([]);
44
+ var chars = Array.from({ length: length }, function (_, i) { var _a; return (_a = value[i]) !== null && _a !== void 0 ? _a : ""; });
45
+ return (React.createElement(react_native_1.View, { style: [styles.row, style] }, chars.map(function (ch, idx) { return (React.createElement(react_native_1.TextInput, { key: idx, ref: function (r) {
46
+ refs.current[idx] = r;
47
+ }, value: ch, keyboardType: "number-pad", maxLength: 1, placeholder: "\u2022", placeholderTextColor: theme.colors.mutedForeground, style: [
48
+ styles.cell,
49
+ {
50
+ borderColor: theme.colors.input,
51
+ color: theme.colors.foreground,
52
+ backgroundColor: theme.colors.background,
53
+ },
54
+ ], onChangeText: function (t) {
55
+ var _a;
56
+ var nextChar = t.replace(/\D/g, "").slice(-1);
57
+ var next = value.split("");
58
+ while (next.length < length)
59
+ next.push("");
60
+ next[idx] = nextChar;
61
+ var joined = next.join("").slice(0, length);
62
+ onChange(joined);
63
+ if (nextChar && idx < length - 1)
64
+ (_a = refs.current[idx + 1]) === null || _a === void 0 ? void 0 : _a.focus();
65
+ } })); })));
66
+ };
67
+ exports.InputOTPFEA = InputOTPFEA;
68
+ var styles = react_native_1.StyleSheet.create({
69
+ row: { flexDirection: "row", gap: 8 },
70
+ cell: {
71
+ width: 44,
72
+ height: 48,
73
+ borderWidth: 1,
74
+ borderRadius: 10,
75
+ textAlign: "center",
76
+ fontSize: 18,
77
+ fontWeight: "600",
78
+ },
79
+ });
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { StyleProp, TextStyle } from "react-native";
3
+ export declare const KbdFEA: ({ children, style, }: {
4
+ children: React.ReactNode;
5
+ style?: StyleProp<TextStyle>;
6
+ }) => React.JSX.Element;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.KbdFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var KbdFEA = function (_a) {
41
+ var children = _a.children, style = _a.style;
42
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
+ return (React.createElement(react_native_1.View, { style: [
44
+ styles.wrap,
45
+ { backgroundColor: theme.colors.muted, borderColor: theme.colors.border },
46
+ ] },
47
+ React.createElement(react_native_1.Text, { style: [styles.text, { color: theme.colors.foreground }, style] }, children)));
48
+ };
49
+ exports.KbdFEA = KbdFEA;
50
+ var styles = react_native_1.StyleSheet.create({
51
+ wrap: {
52
+ borderWidth: 1,
53
+ borderRadius: 8,
54
+ paddingHorizontal: 8,
55
+ paddingVertical: 4,
56
+ alignSelf: "flex-start",
57
+ },
58
+ text: {
59
+ fontSize: 12,
60
+ fontWeight: "600",
61
+ },
62
+ });
@@ -1,6 +1,13 @@
1
1
  import * as React from "react";
2
2
  import { StyleProp, TextStyle } from "react-native";
3
- export declare const LabelFEA: ({ children, style, }: {
3
+ export declare const LabelFEA: ({ children, style, required, disabled, testID, nativeID, numberOfLines, }: {
4
4
  children: React.ReactNode;
5
5
  style?: StyleProp<TextStyle>;
6
+ /** Shows a trailing asterisk when true. */
7
+ required?: boolean;
8
+ disabled?: boolean;
9
+ testID?: string;
10
+ /** Wire to an input via `nativeID` / `accessibilityLabelledBy` patterns. */
11
+ nativeID?: string;
12
+ numberOfLines?: number;
6
13
  }) => React.JSX.Element;
@@ -38,9 +38,15 @@ var React = __importStar(require("react"));
38
38
  var react_native_1 = require("react-native");
39
39
  var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
40
  var LabelFEA = function (_a) {
41
- var children = _a.children, style = _a.style;
41
+ var children = _a.children, style = _a.style, required = _a.required, disabled = _a.disabled, testID = _a.testID, nativeID = _a.nativeID, numberOfLines = _a.numberOfLines;
42
42
  var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
- return React.createElement(react_native_1.Text, { style: [styles.base, { color: theme.colors.text }, style] }, children);
43
+ return (React.createElement(react_native_1.Text, { nativeID: nativeID, testID: testID, numberOfLines: numberOfLines, style: [
44
+ styles.base,
45
+ { color: theme.colors.foreground, opacity: disabled ? 0.6 : 1 },
46
+ style,
47
+ ] },
48
+ children,
49
+ required ? React.createElement(react_native_1.Text, { style: { color: theme.colors.destructive } }, " *") : null));
44
50
  };
45
51
  exports.LabelFEA = LabelFEA;
46
52
  var styles = react_native_1.StyleSheet.create({
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ import { DropdownMenuItemFEA } from "../DropdownMenu";
4
+ export type MenubarItemFEA = {
5
+ label: string;
6
+ items: DropdownMenuItemFEA[];
7
+ };
8
+ export declare const MenubarFEA: ({ items, style, }: {
9
+ items: MenubarItemFEA[];
10
+ style?: StyleProp<ViewStyle>;
11
+ }) => React.JSX.Element;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.MenubarFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var DropdownMenu_1 = require("../DropdownMenu");
41
+ var MenubarFEA = function (_a) {
42
+ var items = _a.items, style = _a.style;
43
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
44
+ var _b = React.useState(null), openKey = _b[0], setOpenKey = _b[1];
45
+ return (React.createElement(react_native_1.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: [
46
+ styles.row,
47
+ { backgroundColor: theme.colors.muted, borderColor: theme.colors.border },
48
+ style,
49
+ ] }, items.map(function (it) {
50
+ var open = openKey === it.label;
51
+ return (React.createElement(DropdownMenu_1.DropdownMenuFEA, { key: it.label, open: open, onOpenChange: function (next) { return setOpenKey(next ? it.label : null); }, items: it.items, trigger: React.createElement(react_native_1.Pressable, { style: styles.trigger },
52
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, fontWeight: "600" } }, it.label)), style: { minWidth: 240 } }));
53
+ })));
54
+ };
55
+ exports.MenubarFEA = MenubarFEA;
56
+ var styles = react_native_1.StyleSheet.create({
57
+ row: {
58
+ padding: 6,
59
+ gap: 6,
60
+ borderWidth: 1,
61
+ borderRadius: 12,
62
+ alignItems: "center",
63
+ },
64
+ trigger: {
65
+ paddingVertical: 8,
66
+ paddingHorizontal: 10,
67
+ borderRadius: 10,
68
+ },
69
+ });
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type SelectOptionFEA = {
4
+ label: string;
5
+ value: string;
6
+ disabled?: boolean;
7
+ };
8
+ export declare const NativeSelectFEA: ({ value, onValueChange, options, placeholder, style, }: {
9
+ value?: string;
10
+ onValueChange: (next: string) => void;
11
+ options: SelectOptionFEA[];
12
+ placeholder?: string;
13
+ style?: StyleProp<ViewStyle>;
14
+ }) => React.JSX.Element;
15
+ export declare const SelectFEA: ({ value, onValueChange, options, placeholder, style, }: {
16
+ value?: string;
17
+ onValueChange: (next: string) => void;
18
+ options: SelectOptionFEA[];
19
+ placeholder?: string;
20
+ style?: StyleProp<ViewStyle>;
21
+ }) => React.JSX.Element;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SelectFEA = exports.NativeSelectFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var DropdownMenu_1 = require("../DropdownMenu");
41
+ var NativeSelectFEA = function (_a) {
42
+ var _b;
43
+ var value = _a.value, onValueChange = _a.onValueChange, options = _a.options, _c = _a.placeholder, placeholder = _c === void 0 ? "Select..." : _c, style = _a.style;
44
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
45
+ var _d = React.useState(false), open = _d[0], setOpen = _d[1];
46
+ var selected = options.find(function (o) { return o.value === value; });
47
+ var items = options.map(function (o) { return ({
48
+ label: o.label,
49
+ disabled: o.disabled,
50
+ onSelect: function () { return onValueChange(o.value); },
51
+ }); });
52
+ return (React.createElement(DropdownMenu_1.DropdownMenuFEA, { open: open, onOpenChange: setOpen, items: items, style: style, trigger: React.createElement(react_native_1.Pressable, { style: [
53
+ styles.trigger,
54
+ {
55
+ borderColor: theme.colors.input,
56
+ backgroundColor: theme.colors.background,
57
+ },
58
+ ] },
59
+ React.createElement(react_native_1.Text, { style: { color: selected ? theme.colors.foreground : theme.colors.mutedForeground, fontWeight: "500" } }, (_b = selected === null || selected === void 0 ? void 0 : selected.label) !== null && _b !== void 0 ? _b : placeholder),
60
+ React.createElement(react_native_1.View, { style: styles.chev },
61
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.mutedForeground } }, "\u25BE"))) }));
62
+ };
63
+ exports.NativeSelectFEA = NativeSelectFEA;
64
+ exports.SelectFEA = exports.NativeSelectFEA;
65
+ var styles = react_native_1.StyleSheet.create({
66
+ trigger: {
67
+ borderWidth: 1,
68
+ borderRadius: 10,
69
+ paddingVertical: 10,
70
+ paddingHorizontal: 12,
71
+ flexDirection: "row",
72
+ alignItems: "center",
73
+ justifyContent: "space-between",
74
+ },
75
+ chev: { marginLeft: 10 },
76
+ });
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type NavigationMenuItemFEA = {
4
+ label: string;
5
+ value: string;
6
+ disabled?: boolean;
7
+ };
8
+ export declare const NavigationMenuFEA: ({ value, onValueChange, items, style, }: {
9
+ value: string;
10
+ onValueChange: (next: string) => void;
11
+ items: NavigationMenuItemFEA[];
12
+ style?: StyleProp<ViewStyle>;
13
+ }) => React.JSX.Element;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.NavigationMenuFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var Separator_1 = require("../Separator");
41
+ var NavigationMenuFEA = function (_a) {
42
+ var value = _a.value, onValueChange = _a.onValueChange, items = _a.items, style = _a.style;
43
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
44
+ return (React.createElement(react_native_1.View, { style: [
45
+ styles.wrap,
46
+ { backgroundColor: theme.colors.muted, borderColor: theme.colors.border },
47
+ style,
48
+ ] },
49
+ React.createElement(react_native_1.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, contentContainerStyle: styles.row }, items.map(function (it, idx) {
50
+ var active = it.value === value;
51
+ return (React.createElement(React.Fragment, { key: it.value },
52
+ React.createElement(react_native_1.Pressable, { disabled: it.disabled, onPress: function () { return onValueChange(it.value); }, style: function (_a) {
53
+ var pressed = _a.pressed;
54
+ return [
55
+ styles.item,
56
+ {
57
+ backgroundColor: active
58
+ ? theme.colors.background
59
+ : pressed
60
+ ? theme.colors.muted
61
+ : "transparent",
62
+ borderColor: active ? theme.colors.border : "transparent",
63
+ opacity: it.disabled ? 0.5 : 1,
64
+ },
65
+ ];
66
+ } },
67
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, fontWeight: active ? "700" : "600" } }, it.label)),
68
+ idx < items.length - 1 ? React.createElement(Separator_1.SeparatorFEA, { style: { width: 1, height: 18, opacity: 0.5 } }) : null));
69
+ }))));
70
+ };
71
+ exports.NavigationMenuFEA = NavigationMenuFEA;
72
+ var styles = react_native_1.StyleSheet.create({
73
+ wrap: { borderWidth: 1, borderRadius: 12, padding: 4 },
74
+ row: { alignItems: "center", gap: 6 },
75
+ item: {
76
+ borderWidth: 1,
77
+ borderRadius: 10,
78
+ paddingVertical: 8,
79
+ paddingHorizontal: 10,
80
+ },
81
+ });
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export declare const PaginationFEA: ({ page, pageCount, onPageChange, style, siblingCount, }: {
4
+ page: number;
5
+ pageCount: number;
6
+ onPageChange: (next: number) => void;
7
+ style?: StyleProp<ViewStyle>;
8
+ siblingCount?: number;
9
+ }) => React.JSX.Element;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PaginationFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var PageButton = function (_a) {
41
+ var label = _a.label, active = _a.active, disabled = _a.disabled, onPress = _a.onPress, _b = _a.variant, variant = _b === void 0 ? "default" : _b;
42
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
+ var bg = variant === "ghost"
44
+ ? "transparent"
45
+ : active
46
+ ? theme.colors.primary
47
+ : theme.colors.background;
48
+ var borderColor = variant === "ghost" ? "transparent" : theme.colors.border;
49
+ var color = active ? theme.colors.primaryForeground : theme.colors.foreground;
50
+ return (React.createElement(react_native_1.Pressable, { disabled: disabled, onPress: onPress, style: function (_a) {
51
+ var pressed = _a.pressed;
52
+ return [
53
+ styles.btn,
54
+ {
55
+ backgroundColor: pressed && !active ? theme.colors.muted : bg,
56
+ borderColor: borderColor,
57
+ opacity: disabled ? 0.5 : 1,
58
+ },
59
+ ];
60
+ } },
61
+ React.createElement(react_native_1.Text, { style: { color: color, fontWeight: "600" } }, label)));
62
+ };
63
+ var PaginationFEA = function (_a) {
64
+ var page = _a.page, pageCount = _a.pageCount, onPageChange = _a.onPageChange, style = _a.style, _b = _a.siblingCount, siblingCount = _b === void 0 ? 1 : _b;
65
+ var safeCount = Math.max(1, pageCount);
66
+ var safePage = Math.max(1, Math.min(safeCount, page));
67
+ var pages = [];
68
+ var start = Math.max(1, safePage - siblingCount);
69
+ var end = Math.min(safeCount, safePage + siblingCount);
70
+ if (start > 1)
71
+ pages.push(1);
72
+ if (start > 2)
73
+ pages.push("…");
74
+ for (var p = start; p <= end; p++)
75
+ pages.push(p);
76
+ if (end < safeCount - 1)
77
+ pages.push("…");
78
+ if (end < safeCount)
79
+ pages.push(safeCount);
80
+ return (React.createElement(react_native_1.View, { style: [styles.row, style] },
81
+ React.createElement(PageButton, { label: "Prev", disabled: safePage === 1, onPress: function () { return onPageChange(safePage - 1); }, variant: "ghost" }),
82
+ pages.map(function (p, idx) {
83
+ return p === "…" ? (React.createElement(react_native_1.View, { key: "dots-".concat(idx), style: styles.dots },
84
+ React.createElement(react_native_1.Text, { style: { opacity: 0.6 } }, "\u2026"))) : (React.createElement(PageButton, { key: "p-".concat(p), label: "".concat(p), active: p === safePage, onPress: function () { return onPageChange(p); } }));
85
+ }),
86
+ React.createElement(PageButton, { label: "Next", disabled: safePage === safeCount, onPress: function () { return onPageChange(safePage + 1); }, variant: "ghost" })));
87
+ };
88
+ exports.PaginationFEA = PaginationFEA;
89
+ var styles = react_native_1.StyleSheet.create({
90
+ row: { flexDirection: "row", alignItems: "center", gap: 8, flexWrap: "wrap" },
91
+ btn: {
92
+ minWidth: 38,
93
+ height: 38,
94
+ paddingHorizontal: 12,
95
+ borderRadius: 10,
96
+ borderWidth: 1,
97
+ alignItems: "center",
98
+ justifyContent: "center",
99
+ },
100
+ dots: { width: 24, alignItems: "center" },
101
+ });
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export declare const PopoverFEA: ({ open, onOpenChange, trigger, children, contentStyle, }: {
4
+ open: boolean;
5
+ onOpenChange: (next: boolean) => void;
6
+ trigger: React.ReactNode;
7
+ children: React.ReactNode;
8
+ contentStyle?: StyleProp<ViewStyle>;
9
+ }) => React.JSX.Element;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.PopoverFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
40
+ var Card_1 = require("../Card");
41
+ var PopoverFEA = function (_a) {
42
+ var open = _a.open, onOpenChange = _a.onOpenChange, trigger = _a.trigger, children = _a.children, contentStyle = _a.contentStyle;
43
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
44
+ return (React.createElement(React.Fragment, null,
45
+ React.createElement(react_native_1.Pressable, { onPress: function () { return onOpenChange(!open); } }, trigger),
46
+ React.createElement(react_native_1.Modal, { transparent: true, visible: open, animationType: "fade", onRequestClose: function () { return onOpenChange(false); } },
47
+ React.createElement(react_native_1.Pressable, { style: [
48
+ styles.overlay,
49
+ { backgroundColor: theme.mode === "light" ? "rgba(0,0,0,0.25)" : "rgba(0,0,0,0.55)" },
50
+ ], onPress: function () { return onOpenChange(false); } },
51
+ React.createElement(react_native_1.Pressable, { onPress: function () { return null; }, style: styles.innerPress },
52
+ React.createElement(Card_1.CardFEA, { style: [styles.card, contentStyle] }, children))))));
53
+ };
54
+ exports.PopoverFEA = PopoverFEA;
55
+ var styles = react_native_1.StyleSheet.create({
56
+ overlay: {
57
+ flex: 1,
58
+ alignItems: "center",
59
+ justifyContent: "center",
60
+ padding: 20,
61
+ },
62
+ innerPress: {
63
+ width: "100%",
64
+ maxWidth: 420,
65
+ },
66
+ card: {
67
+ width: "100%",
68
+ },
69
+ });
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type RadioOptionFEA = {
4
+ label: string;
5
+ value: string;
6
+ disabled?: boolean;
7
+ };
8
+ export declare const RadioGroupFEA: ({ value, onValueChange, options, style, }: {
9
+ value: string;
10
+ onValueChange: (next: string) => void;
11
+ options: RadioOptionFEA[];
12
+ style?: StyleProp<ViewStyle>;
13
+ }) => React.JSX.Element;