@transferwise/components 0.0.0-experimental-92d8ee4 → 0.0.0-experimental-5535cba

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 (429) hide show
  1. package/build/accordion/Accordion.js +4 -2
  2. package/build/accordion/Accordion.js.map +1 -1
  3. package/build/accordion/AccordionItem/AccordionItem.js +6 -4
  4. package/build/accordion/AccordionItem/AccordionItem.js.map +1 -1
  5. package/build/actionButton/ActionButton.js +3 -1
  6. package/build/actionButton/ActionButton.js.map +1 -1
  7. package/build/actionOption/ActionOption.js +5 -3
  8. package/build/actionOption/ActionOption.js.map +1 -1
  9. package/build/alert/Alert.js +4 -4
  10. package/build/alert/Alert.js.map +1 -1
  11. package/build/alert/inlineMarkdown/InlineMarkdown.js +4 -2
  12. package/build/alert/inlineMarkdown/InlineMarkdown.js.map +1 -1
  13. package/build/avatar/Avatar.js +3 -1
  14. package/build/avatar/Avatar.js.map +1 -1
  15. package/build/avatarLayout/AvatarLayout.js +5 -3
  16. package/build/avatarLayout/AvatarLayout.js.map +1 -1
  17. package/build/avatarView/AvatarView.js +9 -7
  18. package/build/avatarView/AvatarView.js.map +1 -1
  19. package/build/avatarView/NotificationDot.js +3 -1
  20. package/build/avatarView/NotificationDot.js.map +1 -1
  21. package/build/avatarWrapper/AvatarWrapper.js +8 -6
  22. package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
  23. package/build/avatarWrapper/AvatarWrapper.mjs +1 -1
  24. package/build/avatarWrapper/index.js +3 -1
  25. package/build/avatarWrapper/index.js.map +1 -1
  26. package/build/badge/Badge.js +3 -1
  27. package/build/badge/Badge.js.map +1 -1
  28. package/build/badge/Badge.mjs.map +1 -1
  29. package/build/badge/BadgeAssets.js +9 -7
  30. package/build/badge/BadgeAssets.js.map +1 -1
  31. package/build/badge/BadgeAssets.mjs +2 -2
  32. package/build/badge/BadgeAssets.mjs.map +1 -1
  33. package/build/body/Body.js +3 -1
  34. package/build/body/Body.js.map +1 -1
  35. package/build/button/Button.js +8 -6
  36. package/build/button/Button.js.map +1 -1
  37. package/build/button/Button.resolver.js +5 -3
  38. package/build/button/Button.resolver.js.map +1 -1
  39. package/build/button/LegacyButton.js +5 -3
  40. package/build/button/LegacyButton.js.map +1 -1
  41. package/build/card/Card.js +6 -4
  42. package/build/card/Card.js.map +1 -1
  43. package/build/carousel/Carousel.js +7 -5
  44. package/build/carousel/Carousel.js.map +1 -1
  45. package/build/checkbox/Checkbox.js +6 -4
  46. package/build/checkbox/Checkbox.js.map +1 -1
  47. package/build/checkboxButton/CheckboxButton.js +3 -1
  48. package/build/checkboxButton/CheckboxButton.js.map +1 -1
  49. package/build/checkboxOption/CheckboxOption.js +5 -3
  50. package/build/checkboxOption/CheckboxOption.js.map +1 -1
  51. package/build/chevron/Chevron.js +3 -1
  52. package/build/chevron/Chevron.js.map +1 -1
  53. package/build/chips/Chip.js +4 -2
  54. package/build/chips/Chip.js.map +1 -1
  55. package/build/chips/Chips.js +5 -3
  56. package/build/chips/Chips.js.map +1 -1
  57. package/build/chips/Chips.messages.js +3 -1
  58. package/build/chips/Chips.messages.js.map +1 -1
  59. package/build/circularButton/CircularButton.js +5 -3
  60. package/build/circularButton/CircularButton.js.map +1 -1
  61. package/build/common/Option/Option.js +5 -3
  62. package/build/common/Option/Option.js.map +1 -1
  63. package/build/common/RadioButton/RadioButton.js +3 -1
  64. package/build/common/RadioButton/RadioButton.js.map +1 -1
  65. package/build/common/action/Action.js +2 -2
  66. package/build/common/action/Action.js.map +1 -1
  67. package/build/common/bottomSheet/BottomSheet.js +4 -2
  68. package/build/common/bottomSheet/BottomSheet.js.map +1 -1
  69. package/build/common/card/Card.js +3 -1
  70. package/build/common/card/Card.js.map +1 -1
  71. package/build/common/circle/Circle.js +3 -1
  72. package/build/common/circle/Circle.js.map +1 -1
  73. package/build/common/closeButton/CloseButton.js +1 -1
  74. package/build/common/closeButton/CloseButton.js.map +1 -1
  75. package/build/common/closeButton/CloseButton.messages.js +3 -1
  76. package/build/common/closeButton/CloseButton.messages.js.map +1 -1
  77. package/build/common/flowHeader/FlowHeader.js +3 -1
  78. package/build/common/flowHeader/FlowHeader.js.map +1 -1
  79. package/build/common/focusBoundary/FocusBoundary.js +3 -1
  80. package/build/common/focusBoundary/FocusBoundary.js.map +1 -1
  81. package/build/common/historyNavigator/historyNavigator.js +3 -1
  82. package/build/common/historyNavigator/historyNavigator.js.map +1 -1
  83. package/build/common/locale/index.js +0 -24
  84. package/build/common/locale/index.js.map +1 -1
  85. package/build/common/locale/index.mjs +0 -24
  86. package/build/common/locale/index.mjs.map +1 -1
  87. package/build/common/panel/Panel.js +3 -1
  88. package/build/common/panel/Panel.js.map +1 -1
  89. package/build/common/responsivePanel/ResponsivePanel.js +5 -3
  90. package/build/common/responsivePanel/ResponsivePanel.js.map +1 -1
  91. package/build/common/textFormat/formatWithPattern/formatWithPattern.js +4 -2
  92. package/build/common/textFormat/formatWithPattern/formatWithPattern.js.map +1 -1
  93. package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js +4 -2
  94. package/build/common/textFormat/getCountOfSymbolsInSelection/getCountOfSymbolsInSelection.js.map +1 -1
  95. package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js +4 -2
  96. package/build/common/textFormat/getCursorPositionAfterKeystroke/getCursorPositionAfterKeystroke.js.map +1 -1
  97. package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js +2 -2
  98. package/build/common/textFormat/getDistanceToSymbol/getDistanceToSymbol.js.map +1 -1
  99. package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js +3 -1
  100. package/build/common/textFormat/getSymbolsInPatternWithPosition/getSymbolsInPatternWithPosition.js.map +1 -1
  101. package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js +3 -1
  102. package/build/common/textFormat/unformatWithPattern/unformatWithPattern.js.map +1 -1
  103. package/build/criticalBanner/CriticalCommsBanner.js +3 -1
  104. package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
  105. package/build/dateInput/DateInput.js +15 -13
  106. package/build/dateInput/DateInput.js.map +1 -1
  107. package/build/dateInput/DateInput.messages.js +3 -1
  108. package/build/dateInput/DateInput.messages.js.map +1 -1
  109. package/build/dateInput/DateInput.mjs +3 -3
  110. package/build/dateInput/DateInput.mjs.map +1 -1
  111. package/build/dateLookup/DateLookup.js +8 -6
  112. package/build/dateLookup/DateLookup.js.map +1 -1
  113. package/build/dateLookup/DateLookup.messages.js +3 -1
  114. package/build/dateLookup/DateLookup.messages.js.map +1 -1
  115. package/build/dateLookup/dateHeader/DateHeader.js +10 -8
  116. package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
  117. package/build/dateLookup/dateTrigger/DateTrigger.js +8 -6
  118. package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
  119. package/build/dateLookup/dateTrigger/DateTrigger.messages.js +4 -2
  120. package/build/dateLookup/dateTrigger/DateTrigger.messages.js.map +1 -1
  121. package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs +2 -2
  122. package/build/dateLookup/dateTrigger/DateTrigger.messages.mjs.map +1 -1
  123. package/build/dateLookup/dateTrigger/DateTrigger.mjs +2 -2
  124. package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
  125. package/build/dateLookup/dayCalendar/DayCalendar.js +6 -4
  126. package/build/dateLookup/dayCalendar/DayCalendar.js.map +1 -1
  127. package/build/dateLookup/dayCalendar/table/DayCalendarTable.js +4 -2
  128. package/build/dateLookup/dayCalendar/table/DayCalendarTable.js.map +1 -1
  129. package/build/dateLookup/monthCalendar/MonthCalendar.js +6 -4
  130. package/build/dateLookup/monthCalendar/MonthCalendar.js.map +1 -1
  131. package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js +4 -2
  132. package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js.map +1 -1
  133. package/build/dateLookup/tableLink/TableLink.js +4 -2
  134. package/build/dateLookup/tableLink/TableLink.js.map +1 -1
  135. package/build/dateLookup/yearCalendar/YearCalendar.js +6 -4
  136. package/build/dateLookup/yearCalendar/YearCalendar.js.map +1 -1
  137. package/build/dateLookup/yearCalendar/table/YearCalendarTable.js +4 -2
  138. package/build/dateLookup/yearCalendar/table/YearCalendarTable.js.map +1 -1
  139. package/build/decision/Decision.js +2 -2
  140. package/build/decision/Decision.js.map +1 -1
  141. package/build/definitionList/DefinitionList.js +4 -2
  142. package/build/definitionList/DefinitionList.js.map +1 -1
  143. package/build/dimmer/Dimmer.js +3 -3
  144. package/build/dimmer/Dimmer.js.map +1 -1
  145. package/build/dimmer/dimmerManager/DimmerManager.js +3 -1
  146. package/build/dimmer/dimmerManager/DimmerManager.js.map +1 -1
  147. package/build/display/Display.js +3 -1
  148. package/build/display/Display.js.map +1 -1
  149. package/build/drawer/Drawer.js +4 -2
  150. package/build/drawer/Drawer.js.map +1 -1
  151. package/build/dropFade/DropFade.js +3 -1
  152. package/build/dropFade/DropFade.js.map +1 -1
  153. package/build/emphasis/Emphasis.js +4 -2
  154. package/build/emphasis/Emphasis.js.map +1 -1
  155. package/build/emphasis/EmphasisHtmlTransformer.js +3 -1
  156. package/build/emphasis/EmphasisHtmlTransformer.js.map +1 -1
  157. package/build/field/Field.js +1 -1
  158. package/build/field/Field.js.map +1 -1
  159. package/build/flowNavigation/FlowNavigation.js +8 -6
  160. package/build/flowNavigation/FlowNavigation.js.map +1 -1
  161. package/build/flowNavigation/FlowNavigation.messages.js +3 -1
  162. package/build/flowNavigation/FlowNavigation.messages.js.map +1 -1
  163. package/build/flowNavigation/animatedLabel/AnimatedLabel.js +5 -3
  164. package/build/flowNavigation/animatedLabel/AnimatedLabel.js.map +1 -1
  165. package/build/header/Header.js +4 -4
  166. package/build/header/Header.js.map +1 -1
  167. package/build/i18n/commonMessages/Button.messages.js +3 -1
  168. package/build/i18n/commonMessages/Button.messages.js.map +1 -1
  169. package/build/i18n/cs.json.js +3 -1
  170. package/build/i18n/cs.json.js.map +1 -1
  171. package/build/i18n/de.json.js +3 -1
  172. package/build/i18n/de.json.js.map +1 -1
  173. package/build/i18n/en.json.js +3 -1
  174. package/build/i18n/en.json.js.map +1 -1
  175. package/build/i18n/es.json.js +3 -1
  176. package/build/i18n/es.json.js.map +1 -1
  177. package/build/i18n/fr.json.js +3 -1
  178. package/build/i18n/fr.json.js.map +1 -1
  179. package/build/i18n/hu.json.js +3 -1
  180. package/build/i18n/hu.json.js.map +1 -1
  181. package/build/i18n/id.json.js +3 -1
  182. package/build/i18n/id.json.js.map +1 -1
  183. package/build/i18n/index.js +22 -20
  184. package/build/i18n/index.js.map +1 -1
  185. package/build/i18n/it.json.js +3 -1
  186. package/build/i18n/it.json.js.map +1 -1
  187. package/build/i18n/ja.json.js +3 -1
  188. package/build/i18n/ja.json.js.map +1 -1
  189. package/build/i18n/pl.json.js +3 -1
  190. package/build/i18n/pl.json.js.map +1 -1
  191. package/build/i18n/pt.json.js +3 -1
  192. package/build/i18n/pt.json.js.map +1 -1
  193. package/build/i18n/ro.json.js +3 -1
  194. package/build/i18n/ro.json.js.map +1 -1
  195. package/build/i18n/ru.json.js +3 -1
  196. package/build/i18n/ru.json.js.map +1 -1
  197. package/build/i18n/th.json.js +3 -1
  198. package/build/i18n/th.json.js.map +1 -1
  199. package/build/i18n/tr.json.js +3 -1
  200. package/build/i18n/tr.json.js.map +1 -1
  201. package/build/i18n/uk.json.js +3 -1
  202. package/build/i18n/uk.json.js.map +1 -1
  203. package/build/i18n/zh-CN.json.js +3 -1
  204. package/build/i18n/zh-CN.json.js.map +1 -1
  205. package/build/i18n/zh-HK.json.js +3 -1
  206. package/build/i18n/zh-HK.json.js.map +1 -1
  207. package/build/iconButton/IconButton.js +5 -3
  208. package/build/iconButton/IconButton.js.map +1 -1
  209. package/build/index.js +82 -82
  210. package/build/index.mjs +2 -2
  211. package/build/info/Info.js +8 -6
  212. package/build/info/Info.js.map +1 -1
  213. package/build/info/Info.messages.js +3 -1
  214. package/build/info/Info.messages.js.map +1 -1
  215. package/build/inlineAlert/InlineAlert.js +5 -3
  216. package/build/inlineAlert/InlineAlert.js.map +1 -1
  217. package/build/inputWithDisplayFormat/InputWithDisplayFormat.js +4 -2
  218. package/build/inputWithDisplayFormat/InputWithDisplayFormat.js.map +1 -1
  219. package/build/inputs/SelectInput.js +7 -8
  220. package/build/inputs/SelectInput.js.map +1 -1
  221. package/build/inputs/SelectInput.messages.js +3 -1
  222. package/build/inputs/SelectInput.messages.js.map +1 -1
  223. package/build/inputs/SelectInput.mjs +7 -8
  224. package/build/inputs/SelectInput.mjs.map +1 -1
  225. package/build/inputs/_BottomSheet.js +2 -5
  226. package/build/inputs/_BottomSheet.js.map +1 -1
  227. package/build/inputs/_BottomSheet.mjs +3 -6
  228. package/build/inputs/_BottomSheet.mjs.map +1 -1
  229. package/build/inputs/_Popover.js +2 -2
  230. package/build/inputs/_Popover.js.map +1 -1
  231. package/build/inputs/_Popover.mjs +2 -2
  232. package/build/inputs/_Popover.mjs.map +1 -1
  233. package/build/instructionsList/InstructionsList.js +4 -2
  234. package/build/instructionsList/InstructionsList.js.map +1 -1
  235. package/build/label/Label.js +3 -3
  236. package/build/label/Label.js.map +1 -1
  237. package/build/label/Label.messages.js +3 -1
  238. package/build/label/Label.messages.js.map +1 -1
  239. package/build/link/Link.js +5 -3
  240. package/build/link/Link.js.map +1 -1
  241. package/build/link/Link.messages.js +3 -1
  242. package/build/link/Link.messages.js.map +1 -1
  243. package/build/listItem/ListItem.js +5 -3
  244. package/build/listItem/ListItem.js.map +1 -1
  245. package/build/loader/Loader.js +3 -1
  246. package/build/loader/Loader.js.map +1 -1
  247. package/build/markdown/Markdown.js +3 -1
  248. package/build/markdown/Markdown.js.map +1 -1
  249. package/build/modal/Modal.js +5 -3
  250. package/build/modal/Modal.js.map +1 -1
  251. package/build/money/Money.js +3 -1
  252. package/build/money/Money.js.map +1 -1
  253. package/build/moneyInput/MoneyInput.js +7 -5
  254. package/build/moneyInput/MoneyInput.js.map +1 -1
  255. package/build/moneyInput/MoneyInput.messages.js +3 -1
  256. package/build/moneyInput/MoneyInput.messages.js.map +1 -1
  257. package/build/navigationOption/NavigationOption.js +5 -3
  258. package/build/navigationOption/NavigationOption.js.map +1 -1
  259. package/build/navigationOptionsList/NavigationOptionsList.js +3 -1
  260. package/build/navigationOptionsList/NavigationOptionsList.js.map +1 -1
  261. package/build/nudge/Nudge.js +2 -2
  262. package/build/nudge/Nudge.js.map +1 -1
  263. package/build/overlayHeader/OverlayHeader.js +4 -2
  264. package/build/overlayHeader/OverlayHeader.js.map +1 -1
  265. package/build/phoneNumberInput/PhoneNumberInput.js +5 -3
  266. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
  267. package/build/phoneNumberInput/PhoneNumberInput.messages.js +3 -1
  268. package/build/phoneNumberInput/PhoneNumberInput.messages.js.map +1 -1
  269. package/build/phoneNumberInput/data/countries.js +3 -1
  270. package/build/phoneNumberInput/data/countries.js.map +1 -1
  271. package/build/phoneNumberInput/utils/findCountryByCode/index.js +1 -1
  272. package/build/phoneNumberInput/utils/findCountryByCode/index.js.map +1 -1
  273. package/build/phoneNumberInput/utils/findCountryByPrefix/index.js +1 -1
  274. package/build/phoneNumberInput/utils/findCountryByPrefix/index.js.map +1 -1
  275. package/build/popover/Popover.js +5 -3
  276. package/build/popover/Popover.js.map +1 -1
  277. package/build/primitives/PrimitiveAnchor/PrimitiveAnchor.js +3 -1
  278. package/build/primitives/PrimitiveAnchor/PrimitiveAnchor.js.map +1 -1
  279. package/build/primitives/PrimitiveButton/PrimitiveButton.js +4 -2
  280. package/build/primitives/PrimitiveButton/PrimitiveButton.js.map +1 -1
  281. package/build/processIndicator/ProcessIndicator.js +3 -1
  282. package/build/processIndicator/ProcessIndicator.js.map +1 -1
  283. package/build/progress/Progress.js +3 -1
  284. package/build/progress/Progress.js.map +1 -1
  285. package/build/progressBar/ProgressBar.js +7 -5
  286. package/build/progressBar/ProgressBar.js.map +1 -1
  287. package/build/promoCard/PromoCard.js +8 -6
  288. package/build/promoCard/PromoCard.js.map +1 -1
  289. package/build/promoCard/PromoCardGroup.js +3 -1
  290. package/build/promoCard/PromoCardGroup.js.map +1 -1
  291. package/build/promoCard/PromoCardIndicator.js +5 -3
  292. package/build/promoCard/PromoCardIndicator.js.map +1 -1
  293. package/build/provider/Provider.js +4 -2
  294. package/build/provider/Provider.js.map +1 -1
  295. package/build/radio/Radio.js +6 -4
  296. package/build/radio/Radio.js.map +1 -1
  297. package/build/radioGroup/RadioGroup.js +4 -2
  298. package/build/radioGroup/RadioGroup.js.map +1 -1
  299. package/build/radioOption/RadioOption.js +5 -3
  300. package/build/radioOption/RadioOption.js.map +1 -1
  301. package/build/section/Section.js +3 -1
  302. package/build/section/Section.js.map +1 -1
  303. package/build/segmentedControl/SegmentedControl.js +5 -3
  304. package/build/segmentedControl/SegmentedControl.js.map +1 -1
  305. package/build/select/Select.js +13 -11
  306. package/build/select/Select.js.map +1 -1
  307. package/build/select/Select.messages.js +3 -1
  308. package/build/select/Select.messages.js.map +1 -1
  309. package/build/select/option/Option.js +6 -4
  310. package/build/select/option/Option.js.map +1 -1
  311. package/build/select/option/index.js +3 -1
  312. package/build/select/option/index.js.map +1 -1
  313. package/build/select/searchBox/SearchBox.js +3 -1
  314. package/build/select/searchBox/SearchBox.js.map +1 -1
  315. package/build/selectOption/SelectOption.js +10 -8
  316. package/build/selectOption/SelectOption.js.map +1 -1
  317. package/build/selectOption/SelectOption.messages.js +3 -1
  318. package/build/selectOption/SelectOption.messages.js.map +1 -1
  319. package/build/snackbar/Snackbar.js +3 -3
  320. package/build/snackbar/Snackbar.js.map +1 -1
  321. package/build/snackbar/SnackbarProvider.js +3 -1
  322. package/build/snackbar/SnackbarProvider.js.map +1 -1
  323. package/build/snackbar/useSnackbar.js +3 -1
  324. package/build/snackbar/useSnackbar.js.map +1 -1
  325. package/build/statusIcon/StatusIcon.js +12 -10
  326. package/build/statusIcon/StatusIcon.js.map +1 -1
  327. package/build/statusIcon/StatusIcon.messages.js +3 -1
  328. package/build/statusIcon/StatusIcon.messages.js.map +1 -1
  329. package/build/stepper/Stepper.js +4 -2
  330. package/build/stepper/Stepper.js.map +1 -1
  331. package/build/sticky/Sticky.js +3 -1
  332. package/build/sticky/Sticky.js.map +1 -1
  333. package/build/summary/Summary.js +9 -7
  334. package/build/summary/Summary.js.map +1 -1
  335. package/build/summary/Summary.messages.js +3 -1
  336. package/build/summary/Summary.messages.js.map +1 -1
  337. package/build/switch/Switch.js +3 -1
  338. package/build/switch/Switch.js.map +1 -1
  339. package/build/switchOption/SwitchOption.js +5 -3
  340. package/build/switchOption/SwitchOption.js.map +1 -1
  341. package/build/table/Table.js +16 -14
  342. package/build/table/Table.js.map +1 -1
  343. package/build/table/Table.messages.js +3 -1
  344. package/build/table/Table.messages.js.map +1 -1
  345. package/build/table/TableCell.js +9 -7
  346. package/build/table/TableCell.js.map +1 -1
  347. package/build/table/TableHeader.js +6 -4
  348. package/build/table/TableHeader.js.map +1 -1
  349. package/build/table/TableRow.js +6 -4
  350. package/build/table/TableRow.js.map +1 -1
  351. package/build/table/TableStatusText.js +4 -2
  352. package/build/table/TableStatusText.js.map +1 -1
  353. package/build/tabs/Tab.js +3 -1
  354. package/build/tabs/Tab.js.map +1 -1
  355. package/build/tabs/TabList.js +3 -1
  356. package/build/tabs/TabList.js.map +1 -1
  357. package/build/tabs/TabPanel.js +3 -1
  358. package/build/tabs/TabPanel.js.map +1 -1
  359. package/build/tabs/Tabs.js +6 -4
  360. package/build/tabs/Tabs.js.map +1 -1
  361. package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js +4 -2
  362. package/build/textareaWithDisplayFormat/TextareaWithDisplayFormat.js.map +1 -1
  363. package/build/tile/Tile.js +5 -3
  364. package/build/tile/Tile.js.map +1 -1
  365. package/build/title/Title.js +3 -1
  366. package/build/title/Title.js.map +1 -1
  367. package/build/tooltip/Tooltip.js +3 -1
  368. package/build/tooltip/Tooltip.js.map +1 -1
  369. package/build/typeahead/Typeahead.js +8 -6
  370. package/build/typeahead/Typeahead.js.map +1 -1
  371. package/build/typeahead/Typeahead.messages.js +3 -1
  372. package/build/typeahead/Typeahead.messages.js.map +1 -1
  373. package/build/typeahead/typeaheadInput/TypeaheadInput.js +3 -1
  374. package/build/typeahead/typeaheadInput/TypeaheadInput.js.map +1 -1
  375. package/build/typeahead/typeaheadOption/TypeaheadOption.js +5 -3
  376. package/build/typeahead/typeaheadOption/TypeaheadOption.js.map +1 -1
  377. package/build/typeahead/util/highlight.js +3 -1
  378. package/build/typeahead/util/highlight.js.map +1 -1
  379. package/build/types/badge/Badge.d.ts +1 -1
  380. package/build/types/badge/Badge.d.ts.map +1 -1
  381. package/build/types/badge/BadgeAssets.d.ts.map +1 -1
  382. package/build/types/common/locale/index.d.ts +1 -1
  383. package/build/types/common/locale/index.d.ts.map +1 -1
  384. package/build/types/dateInput/DateInput.d.ts +1 -1
  385. package/build/types/dateInput/DateInput.d.ts.map +1 -1
  386. package/build/types/inputs/SelectInput.d.ts.map +1 -1
  387. package/build/types/inputs/_BottomSheet.d.ts.map +1 -1
  388. package/build/types/inputs/_Popover.d.ts.map +1 -1
  389. package/build/upload/Upload.js +17 -17
  390. package/build/upload/Upload.js.map +1 -1
  391. package/build/upload/Upload.messages.js +3 -1
  392. package/build/upload/Upload.messages.js.map +1 -1
  393. package/build/upload/steps/completeStep/completeStep.js +30 -6
  394. package/build/upload/steps/completeStep/completeStep.js.map +1 -1
  395. package/build/upload/steps/completeStep/completeStep.mjs +24 -2
  396. package/build/upload/steps/completeStep/completeStep.mjs.map +1 -1
  397. package/build/upload/steps/processingStep/processingStep.js +6 -4
  398. package/build/upload/steps/processingStep/processingStep.js.map +1 -1
  399. package/build/upload/steps/uploadImageStep/uploadImageStep.js +5 -3
  400. package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
  401. package/build/uploadInput/UploadInput.js +13 -11
  402. package/build/uploadInput/UploadInput.js.map +1 -1
  403. package/build/uploadInput/UploadInput.messages.js +3 -1
  404. package/build/uploadInput/UploadInput.messages.js.map +1 -1
  405. package/build/uploadInput/uploadButton/UploadButton.js +8 -8
  406. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
  407. package/build/uploadInput/uploadButton/UploadButton.messages.js +3 -1
  408. package/build/uploadInput/uploadButton/UploadButton.messages.js.map +1 -1
  409. package/build/uploadInput/uploadButton/getAllowedFileTypes.js +3 -1
  410. package/build/uploadInput/uploadButton/getAllowedFileTypes.js.map +1 -1
  411. package/build/uploadInput/uploadItem/UploadItem.js +12 -12
  412. package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
  413. package/build/uploadInput/uploadItem/UploadItem.messages.js +3 -1
  414. package/build/uploadInput/uploadItem/UploadItem.messages.js.map +1 -1
  415. package/build/withDisplayFormat/WithDisplayFormat.js +19 -17
  416. package/build/withDisplayFormat/WithDisplayFormat.js.map +1 -1
  417. package/build/withId/withId.js +3 -1
  418. package/build/withId/withId.js.map +1 -1
  419. package/build/withNextPortal/withNextPortal.js +3 -1
  420. package/build/withNextPortal/withNextPortal.js.map +1 -1
  421. package/package.json +6 -6
  422. package/src/badge/Badge.tsx +1 -1
  423. package/src/badge/BadgeAssets.tsx +2 -2
  424. package/src/common/locale/index.ts +1 -1
  425. package/src/dateInput/DateInput.tsx +7 -1
  426. package/src/inputs/SelectInput.tsx +7 -13
  427. package/src/inputs/_BottomSheet.tsx +4 -7
  428. package/src/inputs/_Popover.tsx +1 -2
  429. package/src/upload/steps/completeStep/completeStep.tsx +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.mjs","sources":["../../src/inputs/SelectInput.tsx"],"sourcesContent":["import {\n Listbox as ListboxBase,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n} from '@headlessui/react';\nimport { Check, ChevronDown, Cross, CrossCircle } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport mergeProps from 'merge-props';\nimport {\n createContext,\n forwardRef,\n useContext,\n useDeferredValue,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIntl } from 'react-intl';\nimport { Virtualizer } from 'virtua';\n\nimport { useEffectEvent } from '../common/hooks/useEffectEvent';\nimport { useScreenSize } from '../common/hooks/useScreenSize';\nimport { PolymorphicWithOverrides } from '../common/polymorphicWithOverrides/PolymorphicWithOverrides';\nimport { Breakpoint } from '../common/propsValues/breakpoint';\nimport dateTriggerMessages from '../dateLookup/dateTrigger/DateTrigger.messages';\nimport { Merge } from '../utils';\n\nimport { BottomSheet } from './_BottomSheet';\nimport { ButtonInput } from './_ButtonInput';\nimport { Popover } from './_Popover';\nimport { useInputAttributes, WithInputAttributesProps } from './contexts';\nimport { InputGroup } from './InputGroup';\nimport { SearchInput } from './SearchInput';\nimport messages from './SelectInput.messages';\nimport Header from '../header';\nimport Section from '../section';\nimport { ButtonProps } from '../button/Button.types';\n\nconst MAX_ITEMS_WITHOUT_VIRTUALIZATION = 50;\n\nfunction searchableString(value: string) {\n return value.trim().replace(/\\s+/gu, ' ').normalize('NFKC').toLowerCase();\n}\n\nfunction inferSearchableStrings(value: unknown) {\n if (typeof value === 'string') {\n return [searchableString(value)];\n }\n\n if (typeof value === 'object' && value != null) {\n return Object.values(value)\n .filter((innerValue) => typeof innerValue === 'string')\n .map((innerValue) => searchableString(innerValue));\n }\n\n return [];\n}\n\nexport interface SelectInputOptionItem<T = string> {\n type: 'option';\n value: T;\n filterMatchers?: readonly string[];\n disabled?: boolean;\n}\n\nexport interface SelectInputGroupItem<T = string> {\n type: 'group';\n label: string;\n options: readonly SelectInputOptionItem<T>[];\n action?: {\n label: string;\n onClick: ButtonProps['onClick'];\n };\n}\n\nexport interface SelectInputSeparatorItem {\n type: 'separator';\n}\n\nexport type SelectInputItem<T = string> =\n | SelectInputOptionItem<T>\n | SelectInputGroupItem<T>\n | SelectInputSeparatorItem;\n\nfunction dedupeSelectInputOptionItem<T>(\n item: SelectInputOptionItem<T>,\n existingValues: Set<T>,\n): SelectInputOptionItem<T | undefined> {\n if (!existingValues.has(item.value)) {\n existingValues.add(item.value);\n return item;\n }\n return { ...item, value: undefined };\n}\n\n/**\n * Sets the `value` of duplicate option items to `undefined`, hiding them when\n * rendered. Indexes are kept intact within groups to preserve the active item\n * between filter changes when possible.\n */\nfunction dedupeSelectInputItems<T>(\n items: readonly SelectInputItem<T>[],\n): SelectInputItem<T | undefined>[] {\n const existingValues = new Set<T>();\n return items.map((item) => {\n switch (item.type) {\n case 'option': {\n return dedupeSelectInputOptionItem(item, existingValues);\n }\n case 'group': {\n return {\n ...item,\n options: item.options.map((option) =>\n dedupeSelectInputOptionItem(option, existingValues),\n ),\n };\n }\n default:\n }\n return item;\n });\n}\n\nfunction selectInputOptionItemIncludesNeedle<T>(item: SelectInputOptionItem<T>, needle: string) {\n return inferSearchableStrings(item.filterMatchers ?? item.value).some((haystack) =>\n haystack.includes(needle),\n );\n}\n\nfunction filterSelectInputItems<T>(\n items: readonly SelectInputItem<T>[],\n predicate: (item: SelectInputOptionItem<T>) => boolean,\n) {\n return items.filter((item) => {\n switch (item.type) {\n case 'option': {\n return predicate(item);\n }\n case 'group': {\n return item.options.some((option) => predicate(option));\n }\n default:\n }\n return false;\n });\n}\n\nexport interface SelectInputProps<T = string, M extends boolean = false> {\n id?: string;\n name?: string;\n multiple?: M;\n placeholder?: string;\n items: readonly SelectInputItem<NonNullable<T>>[];\n defaultValue?: M extends true ? readonly T[] : T;\n value?: M extends true ? readonly T[] : T;\n compareValues?:\n | (keyof NonNullable<T> & string)\n | ((a: T | undefined, b: T | undefined) => boolean);\n renderValue?: (value: NonNullable<T>, withinTrigger: boolean) => React.ReactNode;\n renderFooter?: (args: {\n resultsEmpty: boolean;\n queryNormalized: string | null | undefined;\n }) => React.ReactNode;\n renderTrigger?: (args: {\n content: React.ReactNode;\n placeholderShown: boolean;\n clear: (() => void) | undefined;\n disabled: boolean;\n size: 'sm' | 'md' | 'lg';\n className: string | undefined;\n }) => React.ReactNode;\n filterable?: boolean;\n filterPlaceholder?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n UNSAFE_triggerButtonProps?: WithInputAttributesProps['inputAttributes'] & {\n 'aria-label'?: string;\n };\n onFilterChange?: (args: { query: string; queryNormalized: string | null }) => void;\n onChange?: (value: M extends true ? T[] : T) => void;\n onClose?: () => void;\n onClear?: () => void;\n}\n\nconst defaultRenderTrigger = (({ content, placeholderShown, clear, disabled, size, className }) => (\n <InputGroup\n addonEnd={{\n content: (\n <span className={clsx('np-select-input-addon-container', disabled && 'disabled')}>\n {clear != null && !placeholderShown ? (\n <>\n <SelectInputClearButton\n onClick={(event) => {\n event.preventDefault();\n clear();\n }}\n />\n <span className=\"np-select-input-addon-separator\" />\n </>\n ) : null}\n\n <span className=\"np-select-input-addon\">\n <ChevronDown size={16} />\n </span>\n </span>\n ),\n initialContentWidth: 24 + 4,\n padding: 'sm',\n }}\n disabled={disabled}\n className={className}\n >\n <SelectInputTriggerButton as={ButtonInput} size={size}>\n <span\n className={clsx(\n 'np-select-input-content',\n placeholderShown && 'np-select-input-placeholder',\n )}\n >\n {content}\n </span>\n </SelectInputTriggerButton>\n </InputGroup>\n)) satisfies SelectInputProps['renderTrigger'];\n\ninterface SelectInputClearButtonProps\n extends Pick<React.ComponentPropsWithoutRef<'button'>, 'className' | 'onClick'> {}\n\nfunction SelectInputClearButton({ className, onClick }: SelectInputClearButtonProps) {\n const intl = useIntl();\n\n return (\n <button\n type=\"button\"\n aria-label={intl.formatMessage(dateTriggerMessages.ariaLabel)}\n className={clsx(className, 'np-select-input-addon np-select-input-addon--interactive')}\n onClick={onClick}\n >\n <Cross size={16} />\n </button>\n );\n}\n\nconst noop = () => {};\n\nexport function SelectInput<T = string, M extends boolean = false>({\n id: idProp,\n name,\n multiple,\n placeholder,\n items,\n defaultValue,\n value: controlledValue,\n compareValues,\n renderValue = String,\n renderFooter,\n renderTrigger = defaultRenderTrigger,\n filterable,\n filterPlaceholder,\n disabled,\n size = 'md',\n className,\n UNSAFE_triggerButtonProps,\n onFilterChange = noop,\n onChange,\n onClose,\n onClear,\n}: SelectInputProps<T, M>) {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const id = idProp ?? inputAttributes.id;\n\n const [open, setOpen] = useState(false);\n\n const initialized = useRef(false);\n const handleClose = useEffectEvent(onClose ?? (() => {}));\n useEffect(() => {\n if (initialized.current) {\n if (!open) {\n handleClose?.();\n }\n } else {\n initialized.current = true;\n }\n }, [handleClose, open]);\n\n const [filterQuery, _setFilterQuery] = useState('');\n const deferredFilterQuery = useDeferredValue(filterQuery);\n const setFilterQuery = useEffectEvent((query: string) => {\n _setFilterQuery(query);\n if (query !== filterQuery) {\n onFilterChange({\n query,\n queryNormalized: query ? searchableString(query) : null,\n });\n }\n });\n\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const screenSm = useScreenSize(Breakpoint.SMALL);\n const OptionsOverlay = screenSm ? Popover : BottomSheet;\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n const listboxRef = useRef<HTMLDivElement>(null);\n const controllerRef = filterable ? searchInputRef : listboxRef;\n\n /**\n * Attempts to resolve the `listbox` label\n * @see https://storybook.wise.design/?path=/docs/forms-selectinput-accessibility--docs#labelling\n */\n const getListBoxLabelProps = (): {\n listBoxLabel?: string;\n listBoxLabelledBy?: string;\n } => {\n if (UNSAFE_triggerButtonProps?.['aria-label']) {\n return {\n listBoxLabel: UNSAFE_triggerButtonProps['aria-label'],\n };\n }\n\n if (UNSAFE_triggerButtonProps?.['aria-labelledby']) {\n return {\n listBoxLabelledBy: UNSAFE_triggerButtonProps['aria-labelledby'],\n };\n }\n\n if (inputAttributes['aria-labelledby']) {\n return {\n listBoxLabelledBy: inputAttributes['aria-labelledby'],\n };\n }\n\n return {};\n };\n\n return (\n <ListboxBase\n name={name}\n multiple={multiple}\n defaultValue={defaultValue}\n value={controlledValue}\n by={compareValues}\n disabled={disabled}\n onChange={\n ((value) => {\n if (!multiple) {\n setOpen(false);\n }\n onChange?.(value);\n }) satisfies SelectInputProps<T, M>['onChange']\n }\n >\n {({ disabled: uiDisabled, value }) => {\n const placeholderShown =\n multiple && Array.isArray(value) ? value.length === 0 : value == null;\n return (\n <OptionsOverlay\n placement=\"bottom-end\"\n open={open}\n renderTrigger={({ ref, getInteractionProps }) => (\n <SelectInputTriggerButtonPropsContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n ref: (node) => {\n ref(node);\n triggerRef.current = node;\n },\n ...inputAttributes,\n ...UNSAFE_triggerButtonProps,\n id,\n ...mergeProps(\n {\n onClick: () => {\n setOpen((prev) => !prev);\n },\n onKeyDown: (event: React.KeyboardEvent) => {\n if (\n event.key === ' ' ||\n event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp'\n ) {\n setOpen((prev) => !prev);\n }\n },\n },\n getInteractionProps(),\n ),\n }}\n >\n {renderTrigger({\n content: !placeholderShown ? (\n <SelectInputOptionContentWithinTriggerContext.Provider value>\n {multiple && Array.isArray(value)\n ? (value as readonly NonNullable<T>[])\n .map((option) => renderValue(option, true))\n .filter((node) => node != null)\n .join(', ')\n : renderValue(value as NonNullable<T>, true)}\n </SelectInputOptionContentWithinTriggerContext.Provider>\n ) : (\n placeholder\n ),\n placeholderShown,\n clear:\n onClear != null\n ? () => {\n onClear();\n triggerRef.current?.focus({ preventScroll: true });\n }\n : undefined,\n disabled: uiDisabled,\n size,\n className,\n })}\n </SelectInputTriggerButtonPropsContext.Provider>\n )}\n initialFocusRef={controllerRef}\n size={filterable ? 'lg' : 'md'}\n padding=\"none\"\n onClose={() => {\n setOpen(false);\n }}\n onCloseEnd={() => {\n setFilterQuery('');\n }}\n >\n <SelectInputOptions\n id={id ? `${id}Search` : undefined}\n items={items}\n renderValue={renderValue}\n renderFooter={renderFooter}\n filterable={filterable}\n filterPlaceholder={filterPlaceholder}\n searchInputRef={searchInputRef}\n listboxRef={listboxRef}\n filterQuery={deferredFilterQuery}\n onFilterChange={setFilterQuery}\n {...getListBoxLabelProps()}\n />\n </OptionsOverlay>\n );\n }}\n </ListboxBase>\n );\n}\n\nconst SelectInputTriggerButtonPropsContext = createContext<{\n ref?: React.ForwardedRef<HTMLButtonElement | null>;\n id?: string;\n onClick?: (event: React.MouseEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n [key: string]: unknown;\n}>({});\n\ntype SelectInputTriggerButtonElementType = 'button' | React.ComponentType;\n\nexport type SelectInputTriggerButtonProps<\n T extends SelectInputTriggerButtonElementType = 'button',\n> = Merge<React.ComponentPropsWithoutRef<T>, { as?: T }>;\n\nexport function SelectInputTriggerButton<T extends SelectInputTriggerButtonElementType = 'button'>({\n as = 'button' as T,\n ...restProps\n}: SelectInputTriggerButtonProps<T>) {\n const { ref, onClick, onKeyDown, ...interactionProps } = useContext(\n SelectInputTriggerButtonPropsContext,\n );\n\n return (\n <ListboxButton\n ref={ref}\n as={PolymorphicWithOverrides}\n role=\"combobox\"\n __overrides={{ as, ...interactionProps }}\n {...mergeProps({ onClick, onKeyDown }, restProps)}\n />\n );\n}\n\ninterface SelectInputOptionsContainerProps extends React.ComponentPropsWithRef<'div'> {\n onAriaActiveDescendantChange: (value: React.AriaAttributes['aria-activedescendant']) => void;\n}\n\nconst SelectInputOptionsContainer = forwardRef(function SelectInputOptionsContainer(\n {\n 'aria-orientation': ariaOrientation,\n 'aria-activedescendant': ariaActiveDescendant,\n role,\n tabIndex,\n onAriaActiveDescendantChange,\n onKeyDown,\n ...restProps\n }: SelectInputOptionsContainerProps,\n ref: React.ForwardedRef<HTMLDivElement | null>,\n) {\n const handleAriaActiveDescendantChange = useEffectEvent(onAriaActiveDescendantChange);\n useEffect(() => {\n handleAriaActiveDescendantChange(ariaActiveDescendant);\n }, [ariaActiveDescendant, handleAriaActiveDescendantChange]);\n\n return (\n <div\n ref={ref}\n role=\"none\"\n onKeyDown={(event) => {\n // Prevent confirmation close without an active item\n if (event.key === 'Enter' && ariaActiveDescendant == null) {\n return;\n }\n\n // Prevent absorbing actions early\n if (event.key === 'Escape' || event.key === 'Tab') {\n onKeyDown?.({\n ...event,\n preventDefault: () => {},\n stopPropagation: () => {},\n });\n return;\n }\n\n onKeyDown?.(event);\n }}\n {...restProps}\n />\n );\n});\n\ninterface SelectInputOptionsProps<T = string>\n extends Pick<\n SelectInputProps<T>,\n 'items' | 'renderValue' | 'renderFooter' | 'filterable' | 'filterPlaceholder' | 'id'\n > {\n searchInputRef: React.MutableRefObject<HTMLInputElement | null>;\n listboxRef: React.MutableRefObject<HTMLDivElement | null>;\n filterQuery: string;\n onFilterChange: (query: string) => void;\n listBoxLabel?: string;\n listBoxLabelledBy?: string;\n}\n\nfunction SelectInputOptions<T = string>({\n id,\n items,\n renderValue = String,\n renderFooter,\n filterable = false,\n filterPlaceholder,\n searchInputRef,\n listboxRef,\n filterQuery,\n onFilterChange,\n listBoxLabel,\n listBoxLabelledBy,\n}: SelectInputOptionsProps<T>) {\n const intl = useIntl();\n const controllerRef = filterable ? searchInputRef : listboxRef;\n const [initialRender, setInitialRender] = useState(true);\n\n const needle = useMemo(() => {\n if (filterable) {\n return filterQuery ? searchableString(filterQuery) : null;\n }\n return undefined;\n }, [filterQuery, filterable]);\n useEffect(() => {\n if (needle) {\n // Ensure having an active option while filtering.\n // Without `requestAnimationFrame` upon which React depends for scheduling\n // updates, the active status would only show for a split second and then\n // disappear inadvertently.\n requestAnimationFrame(() => {\n if (\n controllerRef.current != null &&\n !controllerRef.current.hasAttribute('aria-activedescendant')\n ) {\n // Activate first option via synthetic key press\n controllerRef.current.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'Home', bubbles: true }),\n );\n }\n });\n }\n }, [controllerRef, needle]);\n\n const filteredItems: readonly SelectInputItem<NonNullable<T> | undefined>[] =\n needle != null\n ? filterSelectInputItems(dedupeSelectInputItems(items), (item) =>\n selectInputOptionItemIncludesNeedle(item, needle),\n )\n : items;\n const resultsEmpty = needle != null && filteredItems.length === 0;\n\n const virtualized = filteredItems.length > MAX_ITEMS_WITHOUT_VIRTUALIZATION;\n\n // Items shown once shall be kept mounted until the needle changes, otherwise\n // the scroll position may jump around inadvertently. Pattern adopted from:\n // https://inokawa.github.io/virtua/?path=/story/advanced-keep-offscreen-items--append-only\n const [mountedIndexes, setMountedIndexes] = useState<number[]>([]);\n useEffect(() => {\n // Ensure the 'End' key works as intended by keeping the last item mounted\n setMountedIndexes((prevMountedIndexes) => {\n const indexes = new Set(prevMountedIndexes);\n indexes.add(filteredItems.length - 1);\n return [...indexes]; // Sorting is redundant by nature here\n });\n }, [\n needle, // Needed as `filteredItems.length` may be equal between two updates\n filteredItems.length,\n ]);\n\n const listboxContainerRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (listboxContainerRef.current != null) {\n listboxContainerRef.current.style.setProperty(\n '--initial-height',\n `${listboxContainerRef.current.offsetHeight}px`,\n );\n }\n }, []);\n\n useEffect(() => {\n setInitialRender(false);\n }, []);\n\n const showStatus = resultsEmpty;\n const statusId = useId();\n const listboxId = useId();\n\n const getItemNode = (index: number) => {\n const item = filteredItems[index];\n return (\n <SelectInputItemView key={index} item={item} renderValue={renderValue} needle={needle} />\n );\n };\n\n return (\n <ListboxOptions\n modal\n as={SelectInputOptionsContainer}\n static\n className=\"np-select-input-options-container\"\n onAriaActiveDescendantChange={(value: React.AriaAttributes['aria-activedescendant']) => {\n if (controllerRef.current != null) {\n if (!initialRender && value != null) {\n controllerRef.current.setAttribute('aria-activedescendant', value);\n } else {\n controllerRef.current.removeAttribute('aria-activedescendant');\n }\n }\n }}\n >\n {filterable ? (\n <div className=\"np-select-input-query-container\">\n <SearchInput\n ref={searchInputRef}\n id={id}\n role=\"combobox\"\n shape=\"rectangle\"\n placeholder={filterPlaceholder}\n aria-label={filterPlaceholder}\n defaultValue={filterQuery}\n aria-autocomplete=\"list\"\n aria-expanded\n aria-controls={listboxId}\n aria-describedby={showStatus ? statusId : undefined}\n onKeyDown={(event) => {\n // Prevent interfering with the matcher of Headless UI\n // https://mathiasbynens.be/notes/javascript-unicode#regex\n if (/^.$/u.test(event.key)) {\n event.stopPropagation();\n }\n }}\n onChange={(event) => {\n // Free up resources and ensure not to go out of bounds when the\n // resulting item count is less than before\n setMountedIndexes([]);\n onFilterChange(event.currentTarget.value);\n }}\n />\n </div>\n ) : null}\n\n <section\n ref={listboxContainerRef}\n tabIndex={-1}\n className={clsx(\n 'np-select-input-listbox-container',\n virtualized && 'np-select-input-listbox-container--virtualized',\n needle == null && // Groups aren't shown when filtering\n items.some((item) => item.type === 'group') &&\n 'np-select-input-listbox-container--has-group',\n )}\n >\n {resultsEmpty ? (\n <div id={statusId} className=\"np-select-input-options-status\">\n <CrossCircle size={16} className=\"np-select-input-options-status-icon\" />\n {intl.formatMessage(messages.noResultsFound)}\n </div>\n ) : null}\n\n <div\n ref={listboxRef}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-label={listBoxLabel}\n aria-labelledby={listBoxLabelledBy}\n tabIndex={0}\n className=\"np-select-input-listbox\"\n >\n {!virtualized ? (\n filteredItems.map((_, index) => getItemNode(index))\n ) : (\n <Virtualizer\n key={needle}\n count={filteredItems.length}\n keepMounted={mountedIndexes}\n scrollRef={listboxRef} // `VList` doesn't expose this\n onRangeChange={(startIndex, endIndex) => {\n setMountedIndexes((prevMountedIndexes) => {\n const indexes = new Set(prevMountedIndexes);\n for (let index = startIndex; index <= endIndex; index += 1) {\n indexes.add(index);\n }\n return [...indexes].sort((a, b) => a - b);\n });\n }}\n >\n {(index) => (\n // The position of each item can't be inferred by browsers when\n // virtualizing, as some of the items may not be in the DOM\n <SelectInputItemsCountContext.Provider value={filteredItems.length}>\n <SelectInputItemPositionContext.Provider value={index + 1}>\n {getItemNode(index)}\n </SelectInputItemPositionContext.Provider>\n </SelectInputItemsCountContext.Provider>\n )}\n </Virtualizer>\n )}\n </div>\n\n {renderFooter != null ? (\n <footer className=\"np-select-input-footer\">\n <div\n role=\"none\"\n onKeyDown={(event) => {\n // Prevent interfering with Headless UI\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n }}\n >\n {renderFooter({\n resultsEmpty,\n queryNormalized: needle,\n })}\n </div>\n </footer>\n ) : null}\n </section>\n </ListboxOptions>\n );\n}\n\ninterface SelectInputItemViewProps<\n T = string,\n I extends SelectInputItem<T | undefined> = SelectInputItem<T | undefined>,\n> extends Required<Pick<SelectInputProps<T>, 'renderValue'>> {\n item: I;\n needle: string | null | undefined;\n}\n\nfunction SelectInputItemView<T = string>({\n item,\n renderValue,\n needle,\n}: SelectInputItemViewProps<T>) {\n switch (item.type) {\n case 'option': {\n if (\n item.value != null &&\n (needle == null || selectInputOptionItemIncludesNeedle(item, needle))\n ) {\n return (\n <SelectInputOption value={item.value} disabled={item.disabled}>\n {renderValue(item.value, false)}\n </SelectInputOption>\n );\n }\n break;\n }\n case 'group': {\n return <SelectInputGroupItemView item={item} renderValue={renderValue} needle={needle} />;\n }\n case 'separator': {\n if (needle == null) {\n return <hr className=\"np-select-input-separator-item\" />;\n }\n break;\n }\n }\n return null;\n}\n\ninterface SelectInputGroupItemViewProps<T = string>\n extends SelectInputItemViewProps<T, SelectInputGroupItem<T | undefined>> {}\n\nfunction SelectInputGroupItemView<T = string>({\n item,\n renderValue,\n needle,\n}: SelectInputGroupItemViewProps<T>) {\n const headerId = useId();\n\n const header = (\n <Header\n as=\"header\"\n role=\"none\"\n id={headerId}\n title={item.label}\n // @ts-expect-error when we migrate ActionButton to new Button this should be sorted\n action={\n item.action && {\n text: item.action.label,\n onClick: item.action.onClick,\n }\n }\n className=\"np-select-input-group-item-header p-x-1\"\n />\n );\n\n return (\n // An empty container may be rendered when no options match `needle`\n // However, pre-filtering would result in worse performance overall\n <Section\n as=\"section\"\n role=\"group\"\n aria-labelledby={headerId}\n className={clsx('m-y-0', needle === null && 'np-select-input-group-item--without-needle')}\n >\n {needle == null ? header : null}\n {item.options.map((option, index) => (\n <SelectInputItemView\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n item={option}\n renderValue={renderValue}\n needle={needle}\n />\n ))}\n </Section>\n );\n}\n\nconst SelectInputItemsCountContext = createContext<number | undefined>(undefined);\nconst SelectInputItemPositionContext = createContext<number | undefined>(undefined);\n\ninterface SelectInputOptionProps<T = string> {\n value: T;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\nfunction SelectInputOption<T = string>({ value, disabled, children }: SelectInputOptionProps<T>) {\n const itemsCount = useContext(SelectInputItemsCountContext);\n const itemPosition = useContext(SelectInputItemPositionContext);\n return (\n <ListboxOption\n as=\"div\"\n value={value}\n aria-setsize={itemsCount}\n aria-posinset={itemPosition}\n disabled={disabled}\n className={({ active, disabled: uiDisabled }) =>\n clsx(\n 'np-select-input-option-container np-text-body-large',\n active && 'np-select-input-option-container--active',\n uiDisabled && 'np-select-input-option-container--disabled',\n )\n }\n >\n {({ selected }) => (\n <>\n <div className=\"np-select-input-option\">{children}</div>\n <Check\n size={16}\n className={clsx(\n 'np-select-input-option-check',\n !selected && 'np-select-input-option-check--not-selected',\n )}\n />\n </>\n )}\n </ListboxOption>\n );\n}\n\nconst SelectInputOptionContentWithinTriggerContext = createContext(false);\n\nexport interface SelectInputOptionContentProps {\n title: string;\n note?: string;\n description?: string;\n icon?: React.ReactNode;\n}\n\nexport function SelectInputOptionContent({\n title,\n note,\n description,\n icon,\n}: SelectInputOptionContentProps) {\n const withinTrigger = useContext(SelectInputOptionContentWithinTriggerContext);\n\n return (\n <div\n className={clsx(\n 'np-select-input-option-content-container',\n (note || description) && 'np-text-body-large',\n )}\n >\n {icon ? (\n <div\n className={clsx(\n 'np-select-input-option-content-icon',\n !withinTrigger && 'np-select-input-option-content-icon--not-within-trigger',\n )}\n >\n {icon}\n </div>\n ) : null}\n\n <div className=\"np-select-input-option-content-text\">\n <div\n className={clsx(\n 'np-select-input-option-content-text-line-1',\n withinTrigger && 'np-select-input-option-content-text-within-trigger',\n )}\n >\n <div className=\"d-inline\">{title}</div>\n {note ? (\n <span className=\"np-select-input-option-content-text-secondary np-text-body-default\">\n {note}\n </span>\n ) : null}\n </div>\n\n {description ? (\n <div\n className={clsx(\n 'np-select-input-option-content-text-secondary np-text-body-default',\n withinTrigger && 'np-select-input-option-content-text-within-trigger',\n )}\n >\n {description}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":["MAX_ITEMS_WITHOUT_VIRTUALIZATION","searchableString","value","trim","replace","normalize","toLowerCase","inferSearchableStrings","Object","values","filter","innerValue","map","dedupeSelectInputOptionItem","item","existingValues","has","add","undefined","dedupeSelectInputItems","items","Set","type","options","option","selectInputOptionItemIncludesNeedle","needle","filterMatchers","some","haystack","includes","filterSelectInputItems","predicate","defaultRenderTrigger","content","placeholderShown","clear","disabled","size","className","_jsx","InputGroup","addonEnd","_jsxs","clsx","children","_Fragment","SelectInputClearButton","onClick","event","preventDefault","ChevronDown","initialContentWidth","padding","SelectInputTriggerButton","as","ButtonInput","intl","useIntl","formatMessage","dateTriggerMessages","ariaLabel","Cross","noop","SelectInput","id","idProp","name","multiple","placeholder","defaultValue","controlledValue","compareValues","renderValue","String","renderFooter","renderTrigger","filterable","filterPlaceholder","UNSAFE_triggerButtonProps","onFilterChange","onChange","onClose","onClear","inputAttributes","useInputAttributes","nonLabelable","open","setOpen","useState","initialized","useRef","handleClose","useEffectEvent","useEffect","current","filterQuery","_setFilterQuery","deferredFilterQuery","useDeferredValue","setFilterQuery","query","queryNormalized","triggerRef","screenSm","useScreenSize","Breakpoint","SMALL","OptionsOverlay","Popover","BottomSheet","searchInputRef","listboxRef","controllerRef","getListBoxLabelProps","listBoxLabel","listBoxLabelledBy","ListboxBase","by","uiDisabled","Array","isArray","length","placement","ref","getInteractionProps","SelectInputTriggerButtonPropsContext","Provider","node","mergeProps","prev","onKeyDown","key","SelectInputOptionContentWithinTriggerContext","join","focus","preventScroll","initialFocusRef","onCloseEnd","SelectInputOptions","createContext","restProps","interactionProps","useContext","ListboxButton","PolymorphicWithOverrides","role","__overrides","SelectInputOptionsContainer","forwardRef","ariaOrientation","ariaActiveDescendant","tabIndex","onAriaActiveDescendantChange","handleAriaActiveDescendantChange","stopPropagation","initialRender","setInitialRender","useMemo","requestAnimationFrame","hasAttribute","dispatchEvent","KeyboardEvent","bubbles","filteredItems","resultsEmpty","virtualized","mountedIndexes","setMountedIndexes","prevMountedIndexes","indexes","listboxContainerRef","style","setProperty","offsetHeight","showStatus","statusId","useId","listboxId","getItemNode","index","SelectInputItemView","ListboxOptions","modal","static","setAttribute","removeAttribute","SearchInput","shape","test","currentTarget","CrossCircle","messages","noResultsFound","_","Virtualizer","count","keepMounted","scrollRef","onRangeChange","startIndex","endIndex","sort","a","b","SelectInputItemsCountContext","SelectInputItemPositionContext","SelectInputOption","SelectInputGroupItemView","headerId","header","Header","title","label","action","text","Section","itemsCount","itemPosition","ListboxOption","active","selected","Check","SelectInputOptionContent","note","description","icon","withinTrigger"],"mappings":"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"}
1
+ {"version":3,"file":"SelectInput.mjs","sources":["../../src/inputs/SelectInput.tsx"],"sourcesContent":["import { Listbox as ListboxBase } from '@headlessui/react';\nimport { Check, ChevronDown, Cross, CrossCircle } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport mergeProps from 'merge-props';\nimport {\n createContext,\n forwardRef,\n useContext,\n useDeferredValue,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIntl } from 'react-intl';\nimport { Virtualizer } from 'virtua';\n\nimport { useEffectEvent } from '../common/hooks/useEffectEvent';\nimport { useScreenSize } from '../common/hooks/useScreenSize';\nimport { PolymorphicWithOverrides } from '../common/polymorphicWithOverrides/PolymorphicWithOverrides';\nimport { Breakpoint } from '../common/propsValues/breakpoint';\nimport dateTriggerMessages from '../dateLookup/dateTrigger/DateTrigger.messages';\nimport { Merge } from '../utils';\n\nimport { BottomSheet } from './_BottomSheet';\nimport { ButtonInput } from './_ButtonInput';\nimport { Popover } from './_Popover';\nimport { useInputAttributes, WithInputAttributesProps } from './contexts';\nimport { InputGroup } from './InputGroup';\nimport { SearchInput } from './SearchInput';\nimport messages from './SelectInput.messages';\nimport Header from '../header';\nimport Section from '../section';\nimport { ButtonProps } from '../button/Button.types';\n\nconst MAX_ITEMS_WITHOUT_VIRTUALIZATION = 50;\n\nfunction searchableString(value: string) {\n return value.trim().replace(/\\s+/gu, ' ').normalize('NFKC').toLowerCase();\n}\n\nfunction inferSearchableStrings(value: unknown) {\n if (typeof value === 'string') {\n return [searchableString(value)];\n }\n\n if (typeof value === 'object' && value != null) {\n return Object.values(value)\n .filter((innerValue) => typeof innerValue === 'string')\n .map((innerValue) => searchableString(innerValue));\n }\n\n return [];\n}\n\nexport interface SelectInputOptionItem<T = string> {\n type: 'option';\n value: T;\n filterMatchers?: readonly string[];\n disabled?: boolean;\n}\n\nexport interface SelectInputGroupItem<T = string> {\n type: 'group';\n label: string;\n options: readonly SelectInputOptionItem<T>[];\n action?: {\n label: string;\n onClick: ButtonProps['onClick'];\n };\n}\n\nexport interface SelectInputSeparatorItem {\n type: 'separator';\n}\n\nexport type SelectInputItem<T = string> =\n | SelectInputOptionItem<T>\n | SelectInputGroupItem<T>\n | SelectInputSeparatorItem;\n\nfunction dedupeSelectInputOptionItem<T>(\n item: SelectInputOptionItem<T>,\n existingValues: Set<T>,\n): SelectInputOptionItem<T | undefined> {\n if (!existingValues.has(item.value)) {\n existingValues.add(item.value);\n return item;\n }\n return { ...item, value: undefined };\n}\n\n/**\n * Sets the `value` of duplicate option items to `undefined`, hiding them when\n * rendered. Indexes are kept intact within groups to preserve the active item\n * between filter changes when possible.\n */\nfunction dedupeSelectInputItems<T>(\n items: readonly SelectInputItem<T>[],\n): SelectInputItem<T | undefined>[] {\n const existingValues = new Set<T>();\n return items.map((item) => {\n switch (item.type) {\n case 'option': {\n return dedupeSelectInputOptionItem(item, existingValues);\n }\n case 'group': {\n return {\n ...item,\n options: item.options.map((option) =>\n dedupeSelectInputOptionItem(option, existingValues),\n ),\n };\n }\n default:\n }\n return item;\n });\n}\n\nfunction selectInputOptionItemIncludesNeedle<T>(item: SelectInputOptionItem<T>, needle: string) {\n return inferSearchableStrings(item.filterMatchers ?? item.value).some((haystack) =>\n haystack.includes(needle),\n );\n}\n\nfunction filterSelectInputItems<T>(\n items: readonly SelectInputItem<T>[],\n predicate: (item: SelectInputOptionItem<T>) => boolean,\n) {\n return items.filter((item) => {\n switch (item.type) {\n case 'option': {\n return predicate(item);\n }\n case 'group': {\n return item.options.some((option) => predicate(option));\n }\n default:\n }\n return false;\n });\n}\n\nexport interface SelectInputProps<T = string, M extends boolean = false> {\n id?: string;\n name?: string;\n multiple?: M;\n placeholder?: string;\n items: readonly SelectInputItem<NonNullable<T>>[];\n defaultValue?: M extends true ? readonly T[] : T;\n value?: M extends true ? readonly T[] : T;\n compareValues?:\n | (keyof NonNullable<T> & string)\n | ((a: T | undefined, b: T | undefined) => boolean);\n renderValue?: (value: NonNullable<T>, withinTrigger: boolean) => React.ReactNode;\n renderFooter?: (args: {\n resultsEmpty: boolean;\n queryNormalized: string | null | undefined;\n }) => React.ReactNode;\n renderTrigger?: (args: {\n content: React.ReactNode;\n placeholderShown: boolean;\n clear: (() => void) | undefined;\n disabled: boolean;\n size: 'sm' | 'md' | 'lg';\n className: string | undefined;\n }) => React.ReactNode;\n filterable?: boolean;\n filterPlaceholder?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n UNSAFE_triggerButtonProps?: WithInputAttributesProps['inputAttributes'] & {\n 'aria-label'?: string;\n };\n onFilterChange?: (args: { query: string; queryNormalized: string | null }) => void;\n onChange?: (value: M extends true ? T[] : T) => void;\n onClose?: () => void;\n onClear?: () => void;\n}\n\nconst defaultRenderTrigger = (({ content, placeholderShown, clear, disabled, size, className }) => (\n <InputGroup\n addonEnd={{\n content: (\n <span className={clsx('np-select-input-addon-container', disabled && 'disabled')}>\n {clear != null && !placeholderShown ? (\n <>\n <SelectInputClearButton\n onClick={(event) => {\n event.preventDefault();\n clear();\n }}\n />\n <span className=\"np-select-input-addon-separator\" />\n </>\n ) : null}\n\n <span className=\"np-select-input-addon\">\n <ChevronDown size={16} />\n </span>\n </span>\n ),\n initialContentWidth: 24 + 4,\n padding: 'sm',\n }}\n disabled={disabled}\n className={className}\n >\n <SelectInputTriggerButton as={ButtonInput} size={size}>\n <span\n className={clsx(\n 'np-select-input-content',\n placeholderShown && 'np-select-input-placeholder',\n )}\n >\n {content}\n </span>\n </SelectInputTriggerButton>\n </InputGroup>\n)) satisfies SelectInputProps['renderTrigger'];\n\ninterface SelectInputClearButtonProps\n extends Pick<React.ComponentPropsWithoutRef<'button'>, 'className' | 'onClick'> {}\n\nfunction SelectInputClearButton({ className, onClick }: SelectInputClearButtonProps) {\n const intl = useIntl();\n\n return (\n <button\n type=\"button\"\n aria-label={intl.formatMessage(dateTriggerMessages.ariaLabel)}\n className={clsx(className, 'np-select-input-addon np-select-input-addon--interactive')}\n onClick={onClick}\n >\n <Cross size={16} />\n </button>\n );\n}\n\nconst noop = () => {};\n\nexport function SelectInput<T = string, M extends boolean = false>({\n id: idProp,\n name,\n multiple,\n placeholder,\n items,\n defaultValue,\n value: controlledValue,\n compareValues,\n renderValue = String,\n renderFooter,\n renderTrigger = defaultRenderTrigger,\n filterable,\n filterPlaceholder,\n disabled,\n size = 'md',\n className,\n UNSAFE_triggerButtonProps,\n onFilterChange = noop,\n onChange,\n onClose,\n onClear,\n}: SelectInputProps<T, M>) {\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const id = idProp ?? inputAttributes.id;\n\n const [open, setOpen] = useState(false);\n\n const initialized = useRef(false);\n const handleClose = useEffectEvent(onClose ?? (() => {}));\n useEffect(() => {\n if (initialized.current) {\n if (!open) {\n handleClose?.();\n }\n } else {\n initialized.current = true;\n }\n }, [handleClose, open]);\n\n const [filterQuery, _setFilterQuery] = useState('');\n const deferredFilterQuery = useDeferredValue(filterQuery);\n const setFilterQuery = useEffectEvent((query: string) => {\n _setFilterQuery(query);\n if (query !== filterQuery) {\n onFilterChange({\n query,\n queryNormalized: query ? searchableString(query) : null,\n });\n }\n });\n\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const screenSm = useScreenSize(Breakpoint.SMALL);\n const OptionsOverlay = screenSm ? Popover : BottomSheet;\n\n const searchInputRef = useRef<HTMLInputElement>(null);\n const listboxRef = useRef<HTMLDivElement>(null);\n const controllerRef = filterable ? searchInputRef : listboxRef;\n\n /**\n * Attempts to resolve the `listbox` label\n * @see https://storybook.wise.design/?path=/docs/forms-selectinput-accessibility--docs#labelling\n */\n const getListBoxLabelProps = (): {\n listBoxLabel?: string;\n listBoxLabelledBy?: string;\n } => {\n if (UNSAFE_triggerButtonProps?.['aria-label']) {\n return {\n listBoxLabel: UNSAFE_triggerButtonProps['aria-label'],\n };\n }\n\n if (UNSAFE_triggerButtonProps?.['aria-labelledby']) {\n return {\n listBoxLabelledBy: UNSAFE_triggerButtonProps['aria-labelledby'],\n };\n }\n\n if (inputAttributes['aria-labelledby']) {\n return {\n listBoxLabelledBy: inputAttributes['aria-labelledby'],\n };\n }\n\n return {};\n };\n\n return (\n <ListboxBase\n name={name}\n multiple={multiple}\n defaultValue={defaultValue}\n value={controlledValue}\n by={compareValues}\n disabled={disabled}\n onChange={\n ((value) => {\n if (!multiple) {\n setOpen(false);\n }\n onChange?.(value);\n }) satisfies SelectInputProps<T, M>['onChange']\n }\n >\n {({ disabled: uiDisabled, value }) => {\n const placeholderShown =\n multiple && Array.isArray(value) ? value.length === 0 : value == null;\n return (\n <OptionsOverlay\n placement=\"bottom-start\"\n open={open}\n renderTrigger={({ ref, getInteractionProps }) => (\n <SelectInputTriggerButtonPropsContext.Provider\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n value={{\n ref: (node) => {\n ref(node);\n triggerRef.current = node;\n },\n ...inputAttributes,\n ...UNSAFE_triggerButtonProps,\n id,\n ...mergeProps(\n {\n onClick: () => {\n setOpen((prev) => !prev);\n },\n onKeyDown: (event: React.KeyboardEvent) => {\n if (\n event.key === ' ' ||\n event.key === 'Enter' ||\n event.key === 'ArrowDown' ||\n event.key === 'ArrowUp'\n ) {\n setOpen((prev) => !prev);\n }\n },\n },\n getInteractionProps(),\n ),\n }}\n >\n {renderTrigger({\n content: !placeholderShown ? (\n <SelectInputOptionContentWithinTriggerContext.Provider value>\n {multiple && Array.isArray(value)\n ? (value as readonly NonNullable<T>[])\n .map((option) => renderValue(option, true))\n .filter((node) => node != null)\n .join(', ')\n : renderValue(value as NonNullable<T>, true)}\n </SelectInputOptionContentWithinTriggerContext.Provider>\n ) : (\n placeholder\n ),\n placeholderShown,\n clear:\n onClear != null\n ? () => {\n onClear();\n triggerRef.current?.focus({ preventScroll: true });\n }\n : undefined,\n disabled: uiDisabled,\n size,\n className,\n })}\n </SelectInputTriggerButtonPropsContext.Provider>\n )}\n initialFocusRef={controllerRef}\n size={filterable ? 'lg' : 'md'}\n padding=\"none\"\n onClose={() => {\n setOpen(false);\n }}\n onCloseEnd={() => {\n setFilterQuery('');\n }}\n >\n <SelectInputOptions\n id={id ? `${id}Search` : undefined}\n items={items}\n renderValue={renderValue}\n renderFooter={renderFooter}\n filterable={filterable}\n filterPlaceholder={filterPlaceholder}\n searchInputRef={searchInputRef}\n listboxRef={listboxRef}\n filterQuery={deferredFilterQuery}\n onFilterChange={setFilterQuery}\n {...getListBoxLabelProps()}\n />\n </OptionsOverlay>\n );\n }}\n </ListboxBase>\n );\n}\n\nconst SelectInputTriggerButtonPropsContext = createContext<{\n ref?: React.ForwardedRef<HTMLButtonElement | null>;\n id?: string;\n onClick?: (event: React.MouseEvent) => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n [key: string]: unknown;\n}>({});\n\ntype SelectInputTriggerButtonElementType = 'button' | React.ComponentType;\n\nexport type SelectInputTriggerButtonProps<\n T extends SelectInputTriggerButtonElementType = 'button',\n> = Merge<React.ComponentPropsWithoutRef<T>, { as?: T }>;\n\nexport function SelectInputTriggerButton<T extends SelectInputTriggerButtonElementType = 'button'>({\n as = 'button' as T,\n ...restProps\n}: SelectInputTriggerButtonProps<T>) {\n const { ref, onClick, onKeyDown, ...interactionProps } = useContext(\n SelectInputTriggerButtonPropsContext,\n );\n\n return (\n <ListboxBase.Button\n ref={ref}\n as={PolymorphicWithOverrides}\n role=\"combobox\"\n __overrides={{ as, ...interactionProps }}\n {...mergeProps({ onClick, onKeyDown }, restProps)}\n />\n );\n}\n\ninterface SelectInputOptionsContainerProps extends React.ComponentPropsWithRef<'div'> {\n onAriaActiveDescendantChange: (value: React.AriaAttributes['aria-activedescendant']) => void;\n}\n\nconst SelectInputOptionsContainer = forwardRef(function SelectInputOptionsContainer(\n {\n 'aria-orientation': ariaOrientation,\n 'aria-activedescendant': ariaActiveDescendant,\n role,\n tabIndex,\n onAriaActiveDescendantChange,\n onKeyDown,\n ...restProps\n }: SelectInputOptionsContainerProps,\n ref: React.ForwardedRef<HTMLDivElement | null>,\n) {\n const handleAriaActiveDescendantChange = useEffectEvent(onAriaActiveDescendantChange);\n useEffect(() => {\n handleAriaActiveDescendantChange(ariaActiveDescendant);\n }, [ariaActiveDescendant, handleAriaActiveDescendantChange]);\n\n return (\n <div\n ref={ref}\n role=\"none\"\n onKeyDown={(event) => {\n // Prevent confirmation close without an active item\n if (event.key === 'Enter' && ariaActiveDescendant == null) {\n return;\n }\n\n // Prevent absorbing actions early\n if (event.key === 'Escape' || event.key === 'Tab') {\n onKeyDown?.({\n ...event,\n preventDefault: () => {},\n stopPropagation: () => {},\n });\n return;\n }\n\n onKeyDown?.(event);\n }}\n {...restProps}\n />\n );\n});\n\ninterface SelectInputOptionsProps<T = string>\n extends Pick<\n SelectInputProps<T>,\n 'items' | 'renderValue' | 'renderFooter' | 'filterable' | 'filterPlaceholder' | 'id'\n > {\n searchInputRef: React.MutableRefObject<HTMLInputElement | null>;\n listboxRef: React.MutableRefObject<HTMLDivElement | null>;\n filterQuery: string;\n onFilterChange: (query: string) => void;\n listBoxLabel?: string;\n listBoxLabelledBy?: string;\n}\n\nfunction SelectInputOptions<T = string>({\n id,\n items,\n renderValue = String,\n renderFooter,\n filterable = false,\n filterPlaceholder,\n searchInputRef,\n listboxRef,\n filterQuery,\n onFilterChange,\n listBoxLabel,\n listBoxLabelledBy,\n}: SelectInputOptionsProps<T>) {\n const intl = useIntl();\n const controllerRef = filterable ? searchInputRef : listboxRef;\n const [initialRender, setInitialRender] = useState(true);\n\n const needle = useMemo(() => {\n if (filterable) {\n return filterQuery ? searchableString(filterQuery) : null;\n }\n return undefined;\n }, [filterQuery, filterable]);\n useEffect(() => {\n if (needle) {\n // Ensure having an active option while filtering.\n // Without `requestAnimationFrame` upon which React depends for scheduling\n // updates, the active status would only show for a split second and then\n // disappear inadvertently.\n requestAnimationFrame(() => {\n if (\n controllerRef.current != null &&\n !controllerRef.current.hasAttribute('aria-activedescendant')\n ) {\n // Activate first option via synthetic key press\n controllerRef.current.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'Home', bubbles: true }),\n );\n }\n });\n }\n }, [controllerRef, needle]);\n\n const filteredItems: readonly SelectInputItem<NonNullable<T> | undefined>[] =\n needle != null\n ? filterSelectInputItems(dedupeSelectInputItems(items), (item) =>\n selectInputOptionItemIncludesNeedle(item, needle),\n )\n : items;\n const resultsEmpty = needle != null && filteredItems.length === 0;\n\n const virtualized = filteredItems.length > MAX_ITEMS_WITHOUT_VIRTUALIZATION;\n\n // Items shown once shall be kept mounted until the needle changes, otherwise\n // the scroll position may jump around inadvertently. Pattern adopted from:\n // https://inokawa.github.io/virtua/?path=/story/advanced-keep-offscreen-items--append-only\n const [mountedIndexes, setMountedIndexes] = useState<number[]>([]);\n useEffect(() => {\n // Ensure the 'End' key works as intended by keeping the last item mounted\n setMountedIndexes((prevMountedIndexes) => {\n const indexes = new Set(prevMountedIndexes);\n indexes.add(filteredItems.length - 1);\n return [...indexes]; // Sorting is redundant by nature here\n });\n }, [\n needle, // Needed as `filteredItems.length` may be equal between two updates\n filteredItems.length,\n ]);\n\n const listboxContainerRef = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (listboxContainerRef.current != null) {\n listboxContainerRef.current.style.setProperty(\n '--initial-height',\n `${listboxContainerRef.current.offsetHeight}px`,\n );\n }\n }, []);\n\n useEffect(() => {\n setInitialRender(false);\n }, []);\n\n const showStatus = resultsEmpty;\n const statusId = useId();\n const listboxId = useId();\n\n const getItemNode = (index: number) => {\n const item = filteredItems[index];\n return (\n <SelectInputItemView key={index} item={item} renderValue={renderValue} needle={needle} />\n );\n };\n\n return (\n <ListboxBase.Options\n as={SelectInputOptionsContainer}\n static\n className=\"np-select-input-options-container\"\n onAriaActiveDescendantChange={(value: React.AriaAttributes['aria-activedescendant']) => {\n if (controllerRef.current != null) {\n if (!initialRender && value != null) {\n controllerRef.current.setAttribute('aria-activedescendant', value);\n } else {\n controllerRef.current.removeAttribute('aria-activedescendant');\n }\n }\n }}\n >\n {filterable ? (\n <div className=\"np-select-input-query-container\">\n <SearchInput\n ref={searchInputRef}\n id={id}\n role=\"combobox\"\n shape=\"rectangle\"\n placeholder={filterPlaceholder}\n aria-label={filterPlaceholder}\n defaultValue={filterQuery}\n aria-autocomplete=\"list\"\n aria-expanded\n aria-controls={listboxId}\n aria-describedby={showStatus ? statusId : undefined}\n onKeyDown={(event) => {\n // Prevent interfering with the matcher of Headless UI\n // https://mathiasbynens.be/notes/javascript-unicode#regex\n if (/^.$/u.test(event.key)) {\n event.stopPropagation();\n }\n }}\n onChange={(event) => {\n // Free up resources and ensure not to go out of bounds when the\n // resulting item count is less than before\n setMountedIndexes([]);\n onFilterChange(event.currentTarget.value);\n }}\n />\n </div>\n ) : null}\n\n <section\n ref={listboxContainerRef}\n tabIndex={-1}\n className={clsx(\n 'np-select-input-listbox-container',\n virtualized && 'np-select-input-listbox-container--virtualized',\n needle == null && // Groups aren't shown when filtering\n items.some((item) => item.type === 'group') &&\n 'np-select-input-listbox-container--has-group',\n )}\n >\n {resultsEmpty ? (\n <div id={statusId} className=\"np-select-input-options-status\">\n <CrossCircle size={16} className=\"np-select-input-options-status-icon\" />\n {intl.formatMessage(messages.noResultsFound)}\n </div>\n ) : null}\n\n <div\n ref={listboxRef}\n id={listboxId}\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-label={listBoxLabel}\n aria-labelledby={listBoxLabelledBy}\n tabIndex={0}\n className=\"np-select-input-listbox\"\n >\n {!virtualized ? (\n filteredItems.map((_, index) => getItemNode(index))\n ) : (\n <Virtualizer\n key={needle}\n count={filteredItems.length}\n keepMounted={mountedIndexes}\n scrollRef={listboxRef} // `VList` doesn't expose this\n onRangeChange={(startIndex, endIndex) => {\n setMountedIndexes((prevMountedIndexes) => {\n const indexes = new Set(prevMountedIndexes);\n for (let index = startIndex; index <= endIndex; index += 1) {\n indexes.add(index);\n }\n return [...indexes].sort((a, b) => a - b);\n });\n }}\n >\n {(index) => (\n // The position of each item can't be inferred by browsers when\n // virtualizing, as some of the items may not be in the DOM\n <SelectInputItemsCountContext.Provider value={filteredItems.length}>\n <SelectInputItemPositionContext.Provider value={index + 1}>\n {getItemNode(index)}\n </SelectInputItemPositionContext.Provider>\n </SelectInputItemsCountContext.Provider>\n )}\n </Virtualizer>\n )}\n </div>\n\n {renderFooter != null ? (\n <footer className=\"np-select-input-footer\">\n <div\n role=\"none\"\n onKeyDown={(event) => {\n // Prevent interfering with Headless UI\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n }}\n >\n {renderFooter({\n resultsEmpty,\n queryNormalized: needle,\n })}\n </div>\n </footer>\n ) : null}\n </section>\n </ListboxBase.Options>\n );\n}\n\ninterface SelectInputItemViewProps<\n T = string,\n I extends SelectInputItem<T | undefined> = SelectInputItem<T | undefined>,\n> extends Required<Pick<SelectInputProps<T>, 'renderValue'>> {\n item: I;\n needle: string | null | undefined;\n}\n\nfunction SelectInputItemView<T = string>({\n item,\n renderValue,\n needle,\n}: SelectInputItemViewProps<T>) {\n switch (item.type) {\n case 'option': {\n if (\n item.value != null &&\n (needle == null || selectInputOptionItemIncludesNeedle(item, needle))\n ) {\n return (\n <SelectInputOption value={item.value} disabled={item.disabled}>\n {renderValue(item.value, false)}\n </SelectInputOption>\n );\n }\n break;\n }\n case 'group': {\n return <SelectInputGroupItemView item={item} renderValue={renderValue} needle={needle} />;\n }\n case 'separator': {\n if (needle == null) {\n return <hr className=\"np-select-input-separator-item\" />;\n }\n break;\n }\n }\n return null;\n}\n\ninterface SelectInputGroupItemViewProps<T = string>\n extends SelectInputItemViewProps<T, SelectInputGroupItem<T | undefined>> {}\n\nfunction SelectInputGroupItemView<T = string>({\n item,\n renderValue,\n needle,\n}: SelectInputGroupItemViewProps<T>) {\n const headerId = useId();\n\n const header = (\n <Header\n as=\"header\"\n role=\"none\"\n id={headerId}\n title={item.label}\n // @ts-expect-error when we migrate ActionButton to new Button this should be sorted\n action={\n item.action && {\n text: item.action.label,\n onClick: item.action.onClick,\n }\n }\n className=\"np-select-input-group-item-header p-x-1\"\n />\n );\n\n return (\n // An empty container may be rendered when no options match `needle`\n // However, pre-filtering would result in worse performance overall\n <Section\n as=\"section\"\n role=\"group\"\n aria-labelledby={headerId}\n className={clsx('m-y-0', needle === null && 'np-select-input-group-item--without-needle')}\n >\n {needle == null ? header : null}\n {item.options.map((option, index) => (\n <SelectInputItemView\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n item={option}\n renderValue={renderValue}\n needle={needle}\n />\n ))}\n </Section>\n );\n}\n\nconst SelectInputItemsCountContext = createContext<number | undefined>(undefined);\nconst SelectInputItemPositionContext = createContext<number | undefined>(undefined);\n\ninterface SelectInputOptionProps<T = string> {\n value: T;\n disabled?: boolean;\n children?: React.ReactNode;\n}\n\nfunction SelectInputOption<T = string>({ value, disabled, children }: SelectInputOptionProps<T>) {\n const itemsCount = useContext(SelectInputItemsCountContext);\n const itemPosition = useContext(SelectInputItemPositionContext);\n return (\n <ListboxBase.Option\n as=\"div\"\n value={value}\n aria-setsize={itemsCount}\n aria-posinset={itemPosition}\n disabled={disabled}\n className={({ active, disabled: uiDisabled }) =>\n clsx(\n 'np-select-input-option-container np-text-body-large',\n active && 'np-select-input-option-container--active',\n uiDisabled && 'np-select-input-option-container--disabled',\n )\n }\n >\n {({ selected }) => (\n <>\n <div className=\"np-select-input-option\">{children}</div>\n <Check\n size={16}\n className={clsx(\n 'np-select-input-option-check',\n !selected && 'np-select-input-option-check--not-selected',\n )}\n />\n </>\n )}\n </ListboxBase.Option>\n );\n}\n\nconst SelectInputOptionContentWithinTriggerContext = createContext(false);\n\nexport interface SelectInputOptionContentProps {\n title: string;\n note?: string;\n description?: string;\n icon?: React.ReactNode;\n}\n\nexport function SelectInputOptionContent({\n title,\n note,\n description,\n icon,\n}: SelectInputOptionContentProps) {\n const withinTrigger = useContext(SelectInputOptionContentWithinTriggerContext);\n\n return (\n <div\n className={clsx(\n 'np-select-input-option-content-container',\n (note || description) && 'np-text-body-large',\n )}\n >\n {icon ? (\n <div\n className={clsx(\n 'np-select-input-option-content-icon',\n !withinTrigger && 'np-select-input-option-content-icon--not-within-trigger',\n )}\n >\n {icon}\n </div>\n ) : null}\n\n <div className=\"np-select-input-option-content-text\">\n <div\n className={clsx(\n 'np-select-input-option-content-text-line-1',\n withinTrigger && 'np-select-input-option-content-text-within-trigger',\n )}\n >\n <div className=\"d-inline\">{title}</div>\n {note ? (\n <span className=\"np-select-input-option-content-text-secondary np-text-body-default\">\n {note}\n </span>\n ) : null}\n </div>\n\n {description ? (\n <div\n className={clsx(\n 'np-select-input-option-content-text-secondary np-text-body-default',\n withinTrigger && 'np-select-input-option-content-text-within-trigger',\n )}\n >\n {description}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":["MAX_ITEMS_WITHOUT_VIRTUALIZATION","searchableString","value","trim","replace","normalize","toLowerCase","inferSearchableStrings","Object","values","filter","innerValue","map","dedupeSelectInputOptionItem","item","existingValues","has","add","undefined","dedupeSelectInputItems","items","Set","type","options","option","selectInputOptionItemIncludesNeedle","needle","filterMatchers","some","haystack","includes","filterSelectInputItems","predicate","defaultRenderTrigger","content","placeholderShown","clear","disabled","size","className","_jsx","InputGroup","addonEnd","_jsxs","clsx","children","_Fragment","SelectInputClearButton","onClick","event","preventDefault","ChevronDown","initialContentWidth","padding","SelectInputTriggerButton","as","ButtonInput","intl","useIntl","formatMessage","dateTriggerMessages","ariaLabel","Cross","noop","SelectInput","id","idProp","name","multiple","placeholder","defaultValue","controlledValue","compareValues","renderValue","String","renderFooter","renderTrigger","filterable","filterPlaceholder","UNSAFE_triggerButtonProps","onFilterChange","onChange","onClose","onClear","inputAttributes","useInputAttributes","nonLabelable","open","setOpen","useState","initialized","useRef","handleClose","useEffectEvent","useEffect","current","filterQuery","_setFilterQuery","deferredFilterQuery","useDeferredValue","setFilterQuery","query","queryNormalized","triggerRef","screenSm","useScreenSize","Breakpoint","SMALL","OptionsOverlay","Popover","BottomSheet","searchInputRef","listboxRef","controllerRef","getListBoxLabelProps","listBoxLabel","listBoxLabelledBy","ListboxBase","by","uiDisabled","Array","isArray","length","placement","ref","getInteractionProps","SelectInputTriggerButtonPropsContext","Provider","node","mergeProps","prev","onKeyDown","key","SelectInputOptionContentWithinTriggerContext","join","focus","preventScroll","initialFocusRef","onCloseEnd","SelectInputOptions","createContext","restProps","interactionProps","useContext","Button","PolymorphicWithOverrides","role","__overrides","SelectInputOptionsContainer","forwardRef","ariaOrientation","ariaActiveDescendant","tabIndex","onAriaActiveDescendantChange","handleAriaActiveDescendantChange","stopPropagation","initialRender","setInitialRender","useMemo","requestAnimationFrame","hasAttribute","dispatchEvent","KeyboardEvent","bubbles","filteredItems","resultsEmpty","virtualized","mountedIndexes","setMountedIndexes","prevMountedIndexes","indexes","listboxContainerRef","style","setProperty","offsetHeight","showStatus","statusId","useId","listboxId","getItemNode","index","SelectInputItemView","Options","static","setAttribute","removeAttribute","SearchInput","shape","test","currentTarget","CrossCircle","messages","noResultsFound","_","Virtualizer","count","keepMounted","scrollRef","onRangeChange","startIndex","endIndex","sort","a","b","SelectInputItemsCountContext","SelectInputItemPositionContext","SelectInputOption","SelectInputGroupItemView","headerId","header","Header","title","label","action","text","Section","itemsCount","itemPosition","Option","active","selected","Check","SelectInputOptionContent","note","description","icon","withinTrigger"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAoCA,MAAMA,gCAAgC,GAAG,EAAE,CAAA;AAE3C,SAASC,gBAAgBA,CAACC,KAAa,EAAA;EACrC,OAAOA,KAAK,CAACC,IAAI,EAAE,CAACC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAACC,SAAS,CAAC,MAAM,CAAC,CAACC,WAAW,EAAE,CAAA;AAC3E,CAAA;AAEA,SAASC,sBAAsBA,CAACL,KAAc,EAAA;AAC5C,EAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;AAC7B,IAAA,OAAO,CAACD,gBAAgB,CAACC,KAAK,CAAC,CAAC,CAAA;AAClC,GAAA;EAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,IAAI,IAAI,EAAE;IAC9C,OAAOM,MAAM,CAACC,MAAM,CAACP,KAAK,CAAC,CACxBQ,MAAM,CAAEC,UAAU,IAAK,OAAOA,UAAU,KAAK,QAAQ,CAAC,CACtDC,GAAG,CAAED,UAAU,IAAKV,gBAAgB,CAACU,UAAU,CAAC,CAAC,CAAA;AACtD,GAAA;AAEA,EAAA,OAAO,EAAE,CAAA;AACX,CAAA;AA4BA,SAASE,2BAA2BA,CAClCC,IAA8B,EAC9BC,cAAsB,EAAA;EAEtB,IAAI,CAACA,cAAc,CAACC,GAAG,CAACF,IAAI,CAACZ,KAAK,CAAC,EAAE;AACnCa,IAAAA,cAAc,CAACE,GAAG,CAACH,IAAI,CAACZ,KAAK,CAAC,CAAA;AAC9B,IAAA,OAAOY,IAAI,CAAA;AACb,GAAA;EACA,OAAO;AAAE,IAAA,GAAGA,IAAI;AAAEZ,IAAAA,KAAK,EAAEgB,SAAAA;GAAW,CAAA;AACtC,CAAA;AAEA;;;;AAIG;AACH,SAASC,sBAAsBA,CAC7BC,KAAoC,EAAA;AAEpC,EAAA,MAAML,cAAc,GAAG,IAAIM,GAAG,EAAK,CAAA;AACnC,EAAA,OAAOD,KAAK,CAACR,GAAG,CAAEE,IAAI,IAAI;IACxB,QAAQA,IAAI,CAACQ,IAAI;AACf,MAAA,KAAK,QAAQ;AAAE,QAAA;AACb,UAAA,OAAOT,2BAA2B,CAACC,IAAI,EAAEC,cAAc,CAAC,CAAA;AAC1D,SAAA;AACA,MAAA,KAAK,OAAO;AAAE,QAAA;UACZ,OAAO;AACL,YAAA,GAAGD,IAAI;AACPS,YAAAA,OAAO,EAAET,IAAI,CAACS,OAAO,CAACX,GAAG,CAAEY,MAAM,IAC/BX,2BAA2B,CAACW,MAAM,EAAET,cAAc,CAAC,CAAA;WAEtD,CAAA;AACH,SAAA;AAEF,KAAA;AACA,IAAA,OAAOD,IAAI,CAAA;AACb,GAAC,CAAC,CAAA;AACJ,CAAA;AAEA,SAASW,mCAAmCA,CAAIX,IAA8B,EAAEY,MAAc,EAAA;EAC5F,OAAOnB,sBAAsB,CAACO,IAAI,CAACa,cAAc,IAAIb,IAAI,CAACZ,KAAK,CAAC,CAAC0B,IAAI,CAAEC,QAAQ,IAC7EA,QAAQ,CAACC,QAAQ,CAACJ,MAAM,CAAC,CAC1B,CAAA;AACH,CAAA;AAEA,SAASK,sBAAsBA,CAC7BX,KAAoC,EACpCY,SAAsD,EAAA;AAEtD,EAAA,OAAOZ,KAAK,CAACV,MAAM,CAAEI,IAAI,IAAI;IAC3B,QAAQA,IAAI,CAACQ,IAAI;AACf,MAAA,KAAK,QAAQ;AAAE,QAAA;UACb,OAAOU,SAAS,CAAClB,IAAI,CAAC,CAAA;AACxB,SAAA;AACA,MAAA,KAAK,OAAO;AAAE,QAAA;AACZ,UAAA,OAAOA,IAAI,CAACS,OAAO,CAACK,IAAI,CAAEJ,MAAM,IAAKQ,SAAS,CAACR,MAAM,CAAC,CAAC,CAAA;AACzD,SAAA;AAEF,KAAA;AACA,IAAA,OAAO,KAAK,CAAA;AACd,GAAC,CAAC,CAAA;AACJ,CAAA;AAwCA,MAAMS,oBAAoB,GAAIA,CAAC;EAAEC,OAAO;EAAEC,gBAAgB;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,IAAI;AAAEC,EAAAA,SAAAA;AAAW,CAAA,kBAC5FC,GAAA,CAACC,UAAU,EAAA;AACTC,EAAAA,QAAQ,EAAE;AACRR,IAAAA,OAAO,eACLS,IAAA,CAAA,MAAA,EAAA;MAAMJ,SAAS,EAAEK,IAAI,CAAC,iCAAiC,EAAEP,QAAQ,IAAI,UAAU,CAAE;MAAAQ,QAAA,EAAA,CAC9ET,KAAK,IAAI,IAAI,IAAI,CAACD,gBAAgB,gBACjCQ,IAAA,CAAAG,QAAA,EAAA;QAAAD,QAAA,EAAA,cACEL,GAAA,CAACO,sBAAsB,EAAA;UACrBC,OAAO,EAAGC,KAAK,IAAI;YACjBA,KAAK,CAACC,cAAc,EAAE,CAAA;AACtBd,YAAAA,KAAK,EAAE,CAAA;AACT,WAAA;SAEF,CAAA,eAAAI,GAAA,CAAA,MAAA,EAAA;AAAMD,UAAAA,SAAS,EAAC,iCAAA;AAAiC,SACnD,CAAA,CAAA;AAAA,OAAA,CAAG,GACD,IAAI,eAERC,GAAA,CAAA,MAAA,EAAA;AAAMD,QAAAA,SAAS,EAAC,uBAAuB;QAAAM,QAAA,eACrCL,GAAA,CAACW,WAAW,EAAA;AAACb,UAAAA,IAAI,EAAE,EAAA;SACrB,CAAA;AAAA,OAAM,CACR,CAAA;AAAA,KAAM,CACP;IACDc,mBAAmB,EAAE,EAAE,GAAG,CAAC;AAC3BC,IAAAA,OAAO,EAAE,IAAA;GACT;AACFhB,EAAAA,QAAQ,EAAEA,QAAS;AACnBE,EAAAA,SAAS,EAAEA,SAAU;EAAAM,QAAA,eAErBL,GAAA,CAACc,wBAAwB,EAAA;AAACC,IAAAA,EAAE,EAAEC,WAAY;AAAClB,IAAAA,IAAI,EAAEA,IAAK;AAAAO,IAAAA,QAAA,eACpDL,GAAA,CAAA,MAAA,EAAA;MACED,SAAS,EAAEK,IAAI,CACb,yBAAyB,EACzBT,gBAAgB,IAAI,6BAA6B,CACjD;AAAAU,MAAAA,QAAA,EAEDX,OAAAA;KACG,CAAA;GACkB,CAAA;AAC5B,CAAY,CACgC,CAAA;AAK9C,SAASa,sBAAsBA,CAAC;EAAER,SAAS;AAAES,EAAAA,OAAAA;AAAsC,CAAA,EAAA;AACjF,EAAA,MAAMS,IAAI,GAAGC,OAAO,EAAE,CAAA;AAEtB,EAAA,oBACElB,GAAA,CAAA,QAAA,EAAA;AACElB,IAAAA,IAAI,EAAC,QAAQ;AACb,IAAA,YAAA,EAAYmC,IAAI,CAACE,aAAa,CAACC,UAAmB,CAACC,SAAS,CAAE;AAC9DtB,IAAAA,SAAS,EAAEK,IAAI,CAACL,SAAS,EAAE,0DAA0D,CAAE;AACvFS,IAAAA,OAAO,EAAEA,OAAQ;IAAAH,QAAA,eAEjBL,GAAA,CAACsB,KAAK,EAAA;AAACxB,MAAAA,IAAI,EAAE,EAAA;KACf,CAAA;AAAA,GAAQ,CAAC,CAAA;AAEb,CAAA;AAEA,MAAMyB,IAAI,GAAGA,MAAK,EAAG,CAAA;AAEf,SAAUC,WAAWA,CAAwC;AACjEC,EAAAA,EAAE,EAAEC,MAAM;EACVC,IAAI;EACJC,QAAQ;EACRC,WAAW;EACXjD,KAAK;EACLkD,YAAY;AACZpE,EAAAA,KAAK,EAAEqE,eAAe;EACtBC,aAAa;AACbC,EAAAA,WAAW,GAAGC,MAAM;EACpBC,YAAY;AACZC,EAAAA,aAAa,GAAG3C,oBAAoB;EACpC4C,UAAU;EACVC,iBAAiB;EACjBzC,QAAQ;AACRC,EAAAA,IAAI,GAAG,IAAI;EACXC,SAAS;EACTwC,yBAAyB;AACzBC,EAAAA,cAAc,GAAGjB,IAAI;EACrBkB,QAAQ;EACRC,OAAO;AACPC,EAAAA,OAAAA;AACuB,CAAA,EAAA;EACvB,MAAMC,eAAe,GAAGC,kBAAkB,CAAC;AAAEC,IAAAA,YAAY,EAAE,IAAA;AAAM,GAAA,CAAC,CAAA;AAClE,EAAA,MAAMrB,EAAE,GAAGC,MAAM,IAAIkB,eAAe,CAACnB,EAAE,CAAA;EAEvC,MAAM,CAACsB,IAAI,EAAEC,OAAO,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEvC,EAAA,MAAMC,WAAW,GAAGC,MAAM,CAAC,KAAK,CAAC,CAAA;EACjC,MAAMC,WAAW,GAAGC,cAAc,CAACX,OAAO,KAAK,MAAK,EAAG,CAAC,CAAC,CAAA;AACzDY,EAAAA,SAAS,CAAC,MAAK;IACb,IAAIJ,WAAW,CAACK,OAAO,EAAE;MACvB,IAAI,CAACR,IAAI,EAAE;AACTK,QAAAA,WAAW,IAAI,CAAA;AACjB,OAAA;AACF,KAAC,MAAM;MACLF,WAAW,CAACK,OAAO,GAAG,IAAI,CAAA;AAC5B,KAAA;AACF,GAAC,EAAE,CAACH,WAAW,EAAEL,IAAI,CAAC,CAAC,CAAA;EAEvB,MAAM,CAACS,WAAW,EAAEC,eAAe,CAAC,GAAGR,QAAQ,CAAC,EAAE,CAAC,CAAA;AACnD,EAAA,MAAMS,mBAAmB,GAAGC,gBAAgB,CAACH,WAAW,CAAC,CAAA;AACzD,EAAA,MAAMI,cAAc,GAAGP,cAAc,CAAEQ,KAAa,IAAI;IACtDJ,eAAe,CAACI,KAAK,CAAC,CAAA;IACtB,IAAIA,KAAK,KAAKL,WAAW,EAAE;AACzBhB,MAAAA,cAAc,CAAC;QACbqB,KAAK;AACLC,QAAAA,eAAe,EAAED,KAAK,GAAGpG,gBAAgB,CAACoG,KAAK,CAAC,GAAG,IAAA;AACpD,OAAA,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAME,UAAU,GAAGZ,MAAM,CAA2B,IAAI,CAAC,CAAA;AAEzD,EAAA,MAAMa,QAAQ,GAAGC,aAAa,CAACC,UAAU,CAACC,KAAK,CAAC,CAAA;AAChD,EAAA,MAAMC,cAAc,GAAGJ,QAAQ,GAAGK,OAAO,GAAGC,WAAW,CAAA;AAEvD,EAAA,MAAMC,cAAc,GAAGpB,MAAM,CAAmB,IAAI,CAAC,CAAA;AACrD,EAAA,MAAMqB,UAAU,GAAGrB,MAAM,CAAiB,IAAI,CAAC,CAAA;AAC/C,EAAA,MAAMsB,aAAa,GAAGpC,UAAU,GAAGkC,cAAc,GAAGC,UAAU,CAAA;AAE9D;;;AAGG;EACH,MAAME,oBAAoB,GAAGA,MAGzB;AACF,IAAA,IAAInC,yBAAyB,GAAG,YAAY,CAAC,EAAE;MAC7C,OAAO;QACLoC,YAAY,EAAEpC,yBAAyB,CAAC,YAAY,CAAA;OACrD,CAAA;AACH,KAAA;AAEA,IAAA,IAAIA,yBAAyB,GAAG,iBAAiB,CAAC,EAAE;MAClD,OAAO;QACLqC,iBAAiB,EAAErC,yBAAyB,CAAC,iBAAiB,CAAA;OAC/D,CAAA;AACH,KAAA;AAEA,IAAA,IAAIK,eAAe,CAAC,iBAAiB,CAAC,EAAE;MACtC,OAAO;QACLgC,iBAAiB,EAAEhC,eAAe,CAAC,iBAAiB,CAAA;OACrD,CAAA;AACH,KAAA;AAEA,IAAA,OAAO,EAAE,CAAA;GACV,CAAA;EAED,oBACE5C,GAAA,CAAC6E,OAAW,EAAA;AACVlD,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,QAAQ,EAAEA,QAAS;AACnBE,IAAAA,YAAY,EAAEA,YAAa;AAC3BpE,IAAAA,KAAK,EAAEqE,eAAgB;AACvB+C,IAAAA,EAAE,EAAE9C,aAAc;AAClBnC,IAAAA,QAAQ,EAAEA,QAAS;IACnB4C,QAAQ,EACJ/E,KAAK,IAAI;MACT,IAAI,CAACkE,QAAQ,EAAE;QACboB,OAAO,CAAC,KAAK,CAAC,CAAA;AAChB,OAAA;MACAP,QAAQ,GAAG/E,KAAK,CAAC,CAAA;KAEpB;AAAA2C,IAAAA,QAAA,EAEAA,CAAC;AAAER,MAAAA,QAAQ,EAAEkF,UAAU;AAAErH,MAAAA,KAAAA;AAAO,KAAA,KAAI;AACnC,MAAA,MAAMiC,gBAAgB,GACpBiC,QAAQ,IAAIoD,KAAK,CAACC,OAAO,CAACvH,KAAK,CAAC,GAAGA,KAAK,CAACwH,MAAM,KAAK,CAAC,GAAGxH,KAAK,IAAI,IAAI,CAAA;MACvE,oBACEsC,GAAA,CAACoE,cAAc,EAAA;AACbe,QAAAA,SAAS,EAAC,cAAc;AACxBpC,QAAAA,IAAI,EAAEA,IAAK;AACXX,QAAAA,aAAa,EAAEA,CAAC;UAAEgD,GAAG;AAAEC,UAAAA,mBAAAA;AAAmB,SAAE,kBAC1CrF,GAAA,CAACsF,oCAAoC,CAACC,QAAQ,EAAA;AAC5C;AACA7H,UAAAA,KAAK,EAAE;YACL0H,GAAG,EAAGI,IAAI,IAAI;cACZJ,GAAG,CAACI,IAAI,CAAC,CAAA;cACTzB,UAAU,CAACR,OAAO,GAAGiC,IAAI,CAAA;aAC1B;AACD,YAAA,GAAG5C,eAAe;AAClB,YAAA,GAAGL,yBAAyB;YAC5Bd,EAAE;AACF,YAAA,GAAGgE,UAAU,CACX;cACEjF,OAAO,EAAEA,MAAK;AACZwC,gBAAAA,OAAO,CAAE0C,IAAI,IAAK,CAACA,IAAI,CAAC,CAAA;eACzB;cACDC,SAAS,EAAGlF,KAA0B,IAAI;gBACxC,IACEA,KAAK,CAACmF,GAAG,KAAK,GAAG,IACjBnF,KAAK,CAACmF,GAAG,KAAK,OAAO,IACrBnF,KAAK,CAACmF,GAAG,KAAK,WAAW,IACzBnF,KAAK,CAACmF,GAAG,KAAK,SAAS,EACvB;AACA5C,kBAAAA,OAAO,CAAE0C,IAAI,IAAK,CAACA,IAAI,CAAC,CAAA;AAC1B,iBAAA;AACF,eAAA;aACD,EACDL,mBAAmB,EAAE,CAAA;WAEvB;UAAAhF,QAAA,EAED+B,aAAa,CAAC;YACb1C,OAAO,EAAE,CAACC,gBAAgB,gBACxBK,GAAA,CAAC6F,4CAA4C,CAACN,QAAQ,EAAA;cAAC7H,KAAK,EAAA,IAAA;AAAA2C,cAAAA,QAAA,EACzDuB,QAAQ,IAAIoD,KAAK,CAACC,OAAO,CAACvH,KAAK,CAAC,GAC5BA,KAAmC,CACjCU,GAAG,CAAEY,MAAM,IAAKiD,WAAW,CAACjD,MAAM,EAAE,IAAI,CAAC,CAAC,CAC1Cd,MAAM,CAAEsH,IAAI,IAAKA,IAAI,IAAI,IAAI,CAAC,CAC9BM,IAAI,CAAC,IAAI,CAAC,GACb7D,WAAW,CAACvE,KAAuB,EAAE,IAAI,CAAA;aACQ,CAAC,GAExDmE,WACD;YACDlC,gBAAgB;AAChBC,YAAAA,KAAK,EACH+C,OAAO,IAAI,IAAI,GACX,MAAK;AACHA,cAAAA,OAAO,EAAE,CAAA;AACToB,cAAAA,UAAU,CAACR,OAAO,EAAEwC,KAAK,CAAC;AAAEC,gBAAAA,aAAa,EAAE,IAAA;AAAM,eAAA,CAAC,CAAA;AACpD,aAAC,GACDtH,SAAS;AACfmB,YAAAA,QAAQ,EAAEkF,UAAU;YACpBjF,IAAI;AACJC,YAAAA,SAAAA;WACD,CAAA;AAAC,SAC2C,CAC/C;AACFkG,QAAAA,eAAe,EAAExB,aAAc;AAC/B3E,QAAAA,IAAI,EAAEuC,UAAU,GAAG,IAAI,GAAG,IAAK;AAC/BxB,QAAAA,OAAO,EAAC,MAAM;QACd6B,OAAO,EAAEA,MAAK;UACZM,OAAO,CAAC,KAAK,CAAC,CAAA;SACd;QACFkD,UAAU,EAAEA,MAAK;UACftC,cAAc,CAAC,EAAE,CAAC,CAAA;SAClB;QAAAvD,QAAA,eAEFL,GAAA,CAACmG,kBAAkB,EAAA;AACjB1E,UAAAA,EAAE,EAAEA,EAAE,GAAG,GAAGA,EAAE,CAAA,MAAA,CAAQ,GAAG/C,SAAU;AACnCE,UAAAA,KAAK,EAAEA,KAAM;AACbqD,UAAAA,WAAW,EAAEA,WAAY;AACzBE,UAAAA,YAAY,EAAEA,YAAa;AAC3BE,UAAAA,UAAU,EAAEA,UAAW;AACvBC,UAAAA,iBAAiB,EAAEA,iBAAkB;AACrCiC,UAAAA,cAAc,EAAEA,cAAe;AAC/BC,UAAAA,UAAU,EAAEA,UAAW;AACvBhB,UAAAA,WAAW,EAAEE,mBAAoB;AACjClB,UAAAA,cAAc,EAAEoB,cAAe;AAAA,UAAA,GAC3Bc,oBAAoB,EAAA;SAE5B,CAAA;AAAA,OAAgB,CAAC,CAAA;AAErB,KAAA;AAAC,GACU,CAAC,CAAA;AAElB,CAAA;AAEA,MAAMY,oCAAoC,gBAAGc,aAAa,CAMvD,EAAE,CAAC,CAAA;AAQA,SAAUtF,wBAAwBA,CAA2D;AACjGC,EAAAA,EAAE,GAAG,QAAa;EAClB,GAAGsF,SAAAA;AAC8B,CAAA,EAAA;EACjC,MAAM;IAAEjB,GAAG;IAAE5E,OAAO;IAAEmF,SAAS;IAAE,GAAGW,gBAAAA;GAAkB,GAAGC,UAAU,CACjEjB,oCAAoC,CACrC,CAAA;AAED,EAAA,oBACEtF,GAAA,CAAC6E,OAAW,CAAC2B,MAAM,EAAA;AACjBpB,IAAAA,GAAG,EAAEA,GAAI;AACTrE,IAAAA,EAAE,EAAE0F,wBAAyB;AAC7BC,IAAAA,IAAI,EAAC,UAAU;AACfC,IAAAA,WAAW,EAAE;MAAE5F,EAAE;MAAE,GAAGuF,gBAAAA;KAAmB;AAAA,IAAA,GACrCb,UAAU,CAAC;MAAEjF,OAAO;AAAEmF,MAAAA,SAAAA;AAAW,KAAA,EAAEU,SAAS,CAAA;AAAC,GACjD,CAAA,CAAA;AAEN,CAAA;AAMA,MAAMO,2BAA2B,gBAAGC,UAAU,CAAC,SAASD,2BAA2BA,CACjF;AACE,EAAA,kBAAkB,EAAEE,eAAe;AACnC,EAAA,uBAAuB,EAAEC,oBAAoB;EAC7CL,IAAI;EACJM,QAAQ;EACRC,4BAA4B;EAC5BtB,SAAS;EACT,GAAGU,SAAAA;AAC8B,CAAA,EACnCjB,GAA8C,EAAA;AAE9C,EAAA,MAAM8B,gCAAgC,GAAG7D,cAAc,CAAC4D,4BAA4B,CAAC,CAAA;AACrF3D,EAAAA,SAAS,CAAC,MAAK;IACb4D,gCAAgC,CAACH,oBAAoB,CAAC,CAAA;AACxD,GAAC,EAAE,CAACA,oBAAoB,EAAEG,gCAAgC,CAAC,CAAC,CAAA;AAE5D,EAAA,oBACElH,GAAA,CAAA,KAAA,EAAA;AACEoF,IAAAA,GAAG,EAAEA,GAAI;AACTsB,IAAAA,IAAI,EAAC,MAAM;IACXf,SAAS,EAAGlF,KAAK,IAAI;AACnB;MACA,IAAIA,KAAK,CAACmF,GAAG,KAAK,OAAO,IAAImB,oBAAoB,IAAI,IAAI,EAAE;AACzD,QAAA,OAAA;AACF,OAAA;AAEA;MACA,IAAItG,KAAK,CAACmF,GAAG,KAAK,QAAQ,IAAInF,KAAK,CAACmF,GAAG,KAAK,KAAK,EAAE;AACjDD,QAAAA,SAAS,GAAG;AACV,UAAA,GAAGlF,KAAK;AACRC,UAAAA,cAAc,EAAEA,MAAK,EAAG;UACxByG,eAAe,EAAEA,MAAK,EAAE;AACzB,SAAA,CAAC,CAAA;AACF,QAAA,OAAA;AACF,OAAA;MAEAxB,SAAS,GAAGlF,KAAK,CAAC,CAAA;KAClB;IAAA,GACE4F,SAAAA;AAAS,GAAC,CACd,CAAA;AAEN,CAAC,CAAC,CAAA;AAeF,SAASF,kBAAkBA,CAAa;EACtC1E,EAAE;EACF7C,KAAK;AACLqD,EAAAA,WAAW,GAAGC,MAAM;EACpBC,YAAY;AACZE,EAAAA,UAAU,GAAG,KAAK;EAClBC,iBAAiB;EACjBiC,cAAc;EACdC,UAAU;EACVhB,WAAW;EACXhB,cAAc;EACdmC,YAAY;AACZC,EAAAA,iBAAAA;AAC2B,CAAA,EAAA;AAC3B,EAAA,MAAM3D,IAAI,GAAGC,OAAO,EAAE,CAAA;AACtB,EAAA,MAAMuD,aAAa,GAAGpC,UAAU,GAAGkC,cAAc,GAAGC,UAAU,CAAA;EAC9D,MAAM,CAAC4C,aAAa,EAAEC,gBAAgB,CAAC,GAAGpE,QAAQ,CAAC,IAAI,CAAC,CAAA;AAExD,EAAA,MAAM/D,MAAM,GAAGoI,OAAO,CAAC,MAAK;AAC1B,IAAA,IAAIjF,UAAU,EAAE;AACd,MAAA,OAAOmB,WAAW,GAAG/F,gBAAgB,CAAC+F,WAAW,CAAC,GAAG,IAAI,CAAA;AAC3D,KAAA;AACA,IAAA,OAAO9E,SAAS,CAAA;AAClB,GAAC,EAAE,CAAC8E,WAAW,EAAEnB,UAAU,CAAC,CAAC,CAAA;AAC7BiB,EAAAA,SAAS,CAAC,MAAK;AACb,IAAA,IAAIpE,MAAM,EAAE;AACV;AACA;AACA;AACA;AACAqI,MAAAA,qBAAqB,CAAC,MAAK;AACzB,QAAA,IACE9C,aAAa,CAAClB,OAAO,IAAI,IAAI,IAC7B,CAACkB,aAAa,CAAClB,OAAO,CAACiE,YAAY,CAAC,uBAAuB,CAAC,EAC5D;AACA;UACA/C,aAAa,CAAClB,OAAO,CAACkE,aAAa,CACjC,IAAIC,aAAa,CAAC,SAAS,EAAE;AAAE9B,YAAAA,GAAG,EAAE,MAAM;AAAE+B,YAAAA,OAAO,EAAE,IAAA;AAAI,WAAE,CAAC,CAC7D,CAAA;AACH,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EAAE,CAAClD,aAAa,EAAEvF,MAAM,CAAC,CAAC,CAAA;EAE3B,MAAM0I,aAAa,GACjB1I,MAAM,IAAI,IAAI,GACVK,sBAAsB,CAACZ,sBAAsB,CAACC,KAAK,CAAC,EAAGN,IAAI,IACzDW,mCAAmC,CAACX,IAAI,EAAEY,MAAM,CAAC,CAClD,GACDN,KAAK,CAAA;EACX,MAAMiJ,YAAY,GAAG3I,MAAM,IAAI,IAAI,IAAI0I,aAAa,CAAC1C,MAAM,KAAK,CAAC,CAAA;AAEjE,EAAA,MAAM4C,WAAW,GAAGF,aAAa,CAAC1C,MAAM,GAAG1H,gCAAgC,CAAA;AAE3E;AACA;AACA;EACA,MAAM,CAACuK,cAAc,EAAEC,iBAAiB,CAAC,GAAG/E,QAAQ,CAAW,EAAE,CAAC,CAAA;AAClEK,EAAAA,SAAS,CAAC,MAAK;AACb;IACA0E,iBAAiB,CAAEC,kBAAkB,IAAI;AACvC,MAAA,MAAMC,OAAO,GAAG,IAAIrJ,GAAG,CAACoJ,kBAAkB,CAAC,CAAA;MAC3CC,OAAO,CAACzJ,GAAG,CAACmJ,aAAa,CAAC1C,MAAM,GAAG,CAAC,CAAC,CAAA;AACrC,MAAA,OAAO,CAAC,GAAGgD,OAAO,CAAC,CAAC;AACtB,KAAC,CAAC,CAAA;GACH,EAAE,CACDhJ,MAAM;AAAE;EACR0I,aAAa,CAAC1C,MAAM,CACrB,CAAC,CAAA;AAEF,EAAA,MAAMiD,mBAAmB,GAAGhF,MAAM,CAAiB,IAAI,CAAC,CAAA;AACxDG,EAAAA,SAAS,CAAC,MAAK;AACb,IAAA,IAAI6E,mBAAmB,CAAC5E,OAAO,IAAI,IAAI,EAAE;AACvC4E,MAAAA,mBAAmB,CAAC5E,OAAO,CAAC6E,KAAK,CAACC,WAAW,CAC3C,kBAAkB,EAClB,CAAA,EAAGF,mBAAmB,CAAC5E,OAAO,CAAC+E,YAAY,IAAI,CAChD,CAAA;AACH,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAENhF,EAAAA,SAAS,CAAC,MAAK;IACb+D,gBAAgB,CAAC,KAAK,CAAC,CAAA;GACxB,EAAE,EAAE,CAAC,CAAA;EAEN,MAAMkB,UAAU,GAAGV,YAAY,CAAA;AAC/B,EAAA,MAAMW,QAAQ,GAAGC,KAAK,EAAE,CAAA;AACxB,EAAA,MAAMC,SAAS,GAAGD,KAAK,EAAE,CAAA;EAEzB,MAAME,WAAW,GAAIC,KAAa,IAAI;AACpC,IAAA,MAAMtK,IAAI,GAAGsJ,aAAa,CAACgB,KAAK,CAAC,CAAA;IACjC,oBACE5I,GAAA,CAAC6I,mBAAmB,EAAA;AAAavK,MAAAA,IAAI,EAAEA,IAAK;AAAC2D,MAAAA,WAAW,EAAEA,WAAY;AAAC/C,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAAA,EAA5D0J,KAA4D,CAAG,CAAA;GAE5F,CAAA;AAED,EAAA,oBACEzI,IAAA,CAAC0E,OAAW,CAACiE,OAAO,EAAA;AAClB/H,IAAAA,EAAE,EAAE6F,2BAA4B;IAChCmC,MAAM,EAAA,IAAA;AACNhJ,IAAAA,SAAS,EAAC,mCAAmC;IAC7CkH,4BAA4B,EAAGvJ,KAAoD,IAAI;AACrF,MAAA,IAAI+G,aAAa,CAAClB,OAAO,IAAI,IAAI,EAAE;AACjC,QAAA,IAAI,CAAC6D,aAAa,IAAI1J,KAAK,IAAI,IAAI,EAAE;UACnC+G,aAAa,CAAClB,OAAO,CAACyF,YAAY,CAAC,uBAAuB,EAAEtL,KAAK,CAAC,CAAA;AACpE,SAAC,MAAM;AACL+G,UAAAA,aAAa,CAAClB,OAAO,CAAC0F,eAAe,CAAC,uBAAuB,CAAC,CAAA;AAChE,SAAA;AACF,OAAA;KACA;IAAA5I,QAAA,EAAA,CAEDgC,UAAU,gBACTrC,GAAA,CAAA,KAAA,EAAA;AAAKD,MAAAA,SAAS,EAAC,iCAAiC;MAAAM,QAAA,eAC9CL,GAAA,CAACkJ,WAAW,EAAA;AACV9D,QAAAA,GAAG,EAAEb,cAAe;AACpB9C,QAAAA,EAAE,EAAEA,EAAG;AACPiF,QAAAA,IAAI,EAAC,UAAU;AACfyC,QAAAA,KAAK,EAAC,WAAW;AACjBtH,QAAAA,WAAW,EAAES,iBAAkB;AAC/B,QAAA,YAAA,EAAYA,iBAAkB;AAC9BR,QAAAA,YAAY,EAAE0B,WAAY;AAC1B,QAAA,mBAAA,EAAkB,MAAM;QACxB,eAAa,EAAA,IAAA;AACb,QAAA,eAAA,EAAekF,SAAU;AACzB,QAAA,kBAAA,EAAkBH,UAAU,GAAGC,QAAQ,GAAG9J,SAAU;QACpDiH,SAAS,EAAGlF,KAAK,IAAI;AACnB;AACA;UACA,IAAI,MAAM,CAAC2I,IAAI,CAAC3I,KAAK,CAACmF,GAAG,CAAC,EAAE;YAC1BnF,KAAK,CAAC0G,eAAe,EAAE,CAAA;AACzB,WAAA;SACA;QACF1E,QAAQ,EAAGhC,KAAK,IAAI;AAClB;AACA;UACAuH,iBAAiB,CAAC,EAAE,CAAC,CAAA;AACrBxF,UAAAA,cAAc,CAAC/B,KAAK,CAAC4I,aAAa,CAAC3L,KAAK,CAAC,CAAA;AAC3C,SAAA;OAEJ,CAAA;AAAA,KAAK,CAAC,GACJ,IAAI,eAERyC,IAAA,CAAA,SAAA,EAAA;AACEiF,MAAAA,GAAG,EAAE+C,mBAAoB;MACzBnB,QAAQ,EAAE,CAAC,CAAE;MACbjH,SAAS,EAAEK,IAAI,CACb,mCAAmC,EACnC0H,WAAW,IAAI,gDAAgD,EAC/D5I,MAAM,IAAI,IAAI;AAAI;AAChBN,MAAAA,KAAK,CAACQ,IAAI,CAAEd,IAAI,IAAKA,IAAI,CAACQ,IAAI,KAAK,OAAO,CAAC,IAC3C,8CAA8C,CAChD;MAAAuB,QAAA,EAAA,CAEDwH,YAAY,gBACX1H,IAAA,CAAA,KAAA,EAAA;AAAKsB,QAAAA,EAAE,EAAE+G,QAAS;AAACzI,QAAAA,SAAS,EAAC,gCAAgC;QAAAM,QAAA,EAAA,cAC3DL,GAAA,CAACsJ,WAAW,EAAA;AAACxJ,UAAAA,IAAI,EAAE,EAAG;AAACC,UAAAA,SAAS,EAAC,qCAAA;SACjC,CAAA,EAACkB,IAAI,CAACE,aAAa,CAACoI,QAAQ,CAACC,cAAc,CAAC,CAAA;AAAA,OACzC,CAAC,GACJ,IAAI,eAERxJ,GAAA,CAAA,KAAA,EAAA;AACEoF,QAAAA,GAAG,EAAEZ,UAAW;AAChB/C,QAAAA,EAAE,EAAEiH,SAAU;AACdhC,QAAAA,IAAI,EAAC,SAAS;AACd,QAAA,kBAAA,EAAiB,UAAU;AAC3B,QAAA,YAAA,EAAY/B,YAAa;AACzB,QAAA,iBAAA,EAAiBC,iBAAkB;AACnCoC,QAAAA,QAAQ,EAAE,CAAE;AACZjH,QAAAA,SAAS,EAAC,yBAAyB;QAAAM,QAAA,EAElC,CAACyH,WAAW,GACXF,aAAa,CAACxJ,GAAG,CAAC,CAACqL,CAAC,EAAEb,KAAK,KAAKD,WAAW,CAACC,KAAK,CAAC,CAAC,gBAEnD5I,GAAA,CAAC0J,WAAW,EAAA;UAEVC,KAAK,EAAE/B,aAAa,CAAC1C,MAAO;AAC5B0E,UAAAA,WAAW,EAAE7B,cAAe;UAC5B8B,SAAS,EAAErF,UAAW;AAAC;AACvBsF,UAAAA,aAAa,EAAEA,CAACC,UAAU,EAAEC,QAAQ,KAAI;YACtChC,iBAAiB,CAAEC,kBAAkB,IAAI;AACvC,cAAA,MAAMC,OAAO,GAAG,IAAIrJ,GAAG,CAACoJ,kBAAkB,CAAC,CAAA;AAC3C,cAAA,KAAK,IAAIW,KAAK,GAAGmB,UAAU,EAAEnB,KAAK,IAAIoB,QAAQ,EAAEpB,KAAK,IAAI,CAAC,EAAE;AAC1DV,gBAAAA,OAAO,CAACzJ,GAAG,CAACmK,KAAK,CAAC,CAAA;AACpB,eAAA;AACA,cAAA,OAAO,CAAC,GAAGV,OAAO,CAAC,CAAC+B,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC,CAAA;AAC3C,aAAC,CAAC,CAAA;WACF;AAAA9J,UAAAA,QAAA,EAEAuI,KAAK;AAAA;AACL;AACA;UACA5I,GAAA,CAACoK,4BAA4B,CAAC7E,QAAQ,EAAA;YAAC7H,KAAK,EAAEkK,aAAa,CAAC1C,MAAO;AAAA7E,YAAAA,QAAA,eACjEL,GAAA,CAACqK,8BAA8B,CAAC9E,QAAQ,EAAA;cAAC7H,KAAK,EAAEkL,KAAK,GAAG,CAAE;cAAAvI,QAAA,EACvDsI,WAAW,CAACC,KAAK,CAAA;aACqB,CAAA;WACJ,CAAA;AACxC,SAAA,EAtBI1J,MAuBM,CAAA;AACd,OACE,CAEL,EAACiD,YAAY,IAAI,IAAI,gBACnBnC,GAAA,CAAA,QAAA,EAAA;AAAQD,QAAAA,SAAS,EAAC,wBAAwB;AAAAM,QAAAA,QAAA,eACxCL,GAAA,CAAA,KAAA,EAAA;AACE0G,UAAAA,IAAI,EAAC,MAAM;UACXf,SAAS,EAAGlF,KAAK,IAAI;AACnB;AACA,YAAA,IAAIA,KAAK,CAACmF,GAAG,KAAK,QAAQ,EAAE;cAC1BnF,KAAK,CAAC0G,eAAe,EAAE,CAAA;AACzB,aAAA;WACA;UAAA9G,QAAA,EAED8B,YAAY,CAAC;YACZ0F,YAAY;AACZ/D,YAAAA,eAAe,EAAE5E,MAAAA;WAClB,CAAA;SACE,CAAA;OACC,CAAC,GACP,IAAI,CAAA;AAAA,KACD,CACX,CAAA;AAAA,GAAqB,CAAC,CAAA;AAE1B,CAAA;AAUA,SAAS2J,mBAAmBA,CAAa;EACvCvK,IAAI;EACJ2D,WAAW;AACX/C,EAAAA,MAAAA;AAC4B,CAAA,EAAA;EAC5B,QAAQZ,IAAI,CAACQ,IAAI;AACf,IAAA,KAAK,QAAQ;AAAE,MAAA;AACb,QAAA,IACER,IAAI,CAACZ,KAAK,IAAI,IAAI,KACjBwB,MAAM,IAAI,IAAI,IAAID,mCAAmC,CAACX,IAAI,EAAEY,MAAM,CAAC,CAAC,EACrE;UACA,oBACEc,GAAA,CAACsK,iBAAiB,EAAA;YAAC5M,KAAK,EAAEY,IAAI,CAACZ,KAAM;YAACmC,QAAQ,EAAEvB,IAAI,CAACuB,QAAS;AAAAQ,YAAAA,QAAA,EAC3D4B,WAAW,CAAC3D,IAAI,CAACZ,KAAK,EAAE,KAAK,CAAA;AAAC,WACd,CAAC,CAAA;AAExB,SAAA;AACA,QAAA,MAAA;AACF,OAAA;AACA,IAAA,KAAK,OAAO;AAAE,MAAA;QACZ,oBAAOsC,GAAA,CAACuK,wBAAwB,EAAA;AAACjM,UAAAA,IAAI,EAAEA,IAAK;AAAC2D,UAAAA,WAAW,EAAEA,WAAY;AAAC/C,UAAAA,MAAM,EAAEA,MAAAA;AAAO,SAAA,CAAG,CAAA;AAC3F,OAAA;AACA,IAAA,KAAK,WAAW;AAAE,MAAA;QAChB,IAAIA,MAAM,IAAI,IAAI,EAAE;AAClB,UAAA,oBAAOc,GAAA,CAAA,IAAA,EAAA;AAAID,YAAAA,SAAS,EAAC,gCAAA;AAAgC,YAAG,CAAA;AAC1D,SAAA;AACA,QAAA,MAAA;AACF,OAAA;AACF,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,CAAA;AAKA,SAASwK,wBAAwBA,CAAa;EAC5CjM,IAAI;EACJ2D,WAAW;AACX/C,EAAAA,MAAAA;AACiC,CAAA,EAAA;AACjC,EAAA,MAAMsL,QAAQ,GAAG/B,KAAK,EAAE,CAAA;AAExB,EAAA,MAAMgC,MAAM,gBACVzK,GAAA,CAAC0K,MAAM,EAAA;AACL3J,IAAAA,EAAE,EAAC,QAAQ;AACX2F,IAAAA,IAAI,EAAC,MAAM;AACXjF,IAAAA,EAAE,EAAE+I,QAAS;IACbG,KAAK,EAAErM,IAAI,CAACsM,KAAAA;AACZ;AAAA;AACAC,IAAAA,MAAM,EACJvM,IAAI,CAACuM,MAAM,IAAI;AACbC,MAAAA,IAAI,EAAExM,IAAI,CAACuM,MAAM,CAACD,KAAK;AACvBpK,MAAAA,OAAO,EAAElC,IAAI,CAACuM,MAAM,CAACrK,OAAAA;KAExB;AACDT,IAAAA,SAAS,EAAC,yCAAA;AAAyC,GAAA,CAEtD,CAAA;AAED,EAAA;AAAA;AACE;AACA;AACAI,IAAAA,IAAA,CAAC4K,OAAO,EAAA;AACNhK,MAAAA,EAAE,EAAC,SAAS;AACZ2F,MAAAA,IAAI,EAAC,OAAO;AACZ,MAAA,iBAAA,EAAiB8D,QAAS;MAC1BzK,SAAS,EAAEK,IAAI,CAAC,OAAO,EAAElB,MAAM,KAAK,IAAI,IAAI,4CAA4C,CAAE;MAAAmB,QAAA,EAAA,CAEzFnB,MAAM,IAAI,IAAI,GAAGuL,MAAM,GAAG,IAAI,EAC9BnM,IAAI,CAACS,OAAO,CAACX,GAAG,CAAC,CAACY,MAAM,EAAE4J,KAAK,kBAC9B5I,GAAA,CAAC6I,mBAAAA;AACC;AAAA,QAAA;AAEAvK,QAAAA,IAAI,EAAEU,MAAO;AACbiD,QAAAA,WAAW,EAAEA,WAAY;AACzB/C,QAAAA,MAAM,EAAEA,MAAAA;OAHH0J,EAAAA,KAGU,CAElB,CAAC,CAAA;KACK,CAAA;AAAC,IAAA;AAEd,CAAA;AAEA,MAAMwB,4BAA4B,gBAAGhE,aAAa,CAAqB1H,SAAS,CAAC,CAAA;AACjF,MAAM2L,8BAA8B,gBAAGjE,aAAa,CAAqB1H,SAAS,CAAC,CAAA;AAQnF,SAAS4L,iBAAiBA,CAAa;EAAE5M,KAAK;EAAEmC,QAAQ;AAAEQ,EAAAA,QAAAA;AAAqC,CAAA,EAAA;AAC7F,EAAA,MAAM2K,UAAU,GAAGzE,UAAU,CAAC6D,4BAA4B,CAAC,CAAA;AAC3D,EAAA,MAAMa,YAAY,GAAG1E,UAAU,CAAC8D,8BAA8B,CAAC,CAAA;AAC/D,EAAA,oBACErK,GAAA,CAAC6E,OAAW,CAACqG,MAAM,EAAA;AACjBnK,IAAAA,EAAE,EAAC,KAAK;AACRrD,IAAAA,KAAK,EAAEA,KAAM;AACb,IAAA,cAAA,EAAcsN,UAAW;AACzB,IAAA,eAAA,EAAeC,YAAa;AAC5BpL,IAAAA,QAAQ,EAAEA,QAAS;AACnBE,IAAAA,SAAS,EAAEA,CAAC;MAAEoL,MAAM;AAAEtL,MAAAA,QAAQ,EAAEkF,UAAAA;AAAY,KAAA,KAC1C3E,IAAI,CACF,qDAAqD,EACrD+K,MAAM,IAAI,0CAA0C,EACpDpG,UAAU,IAAI,4CAA4C,CAE7D;AAAA1E,IAAAA,QAAA,EAEAA,CAAC;AAAE+K,MAAAA,QAAAA;KAAU,kBACZjL,IAAA,CAAAG,QAAA,EAAA;AAAAD,MAAAA,QAAA,gBACEL,GAAA,CAAA,KAAA,EAAA;AAAKD,QAAAA,SAAS,EAAC,wBAAwB;AAAAM,QAAAA,QAAA,EAAEA,QAAAA;AAAQ,OAAM,CACvD,eAAAL,GAAA,CAACqL,KAAK,EAAA;AACJvL,QAAAA,IAAI,EAAE,EAAG;QACTC,SAAS,EAAEK,IAAI,CACb,8BAA8B,EAC9B,CAACgL,QAAQ,IAAI,4CAA4C,CAAA;AACzD,OAEN,CAAA,CAAA;KAAA,CAAA;AACD,GACiB,CAAC,CAAA;AAEzB,CAAA;AAEA,MAAMvF,4CAA4C,gBAAGO,aAAa,CAAC,KAAK,CAAC,CAAA;AASnE,SAAUkF,wBAAwBA,CAAC;EACvCX,KAAK;EACLY,IAAI;EACJC,WAAW;AACXC,EAAAA,IAAAA;AAC8B,CAAA,EAAA;AAC9B,EAAA,MAAMC,aAAa,GAAGnF,UAAU,CAACV,4CAA4C,CAAC,CAAA;AAE9E,EAAA,oBACE1F,IAAA,CAAA,KAAA,EAAA;IACEJ,SAAS,EAAEK,IAAI,CACb,0CAA0C,EAC1C,CAACmL,IAAI,IAAIC,WAAW,KAAK,oBAAoB,CAC7C;IAAAnL,QAAA,EAAA,CAEDoL,IAAI,gBACHzL,GAAA,CAAA,KAAA,EAAA;MACED,SAAS,EAAEK,IAAI,CACb,qCAAqC,EACrC,CAACsL,aAAa,IAAI,yDAAyD,CAC3E;AAAArL,MAAAA,QAAA,EAEDoL,IAAAA;AAAI,KACF,CAAC,GACJ,IAAI,eAERtL,IAAA,CAAA,KAAA,EAAA;AAAKJ,MAAAA,SAAS,EAAC,qCAAqC;AAAAM,MAAAA,QAAA,gBAClDF,IAAA,CAAA,KAAA,EAAA;QACEJ,SAAS,EAAEK,IAAI,CACb,4CAA4C,EAC5CsL,aAAa,IAAI,oDAAoD,CACrE;AAAArL,QAAAA,QAAA,gBAEFL,GAAA,CAAA,KAAA,EAAA;AAAKD,UAAAA,SAAS,EAAC,UAAU;AAAAM,UAAAA,QAAA,EAAEsK,KAAAA;AAAK,SAAM,CACtC,EAACY,IAAI,gBACHvL,GAAA,CAAA,MAAA,EAAA;AAAMD,UAAAA,SAAS,EAAC,oEAAoE;AAAAM,UAAAA,QAAA,EACjFkL,IAAAA;SACG,CAAC,GACL,IAAI,CAAA;AAAA,OACL,CAEL,EAACC,WAAW,gBACVxL,GAAA,CAAA,KAAA,EAAA;QACED,SAAS,EAAEK,IAAI,CACb,oEAAoE,EACpEsL,aAAa,IAAI,oDAAoD,CACrE;AAAArL,QAAAA,QAAA,EAEDmL,WAAAA;OACE,CAAC,GACJ,IAAI,CAAA;AAAA,KACL,CACP,CAAA;AAAA,GAAK,CAAC,CAAA;AAEV;;;;"}
@@ -55,15 +55,13 @@ function BottomSheet({
55
55
  screenMode: theme === 'personal' ? screenMode : 'light',
56
56
  isNotRootProvider: true,
57
57
  children: /*#__PURE__*/jsxRuntime.jsxs(react$1.Transition, {
58
- as: "div",
59
58
  show: open,
60
59
  className: "np-bottom-sheet-v2-container",
61
60
  beforeEnter: () => {
62
61
  setFloatingKey(prev => prev + 1);
63
62
  },
64
63
  afterLeave: onCloseEnd,
65
- children: [/*#__PURE__*/jsxRuntime.jsx(react$1.TransitionChild, {
66
- as: "div",
64
+ children: [/*#__PURE__*/jsxRuntime.jsx(react$1.Transition.Child, {
67
65
  className: "np-bottom-sheet-v2-backdrop",
68
66
  enterFrom: "np-bottom-sheet-v2-backdrop--closed",
69
67
  leaveTo: "np-bottom-sheet-v2-backdrop--closed"
@@ -74,9 +72,8 @@ function BottomSheet({
74
72
  context: context,
75
73
  initialFocus: initialFocusRef,
76
74
  children: /*#__PURE__*/jsxRuntime.jsx(React.Fragment, {
77
- children: /*#__PURE__*/jsxRuntime.jsxs(react$1.TransitionChild, {
75
+ children: /*#__PURE__*/jsxRuntime.jsxs(react$1.Transition.Child, {
78
76
  ref: refs.setFloating,
79
- as: "div",
80
77
  className: "np-bottom-sheet-v2-content",
81
78
  enterFrom: "np-bottom-sheet-v2-content--closed",
82
79
  leaveTo: "np-bottom-sheet-v2-content--closed",
@@ -1 +1 @@
1
- {"version":3,"file":"_BottomSheet.js","sources":["../../src/inputs/_BottomSheet.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingPortal,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition, TransitionChild } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { Fragment, useState } from 'react';\n\nimport { CloseButton } from '../common/closeButton';\nimport { useVirtualKeyboard } from '../common/hooks/useVirtualKeyboard';\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\nimport { Size } from '../common/propsValues/size';\n\nexport interface BottomSheetProps {\n open: boolean;\n renderTrigger?: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n initialFocusRef?: React.MutableRefObject<HTMLElement | null>;\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nexport function BottomSheet({\n open,\n renderTrigger,\n title,\n initialFocusRef,\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: BottomSheetProps) {\n useVirtualKeyboard();\n\n const { refs, context } = useFloating<Element>({\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, role]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger?.({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n as=\"div\"\n show={open}\n className=\"np-bottom-sheet-v2-container\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <TransitionChild\n as=\"div\"\n className=\"np-bottom-sheet-v2-backdrop\"\n enterFrom=\"np-bottom-sheet-v2-backdrop--closed\"\n leaveTo=\"np-bottom-sheet-v2-backdrop--closed\"\n />\n\n <div className=\"np-bottom-sheet-v2\">\n <FocusScope>\n <FloatingFocusManager context={context} initialFocus={initialFocusRef}>\n <Fragment\n key={floatingKey} // Force inner state invalidation on open\n >\n <TransitionChild\n ref={refs.setFloating}\n as=\"div\"\n className=\"np-bottom-sheet-v2-content\"\n enterFrom=\"np-bottom-sheet-v2-content--closed\"\n leaveTo=\"np-bottom-sheet-v2-content--closed\"\n {...getFloatingProps()}\n >\n <div className=\"np-bottom-sheet-v2-header\">\n <CloseButton\n size={Size.SMALL}\n onClick={() => {\n onClose?.();\n }}\n />\n </div>\n <div\n className={clsx(\n 'np-bottom-sheet-v2-content-inner',\n title && 'np-bottom-sheet-v2-content-inner--has-title',\n padding === 'md' && 'np-bottom-sheet-v2-content-inner--padding-md',\n )}\n >\n {title ? (\n <h2 className=\"np-bottom-sheet-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-bottom-sheet-v2-body np-text-body-default\">\n {children}\n </div>\n </div>\n </TransitionChild>\n </Fragment>\n </FloatingFocusManager>\n </FocusScope>\n </div>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["BottomSheet","open","renderTrigger","title","initialFocusRef","padding","children","onClose","onCloseEnd","useVirtualKeyboard","refs","context","useFloating","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","as","show","className","beforeEnter","prev","afterLeave","TransitionChild","enterFrom","leaveTo","FocusScope","FloatingFocusManager","initialFocus","Fragment","setFloating","CloseButton","size","Size","SMALL","onClick","clsx"],"mappings":"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"}
1
+ {"version":3,"file":"_BottomSheet.js","sources":["../../src/inputs/_BottomSheet.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingPortal,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { Fragment, useState } from 'react';\n\nimport { CloseButton } from '../common/closeButton';\nimport { useVirtualKeyboard } from '../common/hooks/useVirtualKeyboard';\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\nimport { Size } from '../common/propsValues/size';\n\nexport interface BottomSheetProps {\n open: boolean;\n renderTrigger?: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n initialFocusRef?: React.MutableRefObject<HTMLElement | null>;\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nexport function BottomSheet({\n open,\n renderTrigger,\n title,\n initialFocusRef,\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: BottomSheetProps) {\n useVirtualKeyboard();\n\n const { refs, context } = useFloating<Element>({\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, role]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger?.({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n show={open}\n className=\"np-bottom-sheet-v2-container\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <Transition.Child\n className=\"np-bottom-sheet-v2-backdrop\"\n enterFrom=\"np-bottom-sheet-v2-backdrop--closed\"\n leaveTo=\"np-bottom-sheet-v2-backdrop--closed\"\n />\n\n <div className=\"np-bottom-sheet-v2\">\n <FocusScope>\n <FloatingFocusManager context={context} initialFocus={initialFocusRef}>\n <Fragment\n key={floatingKey} // Force inner state invalidation on open\n >\n <Transition.Child\n ref={refs.setFloating}\n className=\"np-bottom-sheet-v2-content\"\n enterFrom=\"np-bottom-sheet-v2-content--closed\"\n leaveTo=\"np-bottom-sheet-v2-content--closed\"\n {...getFloatingProps()}\n >\n <div className=\"np-bottom-sheet-v2-header\">\n <CloseButton\n size={Size.SMALL}\n onClick={() => {\n onClose?.();\n }}\n />\n </div>\n <div\n className={clsx(\n 'np-bottom-sheet-v2-content-inner',\n title && 'np-bottom-sheet-v2-content-inner--has-title',\n padding === 'md' && 'np-bottom-sheet-v2-content-inner--padding-md',\n )}\n >\n {title ? (\n <h2 className=\"np-bottom-sheet-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-bottom-sheet-v2-body np-text-body-default\">\n {children}\n </div>\n </div>\n </Transition.Child>\n </Fragment>\n </FloatingFocusManager>\n </FocusScope>\n </div>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["BottomSheet","open","renderTrigger","title","initialFocusRef","padding","children","onClose","onCloseEnd","useVirtualKeyboard","refs","context","useFloating","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","show","className","beforeEnter","prev","afterLeave","Child","enterFrom","leaveTo","FocusScope","FloatingFocusManager","initialFocus","Fragment","setFloating","CloseButton","size","Size","SMALL","onClick","clsx"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { useFloating, useDismiss, useRole, useInteractions, FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
2
- import { Transition, TransitionChild } from '@headlessui/react';
2
+ import { Transition } from '@headlessui/react';
3
3
  import { FocusScope } from '@react-aria/focus';
4
4
  import { useTheme, ThemeProvider } from '@wise/components-theming';
5
5
  import { clsx } from 'clsx';
@@ -53,15 +53,13 @@ function BottomSheet({
53
53
  screenMode: theme === 'personal' ? screenMode : 'light',
54
54
  isNotRootProvider: true,
55
55
  children: /*#__PURE__*/jsxs(Transition, {
56
- as: "div",
57
56
  show: open,
58
57
  className: "np-bottom-sheet-v2-container",
59
58
  beforeEnter: () => {
60
59
  setFloatingKey(prev => prev + 1);
61
60
  },
62
61
  afterLeave: onCloseEnd,
63
- children: [/*#__PURE__*/jsx(TransitionChild, {
64
- as: "div",
62
+ children: [/*#__PURE__*/jsx(Transition.Child, {
65
63
  className: "np-bottom-sheet-v2-backdrop",
66
64
  enterFrom: "np-bottom-sheet-v2-backdrop--closed",
67
65
  leaveTo: "np-bottom-sheet-v2-backdrop--closed"
@@ -72,9 +70,8 @@ function BottomSheet({
72
70
  context: context,
73
71
  initialFocus: initialFocusRef,
74
72
  children: /*#__PURE__*/jsx(Fragment$1, {
75
- children: /*#__PURE__*/jsxs(TransitionChild, {
73
+ children: /*#__PURE__*/jsxs(Transition.Child, {
76
74
  ref: refs.setFloating,
77
- as: "div",
78
75
  className: "np-bottom-sheet-v2-content",
79
76
  enterFrom: "np-bottom-sheet-v2-content--closed",
80
77
  leaveTo: "np-bottom-sheet-v2-content--closed",
@@ -1 +1 @@
1
- {"version":3,"file":"_BottomSheet.mjs","sources":["../../src/inputs/_BottomSheet.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingPortal,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition, TransitionChild } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { Fragment, useState } from 'react';\n\nimport { CloseButton } from '../common/closeButton';\nimport { useVirtualKeyboard } from '../common/hooks/useVirtualKeyboard';\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\nimport { Size } from '../common/propsValues/size';\n\nexport interface BottomSheetProps {\n open: boolean;\n renderTrigger?: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n initialFocusRef?: React.MutableRefObject<HTMLElement | null>;\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nexport function BottomSheet({\n open,\n renderTrigger,\n title,\n initialFocusRef,\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: BottomSheetProps) {\n useVirtualKeyboard();\n\n const { refs, context } = useFloating<Element>({\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, role]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger?.({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n as=\"div\"\n show={open}\n className=\"np-bottom-sheet-v2-container\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <TransitionChild\n as=\"div\"\n className=\"np-bottom-sheet-v2-backdrop\"\n enterFrom=\"np-bottom-sheet-v2-backdrop--closed\"\n leaveTo=\"np-bottom-sheet-v2-backdrop--closed\"\n />\n\n <div className=\"np-bottom-sheet-v2\">\n <FocusScope>\n <FloatingFocusManager context={context} initialFocus={initialFocusRef}>\n <Fragment\n key={floatingKey} // Force inner state invalidation on open\n >\n <TransitionChild\n ref={refs.setFloating}\n as=\"div\"\n className=\"np-bottom-sheet-v2-content\"\n enterFrom=\"np-bottom-sheet-v2-content--closed\"\n leaveTo=\"np-bottom-sheet-v2-content--closed\"\n {...getFloatingProps()}\n >\n <div className=\"np-bottom-sheet-v2-header\">\n <CloseButton\n size={Size.SMALL}\n onClick={() => {\n onClose?.();\n }}\n />\n </div>\n <div\n className={clsx(\n 'np-bottom-sheet-v2-content-inner',\n title && 'np-bottom-sheet-v2-content-inner--has-title',\n padding === 'md' && 'np-bottom-sheet-v2-content-inner--padding-md',\n )}\n >\n {title ? (\n <h2 className=\"np-bottom-sheet-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-bottom-sheet-v2-body np-text-body-default\">\n {children}\n </div>\n </div>\n </TransitionChild>\n </Fragment>\n </FloatingFocusManager>\n </FocusScope>\n </div>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["BottomSheet","open","renderTrigger","title","initialFocusRef","padding","children","onClose","onCloseEnd","useVirtualKeyboard","refs","context","useFloating","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","as","show","className","beforeEnter","prev","afterLeave","TransitionChild","enterFrom","leaveTo","FocusScope","FloatingFocusManager","initialFocus","Fragment","setFloating","CloseButton","size","Size","SMALL","onClick","clsx"],"mappings":"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"}
1
+ {"version":3,"file":"_BottomSheet.mjs","sources":["../../src/inputs/_BottomSheet.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingPortal,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { Fragment, useState } from 'react';\n\nimport { CloseButton } from '../common/closeButton';\nimport { useVirtualKeyboard } from '../common/hooks/useVirtualKeyboard';\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\nimport { Size } from '../common/propsValues/size';\n\nexport interface BottomSheetProps {\n open: boolean;\n renderTrigger?: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n initialFocusRef?: React.MutableRefObject<HTMLElement | null>;\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nexport function BottomSheet({\n open,\n renderTrigger,\n title,\n initialFocusRef,\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: BottomSheetProps) {\n useVirtualKeyboard();\n\n const { refs, context } = useFloating<Element>({\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, role]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger?.({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n show={open}\n className=\"np-bottom-sheet-v2-container\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <Transition.Child\n className=\"np-bottom-sheet-v2-backdrop\"\n enterFrom=\"np-bottom-sheet-v2-backdrop--closed\"\n leaveTo=\"np-bottom-sheet-v2-backdrop--closed\"\n />\n\n <div className=\"np-bottom-sheet-v2\">\n <FocusScope>\n <FloatingFocusManager context={context} initialFocus={initialFocusRef}>\n <Fragment\n key={floatingKey} // Force inner state invalidation on open\n >\n <Transition.Child\n ref={refs.setFloating}\n className=\"np-bottom-sheet-v2-content\"\n enterFrom=\"np-bottom-sheet-v2-content--closed\"\n leaveTo=\"np-bottom-sheet-v2-content--closed\"\n {...getFloatingProps()}\n >\n <div className=\"np-bottom-sheet-v2-header\">\n <CloseButton\n size={Size.SMALL}\n onClick={() => {\n onClose?.();\n }}\n />\n </div>\n <div\n className={clsx(\n 'np-bottom-sheet-v2-content-inner',\n title && 'np-bottom-sheet-v2-content-inner--has-title',\n padding === 'md' && 'np-bottom-sheet-v2-content-inner--padding-md',\n )}\n >\n {title ? (\n <h2 className=\"np-bottom-sheet-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-bottom-sheet-v2-body np-text-body-default\">\n {children}\n </div>\n </div>\n </Transition.Child>\n </Fragment>\n </FloatingFocusManager>\n </FocusScope>\n </div>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["BottomSheet","open","renderTrigger","title","initialFocusRef","padding","children","onClose","onCloseEnd","useVirtualKeyboard","refs","context","useFloating","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","show","className","beforeEnter","prev","afterLeave","Child","enterFrom","leaveTo","FocusScope","FloatingFocusManager","initialFocus","Fragment","setFloating","CloseButton","size","Size","SMALL","onClick","clsx"],"mappings":";;;;;;;;;;;;AAmCM,SAAUA,WAAWA,CAAC;EAC1BC,IAAI;EACJC,aAAa;EACbC,KAAK;EACLC,eAAe;AACfC,EAAAA,OAAO,GAAG,IAAI;EACdC,QAAQ;EACRC,OAAO;AACPC,EAAAA,UAAAA;AACiB,CAAA,EAAA;AACjBC,EAAAA,kBAAkB,EAAE,CAAA;EAEpB,MAAM;IAAEC,IAAI;AAAEC,IAAAA,OAAAA;GAAS,GAAGC,WAAW,CAAU;IAC7CX,IAAI;IACJY,YAAY,EAAGC,KAAK,IAAI;MACtB,IAAI,CAACA,KAAK,EAAE;AACVP,QAAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AACD,GAAA,CAAC,CAAA;AAEF,EAAA,MAAMQ,OAAO,GAAGC,UAAU,CAACL,OAAO,CAAC,CAAA;AACnC,EAAA,MAAMM,IAAI,GAAGC,OAAO,CAACP,OAAO,CAAC,CAAA;EAC7B,MAAM;IAAEQ,iBAAiB;AAAEC,IAAAA,gBAAAA;GAAkB,GAAGC,eAAe,CAAC,CAACN,OAAO,EAAEE,IAAI,CAAC,CAAC,CAAA;EAEhF,MAAM,CAACK,WAAW,EAAEC,cAAc,CAAC,GAAGC,QAAQ,CAAC,CAAC,CAAC,CAAA;EAEjD,MAAM;IAAEC,KAAK;AAAEC,IAAAA,UAAAA;GAAY,GAAGC,QAAQ,EAAE,CAAA;EAExC,oBACEC,IAAA,CAAAC,QAAA,EAAA;AAAAvB,IAAAA,QAAA,EACGL,CAAAA,IAAI,gBAAG6B,GAAA,CAACC,aAAa,EAAG,EAAA,CAAA,GAAG,IAAI,EAC/B7B,aAAa,GAAG;MACf8B,GAAG,EAAEtB,IAAI,CAACuB,YAAY;AACtBC,MAAAA,mBAAmB,EAAEf,iBAAAA;AACtB,KAAA,CAAC,eAEFW,GAAA,CAACK,cAAc,EAAA;MAAA7B,QAAA,eACbwB,GAAA,CAACM,aAAa,EAAA;AACZX,QAAAA,KAAK,EAAC,UAAU;AAChBC,QAAAA,UAAU,EAAED,KAAK,KAAK,UAAU,GAAGC,UAAU,GAAG,OAAQ;QACxDW,iBAAiB,EAAA,IAAA;QAAA/B,QAAA,eAEjBsB,IAAA,CAACU,UAAU,EAAA;AACTC,UAAAA,IAAI,EAAEtC,IAAK;AACXuC,UAAAA,SAAS,EAAC,8BAA8B;UACxCC,WAAW,EAAEA,MAAK;AAChBlB,YAAAA,cAAc,CAAEmB,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC,CAAA;WAClC;AACFC,UAAAA,UAAU,EAAEnC,UAAW;AAAAF,UAAAA,QAAA,EAEvBwB,cAAAA,GAAA,CAACQ,UAAU,CAACM,KAAK,EAAA;AACfJ,YAAAA,SAAS,EAAC,6BAA6B;AACvCK,YAAAA,SAAS,EAAC,qCAAqC;AAC/CC,YAAAA,OAAO,EAAC,qCAAA;WAGV,CAAA,eAAAhB,GAAA,CAAA,KAAA,EAAA;AAAKU,YAAAA,SAAS,EAAC,oBAAoB;YAAAlC,QAAA,eACjCwB,GAAA,CAACiB,UAAU,EAAA;cAAAzC,QAAA,eACTwB,GAAA,CAACkB,oBAAoB,EAAA;AAACrC,gBAAAA,OAAO,EAAEA,OAAQ;AAACsC,gBAAAA,YAAY,EAAE7C,eAAgB;gBAAAE,QAAA,eACpEwB,GAAA,CAACoB,UAAQ,EAAA;AAAA5C,kBAAAA,QAAA,eAGPsB,IAAA,CAACU,UAAU,CAACM,KAAK,EAAA;oBACfZ,GAAG,EAAEtB,IAAI,CAACyC,WAAY;AACtBX,oBAAAA,SAAS,EAAC,4BAA4B;AACtCK,oBAAAA,SAAS,EAAC,oCAAoC;AAC9CC,oBAAAA,OAAO,EAAC,oCAAoC;oBAAA,GACxC1B,gBAAgB,EAAE;AAAAd,oBAAAA,QAAA,gBAEtBwB,GAAA,CAAA,KAAA,EAAA;AAAKU,sBAAAA,SAAS,EAAC,2BAA2B;sBAAAlC,QAAA,eACxCwB,GAAA,CAACsB,WAAW,EAAA;wBACVC,IAAI,EAAEC,IAAI,CAACC,KAAM;wBACjBC,OAAO,EAAEA,MAAK;AACZjD,0BAAAA,OAAO,IAAI,CAAA;AACb,yBAAA;uBAEJ,CAAA;qBAAK,CACL,eAAAqB,IAAA,CAAA,KAAA,EAAA;AACEY,sBAAAA,SAAS,EAAEiB,IAAI,CACb,kCAAkC,EAClCtD,KAAK,IAAI,6CAA6C,EACtDE,OAAO,KAAK,IAAI,IAAI,8CAA8C,CAClE;sBAAAC,QAAA,EAAA,CAEDH,KAAK,gBACJ2B,GAAA,CAAA,IAAA,EAAA;AAAIU,wBAAAA,SAAS,EAAC,6CAA6C;AAAAlC,wBAAAA,QAAA,EAAEH,KAAAA;AAAK,uBAAK,CAAC,GACtE,IAAI,eACR2B,GAAA,CAAA,KAAA,EAAA;AAAKU,wBAAAA,SAAS,EAAC,8CAA8C;AAAAlC,wBAAAA,QAAA,EAC1DA,QAAAA;AAAQ,uBACN,CACP,CAAA;AAAA,qBAAK,CACP,CAAA;mBAAkB,CAAA;AACpB,iBAAA,EAhCOgB,WAgCG,CAAA;eACU,CAAA;aACZ,CAAA;AACd,WAAK,CACP,CAAA;SAAY,CAAA;OACC,CAAA;AACjB,KAAgB,CAClB,CAAA;AAAA,GAAA,CAAG,CAAA;AAEP;;;;"}
@@ -28,7 +28,8 @@ function Popover({
28
28
  } = react.useFloating({
29
29
  placement,
30
30
  middleware: [react.offset(8), react.flip({
31
- padding: floatingPadding
31
+ padding: floatingPadding,
32
+ crossAxis: false
32
33
  }), react.shift(), react.size({
33
34
  padding: floatingPadding,
34
35
  apply: ({
@@ -69,7 +70,6 @@ function Popover({
69
70
  screenMode: theme === 'personal' ? screenMode : 'light',
70
71
  isNotRootProvider: true,
71
72
  children: /*#__PURE__*/jsxRuntime.jsx(react$1.Transition, {
72
- as: "div",
73
73
  show: open,
74
74
  leave: "transition-opacity",
75
75
  leaveTo: "opacity-0",
@@ -1 +1 @@
1
- {"version":3,"file":"_Popover.js","sources":["../../src/inputs/_Popover.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n type Placement,\n shift,\n size as floatingSize,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { useState } from 'react';\n\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\n\nexport interface PopoverProps {\n placement?: Placement;\n open: boolean;\n renderTrigger: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n size?: 'md' | 'lg';\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nconst floatingPadding = 16;\n\nexport function Popover({\n placement,\n open,\n renderTrigger,\n title,\n size = 'md',\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: PopoverProps) {\n const { refs, floatingStyles, context } = useFloating<Element>({\n placement,\n middleware: [\n offset(8),\n flip({ padding: floatingPadding }),\n shift(),\n floatingSize({\n padding: floatingPadding,\n apply: ({ elements, rects, availableHeight }) => {\n elements.floating.style.setProperty('--max-height', `${availableHeight}px`);\n elements.floating.style.setProperty('--width', `${rects.reference.width}px`);\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([role, dismiss]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n as=\"div\"\n show={open}\n leave=\"transition-opacity\"\n leaveTo=\"opacity-0\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <FocusScope>\n <FloatingFocusManager context={context}>\n <div\n key={floatingKey} // Force inner state invalidation on open\n ref={refs.setFloating}\n className={clsx('np-popover-v2-container', {\n 'np-popover-v2-container--size-md': size === 'md',\n 'np-popover-v2-container--size-lg': size === 'lg',\n })}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div\n className={clsx('np-popover-v2', title && 'np-popover-v2--has-title', {\n 'np-popover-v2--padding-md': padding === 'md',\n })}\n >\n {title ? (\n <h2 className=\"np-popover-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-popover-v2-content np-text-body-default\">{children}</div>\n </div>\n </div>\n </FloatingFocusManager>\n </FocusScope>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["floatingPadding","Popover","placement","open","renderTrigger","title","size","padding","children","onClose","onCloseEnd","refs","floatingStyles","context","useFloating","middleware","offset","flip","shift","floatingSize","apply","elements","rects","availableHeight","floating","style","setProperty","reference","width","whileElementsMounted","autoUpdate","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","as","show","leave","leaveTo","beforeEnter","prev","afterLeave","FocusScope","FloatingFocusManager","setFloating","className","clsx"],"mappings":"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"}
1
+ {"version":3,"file":"_Popover.js","sources":["../../src/inputs/_Popover.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n type Placement,\n shift,\n size as floatingSize,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { useState } from 'react';\n\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\n\nexport interface PopoverProps {\n placement?: Placement;\n open: boolean;\n renderTrigger: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n size?: 'md' | 'lg';\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nconst floatingPadding = 16;\n\nexport function Popover({\n placement,\n open,\n renderTrigger,\n title,\n size = 'md',\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: PopoverProps) {\n const { refs, floatingStyles, context } = useFloating<Element>({\n placement,\n middleware: [\n offset(8),\n flip({ padding: floatingPadding, crossAxis: false }),\n shift(),\n floatingSize({\n padding: floatingPadding,\n apply: ({ elements, rects, availableHeight }) => {\n elements.floating.style.setProperty('--max-height', `${availableHeight}px`);\n elements.floating.style.setProperty('--width', `${rects.reference.width}px`);\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([role, dismiss]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n show={open}\n leave=\"transition-opacity\"\n leaveTo=\"opacity-0\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <FocusScope>\n <FloatingFocusManager context={context}>\n <div\n key={floatingKey} // Force inner state invalidation on open\n ref={refs.setFloating}\n className={clsx('np-popover-v2-container', {\n 'np-popover-v2-container--size-md': size === 'md',\n 'np-popover-v2-container--size-lg': size === 'lg',\n })}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div\n className={clsx('np-popover-v2', title && 'np-popover-v2--has-title', {\n 'np-popover-v2--padding-md': padding === 'md',\n })}\n >\n {title ? (\n <h2 className=\"np-popover-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-popover-v2-content np-text-body-default\">{children}</div>\n </div>\n </div>\n </FloatingFocusManager>\n </FocusScope>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["floatingPadding","Popover","placement","open","renderTrigger","title","size","padding","children","onClose","onCloseEnd","refs","floatingStyles","context","useFloating","middleware","offset","flip","crossAxis","shift","floatingSize","apply","elements","rects","availableHeight","floating","style","setProperty","reference","width","whileElementsMounted","autoUpdate","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","show","leave","leaveTo","beforeEnter","prev","afterLeave","FocusScope","FloatingFocusManager","setFloating","className","clsx"],"mappings":"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"}
@@ -26,7 +26,8 @@ function Popover({
26
26
  } = useFloating({
27
27
  placement,
28
28
  middleware: [offset(8), flip({
29
- padding: floatingPadding
29
+ padding: floatingPadding,
30
+ crossAxis: false
30
31
  }), shift(), size({
31
32
  padding: floatingPadding,
32
33
  apply: ({
@@ -67,7 +68,6 @@ function Popover({
67
68
  screenMode: theme === 'personal' ? screenMode : 'light',
68
69
  isNotRootProvider: true,
69
70
  children: /*#__PURE__*/jsx(Transition, {
70
- as: "div",
71
71
  show: open,
72
72
  leave: "transition-opacity",
73
73
  leaveTo: "opacity-0",
@@ -1 +1 @@
1
- {"version":3,"file":"_Popover.mjs","sources":["../../src/inputs/_Popover.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n type Placement,\n shift,\n size as floatingSize,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { useState } from 'react';\n\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\n\nexport interface PopoverProps {\n placement?: Placement;\n open: boolean;\n renderTrigger: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n size?: 'md' | 'lg';\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nconst floatingPadding = 16;\n\nexport function Popover({\n placement,\n open,\n renderTrigger,\n title,\n size = 'md',\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: PopoverProps) {\n const { refs, floatingStyles, context } = useFloating<Element>({\n placement,\n middleware: [\n offset(8),\n flip({ padding: floatingPadding }),\n shift(),\n floatingSize({\n padding: floatingPadding,\n apply: ({ elements, rects, availableHeight }) => {\n elements.floating.style.setProperty('--max-height', `${availableHeight}px`);\n elements.floating.style.setProperty('--width', `${rects.reference.width}px`);\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([role, dismiss]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n as=\"div\"\n show={open}\n leave=\"transition-opacity\"\n leaveTo=\"opacity-0\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <FocusScope>\n <FloatingFocusManager context={context}>\n <div\n key={floatingKey} // Force inner state invalidation on open\n ref={refs.setFloating}\n className={clsx('np-popover-v2-container', {\n 'np-popover-v2-container--size-md': size === 'md',\n 'np-popover-v2-container--size-lg': size === 'lg',\n })}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div\n className={clsx('np-popover-v2', title && 'np-popover-v2--has-title', {\n 'np-popover-v2--padding-md': padding === 'md',\n })}\n >\n {title ? (\n <h2 className=\"np-popover-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-popover-v2-content np-text-body-default\">{children}</div>\n </div>\n </div>\n </FloatingFocusManager>\n </FocusScope>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["floatingPadding","Popover","placement","open","renderTrigger","title","size","padding","children","onClose","onCloseEnd","refs","floatingStyles","context","useFloating","middleware","offset","flip","shift","floatingSize","apply","elements","rects","availableHeight","floating","style","setProperty","reference","width","whileElementsMounted","autoUpdate","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","as","show","leave","leaveTo","beforeEnter","prev","afterLeave","FocusScope","FloatingFocusManager","setFloating","className","clsx"],"mappings":"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"}
1
+ {"version":3,"file":"_Popover.mjs","sources":["../../src/inputs/_Popover.tsx"],"sourcesContent":["import {\n autoUpdate,\n flip,\n FloatingFocusManager,\n FloatingPortal,\n offset,\n type Placement,\n shift,\n size as floatingSize,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { Transition } from '@headlessui/react';\nimport { FocusScope } from '@react-aria/focus';\nimport { ThemeProvider, useTheme } from '@wise/components-theming';\nimport { clsx } from 'clsx';\nimport { useState } from 'react';\n\nimport { PreventScroll } from '../common/preventScroll/PreventScroll';\n\nexport interface PopoverProps {\n placement?: Placement;\n open: boolean;\n renderTrigger: (args: {\n ref: React.RefCallback<Element>;\n getInteractionProps: (customEventHandlers?: React.HTMLProps<Element>) => {\n [key: string]: unknown;\n };\n }) => React.ReactNode;\n title?: string;\n size?: 'md' | 'lg';\n padding?: 'none' | 'md';\n children?: React.ReactNode;\n onClose?: () => void;\n onCloseEnd?: () => void;\n}\n\nconst floatingPadding = 16;\n\nexport function Popover({\n placement,\n open,\n renderTrigger,\n title,\n size = 'md',\n padding = 'md',\n children,\n onClose,\n onCloseEnd,\n}: PopoverProps) {\n const { refs, floatingStyles, context } = useFloating<Element>({\n placement,\n middleware: [\n offset(8),\n flip({ padding: floatingPadding, crossAxis: false }),\n shift(),\n floatingSize({\n padding: floatingPadding,\n apply: ({ elements, rects, availableHeight }) => {\n elements.floating.style.setProperty('--max-height', `${availableHeight}px`);\n elements.floating.style.setProperty('--width', `${rects.reference.width}px`);\n },\n }),\n ],\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange: (value) => {\n if (!value) {\n onClose?.();\n }\n },\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context);\n const { getReferenceProps, getFloatingProps } = useInteractions([role, dismiss]);\n\n const [floatingKey, setFloatingKey] = useState(0);\n\n const { theme, screenMode } = useTheme();\n\n return (\n <>\n {open ? <PreventScroll /> : null}\n {renderTrigger({\n ref: refs.setReference,\n getInteractionProps: getReferenceProps,\n })}\n\n <FloatingPortal>\n <ThemeProvider\n theme=\"personal\"\n screenMode={theme === 'personal' ? screenMode : 'light'}\n isNotRootProvider\n >\n <Transition\n show={open}\n leave=\"transition-opacity\"\n leaveTo=\"opacity-0\"\n beforeEnter={() => {\n setFloatingKey((prev) => prev + 1);\n }}\n afterLeave={onCloseEnd}\n >\n <FocusScope>\n <FloatingFocusManager context={context}>\n <div\n key={floatingKey} // Force inner state invalidation on open\n ref={refs.setFloating}\n className={clsx('np-popover-v2-container', {\n 'np-popover-v2-container--size-md': size === 'md',\n 'np-popover-v2-container--size-lg': size === 'lg',\n })}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div\n className={clsx('np-popover-v2', title && 'np-popover-v2--has-title', {\n 'np-popover-v2--padding-md': padding === 'md',\n })}\n >\n {title ? (\n <h2 className=\"np-popover-v2-title np-text-title-body\">{title}</h2>\n ) : null}\n <div className=\"np-popover-v2-content np-text-body-default\">{children}</div>\n </div>\n </div>\n </FloatingFocusManager>\n </FocusScope>\n </Transition>\n </ThemeProvider>\n </FloatingPortal>\n </>\n );\n}\n"],"names":["floatingPadding","Popover","placement","open","renderTrigger","title","size","padding","children","onClose","onCloseEnd","refs","floatingStyles","context","useFloating","middleware","offset","flip","crossAxis","shift","floatingSize","apply","elements","rects","availableHeight","floating","style","setProperty","reference","width","whileElementsMounted","autoUpdate","onOpenChange","value","dismiss","useDismiss","role","useRole","getReferenceProps","getFloatingProps","useInteractions","floatingKey","setFloatingKey","useState","theme","screenMode","useTheme","_jsxs","_Fragment","_jsx","PreventScroll","ref","setReference","getInteractionProps","FloatingPortal","ThemeProvider","isNotRootProvider","Transition","show","leave","leaveTo","beforeEnter","prev","afterLeave","FocusScope","FloatingFocusManager","setFloating","className","clsx"],"mappings":";;;;;;;;;AAuCA,MAAMA,eAAe,GAAG,EAAE,CAAA;AAEpB,SAAUC,OAAOA,CAAC;EACtBC,SAAS;EACTC,IAAI;EACJC,aAAa;EACbC,KAAK;AACLC,QAAAA,MAAI,GAAG,IAAI;AACXC,EAAAA,OAAO,GAAG,IAAI;EACdC,QAAQ;EACRC,OAAO;AACPC,EAAAA,UAAAA;AACa,CAAA,EAAA;EACb,MAAM;IAAEC,IAAI;IAAEC,cAAc;AAAEC,IAAAA,OAAAA;GAAS,GAAGC,WAAW,CAAU;IAC7DZ,SAAS;IACTa,UAAU,EAAE,CACVC,MAAM,CAAC,CAAC,CAAC,EACTC,IAAI,CAAC;AAAEV,MAAAA,OAAO,EAAEP,eAAe;AAAEkB,MAAAA,SAAS,EAAE,KAAA;AAAK,KAAE,CAAC,EACpDC,KAAK,EAAE,EACPC,IAAY,CAAC;AACXb,MAAAA,OAAO,EAAEP,eAAe;AACxBqB,MAAAA,KAAK,EAAEA,CAAC;QAAEC,QAAQ;QAAEC,KAAK;AAAEC,QAAAA,eAAAA;AAAiB,OAAA,KAAI;AAC9CF,QAAAA,QAAQ,CAACG,QAAQ,CAACC,KAAK,CAACC,WAAW,CAAC,cAAc,EAAE,CAAA,EAAGH,eAAe,CAAA,EAAA,CAAI,CAAC,CAAA;AAC3EF,QAAAA,QAAQ,CAACG,QAAQ,CAACC,KAAK,CAACC,WAAW,CAAC,SAAS,EAAE,CAAA,EAAGJ,KAAK,CAACK,SAAS,CAACC,KAAK,IAAI,CAAC,CAAA;AAC9E,OAAA;KACD,CAAC,CACH;AACDC,IAAAA,oBAAoB,EAAEC,UAAU;IAChC5B,IAAI;IACJ6B,YAAY,EAAGC,KAAK,IAAI;MACtB,IAAI,CAACA,KAAK,EAAE;AACVxB,QAAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AACD,GAAA,CAAC,CAAA;AAEF,EAAA,MAAMyB,OAAO,GAAGC,UAAU,CAACtB,OAAO,CAAC,CAAA;AACnC,EAAA,MAAMuB,IAAI,GAAGC,OAAO,CAACxB,OAAO,CAAC,CAAA;EAC7B,MAAM;IAAEyB,iBAAiB;AAAEC,IAAAA,gBAAAA;GAAkB,GAAGC,eAAe,CAAC,CAACJ,IAAI,EAAEF,OAAO,CAAC,CAAC,CAAA;EAEhF,MAAM,CAACO,WAAW,EAAEC,cAAc,CAAC,GAAGC,QAAQ,CAAC,CAAC,CAAC,CAAA;EAEjD,MAAM;IAAEC,KAAK;AAAEC,IAAAA,UAAAA;GAAY,GAAGC,QAAQ,EAAE,CAAA;EAExC,oBACEC,IAAA,CAAAC,QAAA,EAAA;AAAAxC,IAAAA,QAAA,EACGL,CAAAA,IAAI,gBAAG8C,GAAA,CAACC,aAAa,EAAG,EAAA,CAAA,GAAG,IAAI,EAC/B9C,aAAa,CAAC;MACb+C,GAAG,EAAExC,IAAI,CAACyC,YAAY;AACtBC,MAAAA,mBAAmB,EAAEf,iBAAAA;AACtB,KAAA,CAAC,eAEFW,GAAA,CAACK,cAAc,EAAA;MAAA9C,QAAA,eACbyC,GAAA,CAACM,aAAa,EAAA;AACZX,QAAAA,KAAK,EAAC,UAAU;AAChBC,QAAAA,UAAU,EAAED,KAAK,KAAK,UAAU,GAAGC,UAAU,GAAG,OAAQ;QACxDW,iBAAiB,EAAA,IAAA;QAAAhD,QAAA,eAEjByC,GAAA,CAACQ,UAAU,EAAA;AACTC,UAAAA,IAAI,EAAEvD,IAAK;AACXwD,UAAAA,KAAK,EAAC,oBAAoB;AAC1BC,UAAAA,OAAO,EAAC,WAAW;UACnBC,WAAW,EAAEA,MAAK;AAChBnB,YAAAA,cAAc,CAAEoB,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC,CAAA;WAClC;AACFC,UAAAA,UAAU,EAAErD,UAAW;UAAAF,QAAA,eAEvByC,GAAA,CAACe,UAAU,EAAA;YAAAxD,QAAA,eACTyC,GAAA,CAACgB,oBAAoB,EAAA;AAACpD,cAAAA,OAAO,EAAEA,OAAQ;AAAAL,cAAAA,QAAA,eACrCyC,GAAA,CAAA,KAAA,EAAA;AACoB;gBAClBE,GAAG,EAAExC,IAAI,CAACuD,WAAY;AACtBC,gBAAAA,SAAS,EAAEC,IAAI,CAAC,yBAAyB,EAAE;kBACzC,kCAAkC,EAAE9D,MAAI,KAAK,IAAI;kBACjD,kCAAkC,EAAEA,MAAI,KAAK,IAAA;AAC9C,iBAAA,CAAE;AACHoB,gBAAAA,KAAK,EAAEd,cAAe;gBAAA,GAClB2B,gBAAgB,EAAE;AAAA/B,gBAAAA,QAAA,eAEtBuC,IAAA,CAAA,KAAA,EAAA;kBACEoB,SAAS,EAAEC,IAAI,CAAC,eAAe,EAAE/D,KAAK,IAAI,0BAA0B,EAAE;oBACpE,2BAA2B,EAAEE,OAAO,KAAK,IAAA;AAC1C,mBAAA,CAAE;kBAAAC,QAAA,EAAA,CAEFH,KAAK,gBACJ4C,GAAA,CAAA,IAAA,EAAA;AAAIkB,oBAAAA,SAAS,EAAC,wCAAwC;AAAA3D,oBAAAA,QAAA,EAAEH,KAAAA;AAAK,mBAAK,CAAC,GACjE,IAAI,eACR4C,GAAA,CAAA,KAAA,EAAA;AAAKkB,oBAAAA,SAAS,EAAC,4CAA4C;AAAA3D,oBAAAA,QAAA,EAAEA,QAAAA;AAAQ,mBAAM,CAC7E,CAAA;iBAAK,CAAA;AACP,eAAA,EAnBOiC,WAmBF,CAAA;aACe,CAAA;WACZ,CAAA;SACF,CAAA;OACC,CAAA;AACjB,KAAgB,CAClB,CAAA;AAAA,GAAA,CAAG,CAAA;AAEP;;;;"}
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
3
5
  var icons = require('@transferwise/icons');
4
6
  var clsx = require('clsx');
5
7
  var Body = require('../body/Body.js');
@@ -72,7 +74,7 @@ function Instruction({
72
74
  size: 24,
73
75
  className: type,
74
76
  title: isInstructionNode ? item['aria-label'] : undefined
75
- }), /*#__PURE__*/jsxRuntime.jsx(Body, {
77
+ }), /*#__PURE__*/jsxRuntime.jsx(Body.default, {
76
78
  className: "text-primary",
77
79
  type: typography.Typography.BODY_LARGE,
78
80
  children: isInstructionNode ? item.content : item
@@ -80,5 +82,5 @@ function Instruction({
80
82
  });
81
83
  }
82
84
 
83
- module.exports = InstructionsList;
85
+ exports.default = InstructionsList;
84
86
  //# sourceMappingURL=InstructionsList.js.map