@telus-uds/components-base 0.0.2-prerelease.7 → 1.0.1

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 (445) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +71 -0
  4. package/README.md +4 -2
  5. package/__fixtures__/Accessible.js +33 -0
  6. package/__fixtures__/Accessible.native.js +32 -0
  7. package/__fixtures__/test-utils.js +25 -0
  8. package/__fixtures__/testTheme.js +438 -31
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  11. package/__tests__/Checkbox/Checkbox.test.jsx +2 -2
  12. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  13. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  14. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  15. package/__tests__/Icon/Icon.test.jsx +3 -3
  16. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  17. package/__tests__/Link/LinkBase.test.jsx +0 -14
  18. package/__tests__/Modal/Modal.test.jsx +47 -0
  19. package/__tests__/Notification/Notification.test.jsx +20 -0
  20. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  21. package/__tests__/Progress/Progress.test.jsx +79 -0
  22. package/__tests__/Radio/Radio.test.jsx +2 -2
  23. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  24. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  25. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  26. package/__tests__/Search/Search.test.jsx +73 -0
  27. package/__tests__/Select/Select.test.jsx +3 -2
  28. package/__tests__/Skeleton/Skeleton.test.jsx +1 -1
  29. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  30. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  31. package/__tests__/Tags/Tags.test.jsx +5 -6
  32. package/__tests__/TextInput/TextArea.test.jsx +3 -2
  33. package/__tests__/TextInput/TextInputBase.test.jsx +10 -5
  34. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  35. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  36. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  37. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  38. package/__tests__/utils/children.test.jsx +128 -0
  39. package/__tests__/utils/input.test.js +59 -1
  40. package/__tests__/utils/semantics.test.jsx +43 -0
  41. package/__tests__/utils/useCopy.test.js +14 -3
  42. package/babel.config.js +20 -0
  43. package/jest.config.js +6 -3
  44. package/lib/A11yInfoProvider/index.js +54 -26
  45. package/lib/A11yText/index.js +45 -17
  46. package/lib/ActivityIndicator/Spinner.js +81 -0
  47. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  48. package/lib/ActivityIndicator/index.js +28 -12
  49. package/lib/ActivityIndicator/shared.js +27 -12
  50. package/lib/BaseProvider/index.js +34 -11
  51. package/lib/Box/Box.js +153 -35
  52. package/lib/Box/index.js +13 -2
  53. package/lib/Button/Button.js +38 -16
  54. package/lib/Button/ButtonBase.js +93 -79
  55. package/lib/Button/ButtonGroup.js +112 -73
  56. package/lib/Button/ButtonLink.js +45 -19
  57. package/lib/Button/index.js +31 -4
  58. package/lib/Button/propTypes.js +32 -9
  59. package/lib/Card/Card.js +38 -41
  60. package/lib/Card/CardBase.js +86 -0
  61. package/lib/Card/PressableCardBase.js +141 -0
  62. package/lib/Card/index.js +40 -2
  63. package/lib/Checkbox/Checkbox.js +158 -111
  64. package/lib/Checkbox/CheckboxGroup.js +241 -0
  65. package/lib/Checkbox/CheckboxInput.js +74 -0
  66. package/lib/Checkbox/CheckboxInput.native.js +9 -1
  67. package/lib/Checkbox/index.js +21 -2
  68. package/lib/Divider/Divider.js +59 -28
  69. package/lib/Divider/index.js +13 -2
  70. package/lib/ExpandCollapse/Accordion.js +26 -7
  71. package/lib/ExpandCollapse/Control.js +60 -31
  72. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  73. package/lib/ExpandCollapse/Panel.js +83 -44
  74. package/lib/ExpandCollapse/index.js +25 -7
  75. package/lib/Feedback/Feedback.js +77 -43
  76. package/lib/Feedback/index.js +13 -2
  77. package/lib/Fieldset/Fieldset.js +165 -0
  78. package/lib/Fieldset/FieldsetContainer.js +46 -0
  79. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  80. package/lib/Fieldset/Legend.js +38 -0
  81. package/lib/Fieldset/Legend.native.js +48 -0
  82. package/lib/Fieldset/cssReset.js +21 -0
  83. package/lib/Fieldset/index.js +13 -0
  84. package/lib/FlexGrid/Col/Col.js +73 -41
  85. package/lib/FlexGrid/Col/index.js +13 -2
  86. package/lib/FlexGrid/FlexGrid.js +99 -49
  87. package/lib/FlexGrid/Row/Row.js +58 -30
  88. package/lib/FlexGrid/Row/index.js +13 -2
  89. package/lib/FlexGrid/helpers/index.js +9 -1
  90. package/lib/FlexGrid/index.js +13 -2
  91. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  92. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  93. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  94. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  95. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  96. package/lib/HorizontalScroll/dictionary.js +18 -0
  97. package/lib/HorizontalScroll/index.js +35 -0
  98. package/lib/HorizontalScroll/itemPositions.js +128 -0
  99. package/lib/Icon/Icon.js +57 -48
  100. package/lib/Icon/IconText.js +54 -25
  101. package/lib/Icon/index.js +31 -4
  102. package/lib/IconButton/IconButton.js +140 -0
  103. package/lib/IconButton/index.js +13 -0
  104. package/lib/InputLabel/InputLabel.js +102 -40
  105. package/lib/InputLabel/LabelContent.js +41 -0
  106. package/lib/InputLabel/LabelContent.native.js +32 -6
  107. package/lib/InputLabel/index.js +13 -2
  108. package/lib/InputSupports/InputSupports.js +71 -52
  109. package/lib/InputSupports/index.js +13 -2
  110. package/lib/InputSupports/propTypes.js +19 -8
  111. package/lib/InputSupports/useInputSupports.js +41 -0
  112. package/lib/Link/ChevronLink.js +44 -20
  113. package/lib/Link/InlinePressable.js +56 -0
  114. package/lib/Link/InlinePressable.native.js +39 -15
  115. package/lib/Link/Link.js +36 -13
  116. package/lib/Link/LinkBase.js +98 -61
  117. package/lib/Link/TextButton.js +41 -17
  118. package/lib/Link/index.js +39 -5
  119. package/lib/List/List.js +55 -26
  120. package/lib/List/ListItem.js +79 -41
  121. package/lib/List/index.js +13 -2
  122. package/lib/Modal/Modal.js +231 -0
  123. package/lib/Modal/dictionary.js +16 -0
  124. package/lib/Modal/index.js +13 -0
  125. package/lib/Notification/Notification.js +216 -0
  126. package/lib/Notification/dictionary.js +15 -0
  127. package/lib/Notification/index.js +13 -0
  128. package/lib/Pagination/PageButton.js +61 -28
  129. package/lib/Pagination/Pagination.js +78 -43
  130. package/lib/Pagination/SideButton.js +73 -42
  131. package/lib/Pagination/dictionary.js +9 -2
  132. package/lib/Pagination/index.js +13 -2
  133. package/lib/Pagination/usePagination.js +12 -2
  134. package/lib/Progress/Progress.js +104 -0
  135. package/lib/Progress/ProgressBar.js +157 -0
  136. package/lib/Progress/ProgressBarBackground.js +61 -0
  137. package/lib/Progress/index.js +16 -0
  138. package/lib/Radio/Radio.js +116 -114
  139. package/lib/Radio/RadioButton.js +152 -0
  140. package/lib/Radio/RadioGroup.js +244 -0
  141. package/lib/Radio/RadioInput.js +76 -0
  142. package/lib/Radio/RadioInput.native.js +9 -1
  143. package/lib/Radio/index.js +21 -2
  144. package/lib/RadioCard/RadioCard.js +244 -0
  145. package/lib/RadioCard/RadioCardGroup.js +252 -0
  146. package/lib/RadioCard/index.js +21 -0
  147. package/lib/Search/Search.js +254 -0
  148. package/lib/Search/dictionary.js +19 -0
  149. package/lib/Search/index.js +13 -0
  150. package/lib/Select/Group.js +33 -0
  151. package/lib/Select/Group.native.js +16 -5
  152. package/lib/Select/Item.js +29 -0
  153. package/lib/Select/Item.native.js +14 -4
  154. package/lib/Select/Picker.js +84 -0
  155. package/lib/Select/Picker.native.js +73 -30
  156. package/lib/Select/Select.js +155 -85
  157. package/lib/Select/index.js +19 -6
  158. package/lib/SideNav/Item.js +63 -37
  159. package/lib/SideNav/ItemContent.js +41 -15
  160. package/lib/SideNav/ItemsGroup.js +55 -31
  161. package/lib/SideNav/SideNav.js +100 -73
  162. package/lib/SideNav/index.js +15 -1
  163. package/lib/Skeleton/Skeleton.js +64 -46
  164. package/lib/Skeleton/index.js +13 -2
  165. package/lib/Skeleton/skeleton.constant.js +12 -0
  166. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  167. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  168. package/lib/Spacer/Spacer.js +49 -18
  169. package/lib/Spacer/index.js +13 -2
  170. package/lib/StackView/StackView.js +72 -31
  171. package/lib/StackView/StackWrap.js +43 -13
  172. package/lib/StackView/StackWrap.native.js +13 -2
  173. package/lib/StackView/StackWrapBox.js +77 -29
  174. package/lib/StackView/StackWrapGap.js +56 -26
  175. package/lib/StackView/common.js +23 -6
  176. package/lib/StackView/getStackedContent.js +47 -17
  177. package/lib/StackView/index.js +29 -5
  178. package/lib/StepTracker/Step.js +245 -0
  179. package/lib/StepTracker/StepTracker.js +202 -0
  180. package/lib/StepTracker/dictionary.js +17 -0
  181. package/lib/StepTracker/index.js +13 -0
  182. package/lib/Tabs/Tabs.js +124 -0
  183. package/lib/Tabs/TabsItem.js +238 -0
  184. package/lib/Tabs/index.js +13 -0
  185. package/lib/Tags/Tags.js +148 -99
  186. package/lib/Tags/index.js +13 -2
  187. package/lib/TextInput/TextArea.js +57 -28
  188. package/lib/TextInput/TextInput.js +50 -23
  189. package/lib/TextInput/TextInputBase.js +90 -63
  190. package/lib/TextInput/index.js +23 -3
  191. package/lib/TextInput/propTypes.js +18 -7
  192. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  193. package/lib/ThemeProvider/index.js +61 -6
  194. package/lib/ThemeProvider/useSetTheme.js +19 -5
  195. package/lib/ThemeProvider/useTheme.js +13 -4
  196. package/lib/ThemeProvider/useThemeTokens.js +32 -16
  197. package/lib/ThemeProvider/utils/index.js +31 -2
  198. package/lib/ThemeProvider/utils/styles.js +50 -14
  199. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  200. package/lib/ToggleSwitch/ToggleSwitch.js +85 -56
  201. package/lib/ToggleSwitch/index.js +13 -2
  202. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  203. package/lib/Tooltip/Backdrop.native.js +39 -15
  204. package/lib/Tooltip/Tooltip.js +117 -74
  205. package/lib/Tooltip/dictionary.js +9 -2
  206. package/lib/Tooltip/getTooltipPosition.js +9 -1
  207. package/lib/Tooltip/index.js +13 -2
  208. package/lib/TooltipButton/TooltipButton.js +57 -38
  209. package/lib/TooltipButton/index.js +13 -2
  210. package/lib/Typography/Typography.js +87 -41
  211. package/lib/Typography/index.js +13 -2
  212. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  213. package/lib/ViewportProvider/index.js +28 -3
  214. package/lib/ViewportProvider/useViewport.js +15 -3
  215. package/lib/ViewportProvider/useViewportListener.js +24 -10
  216. package/lib/index.js +539 -33
  217. package/lib/utils/a11y/index.js +31 -1
  218. package/lib/utils/a11y/semantics.js +173 -0
  219. package/lib/utils/a11y/textSize.js +23 -7
  220. package/lib/utils/animation/index.js +15 -2
  221. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  222. package/lib/utils/children.js +134 -0
  223. package/lib/utils/index.js +163 -10
  224. package/lib/utils/info/index.js +18 -6
  225. package/lib/utils/info/platform/index.js +19 -7
  226. package/lib/utils/info/platform/platform.android.js +8 -1
  227. package/lib/utils/info/platform/platform.ios.js +8 -1
  228. package/lib/utils/info/platform/platform.js +8 -0
  229. package/lib/utils/info/platform/platform.native.js +8 -1
  230. package/lib/utils/info/versions.js +15 -4
  231. package/lib/utils/input.js +53 -25
  232. package/lib/utils/pressability.js +38 -10
  233. package/lib/utils/propTypes.js +287 -141
  234. package/lib/utils/useCopy.js +40 -5
  235. package/lib/utils/useHash.js +52 -0
  236. package/lib/utils/useHash.native.js +15 -0
  237. package/lib/utils/useResponsiveProp.js +21 -9
  238. package/lib/utils/useSpacingScale.js +19 -9
  239. package/lib/utils/useUniqueId.js +12 -3
  240. package/package.json +14 -9
  241. package/release-context.json +4 -4
  242. package/src/A11yText/index.jsx +6 -4
  243. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  244. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  245. package/src/Box/Box.jsx +132 -39
  246. package/src/Button/Button.jsx +10 -6
  247. package/src/Button/ButtonBase.jsx +99 -99
  248. package/src/Button/ButtonGroup.jsx +81 -69
  249. package/src/Button/ButtonLink.jsx +21 -15
  250. package/src/Button/propTypes.js +12 -2
  251. package/src/Card/Card.jsx +5 -31
  252. package/src/Card/CardBase.jsx +59 -0
  253. package/src/Card/PressableCardBase.jsx +119 -0
  254. package/src/Card/index.js +3 -0
  255. package/src/Checkbox/Checkbox.jsx +121 -112
  256. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  257. package/src/Checkbox/{CheckboxInput.web.jsx → CheckboxInput.jsx} +0 -0
  258. package/src/Checkbox/index.js +2 -0
  259. package/src/Divider/Divider.jsx +7 -4
  260. package/src/ExpandCollapse/Accordion.jsx +3 -2
  261. package/src/ExpandCollapse/Control.jsx +40 -43
  262. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  263. package/src/ExpandCollapse/Panel.jsx +69 -63
  264. package/src/Feedback/Feedback.jsx +36 -33
  265. package/src/Fieldset/Fieldset.jsx +136 -0
  266. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  267. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  268. package/src/Fieldset/Legend.jsx +21 -0
  269. package/src/Fieldset/Legend.native.jsx +27 -0
  270. package/src/Fieldset/cssReset.js +14 -0
  271. package/src/Fieldset/index.js +3 -0
  272. package/src/FlexGrid/Col/Col.jsx +139 -132
  273. package/src/FlexGrid/FlexGrid.jsx +79 -51
  274. package/src/FlexGrid/Row/Row.jsx +55 -48
  275. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  276. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  277. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  278. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  279. package/src/HorizontalScroll/dictionary.js +11 -0
  280. package/src/HorizontalScroll/index.js +17 -0
  281. package/src/HorizontalScroll/itemPositions.js +101 -0
  282. package/src/Icon/Icon.jsx +43 -50
  283. package/src/Icon/IconText.jsx +23 -18
  284. package/src/Icon/index.js +2 -2
  285. package/src/IconButton/IconButton.jsx +114 -0
  286. package/src/IconButton/index.js +3 -0
  287. package/src/InputLabel/InputLabel.jsx +57 -35
  288. package/src/InputLabel/LabelContent.jsx +21 -0
  289. package/src/InputLabel/LabelContent.native.jsx +11 -2
  290. package/src/InputSupports/InputSupports.jsx +29 -45
  291. package/src/InputSupports/useInputSupports.js +30 -0
  292. package/src/Link/ChevronLink.jsx +26 -16
  293. package/src/Link/{InlinePressable.web.jsx → InlinePressable.jsx} +5 -3
  294. package/src/Link/InlinePressable.native.jsx +5 -3
  295. package/src/Link/Link.jsx +22 -16
  296. package/src/Link/LinkBase.jsx +76 -65
  297. package/src/Link/TextButton.jsx +30 -23
  298. package/src/List/List.jsx +5 -4
  299. package/src/List/ListItem.jsx +77 -82
  300. package/src/Modal/Modal.jsx +190 -0
  301. package/src/Modal/dictionary.js +9 -0
  302. package/src/Modal/index.js +3 -0
  303. package/src/Notification/Notification.jsx +164 -0
  304. package/src/Notification/dictionary.js +8 -0
  305. package/src/Notification/index.js +3 -0
  306. package/src/Pagination/PageButton.jsx +42 -35
  307. package/src/Pagination/Pagination.jsx +88 -92
  308. package/src/Pagination/SideButton.jsx +44 -41
  309. package/src/Progress/Progress.jsx +78 -0
  310. package/src/Progress/ProgressBar.jsx +123 -0
  311. package/src/Progress/ProgressBarBackground.jsx +36 -0
  312. package/src/Progress/index.js +6 -0
  313. package/src/Radio/Radio.jsx +82 -112
  314. package/src/Radio/RadioButton.jsx +142 -0
  315. package/src/Radio/RadioGroup.jsx +209 -0
  316. package/src/Radio/{RadioInput.web.jsx → RadioInput.jsx} +0 -0
  317. package/src/Radio/index.js +2 -0
  318. package/src/RadioCard/RadioCard.jsx +198 -0
  319. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  320. package/src/RadioCard/index.js +5 -0
  321. package/src/Search/Search.jsx +225 -0
  322. package/src/Search/dictionary.js +12 -0
  323. package/src/Search/index.js +3 -0
  324. package/src/Select/{Group.web.jsx → Group.jsx} +0 -0
  325. package/src/Select/{Item.web.jsx → Item.jsx} +0 -0
  326. package/src/Select/Picker.jsx +74 -0
  327. package/src/Select/Picker.native.jsx +56 -49
  328. package/src/Select/Select.jsx +125 -92
  329. package/src/SideNav/Item.jsx +54 -47
  330. package/src/SideNav/ItemsGroup.jsx +50 -43
  331. package/src/SideNav/SideNav.jsx +68 -60
  332. package/src/Skeleton/Skeleton.jsx +25 -32
  333. package/src/Skeleton/skeleton.constant.js +3 -0
  334. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  335. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  336. package/src/Spacer/Spacer.jsx +11 -4
  337. package/src/StackView/StackView.jsx +54 -23
  338. package/src/StackView/StackWrap.jsx +16 -7
  339. package/src/StackView/StackWrapBox.jsx +63 -28
  340. package/src/StackView/StackWrapGap.jsx +46 -24
  341. package/src/StackView/common.jsx +3 -2
  342. package/src/StackView/getStackedContent.jsx +8 -2
  343. package/src/StepTracker/Step.jsx +202 -0
  344. package/src/StepTracker/StepTracker.jsx +174 -0
  345. package/src/StepTracker/dictionary.js +10 -0
  346. package/src/StepTracker/index.js +3 -0
  347. package/src/Tabs/Tabs.jsx +97 -0
  348. package/src/Tabs/TabsItem.jsx +212 -0
  349. package/src/Tabs/index.js +3 -0
  350. package/src/Tags/Tags.jsx +115 -102
  351. package/src/TextInput/TextArea.jsx +5 -4
  352. package/src/TextInput/TextInput.jsx +5 -4
  353. package/src/TextInput/TextInputBase.jsx +95 -98
  354. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  355. package/src/ThemeProvider/useSetTheme.js +4 -0
  356. package/src/ThemeProvider/useThemeTokens.js +2 -2
  357. package/src/ThemeProvider/utils/styles.js +18 -5
  358. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  359. package/src/ToggleSwitch/ToggleSwitch.jsx +50 -52
  360. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  361. package/src/Tooltip/Tooltip.jsx +135 -131
  362. package/src/TooltipButton/TooltipButton.jsx +23 -27
  363. package/src/Typography/Typography.jsx +71 -47
  364. package/src/index.js +23 -2
  365. package/src/utils/a11y/index.js +1 -0
  366. package/src/utils/a11y/semantics.js +162 -0
  367. package/src/utils/children.jsx +119 -0
  368. package/src/utils/index.js +3 -0
  369. package/src/utils/info/platform/platform.js +1 -0
  370. package/src/utils/info/versions.js +2 -2
  371. package/src/utils/input.js +36 -25
  372. package/src/utils/pressability.js +4 -0
  373. package/src/utils/propTypes.js +199 -72
  374. package/src/utils/useCopy.js +30 -4
  375. package/src/utils/useHash.js +39 -0
  376. package/src/utils/useHash.native.js +6 -0
  377. package/stories/A11yText/A11yText.stories.jsx +6 -10
  378. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  379. package/stories/Box/Box.stories.jsx +1 -1
  380. package/stories/Button/Button.stories.jsx +2 -2
  381. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  382. package/stories/Button/ButtonLink.stories.jsx +1 -1
  383. package/stories/Card/Card.stories.jsx +1 -1
  384. package/stories/Checkbox/Checkbox.stories.jsx +24 -1
  385. package/stories/Divider/Divider.stories.jsx +1 -1
  386. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  387. package/stories/Feedback/Feedback.stories.jsx +1 -1
  388. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  389. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  390. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  391. package/stories/Icon/Icon.stories.jsx +27 -7
  392. package/stories/IconButton/IconButton.stories.jsx +50 -0
  393. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  394. package/stories/Link/ChevronLink.stories.jsx +1 -1
  395. package/stories/Link/Link.stories.jsx +17 -21
  396. package/stories/Link/TextButton.stories.jsx +1 -1
  397. package/stories/List/List.stories.jsx +1 -1
  398. package/stories/Modal/Modal.stories.jsx +29 -0
  399. package/stories/Notification/Notification.stories.jsx +82 -0
  400. package/stories/Pagination/Pagination.stories.jsx +1 -1
  401. package/stories/Progress/Progress.stories.jsx +93 -0
  402. package/stories/Radio/Radio.stories.jsx +23 -36
  403. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  404. package/stories/Search/Search.stories.jsx +16 -0
  405. package/stories/Select/Select.stories.jsx +1 -1
  406. package/stories/SideNav/SideNav.stories.jsx +1 -1
  407. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  408. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  409. package/stories/Skeleton/Skeleton.stories.jsx +2 -2
  410. package/stories/Spacer/Spacer.stories.jsx +1 -1
  411. package/stories/StackView/StackView.stories.jsx +1 -1
  412. package/stories/StackView/StackWrap.stories.jsx +1 -1
  413. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  414. package/stories/Tabs/Tabs.stories.jsx +97 -0
  415. package/stories/Tags/Tags.stories.jsx +1 -1
  416. package/stories/TextInput/TextArea.stories.jsx +1 -1
  417. package/stories/TextInput/TextInput.stories.jsx +1 -1
  418. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  419. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  420. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  421. package/stories/Typography/Typography.stories.jsx +1 -1
  422. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  423. package/stories/supports.jsx +37 -3
  424. package/__fixtures__/accessible.icon.svg +0 -6
  425. package/babel.config.json +0 -8
  426. package/docs/Contributing.stories.mdx +0 -9
  427. package/docs/Fonts.stories.mdx +0 -104
  428. package/docs/Icons.stories.mdx +0 -144
  429. package/docs/Introduction.stories.mdx +0 -9
  430. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  431. package/lib/Checkbox/CheckboxInput.web.js +0 -57
  432. package/lib/InputLabel/LabelContent.web.js +0 -17
  433. package/lib/Link/InlinePressable.web.js +0 -32
  434. package/lib/Radio/RadioInput.web.js +0 -59
  435. package/lib/Select/Group.web.js +0 -18
  436. package/lib/Select/Item.web.js +0 -15
  437. package/lib/Select/Picker.web.js +0 -63
  438. package/lib/config/svgr-icons-web.js +0 -9
  439. package/lib/config/svgr-icons.js +0 -52
  440. package/lib/utils/info/platform/platform.web.js +0 -1
  441. package/src/InputLabel/LabelContent.web.jsx +0 -13
  442. package/src/Select/Picker.web.jsx +0 -67
  443. package/src/config/svgr-icons-web.js +0 -11
  444. package/src/config/svgr-icons.js +0 -46
  445. package/src/utils/info/platform/platform.web.js +0 -1
