ferns-ui 2.0.0-beta.2 → 2.0.0-beta.4

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 (140) hide show
  1. package/dist/Accordion.js +7 -2
  2. package/dist/Accordion.js.map +1 -1
  3. package/dist/ActionSheet.js +14 -11
  4. package/dist/ActionSheet.js.map +1 -1
  5. package/dist/AddressField.js +1 -1
  6. package/dist/AddressField.js.map +1 -1
  7. package/dist/Badge.js +1 -1
  8. package/dist/Badge.js.map +1 -1
  9. package/dist/Banner.js +1 -1
  10. package/dist/Banner.js.map +1 -1
  11. package/dist/Box.js +3 -3
  12. package/dist/Box.js.map +1 -1
  13. package/dist/Button.js +0 -1
  14. package/dist/Button.js.map +1 -1
  15. package/dist/CheckBox.js.map +1 -1
  16. package/dist/Common.d.ts +13 -9
  17. package/dist/Common.js.map +1 -1
  18. package/dist/DataTable.js +1 -2
  19. package/dist/DataTable.js.map +1 -1
  20. package/dist/DateTimeField.js +22 -22
  21. package/dist/DateTimeField.js.map +1 -1
  22. package/dist/EmailField.js +17 -37
  23. package/dist/EmailField.js.map +1 -1
  24. package/dist/FernsProvider.js +1 -1
  25. package/dist/FernsProvider.js.map +1 -1
  26. package/dist/Heading.js +3 -1
  27. package/dist/Heading.js.map +1 -1
  28. package/dist/Hyperlink.js +1 -1
  29. package/dist/Hyperlink.js.map +1 -1
  30. package/dist/IconButton.js +1 -1
  31. package/dist/IconButton.js.map +1 -1
  32. package/dist/Image.js.map +1 -1
  33. package/dist/MarkdownView.d.ts +5 -0
  34. package/dist/MarkdownView.js +44 -0
  35. package/dist/MarkdownView.js.map +1 -0
  36. package/dist/MobileAddressAutoComplete.js +1 -1
  37. package/dist/MobileAddressAutoComplete.js.map +1 -1
  38. package/dist/Modal.d.ts +1 -1
  39. package/dist/Modal.js +35 -15
  40. package/dist/Modal.js.map +1 -1
  41. package/dist/NumberField.js +10 -4
  42. package/dist/NumberField.js.map +1 -1
  43. package/dist/NumberPickerActionSheet.d.ts +1 -3
  44. package/dist/NumberPickerActionSheet.js +0 -3
  45. package/dist/NumberPickerActionSheet.js.map +1 -1
  46. package/dist/Page.js +1 -1
  47. package/dist/Page.js.map +1 -1
  48. package/dist/Pagination.js +2 -2
  49. package/dist/Pagination.js.map +1 -1
  50. package/dist/Permissions.d.ts +1 -1
  51. package/dist/Permissions.js +2 -2
  52. package/dist/Permissions.js.map +1 -1
  53. package/dist/PickerSelect.js +1 -1
  54. package/dist/PickerSelect.js.map +1 -1
  55. package/dist/SectionDivider.js +1 -1
  56. package/dist/SectionDivider.js.map +1 -1
  57. package/dist/SegmentedControl.js.map +1 -1
  58. package/dist/Signature.native.js +2 -2
  59. package/dist/Signature.native.js.map +1 -1
  60. package/dist/SignatureField.js +2 -2
  61. package/dist/SignatureField.js.map +1 -1
  62. package/dist/Slider.js +3 -3
  63. package/dist/Slider.js.map +1 -1
  64. package/dist/SplitPage.js +7 -7
  65. package/dist/SplitPage.js.map +1 -1
  66. package/dist/SplitPage.native.js +4 -6
  67. package/dist/SplitPage.native.js.map +1 -1
  68. package/dist/TapToEdit.js +3 -3
  69. package/dist/TapToEdit.js.map +1 -1
  70. package/dist/Text.js +1 -1
  71. package/dist/Text.js.map +1 -1
  72. package/dist/TextFieldNumberActionSheet.d.ts +2 -4
  73. package/dist/TextFieldNumberActionSheet.js +1 -4
  74. package/dist/TextFieldNumberActionSheet.js.map +1 -1
  75. package/dist/Tooltip.js +37 -19
  76. package/dist/Tooltip.js.map +1 -1
  77. package/dist/Unifier.d.ts +0 -1
  78. package/dist/Unifier.js.map +1 -1
  79. package/dist/Utilities.d.ts +1 -1
  80. package/dist/Utilities.js +2 -3
  81. package/dist/Utilities.js.map +1 -1
  82. package/dist/WebAddressAutocomplete.js +2 -1
  83. package/dist/WebAddressAutocomplete.js.map +1 -1
  84. package/dist/index.d.ts +10 -10
  85. package/dist/index.js +10 -9
  86. package/dist/index.js.map +1 -1
  87. package/dist/table/Table.js +14 -15
  88. package/dist/table/Table.js.map +1 -1
  89. package/dist/table/TableHeaderCell.js +2 -2
  90. package/dist/table/TableHeaderCell.js.map +1 -1
  91. package/dist/useStoredState.js +4 -2
  92. package/dist/useStoredState.js.map +1 -1
  93. package/package.json +5 -64
  94. package/src/Accordion.tsx +7 -1
  95. package/src/ActionSheet.tsx +26 -22
  96. package/src/AddressField.tsx +1 -1
  97. package/src/Badge.tsx +1 -1
  98. package/src/Banner.tsx +1 -1
  99. package/src/Box.test.tsx +71 -70
  100. package/src/Box.tsx +21 -9
  101. package/src/Button.tsx +0 -1
  102. package/src/CheckBox.tsx +7 -1
  103. package/src/Common.ts +14 -21
  104. package/src/DataTable.tsx +1 -2
  105. package/src/DateTimeField.tsx +22 -22
  106. package/src/EmailField.tsx +22 -42
  107. package/src/FernsProvider.tsx +1 -4
  108. package/src/Heading.tsx +3 -1
  109. package/src/Hyperlink.tsx +1 -1
  110. package/src/IconButton.tsx +2 -2
  111. package/src/Image.tsx +1 -0
  112. package/src/MarkdownView.tsx +67 -0
  113. package/src/MobileAddressAutoComplete.tsx +1 -1
  114. package/src/Modal.tsx +58 -21
  115. package/src/NumberField.tsx +10 -4
  116. package/src/NumberPickerActionSheet.tsx +1 -5
  117. package/src/Page.tsx +1 -1
  118. package/src/Pagination.tsx +2 -11
  119. package/src/Permissions.ts +2 -2
  120. package/src/PickerSelect.tsx +1 -1
  121. package/src/SectionDivider.tsx +1 -1
  122. package/src/SegmentedControl.tsx +3 -1
  123. package/src/Signature.native.tsx +2 -2
  124. package/src/SignatureField.tsx +2 -2
  125. package/src/Slider.tsx +10 -17
  126. package/src/SplitPage.native.tsx +2 -4
  127. package/src/SplitPage.tsx +4 -4
  128. package/src/TapToEdit.tsx +3 -7
  129. package/src/Text.tsx +1 -1
  130. package/src/TextArea.test.tsx +27 -43
  131. package/src/TextField.test.tsx +3 -4
  132. package/src/TextFieldNumberActionSheet.tsx +3 -7
  133. package/src/Tooltip.tsx +41 -19
  134. package/src/Unifier.ts +1 -3
  135. package/src/Utilities.tsx +3 -4
  136. package/src/WebAddressAutocomplete.tsx +1 -1
  137. package/src/index.tsx +11 -10
  138. package/src/table/Table.tsx +34 -36
  139. package/src/table/TableHeaderCell.tsx +2 -2
  140. package/src/useStoredState.ts +13 -11
