@bitrise/bitkit 10.0.1 → 10.1.0-alpha-chakra.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/package.json +23 -57
  2. package/src/Components/ButtonGroup/ButtonGroup.stories.tsx +1 -1
  3. package/src/Components/Dialog/Dialog.tsx +2 -1
  4. package/src/Components/EmptyState/EmptyState.theme.ts +1 -1
  5. package/src/Components/Tabs/Tab.tsx +2 -24
  6. package/src/Foundations/Breakpoints/Breakpoints.ts +9 -3
  7. package/src/Old/DatePicker/DatePicker.tsx +6 -6
  8. package/src/Old/DatePicker/DatePickerMonth.tsx +7 -7
  9. package/src/Old/Dropdown/Dropdown.tsx +3 -5
  10. package/src/Old/Dropdown/DropdownButton.tsx +2 -16
  11. package/src/Old/Dropdown/DropdownMenuItem.tsx +1 -2
  12. package/src/Old/Dropdown/DropdownMenuItemGroup.tsx +2 -2
  13. package/src/Old/Input/InputLabel.tsx +5 -3
  14. package/src/Old/Notification/Notification.tsx +3 -4
  15. package/src/Old/Notification/__snapshots__/Notification.test.tsx.snap +8 -12
  16. package/src/Old/Progress/ProgressBitbot.tsx +3 -3
  17. package/src/Old/Ribbon/Ribbon.tsx +4 -4
  18. package/src/Old/Status/Status404.tsx +3 -3
  19. package/src/Old/Status/Status500.tsx +4 -4
  20. package/src/Old/Table/TableHeaderCell.tsx +1 -1
  21. package/src/Old/Text/TextSizes.css +0 -39
  22. package/src/Old/Toggle/Toggle.tsx +1 -1
  23. package/src/Old/hooks/index.ts +0 -1
  24. package/src/Old/variables.css +0 -1
  25. package/src/Old/variables.ts +0 -3
  26. package/src/index.ts +2 -3
  27. package/src/old.ts +0 -64
  28. package/src/tsconfig.tsbuildinfo +1 -1
  29. package/src/Components/Transitions/Fade.stories.tsx +0 -26
  30. package/src/Components/Transitions/Fade.tsx +0 -12
  31. package/src/Old/AddonBeam/AddonBeam.css +0 -16
  32. package/src/Old/AddonBeam/AddonBeam.tsx +0 -117
  33. package/src/Old/AddonBeam/AddonBeamLink.tsx +0 -37
  34. package/src/Old/AddonFooter/AddonFooter.tsx +0 -24
  35. package/src/Old/AppLayout/AppLayout.css +0 -45
  36. package/src/Old/AppLayout/AppLayout.tsx +0 -21
  37. package/src/Old/AppLayout/AppLayoutBody.tsx +0 -10
  38. package/src/Old/AppLayout/AppLayoutHeader.tsx +0 -10
  39. package/src/Old/AppLayout/AppLayoutMain.tsx +0 -10
  40. package/src/Old/AppLayout/AppLayoutSidebar.tsx +0 -10
  41. package/src/Old/Avatar/Avatar.css +0 -4
  42. package/src/Old/Avatar/Avatar.tsx +0 -64
  43. package/src/Old/Avatar/avatarColors.ts +0 -26
  44. package/src/Old/Bounds/Bounds.tsx +0 -20
  45. package/src/Old/Button/Button.css +0 -249
  46. package/src/Old/Button/Button.test.tsx +0 -29
  47. package/src/Old/Button/Button.tsx +0 -55
  48. package/src/Old/Button/ButtonSize.ts +0 -3
  49. package/src/Old/Button/Buttons.test.tsx +0 -42
  50. package/src/Old/Button/Buttons.tsx +0 -34
  51. package/src/Old/Button/__snapshots__/Button.test.tsx.snap +0 -73
  52. package/src/Old/Button/__snapshots__/Buttons.test.tsx.snap +0 -45
  53. package/src/Old/ExternalLink/ExternalLink.tsx +0 -24
  54. package/src/Old/Icon/Icon.css +0 -4
  55. package/src/Old/Icon/Icon.tsx +0 -32
  56. package/src/Old/Icon/tsx/IconsAddOns.tsx +0 -14
  57. package/src/Old/Icon/tsx/IconsAddOnsColorTuorqouise.tsx +0 -20
  58. package/src/Old/Icon/tsx/IconsAddOnsColorViolet.tsx +0 -20
  59. package/src/Old/Icon/tsx/IconsAddOnsWhite.tsx +0 -20
  60. package/src/Old/Icon/tsx/IconsApp.tsx +0 -16
  61. package/src/Old/Icon/tsx/IconsArrowBack.tsx +0 -14
  62. package/src/Old/Icon/tsx/IconsArrowDown.tsx +0 -21
  63. package/src/Old/Icon/tsx/IconsArrowForward.tsx +0 -16
  64. package/src/Old/Icon/tsx/IconsArrowQuit.tsx +0 -14
  65. package/src/Old/Icon/tsx/IconsArrowUp.tsx +0 -14
  66. package/src/Old/Icon/tsx/IconsBackArrow.tsx +0 -13
  67. package/src/Old/Icon/tsx/IconsBell.tsx +0 -16
  68. package/src/Old/Icon/tsx/IconsBitbot.tsx +0 -16
  69. package/src/Old/Icon/tsx/IconsBitbotFailed.tsx +0 -18
  70. package/src/Old/Icon/tsx/IconsBitbucket.tsx +0 -26
  71. package/src/Old/Icon/tsx/IconsBitbucketFill.tsx +0 -14
  72. package/src/Old/Icon/tsx/IconsBitriseCertified.tsx +0 -19
  73. package/src/Old/Icon/tsx/IconsBook.tsx +0 -16
  74. package/src/Old/Icon/tsx/IconsBranchBranch.tsx +0 -16
  75. package/src/Old/Icon/tsx/IconsBranchCommit.tsx +0 -14
  76. package/src/Old/Icon/tsx/IconsBranchPull.tsx +0 -16
  77. package/src/Old/Icon/tsx/IconsBranchPush.tsx +0 -21
  78. package/src/Old/Icon/tsx/IconsBranchTag.tsx +0 -16
  79. package/src/Old/Icon/tsx/IconsBug.tsx +0 -16
  80. package/src/Old/Icon/tsx/IconsBuild.tsx +0 -14
  81. package/src/Old/Icon/tsx/IconsBuildstatusAborted.tsx +0 -16
  82. package/src/Old/Icon/tsx/IconsBuildstatusAbortedSolid.tsx +0 -15
  83. package/src/Old/Icon/tsx/IconsBuildstatusFailed.tsx +0 -16
  84. package/src/Old/Icon/tsx/IconsBuildstatusFailedSolid.tsx +0 -15
  85. package/src/Old/Icon/tsx/IconsBuildstatusLoading.tsx +0 -13
  86. package/src/Old/Icon/tsx/IconsBuildstatusLoadingAnimated.tsx +0 -31
  87. package/src/Old/Icon/tsx/IconsBuildstatusLoadingeeehh.tsx +0 -13
  88. package/src/Old/Icon/tsx/IconsBuildstatusLoadingeeehhWhite.tsx +0 -13
  89. package/src/Old/Icon/tsx/IconsBuildstatusNeverbuilt.tsx +0 -14
  90. package/src/Old/Icon/tsx/IconsBuildstatusSuccessful.tsx +0 -16
  91. package/src/Old/Icon/tsx/IconsBuildstatusSuccessfulSolid.tsx +0 -15
  92. package/src/Old/Icon/tsx/IconsCalendar.tsx +0 -16
  93. package/src/Old/Icon/tsx/IconsChain.tsx +0 -16
  94. package/src/Old/Icon/tsx/IconsChangePlan.tsx +0 -14
  95. package/src/Old/Icon/tsx/IconsChat.tsx +0 -14
  96. package/src/Old/Icon/tsx/IconsChatMessage.tsx +0 -16
  97. package/src/Old/Icon/tsx/IconsChevronDown.tsx +0 -13
  98. package/src/Old/Icon/tsx/IconsChevronLeft.tsx +0 -16
  99. package/src/Old/Icon/tsx/IconsChevronRight.tsx +0 -16
  100. package/src/Old/Icon/tsx/IconsChevronUp.tsx +0 -15
  101. package/src/Old/Icon/tsx/IconsClock.tsx +0 -16
  102. package/src/Old/Icon/tsx/IconsCloseSmall.tsx +0 -16
  103. package/src/Old/Icon/tsx/IconsCode.tsx +0 -16
  104. package/src/Old/Icon/tsx/IconsCoffee.tsx +0 -16
  105. package/src/Old/Icon/tsx/IconsConsole.tsx +0 -16
  106. package/src/Old/Icon/tsx/IconsCredit.tsx +0 -21
  107. package/src/Old/Icon/tsx/IconsCreditcard.tsx +0 -16
  108. package/src/Old/Icon/tsx/IconsDeleteNope.tsx +0 -15
  109. package/src/Old/Icon/tsx/IconsDeployment.tsx +0 -14
  110. package/src/Old/Icon/tsx/IconsDoc.tsx +0 -16
  111. package/src/Old/Icon/tsx/IconsDollars.tsx +0 -16
  112. package/src/Old/Icon/tsx/IconsDownload.tsx +0 -16
  113. package/src/Old/Icon/tsx/IconsDropdownArrows.tsx +0 -16
  114. package/src/Old/Icon/tsx/IconsDudes.tsx +0 -14
  115. package/src/Old/Icon/tsx/IconsDuplicate.tsx +0 -14
  116. package/src/Old/Icon/tsx/IconsEnterprise.tsx +0 -19
  117. package/src/Old/Icon/tsx/IconsErrorGeneral.tsx +0 -16
  118. package/src/Old/Icon/tsx/IconsFileDoc.tsx +0 -16
  119. package/src/Old/Icon/tsx/IconsFilePdf.tsx +0 -16
  120. package/src/Old/Icon/tsx/IconsFilePlist.tsx +0 -16
  121. package/src/Old/Icon/tsx/IconsFileZip.tsx +0 -16
  122. package/src/Old/Icon/tsx/IconsFilter.tsx +0 -16
  123. package/src/Old/Icon/tsx/IconsFlag.tsx +0 -13
  124. package/src/Old/Icon/tsx/IconsFolder.tsx +0 -16
  125. package/src/Old/Icon/tsx/IconsFullscreen.tsx +0 -14
  126. package/src/Old/Icon/tsx/IconsFullscreenExit.tsx +0 -14
  127. package/src/Old/Icon/tsx/IconsGauge.tsx +0 -16
  128. package/src/Old/Icon/tsx/IconsGithub.tsx +0 -14
  129. package/src/Old/Icon/tsx/IconsGitlab.tsx +0 -20
  130. package/src/Old/Icon/tsx/IconsGitlabFill.tsx +0 -14
  131. package/src/Old/Icon/tsx/IconsGlobe.tsx +0 -16
  132. package/src/Old/Icon/tsx/IconsGroup.tsx +0 -14
  133. package/src/Old/Icon/tsx/IconsHeart.tsx +0 -14
  134. package/src/Old/Icon/tsx/IconsHidePassword.tsx +0 -19
  135. package/src/Old/Icon/tsx/IconsHistory.tsx +0 -14
  136. package/src/Old/Icon/tsx/IconsImage.tsx +0 -14
  137. package/src/Old/Icon/tsx/IconsInfo.tsx +0 -14
  138. package/src/Old/Icon/tsx/IconsIntegrations.tsx +0 -14
  139. package/src/Old/Icon/tsx/IconsInteraction.tsx +0 -14
  140. package/src/Old/Icon/tsx/IconsInvoice.tsx +0 -16
  141. package/src/Old/Icon/tsx/IconsJapanese.tsx +0 -15
  142. package/src/Old/Icon/tsx/IconsKey.tsx +0 -14
  143. package/src/Old/Icon/tsx/IconsLaptop.tsx +0 -13
  144. package/src/Old/Icon/tsx/IconsLaptops.tsx +0 -16
  145. package/src/Old/Icon/tsx/IconsLightbulb.tsx +0 -16
  146. package/src/Old/Icon/tsx/IconsLock.tsx +0 -16
  147. package/src/Old/Icon/tsx/IconsLogin.tsx +0 -16
  148. package/src/Old/Icon/tsx/IconsLogout.tsx +0 -16
  149. package/src/Old/Icon/tsx/IconsMagnifier.tsx +0 -16
  150. package/src/Old/Icon/tsx/IconsMail.tsx +0 -16
  151. package/src/Old/Icon/tsx/IconsMenuGrid.tsx +0 -16
  152. package/src/Old/Icon/tsx/IconsMenuHamburger.tsx +0 -13
  153. package/src/Old/Icon/tsx/IconsMessage.tsx +0 -16
  154. package/src/Old/Icon/tsx/IconsMinusClose.tsx +0 -10
  155. package/src/Old/Icon/tsx/IconsMinusRemove.tsx +0 -16
  156. package/src/Old/Icon/tsx/IconsMobile.tsx +0 -16
  157. package/src/Old/Icon/tsx/IconsMonitoring.tsx +0 -14
  158. package/src/Old/Icon/tsx/IconsMoreHorizontal.tsx +0 -13
  159. package/src/Old/Icon/tsx/IconsMoreVertical.tsx +0 -17
  160. package/src/Old/Icon/tsx/IconsNoTie.tsx +0 -14
  161. package/src/Old/Icon/tsx/IconsNumero.tsx +0 -16
  162. package/src/Old/Icon/tsx/IconsOpenInBrowser.tsx +0 -16
  163. package/src/Old/Icon/tsx/IconsOverview.tsx +0 -14
  164. package/src/Old/Icon/tsx/IconsOwner.tsx +0 -19
  165. package/src/Old/Icon/tsx/IconsPause.tsx +0 -14
  166. package/src/Old/Icon/tsx/IconsPencil.tsx +0 -17
  167. package/src/Old/Icon/tsx/IconsPercent.tsx +0 -14
  168. package/src/Old/Icon/tsx/IconsPerson.tsx +0 -14
  169. package/src/Old/Icon/tsx/IconsPlatformsAndroid.tsx +0 -16
  170. package/src/Old/Icon/tsx/IconsPlatformsApple.tsx +0 -16
  171. package/src/Old/Icon/tsx/IconsPlatformsCordova.tsx +0 -14
  172. package/src/Old/Icon/tsx/IconsPlatformsFastlane.tsx +0 -14
  173. package/src/Old/Icon/tsx/IconsPlatformsFlutter.tsx +0 -14
  174. package/src/Old/Icon/tsx/IconsPlatformsGo.tsx +0 -13
  175. package/src/Old/Icon/tsx/IconsPlatformsIonic.tsx +0 -14
  176. package/src/Old/Icon/tsx/IconsPlatformsMacos.tsx +0 -14
  177. package/src/Old/Icon/tsx/IconsPlatformsNodejs.tsx +0 -13
  178. package/src/Old/Icon/tsx/IconsPlatformsOther.tsx +0 -21
  179. package/src/Old/Icon/tsx/IconsPlatformsReact.tsx +0 -14
  180. package/src/Old/Icon/tsx/IconsPlatformsXamarin.tsx +0 -14
  181. package/src/Old/Icon/tsx/IconsPlay.tsx +0 -16
  182. package/src/Old/Icon/tsx/IconsPlusAdd.tsx +0 -16
  183. package/src/Old/Icon/tsx/IconsPlusOpen.tsx +0 -13
  184. package/src/Old/Icon/tsx/IconsPower.tsx +0 -11
  185. package/src/Old/Icon/tsx/IconsRefresh.tsx +0 -13
  186. package/src/Old/Icon/tsx/IconsRequest.tsx +0 -14
  187. package/src/Old/Icon/tsx/IconsResponsiveness.tsx +0 -14
  188. package/src/Old/Icon/tsx/IconsSave.tsx +0 -14
  189. package/src/Old/Icon/tsx/IconsSecurityShield.tsx +0 -16
  190. package/src/Old/Icon/tsx/IconsSettings.tsx +0 -16
  191. package/src/Old/Icon/tsx/IconsShip.tsx +0 -14
  192. package/src/Old/Icon/tsx/IconsShowPassword.tsx +0 -16
  193. package/src/Old/Icon/tsx/IconsShuffle.tsx +0 -16
  194. package/src/Old/Icon/tsx/IconsStability.tsx +0 -16
  195. package/src/Old/Icon/tsx/IconsStack.tsx +0 -16
  196. package/src/Old/Icon/tsx/IconsStatus.tsx +0 -16
  197. package/src/Old/Icon/tsx/IconsStepThirdParty.tsx +0 -16
  198. package/src/Old/Icon/tsx/IconsStepUpgrade.tsx +0 -10
  199. package/src/Old/Icon/tsx/IconsStepUpgradeCircle.tsx +0 -11
  200. package/src/Old/Icon/tsx/IconsStepVersionOk.tsx +0 -11
  201. package/src/Old/Icon/tsx/IconsSteps.tsx +0 -14
  202. package/src/Old/Icon/tsx/IconsStepsColorTuorqouise.tsx +0 -14
  203. package/src/Old/Icon/tsx/IconsStepsColorViolet.tsx +0 -14
  204. package/src/Old/Icon/tsx/IconsStepsWhite.tsx +0 -14
  205. package/src/Old/Icon/tsx/IconsStopwatch.tsx +0 -16
  206. package/src/Old/Icon/tsx/IconsSupport.tsx +0 -16
  207. package/src/Old/Icon/tsx/IconsSwitch.tsx +0 -13
  208. package/src/Old/Icon/tsx/IconsTestFailed.tsx +0 -14
  209. package/src/Old/Icon/tsx/IconsTestInconclusive.tsx +0 -14
  210. package/src/Old/Icon/tsx/IconsTestInfo.tsx +0 -14
  211. package/src/Old/Icon/tsx/IconsTestSkipped.tsx +0 -14
  212. package/src/Old/Icon/tsx/IconsTestSuccess.tsx +0 -14
  213. package/src/Old/Icon/tsx/IconsTestWarning.tsx +0 -14
  214. package/src/Old/Icon/tsx/IconsTick.tsx +0 -13
  215. package/src/Old/Icon/tsx/IconsTime.tsx +0 -16
  216. package/src/Old/Icon/tsx/IconsTrace.tsx +0 -14
  217. package/src/Old/Icon/tsx/IconsTrash.tsx +0 -16
  218. package/src/Old/Icon/tsx/IconsTrigger.tsx +0 -16
  219. package/src/Old/Icon/tsx/IconsTwitter.tsx +0 -16
  220. package/src/Old/Icon/tsx/IconsValidateShield.tsx +0 -16
  221. package/src/Old/Icon/tsx/IconsWarning.tsx +0 -16
  222. package/src/Old/Icon/tsx/IconsWebUi.tsx +0 -17
  223. package/src/Old/Icon/tsx/IconsWindow.tsx +0 -16
  224. package/src/Old/Icon/tsx/IconsWorkflow.tsx +0 -16
  225. package/src/Old/Icon/tsx/IconsWorkflowFlow.tsx +0 -16
  226. package/src/Old/Icon/tsx/IconsWow.tsx +0 -16
  227. package/src/Old/Icon/tsx/index.ts +0 -694
  228. package/src/Old/Link/Link.css +0 -44
  229. package/src/Old/Link/Link.tsx +0 -30
  230. package/src/Old/Modal/Modal.css +0 -67
  231. package/src/Old/Modal/Modal.tsx +0 -117
  232. package/src/Old/Modal/ModalBody.tsx +0 -17
  233. package/src/Old/Modal/ModalHeader.tsx +0 -50
  234. package/src/Old/Modal/ModalHeaderProgress.tsx +0 -23
  235. package/src/Old/Modal/ModalTitle.tsx +0 -13
  236. package/src/Old/Progress/ProgressButtonContent.tsx +0 -35
  237. package/src/Old/Sidebar/Sidebar.css +0 -125
  238. package/src/Old/Sidebar/Sidebar.tsx +0 -25
  239. package/src/Old/Sidebar/SidebarHeader.tsx +0 -10
  240. package/src/Old/Sidebar/SidebarMenu.tsx +0 -30
  241. package/src/Old/Sidebar/SidebarMenuContext.ts +0 -7
  242. package/src/Old/Sidebar/SidebarMenuItem.tsx +0 -67
  243. package/src/Old/Sidebar/SidebarSubMenu.tsx +0 -33
  244. package/src/Old/Sidebar/SidebarSubMenuItem.tsx +0 -59
  245. package/src/Old/Tabs/Tab.tsx +0 -23
  246. package/src/Old/Tabs/Tabs.css +0 -30
  247. package/src/Old/Tabs/Tabs.tsx +0 -18
  248. package/src/Old/Tooltip/Tooltip.tsx +0 -85
  249. package/src/Old/hooks/useResizeObserver.ts +0 -40
