@bitrise/bitkit 10.1.0-alpha-chakra.2 → 10.1.0-alpha-breadcrumb.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 (251) hide show
  1. package/package.json +57 -23
  2. package/src/Components/Breadcrumb/Breadcrumb.stories.tsx +30 -0
  3. package/src/Components/Breadcrumb/Breadcrumb.theme.ts +25 -0
  4. package/src/Components/Breadcrumb/Breadcrumb.tsx +50 -0
  5. package/src/Components/Breadcrumb/BreadcrumbLink.tsx +33 -0
  6. package/src/Components/Dialog/Dialog.tsx +4 -0
  7. package/src/Components/Tabs/Tab.tsx +24 -2
  8. package/src/Components/Transitions/Fade.stories.tsx +26 -0
  9. package/src/Components/Transitions/Fade.tsx +12 -0
  10. package/src/Old/AddonBeam/AddonBeam.css +16 -0
  11. package/src/Old/AddonBeam/AddonBeam.tsx +117 -0
  12. package/src/Old/AddonBeam/AddonBeamLink.tsx +37 -0
  13. package/src/Old/AddonFooter/AddonFooter.tsx +24 -0
  14. package/src/Old/AppLayout/AppLayout.css +45 -0
  15. package/src/Old/AppLayout/AppLayout.tsx +21 -0
  16. package/src/Old/AppLayout/AppLayoutBody.tsx +10 -0
  17. package/src/Old/AppLayout/AppLayoutHeader.tsx +10 -0
  18. package/src/Old/AppLayout/AppLayoutMain.tsx +10 -0
  19. package/src/Old/AppLayout/AppLayoutSidebar.tsx +10 -0
  20. package/src/Old/Avatar/Avatar.css +4 -0
  21. package/src/Old/Avatar/Avatar.tsx +64 -0
  22. package/src/Old/Avatar/avatarColors.ts +26 -0
  23. package/src/Old/Bounds/Bounds.tsx +20 -0
  24. package/src/Old/Button/Button.css +249 -0
  25. package/src/Old/Button/Button.test.tsx +29 -0
  26. package/src/Old/Button/Button.tsx +55 -0
  27. package/src/Old/Button/ButtonSize.ts +3 -0
  28. package/src/Old/Button/Buttons.test.tsx +42 -0
  29. package/src/Old/Button/Buttons.tsx +34 -0
  30. package/src/Old/Button/__snapshots__/Button.test.tsx.snap +73 -0
  31. package/src/Old/Button/__snapshots__/Buttons.test.tsx.snap +45 -0
  32. package/src/Old/DatePicker/DatePicker.tsx +6 -6
  33. package/src/Old/DatePicker/DatePickerMonth.tsx +7 -7
  34. package/src/Old/Dropdown/Dropdown.tsx +5 -3
  35. package/src/Old/Dropdown/DropdownButton.tsx +16 -2
  36. package/src/Old/Dropdown/DropdownMenuItem.tsx +2 -1
  37. package/src/Old/Dropdown/DropdownMenuItemGroup.tsx +2 -2
  38. package/src/Old/ExternalLink/ExternalLink.tsx +24 -0
  39. package/src/Old/Icon/Icon.css +4 -0
  40. package/src/Old/Icon/Icon.tsx +32 -0
  41. package/src/Old/Icon/tsx/IconsAddOns.tsx +14 -0
  42. package/src/Old/Icon/tsx/IconsAddOnsColorTuorqouise.tsx +20 -0
  43. package/src/Old/Icon/tsx/IconsAddOnsColorViolet.tsx +20 -0
  44. package/src/Old/Icon/tsx/IconsAddOnsWhite.tsx +20 -0
  45. package/src/Old/Icon/tsx/IconsApp.tsx +16 -0
  46. package/src/Old/Icon/tsx/IconsArrowBack.tsx +14 -0
  47. package/src/Old/Icon/tsx/IconsArrowDown.tsx +21 -0
  48. package/src/Old/Icon/tsx/IconsArrowForward.tsx +16 -0
  49. package/src/Old/Icon/tsx/IconsArrowQuit.tsx +14 -0
  50. package/src/Old/Icon/tsx/IconsArrowUp.tsx +14 -0
  51. package/src/Old/Icon/tsx/IconsBackArrow.tsx +13 -0
  52. package/src/Old/Icon/tsx/IconsBell.tsx +16 -0
  53. package/src/Old/Icon/tsx/IconsBitbot.tsx +16 -0
  54. package/src/Old/Icon/tsx/IconsBitbotFailed.tsx +18 -0
  55. package/src/Old/Icon/tsx/IconsBitbucket.tsx +26 -0
  56. package/src/Old/Icon/tsx/IconsBitbucketFill.tsx +14 -0
  57. package/src/Old/Icon/tsx/IconsBitriseCertified.tsx +19 -0
  58. package/src/Old/Icon/tsx/IconsBook.tsx +16 -0
  59. package/src/Old/Icon/tsx/IconsBranchBranch.tsx +16 -0
  60. package/src/Old/Icon/tsx/IconsBranchCommit.tsx +14 -0
  61. package/src/Old/Icon/tsx/IconsBranchPull.tsx +16 -0
  62. package/src/Old/Icon/tsx/IconsBranchPush.tsx +21 -0
  63. package/src/Old/Icon/tsx/IconsBranchTag.tsx +16 -0
  64. package/src/Old/Icon/tsx/IconsBug.tsx +16 -0
  65. package/src/Old/Icon/tsx/IconsBuild.tsx +14 -0
  66. package/src/Old/Icon/tsx/IconsBuildstatusAborted.tsx +16 -0
  67. package/src/Old/Icon/tsx/IconsBuildstatusAbortedSolid.tsx +15 -0
  68. package/src/Old/Icon/tsx/IconsBuildstatusFailed.tsx +16 -0
  69. package/src/Old/Icon/tsx/IconsBuildstatusFailedSolid.tsx +15 -0
  70. package/src/Old/Icon/tsx/IconsBuildstatusLoading.tsx +13 -0
  71. package/src/Old/Icon/tsx/IconsBuildstatusLoadingAnimated.tsx +31 -0
  72. package/src/Old/Icon/tsx/IconsBuildstatusLoadingeeehh.tsx +13 -0
  73. package/src/Old/Icon/tsx/IconsBuildstatusLoadingeeehhWhite.tsx +13 -0
  74. package/src/Old/Icon/tsx/IconsBuildstatusNeverbuilt.tsx +14 -0
  75. package/src/Old/Icon/tsx/IconsBuildstatusSuccessful.tsx +16 -0
  76. package/src/Old/Icon/tsx/IconsBuildstatusSuccessfulSolid.tsx +15 -0
  77. package/src/Old/Icon/tsx/IconsCalendar.tsx +16 -0
  78. package/src/Old/Icon/tsx/IconsChain.tsx +16 -0
  79. package/src/Old/Icon/tsx/IconsChangePlan.tsx +14 -0
  80. package/src/Old/Icon/tsx/IconsChat.tsx +14 -0
  81. package/src/Old/Icon/tsx/IconsChatMessage.tsx +16 -0
  82. package/src/Old/Icon/tsx/IconsChevronDown.tsx +13 -0
  83. package/src/Old/Icon/tsx/IconsChevronLeft.tsx +16 -0
  84. package/src/Old/Icon/tsx/IconsChevronRight.tsx +16 -0
  85. package/src/Old/Icon/tsx/IconsChevronUp.tsx +15 -0
  86. package/src/Old/Icon/tsx/IconsClock.tsx +16 -0
  87. package/src/Old/Icon/tsx/IconsCloseSmall.tsx +16 -0
  88. package/src/Old/Icon/tsx/IconsCode.tsx +16 -0
  89. package/src/Old/Icon/tsx/IconsCoffee.tsx +16 -0
  90. package/src/Old/Icon/tsx/IconsConsole.tsx +16 -0
  91. package/src/Old/Icon/tsx/IconsCredit.tsx +21 -0
  92. package/src/Old/Icon/tsx/IconsCreditcard.tsx +16 -0
  93. package/src/Old/Icon/tsx/IconsDeleteNope.tsx +15 -0
  94. package/src/Old/Icon/tsx/IconsDeployment.tsx +14 -0
  95. package/src/Old/Icon/tsx/IconsDoc.tsx +16 -0
  96. package/src/Old/Icon/tsx/IconsDollars.tsx +16 -0
  97. package/src/Old/Icon/tsx/IconsDownload.tsx +16 -0
  98. package/src/Old/Icon/tsx/IconsDropdownArrows.tsx +16 -0
  99. package/src/Old/Icon/tsx/IconsDudes.tsx +14 -0
  100. package/src/Old/Icon/tsx/IconsDuplicate.tsx +14 -0
  101. package/src/Old/Icon/tsx/IconsEnterprise.tsx +19 -0
  102. package/src/Old/Icon/tsx/IconsErrorGeneral.tsx +16 -0
  103. package/src/Old/Icon/tsx/IconsFileDoc.tsx +16 -0
  104. package/src/Old/Icon/tsx/IconsFilePdf.tsx +16 -0
  105. package/src/Old/Icon/tsx/IconsFilePlist.tsx +16 -0
  106. package/src/Old/Icon/tsx/IconsFileZip.tsx +16 -0
  107. package/src/Old/Icon/tsx/IconsFilter.tsx +16 -0
  108. package/src/Old/Icon/tsx/IconsFlag.tsx +13 -0
  109. package/src/Old/Icon/tsx/IconsFolder.tsx +16 -0
  110. package/src/Old/Icon/tsx/IconsFullscreen.tsx +14 -0
  111. package/src/Old/Icon/tsx/IconsFullscreenExit.tsx +14 -0
  112. package/src/Old/Icon/tsx/IconsGauge.tsx +16 -0
  113. package/src/Old/Icon/tsx/IconsGithub.tsx +14 -0
  114. package/src/Old/Icon/tsx/IconsGitlab.tsx +20 -0
  115. package/src/Old/Icon/tsx/IconsGitlabFill.tsx +14 -0
  116. package/src/Old/Icon/tsx/IconsGlobe.tsx +16 -0
  117. package/src/Old/Icon/tsx/IconsGroup.tsx +14 -0
  118. package/src/Old/Icon/tsx/IconsHeart.tsx +14 -0
  119. package/src/Old/Icon/tsx/IconsHidePassword.tsx +19 -0
  120. package/src/Old/Icon/tsx/IconsHistory.tsx +14 -0
  121. package/src/Old/Icon/tsx/IconsImage.tsx +14 -0
  122. package/src/Old/Icon/tsx/IconsInfo.tsx +14 -0
  123. package/src/Old/Icon/tsx/IconsIntegrations.tsx +14 -0
  124. package/src/Old/Icon/tsx/IconsInteraction.tsx +14 -0
  125. package/src/Old/Icon/tsx/IconsInvoice.tsx +16 -0
  126. package/src/Old/Icon/tsx/IconsJapanese.tsx +15 -0
  127. package/src/Old/Icon/tsx/IconsKey.tsx +14 -0
  128. package/src/Old/Icon/tsx/IconsLaptop.tsx +13 -0
  129. package/src/Old/Icon/tsx/IconsLaptops.tsx +16 -0
  130. package/src/Old/Icon/tsx/IconsLightbulb.tsx +16 -0
  131. package/src/Old/Icon/tsx/IconsLock.tsx +16 -0
  132. package/src/Old/Icon/tsx/IconsLogin.tsx +16 -0
  133. package/src/Old/Icon/tsx/IconsLogout.tsx +16 -0
  134. package/src/Old/Icon/tsx/IconsMagnifier.tsx +16 -0
  135. package/src/Old/Icon/tsx/IconsMail.tsx +16 -0
  136. package/src/Old/Icon/tsx/IconsMenuGrid.tsx +16 -0
  137. package/src/Old/Icon/tsx/IconsMenuHamburger.tsx +13 -0
  138. package/src/Old/Icon/tsx/IconsMessage.tsx +16 -0
  139. package/src/Old/Icon/tsx/IconsMinusClose.tsx +10 -0
  140. package/src/Old/Icon/tsx/IconsMinusRemove.tsx +16 -0
  141. package/src/Old/Icon/tsx/IconsMobile.tsx +16 -0
  142. package/src/Old/Icon/tsx/IconsMonitoring.tsx +14 -0
  143. package/src/Old/Icon/tsx/IconsMoreHorizontal.tsx +13 -0
  144. package/src/Old/Icon/tsx/IconsMoreVertical.tsx +17 -0
  145. package/src/Old/Icon/tsx/IconsNoTie.tsx +14 -0
  146. package/src/Old/Icon/tsx/IconsNumero.tsx +16 -0
  147. package/src/Old/Icon/tsx/IconsOpenInBrowser.tsx +16 -0
  148. package/src/Old/Icon/tsx/IconsOverview.tsx +14 -0
  149. package/src/Old/Icon/tsx/IconsOwner.tsx +19 -0
  150. package/src/Old/Icon/tsx/IconsPause.tsx +14 -0
  151. package/src/Old/Icon/tsx/IconsPencil.tsx +17 -0
  152. package/src/Old/Icon/tsx/IconsPercent.tsx +14 -0
  153. package/src/Old/Icon/tsx/IconsPerson.tsx +14 -0
  154. package/src/Old/Icon/tsx/IconsPlatformsAndroid.tsx +16 -0
  155. package/src/Old/Icon/tsx/IconsPlatformsApple.tsx +16 -0
  156. package/src/Old/Icon/tsx/IconsPlatformsCordova.tsx +14 -0
  157. package/src/Old/Icon/tsx/IconsPlatformsFastlane.tsx +14 -0
  158. package/src/Old/Icon/tsx/IconsPlatformsFlutter.tsx +14 -0
  159. package/src/Old/Icon/tsx/IconsPlatformsGo.tsx +13 -0
  160. package/src/Old/Icon/tsx/IconsPlatformsIonic.tsx +14 -0
  161. package/src/Old/Icon/tsx/IconsPlatformsMacos.tsx +14 -0
  162. package/src/Old/Icon/tsx/IconsPlatformsNodejs.tsx +13 -0
  163. package/src/Old/Icon/tsx/IconsPlatformsOther.tsx +21 -0
  164. package/src/Old/Icon/tsx/IconsPlatformsReact.tsx +14 -0
  165. package/src/Old/Icon/tsx/IconsPlatformsXamarin.tsx +14 -0
  166. package/src/Old/Icon/tsx/IconsPlay.tsx +16 -0
  167. package/src/Old/Icon/tsx/IconsPlusAdd.tsx +16 -0
  168. package/src/Old/Icon/tsx/IconsPlusOpen.tsx +13 -0
  169. package/src/Old/Icon/tsx/IconsPower.tsx +11 -0
  170. package/src/Old/Icon/tsx/IconsRefresh.tsx +13 -0
  171. package/src/Old/Icon/tsx/IconsRequest.tsx +14 -0
  172. package/src/Old/Icon/tsx/IconsResponsiveness.tsx +14 -0
  173. package/src/Old/Icon/tsx/IconsSave.tsx +14 -0
  174. package/src/Old/Icon/tsx/IconsSecurityShield.tsx +16 -0
  175. package/src/Old/Icon/tsx/IconsSettings.tsx +16 -0
  176. package/src/Old/Icon/tsx/IconsShip.tsx +14 -0
  177. package/src/Old/Icon/tsx/IconsShowPassword.tsx +16 -0
  178. package/src/Old/Icon/tsx/IconsShuffle.tsx +16 -0
  179. package/src/Old/Icon/tsx/IconsStability.tsx +16 -0
  180. package/src/Old/Icon/tsx/IconsStack.tsx +16 -0
  181. package/src/Old/Icon/tsx/IconsStatus.tsx +16 -0
  182. package/src/Old/Icon/tsx/IconsStepThirdParty.tsx +16 -0
  183. package/src/Old/Icon/tsx/IconsStepUpgrade.tsx +10 -0
  184. package/src/Old/Icon/tsx/IconsStepUpgradeCircle.tsx +11 -0
  185. package/src/Old/Icon/tsx/IconsStepVersionOk.tsx +11 -0
  186. package/src/Old/Icon/tsx/IconsSteps.tsx +14 -0
  187. package/src/Old/Icon/tsx/IconsStepsColorTuorqouise.tsx +14 -0
  188. package/src/Old/Icon/tsx/IconsStepsColorViolet.tsx +14 -0
  189. package/src/Old/Icon/tsx/IconsStepsWhite.tsx +14 -0
  190. package/src/Old/Icon/tsx/IconsStopwatch.tsx +16 -0
  191. package/src/Old/Icon/tsx/IconsSupport.tsx +16 -0
  192. package/src/Old/Icon/tsx/IconsSwitch.tsx +13 -0
  193. package/src/Old/Icon/tsx/IconsTestFailed.tsx +14 -0
  194. package/src/Old/Icon/tsx/IconsTestInconclusive.tsx +14 -0
  195. package/src/Old/Icon/tsx/IconsTestInfo.tsx +14 -0
  196. package/src/Old/Icon/tsx/IconsTestSkipped.tsx +14 -0
  197. package/src/Old/Icon/tsx/IconsTestSuccess.tsx +14 -0
  198. package/src/Old/Icon/tsx/IconsTestWarning.tsx +14 -0
  199. package/src/Old/Icon/tsx/IconsTick.tsx +13 -0
  200. package/src/Old/Icon/tsx/IconsTime.tsx +16 -0
  201. package/src/Old/Icon/tsx/IconsTrace.tsx +14 -0
  202. package/src/Old/Icon/tsx/IconsTrash.tsx +16 -0
  203. package/src/Old/Icon/tsx/IconsTrigger.tsx +16 -0
  204. package/src/Old/Icon/tsx/IconsTwitter.tsx +16 -0
  205. package/src/Old/Icon/tsx/IconsValidateShield.tsx +16 -0
  206. package/src/Old/Icon/tsx/IconsWarning.tsx +16 -0
  207. package/src/Old/Icon/tsx/IconsWebUi.tsx +17 -0
  208. package/src/Old/Icon/tsx/IconsWindow.tsx +16 -0
  209. package/src/Old/Icon/tsx/IconsWorkflow.tsx +16 -0
  210. package/src/Old/Icon/tsx/IconsWorkflowFlow.tsx +16 -0
  211. package/src/Old/Icon/tsx/IconsWow.tsx +16 -0
  212. package/src/Old/Icon/tsx/index.ts +694 -0
  213. package/src/Old/Input/InputLabel.tsx +3 -5
  214. package/src/Old/Link/Link.css +44 -0
  215. package/src/Old/Link/Link.tsx +30 -0
  216. package/src/Old/Modal/Modal.css +67 -0
  217. package/src/Old/Modal/Modal.tsx +117 -0
  218. package/src/Old/Modal/ModalBody.tsx +17 -0
  219. package/src/Old/Modal/ModalHeader.tsx +50 -0
  220. package/src/Old/Modal/ModalHeaderProgress.tsx +23 -0
  221. package/src/Old/Modal/ModalTitle.tsx +13 -0
  222. package/src/Old/Notification/Notification.tsx +4 -3
  223. package/src/Old/Notification/__snapshots__/Notification.test.tsx.snap +12 -8
  224. package/src/Old/Progress/ProgressBitbot.tsx +3 -3
  225. package/src/Old/Progress/ProgressButtonContent.tsx +35 -0
  226. package/src/Old/Ribbon/Ribbon.tsx +4 -4
  227. package/src/Old/Sidebar/Sidebar.css +125 -0
  228. package/src/Old/Sidebar/Sidebar.tsx +25 -0
  229. package/src/Old/Sidebar/SidebarHeader.tsx +10 -0
  230. package/src/Old/Sidebar/SidebarMenu.tsx +30 -0
  231. package/src/Old/Sidebar/SidebarMenuContext.ts +7 -0
  232. package/src/Old/Sidebar/SidebarMenuItem.tsx +67 -0
  233. package/src/Old/Sidebar/SidebarSubMenu.tsx +33 -0
  234. package/src/Old/Sidebar/SidebarSubMenuItem.tsx +59 -0
  235. package/src/Old/Status/Status404.tsx +3 -3
  236. package/src/Old/Status/Status500.tsx +4 -4
  237. package/src/Old/Table/TableHeaderCell.tsx +1 -1
  238. package/src/Old/Tabs/Tab.tsx +23 -0
  239. package/src/Old/Tabs/Tabs.css +30 -0
  240. package/src/Old/Tabs/Tabs.tsx +18 -0
  241. package/src/Old/Text/TextSizes.css +39 -0
  242. package/src/Old/Toggle/Toggle.tsx +1 -1
  243. package/src/Old/Tooltip/Tooltip.tsx +85 -0
  244. package/src/Old/hooks/index.ts +1 -0
  245. package/src/Old/hooks/useResizeObserver.ts +40 -0
  246. package/src/Old/variables.css +1 -0
  247. package/src/Old/variables.ts +3 -0
  248. package/src/index.ts +9 -0
  249. package/src/old.ts +64 -0
  250. package/src/theme.ts +2 -0
  251. package/src/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import Base, { Props as BaseProps } from '../Base/Base';
