@aivenio/aquarium 1.0.0 → 1.1.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/_variables.scss +1 -1
- package/dist/_variables_timescale.scss +1 -1
- package/dist/atoms.cjs +821 -623
- package/dist/atoms.mjs +820 -623
- package/dist/src/common/Alert/Alert.d.ts +1 -1
- package/dist/src/common/Alert/Alert.js +3 -3
- package/dist/src/common/Banner/Banner.d.ts +5 -1
- package/dist/src/common/Banner/Banner.js +5 -3
- package/dist/src/common/DropdownMenu/DropdownMenu.d.ts +8 -3
- package/dist/src/common/DropdownMenu/DropdownMenu.js +12 -2
- package/dist/src/common/Modal/Modal.js +3 -3
- package/dist/src/common/Timeline/Timeline.d.ts +18 -0
- package/dist/src/common/Timeline/Timeline.js +43 -0
- package/dist/src/common/Typography/Typography.d.ts +2 -1
- package/dist/src/common/Typography/Typography.js +15 -3
- package/dist/src/components/Alert/Alert.js +2 -2
- package/dist/src/components/Banner/Banner.d.ts +3 -1
- package/dist/src/components/Banner/Banner.js +3 -3
- package/dist/src/components/Box/Box.d.ts +5 -1
- package/dist/src/components/Box/Box.js +6 -2
- package/dist/src/components/DataTable/DataTable.d.ts +15 -12
- package/dist/src/components/DataTable/DataTable.js +9 -5
- package/dist/src/components/Dialog/Dialog.js +35 -12
- package/dist/src/components/DropdownMenu/DropdownMenu.d.ts +7 -1
- package/dist/src/components/DropdownMenu/DropdownMenu.js +23 -13
- package/dist/src/components/DropdownMenu/utils.d.ts +4 -0
- package/dist/src/components/DropdownMenu/utils.js +20 -0
- package/dist/src/components/Modal/Modal.js +16 -8
- package/dist/src/components/Section/Section.d.ts +4 -0
- package/dist/src/components/Section/Section.js +14 -13
- package/dist/src/components/Skeleton/Skeleton.d.ts +7 -2
- package/dist/src/components/Skeleton/Skeleton.js +5 -4
- package/dist/src/components/Template/Template.d.ts +18 -0
- package/dist/src/components/Template/Template.js +18 -0
- package/dist/src/components/Timeline/Timeline.d.ts +27 -0
- package/dist/src/components/Timeline/Timeline.js +41 -0
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/components/index.js +3 -1
- package/dist/src/utils/Blueprint.d.ts +2 -0
- package/dist/src/utils/Blueprint.js +29 -0
- package/dist/styles.css +40 -21
- package/dist/styles_timescaledb.css +40 -21
- package/dist/system.cjs +2566 -1813
- package/dist/system.mjs +2553 -1802
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/tailwindGenerated.d.ts +1 -1
- package/package.json +1 -1
@@ -1,18 +1,41 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import omit from 'lodash/omit';
|
3
|
+
import { Overlay, useModalOverlay } from '@react-aria/overlays';
|
4
|
+
import { useDialog } from '@react-aria/dialog';
|
5
|
+
import { FocusScope } from '@react-aria/focus';
|
6
|
+
import { useId } from '@react-aria/utils';
|
7
|
+
import { useOverlayTriggerState } from '@react-stately/overlays';
|
3
8
|
import { GhostButton, SecondaryButton } from '../../../src/components/Button/Button';
|
4
9
|
import { Icon } from '../../../src/components/Icon/Icon';
|
5
10
|
import { Modal } from '../../../src/common/Modal/Modal';
|
6
11
|
import { DIALOG_ICONS_AND_COLORS } from '../../../src/common/Dialog/Dialog';
|
7
|
-
export const Dialog = ({ title, type = 'confirmation', open, children, primaryAction, secondaryAction, }) =>
|
8
|
-
React.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
export const Dialog = ({ title, type = 'confirmation', open, children, primaryAction, secondaryAction, }) => {
|
13
|
+
const ref = React.useRef(null);
|
14
|
+
const state = useOverlayTriggerState({ isOpen: open });
|
15
|
+
const { modalProps, underlayProps } = useModalOverlay({ isDismissable: false }, state, ref);
|
16
|
+
const labelledBy = useId();
|
17
|
+
const describedBy = useId();
|
18
|
+
// useDialog() also returns 'titleProps', but it doesn't work correctly
|
19
|
+
// in this case because the title id is set to null after the second render.
|
20
|
+
// The problem (most likely) is somewhere in this component which causes
|
21
|
+
// it render twice when it is opened and that causes the useSlotId() hook
|
22
|
+
// in react-aria to think that the title is not rendered correctly.
|
23
|
+
const { dialogProps } = useDialog({ 'role': 'alertdialog', 'aria-labelledby': labelledBy, 'aria-describedby': describedBy }, ref);
|
24
|
+
if (!open) {
|
25
|
+
return null;
|
26
|
+
}
|
27
|
+
return (React.createElement(Overlay, null,
|
28
|
+
React.createElement(Modal, { open: open },
|
29
|
+
React.createElement(Modal.BackDrop, Object.assign({}, underlayProps)),
|
30
|
+
React.createElement(FocusScope, { contain: true, restoreFocus: true, autoFocus: true },
|
31
|
+
React.createElement(Modal.Dialog, Object.assign({ ref: ref, size: "sm" }, modalProps, dialogProps),
|
32
|
+
React.createElement(Modal.Header, null,
|
33
|
+
React.createElement(Icon, { icon: DIALOG_ICONS_AND_COLORS[type].icon, color: DIALOG_ICONS_AND_COLORS[type].color, fontSize: 20 }),
|
34
|
+
React.createElement(Modal.Title, { id: labelledBy, variant: "body-large", color: DIALOG_ICONS_AND_COLORS[type].color }, title)),
|
35
|
+
React.createElement(Modal.Body, { id: describedBy }, children),
|
36
|
+
React.createElement(Modal.Footer, null,
|
37
|
+
React.createElement(Modal.Actions, null,
|
38
|
+
secondaryAction && (React.createElement(GhostButton, Object.assign({ key: secondaryAction.text }, omit(secondaryAction, 'text')), secondaryAction.text)),
|
39
|
+
React.createElement(SecondaryButton, Object.assign({ key: primaryAction.text }, omit(primaryAction, 'text')), primaryAction.text))))))));
|
40
|
+
};
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQWMsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQXNCL0UsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUEwQixDQUFDLEVBQzVDLEtBQUssRUFDTCxJQUFJLEdBQUcsY0FBYyxFQUNyQixJQUFJLEVBQ0osUUFBUSxFQUNSLGFBQWEsRUFDYixlQUFlLEdBQ2hCLEVBQUUsRUFBRTtJQUNILE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQWlCLElBQUksQ0FBQyxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxlQUFlLENBQUMsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzVCLHVFQUF1RTtJQUN2RSw0RUFBNEU7SUFDNUUsd0VBQXdFO0lBQ3hFLHlFQUF5RTtJQUN6RSxtRUFBbUU7SUFDbkUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FDL0IsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsRUFDekYsR0FBRyxDQUNKLENBQUM7SUFFRixJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sQ0FDTCxvQkFBQyxPQUFPO1FBQ04sb0JBQUMsS0FBSyxJQUFDLElBQUksRUFBRSxJQUFJO1lBQ2Ysb0JBQUMsS0FBSyxDQUFDLFFBQVEsb0JBQUssYUFBYSxFQUFJO1lBQ3JDLG9CQUFDLFVBQVUsSUFBQyxPQUFPLFFBQUMsWUFBWSxRQUFDLFNBQVM7Z0JBQ3hDLG9CQUFDLEtBQUssQ0FBQyxNQUFNLGtCQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFDLElBQUksSUFBSyxVQUFVLEVBQU0sV0FBVztvQkFLL0Qsb0JBQUMsS0FBSyxDQUFDLE1BQU07d0JBQ1gsb0JBQUMsSUFBSSxJQUNILElBQUksRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQ3hDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQzFDLFFBQVEsRUFBRSxFQUFFLEdBQ1o7d0JBQ0Ysb0JBQUMsS0FBSyxDQUFDLEtBQUssSUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxZQUFZLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssSUFDekYsS0FBSyxDQUNNLENBQ0Q7b0JBQ2Ysb0JBQUMsS0FBSyxDQUFDLElBQUksSUFBQyxFQUFFLEVBQUUsV0FBVyxJQUFHLFFBQVEsQ0FBYztvQkFDcEQsb0JBQUMsS0FBSyxDQUFDLE1BQU07d0JBQ1gsb0JBQUMsS0FBSyxDQUFDLE9BQU87NEJBQ1gsZUFBZSxJQUFJLENBQ2xCLG9CQUFDLFdBQVcsa0JBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxJQUFJLElBQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsR0FDdEUsZUFBZSxDQUFDLElBQUksQ0FDVCxDQUNmOzRCQUNELG9CQUFDLGVBQWUsa0JBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsR0FDdEUsYUFBYSxDQUFDLElBQUksQ0FDSCxDQUNKLENBQ0gsQ0FDRixDQUNKLENBQ1AsQ0FDQSxDQUNYLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
@@ -93,7 +93,13 @@ export declare type DropdownMenuProps = {
|
|
93
93
|
* Dropdown menu items.
|
94
94
|
*/
|
95
95
|
children: DropdownMenuChildren;
|
96
|
-
}
|
96
|
+
} & ({
|
97
|
+
searchable?: false;
|
98
|
+
emptyState?: never;
|
99
|
+
} | {
|
100
|
+
searchable: true;
|
101
|
+
emptyState?: React.ReactNode;
|
102
|
+
});
|
97
103
|
export declare const DropdownMenu: React.FC<DropdownMenuProps> & {
|
98
104
|
Trigger: React.FC<DropdownMenuTriggerProps>;
|
99
105
|
Items: React.FC<DropdownMenuItemsProps>;
|
@@ -10,6 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
10
10
|
return t;
|
11
11
|
};
|
12
12
|
import React from 'react';
|
13
|
+
import { useFilter } from '@react-aria/i18n';
|
13
14
|
import { Item, Section } from '@react-stately/collections';
|
14
15
|
import { useTreeState } from '@react-stately/tree';
|
15
16
|
import { useMenuTriggerState } from '@react-stately/menu';
|
@@ -18,11 +19,14 @@ import { useMenuTrigger, useMenu, useMenuItem, useMenuSection } from '@react-ari
|
|
18
19
|
import { useSeparator } from '@react-aria/separator';
|
19
20
|
import { usePress, PressResponder } from '@react-aria/interactions';
|
20
21
|
import { mergeProps } from '@react-aria/utils';
|
22
|
+
import { tw } from '../../../src/utils/tailwind';
|
21
23
|
import { PopoverWrapper } from '../../../src/components/Popover/PopoverWrapper';
|
22
24
|
import { DropdownMenu as Base } from '../../../src/common/DropdownMenu/DropdownMenu';
|
23
25
|
import { isComponentType } from '../../../types/utils';
|
26
|
+
import { SearchInput } from '../../../src/components/Input/Input';
|
27
|
+
import { filterCollection } from './utils';
|
24
28
|
export const DropdownMenu = (_a) => {
|
25
|
-
var { onAction, selectionMode, selection, onSelectionChange, placement = 'bottom-left',
|
29
|
+
var { onAction, selectionMode, selection, onSelectionChange, placement = 'bottom-left', minWidth, maxWidth, searchable = false, emptyState, children } = _a, props = __rest(_a, ["onAction", "selectionMode", "selection", "onSelectionChange", "placement", "minWidth", "maxWidth", "searchable", "emptyState", "children"]);
|
26
30
|
const triggerRef = React.useRef(null);
|
27
31
|
const overlayRef = React.useRef(null);
|
28
32
|
const [trigger, items] = extractTriggerAndItems(children);
|
@@ -39,7 +43,7 @@ export const DropdownMenu = (_a) => {
|
|
39
43
|
React.createElement(PressResponder, Object.assign({ ref: triggerRef, onPress: () => state.toggle() }, menuTriggerProps),
|
40
44
|
React.createElement(TriggerWrapper, null, trigger.props.children)),
|
41
45
|
React.createElement(PopoverWrapper, Object.assign({ ref: overlayRef, isDismissable: true, autoFocus: true, containFocus: true, isOpen: state.isOpen, onClose: state.close }, overlayProps),
|
42
|
-
React.createElement(MenuWrapper, Object.assign({ onAction: onAction, selectionMode: selectionMode, selection: selection, onSelectionChange: onSelectionChange, minWidth: minWidth, maxWidth: maxWidth }, menuProps), items.props.children))));
|
46
|
+
React.createElement(MenuWrapper, Object.assign({ onAction: onAction, selectionMode: selectionMode, selection: selection, onSelectionChange: onSelectionChange, searchable: searchable, emptyState: emptyState, minWidth: minWidth, maxWidth: maxWidth }, menuProps), items.props.children))));
|
43
47
|
};
|
44
48
|
const MenuTrigger = () => null;
|
45
49
|
const MenuItems = () => null;
|
@@ -62,21 +66,27 @@ const TriggerWrapper = (_a) => {
|
|
62
66
|
const isSectionNode = (item) => item.type === 'section';
|
63
67
|
const isItemNode = (item) => item.type === 'item';
|
64
68
|
const MenuWrapper = (_a) => {
|
65
|
-
var { selection: selectedKeys, minWidth, maxWidth } = _a, props = __rest(_a, ["selection", "minWidth", "maxWidth"]);
|
69
|
+
var { selection: selectedKeys, minWidth, maxWidth, searchable, emptyState } = _a, props = __rest(_a, ["selection", "minWidth", "maxWidth", "searchable", "emptyState"]);
|
66
70
|
const ref = React.useRef(null);
|
67
71
|
const disabledKeys = getDisabledItemKeys(props.children);
|
68
72
|
const state = useTreeState(Object.assign({ disabledKeys,
|
69
73
|
selectedKeys }, props));
|
70
74
|
const { menuProps } = useMenu(props, state, ref);
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
75
|
+
const { contains } = useFilter({ sensitivity: 'base' });
|
76
|
+
const [search, setSearch] = React.useState('');
|
77
|
+
const filteredCollection = React.useMemo(() => (searchable ? filterCollection(state.collection, search, contains) : state.collection), [state.collection, search, contains]);
|
78
|
+
return (React.createElement(Base, { minWidth: minWidth !== undefined ? `${minWidth}px` : undefined, maxWidth: maxWidth !== undefined ? `${maxWidth}px` : undefined },
|
79
|
+
searchable && (React.createElement(SearchInput, { "aria-label": "search", value: search, onChange: (e) => setSearch(e.target.value), className: tw('mb-5') })),
|
80
|
+
filteredCollection.size === 0 && emptyState && React.createElement(Base.EmptyStateContainer, null, emptyState),
|
81
|
+
React.createElement(Base.List, Object.assign({ ref: ref }, menuProps), Array.from(filteredCollection).map((item) => {
|
82
|
+
// For some reason the inverse of this typeguard is not working hence the specfic check.
|
83
|
+
if (isSectionNode(item)) {
|
84
|
+
return React.createElement(SectionWrapper, { key: item.key, section: item, state: state });
|
85
|
+
}
|
86
|
+
else if (isItemNode(item)) {
|
87
|
+
return React.createElement(ItemWrapper, { key: item.key, item: item, state: state });
|
88
|
+
}
|
89
|
+
}))));
|
80
90
|
};
|
81
91
|
const ItemWrapper = ({ item, state }) => {
|
82
92
|
const ref = React.useRef(null);
|
@@ -128,4 +138,4 @@ const getDisabledItemKeys = (children) => {
|
|
128
138
|
});
|
129
139
|
return keys.flat().filter((key) => key !== null);
|
130
140
|
};
|
131
|
-
//# sourceMappingURL=data:application/json;base64,
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHJvcGRvd25NZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRHJvcGRvd25NZW51L0Ryb3Bkb3duTWVudS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxJQUFJLElBQUksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQXdI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
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { Collection, Node } from '@react-types/shared';
|
2
|
+
export declare type FilterFn = (textValue: string, inputValue: string) => boolean;
|
3
|
+
export declare const filterCollection: <T extends Record<string, unknown>>(collection: Collection<Node<T>>, inputValue: string, filter: FilterFn) => Collection<Node<T>>;
|
4
|
+
export declare const filterNodes: <T>(nodes: Iterable<Node<T>>, inputValue: string, filter: FilterFn) => Iterable<Node<T>>;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { ListCollection } from '@react-stately/list';
|
2
|
+
export const filterCollection = (collection, inputValue, filter) => {
|
3
|
+
return new ListCollection(filterNodes(collection, inputValue, filter));
|
4
|
+
};
|
5
|
+
export const filterNodes = (nodes, inputValue, filter) => {
|
6
|
+
const filteredNode = [];
|
7
|
+
for (const node of nodes) {
|
8
|
+
if (node.type === 'section' && node.hasChildNodes) {
|
9
|
+
const filtered = filterNodes(node.childNodes, inputValue, filter);
|
10
|
+
if ([...filtered].length > 0) {
|
11
|
+
filteredNode.push(Object.assign(Object.assign({}, node), { childNodes: filtered }));
|
12
|
+
}
|
13
|
+
}
|
14
|
+
else if (node.type !== 'section' && filter(node.textValue, inputValue)) {
|
15
|
+
filteredNode.push(Object.assign({}, node));
|
16
|
+
}
|
17
|
+
}
|
18
|
+
return filteredNode;
|
19
|
+
};
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Ecm9wZG93bk1lbnUvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSXJELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQzlCLFVBQStCLEVBQy9CLFVBQWtCLEVBQ2xCLE1BQWdCLEVBQ0ssRUFBRTtJQUN2QixPQUFPLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDekUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUksS0FBd0IsRUFBRSxVQUFrQixFQUFFLE1BQWdCLEVBQXFCLEVBQUU7SUFDbEgsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXhCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNqRCxNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDNUIsWUFBWSxDQUFDLElBQUksaUNBQU0sSUFBSSxLQUFFLFVBQVUsRUFBRSxRQUFRLElBQUcsQ0FBQzthQUN0RDtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRTtZQUN4RSxZQUFZLENBQUMsSUFBSSxtQkFBTSxJQUFJLEVBQUcsQ0FBQztTQUNoQztLQUNGO0lBQ0QsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFDIn0=
|
@@ -12,8 +12,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
12
12
|
import React from 'react';
|
13
13
|
import castArray from 'lodash/castArray';
|
14
14
|
import omit from 'lodash/omit';
|
15
|
-
import { Overlay, useModalOverlay
|
15
|
+
import { Overlay, useModalOverlay } from '@react-aria/overlays';
|
16
|
+
import { useDialog } from '@react-aria/dialog';
|
16
17
|
import { FocusScope } from '@react-aria/focus';
|
18
|
+
import { useId } from '@react-aria/utils';
|
17
19
|
import { useOverlayTriggerState } from '@react-stately/overlays';
|
18
20
|
import { tw } from '../../../src/utils/tailwind';
|
19
21
|
import { Modal as BaseModal } from '../../../src/common/Modal/Modal';
|
@@ -25,6 +27,14 @@ export const Modal = ({ title, open, subtitle, onClose, children, primaryAction,
|
|
25
27
|
const ref = React.useRef(null);
|
26
28
|
const state = useOverlayTriggerState({ isOpen: open });
|
27
29
|
const { modalProps, underlayProps } = useModalOverlay({ isDismissable: false }, state, ref);
|
30
|
+
const labelledBy = useId();
|
31
|
+
const describedBy = useId();
|
32
|
+
// useDialog() also returns 'titleProps', but it doesn't work correctly
|
33
|
+
// in this case because the title id is set to null after the second render.
|
34
|
+
// The problem (most likely) is somewhere in this component which causes
|
35
|
+
// it render twice when it is opened and that causes the useSlotId() hook
|
36
|
+
// in react-aria to think that the title is not rendered correctly.
|
37
|
+
const { dialogProps } = useDialog({ 'role': 'dialog', 'aria-labelledby': labelledBy, 'aria-describedby': describedBy }, ref);
|
28
38
|
if (!open) {
|
29
39
|
return null;
|
30
40
|
}
|
@@ -32,14 +42,13 @@ export const Modal = ({ title, open, subtitle, onClose, children, primaryAction,
|
|
32
42
|
React.createElement(BaseModal, { open: state.isOpen },
|
33
43
|
React.createElement(BaseModal.BackDrop, Object.assign({}, underlayProps)),
|
34
44
|
React.createElement(FocusScope, { contain: true, restoreFocus: true, autoFocus: true },
|
35
|
-
React.createElement(BaseModal.Dialog, Object.assign({ ref: ref, size: size }, modalProps),
|
36
|
-
React.createElement(DismissButton, { onDismiss: onClose }),
|
45
|
+
React.createElement(BaseModal.Dialog, Object.assign({ ref: ref, size: size }, modalProps, dialogProps),
|
37
46
|
React.createElement(BaseModal.Header, { className: tw({ 'pb-3': isComponentType(children, ModalTabs) }) },
|
38
47
|
React.createElement(BaseModal.TitleContainer, null,
|
39
|
-
React.createElement(BaseModal.Title,
|
48
|
+
React.createElement(BaseModal.Title, { id: labelledBy }, title),
|
40
49
|
subtitle && React.createElement(BaseModal.Subtitle, null, subtitle)),
|
41
50
|
React.createElement(IconButton, { "aria-label": "Close", icon: cross, onClick: onClose })),
|
42
|
-
isComponentType(children, ModalTabs) ? (React.cloneElement(children, { className: tw('[&>div:first-child]:px-5 grow') })) : (React.createElement(BaseModal.Body, { tabIndex: 0, noFooter: !(secondaryActions || primaryAction) }, children)),
|
51
|
+
isComponentType(children, ModalTabs) ? (React.cloneElement(children, { className: tw('[&>div:first-child]:px-5 grow') })) : (React.createElement(BaseModal.Body, { id: describedBy, tabIndex: 0, noFooter: !(secondaryActions || primaryAction) }, children)),
|
43
52
|
(secondaryActions || primaryAction) && (React.createElement(BaseModal.Footer, null,
|
44
53
|
React.createElement(BaseModal.Actions, null,
|
45
54
|
secondaryActions &&
|
@@ -49,9 +58,8 @@ export const Modal = ({ title, open, subtitle, onClose, children, primaryAction,
|
|
49
58
|
var { text } = _a, action = __rest(_a, ["text"]);
|
50
59
|
return (React.createElement(SecondaryButton, Object.assign({ key: text }, action), text));
|
51
60
|
}),
|
52
|
-
primaryAction && (React.createElement(PrimaryButton, Object.assign({ key: primaryAction.text }, omit(primaryAction, 'text')), primaryAction.text)))))
|
53
|
-
React.createElement(DismissButton, { onDismiss: onClose }))))));
|
61
|
+
primaryAction && (React.createElement(PrimaryButton, Object.assign({ key: primaryAction.text }, omit(primaryAction, 'text')), primaryAction.text))))))))));
|
54
62
|
};
|
55
63
|
export const ModalTabs = createTabsComponent(ModalTab, TabItem, 'ModalTabs', (children, selected, props) => (React.createElement(BaseModal.Body, { maxHeight: props.maxHeight },
|
56
64
|
React.createElement(ModalTabContainer, null, children.find((node, index) => (node === null || node === void 0 ? void 0 : node.props.value) === selected || index === selected)))));
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Nb2RhbC9Nb2RhbC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUYsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLE9BQU8sR0FJUixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUErQjlDLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBeUIsQ0FBQyxFQUMxQyxLQUFLLEVBQ0wsSUFBSSxFQUNKLFFBQVEsRUFDUixPQUFPLEVBQ1AsUUFBUSxFQUNSLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsSUFBSSxHQUNMLEVB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
|
@@ -9,5 +9,9 @@ export declare type SectionProps = {
|
|
9
9
|
* Optional actions. There can be 1-2 secondary actions only in a section.
|
10
10
|
*/
|
11
11
|
actions?: AsyncActionType | AsyncActionType[];
|
12
|
+
} | {
|
13
|
+
title?: never;
|
14
|
+
subtitle?: never;
|
15
|
+
actions?: never;
|
12
16
|
};
|
13
17
|
export declare const Section: React.FC<SectionProps>;
|
@@ -15,17 +15,18 @@ import { SecondaryButton } from '../../../src/components/Button/Button';
|
|
15
15
|
import { Divider } from '../../../src/components/Divider/Divider';
|
16
16
|
import castArray from 'lodash/castArray';
|
17
17
|
export const Section = ({ title, subtitle, actions, children }) => (React.createElement(BaseSection, null,
|
18
|
-
React.createElement(
|
19
|
-
React.createElement(BaseSection.
|
20
|
-
React.createElement(BaseSection.
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
18
|
+
title && (React.createElement(React.Fragment, null,
|
19
|
+
React.createElement(BaseSection.Header, null,
|
20
|
+
React.createElement(BaseSection.TitleContainer, null,
|
21
|
+
React.createElement(BaseSection.Title, null, title),
|
22
|
+
React.createElement(BaseSection.Subtitle, null, subtitle)),
|
23
|
+
React.createElement(BaseSection.Actions, null, actions &&
|
24
|
+
castArray(actions)
|
25
|
+
.filter(Boolean)
|
26
|
+
.map((_a) => {
|
27
|
+
var { text } = _a, action = __rest(_a, ["text"]);
|
28
|
+
return (React.createElement(SecondaryButton, Object.assign({ key: text }, action), text));
|
29
|
+
}))),
|
30
|
+
React.createElement(Divider, null))),
|
30
31
|
React.createElement(BaseSection.Body, null, children)));
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NlY3Rpb24vU2VjdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELE9BQU8sU0FBUyxNQUFNLGtCQUFrQixDQUFDO0FBcUJ6QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQTJCLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDekYsb0JBQUMsV0FBVztJQUNULEtBQUssSUFBSSxDQUNSO1FBQ0Usb0JBQUMsV0FBVyxDQUFDLE1BQU07WUFDakIsb0JBQUMsV0FBVyxDQUFDLGNBQWM7Z0JBQ3pCLG9CQUFDLFdBQVcsQ0FBQyxLQUFLLFFBQUUsS0FBSyxDQUFxQjtnQkFDOUMsb0JBQUMsV0FBVyxDQUFDLFFBQVEsUUFBRSxRQUFRLENBQXdCLENBQzVCO1lBQzdCLG9CQUFDLFdBQVcsQ0FBQyxPQUFPLFFBQ2pCLE9BQU87Z0JBQ04sU0FBUyxDQUFDLE9BQU8sQ0FBQztxQkFDZixNQUFNLENBQUMsT0FBTyxDQUFDO3FCQUNmLEdBQUcsQ0FBQyxDQUFDLEVBQW1CLEVBQUUsRUFBRTt3QkFBdkIsRUFBRSxJQUFJLE9BQWEsRUFBUixNQUFNLGNBQWpCLFFBQW1CLENBQUY7b0JBQU8sT0FBQSxDQUM1QixvQkFBQyxlQUFlLGtCQUFDLEdBQUcsRUFBRSxJQUFJLElBQU0sTUFBTSxHQUNuQyxJQUFJLENBQ1csQ0FDbkIsQ0FBQTtpQkFBQSxDQUFDLENBQ2MsQ0FDSDtRQUNyQixvQkFBQyxPQUFPLE9BQUcsQ0FDVixDQUNKO0lBQ0Qsb0JBQUMsV0FBVyxDQUFDLElBQUksUUFBRSxRQUFRLENBQW9CLENBQ25DLENBQ2YsQ0FBQyJ9
|
@@ -1,13 +1,14 @@
|
|
1
1
|
import React from 'react';
|
2
|
+
declare type RelativeSize = `${number}%`;
|
2
3
|
declare type SkeletonProps = {
|
3
4
|
/**
|
4
5
|
* Width of the skeleton in pixels.
|
5
6
|
*/
|
6
|
-
width?: number;
|
7
|
+
width?: number | RelativeSize;
|
7
8
|
/**
|
8
9
|
* Height of the skeleton in pixels.
|
9
10
|
*/
|
10
|
-
height?: number;
|
11
|
+
height?: number | RelativeSize;
|
11
12
|
/**
|
12
13
|
* Display style for skeleton.
|
13
14
|
*/
|
@@ -20,6 +21,10 @@ declare type SkeletonProps = {
|
|
20
21
|
* If false, there won't be any animation for the skeleton component.
|
21
22
|
*/
|
22
23
|
animate?: boolean;
|
24
|
+
/**
|
25
|
+
* When true, Skeleton takes the shape of a circle.
|
26
|
+
*/
|
27
|
+
rounded?: boolean;
|
23
28
|
};
|
24
29
|
export declare const Skeleton: React.FC<SkeletonProps>;
|
25
30
|
export {};
|
@@ -1,15 +1,16 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import isNumber from 'lodash/isNumber';
|
3
3
|
import { tw, classNames } from '../../utils/tailwind';
|
4
|
-
export const Skeleton = ({ width, height, display = 'block', className, animate = true }) => {
|
4
|
+
export const Skeleton = ({ width, height, display = 'block', className, animate = true, rounded = false, }) => {
|
5
5
|
const styles = {
|
6
|
-
width: isNumber(width) ? `${width}px` :
|
7
|
-
height: isNumber(height) ? `${height}px` :
|
6
|
+
width: isNumber(width) ? `${width}px` : width,
|
7
|
+
height: isNumber(height) ? `${height}px` : height,
|
8
8
|
};
|
9
9
|
return (React.createElement("div", { style: styles, className: classNames(tw('bg-grey-5', {
|
10
|
+
'rounded-full': rounded,
|
10
11
|
'block': display === 'block',
|
11
12
|
'inline-block': display === 'inline-block',
|
12
13
|
'animate-pulse': animate,
|
13
14
|
}), className) }));
|
14
15
|
};
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2tlbGV0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Ta2VsZXRvbi9Ta2VsZXRvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sUUFBUSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFvQ3RELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBNEIsQ0FBQyxFQUNoRCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE9BQU8sR0FBRyxPQUFPLEVBQ2pCLFNBQVMsRUFDVCxPQUFPLEdBQUcsSUFBSSxFQUNkLE9BQU8sR0FBRyxLQUFLLEdBQ2hCLEVBQUUsRUFBRTtJQUNILE1BQU0sTUFBTSxHQUFHO1FBQ2IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSztRQUM3QyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNO0tBQ2xELENBQUM7SUFFRixPQUFPLENBQ0wsNkJBQ0UsS0FBSyxFQUFFLE1BQU0sRUFDYixTQUFTLEVBQUUsVUFBVSxDQUNuQixFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ2QsY0FBYyxFQUFFLE9BQU87WUFDdkIsT0FBTyxFQUFFLE9BQU8sS0FBSyxPQUFPO1lBQzVCLGNBQWMsRUFBRSxPQUFPLEtBQUssY0FBYztZQUMxQyxlQUFlLEVBQUUsT0FBTztTQUN6QixDQUFDLEVBQ0YsU0FBUyxDQUNWLEdBQ0QsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import twTheme from '../../../tailwind.theme.json';
|
3
|
+
declare type Weight = `${number}` | 'auto';
|
4
|
+
declare type TemplateProps = {
|
5
|
+
/**
|
6
|
+
* Provide a number for amount of columns. Columns created this way have equal weight.
|
7
|
+
*
|
8
|
+
* Provide array of Weights or numbers to customize weights between columns.
|
9
|
+
* Array value of number is considered fixed pixel value.
|
10
|
+
* Array value of Weight is considered as a weight in relation to other columns.
|
11
|
+
*/
|
12
|
+
columns: Array<Weight | number> | number;
|
13
|
+
gap?: keyof typeof twTheme['gap'];
|
14
|
+
columnGap?: keyof typeof twTheme['gap'];
|
15
|
+
rowGap?: keyof typeof twTheme['gap'];
|
16
|
+
};
|
17
|
+
export declare const Template: React.FC<TemplateProps>;
|
18
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { useStyle } from '../../../src/utils/useStyle';
|
3
|
+
export const Template = ({ children, columns, gap, columnGap, rowGap }) => {
|
4
|
+
const gridTemplateColumns = typeof columns === 'number'
|
5
|
+
? '1fr '.repeat(columns)
|
6
|
+
: columns
|
7
|
+
.map((column) => (typeof column === 'number' ? `${column}px` : column === 'auto' ? column : `${column}fr`))
|
8
|
+
.join(' ');
|
9
|
+
const styles = useStyle({
|
10
|
+
display: 'grid',
|
11
|
+
gridTemplateColumns,
|
12
|
+
gap,
|
13
|
+
rowGap,
|
14
|
+
columnGap,
|
15
|
+
});
|
16
|
+
return React.createElement("div", { style: Object.assign({}, styles) }, children);
|
17
|
+
};
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UZW1wbGF0ZS9UZW1wbGF0ZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQW9COUMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUE0QixDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7SUFDakcsTUFBTSxtQkFBbUIsR0FDdkIsT0FBTyxPQUFPLEtBQUssUUFBUTtRQUN6QixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDeEIsQ0FBQyxDQUFDLE9BQU87YUFDSixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQzthQUMxRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsbUJBQW1CO1FBQ25CLEdBQUc7UUFDSCxNQUFNO1FBQ04sU0FBUztLQUNWLENBQUMsQ0FBQztJQUNILE9BQU8sNkJBQUssS0FBSyxvQkFBTyxNQUFNLEtBQUssUUFBUSxDQUFPLENBQUM7QUFDckQsQ0FBQyxDQUFDIn0=
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
export declare type TimelineItemProps = {
|
3
|
+
/**
|
4
|
+
* Mandatory title prop for each section.
|
5
|
+
* Typically a formatted date is used.
|
6
|
+
* */
|
7
|
+
title: string;
|
8
|
+
/**
|
9
|
+
* Determines the separator dot look.
|
10
|
+
* @default 'default'
|
11
|
+
* */
|
12
|
+
variant?: 'default' | 'info' | 'warning' | 'error';
|
13
|
+
children: React.ReactNode;
|
14
|
+
};
|
15
|
+
declare const TimelineItem: React.FC<TimelineItemProps>;
|
16
|
+
declare type TimelineProps = {
|
17
|
+
children: Array<React.ReactElement<TimelineItemProps>> | React.ReactElement<TimelineItemProps>;
|
18
|
+
};
|
19
|
+
declare type ComposedTimelineProps = React.FC<TimelineProps> & {
|
20
|
+
Item: typeof TimelineItem;
|
21
|
+
Skeleton: typeof TimelineSkeleton;
|
22
|
+
};
|
23
|
+
export declare const Timeline: ComposedTimelineProps;
|
24
|
+
declare const TimelineSkeleton: React.FC<{
|
25
|
+
items?: number;
|
26
|
+
}>;
|
27
|
+
export {};
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { Timeline as BaseTimeline } from '../../../src/common/Timeline/Timeline';
|
3
|
+
import { isComponentType } from '../../../types/utils';
|
4
|
+
import { Typography } from '../../../src/components/Typography/Typography';
|
5
|
+
import { Icon } from '../../../src/components/Icon/Icon';
|
6
|
+
import time from '../../../src/icons/time';
|
7
|
+
import warning from '../../../src/icons/warningSign';
|
8
|
+
import danger from '../../../src/icons/error';
|
9
|
+
import { Skeleton } from '../../../src/components/Skeleton/Skeleton';
|
10
|
+
import { Box } from '../../../src/components/Box/Box';
|
11
|
+
const TimelineItem = () => null;
|
12
|
+
export const Timeline = ({ children }) => (React.createElement("div", null, React.Children.map(children, (item) => {
|
13
|
+
if (!isComponentType(item, TimelineItem)) {
|
14
|
+
throw new Error('<Timeline> can only have <Timeline.Item> components as children');
|
15
|
+
}
|
16
|
+
else {
|
17
|
+
const { props, key } = item;
|
18
|
+
return (React.createElement(BaseTimeline, { key: key !== null && key !== void 0 ? key : props.title },
|
19
|
+
React.createElement(BaseTimeline.Separator, null, props.variant === 'error' ? (React.createElement(Icon, { icon: danger, color: "error-30" })) : props.variant === 'warning' ? (React.createElement(Icon, { icon: warning, color: "warning-30" })) : props.variant === 'info' ? (React.createElement(Icon, { icon: time, color: "info-30" })) : (React.createElement(BaseTimeline.Separator.Dot, null))),
|
20
|
+
React.createElement(Typography.Caption, { fontWeight: 600 }, props.title),
|
21
|
+
React.createElement(BaseTimeline.LineContainer, null,
|
22
|
+
React.createElement(BaseTimeline.LineContainer.Line, null)),
|
23
|
+
React.createElement(BaseTimeline.Content, null,
|
24
|
+
React.createElement(Typography, null, props.children))));
|
25
|
+
}
|
26
|
+
})));
|
27
|
+
const TimelineItemSkeleton = () => (React.createElement(BaseTimeline, null,
|
28
|
+
React.createElement(BaseTimeline.Separator, null,
|
29
|
+
React.createElement(Skeleton, { width: 6, height: 6, rounded: true })),
|
30
|
+
React.createElement(Skeleton, { height: 12, width: 120 }),
|
31
|
+
React.createElement(BaseTimeline.LineContainer, null,
|
32
|
+
React.createElement(Skeleton, { width: 2 })),
|
33
|
+
React.createElement(BaseTimeline.Content, null,
|
34
|
+
React.createElement(Box, { display: "flex", flexDirection: "column", gap: "3" },
|
35
|
+
React.createElement(Skeleton, { height: 32, width: "100%" }),
|
36
|
+
React.createElement(Skeleton, { height: 32, width: "73%" }),
|
37
|
+
React.createElement(Skeleton, { height: 32, width: "80%" })))));
|
38
|
+
const TimelineSkeleton = ({ items = 3 }) => (React.createElement("div", null, Array.from({ length: items }).map((_, key) => (React.createElement(TimelineItemSkeleton, { key: key })))));
|
39
|
+
Timeline.Item = TimelineItem;
|
40
|
+
Timeline.Skeleton = TimelineSkeleton;
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UaW1lbGluZS9UaW1lbGluZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxRQUFRLElBQUksWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hELE9BQU8sSUFBSSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xDLE9BQU8sT0FBTyxNQUFNLHVCQUF1QixDQUFDO0FBQzVDLE9BQU8sTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFpQjdDLE1BQU0sWUFBWSxHQUFnQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFRN0QsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUEwQixDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQy9ELGlDQUNHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFO1FBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUVBQWlFLENBQUMsQ0FBQztLQUNwRjtTQUFNO1FBQ0wsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDNUIsT0FBTyxDQUNMLG9CQUFDLFlBQVks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
|
@@ -52,7 +52,9 @@ export * from './Table/Table';
|
|
52
52
|
export * from './Tabs/Tabs';
|
53
53
|
export * from './TagLabel/TagLabel';
|
54
54
|
export * from './Tailwindify/Tailwindify';
|
55
|
+
export * from './Template/Template';
|
55
56
|
export * from './Textarea/Textarea';
|
57
|
+
export * from './Timeline/Timeline';
|
56
58
|
export * from './Tooltip/Tooltip';
|
57
59
|
export * from './Typography/Typography';
|
58
60
|
export * from '../common/Table/Table.utils';
|
@@ -53,11 +53,13 @@ export * from './Table/Table';
|
|
53
53
|
export * from './Tabs/Tabs';
|
54
54
|
export * from './TagLabel/TagLabel';
|
55
55
|
export * from './Tailwindify/Tailwindify';
|
56
|
+
export * from './Template/Template';
|
56
57
|
export * from './Textarea/Textarea';
|
58
|
+
export * from './Timeline/Timeline';
|
57
59
|
export * from './Tooltip/Tooltip';
|
58
60
|
export * from './Typography/Typography';
|
59
61
|
// Exported atoms and utility functions
|
60
62
|
export * from '../common/Table/Table.utils';
|
61
63
|
export * from './Pagination/usePagination';
|
62
64
|
export const SelectItem = Select.Item;
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFakQsc0RBQXNEO0FBQ3RELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsdUNBQXVDO0FBQ3ZDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyJ9
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import React, { useState, useLayoutEffect } from 'react';
|
2
|
+
export const Blueprint = () => {
|
3
|
+
const [width, setWidth] = useState();
|
4
|
+
const [height, setHeight] = useState();
|
5
|
+
const ref = React.useRef(null);
|
6
|
+
useLayoutEffect(() => {
|
7
|
+
const updateSize = () => {
|
8
|
+
var _a, _b;
|
9
|
+
setHeight((_a = ref.current) === null || _a === void 0 ? void 0 : _a.clientHeight);
|
10
|
+
setWidth((_b = ref.current) === null || _b === void 0 ? void 0 : _b.clientWidth);
|
11
|
+
};
|
12
|
+
updateSize();
|
13
|
+
window.addEventListener('resize', updateSize);
|
14
|
+
return () => window.removeEventListener('resize', updateSize);
|
15
|
+
}, []);
|
16
|
+
return (React.createElement("div", { ref: ref, style: {
|
17
|
+
color: 'white',
|
18
|
+
padding: 16,
|
19
|
+
textAlign: 'center',
|
20
|
+
backgroundColor: 'rgb(3, 153, 227)',
|
21
|
+
backgroundImage: 'linear-gradient(rgba(255,255,255,0.2) 2px, transparent 2px), linear-gradient(90deg, rgba(255,255,255,0.2) 2px, transparent 1px), linear-gradient(rgba(255,255,255,0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.1) 1px, transparent 1px)',
|
22
|
+
backgroundSize: '100px 100px, 100px 100px, 20px 20px, 20px 20px',
|
23
|
+
backgroundPosition: '-2px -2px, -2px -2px, -1px -1px, -1px -1px',
|
24
|
+
} },
|
25
|
+
width,
|
26
|
+
" x ",
|
27
|
+
height));
|
28
|
+
};
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmx1ZXByaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0JsdWVwcmludC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBYSxHQUFHLEVBQUU7SUFDdEMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxRQUFRLEVBQXNCLENBQUM7SUFDekQsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxRQUFRLEVBQXNCLENBQUM7SUFDM0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBaUIsSUFBSSxDQUFDLENBQUM7SUFFL0MsZUFBZSxDQUFDLEdBQUcsRUFBRTtRQUNuQixNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7O1lBQ3RCLFNBQVMsQ0FBQyxNQUFBLEdBQUcsQ0FBQyxPQUFPLDBDQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsQ0FBQyxNQUFBLEdBQUcsQ0FBQyxPQUFPLDBDQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQztRQUNGLFVBQVUsRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM5QyxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxDQUNMLDZCQUNFLEdBQUcsRUFBRSxHQUFHLEVBQ1IsS0FBSyxFQUFFO1lBQ0wsS0FBSyxFQUFFLE9BQU87WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLFNBQVMsRUFBRSxRQUFRO1lBQ25CLGVBQWUsRUFBRSxrQkFBa0I7WUFDbkMsZUFBZSxFQUNiLGlRQUFpUTtZQUNuUSxjQUFjLEVBQUUsZ0RBQWdEO1lBQ2hFLGtCQUFrQixFQUFFLDRDQUE0QztTQUNqRTtRQUVBLEtBQUs7O1FBQUssTUFBTSxDQUNiLENBQ1AsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|