@telus-uds/components-base 2.4.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (822) hide show
  1. package/CHANGELOG.md +33 -2
  2. package/lib/cjs/A11yInfoProvider/index.js +73 -0
  3. package/lib/cjs/A11yText/index.js +75 -0
  4. package/lib/cjs/ActionCard/ActionCard.js +349 -0
  5. package/lib/cjs/ActionCard/index.js +9 -0
  6. package/lib/cjs/ActivityIndicator/Spinner.js +85 -0
  7. package/lib/cjs/ActivityIndicator/Spinner.native.js +151 -0
  8. package/lib/cjs/ActivityIndicator/index.js +51 -0
  9. package/lib/cjs/ActivityIndicator/shared.js +20 -0
  10. package/lib/cjs/Autocomplete/Autocomplete.js +480 -0
  11. package/lib/cjs/Autocomplete/Loading.js +42 -0
  12. package/lib/cjs/Autocomplete/Suggestions.js +71 -0
  13. package/lib/cjs/Autocomplete/constants.js +10 -0
  14. package/lib/cjs/Autocomplete/dictionary.js +18 -0
  15. package/lib/cjs/Autocomplete/index.js +9 -0
  16. package/lib/cjs/Badge/Badge.js +109 -0
  17. package/lib/cjs/Badge/index.js +9 -0
  18. package/lib/cjs/BaseProvider/HydrationContext.js +56 -0
  19. package/lib/cjs/BaseProvider/index.js +46 -0
  20. package/lib/cjs/Box/Box.js +385 -0
  21. package/lib/cjs/Box/backgroundImageStylesMap.js +100 -0
  22. package/lib/cjs/Box/index.js +9 -0
  23. package/lib/cjs/Button/Button.js +43 -0
  24. package/lib/cjs/Button/ButtonBase.js +353 -0
  25. package/lib/cjs/Button/ButtonDropdown.js +182 -0
  26. package/lib/cjs/Button/ButtonGroup.js +279 -0
  27. package/lib/cjs/Button/ButtonLink.js +57 -0
  28. package/lib/cjs/Button/index.js +34 -0
  29. package/lib/cjs/Button/propTypes.js +53 -0
  30. package/lib/cjs/Card/Card.js +334 -0
  31. package/lib/cjs/Card/CardBase.js +127 -0
  32. package/lib/cjs/Card/PressableCardBase.js +121 -0
  33. package/lib/cjs/Card/index.js +32 -0
  34. package/lib/cjs/CardGroup/CardGroup.js +219 -0
  35. package/lib/cjs/CardGroup/dictionary.js +14 -0
  36. package/lib/cjs/CardGroup/index.js +9 -0
  37. package/lib/cjs/Carousel/Carousel.js +1046 -0
  38. package/lib/cjs/Carousel/CarouselContext.js +59 -0
  39. package/lib/cjs/Carousel/CarouselFirstFocus/CarouselFirstFocus.js +57 -0
  40. package/lib/cjs/Carousel/CarouselItem/CarouselItem.js +185 -0
  41. package/lib/cjs/Carousel/CarouselItem/index.js +9 -0
  42. package/lib/cjs/Carousel/CarouselStepTracker/CarouselStepTracker.js +101 -0
  43. package/lib/cjs/Carousel/CarouselStepTracker/index.js +9 -0
  44. package/lib/cjs/Carousel/CarouselTabs/CarouselTabs.js +54 -0
  45. package/lib/cjs/Carousel/CarouselTabs/CarouselTabsPanel.js +95 -0
  46. package/lib/cjs/Carousel/CarouselTabs/CarouselTabsPanelItem.js +125 -0
  47. package/lib/cjs/Carousel/CarouselTabs/index.js +9 -0
  48. package/lib/cjs/Carousel/CarouselThumbnail.js +120 -0
  49. package/lib/cjs/Carousel/CarouselThumbnailNavigation.js +78 -0
  50. package/lib/cjs/Carousel/Constants.js +13 -0
  51. package/lib/cjs/Carousel/dictionary.js +28 -0
  52. package/lib/cjs/Carousel/index.js +36 -0
  53. package/lib/cjs/Checkbox/Checkbox.js +349 -0
  54. package/lib/cjs/Checkbox/CheckboxButton.js +171 -0
  55. package/lib/cjs/Checkbox/CheckboxGroup.js +249 -0
  56. package/lib/cjs/Checkbox/CheckboxInput.js +55 -0
  57. package/lib/cjs/Checkbox/CheckboxInput.native.js +11 -0
  58. package/lib/cjs/Checkbox/index.js +16 -0
  59. package/lib/cjs/CheckboxCard/CheckboxCard.js +191 -0
  60. package/lib/cjs/CheckboxCard/index.js +9 -0
  61. package/lib/cjs/CheckboxCardGroup/CheckboxCardGroup.js +215 -0
  62. package/lib/cjs/CheckboxCardGroup/index.js +9 -0
  63. package/lib/cjs/ColourToggle/ColourBubble.js +133 -0
  64. package/lib/cjs/ColourToggle/ColourToggle.js +98 -0
  65. package/lib/cjs/ColourToggle/index.js +9 -0
  66. package/lib/cjs/Divider/Divider.js +138 -0
  67. package/lib/cjs/Divider/index.js +9 -0
  68. package/lib/cjs/DownloadApp/DownloadApp.js +167 -0
  69. package/lib/cjs/DownloadApp/dictionary.js +16 -0
  70. package/lib/cjs/DownloadApp/index.js +9 -0
  71. package/lib/cjs/ExpandCollapse/Accordion.js +20 -0
  72. package/lib/cjs/ExpandCollapse/Control.js +170 -0
  73. package/lib/cjs/ExpandCollapse/ExpandCollapse.js +105 -0
  74. package/lib/cjs/ExpandCollapse/Panel.js +248 -0
  75. package/lib/cjs/ExpandCollapse/dictionary.js +16 -0
  76. package/lib/cjs/ExpandCollapse/index.js +19 -0
  77. package/lib/cjs/ExpandCollapseMini/ExpandCollapseMini.js +84 -0
  78. package/lib/cjs/ExpandCollapseMini/ExpandCollapseMiniControl.js +133 -0
  79. package/lib/cjs/ExpandCollapseMini/index.js +9 -0
  80. package/lib/cjs/Feedback/Feedback.js +167 -0
  81. package/lib/cjs/Feedback/index.js +9 -0
  82. package/lib/cjs/Fieldset/Fieldset.js +198 -0
  83. package/lib/cjs/Fieldset/FieldsetContainer.js +55 -0
  84. package/lib/cjs/Fieldset/FieldsetContainer.native.js +39 -0
  85. package/lib/cjs/Fieldset/Legend.js +29 -0
  86. package/lib/cjs/Fieldset/Legend.native.js +36 -0
  87. package/lib/cjs/Fieldset/cssReset.js +20 -0
  88. package/lib/cjs/Fieldset/index.js +9 -0
  89. package/lib/cjs/FileUpload/FileUpload.js +370 -0
  90. package/lib/cjs/FileUpload/NotificationContent.js +59 -0
  91. package/lib/cjs/FileUpload/dictionary.js +50 -0
  92. package/lib/cjs/FileUpload/index.js +9 -0
  93. package/lib/cjs/FlexGrid/Col/Col.js +264 -0
  94. package/lib/cjs/FlexGrid/Col/index.js +9 -0
  95. package/lib/cjs/FlexGrid/FlexGrid.js +165 -0
  96. package/lib/cjs/FlexGrid/Row/Row.js +188 -0
  97. package/lib/cjs/FlexGrid/Row/index.js +9 -0
  98. package/lib/cjs/FlexGrid/helpers/index.js +21 -0
  99. package/lib/cjs/FlexGrid/index.js +9 -0
  100. package/lib/cjs/FlexGrid/providers/GutterContext.js +10 -0
  101. package/lib/cjs/Footnote/Footnote.js +323 -0
  102. package/lib/cjs/Footnote/FootnoteLink.js +114 -0
  103. package/lib/cjs/Footnote/dictionary.js +18 -0
  104. package/lib/cjs/Footnote/index.js +11 -0
  105. package/lib/cjs/HorizontalScroll/HorizontalScroll.js +175 -0
  106. package/lib/cjs/HorizontalScroll/HorizontalScrollButton.js +86 -0
  107. package/lib/cjs/HorizontalScroll/ScrollViewEnd.js +53 -0
  108. package/lib/cjs/HorizontalScroll/ScrollViewEnd.native.js +32 -0
  109. package/lib/cjs/HorizontalScroll/dictionary.js +17 -0
  110. package/lib/cjs/HorizontalScroll/index.js +26 -0
  111. package/lib/cjs/HorizontalScroll/itemPositions.js +122 -0
  112. package/lib/cjs/Icon/Icon.js +101 -0
  113. package/lib/cjs/Icon/IconText.js +117 -0
  114. package/lib/cjs/Icon/index.js +24 -0
  115. package/lib/cjs/IconButton/IconButton.js +208 -0
  116. package/lib/cjs/IconButton/index.js +9 -0
  117. package/lib/cjs/InputLabel/InputLabel.js +184 -0
  118. package/lib/cjs/InputLabel/LabelContent.js +35 -0
  119. package/lib/cjs/InputLabel/LabelContent.native.js +26 -0
  120. package/lib/cjs/InputLabel/index.js +9 -0
  121. package/lib/cjs/InputSupports/InputSupports.js +140 -0
  122. package/lib/cjs/InputSupports/dictionary.js +18 -0
  123. package/lib/cjs/InputSupports/index.js +9 -0
  124. package/lib/cjs/InputSupports/useInputSupports.js +47 -0
  125. package/lib/cjs/Link/ChevronLink.js +73 -0
  126. package/lib/cjs/Link/InlinePressable.js +53 -0
  127. package/lib/cjs/Link/InlinePressable.native.js +93 -0
  128. package/lib/cjs/Link/Link.js +35 -0
  129. package/lib/cjs/Link/LinkBase.js +283 -0
  130. package/lib/cjs/Link/TextButton.js +48 -0
  131. package/lib/cjs/Link/index.js +34 -0
  132. package/lib/cjs/List/List.js +83 -0
  133. package/lib/cjs/List/ListItem.js +37 -0
  134. package/lib/cjs/List/ListItemBase.js +171 -0
  135. package/lib/cjs/List/ListItemContent.js +80 -0
  136. package/lib/cjs/List/ListItemMark.js +132 -0
  137. package/lib/cjs/List/PressableListItemBase.js +117 -0
  138. package/lib/cjs/List/index.js +23 -0
  139. package/lib/cjs/Listbox/GroupControl.js +112 -0
  140. package/lib/cjs/Listbox/Listbox.js +177 -0
  141. package/lib/cjs/Listbox/ListboxContext.js +11 -0
  142. package/lib/cjs/Listbox/ListboxGroup.js +133 -0
  143. package/lib/cjs/Listbox/ListboxItem.js +83 -0
  144. package/lib/cjs/Listbox/ListboxOverlay.js +87 -0
  145. package/lib/cjs/Listbox/PressableItem.js +146 -0
  146. package/lib/cjs/Listbox/index.js +9 -0
  147. package/lib/cjs/Modal/Modal.js +377 -0
  148. package/lib/cjs/Modal/ModalContent.js +205 -0
  149. package/lib/cjs/Modal/WebModal.js +83 -0
  150. package/lib/cjs/Modal/dictionary.js +15 -0
  151. package/lib/cjs/Modal/index.js +9 -0
  152. package/lib/cjs/MultiSelectFilter/ModalOverlay.js +162 -0
  153. package/lib/cjs/MultiSelectFilter/MultiSelectFilter.js +544 -0
  154. package/lib/cjs/MultiSelectFilter/dictionary.js +18 -0
  155. package/lib/cjs/MultiSelectFilter/index.js +9 -0
  156. package/lib/cjs/Notification/Notification.js +437 -0
  157. package/lib/cjs/Notification/dictionary.js +14 -0
  158. package/lib/cjs/Notification/index.js +9 -0
  159. package/lib/cjs/OrderedList/Item.js +166 -0
  160. package/lib/cjs/OrderedList/ItemBase.js +51 -0
  161. package/lib/cjs/OrderedList/OrderedList.js +70 -0
  162. package/lib/cjs/OrderedList/OrderedListBase.js +44 -0
  163. package/lib/cjs/OrderedList/index.js +9 -0
  164. package/lib/cjs/Pagination/PageButton.js +82 -0
  165. package/lib/cjs/Pagination/Pagination.js +226 -0
  166. package/lib/cjs/Pagination/SideButton.js +119 -0
  167. package/lib/cjs/Pagination/constants.js +9 -0
  168. package/lib/cjs/Pagination/dictionary.js +24 -0
  169. package/lib/cjs/Pagination/index.js +9 -0
  170. package/lib/cjs/Pagination/usePagination.js +83 -0
  171. package/lib/cjs/Portal/Portal.js +56 -0
  172. package/lib/cjs/Portal/Portal.native.js +8 -0
  173. package/lib/cjs/Portal/index.js +9 -0
  174. package/lib/cjs/PriceLockup/PriceLockup.js +230 -0
  175. package/lib/cjs/PriceLockup/index.js +9 -0
  176. package/lib/cjs/PriceLockup/utils/renderFootnoteContent.js +92 -0
  177. package/lib/cjs/PriceLockup/utils/renderFootnoteLinks.js +35 -0
  178. package/lib/cjs/PriceLockup/utils/renderPrice.js +146 -0
  179. package/lib/cjs/PriceLockup/utils/renderTypography.js +30 -0
  180. package/lib/cjs/ProductCard/ProductCard.js +237 -0
  181. package/lib/cjs/ProductCard/dictionary.js +44 -0
  182. package/lib/cjs/ProductCard/index.js +9 -0
  183. package/lib/cjs/ProductCardGroup/ProductCardGroup.js +77 -0
  184. package/lib/cjs/ProductCardGroup/index.js +9 -0
  185. package/lib/cjs/Progress/Progress.js +101 -0
  186. package/lib/cjs/Progress/ProgressBar.js +168 -0
  187. package/lib/cjs/Progress/ProgressBarBackground.js +49 -0
  188. package/lib/cjs/Progress/constants.js +10 -0
  189. package/lib/cjs/Progress/index.js +11 -0
  190. package/lib/cjs/QuickLinks/QuickLinks.js +83 -0
  191. package/lib/cjs/QuickLinks/QuickLinksCard.js +38 -0
  192. package/lib/cjs/QuickLinks/QuickLinksItem.js +56 -0
  193. package/lib/cjs/QuickLinks/index.js +11 -0
  194. package/lib/cjs/QuickLinksFeature/QuickLinksFeature.js +74 -0
  195. package/lib/cjs/QuickLinksFeature/QuickLinksFeatureItem.js +152 -0
  196. package/lib/cjs/QuickLinksFeature/index.js +11 -0
  197. package/lib/cjs/Radio/Radio.js +291 -0
  198. package/lib/cjs/Radio/RadioButton.js +191 -0
  199. package/lib/cjs/Radio/RadioGroup.js +262 -0
  200. package/lib/cjs/Radio/RadioInput.js +55 -0
  201. package/lib/cjs/Radio/RadioInput.native.js +11 -0
  202. package/lib/cjs/Radio/index.js +16 -0
  203. package/lib/cjs/RadioCard/RadioCard.js +219 -0
  204. package/lib/cjs/RadioCard/RadioCardGroup.js +266 -0
  205. package/lib/cjs/RadioCard/index.js +16 -0
  206. package/lib/cjs/Responsive/Responsive.js +70 -0
  207. package/lib/cjs/Responsive/ResponsiveProp.js +45 -0
  208. package/lib/cjs/Responsive/ResponsiveWithMediaQueryStyleSheet.js +75 -0
  209. package/lib/cjs/Responsive/index.js +9 -0
  210. package/lib/cjs/Search/Search.js +281 -0
  211. package/lib/cjs/Search/dictionary.js +18 -0
  212. package/lib/cjs/Search/index.js +9 -0
  213. package/lib/cjs/Select/Group.js +31 -0
  214. package/lib/cjs/Select/Group.native.js +23 -0
  215. package/lib/cjs/Select/Item.js +30 -0
  216. package/lib/cjs/Select/Item.native.js +8 -0
  217. package/lib/cjs/Select/Picker.js +103 -0
  218. package/lib/cjs/Select/Picker.native.js +130 -0
  219. package/lib/cjs/Select/Select.js +339 -0
  220. package/lib/cjs/Select/constants.js +13 -0
  221. package/lib/cjs/Select/index.js +13 -0
  222. package/lib/cjs/SideNav/Item.js +150 -0
  223. package/lib/cjs/SideNav/ItemContent.js +56 -0
  224. package/lib/cjs/SideNav/ItemsGroup.js +125 -0
  225. package/lib/cjs/SideNav/SideNav.js +139 -0
  226. package/lib/cjs/SideNav/index.js +13 -0
  227. package/lib/cjs/Skeleton/Skeleton.js +184 -0
  228. package/lib/cjs/Skeleton/index.js +9 -0
  229. package/lib/cjs/Skeleton/skeleton.constant.js +8 -0
  230. package/lib/cjs/Skeleton/skeletonWebAnimation.js +20 -0
  231. package/lib/cjs/Skeleton/useSkeletonNativeAnimation.js +35 -0
  232. package/lib/cjs/SkipLink/SkipLink.js +196 -0
  233. package/lib/cjs/SkipLink/index.js +9 -0
  234. package/lib/cjs/Spacer/Spacer.js +100 -0
  235. package/lib/cjs/Spacer/index.js +9 -0
  236. package/lib/cjs/StackView/StackView.js +133 -0
  237. package/lib/cjs/StackView/StackWrap.js +54 -0
  238. package/lib/cjs/StackView/StackWrap.native.js +10 -0
  239. package/lib/cjs/StackView/StackWrapBox.js +121 -0
  240. package/lib/cjs/StackView/StackWrapGap.js +68 -0
  241. package/lib/cjs/StackView/common.js +43 -0
  242. package/lib/cjs/StackView/getStackedContent.js +128 -0
  243. package/lib/cjs/StackView/index.js +23 -0
  244. package/lib/cjs/Status/Status.js +176 -0
  245. package/lib/cjs/Status/index.js +9 -0
  246. package/lib/cjs/StepTracker/Step.js +271 -0
  247. package/lib/cjs/StepTracker/StepTracker.js +220 -0
  248. package/lib/cjs/StepTracker/dictionary.js +36 -0
  249. package/lib/cjs/StepTracker/index.js +9 -0
  250. package/lib/cjs/TabBar/TabBar.js +132 -0
  251. package/lib/cjs/TabBar/TabBarItem.js +182 -0
  252. package/lib/cjs/TabBar/index.js +9 -0
  253. package/lib/cjs/Tabs/Tabs.js +188 -0
  254. package/lib/cjs/Tabs/TabsItem.js +245 -0
  255. package/lib/cjs/Tabs/index.js +9 -0
  256. package/lib/cjs/Tags/Tags.js +252 -0
  257. package/lib/cjs/Tags/index.js +9 -0
  258. package/lib/cjs/TextInput/TextArea.js +105 -0
  259. package/lib/cjs/TextInput/TextInput.js +86 -0
  260. package/lib/cjs/TextInput/TextInputBase.js +502 -0
  261. package/lib/cjs/TextInput/dictionary.js +18 -0
  262. package/lib/cjs/TextInput/index.js +20 -0
  263. package/lib/cjs/TextInput/propTypes.js +40 -0
  264. package/lib/cjs/ThemeProvider/ThemeProvider.js +91 -0
  265. package/lib/cjs/ThemeProvider/index.js +59 -0
  266. package/lib/cjs/ThemeProvider/useResponsiveThemeTokens.js +88 -0
  267. package/lib/cjs/ThemeProvider/useSetTheme.js +30 -0
  268. package/lib/cjs/ThemeProvider/useTheme.js +17 -0
  269. package/lib/cjs/ThemeProvider/useThemeTokens.js +118 -0
  270. package/lib/cjs/ThemeProvider/utils/index.js +27 -0
  271. package/lib/cjs/ThemeProvider/utils/styles.js +208 -0
  272. package/lib/cjs/ThemeProvider/utils/theme-tokens.js +173 -0
  273. package/lib/cjs/Timeline/Timeline.js +175 -0
  274. package/lib/cjs/Timeline/index.js +9 -0
  275. package/lib/cjs/ToggleSwitch/ToggleSwitch.js +286 -0
  276. package/lib/cjs/ToggleSwitch/ToggleSwitchGroup.js +215 -0
  277. package/lib/cjs/ToggleSwitch/index.js +20 -0
  278. package/lib/cjs/Tooltip/Backdrop.js +57 -0
  279. package/lib/cjs/Tooltip/Backdrop.native.js +46 -0
  280. package/lib/cjs/Tooltip/Tooltip.js +295 -0
  281. package/lib/cjs/Tooltip/Tooltip.native.js +370 -0
  282. package/lib/cjs/Tooltip/dictionary.js +14 -0
  283. package/lib/cjs/Tooltip/getTooltipPosition.js +175 -0
  284. package/lib/cjs/Tooltip/index.js +12 -0
  285. package/lib/cjs/Tooltip/shared.js +48 -0
  286. package/lib/cjs/TooltipButton/TooltipButton.js +97 -0
  287. package/lib/cjs/TooltipButton/index.js +9 -0
  288. package/lib/cjs/Typography/Typography.js +271 -0
  289. package/lib/cjs/Typography/index.js +9 -0
  290. package/lib/cjs/Validator/Validator.js +228 -0
  291. package/lib/cjs/Validator/index.js +9 -0
  292. package/lib/cjs/ViewportProvider/ViewportProvider.js +32 -0
  293. package/lib/cjs/ViewportProvider/index.js +22 -0
  294. package/lib/cjs/ViewportProvider/useViewport.js +10 -0
  295. package/lib/cjs/ViewportProvider/useViewportListener.js +43 -0
  296. package/lib/cjs/index.js +781 -0
  297. package/lib/cjs/server.js +40 -0
  298. package/lib/cjs/utils/BaseView/BaseView.js +47 -0
  299. package/lib/cjs/utils/BaseView/BaseView.native.js +12 -0
  300. package/lib/cjs/utils/BaseView/index.js +9 -0
  301. package/lib/cjs/utils/a11y/index.js +27 -0
  302. package/lib/cjs/utils/a11y/semantics.js +145 -0
  303. package/lib/cjs/utils/a11y/textSize.js +44 -0
  304. package/lib/cjs/utils/animation/index.js +13 -0
  305. package/lib/cjs/utils/animation/useVerticalExpandAnimation.js +92 -0
  306. package/lib/cjs/utils/children.js +121 -0
  307. package/lib/cjs/utils/containUniqueFields.js +30 -0
  308. package/lib/cjs/utils/convertFromMegaByteToByte.js +16 -0
  309. package/lib/cjs/utils/floating-ui/index.js +42 -0
  310. package/lib/cjs/utils/floating-ui/index.native.js +42 -0
  311. package/lib/cjs/utils/formatImageSource.js +33 -0
  312. package/lib/cjs/utils/hasOwnProperty.js +17 -0
  313. package/lib/cjs/utils/htmlAttrs.js +30 -0
  314. package/lib/cjs/utils/index.js +245 -0
  315. package/lib/cjs/utils/info/index.js +14 -0
  316. package/lib/cjs/utils/info/platform/index.js +18 -0
  317. package/lib/cjs/utils/info/platform/platform.android.js +7 -0
  318. package/lib/cjs/utils/info/platform/platform.ios.js +7 -0
  319. package/lib/cjs/utils/info/platform/platform.js +7 -0
  320. package/lib/cjs/utils/info/platform/platform.native.js +10 -0
  321. package/lib/cjs/utils/info/versions.js +12 -0
  322. package/lib/cjs/utils/input.js +193 -0
  323. package/lib/cjs/utils/pressability.js +122 -0
  324. package/lib/cjs/utils/props/a11yProps.js +315 -0
  325. package/lib/cjs/utils/props/clickProps.js +32 -0
  326. package/lib/cjs/utils/props/componentPropType.js +55 -0
  327. package/lib/cjs/utils/props/contentfulProps.js +29 -0
  328. package/lib/cjs/utils/props/copyPropTypes.js +9 -0
  329. package/lib/cjs/utils/props/getPropSelector.js +58 -0
  330. package/lib/cjs/utils/props/handlerProps.js +111 -0
  331. package/lib/cjs/utils/props/hrefAttrsProp.js +39 -0
  332. package/lib/cjs/utils/props/index.js +176 -0
  333. package/lib/cjs/utils/props/inputSupportsProps.js +87 -0
  334. package/lib/cjs/utils/props/linkProps.js +50 -0
  335. package/lib/cjs/utils/props/paddingProp.js +16 -0
  336. package/lib/cjs/utils/props/pressProps.js +49 -0
  337. package/lib/cjs/utils/props/rectProp.js +16 -0
  338. package/lib/cjs/utils/props/responsiveProps.js +35 -0
  339. package/lib/cjs/utils/props/selectSystemProps.js +29 -0
  340. package/lib/cjs/utils/props/spacingProps.js +63 -0
  341. package/lib/cjs/utils/props/textInputProps.js +194 -0
  342. package/lib/cjs/utils/props/textProps.js +67 -0
  343. package/lib/cjs/utils/props/tokens.js +140 -0
  344. package/lib/cjs/utils/props/variantProp.js +24 -0
  345. package/lib/cjs/utils/props/viewProps.js +28 -0
  346. package/lib/cjs/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +55 -0
  347. package/lib/cjs/utils/ssr-media-query/create-stylesheet/index.android.js +9 -0
  348. package/lib/cjs/utils/ssr-media-query/create-stylesheet/index.ios.js +9 -0
  349. package/lib/cjs/utils/ssr-media-query/create-stylesheet/index.js +42 -0
  350. package/lib/cjs/utils/ssr-media-query/hash.js +19 -0
  351. package/lib/cjs/utils/ssr-media-query/index.js +18 -0
  352. package/lib/cjs/utils/ssr-media-query/utils/common.js +44 -0
  353. package/lib/cjs/utils/ssr-media-query/utils/create-declaration-block.js +23 -0
  354. package/lib/cjs/utils/ssr-media-query/utils/create-media-query-styles.js +66 -0
  355. package/lib/cjs/utils/ssr-media-query/utils/hyphenate-style-name.js +18 -0
  356. package/lib/cjs/utils/ssr-media-query/utils/inject.js +47 -0
  357. package/lib/cjs/utils/ssr.js +150 -0
  358. package/lib/cjs/utils/transformGradient.js +22 -0
  359. package/lib/cjs/utils/useCopy.js +48 -0
  360. package/lib/cjs/utils/useHash.js +44 -0
  361. package/lib/cjs/utils/useHash.native.js +12 -0
  362. package/lib/cjs/utils/useOverlaidPosition.js +242 -0
  363. package/lib/cjs/utils/useResponsiveProp.js +53 -0
  364. package/lib/cjs/utils/useSafeLayoutEffect.js +34 -0
  365. package/lib/cjs/utils/useScrollBlocking.js +55 -0
  366. package/lib/cjs/utils/useScrollBlocking.native.js +9 -0
  367. package/lib/cjs/utils/useSpacingScale.js +129 -0
  368. package/lib/cjs/utils/useUniqueId.js +17 -0
  369. package/lib/cjs/utils/withLinkRouter.js +89 -0
  370. package/lib/esm/A11yInfoProvider/index.js +65 -0
  371. package/lib/esm/Autocomplete/Autocomplete.js +473 -0
  372. package/lib/esm/Autocomplete/Suggestions.js +64 -0
  373. package/lib/esm/BaseProvider/HydrationContext.js +47 -0
  374. package/lib/esm/BaseProvider/index.js +40 -0
  375. package/lib/esm/Button/ButtonDropdown.js +173 -0
  376. package/lib/esm/Card/Card.js +327 -0
  377. package/lib/esm/Card/CardBase.js +120 -0
  378. package/lib/esm/Card/PressableCardBase.js +113 -0
  379. package/lib/esm/CardGroup/CardGroup.js +210 -0
  380. package/lib/esm/Carousel/Carousel.js +1039 -0
  381. package/lib/esm/Carousel/CarouselItem/CarouselItem.js +178 -0
  382. package/lib/esm/Carousel/CarouselStepTracker/CarouselStepTracker.js +94 -0
  383. package/lib/esm/Carousel/CarouselTabs/CarouselTabs.js +49 -0
  384. package/lib/esm/Carousel/CarouselTabs/CarouselTabsPanel.js +88 -0
  385. package/lib/esm/Carousel/CarouselTabs/CarouselTabsPanelItem.js +118 -0
  386. package/lib/esm/Carousel/CarouselThumbnail.js +113 -0
  387. package/lib/esm/Carousel/Constants.js +7 -0
  388. package/lib/esm/Checkbox/Checkbox.js +342 -0
  389. package/lib/esm/ColourToggle/ColourToggle.js +91 -0
  390. package/lib/esm/ExpandCollapseMini/ExpandCollapseMini.js +77 -0
  391. package/lib/esm/ExpandCollapseMini/ExpandCollapseMiniControl.js +126 -0
  392. package/lib/esm/ExpandCollapseMini/index.js +2 -0
  393. package/lib/esm/Footnote/Footnote.js +316 -0
  394. package/lib/esm/HorizontalScroll/HorizontalScroll.js +167 -0
  395. package/lib/esm/Icon/Icon.js +94 -0
  396. package/lib/esm/Icon/IconText.js +110 -0
  397. package/lib/esm/IconButton/IconButton.js +202 -0
  398. package/lib/esm/InputSupports/InputSupports.js +133 -0
  399. package/lib/esm/Link/LinkBase.js +276 -0
  400. package/lib/esm/List/List.js +76 -0
  401. package/lib/esm/List/ListItemContent.js +73 -0
  402. package/lib/esm/Listbox/Listbox.js +168 -0
  403. package/lib/esm/Listbox/PressableItem.js +139 -0
  404. package/lib/esm/Modal/Modal.js +370 -0
  405. package/lib/esm/MultiSelectFilter/MultiSelectFilter.js +537 -0
  406. package/lib/esm/Notification/Notification.js +430 -0
  407. package/lib/esm/OrderedList/OrderedList.js +63 -0
  408. package/lib/esm/Pagination/usePagination.js +77 -0
  409. package/lib/esm/PriceLockup/utils/renderFootnoteContent.js +85 -0
  410. package/lib/esm/PriceLockup/utils/renderFootnoteLinks.js +28 -0
  411. package/lib/esm/PriceLockup/utils/renderPrice.js +139 -0
  412. package/lib/esm/ProductCard/ProductCard.js +230 -0
  413. package/lib/esm/Progress/ProgressBarBackground.js +42 -0
  414. package/lib/esm/QuickLinksFeature/QuickLinksFeature.js +68 -0
  415. package/lib/esm/Radio/Radio.js +282 -0
  416. package/lib/esm/Search/Search.js +274 -0
  417. package/lib/esm/Select/Picker.js +96 -0
  418. package/lib/esm/StackView/StackWrap.js +48 -0
  419. package/lib/esm/StackView/getStackedContent.js +121 -0
  420. package/lib/esm/StepTracker/StepTracker.js +213 -0
  421. package/lib/esm/TabBar/TabBar.js +125 -0
  422. package/lib/esm/Tabs/Tabs.js +179 -0
  423. package/lib/esm/Tabs/TabsItem.js +238 -0
  424. package/lib/esm/TextInput/TextArea.js +98 -0
  425. package/lib/esm/TextInput/TextInput.js +79 -0
  426. package/lib/esm/TextInput/TextInputBase.js +495 -0
  427. package/lib/esm/ThemeProvider/utils/theme-tokens.js +158 -0
  428. package/lib/esm/Timeline/Timeline.js +168 -0
  429. package/lib/esm/Tooltip/Tooltip.native.js +363 -0
  430. package/lib/esm/Typography/Typography.js +265 -0
  431. package/lib/esm/Validator/Validator.js +221 -0
  432. package/lib/esm/ViewportProvider/useViewportListener.js +37 -0
  433. package/lib/esm/index.js +72 -0
  434. package/lib/esm/utils/children.js +113 -0
  435. package/lib/esm/utils/input.js +185 -0
  436. package/lib/esm/utils/props/componentPropType.js +49 -0
  437. package/lib/esm/utils/props/selectSystemProps.js +23 -0
  438. package/lib/esm/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +48 -0
  439. package/lib/esm/utils/ssr-media-query/create-stylesheet/index.js +35 -0
  440. package/lib/esm/utils/ssr-media-query/utils/inject.js +37 -0
  441. package/lib/esm/utils/useHash.js +38 -0
  442. package/lib/esm/utils/useOverlaidPosition.js +235 -0
  443. package/lib/esm/utils/useScrollBlocking.js +49 -0
  444. package/lib/esm/utils/useSpacingScale.js +123 -0
  445. package/lib/package.json +88 -0
  446. package/package.json +13 -11
  447. package/src/Carousel/Carousel.jsx +228 -155
  448. package/src/Carousel/CarouselItem/CarouselItem.jsx +14 -4
  449. package/src/Carousel/CarouselStepTracker/CarouselStepTracker.jsx +3 -0
  450. package/src/Carousel/Constants.js +4 -0
  451. package/src/ExpandCollapseMini/ExpandCollapseMini.jsx +76 -0
  452. package/src/ExpandCollapseMini/ExpandCollapseMiniControl.jsx +119 -0
  453. package/src/ExpandCollapseMini/index.js +3 -0
  454. package/src/Link/LinkBase.jsx +8 -3
  455. package/src/TextInput/TextInputBase.jsx +30 -1
  456. package/src/index.js +1 -0
  457. package/src/utils/useOverlaidPosition.js +23 -0
  458. package/lib/A11yInfoProvider/index.js +0 -65
  459. package/lib/Autocomplete/Autocomplete.js +0 -483
  460. package/lib/Autocomplete/Suggestions.js +0 -64
  461. package/lib/BaseProvider/HydrationContext.js +0 -48
  462. package/lib/BaseProvider/index.js +0 -41
  463. package/lib/Button/ButtonDropdown.js +0 -173
  464. package/lib/Card/Card.js +0 -328
  465. package/lib/Card/CardBase.js +0 -120
  466. package/lib/Card/PressableCardBase.js +0 -113
  467. package/lib/CardGroup/CardGroup.js +0 -210
  468. package/lib/Carousel/Carousel.js +0 -981
  469. package/lib/Carousel/CarouselItem/CarouselItem.js +0 -161
  470. package/lib/Carousel/CarouselStepTracker/CarouselStepTracker.js +0 -91
  471. package/lib/Carousel/CarouselTabs/CarouselTabs.js +0 -50
  472. package/lib/Carousel/CarouselTabs/CarouselTabsPanel.js +0 -88
  473. package/lib/Carousel/CarouselTabs/CarouselTabsPanelItem.js +0 -118
  474. package/lib/Carousel/CarouselThumbnail.js +0 -113
  475. package/lib/Carousel/Constants.js +0 -3
  476. package/lib/Checkbox/Checkbox.js +0 -342
  477. package/lib/ColourToggle/ColourToggle.js +0 -91
  478. package/lib/Footnote/Footnote.js +0 -316
  479. package/lib/HorizontalScroll/HorizontalScroll.js +0 -168
  480. package/lib/Icon/Icon.js +0 -94
  481. package/lib/Icon/IconText.js +0 -111
  482. package/lib/IconButton/IconButton.js +0 -203
  483. package/lib/InputSupports/InputSupports.js +0 -133
  484. package/lib/Link/LinkBase.js +0 -271
  485. package/lib/List/List.js +0 -77
  486. package/lib/List/ListItemContent.js +0 -73
  487. package/lib/Listbox/Listbox.js +0 -171
  488. package/lib/Listbox/PressableItem.js +0 -139
  489. package/lib/Modal/Modal.js +0 -373
  490. package/lib/MultiSelectFilter/MultiSelectFilter.js +0 -537
  491. package/lib/Notification/Notification.js +0 -432
  492. package/lib/OrderedList/OrderedList.js +0 -64
  493. package/lib/Pagination/usePagination.js +0 -78
  494. package/lib/PriceLockup/utils/renderFootnoteContent.js +0 -85
  495. package/lib/PriceLockup/utils/renderFootnoteLinks.js +0 -28
  496. package/lib/PriceLockup/utils/renderPrice.js +0 -139
  497. package/lib/ProductCard/ProductCard.js +0 -231
  498. package/lib/Progress/ProgressBarBackground.js +0 -42
  499. package/lib/QuickLinksFeature/QuickLinksFeature.js +0 -69
  500. package/lib/Radio/Radio.js +0 -282
  501. package/lib/Search/Search.js +0 -275
  502. package/lib/Select/Picker.js +0 -96
  503. package/lib/StackView/StackWrap.js +0 -51
  504. package/lib/StackView/getStackedContent.js +0 -122
  505. package/lib/StepTracker/StepTracker.js +0 -214
  506. package/lib/TabBar/TabBar.js +0 -125
  507. package/lib/Tabs/Tabs.js +0 -179
  508. package/lib/Tabs/TabsItem.js +0 -238
  509. package/lib/TextInput/TextArea.js +0 -98
  510. package/lib/TextInput/TextInput.js +0 -79
  511. package/lib/TextInput/TextInputBase.js +0 -468
  512. package/lib/ThemeProvider/utils/theme-tokens.js +0 -160
  513. package/lib/Timeline/Timeline.js +0 -169
  514. package/lib/Tooltip/Tooltip.native.js +0 -363
  515. package/lib/Typography/Typography.js +0 -266
  516. package/lib/Validator/Validator.js +0 -226
  517. package/lib/ViewportProvider/useViewportListener.js +0 -37
  518. package/lib/index.js +0 -71
  519. package/lib/utils/children.js +0 -117
  520. package/lib/utils/input.js +0 -185
  521. package/lib/utils/props/componentPropType.js +0 -50
  522. package/lib/utils/props/selectSystemProps.js +0 -23
  523. package/lib/utils/ssr-media-query/create-stylesheet/create-stylesheet-mobile.js +0 -48
  524. package/lib/utils/ssr-media-query/create-stylesheet/index.js +0 -36
  525. package/lib/utils/ssr-media-query/utils/inject.js +0 -39
  526. package/lib/utils/useHash.js +0 -41
  527. package/lib/utils/useOverlaidPosition.js +0 -214
  528. package/lib/utils/useScrollBlocking.js +0 -51
  529. package/lib/utils/useSpacingScale.js +0 -123
  530. /package/lib/{A11yText → esm/A11yText}/index.js +0 -0
  531. /package/lib/{ActionCard → esm/ActionCard}/ActionCard.js +0 -0
  532. /package/lib/{ActionCard → esm/ActionCard}/index.js +0 -0
  533. /package/lib/{ActivityIndicator → esm/ActivityIndicator}/Spinner.js +0 -0
  534. /package/lib/{ActivityIndicator → esm/ActivityIndicator}/Spinner.native.js +0 -0
  535. /package/lib/{ActivityIndicator → esm/ActivityIndicator}/index.js +0 -0
  536. /package/lib/{ActivityIndicator → esm/ActivityIndicator}/shared.js +0 -0
  537. /package/lib/{Autocomplete → esm/Autocomplete}/Loading.js +0 -0
  538. /package/lib/{Autocomplete → esm/Autocomplete}/constants.js +0 -0
  539. /package/lib/{Autocomplete → esm/Autocomplete}/dictionary.js +0 -0
  540. /package/lib/{Autocomplete → esm/Autocomplete}/index.js +0 -0
  541. /package/lib/{Badge → esm/Badge}/Badge.js +0 -0
  542. /package/lib/{Badge → esm/Badge}/index.js +0 -0
  543. /package/lib/{Box → esm/Box}/Box.js +0 -0
  544. /package/lib/{Box → esm/Box}/backgroundImageStylesMap.js +0 -0
  545. /package/lib/{Box → esm/Box}/index.js +0 -0
  546. /package/lib/{Button → esm/Button}/Button.js +0 -0
  547. /package/lib/{Button → esm/Button}/ButtonBase.js +0 -0
  548. /package/lib/{Button → esm/Button}/ButtonGroup.js +0 -0
  549. /package/lib/{Button → esm/Button}/ButtonLink.js +0 -0
  550. /package/lib/{Button → esm/Button}/index.js +0 -0
  551. /package/lib/{Button → esm/Button}/propTypes.js +0 -0
  552. /package/lib/{Card → esm/Card}/index.js +0 -0
  553. /package/lib/{CardGroup → esm/CardGroup}/dictionary.js +0 -0
  554. /package/lib/{CardGroup → esm/CardGroup}/index.js +0 -0
  555. /package/lib/{Carousel → esm/Carousel}/CarouselContext.js +0 -0
  556. /package/lib/{Carousel → esm/Carousel}/CarouselFirstFocus/CarouselFirstFocus.js +0 -0
  557. /package/lib/{Carousel → esm/Carousel}/CarouselItem/index.js +0 -0
  558. /package/lib/{Carousel → esm/Carousel}/CarouselStepTracker/index.js +0 -0
  559. /package/lib/{Carousel → esm/Carousel}/CarouselTabs/index.js +0 -0
  560. /package/lib/{Carousel → esm/Carousel}/CarouselThumbnailNavigation.js +0 -0
  561. /package/lib/{Carousel → esm/Carousel}/dictionary.js +0 -0
  562. /package/lib/{Carousel → esm/Carousel}/index.js +0 -0
  563. /package/lib/{Checkbox → esm/Checkbox}/CheckboxButton.js +0 -0
  564. /package/lib/{Checkbox → esm/Checkbox}/CheckboxGroup.js +0 -0
  565. /package/lib/{Checkbox → esm/Checkbox}/CheckboxInput.js +0 -0
  566. /package/lib/{Checkbox → esm/Checkbox}/CheckboxInput.native.js +0 -0
  567. /package/lib/{Checkbox → esm/Checkbox}/index.js +0 -0
  568. /package/lib/{CheckboxCard → esm/CheckboxCard}/CheckboxCard.js +0 -0
  569. /package/lib/{CheckboxCard → esm/CheckboxCard}/index.js +0 -0
  570. /package/lib/{CheckboxCardGroup → esm/CheckboxCardGroup}/CheckboxCardGroup.js +0 -0
  571. /package/lib/{CheckboxCardGroup → esm/CheckboxCardGroup}/index.js +0 -0
  572. /package/lib/{ColourToggle → esm/ColourToggle}/ColourBubble.js +0 -0
  573. /package/lib/{ColourToggle → esm/ColourToggle}/index.js +0 -0
  574. /package/lib/{Divider → esm/Divider}/Divider.js +0 -0
  575. /package/lib/{Divider → esm/Divider}/index.js +0 -0
  576. /package/lib/{DownloadApp → esm/DownloadApp}/DownloadApp.js +0 -0
  577. /package/lib/{DownloadApp → esm/DownloadApp}/dictionary.js +0 -0
  578. /package/lib/{DownloadApp → esm/DownloadApp}/index.js +0 -0
  579. /package/lib/{ExpandCollapse → esm/ExpandCollapse}/Accordion.js +0 -0
  580. /package/lib/{ExpandCollapse → esm/ExpandCollapse}/Control.js +0 -0
  581. /package/lib/{ExpandCollapse → esm/ExpandCollapse}/ExpandCollapse.js +0 -0
  582. /package/lib/{ExpandCollapse → esm/ExpandCollapse}/Panel.js +0 -0
  583. /package/lib/{ExpandCollapse → esm/ExpandCollapse}/dictionary.js +0 -0
  584. /package/lib/{ExpandCollapse → esm/ExpandCollapse}/index.js +0 -0
  585. /package/lib/{Feedback → esm/Feedback}/Feedback.js +0 -0
  586. /package/lib/{Feedback → esm/Feedback}/index.js +0 -0
  587. /package/lib/{Fieldset → esm/Fieldset}/Fieldset.js +0 -0
  588. /package/lib/{Fieldset → esm/Fieldset}/FieldsetContainer.js +0 -0
  589. /package/lib/{Fieldset → esm/Fieldset}/FieldsetContainer.native.js +0 -0
  590. /package/lib/{Fieldset → esm/Fieldset}/Legend.js +0 -0
  591. /package/lib/{Fieldset → esm/Fieldset}/Legend.native.js +0 -0
  592. /package/lib/{Fieldset → esm/Fieldset}/cssReset.js +0 -0
  593. /package/lib/{Fieldset → esm/Fieldset}/index.js +0 -0
  594. /package/lib/{FileUpload → esm/FileUpload}/FileUpload.js +0 -0
  595. /package/lib/{FileUpload → esm/FileUpload}/NotificationContent.js +0 -0
  596. /package/lib/{FileUpload → esm/FileUpload}/dictionary.js +0 -0
  597. /package/lib/{FileUpload → esm/FileUpload}/index.js +0 -0
  598. /package/lib/{FlexGrid → esm/FlexGrid}/Col/Col.js +0 -0
  599. /package/lib/{FlexGrid → esm/FlexGrid}/Col/index.js +0 -0
  600. /package/lib/{FlexGrid → esm/FlexGrid}/FlexGrid.js +0 -0
  601. /package/lib/{FlexGrid → esm/FlexGrid}/Row/Row.js +0 -0
  602. /package/lib/{FlexGrid → esm/FlexGrid}/Row/index.js +0 -0
  603. /package/lib/{FlexGrid → esm/FlexGrid}/helpers/index.js +0 -0
  604. /package/lib/{FlexGrid → esm/FlexGrid}/index.js +0 -0
  605. /package/lib/{FlexGrid → esm/FlexGrid}/providers/GutterContext.js +0 -0
  606. /package/lib/{Footnote → esm/Footnote}/FootnoteLink.js +0 -0
  607. /package/lib/{Footnote → esm/Footnote}/dictionary.js +0 -0
  608. /package/lib/{Footnote → esm/Footnote}/index.js +0 -0
  609. /package/lib/{HorizontalScroll → esm/HorizontalScroll}/HorizontalScrollButton.js +0 -0
  610. /package/lib/{HorizontalScroll → esm/HorizontalScroll}/ScrollViewEnd.js +0 -0
  611. /package/lib/{HorizontalScroll → esm/HorizontalScroll}/ScrollViewEnd.native.js +0 -0
  612. /package/lib/{HorizontalScroll → esm/HorizontalScroll}/dictionary.js +0 -0
  613. /package/lib/{HorizontalScroll → esm/HorizontalScroll}/index.js +0 -0
  614. /package/lib/{HorizontalScroll → esm/HorizontalScroll}/itemPositions.js +0 -0
  615. /package/lib/{Icon → esm/Icon}/index.js +0 -0
  616. /package/lib/{IconButton → esm/IconButton}/index.js +0 -0
  617. /package/lib/{InputLabel → esm/InputLabel}/InputLabel.js +0 -0
  618. /package/lib/{InputLabel → esm/InputLabel}/LabelContent.js +0 -0
  619. /package/lib/{InputLabel → esm/InputLabel}/LabelContent.native.js +0 -0
  620. /package/lib/{InputLabel → esm/InputLabel}/index.js +0 -0
  621. /package/lib/{InputSupports → esm/InputSupports}/dictionary.js +0 -0
  622. /package/lib/{InputSupports → esm/InputSupports}/index.js +0 -0
  623. /package/lib/{InputSupports → esm/InputSupports}/useInputSupports.js +0 -0
  624. /package/lib/{Link → esm/Link}/ChevronLink.js +0 -0
  625. /package/lib/{Link → esm/Link}/InlinePressable.js +0 -0
  626. /package/lib/{Link → esm/Link}/InlinePressable.native.js +0 -0
  627. /package/lib/{Link → esm/Link}/Link.js +0 -0
  628. /package/lib/{Link → esm/Link}/TextButton.js +0 -0
  629. /package/lib/{Link → esm/Link}/index.js +0 -0
  630. /package/lib/{List → esm/List}/ListItem.js +0 -0
  631. /package/lib/{List → esm/List}/ListItemBase.js +0 -0
  632. /package/lib/{List → esm/List}/ListItemMark.js +0 -0
  633. /package/lib/{List → esm/List}/PressableListItemBase.js +0 -0
  634. /package/lib/{List → esm/List}/index.js +0 -0
  635. /package/lib/{Listbox → esm/Listbox}/GroupControl.js +0 -0
  636. /package/lib/{Listbox → esm/Listbox}/ListboxContext.js +0 -0
  637. /package/lib/{Listbox → esm/Listbox}/ListboxGroup.js +0 -0
  638. /package/lib/{Listbox → esm/Listbox}/ListboxItem.js +0 -0
  639. /package/lib/{Listbox → esm/Listbox}/ListboxOverlay.js +0 -0
  640. /package/lib/{Listbox → esm/Listbox}/index.js +0 -0
  641. /package/lib/{Modal → esm/Modal}/ModalContent.js +0 -0
  642. /package/lib/{Modal → esm/Modal}/WebModal.js +0 -0
  643. /package/lib/{Modal → esm/Modal}/dictionary.js +0 -0
  644. /package/lib/{Modal → esm/Modal}/index.js +0 -0
  645. /package/lib/{MultiSelectFilter → esm/MultiSelectFilter}/ModalOverlay.js +0 -0
  646. /package/lib/{MultiSelectFilter → esm/MultiSelectFilter}/dictionary.js +0 -0
  647. /package/lib/{MultiSelectFilter → esm/MultiSelectFilter}/index.js +0 -0
  648. /package/lib/{Notification → esm/Notification}/dictionary.js +0 -0
  649. /package/lib/{Notification → esm/Notification}/index.js +0 -0
  650. /package/lib/{OrderedList → esm/OrderedList}/Item.js +0 -0
  651. /package/lib/{OrderedList → esm/OrderedList}/ItemBase.js +0 -0
  652. /package/lib/{OrderedList → esm/OrderedList}/OrderedListBase.js +0 -0
  653. /package/lib/{OrderedList → esm/OrderedList}/index.js +0 -0
  654. /package/lib/{Pagination → esm/Pagination}/PageButton.js +0 -0
  655. /package/lib/{Pagination → esm/Pagination}/Pagination.js +0 -0
  656. /package/lib/{Pagination → esm/Pagination}/SideButton.js +0 -0
  657. /package/lib/{Pagination → esm/Pagination}/constants.js +0 -0
  658. /package/lib/{Pagination → esm/Pagination}/dictionary.js +0 -0
  659. /package/lib/{Pagination → esm/Pagination}/index.js +0 -0
  660. /package/lib/{Portal → esm/Portal}/Portal.js +0 -0
  661. /package/lib/{Portal → esm/Portal}/Portal.native.js +0 -0
  662. /package/lib/{Portal → esm/Portal}/index.js +0 -0
  663. /package/lib/{PriceLockup → esm/PriceLockup}/PriceLockup.js +0 -0
  664. /package/lib/{PriceLockup → esm/PriceLockup}/index.js +0 -0
  665. /package/lib/{PriceLockup → esm/PriceLockup}/utils/renderTypography.js +0 -0
  666. /package/lib/{ProductCard → esm/ProductCard}/dictionary.js +0 -0
  667. /package/lib/{ProductCard → esm/ProductCard}/index.js +0 -0
  668. /package/lib/{ProductCardGroup → esm/ProductCardGroup}/ProductCardGroup.js +0 -0
  669. /package/lib/{ProductCardGroup → esm/ProductCardGroup}/index.js +0 -0
  670. /package/lib/{Progress → esm/Progress}/Progress.js +0 -0
  671. /package/lib/{Progress → esm/Progress}/ProgressBar.js +0 -0
  672. /package/lib/{Progress → esm/Progress}/constants.js +0 -0
  673. /package/lib/{Progress → esm/Progress}/index.js +0 -0
  674. /package/lib/{QuickLinks → esm/QuickLinks}/QuickLinks.js +0 -0
  675. /package/lib/{QuickLinks → esm/QuickLinks}/QuickLinksCard.js +0 -0
  676. /package/lib/{QuickLinks → esm/QuickLinks}/QuickLinksItem.js +0 -0
  677. /package/lib/{QuickLinks → esm/QuickLinks}/index.js +0 -0
  678. /package/lib/{QuickLinksFeature → esm/QuickLinksFeature}/QuickLinksFeatureItem.js +0 -0
  679. /package/lib/{QuickLinksFeature → esm/QuickLinksFeature}/index.js +0 -0
  680. /package/lib/{Radio → esm/Radio}/RadioButton.js +0 -0
  681. /package/lib/{Radio → esm/Radio}/RadioGroup.js +0 -0
  682. /package/lib/{Radio → esm/Radio}/RadioInput.js +0 -0
  683. /package/lib/{Radio → esm/Radio}/RadioInput.native.js +0 -0
  684. /package/lib/{Radio → esm/Radio}/index.js +0 -0
  685. /package/lib/{RadioCard → esm/RadioCard}/RadioCard.js +0 -0
  686. /package/lib/{RadioCard → esm/RadioCard}/RadioCardGroup.js +0 -0
  687. /package/lib/{RadioCard → esm/RadioCard}/index.js +0 -0
  688. /package/lib/{Responsive → esm/Responsive}/Responsive.js +0 -0
  689. /package/lib/{Responsive → esm/Responsive}/ResponsiveProp.js +0 -0
  690. /package/lib/{Responsive → esm/Responsive}/ResponsiveWithMediaQueryStyleSheet.js +0 -0
  691. /package/lib/{Responsive → esm/Responsive}/index.js +0 -0
  692. /package/lib/{Search → esm/Search}/dictionary.js +0 -0
  693. /package/lib/{Search → esm/Search}/index.js +0 -0
  694. /package/lib/{Select → esm/Select}/Group.js +0 -0
  695. /package/lib/{Select → esm/Select}/Group.native.js +0 -0
  696. /package/lib/{Select → esm/Select}/Item.js +0 -0
  697. /package/lib/{Select → esm/Select}/Item.native.js +0 -0
  698. /package/lib/{Select → esm/Select}/Picker.native.js +0 -0
  699. /package/lib/{Select → esm/Select}/Select.js +0 -0
  700. /package/lib/{Select → esm/Select}/constants.js +0 -0
  701. /package/lib/{Select → esm/Select}/index.js +0 -0
  702. /package/lib/{SideNav → esm/SideNav}/Item.js +0 -0
  703. /package/lib/{SideNav → esm/SideNav}/ItemContent.js +0 -0
  704. /package/lib/{SideNav → esm/SideNav}/ItemsGroup.js +0 -0
  705. /package/lib/{SideNav → esm/SideNav}/SideNav.js +0 -0
  706. /package/lib/{SideNav → esm/SideNav}/index.js +0 -0
  707. /package/lib/{Skeleton → esm/Skeleton}/Skeleton.js +0 -0
  708. /package/lib/{Skeleton → esm/Skeleton}/index.js +0 -0
  709. /package/lib/{Skeleton → esm/Skeleton}/skeleton.constant.js +0 -0
  710. /package/lib/{Skeleton → esm/Skeleton}/skeletonWebAnimation.js +0 -0
  711. /package/lib/{Skeleton → esm/Skeleton}/useSkeletonNativeAnimation.js +0 -0
  712. /package/lib/{SkipLink → esm/SkipLink}/SkipLink.js +0 -0
  713. /package/lib/{SkipLink → esm/SkipLink}/index.js +0 -0
  714. /package/lib/{Spacer → esm/Spacer}/Spacer.js +0 -0
  715. /package/lib/{Spacer → esm/Spacer}/index.js +0 -0
  716. /package/lib/{StackView → esm/StackView}/StackView.js +0 -0
  717. /package/lib/{StackView → esm/StackView}/StackWrap.native.js +0 -0
  718. /package/lib/{StackView → esm/StackView}/StackWrapBox.js +0 -0
  719. /package/lib/{StackView → esm/StackView}/StackWrapGap.js +0 -0
  720. /package/lib/{StackView → esm/StackView}/common.js +0 -0
  721. /package/lib/{StackView → esm/StackView}/index.js +0 -0
  722. /package/lib/{Status → esm/Status}/Status.js +0 -0
  723. /package/lib/{Status → esm/Status}/index.js +0 -0
  724. /package/lib/{StepTracker → esm/StepTracker}/Step.js +0 -0
  725. /package/lib/{StepTracker → esm/StepTracker}/dictionary.js +0 -0
  726. /package/lib/{StepTracker → esm/StepTracker}/index.js +0 -0
  727. /package/lib/{TabBar → esm/TabBar}/TabBarItem.js +0 -0
  728. /package/lib/{TabBar → esm/TabBar}/index.js +0 -0
  729. /package/lib/{Tabs → esm/Tabs}/index.js +0 -0
  730. /package/lib/{Tags → esm/Tags}/Tags.js +0 -0
  731. /package/lib/{Tags → esm/Tags}/index.js +0 -0
  732. /package/lib/{TextInput → esm/TextInput}/dictionary.js +0 -0
  733. /package/lib/{TextInput → esm/TextInput}/index.js +0 -0
  734. /package/lib/{TextInput → esm/TextInput}/propTypes.js +0 -0
  735. /package/lib/{ThemeProvider → esm/ThemeProvider}/ThemeProvider.js +0 -0
  736. /package/lib/{ThemeProvider → esm/ThemeProvider}/index.js +0 -0
  737. /package/lib/{ThemeProvider → esm/ThemeProvider}/useResponsiveThemeTokens.js +0 -0
  738. /package/lib/{ThemeProvider → esm/ThemeProvider}/useSetTheme.js +0 -0
  739. /package/lib/{ThemeProvider → esm/ThemeProvider}/useTheme.js +0 -0
  740. /package/lib/{ThemeProvider → esm/ThemeProvider}/useThemeTokens.js +0 -0
  741. /package/lib/{ThemeProvider → esm/ThemeProvider}/utils/index.js +0 -0
  742. /package/lib/{ThemeProvider → esm/ThemeProvider}/utils/styles.js +0 -0
  743. /package/lib/{Timeline → esm/Timeline}/index.js +0 -0
  744. /package/lib/{ToggleSwitch → esm/ToggleSwitch}/ToggleSwitch.js +0 -0
  745. /package/lib/{ToggleSwitch → esm/ToggleSwitch}/ToggleSwitchGroup.js +0 -0
  746. /package/lib/{ToggleSwitch → esm/ToggleSwitch}/index.js +0 -0
  747. /package/lib/{Tooltip → esm/Tooltip}/Backdrop.js +0 -0
  748. /package/lib/{Tooltip → esm/Tooltip}/Backdrop.native.js +0 -0
  749. /package/lib/{Tooltip → esm/Tooltip}/Tooltip.js +0 -0
  750. /package/lib/{Tooltip → esm/Tooltip}/dictionary.js +0 -0
  751. /package/lib/{Tooltip → esm/Tooltip}/getTooltipPosition.js +0 -0
  752. /package/lib/{Tooltip → esm/Tooltip}/index.js +0 -0
  753. /package/lib/{Tooltip → esm/Tooltip}/shared.js +0 -0
  754. /package/lib/{TooltipButton → esm/TooltipButton}/TooltipButton.js +0 -0
  755. /package/lib/{TooltipButton → esm/TooltipButton}/index.js +0 -0
  756. /package/lib/{Typography → esm/Typography}/index.js +0 -0
  757. /package/lib/{Validator → esm/Validator}/index.js +0 -0
  758. /package/lib/{ViewportProvider → esm/ViewportProvider}/ViewportProvider.js +0 -0
  759. /package/lib/{ViewportProvider → esm/ViewportProvider}/index.js +0 -0
  760. /package/lib/{ViewportProvider → esm/ViewportProvider}/useViewport.js +0 -0
  761. /package/lib/{server.js → esm/server.js} +0 -0
  762. /package/lib/{utils → esm/utils}/BaseView/BaseView.js +0 -0
  763. /package/lib/{utils → esm/utils}/BaseView/BaseView.native.js +0 -0
  764. /package/lib/{utils → esm/utils}/BaseView/index.js +0 -0
  765. /package/lib/{utils → esm/utils}/a11y/index.js +0 -0
  766. /package/lib/{utils → esm/utils}/a11y/semantics.js +0 -0
  767. /package/lib/{utils → esm/utils}/a11y/textSize.js +0 -0
  768. /package/lib/{utils → esm/utils}/animation/index.js +0 -0
  769. /package/lib/{utils → esm/utils}/animation/useVerticalExpandAnimation.js +0 -0
  770. /package/lib/{utils → esm/utils}/containUniqueFields.js +0 -0
  771. /package/lib/{utils → esm/utils}/convertFromMegaByteToByte.js +0 -0
  772. /package/lib/{utils → esm/utils}/floating-ui/index.js +0 -0
  773. /package/lib/{utils → esm/utils}/floating-ui/index.native.js +0 -0
  774. /package/lib/{utils → esm/utils}/formatImageSource.js +0 -0
  775. /package/lib/{utils → esm/utils}/hasOwnProperty.js +0 -0
  776. /package/lib/{utils → esm/utils}/htmlAttrs.js +0 -0
  777. /package/lib/{utils → esm/utils}/index.js +0 -0
  778. /package/lib/{utils → esm/utils}/info/index.js +0 -0
  779. /package/lib/{utils → esm/utils}/info/platform/index.js +0 -0
  780. /package/lib/{utils → esm/utils}/info/platform/platform.android.js +0 -0
  781. /package/lib/{utils → esm/utils}/info/platform/platform.ios.js +0 -0
  782. /package/lib/{utils → esm/utils}/info/platform/platform.js +0 -0
  783. /package/lib/{utils → esm/utils}/info/platform/platform.native.js +0 -0
  784. /package/lib/{utils → esm/utils}/info/versions.js +0 -0
  785. /package/lib/{utils → esm/utils}/pressability.js +0 -0
  786. /package/lib/{utils → esm/utils}/props/a11yProps.js +0 -0
  787. /package/lib/{utils → esm/utils}/props/clickProps.js +0 -0
  788. /package/lib/{utils → esm/utils}/props/contentfulProps.js +0 -0
  789. /package/lib/{utils → esm/utils}/props/copyPropTypes.js +0 -0
  790. /package/lib/{utils → esm/utils}/props/getPropSelector.js +0 -0
  791. /package/lib/{utils → esm/utils}/props/handlerProps.js +0 -0
  792. /package/lib/{utils → esm/utils}/props/hrefAttrsProp.js +0 -0
  793. /package/lib/{utils → esm/utils}/props/index.js +0 -0
  794. /package/lib/{utils → esm/utils}/props/inputSupportsProps.js +0 -0
  795. /package/lib/{utils → esm/utils}/props/linkProps.js +0 -0
  796. /package/lib/{utils → esm/utils}/props/paddingProp.js +0 -0
  797. /package/lib/{utils → esm/utils}/props/pressProps.js +0 -0
  798. /package/lib/{utils → esm/utils}/props/rectProp.js +0 -0
  799. /package/lib/{utils → esm/utils}/props/responsiveProps.js +0 -0
  800. /package/lib/{utils → esm/utils}/props/spacingProps.js +0 -0
  801. /package/lib/{utils → esm/utils}/props/textInputProps.js +0 -0
  802. /package/lib/{utils → esm/utils}/props/textProps.js +0 -0
  803. /package/lib/{utils → esm/utils}/props/tokens.js +0 -0
  804. /package/lib/{utils → esm/utils}/props/variantProp.js +0 -0
  805. /package/lib/{utils → esm/utils}/props/viewProps.js +0 -0
  806. /package/lib/{utils → esm/utils}/ssr-media-query/create-stylesheet/index.android.js +0 -0
  807. /package/lib/{utils → esm/utils}/ssr-media-query/create-stylesheet/index.ios.js +0 -0
  808. /package/lib/{utils → esm/utils}/ssr-media-query/hash.js +0 -0
  809. /package/lib/{utils → esm/utils}/ssr-media-query/index.js +0 -0
  810. /package/lib/{utils → esm/utils}/ssr-media-query/utils/common.js +0 -0
  811. /package/lib/{utils → esm/utils}/ssr-media-query/utils/create-declaration-block.js +0 -0
  812. /package/lib/{utils → esm/utils}/ssr-media-query/utils/create-media-query-styles.js +0 -0
  813. /package/lib/{utils → esm/utils}/ssr-media-query/utils/hyphenate-style-name.js +0 -0
  814. /package/lib/{utils → esm/utils}/ssr.js +0 -0
  815. /package/lib/{utils → esm/utils}/transformGradient.js +0 -0
  816. /package/lib/{utils → esm/utils}/useCopy.js +0 -0
  817. /package/lib/{utils → esm/utils}/useHash.native.js +0 -0
  818. /package/lib/{utils → esm/utils}/useResponsiveProp.js +0 -0
  819. /package/lib/{utils → esm/utils}/useSafeLayoutEffect.js +0 -0
  820. /package/lib/{utils → esm/utils}/useScrollBlocking.native.js +0 -0
  821. /package/lib/{utils → esm/utils}/useUniqueId.js +0 -0
  822. /package/lib/{utils → esm/utils}/withLinkRouter.js +0 -0