3
+ import { SidebarMenuContext } from './SidebarMenuContext';
4
+
5
+ const { useState } = React;
6
+
7
+ export interface Props extends BaseProps {
8
+ /** Active flag that sets the visual state of the SidebarMenuItem and
9
+ * also expands the SidebarSubMenu, if there is one included.
10
+ */
11
+ active: boolean;
12
+ }
13
+
14
+ /**
15
+ * Child of the Sidebar component that should include exactly one SidebarMenuItem
16
+ * and an optional SidebarSubMenu.
17
+ */
18
+ const SidebarMenu: React.FunctionComponent<Props> = (props: Props) => {
19
+ const { active, ...rest } = props;
20
+ const [hasSubMenu, setHasSubMenu] = useState(false);
21
+
22
+ return (
23
+ // eslint-disable-next-line react/jsx-no-constructed-context-values
24
+ <SidebarMenuContext.Provider value={{ active, hasSubMenu, setHasSubMenu }}>
25
+ <Base {...rest} className="Sidebar__menu" />
26
+ </SidebarMenuContext.Provider>
27
+ );
28
+ };
29
+
30
+ export default SidebarMenu;
@@ -0,0 +1,7 @@
1
+ import { createContext } from 'react';
2
+
3
+ export const SidebarMenuContext = createContext({
4
+ active: false,
5
+ hasSubMenu: false,
6
+ setHasSubMenu: (hasSubMenu: boolean) => { hasSubMenu; },
7
+ });
@@ -0,0 +1,67 @@
1
+ import * as React from 'react';
2
+ import classnames from 'classnames';
3
+ import { TypeIconName } from '../Icon/tsx';
4
+ import Base, { Props as BaseProps } from '../Base/Base';
5
+ import Flex from '../Flex/Flex';
6
+ import Icon from '../Icon/Icon';
7
+ import Visibility from '../Visibility/Visibility';
8
+ import VisibilityContainer from '../Visibility/VisibilityContainer';
9
+ import { SidebarMenuContext } from './SidebarMenuContext';
10
+
11
+ const { useContext } = React;
12
+
13
+ export interface Props extends BaseProps {
14
+ Component?: BaseProps['Component'];
15
+ /**
16
+ * Name of an icon (from the Icon component) that should
17
+ * appear next to the text.
18
+ */
19
+ icon?: TypeIconName;
20
+ }
21
+
22
+ /**
23
+ * Child of the SidebarMenu component that is used to handle the
24
+ * navigation when interacted with.
25
+ */
26
+ const SidebarMenuItem: React.FunctionComponent<Props> = (props: Props) => {
27
+ const { children, icon, ...rest } = props;
28
+ const { active, hasSubMenu } = useContext(SidebarMenuContext);
29
+ const classes = classnames('Sidebar__menu-item', {
30
+ 'Sidebar__menu-item--active': active,
31
+ });
32
+
33
+ return (
34
+ <Base className={classes} padding="x1">
35
+ <VisibilityContainer
36
+ {...rest}
37
+ alignChildrenVertical="middle"
38
+ className="Sidebar__menu-item-link"
39
+ direction="horizontal"
40
+ enabled={!active}
41
+ gap="x4"
42
+ >
43
+ {icon && (
44
+ <Flex>
45
+ <Icon name={icon} />
46
+ </Flex>
47
+ )}
48
+
49
+ <Flex grow initial="none">
50
+ {children}
51
+ </Flex>
52
+
53
+ {hasSubMenu && (
54
+ <Visibility>
55
+ <Icon name="ChevronDown" />
56
+ </Visibility>
57
+ )}
58
+ </VisibilityContainer>
59
+ </Base>
60
+ );
61
+ };
62
+
63
+ SidebarMenuItem.defaultProps = {
64
+ Component: 'a',
65
+ };
66
+
67
+ export default SidebarMenuItem;
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import Expand, { Props as ExpandProps } from '../Expand/Expand';
3
+ import { SidebarMenuContext } from './SidebarMenuContext';
4
+
5
+ const { useContext, useEffect } = React;
6
+
7
+ export type Props = Omit<ExpandProps, 'expanded'>;
8
+
9
+ /**
10
+ * Child of the SidebarMenu component that is used to insert an
11
+ * expandable submenu that is visible when the parent SidebarMenu
12
+ * component is active.
13
+ */
14
+ const SidebarSubMenu: React.FunctionComponent<Props> = (props: Props) => {
15
+ const { children, ...rest } = props;
16
+ const { active, setHasSubMenu } = useContext(SidebarMenuContext);
17
+
18
+ useEffect(() => {
19
+ setHasSubMenu(true);
20
+
21
+ return () => {
22
+ setHasSubMenu(false);
23
+ };
24
+ }, []);
25
+
26
+ return (
27
+ <Expand {...rest} className="Sidebar__sub-menu" expanded={active}>
28
+ {children}
29
+ </Expand>
30
+ );
31
+ };
32
+
33
+ export default SidebarSubMenu;
@@ -0,0 +1,59 @@
1
+ import * as React from 'react';
2
+ import classnames from 'classnames';
3
+ import Flex, { Props as FlexProps } from '../Flex/Flex';
4
+ import Icon from '../Icon/Icon';
5
+ import { TypeIconName } from '../Icon/tsx';
6
+
7
+ export interface Props extends FlexProps {
8
+ /**
9
+ * Active flag that sets the visual state.
10
+ */
11
+ active: boolean;
12
+ /**
13
+ * Name of an icon (from the Icon component) that should
14
+ * appear next to the text.
15
+ */
16
+ icon?: TypeIconName;
17
+ /** onClick event handler. */
18
+ onClick?: (event: React.SyntheticEvent) => void;
19
+ }
20
+
21
+ /**
22
+ * Child of the SidebarSubMenu component that is used to handle the
23
+ * navigation when interacted with.
24
+ */
25
+ const SidebarSubMenuItem: React.FunctionComponent<Props> = (props: Props) => {
26
+ const { active, children, icon, onClick, ...rest } = props;
27
+ const classes = classnames('Sidebar__sub-menu-item', {
28
+ 'Sidebar__sub-menu-item--active': active,
29
+ });
30
+
31
+ const handleClick = (event: React.SyntheticEvent) => {
32
+ event.stopPropagation();
33
+
34
+ if (onClick) {
35
+ onClick(event);
36
+ }
37
+ };
38
+
39
+ return (
40
+ <Flex
41
+ {...rest}
42
+ alignChildrenVertical="middle"
43
+ className={classes}
44
+ direction="horizontal"
45
+ gap="x4"
46
+ onClick={handleClick}
47
+ >
48
+ {icon && (
49
+ <Flex>
50
+ <Icon name={icon} textColor="purple.70" />
51
+ </Flex>
52
+ )}
53
+
54
+ <Flex>{children}</Flex>
55
+ </Flex>
56
+ );
57
+ };
58
+
59
+ export default SidebarSubMenuItem;
@@ -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 '../../Components/Text/Text';
5
+ import Text from '../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="center" size="7" fontWeight="bold">
24
+ <Text align="middle" size="7" weight="bold">
25
25
  404
