@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.
Files changed (255) hide show
  1. package/dist/Box/Box.d.ts +1 -1
  2. package/dist/Chip/Chip.js +1 -1
  3. package/dist/Chip/Chip.js.map +1 -1
  4. package/dist/Datepicker/Datepicker.js +2 -2
  5. package/dist/Datepicker/Datepicker.js.map +1 -1
  6. package/dist/Datepicker/DatesList.js +2 -2
  7. package/dist/Datepicker/DatesList.js.map +1 -1
  8. package/dist/Icon/iconFiles/Aa.d.ts +2 -2
  9. package/dist/Icon/iconFiles/AaInverted.d.ts +2 -2
  10. package/dist/Icon/iconFiles/AccidentalDamage.d.ts +2 -2
  11. package/dist/Icon/iconFiles/AccountBreakdown.d.ts +2 -2
  12. package/dist/Icon/iconFiles/AccountMlp.d.ts +2 -2
  13. package/dist/Icon/iconFiles/ActivityClipboard.d.ts +2 -2
  14. package/dist/Icon/iconFiles/AddOns.d.ts +2 -2
  15. package/dist/Icon/iconFiles/AddressMta.d.ts +2 -2
  16. package/dist/Icon/iconFiles/AlbumAudio.d.ts +2 -2
  17. package/dist/Icon/iconFiles/Alert.d.ts +2 -2
  18. package/dist/Icon/iconFiles/AlertEngine.d.ts +2 -2
  19. package/dist/Icon/iconFiles/Amex.d.ts +2 -2
  20. package/dist/Icon/iconFiles/ApplePay.d.ts +2 -2
  21. package/dist/Icon/iconFiles/ApprovedFile.d.ts +2 -2
  22. package/dist/Icon/iconFiles/Arrow.d.ts +2 -2
  23. package/dist/Icon/iconFiles/At.d.ts +2 -2
  24. package/dist/Icon/iconFiles/Axa.d.ts +2 -2
  25. package/dist/Icon/iconFiles/Bank.d.ts +2 -2
  26. package/dist/Icon/iconFiles/Basket.d.ts +2 -2
  27. package/dist/Icon/iconFiles/Bicycle.d.ts +2 -2
  28. package/dist/Icon/iconFiles/Boost.d.ts +2 -2
  29. package/dist/Icon/iconFiles/Breakdown.d.ts +2 -2
  30. package/dist/Icon/iconFiles/BreakdownAlt.d.ts +2 -2
  31. package/dist/Icon/iconFiles/Briefcase.d.ts +2 -2
  32. package/dist/Icon/iconFiles/Bullets.d.ts +2 -2
  33. package/dist/Icon/iconFiles/Burger.d.ts +2 -2
  34. package/dist/Icon/iconFiles/Calendar.d.ts +2 -2
  35. package/dist/Icon/iconFiles/Camera.d.ts +2 -2
  36. package/dist/Icon/iconFiles/Cancel.d.ts +2 -2
  37. package/dist/Icon/iconFiles/CancelBw.d.ts +2 -2
  38. package/dist/Icon/iconFiles/Car.d.ts +2 -2
  39. package/dist/Icon/iconFiles/CarMta.d.ts +2 -2
  40. package/dist/Icon/iconFiles/CarRepairs.d.ts +2 -2
  41. package/dist/Icon/iconFiles/CarReplacement.d.ts +2 -2
  42. package/dist/Icon/iconFiles/CarUsage.d.ts +2 -2
  43. package/dist/Icon/iconFiles/Card.d.ts +2 -2
  44. package/dist/Icon/iconFiles/Caret.d.ts +2 -2
  45. package/dist/Icon/iconFiles/CaretUp.d.ts +3 -3
  46. package/dist/Icon/iconFiles/Charge.d.ts +2 -2
  47. package/dist/Icon/iconFiles/Chat.d.ts +2 -2
  48. package/dist/Icon/iconFiles/ChatBubble.d.ts +2 -2
  49. package/dist/Icon/iconFiles/Checkout.d.ts +2 -2
  50. package/dist/Icon/iconFiles/CheckoutWithText.d.ts +2 -2
  51. package/dist/Icon/iconFiles/CircleTick.d.ts +2 -2
  52. package/dist/Icon/iconFiles/City.d.ts +2 -2
  53. package/dist/Icon/iconFiles/Claim.d.ts +2 -2
  54. package/dist/Icon/iconFiles/ClaimLine.d.ts +2 -2
  55. package/dist/Icon/iconFiles/Clipboard.d.ts +2 -2
  56. package/dist/Icon/iconFiles/ClipboardCheck.d.ts +2 -2
  57. package/dist/Icon/iconFiles/Clock.d.ts +2 -2
  58. package/dist/Icon/iconFiles/ClosePanel.d.ts +2 -2
  59. package/dist/Icon/iconFiles/Collapse.d.ts +2 -2
  60. package/dist/Icon/iconFiles/Confused.d.ts +2 -2
  61. package/dist/Icon/iconFiles/ConfusedBlue.d.ts +2 -2
  62. package/dist/Icon/iconFiles/ContactEmail.d.ts +2 -2
  63. package/dist/Icon/iconFiles/Copy.d.ts +2 -2
  64. package/dist/Icon/iconFiles/Crop.d.ts +2 -2
  65. package/dist/Icon/iconFiles/Cross.d.ts +2 -2
  66. package/dist/Icon/iconFiles/DashboardHigh.d.ts +2 -2
  67. package/dist/Icon/iconFiles/DirectDebit.d.ts +2 -2
  68. package/dist/Icon/iconFiles/DocDownload.d.ts +2 -2
  69. package/dist/Icon/iconFiles/DocUpload.d.ts +2 -2
  70. package/dist/Icon/iconFiles/Download.d.ts +2 -2
  71. package/dist/Icon/iconFiles/Earth.d.ts +2 -2
  72. package/dist/Icon/iconFiles/Edit.d.ts +2 -2
  73. package/dist/Icon/iconFiles/EditContact.d.ts +2 -2
  74. package/dist/Icon/iconFiles/EditOutline.d.ts +2 -2
  75. package/dist/Icon/iconFiles/EmailFilled.d.ts +2 -2
  76. package/dist/Icon/iconFiles/Engine.d.ts +2 -2
  77. package/dist/Icon/iconFiles/Europe.d.ts +2 -2
  78. package/dist/Icon/iconFiles/Excluded.d.ts +2 -2
  79. package/dist/Icon/iconFiles/Expand.d.ts +2 -2
  80. package/dist/Icon/iconFiles/Facebook.d.ts +2 -2
  81. package/dist/Icon/iconFiles/FallingItems.d.ts +2 -2
  82. package/dist/Icon/iconFiles/Fence.d.ts +2 -2
  83. package/dist/Icon/iconFiles/File.d.ts +2 -2
  84. package/dist/Icon/iconFiles/FileBadge2.d.ts +2 -2
  85. package/dist/Icon/iconFiles/FileCabinet.d.ts +2 -2
  86. package/dist/Icon/iconFiles/Filter.d.ts +2 -2
  87. package/dist/Icon/iconFiles/Fire.d.ts +2 -2
  88. package/dist/Icon/iconFiles/Flag.d.ts +2 -2
  89. package/dist/Icon/iconFiles/Folder.d.ts +2 -2
  90. package/dist/Icon/iconFiles/FraudAlert.d.ts +2 -2
  91. package/dist/Icon/iconFiles/FreezerFood.d.ts +2 -2
  92. package/dist/Icon/iconFiles/Fuel.d.ts +2 -2
  93. package/dist/Icon/iconFiles/Globe.d.ts +2 -2
  94. package/dist/Icon/iconFiles/GooglePlayBadge.d.ts +2 -2
  95. package/dist/Icon/iconFiles/Gpay.d.ts +2 -2
  96. package/dist/Icon/iconFiles/HelpAboutus.d.ts +2 -2
  97. package/dist/Icon/iconFiles/HelpBuypolicy.d.ts +2 -2
  98. package/dist/Icon/iconFiles/HelpCenter.d.ts +2 -2
  99. package/dist/Icon/iconFiles/HelpIdcheck.d.ts +2 -2
  100. package/dist/Icon/iconFiles/HelpManagePolicy.d.ts +2 -2
  101. package/dist/Icon/iconFiles/HelpNcd.d.ts +2 -2
  102. package/dist/Icon/iconFiles/HelpVerification.d.ts +2 -2
  103. package/dist/Icon/iconFiles/HomeExcluded.d.ts +2 -2
  104. package/dist/Icon/iconFiles/House.d.ts +2 -2
  105. package/dist/Icon/iconFiles/HouseTree.d.ts +2 -2
  106. package/dist/Icon/iconFiles/Id.d.ts +2 -2
  107. package/dist/Icon/iconFiles/Inbox.d.ts +2 -2
  108. package/dist/Icon/iconFiles/Included.d.ts +2 -2
  109. package/dist/Icon/iconFiles/Info.d.ts +2 -2
  110. package/dist/Icon/iconFiles/Injury.d.ts +2 -2
  111. package/dist/Icon/iconFiles/Instagram.d.ts +2 -2
  112. package/dist/Icon/iconFiles/Intercom.d.ts +2 -2
  113. package/dist/Icon/iconFiles/Intercom2.d.ts +2 -2
  114. package/dist/Icon/iconFiles/IosStoreBadge.d.ts +2 -2
  115. package/dist/Icon/iconFiles/Iphone.d.ts +2 -2
  116. package/dist/Icon/iconFiles/Jewellery.d.ts +2 -2
  117. package/dist/Icon/iconFiles/Key.d.ts +2 -2
  118. package/dist/Icon/iconFiles/Laptop.d.ts +2 -2
  119. package/dist/Icon/iconFiles/Leaks.d.ts +2 -2
  120. package/dist/Icon/iconFiles/Lightbulb.d.ts +2 -2
  121. package/dist/Icon/iconFiles/Link.d.ts +2 -2
  122. package/dist/Icon/iconFiles/Linkedin.d.ts +2 -2
  123. package/dist/Icon/iconFiles/LiveChat.d.ts +2 -2
  124. package/dist/Icon/iconFiles/LiveChat2.d.ts +2 -2
  125. package/dist/Icon/iconFiles/Location.d.ts +2 -2
  126. package/dist/Icon/iconFiles/LogOut.d.ts +2 -2
  127. package/dist/Icon/iconFiles/ManageDrivers.d.ts +2 -2
  128. package/dist/Icon/iconFiles/ManagePolicy.d.ts +2 -2
  129. package/dist/Icon/iconFiles/Marshmallow.d.ts +2 -2
  130. package/dist/Icon/iconFiles/Mastercard.d.ts +2 -2
  131. package/dist/Icon/iconFiles/Maximise.d.ts +2 -2
  132. package/dist/Icon/iconFiles/MaximiseWindow.d.ts +2 -2
  133. package/dist/Icon/iconFiles/Medical.d.ts +2 -2
  134. package/dist/Icon/iconFiles/Minimise.d.ts +2 -2
  135. package/dist/Icon/iconFiles/Minus.d.ts +2 -2
  136. package/dist/Icon/iconFiles/MinusCircle.d.ts +2 -2
  137. package/dist/Icon/iconFiles/MoneyBag.d.ts +2 -2
  138. package/dist/Icon/iconFiles/MoneyHeart.d.ts +2 -2
  139. package/dist/Icon/iconFiles/MoreDots.d.ts +2 -2
  140. package/dist/Icon/iconFiles/Mulsanne.d.ts +2 -2
  141. package/dist/Icon/iconFiles/NewWindow.d.ts +2 -2
  142. package/dist/Icon/iconFiles/NoExcess.d.ts +2 -2
  143. package/dist/Icon/iconFiles/Notes.d.ts +2 -2
  144. package/dist/Icon/iconFiles/Notification.d.ts +2 -2
  145. package/dist/Icon/iconFiles/Onfido.d.ts +2 -2
  146. package/dist/Icon/iconFiles/OpenPanel.d.ts +2 -2
  147. package/dist/Icon/iconFiles/Other.d.ts +2 -2
  148. package/dist/Icon/iconFiles/OutOfHome.d.ts +2 -2
  149. package/dist/Icon/iconFiles/Padlock.d.ts +2 -2
  150. package/dist/Icon/iconFiles/PadlockOutline.d.ts +2 -2
  151. package/dist/Icon/iconFiles/People.d.ts +2 -2
  152. package/dist/Icon/iconFiles/Person.d.ts +2 -2
  153. package/dist/Icon/iconFiles/PhoneFilled.d.ts +2 -2
  154. package/dist/Icon/iconFiles/PhoneOutline.d.ts +2 -2
  155. package/dist/Icon/iconFiles/Photo.d.ts +2 -2
  156. package/dist/Icon/iconFiles/PinCode.d.ts +2 -2
  157. package/dist/Icon/iconFiles/Plus.d.ts +2 -2
  158. package/dist/Icon/iconFiles/PlusCircle.d.ts +2 -2
  159. package/dist/Icon/iconFiles/Policy.d.ts +2 -2
  160. package/dist/Icon/iconFiles/PolicyDetails.d.ts +2 -2
  161. package/dist/Icon/iconFiles/PolicyDoc.d.ts +2 -2
  162. package/dist/Icon/iconFiles/PolicyDocs.d.ts +2 -2
  163. package/dist/Icon/iconFiles/PoundBold.d.ts +2 -2
  164. package/dist/Icon/iconFiles/PoundFilledCircle.d.ts +2 -2
  165. package/dist/Icon/iconFiles/PoundMedium.d.ts +2 -2
  166. package/dist/Icon/iconFiles/PoundOutline.d.ts +2 -2
  167. package/dist/Icon/iconFiles/PoundRegular.d.ts +2 -2
  168. package/dist/Icon/iconFiles/Premfina.d.ts +2 -2
  169. package/dist/Icon/iconFiles/Profile.d.ts +2 -2
  170. package/dist/Icon/iconFiles/Prohibited.d.ts +2 -2
  171. package/dist/Icon/iconFiles/Property.d.ts +2 -2
  172. package/dist/Icon/iconFiles/QuestionHelp.d.ts +2 -2
  173. package/dist/Icon/iconFiles/Rac.d.ts +2 -2
  174. package/dist/Icon/iconFiles/Ravelin.d.ts +2 -2
  175. package/dist/Icon/iconFiles/ReferAFriend.d.ts +2 -2
  176. package/dist/Icon/iconFiles/Refund.d.ts +2 -2
  177. package/dist/Icon/iconFiles/RegPlate.d.ts +2 -2
  178. package/dist/Icon/iconFiles/Renewal.d.ts +2 -2
  179. package/dist/Icon/iconFiles/RenewalLine.d.ts +2 -2
  180. package/dist/Icon/iconFiles/RepeatCharge.d.ts +2 -2
  181. package/dist/Icon/iconFiles/Return.d.ts +2 -2
  182. package/dist/Icon/iconFiles/ScheduleQuote.d.ts +2 -2
  183. package/dist/Icon/iconFiles/Search.d.ts +2 -2
  184. package/dist/Icon/iconFiles/Security.d.ts +2 -2
  185. package/dist/Icon/iconFiles/SendMessage.d.ts +2 -2
  186. package/dist/Icon/iconFiles/Settings.d.ts +2 -2
  187. package/dist/Icon/iconFiles/Shield.d.ts +2 -2
  188. package/dist/Icon/iconFiles/ShieldCheck.d.ts +2 -2
  189. package/dist/Icon/iconFiles/Shopping.d.ts +2 -2
  190. package/dist/Icon/iconFiles/Sofa.d.ts +2 -2
  191. package/dist/Icon/iconFiles/Stack.d.ts +2 -2
  192. package/dist/Icon/iconFiles/Storm.d.ts +2 -2
  193. package/dist/Icon/iconFiles/Stripe.d.ts +2 -2
  194. package/dist/Icon/iconFiles/Subsidence.d.ts +2 -2
  195. package/dist/Icon/iconFiles/Theft.d.ts +2 -2
  196. package/dist/Icon/iconFiles/ThumbsUp.d.ts +2 -2
  197. package/dist/Icon/iconFiles/Tick.d.ts +2 -2
  198. package/dist/Icon/iconFiles/TowTruck.d.ts +2 -2
  199. package/dist/Icon/iconFiles/TraceAndAccess.d.ts +2 -2
  200. package/dist/Icon/iconFiles/Training.d.ts +2 -2
  201. package/dist/Icon/iconFiles/Trash.d.ts +2 -2
  202. package/dist/Icon/iconFiles/Twitter.d.ts +2 -2
  203. package/dist/Icon/iconFiles/UpDown.d.ts +2 -2
  204. package/dist/Icon/iconFiles/Upload.d.ts +2 -2
  205. package/dist/Icon/iconFiles/UploadDocuments.d.ts +2 -2
  206. package/dist/Icon/iconFiles/UploadEmail.d.ts +2 -2
  207. package/dist/Icon/iconFiles/Vandalism.d.ts +2 -2
  208. package/dist/Icon/iconFiles/Village.d.ts +2 -2
  209. package/dist/Icon/iconFiles/Visa.d.ts +2 -2
  210. package/dist/Icon/iconFiles/Warning.d.ts +2 -2
  211. package/dist/Icon/iconFiles/Watch.d.ts +2 -2
  212. package/dist/Icon/iconFiles/Wave.d.ts +2 -2
  213. package/dist/Icon/iconFiles/Wellbeing.d.ts +2 -2
  214. package/dist/Icon/iconFiles/WheelFlat.d.ts +2 -2
  215. package/dist/Icon/iconFiles/Windscreen.d.ts +2 -2
  216. package/dist/Icon/iconFiles/WindscreenRepair.d.ts +2 -2
  217. package/dist/Icon/iconFiles/WindscreenReplacement.d.ts +2 -2
  218. package/dist/Icon/iconsList.d.ts +213 -213
  219. package/dist/IconStrict/IconStrict.d.ts +2 -2
  220. package/dist/IconStrict/IconStrict.js +7 -8
  221. package/dist/IconStrict/IconStrict.js.map +1 -1
  222. package/dist/NumberInput/NumberInput.js +2 -2
  223. package/dist/NumberInput/NumberInput.js.map +1 -1
  224. package/dist/Pagination/Pagination.js +2 -2
  225. package/dist/Pagination/Pagination.js.map +1 -1
  226. package/dist/RichTextEditor/plugins/AutoLinkPlugin.d.ts +2 -2
  227. package/dist/RichTextEditor/plugins/ToolbarPlugin.d.ts +2 -2
  228. package/dist/SearchInput/SearchInput.d.ts +19 -0
  229. package/dist/SearchInput/SearchInput.js +80 -19
  230. package/dist/SearchInput/SearchInput.js.map +1 -1
  231. package/dist/SearchInput/components/SearchOptions.d.ts +6 -0
  232. package/dist/SearchInput/components/SearchOptions.js +51 -16
  233. package/dist/SearchInput/components/SearchOptions.js.map +1 -1
  234. package/dist/SegmentedControl/SegmentedControl.d.ts +2 -2
  235. package/dist/SegmentedControl/ToggleButton.d.ts +2 -2
  236. package/dist/SegmentedControl/ToggleButton.js +1 -1
  237. package/dist/SegmentedControl/ToggleButton.js.map +1 -1
  238. package/dist/Table/Table.d.ts +2 -2
  239. package/dist/Table/components/RowActions.d.ts +2 -2
  240. package/dist/Table/components/TableHeader.d.ts +2 -2
  241. package/dist/Table/components/TableRow.d.ts +2 -2
  242. package/dist/Table/components/commonComponents.d.ts +4 -4
  243. package/dist/Toggle/Toggle.js +3 -3
  244. package/dist/Toggle/Toggle.js.map +1 -1
  245. package/dist/Tooltip/Tooltip.d.ts +3 -3
  246. package/dist/fields/Field/Field.d.ts +2 -2
  247. package/dist/fields/Fieldset/Fieldset.d.ts +2 -2
  248. package/dist/fields/components/CommonInput.d.ts +5 -5
  249. package/dist/fields/components/InternalField.d.ts +2 -2
  250. package/dist/fields/components/Placeholder.d.ts +2 -2
  251. package/dist/hooks/useClickOutside/index.js.map +1 -1
  252. package/dist/hooks/useKeyPress/index.d.ts +2 -0
  253. package/dist/hooks/useKeyPress/index.js +24 -0
  254. package/dist/hooks/useKeyPress/index.js.map +1 -0
  255. package/package.json +11 -1
