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,47 @@
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.CarouselFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var CarouselFEA = function (_a) {
40
+ var children = _a.children, style = _a.style, pageWidth = _a.pageWidth;
41
+ return (React.createElement(react_native_1.ScrollView, { horizontal: true, pagingEnabled: true, showsHorizontalScrollIndicator: false, style: style, contentContainerStyle: styles.row }, React.Children.map(children, function (child, idx) { return (React.createElement(react_native_1.View, { key: idx, style: [styles.page, pageWidth ? { width: pageWidth } : undefined] }, child)); })));
42
+ };
43
+ exports.CarouselFEA = CarouselFEA;
44
+ var styles = react_native_1.StyleSheet.create({
45
+ row: { alignItems: "stretch" },
46
+ page: { width: 320, paddingRight: 12 },
47
+ });
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type ChartSeriesPointFEA = {
4
+ label: string;
5
+ value: number;
6
+ };
7
+ export declare const ChartFEA: ({ data, height, style, title, }: {
8
+ data: ChartSeriesPointFEA[];
9
+ height?: number;
10
+ style?: StyleProp<ViewStyle>;
11
+ title?: string;
12
+ }) => React.JSX.Element;
@@ -0,0 +1,75 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
36
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
37
+ if (ar || !(i in from)) {
38
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
39
+ ar[i] = from[i];
40
+ }
41
+ }
42
+ return to.concat(ar || Array.prototype.slice.call(from));
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.ChartFEA = void 0;
46
+ var React = __importStar(require("react"));
47
+ var react_native_1 = require("react-native");
48
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
49
+ var ChartFEA = function (_a) {
50
+ var data = _a.data, _b = _a.height, height = _b === void 0 ? 140 : _b, style = _a.style, title = _a.title;
51
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
52
+ var max = Math.max.apply(Math, __spreadArray([1], data.map(function (d) { return d.value; }), false));
53
+ return (React.createElement(react_native_1.View, { style: [styles.wrap, { borderColor: theme.colors.border, backgroundColor: theme.colors.card }, style] },
54
+ title ? React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, fontWeight: "700", marginBottom: 10 } }, title) : null,
55
+ React.createElement(react_native_1.View, { style: [styles.chart, { height: height }] }, data.map(function (d) {
56
+ var h = Math.max(2, (d.value / max) * height);
57
+ return (React.createElement(react_native_1.View, { key: d.label, style: styles.col },
58
+ React.createElement(react_native_1.View, { style: [
59
+ styles.bar,
60
+ {
61
+ height: h,
62
+ backgroundColor: theme.colors.primary,
63
+ },
64
+ ] }),
65
+ React.createElement(react_native_1.Text, { numberOfLines: 1, style: [styles.xlab, { color: theme.colors.mutedForeground }] }, d.label)));
66
+ }))));
67
+ };
68
+ exports.ChartFEA = ChartFEA;
69
+ var styles = react_native_1.StyleSheet.create({
70
+ wrap: { borderWidth: 1, borderRadius: 12, padding: 12 },
71
+ chart: { flexDirection: "row", alignItems: "flex-end", gap: 10 },
72
+ col: { flex: 1, alignItems: "center", gap: 6 },
73
+ bar: { width: "100%", borderRadius: 10 },
74
+ xlab: { fontSize: 10 },
75
+ });
@@ -1,7 +1,15 @@
1
1
  import * as React from "react";