26
26
  </Text>
27
- <Text align="center" size="6" fontWeight="bold">
27
+ <Text align="middle" size="6" weight="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 '../../Components/Text/Text';
5
+ import Text from '../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="center" size="7" fontWeight="bold">
23
+ <Text align="middle" size="7" weight="bold">
24
24
  500
25
25
  </Text>
26
- <Text align="center" size="2" textTransform="uppercase" fontWeight="bold">
26
+ <Text align="middle" size="2" uppercase weight="bold">
27
27
  Something went wrong
28
28
  </Text>
29
29
  </Flex>
30
30
 
31
- <Text align="center" letterSpacing="8" marginY="20" size="4">
31
+ <Text align="middle" letterSpacing="x2" margin="x5" 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 '../../Components/Icon/Icon';
4
+ import Icon from '../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';
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import classnames from 'classnames';
3
+ import Text, { Props as TextProps } from '../Text/Text';
4
+
5
+ export interface Props extends TextProps {
6
+ /** Sets the styling to indicate that the tab is active. */
7
+ active?: boolean;
8
+ }
9
+
10
+ /**
11
+ * Individual navigation item component that should be a direct
12
+ * descendant of the Tabs component.
13
+ */
14
+ const Tab: React.FunctionComponent<Props> = (props: Props) => {
15
+ const { active, ...rest } = props;
16
+ const classes = classnames('Tabs__tab', {
17
+ 'Tabs__tab--active': active,
18
+ });
19
+
20
+ return <Text {...rest} className={classes} letterSpacing="x2" uppercase weight="bold" />;
21
+ };
22
+
23
+ export default Tab;
@@ -0,0 +1,30 @@
1
+ .Tabs__tab {
2
+ position: relative;
3
+ padding-top: var(--size--x3);
4
+ padding-bottom: var(--size--x3);
5
+ color: var(--color-eggplant);
6
+ cursor: pointer;
7
+ }
8
+
9
+ .Tabs__tab::before {
10
+ content: '';
11
+ position: absolute;
12
+ right: 0;
13
+ bottom: 0;
14
+ left: 0;
15
+ height: 0.1875rem;
16
+ border-top-left-radius: var(--size--x1);
17
+ border-top-right-radius: var(--size--x1);
18
+ background-color: transparent;
19
+ transition-property: background-color, color;
20
+ transition-duration: var(--transition-duration--fast);
21
+ transition-timing-function: var(--transition-timing-function);
22
+ }
23
+
24
+ .Tabs__tab--active {
25
+ color: var(--color-grape--5);
26
+ }
27
+
28
+ .Tabs__tab--active::before {
29
+ background-color: var(--color-aqua--3);
30
+ }
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import Flex, { Props as FlexProps } from '../Flex/Flex';
3
+ import './Tabs.css';
4
+
5
+ export type Props = FlexProps;
6
+
7
+ /**
8
+ * Tabular navigation component, that holds the Tab components.
9
+ */
10
+ const Tabs: React.FunctionComponent<Props> = (props: Props) => {
11
+ return <Flex {...props} direction="horizontal" />;
12
+ };
13
+
14
+ Tabs.defaultProps = {
15
+ gap: 'x16',
16
+ };
17
+
18
+ export default Tabs;
@@ -0,0 +1,39 @@
1
+ .Text--size-1 {
2
+ font-size: var(--fontSizes-1);
3
+ line-height: var(--lineHeights-1);
4
+ }
5
+
6
+ .Text--size-2 {
7
+ font-size: var(--fontSizes-2);
8
+ line-height: var(--lineHeights-2);
9
+ }
10
+
11
+ .Text--size-3 {
12
+ font-size: var(--fontSizes-3);
13
+ line-height: var(--lineHeights-3);
14
+ }
15
+
16
+ .Text--size-4 {
17
+ font-size: var(--fontSizes-4);
18
+ line-height: var(--lineHeights-4);
19
+ }
20
+
21
+ .Text--size-5 {
22
+ font-size: var(--fontSizes-5);
23
+ line-height: var(--lineHeights-5);
24
+ }
25
+
26
+ .Text--size-6 {
27
+ font-size: var(--fontSizes-6);
28
+ line-height: var(--lineHeights-6);
29
+ }
30
+
31
+ .Text--size-7 {
32
+ font-size: var(--fontSizes-7);
33
+ line-height: var(--lineHeights-7);
34
+ }
35
+
36
+ .Text--size-8 {
37
+ font-size: var(--fontSizes-8);
38
+ line-height: var(--lineHeights-8);
39
+ }
@@ -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 Icon from '../../Components/Icon/Icon';
4
+ import Icon from '../Icon/Icon';
5
5
  import './Toggle.css';