@@ -1,10 +1,37 @@
1
- import React, { useState } from 'react';
2
- import { Animated, Platform, StyleSheet, View } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import ExpandCollapseControl from './Control';
5
- import { useThemeTokens } from '../ThemeProvider';
6
- import { getTokensPropType, variantProp, useVerticalExpandAnimation, a11yProps } from '../utils'; // just void functions for now, since there are no style tokens for a panel or control at this point
1
+ "use strict";
7
2
 
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _Animated = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Animated"));
11
+
12
+ var _Platform = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Platform"));
13
+
14
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
15
+
16
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
17
+
18
+ var _propTypes = _interopRequireDefault(require("prop-types"));
19
+
20
+ var _Control = _interopRequireDefault(require("./Control"));
21
+
22
+ var _ThemeProvider = require("../ThemeProvider");
23
+
24
+ var _utils = require("../utils");
25
+
26
+ var _jsxRuntime = require("react/jsx-runtime");
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ // just void functions for now, since there are no style tokens for a panel or control at this point
8
35
  const selectGroupStyles = () => {};
9
36
 
10
37
  const selectContainerStyles = ({
@@ -30,7 +57,7 @@ const selectContainerStyles = ({
30
57
  */
31
58
 
32
59
 
33
- const ExpandCollapsePanel = ({
60
+ const ExpandCollapsePanel = /*#__PURE__*/(0, _react.forwardRef)(({
34
61
  openIds = [],
35
62
  panelId,
36
63
  onToggle,
@@ -41,20 +68,22 @@ const ExpandCollapsePanel = ({
41
68
  tokens,
42
69
  variant,
43
70
  ...rest
44
- }) => {
45
- const [containerHeight, setContainerHeight] = useState(null);
71
+ }, ref) => {
72
+ const [containerHeight, setContainerHeight] = (0, _react.useState)(null);
46
73
  const isExpanded = openIds.includes(panelId);
47
- const a11y = a11yProps.select(rest);
74
+
75
+ const a11y = _utils.a11yProps.select(rest);
76
+
48
77
  a11y.accessibilityState = { ...(a11y.accessibilityState || {}),
49
78
  expanded: isExpanded
50
79
  };
51
- const themeTokens = useThemeTokens('ExpandCollapsePanel', tokens, variant, {
80
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('ExpandCollapsePanel', tokens, variant, {
52
81
  expanded: isExpanded
53
82
  });
54
83
 
55
- const handleControlPress = () => {
56
- onToggle(panelId);
57
- if (onPress) onPress(panelId);
84
+ const handleControlPress = event => {
85
+ onToggle(panelId, event);
86
+ if (onPress) onPress(panelId, event);
58
87
  };
59
88
 
60
89
  const onContainerLayout = event => {
@@ -68,78 +97,88 @@ const ExpandCollapsePanel = ({
68
97
  }
69
98
  };
70
99
 
71
- const animatedStyles = useVerticalExpandAnimation({
100
+ const animatedStyles = (0, _utils.useVerticalExpandAnimation)({
72
101
  containerHeight,
73
102
  isExpanded,
74
103
  tokens: themeTokens
75
104
  }); // on web we can hide the contents until we have the container measured and avoid occasional jitter
76
105
  // this won't work on native platforms
77
106
 
78
- const overflowContainerStyles = containerHeight === null && Platform.OS === 'web' ? {
107
+ const overflowContainerStyles = containerHeight === null && _Platform.default.OS === 'web' ? {
79
108
  height: 0,
80
109
  visibility: 'hidden'
81
110
  } : undefined;
82
- const focusabilityProps = isExpanded ? {} : a11yProps.nonFocusableProps;
83
- return /*#__PURE__*/React.createElement(View, {
84
- style: selectGroupStyles(themeTokens)
85
- }, /*#__PURE__*/React.createElement(ExpandCollapseControl, Object.assign({}, a11y, {
86
- isExpanded: isExpanded,
87
- tokens: controlTokens,
88
- onPress: handleControlPress
89
- }), control), /*#__PURE__*/React.createElement(View, Object.assign({
90
- style: overflowContainerStyles
91
- }, focusabilityProps), /*#__PURE__*/React.createElement(Animated.View, {
92
- onLayout: onContainerLayout,
93
- style: [staticStyles.itemsContainer, animatedStyles]
94
- }, /*#__PURE__*/React.createElement(View, {
95
- style: selectContainerStyles(themeTokens)
96
- }, children))));
97
- };
98
-
111
+ const focusabilityProps = isExpanded ? {} : _utils.a11yProps.nonFocusableProps;
112
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
113
+ ref: ref,
114
+ style: selectGroupStyles(themeTokens),
115
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Control.default, { ...a11y,
116
+ isExpanded: isExpanded,
117
+ tokens: controlTokens,
118
+ onPress: handleControlPress,
119
+ children: control
120
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
121
+ style: overflowContainerStyles,
122
+ ...focusabilityProps,
123
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
124
+ onLayout: onContainerLayout,
125
+ style: [staticStyles.itemsContainer, animatedStyles],
126
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
127
+ style: selectContainerStyles(themeTokens),
128
+ children: children
129
+ })
130
+ })
131
+ })]
132
+ });
133
+ });
134
+ ExpandCollapsePanel.displayName = 'ExpandCollapsePanel';
99
135
  ExpandCollapsePanel.propTypes = {
100
- variant: variantProp.propType,
101
- tokens: getTokensPropType('ExpandCollapsePanel'),
136
+ variant: _utils.variantProp.propType,
137
+ tokens: (0, _utils.getTokensPropType)('ExpandCollapsePanel'),
102
138
 
103
139
  /**
104
140
  * Array of the ids of currently open groups
105
141
  */
106
- openIds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])),
142
+ openIds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])),
107
143
 
