@transferwise/components 46.155.1 → 46.157.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/build/Calendar/Calendar.constants.js +10 -0
  2. package/build/Calendar/Calendar.constants.js.map +1 -0
  3. package/build/Calendar/Calendar.constants.mjs +8 -0
  4. package/build/Calendar/Calendar.constants.mjs.map +1 -0
  5. package/build/Calendar/Calendar.js +121 -17
  6. package/build/Calendar/Calendar.js.map +1 -1
  7. package/build/Calendar/Calendar.messages.js +12 -0
  8. package/build/Calendar/Calendar.messages.js.map +1 -1
  9. package/build/Calendar/Calendar.messages.mjs +12 -0
  10. package/build/Calendar/Calendar.messages.mjs.map +1 -1
  11. package/build/Calendar/Calendar.mjs +122 -18
  12. package/build/Calendar/Calendar.mjs.map +1 -1
  13. package/build/Calendar/DateHeader/DateHeader.js +5 -1
  14. package/build/Calendar/DateHeader/DateHeader.js.map +1 -1
  15. package/build/Calendar/DateHeader/DateHeader.mjs +5 -1
  16. package/build/Calendar/DateHeader/DateHeader.mjs.map +1 -1
  17. package/build/Calendar/DayCalendar/DayCalendar.js +20 -2
  18. package/build/Calendar/DayCalendar/DayCalendar.js.map +1 -1
  19. package/build/Calendar/DayCalendar/DayCalendar.mjs +20 -2
  20. package/build/Calendar/DayCalendar/DayCalendar.mjs.map +1 -1
  21. package/build/Calendar/DayCalendar/Table/DayCalendarTable.js +60 -19
  22. package/build/Calendar/DayCalendar/Table/DayCalendarTable.js.map +1 -1
  23. package/build/Calendar/DayCalendar/Table/DayCalendarTable.mjs +60 -19
  24. package/build/Calendar/DayCalendar/Table/DayCalendarTable.mjs.map +1 -1
  25. package/build/Calendar/MonthCalendar/MonthCalendar.js +6 -0
  26. package/build/Calendar/MonthCalendar/MonthCalendar.js.map +1 -1
  27. package/build/Calendar/MonthCalendar/MonthCalendar.mjs +6 -0
  28. package/build/Calendar/MonthCalendar/MonthCalendar.mjs.map +1 -1
  29. package/build/Calendar/MonthCalendar/Table/MonthCalendarTable.js +8 -3
  30. package/build/Calendar/MonthCalendar/Table/MonthCalendarTable.js.map +1 -1
  31. package/build/Calendar/MonthCalendar/Table/MonthCalendarTable.mjs +8 -3
  32. package/build/Calendar/MonthCalendar/Table/MonthCalendarTable.mjs.map +1 -1
  33. package/build/Calendar/TableLink/TableLink.js +95 -0
  34. package/build/Calendar/TableLink/TableLink.js.map +1 -0
  35. package/build/Calendar/TableLink/TableLink.mjs +91 -0
  36. package/build/Calendar/TableLink/TableLink.mjs.map +1 -0
  37. package/build/Calendar/YearCalendar/Table/YearCalendarTable.js +8 -3
  38. package/build/Calendar/YearCalendar/Table/YearCalendarTable.js.map +1 -1
  39. package/build/Calendar/YearCalendar/Table/YearCalendarTable.mjs +8 -3
  40. package/build/Calendar/YearCalendar/Table/YearCalendarTable.mjs.map +1 -1
  41. package/build/Calendar/YearCalendar/YearCalendar.js +7 -0
  42. package/build/Calendar/YearCalendar/YearCalendar.js.map +1 -1
  43. package/build/Calendar/YearCalendar/YearCalendar.mjs +7 -0
  44. package/build/Calendar/YearCalendar/YearCalendar.mjs.map +1 -1
  45. package/build/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.js +24 -0
  46. package/build/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.js.map +1 -0
  47. package/build/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.mjs +22 -0
  48. package/build/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.mjs.map +1 -0
  49. package/build/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.js +33 -0
  50. package/build/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.js.map +1 -0
  51. package/build/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.mjs +31 -0
  52. package/build/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.mjs.map +1 -0
  53. package/build/Calendar/_helpers/isDateDisabled/isDateDisabled.js +40 -0
  54. package/build/Calendar/_helpers/isDateDisabled/isDateDisabled.js.map +1 -0
  55. package/build/Calendar/_helpers/isDateDisabled/isDateDisabled.mjs +38 -0
  56. package/build/Calendar/_helpers/isDateDisabled/isDateDisabled.mjs.map +1 -0
  57. package/build/DateLookup/DateLookup.js +20 -9
  58. package/build/DateLookup/DateLookup.js.map +1 -1
  59. package/build/DateLookup/DateLookup.mjs +20 -9
  60. package/build/DateLookup/DateLookup.mjs.map +1 -1
  61. package/build/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.js +3 -5
  62. package/build/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.js.map +1 -1
  63. package/build/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.mjs +3 -5
  64. package/build/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.mjs.map +1 -1
  65. package/build/Inputs/SelectInput/TriggerButton/SelectInputTriggerButton.js.map +1 -1
  66. package/build/Inputs/SelectInput/TriggerButton/SelectInputTriggerButton.mjs.map +1 -1
  67. package/build/Markup/Markup.js +138 -0
  68. package/build/Markup/Markup.js.map +1 -0
  69. package/build/Markup/Markup.mjs +133 -0
  70. package/build/Markup/Markup.mjs.map +1 -0
  71. package/build/Markup/constants.js +21 -0
  72. package/build/Markup/constants.js.map +1 -0
  73. package/build/Markup/constants.mjs +15 -0
  74. package/build/Markup/constants.mjs.map +1 -0
  75. package/build/Markup/utils/parseMarkup.js +263 -0
  76. package/build/Markup/utils/parseMarkup.js.map +1 -0
  77. package/build/Markup/utils/parseMarkup.mjs +258 -0
  78. package/build/Markup/utils/parseMarkup.mjs.map +1 -0
  79. package/build/Markup/utils/sanitise.js +111 -0
  80. package/build/Markup/utils/sanitise.js.map +1 -0
  81. package/build/Markup/utils/sanitise.mjs +108 -0
  82. package/build/Markup/utils/sanitise.mjs.map +1 -0
  83. package/build/Typeahead/Typeahead.js +53 -27
  84. package/build/Typeahead/Typeahead.js.map +1 -1
  85. package/build/Typeahead/Typeahead.messages.js +3 -0
  86. package/build/Typeahead/Typeahead.messages.js.map +1 -1
  87. package/build/Typeahead/Typeahead.messages.mjs +3 -0
  88. package/build/Typeahead/Typeahead.messages.mjs.map +1 -1
  89. package/build/Typeahead/Typeahead.mjs +53 -27
  90. package/build/Typeahead/Typeahead.mjs.map +1 -1
  91. package/build/Typeahead/TypeaheadInput/TypeaheadInput.js +2 -2
  92. package/build/Typeahead/TypeaheadInput/TypeaheadInput.js.map +1 -1
  93. package/build/Typeahead/TypeaheadInput/TypeaheadInput.mjs +2 -2
  94. package/build/Typeahead/TypeaheadInput/TypeaheadInput.mjs.map +1 -1
  95. package/build/Typeahead/TypeaheadOption/TypeaheadOption.js +3 -1
  96. package/build/Typeahead/TypeaheadOption/TypeaheadOption.js.map +1 -1
  97. package/build/Typeahead/TypeaheadOption/TypeaheadOption.mjs +3 -1
  98. package/build/Typeahead/TypeaheadOption/TypeaheadOption.mjs.map +1 -1
  99. package/build/i18n/en.json +5 -0
  100. package/build/i18n/en.json.js +5 -0
  101. package/build/i18n/en.json.js.map +1 -1
  102. package/build/i18n/en.json.mjs +5 -0
  103. package/build/i18n/en.json.mjs.map +1 -1
  104. package/build/i18n/hu.json +1 -1
  105. package/build/i18n/hu.json.js +1 -1
  106. package/build/i18n/hu.json.mjs +1 -1
  107. package/build/index.js +4 -2
  108. package/build/index.js.map +1 -1
  109. package/build/index.mjs +2 -1
  110. package/build/index.mjs.map +1 -1
  111. package/build/main.css +168 -43
  112. package/build/styles/Calendar/Calendar.css +112 -37
  113. package/build/styles/Calendar/TableLink/TableLink.css +115 -0
  114. package/build/styles/Markup/Markup.css +28 -0
  115. package/build/styles/Markup/_stories/Vulnerability/Vulnerability.css +69 -0
  116. package/build/styles/Typeahead/Typeahead.css +4 -0
  117. package/build/styles/Typeahead/TypeaheadOption/TypeaheadOption.css +5 -0
  118. package/build/styles/main.css +168 -43
  119. package/build/types/Calendar/Calendar.constants.d.ts +2 -0
  120. package/build/types/Calendar/Calendar.constants.d.ts.map +1 -0
  121. package/build/types/Calendar/Calendar.d.ts +16 -3
  122. package/build/types/Calendar/Calendar.d.ts.map +1 -1
  123. package/build/types/Calendar/Calendar.messages.d.ts +20 -0
  124. package/build/types/Calendar/Calendar.messages.d.ts.map +1 -1
  125. package/build/types/Calendar/Calendar.types.d.ts +32 -0
  126. package/build/types/Calendar/Calendar.types.d.ts.map +1 -0
  127. package/build/types/Calendar/DateHeader/DateHeader.d.ts +2 -0
  128. package/build/types/Calendar/DateHeader/DateHeader.d.ts.map +1 -1
  129. package/build/types/Calendar/DayCalendar/DayCalendar.d.ts +7 -1
  130. package/build/types/Calendar/DayCalendar/DayCalendar.d.ts.map +1 -1
  131. package/build/types/Calendar/DayCalendar/Table/DayCalendarTable.d.ts +6 -0
  132. package/build/types/Calendar/DayCalendar/Table/DayCalendarTable.d.ts.map +1 -1
  133. package/build/types/Calendar/MonthCalendar/MonthCalendar.d.ts +1 -0
  134. package/build/types/Calendar/MonthCalendar/MonthCalendar.d.ts.map +1 -1
  135. package/build/types/Calendar/MonthCalendar/Table/MonthCalendarTable.d.ts +2 -1
  136. package/build/types/Calendar/MonthCalendar/Table/MonthCalendarTable.d.ts.map +1 -1
  137. package/build/types/Calendar/{tableLink → TableLink}/TableLink.d.ts +5 -1
  138. package/build/types/Calendar/TableLink/TableLink.d.ts.map +1 -0
  139. package/build/types/Calendar/TableLink/index.d.ts.map +1 -0
  140. package/build/types/Calendar/YearCalendar/Table/YearCalendarTable.d.ts +2 -1
  141. package/build/types/Calendar/YearCalendar/Table/YearCalendarTable.d.ts.map +1 -1
  142. package/build/types/Calendar/YearCalendar/YearCalendar.d.ts +1 -0
  143. package/build/types/Calendar/YearCalendar/YearCalendar.d.ts.map +1 -1
  144. package/build/types/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.d.ts +8 -0
  145. package/build/types/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.d.ts.map +1 -0
  146. package/build/types/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.d.ts +3 -0
  147. package/build/types/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.d.ts.map +1 -0
  148. package/build/types/Calendar/_helpers/index.d.ts +4 -0
  149. package/build/types/Calendar/_helpers/index.d.ts.map +1 -0
  150. package/build/types/Calendar/_helpers/isDateDisabled/isDateDisabled.d.ts +3 -0
  151. package/build/types/Calendar/_helpers/isDateDisabled/isDateDisabled.d.ts.map +1 -0
  152. package/build/types/Calendar/index.d.ts +1 -0
  153. package/build/types/Calendar/index.d.ts.map +1 -1
  154. package/build/types/DateLookup/DateLookup.d.ts +24 -5
  155. package/build/types/DateLookup/DateLookup.d.ts.map +1 -1
  156. package/build/types/DateLookup/index.d.ts +1 -0
  157. package/build/types/DateLookup/index.d.ts.map +1 -1
  158. package/build/types/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.d.ts +6 -4
  159. package/build/types/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.d.ts.map +1 -1
  160. package/build/types/Inputs/SelectInput/TriggerButton/SelectInputTriggerButton.d.ts +1 -1
  161. package/build/types/Inputs/SelectInput/TriggerButton/SelectInputTriggerButton.d.ts.map +1 -1
  162. package/build/types/Markup/Markup.d.ts +18 -0
  163. package/build/types/Markup/Markup.d.ts.map +1 -0
  164. package/build/types/Markup/Markup.types.d.ts +77 -0
  165. package/build/types/Markup/Markup.types.d.ts.map +1 -0
  166. package/build/types/Markup/_stories/Vulnerability/Vulnerability.d.ts +12 -0
  167. package/build/types/Markup/_stories/Vulnerability/Vulnerability.d.ts.map +1 -0
  168. package/build/types/Markup/constants.d.ts +6 -0
  169. package/build/types/Markup/constants.d.ts.map +1 -0
  170. package/build/types/Markup/index.d.ts +3 -0
  171. package/build/types/Markup/index.d.ts.map +1 -0
  172. package/build/types/Markup/utils/parseMarkup.d.ts +8 -0
  173. package/build/types/Markup/utils/parseMarkup.d.ts.map +1 -0
  174. package/build/types/Markup/utils/sanitise.d.ts +4 -0
  175. package/build/types/Markup/utils/sanitise.d.ts.map +1 -0
  176. package/build/types/Typeahead/Typeahead.d.ts.map +1 -1
  177. package/build/types/Typeahead/Typeahead.messages.d.ts +5 -0
  178. package/build/types/Typeahead/Typeahead.messages.d.ts.map +1 -1
  179. package/build/types/Typeahead/TypeaheadInput/TypeaheadInput.d.ts.map +1 -1
  180. package/build/types/Typeahead/TypeaheadOption/TypeaheadOption.d.ts +1 -0
  181. package/build/types/Typeahead/TypeaheadOption/TypeaheadOption.d.ts.map +1 -1
  182. package/build/types/index.d.ts +5 -2
  183. package/build/types/index.d.ts.map +1 -1
  184. package/build/types/test-utils/index.d.ts +10 -0
  185. package/build/types/test-utils/index.d.ts.map +1 -1
  186. package/package.json +1 -1
  187. package/src/Calendar/Calendar.constants.ts +5 -0
  188. package/src/Calendar/Calendar.css +112 -37
  189. package/src/Calendar/Calendar.disabledDates.test.tsx +610 -0
  190. package/src/Calendar/Calendar.less +5 -35
  191. package/src/Calendar/Calendar.messages.ts +21 -0
  192. package/src/Calendar/Calendar.test.tsx +342 -32
  193. package/src/Calendar/Calendar.tsx +169 -19
  194. package/src/Calendar/Calendar.types.ts +35 -0
  195. package/src/Calendar/DateHeader/DateHeader.tsx +6 -0
  196. package/src/Calendar/DayCalendar/DayCalendar.tsx +39 -1
  197. package/src/Calendar/DayCalendar/Table/DayCalendarTable.tsx +67 -27
  198. package/src/Calendar/MonthCalendar/MonthCalendar.tsx +8 -0
  199. package/src/Calendar/MonthCalendar/Table/MonthCalendarTable.tsx +15 -3
  200. package/src/Calendar/TableLink/TableLink.css +115 -0
  201. package/src/Calendar/TableLink/TableLink.less +68 -0
  202. package/src/Calendar/TableLink/TableLink.tsx +117 -0
  203. package/src/Calendar/YearCalendar/Table/YearCalendarTable.tsx +15 -3
  204. package/src/Calendar/YearCalendar/YearCalendar.tsx +9 -0
  205. package/src/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.test.ts +90 -0
  206. package/src/Calendar/_helpers/clampToDayViewBoundary/clampToDayViewBoundary.ts +25 -0
  207. package/src/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.test.ts +98 -0
  208. package/src/Calendar/_helpers/hasDisabledDatesInMonth/hasDisabledDatesInMonth.ts +45 -0
  209. package/src/Calendar/_helpers/index.ts +3 -0
  210. package/src/Calendar/_helpers/isDateDisabled/isDateDisabled.test.ts +169 -0
  211. package/src/Calendar/_helpers/isDateDisabled/isDateDisabled.ts +59 -0
  212. package/src/Calendar/_stories/Calendar.accessibility.docs.mdx +118 -0
  213. package/src/Calendar/_stories/Calendar.story.tsx +144 -4
  214. package/src/Calendar/_stories/Calendar.test.story.tsx +114 -0
  215. package/src/Calendar/index.ts +7 -0
  216. package/src/DateLookup/DateLookup.disabledDates.test.tsx +312 -0
  217. package/src/DateLookup/DateLookup.test.tsx +34 -37
  218. package/src/DateLookup/DateLookup.tsx +37 -13
  219. package/src/DateLookup/_stories/DateLookup.accessibility.docs.mdx +108 -0
  220. package/src/DateLookup/_stories/DateLookup.story.tsx +126 -2
  221. package/src/DateLookup/index.ts +6 -0
  222. package/src/ExpressiveMoneyInput/CurrencySelector/CurrencySelector.tsx +12 -13
  223. package/src/Inputs/SelectInput/SelectInput.test.tsx +37 -0
  224. package/src/Inputs/SelectInput/TriggerButton/SelectInputTriggerButton.tsx +1 -1
  225. package/src/Markup/Markup.css +28 -0
  226. package/src/Markup/Markup.injection.test.tsx +163 -0
  227. package/src/Markup/Markup.less +29 -0
  228. package/src/Markup/Markup.test.tsx +502 -0
  229. package/src/Markup/Markup.tsx +175 -0
  230. package/src/Markup/Markup.types.ts +62 -0
  231. package/src/Markup/_stories/Markup.docs.mdx +75 -0
  232. package/src/Markup/_stories/Markup.security.docs.mdx +343 -0
  233. package/src/Markup/_stories/Markup.story.tsx +266 -0
  234. package/src/Markup/_stories/Vulnerability/Vulnerability.css +69 -0
  235. package/src/Markup/_stories/Vulnerability/Vulnerability.tsx +30 -0
  236. package/src/Markup/constants.ts +23 -0
  237. package/src/Markup/index.ts +2 -0
  238. package/src/Markup/utils/parseMarkup.test.ts +706 -0
  239. package/src/Markup/utils/parseMarkup.ts +265 -0
  240. package/src/Markup/utils/sanitise.test.ts +499 -0
  241. package/src/Markup/utils/sanitise.ts +129 -0
  242. package/src/Typeahead/Typeahead.css +4 -0
  243. package/src/Typeahead/Typeahead.less +2 -0
  244. package/src/Typeahead/Typeahead.messages.ts +5 -0
  245. package/src/Typeahead/Typeahead.test.tsx +80 -3
  246. package/src/Typeahead/Typeahead.tsx +50 -27
  247. package/src/Typeahead/TypeaheadInput/TypeaheadInput.tsx +2 -6
  248. package/src/Typeahead/TypeaheadOption/TypeaheadOption.css +5 -0
  249. package/src/Typeahead/TypeaheadOption/TypeaheadOption.less +9 -0
  250. package/src/Typeahead/TypeaheadOption/TypeaheadOption.tsx +4 -2
  251. package/src/i18n/en.json +4 -0
  252. package/src/i18n/hu.json +1 -1
  253. package/src/index.ts +5 -2
  254. package/src/main.css +168 -43
  255. package/src/main.less +1 -0
  256. package/build/Calendar/tableLink/TableLink.js +0 -61
  257. package/build/Calendar/tableLink/TableLink.js.map +0 -1
  258. package/build/Calendar/tableLink/TableLink.mjs +0 -57
  259. package/build/Calendar/tableLink/TableLink.mjs.map +0 -1
  260. package/build/types/Calendar/tableLink/TableLink.d.ts.map +0 -1
  261. package/build/types/Calendar/tableLink/index.d.ts.map +0 -1
  262. package/src/Calendar/tableLink/TableLink.tsx +0 -77
  263. /package/build/types/Calendar/{tableLink → TableLink}/index.d.ts +0 -0
  264. /package/src/Calendar/{tableLink → TableLink}/index.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Typeahead.mjs","sources":["../../src/Typeahead/Typeahead.tsx"],"sourcesContent":["import { Cross as CrossIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { DebouncedFunc } from 'lodash';\nimport clamp from 'lodash.clamp';\nimport debounce from 'lodash.debounce';\nimport React, { Component, ReactNode } from 'react';\nimport { injectIntl, type WrappedComponentProps } from '../common/injectIntl';\n\nimport { Chip } from '../Chips';\nimport {\n Size,\n Sentiment,\n SizeMedium,\n SizeLarge,\n addClickClassToDocumentOnIos,\n removeClickClassFromDocumentOnIos,\n stopPropagation,\n} from '../common';\nimport { InlinePrompt, InlinePromptProps } from '../Prompt';\nimport { withInputAttributes, WithInputAttributesProps } from '../Inputs/contexts';\n\nimport TypeaheadInput from './TypeaheadInput/TypeaheadInput';\nimport TypeaheadOption from './TypeaheadOption/TypeaheadOption';\nimport messages from './Typeahead.messages';\n\nconst DEFAULT_MIN_QUERY_LENGTH = 3;\nconst SEARCH_DELAY = 200;\n\nexport type TypeaheadOption<T = string> = {\n label: string;\n note?: string;\n secondary?: string;\n value?: T;\n clearQueryOnSelect?: boolean;\n keepFocusOnSelect?: boolean;\n};\n\nexport interface TypeaheadProps<T> extends Partial<WrappedComponentProps> {\n id: string;\n name: string;\n addon?: ReactNode;\n /**\n * @deprecated Use [`Field`](?path=/docs/forms-field--docs) component and its `message` and `sentiment` props instead.\n * @deprecated `error`, `info` and `success` are deprecated as alert types and will be soon removed.\n */\n alert?: {\n message: InlinePromptProps['children'];\n type?:\n | InlinePromptProps['sentiment']\n | `${Sentiment.ERROR}`\n | `${Sentiment.INFO}`\n | `${Sentiment.SUCCESS}`;\n };\n /** @default false */\n allowNew?: boolean;\n /** @default true */\n autoFillOnBlur?: boolean;\n /** @default false */\n autoFocus?: boolean;\n /** @default [] */\n chipSeparators?: readonly string[];\n /** @default true */\n clearable?: boolean;\n footer?: ReactNode;\n /** @default [] */\n initialValue?: readonly TypeaheadOption<T>[];\n /** @default 'new-password' */\n inputAutoComplete?: string;\n maxHeight?: number;\n /** @default 3 */\n minQueryLength?: number;\n placeholder?: string;\n /** @default false */\n multiple?: boolean;\n options: readonly TypeaheadOption<T>[];\n /** @default 200 */\n searchDelay?: number;\n /** @default true */\n showSuggestions?: boolean;\n /** @default true */\n showNewEntry?: boolean;\n /** @default 'md' */\n size?: SizeMedium | SizeLarge;\n onBlur?: () => void;\n onChange: (options: TypeaheadOption<T>[]) => void;\n onFocus?: () => void;\n onInputChange?: (query: string) => void;\n onSearch?: (query: string) => void;\n validateChip?: (chip: TypeaheadOption<T>) => boolean;\n}\n\ntype TypeaheadPropsWithInputAttributes<T> = TypeaheadProps<T> &\n Partial<WithInputAttributesProps> &\n WrappedComponentProps;\n\ntype TypeaheadState<T> = {\n selected: readonly TypeaheadOption<T>[];\n keyboardFocusedOptionIndex: number | null;\n errorState: boolean;\n query: string;\n optionsShown: boolean;\n isFocused: boolean;\n};\n\nclass Typeahead<T> extends Component<TypeaheadPropsWithInputAttributes<T>, TypeaheadState<T>> {\n declare props: TypeaheadPropsWithInputAttributes<T> &\n Required<Pick<TypeaheadPropsWithInputAttributes<T>, keyof typeof Typeahead.defaultProps>>;\n\n static defaultProps = {\n allowNew: false,\n autoFillOnBlur: true,\n autoFocus: false,\n chipSeparators: [],\n clearable: true,\n initialValue: [],\n inputAutoComplete: 'new-password',\n minQueryLength: DEFAULT_MIN_QUERY_LENGTH,\n multiple: false,\n searchDelay: SEARCH_DELAY,\n showSuggestions: true,\n showNewEntry: true,\n size: Size.MEDIUM,\n validateChip: () => true,\n } satisfies Partial<TypeaheadProps<unknown>>;\n optionRefs: (React.RefObject<HTMLLIElement> | null)[];\n\n constructor(props: TypeaheadPropsWithInputAttributes<T>) {\n super(props);\n const { searchDelay, initialValue, multiple } = this.props;\n this.handleSearchDebounced = debounce(this.handleSearch, searchDelay);\n const initialQuery = !multiple && initialValue.length > 0 ? initialValue[0].label : '';\n this.state = {\n selected: initialValue,\n errorState: false,\n query: initialQuery,\n keyboardFocusedOptionIndex: null,\n optionsShown: false,\n isFocused: false,\n };\n this.optionRefs = [] as (React.RefObject<HTMLLIElement> | null)[];\n }\n\n handleSearchDebounced: DebouncedFunc<Typeahead<T>['handleSearch']>;\n\n UNSAFE_componentWillReceiveProps(nextProps: TypeaheadPropsWithInputAttributes<T>) {\n if (nextProps.multiple !== this.props.multiple) {\n this.setState((previousState) => {\n const { selected } = previousState;\n if (!nextProps.multiple && selected.length > 0) {\n return {\n query: selected[0].label,\n selected: [selected[0]],\n };\n }\n return {\n selected: previousState.selected,\n query: '',\n };\n });\n }\n }\n\n componentWillUnmount() {\n this.handleSearchDebounced.cancel();\n }\n\n handleOnFocus = () => {\n this.showMenu();\n this.props.onFocus?.();\n };\n\n onOptionSelected = (event: React.MouseEvent, item: TypeaheadOption<T>) => {\n event.preventDefault();\n this.selectItem(item);\n };\n\n handleOnChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { optionsShown, selected } = this.state;\n const { multiple, onInputChange } = this.props;\n\n if (!optionsShown) {\n this.showMenu();\n }\n\n const query = event.target.value;\n\n if (!multiple && selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({ query }, () => {\n this.handleSearchDebounced(query);\n if (onInputChange) {\n onInputChange(query);\n }\n });\n };\n\n handleOnPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const { allowNew, multiple, chipSeparators } = this.props;\n const { selected } = this.state;\n\n if (allowNew && multiple && chipSeparators.length > 0) {\n event.preventDefault();\n const value = event.clipboardData.getData('text');\n if (value) {\n const regex = new RegExp(chipSeparators.join('|'));\n const pastedChips = value\n .split(regex)\n .map((label) => ({ label: label.trim() }))\n .filter((chip) => chip.label);\n\n this.updateSelectedValue([...selected, ...pastedChips]);\n }\n }\n };\n\n handleOnKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const { showSuggestions, allowNew, multiple, chipSeparators, options } = this.props;\n const { keyboardFocusedOptionIndex, query, selected } = this.state;\n const chipsMode = !showSuggestions && allowNew && multiple;\n\n if (chipsMode && ['Enter', 'Tab', ...chipSeparators].includes(event.key) && query.trim()) {\n event.preventDefault();\n this.selectItem({ label: query });\n } else {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveFocusedOption(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveFocusedOption(-1);\n break;\n case 'Enter':\n event.preventDefault();\n if (keyboardFocusedOptionIndex != null && options[keyboardFocusedOptionIndex]) {\n this.selectItem(options[keyboardFocusedOptionIndex]);\n } else if (allowNew && query.trim()) {\n this.selectItem({ label: query });\n }\n break;\n case 'Backspace':\n if (multiple && !query && selected.length > 0) {\n this.updateSelectedValue(selected.slice(0, -1));\n }\n break;\n default:\n break;\n }\n }\n };\n moveFocusedOption(offset: number) {\n this.setState((previousState) => {\n const { keyboardFocusedOptionIndex } = previousState;\n const { options } = this.props;\n let index = 0;\n if (keyboardFocusedOptionIndex !== null) {\n index = clamp(keyboardFocusedOptionIndex + offset, 0, options.length - 1);\n }\n const optionRef = this.optionRefs[index];\n if (optionRef?.current) {\n optionRef.current.focus(); // Set focus on the option element\n }\n return {\n keyboardFocusedOptionIndex: index,\n };\n });\n }\n\n selectItem = (item: TypeaheadOption<T>) => {\n const { multiple } = this.props;\n let selected = [...this.state.selected];\n let query;\n if (multiple) {\n selected.push(item);\n query = '';\n } else {\n selected = [item];\n query = item.label;\n }\n\n this.updateSelectedValue(selected);\n\n if (!item.keepFocusOnSelect) {\n this.hideMenu();\n }\n\n if (item.clearQueryOnSelect) {\n query = '';\n }\n\n this.setState({\n query,\n });\n };\n\n handleSearch = (query: string) => {\n const { onSearch } = this.props;\n if (onSearch) {\n onSearch(query);\n }\n\n this.setState((previousState) => ({\n keyboardFocusedOptionIndex: previousState.keyboardFocusedOptionIndex === null ? null : 0,\n }));\n };\n\n handleDocumentClick = () => {\n if (this.state.optionsShown) {\n this.hideMenu();\n const { allowNew, onBlur, autoFillOnBlur } = this.props;\n const { query } = this.state;\n this.setState({\n isFocused: false,\n });\n if (allowNew && autoFillOnBlur && query.trim()) {\n this.selectItem({ label: query });\n }\n\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n showMenu = () => {\n this.setState(\n {\n isFocused: true,\n optionsShown: true,\n },\n () => {\n addClickClassToDocumentOnIos();\n document.addEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n hideMenu = () => {\n this.setState(\n {\n optionsShown: false,\n keyboardFocusedOptionIndex: null,\n },\n () => {\n removeClickClassFromDocumentOnIos();\n document.removeEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n updateSelectedValue = (selected: readonly TypeaheadOption<T>[]) => {\n const { onChange, validateChip } = this.props;\n\n const errorState = selected.some((chip) => !validateChip(chip));\n this.setState({ selected, errorState }, () => {\n onChange([...selected]);\n });\n };\n\n clear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (this.state.selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({\n query: '',\n });\n };\n\n removeChip = (option: TypeaheadOption<T>) => {\n const { selected } = this.state;\n\n if (selected.length > 0) {\n this.updateSelectedValue([...selected.filter((selectedOption) => selectedOption !== option)]);\n }\n };\n\n renderChip = (option: TypeaheadOption<T>, idx: number): ReactNode => {\n const valid = this.props.validateChip?.(option);\n\n return (\n <Chip\n key={idx}\n label={option.label}\n className={clsx('m-t-1', {\n 'has-error': !valid,\n 'np-chip--valid': valid,\n })}\n onRemove={() => this.removeChip(option)}\n />\n );\n };\n\n renderMenu = ({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n }: Pick<\n TypeaheadPropsWithInputAttributes<T>,\n 'footer' | 'options' | 'id' | 'allowNew' | 'showNewEntry'\n > &\n Pick<TypeaheadState<T>, 'keyboardFocusedOptionIndex' | 'query'> & {\n dropdownOpen: boolean;\n }) => {\n const optionsToRender = [...options];\n if (\n allowNew &&\n query.trim() &&\n options.every((option) => option.label.trim().toUpperCase() !== query.trim().toUpperCase()) &&\n showNewEntry\n ) {\n optionsToRender.push({\n label: query,\n });\n }\n return (\n <div\n className={clsx('dropdown btn-group btn-block', { open: dropdownOpen })}\n id={`menu-${id}`}\n >\n {(!!optionsToRender.length || footer) && (\n <ul className=\"dropdown-menu\" role=\"menu\">\n {optionsToRender.map((option, idx) => {\n const ref = React.createRef<HTMLLIElement>();\n this.optionRefs[idx] = ref;\n return (\n <TypeaheadOption\n key={`${option.label}${idx.toString()}`}\n ref={ref}\n query={query}\n option={option}\n selected={keyboardFocusedOptionIndex === idx}\n id={String(option.label.replace(/\\s+/g, '-'))}\n onClick={(event) => {\n this.onOptionSelected(event, option);\n }}\n />\n );\n })}\n {footer}\n </ul>\n )}\n </div>\n );\n };\n\n render() {\n const {\n inputAttributes,\n id: idProp,\n placeholder,\n multiple,\n size,\n addon,\n name,\n clearable,\n allowNew,\n footer,\n showSuggestions,\n showNewEntry,\n options,\n minQueryLength,\n autoFocus,\n maxHeight,\n alert,\n inputAutoComplete,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n\n const { errorState, query, selected, optionsShown, keyboardFocusedOptionIndex } = this.state;\n\n const clearButton = clearable && (query || selected.length > 0);\n\n const dropdownOpen = optionsShown && showSuggestions && query.length >= minQueryLength;\n\n const menu = this.renderMenu({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n });\n\n const alertType = (() => {\n if (!alert?.type || alert.type === Sentiment.INFO) {\n return Sentiment.NEUTRAL;\n }\n if (alert.type === Sentiment.ERROR) {\n return Sentiment.NEGATIVE;\n }\n if (alert.type === Sentiment.SUCCESS) {\n return Sentiment.POSITIVE;\n }\n return alert.type;\n })();\n const hasError = errorState || (alert && alertType === Sentiment.NEGATIVE);\n const displayAlert = (!errorState && alert) || (alert && alertType === Sentiment.NEGATIVE);\n const hasWarning = displayAlert && alertType === Sentiment.WARNING;\n const hasInfo = displayAlert && alertType === Sentiment.NEUTRAL;\n return (\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */\n <div\n role=\"group\"\n {...inputAttributes}\n id={id}\n className={clsx('typeahead', `typeahead-${size}`, {\n 'typeahead--has-value': selected.length > 0,\n 'typeahead--empty': selected.length === 0,\n 'typeahead--multiple': multiple,\n open: dropdownOpen,\n })}\n onClick={stopPropagation}\n >\n <div\n className={clsx('form-group', 'form-group--typeahead', {\n 'has-error': hasError,\n 'has-warning': hasWarning,\n 'has-info': hasInfo,\n })}\n >\n <div\n className={clsx(`input-group input-group-${size}`, {\n 'input-group--has-error': hasError,\n })}\n >\n {addon && <span className=\"input-group-addon input-group-addon--search\">{addon}</span>}\n\n <TypeaheadInput\n {...{\n autoFocus,\n multiple,\n dropdownOpen,\n placeholder,\n selected,\n maxHeight,\n }}\n id={id}\n name={name}\n value={query}\n typeaheadId={id}\n renderChip={this.renderChip}\n autoComplete={inputAutoComplete}\n ariaActivedescendant={\n keyboardFocusedOptionIndex !== null && options[keyboardFocusedOptionIndex]\n ? `option-${options[keyboardFocusedOptionIndex].label.replace(/\\s+/g, '-')}`\n : undefined\n }\n onChange={this.handleOnChange}\n onKeyDown={this.handleOnKeyDown}\n onFocus={this.handleOnFocus}\n onPaste={this.handleOnPaste}\n />\n\n {clearButton && (\n <div className=\"input-group-addon\">\n <button\n type=\"button\"\n className=\"btn-unstyled\"\n aria-label={this.props?.intl?.formatMessage(messages.clearLabel)}\n onClick={this.clear}\n >\n <CrossIcon />\n </button>\n </div>\n )}\n </div>\n {displayAlert ? (\n <InlinePrompt sentiment={alertType} className=\"typeahead--prompt\" width=\"full\">\n {alert.message}\n </InlinePrompt>\n ) : (\n menu\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default injectIntl(withInputAttributes(Typeahead, { nonLabelable: true })) as <T>(\n props: TypeaheadProps<T>,\n) => React.ReactElement;\n"],"names":["DEFAULT_MIN_QUERY_LENGTH","SEARCH_DELAY","Typeahead","Component","defaultProps","allowNew","autoFillOnBlur","autoFocus","chipSeparators","clearable","initialValue","inputAutoComplete","minQueryLength","multiple","searchDelay","showSuggestions","showNewEntry","size","Size","MEDIUM","validateChip","optionRefs","constructor","props","handleSearchDebounced","debounce","handleSearch","initialQuery","length","label","state","selected","errorState","query","keyboardFocusedOptionIndex","optionsShown","isFocused","UNSAFE_componentWillReceiveProps","nextProps","setState","previousState","componentWillUnmount","cancel","handleOnFocus","showMenu","onFocus","onOptionSelected","event","item","preventDefault","selectItem","handleOnChange","onInputChange","target","value","updateSelectedValue","handleOnPaste","clipboardData","getData","regex","RegExp","join","pastedChips","split","map","trim","filter","chip","handleOnKeyDown","options","chipsMode","includes","key","moveFocusedOption","slice","offset","index","clamp","optionRef","current","focus","push","keepFocusOnSelect","hideMenu","clearQueryOnSelect","onSearch","handleDocumentClick","onBlur","addClickClassToDocumentOnIos","document","addEventListener","removeClickClassFromDocumentOnIos","removeEventListener","onChange","some","clear","removeChip","option","selectedOption","renderChip","idx","valid","_jsx","Chip","className","clsx","onRemove","renderMenu","footer","id","dropdownOpen","optionsToRender","every","toUpperCase","open","children","_jsxs","role","ref","React","createRef","TypeaheadOption","String","replace","onClick","toString","render","inputAttributes","idProp","placeholder","addon","name","maxHeight","alert","clearButton","menu","alertType","type","Sentiment","INFO","NEUTRAL","ERROR","NEGATIVE","SUCCESS","POSITIVE","hasError","displayAlert","hasWarning","WARNING","hasInfo","stopPropagation","TypeaheadInput","typeaheadId","autoComplete","ariaActivedescendant","undefined","onKeyDown","onPaste","intl","formatMessage","messages","clearLabel","CrossIcon","InlinePrompt","sentiment","width","message","injectIntl","withInputAttributes","nonLabelable"],"mappings":"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"}
1
+ {"version":3,"file":"Typeahead.mjs","sources":["../../src/Typeahead/Typeahead.tsx"],"sourcesContent":["import { Cross as CrossIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { DebouncedFunc } from 'lodash';\nimport clamp from 'lodash.clamp';\nimport debounce from 'lodash.debounce';\nimport React, { Component, ReactNode } from 'react';\nimport { injectIntl, type WrappedComponentProps } from '../common/injectIntl';\n\nimport { Chip } from '../Chips';\nimport {\n Size,\n Sentiment,\n SizeMedium,\n SizeLarge,\n addClickClassToDocumentOnIos,\n removeClickClassFromDocumentOnIos,\n stopPropagation,\n} from '../common';\nimport { InlinePrompt, InlinePromptProps } from '../Prompt';\nimport { withInputAttributes, WithInputAttributesProps } from '../Inputs/contexts';\n\nimport TypeaheadInput from './TypeaheadInput/TypeaheadInput';\nimport TypeaheadOption from './TypeaheadOption/TypeaheadOption';\nimport messages from './Typeahead.messages';\n\nconst DEFAULT_MIN_QUERY_LENGTH = 3;\nconst SEARCH_DELAY = 200;\n\nexport type TypeaheadOption<T = string> = {\n label: string;\n note?: string;\n secondary?: string;\n value?: T;\n clearQueryOnSelect?: boolean;\n keepFocusOnSelect?: boolean;\n};\n\nexport interface TypeaheadProps<T> extends Partial<WrappedComponentProps> {\n id: string;\n name: string;\n addon?: ReactNode;\n /**\n * @deprecated Use [`Field`](?path=/docs/forms-field--docs) component and its `message` and `sentiment` props instead.\n * @deprecated `error`, `info` and `success` are deprecated as alert types and will be soon removed.\n */\n alert?: {\n message: InlinePromptProps['children'];\n type?:\n | InlinePromptProps['sentiment']\n | `${Sentiment.ERROR}`\n | `${Sentiment.INFO}`\n | `${Sentiment.SUCCESS}`;\n };\n /** @default false */\n allowNew?: boolean;\n /** @default true */\n autoFillOnBlur?: boolean;\n /** @default false */\n autoFocus?: boolean;\n /** @default [] */\n chipSeparators?: readonly string[];\n /** @default true */\n clearable?: boolean;\n footer?: ReactNode;\n /** @default [] */\n initialValue?: readonly TypeaheadOption<T>[];\n /** @default 'new-password' */\n inputAutoComplete?: string;\n maxHeight?: number;\n /** @default 3 */\n minQueryLength?: number;\n placeholder?: string;\n /** @default false */\n multiple?: boolean;\n options: readonly TypeaheadOption<T>[];\n /** @default 200 */\n searchDelay?: number;\n /** @default true */\n showSuggestions?: boolean;\n /** @default true */\n showNewEntry?: boolean;\n /** @default 'md' */\n size?: SizeMedium | SizeLarge;\n onBlur?: () => void;\n onChange: (options: TypeaheadOption<T>[]) => void;\n onFocus?: () => void;\n onInputChange?: (query: string) => void;\n onSearch?: (query: string) => void;\n validateChip?: (chip: TypeaheadOption<T>) => boolean;\n}\n\ntype TypeaheadPropsWithInputAttributes<T> = TypeaheadProps<T> &\n Partial<WithInputAttributesProps> &\n WrappedComponentProps;\n\ntype TypeaheadState<T> = {\n selected: readonly TypeaheadOption<T>[];\n keyboardFocusedOptionIndex: number | null;\n errorState: boolean;\n query: string;\n optionsShown: boolean;\n isFocused: boolean;\n};\n\nclass Typeahead<T> extends Component<TypeaheadPropsWithInputAttributes<T>, TypeaheadState<T>> {\n declare props: TypeaheadPropsWithInputAttributes<T> &\n Required<Pick<TypeaheadPropsWithInputAttributes<T>, keyof typeof Typeahead.defaultProps>>;\n\n static defaultProps = {\n allowNew: false,\n autoFillOnBlur: true,\n autoFocus: false,\n chipSeparators: [],\n clearable: true,\n initialValue: [],\n inputAutoComplete: 'new-password',\n minQueryLength: DEFAULT_MIN_QUERY_LENGTH,\n multiple: false,\n searchDelay: SEARCH_DELAY,\n showSuggestions: true,\n showNewEntry: true,\n size: Size.MEDIUM,\n validateChip: () => true,\n } satisfies Partial<TypeaheadProps<unknown>>;\n optionRefs: (React.RefObject<HTMLLIElement> | null)[];\n\n constructor(props: TypeaheadPropsWithInputAttributes<T>) {\n super(props);\n const { searchDelay, initialValue, multiple } = this.props;\n this.handleSearchDebounced = debounce(this.handleSearch, searchDelay);\n const initialQuery = !multiple && initialValue.length > 0 ? initialValue[0].label : '';\n this.state = {\n selected: initialValue,\n errorState: false,\n query: initialQuery,\n keyboardFocusedOptionIndex: null,\n optionsShown: false,\n isFocused: false,\n };\n this.optionRefs = [] as (React.RefObject<HTMLLIElement> | null)[];\n }\n\n handleSearchDebounced: DebouncedFunc<Typeahead<T>['handleSearch']>;\n\n UNSAFE_componentWillReceiveProps(nextProps: TypeaheadPropsWithInputAttributes<T>) {\n if (nextProps.multiple !== this.props.multiple) {\n this.setState((previousState) => {\n const { selected } = previousState;\n if (!nextProps.multiple && selected.length > 0) {\n return {\n query: selected[0].label,\n selected: [selected[0]],\n };\n }\n return {\n selected: previousState.selected,\n query: '',\n };\n });\n }\n }\n\n componentWillUnmount() {\n this.handleSearchDebounced.cancel();\n }\n\n handleOnFocus = () => {\n this.showMenu();\n this.props.onFocus?.();\n };\n\n onOptionSelected = (event: React.MouseEvent, item: TypeaheadOption<T>) => {\n event.preventDefault();\n this.selectItem(item);\n };\n\n handleOnChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { optionsShown, selected } = this.state;\n const { multiple, onInputChange } = this.props;\n\n if (!optionsShown) {\n this.showMenu();\n }\n\n const query = event.target.value;\n\n if (!multiple && selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({ query }, () => {\n this.handleSearchDebounced(query);\n if (onInputChange) {\n onInputChange(query);\n }\n });\n };\n\n handleOnPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n const { allowNew, multiple, chipSeparators } = this.props;\n const { selected } = this.state;\n\n if (allowNew && multiple && chipSeparators.length > 0) {\n event.preventDefault();\n const value = event.clipboardData.getData('text');\n if (value) {\n const regex = new RegExp(chipSeparators.join('|'));\n const pastedChips = value\n .split(regex)\n .map((label) => ({ label: label.trim() }))\n .filter((chip) => chip.label);\n\n this.updateSelectedValue([...selected, ...pastedChips]);\n }\n }\n };\n\n handleOnKeyDown: React.KeyboardEventHandler<HTMLInputElement> = (event) => {\n const { showSuggestions, allowNew, multiple, chipSeparators } = this.props;\n const { query, selected } = this.state;\n const chipsMode = !showSuggestions && allowNew && multiple;\n\n if (chipsMode && ['Enter', 'Tab', ...chipSeparators].includes(event.key) && query.trim()) {\n event.preventDefault();\n this.selectItem({ label: query });\n } else if (!this.handleOptionNavigation(event)) {\n switch (event.key) {\n case 'Backspace':\n if (multiple && !query && selected.length > 0) {\n this.updateSelectedValue(selected.slice(0, -1));\n }\n break;\n default:\n break;\n }\n }\n };\n\n handleOptionListKeyDown: React.KeyboardEventHandler<HTMLUListElement> = (event) => {\n this.handleOptionNavigation(event);\n };\n\n handleOptionNavigation(event: React.KeyboardEvent<HTMLElement>) {\n const { allowNew, options } = this.props;\n const { keyboardFocusedOptionIndex, query } = this.state;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveFocusedOption(1);\n return true;\n case 'ArrowUp':\n event.preventDefault();\n this.moveFocusedOption(-1);\n return true;\n case 'Enter':\n event.preventDefault();\n if (keyboardFocusedOptionIndex != null && options[keyboardFocusedOptionIndex]) {\n this.selectItem(options[keyboardFocusedOptionIndex]);\n } else if (allowNew && query.trim()) {\n this.selectItem({ label: query });\n }\n return true;\n default:\n return false;\n }\n }\n moveFocusedOption(offset: number) {\n this.setState((previousState) => {\n const { keyboardFocusedOptionIndex } = previousState;\n const { options } = this.props;\n let index = 0;\n if (keyboardFocusedOptionIndex !== null) {\n index = clamp(keyboardFocusedOptionIndex + offset, 0, options.length - 1);\n }\n const optionRef = this.optionRefs[index];\n if (optionRef?.current) {\n optionRef.current.scrollIntoView({ block: 'nearest' });\n }\n return {\n keyboardFocusedOptionIndex: index,\n };\n });\n }\n\n setFocusedOption = (index: number) => {\n this.setState({ keyboardFocusedOptionIndex: index });\n };\n\n selectItem = (item: TypeaheadOption<T>) => {\n const { multiple } = this.props;\n let selected = [...this.state.selected];\n let query;\n if (multiple) {\n selected.push(item);\n query = '';\n } else {\n selected = [item];\n query = item.label;\n }\n\n this.updateSelectedValue(selected);\n\n if (!item.keepFocusOnSelect) {\n this.hideMenu();\n }\n\n if (item.clearQueryOnSelect) {\n query = '';\n }\n\n this.setState({\n query,\n });\n };\n\n handleSearch = (query: string) => {\n const { onSearch } = this.props;\n if (onSearch) {\n onSearch(query);\n }\n\n this.setState((previousState) => ({\n keyboardFocusedOptionIndex: previousState.keyboardFocusedOptionIndex === null ? null : 0,\n }));\n };\n\n handleDocumentClick = () => {\n if (this.state.optionsShown) {\n this.hideMenu();\n const { allowNew, onBlur, autoFillOnBlur } = this.props;\n const { query } = this.state;\n this.setState({\n isFocused: false,\n });\n if (allowNew && autoFillOnBlur && query.trim()) {\n this.selectItem({ label: query });\n }\n\n if (onBlur) {\n onBlur();\n }\n }\n };\n\n showMenu = () => {\n this.setState(\n {\n isFocused: true,\n optionsShown: true,\n },\n () => {\n addClickClassToDocumentOnIos();\n document.addEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n hideMenu = () => {\n this.setState(\n {\n optionsShown: false,\n keyboardFocusedOptionIndex: null,\n },\n () => {\n removeClickClassFromDocumentOnIos();\n document.removeEventListener('click', this.handleDocumentClick, false);\n },\n );\n };\n\n updateSelectedValue = (selected: readonly TypeaheadOption<T>[]) => {\n const { onChange, validateChip } = this.props;\n\n const errorState = selected.some((chip) => !validateChip(chip));\n this.setState({ selected, errorState }, () => {\n onChange([...selected]);\n });\n };\n\n clear = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n if (this.state.selected.length > 0) {\n this.updateSelectedValue([]);\n }\n\n this.setState({\n query: '',\n });\n };\n\n removeChip = (option: TypeaheadOption<T>) => {\n const { selected } = this.state;\n\n if (selected.length > 0) {\n this.updateSelectedValue([...selected.filter((selectedOption) => selectedOption !== option)]);\n }\n };\n\n renderChip = (option: TypeaheadOption<T>, idx: number): ReactNode => {\n const valid = this.props.validateChip?.(option);\n\n return (\n <Chip\n key={idx}\n label={option.label}\n className={clsx('m-t-1', {\n 'has-error': !valid,\n 'np-chip--valid': valid,\n })}\n onRemove={() => this.removeChip(option)}\n />\n );\n };\n\n renderMenu = ({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n }: Pick<\n TypeaheadPropsWithInputAttributes<T>,\n 'footer' | 'options' | 'id' | 'allowNew' | 'showNewEntry'\n > &\n Pick<TypeaheadState<T>, 'keyboardFocusedOptionIndex' | 'query'> & {\n dropdownOpen: boolean;\n }) => {\n const optionsToRender = [...options];\n if (\n allowNew &&\n query.trim() &&\n options.every((option) => option.label.trim().toUpperCase() !== query.trim().toUpperCase()) &&\n showNewEntry\n ) {\n optionsToRender.push({\n label: query,\n });\n }\n return (\n <div className={clsx('dropdown btn-group btn-block', { open: dropdownOpen })}>\n {(!!optionsToRender.length || footer) && (\n <ul\n className=\"dropdown-menu\"\n id={`menu-${id}`}\n role=\"listbox\"\n aria-label={this.props?.intl?.formatMessage(messages.suggestionsLabel)}\n tabIndex={0}\n onKeyDown={this.handleOptionListKeyDown}\n >\n {optionsToRender.map((option, idx) => {\n const ref = React.createRef<HTMLLIElement>();\n this.optionRefs[idx] = ref;\n return (\n <TypeaheadOption\n key={`${option.label}${idx.toString()}`}\n ref={ref}\n query={query}\n option={option}\n selected={keyboardFocusedOptionIndex === idx}\n id={`${id}-${idx}`}\n onMouseEnter={() => this.setFocusedOption(idx)}\n onClick={(event) => {\n this.onOptionSelected(event, option);\n }}\n />\n );\n })}\n {footer}\n </ul>\n )}\n </div>\n );\n };\n\n render() {\n const {\n inputAttributes,\n id: idProp,\n placeholder,\n multiple,\n size,\n addon,\n name,\n clearable,\n allowNew,\n footer,\n showSuggestions,\n showNewEntry,\n options,\n minQueryLength,\n autoFocus,\n maxHeight,\n alert,\n inputAutoComplete,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n\n const { errorState, query, selected, optionsShown, keyboardFocusedOptionIndex } = this.state;\n\n const clearButton = clearable && (query || selected.length > 0);\n\n const dropdownOpen = optionsShown && showSuggestions && query.length >= minQueryLength;\n\n const menu = this.renderMenu({\n footer,\n options,\n id,\n keyboardFocusedOptionIndex,\n query,\n allowNew,\n showNewEntry,\n dropdownOpen,\n });\n\n const alertType = (() => {\n if (!alert?.type || alert.type === Sentiment.INFO) {\n return Sentiment.NEUTRAL;\n }\n if (alert.type === Sentiment.ERROR) {\n return Sentiment.NEGATIVE;\n }\n if (alert.type === Sentiment.SUCCESS) {\n return Sentiment.POSITIVE;\n }\n return alert.type;\n })();\n const hasError = errorState || (alert && alertType === Sentiment.NEGATIVE);\n const displayAlert = (!errorState && alert) || (alert && alertType === Sentiment.NEGATIVE);\n const hasWarning = displayAlert && alertType === Sentiment.WARNING;\n const hasInfo = displayAlert && alertType === Sentiment.NEUTRAL;\n return (\n /* eslint-disable-next-line jsx-a11y/click-events-have-key-events */\n <div\n role=\"group\"\n {...inputAttributes}\n id={id}\n className={clsx('typeahead', `typeahead-${size}`, {\n 'typeahead--has-value': selected.length > 0,\n 'typeahead--empty': selected.length === 0,\n 'typeahead--multiple': multiple,\n open: dropdownOpen,\n })}\n onClick={stopPropagation}\n >\n <div\n className={clsx('form-group', 'form-group--typeahead', {\n 'has-error': hasError,\n 'has-warning': hasWarning,\n 'has-info': hasInfo,\n })}\n >\n <div\n className={clsx(`input-group input-group-${size}`, {\n 'input-group--has-error': hasError,\n })}\n >\n {addon && <span className=\"input-group-addon input-group-addon--search\">{addon}</span>}\n\n <TypeaheadInput\n {...{\n autoFocus,\n multiple,\n dropdownOpen,\n placeholder,\n selected,\n maxHeight,\n }}\n id={id}\n name={name}\n value={query}\n typeaheadId={id}\n renderChip={this.renderChip}\n autoComplete={inputAutoComplete}\n ariaActivedescendant={\n keyboardFocusedOptionIndex !== null && options[keyboardFocusedOptionIndex]\n ? `option-${id}-${keyboardFocusedOptionIndex}`\n : undefined\n }\n onChange={this.handleOnChange}\n onKeyDown={this.handleOnKeyDown}\n onFocus={this.handleOnFocus}\n onPaste={this.handleOnPaste}\n />\n\n {clearButton && (\n <div className=\"input-group-addon\">\n <button\n type=\"button\"\n className=\"btn-unstyled\"\n aria-label={this.props?.intl?.formatMessage(messages.clearLabel)}\n onClick={this.clear}\n >\n <CrossIcon />\n </button>\n </div>\n )}\n </div>\n {displayAlert ? (\n <InlinePrompt sentiment={alertType} className=\"typeahead--prompt\" width=\"full\">\n {alert.message}\n </InlinePrompt>\n ) : (\n menu\n )}\n </div>\n </div>\n );\n }\n}\n\nexport default injectIntl(withInputAttributes(Typeahead, { nonLabelable: true })) as <T>(\n props: TypeaheadProps<T>,\n) => React.ReactElement;\n"],"names":["DEFAULT_MIN_QUERY_LENGTH","SEARCH_DELAY","Typeahead","Component","defaultProps","allowNew","autoFillOnBlur","autoFocus","chipSeparators","clearable","initialValue","inputAutoComplete","minQueryLength","multiple","searchDelay","showSuggestions","showNewEntry","size","Size","MEDIUM","validateChip","optionRefs","constructor","props","handleSearchDebounced","debounce","handleSearch","initialQuery","length","label","state","selected","errorState","query","keyboardFocusedOptionIndex","optionsShown","isFocused","UNSAFE_componentWillReceiveProps","nextProps","setState","previousState","componentWillUnmount","cancel","handleOnFocus","showMenu","onFocus","onOptionSelected","event","item","preventDefault","selectItem","handleOnChange","onInputChange","target","value","updateSelectedValue","handleOnPaste","clipboardData","getData","regex","RegExp","join","pastedChips","split","map","trim","filter","chip","handleOnKeyDown","chipsMode","includes","key","handleOptionNavigation","slice","handleOptionListKeyDown","options","moveFocusedOption","offset","index","clamp","optionRef","current","scrollIntoView","block","setFocusedOption","push","keepFocusOnSelect","hideMenu","clearQueryOnSelect","onSearch","handleDocumentClick","onBlur","addClickClassToDocumentOnIos","document","addEventListener","removeClickClassFromDocumentOnIos","removeEventListener","onChange","some","clear","removeChip","option","selectedOption","renderChip","idx","valid","_jsx","Chip","className","clsx","onRemove","renderMenu","footer","id","dropdownOpen","optionsToRender","every","toUpperCase","open","children","_jsxs","role","intl","formatMessage","messages","suggestionsLabel","tabIndex","onKeyDown","ref","React","createRef","TypeaheadOption","onMouseEnter","onClick","toString","render","inputAttributes","idProp","placeholder","addon","name","maxHeight","alert","clearButton","menu","alertType","type","Sentiment","INFO","NEUTRAL","ERROR","NEGATIVE","SUCCESS","POSITIVE","hasError","displayAlert","hasWarning","WARNING","hasInfo","stopPropagation","TypeaheadInput","typeaheadId","autoComplete","ariaActivedescendant","undefined","onPaste","clearLabel","CrossIcon","InlinePrompt","sentiment","width","message","injectIntl","withInputAttributes","nonLabelable"],"mappings":"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"}
@@ -59,7 +59,7 @@ class TypeaheadInput extends React.Component {
59
59
  onFocus,
60
60
  onPaste,
61
61
  autoComplete,
62
- ariaActivedescendant // Declare the ariaActivedescendant variable
62
+ ariaActivedescendant
63
63
  } = this.props;
64
64
  const {
65
65
  inputWidth
@@ -70,7 +70,7 @@ class TypeaheadInput extends React.Component {
70
70
  className: clsx.clsx(multiple && 'typeahead__input'),
71
71
  name: name,
72
72
  id: `input-${typeaheadId}`,
73
- "aria-activedescendant": ariaActivedescendant ? `menu-${typeaheadId} ${ariaActivedescendant}` : `menu-${typeaheadId}`,
73
+ "aria-activedescendant": ariaActivedescendant,
74
74
  autoFocus: autoFocus,
75
75
  placeholder: hasPlaceholder ? placeholder : '',
76
76
  "aria-autocomplete": "list",
@@ -1 +1 @@
1
- {"version":3,"file":"TypeaheadInput.js","sources":["../../../src/Typeahead/TypeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../Inputs/Input/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant, // Declare the ariaActivedescendant variable\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={\n ariaActivedescendant\n ? `menu-${typeaheadId} ${ariaActivedescendant}`\n : `menu-${typeaheadId}`\n }\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":"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"}
1
+ {"version":3,"file":"TypeaheadInput.js","sources":["../../../src/Typeahead/TypeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../Inputs/Input/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant,\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={ariaActivedescendant}\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":"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"}
@@ -55,7 +55,7 @@ class TypeaheadInput extends Component {
55
55
  onFocus,
56
56
  onPaste,
57
57
  autoComplete,
58
- ariaActivedescendant // Declare the ariaActivedescendant variable
58
+ ariaActivedescendant
59
59
  } = this.props;
60
60
  const {
61
61
  inputWidth
@@ -66,7 +66,7 @@ class TypeaheadInput extends Component {
66
66
  className: clsx(multiple && 'typeahead__input'),
67
67
  name: name,
68
68
  id: `input-${typeaheadId}`,
69
- "aria-activedescendant": ariaActivedescendant ? `menu-${typeaheadId} ${ariaActivedescendant}` : `menu-${typeaheadId}`,
69
+ "aria-activedescendant": ariaActivedescendant,
70
70
  autoFocus: autoFocus,
71
71
  placeholder: hasPlaceholder ? placeholder : '',
72
72
  "aria-autocomplete": "list",
@@ -1 +1 @@
1
- {"version":3,"file":"TypeaheadInput.mjs","sources":["../../../src/Typeahead/TypeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../Inputs/Input/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant, // Declare the ariaActivedescendant variable\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={\n ariaActivedescendant\n ? `menu-${typeaheadId} ${ariaActivedescendant}`\n : `menu-${typeaheadId}`\n }\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":"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"}
1
+ {"version":3,"file":"TypeaheadInput.mjs","sources":["../../../src/Typeahead/TypeaheadInput/TypeaheadInput.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport { clsx } from 'clsx';\nimport { Component, createRef, ReactNode } from 'react';\n\nimport { Input } from '../../Inputs/Input/Input';\nimport { TypeaheadOption, TypeaheadProps } from '../Typeahead';\n\nconst DEFAULT_INPUT_MIN_WIDTH = 10;\n\nexport type TypeaheadInputProps<T> = {\n typeaheadId: string;\n value: string;\n selected: readonly TypeaheadOption<T>[];\n dropdownOpen?: boolean;\n autoComplete: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n onKeyDown: React.KeyboardEventHandler<HTMLInputElement>;\n onFocus: () => void;\n onPaste: React.ClipboardEventHandler<HTMLInputElement>;\n renderChip: (chip: TypeaheadOption<T>, index: number) => ReactNode;\n ariaActivedescendant?: string;\n} & Pick<TypeaheadProps<T>, 'id' | 'name' | 'autoFocus' | 'multiple' | 'placeholder' | 'maxHeight'>;\n\ntype TypeaheadInputState = {\n inputWidth: number;\n keyboardFocusedOptionIndex: number | null;\n};\n\nexport default class TypeaheadInput<T> extends Component<\n TypeaheadInputProps<T>,\n TypeaheadInputState\n> {\n inputRef = createRef<HTMLInputElement>();\n sizerRef = createRef<HTMLDivElement>();\n\n constructor(props: TypeaheadInputProps<T>) {\n super(props);\n this.state = {\n inputWidth: DEFAULT_INPUT_MIN_WIDTH,\n keyboardFocusedOptionIndex: null,\n };\n }\n\n componentDidMount() {\n const { autoFocus } = this.props;\n if (autoFocus) {\n // Autofocus after context code executions (e.g open Modal) is completed\n setTimeout(() => {\n this.inputRef.current?.focus();\n });\n }\n }\n\n componentDidUpdate(previousProps: TypeaheadInputProps<T>) {\n if (previousProps.value !== this.props.value && this.props.multiple) {\n this.recalculateWidth();\n }\n }\n\n recalculateWidth = () => {\n requestAnimationFrame(() => {\n this.setState({\n inputWidth: Math.max(DEFAULT_INPUT_MIN_WIDTH, this.sizerRef.current?.scrollWidth ?? 0 + 10),\n });\n });\n };\n\n renderInput = () => {\n const {\n typeaheadId,\n autoFocus,\n multiple,\n name,\n dropdownOpen,\n placeholder,\n selected,\n value,\n onChange,\n onKeyDown,\n onFocus,\n onPaste,\n autoComplete,\n ariaActivedescendant,\n } = this.props;\n const { inputWidth } = this.state;\n\n const hasPlaceholder = !multiple || selected.length === 0;\n return (\n <Input\n ref={this.inputRef}\n className={clsx(multiple && 'typeahead__input')}\n name={name}\n id={`input-${typeaheadId}`}\n aria-activedescendant={ariaActivedescendant}\n autoFocus={autoFocus}\n placeholder={hasPlaceholder ? placeholder : ''}\n aria-autocomplete=\"list\"\n aria-expanded={dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-controls={dropdownOpen ? `menu-${typeaheadId}` : undefined}\n autoComplete={autoComplete}\n role=\"combobox\"\n value={value}\n style={multiple && selected.length > 0 ? { width: inputWidth } : {}}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onClick={onFocus}\n onFocus={onFocus}\n onPaste={onPaste}\n />\n );\n };\n\n render() {\n const { multiple, selected, value, maxHeight, renderChip } = this.props;\n\n return multiple ? (\n <div\n className=\"form-control typeahead__input-container\"\n style={{ maxHeight }}\n onClick={() => {\n this.inputRef.current?.focus();\n }}\n >\n <div className=\"typeahead__input-wrapper\">\n {selected && selected.map((chip, idx) => renderChip(chip, idx))}\n\n {this.renderInput()}\n <div className=\"typeahead__input-aligner\" />\n </div>\n <div ref={this.sizerRef} className=\"sizer form-control typeahead__input\">\n {value}\n </div>\n </div>\n ) : (\n this.renderInput()\n );\n }\n}\n"],"names":["DEFAULT_INPUT_MIN_WIDTH","TypeaheadInput","Component","inputRef","createRef","sizerRef","constructor","props","state","inputWidth","keyboardFocusedOptionIndex","componentDidMount","autoFocus","setTimeout","current","focus","componentDidUpdate","previousProps","value","multiple","recalculateWidth","requestAnimationFrame","setState","Math","max","scrollWidth","renderInput","typeaheadId","name","dropdownOpen","placeholder","selected","onChange","onKeyDown","onFocus","onPaste","autoComplete","ariaActivedescendant","hasPlaceholder","length","_jsx","Input","ref","className","clsx","id","undefined","role","style","width","onClick","render","maxHeight","renderChip","_jsxs","children","map","chip","idx"],"mappings":"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"}
@@ -12,6 +12,7 @@ const Option = /*#__PURE__*/React.forwardRef((props, ref) => {
12
12
  option,
13
13
  selected = false,
14
14
  onClick = () => {},
15
+ onMouseEnter,
15
16
  query = '',
16
17
  id
17
18
  } = props;
@@ -28,10 +29,11 @@ const Option = /*#__PURE__*/React.forwardRef((props, ref) => {
28
29
  className: clsx.clsx('typeahead__option tw-dropdown-item clickable', {
29
30
  'tw-dropdown-item--focused': selected
30
31
  }),
32
+ onMouseEnter: onMouseEnter,
31
33
  children: /*#__PURE__*/jsxRuntime.jsxs("a", {
32
34
  className: "dropdown-item",
33
35
  href: "#",
34
- tabIndex: 0,
36
+ tabIndex: -1,
35
37
  onClick: onClick,
36
38
  children: [/*#__PURE__*/jsxRuntime.jsx(highlight.default, {
37
39
  value: label,
@@ -1 +1 @@
1
- {"version":3,"file":"TypeaheadOption.js","sources":["../../../src/Typeahead/TypeaheadOption/TypeaheadOption.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { TypeaheadOption } from '../Typeahead';\nimport Highlight from '../Util/highlight';\n\nexport type TypeaheadOptionProps<T> = {\n option: TypeaheadOption<T>;\n selected?: boolean;\n onClick?: React.MouseEventHandler;\n query?: string;\n id?: string;\n};\n\nconst Option = forwardRef<HTMLLIElement, TypeaheadOptionProps<any>>((props, ref) => {\n const { option, selected = false, onClick = () => {}, query = '', id } = props;\n const { label, note, secondary } = option;\n\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={selected ? 'true' : 'false'}\n id={`option-${id}`}\n className={clsx('typeahead__option tw-dropdown-item clickable', {\n 'tw-dropdown-item--focused': selected,\n })}\n >\n <a className=\"dropdown-item\" href=\"#\" tabIndex={0} onClick={onClick}>\n <Highlight value={label} query={query} />\n {note && <span className=\"np-text-body-default m-l-1\">{note}</span>}\n {secondary && (\n <Highlight\n className=\"np-text-body-default text-ellipsis\"\n value={secondary}\n query={query}\n />\n )}\n </a>\n </li>\n );\n});\n\nexport default Option;\n"],"names":["Option","forwardRef","props","ref","option","selected","onClick","query","id","label","note","secondary","_jsx","role","className","clsx","children","_jsxs","href","tabIndex","Highlight","value"],"mappings":";;;;;;;;;AAcA,MAAMA,MAAM,gBAAGC,gBAAU,CAA2C,CAACC,KAAK,EAAEC,GAAG,KAAI;EACjF,MAAM;IAAEC,MAAM;AAAEC,IAAAA,QAAQ,GAAG,KAAK;AAAEC,IAAAA,OAAO,GAAGA,OAAO,CAAC;AAAEC,IAAAA,KAAK,GAAG,EAAE;AAAEC,IAAAA;AAAE,GAAE,GAAGN,KAAK;EAC9E,MAAM;IAAEO,KAAK;IAAEC,IAAI;AAAEC,IAAAA;AAAS,GAAE,GAAGP,MAAM;AAEzC,EAAA,oBACEQ,cAAA,CAAA,IAAA,EAAA;AACET,IAAAA,GAAG,EAAEA,GAAI;AACTU,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,eAAA,EAAeR,QAAQ,GAAG,MAAM,GAAG,OAAQ;IAC3CG,EAAE,EAAE,CAAA,OAAA,EAAUA,EAAE,CAAA,CAAG;AACnBM,IAAAA,SAAS,EAAEC,SAAI,CAAC,8CAA8C,EAAE;AAC9D,MAAA,2BAA2B,EAAEV;AAC9B,KAAA,CAAE;AAAAW,IAAAA,QAAA,eAEHC,eAAA,CAAA,GAAA,EAAA;AAAGH,MAAAA,SAAS,EAAC,eAAe;AAACI,MAAAA,IAAI,EAAC,GAAG;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAACb,MAAAA,OAAO,EAAEA,OAAQ;MAAAU,QAAA,EAAA,cAClEJ,cAAA,CAACQ,iBAAS,EAAA;AAACC,QAAAA,KAAK,EAAEZ,KAAM;AAACF,QAAAA,KAAK,EAAEA;AAAM,OAAA,CACtC,EAACG,IAAI,iBAAIE,cAAA,CAAA,MAAA,EAAA;AAAME,QAAAA,SAAS,EAAC,4BAA4B;AAAAE,QAAAA,QAAA,EAAEN;AAAI,OAAO,CAAC,EAClEC,SAAS,iBACRC,cAAA,CAACQ,iBAAS,EAAA;AACRN,QAAAA,SAAS,EAAC,oCAAoC;AAC9CO,QAAAA,KAAK,EAAEV,SAAU;AACjBJ,QAAAA,KAAK,EAAEA;AAAM,OAAA,CAEhB;KACA;AACL,GAAI,CAAC;AAET,CAAC;;;;"}
1
+ {"version":3,"file":"TypeaheadOption.js","sources":["../../../src/Typeahead/TypeaheadOption/TypeaheadOption.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { TypeaheadOption } from '../Typeahead';\nimport Highlight from '../Util/highlight';\n\nexport type TypeaheadOptionProps<T> = {\n option: TypeaheadOption<T>;\n selected?: boolean;\n onClick?: React.MouseEventHandler;\n onMouseEnter?: React.MouseEventHandler;\n query?: string;\n id?: string;\n};\n\nconst Option = forwardRef<HTMLLIElement, TypeaheadOptionProps<any>>((props, ref) => {\n const { option, selected = false, onClick = () => {}, onMouseEnter, query = '', id } = props;\n const { label, note, secondary } = option;\n\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={selected ? 'true' : 'false'}\n id={`option-${id}`}\n className={clsx('typeahead__option tw-dropdown-item clickable', {\n 'tw-dropdown-item--focused': selected,\n })}\n onMouseEnter={onMouseEnter}\n >\n <a className=\"dropdown-item\" href=\"#\" tabIndex={-1} onClick={onClick}>\n <Highlight value={label} query={query} />\n {note && <span className=\"np-text-body-default m-l-1\">{note}</span>}\n {secondary && (\n <Highlight\n className=\"np-text-body-default text-ellipsis\"\n value={secondary}\n query={query}\n />\n )}\n </a>\n </li>\n );\n});\n\nexport default Option;\n"],"names":["Option","forwardRef","props","ref","option","selected","onClick","onMouseEnter","query","id","label","note","secondary","_jsx","role","className","clsx","children","_jsxs","href","tabIndex","Highlight","value"],"mappings":";;;;;;;;;AAeA,MAAMA,MAAM,gBAAGC,gBAAU,CAA2C,CAACC,KAAK,EAAEC,GAAG,KAAI;EACjF,MAAM;IAAEC,MAAM;AAAEC,IAAAA,QAAQ,GAAG,KAAK;AAAEC,IAAAA,OAAO,GAAGA,MAAK,CAAE,CAAC;IAAEC,YAAY;AAAEC,IAAAA,KAAK,GAAG,EAAE;AAAEC,IAAAA;AAAE,GAAE,GAAGP,KAAK;EAC5F,MAAM;IAAEQ,KAAK;IAAEC,IAAI;AAAEC,IAAAA;AAAS,GAAE,GAAGR,MAAM;AAEzC,EAAA,oBACES,cAAA,CAAA,IAAA,EAAA;AACEV,IAAAA,GAAG,EAAEA,GAAI;AACTW,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,eAAA,EAAeT,QAAQ,GAAG,MAAM,GAAG,OAAQ;IAC3CI,EAAE,EAAE,CAAA,OAAA,EAAUA,EAAE,CAAA,CAAG;AACnBM,IAAAA,SAAS,EAAEC,SAAI,CAAC,8CAA8C,EAAE;AAC9D,MAAA,2BAA2B,EAAEX;AAC9B,KAAA,CAAE;AACHE,IAAAA,YAAY,EAAEA,YAAa;AAAAU,IAAAA,QAAA,eAE3BC,eAAA,CAAA,GAAA,EAAA;AAAGH,MAAAA,SAAS,EAAC,eAAe;AAACI,MAAAA,IAAI,EAAC,GAAG;MAACC,QAAQ,EAAE,EAAG;AAACd,MAAAA,OAAO,EAAEA,OAAQ;MAAAW,QAAA,EAAA,cACnEJ,cAAA,CAACQ,iBAAS,EAAA;AAACC,QAAAA,KAAK,EAAEZ,KAAM;AAACF,QAAAA,KAAK,EAAEA;AAAM,OAAA,CACtC,EAACG,IAAI,iBAAIE,cAAA,CAAA,MAAA,EAAA;AAAME,QAAAA,SAAS,EAAC,4BAA4B;AAAAE,QAAAA,QAAA,EAAEN;AAAI,OAAO,CAAC,EAClEC,SAAS,iBACRC,cAAA,CAACQ,iBAAS,EAAA;AACRN,QAAAA,SAAS,EAAC,oCAAoC;AAC9CO,QAAAA,KAAK,EAAEV,SAAU;AACjBJ,QAAAA,KAAK,EAAEA;AAAM,OAAA,CAEhB;KACA;AACL,GAAI,CAAC;AAET,CAAC;;;;"}
@@ -8,6 +8,7 @@ const Option = /*#__PURE__*/forwardRef((props, ref) => {
8
8
  option,
9
9
  selected = false,
10
10
  onClick = () => {},
11
+ onMouseEnter,
11
12
  query = '',
12
13
  id
13
14
  } = props;
@@ -24,10 +25,11 @@ const Option = /*#__PURE__*/forwardRef((props, ref) => {
24
25
  className: clsx('typeahead__option tw-dropdown-item clickable', {
25
26
  'tw-dropdown-item--focused': selected
26
27
  }),
28
+ onMouseEnter: onMouseEnter,
27
29
  children: /*#__PURE__*/jsxs("a", {
28
30
  className: "dropdown-item",
29
31
  href: "#",
30
- tabIndex: 0,
32
+ tabIndex: -1,
31
33
  onClick: onClick,
32
34
  children: [/*#__PURE__*/jsx(Highlight, {
33
35
  value: label,
@@ -1 +1 @@
1
- {"version":3,"file":"TypeaheadOption.mjs","sources":["../../../src/Typeahead/TypeaheadOption/TypeaheadOption.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { TypeaheadOption } from '../Typeahead';\nimport Highlight from '../Util/highlight';\n\nexport type TypeaheadOptionProps<T> = {\n option: TypeaheadOption<T>;\n selected?: boolean;\n onClick?: React.MouseEventHandler;\n query?: string;\n id?: string;\n};\n\nconst Option = forwardRef<HTMLLIElement, TypeaheadOptionProps<any>>((props, ref) => {\n const { option, selected = false, onClick = () => {}, query = '', id } = props;\n const { label, note, secondary } = option;\n\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={selected ? 'true' : 'false'}\n id={`option-${id}`}\n className={clsx('typeahead__option tw-dropdown-item clickable', {\n 'tw-dropdown-item--focused': selected,\n })}\n >\n <a className=\"dropdown-item\" href=\"#\" tabIndex={0} onClick={onClick}>\n <Highlight value={label} query={query} />\n {note && <span className=\"np-text-body-default m-l-1\">{note}</span>}\n {secondary && (\n <Highlight\n className=\"np-text-body-default text-ellipsis\"\n value={secondary}\n query={query}\n />\n )}\n </a>\n </li>\n );\n});\n\nexport default Option;\n"],"names":["Option","forwardRef","props","ref","option","selected","onClick","query","id","label","note","secondary","_jsx","role","className","clsx","children","_jsxs","href","tabIndex","Highlight","value"],"mappings":";;;;;AAcA,MAAMA,MAAM,gBAAGC,UAAU,CAA2C,CAACC,KAAK,EAAEC,GAAG,KAAI;EACjF,MAAM;IAAEC,MAAM;AAAEC,IAAAA,QAAQ,GAAG,KAAK;AAAEC,IAAAA,OAAO,GAAGA,OAAO,CAAC;AAAEC,IAAAA,KAAK,GAAG,EAAE;AAAEC,IAAAA;AAAE,GAAE,GAAGN,KAAK;EAC9E,MAAM;IAAEO,KAAK;IAAEC,IAAI;AAAEC,IAAAA;AAAS,GAAE,GAAGP,MAAM;AAEzC,EAAA,oBACEQ,GAAA,CAAA,IAAA,EAAA;AACET,IAAAA,GAAG,EAAEA,GAAI;AACTU,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,eAAA,EAAeR,QAAQ,GAAG,MAAM,GAAG,OAAQ;IAC3CG,EAAE,EAAE,CAAA,OAAA,EAAUA,EAAE,CAAA,CAAG;AACnBM,IAAAA,SAAS,EAAEC,IAAI,CAAC,8CAA8C,EAAE;AAC9D,MAAA,2BAA2B,EAAEV;AAC9B,KAAA,CAAE;AAAAW,IAAAA,QAAA,eAEHC,IAAA,CAAA,GAAA,EAAA;AAAGH,MAAAA,SAAS,EAAC,eAAe;AAACI,MAAAA,IAAI,EAAC,GAAG;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAACb,MAAAA,OAAO,EAAEA,OAAQ;MAAAU,QAAA,EAAA,cAClEJ,GAAA,CAACQ,SAAS,EAAA;AAACC,QAAAA,KAAK,EAAEZ,KAAM;AAACF,QAAAA,KAAK,EAAEA;AAAM,OAAA,CACtC,EAACG,IAAI,iBAAIE,GAAA,CAAA,MAAA,EAAA;AAAME,QAAAA,SAAS,EAAC,4BAA4B;AAAAE,QAAAA,QAAA,EAAEN;AAAI,OAAO,CAAC,EAClEC,SAAS,iBACRC,GAAA,CAACQ,SAAS,EAAA;AACRN,QAAAA,SAAS,EAAC,oCAAoC;AAC9CO,QAAAA,KAAK,EAAEV,SAAU;AACjBJ,QAAAA,KAAK,EAAEA;AAAM,OAAA,CAEhB;KACA;AACL,GAAI,CAAC;AAET,CAAC;;;;"}
1
+ {"version":3,"file":"TypeaheadOption.mjs","sources":["../../../src/Typeahead/TypeaheadOption/TypeaheadOption.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { TypeaheadOption } from '../Typeahead';\nimport Highlight from '../Util/highlight';\n\nexport type TypeaheadOptionProps<T> = {\n option: TypeaheadOption<T>;\n selected?: boolean;\n onClick?: React.MouseEventHandler;\n onMouseEnter?: React.MouseEventHandler;\n query?: string;\n id?: string;\n};\n\nconst Option = forwardRef<HTMLLIElement, TypeaheadOptionProps<any>>((props, ref) => {\n const { option, selected = false, onClick = () => {}, onMouseEnter, query = '', id } = props;\n const { label, note, secondary } = option;\n\n return (\n <li\n ref={ref}\n role=\"option\"\n aria-selected={selected ? 'true' : 'false'}\n id={`option-${id}`}\n className={clsx('typeahead__option tw-dropdown-item clickable', {\n 'tw-dropdown-item--focused': selected,\n })}\n onMouseEnter={onMouseEnter}\n >\n <a className=\"dropdown-item\" href=\"#\" tabIndex={-1} onClick={onClick}>\n <Highlight value={label} query={query} />\n {note && <span className=\"np-text-body-default m-l-1\">{note}</span>}\n {secondary && (\n <Highlight\n className=\"np-text-body-default text-ellipsis\"\n value={secondary}\n query={query}\n />\n )}\n </a>\n </li>\n );\n});\n\nexport default Option;\n"],"names":["Option","forwardRef","props","ref","option","selected","onClick","onMouseEnter","query","id","label","note","secondary","_jsx","role","className","clsx","children","_jsxs","href","tabIndex","Highlight","value"],"mappings":";;;;;AAeA,MAAMA,MAAM,gBAAGC,UAAU,CAA2C,CAACC,KAAK,EAAEC,GAAG,KAAI;EACjF,MAAM;IAAEC,MAAM;AAAEC,IAAAA,QAAQ,GAAG,KAAK;AAAEC,IAAAA,OAAO,GAAGA,MAAK,CAAE,CAAC;IAAEC,YAAY;AAAEC,IAAAA,KAAK,GAAG,EAAE;AAAEC,IAAAA;AAAE,GAAE,GAAGP,KAAK;EAC5F,MAAM;IAAEQ,KAAK;IAAEC,IAAI;AAAEC,IAAAA;AAAS,GAAE,GAAGR,MAAM;AAEzC,EAAA,oBACES,GAAA,CAAA,IAAA,EAAA;AACEV,IAAAA,GAAG,EAAEA,GAAI;AACTW,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,eAAA,EAAeT,QAAQ,GAAG,MAAM,GAAG,OAAQ;IAC3CI,EAAE,EAAE,CAAA,OAAA,EAAUA,EAAE,CAAA,CAAG;AACnBM,IAAAA,SAAS,EAAEC,IAAI,CAAC,8CAA8C,EAAE;AAC9D,MAAA,2BAA2B,EAAEX;AAC9B,KAAA,CAAE;AACHE,IAAAA,YAAY,EAAEA,YAAa;AAAAU,IAAAA,QAAA,eAE3BC,IAAA,CAAA,GAAA,EAAA;AAAGH,MAAAA,SAAS,EAAC,eAAe;AAACI,MAAAA,IAAI,EAAC,GAAG;MAACC,QAAQ,EAAE,EAAG;AAACd,MAAAA,OAAO,EAAEA,OAAQ;MAAAW,QAAA,EAAA,cACnEJ,GAAA,CAACQ,SAAS,EAAA;AAACC,QAAAA,KAAK,EAAEZ,KAAM;AAACF,QAAAA,KAAK,EAAEA;AAAM,OAAA,CACtC,EAACG,IAAI,iBAAIE,GAAA,CAAA,MAAA,EAAA;AAAME,QAAAA,SAAS,EAAC,4BAA4B;AAAAE,QAAAA,QAAA,EAAEN;AAAI,OAAO,CAAC,EAClEC,SAAS,iBACRC,GAAA,CAACQ,SAAS,EAAA;AACRN,QAAAA,SAAS,EAAC,oCAAoC;AAC9CO,QAAAA,KAAK,EAAEV,SAAU;AACjBJ,QAAAA,KAAK,EAAEA;AAAM,OAAA,CAEhB;KACA;AACL,GAAI,CAAC;AAET,CAAC;;;;"}
@@ -12,6 +12,10 @@
12
12
  "neptune.DateLookup.goTo20YearView": "Go to 20 year view",
13
13
  "neptune.DateLookup.month": "month",
14
14
  "neptune.DateLookup.next": "next",
15
+ "neptune.DateLookup.notAvailable": "not available",
16
+ "neptune.DateLookup.outOfRangeAfter": "Please enter {min} or a later date.",
17
+ "neptune.DateLookup.outOfRangeBefore": "Please enter {max} or an earlier date.",
18
+ "neptune.DateLookup.outOfRangeBetween": "Please select a date between {min} and {max}.",
15
19
  "neptune.DateLookup.previous": "previous",
16
20
  "neptune.DateLookup.selected": "selected",
17
21
  "neptune.DateLookup.twentyYears": "20 years",
@@ -46,6 +50,7 @@
46
50
  "neptune.Table.loaded": "Table data has loaded",
47
51
  "neptune.Table.loading": "Table data is loading",
48
52
  "neptune.Table.refreshPage": "Refresh page",
53
+ "neptune.Typeahead.suggestionsLabel": "Suggestions",
49
54
  "neptune.Upload.csButtonText": "Upload another file?",
50
55
  "neptune.Upload.csFailureText": "Upload failed. Please, try again",
51
56
  "neptune.Upload.csSuccessText": "Upload complete!",
@@ -16,6 +16,10 @@ var en = {
16
16
  "neptune.DateLookup.goTo20YearView": "Go to 20 year view",
17
17
  "neptune.DateLookup.month": "month",
18
18
  "neptune.DateLookup.next": "next",
19
+ "neptune.DateLookup.notAvailable": "not available",
20
+ "neptune.DateLookup.outOfRangeAfter": "Please enter {min} or a later date.",
21
+ "neptune.DateLookup.outOfRangeBefore": "Please enter {max} or an earlier date.",
22
+ "neptune.DateLookup.outOfRangeBetween": "Please select a date between {min} and {max}.",
19
23
  "neptune.DateLookup.previous": "previous",
20
24
  "neptune.DateLookup.selected": "selected",
21
25
  "neptune.DateLookup.twentyYears": "20 years",
@@ -50,6 +54,7 @@ var en = {
50
54
  "neptune.Table.loaded": "Table data has loaded",
51
55
  "neptune.Table.loading": "Table data is loading",
52
56
  "neptune.Table.refreshPage": "Refresh page",
57
+ "neptune.Typeahead.suggestionsLabel": "Suggestions",
53
58
  "neptune.Upload.csButtonText": "Upload another file?",
54
59
  "neptune.Upload.csFailureText": "Upload failed. Please, try again",
55
60
  "neptune.Upload.csSuccessText": "Upload complete!",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,6 +12,10 @@ var en = {
12
12
  "neptune.DateLookup.goTo20YearView": "Go to 20 year view",
13
13
  "neptune.DateLookup.month": "month",
14
14
  "neptune.DateLookup.next": "next",
15
+ "neptune.DateLookup.notAvailable": "not available",
16
+ "neptune.DateLookup.outOfRangeAfter": "Please enter {min} or a later date.",
17
+ "neptune.DateLookup.outOfRangeBefore": "Please enter {max} or an earlier date.",
18
+ "neptune.DateLookup.outOfRangeBetween": "Please select a date between {min} and {max}.",
15
19
  "neptune.DateLookup.previous": "previous",
16
20
  "neptune.DateLookup.selected": "selected",
17
21
  "neptune.DateLookup.twentyYears": "20 years",
@@ -46,6 +50,7 @@ var en = {
46
50
  "neptune.Table.loaded": "Table data has loaded",
47
51
  "neptune.Table.loading": "Table data is loading",
48
52
  "neptune.Table.refreshPage": "Refresh page",
53
+ "neptune.Typeahead.suggestionsLabel": "Suggestions",
49
54
  "neptune.Upload.csButtonText": "Upload another file?",
50
55
  "neptune.Upload.csFailureText": "Upload failed. Please, try again",
51
56
  "neptune.Upload.csSuccessText": "Upload complete!",
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,7 +23,7 @@
23
23
  "neptune.Field.characterCount": "Felhasználva {current}/{max} karakter",
24
24
  "neptune.FlowNavigation.back": "vissza az előző lépéshez",
25
25
  "neptune.Info.ariaLabel": "További információ",
26
- "neptune.Label.optional": "(Válaszható)",
26
+ "neptune.Label.optional": "(Választható)",
27
27
  "neptune.Link.opensInNewTab": "(új lapon nyílik meg)",
28
28
  "neptune.MoneyInput.Select.placeholder": "Válassz ki egy lehetőséget...",
29
29
  "neptune.MoneyInput.Select.searchPlaceholder": "Írj be egy pénznemet vagy országot",
@@ -27,7 +27,7 @@ var hu = {
27
27
  "neptune.Field.characterCount": "Felhasználva {current}/{max} karakter",
28
28
  "neptune.FlowNavigation.back": "vissza az előző lépéshez",
29
29
  "neptune.Info.ariaLabel": "További információ",
30
- "neptune.Label.optional": "(Válaszható)",
30
+ "neptune.Label.optional": "(Választható)",
31
31
  "neptune.Link.opensInNewTab": "(új lapon nyílik meg)",
32
32
  "neptune.MoneyInput.Select.placeholder": "Válassz ki egy lehetőséget...",
33
33
  "neptune.MoneyInput.Select.searchPlaceholder": "Írj be egy pénznemet vagy országot",
@@ -23,7 +23,7 @@ var hu = {
23
23
  "neptune.Field.characterCount": "Felhasználva {current}/{max} karakter",
24
24
  "neptune.FlowNavigation.back": "vissza az előző lépéshez",
25
25
  "neptune.Info.ariaLabel": "További információ",
26
- "neptune.Label.optional": "(Válaszható)",
26
+ "neptune.Label.optional": "(Választható)",
27
27
  "neptune.Link.opensInNewTab": "(új lapon nyílik meg)",
28
28
  "neptune.MoneyInput.Select.placeholder": "Válassz ki egy lehetőséget...",
29
29
  "neptune.MoneyInput.Select.searchPlaceholder": "Írj be egy pénznemet vagy országot",
package/build/index.js CHANGED
@@ -15,6 +15,7 @@ var BadgeAssets = require('./_deprecated/Badge/BadgeAssets.js');
15
15
  var Body = require('./Body/Body.js');
16
16
  var Button_resolver = require('./Button/Button.resolver.js');
17
17
  var IconButton = require('./IconButton/IconButton.js');
18
+ var Calendar = require('./Calendar/Calendar.js');
18
19
  var Carousel = require('./Carousel/Carousel.js');
19
20
  var Card = require('./_deprecated/Card/Card.js');
20
21
  var Checkbox = require('./Checkbox/Checkbox.js');
@@ -31,7 +32,6 @@ var BaseCard = require('./common/BaseCard/BaseCard.js');
31
32
  var CriticalCommsBanner = require('./_deprecated/CriticalBanner/CriticalCommsBanner.js');
32
33
  var DateInput = require('./DateInput/DateInput.js');
33
34
  var DateLookup = require('./DateLookup/DateLookup.js');
34
- var Calendar = require('./Calendar/Calendar.js');
35
35
  var Decision = require('./Decision/Decision.js');
36
36
  var DefinitionList = require('./DefinitionList/DefinitionList.js');
37
37
  var Dimmer = require('./Dimmer/Dimmer.js');
@@ -76,6 +76,7 @@ var LegacyListItem = require('./_deprecated/LegacyListItem/LegacyListItem.js');
76
76
  var Loader = require('./Loader/Loader.js');
77
77
  var Logo = require('./Logo/Logo.js');
78
78
  var Markdown = require('./Markdown/Markdown.js');
79
+ var Markup = require('./Markup/Markup.js');
79
80
  var Modal = require('./Modal/Modal.js');
80
81
  var Money = require('./Money/Money.js');
81
82
  var MoneyInput = require('./MoneyInput/MoneyInput.js');
@@ -177,6 +178,7 @@ exports.BadgeAssets = BadgeAssets.default;
177
178
  exports.Body = Body.default;
178
179
  exports.Button = Button_resolver.default;
179
180
  exports.IconButton = IconButton.default;
181
+ exports.Calendar = Calendar.default;
180
182
  exports.Carousel = Carousel.default;
181
183
  exports.Card = Card.default;
182
184
  exports.Checkbox = Checkbox.default;
@@ -193,7 +195,6 @@ exports.BaseCard = BaseCard.default;
193
195
  exports.CriticalCommsBanner = CriticalCommsBanner.default;
194
196
  exports.DateInput = DateInput.default;
195
197
  exports.DateLookup = DateLookup.default;
196
- exports.Calendar = Calendar.default;
197
198
  exports.Decision = Decision.default;
198
199
  Object.defineProperty(exports, "DecisionPresentation", {
199
200
  enumerable: true,
@@ -244,6 +245,7 @@ Object.defineProperty(exports, "LogoType", {
244
245
  get: function () { return Logo.LogoType; }
245
246
  });
246
247
  exports.Markdown = Markdown.default;
248
+ exports.Markup = Markup.Markup;
247
249
  exports.Modal = Modal.default;
248
250
  exports.Money = Money.default;
249
251
  exports.MoneyInput = MoneyInput.default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/build/index.mjs CHANGED
@@ -13,6 +13,7 @@ export { default as BadgeAssets } from './_deprecated/Badge/BadgeAssets.mjs';
13
13
  export { default as Body } from './Body/Body.mjs';
14
14
  export { default as Button } from './Button/Button.resolver.mjs';
15
15
  export { default as IconButton } from './IconButton/IconButton.mjs';
16
+ export { default as Calendar } from './Calendar/Calendar.mjs';
16
17
  export { default as Carousel } from './Carousel/Carousel.mjs';
17
18
  export { default as Card } from './_deprecated/Card/Card.mjs';
18
19
  export { default as Checkbox } from './Checkbox/Checkbox.mjs';
@@ -29,7 +30,6 @@ export { default as BaseCard } from './common/BaseCard/BaseCard.mjs';
29
30
  export { default as CriticalCommsBanner } from './_deprecated/CriticalBanner/CriticalCommsBanner.mjs';
30
31
  export { default as DateInput } from './DateInput/DateInput.mjs';
31
32
  export { default as DateLookup } from './DateLookup/DateLookup.mjs';
32
- export { default as Calendar } from './Calendar/Calendar.mjs';
33
33
  export { default as Decision, DecisionPresentation, DecisionType } from './Decision/Decision.mjs';
34
34
  export { default as DefinitionList } from './DefinitionList/DefinitionList.mjs';
35
35
  export { default as Dimmer } from './Dimmer/Dimmer.mjs';
@@ -74,6 +74,7 @@ export { default as LegacyListItem } from './_deprecated/LegacyListItem/LegacyLi
74
74
  export { default as Loader } from './Loader/Loader.mjs';
75
75
  export { default as Logo, LogoType } from './Logo/Logo.mjs';
76
76
  export { default as Markdown } from './Markdown/Markdown.mjs';
77
+ export { Markup } from './Markup/Markup.mjs';
77
78
  export { default as Modal } from './Modal/Modal.mjs';
78
79
  export { default as Money } from './Money/Money.mjs';
79
80
  export { default as MoneyInput } from './MoneyInput/MoneyInput.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}