6
6
 
7
7
  export interface Props extends FlexProps {
@@ -0,0 +1,85 @@
1
+ import * as React from 'react';
2
+ import { ReferenceChildrenProps } from 'react-popper';
3
+ import { Placement as TypePlacement } from '@popperjs/core';
4
+ import { Props as BaseProps } from '../Base/Base';
5
+ import Placement from '../Placement/Placement';
6
+ import PlacementArea from '../Placement/PlacementArea';
7
+ import PlacementManager from '../Placement/PlacementManager';
8
+ import PlacementReference from '../Placement/PlacementReference';
9
+ import Text from '../Text/Text';
10
+ import { transitionDurationFast } from '../variables';
11
+
12
+ const { useState } = React;
13
+
14
+ interface TooltipChildrenProps extends ReferenceChildrenProps {
15
+ onMouseEnter?: () => void;
16
+ onMouseLeave?: () => void;
17
+ }
18
+
19
+ export interface Props extends BaseProps {
20
+ /** Render callback that passes the ref and event handlers onto a target */
21
+ children: (props: TooltipChildrenProps) => React.ReactNode;
22
+ /** The content to be inserted into the tooltip. */
23
+ title: React.ReactNode;
24
+ /** Flag that controls the visibility of the tooltip */
25
+ visible?: boolean;
26
+ /** The desired animation speed on milliseconds. */
27
+ timeout?: number;
28
+ /** The desired placement direction */
29
+ placement?: TypePlacement;
30
+ }
31
+
32
+ /**
33
+ * A simple tooltip component that shows textual content above
34
+ * a target when the mouse is over it.
35
+ */
36
+ const Tooltip: React.FunctionComponent<Props> = (props: Props) => {
37
+ const {
38
+ backgroundColor = 'neutral.10',
39
+ borderRadius = 'x1',
40
+ children,
41
+ placement = 'top',
42
+ textColor = 'neutral.95',
43
+ title,
44
+ visible: controlledVisible,
45
+ timeout = transitionDurationFast,
46
+ ...rest
47
+ } = props;
48
+ const [uncontrolledVisible, setVisible] = useState(controlledVisible || false);
49
+ const isControlled = controlledVisible !== undefined;
50
+
51
+ const handleMouseEnter = () => setVisible(true);
52
+ const handleMouseLeave = () => setVisible(false);
53
+
54
+ return (
55
+ <PlacementManager>
56
+ <Placement
57
+ backgroundColor={backgroundColor}
58
+ borderRadius={borderRadius}
59
+ placement={placement}
60
+ textColor={textColor}
61
+ timeout={timeout}
62
+ {...rest}
63
+ visible={isControlled ? controlledVisible : uncontrolledVisible}
64
+ >
65
+ {() => (
66
+ <PlacementArea paddingHorizontal="x3" paddingVertical="x2" withArrow>
67
+ <Text size="2">{title}</Text>
68
+ </PlacementArea>
69
+ )}
70
+ </Placement>
71
+
72
+ <PlacementReference>
73
+ {(properties) =>
74
+ children({
75
+ ...properties,
76
+ onMouseEnter: isControlled ? undefined : handleMouseEnter,
77
+ onMouseLeave: isControlled ? undefined : handleMouseLeave,
78
+ })
79
+ }
80
+ </PlacementReference>
81
+ </PlacementManager>
82
+ );
83
+ };
84
+
85
+ export default Tooltip;
@@ -1,4 +1,5 @@
1
1
  export { default as useCopyToClipboard } from './useCopyToClipboard';
2
2
  export { default as useEventListener } from './useEventListener';
3
3
  export { default as useMediaQuery } from './useMediaQuery';
4
+ export { default as useResizeObserver } from './useResizeObserver';
4
5
  export { default as useSyncedStateAndProps } from './useSyncedStateAndProps';
@@ -0,0 +1,40 @@
1
+ import { useLayoutEffect, useState } from 'react';
2
+ import { ResizeObserver as ResizeObserverPolyfill } from '@juggle/resize-observer';
3
+
4
+ export type DOMRectReadOnlyWithoutToJSON = Omit<DOMRectReadOnly, 'toJSON'>;
5
+
6
+ export default (): [DOMRectReadOnlyWithoutToJSON, (element: Element | null) => void] => {
7
+ const [node, setNode] = useState<Element | null>(null);
8
+ const [size, setSize] = useState<DOMRectReadOnlyWithoutToJSON>({
9
+ bottom: 0,
10
+ height: 0,
11
+ left: 0,
12
+ right: 0,
13
+ top: 0,
14
+ width: 0,
15
+ x: 0,
16
+ y: 0,
17
+ });
18
+
19
+ useLayoutEffect(() => {
20
+ const observer: ResizeObserver = new ResizeObserverPolyfill(([entry]) => {
21
+ if (entry) {
22
+ setSize(entry.contentRect);
23
+ }
24
+ });
25
+
26
+ if (node) {
27
+ observer.observe(node);
28
+ }
29
+
30
+ return () => {
31
+ if (node) {
32
+ observer.unobserve(node);
33
+ }
34
+
35
+ observer.disconnect();
36
+ };
37
+ }, [node]);
38
+
39
+ return [size, setNode];
40
+ };
@@ -206,5 +206,6 @@
206
206
  --z-index-Header: 1;
207
207
  --z-index-Sidebar: 1;
208
208
  --z-index-Placement--below-modal: 2;
209
+ --z-index-Modal: 3;
209
210
  --z-index-Placement--above-modal: 4;
210
211
  }