108
144
  /**
109
145
  * Unique name by which the ExpandCollapse controls this element.
110
146
  */
111
- panelId: PropTypes.string.isRequired,
147
+ panelId: _propTypes.default.string.isRequired,
112
148
 
113
149
  /**
114
150
  * Function to call on pressing the panel's control, which should open or close the panel.
115
151
  * If Panel is a direct child of `ExpandCollapse`, this prop will be provided by the ExpandCollapse parent.
116
152
  */
117
- onToggle: PropTypes.func.isRequired,
153
+ onToggle: _propTypes.default.func.isRequired,
118
154
 
119
155
  /**
120
156
  * Optional function to call on pressing the panel's control, in addition to opening or closing the panel.
121
157
  */
122
- onPress: PropTypes.func,
158
+ onPress: _propTypes.default.func,
123
159
 
124
160
  /**
125
161
  * ExpandCollapsePanel's children are the content that is hidden or revealed on open or close, and may be any
126
162
  * single React element or a render function which takes this group's isExpanded state, onToggle function and panelId
127
163
  */
128
- children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
164
+ children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
129
165
 
130
166
  /**
131
167
  * The content inside the always-visible control element that opens and closes the ExpandCollapse when pressed.
132
168
  */
133
- control: ExpandCollapseControl.propTypes.children.isRequired,
169
+ control: _Control.default.propTypes.children.isRequired,
134
170
 