@@ -1,12 +1,25 @@
1
- import React, { forwardRef, useMemo, useState, } from 'react';
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
- import Fuse from 'fuse.js';
9
- 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, ...otherProps }, ref) {
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
- keys: searchKeys,
21
- findAllMatches: true,
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
- return (React.createElement(Field, { className: className, renderAsTitle: renderAsTitle, htmlFor: id, ...otherProps },
64
- React.createElement(Box, { flex: true, alignItems: "center", justifyContent: "flex-start" },
65
- showIcon && React.createElement(StyledFrontIcon, { render: "search", color: "sesame" }),
66
- React.createElement(Input, { id: id, name: name, ref: ref, placeholder: placeholder, "$frontIcon": showIcon ? 'search' : undefined, "$fallbackStyle": fallbackStyle, autoComplete: "off", value: displayedInputText, onChange: handleInputChange, selected: isSelected, onBlur: (e) => {
67
- if (displayedInputText === '') {
68
- setSearchQuery(null);
69
- }
70
- onBlur?.(e);
71
- } })),
72
- showOptions && (React.createElement(SearchOptions, { displayedList: filteredList, searchTerm: searchQuery || '', onSelect: handleSelect, positionRelative: resultsRelativePosition, resultsBorder: resultsBorder, onNotFound: onNotFound, notFoundComponent: notFoundComponent }))));
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":"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"}
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 { darken } from 'polished';
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) => (React.createElement("li", { key: i, onClick: () => onSelect(el) }, el.label)))) : (React.createElement(EmptyResults, { onNotFound: onNotFound, searchTerm: searchTerm, notFoundComponent: notFoundComponent }))))));
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.custard};
45
+ background-color: ${theme.colors.cream};
31
46
  border-radius: 12px;
