@mrshmllw/smores-react 9.4.1 → 9.6.0-crumbs-seach-input-ui.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Box/Box.d.ts +1 -1
- package/dist/Chip/Chip.js +1 -1
- package/dist/Chip/Chip.js.map +1 -1
- package/dist/Datepicker/Datepicker.js +2 -2
- package/dist/Datepicker/Datepicker.js.map +1 -1
- package/dist/Datepicker/DatesList.js +2 -2
- package/dist/Datepicker/DatesList.js.map +1 -1
- package/dist/Icon/iconFiles/Aa.d.ts +2 -2
- package/dist/Icon/iconFiles/AaInverted.d.ts +2 -2
- package/dist/Icon/iconFiles/AccidentalDamage.d.ts +2 -2
- package/dist/Icon/iconFiles/AccountBreakdown.d.ts +2 -2
- package/dist/Icon/iconFiles/AccountMlp.d.ts +2 -2
- package/dist/Icon/iconFiles/ActivityClipboard.d.ts +2 -2
- package/dist/Icon/iconFiles/AddOns.d.ts +2 -2
- package/dist/Icon/iconFiles/AddressMta.d.ts +2 -2
- package/dist/Icon/iconFiles/AlbumAudio.d.ts +2 -2
- package/dist/Icon/iconFiles/Alert.d.ts +2 -2
- package/dist/Icon/iconFiles/AlertEngine.d.ts +2 -2
- package/dist/Icon/iconFiles/Amex.d.ts +2 -2
- package/dist/Icon/iconFiles/ApplePay.d.ts +2 -2
- package/dist/Icon/iconFiles/ApprovedFile.d.ts +2 -2
- package/dist/Icon/iconFiles/Arrow.d.ts +2 -2
- package/dist/Icon/iconFiles/At.d.ts +2 -2
- package/dist/Icon/iconFiles/Axa.d.ts +2 -2
- package/dist/Icon/iconFiles/Bank.d.ts +2 -2
- package/dist/Icon/iconFiles/Basket.d.ts +2 -2
- package/dist/Icon/iconFiles/Bicycle.d.ts +2 -2
- package/dist/Icon/iconFiles/Boost.d.ts +2 -2
- package/dist/Icon/iconFiles/Breakdown.d.ts +2 -2
- package/dist/Icon/iconFiles/BreakdownAlt.d.ts +2 -2
- package/dist/Icon/iconFiles/Briefcase.d.ts +2 -2
- package/dist/Icon/iconFiles/Bullets.d.ts +2 -2
- package/dist/Icon/iconFiles/Burger.d.ts +2 -2
- package/dist/Icon/iconFiles/Calendar.d.ts +2 -2
- package/dist/Icon/iconFiles/Camera.d.ts +2 -2
- package/dist/Icon/iconFiles/Cancel.d.ts +2 -2
- package/dist/Icon/iconFiles/CancelBw.d.ts +2 -2
- package/dist/Icon/iconFiles/Car.d.ts +2 -2
- package/dist/Icon/iconFiles/CarMta.d.ts +2 -2
- package/dist/Icon/iconFiles/CarRepairs.d.ts +2 -2
- package/dist/Icon/iconFiles/CarReplacement.d.ts +2 -2
- package/dist/Icon/iconFiles/CarUsage.d.ts +2 -2
- package/dist/Icon/iconFiles/Card.d.ts +2 -2
- package/dist/Icon/iconFiles/Caret.d.ts +2 -2
- package/dist/Icon/iconFiles/CaretUp.d.ts +3 -3
- package/dist/Icon/iconFiles/Charge.d.ts +2 -2
- package/dist/Icon/iconFiles/Chat.d.ts +2 -2
- package/dist/Icon/iconFiles/ChatBubble.d.ts +2 -2
- package/dist/Icon/iconFiles/Checkout.d.ts +2 -2
- package/dist/Icon/iconFiles/CheckoutWithText.d.ts +2 -2
- package/dist/Icon/iconFiles/CircleTick.d.ts +2 -2
- package/dist/Icon/iconFiles/City.d.ts +2 -2
- package/dist/Icon/iconFiles/Claim.d.ts +2 -2
- package/dist/Icon/iconFiles/ClaimLine.d.ts +2 -2
- package/dist/Icon/iconFiles/Clipboard.d.ts +2 -2
- package/dist/Icon/iconFiles/ClipboardCheck.d.ts +2 -2
- package/dist/Icon/iconFiles/Clock.d.ts +2 -2
- package/dist/Icon/iconFiles/ClosePanel.d.ts +2 -2
- package/dist/Icon/iconFiles/Collapse.d.ts +2 -2
- package/dist/Icon/iconFiles/Confused.d.ts +2 -2
- package/dist/Icon/iconFiles/ConfusedBlue.d.ts +2 -2
- package/dist/Icon/iconFiles/ContactEmail.d.ts +2 -2
- package/dist/Icon/iconFiles/Copy.d.ts +2 -2
- package/dist/Icon/iconFiles/Crop.d.ts +2 -2
- package/dist/Icon/iconFiles/Cross.d.ts +2 -2
- package/dist/Icon/iconFiles/DashboardHigh.d.ts +2 -2
- package/dist/Icon/iconFiles/DirectDebit.d.ts +2 -2
- package/dist/Icon/iconFiles/DocDownload.d.ts +2 -2
- package/dist/Icon/iconFiles/DocUpload.d.ts +2 -2
- package/dist/Icon/iconFiles/Download.d.ts +2 -2
- package/dist/Icon/iconFiles/Earth.d.ts +2 -2
- package/dist/Icon/iconFiles/Edit.d.ts +2 -2
- package/dist/Icon/iconFiles/EditContact.d.ts +2 -2
- package/dist/Icon/iconFiles/EditOutline.d.ts +2 -2
- package/dist/Icon/iconFiles/EmailFilled.d.ts +2 -2
- package/dist/Icon/iconFiles/Engine.d.ts +2 -2
- package/dist/Icon/iconFiles/Europe.d.ts +2 -2
- package/dist/Icon/iconFiles/Excluded.d.ts +2 -2
- package/dist/Icon/iconFiles/Expand.d.ts +2 -2
- package/dist/Icon/iconFiles/Facebook.d.ts +2 -2
- package/dist/Icon/iconFiles/FallingItems.d.ts +2 -2
- package/dist/Icon/iconFiles/Fence.d.ts +2 -2
- package/dist/Icon/iconFiles/File.d.ts +2 -2
- package/dist/Icon/iconFiles/FileBadge2.d.ts +2 -2
- package/dist/Icon/iconFiles/FileCabinet.d.ts +2 -2
- package/dist/Icon/iconFiles/Filter.d.ts +2 -2
- package/dist/Icon/iconFiles/Fire.d.ts +2 -2
- package/dist/Icon/iconFiles/Flag.d.ts +2 -2
- package/dist/Icon/iconFiles/Folder.d.ts +2 -2
- package/dist/Icon/iconFiles/FraudAlert.d.ts +2 -2
- package/dist/Icon/iconFiles/FreezerFood.d.ts +2 -2
- package/dist/Icon/iconFiles/Fuel.d.ts +2 -2
- package/dist/Icon/iconFiles/Globe.d.ts +2 -2
- package/dist/Icon/iconFiles/GooglePlayBadge.d.ts +2 -2
- package/dist/Icon/iconFiles/Gpay.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpAboutus.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpBuypolicy.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpCenter.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpIdcheck.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpManagePolicy.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpNcd.d.ts +2 -2
- package/dist/Icon/iconFiles/HelpVerification.d.ts +2 -2
- package/dist/Icon/iconFiles/HomeExcluded.d.ts +2 -2
- package/dist/Icon/iconFiles/House.d.ts +2 -2
- package/dist/Icon/iconFiles/HouseTree.d.ts +2 -2
- package/dist/Icon/iconFiles/Id.d.ts +2 -2
- package/dist/Icon/iconFiles/Inbox.d.ts +2 -2
- package/dist/Icon/iconFiles/Included.d.ts +2 -2
- package/dist/Icon/iconFiles/Info.d.ts +2 -2
- package/dist/Icon/iconFiles/Injury.d.ts +2 -2
- package/dist/Icon/iconFiles/Instagram.d.ts +2 -2
- package/dist/Icon/iconFiles/Intercom.d.ts +2 -2
- package/dist/Icon/iconFiles/Intercom2.d.ts +2 -2
- package/dist/Icon/iconFiles/IosStoreBadge.d.ts +2 -2
- package/dist/Icon/iconFiles/Iphone.d.ts +2 -2
- package/dist/Icon/iconFiles/Jewellery.d.ts +2 -2
- package/dist/Icon/iconFiles/Key.d.ts +2 -2
- package/dist/Icon/iconFiles/Laptop.d.ts +2 -2
- package/dist/Icon/iconFiles/Leaks.d.ts +2 -2
- package/dist/Icon/iconFiles/Lightbulb.d.ts +2 -2
- package/dist/Icon/iconFiles/Link.d.ts +2 -2
- package/dist/Icon/iconFiles/Linkedin.d.ts +2 -2
- package/dist/Icon/iconFiles/LiveChat.d.ts +2 -2
- package/dist/Icon/iconFiles/LiveChat2.d.ts +2 -2
- package/dist/Icon/iconFiles/Location.d.ts +2 -2
- package/dist/Icon/iconFiles/LogOut.d.ts +2 -2
- package/dist/Icon/iconFiles/ManageDrivers.d.ts +2 -2
- package/dist/Icon/iconFiles/ManagePolicy.d.ts +2 -2
- package/dist/Icon/iconFiles/Marshmallow.d.ts +2 -2
- package/dist/Icon/iconFiles/Mastercard.d.ts +2 -2
- package/dist/Icon/iconFiles/Maximise.d.ts +2 -2
- package/dist/Icon/iconFiles/MaximiseWindow.d.ts +2 -2
- package/dist/Icon/iconFiles/Medical.d.ts +2 -2
- package/dist/Icon/iconFiles/Minimise.d.ts +2 -2
- package/dist/Icon/iconFiles/Minus.d.ts +2 -2
- package/dist/Icon/iconFiles/MinusCircle.d.ts +2 -2
- package/dist/Icon/iconFiles/MoneyBag.d.ts +2 -2
- package/dist/Icon/iconFiles/MoneyHeart.d.ts +2 -2
- package/dist/Icon/iconFiles/MoreDots.d.ts +2 -2
- package/dist/Icon/iconFiles/Mulsanne.d.ts +2 -2
- package/dist/Icon/iconFiles/NewWindow.d.ts +2 -2
- package/dist/Icon/iconFiles/NoExcess.d.ts +2 -2
- package/dist/Icon/iconFiles/Notes.d.ts +2 -2
- package/dist/Icon/iconFiles/Notification.d.ts +2 -2
- package/dist/Icon/iconFiles/Onfido.d.ts +2 -2
- package/dist/Icon/iconFiles/OpenPanel.d.ts +2 -2
- package/dist/Icon/iconFiles/Other.d.ts +2 -2
- package/dist/Icon/iconFiles/OutOfHome.d.ts +2 -2
- package/dist/Icon/iconFiles/Padlock.d.ts +2 -2
- package/dist/Icon/iconFiles/PadlockOutline.d.ts +2 -2
- package/dist/Icon/iconFiles/People.d.ts +2 -2
- package/dist/Icon/iconFiles/Person.d.ts +2 -2
- package/dist/Icon/iconFiles/PhoneFilled.d.ts +2 -2
- package/dist/Icon/iconFiles/PhoneOutline.d.ts +2 -2
- package/dist/Icon/iconFiles/Photo.d.ts +2 -2
- package/dist/Icon/iconFiles/PinCode.d.ts +2 -2
- package/dist/Icon/iconFiles/Plus.d.ts +2 -2
- package/dist/Icon/iconFiles/PlusCircle.d.ts +2 -2
- package/dist/Icon/iconFiles/Policy.d.ts +2 -2
- package/dist/Icon/iconFiles/PolicyDetails.d.ts +2 -2
- package/dist/Icon/iconFiles/PolicyDoc.d.ts +2 -2
- package/dist/Icon/iconFiles/PolicyDocs.d.ts +2 -2
- package/dist/Icon/iconFiles/PoundBold.d.ts +2 -2
- package/dist/Icon/iconFiles/PoundFilledCircle.d.ts +2 -2
- package/dist/Icon/iconFiles/PoundMedium.d.ts +2 -2
- package/dist/Icon/iconFiles/PoundOutline.d.ts +2 -2
- package/dist/Icon/iconFiles/PoundRegular.d.ts +2 -2
- package/dist/Icon/iconFiles/Premfina.d.ts +2 -2
- package/dist/Icon/iconFiles/Profile.d.ts +2 -2
- package/dist/Icon/iconFiles/Prohibited.d.ts +2 -2
- package/dist/Icon/iconFiles/Property.d.ts +2 -2
- package/dist/Icon/iconFiles/QuestionHelp.d.ts +2 -2
- package/dist/Icon/iconFiles/Rac.d.ts +2 -2
- package/dist/Icon/iconFiles/Ravelin.d.ts +2 -2
- package/dist/Icon/iconFiles/ReferAFriend.d.ts +2 -2
- package/dist/Icon/iconFiles/Refund.d.ts +2 -2
- package/dist/Icon/iconFiles/RegPlate.d.ts +2 -2
- package/dist/Icon/iconFiles/Renewal.d.ts +2 -2
- package/dist/Icon/iconFiles/RenewalLine.d.ts +2 -2
- package/dist/Icon/iconFiles/RepeatCharge.d.ts +2 -2
- package/dist/Icon/iconFiles/Return.d.ts +2 -2
- package/dist/Icon/iconFiles/ScheduleQuote.d.ts +2 -2
- package/dist/Icon/iconFiles/Search.d.ts +2 -2
- package/dist/Icon/iconFiles/Security.d.ts +2 -2
- package/dist/Icon/iconFiles/SendMessage.d.ts +2 -2
- package/dist/Icon/iconFiles/Settings.d.ts +2 -2
- package/dist/Icon/iconFiles/Shield.d.ts +2 -2
- package/dist/Icon/iconFiles/ShieldCheck.d.ts +2 -2
- package/dist/Icon/iconFiles/Shopping.d.ts +2 -2
- package/dist/Icon/iconFiles/Sofa.d.ts +2 -2
- package/dist/Icon/iconFiles/Stack.d.ts +2 -2
- package/dist/Icon/iconFiles/Storm.d.ts +2 -2
- package/dist/Icon/iconFiles/Stripe.d.ts +2 -2
- package/dist/Icon/iconFiles/Subsidence.d.ts +2 -2
- package/dist/Icon/iconFiles/Theft.d.ts +2 -2
- package/dist/Icon/iconFiles/ThumbsUp.d.ts +2 -2
- package/dist/Icon/iconFiles/Tick.d.ts +2 -2
- package/dist/Icon/iconFiles/TowTruck.d.ts +2 -2
- package/dist/Icon/iconFiles/TraceAndAccess.d.ts +2 -2
- package/dist/Icon/iconFiles/Training.d.ts +2 -2
- package/dist/Icon/iconFiles/Trash.d.ts +2 -2
- package/dist/Icon/iconFiles/Twitter.d.ts +2 -2
- package/dist/Icon/iconFiles/UpDown.d.ts +2 -2
- package/dist/Icon/iconFiles/Upload.d.ts +2 -2
- package/dist/Icon/iconFiles/UploadDocuments.d.ts +2 -2
- package/dist/Icon/iconFiles/UploadEmail.d.ts +2 -2
- package/dist/Icon/iconFiles/Vandalism.d.ts +2 -2
- package/dist/Icon/iconFiles/Village.d.ts +2 -2
- package/dist/Icon/iconFiles/Visa.d.ts +2 -2
- package/dist/Icon/iconFiles/Warning.d.ts +2 -2
- package/dist/Icon/iconFiles/Watch.d.ts +2 -2
- package/dist/Icon/iconFiles/Wave.d.ts +2 -2
- package/dist/Icon/iconFiles/Wellbeing.d.ts +2 -2
- package/dist/Icon/iconFiles/WheelFlat.d.ts +2 -2
- package/dist/Icon/iconFiles/Windscreen.d.ts +2 -2
- package/dist/Icon/iconFiles/WindscreenRepair.d.ts +2 -2
- package/dist/Icon/iconFiles/WindscreenReplacement.d.ts +2 -2
- package/dist/Icon/iconsList.d.ts +213 -213
- package/dist/IconStrict/IconStrict.d.ts +2 -2
- package/dist/IconStrict/IconStrict.js +7 -8
- package/dist/IconStrict/IconStrict.js.map +1 -1
- package/dist/NumberInput/NumberInput.js +2 -2
- package/dist/NumberInput/NumberInput.js.map +1 -1
- package/dist/Pagination/Pagination.js +2 -2
- package/dist/Pagination/Pagination.js.map +1 -1
- package/dist/RichTextEditor/plugins/AutoLinkPlugin.d.ts +2 -2
- package/dist/RichTextEditor/plugins/ToolbarPlugin.d.ts +2 -2
- package/dist/SearchInput/SearchInput.d.ts +19 -0
- package/dist/SearchInput/SearchInput.js +80 -19
- package/dist/SearchInput/SearchInput.js.map +1 -1
- package/dist/SearchInput/components/SearchOptions.d.ts +6 -0
- package/dist/SearchInput/components/SearchOptions.js +51 -16
- package/dist/SearchInput/components/SearchOptions.js.map +1 -1
- package/dist/SegmentedControl/SegmentedControl.d.ts +2 -2
- package/dist/SegmentedControl/ToggleButton.d.ts +2 -2
- package/dist/SegmentedControl/ToggleButton.js +1 -1
- package/dist/SegmentedControl/ToggleButton.js.map +1 -1
- package/dist/Table/Table.d.ts +2 -2
- package/dist/Table/components/RowActions.d.ts +2 -2
- package/dist/Table/components/TableHeader.d.ts +2 -2
- package/dist/Table/components/TableRow.d.ts +2 -2
- package/dist/Table/components/commonComponents.d.ts +4 -4
- package/dist/Toggle/Toggle.js +3 -3
- package/dist/Toggle/Toggle.js.map +1 -1
- package/dist/Tooltip/Tooltip.d.ts +3 -3
- package/dist/fields/Field/Field.d.ts +2 -2
- package/dist/fields/Fieldset/Fieldset.d.ts +2 -2
- package/dist/fields/components/CommonInput.d.ts +5 -5
- package/dist/fields/components/InternalField.d.ts +2 -2
- package/dist/fields/components/Placeholder.d.ts +2 -2
- package/dist/hooks/useClickOutside/index.js.map +1 -1
- package/dist/hooks/useKeyPress/index.d.ts +2 -0
- package/dist/hooks/useKeyPress/index.js +24 -0
- package/dist/hooks/useKeyPress/index.js.map +1 -0
- package/package.json +11 -1
@@ -1,12 +1,25 @@
|
|
1
|
-
import
|
1
|
+
import Fuse from 'fuse.js';
|
2
|
+
import React, { forwardRef, useMemo, useRef, useState, } from 'react';
|
3
|
+
import styled from 'styled-components';
|
2
4
|
import { Box } from '../Box';
|
5
|
+
import { IconStrict } from '../IconStrict';
|
3
6
|
import { Field } from '../fields/Field';
|
4
7
|
import { Input, StyledFrontIcon } from '../fields/components/CommonInput';
|
8
|
+
import { useOnClickOutside } from '../hooks';
|
9
|
+
import { theme } from '../theme';
|
5
10
|
import { useUniqueId } from '../utils/id';
|
6
11
|
import { useControllableState } from '../utils/useControlledState';
|
7
12
|
import { SearchOptions } from './components/SearchOptions';
|
8
|
-
|
9
|
-
|
13
|
+
const defaultFuzzySearchOptions = {
|
14
|
+
keys: ['label', 'value'],
|
15
|
+
findAllMatches: true,
|
16
|
+
minMatchCharLength: 2,
|
17
|
+
location: 0,
|
18
|
+
threshold: 0.45,
|
19
|
+
distance: 55,
|
20
|
+
};
|
21
|
+
export const SearchInput = forwardRef(function SearchInput({ id: idProp, name = 'search_input', className = '', placeholder, searchList, showIcon = false, renderAsTitle = false, value, onBlur, onFound, onNotFound, notFoundComponent, fallbackStyle, resultsRelativePosition = false, resultsBorder = true, enableFuzzySearch = false, fuzzySearchOptions, clearSearch, ...otherProps }, ref) {
|
22
|
+
const wrapperRef = useRef(null);
|
10
23
|
const id = useUniqueId(idProp);
|
11
24
|
const [showOptions, setShowOptions] = useState(false);
|
12
25
|
const [selectedValue, setSelectedValue] = useControllableState({
|
@@ -14,23 +27,26 @@ export const SearchInput = forwardRef(function SearchInput({ id: idProp, name =
|
|
14
27
|
stateProp: value,
|
15
28
|
});
|
16
29
|
const [searchQuery, setSearchQuery] = useState(null);
|
30
|
+
const [focusedIndex, setFocusedIndex] = useState(-1);
|
31
|
+
useOnClickOutside({
|
32
|
+
ref: wrapperRef,
|
33
|
+
callback: () => setShowOptions(false),
|
34
|
+
});
|
17
35
|
const fuse = useMemo(() => {
|
18
|
-
const searchKeys = ['label', 'value'];
|
19
36
|
return new Fuse(searchList, {
|
20
|
-
|
21
|
-
|
22
|
-
minMatchCharLength: 2,
|
37
|
+
...defaultFuzzySearchOptions,
|
38
|
+
...fuzzySearchOptions,
|
23
39
|
});
|
24
40
|
}, [searchList]);
|
25
41
|
const filteredList = useMemo(() => {
|
26
42
|
if (searchQuery === null || searchQuery === '') {
|
27
43
|
return searchList;
|
28
44
|
}
|
29
|
-
if (enableFuzzySearch) {
|
45
|
+
if (enableFuzzySearch || !!fuzzySearchOptions) {
|
30
46
|
return fuse.search(searchQuery).map(({ item }) => item);
|
31
47
|
}
|
32
48
|
return searchList.filter(({ label }) => label.toLowerCase().includes(searchQuery.toLocaleLowerCase()));
|
33
|
-
}, [searchQuery, enableFuzzySearch]);
|
49
|
+
}, [searchQuery, enableFuzzySearch, !!fuzzySearchOptions]);
|
34
50
|
const getDisplayedInputText = () => {
|
35
51
|
if (searchQuery !== null) {
|
36
52
|
return searchQuery;
|
@@ -44,6 +60,7 @@ export const SearchInput = forwardRef(function SearchInput({ id: idProp, name =
|
|
44
60
|
const displayedInputText = getDisplayedInputText();
|
45
61
|
const updateSearchQuery = (query) => {
|
46
62
|
setSearchQuery(query);
|
63
|
+
setFocusedIndex(-1);
|
47
64
|
if (query === null) {
|
48
65
|
setShowOptions(false);
|
49
66
|
}
|
@@ -51,6 +68,16 @@ export const SearchInput = forwardRef(function SearchInput({ id: idProp, name =
|
|
51
68
|
setShowOptions(2 <= query.length);
|
52
69
|
}
|
53
70
|
};
|
71
|
+
const handleClick = () => {
|
72
|
+
if (searchQuery !== null && 2 <= searchQuery.length) {
|
73
|
+
updateSearchQuery(searchQuery);
|
74
|
+
setShowOptions(true);
|
75
|
+
}
|
76
|
+
else if (selectedValue !== null && searchQuery === null) {
|
77
|
+
setSearchQuery(selectedValue);
|
78
|
+
setShowOptions(true);
|
79
|
+
}
|
80
|
+
};
|
54
81
|
const handleInputChange = (event) => {
|
55
82
|
const nextValue = event.currentTarget.value;
|
56
83
|
updateSearchQuery(nextValue);
|
@@ -60,15 +87,49 @@ export const SearchInput = forwardRef(function SearchInput({ id: idProp, name =
|
|
60
87
|
setSelectedValue(nextValue.label);
|
61
88
|
onFound(nextValue.value);
|
62
89
|
};
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
90
|
+
const handleClearSearch = () => {
|
91
|
+
updateSearchQuery(null);
|
92
|
+
setSelectedValue(null);
|
93
|
+
};
|
94
|
+
const handleCaretClick = () => {
|
95
|
+
setShowOptions(!showOptions);
|
96
|
+
};
|
97
|
+
const handleKeyDown = (event) => {
|
98
|
+
if (event.key === 'ArrowDown') {
|
99
|
+
event.preventDefault();
|
100
|
+
const nextIndex = (focusedIndex + 1) % filteredList.length;
|
101
|
+
setFocusedIndex(nextIndex);
|
102
|
+
}
|
103
|
+
else if (event.key === 'ArrowUp') {
|
104
|
+
event.preventDefault();
|
105
|
+
const prevIndex = (focusedIndex - 1 + filteredList.length) % filteredList.length;
|
106
|
+
setFocusedIndex(prevIndex);
|
107
|
+
}
|
108
|
+
};
|
109
|
+
return (React.createElement(Box, { ref: wrapperRef },
|
110
|
+
React.createElement(Field, { className: className, renderAsTitle: renderAsTitle, htmlFor: id, ...otherProps },
|
111
|
+
React.createElement(Box, { flex: true, alignItems: "center", justifyContent: "flex-start" },
|
112
|
+
showIcon && React.createElement(StyledFrontIcon, { render: "search", color: "sesame" }),
|
113
|
+
React.createElement(Input, { id: id, name: name, ref: ref, placeholder: placeholder, "$error": otherProps.error, "$frontIcon": showIcon ? 'search' : undefined, "$fallbackStyle": fallbackStyle, autoComplete: "off", value: displayedInputText, onFocus: handleClick, onChange: handleInputChange, selected: isSelected, onClick: handleClick, onKeyDown: handleKeyDown, onBlur: (e) => {
|
114
|
+
if (displayedInputText === '') {
|
115
|
+
setSearchQuery(null);
|
116
|
+
}
|
117
|
+
onBlur?.(e);
|
118
|
+
} }),
|
119
|
+
React.createElement(Icons, { flex: true, alignItems: "center", gap: "8px", "$clearSearch": !!clearSearch },
|
120
|
+
clearSearch && (React.createElement(IconStrict, { render: "plus", rotate: 45, iconColor: "marzipan", handleClick: handleClearSearch, size: 24 })),
|
121
|
+
React.createElement(Line, null),
|
122
|
+
React.createElement(IconStrict, { render: "caret", iconColor: "marzipan", rotate: showOptions ? 180 : 0, handleClick: handleCaretClick, size: 24 }))),
|
123
|
+
showOptions && (React.createElement(SearchOptions, { displayedList: filteredList, selectedValue: selectedValue, focusedIndex: focusedIndex, onKeyDown: handleKeyDown, searchTerm: searchQuery || '', onSelect: handleSelect, positionRelative: resultsRelativePosition, resultsBorder: resultsBorder, onNotFound: onNotFound, notFoundComponent: notFoundComponent })))));
|
73
124
|
});
|
125
|
+
const Line = styled(Box) `
|
126
|
+
background: ${theme.colors.oatmeal};
|
127
|
+
height: 24px;
|
128
|
+
width: 1px;
|
129
|
+
`;
|
130
|
+
export const Icons = styled(Box) `
|
131
|
+
position: relative;
|
132
|
+
right: ${({ $clearSearch }) => ($clearSearch ? '78px' : '48px')};
|
133
|
+
margin-right: ${({ $clearSearch }) => ($clearSearch ? '-78px' : '-48px')};
|
134
|
+
`;
|
74
135
|
//# sourceMappingURL=SearchInput.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../src/SearchInput/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAIZ,UAAU,EACV,OAAO,EACP,QAAQ,GACT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;
|
1
|
+
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../src/SearchInput/SearchInput.tsx"],"names":[],"mappings":"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"}
|
@@ -5,7 +5,13 @@ type Option = {
|
|
5
5
|
};
|
6
6
|
type SearchOptionsProps = {
|
7
7
|
displayedList: Array<Option>;
|
8
|
+
selectedValue: string | null;
|
9
|
+
focusedIndex: number;
|
8
10
|
onSelect: (option: Option) => void;
|
11
|
+
onKeyDown: (e: {
|
12
|
+
key: string;
|
13
|
+
preventDefault: () => void;
|
14
|
+
}) => void;
|
9
15
|
positionRelative: boolean;
|
10
16
|
resultsBorder: boolean;
|
11
17
|
onNotFound?: (searchTerm: string) => void;
|
@@ -1,13 +1,28 @@
|
|
1
|
-
import {
|
2
|
-
import React from 'react';
|
1
|
+
import React, { createRef, useEffect, useRef } from 'react';
|
3
2
|
import styled, { css } from 'styled-components';
|
4
3
|
import { Box } from '../../Box';
|
4
|
+
import { Icon } from '../../Icon';
|
5
5
|
import { theme } from '../../theme';
|
6
6
|
import { EmptyResults } from './EmptyResults';
|
7
|
-
export const SearchOptions = ({ displayedList, onSelect, positionRelative, resultsBorder, onNotFound, searchTerm, notFoundComponent, }) => {
|
7
|
+
export const SearchOptions = ({ displayedList, selectedValue, focusedIndex, onSelect, onKeyDown, positionRelative, resultsBorder, onNotFound, searchTerm, notFoundComponent, }) => {
|
8
|
+
const itemRefs = useRef([]);
|
9
|
+
useEffect(() => {
|
10
|
+
itemRefs.current = displayedList.map((_, i) => itemRefs.current[i] ?? createRef());
|
11
|
+
}, [displayedList.length]);
|
12
|
+
useEffect(() => {
|
13
|
+
const itemRef = itemRefs?.current[focusedIndex]?.current;
|
14
|
+
if (focusedIndex >= 0 && itemRef) {
|
15
|
+
itemRef.focus();
|
16
|
+
}
|
17
|
+
}, [focusedIndex]);
|
8
18
|
return (React.createElement(BoxWithPositionRelative, null,
|
9
19
|
React.createElement(StyledResultsContainer, { "$positionRelative": positionRelative },
|
10
|
-
React.createElement(ResultsList, { "$resultsBorder": resultsBorder }, displayedList.length ? (displayedList.map((el, i) =>
|
20
|
+
React.createElement(ResultsList, { "$resultsBorder": resultsBorder, onKeyDown: onKeyDown }, displayedList.length ? (displayedList.map((el, i) => {
|
21
|
+
const isSelected = selectedValue === el.label;
|
22
|
+
return (React.createElement(ListButton, { type: "button", "aria-label": el.label + '_list_item', ref: itemRefs.current[i], key: i, onClick: () => onSelect(el), "$isSelected": isSelected || focusedIndex === i },
|
23
|
+
el.label,
|
24
|
+
isSelected && (React.createElement(Icon, { render: "tick", size: 16, color: "marshmallowPink" }))));
|
25
|
+
})) : (React.createElement(EmptyResults, { onNotFound: onNotFound, searchTerm: searchTerm, notFoundComponent: notFoundComponent }))))));
|
11
26
|
};
|
12
27
|
const StyledResultsContainer = styled.div `
|
13
28
|
box-sizing: border-box;
|
@@ -27,14 +42,11 @@ const ResultsList = styled.ul `
|
|
27
42
|
overflow-y: auto;
|
28
43
|
padding: 0;
|
29
44
|
margin: 0;
|
30
|
-
background-color: ${theme.colors.
|
45
|
+
background-color: ${theme.colors.cream};
|
31
46
|
border-radius: 12px;
|
32
47
|
margin-top: 14px;
|
33
48
|
z-index: 1000;
|
34
|
-
|
35
|
-
css `
|
36
|
-
border: 2px solid ${theme.colors.oatmeal};
|
37
|
-
`}
|
49
|
+
border: 1px solid ${theme.colors.oatmeal};
|
38
50
|
|
39
51
|
li {
|
40
52
|
padding: 16px 14px;
|
@@ -43,18 +55,41 @@ const ResultsList = styled.ul `
|
|
43
55
|
color: ${theme.colors.liquorice};
|
44
56
|
cursor: pointer;
|
45
57
|
|
46
|
-
${({ $resultsBorder }) => $resultsBorder && `border-bottom: 2px solid ${theme.colors.oatmeal};`}
|
47
|
-
|
48
|
-
&:last-child {
|
49
|
-
${({ $resultsBorder }) => $resultsBorder && `border-bottom:none`}
|
50
|
-
}
|
51
|
-
|
52
58
|
&:hover {
|
53
|
-
background-color: ${
|
59
|
+
background-color: ${theme.colors.mascarpone};
|
54
60
|
}
|
55
61
|
}
|
56
62
|
`;
|
63
|
+
const ListButton = styled.button `
|
64
|
+
display: flex;
|
65
|
+
justify-content: space-between;
|
66
|
+
padding: 16px 14px;
|
67
|
+
box-sizing: border-box;
|
68
|
+
font-size: 16px;
|
69
|
+
width: 100%;
|
70
|
+
color: ${theme.colors.liquorice};
|
71
|
+
cursor: pointer;
|
72
|
+
|
73
|
+
&:hover {
|
74
|
+
background-color: ${theme.colors.mascarpone};
|
75
|
+
}
|
76
|
+
|
77
|
+
&:focus {
|
78
|
+
outline: none;
|
79
|
+
background-color: ${theme.colors.mascarpone};
|
80
|
+
}
|
81
|
+
&:focus-visible {
|
82
|
+
outline: none;
|
83
|
+
background-color: ${theme.colors.mascarpone};
|
84
|
+
}
|
85
|
+
|
86
|
+
${({ $isSelected }) => $isSelected &&
|
87
|
+
css `
|
88
|
+
background-color: ${theme.colors.mascarpone};
|
89
|
+
`}
|
90
|
+
`;
|
57
91
|
const BoxWithPositionRelative = styled(Box) `
|
58
92
|
position: relative;
|
93
|
+
filter: drop-shadow(0px 6px 12px rgba(0, 0, 0, 0.3));
|
59
94
|
`;
|
60
95
|
//# sourceMappingURL=SearchOptions.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SearchOptions.js","sourceRoot":"","sources":["../../../src/SearchInput/components/SearchOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"SearchOptions.js","sourceRoot":"","sources":["../../../src/SearchInput/components/SearchOptions.tsx"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
/// <reference types="react" />
|
2
1
|
import { Color } from '../theme';
|
2
|
+
import React from 'react';
|
3
3
|
export type SegmentedControlOption<T = string | number> = {
|
4
4
|
label: string;
|
5
5
|
/** value needs to be number or string */
|
@@ -31,5 +31,5 @@ export type SegmentedControlProps<T> = {
|
|
31
31
|
* ### How do I pass state to the `SegmentedControl` component?
|
32
32
|
* We recommend pulling the state up to at least the component that renders `SegmentedControl` up to at least the component that renders `SegmentedControl`, this should make it easier to pass state to the `SegmentedControl` component
|
33
33
|
*/
|
34
|
-
export declare const SegmentedControl: <T>({ options, value, onChange, showTag, styles: { tagBorder, tagText, tagBg, selectedText, text, background, toggle, }, }: SegmentedControlProps<T>) => JSX.Element;
|
34
|
+
export declare const SegmentedControl: <T>({ options, value, onChange, showTag, styles: { tagBorder, tagText, tagBg, selectedText, text, background, toggle, }, }: SegmentedControlProps<T>) => React.JSX.Element;
|
35
35
|
export {};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ReactNode } from 'react';
|
1
|
+
import React, { ReactNode } from 'react';
|
2
2
|
type ToggleButtonProps<Value> = {
|
3
3
|
name: string;
|
4
4
|
value: Value;
|
@@ -7,5 +7,5 @@ type ToggleButtonProps<Value> = {
|
|
7
7
|
isDisabled?: boolean;
|
8
8
|
children: ReactNode;
|
9
9
|
};
|
10
|
-
export declare const ToggleButton: <Value>({ name, value, onChange, isSelected, isDisabled, children, }: ToggleButtonProps<Value>) => JSX.Element;
|
10
|
+
export declare const ToggleButton: <Value>({ name, value, onChange, isSelected, isDisabled, children, }: ToggleButtonProps<Value>) => React.JSX.Element;
|
11
11
|
export {};
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Box } from '../Box';
|
2
1
|
import React from 'react';
|
3
2
|
import styled, { css } from 'styled-components';
|
3
|
+
import { Box } from '../Box';
|
4
4
|
export const ToggleButton = ({ name, value, onChange, isSelected, isDisabled = false, children, }) => {
|
5
5
|
return (React.createElement(Wrapper, { as: "label", "data-testId": `value-toggle-${value}`, isDisabled: isDisabled },
|
6
6
|
React.createElement(VisuallyHiddenInput, { type: "radio", name: name, checked: isSelected, onClick: () => onChange(value), onChange: () => onChange(value) }),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ToggleButton.js","sourceRoot":"","sources":["../../src/SegmentedControl/ToggleButton.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"ToggleButton.js","sourceRoot":"","sources":["../../src/SegmentedControl/ToggleButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AACxC,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAW5B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAS,EACnC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAU,GAAG,KAAK,EAClB,QAAQ,GACiB,EAAE,EAAE;IAC7B,OAAO,CACL,oBAAC,OAAO,IACN,EAAE,EAAC,OAAO,iBACG,gBAAgB,KAAK,EAAE,EACpC,UAAU,EAAE,UAAU;QAEtB,oBAAC,mBAAmB,IAClB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9B,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAC/B;QACD,QAAQ,CACD,CACX,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAyB;;IAEhD,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CACnB,UAAU;IACV,GAAG,CAAA;;;KAGF;;;;;;;CAOJ,CAAA;AAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAA;;;;;;;;CAQvC,CAAA"}
|
package/dist/Table/Table.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
import React from 'react';
|
2
2
|
import { TableProps } from './types';
|
3
3
|
/**
|
4
4
|
* A table component that displays data with various features such as expandable rows, striped rows, and fixed headers.
|
@@ -35,4 +35,4 @@ import { TableProps } from './types';
|
|
35
35
|
* @property {string} [columnPadding] - The X padding for each row.
|
36
36
|
* @property {string} [noDataContent] - The text to show when there is no available data to map through.
|
37
37
|
*/
|
38
|
-
export declare const Table: <T extends object>({ columns, data, fixedHeader, hasKeyline, expandable, subTable, subRows, headerHeight, headerColor, rowColor, stripedColor, rowBorderColor, rowActions, clickableRow, rowPadding, columnPadding, noDataContent, }: TableProps<T>) => JSX.Element;
|
38
|
+
export declare const Table: <T extends object>({ columns, data, fixedHeader, hasKeyline, expandable, subTable, subRows, headerHeight, headerColor, rowColor, stripedColor, rowBorderColor, rowActions, clickableRow, rowPadding, columnPadding, noDataContent, }: TableProps<T>) => React.JSX.Element;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
1
|
+
import React from 'react';
|
2
2
|
import { RowActionsProps } from '../types';
|
3
|
-
export declare const RowActions: <T extends object>({ rowData, rowActions, expandable, isExpanded, toggleExpansion, }: RowActionsProps<T>) => JSX.Element;
|
3
|
+
export declare const RowActions: <T extends object>({ rowData, rowActions, expandable, isExpanded, toggleExpansion, }: RowActionsProps<T>) => React.JSX.Element;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
1
|
+
import React from 'react';
|
2
2
|
import { TableHeaderProps } from '../types';
|
3
|
-
export declare const TableHeader: <T extends object>({ columns, fixedHeader, headerColor, rowActions, headerHeight, columnPadding, expandable, hasKeyline, }: TableHeaderProps<T>) => JSX.Element;
|
3
|
+
export declare const TableHeader: <T extends object>({ columns, fixedHeader, headerColor, rowActions, headerHeight, columnPadding, expandable, hasKeyline, }: TableHeaderProps<T>) => React.JSX.Element;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
1
|
+
import React from 'react';
|
2
2
|
import { TableRowProps } from '../types';
|
3
|
-
export declare const TableRow: <T extends object>({ rowData, rowIndex, columns, subRows, subTable, stripedColor, rowActions, rowColor, rowBorderColor, rowPadding, columnPadding, showActions, expandable, clickableRow, }: TableRowProps<T>) => JSX.Element;
|
3
|
+
export declare const TableRow: <T extends object>({ rowData, rowIndex, columns, subRows, subTable, stripedColor, rowActions, rowColor, rowBorderColor, rowPadding, columnPadding, showActions, expandable, clickableRow, }: TableRowProps<T>) => React.JSX.Element;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { TransientProps } from 'utils/utilTypes';
|
3
3
|
import { TableStylesProps } from '../types';
|
4
|
-
export declare const StyledTable: import("styled-components").
|
5
|
-
export declare const StyledHeaderCell: import("styled-components").
|
6
|
-
export declare const StyledCell: import("styled-components").
|
7
|
-
export declare const StyledRow: import("styled-components").
|
4
|
+
export declare const StyledTable: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, never>> & string;
|
5
|
+
export declare const StyledHeaderCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, TransientProps<TableStylesProps>>> & string;
|
6
|
+
export declare const StyledCell: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, TransientProps<TableStylesProps>>> & string;
|
7
|
+
export declare const StyledRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, TransientProps<TableStylesProps>>> & string;
|
package/dist/Toggle/Toggle.js
CHANGED
@@ -4,12 +4,12 @@ import { Box } from '../Box';
|
|
4
4
|
import { theme } from '../theme';
|
5
5
|
import { focusOutline } from '../utils/focusOutline';
|
6
6
|
export const Toggle = ({ id, checked, onToggle, ...marginProps }) => {
|
7
|
-
return (React.createElement(Switch, { forwardedAs: "label",
|
8
|
-
React.createElement(Checkbox, { type: "checkbox", checked: checked, onChange: onToggle, onKeyDown: (e) => {
|
7
|
+
return (React.createElement(Switch, { forwardedAs: "label", htmlFor: id, ...marginProps },
|
8
|
+
React.createElement(Checkbox, { id: id, type: "checkbox", checked: checked, onChange: onToggle, onKeyDown: (e) => {
|
9
9
|
if (e.key === 'Enter') {
|
10
10
|
onToggle();
|
11
11
|
}
|
12
|
-
} }),
|
12
|
+
}, "aria-label": "toggle" }),
|
13
13
|
React.createElement(Slider, null)));
|
14
14
|
};
|
15
15
|
const Switch = styled(Box) `
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Toggle.js","sourceRoot":"","sources":["../../src/Toggle/Toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAYpD,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,EAChC,EAAE,EACF,OAAO,EACP,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,EAAE;IACH,OAAO,CACL,oBAAC,MAAM,IAAC,WAAW,EAAC,OAAO,EAAC,
|
1
|
+
{"version":3,"file":"Toggle.js","sourceRoot":"","sources":["../../src/Toggle/Toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AACjC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAYpD,MAAM,CAAC,MAAM,MAAM,GAAc,CAAC,EAChC,EAAE,EACF,OAAO,EACP,QAAQ,EACR,GAAG,WAAW,EACf,EAAE,EAAE;IACH,OAAO,CACL,oBAAC,MAAM,IAAC,WAAW,EAAC,OAAO,EAAC,OAAO,EAAE,EAAE,KAAM,WAAW;QACtD,oBAAC,QAAQ,IACP,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;gBACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBACtB,QAAQ,EAAE,CAAA;gBACZ,CAAC;YACH,CAAC,gBACU,QAAQ,GACnB;QACF,oBAAC,MAAM,OAAG,CACH,CACV,CAAA;AACH,CAAC,CAAA;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;;;;;;;;;;CAWzB,CAAA;AAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAA;;;;;;;sBAOJ,KAAK,CAAC,MAAM,CAAC,OAAO;;;;;;;wBAOlB,KAAK,CAAC,MAAM,CAAC,QAAQ;;;;;;;;;;wBAUrB,KAAK,CAAC,MAAM,CAAC,UAAU;;;;CAI9C,CAAA;AAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAA;IACzB,YAAY,CAAC,EAAE,QAAQ,EAAE,qBAAqB,MAAM,EAAE,EAAE,CAAC;;gBAE7C,MAAM;wBACE,KAAK,CAAC,MAAM,CAAC,SAAS;;;;gBAI9B,MAAM;;;CAGrB,CAAA"}
|
@@ -13,13 +13,13 @@ export interface TooltipProps {
|
|
13
13
|
portalContainer?: Element | DocumentFragment;
|
14
14
|
}
|
15
15
|
export declare const Tooltip: FC<TooltipProps>;
|
16
|
-
export declare const Container: import("styled-components").
|
17
|
-
export declare const Tip: import("styled-components").
|
16
|
+
export declare const Container: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
17
|
+
export declare const Tip: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
18
18
|
$showTip: boolean;
|
19
19
|
$position: Position;
|
20
20
|
$arrowPosition: ArrowPosition;
|
21
21
|
$maxWidth?: number | undefined;
|
22
22
|
$fallbackStyle?: boolean | undefined;
|
23
23
|
$zIndex: number;
|
24
|
-
}
|
24
|
+
}>> & string;
|
25
25
|
export {};
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { ReactNode } from 'react';
|
1
|
+
import React, { ReactNode } from 'react';
|
2
2
|
import { CommonFieldProps } from '../commonFieldTypes';
|
3
3
|
export interface FieldProps extends CommonFieldProps {
|
4
4
|
htmlFor?: string;
|
5
5
|
children: ReactNode;
|
6
6
|
}
|
7
|
-
export declare const Field: ({ children, ...fieldProps }: FieldProps) => JSX.Element;
|
7
|
+
export declare const Field: ({ children, ...fieldProps }: FieldProps) => React.JSX.Element;
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
1
|
+
import React from 'react';
|
2
2
|
import { MarginProps } from '../../utils/space';
|
3
3
|
import { CommonFieldProps } from '../commonFieldTypes';
|
4
4
|
export type FieldsetProps = CommonFieldProps & MarginProps;
|
5
|
-
export declare const Fieldset: ({ children, renderAsTitle, id, ...fieldProps }: FieldsetProps) => JSX.Element;
|
5
|
+
export declare const Fieldset: ({ children, renderAsTitle, id, ...fieldProps }: FieldsetProps) => React.JSX.Element;
|
@@ -13,19 +13,19 @@ interface IInput {
|
|
13
13
|
interface SIcon {
|
14
14
|
$disabled?: boolean;
|
15
15
|
}
|
16
|
-
export declare const Input: import("styled-components").
|
17
|
-
export declare const StyledFrontIcon: import("styled-components").
|
16
|
+
export declare const Input: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, IInput>> & string;
|
17
|
+
export declare const StyledFrontIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<{
|
18
18
|
className?: string | undefined;
|
19
19
|
render: "search" | "link" | "at" | "filter" | "id" | "property" | "security" | "key" | "download" | "alert" | "location" | "copy" | "other" | "amex" | "axa" | "breakdown" | "earth" | "help-aboutus" | "injury" | "onfido" | "rac" | "renewal" | "stack" | "aa-inverted" | "accidental-damage" | "account-breakdown" | "account-mlp" | "activity-clipboard" | "add-ons" | "address-mta" | "album-audio" | "alert-engine" | "apple-pay" | "approved-file" | "breakdown-alt" | "cancel-bw" | "car-mta" | "car-repairs" | "car-replacement" | "car-usage" | "chat-bubble" | "checkout-with-text" | "circle-tick" | "claim-line" | "clipboard-check" | "close-panel" | "confused-blue" | "contact-email" | "dashboard-high" | "direct-debit" | "doc-download" | "doc-upload" | "edit-contact" | "edit-outline" | "email-filled" | "falling-items" | "file-badge-2" | "file-cabinet" | "fraud-alert" | "freezer-food" | "google-play-badge" | "help-buypolicy" | "help-center" | "help-idcheck" | "help-manage-policy" | "help-ncd" | "help-verification" | "home-excluded" | "house-tree" | "ios-store-badge" | "live-chat" | "live-chat2" | "log-out" | "manage-drivers" | "manage-policy" | "maximise-window" | "minus-circle" | "money-bag" | "money-heart" | "more-dots" | "new-window" | "no-excess" | "open-panel" | "out-of-home" | "padlock-outline" | "phone-filled" | "phone-outline" | "pin-code" | "plus-circle" | "policy-details" | "policy-doc" | "policy-docs" | "pound-bold" | "pound-filled-circle" | "pound-medium" | "pound-outline" | "pound-regular" | "question-help" | "refer-a-friend" | "reg-plate" | "renewal-line" | "repeat-charge" | "schedule-quote" | "send-message" | "shield-check" | "thumbs-up" | "tow-truck" | "trace-and-access" | "up-down" | "upload-documents" | "upload-email" | "wheel-flat" | "windscreen-repair" | "windscreen-replacement" | "aa" | "addons" | "arrow" | "bank" | "basket" | "bicycle" | "boost" | "briefcase" | "burger" | "bullets" | "calendar" | "camera" | "cancel" | "car" | "card" | "caret" | "caret-up" | "charge" | "chat" | "checkout" | "city" | "claim" | "clipboard" | "clock" | "collpase" | "confused" | "crop" | "cross" | "edit" | "engine" | "europe" | "excluded" | "expand" | "facebook" | "fence" | "file" | "fire" | "flag" | "folder" | "fuel" | "globe" | "gpay" | "house" | "inbox" | "included" | "info" | "instagram" | "intercom" | "intercom2" | "iphone" | "jewellery" | "laptop" | "leaks" | "lightbulb" | "linkedin" | "marshmallow" | "mastercard" | "maximise" | "medical" | "minimise" | "minus" | "mulsanne" | "notes" | "notification" | "padlock" | "people" | "person" | "photo" | "plus" | "policy" | "premfina" | "profile" | "prohibited" | "ravelin" | "refund" | "return" | "settings" | "shield" | "shopping" | "sofa" | "storm" | "stripe" | "subsidence" | "theft" | "tick" | "training" | "trash" | "twitter" | "upload" | "vandalism" | "village" | "visa" | "warning" | "watch" | "wave" | "wellbeing" | "windscreen";
|
20
20
|
size?: number | undefined;
|
21
21
|
color?: "onfido" | "rac" | "checkout" | "confused" | "facebook" | "intercom" | "premfina" | "ravelin" | "stripe" | "twitter" | "lollipop" | "marshmallowPink" | "bubblegum" | "fairyFloss" | "boba" | "liquorice" | "sesame" | "chia" | "custard" | "mascarpone" | "coconut" | "cream" | "spearmint" | "feijoa" | "blueberry" | "macaroon" | "pistachio" | "matcha" | "caramel" | "peanut" | "marzipan" | "oatmeal" | "strawberry" | "watermelon" | "apple" | "mint" | "lemon" | "sherbert" | "tangerine" | "compareTheMarket" | "hometree" | undefined;
|
22
22
|
rotate?: number | undefined;
|
23
|
-
} & import("../..").MarginProps, SIcon>> & Omit<import("react").FC<import("../../Icon/Icon").IconProps>, keyof import("react").Component<any, {}, any>>;
|
24
|
-
export declare const StyledTrailingIcon: import("styled-components").
|
23
|
+
} & import("../..").MarginProps, SIcon>> & string & Omit<import("react").FC<import("../../Icon/Icon").IconProps>, keyof import("react").Component<any, {}, any>>;
|
24
|
+
export declare const StyledTrailingIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<{
|
25
25
|
className?: string | undefined;
|
26
26
|
render: "search" | "link" | "at" | "filter" | "id" | "property" | "security" | "key" | "download" | "alert" | "location" | "copy" | "other" | "amex" | "axa" | "breakdown" | "earth" | "help-aboutus" | "injury" | "onfido" | "rac" | "renewal" | "stack" | "aa-inverted" | "accidental-damage" | "account-breakdown" | "account-mlp" | "activity-clipboard" | "add-ons" | "address-mta" | "album-audio" | "alert-engine" | "apple-pay" | "approved-file" | "breakdown-alt" | "cancel-bw" | "car-mta" | "car-repairs" | "car-replacement" | "car-usage" | "chat-bubble" | "checkout-with-text" | "circle-tick" | "claim-line" | "clipboard-check" | "close-panel" | "confused-blue" | "contact-email" | "dashboard-high" | "direct-debit" | "doc-download" | "doc-upload" | "edit-contact" | "edit-outline" | "email-filled" | "falling-items" | "file-badge-2" | "file-cabinet" | "fraud-alert" | "freezer-food" | "google-play-badge" | "help-buypolicy" | "help-center" | "help-idcheck" | "help-manage-policy" | "help-ncd" | "help-verification" | "home-excluded" | "house-tree" | "ios-store-badge" | "live-chat" | "live-chat2" | "log-out" | "manage-drivers" | "manage-policy" | "maximise-window" | "minus-circle" | "money-bag" | "money-heart" | "more-dots" | "new-window" | "no-excess" | "open-panel" | "out-of-home" | "padlock-outline" | "phone-filled" | "phone-outline" | "pin-code" | "plus-circle" | "policy-details" | "policy-doc" | "policy-docs" | "pound-bold" | "pound-filled-circle" | "pound-medium" | "pound-outline" | "pound-regular" | "question-help" | "refer-a-friend" | "reg-plate" | "renewal-line" | "repeat-charge" | "schedule-quote" | "send-message" | "shield-check" | "thumbs-up" | "tow-truck" | "trace-and-access" | "up-down" | "upload-documents" | "upload-email" | "wheel-flat" | "windscreen-repair" | "windscreen-replacement" | "aa" | "addons" | "arrow" | "bank" | "basket" | "bicycle" | "boost" | "briefcase" | "burger" | "bullets" | "calendar" | "camera" | "cancel" | "car" | "card" | "caret" | "caret-up" | "charge" | "chat" | "checkout" | "city" | "claim" | "clipboard" | "clock" | "collpase" | "confused" | "crop" | "cross" | "edit" | "engine" | "europe" | "excluded" | "expand" | "facebook" | "fence" | "file" | "fire" | "flag" | "folder" | "fuel" | "globe" | "gpay" | "house" | "inbox" | "included" | "info" | "instagram" | "intercom" | "intercom2" | "iphone" | "jewellery" | "laptop" | "leaks" | "lightbulb" | "linkedin" | "marshmallow" | "mastercard" | "maximise" | "medical" | "minimise" | "minus" | "mulsanne" | "notes" | "notification" | "padlock" | "people" | "person" | "photo" | "plus" | "policy" | "premfina" | "profile" | "prohibited" | "ravelin" | "refund" | "return" | "settings" | "shield" | "shopping" | "sofa" | "storm" | "stripe" | "subsidence" | "theft" | "tick" | "training" | "trash" | "twitter" | "upload" | "vandalism" | "village" | "visa" | "warning" | "watch" | "wave" | "wellbeing" | "windscreen";
|
27
27
|
size?: number | undefined;
|
28
28
|
color?: "onfido" | "rac" | "checkout" | "confused" | "facebook" | "intercom" | "premfina" | "ravelin" | "stripe" | "twitter" | "lollipop" | "marshmallowPink" | "bubblegum" | "fairyFloss" | "boba" | "liquorice" | "sesame" | "chia" | "custard" | "mascarpone" | "coconut" | "cream" | "spearmint" | "feijoa" | "blueberry" | "macaroon" | "pistachio" | "matcha" | "caramel" | "peanut" | "marzipan" | "oatmeal" | "strawberry" | "watermelon" | "apple" | "mint" | "lemon" | "sherbert" | "tangerine" | "compareTheMarket" | "hometree" | undefined;
|
29
29
|
rotate?: number | undefined;
|
30
|
-
} & import("../..").MarginProps, SIcon>> & Omit<import("react").FC<import("../../Icon/Icon").IconProps>, keyof import("react").Component<any, {}, any>>;
|
30
|
+
} & import("../..").MarginProps, SIcon>> & string & Omit<import("react").FC<import("../../Icon/Icon").IconProps>, keyof import("react").Component<any, {}, any>>;
|
31
31
|
export {};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ReactNode } from 'react';
|
1
|
+
import React, { ReactNode } from 'react';
|
2
2
|
import { CommonFieldProps } from '../commonFieldTypes';
|
3
3
|
interface InternalFieldProps extends CommonFieldProps {
|
4
4
|
children: ReactNode;
|
@@ -6,5 +6,5 @@ interface InternalFieldProps extends CommonFieldProps {
|
|
6
6
|
htmlFor?: string;
|
7
7
|
fieldType: 'field' | 'fieldset';
|
8
8
|
}
|
9
|
-
export declare const InternalField: ({ children, fieldType, renderAsTitle, htmlFor, className, label, assistiveText, error, errorMsg, required, completed, ...marginProps }: InternalFieldProps) => JSX.Element;
|
9
|
+
export declare const InternalField: ({ children, fieldType, renderAsTitle, htmlFor, className, label, assistiveText, error, errorMsg, required, completed, ...marginProps }: InternalFieldProps) => React.JSX.Element;
|
10
10
|
export {};
|
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
export declare const Placeholder: () => JSX.Element;
|
1
|
+
import React from 'react';
|
2
|
+
export declare const Placeholder: () => React.JSX.Element;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useClickOutside/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useClickOutside/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,GAAG,EACH,QAAQ,GAIT,EAAE,EAAE;IACH,MAAM,sBAAsB,GAAG,WAAW,CACxC,CAAC,KAAiB,EAAE,EAAE;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;YACvE,OAAM;QACR,CAAC;QAED,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC,EAED,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChB,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAEzC,gBAAgB,CAAC;QACf,SAAS,EAAE,OAAO;QAClB,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;IAEF,gBAAgB,CAAC;QACf,SAAS,EAAE,UAAU;QACrB,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,IAAI;KACd,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import React, { useState } from 'react';
|
2
|
+
export const useKeyPress = function (targetKey, ref) {
|
3
|
+
const [keyPressed, setKeyPressed] = useState(false);
|
4
|
+
const downHandler = ({ key }) => {
|
5
|
+
if (key === targetKey) {
|
6
|
+
setKeyPressed(true);
|
7
|
+
}
|
8
|
+
};
|
9
|
+
const upHandler = ({ key }) => {
|
10
|
+
if (key === targetKey) {
|
11
|
+
setKeyPressed(false);
|
12
|
+
}
|
13
|
+
};
|
14
|
+
React.useEffect(() => {
|
15
|
+
ref.current?.addEventListener('keydown', downHandler);
|
16
|
+
ref.current?.addEventListener('keyup', upHandler);
|
17
|
+
return () => {
|
18
|
+
ref.current?.removeEventListener('keydown', downHandler);
|
19
|
+
ref.current?.removeEventListener('keyup', upHandler);
|
20
|
+
};
|
21
|
+
});
|
22
|
+
return keyPressed;
|
23
|
+
};
|
24
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/useKeyPress/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,QAAQ,EAAE,MAAM,OAAO,CAAA;AAElD,MAAM,CAAC,MAAM,WAAW,GAAG,UACzB,SAAiB,EACjB,GAAgC;IAEhC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnD,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE;QAC/C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,aAAa,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,EAAmB,EAAE,EAAE;QAC7C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;QACrD,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YACxD,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
|