@telus-uds/components-base 0.0.2-prerelease.6 → 1.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 (458) hide show
  1. package/.eslintrc.js +9 -0
  2. package/.ultra.cache.json +1 -1
  3. package/CHANGELOG.md +85 -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 +851 -57
  9. package/__tests__/ActivityIndicator/ActivityIndicator.test.jsx +1 -1
  10. package/__tests__/Button/ButtonBase.test.jsx +2 -31
  11. package/__tests__/Button/ButtonGroup.test.jsx +6 -7
  12. package/__tests__/Checkbox/Checkbox.test.jsx +94 -0
  13. package/__tests__/Checkbox/CheckboxGroup.test.jsx +246 -0
  14. package/__tests__/ExpandCollapse/ExpandCollapse.test.jsx +2 -2
  15. package/__tests__/HorizontalScroll/HorizontalScroll.test.jsx +164 -0
  16. package/__tests__/Icon/Icon.test.jsx +3 -3
  17. package/__tests__/IconButton/IconButton.test.jsx +52 -0
  18. package/__tests__/InputSupports/InputSupports.test.jsx +50 -0
  19. package/__tests__/Link/LinkBase.test.jsx +0 -14
  20. package/__tests__/List/List.test.jsx +60 -0
  21. package/__tests__/Modal/Modal.test.jsx +47 -0
  22. package/__tests__/Notification/Notification.test.jsx +20 -0
  23. package/__tests__/Pagination/Pagination.test.jsx +2 -2
  24. package/__tests__/Progress/Progress.test.jsx +79 -0
  25. package/__tests__/Radio/Radio.test.jsx +87 -0
  26. package/__tests__/Radio/RadioGroup.test.jsx +220 -0
  27. package/__tests__/RadioCard/RadioCard.test.jsx +87 -0
  28. package/__tests__/RadioCard/RadioCardGroup.test.jsx +246 -0
  29. package/__tests__/Search/Search.test.jsx +73 -0
  30. package/__tests__/Select/Select.test.jsx +94 -0
  31. package/__tests__/Skeleton/Skeleton.test.jsx +61 -0
  32. package/__tests__/StepTracker/StepTracker.test.jsx +94 -0
  33. package/__tests__/Tabs/Tabs.test.jsx +40 -0
  34. package/__tests__/Tags/Tags.test.jsx +327 -0
  35. package/__tests__/TextInput/TextArea.test.jsx +35 -0
  36. package/__tests__/TextInput/{TextInput.test.jsx → TextInputBase.test.jsx} +29 -50
  37. package/__tests__/ThemeProvider/ThemeProvider.test.jsx +77 -0
  38. package/__tests__/ThemeProvider/useThemeTokens.test.jsx +9 -5
  39. package/__tests__/ThemeProvider/utils/theme-tokens.test.js +41 -0
  40. package/__tests__/ToggleSwitch/ToggleSwitch.test.jsx +3 -2
  41. package/__tests__/utils/children.test.jsx +128 -0
  42. package/__tests__/utils/input.test.js +59 -1
  43. package/__tests__/utils/semantics.test.jsx +43 -0
  44. package/__tests__/utils/useCopy.test.js +14 -3
  45. package/babel.config.js +20 -0
  46. package/jest.config.js +8 -3
  47. package/lib/A11yInfoProvider/index.js +54 -26
  48. package/lib/A11yText/index.js +45 -17
  49. package/lib/ActivityIndicator/Spinner.js +81 -0
  50. package/lib/ActivityIndicator/Spinner.native.js +129 -91
  51. package/lib/ActivityIndicator/index.js +28 -12
  52. package/lib/ActivityIndicator/shared.js +27 -12
  53. package/lib/BaseProvider/index.js +34 -11
  54. package/lib/Box/Box.js +152 -35
  55. package/lib/Box/index.js +13 -2
  56. package/lib/Button/Button.js +41 -12
  57. package/lib/Button/ButtonBase.js +125 -97
  58. package/lib/Button/ButtonGroup.js +112 -89
  59. package/lib/Button/ButtonLink.js +48 -17
  60. package/lib/Button/index.js +31 -4
  61. package/lib/Button/propTypes.js +32 -9
  62. package/lib/Card/Card.js +38 -41
  63. package/lib/Card/CardBase.js +85 -0
  64. package/lib/Card/PressableCardBase.js +141 -0
  65. package/lib/Card/index.js +40 -2
  66. package/lib/Checkbox/Checkbox.js +355 -0
  67. package/lib/Checkbox/CheckboxGroup.js +241 -0
  68. package/lib/Checkbox/CheckboxInput.js +74 -0
  69. package/lib/Checkbox/CheckboxInput.native.js +14 -0
  70. package/lib/Checkbox/index.js +21 -0
  71. package/lib/Divider/Divider.js +59 -28
  72. package/lib/Divider/index.js +13 -2
  73. package/lib/ExpandCollapse/Accordion.js +26 -7
  74. package/lib/ExpandCollapse/Control.js +60 -31
  75. package/lib/ExpandCollapse/ExpandCollapse.js +50 -28
  76. package/lib/ExpandCollapse/Panel.js +83 -44
  77. package/lib/ExpandCollapse/index.js +25 -7
  78. package/lib/Feedback/Feedback.js +90 -39
  79. package/lib/Feedback/index.js +13 -2
  80. package/lib/Fieldset/Fieldset.js +165 -0
  81. package/lib/Fieldset/FieldsetContainer.js +46 -0
  82. package/lib/Fieldset/FieldsetContainer.native.js +38 -0
  83. package/lib/Fieldset/Legend.js +38 -0
  84. package/lib/Fieldset/Legend.native.js +48 -0
  85. package/lib/Fieldset/cssReset.js +21 -0
  86. package/lib/Fieldset/index.js +13 -0
  87. package/lib/FlexGrid/Col/Col.js +73 -41
  88. package/lib/FlexGrid/Col/index.js +13 -2
  89. package/lib/FlexGrid/FlexGrid.js +99 -49
  90. package/lib/FlexGrid/Row/Row.js +58 -30
  91. package/lib/FlexGrid/Row/index.js +13 -2
  92. package/lib/FlexGrid/helpers/index.js +9 -1
  93. package/lib/FlexGrid/index.js +13 -2
  94. package/lib/FlexGrid/providers/GutterContext.js +15 -3
  95. package/lib/HorizontalScroll/HorizontalScroll.js +200 -0
  96. package/lib/HorizontalScroll/HorizontalScrollButton.js +127 -0
  97. package/lib/HorizontalScroll/ScrollViewEnd.js +66 -0
  98. package/lib/HorizontalScroll/ScrollViewEnd.native.js +41 -0
  99. package/lib/HorizontalScroll/dictionary.js +18 -0
  100. package/lib/HorizontalScroll/index.js +35 -0
  101. package/lib/HorizontalScroll/itemPositions.js +128 -0
  102. package/lib/Icon/Icon.js +62 -50
  103. package/lib/Icon/IconText.js +101 -0
  104. package/lib/Icon/index.js +31 -3
  105. package/lib/IconButton/IconButton.js +140 -0
  106. package/lib/IconButton/index.js +13 -0
  107. package/lib/InputLabel/InputLabel.js +102 -40
  108. package/lib/InputLabel/LabelContent.js +41 -0
  109. package/lib/InputLabel/LabelContent.native.js +32 -6
  110. package/lib/InputLabel/index.js +13 -2
  111. package/lib/InputSupports/InputSupports.js +109 -0
  112. package/lib/InputSupports/index.js +13 -0
  113. package/lib/InputSupports/propTypes.js +66 -0
  114. package/lib/InputSupports/useInputSupports.js +41 -0
  115. package/lib/Link/ChevronLink.js +58 -31
  116. package/lib/Link/InlinePressable.js +56 -0
  117. package/lib/Link/InlinePressable.native.js +102 -0
  118. package/lib/Link/Link.js +39 -15
  119. package/lib/Link/LinkBase.js +126 -150
  120. package/lib/Link/TextButton.js +53 -18
  121. package/lib/Link/index.js +39 -4
  122. package/lib/List/List.js +81 -0
  123. package/lib/List/ListItem.js +245 -0
  124. package/lib/List/index.js +13 -0
  125. package/lib/Modal/Modal.js +231 -0
  126. package/lib/Modal/dictionary.js +16 -0
  127. package/lib/Modal/index.js +13 -0
  128. package/lib/Notification/Notification.js +216 -0
  129. package/lib/Notification/dictionary.js +15 -0
  130. package/lib/Notification/index.js +13 -0
  131. package/lib/Pagination/PageButton.js +58 -48
  132. package/lib/Pagination/Pagination.js +78 -43
  133. package/lib/Pagination/SideButton.js +79 -58
  134. package/lib/Pagination/dictionary.js +9 -2
  135. package/lib/Pagination/index.js +13 -2
  136. package/lib/Pagination/usePagination.js +12 -2
  137. package/lib/Progress/Progress.js +104 -0
  138. package/lib/Progress/ProgressBar.js +157 -0
  139. package/lib/Progress/ProgressBarBackground.js +61 -0
  140. package/lib/Progress/index.js +16 -0
  141. package/lib/Radio/Radio.js +293 -0
  142. package/lib/Radio/RadioButton.js +152 -0
  143. package/lib/Radio/RadioGroup.js +244 -0
  144. package/lib/Radio/RadioInput.js +76 -0
  145. package/lib/Radio/RadioInput.native.js +14 -0
  146. package/lib/Radio/index.js +21 -0
  147. package/lib/RadioCard/RadioCard.js +244 -0
  148. package/lib/RadioCard/RadioCardGroup.js +252 -0
  149. package/lib/RadioCard/index.js +21 -0
  150. package/lib/Search/Search.js +254 -0
  151. package/lib/Search/dictionary.js +19 -0
  152. package/lib/Search/index.js +13 -0
  153. package/lib/Select/Group.js +33 -0
  154. package/lib/Select/Group.native.js +25 -0
  155. package/lib/Select/Item.js +29 -0
  156. package/lib/Select/Item.native.js +19 -0
  157. package/lib/Select/Picker.js +84 -0
  158. package/lib/Select/Picker.native.js +130 -0
  159. package/lib/Select/Select.js +342 -0
  160. package/lib/Select/index.js +19 -0
  161. package/lib/SideNav/Item.js +63 -37
  162. package/lib/SideNav/ItemContent.js +41 -15
  163. package/lib/SideNav/ItemsGroup.js +55 -31
  164. package/lib/SideNav/SideNav.js +100 -73
  165. package/lib/SideNav/index.js +15 -1
  166. package/lib/Skeleton/Skeleton.js +137 -0
  167. package/lib/Skeleton/index.js +13 -0
  168. package/lib/Skeleton/skeleton.constant.js +12 -0
  169. package/lib/Skeleton/skeletonWebAnimation.js +27 -0
  170. package/lib/Skeleton/useSkeletonNativeAnimation.js +37 -0
  171. package/lib/Spacer/Spacer.js +49 -18
  172. package/lib/Spacer/index.js +13 -2
  173. package/lib/StackView/StackView.js +71 -31
  174. package/lib/StackView/StackWrap.js +43 -13
  175. package/lib/StackView/StackWrap.native.js +13 -2
  176. package/lib/StackView/StackWrapBox.js +76 -29
  177. package/lib/StackView/StackWrapGap.js +56 -26
  178. package/lib/StackView/common.js +23 -6
  179. package/lib/StackView/getStackedContent.js +47 -17
  180. package/lib/StackView/index.js +29 -5
  181. package/lib/StepTracker/Step.js +245 -0
  182. package/lib/StepTracker/StepTracker.js +202 -0
  183. package/lib/StepTracker/dictionary.js +17 -0
  184. package/lib/StepTracker/index.js +13 -0
  185. package/lib/Tabs/Tabs.js +124 -0
  186. package/lib/Tabs/TabsItem.js +238 -0
  187. package/lib/Tabs/index.js +13 -0
  188. package/lib/Tags/Tags.js +266 -0
  189. package/lib/Tags/index.js +13 -0
  190. package/lib/TextInput/TextArea.js +111 -0
  191. package/lib/TextInput/TextInput.js +50 -304
  192. package/lib/TextInput/TextInputBase.js +256 -0
  193. package/lib/TextInput/index.js +23 -2
  194. package/lib/TextInput/propTypes.js +42 -0
  195. package/lib/ThemeProvider/ThemeProvider.js +46 -18
  196. package/lib/ThemeProvider/index.js +61 -6
  197. package/lib/ThemeProvider/useSetTheme.js +19 -5
  198. package/lib/ThemeProvider/useTheme.js +13 -4
  199. package/lib/ThemeProvider/useThemeTokens.js +86 -19
  200. package/lib/ThemeProvider/utils/index.js +31 -2
  201. package/lib/ThemeProvider/utils/styles.js +50 -14
  202. package/lib/ThemeProvider/utils/theme-tokens.js +121 -12
  203. package/lib/ToggleSwitch/ToggleSwitch.js +86 -57
  204. package/lib/ToggleSwitch/index.js +13 -2
  205. package/lib/Tooltip/{Backdrop.web.js → Backdrop.js} +20 -8
  206. package/lib/Tooltip/Backdrop.native.js +39 -15
  207. package/lib/Tooltip/Tooltip.js +117 -74
  208. package/lib/Tooltip/dictionary.js +9 -2
  209. package/lib/Tooltip/getTooltipPosition.js +9 -1
  210. package/lib/Tooltip/index.js +13 -2
  211. package/lib/TooltipButton/TooltipButton.js +57 -38
  212. package/lib/TooltipButton/index.js +13 -2
  213. package/lib/Typography/Typography.js +86 -55
  214. package/lib/Typography/index.js +13 -2
  215. package/lib/ViewportProvider/ViewportProvider.js +34 -13
  216. package/lib/ViewportProvider/index.js +28 -3
  217. package/lib/ViewportProvider/useViewport.js +15 -3
  218. package/lib/ViewportProvider/useViewportListener.js +24 -10
  219. package/lib/index.js +539 -26
  220. package/lib/utils/a11y/index.js +31 -0
  221. package/lib/utils/a11y/semantics.js +173 -0
  222. package/lib/utils/a11y/textSize.js +49 -0
  223. package/lib/utils/animation/index.js +15 -2
  224. package/lib/utils/animation/useVerticalExpandAnimation.js +27 -10
  225. package/lib/utils/children.js +134 -0
  226. package/lib/utils/index.js +163 -7
  227. package/lib/utils/info/index.js +19 -0
  228. package/lib/utils/info/platform/index.js +23 -0
  229. package/lib/utils/info/platform/platform.android.js +8 -0
  230. package/lib/utils/info/platform/platform.ios.js +8 -0
  231. package/lib/utils/info/platform/platform.js +8 -0
  232. package/lib/utils/info/platform/platform.native.js +11 -0
  233. package/lib/utils/info/versions.js +16 -0
  234. package/lib/utils/input.js +53 -25
  235. package/lib/utils/pressability.js +120 -0
  236. package/lib/utils/propTypes.js +338 -132
  237. package/lib/utils/useCopy.js +40 -5
  238. package/lib/utils/useHash.js +52 -0
  239. package/lib/utils/useHash.native.js +15 -0
  240. package/lib/utils/useResponsiveProp.js +21 -9
  241. package/lib/utils/useSpacingScale.js +19 -9
  242. package/lib/utils/useUniqueId.js +12 -3
  243. package/package.json +16 -10
  244. package/release-context.json +4 -4
  245. package/src/A11yText/index.jsx +6 -4
  246. package/src/ActivityIndicator/{Spinner.web.jsx → Spinner.jsx} +5 -3
  247. package/src/ActivityIndicator/Spinner.native.jsx +5 -3
  248. package/src/Box/Box.jsx +131 -39
  249. package/src/Button/Button.jsx +13 -6
  250. package/src/Button/ButtonBase.jsx +134 -125
  251. package/src/Button/ButtonGroup.jsx +85 -86
  252. package/src/Button/ButtonLink.jsx +22 -7
  253. package/src/Button/propTypes.js +12 -2
  254. package/src/Card/Card.jsx +5 -31
  255. package/src/Card/CardBase.jsx +58 -0
  256. package/src/Card/PressableCardBase.jsx +119 -0
  257. package/src/Card/index.js +3 -0
  258. package/src/Checkbox/Checkbox.jsx +284 -0
  259. package/src/Checkbox/CheckboxGroup.jsx +206 -0
  260. package/src/Checkbox/CheckboxInput.jsx +55 -0
  261. package/src/Checkbox/CheckboxInput.native.jsx +6 -0
  262. package/src/Checkbox/index.js +5 -0
  263. package/src/Divider/Divider.jsx +7 -4
  264. package/src/ExpandCollapse/Accordion.jsx +3 -2
  265. package/src/ExpandCollapse/Control.jsx +40 -43
  266. package/src/ExpandCollapse/ExpandCollapse.jsx +26 -23
  267. package/src/ExpandCollapse/Panel.jsx +69 -63
  268. package/src/Feedback/Feedback.jsx +42 -30
  269. package/src/Fieldset/Fieldset.jsx +136 -0
  270. package/src/Fieldset/FieldsetContainer.jsx +31 -0
  271. package/src/Fieldset/FieldsetContainer.native.jsx +19 -0
  272. package/src/Fieldset/Legend.jsx +21 -0
  273. package/src/Fieldset/Legend.native.jsx +27 -0
  274. package/src/Fieldset/cssReset.js +14 -0
  275. package/src/Fieldset/index.js +3 -0
  276. package/src/FlexGrid/Col/Col.jsx +139 -132
  277. package/src/FlexGrid/FlexGrid.jsx +79 -51
  278. package/src/FlexGrid/Row/Row.jsx +55 -48
  279. package/src/HorizontalScroll/HorizontalScroll.jsx +168 -0
  280. package/src/HorizontalScroll/HorizontalScrollButton.jsx +105 -0
  281. package/src/HorizontalScroll/ScrollViewEnd.jsx +53 -0
  282. package/src/HorizontalScroll/ScrollViewEnd.native.jsx +24 -0
  283. package/src/HorizontalScroll/dictionary.js +11 -0
  284. package/src/HorizontalScroll/index.js +17 -0
  285. package/src/HorizontalScroll/itemPositions.js +101 -0
  286. package/src/Icon/Icon.jsx +46 -49
  287. package/src/Icon/IconText.jsx +68 -0
  288. package/src/Icon/index.js +3 -2
  289. package/src/IconButton/IconButton.jsx +114 -0
  290. package/src/IconButton/index.js +3 -0
  291. package/src/InputLabel/InputLabel.jsx +57 -35
  292. package/src/InputLabel/LabelContent.jsx +21 -0
  293. package/src/InputLabel/LabelContent.native.jsx +11 -2
  294. package/src/InputSupports/InputSupports.jsx +70 -0
  295. package/src/InputSupports/index.js +3 -0
  296. package/src/InputSupports/propTypes.js +44 -0
  297. package/src/InputSupports/useInputSupports.js +30 -0
  298. package/src/Link/ChevronLink.jsx +34 -21
  299. package/src/Link/InlinePressable.jsx +39 -0
  300. package/src/Link/InlinePressable.native.jsx +75 -0
  301. package/src/Link/Link.jsx +23 -13
  302. package/src/Link/LinkBase.jsx +98 -170
  303. package/src/Link/TextButton.jsx +37 -16
  304. package/src/Link/index.js +2 -1
  305. package/src/List/List.jsx +48 -0
  306. package/src/List/ListItem.jsx +182 -0
  307. package/src/List/index.js +3 -0
  308. package/src/Modal/Modal.jsx +190 -0
  309. package/src/Modal/dictionary.js +9 -0
  310. package/src/Modal/index.js +3 -0
  311. package/src/Notification/Notification.jsx +164 -0
  312. package/src/Notification/dictionary.js +8 -0
  313. package/src/Notification/index.js +3 -0
  314. package/src/Pagination/PageButton.jsx +42 -49
  315. package/src/Pagination/Pagination.jsx +88 -92
  316. package/src/Pagination/SideButton.jsx +58 -66
  317. package/src/Progress/Progress.jsx +78 -0
  318. package/src/Progress/ProgressBar.jsx +123 -0
  319. package/src/Progress/ProgressBarBackground.jsx +36 -0
  320. package/src/Progress/index.js +6 -0
  321. package/src/Radio/Radio.jsx +240 -0
  322. package/src/Radio/RadioButton.jsx +142 -0
  323. package/src/Radio/RadioGroup.jsx +209 -0
  324. package/src/Radio/RadioInput.jsx +57 -0
  325. package/src/Radio/RadioInput.native.jsx +6 -0
  326. package/src/Radio/index.js +5 -0
  327. package/src/RadioCard/RadioCard.jsx +198 -0
  328. package/src/RadioCard/RadioCardGroup.jsx +218 -0
  329. package/src/RadioCard/index.js +5 -0
  330. package/src/Search/Search.jsx +225 -0
  331. package/src/Search/dictionary.js +12 -0
  332. package/src/Search/index.js +3 -0
  333. package/src/Select/Group.jsx +15 -0
  334. package/src/Select/Group.native.jsx +14 -0
  335. package/src/Select/Item.jsx +11 -0
  336. package/src/Select/Item.native.jsx +10 -0
  337. package/src/Select/Picker.jsx +74 -0
  338. package/src/Select/Picker.native.jsx +102 -0
  339. package/src/Select/Select.jsx +298 -0
  340. package/src/Select/index.js +8 -0
  341. package/src/SideNav/Item.jsx +54 -47
  342. package/src/SideNav/ItemsGroup.jsx +50 -43
  343. package/src/SideNav/SideNav.jsx +68 -60
  344. package/src/Skeleton/Skeleton.jsx +94 -0
  345. package/src/Skeleton/index.js +3 -0
  346. package/src/Skeleton/skeleton.constant.js +3 -0
  347. package/src/Skeleton/skeletonWebAnimation.js +13 -0
  348. package/src/Skeleton/useSkeletonNativeAnimation.js +27 -0
  349. package/src/Spacer/Spacer.jsx +11 -4
  350. package/src/StackView/StackView.jsx +53 -23
  351. package/src/StackView/StackWrap.jsx +16 -7
  352. package/src/StackView/StackWrapBox.jsx +62 -28
  353. package/src/StackView/StackWrapGap.jsx +46 -24
  354. package/src/StackView/common.jsx +3 -2
  355. package/src/StackView/getStackedContent.jsx +8 -2
  356. package/src/StepTracker/Step.jsx +202 -0
  357. package/src/StepTracker/StepTracker.jsx +174 -0
  358. package/src/StepTracker/dictionary.js +10 -0
  359. package/src/StepTracker/index.js +3 -0
  360. package/src/Tabs/Tabs.jsx +97 -0
  361. package/src/Tabs/TabsItem.jsx +212 -0
  362. package/src/Tabs/index.js +3 -0
  363. package/src/Tags/Tags.jsx +219 -0
  364. package/src/Tags/index.js +3 -0
  365. package/src/TextInput/TextArea.jsx +79 -0
  366. package/src/TextInput/TextInput.jsx +18 -284
  367. package/src/TextInput/TextInputBase.jsx +217 -0
  368. package/src/TextInput/index.js +2 -1
  369. package/src/TextInput/propTypes.js +29 -0
  370. package/src/ThemeProvider/ThemeProvider.jsx +11 -7
  371. package/src/ThemeProvider/useSetTheme.js +4 -0
  372. package/src/ThemeProvider/useThemeTokens.js +56 -5
  373. package/src/ThemeProvider/utils/styles.js +18 -5
  374. package/src/ThemeProvider/utils/theme-tokens.js +74 -5
  375. package/src/ToggleSwitch/ToggleSwitch.jsx +51 -53
  376. package/src/Tooltip/{Backdrop.web.jsx → Backdrop.jsx} +0 -0
  377. package/src/Tooltip/Tooltip.jsx +135 -131
  378. package/src/TooltipButton/TooltipButton.jsx +23 -27
  379. package/src/Typography/Typography.jsx +72 -59
  380. package/src/index.js +31 -3
  381. package/src/utils/a11y/index.js +2 -0
  382. package/src/utils/a11y/semantics.js +162 -0
  383. package/src/utils/a11y/textSize.js +30 -0
  384. package/src/utils/children.jsx +119 -0
  385. package/src/utils/index.js +6 -0
  386. package/src/utils/info/index.js +8 -0
  387. package/src/utils/info/platform/index.js +11 -0
  388. package/src/utils/info/platform/platform.android.js +1 -0
  389. package/src/utils/info/platform/platform.ios.js +1 -0
  390. package/src/utils/info/platform/platform.js +1 -0
  391. package/src/utils/info/platform/platform.native.js +4 -0
  392. package/src/utils/info/versions.js +6 -0
  393. package/src/utils/input.js +36 -25
  394. package/src/utils/pressability.js +96 -0
  395. package/src/utils/propTypes.js +291 -90
  396. package/src/utils/useCopy.js +30 -4
  397. package/src/utils/useHash.js +39 -0
  398. package/src/utils/useHash.native.js +6 -0
  399. package/stories/A11yText/A11yText.stories.jsx +6 -10
  400. package/stories/ActivityIndicator/ActivityIndicator.stories.jsx +1 -1
  401. package/stories/Box/Box.stories.jsx +1 -1
  402. package/stories/Button/Button.stories.jsx +7 -2
  403. package/stories/Button/ButtonGroup.stories.jsx +1 -1
  404. package/stories/Button/ButtonLink.stories.jsx +1 -1
  405. package/stories/Card/Card.stories.jsx +1 -1
  406. package/stories/Checkbox/Checkbox.stories.jsx +94 -0
  407. package/stories/Divider/Divider.stories.jsx +1 -1
  408. package/stories/ExpandCollapse/ExpandCollapse.stories.jsx +2 -2
  409. package/stories/Feedback/Feedback.stories.jsx +5 -6
  410. package/stories/FlexGrid/01 FlexGrid.stories.jsx +1 -1
  411. package/stories/FlexGrid/02 Row.stories.jsx +1 -1
  412. package/stories/FlexGrid/03 Col.stories.jsx +1 -1
  413. package/stories/Icon/Icon.stories.jsx +27 -7
  414. package/stories/IconButton/IconButton.stories.jsx +50 -0
  415. package/stories/InputLabel/InputLabel.stories.jsx +1 -1
  416. package/stories/Link/ChevronLink.stories.jsx +1 -1
  417. package/stories/Link/Link.stories.jsx +28 -18
  418. package/stories/Link/TextButton.stories.jsx +1 -1
  419. package/stories/List/List.stories.jsx +117 -0
  420. package/stories/Modal/Modal.stories.jsx +29 -0
  421. package/stories/Notification/Notification.stories.jsx +82 -0
  422. package/stories/Pagination/Pagination.stories.jsx +1 -1
  423. package/stories/Progress/Progress.stories.jsx +93 -0
  424. package/stories/Radio/Radio.stories.jsx +100 -0
  425. package/stories/RadioCard/RadioCard.stories.jsx +98 -0
  426. package/stories/Search/Search.stories.jsx +16 -0
  427. package/stories/Select/Select.stories.jsx +55 -0
  428. package/stories/SideNav/SideNav.stories.jsx +1 -1
  429. package/stories/SideNav/SideNavItem.stories.jsx +1 -1
  430. package/stories/SideNav/SideNavItemsGroup.stories.jsx +1 -1
  431. package/stories/Skeleton/Skeleton.stories.jsx +36 -0
  432. package/stories/Spacer/Spacer.stories.jsx +1 -1
  433. package/stories/StackView/StackView.stories.jsx +1 -1
  434. package/stories/StackView/StackWrap.stories.jsx +1 -1
  435. package/stories/StepTracker/StepTracker.stories.jsx +71 -0
  436. package/stories/Tabs/Tabs.stories.jsx +97 -0
  437. package/stories/Tags/Tags.stories.jsx +69 -0
  438. package/stories/TextInput/TextArea.stories.jsx +100 -0
  439. package/stories/TextInput/TextInput.stories.jsx +1 -1
  440. package/stories/ToggleSwitch/ToggleSwitch.stories.jsx +1 -1
  441. package/stories/Tooltip/Tooltip.stories.jsx +1 -1
  442. package/stories/TooltipButton/TooltipButton.stories.jsx +1 -1
  443. package/stories/Typography/Typography.stories.jsx +1 -1
  444. package/stories/{platform-supports.web.jsx → platform-supports.jsx} +1 -1
  445. package/stories/supports.jsx +38 -4
  446. package/__fixtures__/accessible.icon.svg +0 -6
  447. package/babel.config.json +0 -8
  448. package/docs/Contributing.stories.mdx +0 -9
  449. package/docs/Fonts.stories.mdx +0 -104
  450. package/docs/Icons.stories.mdx +0 -144
  451. package/docs/Introduction.stories.mdx +0 -9
  452. package/lib/ActivityIndicator/Spinner.web.js +0 -55
  453. package/lib/InputLabel/LabelContent.web.js +0 -17
  454. package/lib/config/svgr-icons-web.js +0 -9
  455. package/lib/config/svgr-icons.js +0 -52
  456. package/src/InputLabel/LabelContent.web.jsx +0 -13
  457. package/src/config/svgr-icons-web.js +0 -11
  458. package/src/config/svgr-icons.js +0 -46