32
47
  margin-top: 14px;
33
48
  z-index: 1000;
34
- ${({ $resultsBorder }) => $resultsBorder &&
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: ${darken(0.1, theme.colors.custard)};
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,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,KAAwB,MAAM,OAAO,CAAA;AAC5C,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAiB7C,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EACpD,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,UAAU,EACV,iBAAiB,GAClB,EAAE,EAAE;IACH,OAAO,CACL,oBAAC,uBAAuB;QACtB,oBAAC,sBAAsB,yBAAoB,gBAAgB;YACzD,oBAAC,WAAW,sBAAiB,aAAa,IACvC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CACtB,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,4BAAI,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IACpC,EAAE,CAAC,KAAK,CACN,CACN,CAAC,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,YAAY,IACX,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,GACpC,CACH,CACW,CACS,CACD,CAC3B,CAAA;AACH,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAExC;;;IAGG,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,iBAAiB,IAAI,qBAAqB;;;;;;;;CAQzE,CAAA;AAED,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAE5B;;;;;;sBAMqB,KAAK,CAAC,MAAM,CAAC,OAAO;;;;IAItC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CACvB,cAAc;IACd,GAAG,CAAA;0BACmB,KAAK,CAAC,MAAM,CAAC,OAAO;KACzC;;;;;;aAMQ,KAAK,CAAC,MAAM,CAAC,SAAS;;;MAG7B,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CACvB,cAAc,IAAI,4BAA4B,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG;;;QAGnE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,cAAc,IAAI,oBAAoB;;;;0BAI5C,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;;;CAG1D,CAAA;AAED,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;;CAE1C,CAAA"}
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,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAW/C,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"}
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"}
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
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
- /// <reference types="react" />
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
- /// <reference types="react" />
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
- /// <reference types="react" />
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").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>, never>>;
5
- export declare const StyledHeaderCell: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, TransientProps<TableStylesProps>>>;
6
- export declare const StyledCell: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, TransientProps<TableStylesProps>>>;
7
- export declare const StyledRow: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, TransientProps<TableStylesProps>>>;
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;
@@ -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", id: id, ...marginProps },
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,EAAE,EAAE,EAAE,KAAM,WAAW;QACjD,oBAAC,QAAQ,IACP,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,GACD;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"}
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").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
17
- export declare const Tip: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
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
- /// <reference types="react" />
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").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, IInput>>;
17
- export declare const StyledFrontIcon: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<{
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").IStyledComponent<"web", import("styled-components/dist/types").Substitute<{
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
- /// <reference types="react" />
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;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGtD,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"}
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,2 @@
1
+ import { RefObject } from 'react';
2
+ export declare const useKeyPress: (targetKey: string, ref: RefObject<HTMLInputElement>) => boolean;
@@ -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"}