@telus-uds/components-base 1.8.1 → 1.8.2

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 (365) hide show
  1. package/CHANGELOG.md +13 -2
  2. package/component-docs.json +682 -675
  3. package/lib/A11yInfoProvider/index.js +4 -3
  4. package/lib/A11yText/index.js +6 -5
  5. package/lib/ActivityIndicator/Spinner.js +7 -6
  6. package/lib/ActivityIndicator/Spinner.native.js +8 -6
  7. package/lib/ActivityIndicator/index.js +6 -5
  8. package/lib/ActivityIndicator/shared.js +1 -1
  9. package/lib/BaseProvider/index.js +13 -10
  10. package/lib/Box/Box.js +20 -19
  11. package/lib/Button/Button.js +7 -6
  12. package/lib/Button/ButtonBase.js +95 -77
  13. package/lib/Button/ButtonGroup.js +33 -31
  14. package/lib/Button/ButtonLink.js +9 -7
  15. package/lib/Button/index.js +4 -4
  16. package/lib/Button/propTypes.js +1 -1
  17. package/lib/Card/Card.js +8 -7
  18. package/lib/Card/CardBase.js +35 -31
  19. package/lib/Card/PressableCardBase.js +14 -12
  20. package/lib/Checkbox/Checkbox.js +96 -82
  21. package/lib/Checkbox/CheckboxGroup.js +27 -25
  22. package/lib/Checkbox/CheckboxInput.js +12 -10
  23. package/lib/Divider/Divider.js +8 -7
  24. package/lib/ExpandCollapse/Control.js +42 -36
  25. package/lib/ExpandCollapse/ExpandCollapse.js +11 -10
  26. package/lib/ExpandCollapse/Panel.js +27 -23
  27. package/lib/Feedback/Feedback.js +48 -35
  28. package/lib/Fieldset/Fieldset.js +16 -15
  29. package/lib/Fieldset/FieldsetContainer.js +16 -13
  30. package/lib/Fieldset/FieldsetContainer.native.js +11 -8
  31. package/lib/Fieldset/Legend.js +10 -7
  32. package/lib/Fieldset/Legend.native.js +10 -7
  33. package/lib/FlexGrid/Col/Col.js +17 -16
  34. package/lib/FlexGrid/FlexGrid.js +15 -14
  35. package/lib/FlexGrid/Row/Row.js +13 -12
  36. package/lib/HorizontalScroll/HorizontalScroll.js +25 -20
  37. package/lib/HorizontalScroll/HorizontalScrollButton.js +18 -14
  38. package/lib/HorizontalScroll/ScrollViewEnd.js +6 -5
  39. package/lib/HorizontalScroll/ScrollViewEnd.native.js +12 -9
  40. package/lib/HorizontalScroll/itemPositions.js +19 -13
  41. package/lib/Icon/Icon.js +10 -9
  42. package/lib/Icon/IconText.js +8 -7
  43. package/lib/Icon/index.js +5 -5
  44. package/lib/IconButton/IconButton.js +50 -42
  45. package/lib/InputLabel/InputLabel.js +37 -30
  46. package/lib/InputLabel/LabelContent.js +12 -9
  47. package/lib/InputLabel/LabelContent.native.js +9 -6
  48. package/lib/InputSupports/InputSupports.js +11 -10
  49. package/lib/InputSupports/useInputSupports.js +7 -6
  50. package/lib/Link/ChevronLink.js +9 -8
  51. package/lib/Link/InlinePressable.js +13 -10
  52. package/lib/Link/InlinePressable.native.js +20 -16
  53. package/lib/Link/Link.js +10 -9
  54. package/lib/Link/LinkBase.js +96 -78
  55. package/lib/Link/TextButton.js +9 -8
  56. package/lib/List/List.js +9 -7
  57. package/lib/List/ListItem.js +99 -74
  58. package/lib/Modal/Modal.js +72 -59
  59. package/lib/Notification/Notification.js +46 -33
  60. package/lib/Pagination/PageButton.js +11 -10
  61. package/lib/Pagination/Pagination.js +39 -28
  62. package/lib/Pagination/SideButton.js +21 -18
  63. package/lib/Pagination/usePagination.js +5 -4
  64. package/lib/Progress/Progress.js +23 -19
  65. package/lib/Progress/ProgressBar.js +23 -19
  66. package/lib/Progress/ProgressBarBackground.js +4 -3
  67. package/lib/Radio/Radio.js +79 -68
  68. package/lib/Radio/RadioButton.js +63 -53
  69. package/lib/Radio/RadioGroup.js +28 -26
  70. package/lib/Radio/RadioInput.js +12 -10
  71. package/lib/RadioCard/RadioCard.js +15 -14
  72. package/lib/RadioCard/RadioCardGroup.js +28 -26
  73. package/lib/Search/Search.js +51 -31
  74. package/lib/Select/Group.js +5 -4
  75. package/lib/Select/Group.native.js +4 -3
  76. package/lib/Select/Item.js +10 -7
  77. package/lib/Select/Item.native.js +1 -9
  78. package/lib/Select/Picker.js +16 -15
  79. package/lib/Select/Picker.native.js +49 -38
  80. package/lib/Select/Select.js +134 -113
  81. package/lib/SideNav/Item.js +39 -33
  82. package/lib/SideNav/ItemContent.js +15 -12
  83. package/lib/SideNav/ItemsGroup.js +13 -11
  84. package/lib/SideNav/SideNav.js +19 -16
  85. package/lib/Skeleton/Skeleton.js +60 -44
  86. package/lib/Skeleton/skeleton.constant.js +1 -1
  87. package/lib/Spacer/Spacer.js +6 -5
  88. package/lib/StackView/StackView.js +12 -11
  89. package/lib/StackView/StackWrap.js +2 -2
  90. package/lib/StackView/StackWrapBox.js +12 -11
  91. package/lib/StackView/StackWrapGap.js +11 -10
  92. package/lib/StackView/common.js +14 -11
  93. package/lib/StackView/getStackedContent.js +8 -7
  94. package/lib/StackView/index.js +1 -1
  95. package/lib/StepTracker/Step.js +122 -103
  96. package/lib/StepTracker/StepTracker.js +48 -38
  97. package/lib/Tabs/Tabs.js +29 -24
  98. package/lib/Tabs/TabsItem.js +79 -68
  99. package/lib/Tags/Tags.js +67 -61
  100. package/lib/TextInput/TextArea.js +26 -20
  101. package/lib/TextInput/TextInput.js +20 -15
  102. package/lib/TextInput/TextInputBase.js +74 -62
  103. package/lib/TextInput/index.js +4 -4
  104. package/lib/ThemeProvider/ThemeProvider.js +6 -5
  105. package/lib/ThemeProvider/index.js +5 -5
  106. package/lib/ThemeProvider/useSetTheme.js +6 -3
  107. package/lib/ThemeProvider/useThemeTokens.js +7 -2
  108. package/lib/ThemeProvider/utils/styles.js +48 -41
  109. package/lib/ThemeProvider/utils/theme-tokens.js +26 -12
  110. package/lib/ToggleSwitch/ToggleSwitch.js +89 -73
  111. package/lib/ToggleSwitch/ToggleSwitchGroup.js +36 -34
  112. package/lib/Tooltip/Backdrop.js +4 -3
  113. package/lib/Tooltip/Backdrop.native.js +5 -4
  114. package/lib/Tooltip/Tooltip.js +81 -65
  115. package/lib/Tooltip/getTooltipPosition.js +29 -18
  116. package/lib/TooltipButton/TooltipButton.js +28 -21
  117. package/lib/Typography/Typography.js +37 -33
  118. package/lib/ViewportProvider/ViewportProvider.js +4 -3
  119. package/lib/ViewportProvider/useViewportListener.js +6 -3
  120. package/lib/index.js +54 -54
  121. package/lib/utils/a11y/semantics.js +5 -2
  122. package/lib/utils/a11y/textSize.js +8 -6
  123. package/lib/utils/animation/useVerticalExpandAnimation.js +6 -5
  124. package/lib/utils/children.js +2 -1
  125. package/lib/utils/index.js +10 -10
  126. package/lib/utils/input.js +22 -17
  127. package/lib/utils/pressability.js +36 -22
  128. package/lib/utils/props/clickProps.js +2 -1
  129. package/lib/utils/props/getPropSelector.js +6 -3
  130. package/lib/utils/props/handlerProps.js +25 -19
  131. package/lib/utils/props/hrefAttrsProp.js +14 -11
  132. package/lib/utils/props/index.js +12 -12
  133. package/lib/utils/props/inputSupportsProps.js +15 -12
  134. package/lib/utils/props/linkProps.js +7 -6
  135. package/lib/utils/props/pressProps.js +1 -1
  136. package/lib/utils/props/tokens.js +27 -13
  137. package/lib/utils/ssr.js +6 -2
  138. package/lib/utils/useCopy.js +6 -4
  139. package/lib/utils/useHash.js +2 -1
  140. package/lib/utils/useResponsiveProp.js +1 -1
  141. package/lib/utils/useUniqueId.js +2 -1
  142. package/lib/utils/withLinkRouter.js +6 -5
  143. package/package.json +11 -10
  144. package/src/Pagination/Pagination.jsx +3 -0
  145. package/src/Search/Search.jsx +11 -0
  146. package/src/Select/Item.native.jsx +0 -7
  147. package/lib-module/A11yInfoProvider/index.js +0 -62
  148. package/lib-module/A11yText/index.js +0 -55
  149. package/lib-module/ActivityIndicator/Spinner.js +0 -76
  150. package/lib-module/ActivityIndicator/Spinner.native.js +0 -143
  151. package/lib-module/ActivityIndicator/index.js +0 -40
  152. package/lib-module/ActivityIndicator/shared.js +0 -12
  153. package/lib-module/BaseProvider/index.js +0 -26
  154. package/lib-module/Box/Box.js +0 -243
  155. package/lib-module/Box/index.js +0 -2
  156. package/lib-module/Button/Button.js +0 -25
  157. package/lib-module/Button/ButtonBase.js +0 -254
  158. package/lib-module/Button/ButtonGroup.js +0 -245
  159. package/lib-module/Button/ButtonLink.js +0 -39
  160. package/lib-module/Button/index.js +0 -4
  161. package/lib-module/Button/propTypes.js +0 -36
  162. package/lib-module/Card/Card.js +0 -83
  163. package/lib-module/Card/CardBase.js +0 -62
  164. package/lib-module/Card/PressableCardBase.js +0 -113
  165. package/lib-module/Card/index.js +0 -4
  166. package/lib-module/Checkbox/Checkbox.js +0 -332
  167. package/lib-module/Checkbox/CheckboxGroup.js +0 -231
  168. package/lib-module/Checkbox/CheckboxInput.js +0 -58
  169. package/lib-module/Checkbox/CheckboxInput.native.js +0 -6
  170. package/lib-module/Checkbox/index.js +0 -3
  171. package/lib-module/Divider/Divider.js +0 -123
  172. package/lib-module/Divider/index.js +0 -2
  173. package/lib-module/ExpandCollapse/Accordion.js +0 -15
  174. package/lib-module/ExpandCollapse/Control.js +0 -130
  175. package/lib-module/ExpandCollapse/ExpandCollapse.js +0 -94
  176. package/lib-module/ExpandCollapse/Panel.js +0 -159
  177. package/lib-module/ExpandCollapse/index.js +0 -7
  178. package/lib-module/Feedback/Feedback.js +0 -144
  179. package/lib-module/Feedback/index.js +0 -2
  180. package/lib-module/Fieldset/Fieldset.js +0 -152
  181. package/lib-module/Fieldset/FieldsetContainer.js +0 -29
  182. package/lib-module/Fieldset/FieldsetContainer.native.js +0 -20
  183. package/lib-module/Fieldset/Legend.js +0 -21
  184. package/lib-module/Fieldset/Legend.native.js +0 -28
  185. package/lib-module/Fieldset/cssReset.js +0 -14
  186. package/lib-module/Fieldset/index.js +0 -2
  187. package/lib-module/FlexGrid/Col/Col.js +0 -275
  188. package/lib-module/FlexGrid/Col/index.js +0 -2
  189. package/lib-module/FlexGrid/FlexGrid.js +0 -147
  190. package/lib-module/FlexGrid/Row/Row.js +0 -183
  191. package/lib-module/FlexGrid/Row/index.js +0 -2
  192. package/lib-module/FlexGrid/helpers/index.js +0 -18
  193. package/lib-module/FlexGrid/index.js +0 -2
  194. package/lib-module/FlexGrid/providers/GutterContext.js +0 -3
  195. package/lib-module/HorizontalScroll/HorizontalScroll.js +0 -170
  196. package/lib-module/HorizontalScroll/HorizontalScrollButton.js +0 -77
  197. package/lib-module/HorizontalScroll/ScrollViewEnd.js +0 -47
  198. package/lib-module/HorizontalScroll/ScrollViewEnd.native.js +0 -24
  199. package/lib-module/HorizontalScroll/dictionary.js +0 -11
  200. package/lib-module/HorizontalScroll/index.js +0 -11
  201. package/lib-module/HorizontalScroll/itemPositions.js +0 -106
  202. package/lib-module/Icon/Icon.js +0 -61
  203. package/lib-module/Icon/IconText.js +0 -81
  204. package/lib-module/Icon/index.js +0 -4
  205. package/lib-module/IconButton/IconButton.js +0 -115
  206. package/lib-module/IconButton/index.js +0 -2
  207. package/lib-module/InputLabel/InputLabel.js +0 -141
  208. package/lib-module/InputLabel/LabelContent.js +0 -24
  209. package/lib-module/InputLabel/LabelContent.native.js +0 -16
  210. package/lib-module/InputLabel/index.js +0 -2
  211. package/lib-module/InputSupports/InputSupports.js +0 -95
  212. package/lib-module/InputSupports/index.js +0 -2
  213. package/lib-module/InputSupports/useInputSupports.js +0 -31
  214. package/lib-module/Link/ChevronLink.js +0 -51
  215. package/lib-module/Link/InlinePressable.js +0 -37
  216. package/lib-module/Link/InlinePressable.native.js +0 -85
  217. package/lib-module/Link/Link.js +0 -27
  218. package/lib-module/Link/LinkBase.js +0 -223
  219. package/lib-module/Link/TextButton.js +0 -34
  220. package/lib-module/Link/index.js +0 -5
  221. package/lib-module/List/List.js +0 -55
  222. package/lib-module/List/ListItem.js +0 -223
  223. package/lib-module/List/index.js +0 -5
  224. package/lib-module/Modal/Modal.js +0 -208
  225. package/lib-module/Modal/dictionary.js +0 -9
  226. package/lib-module/Modal/index.js +0 -2
  227. package/lib-module/Notification/Notification.js +0 -196
  228. package/lib-module/Notification/dictionary.js +0 -8
  229. package/lib-module/Notification/index.js +0 -2
  230. package/lib-module/Pagination/PageButton.js +0 -65
  231. package/lib-module/Pagination/Pagination.js +0 -140
  232. package/lib-module/Pagination/SideButton.js +0 -103
  233. package/lib-module/Pagination/dictionary.js +0 -18
  234. package/lib-module/Pagination/index.js +0 -2
  235. package/lib-module/Pagination/usePagination.js +0 -72
  236. package/lib-module/Progress/Progress.js +0 -85
  237. package/lib-module/Progress/ProgressBar.js +0 -134
  238. package/lib-module/Progress/ProgressBarBackground.js +0 -41
  239. package/lib-module/Progress/index.js +0 -4
  240. package/lib-module/Radio/Radio.js +0 -274
  241. package/lib-module/Radio/RadioButton.js +0 -128
  242. package/lib-module/Radio/RadioGroup.js +0 -241
  243. package/lib-module/Radio/RadioInput.js +0 -60
  244. package/lib-module/Radio/RadioInput.native.js +0 -6
  245. package/lib-module/Radio/index.js +0 -3
  246. package/lib-module/RadioCard/RadioCard.js +0 -218
  247. package/lib-module/RadioCard/RadioCardGroup.js +0 -248
  248. package/lib-module/RadioCard/index.js +0 -3
  249. package/lib-module/Search/Search.js +0 -241
  250. package/lib-module/Search/dictionary.js +0 -12
  251. package/lib-module/Search/index.js +0 -2
  252. package/lib-module/Select/Group.js +0 -20
  253. package/lib-module/Select/Group.native.js +0 -14
  254. package/lib-module/Select/Item.js +0 -17
  255. package/lib-module/Select/Item.native.js +0 -9
  256. package/lib-module/Select/Picker.js +0 -67
  257. package/lib-module/Select/Picker.native.js +0 -110
  258. package/lib-module/Select/Select.js +0 -316
  259. package/lib-module/Select/index.js +0 -6
  260. package/lib-module/SideNav/Item.js +0 -139
  261. package/lib-module/SideNav/ItemContent.js +0 -45
  262. package/lib-module/SideNav/ItemsGroup.js +0 -115
  263. package/lib-module/SideNav/SideNav.js +0 -133
  264. package/lib-module/SideNav/index.js +0 -1
  265. package/lib-module/Skeleton/Skeleton.js +0 -163
  266. package/lib-module/Skeleton/index.js +0 -2
  267. package/lib-module/Skeleton/skeleton.constant.js +0 -3
  268. package/lib-module/Skeleton/skeletonWebAnimation.js +0 -18
  269. package/lib-module/Skeleton/useSkeletonNativeAnimation.js +0 -24
  270. package/lib-module/Spacer/Spacer.js +0 -97
  271. package/lib-module/Spacer/index.js +0 -2
  272. package/lib-module/StackView/StackView.js +0 -124
  273. package/lib-module/StackView/StackWrap.js +0 -48
  274. package/lib-module/StackView/StackWrap.native.js +0 -3
  275. package/lib-module/StackView/StackWrapBox.js +0 -114
  276. package/lib-module/StackView/StackWrapGap.js +0 -58
  277. package/lib-module/StackView/common.js +0 -32
  278. package/lib-module/StackView/getStackedContent.js +0 -123
  279. package/lib-module/StackView/index.js +0 -5
  280. package/lib-module/StepTracker/Step.js +0 -229
  281. package/lib-module/StepTracker/StepTracker.js +0 -175
  282. package/lib-module/StepTracker/dictionary.js +0 -10
  283. package/lib-module/StepTracker/index.js +0 -2
  284. package/lib-module/Tabs/Tabs.js +0 -113
  285. package/lib-module/Tabs/TabsItem.js +0 -215
  286. package/lib-module/Tabs/index.js +0 -2
  287. package/lib-module/Tags/Tags.js +0 -245
  288. package/lib-module/Tags/index.js +0 -2
  289. package/lib-module/TextInput/TextArea.js +0 -88
  290. package/lib-module/TextInput/TextInput.js +0 -68
  291. package/lib-module/TextInput/TextInputBase.js +0 -233
  292. package/lib-module/TextInput/index.js +0 -3
  293. package/lib-module/TextInput/propTypes.js +0 -37
  294. package/lib-module/ThemeProvider/ThemeProvider.js +0 -35
  295. package/lib-module/ThemeProvider/index.js +0 -6
  296. package/lib-module/ThemeProvider/useSetTheme.js +0 -22
  297. package/lib-module/ThemeProvider/useTheme.js +0 -14
  298. package/lib-module/ThemeProvider/useThemeTokens.js +0 -105
  299. package/lib-module/ThemeProvider/utils/index.js +0 -2
  300. package/lib-module/ThemeProvider/utils/styles.js +0 -174
  301. package/lib-module/ThemeProvider/utils/theme-tokens.js +0 -151
  302. package/lib-module/ToggleSwitch/ToggleSwitch.js +0 -234
  303. package/lib-module/ToggleSwitch/ToggleSwitchGroup.js +0 -218
  304. package/lib-module/ToggleSwitch/index.js +0 -3
  305. package/lib-module/Tooltip/Backdrop.js +0 -52
  306. package/lib-module/Tooltip/Backdrop.native.js +0 -43
  307. package/lib-module/Tooltip/Tooltip.js +0 -332
  308. package/lib-module/Tooltip/dictionary.js +0 -8
  309. package/lib-module/Tooltip/getTooltipPosition.js +0 -164
  310. package/lib-module/Tooltip/index.js +0 -2
  311. package/lib-module/TooltipButton/TooltipButton.js +0 -71
  312. package/lib-module/TooltipButton/index.js +0 -2
  313. package/lib-module/Typography/Typography.js +0 -120
  314. package/lib-module/Typography/index.js +0 -2
  315. package/lib-module/ViewportProvider/ViewportProvider.js +0 -28
  316. package/lib-module/ViewportProvider/index.js +0 -3
  317. package/lib-module/ViewportProvider/useViewport.js +0 -3
  318. package/lib-module/ViewportProvider/useViewportListener.js +0 -43
  319. package/lib-module/index.js +0 -48
  320. package/lib-module/utils/a11y/index.js +0 -2
  321. package/lib-module/utils/a11y/semantics.js +0 -154
  322. package/lib-module/utils/a11y/textSize.js +0 -34
  323. package/lib-module/utils/animation/index.js +0 -2
  324. package/lib-module/utils/animation/useVerticalExpandAnimation.js +0 -61
  325. package/lib-module/utils/children.js +0 -118
  326. package/lib-module/utils/containUniqueFields.js +0 -26
  327. package/lib-module/utils/index.js +0 -16
  328. package/lib-module/utils/info/index.js +0 -7
  329. package/lib-module/utils/info/platform/index.js +0 -11
  330. package/lib-module/utils/info/platform/platform.android.js +0 -1
  331. package/lib-module/utils/info/platform/platform.ios.js +0 -1
  332. package/lib-module/utils/info/platform/platform.js +0 -1
  333. package/lib-module/utils/info/platform/platform.native.js +0 -4
  334. package/lib-module/utils/info/versions.js +0 -5
  335. package/lib-module/utils/input.js +0 -180
  336. package/lib-module/utils/pressability.js +0 -97
  337. package/lib-module/utils/props/a11yProps.js +0 -140
  338. package/lib-module/utils/props/clickProps.js +0 -25
  339. package/lib-module/utils/props/componentPropType.js +0 -63
  340. package/lib-module/utils/props/copyPropTypes.js +0 -2
  341. package/lib-module/utils/props/getPropSelector.js +0 -6
  342. package/lib-module/utils/props/handlerProps.js +0 -59
  343. package/lib-module/utils/props/hrefAttrsProp.js +0 -30
  344. package/lib-module/utils/props/index.js +0 -19
  345. package/lib-module/utils/props/inputSupportsProps.js +0 -59
  346. package/lib-module/utils/props/linkProps.js +0 -43
  347. package/lib-module/utils/props/paddingProp.js +0 -9
  348. package/lib-module/utils/props/pressProps.js +0 -42
  349. package/lib-module/utils/props/rectProp.js +0 -9
  350. package/lib-module/utils/props/responsiveProps.js +0 -30
  351. package/lib-module/utils/props/selectSystemProps.js +0 -24
  352. package/lib-module/utils/props/spacingProps.js +0 -56
  353. package/lib-module/utils/props/textInputProps.js +0 -194
  354. package/lib-module/utils/props/textProps.js +0 -59
  355. package/lib-module/utils/props/tokens.js +0 -120
  356. package/lib-module/utils/props/variantProp.js +0 -18
  357. package/lib-module/utils/props/viewProps.js +0 -22
  358. package/lib-module/utils/ssr.js +0 -35
  359. package/lib-module/utils/useCopy.js +0 -42
  360. package/lib-module/utils/useHash.js +0 -44
  361. package/lib-module/utils/useHash.native.js +0 -7
  362. package/lib-module/utils/useResponsiveProp.js +0 -47
  363. package/lib-module/utils/useSpacingScale.js +0 -123
  364. package/lib-module/utils/useUniqueId.js +0 -12
  365. package/lib-module/utils/withLinkRouter.js +0 -82