2
- export declare const CheckboxFEA: ({ checked, onChange, label, disabled, }: {
2
+ import { StyleProp, TextStyle, ViewStyle } from "react-native";
3
+ export declare const CheckboxFEA: ({ checked, onChange, label, disabled, size, style, testID, accessibilityLabel, accessibilityHint, labelStyle, }: {
3
4
  checked: boolean;
4
5
  onChange: (next: boolean) => void;
5
6
  label?: string;
6
7
  disabled?: boolean;
8
+ /** Box width/height in dp. */
9
+ size?: number;
10
+ style?: StyleProp<ViewStyle>;
11
+ testID?: string;
12
+ accessibilityLabel?: string;
13
+ accessibilityHint?: string;
14
+ labelStyle?: StyleProp<TextStyle>;
7
15
  }) => React.JSX.Element;
@@ -38,18 +38,27 @@ 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 CheckboxFEA = function (_a) {
41
- var checked = _a.checked, onChange = _a.onChange, label = _a.label, _b = _a.disabled, disabled = _b === void 0 ? false : _b;
41
+ var checked = _a.checked, onChange = _a.onChange, label = _a.label, _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? 18 : _c, style = _a.style, testID = _a.testID, accessibilityLabel = _a.accessibilityLabel, accessibilityHint = _a.accessibilityHint, labelStyle = _a.labelStyle;
42
42
  var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
43
- return (React.createElement(react_native_1.Pressable, { onPress: function () { return !disabled && onChange(!checked); }, style: styles.row, disabled: disabled },
43
+ return (React.createElement(react_native_1.Pressable, { testID: testID, accessibilityLabel: accessibilityLabel !== null && accessibilityLabel !== void 0 ? accessibilityLabel : label, accessibilityHint: accessibilityHint, accessibilityRole: "checkbox", accessibilityState: { checked: checked, disabled: disabled }, onPress: function () { return !disabled && onChange(!checked); }, style: [styles.row, style], disabled: disabled },
44
44
  React.createElement(react_native_1.View, { style: [
45
45
  styles.box,
46
46
  {
47
+ width: size,
48
+ height: size,
49
+ borderRadius: Math.max(4, size / 5),
47
50
  borderColor: checked ? theme.colors.primary : theme.colors.input,
48
51
  backgroundColor: checked ? theme.colors.primary : "transparent",
49
52
  opacity: disabled ? 0.5 : 1,
50
53
  },
51
- ] }, checked ? React.createElement(react_native_1.Text, { style: styles.tick }, "\u2713") : null),
52
- label ? (React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, opacity: disabled ? 0.6 : 1 } }, label)) : null));
54
+ ] }, checked ? (React.createElement(react_native_1.Text, { style: [
55
+ styles.tick,
56
+ { fontSize: Math.max(10, size * 0.65), lineHeight: Math.max(12, size * 0.72) },
57
+ ] }, "\u2713")) : null),
58
+ label ? (React.createElement(react_native_1.Text, { style: [
59
+ { color: theme.colors.foreground, opacity: disabled ? 0.6 : 1, flexShrink: 1 },
60
+ labelStyle,
61
+ ] }, label)) : null));
53
62
  };
54
63
  exports.CheckboxFEA = CheckboxFEA;
