@aivenio/aquarium 1.10.0 → 1.11.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 +45 -45
- package/dist/atoms.mjs +41 -41
- package/dist/src/{common → atoms}/Alert/Alert.d.ts +2 -2
- package/dist/src/atoms/Alert/Alert.js +74 -0
- package/dist/src/{common → atoms}/Banner/Banner.d.ts +2 -2
- package/dist/src/atoms/Banner/Banner.js +57 -0
- package/dist/src/atoms/Card/Card.js +54 -0
- package/dist/src/{common → atoms}/Checkbox/Checkbox.js +2 -2
- package/dist/src/{common → atoms}/Chip/Chip.js +1 -1
- package/dist/src/{common → atoms}/DataList/DataList.js +3 -3
- package/dist/src/{common → atoms}/Dialog/Dialog.d.ts +1 -1
- package/dist/src/{common → atoms}/Dialog/Dialog.js +1 -1
- package/dist/src/atoms/DropdownMenu/DropdownMenu.js +62 -0
- package/dist/src/{common → atoms}/InputGroup/InputGroup.d.ts +1 -1
- package/dist/src/{common → atoms}/InputGroup/InputGroup.js +2 -2
- package/dist/src/{common → atoms}/LineClamp/LineClamp.js +1 -1
- package/dist/src/{common → atoms}/Link/Link.js +1 -1
- package/dist/src/{common → atoms}/Modal/Modal.d.ts +1 -1
- package/dist/src/atoms/Modal/Modal.js +68 -0
- package/dist/src/{common → atoms}/Popover/Popover.js +1 -1
- package/dist/src/{common → atoms}/PopoverDialog/PopoverDialog.js +2 -2
- package/dist/src/{common → atoms}/ProgressBar/ProgressBar.js +1 -1
- package/dist/src/{common → atoms}/RadioButton/RadioButton.js +1 -1
- package/dist/src/{common → atoms}/Section/Section.d.ts +2 -2
- package/dist/src/atoms/Section/Section.js +46 -0
- package/dist/src/{common → atoms}/Select/Select.js +2 -2
- package/dist/src/{common → atoms}/Stepper/Stepper.js +2 -2
- package/dist/src/{common → atoms}/Switch/Switch.js +1 -1
- package/dist/src/{common → atoms}/Table/Table.d.ts +2 -2
- package/dist/src/atoms/Table/Table.js +91 -0
- package/dist/src/{common → atoms}/Timeline/Timeline.js +1 -1
- package/dist/src/{common → atoms}/Typography/Typography.js +1 -1
- package/dist/src/{common → atoms}/index.js +1 -1
- package/dist/src/{components → molecules}/Alert/Alert.d.ts +1 -1
- package/dist/src/molecules/Alert/Alert.js +12 -0
- package/dist/src/molecules/Avatar/Avatar.js +10 -0
- package/dist/src/{components → molecules}/Badge/Badge.js +1 -1
- package/dist/src/{components → molecules}/Banner/Banner.d.ts +1 -1
- package/dist/src/molecules/Banner/Banner.js +44 -0
- package/dist/src/{components → molecules}/Box/Box.d.ts +2 -2
- package/dist/src/{components → molecules}/Box/Box.js +2 -2
- package/dist/src/{components → molecules}/Breadcrumbs/Breadcrumbs.js +2 -2
- package/dist/src/{components → molecules}/Button/Button.js +4 -4
- package/dist/src/{components → molecules}/Card/Card.d.ts +1 -1
- package/dist/src/molecules/Card/Card.js +48 -0
- package/dist/src/{components → molecules}/Card/Compact.d.ts +1 -1
- package/dist/src/molecules/Card/Compact.js +43 -0
- package/dist/src/{components → molecules}/Card/types.js +1 -1
- package/dist/src/{components → molecules}/Carousel/Carousel.js +4 -4
- package/dist/src/{components → molecules}/Checkbox/Checkbox.d.ts +1 -1
- package/dist/src/molecules/Checkbox/Checkbox.js +29 -0
- package/dist/src/{components → molecules}/CheckboxGroup/CheckboxGroup.d.ts +2 -2
- package/dist/src/molecules/CheckboxGroup/CheckboxGroup.js +61 -0
- package/dist/src/{components → molecules}/Chip/Chip.d.ts +1 -1
- package/dist/src/molecules/Chip/Chip.js +64 -0
- package/dist/src/{components → molecules}/ChoiceChip/ChoiceChip.js +1 -1
- package/dist/src/molecules/Combobox/Combobox.js +109 -0
- package/dist/src/molecules/Container/Container.js +18 -0
- package/dist/src/molecules/Context/Context.js +18 -0
- package/dist/src/{components → molecules}/ControlLabel/ControlLabel.d.ts +1 -1
- package/dist/src/{components → molecules}/ControlLabel/ControlLabel.js +2 -2
- package/dist/src/molecules/DataList/DataList.js +24 -0
- package/dist/src/{components → molecules}/DataTable/DataTable.d.ts +1 -1
- package/dist/src/molecules/DataTable/DataTable.js +42 -0
- package/dist/src/{components → molecules}/Dialog/Dialog.d.ts +2 -2
- package/dist/src/molecules/Dialog/Dialog.js +41 -0
- package/dist/src/{components → molecules}/Divider/Divider.js +1 -1
- package/dist/src/{components → molecules}/Dropdown/Dropdown.d.ts +2 -2
- package/dist/src/molecules/Dropdown/Dropdown.js +87 -0
- package/dist/src/{components → molecules}/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/dist/src/molecules/DropdownMenu/DropdownMenu.js +148 -0
- package/dist/src/molecules/DropdownMenu/utils.js +20 -0
- package/dist/src/{components → molecules}/Element/Element.js +1 -1
- package/dist/src/molecules/EmptyState/EmptyState.js +74 -0
- package/dist/src/{components → molecules}/Flexbox/Flexbox.d.ts +1 -1
- package/dist/src/molecules/Flexbox/Flexbox.js +19 -0
- package/dist/src/{components → molecules}/Flexbox/FlexboxItem.d.ts +1 -1
- package/dist/src/molecules/Flexbox/FlexboxItem.js +16 -0
- package/dist/src/{components → molecules}/Grid/Grid.d.ts +1 -1
- package/dist/src/molecules/Grid/Grid.js +31 -0
- package/dist/src/{components → molecules}/Grid/GridItem.d.ts +1 -1
- package/dist/src/molecules/Grid/GridItem.js +20 -0
- package/dist/src/{components → molecules}/Icon/Icon.js +1 -1
- package/dist/src/{components → molecules}/Input/Input.js +2 -2
- package/dist/src/{components → molecules}/LineClamp/LineClamp.d.ts +1 -1
- package/dist/src/molecules/LineClamp/LineClamp.js +21 -0
- package/dist/src/{components → molecules}/Link/Link.d.ts +1 -1
- package/dist/src/molecules/Link/Link.js +4 -0
- package/dist/src/molecules/List/List.js +6 -0
- package/dist/src/molecules/ListItem/ListItem.js +10 -0
- package/dist/src/{components → molecules}/Modal/Modal.d.ts +2 -2
- package/dist/src/{components → molecules}/Modal/Modal.js +4 -4
- package/dist/src/{components → molecules}/MultiInput/InputChip.js +3 -3
- package/dist/src/molecules/MultiInput/MultiInput.js +153 -0
- package/dist/src/{components → molecules}/MultiSelect/MultiSelect.d.ts +1 -1
- package/dist/src/molecules/MultiSelect/MultiSelect.js +149 -0
- package/dist/src/{components → molecules}/NativeSelect/NativeSelect.js +3 -3
- package/dist/src/{components → molecules}/PageHeader/PageHeader.d.ts +1 -1
- package/dist/src/molecules/PageHeader/PageHeader.js +40 -0
- package/dist/src/molecules/Pagination/Pagination.js +52 -0
- package/dist/src/molecules/Pagination/usePagination.js +36 -0
- package/dist/src/{components → molecules}/Popover/Popover.d.ts +1 -1
- package/dist/src/molecules/Popover/Popover.js +79 -0
- package/dist/src/molecules/Popover/PopoverContext.js +10 -0
- package/dist/src/{components → molecules}/Popover/PopoverWrapper.js +2 -2
- package/dist/src/{components → molecules}/PopoverDialog/PopoverDialog.d.ts +2 -2
- package/dist/src/molecules/PopoverDialog/PopoverDialog.js +28 -0
- package/dist/src/molecules/Portal/Portal.js +3 -0
- package/dist/src/molecules/ProgressBar/ProgressBar.js +23 -0
- package/dist/src/{components → molecules}/RadioButton/RadioButton.d.ts +1 -1
- package/dist/src/molecules/RadioButton/RadioButton.js +29 -0
- package/dist/src/{components → molecules}/RadioButtonGroup/RadioButtonGroup.d.ts +2 -2
- package/dist/src/molecules/RadioButtonGroup/RadioButtonGroup.js +65 -0
- package/dist/src/{components → molecules}/Section/Section.js +4 -4
- package/dist/src/{components → molecules}/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/src/molecules/Select/Select.js +144 -0
- package/dist/src/molecules/Skeleton/Skeleton.js +18 -0
- package/dist/src/molecules/Spacing/Spacing.d.ts +14 -0
- package/dist/src/molecules/Spacing/Spacing.js +18 -0
- package/dist/src/molecules/Stepper/Stepper.js +25 -0
- package/dist/src/{components → molecules}/Switch/Switch.d.ts +1 -1
- package/dist/src/molecules/Switch/Switch.js +29 -0
- package/dist/src/{components → molecules}/SwitchGroup/SwitchGroup.d.ts +2 -2
- package/dist/src/molecules/SwitchGroup/SwitchGroup.js +59 -0
- package/dist/src/{components → molecules}/Table/Table.d.ts +1 -1
- package/dist/src/{components → molecules}/Table/Table.js +2 -2
- package/dist/src/molecules/Tabs/Tabs.js +220 -0
- package/dist/src/{components → molecules}/TagLabel/TagLabel.js +1 -1
- package/dist/src/{components → molecules}/Tailwindify/Tailwindify.js +1 -1
- package/dist/src/molecules/Template/Template.js +23 -0
- package/dist/src/molecules/Textarea/Textarea.js +46 -0
- package/dist/src/molecules/Timeline/Timeline.js +42 -0
- package/dist/src/{components → molecules}/Tooltip/Tooltip.d.ts +1 -1
- package/dist/src/molecules/Tooltip/Tooltip.js +110 -0
- package/dist/src/{components → molecules}/Tooltip/useTooltipTriggerState.js +1 -1
- package/dist/src/{components → molecules}/Typography/Typography.d.ts +1 -1
- package/dist/src/molecules/Typography/Typography.js +89 -0
- package/dist/src/{components → molecules}/index.d.ts +1 -0
- package/dist/src/{components → molecules}/index.js +3 -2
- package/dist/src/system.d.ts +3 -3
- package/dist/src/system.js +4 -4
- package/dist/src/utils/constants.js +2 -2
- package/dist/src/utils/form/FormControl/FormControl.js +2 -2
- package/dist/src/utils/form/HelperText/HelperText.js +2 -2
- package/dist/src/utils/form/InputAdornment/InputAdornment.d.ts +1 -1
- package/dist/src/utils/form/InputAdornment/InputAdornment.js +2 -2
- package/dist/src/utils/form/Label/Label.d.ts +1 -1
- package/dist/src/utils/form/Label/Label.js +3 -3
- package/dist/src/utils/table/types.d.ts +2 -2
- package/dist/src/utils/useStyle.js +2 -2
- package/dist/styles.css +830 -810
- package/dist/styles_timescaledb.css +830 -810
- package/dist/system.cjs +231 -217
- package/dist/system.mjs +223 -210
- package/dist/tailwind.config.js +0 -1
- package/dist/tsconfig.module.tsbuildinfo +1 -1
- package/dist/types/ActionType.d.ts +1 -1
- package/dist/types/tailwindGenerated.d.ts +1 -1
- package/package.json +4 -4
- package/dist/src/common/Alert/Alert.js +0 -74
- package/dist/src/common/Banner/Banner.js +0 -57
- package/dist/src/common/Card/Card.js +0 -54
- package/dist/src/common/DropdownMenu/DropdownMenu.js +0 -62
- package/dist/src/common/Modal/Modal.js +0 -68
- package/dist/src/common/Section/Section.js +0 -46
- package/dist/src/common/Table/Table.js +0 -91
- package/dist/src/components/Alert/Alert.js +0 -12
- package/dist/src/components/Avatar/Avatar.js +0 -10
- package/dist/src/components/Banner/Banner.js +0 -44
- package/dist/src/components/Card/Card.js +0 -48
- package/dist/src/components/Card/Compact.js +0 -43
- package/dist/src/components/Checkbox/Checkbox.js +0 -29
- package/dist/src/components/CheckboxGroup/CheckboxGroup.js +0 -61
- package/dist/src/components/Chip/Chip.js +0 -64
- package/dist/src/components/Combobox/Combobox.js +0 -109
- package/dist/src/components/Container/Container.js +0 -18
- package/dist/src/components/Context/Context.js +0 -18
- package/dist/src/components/DataList/DataList.js +0 -24
- package/dist/src/components/DataTable/DataTable.js +0 -42
- package/dist/src/components/Dialog/Dialog.js +0 -41
- package/dist/src/components/Dropdown/Dropdown.js +0 -87
- package/dist/src/components/DropdownMenu/DropdownMenu.js +0 -148
- package/dist/src/components/DropdownMenu/utils.js +0 -20
- package/dist/src/components/EmptyState/EmptyState.js +0 -74
- package/dist/src/components/Flexbox/Flexbox.js +0 -19
- package/dist/src/components/Flexbox/FlexboxItem.js +0 -16
- package/dist/src/components/Grid/Grid.js +0 -31
- package/dist/src/components/Grid/GridItem.js +0 -20
- package/dist/src/components/LineClamp/LineClamp.js +0 -21
- package/dist/src/components/Link/Link.js +0 -4
- package/dist/src/components/List/List.js +0 -6
- package/dist/src/components/ListItem/ListItem.js +0 -10
- package/dist/src/components/MultiInput/MultiInput.js +0 -153
- package/dist/src/components/MultiSelect/MultiSelect.js +0 -149
- package/dist/src/components/PageHeader/PageHeader.js +0 -40
- package/dist/src/components/Pagination/Pagination.js +0 -52
- package/dist/src/components/Pagination/usePagination.js +0 -36
- package/dist/src/components/Popover/Popover.js +0 -79
- package/dist/src/components/Popover/PopoverContext.js +0 -10
- package/dist/src/components/PopoverDialog/PopoverDialog.js +0 -28
- package/dist/src/components/Portal/Portal.js +0 -3
- package/dist/src/components/ProgressBar/ProgressBar.js +0 -23
- package/dist/src/components/RadioButton/RadioButton.js +0 -29
- package/dist/src/components/RadioButtonGroup/RadioButtonGroup.js +0 -65
- package/dist/src/components/Select/Select.js +0 -144
- package/dist/src/components/Skeleton/Skeleton.js +0 -18
- package/dist/src/components/Stepper/Stepper.js +0 -25
- package/dist/src/components/Switch/Switch.js +0 -29
- package/dist/src/components/SwitchGroup/SwitchGroup.js +0 -59
- package/dist/src/components/Tabs/Tabs.js +0 -220
- package/dist/src/components/Template/Template.js +0 -23
- package/dist/src/components/Textarea/Textarea.js +0 -46
- package/dist/src/components/Timeline/Timeline.js +0 -42
- package/dist/src/components/Tooltip/Tooltip.js +0 -110
- package/dist/src/components/Typography/Typography.js +0 -89
- /package/dist/src/{common → atoms}/Card/Card.d.ts +0 -0
- /package/dist/src/{common → atoms}/Checkbox/Checkbox.d.ts +0 -0
- /package/dist/src/{common → atoms}/Chip/Chip.d.ts +0 -0
- /package/dist/src/{common → atoms}/DataList/DataList.d.ts +0 -0
- /package/dist/src/{common → atoms}/DropdownMenu/DropdownMenu.d.ts +0 -0
- /package/dist/src/{common → atoms}/LineClamp/LineClamp.d.ts +0 -0
- /package/dist/src/{common → atoms}/Link/Link.d.ts +0 -0
- /package/dist/src/{common → atoms}/Popover/Popover.d.ts +0 -0
- /package/dist/src/{common → atoms}/PopoverDialog/PopoverDialog.d.ts +0 -0
- /package/dist/src/{common → atoms}/ProgressBar/ProgressBar.d.ts +0 -0
- /package/dist/src/{common → atoms}/RadioButton/RadioButton.d.ts +0 -0
- /package/dist/src/{common → atoms}/Select/Select.d.ts +0 -0
- /package/dist/src/{common → atoms}/Stepper/Stepper.d.ts +0 -0
- /package/dist/src/{common → atoms}/Switch/Switch.d.ts +0 -0
- /package/dist/src/{common → atoms}/Timeline/Timeline.d.ts +0 -0
- /package/dist/src/{common → atoms}/Typography/Typography.d.ts +0 -0
- /package/dist/src/{common → atoms}/index.d.ts +0 -0
- /package/dist/src/{components → molecules}/Avatar/Avatar.d.ts +0 -0
- /package/dist/src/{components → molecules}/Badge/Badge.d.ts +0 -0
- /package/dist/src/{components → molecules}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
- /package/dist/src/{components → molecules}/Button/Button.d.ts +0 -0
- /package/dist/src/{components → molecules}/Card/types.d.ts +0 -0
- /package/dist/src/{components → molecules}/Carousel/Carousel.d.ts +0 -0
- /package/dist/src/{components → molecules}/ChoiceChip/ChoiceChip.d.ts +0 -0
- /package/dist/src/{components → molecules}/Combobox/Combobox.d.ts +0 -0
- /package/dist/src/{components → molecules}/Container/Container.d.ts +0 -0
- /package/dist/src/{components → molecules}/Context/Context.d.ts +0 -0
- /package/dist/src/{components → molecules}/DataList/DataList.d.ts +0 -0
- /package/dist/src/{components → molecules}/Divider/Divider.d.ts +0 -0
- /package/dist/src/{components → molecules}/DropdownMenu/utils.d.ts +0 -0
- /package/dist/src/{components → molecules}/Element/Element.d.ts +0 -0
- /package/dist/src/{components → molecules}/EmptyState/EmptyState.d.ts +0 -0
- /package/dist/src/{components → molecules}/Icon/Icon.d.ts +0 -0
- /package/dist/src/{components → molecules}/Input/Input.d.ts +0 -0
- /package/dist/src/{components → molecules}/List/List.d.ts +0 -0
- /package/dist/src/{components → molecules}/ListItem/ListItem.d.ts +0 -0
- /package/dist/src/{components → molecules}/MultiInput/InputChip.d.ts +0 -0
- /package/dist/src/{components → molecules}/MultiInput/MultiInput.d.ts +0 -0
- /package/dist/src/{components → molecules}/NativeSelect/NativeSelect.d.ts +0 -0
- /package/dist/src/{components → molecules}/Pagination/Pagination.d.ts +0 -0
- /package/dist/src/{components → molecules}/Pagination/usePagination.d.ts +0 -0
- /package/dist/src/{components → molecules}/Popover/PopoverContext.d.ts +0 -0
- /package/dist/src/{components → molecules}/Popover/PopoverWrapper.d.ts +0 -0
- /package/dist/src/{components → molecules}/Portal/Portal.d.ts +0 -0
- /package/dist/src/{components → molecules}/ProgressBar/ProgressBar.d.ts +0 -0
- /package/dist/src/{components → molecules}/Section/Section.d.ts +0 -0
- /package/dist/src/{components → molecules}/SegmentedControl/SegmentedControl.d.ts +0 -0
- /package/dist/src/{components → molecules}/Select/Select.d.ts +0 -0
- /package/dist/src/{components → molecules}/Skeleton/Skeleton.d.ts +0 -0
- /package/dist/src/{components → molecules}/Stepper/Stepper.d.ts +0 -0
- /package/dist/src/{components → molecules}/Tabs/Tabs.d.ts +0 -0
- /package/dist/src/{components → molecules}/TagLabel/TagLabel.d.ts +0 -0
- /package/dist/src/{components → molecules}/Tailwindify/Tailwindify.d.ts +0 -0
- /package/dist/src/{components → molecules}/Template/Template.d.ts +0 -0
- /package/dist/src/{components → molecules}/Textarea/Textarea.d.ts +0 -0
- /package/dist/src/{components → molecules}/Timeline/Timeline.d.ts +0 -0
- /package/dist/src/{components → molecules}/Tooltip/useTooltipTriggerState.d.ts +0 -0
@@ -0,0 +1,149 @@
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
2
|
+
var t = {};
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
4
|
+
t[p] = s[p];
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
8
|
+
t[p[i]] = s[p[i]];
|
9
|
+
}
|
10
|
+
return t;
|
11
|
+
};
|
12
|
+
import React, { useRef, useState } from 'react';
|
13
|
+
import { useOverlayPosition } from '@react-aria/overlays';
|
14
|
+
import { useCombobox, useMultipleSelection } from 'downshift';
|
15
|
+
import isEqual from 'lodash/isEqual';
|
16
|
+
import isNil from 'lodash/isNil';
|
17
|
+
import omit from 'lodash/omit';
|
18
|
+
import omitBy from 'lodash/omitBy';
|
19
|
+
import uniqueId from 'lodash/uniqueId';
|
20
|
+
import { matchSorter } from 'match-sorter';
|
21
|
+
import { InputChip } from '../../../src/molecules/MultiInput/InputChip';
|
22
|
+
import { PopoverWrapper } from '../../../src/molecules/Popover/PopoverWrapper';
|
23
|
+
import { Skeleton } from '../../../src/molecules/Skeleton/Skeleton';
|
24
|
+
import { getOptionLabelBuiltin, isOptionDisabledBuiltin, Select } from '../../../src/atoms/Select/Select';
|
25
|
+
import { getLabelControlProps, LabelControl } from '../../../src/utils/form/Label/Label';
|
26
|
+
import { tw } from '../../../src/utils/tailwind';
|
27
|
+
export const MultiSelectBase = (_a) => {
|
28
|
+
var _b;
|
29
|
+
var { id, name, placeholder, maxHeight, hideChips = false, inline = true, closeOnSelect = inline ? false : true, options, optionKeys = ['label', 'value'], noResults, optionToString: itemToString = getOptionLabelBuiltin, renderOption = (opt) => itemToString(opt), isOptionDisabled = isOptionDisabledBuiltin, createOption, defaultValue, value, onChange, valid = true, disabled = false, readOnly = false, children } = _a, props = __rest(_a, ["id", "name", "placeholder", "maxHeight", "hideChips", "inline", "closeOnSelect", "options", "optionKeys", "noResults", "optionToString", "renderOption", "isOptionDisabled", "createOption", "defaultValue", "value", "onChange", "valid", "disabled", "readOnly", "children"]);
|
30
|
+
const targetRef = useRef(null);
|
31
|
+
const overlayRef = useRef(null);
|
32
|
+
const [inputValue, setInputValue] = useState('');
|
33
|
+
const [hasFocus, setFocus] = useState(false);
|
34
|
+
const { selectedItems, addSelectedItem, removeSelectedItem, getDropdownProps, getSelectedItemProps } = useMultipleSelection(
|
35
|
+
// For some reason useMultipleSelection does not accept
|
36
|
+
// undefined value for selectedItems or defaultSelectedItems
|
37
|
+
omitBy({
|
38
|
+
selectedItems: value,
|
39
|
+
defaultSelectedItems: defaultValue,
|
40
|
+
onSelectedItemsChange: (e) => onChange === null || onChange === void 0 ? void 0 : onChange(e.selectedItems),
|
41
|
+
}, isNil));
|
42
|
+
const keys = typeof options[0] === 'string' ? undefined : optionKeys;
|
43
|
+
const selectedItemsAsStrings = selectedItems.map(itemToString);
|
44
|
+
const filteredOptions = (inputValue ? matchSorter(options, inputValue, { keys }) : options).filter((opt) => !selectedItemsAsStrings.includes(itemToString(opt)));
|
45
|
+
const { isOpen, openMenu, closeMenu, highlightedIndex, getInputProps, getMenuProps, getToggleButtonProps, getItemProps, } = useCombobox({
|
46
|
+
id,
|
47
|
+
inputValue,
|
48
|
+
defaultSelectedItem: defaultValue,
|
49
|
+
selectedItem: null,
|
50
|
+
items: filteredOptions,
|
51
|
+
stateReducer: (_, actionChanges) => {
|
52
|
+
var _a, _b;
|
53
|
+
const { changes, type } = actionChanges;
|
54
|
+
switch (type) {
|
55
|
+
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
56
|
+
case useCombobox.stateChangeTypes.ItemClick: {
|
57
|
+
const selectedItem = (_a = changes.selectedItem) !== null && _a !== void 0 ? _a : (changes.inputValue ? createOption === null || createOption === void 0 ? void 0 : createOption(changes.inputValue) : null);
|
58
|
+
return Object.assign(Object.assign({}, changes), { selectedItem, isOpen: !closeOnSelect });
|
59
|
+
}
|
60
|
+
case useCombobox.stateChangeTypes.InputBlur: {
|
61
|
+
const selectedItem = (_b = changes.selectedItem) !== null && _b !== void 0 ? _b : (changes.inputValue ? createOption === null || createOption === void 0 ? void 0 : createOption(changes.inputValue) : null);
|
62
|
+
return Object.assign(Object.assign({}, changes), { selectedItem });
|
63
|
+
}
|
64
|
+
}
|
65
|
+
return changes;
|
66
|
+
},
|
67
|
+
onStateChange: ({ inputValue, selectedItem, type }) => {
|
68
|
+
switch (type) {
|
69
|
+
case useCombobox.stateChangeTypes.InputChange: {
|
70
|
+
setInputValue(inputValue !== null && inputValue !== void 0 ? inputValue : '');
|
71
|
+
break;
|
72
|
+
}
|
73
|
+
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
74
|
+
case useCombobox.stateChangeTypes.ItemClick:
|
75
|
+
case useCombobox.stateChangeTypes.InputBlur: {
|
76
|
+
setInputValue('');
|
77
|
+
if (selectedItem &&
|
78
|
+
!isOptionDisabled(selectedItem, options.indexOf(selectedItem)) &&
|
79
|
+
!selectedItems.some((val) => isEqual(val, selectedItem))) {
|
80
|
+
// Can't add disabled or duplicate items
|
81
|
+
addSelectedItem(selectedItem);
|
82
|
+
}
|
83
|
+
break;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
},
|
87
|
+
});
|
88
|
+
const { overlayProps } = useOverlayPosition({
|
89
|
+
targetRef,
|
90
|
+
overlayRef,
|
91
|
+
placement: 'bottom start',
|
92
|
+
shouldFlip: true,
|
93
|
+
isOpen,
|
94
|
+
});
|
95
|
+
const inputProps = getInputProps(getDropdownProps({ disabled: disabled || readOnly }));
|
96
|
+
const renderChips = () => {
|
97
|
+
return selectedItems.map((selectedItem, index) => (React.createElement(InputChip, Object.assign({ key: `${itemToString(selectedItem)}.chip`, className: tw('mx-0'), disabled: disabled, readOnly: readOnly }, getSelectedItemProps({ selectedItem, index }), { onClick: (e) => {
|
98
|
+
e.preventDefault();
|
99
|
+
e.stopPropagation();
|
100
|
+
removeSelectedItem(selectedItem);
|
101
|
+
} }), itemToString(selectedItem))));
|
102
|
+
};
|
103
|
+
const hasNoResults = options.length === 0 || filteredOptions.length === 0;
|
104
|
+
const width = (_b = targetRef.current) === null || _b === void 0 ? void 0 : _b.offsetWidth;
|
105
|
+
const style = isOpen ? Object.assign(Object.assign({}, overlayProps.style), { width }) : { display: 'none' };
|
106
|
+
return (React.createElement("div", { className: tw('relative') },
|
107
|
+
React.createElement(Select.InputContainer, { ref: targetRef, variant: disabled ? 'disabled' : !valid ? 'error' : readOnly ? 'readOnly' : hasFocus ? 'focused' : 'default' },
|
108
|
+
React.createElement("div", { className: 'grow inline-flex flex-row flex-wrap gap-2' },
|
109
|
+
!hideChips && inline && renderChips(),
|
110
|
+
React.createElement(Select.Input, Object.assign({ id: id, name: name, placeholder: selectedItems.length === 0 && !readOnly ? placeholder : '', value: inputValue !== null && inputValue !== void 0 ? inputValue : '' }, inputProps, props, { disabled: disabled, readOnly: readOnly, onClick: readOnly ? undefined : openMenu, onKeyDown: (e) => {
|
111
|
+
var _a;
|
112
|
+
e.stopPropagation();
|
113
|
+
(_a = inputProps.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
|
114
|
+
}, onKeyUp: (e) => e.stopPropagation(), onFocus: () => setFocus(true), onBlur: (e) => {
|
115
|
+
var _a;
|
116
|
+
setFocus(false);
|
117
|
+
(_a = inputProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(inputProps, e);
|
118
|
+
} }))),
|
119
|
+
!readOnly && React.createElement(Select.Toggle, Object.assign({ hasFocus: hasFocus, isOpen: isOpen }, getToggleButtonProps({ disabled })))),
|
120
|
+
!hideChips && !inline && React.createElement("div", { className: tw('flex flex-row flex-wrap gap-2 mt-2') }, renderChips()),
|
121
|
+
React.createElement(PopoverWrapper
|
122
|
+
// Downshift expects the menu to be in the DOM all the time.
|
123
|
+
, Object.assign({
|
124
|
+
// Downshift expects the menu to be in the DOM all the time.
|
125
|
+
isOpen: true, isDismissable: true, autoFocus: true }, getMenuProps({ ref: overlayRef }), { style: style, onClose: closeMenu }),
|
126
|
+
React.createElement(Select.Menu, { maxHeight: maxHeight },
|
127
|
+
isOpen && hasNoResults && React.createElement(Select.NoResults, null, noResults),
|
128
|
+
isOpen &&
|
129
|
+
filteredOptions.map((item, index) => (React.createElement(Select.Item, Object.assign({ key: itemToString(item), highlighted: index === highlightedIndex, selected: selectedItems.includes(item) }, getItemProps({ item, index, disabled: isOptionDisabled(item, index) })), renderOption(item))))))));
|
130
|
+
};
|
131
|
+
const MultiSelectBaseSkeleton = () => React.createElement(Skeleton, { height: 38 });
|
132
|
+
MultiSelectBase.Skeleton = MultiSelectBaseSkeleton;
|
133
|
+
export const MultiSelect = (_a) => {
|
134
|
+
var _b;
|
135
|
+
var { options, noResults } = _a, props = __rest(_a, ["options", "noResults"]);
|
136
|
+
// we need a unique ID and stable to be used for an accessible connection between the input and its error message
|
137
|
+
const id = useRef((_b = props.id) !== null && _b !== void 0 ? _b : `multiselect-${uniqueId()}`);
|
138
|
+
const errorMessageId = uniqueId();
|
139
|
+
const errorProps = props.valid === false ? { 'aria-invalid': true, 'aria-describedby': errorMessageId } : {};
|
140
|
+
const labelControlProps = getLabelControlProps(props);
|
141
|
+
const baseProps = omit(props, Object.keys(labelControlProps));
|
142
|
+
return (React.createElement(LabelControl, Object.assign({ id: `${id.current}-label`, htmlFor: `${id.current}-input`, messageId: errorMessageId }, labelControlProps),
|
143
|
+
React.createElement(MultiSelectBase, Object.assign({}, baseProps, errorProps, { id: id.current, options: options, noResults: noResults, disabled: props.disabled, valid: props.valid }))));
|
144
|
+
};
|
145
|
+
const MultiSelectSkeleton = () => (React.createElement(LabelControl.Skeleton, null,
|
146
|
+
React.createElement(MultiSelectBase.Skeleton, null)));
|
147
|
+
MultiSelect.Skeleton = MultiSelectSkeleton;
|
148
|
+
MultiSelect.Skeleton.displayName = 'MultiSelect.Skeleton'; // this will affect the Doc code preview in storybook to not show it as <No Display Name/> or <[object Object]/>.
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlTZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL011bHRpU2VsZWN0L011bHRpU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQWtDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM5RixPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFDakMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRyxPQUFPLEVBQTBCLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVl4QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBeUIsRUF1QkEsRUFBb0QsRUFBRTs7UUF2QnRELEVBQ3RELEVBQUUsRUFDRixJQUFJLEVBQ0osV0FB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
|
@@ -12,8 +12,8 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
12
12
|
import React, { useRef } from 'react';
|
13
13
|
import omit from 'lodash/omit';
|
14
14
|
import uniqueId from 'lodash/uniqueId';
|
15
|
-
import { Skeleton } from '../../../src/
|
16
|
-
import { Icon } from '../../../src/
|
15
|
+
import { Skeleton } from '../../../src/molecules/Skeleton/Skeleton';
|
16
|
+
import { Icon } from '../../../src/molecules';
|
17
17
|
import { getLabelControlProps, LabelControl } from '../../../src/utils/form/Label/Label';
|
18
18
|
import { classNames, tw } from '../../../src/utils/tailwind';
|
19
19
|
import caretDown from '../../../src/icons/caretDown';
|
@@ -75,4 +75,4 @@ const NativeSelectSkeleton = () => (React.createElement(LabelControl.Skeleton, n
|
|
75
75
|
React.createElement("div", { style: { height: '1px' } })));
|
76
76
|
NativeSelect.Skeleton = NativeSelectSkeleton;
|
77
77
|
NativeSelect.Skeleton.displayName = 'NativeSelect.Skeleton'; // this will affect the Doc code preview in storybook to not show it as <No Display Name/> or <[object Object]/>.
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmF0aXZlU2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vbGVjdWxlcy9OYXRpdmVTZWxlY3QvTmF0aXZlU2VsZWN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQTBCLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEQsT0FBTyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFhNUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQThCLEtBQUssQ0FBQyxVQUFVLENBQ3pFLENBQUMsRUFBMEYsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUFuRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxRQUFRLEdBQUcsS0FBSyxPQUFZLEVBQVAsS0FBSyxjQUF4Rix5REFBMEYsQ0FBRjtJQUN2Rix1RUFBdUU7SUFDdkUsNkVBQTZFO0lBQzdFLDhFQUE4RTtJQUM5RSxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ25FLGtDQUFrQztJQUNsQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFL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
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { type BreadcrumbsProps } from '../../../src/
|
2
|
+
import { type BreadcrumbsProps } from '../../../src/molecules/Breadcrumbs/Breadcrumbs';
|
3
3
|
import { type AsyncActionType } from '../../../types/ActionType';
|
4
4
|
export declare type PageHeaderProps = {
|
5
5
|
/** Short and concise page title. */
|
@@ -0,0 +1,40 @@
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
2
|
+
var t = {};
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
4
|
+
t[p] = s[p];
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
8
|
+
t[p[i]] = s[p[i]];
|
9
|
+
}
|
10
|
+
return t;
|
11
|
+
};
|
12
|
+
import React from 'react';
|
13
|
+
import castArray from 'lodash/castArray';
|
14
|
+
import omit from 'lodash/omit';
|
15
|
+
import { Breadcrumbs } from '../../../src/molecules/Breadcrumbs/Breadcrumbs';
|
16
|
+
import { PrimaryButton, SecondaryButton } from '../../../src/molecules/Button/Button';
|
17
|
+
import { Chip } from '../../../src/molecules/Chip/Chip';
|
18
|
+
import { Flexbox } from '../../../src/molecules/Flexbox/Flexbox';
|
19
|
+
import { Typography } from '../../../src/molecules/Typography/Typography';
|
20
|
+
import { tw } from '../../../src/utils/tailwind';
|
21
|
+
export const PageHeader = ({ title, image, imageAlt, primaryAction, secondaryActions, chips = [], breadcrumbs, }) => {
|
22
|
+
return (React.createElement(Flexbox, { direction: "row", gap: "4", paddingBottom: "6" },
|
23
|
+
React.createElement(Flexbox, { className: tw('grow'), direction: "column", gap: "0" },
|
24
|
+
breadcrumbs && React.createElement(Breadcrumbs, null, breadcrumbs),
|
25
|
+
React.createElement(Flexbox, { gap: "5" },
|
26
|
+
image && React.createElement("img", { src: image, alt: imageAlt, className: tw('w-[56px] h-[56px]') }),
|
27
|
+
React.createElement(Flexbox, { direction: "column", justifyContent: "center" },
|
28
|
+
React.createElement(Typography.Heading, null, title),
|
29
|
+
chips.length > 0 && (React.createElement(Flexbox, { gap: "3" }, chips.map((chip) => (React.createElement(Chip, { key: chip, dense: true, text: chip })))))))),
|
30
|
+
(secondaryActions || primaryAction) && (React.createElement(Flexbox, { gap: "4", className: tw('self-start') },
|
31
|
+
secondaryActions &&
|
32
|
+
castArray(secondaryActions)
|
33
|
+
.filter(Boolean)
|
34
|
+
.map((_a) => {
|
35
|
+
var { text } = _a, action = __rest(_a, ["text"]);
|
36
|
+
return (React.createElement(SecondaryButton, Object.assign({ key: text }, action), text));
|
37
|
+
}),
|
38
|
+
primaryAction && (React.createElement(PrimaryButton, Object.assign({ key: primaryAction.text }, omit(primaryAction, 'text')), primaryAction.text))))));
|
39
|
+
};
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnZUhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvUGFnZUhlYWRlci9QYWdlSGVhZGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFNBQVMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6QyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFFL0IsT0FBTyxFQUF5QixXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQXdDeEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUE4QixDQUFDLEVBQ3BELEtBQUssRUFDTCxLQUFLLEVBQ0wsUUFBUSxFQUNSLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsS0FBSyxHQUFHLEVBQUUsRUFDVixXQUFXLEdBQ1osRUFBRSxFQUFFO0lBQ0gsT0FBTyxDQUNMLG9CQUFDLE9BQU8sSUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsYUFBYSxFQUFDLEdBQUc7UUFDaEQsb0JBQUMsT0FBTyxJQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsR0FBRztZQUN2RCxXQUFXLElBQUksb0JBQUMsV0FBVyxRQUFFLFdBQVcsQ0FBZTtZQUN4RCxvQkFBQyxPQUFPLElBQUMsR0FBRyxFQUFDLEdBQUc7Z0JBQ2IsS0FBSyxJQUFJLDZCQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEdBQUk7Z0JBQ2hGLG9CQUFDLE9BQU8sSUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLGNBQWMsRUFBQyxRQUFRO29CQUNqRCxvQkFBQyxVQUFVLENBQUMsT0FBTyxRQUFFLEtBQUssQ0FBc0I7b0JBQy9DLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQ25CLG9CQUFDLE9BQU8sSUFBQyxHQUFHLEVBQUMsR0FBRyxJQUNiLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQ25CLG9CQUFDLElBQUksSUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssUUFBQyxJQUFJLEVBQUUsSUFBSSxHQUFJLENBQ3RDLENBQUMsQ0FDTSxDQUNYLENBQ08sQ0FDRixDQUNGO1FBQ1QsQ0FBQyxnQkFBZ0IsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUN0QyxvQkFBQyxPQUFPLElBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUN6QyxnQkFBZ0I7Z0JBQ2YsU0FBUyxDQUFDLGdCQUFnQixDQUFDO3FCQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDO3FCQUNmLEdBQUcsQ0FBQyxDQUFDLEVBQW1CLEVBQUUsRUFBRTt3QkFBdkIsRUFBRSxJQUFJLE9BQWEsRUFBUixNQUFNLGNBQWpCLFFBQW1CLENBQUY7b0JBQU8sT0FBQSxDQUM1QixvQkFBQyxlQUFlLGtCQUFDLEdBQUcsRUFBRSxJQUFJLElBQU0sTUFBTSxHQUNuQyxJQUFJLENBQ1csQ0FDbkIsQ0FBQTtpQkFBQSxDQUFDO1lBQ0wsYUFBYSxJQUFJLENBQ2hCLG9CQUFDLGFBQWEsa0JBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxJQUFJLElBQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsR0FDcEUsYUFBYSxDQUFDLElBQUksQ0FDTCxDQUNqQixDQUNPLENBQ1gsQ0FDTyxDQUNYLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import clamp from 'lodash/clamp';
|
3
|
+
import { Box } from '../../../src/molecules/Box/Box';
|
4
|
+
import { IconButton } from '../../../src/molecules/Button/Button';
|
5
|
+
import { InputBase } from '../../../src/molecules/Input/Input';
|
6
|
+
import { SelectBase } from '../../../src/molecules/Select/Select';
|
7
|
+
import { Typography } from '../../../src/molecules/Typography/Typography';
|
8
|
+
import { classNames, tw } from '../../../src/utils/tailwind';
|
9
|
+
import chevronBackward from '../../../src/icons/chevronBackward';
|
10
|
+
import chevronForward from '../../../src/icons/chevronForward';
|
11
|
+
import chevronLeft from '../../../src/icons/chevronLeft';
|
12
|
+
import chevronRight from '../../../src/icons/chevronRight';
|
13
|
+
export const Pagination = ({ currentPage, totalPages, pageSize, hasNextPage, hasPreviousPage, onPageChange, pageSizes, onPageSizeChange, }) => {
|
14
|
+
const [value, setValue] = React.useState(currentPage);
|
15
|
+
React.useEffect(() => {
|
16
|
+
setValue(currentPage);
|
17
|
+
}, [currentPage]);
|
18
|
+
return (React.createElement(Box, { className: tw('grid grid-cols-[200px_1fr_200px]'), backgroundColor: "grey-0", padding: "4" },
|
19
|
+
pageSizes && onPageSizeChange && typeof pageSize === 'number' ? (React.createElement(Box, { display: "flex", alignItems: "center", gap: "4" },
|
20
|
+
React.createElement(Typography.Small, { color: "grey-50" }, "Items per page "),
|
21
|
+
React.createElement("div", { className: tw('max-w-[70px]') },
|
22
|
+
React.createElement(SelectBase, { options: pageSizes.map((size) => size.toString()), value: pageSize.toString(), onChange: (size) => {
|
23
|
+
if (size) {
|
24
|
+
const newSize = parseInt(size);
|
25
|
+
if (!isNaN(newSize)) {
|
26
|
+
onPageSizeChange(newSize);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
} })))) : (React.createElement("div", null)),
|
30
|
+
React.createElement(Box, { display: "flex", justifyContent: "center", alignItems: "center", className: tw('grow') },
|
31
|
+
React.createElement(IconButton, { "aria-label": "First", onClick: () => onPageChange(1), icon: chevronBackward, disabled: !hasPreviousPage }),
|
32
|
+
React.createElement(IconButton, { "aria-label": "Previous", onClick: () => onPageChange(currentPage - 1), icon: chevronLeft, disabled: !hasPreviousPage }),
|
33
|
+
React.createElement(Box, { paddingX: "4" },
|
34
|
+
React.createElement(Typography.Small, { color: "grey-60" }, "Page")),
|
35
|
+
React.createElement(InputBase, { className: classNames(tw('text-center max-w-[40px]'), 'no-arrows'), type: "number", min: 1, max: totalPages, value: value, onChange: ({ target: { value } }) => setValue(value), onKeyDown: ({ key, currentTarget }) => {
|
36
|
+
if (key === 'Enter') {
|
37
|
+
currentTarget.blur();
|
38
|
+
}
|
39
|
+
}, onBlur: ({ target: { value } }) => {
|
40
|
+
const numberValue = parseInt(value);
|
41
|
+
const newPage = !isNaN(numberValue) ? clamp(numberValue, 1, totalPages) : 1;
|
42
|
+
onPageChange(newPage);
|
43
|
+
} }),
|
44
|
+
React.createElement(Box, { paddingX: "4" },
|
45
|
+
React.createElement(Typography.Small, { color: "grey-60" },
|
46
|
+
"of ",
|
47
|
+
totalPages)),
|
48
|
+
React.createElement(IconButton, { "aria-label": "Next", onClick: () => onPageChange(currentPage + 1), icon: chevronRight, disabled: !hasNextPage }),
|
49
|
+
React.createElement(IconButton, { "aria-label": "Last", onClick: () => onPageChange(totalPages), icon: chevronForward, disabled: !hasNextPage })),
|
50
|
+
React.createElement("div", null)));
|
51
|
+
};
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvUGFnaW5hdGlvbi9QYWdpbmF0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxLQUFLLE1BQU0sY0FBYyxDQUFDO0FBRWpDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVwRCxPQUFPLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLGNBQWMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQTZDbEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUE4QixDQUFDLEVBQ3BELFdBQVcsRUFDWCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFdBQVcsRUFDWCxlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsRUFBRSxFQUFFO0lBQ0gsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFrQixXQUFXLENBQUMsQ0FBQztJQUV2RSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNuQixRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxFQUFFLENB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
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { useEffect, useState } from 'react';
|
2
|
+
import clamp from 'lodash/clamp';
|
3
|
+
const initialState = {
|
4
|
+
currentPage: 1,
|
5
|
+
pageSize: 10,
|
6
|
+
};
|
7
|
+
const getPageIndex = (currentPage, pageSize) => (currentPage === 0 ? 0 : (currentPage - 1) * pageSize);
|
8
|
+
export const usePagination = (items, options) => {
|
9
|
+
const [currentPage, setCurrentPage] = useState((options === null || options === void 0 ? void 0 : options.initialPage) || initialState.currentPage);
|
10
|
+
const [pageSize, setPageSize] = useState((options === null || options === void 0 ? void 0 : options.initialPageSize) || initialState.pageSize);
|
11
|
+
const totalPages = items.length > 0 ? Math.ceil(items.length / pageSize) : 1;
|
12
|
+
const hasPreviousPage = currentPage > 1;
|
13
|
+
const hasNextPage = currentPage < totalPages;
|
14
|
+
const pageIndex = getPageIndex(currentPage, pageSize);
|
15
|
+
const onPageSizeChange = (pageSize) => {
|
16
|
+
const newTotalPages = items.length > 0 ? Math.ceil(items.length / pageSize) : 1;
|
17
|
+
setPageSize(pageSize);
|
18
|
+
setCurrentPage(clamp((options === null || options === void 0 ? void 0 : options.initialPage) || initialState.currentPage, 1, newTotalPages));
|
19
|
+
};
|
20
|
+
useEffect(() => {
|
21
|
+
setCurrentPage(clamp((options === null || options === void 0 ? void 0 : options.initialPage) || initialState.currentPage, 1, totalPages));
|
22
|
+
}, [items.length]);
|
23
|
+
return [
|
24
|
+
items.slice(pageIndex, Math.min(pageIndex + pageSize, items.length)),
|
25
|
+
{
|
26
|
+
currentPage,
|
27
|
+
totalPages,
|
28
|
+
pageSize,
|
29
|
+
hasPreviousPage,
|
30
|
+
hasNextPage,
|
31
|
+
onPageChange: setCurrentPage,
|
32
|
+
onPageSizeChange,
|
33
|
+
},
|
34
|
+
];
|
35
|
+
};
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlUGFnaW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvUGFnaW5hdGlvbi91c2VQYWdpbmF0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QyxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFPakMsTUFBTSxZQUFZLEdBQVU7SUFDMUIsV0FBVyxFQUFFLENBQUM7SUFDZCxRQUFRLEVBQUUsRUFBRTtDQUNiLENBQUM7QUE0Q0YsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFtQixFQUFFLFFBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsS0FBYSxFQUNiLE9BQTJCLEVBQ0EsRUFBRTtJQUM3QixNQUFNLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxHQUFHLFFBQVEsQ0FBUyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxXQUFXLEtBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFTLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGVBQWUsS0FBSSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEcsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sZUFBZSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDeEMsTUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUM3QyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXRELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLEVBQUU7UUFDNUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsS0FBSSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUMsQ0FBQztJQUVGLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixjQUFjLENBQUMsS0FBSyxDQUFDLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFdBQVcsS0FBSSxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBRW5CLE9BQU87UUFDTCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFO1lBQ0UsV0FBVztZQUNYLFVBQVU7WUFDVixRQUFRO1lBQ1IsZUFBZTtZQUNmLFdBQVc7WUFDWCxZQUFZLEVBQUUsY0FBYztZQUM1QixnQkFBZ0I7U0FDakI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { type OverlayProps as BaseOverlayProps, type OverlayTriggerProps as BaseOverlayTriggerProps, type PositionProps as BasePositionProps } from '@react-types/overlays';
|
3
|
-
import { type ButtonProps } from '../../../src/
|
3
|
+
import { type ButtonProps } from '../../../src/molecules/Button/Button';
|
4
4
|
export declare type PopoverPlacement = 'bottom' | 'bottom-left' | 'bottom-right' | 'bottom-start' | 'bottom-end' | 'top' | 'top-left' | 'top-right' | 'top-start' | 'top-end' | 'left' | 'left-top' | 'left-bottom' | 'start' | 'start-top' | 'start-bottom' | 'right' | 'right-top' | 'right-bottom' | 'end' | 'end-top' | 'end-bottom';
|
5
5
|
export declare type PopoverProps = Omit<BaseOverlayProps, 'container'> & BaseOverlayTriggerProps & Pick<BasePositionProps, 'offset' | 'shouldFlip'> & {
|
6
6
|
'id'?: string;
|
@@ -0,0 +1,79 @@
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
2
|
+
var t = {};
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
4
|
+
t[p] = s[p];
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
8
|
+
t[p[i]] = s[p[i]];
|
9
|
+
}
|
10
|
+
return t;
|
11
|
+
};
|
12
|
+
import React, { useRef } from 'react';
|
13
|
+
import { PressResponder, usePress } from '@react-aria/interactions';
|
14
|
+
import { useOverlayPosition, useOverlayTrigger } from '@react-aria/overlays';
|
15
|
+
import { mergeProps } from '@react-aria/utils';
|
16
|
+
import { useOverlayTriggerState } from '@react-stately/overlays';
|
17
|
+
import { Button } from '../../../src/molecules/Button/Button';
|
18
|
+
import { isComponentType } from '../../../types/utils';
|
19
|
+
import { PopoverContext, usePopoverContext } from './PopoverContext';
|
20
|
+
import { PopoverWrapper } from './PopoverWrapper';
|
21
|
+
/* <Popover> */
|
22
|
+
export const Popover = (props) => {
|
23
|
+
var _a;
|
24
|
+
const { id, placement: _placement = 'bottom-left', isDismissable = true, isKeyboardDismissDisabled, autoFocus = true, containFocus = false, targetRef, } = props;
|
25
|
+
const triggerRef = useRef(null);
|
26
|
+
const overlayRef = useRef(null);
|
27
|
+
const state = useOverlayTriggerState(props);
|
28
|
+
const { overlayProps: popoverProps, placement, arrowProps, } = useOverlayPosition({
|
29
|
+
targetRef: targetRef !== null && targetRef !== void 0 ? targetRef : triggerRef,
|
30
|
+
overlayRef,
|
31
|
+
placement: _placement.replace('-', ' '),
|
32
|
+
offset: props.offset,
|
33
|
+
shouldFlip: props.shouldFlip,
|
34
|
+
isOpen: state.isOpen,
|
35
|
+
});
|
36
|
+
const { triggerProps, overlayProps: otherOverlayProps } = useOverlayTrigger({ type: (_a = props.type) !== null && _a !== void 0 ? _a : 'dialog' }, state, triggerRef);
|
37
|
+
return (React.createElement(PopoverContext.Provider, { value: {
|
38
|
+
state,
|
39
|
+
} }, React.Children.map(props.children, (child) => {
|
40
|
+
if (isComponentType(child, Popover.Trigger)) {
|
41
|
+
return (React.createElement(PressResponder, Object.assign({ ref: triggerRef, onPress: state.toggle }, triggerProps),
|
42
|
+
React.createElement(PopoverTriggerWrapper, { "data-testid": props['data-testid'], "aria-controls": id }, child.props.children)));
|
43
|
+
}
|
44
|
+
if (isComponentType(child, Popover.Panel)) {
|
45
|
+
return (React.createElement(PopoverWrapper, Object.assign({ ref: overlayRef, isOpen: state.isOpen, onClose: state.close, placement: placement, arrowProps: arrowProps, isDismissable: isDismissable, isKeyboardDismissDisabled: isKeyboardDismissDisabled, autoFocus: autoFocus, containFocus: containFocus }, popoverProps, otherOverlayProps, { id: id, className: child.props.className }), child.props.children));
|
46
|
+
}
|
47
|
+
throw new Error('Invalid children element type');
|
48
|
+
})));
|
49
|
+
};
|
50
|
+
const Trigger = () => null;
|
51
|
+
Trigger.displayName = 'Popover.Trigger';
|
52
|
+
Popover.Trigger = Trigger;
|
53
|
+
const Panel = () => null;
|
54
|
+
Panel.displayName = 'Popover.Panel';
|
55
|
+
Popover.Panel = Panel;
|
56
|
+
export const asPopoverButton = (Component, displayName) => {
|
57
|
+
const PopoverButton = (props) => {
|
58
|
+
const { onClick } = props;
|
59
|
+
const { state } = usePopoverContext();
|
60
|
+
const handleClick = (e) => {
|
61
|
+
state.close();
|
62
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
63
|
+
};
|
64
|
+
return React.createElement(Component, Object.assign({}, props, { onClick: handleClick }));
|
65
|
+
};
|
66
|
+
PopoverButton.displayName = displayName;
|
67
|
+
return PopoverButton;
|
68
|
+
};
|
69
|
+
const PopoverButton = asPopoverButton(Button, 'PopoverButton');
|
70
|
+
Popover.Button = PopoverButton;
|
71
|
+
const PopoverTriggerWrapper = (_a) => {
|
72
|
+
var _b;
|
73
|
+
var { children } = _a, rest = __rest(_a, ["children"]);
|
74
|
+
const ref = useRef(null);
|
75
|
+
const trigger = React.Children.only(children);
|
76
|
+
const { pressProps } = usePress(Object.assign(Object.assign({}, rest), { ref }));
|
77
|
+
return React.cloneElement(trigger, Object.assign(Object.assign({ 'ref': ref }, mergeProps(pressProps, trigger.props)), { 'aria-controls': (_b = rest['aria-controls']) !== null && _b !== void 0 ? _b : pressProps['aria-controls'] }));
|
78
|
+
};
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9wb3Zlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvUG9wb3Zlci9Qb3BvdmVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBU2pFLE9BQU8sRUFBb0IsTUFBTSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBNENsRCxlQUFlO0FBRWYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUloQixDQUFDLEtBQUssRUFBRSxFQUFFOztJQUNaLE1BQU0sRUFDSixFQUFFLEVBQ0YsU0FBUyxFQUFFLFVBQVUsR0FBRyxhQUFhLEVBQ3JDLGFBQWEsR0FBRyxJQUFJLEVBQ3BCLHlCQUF5QixFQUN6QixTQUFTLEdBQUcsSUFBSSxFQUNoQixZQUFZLEdBQUcsS0FBSyxFQUNwQixTQUFTLEdBQ1YsR0FBRyxLQUFLLENBQUM7SUFDVixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQWMsSUFBSSxDQUFDLENBQUM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFpQixJQUFJLENBQUMsQ0FBQztJQUNoRCxNQUFNLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU1QyxNQUFNLEVBQ0osWUFBWSxFQUFFLFlBQVksRUFDMUIsU0FBUyxFQUNULFVBQVUsR0FDWCxHQUFHLGtCQUFrQixDQUFDO1FBQ3JCLFNBQVMsRUFBRSxTQUFTLGFBQVQsU0FBUyxjQUFULFNBQVMsR0FBSSxVQUFVO1FBQ2xDLFVBQVU7UUFDVixTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFjO1FBQ3BELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7UUFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUMsQ0FBQztJQUVILE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQ3pFLEVBQUUsSUFBSSxFQUFFLE1BQUEsS0FBSyxDQUFDLElBQUksbUNBQUksUUFBUSxFQUFFLEVBQ2hDLEtBQUssRUFDTCxVQUFVLENBQ1gsQ0FBQztJQUVGLE9BQU8sQ0FDTCxvQkFBQyxjQUFjLENBQUMsUUFBUSxJQUN0QixLQUFLLEVBQUU7WUFDTCxLQUFLO1NBQ04sSUFFQSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDNUMsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQyxPQUFPLENBQ0wsb0JBQUMsY0FBYyxrQkFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFNLFlBQVk7Z0JBQ3RFLG9CQUFDLHFCQUFxQixtQkFBYyxLQUFLLENBQUMsYUFBYSxDQUFDLG1CQUFpQixFQUFFLElBQ3hFLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNDLENBQ1QsQ0FDbEIsQ0FBQztTQUNIO1FBRUQsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QyxPQUFPLENBQ0wsb0JBQUMsY0FBYyxrQkFDYixHQUFHLEVBQUUsVUFBVSxFQUNmLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFDcEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLFVBQVUsRUFDdEIsYUFBYSxFQUFFLGFBQWEsRUFDNUIseUJBQXlCLEVBQUUseUJBQXlCLEVBQ3BELFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFlBQVksRUFBRSxZQUFZLElBQ3RCLFlBQVksRUFDWixpQkFBaUIsSUFDckIsRUFBRSxFQUFFLEVBQUUsRUFDTixTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBRS9CLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNOLENBQ2xCLENBQUM7U0FDSDtRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FDc0IsQ0FDM0IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVNGLE1BQU0sT0FBTyxHQUEyQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7QUFDbkQsT0FBTyxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQVUxQixNQUFNLEtBQUssR0FBeUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0FBQy9DLEtBQUssQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO0FBQ3BDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0FBU3RCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixTQUE0QixFQUM1QixXQUFtQixFQUNOLEVBQUU7SUFDZixNQUFNLGFBQWEsR0FBZ0IsQ0FBQyxLQUFRLEVBQUUsRUFBRTtRQUM5QyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQzFCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1FBRXRDLE1BQU0sV0FBVyxHQUErQixDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BELEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRyxDQUFDLENBQUMsQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVGLE9BQU8sb0JBQUMsU0FBUyxvQkFBSyxLQUFLLElBQUUsT0FBTyxFQUFFLFdBQVcsSUFBSSxDQUFDO0lBQ3hELENBQUMsQ0FBQztJQUVGLGFBQWEsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ3hDLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBeUQsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ3ZILE9BQU8sQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO0FBUy9CLE1BQU0scUJBQXFCLEdBQXlDLENBQUMsRUFBcUIsRUFBRSxFQUFFOztRQUF6QixFQUFFLFFBQVEsT0FBVyxFQUFOLElBQUksY0FBbkIsWUFBcUIsQ0FBRjtJQUN0RixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLENBQUM7SUFDbEMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFFBQVEsaUNBQU0sSUFBSSxLQUFFLEdBQUcsSUFBRyxDQUFDO0lBQ2xELE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLGdDQUMvQixLQUFLLEVBQUUsR0FBRyxJQUNQLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUN4QyxlQUFlLEVBQUUsTUFBQSxJQUFJLENBQUMsZUFBZSxDQUFDLG1DQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFDckUsQ0FBQztBQUNMLENBQUMsQ0FBQyJ9
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { createContext, useContext } from 'react';
|
2
|
+
export const PopoverContext = createContext(null);
|
3
|
+
export const usePopoverContext = () => {
|
4
|
+
const ctx = useContext(PopoverContext);
|
5
|
+
if (ctx === null) {
|
6
|
+
throw new Error('PopoverContext was used outside of provider.');
|
7
|
+
}
|
8
|
+
return ctx;
|
9
|
+
};
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9wb3ZlckNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL1BvcG92ZXIvUG9wb3ZlckNvbnRleHQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBT2xELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQXdCLElBQUksQ0FBQyxDQUFDO0FBRXpFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQW1CLEVBQUU7SUFDcEQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUF3QixjQUFjLENBQUMsQ0FBQztJQUU5RCxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0tBQ2pFO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMifQ==
|
@@ -13,7 +13,7 @@ import React from 'react';
|
|
13
13
|
import { FocusScope } from '@react-aria/focus';
|
14
14
|
import { OverlayContainer, useModal, useOverlay } from '@react-aria/overlays';
|
15
15
|
import { mergeProps } from '@react-aria/utils';
|
16
|
-
import { Popover as Base } from '../../../src/
|
16
|
+
import { Popover as Base } from '../../../src/atoms/Popover/Popover';
|
17
17
|
export const PopoverWrapper = React.forwardRef((props, ref) => {
|
18
18
|
const { id, children, placement, arrowProps, isOpen, hideArrow,
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
@@ -31,4 +31,4 @@ export const PopoverWrapper = React.forwardRef((props, ref) => {
|
|
31
31
|
React.createElement(FocusScope, { restoreFocus: true, autoFocus: autoFocus, contain: containFocus },
|
32
32
|
React.createElement(Base.Panel, Object.assign({ ref: ref, role: "dialog" }, mergeProps(otherProps, modalProps, overlayProps), { id: id !== null && id !== void 0 ? id : overlayProps.id, className: className }), children))));
|
33
33
|
});
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9wb3ZlcldyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL1BvcG92ZXIvUG9wb3ZlcldyYXBwZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUcvQyxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBaUI1RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBc0MsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDakcsTUFBTSxFQUNKLEVBQUUsRUFDRixRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sU0FBUztJQUNULDZEQUE2RDtJQUM3RCxpQkFBaUI7SUFDakIsNkRBQTZEO0lBQzdELHlCQUF5QixFQUN6QixVQUFVLEdBQUcsSUFBSSxFQUNqQixhQUFhLEVBQ2IsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEtBRVAsS0FBSyxFQURKLFVBQVUsVUFDWCxLQUFLLEVBakJILCtMQWlCTCxDQUFRLENBQUM7SUFFVixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsVUFBVSxpQ0FDNUIsS0FBSyxLQUFFLGFBQWEsRUFBRSxhQUFhLElBQUksTUFBTSxLQUNsRCxHQUFzQyxDQUN2QyxDQUFDO0lBRUYsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLFFBQVEsQ0FBQztRQUM5QixVQUFVLEVBQUUsVUFBVTtLQUN2QixDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNqQixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsT0FBTyxDQUNMLG9CQUFDLGdCQUFnQjtRQUNmLG9CQUFDLFVBQVUsSUFBQyxZQUFZLFFBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsWUFBWTtZQUNsRSxvQkFBQyxJQUFJLENBQUMsS0FBSyxrQkFDVCxHQUFHLEVBQUUsR0FBRyxFQUNSLElBQUksRUFBQyxRQUFRLElBQ1QsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQ3BELEVBQUUsRUFBRSxFQUFFLGFBQUYsRUFBRSxjQUFGLEVBQUUsR0FBSSxZQUFZLENBQUMsRUFBRSxFQUN6QixTQUFTLEVBQUUsU0FBUyxLQUVuQixRQUFRLENBQ0UsQ0FDRixDQUNJLENBQ3BCLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQyJ9
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { type DialogProps } from '../../../src/
|
3
|
-
import { type PopoverPlacement, Popover } from '../../../src/
|
2
|
+
import { type DialogProps } from '../../../src/molecules/Dialog/Dialog';
|
3
|
+
import { type PopoverPlacement, Popover } from '../../../src/molecules/Popover/Popover';
|
4
4
|
declare type PopoverDialogProps = Omit<DialogProps, 'type' | 'open'> & {
|
5
5
|
placement?: PopoverPlacement;
|
6
6
|
open?: boolean;
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import omit from 'lodash/omit';
|
3
|
+
import { Popover } from '../../../src/molecules/Popover/Popover';
|
4
|
+
import { PopoverDialog as Base } from '../../../src/atoms/PopoverDialog/PopoverDialog';
|
5
|
+
import { tw } from '../../../src/utils/tailwind';
|
6
|
+
import { isComponentType } from '../../../types/utils';
|
7
|
+
const PopoverDialog = ({ placement, open, title, secondaryAction, primaryAction, children }) => {
|
8
|
+
const wrapPromptWithBody = (child) => {
|
9
|
+
if (isComponentType(child, PopoverDialog.Prompt)) {
|
10
|
+
return (React.createElement(Popover.Panel, { className: tw('max-w-[300px]') },
|
11
|
+
React.createElement(Base.Header, null,
|
12
|
+
React.createElement(Base.Title, null, title)),
|
13
|
+
child,
|
14
|
+
React.createElement(Base.Footer, null,
|
15
|
+
React.createElement(Base.Actions, null,
|
16
|
+
secondaryAction && (React.createElement(Popover.Button, Object.assign({ kind: "secondary-ghost", key: secondaryAction.text, dense: true }, omit(secondaryAction, 'text')), secondaryAction.text)),
|
17
|
+
React.createElement(Popover.Button, Object.assign({ kind: "ghost", key: primaryAction.text, dense: true }, omit(primaryAction, 'text')), primaryAction.text)))));
|
18
|
+
}
|
19
|
+
return child;
|
20
|
+
};
|
21
|
+
return (React.createElement(Popover, { type: "dialog", isOpen: open, placement: placement, isDismissable: true, isKeyboardDismissDisabled: false, autoFocus: true, containFocus: true }, React.Children.map(children, wrapPromptWithBody)));
|
22
|
+
};
|
23
|
+
PopoverDialog.Trigger = Popover.Trigger;
|
24
|
+
const Prompt = ({ children }) => React.createElement(Base.Body, null, children);
|
25
|
+
Prompt.displayName = 'PopoverDialog.Prompt';
|
26
|
+
PopoverDialog.Prompt = Prompt;
|
27
|
+
export { PopoverDialog };
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9wb3ZlckRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvUG9wb3ZlckRpYWxvZy9Qb3BvdmVyRGlhbG9nLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBRy9CLE9BQU8sRUFBeUIsT0FBTyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGFBQWEsSUFBSSxJQUFJLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU85QyxNQUFNLGFBQWEsR0FHZixDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0lBQzNFLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7UUFDcEQsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRCxPQUFPLENBQ0wsb0JBQUMsT0FBTyxDQUFDLEtBQUssSUFBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDM0Msb0JBQUMsSUFBSSxDQUFDLE1BQU07b0JBQ1Ysb0JBQUMsSUFBSSxDQUFDLEtBQUssUUFBRSxLQUFLLENBQWMsQ0FDcEI7Z0JBQ2IsS0FBSztnQkFDTixvQkFBQyxJQUFJLENBQUMsTUFBTTtvQkFDVixvQkFBQyxJQUFJLENBQUMsT0FBTzt3QkFDVixlQUFlLElBQUksQ0FDbEIsb0JBQUMsT0FBTyxDQUFDLE1BQU0sa0JBQ2IsSUFBSSxFQUFDLGlCQUFpQixFQUN0QixHQUFHLEVBQUUsZUFBZSxDQUFDLElBQUksRUFDekIsS0FBSyxVQUNELElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLEdBRWhDLGVBQWUsQ0FBQyxJQUFJLENBQ04sQ0FDbEI7d0JBQ0Qsb0JBQUMsT0FBTyxDQUFDLE1BQU0sa0JBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxLQUFLLFVBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsR0FDeEYsYUFBYSxDQUFDLElBQUksQ0FDSixDQUNKLENBQ0gsQ0FDQSxDQUNqQixDQUFDO1NBQ0g7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FDTCxvQkFBQyxPQUFPLElBQ04sSUFBSSxFQUFDLFFBQVEsRUFDYixNQUFNLEVBQUUsSUFBSSxFQUNaLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLGFBQWEsRUFBRSxJQUFJLEVBQ25CLHlCQUF5QixFQUFFLEtBQUssRUFDaEMsU0FBUyxFQUFFLElBQUksRUFDZixZQUFZLEVBQUUsSUFBSSxJQUVqQixLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FDekMsQ0FDWCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsYUFBYSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0FBRXhDLE1BQU0sTUFBTSxHQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsb0JBQUMsSUFBSSxDQUFDLElBQUksUUFBRSxRQUFRLENBQWEsQ0FBQztBQUM3RSxNQUFNLENBQUMsV0FBVyxHQUFHLHNCQUFzQixDQUFDO0FBQzVDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyJ9
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { createPortal } from 'react-dom';
|
2
|
+
export const Portal = ({ children, to }) => createPortal(children, to);
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL21vbGVjdWxlcy9Qb3J0YWwvUG9ydGFsLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBU3pDLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBb0IsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyJ9
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role
|
2
|
+
import React from 'react';
|
3
|
+
import { Skeleton } from '../../../src/molecules/Skeleton/Skeleton';
|
4
|
+
import { ProgressBar as BaseProgressBar } from '../../../src/atoms/ProgressBar/ProgressBar';
|
5
|
+
import { tw } from '../../../src/utils/tailwind';
|
6
|
+
export const ProgressBar = (props) => {
|
7
|
+
const { value, 'aria-label': ariaLabel, min = 0, max = 100, progresStatus = 'info', completedStatus = 'success', } = props;
|
8
|
+
if (min > max) {
|
9
|
+
throw new Error('`min` value provided to `ProgressBar` is greater than `max` value.');
|
10
|
+
}
|
11
|
+
const progress = (React.createElement(BaseProgressBar, null,
|
12
|
+
React.createElement(BaseProgressBar.Indicator, { status: value === max ? completedStatus : progresStatus, min: min, max: max, value: value, "aria-label": ariaLabel })));
|
13
|
+
if (props.dense) {
|
14
|
+
return progress;
|
15
|
+
}
|
16
|
+
return (React.createElement("div", null,
|
17
|
+
progress,
|
18
|
+
React.createElement(BaseProgressBar.Labels, { className: tw('py-2'), startLabel: props.startLabel, endLabel: props.endLabel })));
|
19
|
+
};
|
20
|
+
const ProgressBarSkeleton = () => React.createElement(Skeleton, { height: 4, display: "block" });
|
21
|
+
ProgressBar.Skeleton = ProgressBarSkeleton;
|
22
|
+
ProgressBar.Skeleton.displayName = 'ProgressBar.Skeleton';
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJvZ3Jlc3NCYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9sZWN1bGVzL1Byb2dyZXNzQmFyL1Byb2dyZXNzQmFyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFFN0csT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUzRCxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQTRDeEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUF3RCxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ3hGLE1BQU0sRUFDSixLQUFLLEVBQ0wsWUFBWSxFQUFFLFNBQVMsRUFDdkIsR0FBRyxHQUFHLENBQUMsRUFDUCxHQUFHLEdBQUcsR0FBRyxFQUNULGFBQWEsR0FBRyxNQUFNLEVBQ3RCLGVBQWUsR0FBRyxTQUFTLEdBQzVCLEdBQUcsS0FBSyxDQUFDO0lBRVYsSUFBSSxHQUFHLEdBQUcsR0FBRyxFQUFFO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsTUFBTSxRQUFRLEdBQUcsQ0FDZixvQkFBQyxlQUFlO1FBQ2Qsb0JBQUMsZUFBZSxDQUFDLFNBQVMsSUFDeEIsTUFBTSxFQUFFLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUN2RCxHQUFHLEVBQUUsR0FBRyxFQUNSLEdBQUcsRUFBRSxHQUFHLEVBQ1IsS0FBSyxFQUFFLEtBQUssZ0JBQ0EsU0FBUyxHQUNyQixDQUNjLENBQ25CLENBQUM7SUFFRixJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUU7UUFDZixPQUFPLFFBQVEsQ0FBQztLQUNqQjtJQUVELE9BQU8sQ0FDTDtRQUNHLFFBQVE7UUFDVCxvQkFBQyxlQUFlLENBQUMsTUFBTSxJQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEdBQUksQ0FDckcsQ0FDUCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBYSxHQUFHLEVBQUUsQ0FBQyxvQkFBQyxRQUFRLElBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUMsT0FBTyxHQUFHLENBQUM7QUFFcEYsV0FBVyxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQztBQUMzQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQyJ9
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { type RadioButtonProps as BaseRadioButtonProps } from '../../../src/
|
2
|
+
import { type RadioButtonProps as BaseRadioButtonProps } from '../../../src/atoms/RadioButton/RadioButton';
|
3
3
|
export declare type RadioButtonProps = BaseRadioButtonProps & {
|
4
4
|
caption?: React.ReactNode;
|
5
5
|
};
|