@transferwise/components 0.0.0-experimental-57e70f3 → 0.0.0-experimental-09066ec

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 (563) hide show
  1. package/build/dateInput/DateInput.js +12 -5
  2. package/build/dateInput/DateInput.js.map +1 -1
  3. package/build/dateInput/DateInput.mjs +11 -4
  4. package/build/dateInput/DateInput.mjs.map +1 -1
  5. package/build/expressiveMoneyInput/currencySelector/CurrencySelector.js +16 -8
  6. package/build/expressiveMoneyInput/currencySelector/CurrencySelector.js.map +1 -1
  7. package/build/expressiveMoneyInput/currencySelector/CurrencySelector.mjs +14 -6
  8. package/build/expressiveMoneyInput/currencySelector/CurrencySelector.mjs.map +1 -1
  9. package/build/index.js +12 -7
  10. package/build/index.js.map +1 -1
  11. package/build/index.mjs +9 -3
  12. package/build/index.mjs.map +1 -1
  13. package/build/inputs/{_BottomSheet.js → SelectInput/BottomSheet/SelectInputBottomSheet.js} +7 -7
  14. package/build/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.js.map +1 -0
  15. package/build/inputs/{_BottomSheet.mjs → SelectInput/BottomSheet/SelectInputBottomSheet.mjs} +7 -7
  16. package/build/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.mjs.map +1 -0
  17. package/build/inputs/{_ButtonInput.js → SelectInput/ButtonInput/SelectInputButtonInput.js} +5 -5
  18. package/build/inputs/SelectInput/ButtonInput/SelectInputButtonInput.js.map +1 -0
  19. package/build/inputs/{_ButtonInput.mjs → SelectInput/ButtonInput/SelectInputButtonInput.mjs} +5 -5
  20. package/build/inputs/SelectInput/ButtonInput/SelectInputButtonInput.mjs.map +1 -0
  21. package/build/inputs/SelectInput/ClearButton/SelectInputClearButton.js +26 -0
  22. package/build/inputs/SelectInput/ClearButton/SelectInputClearButton.js.map +1 -0
  23. package/build/inputs/SelectInput/ClearButton/SelectInputClearButton.mjs +24 -0
  24. package/build/inputs/SelectInput/ClearButton/SelectInputClearButton.mjs.map +1 -0
  25. package/build/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.js +59 -0
  26. package/build/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.js.map +1 -0
  27. package/build/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.mjs +56 -0
  28. package/build/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.mjs.map +1 -0
  29. package/build/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.js +50 -0
  30. package/build/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.js.map +1 -0
  31. package/build/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.mjs +48 -0
  32. package/build/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.mjs.map +1 -0
  33. package/build/inputs/SelectInput/ItemView/SelectInputItemView.js +47 -0
  34. package/build/inputs/SelectInput/ItemView/SelectInputItemView.js.map +1 -0
  35. package/build/inputs/SelectInput/ItemView/SelectInputItemView.mjs +45 -0
  36. package/build/inputs/SelectInput/ItemView/SelectInputItemView.mjs.map +1 -0
  37. package/build/inputs/SelectInput/Option/SelectInputOption.js +42 -0
  38. package/build/inputs/SelectInput/Option/SelectInputOption.js.map +1 -0
  39. package/build/inputs/SelectInput/Option/SelectInputOption.mjs +40 -0
  40. package/build/inputs/SelectInput/Option/SelectInputOption.mjs.map +1 -0
  41. package/build/inputs/SelectInput/OptionContent/SelectInputOptionContent.js +40 -0
  42. package/build/inputs/SelectInput/OptionContent/SelectInputOptionContent.js.map +1 -0
  43. package/build/inputs/SelectInput/OptionContent/SelectInputOptionContent.mjs +38 -0
  44. package/build/inputs/SelectInput/OptionContent/SelectInputOptionContent.mjs.map +1 -0
  45. package/build/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.js +48 -0
  46. package/build/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.js.map +1 -0
  47. package/build/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.mjs +46 -0
  48. package/build/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.mjs.map +1 -0
  49. package/build/inputs/SelectInput/Options/SelectInputOptions.js +300 -0
  50. package/build/inputs/SelectInput/Options/SelectInputOptions.js.map +1 -0
  51. package/build/inputs/SelectInput/Options/SelectInputOptions.mjs +298 -0
  52. package/build/inputs/SelectInput/Options/SelectInputOptions.mjs.map +1 -0
  53. package/build/inputs/{_Popover.js → SelectInput/Popover/SelectInputPopover.js} +7 -7
  54. package/build/inputs/SelectInput/Popover/SelectInputPopover.js.map +1 -0
  55. package/build/inputs/{_Popover.mjs → SelectInput/Popover/SelectInputPopover.mjs} +7 -7
  56. package/build/inputs/SelectInput/Popover/SelectInputPopover.mjs.map +1 -0
  57. package/build/inputs/SelectInput/SelectInput.contexts.js +29 -0
  58. package/build/inputs/SelectInput/SelectInput.contexts.js.map +1 -0
  59. package/build/inputs/SelectInput/SelectInput.contexts.mjs +24 -0
  60. package/build/inputs/SelectInput/SelectInput.contexts.mjs.map +1 -0
  61. package/build/inputs/SelectInput/SelectInput.js +222 -0
  62. package/build/inputs/SelectInput/SelectInput.js.map +1 -0
  63. package/build/inputs/SelectInput/SelectInput.messages.js.map +1 -0
  64. package/build/inputs/SelectInput/SelectInput.messages.mjs.map +1 -0
  65. package/build/inputs/SelectInput/SelectInput.mjs +216 -0
  66. package/build/inputs/SelectInput/SelectInput.mjs.map +1 -0
  67. package/build/inputs/SelectInput/SelectInput.utils.js +164 -0
  68. package/build/inputs/SelectInput/SelectInput.utils.js.map +1 -0
  69. package/build/inputs/SelectInput/SelectInput.utils.mjs +154 -0
  70. package/build/inputs/SelectInput/SelectInput.utils.mjs.map +1 -0
  71. package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.js +42 -0
  72. package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.js.map +1 -0
  73. package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.mjs +36 -0
  74. package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.mjs.map +1 -0
  75. package/build/main.css +97 -27094
  76. package/build/moneyInput/MoneyInput.js +9 -2
  77. package/build/moneyInput/MoneyInput.js.map +1 -1
  78. package/build/moneyInput/MoneyInput.mjs +8 -1
  79. package/build/moneyInput/MoneyInput.mjs.map +1 -1
  80. package/build/phoneNumberInput/PhoneNumberInput.js +10 -3
  81. package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
  82. package/build/phoneNumberInput/PhoneNumberInput.mjs +9 -2
  83. package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
  84. package/build/styles/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.css +96 -0
  85. package/build/styles/inputs/SelectInput/ButtonInput/SelectInputButtonInput.css +16 -0
  86. package/build/styles/inputs/SelectInput/ClearButton/SelectInputClearButton.css +46 -0
  87. package/build/styles/inputs/SelectInput/ItemView/SelectInputItemView.css +16 -0
  88. package/build/styles/inputs/SelectInput/Option/SelectInputOption.css +33 -0
  89. package/build/styles/inputs/SelectInput/OptionContent/SelectInputOptionContent.css +37 -0
  90. package/build/styles/inputs/SelectInput/Options/SelectInputOptions.css +81 -0
  91. package/build/styles/inputs/SelectInput/Popover/SelectInputPopover.css +46 -0
  92. package/build/styles/main.css +97 -27094
  93. package/build/types/index.d.ts +1 -1
  94. package/build/types/index.d.ts.map +1 -1
  95. package/build/types/inputs/{_BottomSheet.d.ts → SelectInput/BottomSheet/SelectInputBottomSheet.d.ts} +3 -3
  96. package/build/types/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.d.ts.map +1 -0
  97. package/build/types/inputs/SelectInput/BottomSheet/index.d.ts +3 -0
  98. package/build/types/inputs/SelectInput/BottomSheet/index.d.ts.map +1 -0
  99. package/build/types/inputs/SelectInput/ButtonInput/SelectInputButtonInput.d.ts +5 -0
  100. package/build/types/inputs/SelectInput/ButtonInput/SelectInputButtonInput.d.ts.map +1 -0
  101. package/build/types/inputs/SelectInput/ButtonInput/index.d.ts +3 -0
  102. package/build/types/inputs/SelectInput/ButtonInput/index.d.ts.map +1 -0
  103. package/build/types/inputs/SelectInput/ClearButton/SelectInputClearButton.d.ts +7 -0
  104. package/build/types/inputs/SelectInput/ClearButton/SelectInputClearButton.d.ts.map +1 -0
  105. package/build/types/inputs/SelectInput/ClearButton/index.d.ts +3 -0
  106. package/build/types/inputs/SelectInput/ClearButton/index.d.ts.map +1 -0
  107. package/build/types/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.d.ts +16 -0
  108. package/build/types/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.d.ts.map +1 -0
  109. package/build/types/inputs/SelectInput/DefaultRenderTrigger/index.d.ts +2 -0
  110. package/build/types/inputs/SelectInput/DefaultRenderTrigger/index.d.ts.map +1 -0
  111. package/build/types/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.d.ts +9 -0
  112. package/build/types/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.d.ts.map +1 -0
  113. package/build/types/inputs/SelectInput/ItemView/GroupItemView/index.d.ts +3 -0
  114. package/build/types/inputs/SelectInput/ItemView/GroupItemView/index.d.ts.map +1 -0
  115. package/build/types/inputs/SelectInput/ItemView/SelectInputItemView.d.ts +11 -0
  116. package/build/types/inputs/SelectInput/ItemView/SelectInputItemView.d.ts.map +1 -0
  117. package/build/types/inputs/SelectInput/ItemView/index.d.ts +4 -0
  118. package/build/types/inputs/SelectInput/ItemView/index.d.ts.map +1 -0
  119. package/build/types/inputs/SelectInput/Option/SelectInputOption.d.ts +11 -0
  120. package/build/types/inputs/SelectInput/Option/SelectInputOption.d.ts.map +1 -0
  121. package/build/types/inputs/SelectInput/Option/index.d.ts +3 -0
  122. package/build/types/inputs/SelectInput/Option/index.d.ts.map +1 -0
  123. package/build/types/inputs/SelectInput/OptionContent/SelectInputOptionContent.d.ts +13 -0
  124. package/build/types/inputs/SelectInput/OptionContent/SelectInputOptionContent.d.ts.map +1 -0
  125. package/build/types/inputs/SelectInput/OptionContent/index.d.ts +3 -0
  126. package/build/types/inputs/SelectInput/OptionContent/index.d.ts.map +1 -0
  127. package/build/types/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.d.ts +9 -0
  128. package/build/types/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.d.ts.map +1 -0
  129. package/build/types/inputs/SelectInput/Options/OptionsContainer/index.d.ts +3 -0
  130. package/build/types/inputs/SelectInput/Options/OptionsContainer/index.d.ts.map +1 -0
  131. package/build/types/inputs/SelectInput/Options/SelectInputOptions.d.ts +21 -0
  132. package/build/types/inputs/SelectInput/Options/SelectInputOptions.d.ts.map +1 -0
  133. package/build/types/inputs/SelectInput/Options/index.d.ts +4 -0
  134. package/build/types/inputs/SelectInput/Options/index.d.ts.map +1 -0
  135. package/build/types/inputs/{_Popover.d.ts → SelectInput/Popover/SelectInputPopover.d.ts} +3 -3
  136. package/build/types/inputs/SelectInput/Popover/SelectInputPopover.d.ts.map +1 -0
  137. package/build/types/inputs/SelectInput/Popover/index.d.ts +3 -0
  138. package/build/types/inputs/SelectInput/Popover/index.d.ts.map +1 -0
  139. package/build/types/inputs/SelectInput/SelectInput.contexts.d.ts +33 -0
  140. package/build/types/inputs/SelectInput/SelectInput.contexts.d.ts.map +1 -0
  141. package/build/types/inputs/SelectInput/SelectInput.d.ts +10 -0
  142. package/build/types/inputs/SelectInput/SelectInput.d.ts.map +1 -0
  143. package/build/types/inputs/SelectInput/SelectInput.messages.d.ts.map +1 -0
  144. package/build/types/inputs/{SelectInput.d.ts → SelectInput/SelectInput.types.d.ts} +12 -38
  145. package/build/types/inputs/SelectInput/SelectInput.types.d.ts.map +1 -0
  146. package/build/types/inputs/SelectInput/SelectInput.utils.d.ts +60 -0
  147. package/build/types/inputs/SelectInput/SelectInput.utils.d.ts.map +1 -0
  148. package/build/types/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.d.ts +12 -0
  149. package/build/types/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.d.ts.map +1 -0
  150. package/build/types/inputs/SelectInput/TriggerButton/index.d.ts +3 -0
  151. package/build/types/inputs/SelectInput/TriggerButton/index.d.ts.map +1 -0
  152. package/build/types/inputs/SelectInput/components.d.ts +10 -0
  153. package/build/types/inputs/SelectInput/components.d.ts.map +1 -0
  154. package/build/types/inputs/SelectInput/index.d.ts +10 -0
  155. package/build/types/inputs/SelectInput/index.d.ts.map +1 -0
  156. package/package.json +4 -8
  157. package/src/accordion/Accordion.css +74 -0
  158. package/src/accordion/Accordion.less +3 -3
  159. package/src/actionButton/ActionButton.css +64 -0
  160. package/src/actionButton/ActionButton.less +1 -1
  161. package/src/actionOption/ActionOption.css +4 -0
  162. package/src/alert/Alert.css +7 -0
  163. package/src/avatar/Avatar.css +250 -0
  164. package/src/avatar/Avatar.less +3 -3
  165. package/src/avatarLayout/AvatarLayout.css +42 -0
  166. package/src/avatarView/AvatarView.css +44 -0
  167. package/src/avatarView/Dot.css +26 -0
  168. package/src/badge/Badge.css +65 -0
  169. package/src/badge/Badge.less +1 -1
  170. package/src/body/Body.css +3 -0
  171. package/src/button/Button.css +246 -0
  172. package/src/button/Button.vars.css +46 -0
  173. package/src/button/LegacyButton.css +23 -0
  174. package/src/button/LegacyButton.less +1 -1
  175. package/src/card/Card.css +100 -0
  176. package/src/card/Card.less +3 -3
  177. package/src/carousel/Carousel.css +134 -0
  178. package/src/checkboxButton/CheckboxButton.css +43 -0
  179. package/src/checkboxButton/CheckboxButton.less +2 -2
  180. package/src/chips/Chip.css +190 -0
  181. package/src/chips/Chip.less +3 -3
  182. package/src/circularButton/CircularButton.css +34 -0
  183. package/src/common/Option/Option.css +122 -0
  184. package/src/common/Option/Option.less +2 -2
  185. package/src/common/RadioButton/RadioButton.css +4 -0
  186. package/src/common/baseCard/BaseCard.css +49 -0
  187. package/src/common/bottomSheet/BottomSheet.css +53 -0
  188. package/src/common/bottomSheet/BottomSheet.less +1 -1
  189. package/src/common/circle/Circle.css +43 -0
  190. package/src/common/closeButton/CloseButton.css +94 -0
  191. package/src/common/closeButton/CloseButton.less +1 -1
  192. package/src/common/panel/Panel.css +73 -0
  193. package/src/common/panel/Panel.less +1 -1
  194. package/src/criticalBanner/CriticalCommsBanner.css +63 -0
  195. package/src/dateInput/DateInput.css +16 -0
  196. package/src/dateLookup/DateLookup.css +93 -0
  197. package/src/dateLookup/DateLookup.less +1 -1
  198. package/src/dateLookup/dateTrigger/DateTrigger.css +29 -0
  199. package/src/dateLookup/dateTrigger/DateTrigger.less +2 -2
  200. package/src/decision/Decision.css +17 -0
  201. package/src/decision/Decision.less +1 -1
  202. package/src/definitionList/DefinitionList.css +53 -0
  203. package/src/definitionList/DefinitionList.less +1 -1
  204. package/src/dimmer/Dimmer.css +70 -0
  205. package/src/dimmer/Dimmer.less +2 -2
  206. package/src/divider/Divider.css +24 -0
  207. package/src/drawer/Drawer.css +56 -0
  208. package/src/dropFade/DropFade.css +19 -0
  209. package/src/emphasis/Emphasis.css +31 -0
  210. package/src/expressiveMoneyInput/ExpressiveMoneyInput.css +58 -0
  211. package/src/expressiveMoneyInput/amountInput/AmountInput.css +32 -0
  212. package/src/expressiveMoneyInput/chevron/Chevron.css +12 -0
  213. package/src/expressiveMoneyInput/currencySelector/CurrencySelector.css +6 -0
  214. package/src/field/Field.css +13 -0
  215. package/src/flowNavigation/FlowNavigation.css +76 -0
  216. package/src/flowNavigation/FlowNavigation.less +1 -1
  217. package/src/flowNavigation/animatedLabel/AnimatedLabel.css +30 -0
  218. package/src/flowNavigation/animatedLabel/AnimatedLabel.less +2 -2
  219. package/src/header/Header.css +33 -0
  220. package/src/iconButton/IconButton.css +82 -0
  221. package/src/image/Image.css +13 -0
  222. package/src/index.ts +0 -1
  223. package/src/info/Info.css +9 -0
  224. package/src/info/Info.less +1 -1
  225. package/src/inputs/Input.css +158 -0
  226. package/src/inputs/InputGroup.css +63 -0
  227. package/src/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.css +96 -0
  228. package/src/inputs/{_BottomSheet.tsx → SelectInput/BottomSheet/SelectInputBottomSheet.tsx} +7 -7
  229. package/src/inputs/SelectInput/BottomSheet/index.ts +2 -0
  230. package/src/inputs/SelectInput/ButtonInput/SelectInputButtonInput.css +16 -0
  231. package/src/inputs/{_ButtonInput.tsx → SelectInput/ButtonInput/SelectInputButtonInput.tsx} +5 -5
  232. package/src/inputs/SelectInput/ButtonInput/index.ts +2 -0
  233. package/src/inputs/SelectInput/ClearButton/SelectInputClearButton.css +46 -0
  234. package/src/inputs/SelectInput/ClearButton/SelectInputClearButton.less +39 -0
  235. package/src/inputs/SelectInput/ClearButton/SelectInputClearButton.tsx +27 -0
  236. package/src/inputs/SelectInput/ClearButton/index.ts +2 -0
  237. package/src/inputs/SelectInput/DefaultRenderTrigger/SelectInputDefaultRenderTrigger.tsx +74 -0
  238. package/src/inputs/SelectInput/DefaultRenderTrigger/index.ts +5 -0
  239. package/src/inputs/SelectInput/ItemView/GroupItemView/SelectInputGroupItemView.tsx +61 -0
  240. package/src/inputs/SelectInput/ItemView/GroupItemView/index.ts +2 -0
  241. package/src/inputs/SelectInput/ItemView/SelectInputItemView.css +16 -0
  242. package/src/inputs/SelectInput/ItemView/SelectInputItemView.less +17 -0
  243. package/src/inputs/SelectInput/ItemView/SelectInputItemView.tsx +48 -0
  244. package/src/inputs/SelectInput/ItemView/index.ts +3 -0
  245. package/src/inputs/SelectInput/Option/SelectInputOption.css +33 -0
  246. package/src/inputs/SelectInput/Option/SelectInputOption.less +32 -0
  247. package/src/inputs/SelectInput/Option/SelectInputOption.tsx +57 -0
  248. package/src/inputs/SelectInput/Option/index.ts +2 -0
  249. package/src/inputs/SelectInput/OptionContent/SelectInputOptionContent.css +37 -0
  250. package/src/inputs/SelectInput/OptionContent/SelectInputOptionContent.less +38 -0
  251. package/src/inputs/SelectInput/OptionContent/SelectInputOptionContent.tsx +72 -0
  252. package/src/inputs/SelectInput/OptionContent/index.ts +2 -0
  253. package/src/inputs/SelectInput/Options/OptionsContainer/SelectInputOptionsContainer.tsx +59 -0
  254. package/src/inputs/SelectInput/Options/OptionsContainer/index.ts +2 -0
  255. package/src/inputs/SelectInput/Options/SelectInputOptions.css +81 -0
  256. package/src/inputs/SelectInput/Options/SelectInputOptions.less +77 -0
  257. package/src/inputs/SelectInput/Options/SelectInputOptions.tsx +411 -0
  258. package/src/inputs/SelectInput/Options/index.ts +3 -0
  259. package/src/inputs/SelectInput/Popover/SelectInputPopover.css +46 -0
  260. package/src/inputs/{_Popover.tsx → SelectInput/Popover/SelectInputPopover.tsx} +7 -7
  261. package/src/inputs/SelectInput/Popover/index.ts +2 -0
  262. package/src/inputs/SelectInput/SelectInput.contexts.tsx +40 -0
  263. package/src/inputs/SelectInput/SelectInput.css +380 -0
  264. package/src/inputs/SelectInput/SelectInput.less +22 -0
  265. package/src/inputs/{SelectInput.test.tsx → SelectInput/SelectInput.test.tsx} +9 -11
  266. package/src/inputs/SelectInput/SelectInput.tsx +257 -0
  267. package/src/inputs/SelectInput/SelectInput.types.ts +113 -0
  268. package/src/inputs/SelectInput/SelectInput.utils.ts +205 -0
  269. package/src/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.tsx +36 -0
  270. package/src/inputs/SelectInput/TriggerButton/index.ts +5 -0
  271. package/src/inputs/{SelectInput.docs.mdx → SelectInput/_stories/SelectInput.docs.mdx} +0 -1
  272. package/src/inputs/{SelectInput.story.tsx → SelectInput/_stories/SelectInput.story.tsx} +11 -8
  273. package/src/inputs/{SelectInput.test.story.tsx → SelectInput/_stories/SelectInput.test.story.tsx} +6 -10
  274. package/src/inputs/SelectInput/components.ts +10 -0
  275. package/src/inputs/SelectInput/index.ts +12 -0
  276. package/src/inputs/TextArea.css +161 -0
  277. package/src/inputs/_common.less +1 -1
  278. package/src/instructionsList/InstructionsList.css +26 -0
  279. package/src/legacylistItem/LegacyListItem.css +6 -0
  280. package/src/link/Link.css +24 -0
  281. package/src/link/Link.less +2 -2
  282. package/src/listItem/ListItem.css +659 -0
  283. package/src/listItem/ListItem.grid.css +384 -0
  284. package/src/listItem/ListItem.less +1 -1
  285. package/src/listItem/Prompt/ListItemPrompt.css +4 -0
  286. package/src/loader/Loader.css +227 -0
  287. package/src/logo/Logo.css +26 -0
  288. package/src/main.css +7529 -0
  289. package/src/main.less +1 -3
  290. package/src/modal/Modal.css +95 -0
  291. package/src/moneyInput/MoneyInput.css +74 -0
  292. package/src/moneyInput/MoneyInput.less +2 -2
  293. package/src/navigationOption/NavigationOption.css +69 -0
  294. package/src/navigationOption/NavigationOption.less +3 -3
  295. package/src/navigationOptionsList/NavigationOptionsList.css +13 -0
  296. package/src/navigationOptionsList/NavigationOptionsList.less +1 -1
  297. package/src/nudge/Nudge.css +206 -0
  298. package/src/overlayHeader/OverlayHeader.css +15 -0
  299. package/src/overlayHeader/OverlayHeader.less +1 -1
  300. package/src/phoneNumberInput/PhoneNumberInput.css +23 -0
  301. package/src/phoneNumberInput/PhoneNumberInput.less +1 -1
  302. package/src/popover/Popover.css +76 -0
  303. package/src/popover/Popover.less +1 -1
  304. package/src/progress/Progress.css +43 -0
  305. package/src/progressBar/ProgressBar.css +14 -0
  306. package/src/promoCard/PromoCard.css +186 -0
  307. package/src/prompt/ActionPrompt/ActionPrompt.css +25 -0
  308. package/src/prompt/InfoPrompt/InfoPrompt.css +33 -0
  309. package/src/prompt/InlinePrompt/InlinePrompt.css +57 -0
  310. package/src/prompt/PrimitivePrompt/PrimitivePrompt.css +51 -0
  311. package/src/radioGroup/RadioGroup.css +3 -0
  312. package/src/section/Section.css +10 -0
  313. package/src/segmentedControl/SegmentedControl.css +101 -0
  314. package/src/select/Select.css +368 -0
  315. package/src/select/Select.less +5 -5
  316. package/src/sentimentSurface/SentimentSurface.css +487 -0
  317. package/src/slidingPanel/SlidingPanel.css +105 -0
  318. package/src/slidingPanel/SlidingPanel.less +2 -2
  319. package/src/snackbar/Snackbar.css +93 -0
  320. package/src/snackbar/Snackbar.less +3 -3
  321. package/src/statusIcon/StatusIcon.css +6 -0
  322. package/src/stepper/Stepper.css +77 -0
  323. package/src/stepper/Stepper.less +3 -3
  324. package/src/summary/Summary.css +81 -0
  325. package/src/summary/Summary.less +1 -1
  326. package/src/switch/Switch.css +63 -0
  327. package/src/switch/Switch.less +4 -4
  328. package/src/switchOption/SwitchOption.css +4 -0
  329. package/src/table/Table.css +274 -0
  330. package/src/table/Table.less +1 -1
  331. package/src/tabs/Tabs.css +121 -0
  332. package/src/tabs/Tabs.less +4 -4
  333. package/src/tile/Tile.css +68 -0
  334. package/src/tile/Tile.less +1 -1
  335. package/src/tooltip/Tooltip.css +50 -0
  336. package/src/tooltip/Tooltip.less +1 -1
  337. package/src/typeahead/Typeahead.css +187 -0
  338. package/src/typeahead/Typeahead.less +2 -2
  339. package/src/typeahead/typeaheadOption/TypeaheadOption.css +9 -0
  340. package/src/typeahead/typeaheadOption/TypeaheadOption.less +1 -1
  341. package/src/upload/Upload.css +34 -0
  342. package/src/upload/Upload.less +1 -1
  343. package/src/uploadInput/UploadInput.css +18 -0
  344. package/src/uploadInput/UploadInput.less +2 -2
  345. package/src/uploadInput/uploadButton/UploadButton.css +90 -0
  346. package/src/uploadInput/uploadItem/UploadItem.css +166 -0
  347. package/src/uploadInput/uploadItem/UploadItem.less +1 -1
  348. package/build/inputs/SelectInput.js +0 -890
  349. package/build/inputs/SelectInput.js.map +0 -1
  350. package/build/inputs/SelectInput.messages.js.map +0 -1
  351. package/build/inputs/SelectInput.messages.mjs.map +0 -1
  352. package/build/inputs/SelectInput.mjs +0 -881
  353. package/build/inputs/SelectInput.mjs.map +0 -1
  354. package/build/inputs/_BottomSheet.js.map +0 -1
  355. package/build/inputs/_BottomSheet.mjs.map +0 -1
  356. package/build/inputs/_ButtonInput.js.map +0 -1
  357. package/build/inputs/_ButtonInput.mjs.map +0 -1
  358. package/build/inputs/_Popover.js.map +0 -1
  359. package/build/inputs/_Popover.mjs.map +0 -1
  360. package/build/neptune-css/fonts/TW-Averta-Bold.woff +0 -0
  361. package/build/neptune-css/fonts/TW-Averta-Bold.woff2 +0 -0
  362. package/build/neptune-css/fonts/TW-Averta-Regular.woff +0 -0
  363. package/build/neptune-css/fonts/TW-Averta-Regular.woff2 +0 -0
  364. package/build/neptune-css/fonts/TW-Averta-Semibold.woff +0 -0
  365. package/build/neptune-css/fonts/TW-Averta-Semibold.woff2 +0 -0
  366. package/build/neptune-css/fonts/TransferWise-IconFont.svg +0 -81
  367. package/build/neptune-css/fonts/TransferWise-IconFont.woff +0 -0
  368. package/build/neptune-css/fonts/WiseSans-Heavy.woff2 +0 -0
  369. package/build/neptune-css/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  370. package/build/neptune-css/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  371. package/build/neptune-css/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  372. package/build/neptune-css/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  373. package/build/neptune-css/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  374. package/build/neptune-css/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  375. package/build/neptune-css/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  376. package/build/neptune-css/img/bg-dark.svg +0 -31
  377. package/build/neptune-css/img/bg-light.svg +0 -26
  378. package/build/neptune-css/less/legacy-variables.less +0 -1299
  379. package/build/neptune-css/less/neptune-tokens.css +0 -0
  380. package/build/neptune-css/less/neptune-tokens.less +0 -275
  381. package/build/neptune-css/less/zindex.css +0 -0
  382. package/build/neptune-css/less/zindex.less +0 -17
  383. package/build/neptune-css/props/custom-media.css +0 -11
  384. package/build/neptune-css/props/legacy-custom-props.css +0 -69
  385. package/build/neptune-css/props/neptune-tokens.css +0 -152
  386. package/build/neptune.css +0 -25724
  387. package/build/styles/neptune-css/less/accordion.css +0 -255
  388. package/build/styles/neptune-css/less/alerts.css +0 -751
  389. package/build/styles/neptune-css/less/background.css +0 -20
  390. package/build/styles/neptune-css/less/badge.css +0 -90
  391. package/build/styles/neptune-css/less/border-radius.css +0 -3
  392. package/build/styles/neptune-css/less/breadcrumbs.css +0 -20
  393. package/build/styles/neptune-css/less/button-groups.css +0 -495
  394. package/build/styles/neptune-css/less/buttons.css +0 -1390
  395. package/build/styles/neptune-css/less/chevron.css +0 -35
  396. package/build/styles/neptune-css/less/circles.css +0 -248
  397. package/build/styles/neptune-css/less/close.css +0 -47
  398. package/build/styles/neptune-css/less/column-layout.css +0 -164
  399. package/build/styles/neptune-css/less/core/viewport-themes.css +0 -59
  400. package/build/styles/neptune-css/less/currency-flags.css +0 -46
  401. package/build/styles/neptune-css/less/decision.css +0 -136
  402. package/build/styles/neptune-css/less/dropdowns.css +0 -472
  403. package/build/styles/neptune-css/less/droppable.css +0 -221
  404. package/build/styles/neptune-css/less/flex.css +0 -598
  405. package/build/styles/neptune-css/less/footer.css +0 -129
  406. package/build/styles/neptune-css/less/forms/bootstrap-forms.css +0 -2277
  407. package/build/styles/neptune-css/less/forms/checkbox-radio.css +0 -367
  408. package/build/styles/neptune-css/less/grid.css +0 -2369
  409. package/build/styles/neptune-css/less/input-groups.css +0 -2740
  410. package/build/styles/neptune-css/less/link-callout.css +0 -20
  411. package/build/styles/neptune-css/less/list-group.css +0 -350
  412. package/build/styles/neptune-css/less/loaders.css +0 -76
  413. package/build/styles/neptune-css/less/media.css +0 -74
  414. package/build/styles/neptune-css/less/modals.css +0 -185
  415. package/build/styles/neptune-css/less/navbar.css +0 -2406
  416. package/build/styles/neptune-css/less/navs.css +0 -296
  417. package/build/styles/neptune-css/less/neptune-addons.css +0 -1857
  418. package/build/styles/neptune-css/less/neptune-core.css +0 -2049
  419. package/build/styles/neptune-css/less/neptune-social-media.css +0 -144
  420. package/build/styles/neptune-css/less/neptune.css +0 -25724
  421. package/build/styles/neptune-css/less/panels.css +0 -528
  422. package/build/styles/neptune-css/less/popovers.css +0 -661
  423. package/build/styles/neptune-css/less/process.css +0 -483
  424. package/build/styles/neptune-css/less/progress-bars.css +0 -64
  425. package/build/styles/neptune-css/less/ring.css +0 -55
  426. package/build/styles/neptune-css/less/select.css +0 -99
  427. package/build/styles/neptune-css/less/sequences.css +0 -855
  428. package/build/styles/neptune-css/less/table.css +0 -446
  429. package/build/styles/neptune-css/less/tick.css +0 -32
  430. package/build/styles/neptune-css/less/tooltip.css +0 -160
  431. package/build/styles/neptune-css/less/utilities.css +0 -145
  432. package/build/styles/neptune-css/less/wells.css +0 -74
  433. package/build/styles/neptune-css/props/custom-media.css +0 -11
  434. package/build/styles/neptune-css/props/legacy-custom-props.css +0 -69
  435. package/build/styles/neptune-css/props/neptune-tokens.css +0 -11
  436. package/build/styles/neptune-css/variables/legacy-variables.css +0 -0
  437. package/build/styles/neptune-css/variables/neptune-tokens.css +0 -0
  438. package/build/styles/neptune-css/variables/zindex.css +0 -0
  439. package/build/types/inputs/SelectInput.d.ts.map +0 -1
  440. package/build/types/inputs/SelectInput.messages.d.ts.map +0 -1
  441. package/build/types/inputs/_BottomSheet.d.ts.map +0 -1
  442. package/build/types/inputs/_ButtonInput.d.ts +0 -5
  443. package/build/types/inputs/_ButtonInput.d.ts.map +0 -1
  444. package/build/types/inputs/_Popover.d.ts.map +0 -1
  445. package/src/inputs/SelectInput.less +0 -219
  446. package/src/inputs/SelectInput.tsx +0 -1269
  447. package/src/neptune-css/fonts/TW-Averta-Bold.woff +0 -0
  448. package/src/neptune-css/fonts/TW-Averta-Bold.woff2 +0 -0
  449. package/src/neptune-css/fonts/TW-Averta-Regular.woff +0 -0
  450. package/src/neptune-css/fonts/TW-Averta-Regular.woff2 +0 -0
  451. package/src/neptune-css/fonts/TW-Averta-Semibold.woff +0 -0
  452. package/src/neptune-css/fonts/TW-Averta-Semibold.woff2 +0 -0
  453. package/src/neptune-css/fonts/TransferWise-IconFont.svg +0 -81
  454. package/src/neptune-css/fonts/TransferWise-IconFont.woff +0 -0
  455. package/src/neptune-css/fonts/WiseSans-Heavy.woff2 +0 -0
  456. package/src/neptune-css/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  457. package/src/neptune-css/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  458. package/src/neptune-css/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  459. package/src/neptune-css/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  460. package/src/neptune-css/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  461. package/src/neptune-css/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  462. package/src/neptune-css/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  463. package/src/neptune-css/img/bg-dark.svg +0 -31
  464. package/src/neptune-css/img/bg-light.svg +0 -26
  465. package/src/neptune-css/less/accordion.less +0 -15
  466. package/src/neptune-css/less/addons/_background-utilities.less +0 -82
  467. package/src/neptune-css/less/addons/_border.less +0 -3
  468. package/src/neptune-css/less/addons/_display-utilities.less +0 -159
  469. package/src/neptune-css/less/addons/_spacing-utilities.less +0 -73
  470. package/src/neptune-css/less/addons/_utilities.less +0 -147
  471. package/src/neptune-css/less/alerts.less +0 -252
  472. package/src/neptune-css/less/background.less +0 -24
  473. package/src/neptune-css/less/badge.less +0 -85
  474. package/src/neptune-css/less/border-radius.less +0 -3
  475. package/src/neptune-css/less/breadcrumbs.less +0 -27
  476. package/src/neptune-css/less/button-groups.less +0 -424
  477. package/src/neptune-css/less/buttons.less +0 -738
  478. package/src/neptune-css/less/chevron.less +0 -39
  479. package/src/neptune-css/less/circles.less +0 -233
  480. package/src/neptune-css/less/close.less +0 -48
  481. package/src/neptune-css/less/column-layout.less +0 -167
  482. package/src/neptune-css/less/components/_component-animations.less +0 -43
  483. package/src/neptune-css/less/core/_fonts.less +0 -97
  484. package/src/neptune-css/less/core/_scaffolding.less +0 -380
  485. package/src/neptune-css/less/core/_typography-utilities.less +0 -255
  486. package/src/neptune-css/less/core/_typography.less +0 -575
  487. package/src/neptune-css/less/core/viewport-themes.less +0 -65
  488. package/src/neptune-css/less/currency-flags.less +0 -42
  489. package/src/neptune-css/less/decision.less +0 -98
  490. package/src/neptune-css/less/dropdowns.less +0 -365
  491. package/src/neptune-css/less/droppable.less +0 -213
  492. package/src/neptune-css/less/flex.less +0 -113
  493. package/src/neptune-css/less/footer.less +0 -113
  494. package/src/neptune-css/less/forms/bootstrap-forms.less +0 -1218
  495. package/src/neptune-css/less/forms/checkbox-radio.less +0 -330
  496. package/src/neptune-css/less/grid.less +0 -187
  497. package/src/neptune-css/less/input-groups.less +0 -298
  498. package/src/neptune-css/less/link-callout.less +0 -17
  499. package/src/neptune-css/less/list-group.less +0 -260
  500. package/src/neptune-css/less/loaders.less +0 -91
  501. package/src/neptune-css/less/media.less +0 -68
  502. package/src/neptune-css/less/mixins/_alerts.less +0 -39
  503. package/src/neptune-css/less/mixins/_arrows.less +0 -52
  504. package/src/neptune-css/less/mixins/_border-radius.less +0 -11
  505. package/src/neptune-css/less/mixins/_buttons.less +0 -82
  506. package/src/neptune-css/less/mixins/_center-block.less +0 -7
  507. package/src/neptune-css/less/mixins/_clearfix.less +0 -23
  508. package/src/neptune-css/less/mixins/_flex.less +0 -105
  509. package/src/neptune-css/less/mixins/_forms.less +0 -130
  510. package/src/neptune-css/less/mixins/_grid-framework.less +0 -104
  511. package/src/neptune-css/less/mixins/_grid.less +0 -158
  512. package/src/neptune-css/less/mixins/_hide-text.less +0 -20
  513. package/src/neptune-css/less/mixins/_links.less +0 -7
  514. package/src/neptune-css/less/mixins/_list-group.less +0 -23
  515. package/src/neptune-css/less/mixins/_logical-properties-IE-friendly.less +0 -381
  516. package/src/neptune-css/less/mixins/_logical-properties-modern-browsers.less +0 -226
  517. package/src/neptune-css/less/mixins/_logical-properties.less +0 -5
  518. package/src/neptune-css/less/mixins/_nav-divider.less +0 -10
  519. package/src/neptune-css/less/mixins/_nav-vertical-align.less +0 -10
  520. package/src/neptune-css/less/mixins/_panels.less +0 -23
  521. package/src/neptune-css/less/mixins/_physical-properties.less +0 -110
  522. package/src/neptune-css/less/mixins/_reset-text.less +0 -22
  523. package/src/neptune-css/less/mixins/_sequence.less +0 -203
  524. package/src/neptune-css/less/mixins/_spacing.less +0 -122
  525. package/src/neptune-css/less/mixins/_tab-focus.less +0 -5
  526. package/src/neptune-css/less/mixins/_table-row.less +0 -47
  527. package/src/neptune-css/less/mixins/_text-emphasis.less +0 -39
  528. package/src/neptune-css/less/mixins/_text-overflow.less +0 -8
  529. package/src/neptune-css/less/mixins/_theming.less +0 -7
  530. package/src/neptune-css/less/modals.less +0 -239
  531. package/src/neptune-css/less/navbar.less +0 -1442
  532. package/src/neptune-css/less/navs.less +0 -339
  533. package/src/neptune-css/less/neptune-addons.less +0 -4
  534. package/src/neptune-css/less/neptune-core.less +0 -4
  535. package/src/neptune-css/less/neptune-social-media.less +0 -84
  536. package/src/neptune-css/less/neptune.bundle.less +0 -65
  537. package/src/neptune-css/less/panels.less +0 -410
  538. package/src/neptune-css/less/popovers.less +0 -379
  539. package/src/neptune-css/less/process.less +0 -426
  540. package/src/neptune-css/less/progress-bars.less +0 -55
  541. package/src/neptune-css/less/ring.less +0 -51
  542. package/src/neptune-css/less/select.less +0 -88
  543. package/src/neptune-css/less/sequences.less +0 -511
  544. package/src/neptune-css/less/table.less +0 -385
  545. package/src/neptune-css/less/tick.less +0 -37
  546. package/src/neptune-css/less/tooltip.less +0 -130
  547. package/src/neptune-css/less/utilities.less +0 -153
  548. package/src/neptune-css/less/wells.less +0 -37
  549. package/src/neptune-css/props/custom-media.css +0 -11
  550. package/src/neptune-css/props/legacy-custom-props.css +0 -69
  551. package/src/neptune-css/props/neptune-tokens.css +0 -11
  552. package/src/neptune-css/variables/legacy-variables.less +0 -1299
  553. package/src/neptune-css/variables/neptune-tokens.less +0 -12
  554. package/src/neptune-css/variables/zindex.less +0 -17
  555. package/build/inputs/{SelectInput.messages.js → SelectInput/SelectInput.messages.js} +0 -0
  556. package/build/inputs/{SelectInput.messages.mjs → SelectInput/SelectInput.messages.mjs} +0 -0
  557. package/build/styles/inputs/{SelectInput.css → SelectInput/SelectInput.css} +90 -90
  558. /package/build/types/inputs/{SelectInput.messages.d.ts → SelectInput/SelectInput.messages.d.ts} +0 -0
  559. /package/src/inputs/{_BottomSheet.less → SelectInput/BottomSheet/SelectInputBottomSheet.less} +0 -0
  560. /package/src/inputs/{_ButtonInput.less → SelectInput/ButtonInput/SelectInputButtonInput.less} +0 -0
  561. /package/src/inputs/{_Popover.less → SelectInput/Popover/SelectInputPopover.less} +0 -0
  562. /package/src/inputs/{SelectInput.messages.ts → SelectInput/SelectInput.messages.ts} +0 -0
  563. /package/{build/neptune-css/less/legacy-variables.css → src/listItem/ListItem.vars.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PhoneNumberInput.mjs","sources":["../../src/phoneNumberInput/PhoneNumberInput.tsx"],"sourcesContent":["import { useState, useEffect, useMemo, useRef } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Size, SizeLarge, SizeMedium, SizeSmall } from '../common';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport { SelectInput, SelectInputOptionContent, SelectInputProps } from '../inputs/SelectInput';\nimport messages from './PhoneNumberInput.messages';\nimport countries from './data/countries';\nimport {\n explodeNumberModel,\n isValidPhoneNumber,\n cleanNumber,\n setDefaultPrefix,\n sortArrayByProperty,\n groupCountriesByPrefix,\n excludeCountries,\n findCountryByPrefix,\n} from './utils';\nimport { PhoneNumber } from './utils/explodeNumberModel';\nimport { Input } from '../inputs/Input';\n\nconst ALLOWED_PHONE_CHARS = /^$|^[\\d-\\s]+$/;\n\nexport interface PhoneNumberInputProps {\n id?: string;\n 'aria-labelledby'?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: string;\n onChange: (value: string | null, prefix: string) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: () => void;\n countryCode?: string;\n /** @default 'Prefix' */\n searchPlaceholder?: string;\n /** @default 'md' */\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n /** @default {} */\n selectProps?: Partial<SelectInputProps<string | null>>;\n /**\n * List of iso3 codes of countries to remove from the list\n * @default []\n */\n disabledCountries?: readonly string[];\n}\n\nconst defaultSelectProps = {} satisfies PhoneNumberInputProps['selectProps'];\nconst defaultDisabledCountries = [] satisfies PhoneNumberInputProps['disabledCountries'];\n\nconst PhoneNumberInput = ({\n id,\n 'aria-labelledby': ariaLabelledByProp,\n required,\n disabled,\n initialValue,\n onChange,\n onFocus,\n onBlur,\n countryCode,\n searchPlaceholder = 'Prefix',\n size = Size.MEDIUM,\n placeholder,\n selectProps = defaultSelectProps,\n disabledCountries = defaultDisabledCountries,\n}: PhoneNumberInputProps) => {\n const countryCodeSelectRef = useRef<HTMLButtonElement>(null);\n const phoneNumberInputRef = useRef<HTMLInputElement>(null);\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const createId = (customID: string | undefined, backup: string): string => {\n if (customID) {\n return customID + (backup ? `-${backup}` : '');\n }\n const random = Math.random().toString(36).slice(2, 8);\n return `${backup}-${random}`;\n };\n\n // Link the first non-disabled input to the the Field label, if present\n const ids = {\n countryCode: {\n label: createId(id, 'country-code-label'),\n select: createId(id, 'country-code-select'),\n },\n phoneNumber: {\n label: createId(id, 'phone-number-label'),\n input: createId(id, id ? '' : 'phone-number-input'),\n },\n };\n\n const [internalValue, setInternalValue] = useState<PhoneNumber>(() => {\n const cleanValue = initialValue ? cleanNumber(initialValue) : null;\n\n if (!cleanValue || !isValidPhoneNumber(cleanValue, 1)) {\n return {\n prefix: setDefaultPrefix(locale, countryCode),\n suffix: '',\n };\n }\n\n return explodeNumberModel(cleanValue);\n });\n const [broadcastedValue, setBroadcastedValue] = useState<PhoneNumber | null>(null);\n\n const [suffixDirty, setSuffixDirty] = useState(false);\n useEffect(() => {\n if (internalValue.suffix) {\n setSuffixDirty(true);\n }\n }, [internalValue.suffix]);\n\n const countriesByPrefix = useMemo(\n () =>\n groupCountriesByPrefix(\n sortArrayByProperty(excludeCountries(countries, disabledCountries), 'iso3'),\n ),\n [disabledCountries],\n );\n\n const onSuffixChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const suffix = event.target.value;\n if (ALLOWED_PHONE_CHARS.test(suffix)) {\n setInternalValue((prev) => ({ ...prev, suffix }));\n }\n };\n\n const onPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n if (!event.nativeEvent.clipboardData) {\n return;\n }\n\n const pastedValue = (event.nativeEvent.clipboardData.getData('text/plain') || '').replace(\n /(\\s|-)+/g,\n '',\n );\n const pastedNumber = explodeNumberModel(pastedValue);\n\n if (\n pastedNumber.prefix != null &&\n countriesByPrefix.has(pastedNumber.prefix) &&\n ALLOWED_PHONE_CHARS.test(pastedNumber.suffix)\n ) {\n setInternalValue(pastedNumber);\n }\n };\n\n useEffect(() => {\n if (broadcastedValue === null) {\n setBroadcastedValue(internalValue);\n return;\n }\n\n const internalPhoneNumber = `${internalValue.prefix ?? ''}${internalValue.suffix}`;\n const broadcastedPhoneNumber = `${broadcastedValue.prefix ?? ''}${broadcastedValue.suffix}`;\n\n if (internalPhoneNumber === broadcastedPhoneNumber) {\n return;\n }\n\n const newValue = isValidPhoneNumber(internalPhoneNumber)\n ? cleanNumber(internalPhoneNumber)\n : null;\n\n onChange(\n newValue,\n internalValue.prefix ?? '', // TODO: Allow `null` in public API\n );\n setBroadcastedValue(internalValue);\n }, [onChange, broadcastedValue, internalValue]);\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n if (!selectProps.disabled) {\n countryCodeSelectRef.current?.click();\n } else {\n phoneNumberInputRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, selectProps.disabled]);\n\n return (\n <fieldset {...inputAttributes} aria-labelledby={ariaLabelledBy} className=\"tw-telephone\">\n <label className=\"sr-only\" id={ids.countryCode.label} htmlFor={ids.countryCode.select}>\n {formatMessage(messages.countryCodeLabel)}\n </label>\n <div className=\"tw-telephone__country-select\">\n <SelectInput\n triggerRef={countryCodeSelectRef}\n placeholder={formatMessage(messages.selectInputPlaceholder)}\n items={[...countriesByPrefix].map(([prefix, countries]) => ({\n type: 'option',\n value: prefix,\n filterMatchers: [\n prefix,\n ...countries.map((country) => country.name),\n ...countries.map((country) => country.iso3),\n ],\n }))}\n value={internalValue.prefix}\n renderValue={(prefix, withinTrigger) => (\n <SelectInputOptionContent\n title={prefix}\n note={\n withinTrigger\n ? undefined\n : countriesByPrefix\n .get(prefix)\n ?.map((country) => country.iso3)\n .join(', ')\n }\n />\n )}\n filterable\n filterPlaceholder={searchPlaceholder}\n disabled={disabled}\n size={size}\n id={ids.countryCode.select}\n UNSAFE_triggerButtonProps={{\n id: ids.countryCode.select,\n 'aria-labelledby': ids.countryCode.label,\n 'aria-describedby': undefined,\n 'aria-invalid': undefined,\n }}\n onChange={(prefix) => {\n const country = prefix != null ? findCountryByPrefix(prefix) : null;\n setInternalValue((prev) => ({ ...prev, prefix, format: country?.phoneFormat }));\n }}\n onClose={() => {\n if (suffixDirty) {\n onBlur?.();\n }\n }}\n {...selectProps}\n />\n </div>\n <label className=\"sr-only\" id={ids.phoneNumber.label} htmlFor={ids.phoneNumber.input}>\n {formatMessage(messages.phoneNumberLabel)}\n </label>\n <div className=\"tw-telephone__number-input\">\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={phoneNumberInputRef}\n id={ids.phoneNumber.input}\n autoComplete=\"tel-national\"\n name=\"phoneNumber\"\n inputMode=\"numeric\"\n value={internalValue.suffix}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n aria-labelledby={ids.phoneNumber.label}\n onChange={onSuffixChange}\n onPaste={onPaste}\n onFocus={onFocus}\n onBlur={() => onBlur?.()}\n />\n </div>\n </div>\n </fieldset>\n );\n};\n\nexport default PhoneNumberInput;\n"],"names":["ALLOWED_PHONE_CHARS","defaultSelectProps","defaultDisabledCountries","PhoneNumberInput","id","ariaLabelledByProp","required","disabled","initialValue","onChange","onFocus","onBlur","countryCode","searchPlaceholder","size","Size","MEDIUM","placeholder","selectProps","disabledCountries","countryCodeSelectRef","useRef","phoneNumberInputRef","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","ariaLabelledBy","locale","formatMessage","useIntl","createId","customID","backup","random","Math","toString","slice","ids","label","select","phoneNumber","input","internalValue","setInternalValue","useState","cleanValue","cleanNumber","isValidPhoneNumber","prefix","setDefaultPrefix","suffix","explodeNumberModel","broadcastedValue","setBroadcastedValue","suffixDirty","setSuffixDirty","useEffect","countriesByPrefix","useMemo","groupCountriesByPrefix","sortArrayByProperty","excludeCountries","countries","onSuffixChange","event","target","value","test","prev","onPaste","nativeEvent","clipboardData","pastedValue","getData","replace","pastedNumber","has","internalPhoneNumber","broadcastedPhoneNumber","newValue","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","_jsxs","className","children","_jsx","htmlFor","messages","countryCodeLabel","SelectInput","triggerRef","selectInputPlaceholder","items","map","type","filterMatchers","country","name","iso3","renderValue","withinTrigger","SelectInputOptionContent","title","note","undefined","get","join","filterable","filterPlaceholder","UNSAFE_triggerButtonProps","findCountryByPrefix","format","phoneFormat","onClose","phoneNumberLabel","Input","ref","autoComplete","inputMode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,MAAMA,mBAAmB,GAAG,eAAe;AA0B3C,MAAMC,kBAAkB,GAAG,EAAiD;AAC5E,MAAMC,wBAAwB,GAAG,EAAuD;AAExF,MAAMC,gBAAgB,GAAGA,CAAC;EACxBC,EAAE;AACF,EAAA,iBAAiB,EAAEC,kBAAkB;EACrCC,QAAQ;EACRC,QAAQ;EACRC,YAAY;EACZC,QAAQ;EACRC,OAAO;EACPC,MAAM;EACNC,WAAW;AACXC,EAAAA,iBAAiB,GAAG,QAAQ;EAC5BC,IAAI,GAAGC,IAAI,CAACC,MAAM;EAClBC,WAAW;AACXC,EAAAA,WAAW,GAAGjB,kBAAkB;AAChCkB,EAAAA,iBAAiB,GAAGjB;AAAwB,CACtB,KAAI;AAC1B,EAAA,MAAMkB,oBAAoB,GAAGC,MAAM,CAAoB,IAAI,CAAC;AAC5D,EAAA,MAAMC,mBAAmB,GAAGD,MAAM,CAAmB,IAAI,CAAC;EAC1D,MAAME,eAAe,GAAGC,kBAAkB,CAAC;AAAEC,IAAAA,YAAY,EAAE;AAAI,GAAE,CAAC;AAClE,EAAA,MAAMC,aAAa,GAAGC,gBAAgB,EAAE;AACxC,EAAA,MAAMC,cAAc,GAAGvB,kBAAkB,IAAIkB,eAAe,CAAC,iBAAiB,CAAC;EAE/E,MAAM;IAAEM,MAAM;AAAEC,IAAAA;GAAe,GAAGC,OAAO,EAAE;AAE3C,EAAA,MAAMC,QAAQ,GAAGA,CAACC,QAA4B,EAAEC,MAAc,KAAY;AACxE,IAAA,IAAID,QAAQ,EAAE;MACZ,OAAOA,QAAQ,IAAIC,MAAM,GAAG,IAAIA,MAAM,CAAA,CAAE,GAAG,EAAE,CAAC;AAChD,IAAA;AACA,IAAA,MAAMC,MAAM,GAAGC,IAAI,CAACD,MAAM,EAAE,CAACE,QAAQ,CAAC,EAAE,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACrD,IAAA,OAAO,CAAA,EAAGJ,MAAM,CAAA,CAAA,EAAIC,MAAM,CAAA,CAAE;EAC9B,CAAC;AAED;AACA,EAAA,MAAMI,GAAG,GAAG;AACV3B,IAAAA,WAAW,EAAE;AACX4B,MAAAA,KAAK,EAAER,QAAQ,CAAC5B,EAAE,EAAE,oBAAoB,CAAC;AACzCqC,MAAAA,MAAM,EAAET,QAAQ,CAAC5B,EAAE,EAAE,qBAAqB;KAC3C;AACDsC,IAAAA,WAAW,EAAE;AACXF,MAAAA,KAAK,EAAER,QAAQ,CAAC5B,EAAE,EAAE,oBAAoB,CAAC;MACzCuC,KAAK,EAAEX,QAAQ,CAAC5B,EAAE,EAAEA,EAAE,GAAG,EAAE,GAAG,oBAAoB;AACnD;GACF;EAED,MAAM,CAACwC,aAAa,EAAEC,gBAAgB,CAAC,GAAGC,QAAQ,CAAc,MAAK;IACnE,MAAMC,UAAU,GAAGvC,YAAY,GAAGwC,WAAW,CAACxC,YAAY,CAAC,GAAG,IAAI;IAElE,IAAI,CAACuC,UAAU,IAAI,CAACE,kBAAkB,CAACF,UAAU,EAAE,CAAC,CAAC,EAAE;MACrD,OAAO;AACLG,QAAAA,MAAM,EAAEC,gBAAgB,CAACtB,MAAM,EAAEjB,WAAW,CAAC;AAC7CwC,QAAAA,MAAM,EAAE;OACT;AACH,IAAA;IAEA,OAAOC,kBAAkB,CAACN,UAAU,CAAC;AACvC,EAAA,CAAC,CAAC;EACF,MAAM,CAACO,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGT,QAAQ,CAAqB,IAAI,CAAC;EAElF,MAAM,CAACU,WAAW,EAAEC,cAAc,CAAC,GAAGX,QAAQ,CAAC,KAAK,CAAC;AACrDY,EAAAA,SAAS,CAAC,MAAK;IACb,IAAId,aAAa,CAACQ,MAAM,EAAE;MACxBK,cAAc,CAAC,IAAI,CAAC;AACtB,IAAA;AACF,EAAA,CAAC,EAAE,CAACb,aAAa,CAACQ,MAAM,CAAC,CAAC;EAE1B,MAAMO,iBAAiB,GAAGC,OAAO,CAC/B,MACEC,sBAAsB,CACpBC,mBAAmB,CAACC,gBAAgB,CAACC,SAAS,EAAE7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAC5E,EACH,CAACA,iBAAiB,CAAC,CACpB;EAED,MAAM8C,cAAc,GAAgDC,KAAK,IAAI;AAC3E,IAAA,MAAMd,MAAM,GAAGc,KAAK,CAACC,MAAM,CAACC,KAAK;AACjC,IAAA,IAAIpE,mBAAmB,CAACqE,IAAI,CAACjB,MAAM,CAAC,EAAE;MACpCP,gBAAgB,CAAEyB,IAAI,KAAM;AAAE,QAAA,GAAGA,IAAI;AAAElB,QAAAA;AAAM,OAAE,CAAC,CAAC;AACnD,IAAA;EACF,CAAC;EAED,MAAMmB,OAAO,GAAmDL,KAAK,IAAI;AACvE,IAAA,IAAI,CAACA,KAAK,CAACM,WAAW,CAACC,aAAa,EAAE;AACpC,MAAA;AACF,IAAA;IAEA,MAAMC,WAAW,GAAG,CAACR,KAAK,CAACM,WAAW,CAACC,aAAa,CAACE,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAEC,OAAO,CACvF,UAAU,EACV,EAAE,CACH;AACD,IAAA,MAAMC,YAAY,GAAGxB,kBAAkB,CAACqB,WAAW,CAAC;IAEpD,IACEG,YAAY,CAAC3B,MAAM,IAAI,IAAI,IAC3BS,iBAAiB,CAACmB,GAAG,CAACD,YAAY,CAAC3B,MAAM,CAAC,IAC1ClD,mBAAmB,CAACqE,IAAI,CAACQ,YAAY,CAACzB,MAAM,CAAC,EAC7C;MACAP,gBAAgB,CAACgC,YAAY,CAAC;AAChC,IAAA;EACF,CAAC;AAEDnB,EAAAA,SAAS,CAAC,MAAK;IACb,IAAIJ,gBAAgB,KAAK,IAAI,EAAE;MAC7BC,mBAAmB,CAACX,aAAa,CAAC;AAClC,MAAA;AACF,IAAA;AAEA,IAAA,MAAMmC,mBAAmB,GAAG,CAAA,EAAGnC,aAAa,CAACM,MAAM,IAAI,EAAE,CAAA,EAAGN,aAAa,CAACQ,MAAM,CAAA,CAAE;AAClF,IAAA,MAAM4B,sBAAsB,GAAG,CAAA,EAAG1B,gBAAgB,CAACJ,MAAM,IAAI,EAAE,CAAA,EAAGI,gBAAgB,CAACF,MAAM,CAAA,CAAE;IAE3F,IAAI2B,mBAAmB,KAAKC,sBAAsB,EAAE;AAClD,MAAA;AACF,IAAA;AAEA,IAAA,MAAMC,QAAQ,GAAGhC,kBAAkB,CAAC8B,mBAAmB,CAAC,GACpD/B,WAAW,CAAC+B,mBAAmB,CAAC,GAChC,IAAI;IAERtE,QAAQ,CACNwE,QAAQ,EACRrC,aAAa,CAACM,MAAM,IAAI,EAAE,CAC3B;IACDK,mBAAmB,CAACX,aAAa,CAAC;EACpC,CAAC,EAAE,CAACnC,QAAQ,EAAE6C,gBAAgB,EAAEV,aAAa,CAAC,CAAC;AAE/Cc,EAAAA,SAAS,CAAC,MAAK;AACb,IAAA,MAAMwB,QAAQ,GAAGxD,aAAa,EAAEyD,OAAO;AAEvC,IAAA,IAAID,QAAQ,EAAE;MACZ,MAAME,gBAAgB,GAAGA,MAAK;AAC5B,QAAA,IAAI,CAAClE,WAAW,CAACX,QAAQ,EAAE;AACzBa,UAAAA,oBAAoB,CAAC+D,OAAO,EAAEE,KAAK,EAAE;AACvC,QAAA,CAAC,MAAM;AACL/D,UAAAA,mBAAmB,CAAC6D,OAAO,EAAEG,KAAK,EAAE;AACtC,QAAA;MACF,CAAC;AAEDJ,MAAAA,QAAQ,CAACK,gBAAgB,CAAC,OAAO,EAAEH,gBAAgB,CAAC;AAEpD,MAAA,OAAO,MAAK;AACVF,QAAAA,QAAQ,EAAEM,mBAAmB,CAAC,OAAO,EAAEJ,gBAAgB,CAAC;MAC1D,CAAC;AACH,IAAA;EACF,CAAC,EAAE,CAAC1D,aAAa,EAAER,WAAW,CAACX,QAAQ,CAAC,CAAC;AAEzC,EAAA,oBACEkF,IAAA,CAAA,UAAA,EAAA;AAAA,IAAA,GAAclE,eAAe;AAAE,IAAA,iBAAA,EAAiBK,cAAe;AAAC8D,IAAAA,SAAS,EAAC,cAAc;AAAAC,IAAAA,QAAA,gBACtFC,GAAA,CAAA,OAAA,EAAA;AAAOF,MAAAA,SAAS,EAAC,SAAS;AAACtF,MAAAA,EAAE,EAAEmC,GAAG,CAAC3B,WAAW,CAAC4B,KAAM;AAACqD,MAAAA,OAAO,EAAEtD,GAAG,CAAC3B,WAAW,CAAC6B,MAAO;AAAAkD,MAAAA,QAAA,EACnF7D,aAAa,CAACgE,QAAQ,CAACC,gBAAgB;KACnC,CACP,eAAAH,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,8BAA8B;MAAAC,QAAA,eAC3CC,GAAA,CAACI,WAAW,EAAA;AACVC,QAAAA,UAAU,EAAE7E,oBAAqB;AACjCH,QAAAA,WAAW,EAAEa,aAAa,CAACgE,QAAQ,CAACI,sBAAsB,CAAE;AAC5DC,QAAAA,KAAK,EAAE,CAAC,GAAGxC,iBAAiB,CAAC,CAACyC,GAAG,CAAC,CAAC,CAAClD,MAAM,EAAEc,SAAS,CAAC,MAAM;AAC1DqC,UAAAA,IAAI,EAAE,QAAQ;AACdjC,UAAAA,KAAK,EAAElB,MAAM;UACboD,cAAc,EAAE,CACdpD,MAAM,EACN,GAAGc,SAAS,CAACoC,GAAG,CAAEG,OAAO,IAAKA,OAAO,CAACC,IAAI,CAAC,EAC3C,GAAGxC,SAAS,CAACoC,GAAG,CAAEG,OAAO,IAAKA,OAAO,CAACE,IAAI,CAAC;AAE9C,SAAA,CAAC,CAAE;QACJrC,KAAK,EAAExB,aAAa,CAACM,MAAO;QAC5BwD,WAAW,EAAEA,CAACxD,MAAM,EAAEyD,aAAa,kBACjCf,GAAA,CAACgB,wBAAwB,EAAA;AACvBC,UAAAA,KAAK,EAAE3D,MAAO;UACd4D,IAAI,EACFH,aAAa,GACTI,SAAS,GACTpD,iBAAiB,CACdqD,GAAG,CAAC9D,MAAM,CAAC,EACVkD,GAAG,CAAEG,OAAO,IAAKA,OAAO,CAACE,IAAI,CAAC,CAC/BQ,IAAI,CAAC,IAAI;AACjB,SAAA,CAEH;QACFC,UAAU,EAAA,IAAA;AACVC,QAAAA,iBAAiB,EAAEtG,iBAAkB;AACrCN,QAAAA,QAAQ,EAAEA,QAAS;AACnBO,QAAAA,IAAI,EAAEA,IAAK;AACXV,QAAAA,EAAE,EAAEmC,GAAG,CAAC3B,WAAW,CAAC6B,MAAO;AAC3B2E,QAAAA,yBAAyB,EAAE;AACzBhH,UAAAA,EAAE,EAAEmC,GAAG,CAAC3B,WAAW,CAAC6B,MAAM;AAC1B,UAAA,iBAAiB,EAAEF,GAAG,CAAC3B,WAAW,CAAC4B,KAAK;AACxC,UAAA,kBAAkB,EAAEuE,SAAS;AAC7B,UAAA,cAAc,EAAEA;SAChB;QACFtG,QAAQ,EAAGyC,MAAM,IAAI;UACnB,MAAMqD,OAAO,GAAGrD,MAAM,IAAI,IAAI,GAAGmE,mBAAmB,CAACnE,MAAM,CAAC,GAAG,IAAI;UACnEL,gBAAgB,CAAEyB,IAAI,KAAM;AAAE,YAAA,GAAGA,IAAI;YAAEpB,MAAM;YAAEoE,MAAM,EAAEf,OAAO,EAAEgB;AAAW,WAAE,CAAC,CAAC;QACjF,CAAE;QACFC,OAAO,EAAEA,MAAK;AACZ,UAAA,IAAIhE,WAAW,EAAE;AACf7C,YAAAA,MAAM,IAAI;AACZ,UAAA;QACF,CAAE;QAAA,GACEO;OAAY;KAEf,CACL,eAAA0E,GAAA,CAAA,OAAA,EAAA;AAAOF,MAAAA,SAAS,EAAC,SAAS;AAACtF,MAAAA,EAAE,EAAEmC,GAAG,CAACG,WAAW,CAACF,KAAM;AAACqD,MAAAA,OAAO,EAAEtD,GAAG,CAACG,WAAW,CAACC,KAAM;AAAAgD,MAAAA,QAAA,EAClF7D,aAAa,CAACgE,QAAQ,CAAC2B,gBAAgB;KACnC,CACP,eAAA7B,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,4BAA4B;AAAAC,MAAAA,QAAA,eACzCC,GAAA,CAAA,KAAA,EAAA;QAAKF,SAAS,EAAE,2BAA2B5E,IAAI,CAAA,CAAA,EAAIP,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAA,CAAG;QAAAoF,QAAA,eAC9EC,GAAA,CAAC8B,KAAK,EAAA;AACJC,UAAAA,GAAG,EAAErG,mBAAoB;AACzBlB,UAAAA,EAAE,EAAEmC,GAAG,CAACG,WAAW,CAACC,KAAM;AAC1BiF,UAAAA,YAAY,EAAC,cAAc;AAC3BpB,UAAAA,IAAI,EAAC,aAAa;AAClBqB,UAAAA,SAAS,EAAC,SAAS;UACnBzD,KAAK,EAAExB,aAAa,CAACQ,MAAO;AAC5B7C,UAAAA,QAAQ,EAAEA,QAAS;AACnBD,UAAAA,QAAQ,EAAEA,QAAS;AACnBW,UAAAA,WAAW,EAAEA,WAAY;AACzB,UAAA,iBAAA,EAAiBsB,GAAG,CAACG,WAAW,CAACF,KAAM;AACvC/B,UAAAA,QAAQ,EAAEwD,cAAe;AACzBM,UAAAA,OAAO,EAAEA,OAAQ;AACjB7D,UAAAA,OAAO,EAAEA,OAAQ;AACjBC,UAAAA,MAAM,EAAEA,MAAMA,MAAM;SAAK;OAExB;AACP,KAAK,CACP;AAAA,GAAU,CAAC;AAEf;;;;"}
1
+ {"version":3,"file":"PhoneNumberInput.mjs","sources":["../../src/phoneNumberInput/PhoneNumberInput.tsx"],"sourcesContent":["import { useState, useEffect, useMemo, useRef } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { Size, SizeLarge, SizeMedium, SizeSmall } from '../common';\nimport { useFieldLabelRef, useInputAttributes } from '../inputs/contexts';\nimport { SelectInput, SelectInputOptionContent, SelectInputProps } from '../inputs/SelectInput';\nimport messages from './PhoneNumberInput.messages';\nimport countries from './data/countries';\nimport {\n explodeNumberModel,\n isValidPhoneNumber,\n cleanNumber,\n setDefaultPrefix,\n sortArrayByProperty,\n groupCountriesByPrefix,\n excludeCountries,\n findCountryByPrefix,\n} from './utils';\nimport { PhoneNumber } from './utils/explodeNumberModel';\nimport { Input } from '../inputs/Input';\n\nconst ALLOWED_PHONE_CHARS = /^$|^[\\d-\\s]+$/;\n\nexport interface PhoneNumberInputProps {\n id?: string;\n 'aria-labelledby'?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: string;\n onChange: (value: string | null, prefix: string) => void;\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n onBlur?: () => void;\n countryCode?: string;\n /** @default 'Prefix' */\n searchPlaceholder?: string;\n /** @default 'md' */\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n /** @default {} */\n selectProps?: Partial<SelectInputProps<string | null>>;\n /**\n * List of iso3 codes of countries to remove from the list\n * @default []\n */\n disabledCountries?: readonly string[];\n}\n\nconst defaultSelectProps = {} satisfies PhoneNumberInputProps['selectProps'];\nconst defaultDisabledCountries = [] satisfies PhoneNumberInputProps['disabledCountries'];\n\nconst PhoneNumberInput = ({\n id,\n 'aria-labelledby': ariaLabelledByProp,\n required,\n disabled,\n initialValue,\n onChange,\n onFocus,\n onBlur,\n countryCode,\n searchPlaceholder = 'Prefix',\n size = Size.MEDIUM,\n placeholder,\n selectProps = defaultSelectProps,\n disabledCountries = defaultDisabledCountries,\n}: PhoneNumberInputProps) => {\n const countryCodeSelectRef = useRef<HTMLButtonElement>(null);\n const phoneNumberInputRef = useRef<HTMLInputElement>(null);\n const inputAttributes = useInputAttributes({ nonLabelable: true });\n const fieldLabelRef = useFieldLabelRef();\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes['aria-labelledby'];\n\n const { locale, formatMessage } = useIntl();\n\n const createId = (customID: string | undefined, backup: string): string => {\n if (customID) {\n return customID + (backup ? `-${backup}` : '');\n }\n const random = Math.random().toString(36).slice(2, 8);\n return `${backup}-${random}`;\n };\n\n // Link the first non-disabled input to the the Field label, if present\n const ids = {\n countryCode: {\n label: createId(id, 'country-code-label'),\n select: createId(id, 'country-code-select'),\n },\n phoneNumber: {\n label: createId(id, 'phone-number-label'),\n input: createId(id, id ? '' : 'phone-number-input'),\n },\n };\n\n const [internalValue, setInternalValue] = useState<PhoneNumber>(() => {\n const cleanValue = initialValue ? cleanNumber(initialValue) : null;\n\n if (!cleanValue || !isValidPhoneNumber(cleanValue, 1)) {\n return {\n prefix: setDefaultPrefix(locale, countryCode),\n suffix: '',\n };\n }\n\n return explodeNumberModel(cleanValue);\n });\n const [broadcastedValue, setBroadcastedValue] = useState<PhoneNumber | null>(null);\n\n const [suffixDirty, setSuffixDirty] = useState(false);\n useEffect(() => {\n if (internalValue.suffix) {\n setSuffixDirty(true);\n }\n }, [internalValue.suffix]);\n\n const countriesByPrefix = useMemo(\n () =>\n groupCountriesByPrefix(\n sortArrayByProperty(excludeCountries(countries, disabledCountries), 'iso3'),\n ),\n [disabledCountries],\n );\n\n const onSuffixChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const suffix = event.target.value;\n if (ALLOWED_PHONE_CHARS.test(suffix)) {\n setInternalValue((prev) => ({ ...prev, suffix }));\n }\n };\n\n const onPaste: React.ClipboardEventHandler<HTMLInputElement> = (event) => {\n if (!event.nativeEvent.clipboardData) {\n return;\n }\n\n const pastedValue = (event.nativeEvent.clipboardData.getData('text/plain') || '').replace(\n /(\\s|-)+/g,\n '',\n );\n const pastedNumber = explodeNumberModel(pastedValue);\n\n if (\n pastedNumber.prefix != null &&\n countriesByPrefix.has(pastedNumber.prefix) &&\n ALLOWED_PHONE_CHARS.test(pastedNumber.suffix)\n ) {\n setInternalValue(pastedNumber);\n }\n };\n\n useEffect(() => {\n if (broadcastedValue === null) {\n setBroadcastedValue(internalValue);\n return;\n }\n\n const internalPhoneNumber = `${internalValue.prefix ?? ''}${internalValue.suffix}`;\n const broadcastedPhoneNumber = `${broadcastedValue.prefix ?? ''}${broadcastedValue.suffix}`;\n\n if (internalPhoneNumber === broadcastedPhoneNumber) {\n return;\n }\n\n const newValue = isValidPhoneNumber(internalPhoneNumber)\n ? cleanNumber(internalPhoneNumber)\n : null;\n\n onChange(\n newValue,\n internalValue.prefix ?? '', // TODO: Allow `null` in public API\n );\n setBroadcastedValue(internalValue);\n }, [onChange, broadcastedValue, internalValue]);\n\n useEffect(() => {\n const labelRef = fieldLabelRef?.current;\n\n if (labelRef) {\n const handleLabelClick = () => {\n if (!selectProps.disabled) {\n countryCodeSelectRef.current?.click();\n } else {\n phoneNumberInputRef.current?.focus();\n }\n };\n\n labelRef.addEventListener('click', handleLabelClick);\n\n return () => {\n labelRef?.removeEventListener('click', handleLabelClick);\n };\n }\n }, [fieldLabelRef, selectProps.disabled]);\n\n return (\n <fieldset {...inputAttributes} aria-labelledby={ariaLabelledBy} className=\"tw-telephone\">\n <label className=\"sr-only\" id={ids.countryCode.label} htmlFor={ids.countryCode.select}>\n {formatMessage(messages.countryCodeLabel)}\n </label>\n <div className=\"tw-telephone__country-select\">\n <SelectInput\n triggerRef={countryCodeSelectRef}\n placeholder={formatMessage(messages.selectInputPlaceholder)}\n items={[...countriesByPrefix].map(([prefix, countries]) => ({\n type: 'option',\n value: prefix,\n filterMatchers: [\n prefix,\n ...countries.map((country) => country.name),\n ...countries.map((country) => country.iso3),\n ],\n }))}\n value={internalValue.prefix}\n renderValue={(prefix, withinTrigger) => (\n <SelectInputOptionContent\n title={prefix}\n note={\n withinTrigger\n ? undefined\n : countriesByPrefix\n .get(prefix)\n ?.map((country) => country.iso3)\n .join(', ')\n }\n />\n )}\n filterable\n filterPlaceholder={searchPlaceholder}\n disabled={disabled}\n size={size}\n id={ids.countryCode.select}\n UNSAFE_triggerButtonProps={{\n id: ids.countryCode.select,\n 'aria-labelledby': ids.countryCode.label,\n 'aria-describedby': undefined,\n 'aria-invalid': undefined,\n }}\n onChange={(prefix) => {\n const country = prefix != null ? findCountryByPrefix(prefix) : null;\n setInternalValue((prev) => ({ ...prev, prefix, format: country?.phoneFormat }));\n }}\n onClose={() => {\n if (suffixDirty) {\n onBlur?.();\n }\n }}\n {...selectProps}\n />\n </div>\n <label className=\"sr-only\" id={ids.phoneNumber.label} htmlFor={ids.phoneNumber.input}>\n {formatMessage(messages.phoneNumberLabel)}\n </label>\n <div className=\"tw-telephone__number-input\">\n <div className={`input-group input-group-${size} ${disabled ? 'disabled' : ''}`}>\n <Input\n ref={phoneNumberInputRef}\n id={ids.phoneNumber.input}\n autoComplete=\"tel-national\"\n name=\"phoneNumber\"\n inputMode=\"numeric\"\n value={internalValue.suffix}\n disabled={disabled}\n required={required}\n placeholder={placeholder}\n aria-labelledby={ids.phoneNumber.label}\n onChange={onSuffixChange}\n onPaste={onPaste}\n onFocus={onFocus}\n onBlur={() => onBlur?.()}\n />\n </div>\n </div>\n </fieldset>\n );\n};\n\nexport default PhoneNumberInput;\n"],"names":["ALLOWED_PHONE_CHARS","defaultSelectProps","defaultDisabledCountries","PhoneNumberInput","id","ariaLabelledByProp","required","disabled","initialValue","onChange","onFocus","onBlur","countryCode","searchPlaceholder","size","Size","MEDIUM","placeholder","selectProps","disabledCountries","countryCodeSelectRef","useRef","phoneNumberInputRef","inputAttributes","useInputAttributes","nonLabelable","fieldLabelRef","useFieldLabelRef","ariaLabelledBy","locale","formatMessage","useIntl","createId","customID","backup","random","Math","toString","slice","ids","label","select","phoneNumber","input","internalValue","setInternalValue","useState","cleanValue","cleanNumber","isValidPhoneNumber","prefix","setDefaultPrefix","suffix","explodeNumberModel","broadcastedValue","setBroadcastedValue","suffixDirty","setSuffixDirty","useEffect","countriesByPrefix","useMemo","groupCountriesByPrefix","sortArrayByProperty","excludeCountries","countries","onSuffixChange","event","target","value","test","prev","onPaste","nativeEvent","clipboardData","pastedValue","getData","replace","pastedNumber","has","internalPhoneNumber","broadcastedPhoneNumber","newValue","labelRef","current","handleLabelClick","click","focus","addEventListener","removeEventListener","_jsxs","className","children","_jsx","htmlFor","messages","countryCodeLabel","SelectInput","triggerRef","selectInputPlaceholder","items","map","type","filterMatchers","country","name","iso3","renderValue","withinTrigger","SelectInputOptionContent","title","note","undefined","get","join","filterable","filterPlaceholder","UNSAFE_triggerButtonProps","findCountryByPrefix","format","phoneFormat","onClose","phoneNumberLabel","Input","ref","autoComplete","inputMode"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ .np-bottom-sheet-v2-container {
2
+ position: relative;
3
+ z-index: 1060;
4
+ }
5
+ .np-bottom-sheet-v2-backdrop {
6
+ position: fixed;
7
+ inset: 0px;
8
+ background-color: #37517e;
9
+ background-color: var(--color-content-primary);
10
+ opacity: 0.4;
11
+ transition-property: opacity;
12
+ transition-timing-function: ease-out;
13
+ transition-duration: 300ms;
14
+ }
15
+ .np-bottom-sheet-v2-backdrop--closed {
16
+ opacity: 0;
17
+ }
18
+ .np-bottom-sheet-v2 {
19
+ position: fixed;
20
+ inset: 0px;
21
+ bottom: env(keyboard-inset-height, 0px);
22
+ margin-left: 8px;
23
+ margin-left: var(--size-8);
24
+ margin-right: 8px;
25
+ margin-right: var(--size-8);
26
+ margin-top: 64px;
27
+ margin-top: var(--size-64);
28
+ display: flex;
29
+ flex-direction: column;
30
+ justify-content: flex-end;
31
+ }
32
+ .np-bottom-sheet-v2-content {
33
+ display: flex;
34
+ flex-direction: column;
35
+ overflow: auto;
36
+ border-top-left-radius: 32px;
37
+ /* TODO: Tokenize */
38
+ border-top-right-radius: 32px;
39
+ /* TODO: Tokenize */
40
+ background-color: #ffffff;
41
+ background-color: var(--color-background-elevated);
42
+ box-shadow: 0 0 40px rgba(69, 71, 69, 0.2);
43
+ }
44
+ .np-bottom-sheet-v2-content:focus {
45
+ outline: none;
46
+ }
47
+ @media (prefers-reduced-motion: no-preference) {
48
+ .np-bottom-sheet-v2-content {
49
+ transition-property: transform;
50
+ transition-timing-function: ease-out;
51
+ transition-duration: 300ms;
52
+ }
53
+ .np-bottom-sheet-v2-content--closed {
54
+ transform: translateY(100%);
55
+ }
56
+ }
57
+ @media (prefers-reduced-motion: reduce) {
58
+ .np-bottom-sheet-v2-content {
59
+ transition-property: opacity;
60
+ transition-timing-function: ease-out;
61
+ transition-duration: 300ms;
62
+ }
63
+ .np-bottom-sheet-v2-content--closed {
64
+ opacity: 0;
65
+ }
66
+ }
67
+ .np-bottom-sheet-v2-header {
68
+ align-self: flex-end;
69
+ padding: 16px;
70
+ padding: var(--size-16);
71
+ }
72
+ .np-bottom-sheet-v2-content-inner {
73
+ display: grid;
74
+ grid-template-rows: minmax(0, 1fr);
75
+ grid-row-gap: 8px;
76
+ grid-row-gap: var(--size-8);
77
+ row-gap: 8px;
78
+ row-gap: var(--size-8);
79
+ overflow: auto;
80
+ }
81
+ .np-bottom-sheet-v2-content-inner--has-title {
82
+ grid-template-rows: auto minmax(0, 1fr);
83
+ }
84
+ .np-bottom-sheet-v2-content-inner--padding-md {
85
+ padding: 16px;
86
+ padding: var(--size-16);
87
+ padding-top: 0px;
88
+ }
89
+ .np-bottom-sheet-v2-title {
90
+ color: #37517e;
91
+ color: var(--color-content-primary);
92
+ }
93
+ .np-bottom-sheet-v2-body {
94
+ color: #5d7079;
95
+ color: var(--color-content-secondary);
96
+ }
@@ -0,0 +1,16 @@
1
+ .np-button-input {
2
+ display: inline-grid;
3
+ grid-auto-columns: minmax(0, 1fr);
4
+ align-content: center;
5
+ border-radius: 10px;
6
+ border-radius: var(--size-10);
7
+ text-align: start;
8
+ }
9
+ .np-button-input:has(.np-select-input-option-description-in-trigger) {
10
+ height: auto !important;
11
+ align-content: start;
12
+ padding-top: 12px !important;
13
+ padding-top: var(--size-12) !important;
14
+ padding-bottom: 12px !important;
15
+ padding-bottom: var(--size-12) !important;
16
+ }
@@ -0,0 +1,46 @@
1
+ .np-select-input-addon-container {
2
+ pointer-events: none;
3
+ margin-inline-start: 4px;
4
+ margin-inline-start: var(--size-4);
5
+ display: inline-flex;
6
+ align-items: center;
7
+ }
8
+ .np-select-input-addon-container > :not([hidden]) ~ :not([hidden]) {
9
+ margin-inline-start: 4px;
10
+ margin-inline-start: var(--size-4);
11
+ }
12
+ .np-select-input-addon {
13
+ border-width: 0;
14
+ background: none;
15
+ display: inline-flex;
16
+ height: 24px;
17
+ height: var(--size-24);
18
+ width: 24px;
19
+ width: var(--size-24);
20
+ align-items: center;
21
+ justify-content: center;
22
+ border-radius: 0.125rem /* 2px */;
23
+ /* TODO: Tokenize */
24
+ }
25
+ .np-select-input-addon--interactive {
26
+ pointer-events: auto;
27
+ color: #c9cbce;
28
+ color: var(--color-interactive-secondary);
29
+ }
30
+ .np-select-input-addon--interactive:hover {
31
+ color: #b5b7ba;
32
+ color: var(--color-interactive-secondary-hover);
33
+ }
34
+ .np-select-input-addon--interactive:focus {
35
+ outline: none;
36
+ }
37
+ .np-select-input-addon--interactive:focus-visible {
38
+ outline: var(--ring-outline-color) solid var(--ring-outline-width);
39
+ outline-offset: var(--ring-outline-offset);
40
+ }
41
+ .np-select-input-addon-separator {
42
+ height: 24px;
43
+ height: var(--size-24);
44
+ border-inline-start: 1px solid rgba(0,0,0,0.10196);
45
+ border-inline-start: 1px solid var(--color-border-neutral);
46
+ }
@@ -0,0 +1,16 @@
1
+ .np-select-input-group-item--without-needle:first-child {
2
+ margin-top: calc(-1 * 8px);
3
+ margin-top: calc(-1 * var(--size-8));
4
+ }
5
+ .np-select-input-group-item-header {
6
+ position: sticky;
7
+ top: 0px;
8
+ z-index: 10;
9
+ background-color: #ffffff;
10
+ background-color: var(--color-background-elevated);
11
+ }
12
+ .np-select-input-separator-item {
13
+ margin: 8px;
14
+ margin: var(--size-8);
15
+ border-top-width: 1px;
16
+ }
@@ -0,0 +1,33 @@
1
+ .np-select-input-option-container {
2
+ display: flex;
3
+ cursor: default;
4
+ -webkit-user-select: none;
5
+ -moz-user-select: none;
6
+ user-select: none;
7
+ align-items: center;
8
+ -moz-column-gap: 8px;
9
+ column-gap: 8px;
10
+ -moz-column-gap: var(--size-8);
11
+ column-gap: var(--size-8);
12
+ border-radius: 10px;
13
+ border-radius: var(--radius-small);
14
+ padding: 12px 16px;
15
+ padding: var(--size-12) var(--size-16);
16
+ color: var(--color-interactive-primary);
17
+ }
18
+ .np-select-input-option-container:focus {
19
+ outline: none;
20
+ }
21
+ .np-select-input-option-container--active {
22
+ box-shadow: inset 0 0 0 1px #c9cbce;
23
+ box-shadow: inset 0 0 0 1px var(--color-interactive-secondary);
24
+ }
25
+ .np-select-input-option-container--disabled {
26
+ opacity: 0.45;
27
+ }
28
+ .np-select-input-option-check--not-selected {
29
+ visibility: hidden;
30
+ }
31
+ .np-select-input-option {
32
+ flex: 1;
33
+ }
@@ -0,0 +1,37 @@
1
+ .np-select-input-option-content-container {
2
+ display: flex;
3
+ align-items: center;
4
+ -moz-column-gap: 8px;
5
+ column-gap: 8px;
6
+ -moz-column-gap: var(--size-8);
7
+ column-gap: var(--size-8);
8
+ color: #37517e;
9
+ color: var(--color-content-primary);
10
+ }
11
+ .np-select-input-option-content-icon {
12
+ display: flex;
13
+ }
14
+ .np-select-input-option-content-icon--not-within-trigger {
15
+ align-self: flex-start;
16
+ }
17
+ .np-select-input-option-content-text {
18
+ display: flex;
19
+ flex: 1;
20
+ flex-direction: column;
21
+ overflow: hidden;
22
+ }
23
+ .np-select-input-option-content-text-secondary {
24
+ color: #5d7079;
25
+ color: var(--color-content-secondary);
26
+ }
27
+ .np-select-input-option-content-text-within-trigger {
28
+ overflow: hidden;
29
+ text-overflow: ellipsis;
30
+ white-space: nowrap;
31
+ }
32
+ .np-select-input-option-content-text-line-1 > :not([hidden]) ~ :not([hidden]) {
33
+ margin-right: 8px;
34
+ margin-right: var(--size-8);
35
+ margin-left: 8px;
36
+ margin-left: var(--size-8);
37
+ }
@@ -0,0 +1,81 @@
1
+ .np-select-input-options-container {
2
+ display: flex;
3
+ height: 100%;
4
+ flex-direction: column;
5
+ }
6
+ .np-select-input-options-container:focus {
7
+ outline: none;
8
+ }
9
+ @media (min-width: 576px) {
10
+ .np-select-input-options-container {
11
+ max-height: 28rem /* 448px */;
12
+ }
13
+ }
14
+ .np-select-input-options-status {
15
+ display: flex;
16
+ align-items: center;
17
+ -moz-column-gap: 8px;
18
+ column-gap: 8px;
19
+ -moz-column-gap: var(--size-8);
20
+ column-gap: var(--size-8);
21
+ padding: 8px 24px 0px;
22
+ padding: var(--size-8) var(--size-24) 0px;
23
+ }
24
+ .np-select-input-options-status-icon {
25
+ padding: 0 4px;
26
+ padding: 0 var(--size-4);
27
+ color: #768e9c;
28
+ color: var(--color-content-tertiary);
29
+ }
30
+ .np-select-input-query-container {
31
+ display: flex;
32
+ flex-direction: column;
33
+ padding: 8px;
34
+ padding: var(--size-8);
35
+ }
36
+ .np-select-input-listbox-container {
37
+ position: relative;
38
+ height: var(--initial-height);
39
+ scroll-padding-top: 8px;
40
+ scroll-padding-top: var(--size-8);
41
+ scroll-padding-bottom: 8px;
42
+ scroll-padding-bottom: var(--size-8);
43
+ overflow-y: auto;
44
+ }
45
+ @media (min-width: 576px) {
46
+ .np-select-input-listbox-container {
47
+ height: auto;
48
+ }
49
+ }
50
+ .np-select-input-listbox-container--virtualized {
51
+ /* The wrapping element shrinks this as needed */
52
+ height: 100vh;
53
+ }
54
+ .np-select-input-listbox-container--has-group {
55
+ scroll-padding-top: 32px;
56
+ scroll-padding-top: var(--size-32);
57
+ }
58
+ .np-select-input-listbox {
59
+ border-radius: 10px;
60
+ border-radius: var(--radius-small);
61
+ padding: 8px;
62
+ padding: var(--size-8);
63
+ --ring-outline-offset: calc(-1 * var(--ring-outline-width));
64
+ }
65
+ .np-select-input-listbox:focus {
66
+ outline: none;
67
+ }
68
+ .np-select-input-listbox:focus-visible {
69
+ outline: var(--ring-outline-color) solid var(--ring-outline-width);
70
+ outline-offset: var(--ring-outline-offset);
71
+ }
72
+ .np-select-input-listbox-container--virtualized .np-select-input-listbox {
73
+ /* Adopted from `VList` in virtua: https://github.com/inokawa/virtua/blob/7f6ed5b37df6b480d4ff350f3960067c5b3519d2/src/react/VList.tsx#L113-L116 */
74
+ overflow-y: auto;
75
+ contain: strict;
76
+ height: 100%;
77
+ }
78
+ .np-select-input-footer {
79
+ padding: 4px 24px 16px;
80
+ padding: var(--size-4) var(--size-24) var(--size-16);
81
+ }
@@ -0,0 +1,46 @@
1
+ .np-popover-v2-container {
2
+ z-index: 1060;
3
+ display: flex;
4
+ max-height: var(--max-height);
5
+ width: var(--width);
6
+ flex-direction: column;
7
+ overflow: hidden;
8
+ border-radius: 10px;
9
+ border-radius: var(--radius-small);
10
+ background-color: #ffffff;
11
+ background-color: var(--color-background-elevated);
12
+ box-shadow: 0 0 40px rgba(69, 71, 69, 0.2);
13
+ }
14
+ .np-popover-v2-container--size-md {
15
+ min-width: 20rem;
16
+ }
17
+ .np-popover-v2-container--size-lg {
18
+ min-width: 24rem;
19
+ }
20
+ .np-popover-v2-container:focus {
21
+ outline: none;
22
+ }
23
+ .np-popover-v2 {
24
+ display: grid;
25
+ grid-row-gap: 8px;
26
+ grid-row-gap: var(--size-8);
27
+ row-gap: 8px;
28
+ row-gap: var(--size-8);
29
+ overflow-y: auto;
30
+ grid-template-rows: minmax(0, 1fr);
31
+ }
32
+ .np-popover-v2--has-title {
33
+ grid-template-rows: auto minmax(0, 1fr);
34
+ }
35
+ .np-popover-v2--padding-md {
36
+ padding: 16px;
37
+ padding: var(--size-16);
38
+ }
39
+ .np-popover-v2-title {
40
+ color: #37517e;
41
+ color: var(--color-content-primary);
42
+ }
43
+ .np-popover-v2-content {
44
+ color: #5d7079;
45
+ color: var(--color-content-secondary);
46
+ }