@spaced-out/ui-design-system 0.1.130-beta.0 → 0.2.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.
- package/CHANGELOG.md +14 -0
- package/design-tokens/color/app-color.json +22 -0
- package/lib/components/ButtonDropdown/ButtonDropdown.js +6 -5
- package/lib/components/ButtonDropdown/ButtonDropdown.js.flow +4 -4
- package/lib/components/ButtonTabs/ButtonTabDropdown.js +6 -5
- package/lib/components/ButtonTabs/ButtonTabDropdown.js.flow +4 -4
- package/lib/components/Dropdown/Dropdown.js +7 -6
- package/lib/components/Dropdown/Dropdown.js.flow +5 -5
- package/lib/components/InlineDropdown/InlineDropdown.js +6 -5
- package/lib/components/InlineDropdown/InlineDropdown.js.flow +4 -4
- package/lib/components/ScoreBar/ScoreBar.js +64 -0
- package/lib/components/ScoreBar/ScoreBar.js.flow +117 -0
- package/lib/components/ScoreBar/ScoreBar.module.css +36 -0
- package/lib/components/ScoreBar/index.js +16 -0
- package/lib/components/ScoreBar/index.js.flow +3 -0
- package/lib/components/Tabs/TabList/TabDropdown.js +6 -5
- package/lib/components/Tabs/TabList/TabDropdown.js.flow +4 -4
- package/lib/components/Typeahead/Typeahead.js +3 -4
- package/lib/components/Typeahead/Typeahead.js.flow +2 -3
- package/lib/styles/index.css +12 -0
- package/lib/styles/index.js +15 -3
- package/lib/styles/index.js.flow +12 -0
- package/lib/styles/variables/_color.css +12 -0
- package/lib/styles/variables/_color.js +14 -1
- package/lib/styles/variables/_color.js.flow +12 -0
- package/lib/utils/click-away/click-away.js +20 -18
- package/lib/utils/click-away/click-away.js.flow +44 -27
- package/lib/utils/index.js +11 -0
- package/lib/utils/index.js.flow +1 -0
- package/lib/utils/merge-refs/merge-refs.js.flow +2 -2
- package/lib/utils/score-bar/index.js +16 -0
- package/lib/utils/score-bar/index.js.flow +3 -0
- package/lib/utils/score-bar/score-bar.js +27 -0
- package/lib/utils/score-bar/score-bar.js.flow +33 -0
- package/package.json +3 -3
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
import {spaceNone, spaceXXSmall} from '../../../styles/variables/_space';
|
|
18
18
|
import {classify} from '../../../utils/classify';
|
|
19
19
|
import {ClickAway} from '../../../utils/click-away';
|
|
20
|
+
import {mergeRefs} from '../../../utils/merge-refs';
|
|
20
21
|
import type {AnchorType} from '../../ButtonDropdown';
|
|
21
22
|
import type {MenuOption, MenuProps} from '../../Menu';
|
|
22
23
|
import {Menu} from '../../Menu';
|
|
@@ -59,7 +60,7 @@ export const TabDropdown = ({
|
|
|
59
60
|
|
|
60
61
|
return (
|
|
61
62
|
<ClickAway>
|
|
62
|
-
{({isOpen, onOpen,
|
|
63
|
+
{({isOpen, onOpen, clickAway, boundaryRef, triggerRef}) => (
|
|
63
64
|
<div
|
|
64
65
|
data-testid="TabDropdown"
|
|
65
66
|
className={classify(css.tabDropdownContainer, classNames?.wrapper)}
|
|
@@ -68,7 +69,7 @@ export const TabDropdown = ({
|
|
|
68
69
|
<Tab
|
|
69
70
|
{...props?.tab}
|
|
70
71
|
size={size}
|
|
71
|
-
ref={refs.setReference}
|
|
72
|
+
ref={mergeRefs([refs.setReference, triggerRef])}
|
|
72
73
|
onClick={(e) => {
|
|
73
74
|
e.stopPropagation();
|
|
74
75
|
onOpen();
|
|
@@ -80,8 +81,7 @@ export const TabDropdown = ({
|
|
|
80
81
|
/>
|
|
81
82
|
{isOpen && props?.menu && (
|
|
82
83
|
<div
|
|
83
|
-
|
|
84
|
-
ref={refs.setFloating}
|
|
84
|
+
ref={mergeRefs([refs.setFloating, boundaryRef])}
|
|
85
85
|
style={{
|
|
86
86
|
display: 'flex',
|
|
87
87
|
position: strategy,
|
|
@@ -68,13 +68,13 @@ const Typeahead = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
|
68
68
|
let {
|
|
69
69
|
isOpen,
|
|
70
70
|
onOpen,
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
clickAway,
|
|
72
|
+
boundaryRef
|
|
73
73
|
} = _ref2;
|
|
74
74
|
return /*#__PURE__*/React.createElement("div", {
|
|
75
75
|
"data-testid": "Typeahead",
|
|
76
76
|
className: (0, _classify.classify)(_TypeaheadModule.default.typeaheadContainer, classNames?.wrapper),
|
|
77
|
-
|
|
77
|
+
ref: boundaryRef
|
|
78
78
|
}, /*#__PURE__*/React.createElement(_SearchInput.SearchInput, _extends({}, inputProps, {
|
|
79
79
|
ref: ref,
|
|
80
80
|
boxRef: refs.setReference,
|
|
@@ -106,7 +106,6 @@ const Typeahead = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
|
106
106
|
onClear?.();
|
|
107
107
|
}
|
|
108
108
|
})), isOpen && !isLoading && menu && filteredOptions && !!filteredOptions.length && /*#__PURE__*/React.createElement("div", {
|
|
109
|
-
onClickCapture: cancelNext,
|
|
110
109
|
ref: refs.setFloating,
|
|
111
110
|
style: {
|
|
112
111
|
position: strategy,
|
|
@@ -98,11 +98,11 @@ export const Typeahead: React$AbstractComponent<
|
|
|
98
98
|
|
|
99
99
|
return (
|
|
100
100
|
<ClickAway onChange={onMenuToggle} clickAwayRef={clickAwayRef}>
|
|
101
|
-
{({isOpen, onOpen,
|
|
101
|
+
{({isOpen, onOpen, clickAway, boundaryRef}) => (
|
|
102
102
|
<div
|
|
103
103
|
data-testid="Typeahead"
|
|
104
104
|
className={classify(css.typeaheadContainer, classNames?.wrapper)}
|
|
105
|
-
|
|
105
|
+
ref={boundaryRef}
|
|
106
106
|
>
|
|
107
107
|
<SearchInput
|
|
108
108
|
{...inputProps}
|
|
@@ -140,7 +140,6 @@ export const Typeahead: React$AbstractComponent<
|
|
|
140
140
|
filteredOptions &&
|
|
141
141
|
!!filteredOptions.length && (
|
|
142
142
|
<div
|
|
143
|
-
onClickCapture={cancelNext}
|
|
144
143
|
ref={refs.setFloating}
|
|
145
144
|
style={{
|
|
146
145
|
position: strategy,
|
package/lib/styles/index.css
CHANGED
|
@@ -160,6 +160,18 @@
|
|
|
160
160
|
|
|
161
161
|
@value colorDataViz8: #F5EBB4;
|
|
162
162
|
|
|
163
|
+
@value colorScoreBarLevel1: #e94970;
|
|
164
|
+
|
|
165
|
+
@value colorScoreBarLevel2: #e5983d;
|
|
166
|
+
|
|
167
|
+
@value colorScoreBarLevel3: #3987f3;
|
|
168
|
+
|
|
169
|
+
@value colorScoreBarLevel4: #56b988;
|
|
170
|
+
|
|
171
|
+
@value colorScoreBarLevel5: #026b37;
|
|
172
|
+
|
|
173
|
+
@value colorScoreBarInactive: #D3D2E0;
|
|
174
|
+
|
|
163
175
|
@value colorGrayLightest: #EBEBEB;
|
|
164
176
|
|
|
165
177
|
@value colorNeutral: #706F9B;
|
package/lib/styles/index.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.spaceXXSmall = exports.spaceXXLarge = exports.spaceXSmall = exports.spaceXLarge = exports.spaceSmall = exports.spaceNone = exports.spaceNegHalfFluid = exports.spaceNegFluid = exports.spaceMedium = exports.spaceLarge = exports.spaceHalfFluid = exports.spaceFluid = exports.sizeFullViewportWidth = exports.sizeFullViewportHeight = exports.sizeFluid = exports.size960 = exports.size90 = exports.size880 = exports.size800 = exports.size8 = exports.size720 = exports.size70 = exports.size660 = exports.size66 = exports.size640 = exports.size60 = exports.size580 = exports.size58 = exports.size540 = exports.size500 = exports.size50 = exports.size5 = exports.size480 = exports.size48 = exports.size44 = exports.size42 = exports.size400 = exports.size40 = exports.size4 = exports.size380 = exports.size38 = exports.size36 = exports.size34 = exports.size320 = exports.size32 = exports.size300 = exports.size30 = exports.size28 = exports.size276 = exports.size260 = exports.size26 = exports.size252 = exports.size240 = exports.size24 = exports.size228 = exports.size22 = exports.size200 = exports.size20 = void 0;
|
|
6
|
+
exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextFavorite = exports.colorTextDisabled = exports.colorTextDanger = exports.colorTextClickable = exports.colorSuccessLightest = exports.colorSuccessLight = exports.colorSuccessDarkest = exports.colorSuccessDark = exports.colorSuccess = exports.colorSubMenuStar = exports.colorSubMenuBackgroundDefault = exports.colorSideMenuIconDefault = exports.colorSideMenuIconActive = exports.colorSideMenuBackgroundSelected = exports.colorSideMenuBackgroundHovered = exports.colorSideMenuBackgroundDefault = exports.colorSideMenuAccountBarFill = exports.colorScoreBarLevel5 = exports.colorScoreBarLevel4 = exports.colorScoreBarLevel3 = exports.colorScoreBarLevel2 = exports.colorScoreBarLevel1 = exports.colorScoreBarInactive = exports.colorNeutralLightest = exports.colorNeutralLight = exports.colorNeutralDarkest = exports.colorNeutralDark = exports.colorNeutral = exports.colorInformationLightest = exports.colorInformationLight = exports.colorInformationDarkest = exports.colorInformationDark = exports.colorInformation = exports.colorGroupMenuTextDefault = exports.colorGroupMenuBackgroundSelected = exports.colorGroupMenuBackgroundHovered = exports.colorGroupMenuBackgroundDefault = exports.colorGrayLightest = exports.colorFocusPrimary = exports.colorFocusDanger = exports.colorFillSecondary = exports.colorFillPrimary = exports.colorFillNone = exports.colorFillInversePrimary = exports.colorFillDisabled = exports.colorDataViz8 = exports.colorDataViz7 = exports.colorDataViz6 = exports.colorDataViz5 = exports.colorDataViz4 = exports.colorDataViz3 = exports.colorDataViz2 = exports.colorDataViz1 = exports.colorDangerLightest = exports.colorDangerLight = exports.colorDangerDarkest = exports.colorDangerDark = exports.colorDanger = exports.colorButtonFillTertiaryPressed = exports.colorButtonFillTertiaryHovered = exports.colorButtonFillTertiaryEnabled = exports.colorButtonFillTableActionPressed = exports.colorButtonFillTableActionHovered = exports.colorButtonFillTableActionEnabled = exports.colorButtonFillTableActionBorder = exports.colorButtonFillSecondaryPressed = exports.colorButtonFillSecondaryHovered = exports.colorButtonFillSecondaryEnabled = exports.colorButtonFillPrimaryPressed = exports.colorButtonFillPrimaryHovered = exports.colorButtonFillPrimaryEnabled = exports.colorButtonFillGhostPressed = exports.colorButtonFillGhostHovered = exports.colorButtonFillGhostEnabled = exports.colorButtonFillDangerPressed = exports.colorButtonFillDangerHovered = exports.colorButtonFillDangerEnabled = exports.colorBorderTertiary = exports.colorBorderSecondary = exports.colorBorderPrimary = exports.colorBorderDanger = exports.colorBackgroundTertiary = exports.colorBackgroundSecondary = exports.colorBackgroundPrimary = exports.colorBackgroundBrand = exports.colorBackdropFill = exports.borderWidthTertiary = exports.borderWidthSecondary = exports.borderWidthPrimary = exports.borderWidthNone = exports.borderRadiusXSmall = exports.borderRadiusXLarge = exports.borderRadiusSmall = exports.borderRadiusRadioButton = exports.borderRadiusNone = exports.borderRadiusMedium = exports.borderRadiusLarge = exports.borderRadiusCircle = void 0;
|
|
7
|
+
exports.size125 = exports.size12 = exports.size110 = exports.size100 = exports.size10 = exports.shadowBoxShadow4Y = exports.shadowBoxShadow4X = exports.shadowBoxShadow4Type = exports.shadowBoxShadow4Spread = exports.shadowBoxShadow4Color = exports.shadowBoxShadow4Blur = exports.shadowBoxShadow3Y = exports.shadowBoxShadow3X = exports.shadowBoxShadow3Type = exports.shadowBoxShadow3Spread = exports.shadowBoxShadow3Color = exports.shadowBoxShadow3Blur = exports.shadowBoxShadow2Y = exports.shadowBoxShadow2X = exports.shadowBoxShadow2Type = exports.shadowBoxShadow2Spread = exports.shadowBoxShadow2Color = exports.shadowBoxShadow2Blur = exports.shadowBoxShadow1Y = exports.shadowBoxShadow1X = exports.shadowBoxShadow1Type = exports.shadowBoxShadow1Spread = exports.shadowBoxShadow1Color = exports.shadowBoxShadow1Blur = exports.opacity95 = exports.opacity90 = exports.opacity85 = exports.opacity80 = exports.opacity70 = exports.opacity60 = exports.opacity50 = exports.opacity5 = exports.opacity40 = exports.opacity30 = exports.opacity20 = exports.opacity15 = exports.opacity100 = exports.opacity10 = exports.opacity0 = exports.motionEaseInEaseOut = exports.motionDurationSlowest = exports.motionDurationSlower = exports.motionDurationSlow = exports.motionDurationNormal = exports.motionDurationFast = exports.fontWeightMedium = exports.fontWeightBook = exports.fontTextDecorationNone = exports.fontTextCaseNone = exports.fontSize46 = exports.fontSize36 = exports.fontSize26 = exports.fontSize24 = exports.fontSize18 = exports.fontSize16 = exports.fontSize14 = exports.fontSize13 = exports.fontSize12 = exports.fontParagraphSpacing0 = exports.fontLineHeight170 = exports.fontLineHeight150 = exports.fontLineHeight140 = exports.fontLineHeight130 = exports.fontLineHeight125 = exports.fontLineHeight120 = exports.fontLineHeight100 = exports.fontLetterSpacingMinus4 = exports.fontLetterSpacingMinus3 = exports.fontLetterSpacingMinus2 = exports.fontLetterSpacingMinus1 = exports.fontLetterSpacing4 = exports.fontLetterSpacing2 = exports.fontLetterSpacing1 = exports.fontLetterSpacing0 = exports.fontFamilyCentra = exports.elevationTooltip = exports.elevationToast = exports.elevationNone = exports.elevationModal = exports.elevationMenu = exports.elevationCard = exports.elevationBackdrop = exports.colorWarningLightest = exports.colorWarningLight = exports.colorWarningDarkest = exports.colorWarningDark = exports.colorWarning = exports.colorTooltipFill = exports.colorTextWarning = exports.colorTextTertiary = exports.colorTextSuccess = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = void 0;
|
|
8
|
+
exports.spaceXXSmall = exports.spaceXXLarge = exports.spaceXSmall = exports.spaceXLarge = exports.spaceSmall = exports.spaceNone = exports.spaceNegHalfFluid = exports.spaceNegFluid = exports.spaceMedium = exports.spaceLarge = exports.spaceHalfFluid = exports.spaceFluid = exports.sizeFullViewportWidth = exports.sizeFullViewportHeight = exports.sizeFluid = exports.size960 = exports.size90 = exports.size880 = exports.size800 = exports.size8 = exports.size720 = exports.size70 = exports.size660 = exports.size66 = exports.size640 = exports.size60 = exports.size580 = exports.size58 = exports.size540 = exports.size500 = exports.size50 = exports.size5 = exports.size480 = exports.size48 = exports.size44 = exports.size42 = exports.size400 = exports.size40 = exports.size4 = exports.size380 = exports.size38 = exports.size36 = exports.size34 = exports.size320 = exports.size32 = exports.size300 = exports.size30 = exports.size28 = exports.size276 = exports.size260 = exports.size26 = exports.size252 = exports.size240 = exports.size24 = exports.size228 = exports.size22 = exports.size200 = exports.size20 = exports.size2 = exports.size180 = exports.size18 = exports.size160 = exports.size140 = exports.size1280 = void 0;
|
|
9
9
|
|
|
10
10
|
const borderWidthNone = '0px';
|
|
11
11
|
exports.borderWidthNone = borderWidthNone;
|
|
@@ -169,6 +169,18 @@ const colorDataViz7 = '#F5B8E1';
|
|
|
169
169
|
exports.colorDataViz7 = colorDataViz7;
|
|
170
170
|
const colorDataViz8 = '#F5EBB4';
|
|
171
171
|
exports.colorDataViz8 = colorDataViz8;
|
|
172
|
+
const colorScoreBarLevel1 = '#e94970';
|
|
173
|
+
exports.colorScoreBarLevel1 = colorScoreBarLevel1;
|
|
174
|
+
const colorScoreBarLevel2 = '#e5983d';
|
|
175
|
+
exports.colorScoreBarLevel2 = colorScoreBarLevel2;
|
|
176
|
+
const colorScoreBarLevel3 = '#3987f3';
|
|
177
|
+
exports.colorScoreBarLevel3 = colorScoreBarLevel3;
|
|
178
|
+
const colorScoreBarLevel4 = '#56b988';
|
|
179
|
+
exports.colorScoreBarLevel4 = colorScoreBarLevel4;
|
|
180
|
+
const colorScoreBarLevel5 = '#026b37';
|
|
181
|
+
exports.colorScoreBarLevel5 = colorScoreBarLevel5;
|
|
182
|
+
const colorScoreBarInactive = '#D3D2E0';
|
|
183
|
+
exports.colorScoreBarInactive = colorScoreBarInactive;
|
|
172
184
|
const colorGrayLightest = '#EBEBEB';
|
|
173
185
|
exports.colorGrayLightest = colorGrayLightest;
|
|
174
186
|
const colorNeutral = '#706F9B';
|
package/lib/styles/index.js.flow
CHANGED
|
@@ -162,6 +162,18 @@ export const colorDataViz7 = '#F5B8E1';
|
|
|
162
162
|
|
|
163
163
|
export const colorDataViz8 = '#F5EBB4';
|
|
164
164
|
|
|
165
|
+
export const colorScoreBarLevel1 = '#e94970';
|
|
166
|
+
|
|
167
|
+
export const colorScoreBarLevel2 = '#e5983d';
|
|
168
|
+
|
|
169
|
+
export const colorScoreBarLevel3 = '#3987f3';
|
|
170
|
+
|
|
171
|
+
export const colorScoreBarLevel4 = '#56b988';
|
|
172
|
+
|
|
173
|
+
export const colorScoreBarLevel5 = '#026b37';
|
|
174
|
+
|
|
175
|
+
export const colorScoreBarInactive = '#D3D2E0';
|
|
176
|
+
|
|
165
177
|
export const colorGrayLightest = '#EBEBEB';
|
|
166
178
|
|
|
167
179
|
export const colorNeutral = '#706F9B';
|
|
@@ -136,6 +136,18 @@
|
|
|
136
136
|
|
|
137
137
|
@value colorDataViz8: #F5EBB4;
|
|
138
138
|
|
|
139
|
+
@value colorScoreBarLevel1: #e94970;
|
|
140
|
+
|
|
141
|
+
@value colorScoreBarLevel2: #e5983d;
|
|
142
|
+
|
|
143
|
+
@value colorScoreBarLevel3: #3987f3;
|
|
144
|
+
|
|
145
|
+
@value colorScoreBarLevel4: #56b988;
|
|
146
|
+
|
|
147
|
+
@value colorScoreBarLevel5: #026b37;
|
|
148
|
+
|
|
149
|
+
@value colorScoreBarInactive: #D3D2E0;
|
|
150
|
+
|
|
139
151
|
@value colorGrayLightest: #EBEBEB;
|
|
140
152
|
|
|
141
153
|
@value colorNeutral: #706F9B;
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.colorWarningLight = exports.colorWarningDarkest = exports.colorWarningDark = exports.colorWarning = exports.colorTooltipFill = exports.colorTextWarning = exports.colorTextTertiary = exports.colorTextSuccess = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextFavorite = exports.colorTextDisabled = exports.colorTextDanger = exports.colorTextClickable = exports.colorSuccessLightest = exports.colorSuccessLight = exports.colorSuccessDarkest = exports.colorSuccessDark = exports.colorSuccess = exports.colorSubMenuStar = exports.colorSubMenuBackgroundDefault = exports.colorSideMenuIconDefault = exports.colorSideMenuIconActive = exports.colorSideMenuBackgroundSelected = exports.colorSideMenuBackgroundHovered = exports.colorSideMenuBackgroundDefault = exports.colorSideMenuAccountBarFill = exports.colorScoreBarLevel5 = exports.colorScoreBarLevel4 = exports.colorScoreBarLevel3 = exports.colorScoreBarLevel2 = exports.colorScoreBarLevel1 = exports.colorScoreBarInactive = exports.colorNeutralLightest = exports.colorNeutralLight = exports.colorNeutralDarkest = exports.colorNeutralDark = exports.colorNeutral = exports.colorInformationLightest = exports.colorInformationLight = exports.colorInformationDarkest = exports.colorInformationDark = exports.colorInformation = exports.colorGroupMenuTextDefault = exports.colorGroupMenuBackgroundSelected = exports.colorGroupMenuBackgroundHovered = exports.colorGroupMenuBackgroundDefault = exports.colorGrayLightest = exports.colorFocusPrimary = exports.colorFocusDanger = exports.colorFillSecondary = exports.colorFillPrimary = exports.colorFillNone = exports.colorFillInversePrimary = exports.colorFillDisabled = exports.colorDataViz8 = exports.colorDataViz7 = exports.colorDataViz6 = exports.colorDataViz5 = exports.colorDataViz4 = exports.colorDataViz3 = exports.colorDataViz2 = exports.colorDataViz1 = exports.colorDangerLightest = exports.colorDangerLight = exports.colorDangerDarkest = exports.colorDangerDark = exports.colorDanger = exports.colorButtonFillTertiaryPressed = exports.colorButtonFillTertiaryHovered = exports.colorButtonFillTertiaryEnabled = exports.colorButtonFillTableActionPressed = exports.colorButtonFillTableActionHovered = exports.colorButtonFillTableActionEnabled = exports.colorButtonFillTableActionBorder = exports.colorButtonFillSecondaryPressed = exports.colorButtonFillSecondaryHovered = exports.colorButtonFillSecondaryEnabled = exports.colorButtonFillPrimaryPressed = exports.colorButtonFillPrimaryHovered = exports.colorButtonFillPrimaryEnabled = exports.colorButtonFillGhostPressed = exports.colorButtonFillGhostHovered = exports.colorButtonFillGhostEnabled = exports.colorButtonFillDangerPressed = exports.colorButtonFillDangerHovered = exports.colorButtonFillDangerEnabled = exports.colorBorderTertiary = exports.colorBorderSecondary = exports.colorBorderPrimary = exports.colorBorderDanger = exports.colorBackgroundTertiary = exports.colorBackgroundSecondary = exports.colorBackgroundPrimary = exports.colorBackgroundBrand = exports.colorBackdropFill = void 0;
|
|
7
|
+
exports.colorWarningLightest = void 0;
|
|
7
8
|
|
|
8
9
|
const colorTextPrimary = '#17172A';
|
|
9
10
|
exports.colorTextPrimary = colorTextPrimary;
|
|
@@ -143,6 +144,18 @@ const colorDataViz7 = '#F5B8E1';
|
|
|
143
144
|
exports.colorDataViz7 = colorDataViz7;
|
|
144
145
|
const colorDataViz8 = '#F5EBB4';
|
|
145
146
|
exports.colorDataViz8 = colorDataViz8;
|
|
147
|
+
const colorScoreBarLevel1 = '#e94970';
|
|
148
|
+
exports.colorScoreBarLevel1 = colorScoreBarLevel1;
|
|
149
|
+
const colorScoreBarLevel2 = '#e5983d';
|
|
150
|
+
exports.colorScoreBarLevel2 = colorScoreBarLevel2;
|
|
151
|
+
const colorScoreBarLevel3 = '#3987f3';
|
|
152
|
+
exports.colorScoreBarLevel3 = colorScoreBarLevel3;
|
|
153
|
+
const colorScoreBarLevel4 = '#56b988';
|
|
154
|
+
exports.colorScoreBarLevel4 = colorScoreBarLevel4;
|
|
155
|
+
const colorScoreBarLevel5 = '#026b37';
|
|
156
|
+
exports.colorScoreBarLevel5 = colorScoreBarLevel5;
|
|
157
|
+
const colorScoreBarInactive = '#D3D2E0';
|
|
158
|
+
exports.colorScoreBarInactive = colorScoreBarInactive;
|
|
146
159
|
const colorGrayLightest = '#EBEBEB';
|
|
147
160
|
exports.colorGrayLightest = colorGrayLightest;
|
|
148
161
|
const colorNeutral = '#706F9B';
|
|
@@ -138,6 +138,18 @@ export const colorDataViz7 = '#F5B8E1';
|
|
|
138
138
|
|
|
139
139
|
export const colorDataViz8 = '#F5EBB4';
|
|
140
140
|
|
|
141
|
+
export const colorScoreBarLevel1 = '#e94970';
|
|
142
|
+
|
|
143
|
+
export const colorScoreBarLevel2 = '#e5983d';
|
|
144
|
+
|
|
145
|
+
export const colorScoreBarLevel3 = '#3987f3';
|
|
146
|
+
|
|
147
|
+
export const colorScoreBarLevel4 = '#56b988';
|
|
148
|
+
|
|
149
|
+
export const colorScoreBarLevel5 = '#026b37';
|
|
150
|
+
|
|
151
|
+
export const colorScoreBarInactive = '#D3D2E0';
|
|
152
|
+
|
|
141
153
|
export const colorGrayLightest = '#EBEBEB';
|
|
142
154
|
|
|
143
155
|
export const colorNeutral = '#706F9B';
|
|
@@ -22,7 +22,8 @@ class ClickAway extends React.Component {
|
|
|
22
22
|
pageBottom: null
|
|
23
23
|
});
|
|
24
24
|
_defineProperty(this, "el", null);
|
|
25
|
-
_defineProperty(this, "
|
|
25
|
+
_defineProperty(this, "boundaryRef", /*#__PURE__*/React.createRef());
|
|
26
|
+
_defineProperty(this, "triggerRef", /*#__PURE__*/React.createRef());
|
|
26
27
|
_defineProperty(this, "handleOpenClick", () => {
|
|
27
28
|
// NOTE (kyle): we recalculate the position on click because sibling and niece components
|
|
28
29
|
// could have changed.
|
|
@@ -33,21 +34,20 @@ class ClickAway extends React.Component {
|
|
|
33
34
|
pageBottom = this.pageBottom();
|
|
34
35
|
}
|
|
35
36
|
this.setState({
|
|
36
|
-
isOpen:
|
|
37
|
+
isOpen: !this.state.isOpen,
|
|
37
38
|
pageBottom
|
|
38
39
|
}, this.handleOnChange);
|
|
39
40
|
});
|
|
40
41
|
_defineProperty(this, "handleCloseClick", evt => {
|
|
41
|
-
if (this.
|
|
42
|
+
if (evt.target instanceof Node && this.boundaryRef && (this.boundaryRef === evt.target || this.boundaryRef.current?.contains(evt.target))) {
|
|
42
43
|
return;
|
|
43
44
|
}
|
|
44
|
-
if (this.
|
|
45
|
-
|
|
46
|
-
} else {
|
|
47
|
-
this.setState({
|
|
48
|
-
isOpen: false
|
|
49
|
-
}, this.handleOnChange);
|
|
45
|
+
if (evt.target instanceof Node && this.triggerRef && (this.triggerRef === evt.target || this.triggerRef.current?.contains(evt.target))) {
|
|
46
|
+
return;
|
|
50
47
|
}
|
|
48
|
+
this.setState({
|
|
49
|
+
isOpen: false
|
|
50
|
+
}, this.handleOnChange);
|
|
51
51
|
});
|
|
52
52
|
_defineProperty(this, "handleCloseOnEscapeKeypress", evt => {
|
|
53
53
|
if (evt?.key === 'Escape') {
|
|
@@ -59,9 +59,6 @@ class ClickAway extends React.Component {
|
|
|
59
59
|
isOpen: false
|
|
60
60
|
}, this.handleOnChange);
|
|
61
61
|
});
|
|
62
|
-
_defineProperty(this, "cancelNextClickAway", () => {
|
|
63
|
-
this.cancelNext = true;
|
|
64
|
-
});
|
|
65
62
|
_defineProperty(this, "handleOnChange", () => this.props.onChange && this.props.onChange(this.state.isOpen));
|
|
66
63
|
}
|
|
67
64
|
componentDidMount() {
|
|
@@ -78,18 +75,24 @@ class ClickAway extends React.Component {
|
|
|
78
75
|
} = this.state;
|
|
79
76
|
if (prevState.isOpen !== isOpen) {
|
|
80
77
|
if (this.state.isOpen) {
|
|
81
|
-
window.document.addEventListener('click', this.handleCloseClick
|
|
78
|
+
window.document.addEventListener('click', this.handleCloseClick, {
|
|
79
|
+
capture: true
|
|
80
|
+
});
|
|
82
81
|
if (this.props.closeOnEscapeKeypress) {
|
|
83
82
|
window.document.addEventListener('keyup', this.handleCloseOnEscapeKeypress);
|
|
84
83
|
}
|
|
85
84
|
} else {
|
|
86
|
-
window.document.removeEventListener('click', this.handleCloseClick
|
|
85
|
+
window.document.removeEventListener('click', this.handleCloseClick, {
|
|
86
|
+
capture: true
|
|
87
|
+
});
|
|
87
88
|
window.document.removeEventListener('keyup', this.handleCloseOnEscapeKeypress);
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
}
|
|
91
92
|
componentWillUnmount() {
|
|
92
|
-
window.document.removeEventListener('click', this.handleCloseClick
|
|
93
|
+
window.document.removeEventListener('click', this.handleCloseClick, {
|
|
94
|
+
capture: true
|
|
95
|
+
});
|
|
93
96
|
window.document.removeEventListener('keyup', this.handleCloseOnEscapeKeypress);
|
|
94
97
|
}
|
|
95
98
|
render() {
|
|
@@ -112,9 +115,9 @@ class ClickAway extends React.Component {
|
|
|
112
115
|
isOpen,
|
|
113
116
|
height,
|
|
114
117
|
pageBottom,
|
|
115
|
-
cancelNext: this.cancelNextClickAway,
|
|
116
118
|
clickAway: this.forceClose,
|
|
117
|
-
|
|
119
|
+
boundaryRef: this.boundaryRef,
|
|
120
|
+
triggerRef: this.triggerRef
|
|
118
121
|
});
|
|
119
122
|
}
|
|
120
123
|
pageBottom() {
|
|
@@ -125,6 +128,5 @@ class ClickAway extends React.Component {
|
|
|
125
128
|
}
|
|
126
129
|
exports.ClickAway = ClickAway;
|
|
127
130
|
_defineProperty(ClickAway, "defaultProps", {
|
|
128
|
-
shouldCancel: () => false,
|
|
129
131
|
closeOnEscapeKeypress: true
|
|
130
132
|
});
|
|
@@ -6,14 +6,22 @@ import invariant from 'invariant';
|
|
|
6
6
|
import {pageHeight} from '../dom';
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
type BoundaryRefType<T> = {
|
|
10
|
+
current: ?T,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type TriggerRefType<T> = {
|
|
14
|
+
current: ?T,
|
|
15
|
+
};
|
|
16
|
+
|
|
9
17
|
export type ChildProps = {
|
|
10
18
|
onOpen: () => void,
|
|
11
19
|
isOpen: boolean,
|
|
12
20
|
height: ?number,
|
|
13
21
|
pageBottom: ?number,
|
|
14
|
-
cancelNext: () => void,
|
|
15
22
|
clickAway: () => void,
|
|
16
|
-
|
|
23
|
+
boundaryRef: BoundaryRefType<?HTMLElement>,
|
|
24
|
+
triggerRef: TriggerRefType<?HTMLElement>,
|
|
17
25
|
};
|
|
18
26
|
|
|
19
27
|
export type ClickAwayRefType = ?{
|
|
@@ -26,7 +34,6 @@ export type ClickAwayRefType = ?{
|
|
|
26
34
|
export type ClickAwayProps = {
|
|
27
35
|
closeOnEscapeKeypress?: boolean,
|
|
28
36
|
children: (props: ChildProps) => React.Node,
|
|
29
|
-
shouldCancel: (event: MouseEvent) => boolean,
|
|
30
37
|
onChange?: (isOpen: boolean) => mixed,
|
|
31
38
|
clickAwayRef?: ClickAwayRefType,
|
|
32
39
|
};
|
|
@@ -41,10 +48,8 @@ type ClickAwayState = {
|
|
|
41
48
|
|
|
42
49
|
export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
43
50
|
static defaultProps: {
|
|
44
|
-
shouldCancel: () => boolean,
|
|
45
51
|
closeOnEscapeKeypress?: boolean,
|
|
46
52
|
} = {
|
|
47
|
-
shouldCancel: () => false,
|
|
48
53
|
closeOnEscapeKeypress: true,
|
|
49
54
|
};
|
|
50
55
|
|
|
@@ -55,7 +60,8 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
55
60
|
};
|
|
56
61
|
|
|
57
62
|
el: ?HTMLElement = null;
|
|
58
|
-
|
|
63
|
+
boundaryRef: BoundaryRefType<?HTMLElement> = React.createRef();
|
|
64
|
+
triggerRef: TriggerRefType<?HTMLElement> = React.createRef();
|
|
59
65
|
|
|
60
66
|
componentDidMount() {
|
|
61
67
|
if (this.el) {
|
|
@@ -70,7 +76,9 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
70
76
|
const {isOpen} = this.state;
|
|
71
77
|
if (prevState.isOpen !== isOpen) {
|
|
72
78
|
if (this.state.isOpen) {
|
|
73
|
-
window.document.addEventListener('click', this.handleCloseClick
|
|
79
|
+
window.document.addEventListener('click', this.handleCloseClick, {
|
|
80
|
+
capture: true,
|
|
81
|
+
});
|
|
74
82
|
if (this.props.closeOnEscapeKeypress) {
|
|
75
83
|
window.document.addEventListener(
|
|
76
84
|
'keyup',
|
|
@@ -78,7 +86,9 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
78
86
|
);
|
|
79
87
|
}
|
|
80
88
|
} else {
|
|
81
|
-
window.document.removeEventListener('click', this.handleCloseClick
|
|
89
|
+
window.document.removeEventListener('click', this.handleCloseClick, {
|
|
90
|
+
capture: true,
|
|
91
|
+
});
|
|
82
92
|
window.document.removeEventListener(
|
|
83
93
|
'keyup',
|
|
84
94
|
this.handleCloseOnEscapeKeypress,
|
|
@@ -88,7 +98,9 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
88
98
|
}
|
|
89
99
|
|
|
90
100
|
componentWillUnmount() {
|
|
91
|
-
window.document.removeEventListener('click', this.handleCloseClick
|
|
101
|
+
window.document.removeEventListener('click', this.handleCloseClick, {
|
|
102
|
+
capture: true,
|
|
103
|
+
});
|
|
92
104
|
window.document.removeEventListener(
|
|
93
105
|
'keyup',
|
|
94
106
|
this.handleCloseOnEscapeKeypress,
|
|
@@ -98,7 +110,6 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
98
110
|
render(): React.Node {
|
|
99
111
|
const {height, isOpen, pageBottom} = this.state;
|
|
100
112
|
const {clickAwayRef} = this.props;
|
|
101
|
-
|
|
102
113
|
if (clickAwayRef) {
|
|
103
114
|
clickAwayRef.current = {
|
|
104
115
|
forceClose: this.forceClose,
|
|
@@ -110,9 +121,9 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
110
121
|
isOpen,
|
|
111
122
|
height,
|
|
112
123
|
pageBottom,
|
|
113
|
-
cancelNext: this.cancelNextClickAway,
|
|
114
124
|
clickAway: this.forceClose,
|
|
115
|
-
|
|
125
|
+
boundaryRef: this.boundaryRef,
|
|
126
|
+
triggerRef: this.triggerRef,
|
|
116
127
|
});
|
|
117
128
|
}
|
|
118
129
|
|
|
@@ -126,7 +137,7 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
126
137
|
|
|
127
138
|
this.setState(
|
|
128
139
|
{
|
|
129
|
-
isOpen:
|
|
140
|
+
isOpen: !this.state.isOpen,
|
|
130
141
|
pageBottom,
|
|
131
142
|
},
|
|
132
143
|
this.handleOnChange,
|
|
@@ -134,20 +145,30 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
134
145
|
};
|
|
135
146
|
|
|
136
147
|
handleCloseClick: (evt: MouseEvent) => void = (evt: MouseEvent) => {
|
|
137
|
-
if (
|
|
148
|
+
if (
|
|
149
|
+
evt.target instanceof Node &&
|
|
150
|
+
this.boundaryRef &&
|
|
151
|
+
(this.boundaryRef === evt.target ||
|
|
152
|
+
this.boundaryRef.current?.contains(evt.target))
|
|
153
|
+
) {
|
|
138
154
|
return;
|
|
139
155
|
}
|
|
140
156
|
|
|
141
|
-
if (
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
this.handleOnChange,
|
|
149
|
-
);
|
|
157
|
+
if (
|
|
158
|
+
evt.target instanceof Node &&
|
|
159
|
+
this.triggerRef &&
|
|
160
|
+
(this.triggerRef === evt.target ||
|
|
161
|
+
this.triggerRef.current?.contains(evt.target))
|
|
162
|
+
) {
|
|
163
|
+
return;
|
|
150
164
|
}
|
|
165
|
+
|
|
166
|
+
this.setState(
|
|
167
|
+
{
|
|
168
|
+
isOpen: false,
|
|
169
|
+
},
|
|
170
|
+
this.handleOnChange,
|
|
171
|
+
);
|
|
151
172
|
};
|
|
152
173
|
|
|
153
174
|
handleCloseOnEscapeKeypress: (
|
|
@@ -162,10 +183,6 @@ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
|
|
|
162
183
|
this.setState({isOpen: false}, this.handleOnChange);
|
|
163
184
|
};
|
|
164
185
|
|
|
165
|
-
cancelNextClickAway: () => void = () => {
|
|
166
|
-
this.cancelNext = true;
|
|
167
|
-
};
|
|
168
|
-
|
|
169
186
|
handleOnChange: () => mixed = () =>
|
|
170
187
|
this.props.onChange && this.props.onChange(this.state.isOpen);
|
|
171
188
|
|
package/lib/utils/index.js
CHANGED
|
@@ -124,6 +124,17 @@ Object.keys(_rating).forEach(function (key) {
|
|
|
124
124
|
}
|
|
125
125
|
});
|
|
126
126
|
});
|
|
127
|
+
var _scoreBar = require("./score-bar");
|
|
128
|
+
Object.keys(_scoreBar).forEach(function (key) {
|
|
129
|
+
if (key === "default" || key === "__esModule") return;
|
|
130
|
+
if (key in exports && exports[key] === _scoreBar[key]) return;
|
|
131
|
+
Object.defineProperty(exports, key, {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
get: function () {
|
|
134
|
+
return _scoreBar[key];
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
});
|
|
127
138
|
var _string = require("./string");
|
|
128
139
|
Object.keys(_string).forEach(function (key) {
|
|
129
140
|
if (key === "default" || key === "__esModule") return;
|
package/lib/utils/index.js.flow
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @flow strict
|
|
2
2
|
export function mergeRefs(
|
|
3
|
-
refs: Array<{current: ?HTMLElement
|
|
4
|
-
): (value:
|
|
3
|
+
refs: Array<{current: ?HTMLElement}>,
|
|
4
|
+
): (value: ?HTMLElement) => void {
|
|
5
5
|
return (value) => {
|
|
6
6
|
refs.forEach((ref) => {
|
|
7
7
|
if (typeof ref === 'function') {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _scoreBar = require("./score-bar");
|
|
7
|
+
Object.keys(_scoreBar).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _scoreBar[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _scoreBar[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getColorByScorePercentage = exports.SCORE_BAR_ERRORS = void 0;
|
|
7
|
+
|
|
8
|
+
const getColorByPercentage = (totalBars, score, colorMap) => {
|
|
9
|
+
if (score <= 0) {
|
|
10
|
+
return colorMap.inactive;
|
|
11
|
+
}
|
|
12
|
+
const scorePercentage = 100 * score / totalBars;
|
|
13
|
+
const range = Math.min(Math.ceil(scorePercentage / 20) * 20, 100);
|
|
14
|
+
return colorMap[range.toString()] || colorMap.inactive;
|
|
15
|
+
};
|
|
16
|
+
const getColorByScorePercentage = (totalBars, score, currentBarNumber, colorMap) => {
|
|
17
|
+
const validColor = getColorByPercentage(totalBars, score, colorMap);
|
|
18
|
+
return currentBarNumber < score ? validColor : colorMap.inactive;
|
|
19
|
+
};
|
|
20
|
+
exports.getColorByScorePercentage = getColorByScorePercentage;
|
|
21
|
+
const SCORE_BAR_ERRORS = Object.freeze({
|
|
22
|
+
INVALID_BAR_COUNT: {
|
|
23
|
+
type: 'INVALID_BAR_COUNT',
|
|
24
|
+
description: 'totalBars can not be less than 1'
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
exports.SCORE_BAR_ERRORS = SCORE_BAR_ERRORS;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// @flow strict
|
|
2
|
+
import type {ScoreBarColorMap} from '../../components/ScoreBar';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
const getColorByPercentage = (
|
|
6
|
+
totalBars: number,
|
|
7
|
+
score: number,
|
|
8
|
+
colorMap: ScoreBarColorMap,
|
|
9
|
+
): string => {
|
|
10
|
+
if (score <= 0) {
|
|
11
|
+
return colorMap.inactive;
|
|
12
|
+
}
|
|
13
|
+
const scorePercentage = (100 * score) / totalBars;
|
|
14
|
+
const range = Math.min(Math.ceil(scorePercentage / 20) * 20, 100);
|
|
15
|
+
return colorMap[range.toString()] || colorMap.inactive;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const getColorByScorePercentage = (
|
|
19
|
+
totalBars: number,
|
|
20
|
+
score: number,
|
|
21
|
+
currentBarNumber: number,
|
|
22
|
+
colorMap: ScoreBarColorMap,
|
|
23
|
+
): string => {
|
|
24
|
+
const validColor = getColorByPercentage(totalBars, score, colorMap);
|
|
25
|
+
return currentBarNumber < score ? validColor : colorMap.inactive;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const SCORE_BAR_ERRORS = Object.freeze({
|
|
29
|
+
INVALID_BAR_COUNT: {
|
|
30
|
+
type: 'INVALID_BAR_COUNT',
|
|
31
|
+
description: 'totalBars can not be less than 1',
|
|
32
|
+
},
|
|
33
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spaced-out/ui-design-system",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"description": "Sense UI components library",
|
|
6
6
|
"author": {
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
"node-sass": "^7.0.0",
|
|
105
105
|
"paths.macro": "^3.0.1",
|
|
106
106
|
"prettier": "^2.5.1",
|
|
107
|
-
"react": "
|
|
108
|
-
"react-dom": "
|
|
107
|
+
"react": "17.0.2",
|
|
108
|
+
"react-dom": "17.0.2",
|
|
109
109
|
"rimraf": "^3.0.2",
|
|
110
110
|
"simple-git": "^3.12.0",
|
|
111
111
|
"standard-version": "^9.5.0",
|