package/src/index.tsx CHANGED
@@ -34,6 +34,7 @@ export * from "./ImageBackground";
34
34
  export * from "./InfoModalIcon";
35
35
  export * from "./InfoTooltipButton";
36
36
  export * from "./Link";
37
+ export * from "./MarkdownView";
37
38
  export * from "./MediaQuery";
38
39
  export * from "./MobileAddressAutoComplete";
39
40
  export * from "./Modal";
@@ -59,11 +60,17 @@ export * from "./SignatureField";
59
60
  export * from "./Slider";
60
61
  export * from "./Spinner";
61
62
  export * from "./SplitPage";
63
+ export * from "./TapToEdit";
64
+ export * from "./Text";
65
+ export * from "./TextArea";
66
+ export * from "./TextField";
67
+ export * from "./Theme";
68
+ export * from "./Toast";
69
+ export * from "./Tooltip";
62
70
  export * from "./table/Table";
63
71
  export * from "./table/Table";
64
72
  export * from "./table/TableBadge";
65
73
  export * from "./table/TableBoolean";
66
- export * from "./table/tableContext";
67
74
  export * from "./table/TableDate";
68
75
  export * from "./table/TableHeader";
69
76
  export * from "./table/TableHeaderCell";
@@ -72,18 +79,13 @@ export * from "./table/TableNumber";
72
79
  export * from "./table/TableRow";
73
80
  export * from "./table/TableText";
74
81
  export * from "./table/TableTitle";
75
- export * from "./TapToEdit";
76
- export * from "./Text";
77
- export * from "./TextArea";
78
- export * from "./TextField";
79
- export * from "./Theme";
80
- export * from "./Toast";
81
- export * from "./Tooltip";
82
+ export * from "./table/tableContext";
82
83
  export * from "./UnifiedAddressAutoComplete";
83
84
  export * from "./Unifier";
84
- export * from "./useStoredState";
85
85
  export * from "./Utilities";
86
+ export * from "./useStoredState";
86
87
  export * from "./WebAddressAutocomplete";
88
+
87
89
  // export * from "./Layout";
88
90
  // export * from "./Drawer";
89
91
  // export * from "./Chart";