@@ -1,4 +1,5 @@
1
1
  import colors from '../Foundations/Colors/Colors';
2
+ import { IconList } from './Icon/tsx';
2
3
 
3
4
  export const colorWhite = '#FFFFFF';
4
5
  export const colorBlack = '#222222';
@@ -291,6 +292,8 @@ export const sizeX10 = 40;
291
292
  export const sizeX12 = 48;
292
293
  export const sizeX16 = 64;
293
294
 
295
+ export const icons = IconList;
296
+
294
297
  export const fontSize1Px = 11;
295
298
  export const fontSize2Px = 14;
296
299
  export const fontSize3Px = 16;
package/src/index.ts CHANGED
@@ -98,6 +98,9 @@ export { default as DialogBody } from './Components/Dialog/DialogBody';
98
98
  export type { DialogFooterProps } from './Components/Dialog/DialogFooter';
99
99
  export { default as DialogFooter } from './Components/Dialog/DialogFooter';
100
100
 
101
+ export type { FadeProps } from './Components/Transitions/Fade';
102
+ export { default as Fade } from './Components/Transitions/Fade';
103
+
101
104
  export type { PopoverProps } from './Components/Popover/Popover';
102
105
  export { default as Popover } from './Components/Popover/Popover';
103
106
 
@@ -130,4 +133,10 @@ export { default as RadioGroup } from './Components/Form/Radio/RadioGroup';
130
133
  export type { ImageProps } from './Components/Image/Image';
