@ndlib/component-library 1.0.16 → 1.0.18
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/dist/components/composites/Card/index.d.ts +1 -0
- package/dist/components/composites/Card/index.js +2 -2
- package/dist/components/elements/Fields/Checkbox/index.js +1 -1
- package/dist/components/elements/Fields/DatePicker/DatePicker.stories.js +23 -3
- package/dist/components/elements/Fields/DatePicker/index.d.ts +2 -0
- package/dist/components/elements/Fields/DatePicker/index.js +11 -2
- package/dist/components/elements/Fields/MonthPicker/MonthPicker.stories.js +12 -1
- package/dist/components/elements/Fields/MonthPicker/index.d.ts +1 -0
- package/dist/components/elements/Fields/MonthPicker/index.js +4 -2
- package/dist/components/elements/text/Heading/index.d.ts +1 -0
- package/dist/components/elements/text/Heading/index.js +1 -1
- package/dist/theme/Color.stories.js +1 -0
- package/dist/theme/GlobalStyles.js +36 -4
- package/dist/theme/colors.d.ts +1 -0
- package/dist/theme/colors.js +2 -0
- package/dist/theme/index.d.ts +2 -0
- package/package.json +1 -1
|
@@ -18,6 +18,7 @@ type CardChildren = React.ReactNode | ((state: CardState) => React.ReactNode);
|
|
|
18
18
|
export type CardProps = StyledElementProps<HTMLDivElement, {
|
|
19
19
|
headline?: string;
|
|
20
20
|
heading?: string;
|
|
21
|
+
headlineStyles?: StylesProp;
|
|
21
22
|
headingStyles?: StylesProp;
|
|
22
23
|
headingIcon?: React.FC;
|
|
23
24
|
headingAction?: React.ReactNode;
|
|
@@ -52,7 +52,7 @@ const DateDisplay = ({ date: dateString }) => {
|
|
|
52
52
|
mt: 1,
|
|
53
53
|
} }, { children: MONTH_LABELS[date.getMonth()] }))] })));
|
|
54
54
|
};
|
|
55
|
-
export const Card = ({ size, displayDate, headline, image, alt, layout, onClick, raised, truncateHeadlineAfter, heading, headingStyles, headingIcon, headingAction, backgroundColor, sx, imageHeight: imageHeightProp, imageWidth: imageWidthProp, containImage, containerWidth, containerHeight, children, }) => {
|
|
55
|
+
export const Card = ({ size, displayDate, headline, image, alt, layout, onClick, raised, truncateHeadlineAfter, heading, headlineStyles, headingStyles, headingIcon, headingAction, backgroundColor, sx, imageHeight: imageHeightProp, imageWidth: imageWidthProp, containImage, containerWidth, containerHeight, children, }) => {
|
|
56
56
|
const theme = useTheme();
|
|
57
57
|
const contentPaddingX = size === CARD_SIZE.SM ? 3 : 4;
|
|
58
58
|
const isVertical = !layout || layout === CARD_LAYOUT.VERTICAL;
|
|
@@ -110,7 +110,7 @@ export const Card = ({ size, displayDate, headline, image, alt, layout, onClick,
|
|
|
110
110
|
color: COLOR.WHITE,
|
|
111
111
|
mt: 0,
|
|
112
112
|
whiteSpace: 'nowrap',
|
|
113
|
-
} }, { children: heading }))] }), _jsx(Row, { children: headingAction && headingAction })] }))), _jsx(Row, Object.assign({ sx: { px: contentPaddingX, py: contentPaddingY } }, { children: _jsxs(Column, Object.assign({ justify: "center" }, { children: [headline && (_jsx(Heading, Object.assign({ typography: typography, sx: { mt: 0 } }, { children: truncateHeadlineAfter ? (_jsx(ReadMore, Object.assign({ lines: truncateHeadlineAfter, typography: typography, sx: { bg: activeBackground } }, { children: headline }))) : (headline) }))), children && (_jsx(Box, Object.assign({ sx: { mt: headline && !heading ? 2 : 0 } }, { children: typeof children === 'function'
|
|
113
|
+
} }, { children: heading }))] }), _jsx(Row, { children: headingAction && headingAction })] }))), _jsx(Row, Object.assign({ sx: { px: contentPaddingX, py: contentPaddingY } }, { children: _jsxs(Column, Object.assign({ justify: "center" }, { children: [headline && (_jsx(Heading, Object.assign({ typography: typography, sx: Object.assign({ mt: 0 }, headlineStyles) }, { children: truncateHeadlineAfter ? (_jsx(ReadMore, Object.assign({ lines: truncateHeadlineAfter, typography: typography, sx: { bg: activeBackground } }, { children: headline }))) : (headline) }))), children && (_jsx(Box, Object.assign({ sx: { mt: headline && !heading ? 2 : 0 } }, { children: typeof children === 'function'
|
|
114
114
|
? children({ isHovered, activeBackground })
|
|
115
115
|
: children })))] })) }))] })));
|
|
116
116
|
};
|
|
@@ -16,7 +16,7 @@ export const Checkbox = (_a) => {
|
|
|
16
16
|
const theme = useTheme();
|
|
17
17
|
return (_jsx("input", Object.assign({ type: "checkbox", onChange: (e) => {
|
|
18
18
|
onChange(e.target.checked);
|
|
19
|
-
}, checked: checked, sx: Object.assign({ margin: '0px', height: '
|
|
19
|
+
}, checked: checked, sx: Object.assign({ margin: '0px', height: '1rem', width: '1rem', cursor: disabled ? 'not-allowed' : 'pointer', ':hover': {
|
|
20
20
|
boxShadow: theme.boxShadow,
|
|
21
21
|
} }, sx), disabled: disabled }, rest)));
|
|
22
22
|
};
|
|
@@ -18,14 +18,34 @@ export const Default = {
|
|
|
18
18
|
render: () => (_jsx(Box, Object.assign({ sx: { height: '500px' } }, { children: _jsx(StatefulDatePicker, { placeholder: "test" }) }))),
|
|
19
19
|
};
|
|
20
20
|
export const Inline = {
|
|
21
|
-
|
|
21
|
+
argTypes: {
|
|
22
|
+
backgroundColor: {
|
|
23
|
+
options: ['blue', 'gold', 'green', 'red'],
|
|
24
|
+
control: {
|
|
25
|
+
type: 'select',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
render: (args) => {
|
|
30
|
+
const { backgroundColor } = args;
|
|
31
|
+
return (_jsx(Box, Object.assign({ sx: { height: '500px' } }, { children: _jsx(StatefulDatePicker, { backgroundColor: backgroundColor, inline: true }) })));
|
|
32
|
+
},
|
|
22
33
|
};
|
|
23
34
|
export const HighlightedDates = {
|
|
24
|
-
|
|
35
|
+
argTypes: {
|
|
36
|
+
backgroundColor: {
|
|
37
|
+
options: ['blue', 'gold', 'green', 'red'],
|
|
38
|
+
control: {
|
|
39
|
+
type: 'select',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
render: (args) => {
|
|
44
|
+
const { backgroundColor } = args;
|
|
25
45
|
const highlightedDate1 = new Date();
|
|
26
46
|
highlightedDate1.setDate(highlightedDate1.getDate() + 1);
|
|
27
47
|
const highlightedDate2 = new Date();
|
|
28
48
|
highlightedDate2.setDate(highlightedDate2.getDate() - 1);
|
|
29
|
-
return (_jsx(Box, Object.assign({ sx: { height: '500px' } }, { children: _jsx(StatefulDatePicker, { inline: true, highlightDates: [highlightedDate1, highlightedDate2] }) })));
|
|
49
|
+
return (_jsx(Box, Object.assign({ sx: { height: '500px' } }, { children: _jsx(StatefulDatePicker, { inline: true, backgroundColor: backgroundColor, highlightDates: [highlightedDate1, highlightedDate2] }) })));
|
|
30
50
|
},
|
|
31
51
|
};
|
|
@@ -9,12 +9,14 @@ export declare const InputWrapper: React.ForwardRefExoticComponent<{
|
|
|
9
9
|
children: React.ReactElement;
|
|
10
10
|
} & React.RefAttributes<any>>;
|
|
11
11
|
export declare const areDatesEqual: (d1: Date, d2: Date) => boolean;
|
|
12
|
+
export declare const isDateInThePast: (d1: Date, d2: Date) => boolean;
|
|
12
13
|
export declare const DatePicker: React.FC<{
|
|
13
14
|
value: Date;
|
|
14
15
|
onChange: (date: Date) => void;
|
|
15
16
|
minDate?: Date;
|
|
16
17
|
maxDate?: Date;
|
|
17
18
|
inline?: boolean;
|
|
19
|
+
backgroundColor?: string;
|
|
18
20
|
highlightDates?: Date[];
|
|
19
21
|
wrapperProps?: BoxProps;
|
|
20
22
|
inputProps?: Partial<TextInputProps>;
|
|
@@ -33,13 +33,22 @@ export const areDatesEqual = (d1, d2) => {
|
|
|
33
33
|
const serializeDate = (d) => `${d.getFullYear()} ${d.getMonth()} ${d.getDate()}`;
|
|
34
34
|
return serializeDate(d1) === serializeDate(d2);
|
|
35
35
|
};
|
|
36
|
+
export const isDateInThePast = (d1, d2) => {
|
|
37
|
+
const serializeDate = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;
|
|
38
|
+
return serializeDate(d1) < serializeDate(d2);
|
|
39
|
+
};
|
|
36
40
|
export const DatePicker = (_a) => {
|
|
37
|
-
var { value, wrapperProps, inputProps, highlightDates } = _a, rest = __rest(_a, ["value", "wrapperProps", "inputProps", "highlightDates"]);
|
|
41
|
+
var { value, wrapperProps, inputProps, backgroundColor, highlightDates } = _a, rest = __rest(_a, ["value", "wrapperProps", "inputProps", "backgroundColor", "highlightDates"]);
|
|
38
42
|
const highlightDateSet = new Set(highlightDates === null || highlightDates === void 0 ? void 0 : highlightDates.map((d) => d.toDateString()));
|
|
39
|
-
|
|
43
|
+
if (!backgroundColor)
|
|
44
|
+
backgroundColor = 'blue';
|
|
45
|
+
return (_jsx(Box, Object.assign({}, wrapperProps, { children: _jsx(ReactDatePicker, Object.assign({ calendarClassName: `ndlib-date-picker ndlib-date-picker-${backgroundColor}`, selected: value, dayClassName: (date) => {
|
|
40
46
|
if (areDatesEqual(date, value)) {
|
|
41
47
|
return '';
|
|
42
48
|
}
|
|
49
|
+
if (isDateInThePast(date, value)) {
|
|
50
|
+
return 'ndlib-date-picker-pastdate';
|
|
51
|
+
}
|
|
43
52
|
if (highlightDateSet.has(date.toDateString())) {
|
|
44
53
|
return 'ndlib-date-picker-highlight';
|
|
45
54
|
}
|
|
@@ -16,5 +16,16 @@ export const Default = {
|
|
|
16
16
|
render: () => (_jsx(Box, Object.assign({ sx: { height: '500px' } }, { children: _jsx(StatefulMonthPicker, {}) }))),
|
|
17
17
|
};
|
|
18
18
|
export const Inline = {
|
|
19
|
-
|
|
19
|
+
argTypes: {
|
|
20
|
+
backgroundColor: {
|
|
21
|
+
options: ['blue', 'gold', 'green', 'red'],
|
|
22
|
+
control: {
|
|
23
|
+
type: 'select',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
render: (args) => {
|
|
28
|
+
const { backgroundColor } = args;
|
|
29
|
+
return (_jsx(Box, Object.assign({ sx: { height: '500px' } }, { children: _jsx(StatefulMonthPicker, { backgroundColor: backgroundColor, inline: true }) })));
|
|
30
|
+
},
|
|
20
31
|
};
|
|
@@ -19,6 +19,8 @@ import { importedDefaultComponentShim } from '../../../../utils/misc';
|
|
|
19
19
|
const ReactDatePicker = importedDefaultComponentShim(_ReactDatePicker);
|
|
20
20
|
const PermissiveTextInput = TextInput;
|
|
21
21
|
export const MonthPicker = (_a) => {
|
|
22
|
-
var { value, inputProps, wrapperProps } = _a, rest = __rest(_a, ["value", "inputProps", "wrapperProps"]);
|
|
23
|
-
|
|
22
|
+
var { value, inputProps, backgroundColor, wrapperProps } = _a, rest = __rest(_a, ["value", "inputProps", "backgroundColor", "wrapperProps"]);
|
|
23
|
+
if (!backgroundColor)
|
|
24
|
+
backgroundColor = 'blue';
|
|
25
|
+
return (_jsx(Box, Object.assign({}, wrapperProps, { children: _jsx(ReactDatePicker, Object.assign({ calendarClassName: `ndlib-date-picker ndlib-date-picker-${backgroundColor}`, selected: value, customInput: _jsx(InputWrapper, { children: _jsx(PermissiveTextInput, Object.assign({}, inputProps)) }), showMonthYearPicker: true }, rest)) })));
|
|
24
26
|
};
|
|
@@ -39,7 +39,7 @@ const LEVEL_TYPOGRAPHY_MAP = {
|
|
|
39
39
|
6: TYPOGRAPHY_TYPE.HEADING_SMALL,
|
|
40
40
|
};
|
|
41
41
|
export const Heading = (_a) => {
|
|
42
|
-
var { sx, size, standalone, underline, underlineColor, typography: typographyProp, level: levelParam } = _a, rest = __rest(_a, ["sx", "size", "standalone", "underline", "underlineColor", "typography", "level"]);
|
|
42
|
+
var { sx, size, standalone, underline, underlineColor, headlineStyles, typography: typographyProp, level: levelParam } = _a, rest = __rest(_a, ["sx", "size", "standalone", "underline", "underlineColor", "headlineStyles", "typography", "level"]);
|
|
43
43
|
const { level: groupLevel, labelId, type, trackHeadingRendered } = useGroup();
|
|
44
44
|
const { flagInDevelopment } = useEnvironment();
|
|
45
45
|
const theme = useTheme();
|
|
@@ -34,6 +34,7 @@ const colors = [
|
|
|
34
34
|
{ color: COLOR.ND_GREEN, label: 'ND_GREEN' },
|
|
35
35
|
{ color: COLOR.ND_GREEN_LIGHT, label: 'ND_GREEN_LIGHT' },
|
|
36
36
|
{ color: COLOR.ND_METALLIC_GOLD, label: 'ND_METALLIC_GOLD' },
|
|
37
|
+
{ color: COLOR.ND_METALLIC_GOLD_LIGHT, label: 'ND_METALLIC_GOLD_LIGHT' },
|
|
37
38
|
{ color: COLOR.ND_PROVOST_BLUE, label: 'ND_PROVOST_BLUE' },
|
|
38
39
|
{ color: COLOR.ND_SECONDARY_1, label: 'ND_SECONDARY_1' },
|
|
39
40
|
{ color: COLOR.ND_SECONDARY_2, label: 'ND_SECONDARY_2' },
|
|
@@ -137,14 +137,42 @@ const globalStyles = css `
|
|
|
137
137
|
border-spacing: 0;
|
|
138
138
|
}
|
|
139
139
|
|
|
140
|
-
.
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
.react-datepicker {
|
|
141
|
+
border: 0 !important;
|
|
142
|
+
border-radius: 0 !important;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.ndlib-date-picker-blue .react-datepicker__header,
|
|
146
|
+
.ndlib-date-picker-blue .react-datepicker__header * {
|
|
143
147
|
background-color: ${colors.primary};
|
|
148
|
+
color: white;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.ndlib-date-picker-gold .react-datepicker__header,
|
|
152
|
+
.ndlib-date-picker-gold .react-datepicker__header * {
|
|
153
|
+
background-color: ${colors.ndMetallicGold};
|
|
154
|
+
color: white;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.ndlib-date-picker-green .react-datepicker__header,
|
|
158
|
+
.ndlib-date-picker-green .react-datepicker__header * {
|
|
159
|
+
background-color: ${colors.ndGreem};
|
|
160
|
+
color: white;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.ndlib-date-picker-red .react-datepicker__header,
|
|
164
|
+
.ndlib-date-picker-red .react-datepicker__header * {
|
|
165
|
+
background-color: ${colors.ndTertiary4};
|
|
166
|
+
color: white;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.react-datepicker__header:not(.react-datepicker__header--has-time-select) {
|
|
170
|
+
border-top-right-radius: 0 !important;
|
|
144
171
|
}
|
|
145
172
|
|
|
146
173
|
.ndlib-date-picker .react-datepicker__header {
|
|
147
174
|
width: 280px;
|
|
175
|
+
border-radius: 0;
|
|
148
176
|
}
|
|
149
177
|
|
|
150
178
|
.ndlib-date-picker .react-datepicker__day-names {
|
|
@@ -157,8 +185,12 @@ const globalStyles = css `
|
|
|
157
185
|
|
|
158
186
|
.ndlib-date-picker .ndlib-date-picker-highlight {
|
|
159
187
|
background-color: ${colors.ndTertiary1};
|
|
160
|
-
border-radius: 0.3rem;
|
|
161
188
|
color: ${colors.background};
|
|
189
|
+
border-radius: 0.3rem;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.ndlib-date-picker .ndlib-date-picker-pastdate {
|
|
193
|
+
color: ${colors.lightGray};
|
|
162
194
|
}
|
|
163
195
|
|
|
164
196
|
@font-face {
|
package/dist/theme/colors.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export declare enum COLOR {
|
|
|
32
32
|
ND_SKY_BLUE_DARK = "ndSkyBlueDark",
|
|
33
33
|
ND_SKY_BLUE_LIGHT = "ndSkyBlueLight",
|
|
34
34
|
ND_METALLIC_GOLD = "ndMetallicGold",
|
|
35
|
+
ND_METALLIC_GOLD_LIGHT = "ndMetallicGoldLight",
|
|
35
36
|
ND_PROVOST_BLUE = "ndProvostBlue",
|
|
36
37
|
ND_SECONDARY_1 = "ndSecondary1",
|
|
37
38
|
ND_SECONDARY_2 = "ndSecondary2",
|
package/dist/theme/colors.js
CHANGED
|
@@ -33,6 +33,7 @@ export var COLOR;
|
|
|
33
33
|
COLOR["ND_SKY_BLUE_DARK"] = "ndSkyBlueDark";
|
|
34
34
|
COLOR["ND_SKY_BLUE_LIGHT"] = "ndSkyBlueLight";
|
|
35
35
|
COLOR["ND_METALLIC_GOLD"] = "ndMetallicGold";
|
|
36
|
+
COLOR["ND_METALLIC_GOLD_LIGHT"] = "ndMetallicGoldLight";
|
|
36
37
|
COLOR["ND_PROVOST_BLUE"] = "ndProvostBlue";
|
|
37
38
|
COLOR["ND_SECONDARY_1"] = "ndSecondary1";
|
|
38
39
|
COLOR["ND_SECONDARY_2"] = "ndSecondary2";
|
|
@@ -88,6 +89,7 @@ export const colors = {
|
|
|
88
89
|
[COLOR.ND_SKY_BLUE_DARK]: '#c1cddd',
|
|
89
90
|
[COLOR.ND_SKY_BLUE_LIGHT]: '#edf2f9',
|
|
90
91
|
[COLOR.ND_METALLIC_GOLD]: '#ae9142',
|
|
92
|
+
[COLOR.ND_METALLIC_GOLD_LIGHT]: '#CEBE8E',
|
|
91
93
|
[COLOR.ND_PROVOST_BLUE]: '#002a5d',
|
|
92
94
|
[COLOR.ND_SECONDARY_1]: '#5aabbc',
|
|
93
95
|
[COLOR.ND_SECONDARY_2]: '#999623',
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -50,6 +50,7 @@ export declare const theme: {
|
|
|
50
50
|
ndSkyBlueDark: string;
|
|
51
51
|
ndSkyBlueLight: string;
|
|
52
52
|
ndMetallicGold: string;
|
|
53
|
+
ndMetallicGoldLight: string;
|
|
53
54
|
ndProvostBlue: string;
|
|
54
55
|
ndSecondary1: string;
|
|
55
56
|
ndSecondary2: string;
|
|
@@ -154,6 +155,7 @@ export declare const useTheme: () => {
|
|
|
154
155
|
ndSkyBlueDark: string;
|
|
155
156
|
ndSkyBlueLight: string;
|
|
156
157
|
ndMetallicGold: string;
|
|
158
|
+
ndMetallicGoldLight: string;
|
|
157
159
|
ndProvostBlue: string;
|
|
158
160
|
ndSecondary1: string;
|
|
159
161
|
ndSecondary2: string;
|