@@ -1370,4 +1372,3 @@ export interface Options {
1370
1372
  */
1371
1373
  blurOnUnmount?: boolean;
1372
1374
  }
1373
- export {};
@@ -68,44 +68,42 @@ export const Table = ({
68
68
  sortColumn={sortColumn}
69
69
  stickyHeader={stickyHeader}
70
70
  >
71
- <>
72
- <Box
73
- flex="grow"
74
- maxWidth="100%"
75
- style={{
76
- position: "relative",
77
- }}
78
- width={width}
79
- >
80
- <ScrollView horizontal style={{width, maxWidth: "100%"}}>
81
- {/* TODO: Replace table scrollview with flat list */}
82
- <ScrollView
83
- // nestedScrollEnabled
84
- stickyHeaderIndices={stickyHeader ? [0] : undefined}
85
- style={{width, maxWidth: "100%", flex: 1, maxHeight}}
86
- >
87
- {Children.map(
88
- children,
89
- (child, index) =>
90
- Boolean(child) &&
91
- React.cloneElement(child as ReactElement<TableRowProps>, {
92
- color: index % 2 === 1 && alternateRowBackground ? "neutralLight" : "base",
93
- })
94
- )}
95
- </ScrollView>
71
+ <Box
72
+ flex="grow"
73
+ maxWidth="100%"
74
+ style={{
75
+ position: "relative",
76
+ }}
77
+ width={width}
78
+ >
79
+ <ScrollView horizontal style={{width, maxWidth: "100%"}}>
80
+ {/* TODO: Replace table scrollview with flat list */}
81
+ <ScrollView
82
+ // nestedScrollEnabled
83
+ stickyHeaderIndices={stickyHeader ? [0] : undefined}
84
+ style={{width, maxWidth: "100%", flex: 1, maxHeight}}
85
+ >
86
+ {Children.map(
87
+ children,
88
+ (child, index) =>
89
+ Boolean(child) &&
90
+ React.cloneElement(child as ReactElement<TableRowProps>, {
91
+ color: index % 2 === 1 && alternateRowBackground ? "neutralLight" : "base",
92
+ })
93
+ )}
96
94
  </ScrollView>
95
+ </ScrollView>
96
+ </Box>
97
+ {Boolean(shouldPaginate && totalPages !== undefined) && (
98
+ <Box alignItems="center" borderTop="default" direction="row" height={60} paddingX={8}>
99
+ <Pagination
100
+ page={propsPage ?? page}
101
+ setPage={propsSetPage ?? setPage}
102
+ totalPages={totalPages!}
103
+ />
104
+ {Boolean(extraControls) && extraControls}
97
105
  </Box>
98
- {Boolean(shouldPaginate && totalPages !== undefined) && (
99
- <Box alignItems="center" borderTop="default" direction="row" height={60} paddingX={8}>
100
- <Pagination
101
- page={propsPage ?? page}
102
- setPage={propsSetPage ?? setPage}
103
- totalPages={totalPages!}
104
- />
105
- {Boolean(extraControls) && extraControls}
106
- </Box>
107
- )}
108
- </>
106
+ )}
109
107
  </TableContextProvider>
110
108
  );
111
109
  };
@@ -6,8 +6,8 @@ import {View} from "react-native";
6
6
  import {Box} from "../Box";
7
7
  import {AlignItems, TableHeaderCellProps} from "../Common";
8
8
  import {useTheme} from "../Theme";
9
- import {useTableContext} from "./tableContext";
10
9
  import {TableTitle} from "./TableTitle";
10
+ import {useTableContext} from "./tableContext";
11
11
 
12
12
  /**
13
13
  * Use TableHeaderCell to define a header cell in Table.
@@ -48,7 +48,7 @@ export const TableHeaderCell = ({
48
48
  if (setSortColumn) {
49
49
  setSortColumn(newSort ? {column: index, direction: newSort} : undefined);
50
50
  }
51
- onSortChange && onSortChange(newSort);
51
+ onSortChange?.(newSort);
52
52
  }, [index, onSortChange, setSortColumn, sort]);
53
53
 
54
54
  if (sortable && !onSortChange) {
@@ -22,17 +22,19 @@ export const useStoredState = <T>(
22
22
 
23
23
  // Fetch data when the component mounts
24
24
  useEffect(() => {
25
- void fetchData().then((value) => {
26
- if (isMounted.current) {
27
- setState(value);
28
- setIsLoading(false);
29
- }
30
- }).catch((error) => {
31
- console.error("Error fetching data:", error);
32
- if (isMounted.current) {
33
- setIsLoading(false);
34
- }
35
- });
25
+ void fetchData()
26
+ .then((value) => {
27
+ if (isMounted.current) {
28
+ setState(value);
29
+ setIsLoading(false);
30
+ }
31
+ })
32
+ .catch((error) => {
33
+ console.error("Error fetching data:", error);
34
+ if (isMounted.current) {
35
+ setIsLoading(false);
36
+ }
37
+ });
36
38
 
37
39
  return () => {
38
40
  isMounted.current = false;