131
134
  export { default as Image } from './Components/Image/Image';
132
135
 
136
+ export type { BreadcrumbProps } from './Components/Breadcrumb/Breadcrumb';
137
+ export { default as Breadcrumb } from './Components/Breadcrumb/Breadcrumb';
138
+
139
+ export type { BreadcrumbLinkProps } from './Components/Breadcrumb/BreadcrumbLink';
140
+ export { default as BreadcrumbLink } from './Components/Breadcrumb/BreadcrumbLink';
141
+
133
142
  export { BREAKPOINTS } from './Foundations/Breakpoints/Breakpoints';
package/src/old.ts CHANGED
@@ -6,12 +6,39 @@ import * as hooks from './Old/hooks';
6
6
  export { variables };
7
7
  export { hooks };
8
8
 
9
+ export type { Props as AddonBeamProps } from './Old/AddonBeam/AddonBeam';
10
+ export { default as AddonBeam } from './Old/AddonBeam/AddonBeam';
11
+
12
+ export type { Props as AddonBeamLinkProps } from './Old/AddonBeam/AddonBeamLink';
13
+ export { default as AddonBeamLink } from './Old/AddonBeam/AddonBeamLink';
14
+
15
+ export type { Props as AddonFooterProps } from './Old/AddonFooter/AddonFooter';
16
+ export { default as AddonFooter } from './Old/AddonFooter/AddonFooter';
17
+
18
+ export type { Props as AppLayoutProps } from './Old/AppLayout/AppLayout';
19
+ export { default as AppLayout } from './Old/AppLayout/AppLayout';
20
+
21
+ export type { Props as AppLayoutBodyProps } from './Old/AppLayout/AppLayoutBody';
22
+ export { default as AppLayoutBody } from './Old/AppLayout/AppLayoutBody';
23
+
24
+ export type { Props as AppLayoutHeaderProps } from './Old/AppLayout/AppLayoutHeader';
25
+ export { default as AppLayoutHeader } from './Old/AppLayout/AppLayoutHeader';
26
+
27
+ export type { Props as AppLayoutMainProps } from './Old/AppLayout/AppLayoutMain';
28
+ export { default as AppLayoutMain } from './Old/AppLayout/AppLayoutMain';
29
+
30
+ export type { Props as AppLayoutSidebarProps } from './Old/AppLayout/AppLayoutSidebar';
31
+ export { default as AppLayoutSidebar } from './Old/AppLayout/AppLayoutSidebar';
32
+
9
33
  export type { Props as BaseProps } from './Old/Base/Base';