135
171
  /**
136
172
  * Optional theme token overrides that may be passed to the ExpandCollapseControl element.
137
173
  */
138
- controlTokens: getTokensPropType('ExpandCollapseControl')
174
+ controlTokens: (0, _utils.getTokensPropType)('ExpandCollapseControl')
139
175
  };
140
- const staticStyles = StyleSheet.create({
176
+
177
+ const staticStyles = _StyleSheet.default.create({
141
178
  itemsContainer: {
142
179
  overflow: 'hidden'
143
180
  }
144
181
  });
145
- export default ExpandCollapsePanel;
182
+
183
+ var _default = ExpandCollapsePanel;
184
+ exports.default = _default;
@@ -1,7 +1,25 @@
1
- import ExpandCollapse from './ExpandCollapse';
2
- import Accordion from './Accordion';
3
- import Panel from './Panel';
4
- ExpandCollapse.Panel = Panel;
5
- Accordion.Panel = Panel;
6
- export default ExpandCollapse;
7
- export { Accordion };
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Accordion", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Accordion.default;
10
+ }
11
+ });
12
+ exports.default = void 0;
13
+
14
+ var _ExpandCollapse = _interopRequireDefault(require("./ExpandCollapse"));
15
+
16
+ var _Accordion = _interopRequireDefault(require("./Accordion"));
17
+
18
+ var _Panel = _interopRequireDefault(require("./Panel"));
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ _ExpandCollapse.default.Panel = _Panel.default;
23
+ _Accordion.default.Panel = _Panel.default;
24
+ var _default = _ExpandCollapse.default;
25
+ exports.default = _default;
@@ -1,23 +1,47 @@
1
- import React from 'react';
2
- import { StyleSheet, Text, View } from 'react-native';
3
- import PropTypes from 'prop-types';
4
- import { applyTextStyles, useThemeTokens } from '../ThemeProvider';
5
- import { a11yProps, getTokensPropType, selectTokens, variantProp } from '../utils';
6
- import StackView from '../StackView';
1
+ "use strict";
7
2
 