@@ -1,9 +1,30 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import ItemContent from './ItemContent';
4
- import ExpandCollapse from '../ExpandCollapse';
5
- import { getTokensPropType, variantProp, componentPropType, selectTokens } from '../utils';
6
- import { useThemeTokensCallback } from '../ThemeProvider';
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 _ItemContent = _interopRequireDefault(require("./ItemContent"));
13
+
14
+ var _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
15
+
16
+ var _utils = require("../utils");
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
7
28
  /**
8
29
  Expandable content areas for use within `SideNav`.
9
30
 
@@ -14,8 +35,7 @@ import { useThemeTokensCallback } from '../ThemeProvider';
14
35
  ## Usage Criteria
15
36
  - Use `SideNav.ItemsGroup` with large pages that have multiple sections
16
37
  */
17
-
18
- const ItemsGroup = ({
38
+ const ItemsGroup = /*#__PURE__*/(0, _react.forwardRef)(({
19
39
  children,
20
40
  label,
21
41
  openGroups,
@@ -25,7 +45,7 @@ const ItemsGroup = ({
25
45
  tokens,
26
46
  itemTokens,
27
47
  onToggle
28
- }) => {
48
+ }, ref) => {
29
49
  // A SideNav control uses the same style and theme as SideNavItem, with a 'parent' variant,
30
50
  // plus control-specific tokens from the SideNavItemsGroup theme (e.g. open/close icon, etc).
31
51
  const getAppearance = appearance => ({ ...variant,
@@ -37,13 +57,13 @@ const ItemsGroup = ({
37
57
  type: 'parent'
38
58
  });
39
59
 
40
- const getGroupTokens = useThemeTokensCallback('SideNavItemsGroup', tokens, variant);
60
+ const getGroupTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItemsGroup', tokens, variant);
41
61
 
42
- const getPanelTokens = appearance => selectTokens('ExpandCollapsePanel', getGroupTokens(getAppearance(appearance)));
62
+ const getPanelTokens = appearance => (0, _utils.selectTokens)('ExpandCollapsePanel', getGroupTokens(getAppearance(appearance)));
43
63
 
44
- const getItemTokens = useThemeTokensCallback('SideNavItem', itemTokens, variant);
64
+ const getItemTokens = (0, _ThemeProvider.useThemeTokensCallback)('SideNavItem', itemTokens, variant);
45
65
 
46
- const getControlTokens = appearance => selectTokens('ExpandCollapseControl', { ...getItemTokens(getItemAppearance(appearance)),
66
+ const getControlTokens = appearance => (0, _utils.selectTokens)('ExpandCollapseControl', { ...getItemTokens(getItemAppearance(appearance)),
47
67
  // main style from SideNavItem
48
68
  ...getGroupTokens(getAppearance(appearance)) // control-specific tokens like icon etc
49
69
 
@@ -51,12 +71,14 @@ const ItemsGroup = ({
51
71
 
52
72
  const controlContent = controlState => {
53
73
  const currentItemTokens = getItemTokens(getItemAppearance(controlState));
54
- return /*#__PURE__*/React.createElement(ItemContent, {
55
- tokens: currentItemTokens
56
- }, label);
74
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ItemContent.default, {
75
+ tokens: currentItemTokens,
76
+ children: label
77
+ });
57
78
  };
58
79
 
59
- return /*#__PURE__*/React.createElement(ExpandCollapse.Panel, {
80
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default.Panel, {
81
+ ref: ref,
60
82
  openIds: openGroups,
61
83
  panelId: groupId,
62
84
  onToggle: onToggle,
@@ -66,46 +88,48 @@ const ItemsGroup = ({
66
88
  accessibilityState: {
67
89
  active: isActive
68
90
  } // ExpandCollapse.Panel handles expanded state
69
-
70
- }, children);
71
- };
72
-
91
+ ,
92
+ children: children
93
+ });
94
+ });
95
+ ItemsGroup.displayName = 'ItemsGroup';
73
96
  ItemsGroup.propTypes = {
74
97
  /**
75
98
  * Specifies the links contained within. It may only contain `SideNav.Item`.
76
99
  */
77
- children: componentPropType('Item'),
100
+ children: (0, _utils.componentPropType)('Item'),
78
101
 
79
102
  /**
80
103
  * Text content of the group's parent `SideNav.Item`.
81
104
  */
82
- label: PropTypes.string.isRequired,
105
+ label: _propTypes.default.string.isRequired,
83
106
 
84
107
  /**
85
108
  * @ignore
86
109
  * Set internally in `SideNav` render function - used to keep track of expanded items groups.
87
110
  */
88
- groupId: PropTypes.string,
111
+ groupId: _propTypes.default.string,
89
112
 
90
113
  /**
91
114
  * @ignore
92
115
  * Set internally in `SideNav` render function. Called when the group is expanded/collapsed.
93
116
  */
94
- onToggle: PropTypes.func,
117
+ onToggle: _propTypes.default.func,
95
118
 
96
119
  /**
97
120
  * @ignore
98
121
  * Set internally in `SideNav` render function. Contains `groupId`s of currently open groups.
99
122
  */
100
- openGroups: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),
123
+ openGroups: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])),
101
124
 
102
125
  /**
103
126
  * @ignore
104
127
  * Set internally in `SideNav` render function. Used to mark group containing the currently active `SideNav.Item`.
105
128
  */
106
- isActive: PropTypes.bool,
107
- variant: variantProp.propType,
108
- tokens: getTokensPropType('SideNavItemsGroup'),
109
- itemTokens: getTokensPropType('SideNavItem')
129
+ isActive: _propTypes.default.bool,
130
+ variant: _utils.variantProp.propType,
131
+ tokens: (0, _utils.getTokensPropType)('SideNavItemsGroup'),
132
+ itemTokens: (0, _utils.getTokensPropType)('SideNavItem')
110
133
  };
111
- export default ItemsGroup;
134
+ var _default = ItemsGroup;
135
+ exports.default = _default;
@@ -1,10 +1,31 @@
1
- import React, { useState } from 'react';
2
- import PropTypes from 'prop-types';
3
- import ExpandCollapse from '../ExpandCollapse';
4
- import Item from './Item';
5
- import ItemsGroup from './ItemsGroup';
6
- import { useThemeTokens } from '../ThemeProvider';
7
- import { componentPropType, getTokensPropType, variantProp } from '../utils';
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 _ExpandCollapse = _interopRequireDefault(require("../ExpandCollapse"));
13
+
14
+ var _Item = _interopRequireDefault(require("./Item"));
15
+
16
+ var _ItemsGroup = _interopRequireDefault(require("./ItemsGroup"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _utils = require("../utils");
21
+
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ 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); }
27
+
28
+ 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; }
8
29
 
9
30
  function selectBorderStyles(tokens) {
10
31
  return {
@@ -20,16 +41,16 @@ function selectBorderStyles(tokens) {
20
41
  */
21
42
 
22
43
 
23
- const SideNav = ({
44
+ const SideNav = /*#__PURE__*/(0, _react.forwardRef)(({
24
45
  children,
25
46
  variant = {},
26
47
  tokens,
27
48
  accordion = true,
28
49
  itemTokens,
29
50
  groupTokens
30
- }) => {
31
- const themeTokens = useThemeTokens('SideNav', tokens, variant);
32
- const [active, setActive] = useState({
51
+ }, ref) => {
52
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('SideNav', tokens, variant);
53
+ const [active, setActive] = (0, _react.useState)({
33
54
  groupId: undefined,
34
55
  itemId: undefined
35
56
  });
@@ -45,78 +66,84 @@ const SideNav = ({
45
66
  return active.groupId === groupId && active.itemId === itemId;
46
67
  };
47
68
 
48
- return /*#__PURE__*/React.createElement(ExpandCollapse, {
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandCollapse.default, {
70
+ ref: ref,
49
71
  maxOpen: accordion ? 1 : null,
50
- style: selectBorderStyles(themeTokens)
51
- }, ({
52
- openIds,
53
- onToggle
54
- }) => {
55
- const renderItem = (item, index, groupId) => {
56
- const {
57
- itemId = `item-${index}`,
58
- onPress
59
- } = item.props;
60
-
61
- const handlePress = (...args) => {
62
- onItemPress(...args);
63
- if (onPress) onPress(...args);
64
- };
65
-
66
- return /*#__PURE__*/React.createElement(Item, Object.assign({}, item.props, {
67
- key: itemId,
68
- itemId: itemId,
69
- groupId: groupId,
70
- variant: groupId ? { ...variant,
71
- type: 'child'
72
- } : variant,
73
- tokens: itemTokens,
74
- isActive: isItemActive(itemId, groupId),
75
- onPress: handlePress
76
- }));
77
- };
78
-
79
- return React.Children.map(children, (child, index) => {
80
- // iterate over children and identify them internally to later reference expanded groups and active items
81
- if (child.type === Item) return renderItem(child, index);
82
-
83
- if (child.type === ItemsGroup) {
72
+ style: selectBorderStyles(themeTokens),
73
+ children: ({
74
+ openIds,
75
+ onToggle
76
+ }) => {
77
+ const renderItem = (item, index, groupId) => {
84
78
  const {
85
- groupId = `group-${index}`
86
- } = child.props;
87
- const isGroupActive = active.itemId !== undefined && active.groupId === groupId;
88
- return /*#__PURE__*/React.createElement(ItemsGroup, Object.assign({}, child.props, {
89
- key: groupId,
79
+ itemId = `item-${index}`,
80
+ onPress
81
+ } = item.props;
82
+
83
+ const handlePress = (...args) => {
84
+ onItemPress(...args);
85
+ if (onPress) onPress(...args);
86
+ };
87
+
88
+ return /*#__PURE__*/(0, _react.createElement)(_Item.default, { ...item.props,
89
+ key: itemId,
90
+ itemId: itemId,
90
91
  groupId: groupId,
91
- variant: variant,
92
- tokens: groupTokens,
93
- itemTokens: itemTokens,
94
- openGroups: openIds,
95
- isActive: isGroupActive,
96
- onToggle: () => onToggle(groupId)
97
- }), React.Children.map(child.props.children, (item, itemIndex) => renderItem(item, itemIndex, groupId)));
98
- }
99
-
100
- return null;
101
- });
102
- });
103
- };
92
+ variant: groupId ? { ...variant,
93
+ type: 'child'
94
+ } : variant,
95
+ tokens: itemTokens,
96
+ isActive: isItemActive(itemId, groupId),
97
+ onPress: handlePress
98
+ });
99
+ };
100
+
101
+ return _react.default.Children.map(children, (child, index) => {
102
+ // iterate over children and identify them internally to later reference expanded groups and active items
103
+ if (child.type === _Item.default) return renderItem(child, index);
104
+
105
+ if (child.type === _ItemsGroup.default) {
106
+ const {
107
+ groupId = `group-${index}`
108
+ } = child.props;
109
+ const isGroupActive = active.itemId !== undefined && active.groupId === groupId;
104
110
 
111
+ const handleToggle = event => onToggle(groupId, event);
112
+
113
+ return /*#__PURE__*/(0, _react.createElement)(_ItemsGroup.default, { ...child.props,
114
+ key: groupId,
115
+ groupId: groupId,
116
+ variant: variant,
117
+ tokens: groupTokens,
118
+ itemTokens: itemTokens,
119
+ openGroups: openIds,
120
+ isActive: isGroupActive,
121
+ onToggle: handleToggle
122
+ }, _react.default.Children.map(child.props.children, (item, itemIndex) => renderItem(item, itemIndex, groupId)));
123
+ }
124
+
125
+ return null;
126
+ });
127
+ }
128
+ });
129
+ });
130
+ SideNav.displayName = 'SideNav';
105
131
  SideNav.propTypes = {
106
132
  /**
107
133
  * Specifies the structure and links of the `SideNav`. It may only consist of `SideNav.Item` and `SideNav.ItemsGroup`.
108
134
  */
109
- children: componentPropType(['Item', 'ItemsGroup']),
135
+ children: (0, _utils.componentPropType)(['Item', 'ItemsGroup']),
110
136
 
111
137
  /**
112
138
  * Identifies if only one `SideNav.ItemsGroup` should be open at a time.
113
139
  */
114
- accordion: PropTypes.bool,
115
- variant: variantProp.propType,
116
- tokens: getTokensPropType('SideNav'),
117
- itemTokens: getTokensPropType('SideNavItem'),
118
- groupTokens: getTokensPropType('SideNavItemsGroup')
140
+ accordion: _propTypes.default.bool,
141
+ variant: _utils.variantProp.propType,
142
+ tokens: (0, _utils.getTokensPropType)('SideNav'),
143
+ itemTokens: (0, _utils.getTokensPropType)('SideNavItem'),
144
+ groupTokens: (0, _utils.getTokensPropType)('SideNavItemsGroup')
119
145
  };
120
- SideNav.Item = Item;
121
- SideNav.ItemsGroup = ItemsGroup;
122
- export default SideNav;
146
+ SideNav.Item = _Item.default;
147
+ SideNav.ItemsGroup = _ItemsGroup.default;
148
+ var _default = SideNav;
149
+ exports.default = _default;
@@ -1 +1,15 @@
1
- export { default } from './SideNav';
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _SideNav.default;
10
+ }
11
+ });
12
+
13
+ var _SideNav = _interopRequireDefault(require("./SideNav"));
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -0,0 +1,137 @@
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 _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 _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _StackView = _interopRequireDefault(require("../StackView"));
17
+
18
+ var _ThemeProvider = require("../ThemeProvider");
19
+
20
+ var _utils = require("../utils");
21
+
22
+ var _useSkeletonNativeAnimation = _interopRequireDefault(require("./useSkeletonNativeAnimation"));
23
+
24
+ var _skeletonWebAnimation = _interopRequireDefault(require("./skeletonWebAnimation"));
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
+ const selectSkeletonStyles = ({
35
+ color,
36
+ radius,
37
+ fadeAnimation
38
+ }) => ({
39
+ backgroundColor: color,
40
+ borderRadius: radius,
41
+ ...fadeAnimation
42
+ });
43
+
44
+ const selectLineStyles = ({
45
+ skeletonHeight,
46
+ lineWidth
47
+ }) => ({
48
+ width: lineWidth,
49
+ height: skeletonHeight
50
+ });
51
+
52
+ const selectShapeStyles = ({
53
+ skeletonHeight
54
+ }) => ({
55
+ height: skeletonHeight,
56
+ width: skeletonHeight
57
+ });
58
+
59
+ const selectSquareStyles = ({
60
+ radius
61
+ }) => ({
62
+ borderRadius: radius
63
+ });
64
+
65
+ const Skeleton = /*#__PURE__*/(0, _react.forwardRef)(({
66
+ tokens,
67
+ variant,
68
+ size,
69
+ characters,
70
+ lines,
71
+ shape = 'line'
72
+ }, ref) => {
73
+ const themeTokens = (0, _ThemeProvider.useThemeTokens)('Skeleton', tokens, variant);
74
+ const skeletonHeight = (0, _utils.useSpacingScale)(size || themeTokens.size);
75
+ const nativeAnimation = (0, _useSkeletonNativeAnimation.default)();
76
+
77
+ const getAnimationBaseOnPlatform = () => {
78
+ if (_Platform.default.OS !== 'web') {
79
+ return nativeAnimation;
80
+ }
81
+
82
+ return _skeletonWebAnimation.default;
83
+ };
84
+
85
+ const getLineWidth = () => {
86
+ if (characters) {
87
+ return characters * themeTokens.baseWidth;
88
+ }
89
+
90
+ return themeTokens.characters * themeTokens.baseWidth;
91
+ };
92
+
93
+ const getStyledBasedOnShape = () => {
94
+ if (shape === 'circle') {
95
+ return selectShapeStyles({
96
+ skeletonHeight
97
+ });
98
+ }
99
+
100
+ if (shape === 'box') {
101
+ return [selectShapeStyles({
102
+ skeletonHeight
103
+ }), selectSquareStyles({
104
+ radius: themeTokens.squareRadius
105
+ })];
106
+ }
107
+
108
+ return selectLineStyles({
109
+ skeletonHeight,
110
+ lineWidth: getLineWidth()
111
+ });
112
+ };
113
+
114
+ const renderSkeleton = (index = 0) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Animated.default.View, {
115
+ testID: "skeleton",
116
+ style: [selectSkeletonStyles({ ...themeTokens,
117
+ fadeAnimation: getAnimationBaseOnPlatform()
118
+ }), getStyledBasedOnShape()]
119
+ }, `skeleton-${index + 1}`);
120
+
121
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_StackView.default, {
122
+ space: themeTokens.spaceBetweenLines,
123
+ ref: ref,
124
+ children: lines > 1 ? [...Array(lines)].map((_, index) => renderSkeleton(index)) : renderSkeleton()
125
+ });
126
+ });
127
+ Skeleton.displayName = 'Skeleton';
128
+ Skeleton.propTypes = {
129
+ tokens: (0, _utils.getTokensPropType)('Skeleton'),
130
+ variant: _utils.variantProp.propType,
131
+ size: _propTypes.default.number,
132
+ characters: _propTypes.default.number,
133
+ lines: _propTypes.default.number,
134
+ shape: _propTypes.default.oneOf(['line', 'circle', 'box'])
135
+ };
136
+ var _default = Skeleton;
137
+ exports.default = _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Skeleton = _interopRequireDefault(require("./Skeleton"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ var _default = _Skeleton.default;
13
+ exports.default = _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ANIMATION_DURATION = exports.OPACITY_STOP = exports.DEFAULT_OPACITY = void 0;
7
+ const DEFAULT_OPACITY = 1;
8
+ exports.DEFAULT_OPACITY = DEFAULT_OPACITY;
9
+ const OPACITY_STOP = 0.4;
10
+ exports.OPACITY_STOP = OPACITY_STOP;
11
+ const ANIMATION_DURATION = 1500;
12
+ exports.ANIMATION_DURATION = ANIMATION_DURATION;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _skeleton = require("./skeleton.constant");
9
+
10
+ var _default = {
11
+ animationDuration: `${_skeleton.ANIMATION_DURATION}ms`,
12
+ animationTimingFunction: 'ease-in-out',
13
+ animationDelay: '0.5s',
14
+ animationIterationCount: 'infinite',
15
+ animationKeyframes: {
16
+ '0%': {
17
+ opacity: _skeleton.DEFAULT_OPACITY
18
+ },
19
+ '50%': {
20
+ opacity: _skeleton.OPACITY_STOP
21
+ },
22
+ '100%': {
23
+ opacity: _skeleton.DEFAULT_OPACITY
24
+ }
25
+ }
26
+ };
27
+ exports.default = _default;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var _Animated = _interopRequireDefault(require("react-native-web/dist/cjs/exports/Animated"));
11
+
12
+ var _skeleton = require("./skeleton.constant");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ const useSkeletonNativeAnimation = () => {
17
+ const fadeAnimation = (0, _react.useRef)(new _Animated.default.Value(_skeleton.DEFAULT_OPACITY)).current;
18
+ (0, _react.useEffect)(() => {
19
+ const fade = _Animated.default.sequence([_Animated.default.timing(fadeAnimation, {
20
+ toValue: _skeleton.OPACITY_STOP,
21
+ duration: _skeleton.ANIMATION_DURATION,
22
+ useNativeDriver: true
23
+ }), _Animated.default.timing(fadeAnimation, {
24
+ toValue: _skeleton.DEFAULT_OPACITY,
25
+ duration: _skeleton.ANIMATION_DURATION,
26
+ useNativeDriver: true
27
+ })]);
28
+
29
+ _Animated.default.loop(fade).start();
30
+ }, [fadeAnimation]);
31
+ return {
32
+ opacity: fadeAnimation
33
+ };
34
+ };
35
+
36
+ var _default = useSkeletonNativeAnimation;
37
+ exports.default = _default;