@primer/components 33.0.0-rc.265a717f → 33.0.0-rc.42d465c3
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 +2 -0
- package/dist/browser.esm.js +2 -2209
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +2 -2209
- package/dist/browser.umd.js.map +1 -1
- package/lib/ActionList/Header.js +1 -1
- package/lib/ActionList/Item.js +10 -10
- package/lib/ActionList/List.js +1 -1
- package/lib/ActionList2/Item.js +1 -1
- package/lib/ActionList2/List.js +1 -1
- package/lib/BaseStyles.js +2 -20
- package/lib/BorderBox.js +1 -1
- package/lib/Box.js +1 -1
- package/lib/Breadcrumbs.js +3 -3
- package/lib/Button/Button.js +1 -1
- package/lib/Button/ButtonGroup.js +1 -1
- package/lib/Checkbox.js +1 -1
- package/lib/Details.js +1 -1
- package/lib/FilteredActionList/FilteredActionList.js +1 -1
- package/lib/Flex.js +1 -1
- package/lib/LabelGroup.js +1 -1
- package/lib/Overlay.js +1 -1
- package/lib/Pagination/Pagination.js +2 -2
- package/lib/Position.js +1 -1
- package/lib/SelectMenu/SelectMenu.js +1 -1
- package/lib/SelectMenu/SelectMenuFilter.js +1 -1
- package/lib/SelectMenu/SelectMenuFooter.js +1 -1
- package/lib/SelectMenu/SelectMenuItem.js +1 -1
- package/lib/SelectMenu/SelectMenuTab.js +1 -1
- package/lib/SelectMenu/SelectMenuTabPanel.js +1 -1
- package/lib/SelectMenu/SelectMenuTabs.js +1 -1
- package/lib/StateLabel.js +1 -1
- package/lib/StyledOcticon.js +1 -1
- package/lib/SubNav.js +3 -3
- package/lib/ThemeProvider.d.ts +1 -0
- package/lib/ThemeProvider.js +17 -4
- package/lib/Timeline.js +4 -4
- package/lib/Token/AvatarToken.js +1 -1
- package/lib/Token/TokenBase.js +1 -1
- package/lib/Tooltip.js +1 -1
- package/lib/UnderlineNav.js +2 -2
- package/lib/__tests__/ThemeProvider.test.js +114 -0
- package/lib/stories/ActionList.stories.js +3 -3
- package/lib/stories/ActionList2.stories.js +1 -1
- package/lib/stories/Checkbox.stories.js +2 -2
- package/lib/stories/ThemeProvider.stories.js +1 -5
- package/lib/stories/useFocusTrap.stories.js +1 -11
- package/lib/stories/useFocusZone.stories.js +2 -6
- package/lib-esm/ActionList/Header.js +1 -1
- package/lib-esm/ActionList/Item.js +10 -10
- package/lib-esm/ActionList/List.js +1 -1
- package/lib-esm/ActionList2/Item.js +1 -1
- package/lib-esm/ActionList2/List.js +1 -1
- package/lib-esm/BaseStyles.js +2 -20
- package/lib-esm/BorderBox.js +1 -1
- package/lib-esm/Box.js +1 -1
- package/lib-esm/Breadcrumbs.js +3 -3
- package/lib-esm/Button/Button.js +1 -1
- package/lib-esm/Button/ButtonGroup.js +1 -1
- package/lib-esm/Checkbox.js +1 -1
- package/lib-esm/Details.js +1 -1
- package/lib-esm/FilteredActionList/FilteredActionList.js +1 -1
- package/lib-esm/Flex.js +1 -1
- package/lib-esm/LabelGroup.js +1 -1
- package/lib-esm/Overlay.js +1 -1
- package/lib-esm/Pagination/Pagination.js +2 -2
- package/lib-esm/Position.js +1 -1
- package/lib-esm/SelectMenu/SelectMenu.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuFilter.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuFooter.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuItem.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuTab.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuTabPanel.js +1 -1
- package/lib-esm/SelectMenu/SelectMenuTabs.js +1 -1
- package/lib-esm/StateLabel.js +1 -1
- package/lib-esm/StyledOcticon.js +1 -1
- package/lib-esm/SubNav.js +3 -3
- package/lib-esm/ThemeProvider.d.ts +1 -0
- package/lib-esm/ThemeProvider.js +17 -4
- package/lib-esm/Timeline.js +4 -4
- package/lib-esm/Token/AvatarToken.js +1 -1
- package/lib-esm/Token/TokenBase.js +1 -1
- package/lib-esm/Tooltip.js +1 -1
- package/lib-esm/UnderlineNav.js +2 -2
- package/lib-esm/__tests__/ThemeProvider.test.js +114 -0
- package/lib-esm/stories/ActionList.stories.js +3 -3
- package/lib-esm/stories/ActionList2.stories.js +1 -1
- package/lib-esm/stories/Checkbox.stories.js +2 -2
- package/lib-esm/stories/ThemeProvider.stories.js +1 -5
- package/lib-esm/stories/useFocusTrap.stories.js +1 -11
- package/lib-esm/stories/useFocusZone.stories.js +2 -6
- package/package-lock.json +41 -747
- package/package.json +2 -2
- package/src/ThemeProvider.tsx +22 -5
- package/src/__tests__/ThemeProvider.test.tsx +116 -0
- package/stats.html +1 -1
package/lib-esm/SubNav.js
CHANGED
@@ -10,7 +10,7 @@ const ITEM_CLASS = 'SubNav-item';
|
|
10
10
|
const SELECTED_CLASS = 'selected';
|
11
11
|
const SubNavBase = styled.nav.withConfig({
|
12
12
|
displayName: "SubNav__SubNavBase",
|
13
|
-
componentId: "f7w0xa-0"
|
13
|
+
componentId: "sc-f7w0xa-0"
|
14
14
|
})(["display:flex;justify-content:space-between;.SubNav-body{display:flex;margin-bottom:-1px;> *{margin-left:", ";}> *:first-child{margin-left:0;}}.SubNav-actions{align-self:center;}", ";"], get('space.2'), sx);
|
15
15
|
|
16
16
|
function SubNav({
|
@@ -34,14 +34,14 @@ function SubNav({
|
|
34
34
|
SubNav.displayName = "SubNav";
|
35
35
|
const SubNavLinks = styled.div.withConfig({
|
36
36
|
displayName: "SubNav__SubNavLinks",
|
37
|
-
componentId: "f7w0xa-1"
|
37
|
+
componentId: "sc-f7w0xa-1"
|
38
38
|
})(["display:flex;", ";"], sx);
|
39
39
|
const SubNavLink = styled.a.attrs(props => ({
|
40
40
|
activeClassName: typeof props.to === 'string' ? 'selected' : '',
|
41
41
|
className: classnames(ITEM_CLASS, props.selected && SELECTED_CLASS, props.className)
|
42
42
|
})).withConfig({
|
43
43
|
displayName: "SubNav__SubNavLink",
|
44
|
-
componentId: "f7w0xa-2"
|
44
|
+
componentId: "sc-f7w0xa-2"
|
45
45
|
})(["padding-left:", ";padding-right:", ";font-weight:", ";font-size:", ";line-height:20px;min-height:34px;color:", ";text-align:center;text-decoration:none;border-top:1px solid ", ";border-bottom:1px solid ", ";border-right:1px solid ", ";display:flex;align-items:center;&:first-of-type{border-top-left-radius:", ";border-bottom-left-radius:", ";border-left:1px solid ", ";}&:last-of-type{border-top-right-radius:", ";border-bottom-right-radius:", ";}&:hover,&:focus{text-decoration:none;background-color:", ";transition:0.2s ease;.SubNav-octicon{color:", ";}}&.selected{color:", ";background-color:", ";border-color:", ";.SubNav-octicon{color:", ";}}", ";"], get('space.3'), get('space.3'), get('fontWeights.semibold'), get('fontSizes.1'), get('colors.fg.default'), get('colors.border.default'), get('colors.border.default'), get('colors.border.default'), get('radii.2'), get('radii.2'), get('colors.border.default'), get('radii.2'), get('radii.2'), get('colors.canvas.subtle'), get('colors.fg.muted'), get('colors.fg.onEmphasis'), get('colors.accent.emphasis'), get('colors.accent.emphasis'), get('colors.fg.onEmphasis'), sx);
|
46
46
|
SubNavLink.displayName = 'SubNav.Link';
|
47
47
|
SubNavLinks.displayName = 'SubNav.Links';
|
@@ -16,6 +16,7 @@ export declare function useTheme(): {
|
|
16
16
|
colorScheme?: string | undefined;
|
17
17
|
colorMode?: ColorModeWithAuto | undefined;
|
18
18
|
resolvedColorMode?: ColorMode | undefined;
|
19
|
+
resolvedColorScheme?: string | undefined;
|
19
20
|
dayScheme?: string | undefined;
|
20
21
|
nightScheme?: string | undefined;
|
21
22
|
setColorMode: React.Dispatch<React.SetStateAction<ColorModeWithAuto>>;
|
package/lib-esm/ThemeProvider.js
CHANGED
@@ -32,7 +32,10 @@ export const ThemeProvider = ({
|
|
32
32
|
const systemColorMode = useSystemColorMode();
|
33
33
|
const resolvedColorMode = resolveColorMode(colorMode, systemColorMode);
|
34
34
|
const colorScheme = chooseColorScheme(resolvedColorMode, dayScheme, nightScheme);
|
35
|
-
const
|
35
|
+
const {
|
36
|
+
resolvedTheme,
|
37
|
+
resolvedColorScheme
|
38
|
+
} = React.useMemo(() => applyColorScheme(theme, colorScheme), [theme, colorScheme]); // Update state if props change
|
36
39
|
|
37
40
|
React.useEffect(() => {
|
38
41
|
var _ref5, _props$colorMode2;
|
@@ -55,6 +58,7 @@ export const ThemeProvider = ({
|
|
55
58
|
colorScheme,
|
56
59
|
colorMode,
|
57
60
|
resolvedColorMode,
|
61
|
+
resolvedColorScheme,
|
58
62
|
dayScheme,
|
59
63
|
nightScheme,
|
60
64
|
setColorMode,
|
@@ -144,7 +148,10 @@ function chooseColorScheme(colorMode, dayScheme, nightScheme) {
|
|
144
148
|
|
145
149
|
function applyColorScheme(theme, colorScheme) {
|
146
150
|
if (!theme.colorSchemes) {
|
147
|
-
return
|
151
|
+
return {
|
152
|
+
resolvedTheme: theme,
|
153
|
+
resolvedColorScheme: undefined
|
154
|
+
};
|
148
155
|
}
|
149
156
|
|
150
157
|
if (!theme.colorSchemes[colorScheme]) {
|
@@ -152,10 +159,16 @@ function applyColorScheme(theme, colorScheme) {
|
|
152
159
|
console.error(`\`${colorScheme}\` scheme not defined in \`theme.colorSchemes\``); // Apply the first defined color scheme
|
153
160
|
|
154
161
|
const defaultColorScheme = Object.keys(theme.colorSchemes)[0];
|
155
|
-
return
|
162
|
+
return {
|
163
|
+
resolvedTheme: deepmerge(theme, theme.colorSchemes[defaultColorScheme]),
|
164
|
+
resolvedColorScheme: defaultColorScheme
|
165
|
+
};
|
156
166
|
}
|
157
167
|
|
158
|
-
return
|
168
|
+
return {
|
169
|
+
resolvedTheme: deepmerge(theme, theme.colorSchemes[colorScheme]),
|
170
|
+
resolvedColorScheme: colorScheme
|
171
|
+
};
|
159
172
|
}
|
160
173
|
|
161
174
|
export default ThemeProvider;
|
package/lib-esm/Timeline.js
CHANGED
@@ -6,13 +6,13 @@ import { get } from './constants';
|
|
6
6
|
import sx from './sx';
|
7
7
|
const Timeline = styled.div.withConfig({
|
8
8
|
displayName: "Timeline",
|
9
|
-
componentId: "c4dq2e-0"
|
9
|
+
componentId: "sc-c4dq2e-0"
|
10
10
|
})(["display:flex;flex-direction:column;", " ", ";"], props => props.clipSidebar && css([".Timeline-Item:first-child{padding-top:0;}.Timeline-Item:last-child{padding-bottom:0;}"]), sx);
|
11
11
|
const TimelineItem = styled.div.attrs(props => ({
|
12
12
|
className: classnames('Timeline-Item', props.className)
|
13
13
|
})).withConfig({
|
14
14
|
displayName: "Timeline__TimelineItem",
|
15
|
-
componentId: "c4dq2e-1"
|
15
|
+
componentId: "sc-c4dq2e-1"
|
16
16
|
})(["display:flex;position:relative;padding:", " 0;margin-left:", ";&::before{position:absolute;top:0;bottom:0;left:0;display:block;width:2px;content:'';background-color:", ";}", " ", ";"], get('space.3'), get('space.3'), get('colors.border.muted'), props => props.condensed && css(["padding-top:", ";padding-bottom:0;&:last-child{padding-bottom:", ";}.TimelineItem-Badge{height:16px;margin-top:", ";margin-bottom:", ";color:", ";background-color:", ";border:0;}"], get('space.1'), get('space.3'), get('space.2'), get('space.2'), get('colors.fg.muted'), get('colors.canvas.default')), sx);
|
17
17
|
|
18
18
|
const TimelineBadge = props => {
|
@@ -43,11 +43,11 @@ const TimelineBadge = props => {
|
|
43
43
|
TimelineBadge.displayName = "TimelineBadge";
|
44
44
|
const TimelineBody = styled.div.withConfig({
|
45
45
|
displayName: "Timeline__TimelineBody",
|
46
|
-
componentId: "c4dq2e-2"
|
46
|
+
componentId: "sc-c4dq2e-2"
|
47
47
|
})(["min-width:0;max-width:100%;margin-top:", ";color:", ";flex:auto;font-size:", ";", ";"], get('space.1'), get('colors.fg.muted'), get('fontSizes.1'), sx);
|
48
48
|
const TimelineBreak = styled.div.withConfig({
|
49
49
|
displayName: "Timeline__TimelineBreak",
|
50
|
-
componentId: "c4dq2e-3"
|
50
|
+
componentId: "sc-c4dq2e-3"
|
51
51
|
})(["position:relative z-index:1;height:24px;margin:0;margin-bottom:-", ";margin-left:0;background-color:", ";border:0;border-top:", " solid ", ";", ";"], get('space.3'), get('colors.canvas.default'), get('space.1'), get('colors.border.default'), sx);
|
52
52
|
TimelineItem.displayName = 'Timeline.Item';
|
53
53
|
TimelineBadge.displayName = 'Timeline.Badge';
|
@@ -8,7 +8,7 @@ import Token from './Token';
|
|
8
8
|
import { Avatar } from '..';
|
9
9
|
const AvatarContainer = styled.span.withConfig({
|
10
10
|
displayName: "AvatarToken__AvatarContainer",
|
11
|
-
componentId: "ubyudc-0"
|
11
|
+
componentId: "sc-ubyudc-0"
|
12
12
|
})(["--spacing:calc(", " * 2);display:block;height:", ";width:", ";"], get('space.1'), props => `calc(${tokenSizes[props.avatarSize]} - var(--spacing))`, props => `calc(${tokenSizes[props.avatarSize]} - var(--spacing))`);
|
13
13
|
const AvatarToken = /*#__PURE__*/forwardRef(({
|
14
14
|
avatarSrc,
|
@@ -74,7 +74,7 @@ const TokenBase = styled.span.attrs(({
|
|
74
74
|
'aria-label': onRemove ? `${text}, press backspace or delete to remove` : undefined
|
75
75
|
})).withConfig({
|
76
76
|
displayName: "TokenBase",
|
77
|
-
componentId: "opajvp-0"
|
77
|
+
componentId: "sc-opajvp-0"
|
78
78
|
})(["align-items:center;border-radius:999px;cursor:", ";display:inline-flex;font-weight:", ";font-family:inherit;text-decoration:none;white-space:nowrap;", " ", ""], props => isTokenInteractive(props) ? 'pointer' : 'auto', get('fontWeights.bold'), variants, sx);
|
79
79
|
TokenBase.defaultProps = {
|
80
80
|
as: 'span',
|
package/lib-esm/Tooltip.js
CHANGED
@@ -7,7 +7,7 @@ import { get } from './constants';
|
|
7
7
|
import sx from './sx';
|
8
8
|
const TooltipBase = styled.span.withConfig({
|
9
9
|
displayName: "Tooltip__TooltipBase",
|
10
|
-
componentId: "kp39nc-0"
|
10
|
+
componentId: "sc-kp39nc-0"
|
11
11
|
})(["position:relative;&::before{position:absolute;z-index:1000001;display:none;width:0px;height:0px;color:", ";pointer-events:none;content:'';border:6px solid transparent;opacity:0;}&::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 ", ";-webkit-font-smoothing:subpixel-antialiased;color:", ";text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:", ";border-radius:", ";opacity:0;}@keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}&:hover,&:active,&:focus{&::before,&::after{display:inline-block;text-decoration:none;animation-name:tooltip-appear;animation-duration:0.1s;animation-fill-mode:forwards;animation-timing-function:ease-in;animation-delay:0.4s;}}&.tooltipped-no-delay:hover,&.tooltipped-no-delay:active,&.tooltipped-no-delay:focus{&::before,&::after{animation-delay:0s;}}&.tooltipped-multiline:hover,&.tooltipped-multiline:active,&.tooltipped-multiline:focus{&::after{display:table-cell;}}&.tooltipped-s,&.tooltipped-se,&.tooltipped-sw{&::after{top:100%;right:50%;margin-top:6px;}&::before{top:auto;right:50%;bottom:-7px;margin-right:-6px;border-bottom-color:", ";}}&.tooltipped-se{&::after{right:auto;left:50%;margin-left:-", ";}}&.tooltipped-sw::after{margin-right:-", ";}&.tooltipped-n,&.tooltipped-ne,&.tooltipped-nw{&::after{right:50%;bottom:100%;margin-bottom:6px;}&::before{top:-7px;right:50%;bottom:auto;margin-right:-6px;border-top-color:", ";}}&.tooltipped-ne{&::after{right:auto;left:50%;margin-left:-", ";}}&.tooltipped-nw::after{margin-right:-", ";}&.tooltipped-s::after,&.tooltipped-n::after{transform:translateX(50%);}&.tooltipped-w{&::after{right:100%;bottom:50%;margin-right:6px;transform:translateY(50%);}&::before{top:50%;bottom:50%;left:-7px;margin-top:-6px;border-left-color:", ";}}&.tooltipped-e{&::after{bottom:50%;left:100%;margin-left:6px;transform:translateY(50%);}&::before{top:50%;right:-7px;bottom:50%;margin-top:-6px;border-right-color:", ";}}&.tooltipped-multiline{&::after{width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}&.tooltipped-s::after,&.tooltipped-n::after{right:auto;left:50%;transform:translateX(-50%);}&.tooltipped-w::after,&.tooltipped-e::after{right:100%;}}&.tooltipped-align-right-2::after{right:0;margin-right:0;}&.tooltipped-align-right-2::before{right:15px;}&.tooltipped-align-left-2::after{left:0;margin-left:0;}&.tooltipped-align-left-2::before{left:10px;}", ";"], get('colors.neutral.emphasisPlus'), get('fonts.normal'), get('colors.fg.onEmphasis'), get('colors.neutral.emphasisPlus'), get('radii.1'), get('colors.neutral.emphasisPlus'), get('space.3'), get('space.3'), get('colors.neutral.emphasisPlus'), get('space.3'), get('space.3'), get('colors.neutral.emphasisPlus'), get('colors.neutral.emphasisPlus'), sx);
|
12
12
|
|
13
13
|
function Tooltip({
|
package/lib-esm/UnderlineNav.js
CHANGED
@@ -10,7 +10,7 @@ const ITEM_CLASS = 'UnderlineNav-item';
|
|
10
10
|
const SELECTED_CLASS = 'selected';
|
11
11
|
const UnderlineNavBase = styled.nav.withConfig({
|
12
12
|
displayName: "UnderlineNav__UnderlineNavBase",
|
13
|
-
componentId: "zrnxqt-0"
|
13
|
+
componentId: "sc-zrnxqt-0"
|
14
14
|
})(["display:flex;justify-content:space-between;border-bottom:1px solid ", ";&.UnderlineNav--right{justify-content:flex-end;.UnderlineNav-item{margin-right:0;margin-left:", ";}.UnderlineNav-actions{flex:1 1 auto;}}&.UnderlineNav--full{display:block;}.UnderlineNav-body{display:flex;margin-bottom:-1px;}.UnderlineNav-actions{align-self:center;}", ";"], get('colors.border.muted'), get('space.3'), sx);
|
15
15
|
|
16
16
|
function UnderlineNav({
|
@@ -41,7 +41,7 @@ const UnderlineNavLink = styled.a.attrs(props => ({
|
|
41
41
|
className: classnames(ITEM_CLASS, props.selected && SELECTED_CLASS, props.className)
|
42
42
|
})).withConfig({
|
43
43
|
displayName: "UnderlineNav__UnderlineNavLink",
|
44
|
-
componentId: "zrnxqt-1"
|
44
|
+
componentId: "sc-zrnxqt-1"
|
45
45
|
})(["padding:", " ", ";margin-right:", ";font-size:", ";line-height:", ";color:", ";text-align:center;border-bottom:2px solid transparent;text-decoration:none;&:hover,&:focus{color:", ";text-decoration:none;border-bottom-color:", ";transition:0.2s ease;.UnderlineNav-octicon{color:", ";}}&.selected{color:", ";border-bottom-color:", ";.UnderlineNav-octicon{color:", ";}}", ";"], get('space.3'), get('space.2'), get('space.3'), get('fontSizes.1'), get('lineHeights.default'), get('colors.fg.default'), get('colors.fg.default'), get('colors.neutral.muted'), get('colors.fg.muted'), get('colors.fg.default'), get('colors.primer.border.active'), get('colors.fg.default'), sx);
|
46
46
|
UnderlineNavLink.displayName = 'UnderlineNav.Link';
|
47
47
|
export default Object.assign(UnderlineNav, {
|
@@ -405,4 +405,118 @@ describe('useColorSchemeVar', () => {
|
|
405
405
|
screen.getByRole('button').click();
|
406
406
|
expect(screen.getByText('Hello')).toHaveStyleRule('background-color', 'blue');
|
407
407
|
});
|
408
|
+
});
|
409
|
+
describe('useTheme().resolvedColorScheme', () => {
|
410
|
+
it('is undefined when not in a theme', () => {
|
411
|
+
const Component = () => {
|
412
|
+
const {
|
413
|
+
resolvedColorScheme
|
414
|
+
} = useTheme();
|
415
|
+
return /*#__PURE__*/React.createElement(Text, {
|
416
|
+
"data-testid": "text"
|
417
|
+
}, resolvedColorScheme);
|
418
|
+
};
|
419
|
+
|
420
|
+
render( /*#__PURE__*/React.createElement(Component, null));
|
421
|
+
expect(screen.getByTestId('text').textContent).toEqual('');
|
422
|
+
});
|
423
|
+
it('is undefined when the theme has no colorScheme object', () => {
|
424
|
+
const Component = () => {
|
425
|
+
const {
|
426
|
+
resolvedColorScheme
|
427
|
+
} = useTheme();
|
428
|
+
return /*#__PURE__*/React.createElement(Text, {
|
429
|
+
"data-testid": "text"
|
430
|
+
}, resolvedColorScheme);
|
431
|
+
};
|
432
|
+
|
433
|
+
render( /*#__PURE__*/React.createElement(ThemeProvider, {
|
434
|
+
theme: {
|
435
|
+
color: 'red'
|
436
|
+
}
|
437
|
+
}, /*#__PURE__*/React.createElement(Component, null)));
|
438
|
+
expect(screen.getByTestId('text').textContent).toEqual('');
|
439
|
+
});
|
440
|
+
it('is the same as the applied colorScheme, when that colorScheme is in the theme', () => {
|
441
|
+
const Component = () => {
|
442
|
+
const {
|
443
|
+
resolvedColorScheme
|
444
|
+
} = useTheme();
|
445
|
+
return /*#__PURE__*/React.createElement(Text, {
|
446
|
+
"data-testid": "text"
|
447
|
+
}, resolvedColorScheme);
|
448
|
+
};
|
449
|
+
|
450
|
+
const schemeToApply = 'dark';
|
451
|
+
render( /*#__PURE__*/React.createElement(ThemeProvider, {
|
452
|
+
theme: exampleTheme,
|
453
|
+
colorMode: "day",
|
454
|
+
dayScheme: schemeToApply
|
455
|
+
}, /*#__PURE__*/React.createElement(Component, null)));
|
456
|
+
expect(exampleTheme.colorSchemes).toHaveProperty(schemeToApply);
|
457
|
+
expect(screen.getByTestId('text').textContent).toEqual(schemeToApply);
|
458
|
+
});
|
459
|
+
it('is the value of the fallback colorScheme applied when attempting to apply an invalid colorScheme', () => {
|
460
|
+
const Component = () => {
|
461
|
+
const {
|
462
|
+
resolvedColorScheme
|
463
|
+
} = useTheme();
|
464
|
+
return /*#__PURE__*/React.createElement(Text, {
|
465
|
+
"data-testid": "text"
|
466
|
+
}, resolvedColorScheme);
|
467
|
+
};
|
468
|
+
|
469
|
+
const schemeToApply = 'totally-invalid-colorscheme';
|
470
|
+
render( /*#__PURE__*/React.createElement(ThemeProvider, {
|
471
|
+
theme: exampleTheme,
|
472
|
+
colorMode: "day",
|
473
|
+
dayScheme: schemeToApply
|
474
|
+
}, /*#__PURE__*/React.createElement(Component, null)));
|
475
|
+
const defaultThemeColorScheme = Object.keys(exampleTheme.colorSchemes)[0];
|
476
|
+
expect(defaultThemeColorScheme).not.toEqual(schemeToApply);
|
477
|
+
expect(exampleTheme.colorSchemes).not.toHaveProperty(schemeToApply);
|
478
|
+
expect(screen.getByTestId('text').textContent).toEqual('light');
|
479
|
+
});
|
480
|
+
describe('nested theme', () => {
|
481
|
+
it('is the same as the applied colorScheme, when that colorScheme is in the theme', () => {
|
482
|
+
const Component = () => {
|
483
|
+
const {
|
484
|
+
resolvedColorScheme
|
485
|
+
} = useTheme();
|
486
|
+
return /*#__PURE__*/React.createElement(Text, {
|
487
|
+
"data-testid": "text"
|
488
|
+
}, resolvedColorScheme);
|
489
|
+
};
|
490
|
+
|
491
|
+
const schemeToApply = 'dark';
|
492
|
+
render( /*#__PURE__*/React.createElement(ThemeProvider, {
|
493
|
+
theme: exampleTheme,
|
494
|
+
colorMode: "day",
|
495
|
+
dayScheme: schemeToApply
|
496
|
+
}, /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Component, null))));
|
497
|
+
expect(exampleTheme.colorSchemes).toHaveProperty(schemeToApply);
|
498
|
+
expect(screen.getByTestId('text').textContent).toEqual(schemeToApply);
|
499
|
+
});
|
500
|
+
it('is the value of the fallback colorScheme applied when attempting to apply an invalid colorScheme', () => {
|
501
|
+
const Component = () => {
|
502
|
+
const {
|
503
|
+
resolvedColorScheme
|
504
|
+
} = useTheme();
|
505
|
+
return /*#__PURE__*/React.createElement(Text, {
|
506
|
+
"data-testid": "text"
|
507
|
+
}, resolvedColorScheme);
|
508
|
+
};
|
509
|
+
|
510
|
+
const schemeToApply = 'totally-invalid-colorscheme';
|
511
|
+
render( /*#__PURE__*/React.createElement(ThemeProvider, {
|
512
|
+
theme: exampleTheme,
|
513
|
+
colorMode: "day",
|
514
|
+
dayScheme: schemeToApply
|
515
|
+
}, /*#__PURE__*/React.createElement(ThemeProvider, null, /*#__PURE__*/React.createElement(Component, null))));
|
516
|
+
const defaultThemeColorScheme = Object.keys(exampleTheme.colorSchemes)[0];
|
517
|
+
expect(defaultThemeColorScheme).not.toEqual(schemeToApply);
|
518
|
+
expect(exampleTheme.colorSchemes).not.toHaveProperty(schemeToApply);
|
519
|
+
expect(screen.getByTestId('text').textContent).toEqual('light');
|
520
|
+
});
|
521
|
+
});
|
408
522
|
});
|
@@ -24,7 +24,7 @@ const meta = {
|
|
24
24
|
export default meta;
|
25
25
|
const ErsatzOverlay = styled.div.withConfig({
|
26
26
|
displayName: "ActionListstories__ErsatzOverlay",
|
27
|
-
componentId: "akdcn0-0"
|
27
|
+
componentId: "sc-akdcn0-0"
|
28
28
|
})(["border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 8px 24px rgba(149,157,165,0.2);overflow:hidden;max-width:", ";"], ({
|
29
29
|
maxWidth
|
30
30
|
}) => maxWidth || 'none');
|
@@ -90,7 +90,7 @@ MultiSelectListStory.storyName = 'Multi Select';
|
|
90
90
|
export function ComplexListInsetVariantStory() {
|
91
91
|
const StyledDiv = styled.div.withConfig({
|
92
92
|
displayName: "ActionListstories__StyledDiv",
|
93
|
-
componentId: "akdcn0-1"
|
93
|
+
componentId: "sc-akdcn0-1"
|
94
94
|
})(["", ""], sx);
|
95
95
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Complex List"), /*#__PURE__*/React.createElement("h2", null, "Inset Variant"), /*#__PURE__*/React.createElement(ErsatzOverlay, null, /*#__PURE__*/React.createElement(ActionList, {
|
96
96
|
groupMetadata: [{
|
@@ -189,7 +189,7 @@ ComplexListInsetVariantStory.storyName = 'Complex List — Inset Variant';
|
|
189
189
|
export function ComplexListFullVariantStory() {
|
190
190
|
const StyledDiv = styled.div.withConfig({
|
191
191
|
displayName: "ActionListstories__StyledDiv",
|
192
|
-
componentId: "akdcn0-2"
|
192
|
+
componentId: "sc-akdcn0-2"
|
193
193
|
})(["", ""], sx);
|
194
194
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("h1", null, "Complex List"), /*#__PURE__*/React.createElement("h2", null, "Full Variant"), /*#__PURE__*/React.createElement(ErsatzOverlay, null, /*#__PURE__*/React.createElement(ActionList, {
|
195
195
|
variant: "full",
|
@@ -31,7 +31,7 @@ const meta = {
|
|
31
31
|
export default meta;
|
32
32
|
const ErsatzOverlay = styled.div.withConfig({
|
33
33
|
displayName: "ActionList2stories__ErsatzOverlay",
|
34
|
-
componentId: "f9cezu-0"
|
34
|
+
componentId: "sc-f9cezu-0"
|
35
35
|
})(["border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,0.12),0 8px 24px rgba(149,157,165,0.2);overflow:hidden;max-width:", ";"], ({
|
36
36
|
maxWidth
|
37
37
|
}) => maxWidth || 'none');
|
@@ -30,11 +30,11 @@ export default {
|
|
30
30
|
};
|
31
31
|
const StyledLabel = styled.label.withConfig({
|
32
32
|
displayName: "Checkboxstories__StyledLabel",
|
33
|
-
componentId: "sdupvr-0"
|
33
|
+
componentId: "sc-sdupvr-0"
|
34
34
|
})(["user-select:none;font-weight:600;font-size:14px;line-height:18px;margin-left:16px;", ""], COMMON);
|
35
35
|
const StyledSubLabel = styled(Text).withConfig({
|
36
36
|
displayName: "Checkboxstories__StyledSubLabel",
|
37
|
-
componentId: "sdupvr-1"
|
37
|
+
componentId: "sc-sdupvr-1"
|
38
38
|
})(["color:", ";font-size:13px;", ""], get('colors.fg.muted'), COMMON);
|
39
39
|
export const Default = args => {
|
40
40
|
const [isChecked, setChecked] = useState(false);
|
@@ -12,11 +12,7 @@ export default {
|
|
12
12
|
}
|
13
13
|
}
|
14
14
|
};
|
15
|
-
const GlobalStyle = createGlobalStyle
|
16
|
-
body {
|
17
|
-
background-color: ${themeGet('colors.bg.canvas')};
|
18
|
-
}
|
19
|
-
`;
|
15
|
+
const GlobalStyle = createGlobalStyle(["body{background-color:", ";}"], themeGet('colors.bg.canvas'));
|
20
16
|
|
21
17
|
function ActiveColorScheme() {
|
22
18
|
const {
|
@@ -11,17 +11,7 @@ export default {
|
|
11
11
|
}; // NOTE: the below styles are solely intended as a visual aid for
|
12
12
|
// this Storybook story, but they're not recommended for a real site!
|
13
13
|
|
14
|
-
const HelperGlobalStyling = createGlobalStyle
|
15
|
-
*:focus {
|
16
|
-
outline: 2px solid ${themeGet('colors.auto.blue.3')} !important;
|
17
|
-
}
|
18
|
-
[data-focus-trap='active'] {
|
19
|
-
background-color: ${themeGet('colors.auto.green.2')}
|
20
|
-
}
|
21
|
-
[data-focus-trap='suspended'] {
|
22
|
-
background-color: ${themeGet('colors.auto.yellow.2')}
|
23
|
-
}
|
24
|
-
`;
|
14
|
+
const HelperGlobalStyling = createGlobalStyle(["*:focus{outline:2px solid ", " !important;}[data-focus-trap='active']{background-color:", "}[data-focus-trap='suspended']{background-color:", "}"], themeGet('colors.auto.blue.3'), themeGet('colors.auto.green.2'), themeGet('colors.auto.yellow.2'));
|
25
15
|
const MarginButton = styled(Button).withConfig({
|
26
16
|
displayName: "useFocusTrapstories__MarginButton",
|
27
17
|
componentId: "sc-12zkn1e-0"
|
@@ -16,14 +16,10 @@ export default {
|
|
16
16
|
}; // NOTE: the below styles are solely intended as a visual aid for
|
17
17
|
// this Storybook story, but they're not recommended for a real site!
|
18
18
|
|
19
|
-
const HelperGlobalStyling = createGlobalStyle
|
20
|
-
*:focus {
|
21
|
-
outline: 2px solid ${themeGet('colors.border.info')} !important;
|
22
|
-
}
|
23
|
-
`;
|
19
|
+
const HelperGlobalStyling = createGlobalStyle(["*:focus{outline:2px solid ", " !important;}"], themeGet('colors.border.info'));
|
24
20
|
const MarginButton = styled(Button).withConfig({
|
25
21
|
displayName: "useFocusZonestories__MarginButton",
|
26
|
-
componentId: "e94kdz-0"
|
22
|
+
componentId: "sc-e94kdz-0"
|
27
23
|
})(["margin:", ";"], themeGet('space.1'));
|
28
24
|
export const BasicFocusZone = () => {
|
29
25
|
// Display each key press in the top-right corner of the page as a visual aid
|