ferns-ui 0.25.2 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Box.js CHANGED
@@ -232,7 +232,7 @@ export class Box extends React.Component {
232
232
  }
233
233
  if (this.props.scroll) {
234
234
  const _a = this.propsToStyle(), { justifyContent, alignContent, alignItems } = _a, scrollStyle = __rest(_a, ["justifyContent", "alignContent", "alignItems"]);
235
- box = (React.createElement(ScrollView, { ref: this.props.scrollRef || this.scrollRef, contentContainerStyle: { justifyContent, alignContent, alignItems }, horizontal: this.props.overflow === "scrollX", keyboardShouldPersistTaps: "handled", scrollEventThrottle: 50, style: scrollStyle, onScroll: (event) => {
235
+ box = (React.createElement(ScrollView, { ref: this.props.scrollRef || this.scrollRef, contentContainerStyle: { justifyContent, alignContent, alignItems }, horizontal: this.props.overflow === "scrollX", keyboardShouldPersistTaps: "handled", nestedScrollEnabled: true, scrollEventThrottle: 50, style: scrollStyle, onScroll: (event) => {
236
236
  if (this.props.onScroll && event) {
237
237
  this.props.onScroll(event.nativeEvent.contentOffset.y);
238
238
  }
package/dist/Box.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sourceRoot":"","sources":["../src/Box.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Box.js","sourceRoot":"","sources":["../src/Box.tsx"],"names":[],"mappings":"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"}
@@ -29,15 +29,18 @@ export const SegmentedControl = ({ items, onChange = () => { }, selectedItemInde
29
29
  };
30
30
  return (React.createElement(Box, { color: "lightGray", direction: "row", display: "flex", height: 40, justifyContent: "between", padding: 1, rounding: 3, width: "100%" }, items.map((item, index) => (React.createElement(Box, { key: index, color: isTabActive(index), height: "100%", paddingX: 2, rounding: 3, width: `${100 / items.length}%` },
31
31
  React.createElement(Box, { alignItems: "center", display: "flex", height: "100%", justifyContent: "center", width: "100%", onClick: () => {
32
+ if ((selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.length) === selectLimit &&
33
+ !(selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.includes(index))) {
34
+ return;
35
+ }
32
36
  if (multiselect) {
33
37
  if (selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.includes(index)) {
34
38
  onChange({ activeIndex: selectedItemIndexes.filter((i) => i !== index) });
35
39
  }
36
40
  else {
37
- const reversed = selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.reverse();
38
- reversed === null || reversed === void 0 ? void 0 : reversed.splice(1, 1);
39
- reversed === null || reversed === void 0 ? void 0 : reversed.push(index);
40
- onChange({ activeIndex: reversed });
41
+ const currentIndexes = [...selectedItemIndexes];
42
+ currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.push(index);
43
+ onChange({ activeIndex: currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.sort() });
41
44
  }
42
45
  }
43
46
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ interface SplitPageProps {
15
15
  listViewExtraData?: any;
16
16
  listViewWidth?: number;
17
17
  renderChild?: () => ReactChild;
18
+ selectLimit?: number;
18
19
  }
19
- export declare const SplitPage: ({ children, tabs, loading, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, }: SplitPageProps) => JSX.Element | null;
20
+ export declare const SplitPage: ({ children, tabs, loading, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, selectLimit, }: SplitPageProps) => JSX.Element | null;
20
21
  export {};
package/dist/SplitPage.js CHANGED
@@ -10,7 +10,7 @@ import { Spinner } from "./Spinner";
10
10
  import { Unifier } from "./Unifier";
11
11
  // A component for rendering a list on one side and a details view on the right for large screens,
12
12
  // and a scrollable list where clicking an item takes you the details view.
13
- export const SplitPage = ({ children, tabs = [], loading = false, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, }) => {
13
+ export const SplitPage = ({ children, tabs = [], loading = false, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, selectLimit, }) => {
14
14
  const [selectedId, setSelectedId] = useState(undefined);
15
15
  const [activeTabs, setActiveTabs] = useState(tabs.length > 2 ? [0, 1] : []);
16
16
  const elementArray = Children.toArray(children);
@@ -59,7 +59,7 @@ export const SplitPage = ({ children, tabs = [], loading = false, color, keyboar
59
59
  alignItems: "center",
60
60
  } },
61
61
  React.createElement(Box, { paddingX: 4, paddingY: 2, width: "100%" },
62
- React.createElement(SegmentedControl, { items: tabs, multiselect: true, selectLimit: tabs.length, selectedItemIndexes: activeTabs, onChange: (index) => {
62
+ React.createElement(SegmentedControl, { items: tabs, multiselect: true, selectLimit: selectLimit || tabs.length, selectedItemIndexes: activeTabs, onChange: (index) => {
63
63
  setActiveTabs([...index.activeIndex]);
64
64
  } })),
65
65
  React.createElement(Box, { direction: "row", flex: "grow", height: "100%", paddingX: 2, width: activeTabs.length > 1 ? "100%" : "60%" }, activeTabs.map((tabIndex) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SplitPage.js","sourceRoot":"","sources":["../src/SplitPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SplitPage.js","sourceRoot":"","sources":["../src/SplitPage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ interface TableProps {
3
+ /**
4
+ * Must be instances of TableHeader, TableRow, and/or TableFooter components.
5
+ */
6
+ children: React.ReactNode | React.ReactNode[];
7
+ /**
8
+ * Width of columns in the table. This is used to calculate the width of each column. Can be numbers for pixels or strings for percentages.
9
+ */
10
+ columns: Array<number | string>;
11
+ /**
12
+ * Specify a border width for Table: "sm" is 1px.
13
+ */
14
+ borderStyle?: "sm" | "none";
15
+ /**
16
+ * Use numbers for pixels: `maxHeight={100}` and strings for percentages: `maxHeight="100%"`.
17
+ */
18
+ maxHeight?: number | string;
19
+ }
20
+ export declare function Table({ children, columns, borderStyle, maxHeight }: TableProps): React.ReactElement;
21
+ export {};
package/dist/Table.js ADDED
@@ -0,0 +1,31 @@
1
+ import React, { Children, useRef } from "react";
2
+ import { Box } from "./Box";
3
+ import { ScrollView } from "./ScrollView";
4
+ import { TableContextProvider } from "./tableContext";
5
+ export function Table({ children, columns, borderStyle, maxHeight }) {
6
+ const tableRef = useRef(null);
7
+ const arrayChildren = Children.toArray(children);
8
+ const [sortColumn, setSortColumn] = React.useState(undefined);
9
+ // Check if any of the rows below have a drawerContents prop to see if we need to render space for the caret.
10
+ const hasDrawerContents = arrayChildren.some((child) => {
11
+ var _a;
12
+ return (_a = child.props) === null || _a === void 0 ? void 0 : _a.drawerContents;
13
+ });
14
+ // Calculate the total width of the table. If the table has only number widths, calculate a width. Otherwise use 100%.
15
+ let width;
16
+ if (columns.every((column) => typeof column === "number")) {
17
+ width = columns.reduce((acc, curr) => {
18
+ return acc + curr;
19
+ }, 0);
20
+ if (hasDrawerContents) {
21
+ width = width + 30;
22
+ }
23
+ }
24
+ else {
25
+ width = "100%";
26
+ }
27
+ return (React.createElement(TableContextProvider, { columns: columns, hasDrawerContents: hasDrawerContents, setSortColumn: setSortColumn, sortColumn: sortColumn },
28
+ React.createElement(ScrollView, { horizontal: true, style: { width, maxWidth: "100%" } },
29
+ React.createElement(Box, Object.assign({ width: width }, (borderStyle === "sm" ? { borderStyle: "sm", rounding: 1 } : {}), { ref: tableRef, flex: "grow", maxHeight: maxHeight }), children))));
30
+ }
31
+ //# sourceMappingURL=Table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAgB,MAAM,EAAC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAsB,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAqBzE,MAAM,UAAU,KAAK,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAa;IAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IAE/F,6GAA6G;IAC7G,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;;QACrD,OAAO,MAAC,KAAsB,CAAC,KAAK,0CAAE,cAAc,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,sHAAsH;IACtH,IAAI,KAAsB,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;QACzD,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnC,OAAQ,GAAc,GAAI,IAAe,CAAC;QAC5C,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,iBAAiB,EAAE;YACrB,KAAK,GAAI,KAAgB,GAAG,EAAE,CAAC;SAChC;KACF;SAAM;QACL,KAAK,GAAG,MAAM,CAAC;KAChB;IAED,OAAO,CACL,oBAAC,oBAAoB,IACnB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU;QAEtB,oBAAC,UAAU,IAAC,UAAU,QAAC,KAAK,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAC;YACrD,oBAAC,GAAG,kBACF,KAAK,EAAE,KAAK,IACR,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAClE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,SAAS,KAEnB,QAAQ,CACL,CACK,CACQ,CACxB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ interface TableHeaderProps {
3
+ /**
4
+ * Must be an instance of TableRow.
5
+ */
6
+ children: React.ReactNode | React.ReactNode[];
7
+ /**
8
+ * Display `visuallyHidden` ensures the component is visually hidden but still is read by screen readers.
9
+ */
10
+ display?: "tableHeaderGroup" | "visuallyHidden";
11
+ /**
12
+ * If true, the table header will be sticky and the table body will be scrollable. Not yet implemented.
13
+ */
14
+ sticky?: boolean;
15
+ }
16
+ /**
17
+ * Use TableHeader to group the header content in Table.
18
+ */
19
+ export declare function TableHeader({ children, display, }: TableHeaderProps): React.ReactElement;
20
+ export {};
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { Box } from "./Box";
3
+ import { TableRow } from "./TableRow";
4
+ /**
5
+ * Use TableHeader to group the header content in Table.
6
+ */
7
+ export function TableHeader({ children, display = "tableHeaderGroup", }) {
8
+ return (React.createElement(Box, { display: display === "visuallyHidden" ? "none" : "flex" },
9
+ React.createElement(TableRow, { headerRow: true }, children)));
10
+ }
11
+ //# sourceMappingURL=TableHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../src/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAiBpC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,GAAG,kBAAkB,GACX;IACjB,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAE,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC1D,oBAAC,QAAQ,IAAC,SAAS,UAAE,QAAQ,CAAY,CACrC,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { ReactElement } from "react";
2
+ interface Props {
3
+ /**
4
+ * The content of the table header cell.
5
+ */
6
+ children: ReactElement;
7
+ index: number;
8
+ sortable?: boolean;
9
+ onSortChange?: (direction: "asc" | "desc" | undefined) => void;
10
+ }
11
+ /**
12
+ * Use TableHeaderCell to define a header cell in Table.
13
+ */
14
+ export declare function TableHeaderCell({ children, index, sortable, onSortChange }: Props): ReactElement;
15
+ export {};
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { Box } from "./Box";
3
+ import { IconButton } from "./IconButton";
4
+ import { useTableContext } from "./tableContext";
5
+ /**
6
+ * Use TableHeaderCell to define a header cell in Table.
7
+ */
8
+ export function TableHeaderCell({ children, index, sortable, onSortChange }) {
9
+ const { columns, setSortColumn, sortColumn } = useTableContext();
10
+ const width = columns[index];
11
+ if (!width) {
12
+ console.warn(`No width defined for column ${index} in TableHeaderCell`);
13
+ }
14
+ const onClick = () => {
15
+ // desc => asc => undefined
16
+ const newSort = sort === "desc" ? "asc" : sort === "asc" ? undefined : "desc";
17
+ if (setSortColumn) {
18
+ setSortColumn(newSort ? { column: index, direction: newSort } : undefined);
19
+ }
20
+ onSortChange && onSortChange(newSort);
21
+ };
22
+ const sort = (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.column) === index ? sortColumn.direction : undefined;
23
+ if (sortable) {
24
+ if (!onSortChange) {
25
+ console.error("onSortChange is required when sortable is true");
26
+ }
27
+ return (React.createElement(Box, { alignItems: "center", direction: "row", flex: "grow", justifyContent: "between", marginBottom: 2, marginTop: 2, maxWidth: width, minHeight: 36, width: width, onClick: onClick },
28
+ children,
29
+ Boolean(sort) && (React.createElement(Box, { paddingX: 2 },
30
+ React.createElement(IconButton, { accessibilityLabel: "sort", bgColor: "white", icon: sort === "asc" ? "arrow-down" : "arrow-up", iconColor: "darkGray", size: "sm", onClick: () => { } })))));
31
+ }
32
+ else {
33
+ return (React.createElement(Box, { marginBottom: 2, marginTop: 2, width: width }, children));
34
+ }
35
+ }
36
+ //# sourceMappingURL=TableHeaderCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeaderCell.js","sourceRoot":"","sources":["../src/TableHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAY/C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAQ;IAC9E,MAAM,EAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAC,GAAG,eAAe,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CAAC,+BAA+B,KAAK,qBAAqB,CAAC,CAAC;KACzE;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC1E;QACD,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,MAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,IAAI,QAAQ,EAAE;QACZ,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACjE;QACD,OAAO,CACL,oBAAC,GAAG,IACF,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAC,KAAK,EACf,IAAI,EAAC,MAAM,EACX,cAAc,EAAC,SAAS,EACxB,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,EAAE,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO;YAEf,QAAQ;YACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAChB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;gBACd,oBAAC,UAAU,IACT,kBAAkB,EAAC,MAAM,EACzB,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,EAChD,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,GACjB,CACE,CACP,CACG,CACP,CAAC;KACH;SAAM;QACL,OAAO,CACL,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAC7C,QAAQ,CACL,CACP,CAAC;KACH;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from "react";
2
+ interface Props {
3
+ /**
4
+ * Must be instances of TableCell or TableHeaderCell.
5
+ */
6
+ children: React.ReactNode | React.ReactNode[];
7
+ /**
8
+ * Header rows have an extra thick bottom border.
9
+ */
10
+ headerRow?: boolean;
11
+ /**
12
+ * Whether the row should start expanded or not.
13
+ */
14
+ expanded?: boolean;
15
+ /**
16
+ * When the row is expanded, the drawerContents are shown. If not
17
+ */
18
+ drawerContents?: React.ReactNode | React.ReactNode[];
19
+ }
20
+ /**
21
+ * Use TableRow to define a row in Table.
22
+ */
23
+ export declare function TableRow({ children, headerRow, expanded, drawerContents, }: Props): React.ReactElement;
24
+ export {};
@@ -0,0 +1,30 @@
1
+ import React, { Children, useRef } from "react";
2
+ import { Box } from "./Box";
3
+ import { IconButton } from "./IconButton";
4
+ import { useTableContext } from "./tableContext";
5
+ /**
6
+ * Use TableRow to define a row in Table.
7
+ */
8
+ export function TableRow({ children, headerRow = false, expanded, drawerContents, }) {
9
+ const [isExpanded, setIsExpanded] = React.useState(expanded || false);
10
+ const { columns, hasDrawerContents } = useTableContext();
11
+ const rowRef = useRef(null);
12
+ const renderCellWithColumnIndex = (child, index) => {
13
+ if (!columns[index]) {
14
+ console.warn(`No width defined for column ${index} in TableRow`);
15
+ return null;
16
+ }
17
+ return (React.createElement(Box, { paddingX: 2, width: columns[index] }, child));
18
+ };
19
+ const border = { __style: { borderBottom: `${headerRow ? 2 : 1}px solid #e0e0e0` } };
20
+ return (React.createElement(Box, { ref: rowRef, dangerouslySetInlineStyle: border, marginBottom: 1, marginTop: 1, width: "100%" },
21
+ React.createElement(Box, { direction: "row", width: "100%" },
22
+ Boolean(drawerContents) && (React.createElement(Box, { width: 30 },
23
+ React.createElement(IconButton, { accessibilityLabel: "expand", bgColor: "white", icon: isExpanded ? "chevron-up" : "chevron-down", iconColor: "darkGray", size: "sm", onClick: () => {
24
+ setIsExpanded(!isExpanded);
25
+ } }))),
26
+ Boolean(hasDrawerContents && !drawerContents) && React.createElement(Box, { width: 30 }),
27
+ Children.map(children, renderCellWithColumnIndex)),
28
+ Boolean(isExpanded) && (React.createElement(Box, { paddingX: 2, width: "100%" }, drawerContents))));
29
+ }
30
+ //# sourceMappingURL=TableRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAqB/C;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,cAAc,GACR;IACN,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;IACtE,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAC,GAAG,eAAe,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEjC,MAAM,yBAAyB,GAAG,CAAC,KAAsB,EAAE,KAAa,EAAE,EAAE;QAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,+BAA+B,KAAK,cAAc,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IACpC,KAAK,CACF,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,EAAC,OAAO,EAAE,EAAC,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAC,EAAC,CAAC;IAEjF,OAAO,CACL,oBAAC,GAAG,IACF,GAAG,EAAE,MAAM,EACX,yBAAyB,EAAE,MAAM,EACjC,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,KAAK,EAAC,MAAM;QAEZ,oBAAC,GAAG,IAAC,SAAS,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM;YAC9B,OAAO,CAAC,cAAc,CAAC,IAAI,CAC1B,oBAAC,GAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,oBAAC,UAAU,IACT,kBAAkB,EAAC,QAAQ,EAC3B,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAChD,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;wBACZ,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC7B,CAAC,GACD,CACE,CACP;YAEA,OAAO,CAAC,iBAAiB,IAAI,CAAC,cAAc,CAAC,IAAI,oBAAC,GAAG,IAAC,KAAK,EAAE,EAAE,GAAI;YACnE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAC9C;QACL,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,MAAM,IAC3B,cAAc,CACX,CACP,CACG,CACP,CAAC;AACJ,CAAC"}
package/dist/TapToEdit.js CHANGED
@@ -10,13 +10,14 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { useState } from "react";
13
+ import { Linking } from "react-native";
13
14
  import { Box } from "./Box";
14
15
  import { Button } from "./Button";
15
16
  import { Field } from "./Field";
16
17
  import { Icon } from "./Icon";
17
18
  import { Text } from "./Text";
18
19
  export const TapToEdit = (_a) => {
19
- var _b, _c;
20
+ var _b, _c, _d;
20
21
  var { value, setValue, placeholder, title, onSave, editable = true, isEditing = false, rowBoxProps, transform, fieldComponent } = _a, fieldProps = __rest(_a, ["value", "setValue", "placeholder", "title", "onSave", "editable", "isEditing", "rowBoxProps", "transform", "fieldComponent"]);
21
22
  const [editing, setEditing] = useState(false);
22
23
  if (editable && !setValue) {
@@ -69,6 +70,11 @@ export const TapToEdit = (_a) => {
69
70
  // ???
70
71
  displayValue = value.join(", ");
71
72
  }
73
+ else if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url") {
74
+ // Show only the domain, full links are likely too long.
75
+ const url = new URL(value);
76
+ displayValue = (_b = url === null || url === void 0 ? void 0 : url.hostname) !== null && _b !== void 0 ? _b : value;
77
+ }
72
78
  else if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "address") {
73
79
  let city = "";
74
80
  if (value === null || value === void 0 ? void 0 : value.city) {
@@ -79,21 +85,26 @@ export const TapToEdit = (_a) => {
79
85
  state = (value === null || value === void 0 ? void 0 : value.zipcode) ? `${value.state} ` : `${value.state}`;
80
86
  }
81
87
  const zip = (value === null || value === void 0 ? void 0 : value.zipcode) || "";
82
- const addressLineOne = (_b = value === null || value === void 0 ? void 0 : value.address1) !== null && _b !== void 0 ? _b : "";
83
- const addressLineTwo = (_c = value === null || value === void 0 ? void 0 : value.address2) !== null && _c !== void 0 ? _c : "";
88
+ const addressLineOne = (_c = value === null || value === void 0 ? void 0 : value.address1) !== null && _c !== void 0 ? _c : "";
89
+ const addressLineTwo = (_d = value === null || value === void 0 ? void 0 : value.address2) !== null && _d !== void 0 ? _d : "";
84
90
  const addressLineThree = `${city}${state}${zip}`;
85
91
  // Only add new lines if lines before and after are not empty to avoid awkward whitespace
86
92
  displayValue = `${addressLineOne}${addressLineOne && (addressLineTwo || addressLineThree) ? `\n` : ""}${addressLineTwo}${addressLineTwo && addressLineThree ? `\n` : ""}${addressLineThree}`;
87
93
  }
88
94
  }
95
+ const openLink = () => {
96
+ if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url") {
97
+ Linking.openURL(value);
98
+ }
99
+ };
89
100
  return (React.createElement(Box, Object.assign({ direction: "row", justifyContent: "between", paddingX: 3, paddingY: 2, width: "100%" }, rowBoxProps),
90
101
  React.createElement(Box, null,
91
102
  React.createElement(Text, { weight: "bold" },
92
103
  title,
93
104
  ":")),
94
105
  React.createElement(Box, { direction: "row" },
95
- React.createElement(Box, null,
96
- React.createElement(Text, null, displayValue)),
106
+ React.createElement(Box, { onClick: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url" ? openLink : undefined },
107
+ React.createElement(Text, { underline: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url" }, displayValue)),
97
108
  editable && (React.createElement(Box, { marginLeft: 2, onClick: () => setEditing(true) },
98
109
  React.createElement(Icon, { color: "darkGray", name: "edit", prefix: "far", size: "md" }))))));
99
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -51,6 +51,10 @@ export * from "./NumberPickerActionSheet";
51
51
  export * from "./ModalSheet";
52
52
  export * from "./ProgressBar";
53
53
  export * from "./DateTimeField";
54
+ export * from "./Table";
55
+ export * from "./TableHeader";
56
+ export * from "./TableHeaderCell";
57
+ export * from "./TableRow";
54
58
  type ImageRequireSource = number;
55
59
  interface Insets {
56
60
  top?: number;
package/dist/index.js CHANGED
@@ -54,4 +54,8 @@ export * from "./NumberPickerActionSheet";
54
54
  export * from "./ModalSheet";
55
55
  export * from "./ProgressBar";
56
56
  export * from "./DateTimeField";
57
+ export * from "./Table";
58
+ export * from "./TableHeader";
59
+ export * from "./TableHeaderCell";
60
+ export * from "./TableRow";
57
61
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,4BAA4B;AAC5B,4BAA4B;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,2BAA2B;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,4BAA4B;AAC5B,4BAA4B;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,2BAA2B;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ export interface ColumnSortInterface {
3
+ column: number | undefined;
4
+ direction: "asc" | "desc" | undefined;
5
+ }
6
+ interface TableContextType {
7
+ columns: Array<number | string>;
8
+ hasDrawerContents: boolean;
9
+ sortColumn?: ColumnSortInterface | undefined;
10
+ setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
11
+ }
12
+ interface Props extends TableContextType {
13
+ children: React.ReactElement;
14
+ }
15
+ export declare const Provider: React.Provider<TableContextType>;
16
+ export declare function TableContextProvider({ children, columns, hasDrawerContents, sortColumn, setSortColumn, }: Props): React.ReactElement<typeof Provider>;
17
+ export declare function useTableContext(): TableContextType;
18
+ export {};
@@ -0,0 +1,16 @@
1
+ import React, { createContext, useContext } from "react";
2
+ const TableContext = createContext({
3
+ columns: [],
4
+ hasDrawerContents: false,
5
+ sortColumn: undefined,
6
+ setSortColumn: () => { },
7
+ });
8
+ export const { Provider } = TableContext;
9
+ export function TableContextProvider({ children, columns, hasDrawerContents, sortColumn, setSortColumn, }) {
10
+ return (React.createElement(Provider, { value: { columns, hasDrawerContents, sortColumn, setSortColumn } }, children));
11
+ }
12
+ export function useTableContext() {
13
+ const { columns, hasDrawerContents, setSortColumn, sortColumn } = useContext(TableContext);
14
+ return { columns, hasDrawerContents, setSortColumn, sortColumn };
15
+ }
16
+ //# sourceMappingURL=tableContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../src/tableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAU,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAkBhE,MAAM,YAAY,GAA8B,aAAa,CAAmB;IAC9E,OAAO,EAAE,EAAE;IACX,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;AAEvC,MAAM,UAAU,oBAAoB,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,aAAa,GACP;IACN,OAAO,CACL,oBAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAC,IAAG,QAAQ,CAAY,CAChG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzF,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAC,CAAC;AACjE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ferns-ui",
3
- "version": "0.25.2",
3
+ "version": "0.26.0",
4
4
  "main": "dist/index.js",
5
5
  "license": "Apache-2.0",
6
6
  "scripts": {
package/src/Box.tsx CHANGED
@@ -269,6 +269,7 @@ export class Box extends React.Component<BoxProps, {}> {
269
269
  contentContainerStyle={{justifyContent, alignContent, alignItems}}
270
270
  horizontal={this.props.overflow === "scrollX"}
271
271
  keyboardShouldPersistTaps="handled"
272
+ nestedScrollEnabled
272
273
  scrollEventThrottle={50}
273
274
  style={scrollStyle}
274
275
  onScroll={(event) => {
@@ -69,14 +69,19 @@ export const SegmentedControl = ({
69
69
  justifyContent="center"
70
70
  width="100%"
71
71
  onClick={() => {
72
+ if (
73
+ selectedItemIndexes?.length === selectLimit &&
74
+ !selectedItemIndexes?.includes(index)
75
+ ) {
76
+ return;
77
+ }
72
78
  if (multiselect) {
73
79
  if (selectedItemIndexes?.includes(index)) {
74
80
  onChange({activeIndex: selectedItemIndexes.filter((i) => i !== index)});
75
81
  } else {
76
- const reversed = selectedItemIndexes?.reverse();
77
- reversed?.splice(1, 1);
78
- reversed?.push(index);
79
- onChange({activeIndex: reversed as number[]});
82
+ const currentIndexes = [...(selectedItemIndexes as number[])];
83
+ currentIndexes?.push(index);
84
+ onChange({activeIndex: currentIndexes?.sort() as number[]});
80
85
  }
81
86
  } else {
82
87
  onChange({activeIndex: index});
package/src/SplitPage.tsx CHANGED
@@ -25,6 +25,7 @@ interface SplitPageProps {
25
25
  listViewExtraData?: any;
26
26
  listViewWidth?: number;
27
27
  renderChild?: () => ReactChild;
28
+ selectLimit?: number;
28
29
  }
29
30
 
30
31
  // A component for rendering a list on one side and a details view on the right for large screens,
@@ -41,6 +42,7 @@ export const SplitPage = ({
41
42
  listViewData,
42
43
  listViewExtraData,
43
44
  listViewWidth,
45
+ selectLimit,
44
46
  }: SplitPageProps) => {
45
47
  const [selectedId, setSelectedId] = useState<number | undefined>(undefined);
46
48
  const [activeTabs, setActiveTabs] = useState<number[]>(tabs.length > 2 ? [0, 1] : []);
@@ -130,7 +132,7 @@ export const SplitPage = ({
130
132
  <SegmentedControl
131
133
  items={tabs}
132
134
  multiselect
133
- selectLimit={tabs.length}
135
+ selectLimit={selectLimit || tabs.length}
134
136
  selectedItemIndexes={activeTabs}
135
137
  onChange={(index) => {
136
138
  setActiveTabs([...(index.activeIndex as number[])]);
package/src/Table.tsx ADDED
@@ -0,0 +1,69 @@
1
+ import React, {Children, ReactElement, useRef} from "react";
2
+
3
+ import {Box} from "./Box";
4
+ import {ScrollView} from "./ScrollView";
5
+ import {ColumnSortInterface, TableContextProvider} from "./tableContext";
6
+
7
+ interface TableProps {
8
+ /**
9
+ * Must be instances of TableHeader, TableRow, and/or TableFooter components.
10
+ */
11
+ children: React.ReactNode | React.ReactNode[];
12
+ /**
13
+ * Width of columns in the table. This is used to calculate the width of each column. Can be numbers for pixels or strings for percentages.
14
+ */
15
+ columns: Array<number | string>;
16
+ /**
17
+ * Specify a border width for Table: "sm" is 1px.
18
+ */
19
+ borderStyle?: "sm" | "none";
20
+ /**
21
+ * Use numbers for pixels: `maxHeight={100}` and strings for percentages: `maxHeight="100%"`.
22
+ */
23
+ maxHeight?: number | string;
24
+ }
25
+
26
+ export function Table({children, columns, borderStyle, maxHeight}: TableProps): React.ReactElement {
27
+ const tableRef = useRef(null);
28
+ const arrayChildren = Children.toArray(children);
29
+ const [sortColumn, setSortColumn] = React.useState<ColumnSortInterface | undefined>(undefined);
30
+
31
+ // Check if any of the rows below have a drawerContents prop to see if we need to render space for the caret.
32
+ const hasDrawerContents = arrayChildren.some((child) => {
33
+ return (child as ReactElement).props?.drawerContents;
34
+ });
35
+
36
+ // Calculate the total width of the table. If the table has only number widths, calculate a width. Otherwise use 100%.
37
+ let width: string | number;
38
+ if (columns.every((column) => typeof column === "number")) {
39
+ width = columns.reduce((acc, curr) => {
40
+ return (acc as number) + (curr as number);
41
+ }, 0);
42
+ if (hasDrawerContents) {
43
+ width = (width as number) + 30;
44
+ }
45
+ } else {
46
+ width = "100%";
47
+ }
48
+
49
+ return (
50
+ <TableContextProvider
51
+ columns={columns}
52
+ hasDrawerContents={hasDrawerContents}
53
+ setSortColumn={setSortColumn}
54
+ sortColumn={sortColumn}
55
+ >
56
+ <ScrollView horizontal style={{width, maxWidth: "100%"}}>
57
+ <Box
58
+ width={width}
59
+ {...(borderStyle === "sm" ? {borderStyle: "sm", rounding: 1} : {})}
60
+ ref={tableRef}
61
+ flex="grow"
62
+ maxHeight={maxHeight}
63
+ >
64
+ {children}
65
+ </Box>
66
+ </ScrollView>
67
+ </TableContextProvider>
68
+ );
69
+ }
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+
3
+ import {Box} from "./Box";
4
+ import {TableRow} from "./TableRow";
5
+
6
+ interface TableHeaderProps {
7
+ /**
8
+ * Must be an instance of TableRow.
9
+ */
10
+ children: React.ReactNode | React.ReactNode[];
11
+ /**
12
+ * Display `visuallyHidden` ensures the component is visually hidden but still is read by screen readers.
13
+ */
14
+ display?: "tableHeaderGroup" | "visuallyHidden";
15
+ /**
16
+ * If true, the table header will be sticky and the table body will be scrollable. Not yet implemented.
17
+ */
18
+ sticky?: boolean;
19
+ }
20
+
21
+ /**
22
+ * Use TableHeader to group the header content in Table.
23
+ */
24
+ export function TableHeader({
25
+ children,
26
+ display = "tableHeaderGroup",
27
+ }: TableHeaderProps): React.ReactElement {
28
+ return (
29
+ <Box display={display === "visuallyHidden" ? "none" : "flex"}>
30
+ <TableRow headerRow>{children}</TableRow>
31
+ </Box>
32
+ );
33
+ }
@@ -0,0 +1,76 @@
1
+ import React, {ReactElement} from "react";
2
+
3
+ import {Box} from "./Box";
4
+ import {IconButton} from "./IconButton";
5
+ import {useTableContext} from "./tableContext";
6
+
7
+ interface Props {
8
+ /**
9
+ * The content of the table header cell.
10
+ */
11
+ children: ReactElement;
12
+ index: number;
13
+ sortable?: boolean;
14
+ onSortChange?: (direction: "asc" | "desc" | undefined) => void;
15
+ }
16
+
17
+ /**
18
+ * Use TableHeaderCell to define a header cell in Table.
19
+ */
20
+ export function TableHeaderCell({children, index, sortable, onSortChange}: Props): ReactElement {
21
+ const {columns, setSortColumn, sortColumn} = useTableContext();
22
+ const width = columns[index];
23
+ if (!width) {
24
+ console.warn(`No width defined for column ${index} in TableHeaderCell`);
25
+ }
26
+
27
+ const onClick = () => {
28
+ // desc => asc => undefined
29
+ const newSort = sort === "desc" ? "asc" : sort === "asc" ? undefined : "desc";
30
+ if (setSortColumn) {
31
+ setSortColumn(newSort ? {column: index, direction: newSort} : undefined);
32
+ }
33
+ onSortChange && onSortChange(newSort);
34
+ };
35
+ const sort = sortColumn?.column === index ? sortColumn.direction : undefined;
36
+
37
+ if (sortable) {
38
+ if (!onSortChange) {
39
+ console.error("onSortChange is required when sortable is true");
40
+ }
41
+ return (
42
+ <Box
43
+ alignItems="center"
44
+ direction="row"
45
+ flex="grow"
46
+ justifyContent="between"
47
+ marginBottom={2}
48
+ marginTop={2}
49
+ maxWidth={width}
50
+ minHeight={36}
51
+ width={width}
52
+ onClick={onClick}
53
+ >
54
+ {children}
55
+ {Boolean(sort) && (
56
+ <Box paddingX={2}>
57
+ <IconButton
58
+ accessibilityLabel="sort"
59
+ bgColor="white"
60
+ icon={sort === "asc" ? "arrow-down" : "arrow-up"}
61
+ iconColor="darkGray"
62
+ size="sm"
63
+ onClick={() => {}}
64
+ />
65
+ </Box>
66
+ )}
67
+ </Box>
68
+ );
69
+ } else {
70
+ return (
71
+ <Box marginBottom={2} marginTop={2} width={width}>
72
+ {children}
73
+ </Box>
74
+ );
75
+ }
76
+ }
@@ -0,0 +1,87 @@
1
+ import React, {Children, useRef} from "react";
2
+
3
+ import {Box} from "./Box";
4
+ import {IconButton} from "./IconButton";
5
+ import {useTableContext} from "./tableContext";
6
+
7
+ interface Props {
8
+ /**
9
+ * Must be instances of TableCell or TableHeaderCell.
10
+ */
11
+ children: React.ReactNode | React.ReactNode[];
12
+ /**
13
+ * Header rows have an extra thick bottom border.
14
+ */
15
+ headerRow?: boolean;
16
+ /**
17
+ * Whether the row should start expanded or not.
18
+ */
19
+ expanded?: boolean;
20
+ /**
21
+ * When the row is expanded, the drawerContents are shown. If not
22
+ */
23
+ drawerContents?: React.ReactNode | React.ReactNode[];
24
+ }
25
+
26
+ /**
27
+ * Use TableRow to define a row in Table.
28
+ */
29
+ export function TableRow({
30
+ children,
31
+ headerRow = false,
32
+ expanded,
33
+ drawerContents,
34
+ }: Props): React.ReactElement {
35
+ const [isExpanded, setIsExpanded] = React.useState(expanded || false);
36
+ const {columns, hasDrawerContents} = useTableContext();
37
+ const rowRef = useRef<Box>(null);
38
+
39
+ const renderCellWithColumnIndex = (child: React.ReactNode, index: number) => {
40
+ if (!columns[index]) {
41
+ console.warn(`No width defined for column ${index} in TableRow`);
42
+ return null;
43
+ }
44
+ return (
45
+ <Box paddingX={2} width={columns[index]}>
46
+ {child}
47
+ </Box>
48
+ );
49
+ };
50
+
51
+ const border = {__style: {borderBottom: `${headerRow ? 2 : 1}px solid #e0e0e0`}};
52
+
53
+ return (
54
+ <Box
55
+ ref={rowRef}
56
+ dangerouslySetInlineStyle={border}
57
+ marginBottom={1}
58
+ marginTop={1}
59
+ width="100%"
60
+ >
61
+ <Box direction="row" width="100%">
62
+ {Boolean(drawerContents) && (
63
+ <Box width={30}>
64
+ <IconButton
65
+ accessibilityLabel="expand"
66
+ bgColor="white"
67
+ icon={isExpanded ? "chevron-up" : "chevron-down"}
68
+ iconColor="darkGray"
69
+ size="sm"
70
+ onClick={() => {
71
+ setIsExpanded(!isExpanded);
72
+ }}
73
+ />
74
+ </Box>
75
+ )}
76
+ {/* Still render a blank space so the columns line up. */}
77
+ {Boolean(hasDrawerContents && !drawerContents) && <Box width={30} />}
78
+ {Children.map(children, renderCellWithColumnIndex)}
79
+ </Box>
80
+ {Boolean(isExpanded) && (
81
+ <Box paddingX={2} width="100%">
82
+ {drawerContents}
83
+ </Box>
84
+ )}
85
+ </Box>
86
+ );
87
+ }
package/src/TapToEdit.tsx CHANGED
@@ -1,4 +1,5 @@
1
1
  import React, {ReactElement, useState} from "react";
2
+ import {Linking} from "react-native";
2
3
 
3
4
  import {Box} from "./Box";
4
5
  import {Button} from "./Button";
@@ -110,6 +111,10 @@ export const TapToEdit = ({
110
111
  } else if (fieldProps?.type === "multiselect") {
111
112
  // ???
112
113
  displayValue = value.join(", ");
114
+ } else if (fieldProps?.type === "url") {
115
+ // Show only the domain, full links are likely too long.
116
+ const url = new URL(value);
117
+ displayValue = url?.hostname ?? value;
113
118
  } else if (fieldProps?.type === "address") {
114
119
  let city = "";
115
120
  if (value?.city) {
@@ -133,6 +138,13 @@ export const TapToEdit = ({
133
138
  }${addressLineTwo}${addressLineTwo && addressLineThree ? `\n` : ""}${addressLineThree}`;
134
139
  }
135
140
  }
141
+
142
+ const openLink = (): void => {
143
+ if (fieldProps?.type === "url") {
144
+ Linking.openURL(value);
145
+ }
146
+ };
147
+
136
148
  return (
137
149
  <Box
138
150
  direction="row"
@@ -146,8 +158,8 @@ export const TapToEdit = ({
146
158
  <Text weight="bold">{title}:</Text>
147
159
  </Box>
148
160
  <Box direction="row">
149
- <Box>
150
- <Text>{displayValue}</Text>
161
+ <Box onClick={fieldProps?.type === "url" ? openLink : undefined}>
162
+ <Text underline={fieldProps?.type === "url"}>{displayValue}</Text>
151
163
  </Box>
152
164
  {editable && (
153
165
  <Box marginLeft={2} onClick={(): void => setEditing(true)}>
package/src/index.tsx CHANGED
@@ -55,6 +55,10 @@ export * from "./NumberPickerActionSheet";
55
55
  export * from "./ModalSheet";
56
56
  export * from "./ProgressBar";
57
57
  export * from "./DateTimeField";
58
+ export * from "./Table";
59
+ export * from "./TableHeader";
60
+ export * from "./TableHeaderCell";
61
+ export * from "./TableRow";
58
62
 
59
63
  // Lifted from react-native
60
64
  type ImageRequireSource = number;
@@ -0,0 +1,43 @@
1
+ import React, {Context, createContext, useContext} from "react";
2
+
3
+ export interface ColumnSortInterface {
4
+ column: number | undefined;
5
+ direction: "asc" | "desc" | undefined;
6
+ }
7
+
8
+ interface TableContextType {
9
+ columns: Array<number | string>;
10
+ hasDrawerContents: boolean;
11
+ sortColumn?: ColumnSortInterface | undefined;
12
+ setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
13
+ }
14
+
15
+ interface Props extends TableContextType {
16
+ children: React.ReactElement;
17
+ }
18
+
19
+ const TableContext: Context<TableContextType> = createContext<TableContextType>({
20
+ columns: [],
21
+ hasDrawerContents: false,
22
+ sortColumn: undefined,
23
+ setSortColumn: () => {},
24
+ });
25
+
26
+ export const {Provider} = TableContext;
27
+
28
+ export function TableContextProvider({
29
+ children,
30
+ columns,
31
+ hasDrawerContents,
32
+ sortColumn,
33
+ setSortColumn,
34
+ }: Props): React.ReactElement<typeof Provider> {
35
+ return (
36
+ <Provider value={{columns, hasDrawerContents, sortColumn, setSortColumn}}>{children}</Provider>
37
+ );
38
+ }
39
+
40
+ export function useTableContext(): TableContextType {
41
+ const {columns, hasDrawerContents, setSortColumn, sortColumn} = useContext(TableContext);
42
+ return {columns, hasDrawerContents, setSortColumn, sortColumn};
43
+ }