@bitrise/bitkit 10.35.2-alpha-chakra.1 → 10.36.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 (37) hide show
  1. package/package.json +1 -1
  2. package/src/Components/ButtonGroup/ButtonGroup.tsx +4 -4
  3. package/src/Components/Icons/16x16/BoxWithArrowDown.tsx +14 -0
  4. package/src/Components/Icons/16x16/BoxWithDot.tsx +14 -0
  5. package/src/Components/Icons/16x16/OverflowingLines.tsx +14 -0
  6. package/src/Components/Icons/16x16/StepstatusIncomplete.tsx +14 -0
  7. package/src/Components/Icons/16x16/WrappedLines.tsx +14 -0
  8. package/src/Components/Icons/16x16/index.ts +5 -0
  9. package/src/Components/Icons/24x24/BoxWithArrowDown.tsx +14 -0
  10. package/src/Components/Icons/24x24/BoxWithDot.tsx +14 -0
  11. package/src/Components/Icons/24x24/OverflowingLines.tsx +14 -0
  12. package/src/Components/Icons/24x24/StepstatusIncomplete.tsx +14 -0
  13. package/src/Components/Icons/24x24/WrappedLines.tsx +14 -0
  14. package/src/Components/Icons/24x24/index.ts +5 -0
  15. package/src/Components/Table/Tr.tsx +1 -0
  16. package/src/Foundations/Sizes/Sizes.ts +0 -2
  17. package/src/Old/Base/Base.css +337 -0
  18. package/src/Old/Base/Base.tsx +199 -0
  19. package/src/Old/Flex/Flex.css +105 -0
  20. package/src/Old/Flex/Flex.tsx +92 -0
  21. package/src/Old/Placement/Placement.css +100 -0
  22. package/src/Old/Placement/Placement.tsx +74 -0
  23. package/src/Old/Placement/PlacementArea.tsx +49 -0
  24. package/src/Old/Placement/PlacementArrow.tsx +20 -0
  25. package/src/Old/Placement/PlacementArrowPropsContext.ts +9 -0
  26. package/src/Old/Placement/PlacementManager.tsx +24 -0
  27. package/src/Old/Placement/PlacementManagerContext.ts +9 -0
  28. package/src/Old/Placement/PlacementPopper.tsx +173 -0
  29. package/src/Old/Placement/PlacementReference.tsx +19 -0
  30. package/src/Old/hooks/index.ts +2 -0
  31. package/src/Old/hooks/useEventListener.ts +45 -0
  32. package/src/Old/hooks/useSyncedStateAndProps.ts +14 -0
  33. package/src/Old/variables.css +210 -0
  34. package/src/Old/variables.ts +320 -0
  35. package/src/index.ts +2 -4
  36. package/src/old.ts +16 -0
  37. package/src/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,173 @@