@@ -0,0 +1,473 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Dimensions from "react-native-web/dist/exports/Dimensions";
4
+ import Platform from "react-native-web/dist/exports/Platform";
5
+ import View from "react-native-web/dist/exports/View";
6
+ import StyleSheet from "react-native-web/dist/exports/StyleSheet";
7
+ import throttle from 'lodash.throttle';
8
+ import matchAll from 'string.prototype.matchall';
9
+ import { inputSupportsProps, selectSystemProps, textInputProps, textInputHandlerProps, useCopy, htmlAttrs, useOverlaidPosition, useSafeLayoutEffect, getTokensPropType } from '../utils';
10
+ import { useThemeTokens } from '../ThemeProvider';
11
+ import Listbox from '../Listbox';
12
+ import Typography from '../Typography';
13
+ import { TextInput } from '../TextInput';
14
+ import InputSupports from '../InputSupports';
15
+ import Loading from './Loading';
16
+ import Suggestions from './Suggestions';
17
+ import { DEFAULT_MAX_SUGGESTIONS, DEFAULT_MIN_TO_SUGGESTION, INPUT_LEFT_PADDING, MIN_LISTBOX_WIDTH } from './constants';
18
+ import dictionary from './dictionary';
19
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
20
+ const staticStyles = StyleSheet.create({
21
+ container: {
22
+ zIndex: 100,
23
+ flexDirection: 'column',
24
+ justifyContent: 'flex-start',
25
+ flexGrow: 0,
26
+ flexShrink: 0
27
+ }
28
+ });
29
+ const [selectProps, selectedSystemPropTypes] = selectSystemProps([htmlAttrs, inputSupportsProps, textInputHandlerProps, textInputProps]);
30
+
31
+ // Returns JSX to display a bold string `str` with unbolded occurrences of the
32
+ // `substring` based in the array of `matchIndexes` provided
33
+ const highlightAllMatches = function (str) {
34
+ let substring = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
35
+ let matchIndexes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
36
+ let resultsTextColor = arguments.length > 3 ? arguments[3] : undefined;
37
+ return (
38
+ /*#__PURE__*/
39
+ // Wrapping all in bold
40
+ _jsx(Typography, {
41
+ variant: {
42
+ bold: false
43
+ },
44
+ tokens: {
45
+ color: resultsTextColor
46
+ },
47
+ children: matchIndexes.reduce((acc, matchIndex, index) => [...acc,
48
+ // Add a piece of the string up to the first occurrence of the substring
49
+ index === 0 && (str.slice(0, matchIndex) ?? ''),
50
+ /*#__PURE__*/
51
+ // Unbold the occurrence of the substring (while keeping the original casing)
52
+ _jsx(Typography, {
53
+ variant: {
54
+ bold: true
55
+ },
56
+ tokens: {
57
+ color: resultsTextColor
58
+ },
59
+ children: str.slice(matchIndex, matchIndex + substring.length)
60
+ }, matchIndex),
61
+ // Add the rest of the string until the next occurrence or the end of it
62
+ str.slice(matchIndex + substring.length, matchIndexes[index + 1] ?? str.length)], [])
63
+ })
64
+ );
65
+ };
66
+ const highlight = function () {
67
+ let items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
68
+ let text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
69
+ let color = arguments.length > 2 ? arguments[2] : undefined;
70
+ return items.reduce((acc, item) => {
71
+ const matches = Array.from(matchAll(item.label.toLowerCase(), text.toLowerCase().replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&')))?.map(_ref => {
72
+ let {
73
+ index
74
+ } = _ref;
75
+ return index;
76
+ });
77
+ if (matches?.length) {
78
+ return [...acc, {
79
+ ...item,
80
+ label: highlightAllMatches(item.label, text, matches, color)
81
+ }];
82
+ }
83
+ return [...acc, item];
84
+ }, []);
85
+ };
86
+ const Autocomplete = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
87
+ let {
88
+ children,
89
+ copy = 'en',
90
+ fullWidth = true,
91
+ initialItems,
92
+ initialValue,
93
+ isLoading = false,
94
+ items,
95
+ maxSuggestions = DEFAULT_MAX_SUGGESTIONS,
96
+ minToSuggestion = DEFAULT_MIN_TO_SUGGESTION,
97
+ noResults,
98
+ onChange,
99
+ onClear,
100
+ onSelect,
101
+ readOnly,
102
+ validation,
103
+ value,
104
+ helpText = '',
105
+ loadingLabel,
106
+ tokens,
107
+ ...rest
108
+ } = _ref2;
109
+ const {
110
+ color: resultsTextColor,
111
+ ...restOfTokens
112
+ } = useThemeTokens('Autocomplete', tokens, {
113
+ focus: true
114
+ });
115
+
116
+ // The wrapped input is mostly responsible for controlled vs uncontrolled handling,
117
+ // but we also need to adjust suggestions based on the mode:
118
+ // - in controlled mode we rely entirely on the suggestions passed via the `items` prop,
119
+ // - in uncontrolled mode we filter the suggestions ourselves based on the `initialItems`
120
+ // prop and the text entered
121
+ const isControlled = value !== undefined;
122
+
123
+ // We need to store current items for uncontrolled usage
124
+ const [currentItems, setCurrentItems] = React.useState(initialItems);
125
+ const [otherItems, setOtherItems] = React.useState(items);
126
+
127
+ // We need to store the current value as well to be able to highlight it
128
+ const [currentValue, setCurrentValue] = React.useState(value ?? initialValue);
129
+ const inputTokens = {
130
+ paddingLeft: INPUT_LEFT_PADDING
131
+ };
132
+
133
+ // Setting up the overlay
134
+ const openOverlayRef = React.useRef();
135
+ const [isExpanded, setIsExpanded] = React.useState((value ?? initialValue)?.length >= minToSuggestion);
136
+ const [isFocused, setisFocused] = React.useState(false);
137
+ const [sourceLayout, setSourceLayout] = React.useState(null);
138
+
139
+ // When it's nested, selected value
140
+ const [nestedSelectedValue, setNestedSelectedValue] = React.useState(null);
141
+ const [isInputVisible, setIsInputVisible] = React.useState(true);
142
+ const {
143
+ supportsProps,
144
+ ...selectedProps
145
+ } = selectProps(rest);
146
+ const {
147
+ hint,
148
+ label: inputLabel
149
+ } = supportsProps;
150
+ const hintExpansionEnabled = isFocused && helpText && !currentValue;
151
+ const {
152
+ overlaidPosition,
153
+ sourceRef: inputRef,
154
+ // targetRef,
155
+ onTargetLayout,
156
+ isReady
157
+ } = useOverlaidPosition({
158
+ isShown: isExpanded || hintExpansionEnabled,
159
+ offsets: {
160
+ vertical: Platform.OS !== 'web' && (hint || inputLabel) ? 28 : 4
161
+ }
162
+ });
163
+ const targetRef = React.useRef(null);
164
+ // We limit the number of suggestions displayed to avoid huge lists
165
+ // TODO: add a way to make the `Listbox` occupy fixed height and be scrollable
166
+ // within that height, which will unlock similar behaviour for `AutoComplete` as well
167
+ const itemsToSuggest = function () {
168
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
169
+ return maxSuggestions ? data.slice(0, maxSuggestions) : [...data];
170
+ };
171
+ const getCopy = useCopy({
172
+ dictionary,
173
+ copy
174
+ });
175
+ // Tracking input width changes to resize the listbox overlay accordingly
176
+ const [inputWidth, setInputWidth] = React.useState();
177
+ useSafeLayoutEffect(() => {
178
+ if (Platform.OS === 'web') {
179
+ const updateInputWidth = () => {
180
+ setInputWidth(inputRef?.current?.clientWidth + 4); // adding back all the input borders / outlines
181
+ setIsExpanded(false); // close the suggestions while the input is changing
182
+ };
183
+ const throttledUpdateInputWidth = throttle(updateInputWidth, 100, {
184
+ leading: false
185
+ });
186
+ throttledUpdateInputWidth();
187
+ Dimensions.addEventListener('change', throttledUpdateInputWidth);
188
+ return () => {
189
+ Dimensions.removeEventListener('change', throttledUpdateInputWidth);
190
+ };
191
+ }
192
+ setInputWidth(sourceLayout?.width);
193
+ return () => {};
194
+ }, [inputRef, sourceLayout]);
195
+ const handleMeasure = event => {
196
+ onTargetLayout(event);
197
+ if (Platform.OS !== 'web') {
198
+ inputRef?.current?.measureInWindow((x, y, width) => {
199
+ setInputWidth(width);
200
+ });
201
+ }
202
+ };
203
+ const handleChange = newValue => {
204
+ onChange?.(newValue || '');
205
+ setCurrentValue(newValue);
206
+ setIsExpanded(newValue?.length >= minToSuggestion);
207
+ if (!isControlled && initialItems !== undefined) {
208
+ setCurrentItems(initialItems.filter(_ref3 => {
209
+ let {
210
+ label
211
+ } = _ref3;
212
+ return label?.toLowerCase()?.includes(newValue?.toLowerCase());
213
+ }));
214
+ }
215
+ };
216
+ const handleSelect = selectedId => {
217
+ onSelect?.(selectedId);
218
+ const {
219
+ label: newValue,
220
+ nested,
221
+ title
222
+ } = (isControlled ? items : currentItems)?.find(_ref4 => {
223
+ let {
224
+ id
225
+ } = _ref4;
226
+ return id === selectedId;
227
+ });
228
+ if (title) return;
229
+ if (!nested) {
230
+ setNestedSelectedValue(null);
231
+ onChange?.(newValue);
232
+ setIsExpanded(false);
233
+ }
234
+ setCurrentValue(newValue);
235
+ if (!isControlled && inputRef?.current) inputRef.current.value = newValue;
236
+ if (nested) setNestedSelectedValue(newValue);
237
+ inputRef.current.focus();
238
+ };
239
+
240
+ /**
241
+ * When an item that is nested equal "true" is selected this useEffect is executed.
242
+ * The nested item is added to the item list at the top, the if validates it doesn't exist
243
+ * within the list, if doesn't exist the nested item is added to the top of the list,
244
+ * the nested item is added with an id equal "0"
245
+ */
246
+ React.useEffect(() => {
247
+ if (nestedSelectedValue && !items.find(item => item.id === 0)) {
248
+ const tmpItems = [...items];
249
+ tmpItems.unshift({
250
+ label: nestedSelectedValue,
251
+ title: true,
252
+ id: 0
253
+ });
254
+ setOtherItems(tmpItems.map(item => {
255
+ return {
256
+ ...item,
257
+ nestedChild: item.id !== 0
258
+ };
259
+ }));
260
+ }
261
+ }, [nestedSelectedValue, items]);
262
+ React.useEffect(() => {
263
+ if (Platform.OS === 'ios' || Platform.OS === 'android') {
264
+ return undefined;
265
+ }
266
+ const observer = new IntersectionObserver(entries => {
267
+ const [entry] = entries;
268
+ setIsInputVisible(entry.isIntersecting);
269
+ if (!entry.isIntersecting) {
270
+ setIsExpanded(false);
271
+ }
272
+ });
273
+ const currentInputRef = inputRef.current;
274
+ if (currentInputRef) {
275
+ observer.observe(currentInputRef);
276
+ }
277
+ return () => {
278
+ if (currentInputRef) {
279
+ observer.unobserve(currentInputRef);
280
+ }
281
+ };
282
+ }, [inputRef]);
283
+ const handleClose = event => {
284
+ if (event.type === 'keydown' && (event.key === 'Escape' || event.key === '27') || event.type === 'click' && !openOverlayRef?.current?.contains(event.target) || event.type === 'touchstart' && openOverlayRef?.current && event.touches[0].target && !openOverlayRef?.current?.contains(event.touches[0].target)) {
285
+ setIsExpanded(false);
286
+ setNestedSelectedValue(null);
287
+ } else if (event.type === 'keydown' && (event.key === 'ArrowDown' || event.key === 'Tab') && isExpanded && !isLoading && targetRef?.current) {
288
+ event.preventDefault();
289
+ targetRef.current.focus();
290
+ }
291
+ };
292
+ const itemsToShow = currentValue ? itemsToSuggest(highlight(isControlled ? items : currentItems, currentValue, resultsTextColor)) : [];
293
+ const helpTextToShow = isFocused && !currentValue ? helpText : noResults ?? getCopy('noResults');
294
+ return /*#__PURE__*/_jsxs(View, {
295
+ style: staticStyles.container,
296
+ children: [/*#__PURE__*/_jsx(InputSupports, {
297
+ ...supportsProps,
298
+ accessibilityAutoComplete: "list",
299
+ accessibilityControls: "autocomplete",
300
+ accessibilityExpanded: isExpanded,
301
+ accessibilityRole: "combobox",
302
+ ...selectedProps,
303
+ validation: validation,
304
+ ref: ref,
305
+ children: _ref5 => {
306
+ let {
307
+ inputId,
308
+ ...props
309
+ } = _ref5;
310
+ if (typeof children === 'function') return children({
311
+ inputId,
312
+ inputRef,
313
+ onChange: handleChange,
314
+ onKeyPress: handleClose,
315
+ readOnly,
316
+ tokens: inputTokens,
317
+ ...selectedProps,
318
+ ...props,
319
+ ...(isControlled ? {
320
+ value
321
+ } : {
322
+ initialValue
323
+ })
324
+ });
325
+ return /*#__PURE__*/_jsx(TextInput, {
326
+ onChange: handleChange,
327
+ onFocus: () => {
328
+ setisFocused(true);
329
+ },
330
+ onBlur: () => {
331
+ setisFocused(false);
332
+ },
333
+ onClear: onClear,
334
+ onKeyPress: handleClose,
335
+ readOnly: readOnly,
336
+ ref: inputRef,
337
+ ...(Platform.OS !== 'web' ? {
338
+ onLayout: event => {
339
+ setSourceLayout(event.nativeEvent.layout);
340
+ const {
341
+ y,
342
+ height
343
+ } = event.nativeEvent.layout;
344
+ if (y >= 0 && height > 0) {
345
+ setIsInputVisible(true);
346
+ } else {
347
+ setIsInputVisible(false);
348
+ setIsExpanded(false);
349
+ }
350
+ }
351
+ } : {}),
352
+ tokens: inputTokens,
353
+ validation: validation,
354
+ ...selectedProps,
355
+ ...props,
356
+ ...(isControlled ? {
357
+ value
358
+ } : {
359
+ initialValue
360
+ })
361
+ });
362
+ }
363
+ }), (isExpanded || hintExpansionEnabled) && isInputVisible && /*#__PURE__*/_jsxs(_Fragment, {
364
+ children: [/*#__PURE__*/_jsx(Listbox.Overlay, {
365
+ overlaidPosition: overlaidPosition,
366
+ isReady: isReady,
367
+ minWidth: fullWidth ? inputWidth : MIN_LISTBOX_WIDTH,
368
+ maxWidth: inputWidth,
369
+ onLayout: handleMeasure,
370
+ tokens: restOfTokens,
371
+ ref: openOverlayRef,
372
+ children: isLoading ? /*#__PURE__*/_jsx(Loading, {
373
+ label: loadingLabel ?? getCopy('loading')
374
+ }) : /*#__PURE__*/_jsx(Suggestions, {
375
+ hasResults: getCopy('hasResults'),
376
+ id: "autocomplete",
377
+ items: nestedSelectedValue ? itemsToSuggest(highlight(otherItems, nestedSelectedValue, resultsTextColor)) : itemsToShow,
378
+ noResults: helpTextToShow,
379
+ onClose: handleClose,
380
+ onSelect: handleSelect,
381
+ parentRef: inputRef,
382
+ ref: targetRef
383
+ })
384
+ }), targetRef?.current && /*#__PURE__*/_jsx(View
385
+ // This catches and shifts focus to other interactive elements.
386
+ , {
387
+ onFocus: () => targetRef?.current?.focus(),
388
+ tabIndex: 0
389
+ })]
390
+ })]
391
+ });
392
+ });
393
+ Autocomplete.displayName = 'Autocomplete';
394
+
395
+ // If a language dictionary entry is provided, it must contain every key
396
+ const dictionaryContentShape = PropTypes.shape({
397
+ hasResults: PropTypes.string.isRequired,
398
+ loading: PropTypes.string.isRequired,
399
+ noResults: PropTypes.string.isRequired
400
+ });
401
+ Autocomplete.propTypes = {
402
+ ...selectedSystemPropTypes,
403
+ /**
404
+ * Can be used to provide a function that renders a custom input:
405
+ * <Autocomplete items={items} value={currentValue}>
406
+ * {({ inputId, inputRef, onChange, onKeyPress, readOnly, tokens, value }) => (
407
+ * <Search
408
+ * nativeID={inputId}
409
+ * ref={inputRef}
410
+ * onChange={onChange}
411
+ * onKeyPress={onKeyPress}
412
+ * readOnly={readOnly}
413
+ * tokens={tokens}
414
+ * value={value}
415
+ * />
416
+ * )}
417
+ * </Autocomplete>
418
+ */
419
+ children: PropTypes.func,
420
+ tokens: getTokensPropType('Autocomplete'),
421
+ /**
422
+ * Copy language identifier
423
+ */
424
+ copy: PropTypes.oneOfType([PropTypes.oneOf(['en', 'fr']), dictionaryContentShape]),
425
+ /**
426
+ * Set to true in order to display the loading indicator instead of results
427
+ */
428
+ isLoading: PropTypes.bool,
429
+ /**
430
+ * List of items to display as suggestions
431
+ */
432
+ items: PropTypes.arrayOf(PropTypes.shape({
433
+ id: PropTypes.string,
434
+ label: PropTypes.string
435
+ })),
436
+ /**
437
+ * Label to display alongside the spinner when in a loading state
438
+ */
439
+ loadingLabel: PropTypes.string,
440
+ /**
441
+ * Minimum number of characters typed for a list of suggestions to appear
442
+ */
443
+ minToSuggestion: PropTypes.number,
444
+ /**
445
+ * Maximum number of suggestions provided at the same time
446
+ */
447
+ maxSuggestions: PropTypes.number,
448
+ /**
449
+ * Text or JSX to render when no results are available
450
+ */
451
+ noResults: PropTypes.node,
452
+ /**
453
+ * Help text to display when the input is focused and empty
454
+ */
455
+ helpText: PropTypes.string,
456
+ /**
457
+ * Handler function to be called when the input value changes
458
+ */
459
+ onChange: PropTypes.func,
460
+ /**
461
+ * Handler function to be called when the clear button (appears if the handler is passed) is pressed
462
+ */
463
+ onClear: PropTypes.func,
464
+ /**
465
+ * Callback function to be called when an item is selected from the list
466
+ */
467
+ onSelect: PropTypes.func,
468
+ /**
469
+ * Input value for controlled usage
470
+ */
471
+ value: PropTypes.string
472
+ };
473
+ export default Autocomplete;
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import A11yText from '../A11yText';
4
+ import Typography from '../Typography';
5
+ import Box from '../Box';
6
+ import Listbox from '../Listbox';
7
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
+ const Suggestions = /*#__PURE__*/React.forwardRef((_ref, ref) => {
9
+ let {
10
+ hasResults,
11
+ items = [],
12
+ noResults,
13
+ onClose,
14
+ onSelect,
15
+ parentRef
16
+ } = _ref;
17
+ const pressableItems = items.map(_ref2 => {
18
+ let {
19
+ id,
20
+ ...rest
21
+ } = _ref2;
22
+ return {
23
+ id,
24
+ onPress: () => onSelect(id),
25
+ ...rest
26
+ };
27
+ });
28
+ if (items?.length) return /*#__PURE__*/_jsxs(_Fragment, {
29
+ children: [/*#__PURE__*/_jsx(A11yText, {
30
+ accessibilityLiveRegion: "polite",
31
+ text: hasResults
32
+ }), /*#__PURE__*/_jsx(Listbox, {
33
+ items: pressableItems,
34
+ firstItemRef: ref,
35
+ parentRef: parentRef,
36
+ onClose: onClose
37
+ })]
38
+ });
39
+ return /*#__PURE__*/_jsx(Box, {
40
+ space: 3,
41
+ children: typeof noResults === 'string' ? /*#__PURE__*/_jsx(_Fragment, {
42
+ children: /*#__PURE__*/_jsx(Typography, {
43
+ accessibilityLiveRegion: "polite",
44
+ variant: {
45
+ size: 'small'
46
+ },
47
+ children: noResults
48
+ })
49
+ }) : noResults
50
+ });
51
+ });
52
+ Suggestions.displayName = 'Suggestions';
53
+ Suggestions.propTypes = {
54
+ hasResults: PropTypes.string.isRequired,
55
+ items: PropTypes.arrayOf(PropTypes.shape({
56
+ id: PropTypes.string,
57
+ label: PropTypes.node
58
+ })).isRequired,
59
+ noResults: PropTypes.node.isRequired,
60
+ onClose: PropTypes.func.isRequired,
61
+ onSelect: PropTypes.func.isRequired,
62
+ parentRef: PropTypes.object.isRequired
63
+ };
64
+ export default Suggestions;
@@ -0,0 +1,47 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import Platform from "react-native-web/dist/exports/Platform";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ const HydrationContext = /*#__PURE__*/React.createContext();
6
+ const isSSR = typeof window === 'undefined';
7
+ const hasWebStyleTag = () => {
8
+ if (isSSR || Platform.OS !== 'web' || typeof document !== 'object') {
9
+ return false;
10
+ }
11
+ return Boolean(document?.getElementById('react-native-stylesheet'));
12
+ };
13
+
14
+ /**
15
+ * Returns true if this render cycle is the hydration of existing SSR content.
16
+ *
17
+ * Use this when changing how content renders based on data that is instantly available
18
+ * during the very first client-side render or hydration, but not available on the server,
19
+ * to ensure no changes happen until the original SSR DOM has been hydrated.
20
+ */
21
+ export const useHydrationContext = () => React.useContext(HydrationContext);
22
+
23
+ /**
24
+ * Allows components and hooks to observe if SSR hydration is currently in progress
25
+ * and if so, to re-render with content that differs to the server when it is complete.
26
+ */
27
+ export const HydrationProvider = _ref => {
28
+ let {
29
+ children
30
+ } = _ref;
31
+ const [hasMounted, setHasMounted] = React.useState(false);
32
+ React.useEffect(() => {
33
+ setHasMounted(true);
34
+ }, []);
35
+
36
+ // If we've got a HydrationProvider inside a HydrationProvider somehow, defer to the top one
37
+ const valueFromAncestor = useHydrationContext();
38
+ const isHydrating = valueFromAncestor ?? Boolean(!hasMounted && hasWebStyleTag());
39
+ return /*#__PURE__*/_jsx(HydrationContext.Provider, {
40
+ value: isHydrating,
41
+ children: children
42
+ });
43
+ };
44
+ HydrationProvider.propTypes = {
45
+ children: PropTypes.node
46
+ };
47
+ export default HydrationProvider;
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { PortalProvider } from '@gorhom/portal';
4
+ import A11yInfoProvider from '../A11yInfoProvider';
5
+ import ViewportProvider from '../ViewportProvider';
6
+ import ThemeProvider from '../ThemeProvider';
7
+ import { HydrationProvider } from './HydrationContext';
8
+
9
+ // eslint-disable-next-line no-unused-vars
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ const BaseProvider = /*#__PURE__*/React.forwardRef((_ref, _) => {
12
+ let {
13
+ defaultTheme,
14
+ children,
15
+ themeOptions
16
+ } = _ref;
17
+ return /*#__PURE__*/_jsx(HydrationProvider, {
18
+ children: /*#__PURE__*/_jsx(A11yInfoProvider, {
19
+ children: /*#__PURE__*/_jsx(ViewportProvider, {
20
+ children: /*#__PURE__*/_jsx(ThemeProvider, {
21
+ defaultTheme: defaultTheme,
22
+ themeOptions: themeOptions,
23
+ children: /*#__PURE__*/_jsx(PortalProvider, {
24
+ children: children
25
+ })
26
+ })
27
+ })
28
+ })
29
+ });
30
+ });
31
+ BaseProvider.displayName = 'BaseProvider';
32
+ BaseProvider.propTypes = {
33
+ children: PropTypes.node.isRequired,
34
+ defaultTheme: ThemeProvider.propTypes?.defaultTheme,
35
+ themeOptions: PropTypes.shape({
36
+ forceAbsoluteFontSizing: PropTypes.bool,
37
+ forceZIndex: PropTypes.bool
38
+ })
39
+ };
40
+ export default BaseProvider;