8
- const selectStyles = tokens => selectTokens('Feedback', tokens);
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _StyleSheet = _interopRequireDefault(require("react-native-web/dist/cjs/exports/StyleSheet"));
11
+
12
+ var _Text = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Text"));
13
+
14
+ var _View = _interopRequireDefault(require("react-native-web/dist/cjs/exports/View"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _utils = require("../utils");
21
+
22
+ var _StackView = _interopRequireDefault(require("../StackView"));
23
+
24
+ var _jsxRuntime = require("react/jsx-runtime");
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ const selectStyles = tokens => (0, _utils.selectTokens)('Feedback', tokens);
9
33
 
10
34
  const selectTitleTextStyles = ({
11
35
  titleFontSize,
12
36
  ...tokens
13
- }) => applyTextStyles(selectTokens('Typography', { ...tokens,
37
+ }) => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', { ...tokens,
14
38
  fontSize: titleFontSize
15
39
  }));
16
40
 
17
41
  const selectContentTextStyles = ({
18
42
  contentFontSize,
19
43
  ...tokens
20
- }) => applyTextStyles(selectTokens('Typography', { ...tokens,
44
+ }) => (0, _ThemeProvider.applyTextStyles)((0, _utils.selectTokens)('Typography', { ...tokens,
21
45
  fontSize: contentFontSize
22
46
  }));
23
47
 
@@ -54,7 +78,7 @@ const selectIconContainerStyles = ({
54
78
  */
55
79
 
56
80
 
57
- const Feedback = ({
81
+ const Feedback = /*#__PURE__*/(0, _react.forwardRef)(({
58
82
  title,
59
83
  children,
60
84
  id,
@@ -62,8 +86,8 @@ const Feedback = ({
62
86
  tokens,
63
87
  variant,
64
88
  ...rest
65
- }) => {
66
- const themeTokens = useThemeTokens('Feedback', tokens, { ...variant,
89
+ }, ref) => {
90
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Feedback', tokens, { ...variant,
67
91
  validation
68
92
  });
69
93
  const {
@@ -74,56 +98,66 @@ const Feedback = ({
74
98
  } = themeTokens;
75
99
  const titleTextStyles = selectTitleTextStyles(themeTokens);
76
100
  const contentTextStyles = selectContentTextStyles(themeTokens);
77
- const content = typeof children === 'string' ? /*#__PURE__*/React.createElement(Text, {
78
- style: contentTextStyles
79
- }, children) : children;
80
- const accessibilityProps = a11yProps.select({
101
+ const content = typeof children === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
102
+ style: contentTextStyles,
103
+ children: children
104
+ }) : children;
105
+
106
+ const accessibilityProps = _utils.a11yProps.select({
81
107
  accessibilityRole: validation === 'error' ? 'alert' : undefined,
82
108
  ...rest
83
109
  });
84
- return /*#__PURE__*/React.createElement(View, Object.assign({
85
- style: selectStyles(themeTokens)
86
- }, accessibilityProps, {
87
- nativeID: id
88
- }), /*#__PURE__*/React.createElement(StackView, {
89
- space: space
90
- }, title !== undefined && /*#__PURE__*/React.createElement(View, {
91
- style: staticStyles.title
92
- }, IconComponent && /*#__PURE__*/React.createElement(View, {
93
- style: selectIconContainerStyles(themeTokens)
94
- }, /*#__PURE__*/React.createElement(IconComponent, {
95
- tokens: selectIconTokens(themeTokens)
96
- })), /*#__PURE__*/React.createElement(Text, {
97
- style: titleTextStyles
98
- }, title)), content && typeof content === 'function' ? content({
99
- textStyles: contentTextStyles,
100
- variant
101
- }) : content));
102
- };
103
110
 
111
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
112
+ ref: ref,
113
+ style: selectStyles(themeTokens),
114
+ ...accessibilityProps,
115
+ nativeID: id,
116
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_StackView.default, {
117
+ space: space,
118
+ children: [title !== undefined && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_View.default, {
119
+ style: staticStyles.title,
120
+ children: [IconComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_View.default, {
121
+ style: selectIconContainerStyles(themeTokens),
122
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, { ...selectIconTokens(themeTokens)
123
+ })
124
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.default, {
125
+ style: titleTextStyles,
126
+ children: title
127
+ })]
128
+ }), content && typeof content === 'function' ? content({
129
+ textStyles: contentTextStyles,
130
+ variant
131
+ }) : content]
132
+ })
133
+ });
134
+ });
135
+ Feedback.displayName = 'Feedback';
104
136
  Feedback.propTypes = {
105
137
  /**
106
138
  * Emphasized summary of the feedback. If an icon is set, it is rendered next to the title.
107
139
  */
108
- title: PropTypes.string,
140
+ title: _propTypes.default.string,
109
141
 
110
142
  /**
111
143
  * Feedback content rendered below the title. A render function `({textStyles, variant}) => {}` is supported.
112
144
  */
113
- children: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
145
+ children: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.func]),
114
146
 
115
147
  /**
116
148
  * Use to visually mark the Feedback as valid or invalid.
117
149
  */
118
- validation: PropTypes.oneOf(['error', 'success']),
150
+ validation: _propTypes.default.oneOf(['error', 'success']),
119
151
 
120
152
  /** @ignore */
121
- id: PropTypes.string,
122
- tokens: getTokensPropType('Feedback'),
123
- variant: variantProp.propType
153
+ id: _propTypes.default.string,
154
+ tokens: (0, _utils.getTokensPropType)('Feedback'),
155
+ variant: _utils.variantProp.propType
124
156
  };