55
64
  var styles = react_native_1.StyleSheet.create({
@@ -59,17 +68,12 @@ var styles = react_native_1.StyleSheet.create({
59
68
  gap: 8,
60
69
  },
61
70
  box: {
62
- width: 18,
63
- height: 18,
64
- borderRadius: 4,
65
71
  borderWidth: 1.5,
66
72
  alignItems: "center",
67
73
  justifyContent: "center",
68
74
  },
69
75
  tick: {
70
76
  color: "#ffffff",
71
- fontSize: 12,
72
- lineHeight: 13,
73
77
  fontWeight: "700",
74
78
  },
75
79
  });
@@ -0,0 +1,15 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export declare const CollapsibleFEA: ({ open, onOpenChange, trigger, children, style, }: {
4
+ open: boolean;
5
+ onOpenChange: (next: boolean) => void;
6
+ trigger?: React.ReactNode;
7
+ children: React.ReactNode;
8
+ style?: StyleProp<ViewStyle>;
9
+ }) => React.JSX.Element;
10
+ export declare const CollapsibleTriggerFEA: ({ title, open, onPress, style, }: {
11
+ title: string;
12
+ open: boolean;
13
+ onPress: () => void;
14
+ style?: StyleProp<ViewStyle>;
15
+ }) => React.JSX.Element;
@@ -0,0 +1,73 @@
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.CollapsibleTriggerFEA = exports.CollapsibleFEA = 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 CollapsibleFEA = function (_a) {
41
+ var open = _a.open, onOpenChange = _a.onOpenChange, trigger = _a.trigger, children = _a.children, style = _a.style;
42
+ return (React.createElement(react_native_1.View, { style: style },
43
+ trigger ? (React.createElement(react_native_1.Pressable, { onPress: function () { return onOpenChange(!open); } }, trigger)) : null,
44
+ open ? React.createElement(react_native_1.View, { style: styles.content }, children) : null));
45
+ };
46
+ exports.CollapsibleFEA = CollapsibleFEA;
47
+ var CollapsibleTriggerFEA = function (_a) {
48
+ var title = _a.title, open = _a.open, onPress = _a.onPress, style = _a.style;
49
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
50
+ return (React.createElement(react_native_1.Pressable, { onPress: onPress, style: function (_a) {
51
+ var pressed = _a.pressed;
52
+ return [
53
+ styles.trigger,
54
+ { borderColor: theme.colors.border, backgroundColor: pressed ? theme.colors.muted : "transparent" },
55
+ style,
56
+ ];
57
+ } },
58
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, fontWeight: "700" } }, title),
59
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.mutedForeground, fontWeight: "700" } }, open ? "−" : "+")));
60
+ };
61
+ exports.CollapsibleTriggerFEA = CollapsibleTriggerFEA;
62
+ var styles = react_native_1.StyleSheet.create({
63
+ trigger: {
64
+ flexDirection: "row",
65
+ justifyContent: "space-between",
66
+ alignItems: "center",
67
+ borderWidth: 1,
68
+ borderRadius: 12,
69
+ paddingVertical: 10,
70
+ paddingHorizontal: 12,
71
+ },
72
+ content: { paddingTop: 10 },
73
+ });
@@ -0,0 +1,13 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type ComboboxOptionFEA = {
4
+ label: string;
5
+ value: string;
6
+ };
7
+ export declare const ComboboxFEA: ({ value, onValueChange, options, placeholder, style, }: {
8
+ value?: string;
9
+ onValueChange: (next: string) => void;
10
+ options: ComboboxOptionFEA[];
11
+ placeholder?: string;
12
+ style?: StyleProp<ViewStyle>;
13
+ }) => React.JSX.Element;
@@ -0,0 +1,107 @@
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.ComboboxFEA = 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 Popover_1 = require("../Popover");
41
+ var Separator_1 = require("../Separator");
42
+ var ComboboxFEA = function (_a) {
43
+ var _b;
44
+ var value = _a.value, onValueChange = _a.onValueChange, options = _a.options, _c = _a.placeholder, placeholder = _c === void 0 ? "Select..." : _c, style = _a.style;
45
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
46
+ var _d = React.useState(false), open = _d[0], setOpen = _d[1];
47
+ var _e = React.useState(""), q = _e[0], setQ = _e[1];
48
+ var selected = options.find(function (o) { return o.value === value; });
49
+ var filtered = options.filter(function (o) { return o.label.toLowerCase().includes(q.trim().toLowerCase()); });
50
+ return (React.createElement(Popover_1.PopoverFEA, { open: open, onOpenChange: function (next) {
51
+ setOpen(next);
52
+ if (!next)
53
+ setQ("");
54
+ }, trigger: React.createElement(react_native_1.Pressable, { style: [
55
+ styles.trigger,
56
+ { borderColor: theme.colors.input, backgroundColor: theme.colors.background },
57
+ style,
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.Text, { style: { color: theme.colors.mutedForeground } }, "\u2315")), contentStyle: { padding: 0 } },
61
+ React.createElement(react_native_1.View, { style: { padding: 12 } },
62
+ React.createElement(react_native_1.TextInput, { value: q, onChangeText: setQ, placeholder: "Search...", placeholderTextColor: theme.colors.mutedForeground, style: [
63
+ styles.search,
64
+ {
65
+ borderColor: theme.colors.input,
66
+ color: theme.colors.foreground,
67
+ backgroundColor: theme.colors.background,
68
+ },
69
+ ] })),
70
+ React.createElement(Separator_1.SeparatorFEA, null),
71
+ React.createElement(react_native_1.View, { style: { maxHeight: 320 } }, filtered.length === 0 ? (React.createElement(react_native_1.View, { style: { padding: 12 } },
72
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.mutedForeground } }, "No results"))) : (filtered.map(function (o, idx) { return (React.createElement(React.Fragment, { key: o.value },
73
+ React.createElement(react_native_1.Pressable, { onPress: function () {
74
+ onValueChange(o.value);
75
+ setOpen(false);
76
+ }, style: function (_a) {
77
+ var pressed = _a.pressed;
78
+ return [
79
+ styles.item,
80
+ { backgroundColor: pressed ? theme.colors.muted : "transparent" },
81
+ ];
82
+ } },
83
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, fontWeight: "500" } }, o.label)),
84
+ idx < filtered.length - 1 ? React.createElement(Separator_1.SeparatorFEA, { style: { opacity: 0.6 } }) : null)); })))));
85
+ };
86
+ exports.ComboboxFEA = ComboboxFEA;
87
+ var styles = react_native_1.StyleSheet.create({
88
+ trigger: {
89
+ borderWidth: 1,
90
+ borderRadius: 10,
91
+ paddingVertical: 10,
92
+ paddingHorizontal: 12,
93
+ flexDirection: "row",
94
+ alignItems: "center",
95
+ justifyContent: "space-between",
96
+ },
97
+ search: {
98
+ borderWidth: 1,
99
+ borderRadius: 10,
100
+ paddingHorizontal: 12,
101
+ paddingVertical: 10,
102
+ },
103
+ item: {
104
+ paddingHorizontal: 12,
105
+ paddingVertical: 10,
106
+ },
107
+ });
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type CommandItemFEA = {
4
+ label: string;
5
+ value: string;
6
+ keywords?: string[];
7
+ onSelect?: () => void;
8
+ };
9
+ export declare const CommandFEA: ({ open, onOpenChange, trigger, items, placeholder, style, }: {
10
+ open: boolean;
11
+ onOpenChange: (next: boolean) => void;
12
+ trigger: React.ReactNode;
13
+ items: CommandItemFEA[];
14
+ placeholder?: string;
15
+ style?: StyleProp<ViewStyle>;
16
+ }) => React.JSX.Element;
@@ -0,0 +1,87 @@
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.CommandFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var Popover_1 = require("../Popover");
40
+ var Separator_1 = require("../Separator");
41
+ var ThemeFEAVUiProvider_1 = require("../../theme/ThemeFEAVUiProvider");
42
+ var CommandFEA = function (_a) {
43
+ var open = _a.open, onOpenChange = _a.onOpenChange, trigger = _a.trigger, items = _a.items, _b = _a.placeholder, placeholder = _b === void 0 ? "Type a command or search..." : _b, style = _a.style;
44
+ var theme = (0, ThemeFEAVUiProvider_1.useTheme)().theme;
45
+ var _c = React.useState(""), q = _c[0], setQ = _c[1];
46
+ var filtered = items.filter(function (it) {
47
+ var _a;
48
+ var hay = "".concat(it.label, " ").concat(((_a = it.keywords) !== null && _a !== void 0 ? _a : []).join(" ")).toLowerCase();
49
+ return hay.includes(q.trim().toLowerCase());
50
+ });
51
+ return (React.createElement(Popover_1.PopoverFEA, { open: open, onOpenChange: function (next) {
52
+ onOpenChange(next);
53
+ if (!next)
54
+ setQ("");
55
+ }, trigger: trigger, contentStyle: [{ padding: 0 }, style] },
56
+ React.createElement(react_native_1.View, { style: { padding: 12 } },
57
+ React.createElement(react_native_1.TextInput, { value: q, onChangeText: setQ, placeholder: placeholder, placeholderTextColor: theme.colors.mutedForeground, style: [
58
+ styles.input,
59
+ { borderColor: theme.colors.input, color: theme.colors.foreground, backgroundColor: theme.colors.background },
60
+ ] })),
61
+ React.createElement(Separator_1.SeparatorFEA, null),
62
+ React.createElement(react_native_1.View, { style: { maxHeight: 320 } }, filtered.length === 0 ? (React.createElement(react_native_1.View, { style: { padding: 12 } },
63
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.mutedForeground } }, "No results"))) : (filtered.map(function (it, idx) { return (React.createElement(React.Fragment, { key: it.value },
64
+ React.createElement(react_native_1.Pressable, { onPress: function () {
65
+ var _a;
66
+ (_a = it.onSelect) === null || _a === void 0 ? void 0 : _a.call(it);
67
+ onOpenChange(false);
68
+ }, style: function (_a) {
69
+ var pressed = _a.pressed;
70
+ return [
71
+ styles.item,
72
+ { backgroundColor: pressed ? theme.colors.muted : "transparent" },
73
+ ];
74
+ } },
75
+ React.createElement(react_native_1.Text, { style: { color: theme.colors.foreground, fontWeight: "600" } }, it.label)),
76
+ idx < filtered.length - 1 ? React.createElement(Separator_1.SeparatorFEA, { style: { opacity: 0.6 } }) : null)); })))));
77
+ };
78
+ exports.CommandFEA = CommandFEA;
79
+ var styles = react_native_1.StyleSheet.create({
80
+ input: {
81
+ borderWidth: 1,
82
+ borderRadius: 10,
83
+ paddingHorizontal: 12,
84
+ paddingVertical: 10,
85
+ },
86
+ item: { paddingHorizontal: 12, paddingVertical: 10 },
87
+ });
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import { DropdownMenuItemFEA } from "../DropdownMenu";
3
+ export declare const ContextMenuFEA: ({ items, children, }: {
4
+ items: DropdownMenuItemFEA[];
5
+ children: React.ReactNode;
6
+ }) => React.JSX.Element;
@@ -0,0 +1,45 @@
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.ContextMenuFEA = void 0;
37
+ var React = __importStar(require("react"));
38
+ var react_native_1 = require("react-native");
39
+ var DropdownMenu_1 = require("../DropdownMenu");
40
+ var ContextMenuFEA = function (_a) {
41
+ var items = _a.items, children = _a.children;
42
+ var _b = React.useState(false), open = _b[0], setOpen = _b[1];
43
+ return (React.createElement(DropdownMenu_1.DropdownMenuFEA, { open: open, onOpenChange: setOpen, items: items, trigger: React.createElement(react_native_1.Pressable, { onLongPress: function () { return setOpen(true); }, delayLongPress: 250 }, children), style: { maxWidth: 360 } }));
44
+ };
45
+ exports.ContextMenuFEA = ContextMenuFEA;
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import { StyleProp, ViewStyle } from "react-native";
3
+ export type DataTableColumnFEA<Row> = {
4
+ key: string;
5
+ header: string;
6
+ flex?: number;
7
+ align?: "left" | "center" | "right";
8
+ render?: (row: Row) => React.ReactNode;
9
+ };
10
+ export declare const DataTableFEA: <Row>({ columns, data, style, headerStyle, rowKey, }: {
11
+ columns: DataTableColumnFEA<Row>[];
12
+ data: Row[];
13
+ style?: StyleProp<ViewStyle>;
14
+ headerStyle?: StyleProp<ViewStyle>;
15
+ rowKey?: (row: Row, index: number) => string;
16
+ }) => React.JSX.Element;