10
34
  export type { TypeBorderRadius } from './Old/Base/Base';
11
35
  export type { TypeColors } from './Old/Base/Base';
12
36
  export type { TypeSizes } from './Old/Base/Base';
13
37
  export { default as Base } from './Old/Base/Base';
14
38
 
39
+ export type { Props as BoundsProps } from './Old/Bounds/Bounds';
40
+ export { default as Bounds } from './Old/Bounds/Bounds';
41
+
15
42
  export type { Props as DatePickerProps } from './Old/DatePicker/DatePicker';
16
43
  export { default as DatePicker } from './Old/DatePicker/DatePicker';
17
44
 
@@ -36,6 +63,9 @@ export { default as DropdownMenuItemGroup } from './Old/Dropdown/DropdownMenuIte
36
63
  export type { Props as ExpandProps } from './Old/Expand/Expand';
37
64
  export { default as Expand } from './Old/Expand/Expand';
38
65
 
66
+ export type { Props as ExternalLinkProps } from './Old/ExternalLink/ExternalLink';
67
+ export { default as ExternalLink } from './Old/ExternalLink/ExternalLink';
68
+
39
69
  export type { Props as FlexProps } from './Old/Flex/Flex';
40
70
  export { default as Flex } from './Old/Flex/Flex';
41
71
 