125
- export default Feedback;
126
- const staticStyles = StyleSheet.create({
157
+ var _default = Feedback;
158
+ exports.default = _default;
159
+
160
+ const staticStyles = _StyleSheet.default.create({
127
161
  title: {
128
162
  display: 'flex',
129
163
  flexDirection: 'row',
@@ -1,2 +1,13 @@
1
- import Feedback from './Feedback';
2
- export default Feedback;
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Feedback = _interopRequireDefault(require("./Feedback"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Feedback.default;
13
+ exports.default = _default;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _Feedback = _interopRequireDefault(require("../Feedback"));
13
+
14
+ var _utils = require("../utils");
15
+
16
+ var _FieldsetContainer = _interopRequireDefault(require("./FieldsetContainer"));
17
+
18
+ var _StackView = require("../StackView");
19
+
20
+ var _InputLabel = _interopRequireDefault(require("../InputLabel"));
21
+
22
+ var _useInputSupports = _interopRequireDefault(require("../InputSupports/useInputSupports"));
23
+
24
+ var _Legend = _interopRequireDefault(require("./Legend"));
25
+
26
+ var _jsxRuntime = require("react/jsx-runtime");
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ /**
35
+ * An alternative to InputSupports for groups of input elements that, on web, are to be
36
+ * wrapped in a `<fieldset>` tag, with label content displated in a `<legend>` tag.
37
+ *
38
+ * Follows the same theming and most of the same props as InputSupports.
39
+ */
40
+ const Fieldset = /*#__PURE__*/(0, _react.forwardRef)(({
41
+ space,
42
+ feedback,
43
+ feedbackPosition = 'top',
44
+ validation,
45
+ legend,
46
+ hint,
47
+ hintPosition,
48
+ tooltip,
49
+ inactive,
50
+ accessibilityRole,
51
+ name: fieldsetName,
52
+ children
53
+ }, ref) => {
54
+ // Skips `inputId` because a fieldset' legend describes multiple inputs
55
+ const {
56
+ hintId,
57
+ feedbackId,
58
+ a11yProps
59
+ } = (0, _useInputSupports.default)({
60
+ feedback,
61
+ hint,
62
+ label: legend,
63
+ validation
64
+ });
65
+ const legendContent = legend && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Legend.default, {
66
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, {
67
+ label: legend,
68
+ hint: hint,
69
+ hintPosition: hintPosition,
70
+ hintId: hintId,
71
+ tooltip: tooltip
72
+ })
73
+ });
74
+ const feedbackContent = feedback && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Feedback.default, {
75
+ id: feedbackId,
76
+ title: feedback,
77
+ validation: validation
78
+ }); // Some accessibility patterns depend on elements being direct children, e.g. fieldset -> legend,
79
+ // and on MacOS voiceover, radiogroup -> radio. To allow elements to be direct children of the
80
+ // fieldset as much as possible, but also allow different spacing within content and between
81
+ // fieldset / feedback / etc, wrap resolved children in a fragment, and stack with `preserveFragments`.
82
+
83
+ const childContent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
84
+ children: typeof children === 'function' ? children({
85
+ a11yProps
86
+ }) : children
87
+ });
88
+ const orderedContent = feedbackPosition === 'bottom' ? [legendContent, feedbackContent, childContent] : [legendContent, childContent, feedbackContent];
89
+ const stackedContent = (0, _StackView.getStackedContent)(orderedContent, {
90
+ space,
91
+ preserveFragments: true
92
+ });
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FieldsetContainer.default, {
94
+ ref: ref,
95
+ inactive: inactive,
96
+ accessibilityRole: accessibilityRole,
97
+ name: fieldsetName,
98
+ children: stackedContent
99
+ });
100
+ });
101
+ Fieldset.displayName = 'Fieldset';
102
+ Fieldset.propTypes = {
103
+ children: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.node]),
104
+
105
+ /**
106
+ * The accessibility role of the `<fieldset>` element itself. Other React Native accessibility
107
+ * props are not supported because there is not an appropriate counterpart for Fieldsets.
108
+ */
109
+ accessibilityRole: _propTypes.default.string,
110
+
111
+ /**
112
+ * The amout of space between legend, feedback and content; according to the theme's spacing scale.
113
+ * Either a number corresponding to a position on the theme's spacing scale (1 is smallest, 2 is second smallest, etc),
114
+ * or, a SpacingObject with viewport keys and options (see `useSpacingScale` for details).
115
+ */
116
+ space: _utils.spacingProps.types.spacingValue,
117
+
118
+ /**
119
+ * The text for the fieldset's legend, describing the fieldset content.
120
+ */
121
+ legend: _propTypes.default.string,
122
+
123
+ /**
124
+ * A short description of the expected input.
125
+ */
126
+ hint: _propTypes.default.string,
127
+
128
+ /**
129
+ * Position of the hint relative to label.
130
+ */
131
+ hintPosition: _propTypes.default.oneOf(['inline', 'below']),
132
+
133
+ /**
134
+ * A detailed description of validation error/success or additional instructions.
135
+ * Visual variant is determined based on the `validation` prop.
136
+ */
137
+ feedback: _propTypes.default.string,
138
+
139
+ /**
140
+ * Position of the feedback block relative to the fieldset's content.
141
+ */
142
+ feedbackPosition: _propTypes.default.oneOf(['above', 'below']),
143
+
144
+ /**
145
+ * If true, the fieldset is treated as inactive (setting `disabled` attribute on web).
146
+ */
147
+ inactive: _propTypes.default.bool,
148
+
149
+ /**
150
+ * Content of an optional `Tooltip`. If set, a tooltip button will be shown next to the label.
151
+ */
152
+ tooltip: _propTypes.default.string,
153
+
154
+ /**
155
+ * On web, this is passed to the `<fieldset>`'s `name` attribute.
156
+ */
157
+ name: _propTypes.default.string,
158
+
159
+ /**
160
+ * Use to visually mark an input as valid or invalid.
161
+ */
162
+ validation: _propTypes.default.oneOf(['error', 'success'])
163
+ };
164
+ var _default = Fieldset;
165
+ exports.default = _default;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _cssReset = _interopRequireDefault(require("./cssReset"));
13
+
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ /**
23
+ * On Web, wraps children with a HTML `<fieldset>` and sets its attributes as necessary.
24
+ */
25
+ const FieldsetContainer = /*#__PURE__*/(0, _react.forwardRef)(({
26
+ children,
27
+ inactive,
28
+ accessibilityRole,
29
+ name: fieldsetName
30
+ }, ref) => /*#__PURE__*/(0, _jsxRuntime.jsx)("fieldset", {
31
+ ref: ref,
32
+ disabled: inactive,
33
+ style: _cssReset.default,
34
+ role: accessibilityRole,
35
+ name: fieldsetName,
36
+ children: children
37
+ }));
38
+ FieldsetContainer.displayName = 'FieldsetContainer';
39
+ FieldsetContainer.propTypes = {
40
+ accessibilityRole: _propTypes.default.string,
41
+ children: _propTypes.default.node,
42
+ inactive: _propTypes.default.bool,
43
+ name: _propTypes.default.string
44
+ };
45
+ var _default = FieldsetContainer;
46
+ exports.default = _default;