@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,537 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import View from "react-native-web/dist/exports/View";
4
+ import StyleSheet from "react-native-web/dist/exports/StyleSheet";
5
+ import Dimensions from "react-native-web/dist/exports/Dimensions";
6
+ import SafeAreaView from "react-native-web/dist/exports/SafeAreaView";
7
+ import Platform from "react-native-web/dist/exports/Platform";
8
+ import ScrollView from "react-native-web/dist/exports/ScrollView";
9
+ import { useThemeTokens, useThemeTokensCallback, applyTextStyles } from '../ThemeProvider';
10
+ import { containUniqueFields, getTokensPropType, getPressHandlersWithArgs, selectTokens, useOverlaidPosition, useCopy, useMultipleInputValues, useResponsiveProp, variantProp, useScrollBlocking } from '../utils';
11
+ import defaultDictionary from './dictionary';
12
+ import { useViewport } from '../ViewportProvider';
13
+ import Box from '../Box';
14
+ import { Button, ButtonDropdown } from '../Button';
15
+ import { CheckboxGroup } from '../Checkbox';
16
+ import Divider from '../Divider';
17
+ import FlexGrid from '../FlexGrid';
18
+ import Spacer from '../Spacer';
19
+ import StackView from '../StackView';
20
+ import Typography from '../Typography';
21
+ import { TextButton } from '../Link';
22
+ import ModalOverlay from './ModalOverlay';
23
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
24
+ const {
25
+ Col,
26
+ Row
27
+ } = FlexGrid;
28
+ const selectHeaderTokens = _ref => {
29
+ let {
30
+ contentMarginLeft,
31
+ contentMarginRight,
32
+ contentMarginTop,
33
+ contentPaddingLeft,
34
+ contentPaddingRight
35
+ } = _ref;
36
+ return {
37
+ marginLeft: contentMarginLeft,
38
+ marginRight: contentMarginRight,
39
+ marginTop: contentMarginTop,
40
+ paddingLeft: contentPaddingLeft,
41
+ paddingRight: contentPaddingRight,
42
+ flexGrow: 1
43
+ };
44
+ };
45
+ const selectControlsTokens = _ref2 => {
46
+ let {
47
+ contentMarginBottom,
48
+ contentMarginLeft,
49
+ contentMarginRight,
50
+ contentPaddingLeft,
51
+ contentPaddingRight
52
+ } = _ref2;
53
+ return {
54
+ marginBottom: contentMarginBottom,
55
+ marginLeft: contentMarginLeft,
56
+ marginRight: contentMarginRight,
57
+ paddingLeft: contentPaddingLeft,
58
+ paddingRight: contentPaddingRight
59
+ };
60
+ };
61
+ const selectContainerStyle = (windowHeight, windowWidth) => ({
62
+ height: windowHeight,
63
+ width: windowWidth
64
+ });
65
+ const TOTAL_COLUMNS = 12;
66
+ const MAX_ITEMS_THRESHOLD = 12;
67
+ const MultiSelectFilter = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
68
+ let {
69
+ label,
70
+ subtitle,
71
+ id = label,
72
+ variant,
73
+ tokens,
74
+ items = [],
75
+ values,
76
+ maxHeight = false,
77
+ initialValues,
78
+ maxValues,
79
+ onChange,
80
+ onConfirm = () => {},
81
+ onCancel = () => {},
82
+ onOpen = () => {},
83
+ copy = 'en',
84
+ readOnly = false,
85
+ inactive = false,
86
+ rowLimit = 12,
87
+ dictionary = defaultDictionary,
88
+ ...rest
89
+ } = _ref3;
90
+ const viewport = useViewport();
91
+ const {
92
+ currentValues,
93
+ setValues
94
+ } = useMultipleInputValues({
95
+ initialValues,
96
+ values,
97
+ maxValues,
98
+ onChange,
99
+ readOnly
100
+ });
101
+ const [isOpen, setIsOpen] = React.useState(false);
102
+ const [checkedIds, setCheckedIds] = React.useState(currentValues ?? []);
103
+ const [maxWidth, setMaxWidth] = React.useState(false);
104
+ const {
105
+ headerFontColor,
106
+ headerFontSize,
107
+ buttonDirection,
108
+ headerFontWeight,
109
+ headerLineHeight,
110
+ subHeaderFontWeight,
111
+ subHeaderFontSize,
112
+ maxHeightSize,
113
+ maxWidthSize,
114
+ subHeaderLineHeight,
115
+ minHeight,
116
+ minWidth,
117
+ labelFontName,
118
+ labelFontSize,
119
+ labelFontWeight,
120
+ labelColor,
121
+ labelLineHeight,
122
+ labelPaddingTop,
123
+ labelPaddingBottom,
124
+ labelPaddingLeft,
125
+ labelPaddingRight,
126
+ buttonBorderColor,
127
+ buttonIconSize,
128
+ buttonIconPadding,
129
+ subtitleColor,
130
+ dividerColor,
131
+ ...restTokens
132
+ } = useThemeTokens('MultiSelectFilter', tokens, {
133
+ ...variant,
134
+ maxHeight,
135
+ maxWidth
136
+ }, {
137
+ viewport
138
+ });
139
+ const dropdownTokens = {
140
+ borderColor: buttonBorderColor,
141
+ iconSize: buttonIconSize,
142
+ iconPadding: buttonIconPadding,
143
+ lineHeight: labelLineHeight,
144
+ fontName: labelFontName,
145
+ fontSize: labelFontSize,
146
+ fontWeight: labelFontWeight,
147
+ color: labelColor,
148
+ paddingTop: labelPaddingTop,
149
+ paddingBottom: labelPaddingBottom,
150
+ paddingLeft: labelPaddingLeft,
151
+ paddingRight: labelPaddingRight
152
+ };
153
+ const getButtonDropdownTokens = useThemeTokensCallback('ButtonDropdown', dropdownTokens, variant);
154
+ const getButtonTokens = buttonState => selectTokens('ButtonDropdown', getButtonDropdownTokens(buttonState));
155
+ const getCopy = useCopy({
156
+ dictionary,
157
+ copy
158
+ });
159
+ const colSizeNotMobile = items.length > rowLimit ? 2 : 1;
160
+ const colSize = viewport !== 'xs' ? colSizeNotMobile : 1;
161
+ const itemsLengthNotMobile = items.length > 24 ? items.length / 2 : rowLimit;
162
+ const isSelected = currentValues.length > 0;
163
+ const rowLength = viewport !== 'xs' ? itemsLengthNotMobile : items.length;
164
+ React.useEffect(() => {
165
+ if (colSize === 1) return setMaxWidth(false);
166
+ return colSize === 2 && setMaxWidth(true);
167
+ }, [colSize]);
168
+ React.useEffect(() => setCheckedIds(currentValues ?? []), [currentValues]);
169
+ const uniqueFields = ['id', 'label'];
170
+ if (!containUniqueFields(items, uniqueFields)) {
171
+ throw new Error(`MultiSelectFilter items must have unique ${uniqueFields.join(', ')}`);
172
+ }
173
+ // Pass an object of relevant component state as first argument for any passed-in press handlers
174
+ const pressHandlers = getPressHandlersWithArgs(rest, [{
175
+ id,
176
+ label,
177
+ currentValues
178
+ }]);
179
+ const handleChange = event => {
180
+ if (pressHandlers.onPress) pressHandlers?.onPress(event);
181
+ if (isOpen) onOpen();
182
+ setIsOpen(!isOpen);
183
+ };
184
+ const onApply = e => {
185
+ setValues(e);
186
+ setIsOpen(false);
187
+ onConfirm(e);
188
+ };
189
+ const onClear = () => {
190
+ setCheckedIds(() => []);
191
+ setValues([]);
192
+ setIsOpen(false);
193
+ onCancel();
194
+ };
195
+ const onClose = () => {
196
+ setIsOpen(false);
197
+ onCancel();
198
+ };
199
+ const {
200
+ align,
201
+ offsets
202
+ } = useResponsiveProp({
203
+ xs: {
204
+ align: {
205
+ top: 'top',
206
+ left: 'left'
207
+ }
208
+ },
209
+ sm: {
210
+ align: {
211
+ top: 'bottom',
212
+ left: 'left'
213
+ },
214
+ offsets: {
215
+ vertical: 4
216
+ }
217
+ }
218
+ });
219
+ const headerStyles = applyTextStyles({
220
+ fontSize: headerFontSize,
221
+ fontWeight: headerFontWeight,
222
+ fontColor: headerFontColor
223
+ });
224
+ const subeHeaderStyles = applyTextStyles({
225
+ fontSize: subHeaderFontSize,
226
+ fontWeight: subHeaderFontWeight,
227
+ fontColor: subtitleColor
228
+ });
229
+ const {
230
+ overlaidPosition,
231
+ onTargetLayout,
232
+ isReady,
233
+ sourceRef
234
+ } = useOverlaidPosition({
235
+ isShown: isOpen,
236
+ offsets,
237
+ align
238
+ });
239
+ const [isScrolling, setIsScrolling] = React.useState(false);
240
+ const [scrollViewHeight, setScrollViewHeight] = React.useState(0);
241
+ const [rowHeight, setRowHeight] = React.useState(0);
242
+ const modalRef = useScrollBlocking(isOpen);
243
+ const windowWidth = Dimensions.get('window').width;
244
+ const windowHeight = Dimensions.get('window').height;
245
+ React.useEffect(() => {
246
+ if (rowHeight > scrollViewHeight) {
247
+ setIsScrolling(true);
248
+ } else {
249
+ setIsScrolling(false);
250
+ }
251
+ }, [scrollViewHeight, rowHeight]);
252
+ const handleScrollViewLayout = event => {
253
+ const {
254
+ height
255
+ } = event.nativeEvent.layout;
256
+ setScrollViewHeight(height);
257
+ };
258
+ const handleRowLayout = event => {
259
+ const {
260
+ height
261
+ } = event.nativeEvent.layout;
262
+ setRowHeight(height);
263
+ };
264
+ const headerContent = /*#__PURE__*/_jsxs(View, {
265
+ style: [selectHeaderTokens(restTokens), styles.container],
266
+ children: [/*#__PURE__*/_jsx(Row, {
267
+ children: /*#__PURE__*/_jsx(View, {
268
+ children: /*#__PURE__*/_jsx(Typography, {
269
+ tokens: {
270
+ ...headerStyles,
271
+ lineHeight: headerLineHeight
272
+ },
273
+ children: getCopy('filterByLabel').replace(/%\{filterCategory\}/g, label.toLowerCase())
274
+ })
275
+ })
276
+ }), subtitle && /*#__PURE__*/_jsxs(_Fragment, {
277
+ children: [/*#__PURE__*/_jsx(Spacer, {
278
+ space: 4
279
+ }), /*#__PURE__*/_jsx(Row, {
280
+ children: /*#__PURE__*/_jsx(Typography, {
281
+ tokens: {
282
+ ...subeHeaderStyles,
283
+ lineHeight: subHeaderLineHeight
284
+ },
285
+ children: subtitle
286
+ })
287
+ }), /*#__PURE__*/_jsx(Spacer, {
288
+ space: 4
289
+ })]
290
+ }), /*#__PURE__*/_jsx(View, {
291
+ style: styles.options,
292
+ children: /*#__PURE__*/_jsx(ScrollView, {
293
+ onLayout: handleScrollViewLayout,
294
+ children: /*#__PURE__*/_jsx(Row, {
295
+ distribute: "between",
296
+ onLayout: handleRowLayout,
297
+ children: [...Array(colSize).keys()].map(i => /*#__PURE__*/_jsxs(Col, {
298
+ xs: TOTAL_COLUMNS / colSize,
299
+ children: [/*#__PURE__*/_jsx(CheckboxGroup, {
300
+ items: items.slice(i * rowLength, (i + 1) * rowLength),
301
+ checkedIds: checkedIds,
302
+ onChange: e => setCheckedIds(e, i)
303
+ }), /*#__PURE__*/_jsx(Spacer, {
304
+ size: 4
305
+ })]
306
+ }, i))
307
+ })
308
+ })
309
+ })]
310
+ });
311
+ const controlsContent = /*#__PURE__*/_jsxs(_Fragment, {
312
+ children: [isScrolling ? /*#__PURE__*/_jsx(Divider, {
313
+ tokens: {
314
+ color: dividerColor
315
+ },
316
+ space: 4
317
+ }) : /*#__PURE__*/_jsx(Spacer, {
318
+ space: 4
319
+ }), /*#__PURE__*/_jsx(View, {
320
+ style: selectControlsTokens(restTokens),
321
+ children: /*#__PURE__*/_jsx(Row, {
322
+ horizontalAlign: buttonDirection === 'column' ? 'center' : 'start',
323
+ children: /*#__PURE__*/_jsxs(StackView, {
324
+ direction: buttonDirection,
325
+ space: 3,
326
+ tokens: {
327
+ alignItems: 'center',
328
+ ...(viewport === 'xs' && {
329
+ flexGrow: 1
330
+ })
331
+ },
332
+ children: [/*#__PURE__*/_jsx(Button, {
333
+ onPress: () => onApply(checkedIds),
334
+ variant: {
335
+ priority: 'high',
336
+ ...(viewport === 'xs' && {
337
+ width: 'full'
338
+ })
339
+ },
340
+ children: getCopy('applyButtonLabel')
341
+ }), /*#__PURE__*/_jsx(Box, {
342
+ children: /*#__PURE__*/_jsx(TextButton, {
343
+ onPress: onClear,
344
+ children: getCopy('clearButtonLabel')
345
+ })
346
+ })]
347
+ })
348
+ })
349
+ })]
350
+ });
351
+ return /*#__PURE__*/_jsxs(_Fragment, {
352
+ children: [/*#__PURE__*/_jsx(ButtonDropdown, {
353
+ ref: sourceRef,
354
+ ...pressHandlers,
355
+ value: isOpen,
356
+ selected: isSelected,
357
+ label: label,
358
+ onChange: handleChange,
359
+ tokens: getButtonTokens,
360
+ inactive: inactive
361
+ }, id), isOpen && viewport === 'xs' && /*#__PURE__*/_jsx(ModalOverlay, {
362
+ overlaidPosition: {
363
+ top: 0,
364
+ left: 0
365
+ },
366
+ onClose: onClose,
367
+ maxHeight: true,
368
+ maxHeightSize: windowHeight,
369
+ maxWidthSize: windowWidth,
370
+ minHeight: windowHeight,
371
+ minWidth: windowWidth,
372
+ tokens: {
373
+ ...tokens,
374
+ maxWidth: true
375
+ },
376
+ copy: copy,
377
+ isReady: isReady,
378
+ onLayout: onTargetLayout,
379
+ ref: modalRef,
380
+ enableFullscreen: true,
381
+ children: /*#__PURE__*/_jsxs(SafeAreaView, {
382
+ style: [selectContainerStyle(windowHeight, windowWidth), styles.content],
383
+ ref: ref,
384
+ children: [headerContent, /*#__PURE__*/_jsx(View, {
385
+ style: styles.controls,
386
+ children: controlsContent
387
+ })]
388
+ })
389
+ }), isOpen && viewport !== 'xs' && /*#__PURE__*/_jsxs(ModalOverlay, {
390
+ overlaidPosition: overlaidPosition,
391
+ onClose: onClose,
392
+ maxHeight: items.length > MAX_ITEMS_THRESHOLD ? true : maxHeight,
393
+ maxHeightSize: maxHeightSize,
394
+ maxWidthSize: maxWidthSize,
395
+ minHeight: minHeight,
396
+ minWidth: minWidth,
397
+ tokens: {
398
+ ...tokens,
399
+ maxWidth: items.length > MAX_ITEMS_THRESHOLD ? true : maxWidth
400
+ },
401
+ copy: copy,
402
+ isReady: isReady,
403
+ onLayout: onTargetLayout,
404
+ ref: ref,
405
+ children: [headerContent, controlsContent]
406
+ })]
407
+ });
408
+ });
409
+ MultiSelectFilter.displayName = 'MultiSelectFilter';
410
+ const styles = StyleSheet.create({
411
+ container: {
412
+ flex: 1
413
+ },
414
+ controls: Platform.select({
415
+ web: {},
416
+ default: {
417
+ flex: 0.35
418
+ }
419
+ }),
420
+ content: {
421
+ flex: 1,
422
+ justifyContent: 'space-between',
423
+ backgroundColor: 'transparent'
424
+ },
425
+ options: {
426
+ flex: 1
427
+ }
428
+ });
429
+
430
+ // If a language dictionary entry is provided, it must contain every key
431
+ const dictionaryContentShape = PropTypes.shape({
432
+ filterByLabel: PropTypes.string.isRequired,
433
+ applyButtonLabel: PropTypes.string.isRequired,
434
+ clearButtonLabel: PropTypes.string.isRequired
435
+ });
436
+ MultiSelectFilter.propTypes = {
437
+ /**
438
+ * The text displayed to the user in a ButtonDropdown.
439
+ */
440
+ label: PropTypes.string.isRequired,
441
+ /**
442
+ * The text for the subtitle
443
+ */
444
+ subtitle: PropTypes.string,
445
+ /**
446
+ * An optional unique string may be provided to identify the ButtonDropdown.
447
+ * If not provided, the label is used.
448
+ */
449
+ id: PropTypes.string,
450
+ /**
451
+ * Sets the variant for ButtonDropdown element.
452
+ */
453
+ variant: variantProp.propType,
454
+ /**
455
+ * Sets the tokens for MultiSelectFilter element.
456
+ */
457
+ tokens: getTokensPropType('MultiSelectFilter'),
458
+ /**
459
+ * The options a user may select.
460
+ */
461
+ items: PropTypes.arrayOf(PropTypes.shape({
462
+ /**
463
+ * The text displayed to the user with a checkbox, describing this option.
464
+ */
465
+ label: PropTypes.string.isRequired,
466
+ /**
467
+ * An optional unique string may be provided to identify this option.
468
+ * If not provided, the label is used.
469
+ */
470
+ id: PropTypes.string
471
+ })),
472
+ /**
473
+ * If the selected item(s) in the checkbox group(s) are to be controlled externally by
474
+ * a parent component, pass an array of strings as well as an `onChange` handler.
475
+ * Passing an array for "values" makes the MultiSelectFilter a "controlled" component that
476
+ * expects its state to be handled via `onChange` and so doesn't handle it itself.
477
+ */
478
+ values: PropTypes.arrayOf(PropTypes.string),
479
+ /**
480
+ * If `values` is not passed, making the MultiSelectFilter an "uncontrolled" component
481
+ * managing its own selected state, a default set of selections may be provided.
482
+ * Changing the `initialValues` does not change the user's selections.
483
+ */
484
+ initialValues: PropTypes.arrayOf(PropTypes.string),
485
+ /**
486
+ * If provided, sets a maximum number of items a user may select at once.
487
+ */
488
+ maxValues: PropTypes.number,
489
+ /**
490
+ * If provided sets maxHeight to be active
491
+ */
492
+ maxHeight: PropTypes.bool,
493
+ /**
494
+ * If provided, this function is called when the current selection is changed
495
+ * and is passed an array of the `id`s of all currently selected `items`.
496
+ */
497
+ onChange: PropTypes.func,
498
+ /**
499
+ * If provided, this function is called when the selection is confirmed.
500
+ */
501
+ onConfirm: PropTypes.func,
502
+ /**
503
+ * If provided, this function is called when the modal with options is opened.
504
+ * */
505
+ onOpen: PropTypes.func,
506
+ /**
507
+ * If provided, this function is called when `MultiSelectFilter` is closed.
508
+ * */
509
+ onCancel: PropTypes.func,
510
+ /**
511
+ * Select English or French copy for the accessible label.
512
+ */
513
+ copy: PropTypes.oneOf(['en', 'fr']),
514
+ /**
515
+ * Custom dictionary containing the labels
516
+ */
517
+ dictionary: PropTypes.shape({
518
+ en: dictionaryContentShape,
519
+ fr: dictionaryContentShape
520
+ }),
521
+ /**
522
+ * If true, the ButtonDropdown cannot be selected by the user and simply show their current state.
523
+ */
524
+ readOnly: PropTypes.string,
525
+ /**
526
+ * If true, the MultiSelectFilter cannot be interacted with, ButtonDropdown is
527
+ * set as `disabled` and if the theme supports `inactive` appearances rules, these
528
+ * are applied.
529
+ */
530
+ inactive: PropTypes.string,
531
+ /**
532
+ * Sets the maximum number of items in one column. If number of items are more
533
+ * than the `rowLimit`, they will be rendered in 2 columns.
534
+ */
535
+ rowLimit: PropTypes.number
536
+ };
537
+ export default MultiSelectFilter;