@@ -63,6 +93,22 @@ export { default as InputLabel } from './Old/Input/InputLabel';
63
93
  export type { Props as LogoProps } from './Old/Logo/Logo';
64
94
  export { default as Logo } from './Old/Logo/Logo';
65
95
 
96
+ export type { Props as ModalProps } from './Old/Modal/Modal';
97
+ export { default as Modal } from './Old/Modal/Modal';
98
+
99
+ export type { Props as ModalBodyProps } from './Old/Modal/ModalBody';
100
+ export { default as ModalBody } from './Old/Modal/ModalBody';
101
+
102
+ export type { Props as ModalHeaderProps } from './Old/Modal/ModalHeader';
103
+ // eslint-disable-next-line import/no-cycle
104
+ export { default as ModalHeader } from './Old/Modal/ModalHeader';
105
+
106
+ export type { Props as ModalHeaderProgressProps } from './Old/Modal/ModalHeaderProgress';
107
+ export { default as ModalHeaderProgress } from './Old/Modal/ModalHeaderProgress';
108
+
109
+ export type { Props as ModalTitleProps } from './Old/Modal/ModalTitle';
110
+ export { default as ModalTitle } from './Old/Modal/ModalTitle';
111
+
66
112
  export type { Props as NotificationProps } from './Old/Notification/Notification';
67
113
  export { default as Notification } from './Old/Notification/Notification';
68
114
 
@@ -99,6 +145,24 @@ export { default as RadioButton } from './Old/RadioButton/RadioButton';
99
145
  export type { Props as RibbonProps } from './Old/Ribbon/Ribbon';
100
146
  export { default as Ribbon } from './Old/Ribbon/Ribbon';
101
147
 
148
+ export type { Props as SidebarProps } from './Old/Sidebar/Sidebar';
149
+ export { default as Sidebar } from './Old/Sidebar/Sidebar';
150
+
151
+ export type { Props as SidebarHeaderProps } from './Old/Sidebar/SidebarHeader';
152
+ export { default as SidebarHeader } from './Old/Sidebar/SidebarHeader';
153
+
154
+ export type { Props as SidebarMenuProps } from './Old/Sidebar/SidebarMenu';
155
+ export { default as SidebarMenu } from './Old/Sidebar/SidebarMenu';
156
+
157
+ export type { Props as SidebarMenuItemProps } from './Old/Sidebar/SidebarMenuItem';
158
+ export { default as SidebarMenuItem } from './Old/Sidebar/SidebarMenuItem';
159
+
160
+ export type { Props as SidebarSubMenuProps } from './Old/Sidebar/SidebarSubMenu';
161
+ export { default as SidebarSubMenu } from './Old/Sidebar/SidebarSubMenu';
162
+
163
+ export type { Props as SidebarSubMenuItemProps } from './Old/Sidebar/SidebarSubMenuItem';
164
+ export { default as SidebarSubMenuItem } from './Old/Sidebar/SidebarSubMenuItem';
165
+
102
166
  export type { Props as SkeletonProps } from './Old/Skeleton/Skeleton';
103
167
  export { default as Skeleton } from './Old/Skeleton/Skeleton';
104
168