package/package.json CHANGED
@@ -1,29 +1,16 @@
1
1
  {
2
2
  "name": "@bitrise/bitkit",
3
3
  "description": "Bitrise React component library",
4
- "version": "10.0.1",
4
+ "version": "10.1.0-alpha-chakra.2",
5
5
  "repository": "git@github.com:bitrise-io/bitkit.git",
6
6
  "main": "src/index.ts",
7
7
  "license": "UNLICENSED",
8
8
  "scripts": {
9
- "build": "yarn build:lib && yarn build:site",
10
- "build:docs": "ts-node ./scripts/build-docs",
11
9
  "build:icons": "ts-node ./scripts/build-icons.ts",
12
- "build:lib": "rm -rf ./lib && yarn build:lib:cjs && yarn build:lib:esn",
13
- "build:lib:esn": "tsc -p src -m esnext -t esnext --outDir lib/esn",
14
- "build:lib:cjs": "tsc -p src --outDir lib/cjs",
15
- "build:prepare": "rm -rf ./dist && mkdir dist && cp site/index.html dist && ln -s index.html dist/404.html",
16
- "build:site": "yarn build:prepare && yarn build:docs && yarn tsc:site && yarn build:site:esbuild",
17
- "tsc:site": "tsc --noEmit -p site/tsconfig.json",
18
- "build:site:esbuild": "esbuild --bundle site/index.tsx --outdir=dist --target=esnext --loader:.woff2=file --loader:.woff=file --minify --sourcemap",
19
10
  "commitlint": "commitlint",
20
- "lint": "yarn lint:js",
21
- "lint:js": "eslint src/**/*.tsx",
11
+ "lint": "eslint src/**/*.tsx",
22
12
  "semantic-release": "semantic-release",
23
- "serve": "superstatic ./dist --port 4001 -c superstatic.json",
24
- "start": "yarn build:prepare && concurrently \"yarn start:docs\" \"yarn start:esbuild\" \"yarn serve\"",
25
- "start:esbuild": "esbuild --bundle site/index.tsx --watch --outdir=dist --target=esnext --loader:.woff2=file --loader:.woff=file",
26
- "start:docs": "ts-node ./scripts/build-docs-watch",
13
+ "start": "yarn storybook",
27
14
  "test": "jest ./src",
28
15
  "storybook": "start-storybook -p 6006",
29
16
  "build-storybook": "build-storybook"
@@ -33,15 +20,14 @@
33
20
  "framer-motion": "./node_modules/framer-motion/dist/cjs"
34
21
  },
35
22
  "dependencies": {
36
- "@chakra-ui/react": "^2.2.1",
23
+ "@chakra-ui/react": "^2.2.4",
37
24
  "@emotion/react": "^11.9.3",
38
25
  "@emotion/styled": "^11.9.3",
39
- "@juggle/resize-observer": "^3.3.1",
40
26
  "@popperjs/core": "^2.11.5",
41
27
  "classnames": "^2.3.1",
42
28
  "clipboard": "^2.0.11",
43
- "framer-motion": "^6.3.15",
44
- "luxon": "^2.4.0",
29
+ "framer-motion": "^6.5.1",
30
+ "luxon": "^2.5.0",
45
31
  "react": "^18.2.0",
46
32
  "react-dom": "^18.2.0",
47
33
  "react-popper": "^2.3.0"
@@ -51,13 +37,13 @@
51
37
  "react-dom": "^18.2.0"
52
38
  },
53
39
  "devDependencies": {
54
- "@babel/core": "^7.18.5",
55
- "@babel/parser": "^7.18.5",
40
+ "@babel/core": "^7.18.9",
41
+ "@babel/parser": "^7.18.9",
56
42
  "@bitrise/eslint-plugin": "^2.2.0",
57
- "@chakra-ui/cli": "^2.1.0",
43
+ "@chakra-ui/cli": "^2.1.2",
58
44
  "@commitlint/cli": "^16.3.0",
59
45
  "@commitlint/config-conventional": "^16.2.4",
60
- "@google-cloud/storage": "^5.19.4",
46
+ "@google-cloud/storage": "^5.20.5",
61
47
  "@semantic-release/changelog": "^6.0.1",
62
48
  "@semantic-release/commit-analyzer": "^9.0.2",
63
49
  "@semantic-release/git": "^10.0.1",
@@ -71,63 +57,43 @@
71
57
  "@storybook/react": "^6.5.9",
72
58
  "@storybook/testing-library": "^0.0.13",
73
59
  "@storybook/theming": "^6.5.9",
74
- "@svgr/cli": "^6.2.1",
75
- "@svgr/core": "^6.2.1",
60
+ "@svgr/core": "^6.3.0",
76
61
  "@types/cheerio": "^0.22.31",
77
62
  "@types/clipboard": "^2.0.1",
78
63
  "@types/enzyme": "^3.10.12",
79
- "@types/fscreen": "^1.0.1",
80
- "@types/jest": "^27.5.1",
81
- "@types/lodash.sample": "^4.2.7",
82
- "@types/lodash.shuffle": "^4.2.7",
83
- "@types/luxon": "^2.3.2",
84
- "@types/prismjs": "^1.26.0",
85
- "@types/react": "18.0.14",
86
- "@types/react-dom": "^18.0.5",
87
- "@types/react-router": "^5.1.18",
88
- "@types/react-router-dom": "^5.3.3",
64
+ "@types/jest": "^27.5.2",
65
+ "@types/luxon": "^2.4.0",
66
+ "@types/react": "18.0.15",
67
+ "@types/react-dom": "^18.0.6",
89
68
  "@types/vfile-message": "^2.0.0",
90
- "@typescript-eslint/eslint-plugin": "^5.29.0",
91
- "@typescript-eslint/parser": "^5.29.0",
69
+ "@typescript-eslint/eslint-plugin": "^5.30.7",
70
+ "@typescript-eslint/parser": "^5.30.7",
92
71
  "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7",
93
72
  "axios": "^0.27.2",
94
73
  "babel-eslint": "^10.0.1",
95
74
  "babel-loader": "^8.2.5",
96
75
  "babel-plugin-polyfill-corejs2": "^0.3.1",
97
- "concurrently": "^7.2.2",
98
76
  "enzyme": "^3.11.0",
99
77
  "enzyme-to-json": "^3.6.2",
100
- "esbuild": "^0.14.47",
101
- "eslint": "^8.18.0",
78
+ "eslint": "^8.20.0",
102
79
  "eslint-plugin-import": "^2.26.0",
103
- "eslint-plugin-jest": "^26.5.3",
80
+ "eslint-plugin-jest": "^26.6.0",
104
81
  "eslint-plugin-jsx-a11y": "^6.6.0",
105
- "eslint-plugin-prettier": "^4.1.0",
82
+ "eslint-plugin-prettier": "^4.2.1",
106
83
  "eslint-plugin-react": "^7.30.1",
107
84
  "eslint-plugin-react-hooks": "^4.6.0",
108
- "eslint-plugin-storybook": "^0.5.13",
85
+ "eslint-plugin-storybook": "^0.6.1",
109
86
  "eslint-plugin-testing-library": "^5.5.1",
110
- "fscreen": "^1.2.0",
111
87
  "glob": "^8.0.3",
112
88
  "husky": "^7.0.4",
113
89
  "identity-obj-proxy": "^3.0.0",
114
90
  "jest": "^27.5.1",
115
91
  "jsdom": "^19.0.0",
116
- "lodash.sample": "^4.2.1",
117
- "lodash.shuffle": "^4.2.0",
118
- "node-watch": "^0.7.3",
119
92
  "prettier": "^2.7.1",
120
- "prismjs": "^1.28.0",
121
- "react": "^18.2.0",
122
- "react-docgen": "5.4.2",
123
- "react-dom": "^18.2.0",
124
- "react-router": "^5.3.1",
125
- "react-router-dom": "^5.3.1",
126
93
  "recast": "^0.21.1",
127
94
  "semantic-release": "^19.0.3",
128
- "superstatic": "^8.0.0",
129
95
  "ts-jest": "^27.1.5",
130
- "ts-node": "^10.8.1",
96
+ "ts-node": "^10.9.1",
131
97
  "tsconfig-paths-webpack-plugin": "^3.5.2",
132
98
  "typescript": "^4.7.4",
133
99
  "webpack": "^5.73.0"
@@ -153,7 +119,7 @@
153
119
  },
154
120
  "resolutions": {
155
121
  "**/ast-types": "npm:@gkz/ast-types",
156
- "ts-node": "^10.8.1",
122
+ "ts-node": "^10.9.1",
157
123
  "@types/react": "17.0.40"
158
124
  }
159
125
  }