@@ -1,62 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import View from "react-native-web/dist/exports/View";
4
- import { applyShadowToken } from '../ThemeProvider';
5
- import { getTokensPropType } from '../utils';
6
- import { a11yProps, viewProps, selectSystemProps } from '../utils/props';
7
- import { jsx as _jsx } from "react/jsx-runtime";
8
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, viewProps]); // Ensure explicit selection of tokens
9
-
10
- const selectStyles = ({
11
- flex,
12
- backgroundColor,
13
- borderColor,
14
- borderRadius,
15
- borderWidth,
16
- paddingBottom,
17
- paddingLeft,
18
- paddingRight,
19
- paddingTop,
20
- minWidth,
21
- shadow
22
- }) => ({
23
- flex,
24
- backgroundColor,
25
- borderColor,
26
- borderRadius,
27
- borderWidth,
28
- paddingBottom,
29
- paddingLeft,
30
- paddingRight,
31
- paddingTop,
32
- minWidth,
33
- ...applyShadowToken(shadow)
34
- });
35
- /**
36
- * A themeless base component for Card which components can apply theme tokens to. Not
37
- * intended to be used in apps or sites directly: build themed components on top of this.
38
- */
39
-
40
-
41
- const CardBase = /*#__PURE__*/forwardRef(({
42
- children,
43
- tokens,
44
- dataSet,
45
- ...rest
46
- }, ref) => {
47
- const cardStyle = selectStyles(typeof tokens === 'function' ? tokens() : tokens);
48
- const props = selectProps(rest);
49
- return /*#__PURE__*/_jsx(View, {
50
- style: cardStyle,
51
- dataSet: dataSet,
52
- ref: ref,
53
- ...props,
54
- children: children
55
- });
56
- });
57
- CardBase.displayName = 'CardBase';
58
- CardBase.propTypes = { ...selectedSystemPropTypes,
59
- children: PropTypes.node,
60
- tokens: getTokensPropType('Card')
61
- };
62
- export default CardBase;
@@ -1,113 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Pressable from "react-native-web/dist/exports/Pressable";
4
- import Platform from "react-native-web/dist/exports/Platform";
5
- import { useViewport } from '../ViewportProvider';
6
- import { applyOuterBorder, validateThemeTokens } from '../ThemeProvider';
7
- import { a11yProps, clickProps, focusHandlerProps, getTokenNames, getTokensSetPropType, linkProps, resolvePressableState, resolvePressableTokens, selectSystemProps, selectTokens, variantProp, viewProps, withLinkRouter } from '../utils';
8
- import CardBase from './CardBase';
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
11
- const tokenKeys = [...getTokenNames('Card'), // Outer border tokens. TODO: centralise common token sets like these as part of
12
- // https://github.com/telus/universal-design-system/issues/782
13
- 'outerBorderColor', 'outerBorderWidth', 'outerBorderGap'];
14
- export const selectPressableCardTokens = tokens => Object.fromEntries(tokenKeys.map(key => [key, tokens[key]]));
15
- /**
16
- * A pressable themeless base component that handles pressable states and passes tokens
17
- * based on these to an outer border and a base Card component. Not intended to be used in
18
- * apps or sites directly: build themed components on top of this.
19
- */
20
-
21
- const PressableCardBase = /*#__PURE__*/forwardRef(({
22
- children,
23
- tokens,
24
- checked,
25
- validation,
26
- inactive,
27
- href,
28
- hrefAttrs,
29
- accessibilityRole = href ? 'link' : undefined,
30
- ...rawRest
31
- }, ref) => {
32
- const {
33
- onPress,
34
- ...rest
35
- } = clickProps.toPressProps(rawRest);
36
- const viewport = useViewport();
37
- const additionalState = {
38
- checked,
39
- validation,
40
- inactive,
41
- viewport
42
- };
43
-
44
- const getCardState = pressableState => resolvePressableState(pressableState, additionalState);
45
-
46
- const getTokens = pressableState => validateThemeTokens(resolvePressableTokens(tokens, pressableState, additionalState), getTokensSetPropType(tokenKeys, {
47
- requireAll: true
48
- }), 'PressableCard');
49
-
50
- const getCardTokens = pressableState => selectTokens('Card', getTokens(pressableState));
51
-
52
- const getOuterBorderStyle = pressableState => {
53
- const {
54
- flex,
55
- minWidth,
56
- outerBorderColor,
57
- outerBorderGap = 0,
58
- outerBorderWidth = 0,
59
- borderRadius
60
- } = getTokens(pressableState);
61
- return {
62
- flex,
63
- minWidth: minWidth + outerBorderGap + outerBorderWidth,
64
- ...applyOuterBorder({
65
- outerBorderColor,
66
- outerBorderGap,
67
- outerBorderWidth,
68
- borderRadius
69
- }),
70
- ...Platform.select({
71
- web: {
72
- outline: 'none'
73
- }
74
- })
75
- };
76
- };
77
-
78
- const handleChange = linkProps.handleHref({
79
- href,
80
- onPress
81
- });
82
-
83
- const handleKeyDown = event => {
84
- // The expected keyboard shortcut for selecting a focused item is the Space key
85
- if ((event === null || event === void 0 ? void 0 : event.key) === ' ') handleChange(event);
86
- };
87
-
88
- return /*#__PURE__*/_jsx(Pressable, {
89
- ref: ref,
90
- href: href,
91
- onPress: handleChange,
92
- onKeyDown: handleKeyDown,
93
- hrefAttrs: hrefAttrs,
94
- style: getOuterBorderStyle,
95
- ...selectProps({ ...rest,
96
- accessibilityRole
97
- }),
98
- children: pressableState => /*#__PURE__*/_jsx(CardBase, {
99
- tokens: getCardTokens(pressableState),
100
- children: typeof children === 'function' ? children(getCardState(pressableState)) : children
101
- })
102
- });
103
- });
104
- PressableCardBase.displayName = 'PressableCardBase';
105
- PressableCardBase.propTypes = { ...selectedSystemPropTypes,
106
- children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
107
- tokens: getTokensSetPropType(tokenKeys, {
108
- requireAll: true,
109
- allowFunction: true
110
- }),
111
- variant: variantProp.propType
112
- };
113
- export default withLinkRouter(PressableCardBase);
@@ -1,4 +0,0 @@
1
- import Card from './Card';
2
- export default Card;
3
- export { default as PressableCardBase } from './PressableCardBase';
4
- export * from './PressableCardBase';
@@ -1,332 +0,0 @@
1
- import React, { forwardRef } from 'react';
2
- import PropTypes from 'prop-types';
3
- import Platform from "react-native-web/dist/exports/Platform";
4
- import Pressable from "react-native-web/dist/exports/Pressable";
5
- import StyleSheet from "react-native-web/dist/exports/StyleSheet";
6
- import Text from "react-native-web/dist/exports/Text";
7
- import View from "react-native-web/dist/exports/View";
8
- import CheckboxInput from './CheckboxInput';
9
- import CheckboxLabel from '../InputLabel/LabelContent';
10
- import Feedback from '../Feedback';
11
- import StackView from '../StackView';
12
- import { applyShadowToken, applyTextStyles, useThemeTokensCallback } from '../ThemeProvider';
13
- import { a11yProps, focusHandlerProps, getTokensPropType, selectSystemProps, useInputValue, variantProp, viewProps } from '../utils';
14
- import useUniqueId from '../utils/useUniqueId';
15
- import { jsx as _jsx } from "react/jsx-runtime";
16
- import { jsxs as _jsxs } from "react/jsx-runtime";
17
- const [selectProps, selectedSystemPropTypes] = selectSystemProps([a11yProps, focusHandlerProps, viewProps]);
18
-
19
- const selectInputStyles = ({
20
- iconBackgroundColor,
21
- inputBorderColor,
22
- inputBorderRadius,
23
- inputBorderWidth,
24
- inputBackgroundColor,
25
- inputHeight,
26
- inputOutlineColor,
27
- inputOutlineWidth,
28
- inputShadow,
29
- inputWidth
30
- }, isChecked) => ({
31
- borderColor: inputBorderColor,
32
- borderWidth: inputBorderWidth,
33
- borderRadius: inputBorderRadius,
34
- backgroundColor: isChecked ? iconBackgroundColor : inputBackgroundColor,
35
- height: inputHeight,
36
- width: inputWidth,
37
- ...applyShadowToken(inputShadow),
38
- ...Platform.select({
39
- web: {
40
- outlineStyle: 'solid',
41
- outlineColor: inputOutlineColor,
42
- outlineWidth: inputOutlineWidth
43
- }
44
- })
45
- });
46
-
47
- const selectLabelStyles = ({
48
- labelColor,
49
- labelFontName,
50
- labelFontSize,
51
- labelFontWeight,
52
- labelMarginLeft,
53
- labelLineHeight
54
- }) => ({
55
- marginLeft: labelMarginLeft,
56
- ...applyTextStyles({
57
- color: labelColor,
58
- fontName: labelFontName,
59
- fontWeight: labelFontWeight,
60
- fontSize: labelFontSize,
61
- lineHeight: labelLineHeight
62
- })
63
- });
64
-
65
- const selectIconTokens = ({
66
- icon,
67
- iconColor,
68
- iconSize
69
- }) => ({
70
- icon,
71
- color: iconColor,
72
- size: iconSize
73
- });
74
-
75
- const selectFeedbackTokens = ({
76
- feedbackMarginBottom,
77
- feedbackMarginTop,
78
- feedbackPosition
79
- }) => ({
80
- feedbackPosition,
81
- feedbackMarginBottom,
82
- feedbackMarginTop
83
- });
84
- /**
85
- * Basic Checkbox component.
86
- *
87
- * ## Component API
88
- *
89
- * Use `label` prop to provide a label for the checkbox.
90
- * For a disabled `Checkbox` set the `inactive` prop to `true`.
91
- *
92
- * ### Controlled version
93
- *
94
- * If the checkbox is controlled from outside, it needs to receive `checked` and `onChange` props.
95
- *
96
- * ### Uncontrolled version
97
- *
98
- * In case of uncontrolled checkbox you can use `defaultChecked` prop to provide the initial value.
99
- * Whenever the checkbox gets toggled, it calls the `onChange` callback with the new value (boolean).
100
- *
101
- * ### Using within forms
102
- *
103
- * You can pass `name` and `value` props if you need a particular checkbox to be a part of a group of
104
- * checkboxes on a form.
105
- *
106
- * ### Validation and feedback
107
- *
108
- * You can use the `feedback` prop to provide a comment related to the checkbox element. If the comment
109
- * is related to a validation error, the checkbox and the feedback can be styled accordingly by setting
110
- * the `error` prop to `true` (can also be done without feedback).
111
- *
112
- * ## A11y guidelines
113
- *
114
- * Checkbox component accepts all the common accessibility props, but also sets some defaults, including
115
- * accessibility role `'checkbox'` and accessibility state that depends on the other props (`checked`, `inactive`)
116
- * or the internal state in case of uncontrolled checkbox.
117
- *
118
- */
119
-
120
-
121
- const Checkbox = /*#__PURE__*/forwardRef(({
122
- checked,
123
- defaultChecked,
124
- error = false,
125
- feedback,
126
- id,
127
- inactive,
128
- label,
129
- name,
130
- onChange,
131
- tokens,
132
- value,
133
- variant,
134
- ...rest
135
- }, ref) => {
136
- const {
137
- currentValue: isChecked,
138
- setValue: setIsChecked,
139
- isControlled
140
- } = useInputValue({
141
- value: checked,
142
- initialValue: defaultChecked,
143
- onChange
144
- }, 'useCheckboxValue');
145
- const getTokens = useThemeTokensCallback('Checkbox', tokens, {
146
- checked: isChecked,
147
- inactive,
148
- error,
149
- ...variant
150
- });
151
- const defaultTokens = getTokens();
152
- const {
153
- feedbackMarginBottom,
154
- feedbackMarginTop,
155
- feedbackPosition
156
- } = selectFeedbackTokens(defaultTokens);
157
- const styles = StyleSheet.create({
158
- feedbackContainer: {
159
- marginTop: feedbackMarginTop,
160
- marginBottom: feedbackMarginBottom
161
- }
162
- });
163
-
164
- const handleChange = event => {
165
- if (!inactive) {
166
- setIsChecked(!isChecked, event);
167
- }
168
- };
169
-
170
- const handleKeyDown = event => {
171
- // The expected keyboard shortcut for activating a checkbox is the Space key
172
- if ((event === null || event === void 0 ? void 0 : event.key) === ' ') handleChange(event);
173
- };
174
-
175
- const uniqueId = useUniqueId('checkbox');
176
- const inputId = id ?? uniqueId;
177
- return /*#__PURE__*/_jsx(View, {
178
- style: staticStyles.wrapper,
179
- ref: ref,
180
- children: /*#__PURE__*/_jsxs(StackView, {
181
- direction: feedbackPosition === 'top' ? 'column-reverse' : 'column',
182
- space: 0,
183
- children: [/*#__PURE__*/_jsx(Pressable, {
184
- disabled: inactive,
185
- onKeyDown: handleKeyDown,
186
- onPress: handleChange,
187
- accessibilityRole: "checkbox",
188
- accessibilityState: {
189
- checked: isChecked,
190
- disabled: inactive
191
- },
192
- ...selectProps(rest),
193
- children: ({
194
- focused: focus,
195
- hovered: hover,
196
- pressed
197
- }) => {
198
- const {
199
- icon: IconComponent,
200
- ...stateTokens
201
- } = getTokens({
202
- focus,
203
- hover,
204
- pressed
205
- });
206
- const iconTokens = selectIconTokens(stateTokens);
207
- const labelStyles = selectLabelStyles(stateTokens);
208
- const alignWithLabel = label ? [staticStyles.alignWithLabel, {
209
- height: labelStyles.lineHeight
210
- }] : null;
211
- return /*#__PURE__*/_jsxs(View, {
212
- style: staticStyles.container,
213
- children: [/*#__PURE__*/_jsx(View, {
214
- style: alignWithLabel,
215
- children: /*#__PURE__*/_jsxs(View, {
216
- style: [staticStyles.defaultInputStyles, selectInputStyles(stateTokens, isChecked)],
217
- testID: "Checkbox-Input",
218
- children: [/*#__PURE__*/_jsx(CheckboxInput, {
219
- checked: isChecked,
220
- defaultChecked: defaultChecked,
221
- disabled: inactive,
222
- id: inputId,
223
- isControlled: isControlled,
224
- name: name,
225
- value: value
226
- }), isChecked && IconComponent && /*#__PURE__*/_jsx(IconComponent, { ...iconTokens,
227
- testID: "Checkbox-Icon"
228
- })]
229
- })
230
- }), Boolean(label) && /*#__PURE__*/_jsx(Text, {
231
- style: labelStyles,
232
- children: /*#__PURE__*/_jsx(CheckboxLabel, {
233
- forId: inputId,
234
- children: label
235
- })
236
- })]
237
- });
238
- }
239
- }), Boolean(feedback) && /*#__PURE__*/_jsx(View, {
240
- style: styles.feedbackContainer,
241
- children: /*#__PURE__*/_jsx(Feedback, {
242
- title: feedback,
243
- variant: {
244
- icon: error === true
245
- },
246
- validation: error === true ? 'error' : undefined
247
- })
248
- })]
249
- })
250
- });
251
- });
252
- Checkbox.displayName = 'Checkbox';
253
- Checkbox.propTypes = { ...selectedSystemPropTypes,
254
-
255
- /**
256
- * Use `checked` for controlled Checkbox. For uncontrolled Checkbox, use the `defaultChecked` prop.
257
- */
258
- checked: PropTypes.bool,
259
-
260
- /**
261
- * Use `defaultChecked` to provide the initial value for an uncontrolled Checkbox.
262
- */
263
- defaultChecked: PropTypes.bool,
264
-
265
- /**
266
- * A detailed description of related validation error or additional instructions (depending on the `error` prop).
267
- */
268
- feedback: PropTypes.string,
269
-
270
- /**
271
- * Checkbox ID.
272
- */
273
- id: PropTypes.string,
274
-
275
- /**
276
- * Whether the corresponding input is disabled or active.
277
- */
278
- inactive: PropTypes.bool,
279
-
280
- /**
281
- * The label.
282
- */
283
- label: PropTypes.string,
284
-
285
- /**
286
- * Associate this checkbox with a group (set as the name attribute).
287
- */
288
- name: PropTypes.string,
289
-
290
- /**
291
- * Whether the underlying input triggered a validation error or not.
292
- */
293
- error: PropTypes.bool,
294
-
295
- /**
296
- * The value. Must be unique within the group.
297
- */
298
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.bool]),
299
-
300
- /**
301
- * Callback called when a controlled checkbox gets interacted with.
302
- */
303
- onChange: PropTypes.func,
304
-
305
- /**
306
- * Checkbox tokens.
307
- */
308
- tokens: getTokensPropType('Checkbox'),
309
-
310
- /**
311
- * Checkbox variant.
312
- */
313
- variant: variantProp.propType
314
- };
315
- export default Checkbox;
316
- const staticStyles = StyleSheet.create({
317
- wrapper: {
318
- backgroundColor: 'transparent'
319
- },
320
- container: {
321
- flexDirection: 'row',
322
- alignItems: 'center'
323
- },
324
- defaultInputStyles: {
325
- alignItems: 'center',
326
- justifyContent: 'center'
327
- },
328
- alignWithLabel: {
329
- alignSelf: 'flex-start',
330
- justifyContent: 'center'
331
- }
332
- });