1
+ /* eslint-disable react/default-props-match-prop-types */
2
+ import * as React from 'react';
3
+ import { createPortal } from 'react-dom';
4
+ import { Placement as TypePlacement, VirtualElement } from '@popperjs/core';
5
+ import { Popper, PopperProps } from 'react-popper';
6
+ import classnames from 'classnames';
7
+ import { useEventListener } from '../hooks';
8
+ import Base, { Props as BaseProps } from '../Base/Base';
9
+ import { PlacementArrowPropsContext } from './PlacementArrowPropsContext';
10
+ import { PlacementManagerContext } from './PlacementManagerContext';
11
+ import './Placement.css';
12
+
13
+ const { useEffect, useRef, useState } = React;
14
+
15
+ export interface Props extends BaseProps {
16
+ animatePosition?: boolean;
17
+ children: (props: { update: () => void; width?: number }) => React.ReactNode;
18
+ closeElement?: null | HTMLElement;
19
+ disableReposition?: boolean;
20
+ flip?: boolean;
21
+ isInsideModal?: boolean;
22
+ onClose?: (event: MouseEvent) => void;
23
+ placement?: TypePlacement;
24
+ referenceElement?: any;
25
+ visible?: boolean;
26
+ timeout?: number;
27
+ }
28
+
29
+ const PlacementPopper: React.FunctionComponent<Props> = (props: Props) => {
30
+ const {
31
+ animatePosition,
32
+ backgroundColor,
33
+ children,
34
+ closeElement,
35
+ disableReposition,
36
+ flip,
37
+ isInsideModal,
38
+ onClose,
39
+ placement: desiredPlacement,
40
+ referenceElement,
41
+ sameWidth,
42
+ visible,
43
+ ...rest
44
+ } = props;
45
+
46
+ const ref = useRef<HTMLElement | null>();
47
+ const [render, setRender] = useState(visible);
48
+
49
+ const [reference, setReference] = useState<Element | VirtualElement | undefined>(undefined);
50
+
51
+ useEffect(() => {
52
+ if (visible) {
53
+ setRender(true);
54
+ }
55
+ }, [visible]);
56
+
57
+ useEventListener(
58
+ closeElement || document,
59
+ 'click',
60
+ (event) => {
61
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
62
+ /* @ts-ignore */
63
+ const isReferenceInPath = [...event.composedPath()].includes(reference);
64
+ if (onClose && ref.current && !ref.current.contains(event.target as Node) && !isReferenceInPath) {
65
+ onClose(event as MouseEvent);
66
+ }
67
+ },
68
+ [onClose, reference],
69
+ );
70
+
71
+ useEventListener(
72
+ ref.current || null,
73
+ 'transitionend',
74
+ () => {
75
+ if (!visible) {
76
+ setRender(false);
77
+ }
78
+ },
79
+ [visible],
80
+ );
81
+
82
+ if (!render) {
83
+ return null;
84
+ }
85
+
86
+ const modifiers: any[] = [
87
+ {
88
+ name: 'offset',
89
+ options: {
90
+ offset: [0, 12],
91
+ },
92
+ },
93
+ ];
94
+
95
+ if (sameWidth) {
96
+ modifiers.push({
97
+ enabled: true,
98
+ name: 'sameWidth',
99
+ phase: 'beforeWrite',
100
+ requires: ['computeStyles'],
101
+ fn: ({ state }: any) => {
102
+ // eslint-disable-next-line no-param-reassign
103
+ state.styles.popper.width = `${state.rects.reference.width}px`;
104
+ },
105
+ effect: ({ state }: any) => {
106
+ // eslint-disable-next-line no-param-reassign
107
+ state.elements.popper.style.width = `${state.elements.reference.getBoundingClientRect().width || 0}px`;
108
+ },
109
+ });
110
+ }
111
+
112
+ const popperProps: PopperProps<any> = {
113
+ children: () => null,
114
+ placement: desiredPlacement,
115
+ modifiers,
116
+ };
117
+
118
+ if (referenceElement) {
119
+ popperProps.referenceElement = referenceElement;
120
+ }
121
+
122
+ return createPortal(
123
+ // eslint-disable-next-line no-return-assign
124
+ <Popper
125
+ {...popperProps}
126
+ // eslint-disable-next-line no-return-assign
127
+ innerRef={(el) => (ref.current = el || null)}
128
+ onFirstUpdate={(state) => {
129
+ setReference(state.elements?.reference);
130
+ }}
131
+ >
132
+ {/* eslint-disable-next-line @typescript-eslint/no-shadow */}
133
+ {({ arrowProps, placement, ref, update, style }) => {
134
+ return (
135
+ // eslint-disable-next-line react/jsx-no-constructed-context-values
136
+ <PlacementArrowPropsContext.Provider value={{ ...arrowProps, backgroundColor }}>
137
+ <div
138
+ className={classnames('Placement', `Placement--${placement}`, {
139
+ 'Placement--above-modal': isInsideModal,
140
+ 'Placement--animate': animatePosition,
141
+ })}
142
+ ref={ref}
143
+ style={style}
144
+ >
145
+ {visible && (
146
+ <div className="Placement__content">
147
+ <Base {...rest} backgroundColor={backgroundColor} className="Placement__shadow">
148
+ <PlacementManagerContext.Consumer>
149
+ {({ referenceNode }) =>
150
+ children({
151
+ update,
152
+ width: (referenceNode && referenceNode.clientWidth) || undefined,
153
+ })
154
+ }
155
+ </PlacementManagerContext.Consumer>
156
+ </Base>
157
+ </div>
158
+ )}
159
+ </div>
160
+ </PlacementArrowPropsContext.Provider>
161
+ );
162
+ }}
163
+ </Popper>,
164
+ document.body,
165
+ );
166
+ };
167
+
168
+ PlacementPopper.defaultProps = {
169
+ backgroundColor: 'neutral.100',
170
+ borderRadius: 'x2',
171
+ };
172
+
173
+ export default PlacementPopper;
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { Reference, ReferenceProps } from 'react-popper';
3
+ import { PlacementManagerContext } from './PlacementManagerContext';
4
+
5
+ export type Props = ReferenceProps;
6
+
7
+ /**
8
+ * The reference component handles setting the target element ref with the
9
+ * PlacementManager.
10
+ */
11
+ const PlacementReference: React.FunctionComponent<Props> = (props: Props) => {
12
+ return (
13
+ <PlacementManagerContext.Consumer>
14
+ {({ setReferenceNode }) => <Reference {...props} innerRef={setReferenceNode} />}
15
+ </PlacementManagerContext.Consumer>
16
+ );
17
+ };
18
+
19
+ export default PlacementReference;
@@ -0,0 +1,2 @@
1
+ export { default as useEventListener } from './useEventListener';
2
+ export { default as useSyncedStateAndProps } from './useSyncedStateAndProps';
@@ -0,0 +1,45 @@
1
+ import { useEffect } from 'react';
2
+
3
+ type HTMLElementOrDocumentOrWindow = HTMLElement | Document | Window;
4
+ interface HTMLElementOrDocumentOrWindowEventMap extends HTMLElementEventMap, DocumentEventMap, WindowEventMap {}
5
+
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7
+ function useEventListener<E extends Window, K extends keyof WindowEventMap>(
8
+ el: E | null | undefined,
9
+ type: K,
10
+ handler: (evnt: WindowEventMap[K]) => void,
11
+ watch?: any[],
12
+ ): void;
13
+ function useEventListener<E extends Document, K extends keyof DocumentEventMap>(
14
+ el: E | null | undefined,
15
+ type: K,
16
+ handler: (evt: DocumentEventMap[K]) => void,
17
+ watch?: any[],
18
+ ): void;
19
+ function useEventListener<E extends HTMLElement, K extends keyof HTMLElementEventMap>(
20
+ el: E | null | undefined,
21
+ type: K,
22
+ handler: (evt: HTMLElementEventMap[K]) => void,
23
+ watch?: any[],
24
+ ): void;
25
+ function useEventListener<K extends keyof HTMLElementOrDocumentOrWindowEventMap>(
26
+ el: HTMLElementOrDocumentOrWindow,
27
+ type: string,
28
+ handler: (evt: HTMLElementOrDocumentOrWindowEventMap[K]) => void,
29
+ watch?: any[],
30
+ ): void;
31
+ function useEventListener(el: any, type: string, handler: any, watch?: any[]) {
32
+ useEffect(() => {
33
+ if (el) {
34
+ el.addEventListener(type, handler);
35
+ }
36
+
37
+ return () => {
38
+ if (el) {
39
+ el.removeEventListener(type, handler);
40
+ }
41
+ };
42
+ }, watch || []);
43
+ }
44
+
45
+ export default useEventListener;
@@ -0,0 +1,14 @@
1
+ import { useEffect, useState } from 'react';
2
+
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ export default (prop: any) => {
5
+ const [state, setState] = useState(prop);
6
+
7
+ useEffect(() => {
8
+ if (state !== prop) {
9
+ setState(prop);
10
+ }
11
+ }, [prop]);
12
+
13
+ return [state, setState];
14
+ };
@@ -0,0 +1,210 @@
1
+ :root {
2
+ --size--x1: 0.25rem;
3
+ --size--x2: 0.5rem;
4
+ --size--x3: 0.75rem;
5
+ --size--x4: 1rem;
6
+ --size--x5: 1.25rem;
7
+ --size--x6: 1.5rem;
8
+ --size--x8: 2rem;
9
+ --size--x10: 2.5rem;
10
+ --size--x12: 3rem;
11
+ --size--x16: 4rem;
12
+
13
+ --rgb-white: 255, 255, 255;
14
+ --rgb-black: 34, 34, 34;
15
+
16
+ --rgb-gray--1: 248, 248, 248;
17
+ --rgb-gray--2: 236, 236, 236;
18
+ --rgb-gray--3: 221, 221, 221;
19
+ --rgb-gray--4: 204, 204, 204;
20
+ --rgb-gray--5: 172, 172, 172;
21
+ --rgb-gray--6: 119, 119, 119;
22
+ --rgb-gray--7: 97, 97, 97;
23
+ --rgb-gray--8: 68, 68, 68;
24
+
25
+ --rgb-aqua--1: 230, 250, 249;
26
+ --rgb-aqua--2: 134, 233, 226;
27
+ --rgb-aqua--3: 13, 211, 197;
28
+ --rgb-aqua--4: 14, 199, 186;
29
+ --rgb-aqua--5: 0, 150, 140;
30
+
31
+ --rgb-grape--1: 248, 240, 255;
32
+ --rgb-grape--2: 184, 138, 219;
33
+ --rgb-grape--3: 118, 15, 195;
34
+ --rgb-grape--4: 73, 47, 92;
35
+ --rgb-grape--5: 53, 29, 72;
36
+
37
+ --rgb-eggplant: 104, 61, 135;
38
+
39
+ --rgb-red--1: 255, 232, 238;
40
+ --rgb-red--2: 255, 143, 171;
41
+ --rgb-red--3: 255, 33, 88;
42
+ --rgb-red--4: 238, 0, 59;
43
+ --rgb-red--5: 192, 32, 72;
44
+
45
+ --rgb-orange--1: 255, 236, 229;
46
+ --rgb-orange--2: 255, 161, 127;
47
+ --rgb-orange--3: 255, 68, 0;
48
+ --rgb-orange--4: 231, 62, 0;
49
+ --rgb-orange--5: 211, 61, 7;
50
+
51
+ --rgb-yellow--1: 255, 249, 229;
52
+ --rgb-yellow--2: 255, 226, 127;
53
+ --rgb-yellow--3: 255, 197, 0;
54
+ --rgb-yellow--4: 236, 182, 0;
55
+ --rgb-yellow--5: 121, 94, 0;
56
+
57
+ --rgb-green--1: 231, 249, 243;
58
+ --rgb-green--2: 135, 225, 195;
59
+ --rgb-green--3: 15, 195, 137;
60
+ --rgb-green--4: 15, 179, 125;
61
+ --rgb-green--5: 17, 125, 89;
62
+
63
+ --rgb-blue--1: 230, 242, 250;
64
+ --rgb-blue--2: 134, 193, 230;
65
+ --rgb-blue--3: 13, 131, 205;
66
+ --rgb-blue--4: 12, 112, 174;
67
+ --rgb-blue--5: 9, 92, 144;
68
+
69
+ --rgb-darkblue--1: 230, 236, 247;
70
+ --rgb-darkblue--2: 130, 164, 215;
71
+ --rgb-darkblue--3: 5, 74, 176;
72
+ --rgb-darkblue--4: 4, 62, 148;
73
+ --rgb-darkblue--5: 3, 49, 117;
74
+
75
+ --rgb-violet--1: 244, 231, 249;
76
+ --rgb-violet--2: 203, 138, 223;
77
+ --rgb-violet--3: 153, 15, 195;
78
+ --rgb-violet--4: 133, 18, 168;
79
+ --rgb-violet--5: 116, 20, 146;
80
+
81
+ --color-overlay--black: rgba(34, 34, 34, 0.8);
82
+ --color-overlay--grape: rgba(53, 29, 72, 0.8);
83
+
84
+ --color-white: var(--colors-neutral-100, #fff);
85
+ --color-black: var(--colors-neutral-10, #201b22);
86
+
87
+ --color-gray--1: var(--colors-neutral-95, #f6f4f6);
88
+ --color-gray--2: var(--colors-neutral-93, #efebef);
89
+ --color-gray--3: var(--colors-neutral-90, #dfdae1);
90
+ --color-gray--4: var(--colors-neutral-80, #c9c1cd);
91
+ --color-gray--5: var(--colors-neutral-70, #afa4b4);
92
+ --color-gray--6: var(--colors-neutral-50, #7d7184);
93
+ --color-gray--7: var(--colors-neutral-40, #6b6071);
94
+ --color-gray--8: var(--colors-neutral-30, #49404f);
95
+
96
+ --color-aqua--1: var(--colors-turquoise-95, #e9fbf9);
97
+ --color-aqua--2: var(--colors-turquoise-80, #8ae0d7);
98
+ --color-aqua--3: var(--colors-turquoise-70, #55cec3);
99
+ --color-aqua--4: var(--colors-turquoise-60, #11bba9);
100
+ --color-aqua--5: var(--colors-turquoise-50, #009e8e);
101
+
102
+ --color-grape--1: var(--colors-purple-95, #f9f2fd);
103
+ --color-grape--2: var(--colors-purple-70, #c289e6);
104
+ --color-grape--3: var(--colors-purple-50, #9247c2);
105
+ --color-grape--4: var(--colors-purple-30, #5c2a7e);
106
+ --color-grape--5: var(--colors-purple-10, #2b0e3f);
107
+
108
+ --color-eggplant: var(--colors-purple-40, #7b3ba5);
109
+
110
+ --color-red--1: var(--colors-red-93, #ffe5eb);
111
+ --color-red--2: var(--colors-red-70, #ff8091);
112
+ --color-red--3: var(--colors-red-50, #d72d40);
113
+ --color-red--4: var(--colors-red-40, #a91e2e);
114
+ --color-red--5: var(--colors-red-30, #78111c);
115
+
116
+ --color-orange--1: #FFECE5;
117
+ --color-orange--2: #FFA17F;
118
+ --color-orange--3: #FF4400;
119
+ --color-orange--4: #E73E00;
120
+ --color-orange--5: #D33D07;
121
+
122
+ --color-yellow--1: var(--colors-yellow-95, #fff6d1);
123
+ --color-yellow--2: var(--colors-yellow-90, #fbe074);
124
+ --color-yellow--3: var(--colors-yellow-80, #f9cc15);
125
+ --color-yellow--4: var(--colors-yellow-70, #ebba00);
126
+ --color-yellow--5: var(--colors-yellow-40, #875b00);
127
+
128
+ --color-green--1: var(--colors-green-95, #eef9f1);
129
+ --color-green--2: var(--colors-green-80, #a1deb2);
130
+ --color-green--3: var(--colors-green-60, #4eb76c);
131
+ --color-green--4: var(--colors-green-50, #2a9d4c);
132
+ --color-green--5: var(--colors-green-40, #167231);
133
+
134
+ --color-blue--1: var(--colors-blue-93, #def2fc);
135
+ --color-blue--2: var(--colors-blue-70, #71b8ef);
136
+ --color-blue--3: var(--colors-blue-50, #2582d0);
137
+ --color-blue--4: var(--colors-blue-40, #1066ac);
138
+ --color-blue--5: var(--colors-blue-30, #044781);
139
+
140
+ --color-darkblue--1: var(--colors-blue-93, #def2fc);
141
+ --color-darkblue--2: var(--colors-blue-60, #4f9bde);
142
+ --color-darkblue--3: var(--colors-blue-30, #044781);
143
+ --color-darkblue--4: var(--colors-blue-20, #00315c);
144
+ --color-darkblue--5: var(--colors-blue-10, #002442);
145
+
146
+ --color-violet--1: var(--colors-purple-95, #f9f2fd);
147
+ --color-violet--2: var(--colors-purple-70, #c289e6);
148
+ --color-violet--3: var(--colors-purple-40, #7b3ba5);
149
+ --color-violet--4: var(--colors-purple-30, #5c2a7e);
150
+ --color-violet--5: var(--colors-purple-20, #421560);
151
+
152
+ --rgb-white: 255, 255, 255;
153
+
154
+ --rgb-grape--2: 184, 138, 219;
155
+
156
+ --rgb-red--2: 255, 143, 171;
157
+
158
+ --rgb-yellow--2: 255, 226, 127;
159
+
160
+ --rgb-green--2: 135, 225, 195;
161
+
162
+ --rgb-blue--2: 134, 193, 230;
163
+
164
+ --color-overlay--black: rgba(34, 34, 34, 0.8);
165
+
166
+ --font-family: 'TT Norms Pro', sans-serif;
167
+ --font-family-monospace: 'Source Code Pro', monospace;
168
+
169
+ --font-size--1: 0.6875rem; /* 11px */
170
+ --font-size--2: 0.875rem; /* 14px */
171
+ --font-size--3: 1rem; /* 16px */
172
+ --font-size--4: 1.1875rem; /* 19px */
173
+ --font-size--5: 1.5rem; /* 24px */
174
+ --font-size--6: 1.875rem; /* 30px */
175
+ --font-size--7: 2.25rem; /* 36 px */
176
+ --font-size--8: 3rem; /* 48px */
177
+
178
+ --font-weight--bold: 700;
179
+
180
+ --font-weight-monospace--bold: 600;
181
+
182
+ --line-height--1: 1rem; /* 16px */
183
+ --line-height--2: 1.25rem; /* 20px */
184
+ --line-height--3: 1.5rem; /* 24px */
185
+ --line-height--4: 1.75rem; /* 28px */
186
+ --line-height--5: 2.25rem; /* 36px */
187
+ --line-height--6: 2.5rem; /* 40px */
188
+ --line-height--7: 3rem; /* 48px */
189
+ --line-height--8: 3.75rem; /* 60px */
190
+
191
+ --letter-spacing--x1: 0.00625rem;
192
+ --letter-spacing--x2: 0.009375rem;
193
+ --letter-spacing--x3: 0.0175rem;
194
+ --letter-spacing--x4: 0.0375rem;
195
+ --letter-spacing--x5: 0.05rem;
196
+
197
+ --transition-duration--fast: 100ms;
198
+ --transition-duration--base: 200ms;
199
+ --transition-duration--slow: 400ms;
200
+ --transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
201
+
202
+ --shadow-elevation--x1: 0 0.125rem 0.25rem 0 rgba(0, 0, 0, 0.08);
203
+ --shadow-elevation--x2: 0 0.125rem 0.75rem 0 rgba(0, 0, 0, 0.06);
204
+ --shadow-elevation--x3: 0 0.125rem 1.5rem 0 rgba(0, 0, 0, 0.08);
205
+
206
+ --z-index-Header: 1;
207
+ --z-index-Sidebar: 1;
208
+ --z-index-Placement--below-modal: 2;
209
+ --z-index-Placement--above-modal: 4;
210
+ }