@@ -7,7 +7,7 @@ export default {
7
7
  } as ComponentMeta<typeof ButtonGroup>;
8
8
 
9
9
  const Template: ComponentStory<typeof ButtonGroup> = (props) => (
10
- <ButtonGroup {...props} width="900px" flexDirection="column">
10
+ <ButtonGroup {...props} width="900px" flexDirection="row">
11
11
  <Button>Button 1</Button>
12
12
  <Button>Button 2</Button>
13
13
  <Button>Button 3</Button>
@@ -7,6 +7,7 @@ import {
7
7
  useBreakpointValue,
8
8
  HTMLChakraProps,
9
9
  } from '@chakra-ui/react';
10
+ import { BREAKPOINTS } from '../../Foundations/Breakpoints/Breakpoints';
10
11
  import Icon from '../Icon/Icon';
11
12
  import Text from '../Text/Text';
12
13
 
@@ -33,7 +34,7 @@ const Dialog = ({
33
34
  trapFocus,
34
35
  ...rest
35
36
  }: DialogProps) => {
36
- const dialogSize = useBreakpointValue({ mobile: 'mobile', desktop: size });
37
+ const dialogSize = useBreakpointValue({ [BREAKPOINTS.MOBILE]: 'mobile', [BREAKPOINTS.DESKTOP]: size });
37
38
  return (
38
39
  <Modal
39
40
  closeOnEsc={isClosable}
@@ -10,7 +10,7 @@ const EmptyStateTheme: ComponentStyleConfig = {
10
10
  justifyContent: 'center',
11
11
  paddingX: '16',
12
12
  paddingY: {
13
- mobile: '32',
13
+ base: '32',
14
14
  desktop: '48',
15
15
  },
16
16
  backgroundColor: 'neutral.95',
@@ -1,6 +1,4 @@
1
1
  import {
2
- Badge as ChakraBadge,
3
- BadgeProps as ChakraBadgeProps,
4
2
  Button,
5
3
  Tab as ChakraTab,
6
4
  TabProps as ChakraTabProps,
@@ -8,28 +6,8 @@ import {
8
6
  useMultiStyleConfig,
9
7
  useTab,
10
8
  } from '@chakra-ui/react';
11
- import Icon from '../../Old/Icon/Icon';
12
- import { TypeIconName } from '../../Old/Icon/tsx';
13
-
14
- // TODO: separated component
15
- interface BadgeProps extends ChakraBadgeProps {
16
- backgroundColor?: ChakraBadgeProps['backgroundColor'];
17
- children?: number | string;
18
- color?: ChakraBadgeProps['color'];
19
- }
20
-
21
- const Badge = (props: BadgeProps) => {
22
- const properties: ChakraBadgeProps = {
23
- ...props,
24
- borderRadius: '4',
25
- fontSize: '1',
26
- lineHeight: '1',
27
- paddingY: '3px',
28
- paddingX: '8',
29
- textTransform: 'uppercase',
30
- };
31
- return <ChakraBadge {...properties} />;
32
- };
9
+ import Badge, { BadgeProps } from '../Badge/Badge';
10
+ import Icon, { TypeIconName } from '../Icon/Icon';
33
11
 
34
12
  export interface TabProps extends ChakraTabProps {
35
13
  badge?: BadgeProps;
@@ -1,7 +1,13 @@
1
+ export const BREAKPOINTS = {
2
+ MOBILE: 'base',
3
+ DESKTOP: 'desktop',
4
+ WIDE: 'wide',
5
+ };
6
+
1
7
  const breakpoints = {
2
- mobile: '0rem',
3
- desktop: '53rem', // 848px
4
- wide: '101rem', // 1616px
8
+ [BREAKPOINTS.MOBILE]: '0rem',
9
+ [BREAKPOINTS.DESKTOP]: '53rem', // 848px
10
+ [BREAKPOINTS.WIDE]: '101rem', // 1616px
5
11
  };
6
12
 
7
13
  export default breakpoints;
@@ -3,8 +3,8 @@ import * as React from 'react';
3
3
  import { DateTime } from 'luxon';
4
4
  import { ReferenceChildrenProps } from 'react-popper';
5
5
  import { useMediaQuery, useSyncedStateAndProps } from '../hooks';
6
- import Button from '../Button/Button';
7
- import Buttons from '../Button/Buttons';
6
+ import Button from '../../Components/Button/Button';
7
+ import ButtonGroup from '../../Components/ButtonGroup/ButtonGroup';
8
8
  import { Props as FlexProps } from '../Flex/Flex';
9
9
  import Placement from '../Placement/Placement';
10
10
  import PlacementArea from '../Placement/PlacementArea';
@@ -175,15 +175,15 @@ const DatePicker: React.FunctionComponent<Props> = (props: Props) => {
175
175
  )}
176
176
  </PlacementArea>
177
177
 
178
- <Buttons alignChildren="end" margin="x2" paddingHorizontal="x8">
179
- <Button level="secondary" onClick={handleClose} size="small">
178
+ <ButtonGroup alignItems="flex-end" marginY="8" paddingX="32">
179
+ <Button variant="secondary" onClick={handleClose} size="small">
180
180
  Cancel
181
181
  </Button>
182
182
 
183
- <Button level="primary" onClick={handleApply} size="small">
183
+ <Button onClick={handleApply} size="small">
184
184
  Apply
185
185
  </Button>
186
- </Buttons>
186
+ </ButtonGroup>
187
187
  </PlacementArea>
188
188
  )}
189
189
  </Placement>
@@ -2,9 +2,9 @@ import * as React from 'react';
2
2
  import { DateTime, Info } from 'luxon';
3
3
  import Base, { Props as BaseProps } from '../Base/Base';
4
4
  import Flex from '../Flex/Flex';
5
- import Icon from '../Icon/Icon';
6
- import Link from '../Link/Link';
7
- import Text from '../Text/Text';
5
+ import Icon from '../../Components/Icon/Icon';
6
+ import Link from '../../Components/Link/Link';
7
+ import Text from '../../Components/Text/Text';
8
8
  import DatePickerGrid from './DatePickerGrid';
9
9
  import DatePickerDay from './DatePickerDay';
10
10
 
@@ -40,18 +40,18 @@ const DatePickerMonth: React.FunctionComponent<Props> = (props: Props) => {
40
40
  <Flex alignChildren="middle" direction="horizontal" gap="x4" margin="x4" paddingHorizontal="x12">
41
41
  <Flex>
42
42
  {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
43
- <Link onClick={onPreviousMonth}>
43
+ <Link as="button" onClick={onPreviousMonth}>
44
44
  <Icon name="ChevronLeft" />
45
45
  </Link>
46
46
  </Flex>
47
47
 
48
48
  <Flex grow>
49
- <Text align="middle">{viewDate.toFormat('MMMM yyyy')}</Text>
49
+ <Text align="center">{viewDate.toFormat('MMMM yyyy')}</Text>
50
50
  </Flex>
51
51
 
52
52
  <Flex>
53
53
  {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
54
- <Link onClick={onNextMonth}>
54
+ <Link as="button" onClick={onNextMonth}>
55
55
  <Icon name="ChevronRight" />
56
56
  </Link>
57
57
  </Flex>
@@ -59,7 +59,7 @@ const DatePickerMonth: React.FunctionComponent<Props> = (props: Props) => {
59
59
 
60
60
  <DatePickerGrid margin="x1">
61
61
  {daysOfTheWeek.map((day) => (
62
- <Text align="middle" key={day} paddingVertical="x4" size="2" textColor="neutral.70" uppercase>
62
+ <Text textAlign="center" key={day} paddingY="16" size="2" color="neutral.70" textTransform="uppercase">
63
63
  {day}
64
64
  </Text>
65
65
  ))}
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import Placement from '../Placement/Placement';
3
3
  import PlacementManager from '../Placement/PlacementManager';
4
4
  import PlacementReference from '../Placement/PlacementReference';
5
- import Text from '../Text/Text';
5
+ import Text from '../../Components/Text/Text';
6
6
  import DropdownButton, { Props as DropdownButtonProps } from './DropdownButton';
7
7
  import DropdownMenu from './DropdownMenu';
8
8
  import DropdownMenuItem from './DropdownMenuItem';
@@ -58,16 +58,14 @@ const Dropdown: React.FunctionComponent<Props> = (props: Props) => {
58
58
  return (
59
59
  <PlacementManager>
60
60
  <PlacementReference>
61
- {({ ref }) => (
61
+ {() => (
62
62
  <DropdownButton
63
63
  {...rest}
64
- alignChildrenHorizontal="start"
65
- innerRef={ref}
66
64
  onClick={() => {
67
65
  setVisible(!visible);
68
66
  }}
69
67
  >
70
- <Text ellipsis>{children}</Text>
68
+ <Text hasEllipsis>{children}</Text>
71
69
  </DropdownButton>
72
70
  )}
73
71
  </PlacementReference>
@@ -1,7 +1,5 @@
1
1
  import * as React from 'react';
2
- import Button, { Props as ButtonProps } from '../Button/Button';
3
- import Flex from '../Flex/Flex';
4
- import Icon from '../Icon/Icon';
2
+ import Button, { ButtonProps } from '../../Components/Button/Button';
5
3
 
6
4
  export type Props = Omit<ButtonProps, 'level'>;
7
5
 
@@ -10,19 +8,7 @@ export type Props = Omit<ButtonProps, 'level'>;
10
8
  * standard prop configuration for a Dropdown.
11
9
  */
12
10
  const DropdownButton: React.FunctionComponent<Props> = (props: Props) => {
13
- const { children } = props;
14
-
15
- return (
16
- <Button type="button" {...props} alignChildrenHorizontal="start" fullWidth gap="x4" level="secondary">
17
- <Flex alignChildrenVertical="middle" direction="horizontal" gap="x2" grow shrink>
18
- {children}
19
- </Flex>
20
-
21
- <Flex>
22
- <Icon name="ChevronDown" />
23
- </Flex>
24
- </Button>
25
- );
11
+ return <Button width="100%" variant="secondary" rightIconName="ChevronDown" {...props} />;
26
12
  };
27
13
 
28
14
  export default DropdownButton;
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import Flex, { Props as FlexProps } from '../Flex/Flex';
4
- import Icon from '../Icon/Icon';
5
- import { TypeIconName } from '../Icon/tsx';
4
+ import Icon, { TypeIconName } from '../../Components/Icon/Icon';
6
5
  import Visibility from '../Visibility/Visibility';
7
6
 
8
7
  export interface Props extends FlexProps {
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import Flex, { Props as FlexProps } from '../Flex/Flex';
4
- import Text from '../Text/Text';
4
+ import Text from '../../Components/Text/Text';
5
5
 
6
6
  export interface Props extends FlexProps {
7
7
  text: string;
@@ -9,7 +9,7 @@ export interface Props extends FlexProps {
9
9
 
10
10
  const DropdownMenuItemGroup: React.FunctionComponent<Props> = ({ text, children, className, ...rest }: Props) => (
11
11
  <Flex className={classnames('DropdownMenu__group', className)} {...rest}>
12
- <Text className="DropdownMenu__group-text" size="2" textColor="neutral.50">
12
+ <Text className="DropdownMenu__group-text" size="2" color="neutral.50">
13
13
  {text}
14
14
  </Text>
15
15
  {children}
@@ -1,14 +1,16 @@
1
1
  import * as React from 'react';
2
- import Text, { Props as TextProps } from '../Text/Text';
2
+ import Text, { TextProps } from '../../Components/Text/Text';
3
3
 
4
- export type Props = TextProps;
4
+ export type Props = {
5
+ htmlFor?: string | undefined;
6
+ } & TextProps;
5
7
 
6
8
  /**
7
9
  * Provides specific styling for a label that accompanies an
8
10
  * input.
9
11
  */
10
12
  const InputLabel: React.FunctionComponent<Props> = (props: Props) => {
11
- return <Text {...props} Component="label" margin="x1" size="3" textColor="purple.10" weight="bold" />;
13
+ return <Text {...props} as="label" marginY="4" size="3" color="purple.10" fontWeight="bold" />;
12
14
  };
13
15
 
14
16
  export default InputLabel;
@@ -1,9 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import Flex, { Props as FlexProps } from '../Flex/Flex';
4
- import Icon from '../Icon/Icon';
5
- import { TypeIconName } from '../Icon/tsx';
6
- import Link from '../Link/Link';
4
+ import Icon, { TypeIconName } from '../../Components/Icon/Icon';
5
+ import Link from '../../Components/Link/Link';
7
6
  import ProgressSpinner from '../Progress/ProgressSpinner';
8
7
  import './Notification.css';
9
8
 
@@ -58,7 +57,7 @@ const Notification: React.FunctionComponent<Props> = (props: Props) => {
58
57
  {onRemove && (
59
58
  <Flex>
60
59
  {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
61
- <Link clickable onClick={onRemove}>
60
+ <Link as="button" onClick={onRemove}>
62
61
  <Icon name="CloseSmall" />
63
62
  </Link>
64
63
  </Flex>
@@ -9,9 +9,8 @@ exports[`Notification default icon can be overridden 1`] = `
9
9
  padding="x3"
10
10
  >
11
11
  <Flex>
12
- <Icon
12
+ <ForwardRef
13
13
  name="Bell"
14
- size="1.5rem"
15
14
  />
16
15
  </Flex>
17
16
  <Flex
@@ -32,9 +31,8 @@ exports[`Notification default template 1`] = `
32
31
  padding="x3"
33
32
  >
34
33
  <Flex>
35
- <Icon
34
+ <ForwardRef
36
35
  name="ErrorGeneral"
37
- size="1.5rem"
38
36
  />
39
37
  </Flex>
40
38
  <Flex
@@ -55,9 +53,8 @@ exports[`Notification with onRemove has a close icon 1`] = `
55
53
  padding="x3"
56
54
  >
57
55
  <Flex>
58
- <Icon
56
+ <ForwardRef
59
57
  name="ErrorGeneral"
60
- size="1.5rem"
61
58
  />
62
59
  </Flex>
63
60
  <Flex
@@ -67,16 +64,15 @@ exports[`Notification with onRemove has a close icon 1`] = `
67
64
  Content
68
65
  </Flex>
69
66
  <Flex>
70
- <Link
71
- Component="a"
72
- clickable={true}
67
+ <ForwardRef
68
+ as="button"
69
+ isUnderlined={false}
73
70
  onClick={[Function]}
74
71
  >
75
- <Icon
72
+ <ForwardRef
76
73
  name="CloseSmall"
77
- size="1.5rem"
78
74
  />
79
- </Link>
75
+ </ForwardRef>
80
76
  </Flex>
81
77
  </Flex>
82
78
  `;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Props as BaseProps } from '../Base/Base';
3
- import Text from '../Text/Text';
3
+ import Text from '../../Components/Text/Text';
4
4
 
5
5
  export interface Props extends BaseProps {
6
6
  /**
@@ -62,7 +62,7 @@ const ProgressBitbot: React.FunctionComponent<Props> = (props: Props) => {
62
62
  const { content, size, ...rest } = props;
63
63
 
64
64
  return (
65
- <Text {...rest} align="middle">
65
+ <Text {...rest} align="center">
66
66
  <svg fill="currentColor" height={size} viewBox="0 0 24 24" width={size}>
67
67
  <g fill="currentColor" fillRule="evenodd" stroke="none" strokeWidth="1">
68
68
  <path d={dot0}>
@@ -159,7 +159,7 @@ const ProgressBitbot: React.FunctionComponent<Props> = (props: Props) => {
159
159
  </svg>
160
160
 
161
161
  {content && (
162
- <Text align="middle" letterSpacing="x5" size="1" uppercase>
162
+ <Text align="center" letterSpacing="20" size="1" textTransform="uppercase">
163
163
  {content}
164
164
  </Text>
165
165
  )}
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import Flex, { Props as FlexProps } from '../Flex/Flex';
4
- import Icon from '../Icon/Icon';
5
- import Link from '../Link/Link';
4
+ import Icon from '../../Components/Icon/Icon';
5
+ import Link from '../../Components/Link/Link';
6
6
  import './Ribbon.css';
7
7
  import Base from '../Base/Base';
8
8
 
@@ -38,8 +38,8 @@ const Ribbon: React.FunctionComponent<Props> = (props: Props) => {
38
38
  {onRemove && (
39
39
  <Flex>
40
40
  {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}
41
- <Link clickable onClick={onRemove}>
42
- <Icon name="CloseSmall" size="1.5rem" />
41
+ <Link as="button" onClick={onRemove}>
42
+ <Icon name="CloseSmall" />
43
43
  </Link>
44
44
  </Flex>
45
45
  )}
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { useMediaQuery } from '../hooks';
3
3
  import Flex, { Props as FlexProps } from '../Flex/Flex';
4
4
  import Image from '../Image/Image';
5
- import Text from '../Text/Text';
5
+ import Text from '../../Components/Text/Text';
6
6
 
7
7
  export type Props = FlexProps;
8
8
 
@@ -21,10 +21,10 @@ const Status404: React.FunctionComponent<Props> = (props: Props) => {
21
21
  gap={match('65rem') ? 'x8' : 'x4'}
22
22
  paddingHorizontal="x6"
23
23
  >
24
- <Text align="middle" size="7" weight="bold">
24
+ <Text align="center" size="7" fontWeight="bold">
25
25
  404
26
26
  </Text>
27
- <Text align="middle" size="6" weight="bold">
27
+ <Text align="center" size="6" fontWeight="bold">
28
28
  The coordinates you are looking for do not exist
29
29
  </Text>
30
30
  </Flex>
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { useMediaQuery } from '../hooks';
3
3
  import Flex, { Props as FlexProps } from '../Flex/Flex';
4
4
  import Image from '../Image/Image';
5
- import Text from '../Text/Text';
5
+ import Text from '../../Components/Text/Text';
6
6
 
7
7
  export type Props = FlexProps;
8
8
 
@@ -20,15 +20,15 @@ const Status500: React.FunctionComponent<Props> = (props: Props) => {
20
20
  direction={match('65rem') ? 'horizontal' : 'vertical'}
21
21
  gap={match('65rem') ? 'x8' : 'x4'}
22
22
  >
23
- <Text align="middle" size="7" weight="bold">
23
+ <Text align="center" size="7" fontWeight="bold">
24
24
  500
25
25
  </Text>
26
- <Text align="middle" size="2" uppercase weight="bold">
26
+ <Text align="center" size="2" textTransform="uppercase" fontWeight="bold">
27
27
  Something went wrong
28
28
  </Text>
29
29
  </Flex>
30
30
 
31
- <Text align="middle" letterSpacing="x2" margin="x5" size="4">
31
+ <Text align="center" letterSpacing="8" marginY="20" size="4">
32
32
  Everything is under control, we will be back soon. Until then keep refreshing your browser.
33
33
  </Text>
34
34
 
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import classnames from 'classnames';
3
3
  import Flex from '../Flex/Flex';
4
- import Icon from '../Icon/Icon';
4
+ import Icon from '../../Components/Icon/Icon';
5
5
  import Text, { Props as TextProps } from '../Text/Text';
6
6
  import Visibility from '../Visibility/Visibility';
7
7
  import VisibilityContainer from '../Visibility/VisibilityContainer';