@veracity/vui 1.8.0-beta.0 → 1.8.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/dist/cjs/accordion/accordion.d.ts +7 -1
- package/dist/cjs/accordion/accordion.d.ts.map +1 -1
- package/dist/cjs/accordion/accordion.js +2 -0
- package/dist/cjs/core/media.d.ts +8 -15
- package/dist/cjs/core/media.d.ts.map +1 -1
- package/dist/cjs/core/media.js +39 -24
- package/dist/cjs/header/header.d.ts.map +1 -1
- package/dist/cjs/header/header.js +2 -2
- package/dist/cjs/header/headerServices.js +2 -2
- package/dist/cjs/header/loggedInHeader.js +3 -3
- package/dist/cjs/header/loggedOutHeader.js +3 -3
- package/dist/cjs/select/select.js +1 -1
- package/dist/cjs/select/theme.js +4 -4
- package/dist/cjs/theme/defaultTheme.d.ts +1 -0
- package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
- package/dist/cjs/theme/foundations/index.d.ts +1 -0
- package/dist/cjs/theme/foundations/index.d.ts.map +1 -1
- package/dist/cjs/theme/foundations/screens.d.ts +1 -0
- package/dist/cjs/theme/foundations/screens.d.ts.map +1 -1
- package/dist/cjs/theme/foundations/screens.js +6 -4
- package/dist/esm/accordion/accordion.d.ts +7 -1
- package/dist/esm/accordion/accordion.d.ts.map +1 -1
- package/dist/esm/accordion/accordion.js +2 -0
- package/dist/esm/core/media.d.ts +8 -15
- package/dist/esm/core/media.d.ts.map +1 -1
- package/dist/esm/core/media.js +38 -19
- package/dist/esm/header/header.d.ts.map +1 -1
- package/dist/esm/header/header.js +3 -3
- package/dist/esm/header/headerServices.js +3 -3
- package/dist/esm/header/loggedInHeader.js +4 -4
- package/dist/esm/header/loggedOutHeader.js +4 -4
- package/dist/esm/select/select.js +1 -1
- package/dist/esm/select/theme.js +4 -4
- package/dist/esm/theme/defaultTheme.d.ts +1 -0
- package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
- package/dist/esm/theme/foundations/index.d.ts +1 -0
- package/dist/esm/theme/foundations/index.d.ts.map +1 -1
- package/dist/esm/theme/foundations/screens.d.ts +1 -0
- package/dist/esm/theme/foundations/screens.d.ts.map +1 -1
- package/dist/esm/theme/foundations/screens.js +6 -4
- package/package.json +1 -1
- package/src/accordion/accordion.tsx +8 -2
- package/src/core/media.tsx +48 -26
- package/src/header/header.tsx +3 -3
- package/src/header/headerServices.tsx +5 -5
- package/src/header/loggedInHeader.tsx +6 -6
- package/src/header/loggedOutHeader.tsx +6 -6
- package/src/select/select.tsx +1 -1
- package/src/select/theme.ts +4 -4
- package/src/theme/foundations/screens.ts +6 -4
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { VuiComponent } from '../core';
|
|
1
2
|
import { AccordionProps } from './accordion.types';
|
|
3
|
+
import AccordionItem from './accordionItem';
|
|
4
|
+
import AccordionItemHorizontal from './accordionItemHorizontal';
|
|
2
5
|
export declare const AccordionBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
|
|
3
6
|
/** Allows to show and hide sections of related content on a page. */
|
|
4
|
-
export declare const Accordion:
|
|
7
|
+
export declare const Accordion: VuiComponent<"div", AccordionProps> & {
|
|
8
|
+
Item: typeof AccordionItem;
|
|
9
|
+
ItemHorizontal: typeof AccordionItemHorizontal;
|
|
10
|
+
};
|
|
5
11
|
export default Accordion;
|
|
6
12
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAGnE,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAG/D,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS;UA8Bd,oBAAoB;oBACV,8BAA8B;CAC/C,CAAA;AAKD,eAAe,SAAS,CAAA"}
|
|
@@ -62,4 +62,6 @@ exports.Accordion = (0, core_1.vui)((props, ref) => {
|
|
|
62
62
|
? (_a = items === null || items === void 0 ? void 0 : items.map) === null || _a === void 0 ? void 0 : _a.call(items, (item, key) => (react_1.default.createElement(accordionItem_1.default, Object.assign({ itemTitleHoverBg: itemTitleHoverBg, key: key }, item))))
|
|
63
63
|
: children)) : items ? ((_b = items === null || items === void 0 ? void 0 : items.map) === null || _b === void 0 ? void 0 : _b.call(items, (item, key) => (react_1.default.createElement(accordionItemHorizontal_1.default, Object.assign({ itemTitleHoverBg: itemTitleHoverBg, key: key }, item))))) : (children))));
|
|
64
64
|
});
|
|
65
|
+
exports.Accordion.Item = accordionItem_1.default;
|
|
66
|
+
exports.Accordion.ItemHorizontal = accordionItemHorizontal_1.default;
|
|
65
67
|
exports.default = exports.Accordion;
|
package/dist/cjs/core/media.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useViewportWidth } from '@xstyled/styled-components';
|
|
1
2
|
import { FC } from 'react';
|
|
2
3
|
import { StyledProps } from 'styled-components';
|
|
3
4
|
import { Screen } from '../theme';
|
|
@@ -5,10 +6,10 @@ import { AnyNumber, AnyString } from '../utils';
|
|
|
5
6
|
import { ChildrenProp } from './types';
|
|
6
7
|
declare type ScreenWidth = Screen | AnyNumber | AnyString;
|
|
7
8
|
export declare type RenderOnScreenProps = {
|
|
8
|
-
/** Changes direction to below the breakpoint. */
|
|
9
|
-
isDown?: boolean;
|
|
10
9
|
/** Breakpoint to compare viewport width against. */
|
|
11
|
-
|
|
10
|
+
maxWidth?: Screen;
|
|
11
|
+
/** Breakpoint to compare viewport width against. */
|
|
12
|
+
minWidth?: Screen;
|
|
12
13
|
};
|
|
13
14
|
/** Returns CSS media string with appropriate min-width and max-width values. */
|
|
14
15
|
export declare const mediaBetween: (minWidth: ScreenWidth, maxWidth: ScreenWidth) => (props: StyledProps<unknown>) => string;
|
|
@@ -16,25 +17,17 @@ export declare const mediaBetween: (minWidth: ScreenWidth, maxWidth: ScreenWidth
|
|
|
16
17
|
export declare const mediaDown: (width: ScreenWidth) => (props: StyledProps<unknown>) => string;
|
|
17
18
|
/** Returns CSS media string with appropriate min-width value. */
|
|
18
19
|
export declare const mediaUp: (width: ScreenWidth) => (props: StyledProps<unknown>) => string;
|
|
19
|
-
/** Renders its content when viewport width is at or above 'md' breakpoint (default: 960px and more). */
|
|
20
|
-
export declare const RenderOnDesktop: FC<RenderOnScreenProps & ChildrenProp>;
|
|
21
|
-
/** Renders its content when viewport width is below 'md' breakpoint (default: below 960px). */
|
|
22
|
-
export declare const RenderOnMobile: FC<RenderOnScreenProps & ChildrenProp>;
|
|
23
20
|
/**
|
|
24
21
|
* Renders its content when viewport width is at or above a provided breakpoint.
|
|
25
22
|
* Optionally, direction can be set to down, or below, the breakpoint.
|
|
26
23
|
*/
|
|
27
24
|
export declare const RenderOnScreen: FC<RenderOnScreenProps & ChildrenProp>;
|
|
28
|
-
/** Returns true if current viewport width is between provided min and max widths. */
|
|
29
|
-
export declare function useBetween(minWidth: ScreenWidth, maxWidth: ScreenWidth): boolean;
|
|
30
25
|
/** Returns true if current viewport width is smaller than provided width. */
|
|
31
26
|
export declare function useDown(width: ScreenWidth): boolean;
|
|
32
|
-
/** Returns viewport width and provided screen width as a number. */
|
|
33
|
-
export declare function useMedia(width: ScreenWidth): {
|
|
34
|
-
value: number;
|
|
35
|
-
viewportWidth: number | null;
|
|
36
|
-
};
|
|
37
27
|
/** Returns true if current viewport width is larger than or equal to provided width. */
|
|
38
28
|
export declare function useUp(width: ScreenWidth): boolean;
|
|
39
|
-
|
|
29
|
+
/** Returns true if current viewport width is between provided min and max widths. */
|
|
30
|
+
export declare function useBetween(minWidth: ScreenWidth, maxWidth: ScreenWidth): boolean;
|
|
31
|
+
/** Return the width of the viewport. */
|
|
32
|
+
export { useViewportWidth };
|
|
40
33
|
//# sourceMappingURL=media.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/core/media.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/core/media.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,aAAK,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAEjD,oBAAY,mBAAmB,GAAG;IAChC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,YAAY,aAAc,WAAW,YAAY,WAAW,aAAa,YAAY,OAAO,CAAC,WACN,CAAA;AAEpG,gEAAgE;AAChE,eAAO,MAAM,SAAS,UAAW,WAAW,aAAa,YAAY,OAAO,CAAC,WAE5E,CAAA;AAED,iEAAiE;AACjE,eAAO,MAAM,OAAO,UAAW,WAAW,aAAa,YAAY,OAAO,CAAC,WACzB,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAejE,CAAA;AAyBD,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,WAIzC;AAED,wFAAwF;AACxF,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,WAIvC;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,WAKtE;AAED,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
package/dist/cjs/core/media.js
CHANGED
|
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.useViewportWidth = exports.useBetween = exports.useUp = exports.useDown = exports.RenderOnScreen = exports.mediaUp = exports.mediaDown = exports.mediaBetween = void 0;
|
|
7
7
|
const styled_components_1 = require("@xstyled/styled-components");
|
|
8
|
+
Object.defineProperty(exports, "useViewportWidth", { enumerable: true, get: function () { return styled_components_1.useViewportWidth; } });
|
|
8
9
|
const react_1 = __importDefault(require("react"));
|
|
9
10
|
const theme_1 = require("./theme");
|
|
10
11
|
/** Returns CSS media string with appropriate min-width and max-width values. */
|
|
@@ -18,34 +19,36 @@ exports.mediaDown = mediaDown;
|
|
|
18
19
|
/** Returns CSS media string with appropriate min-width value. */
|
|
19
20
|
const mediaUp = (width) => (props) => `@media (min-width: ${theme_1.th.screen(width)(props)})`;
|
|
20
21
|
exports.mediaUp = mediaUp;
|
|
21
|
-
/** Renders its content when viewport width is at or above 'md' breakpoint (default: 960px and more). */
|
|
22
|
-
const RenderOnDesktop = props => react_1.default.createElement(exports.RenderOnScreen, Object.assign({}, props));
|
|
23
|
-
exports.RenderOnDesktop = RenderOnDesktop;
|
|
24
|
-
/** Renders its content when viewport width is below 'md' breakpoint (default: below 960px). */
|
|
25
|
-
const RenderOnMobile = props => react_1.default.createElement(exports.RenderOnScreen, Object.assign({ isDown: true }, props));
|
|
26
|
-
exports.RenderOnMobile = RenderOnMobile;
|
|
27
22
|
/**
|
|
28
23
|
* Renders its content when viewport width is at or above a provided breakpoint.
|
|
29
24
|
* Optionally, direction can be set to down, or below, the breakpoint.
|
|
30
25
|
*/
|
|
31
|
-
const RenderOnScreen = ({ children,
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
const RenderOnScreen = ({ children, maxWidth, minWidth }) => {
|
|
27
|
+
if (minWidth && maxWidth) {
|
|
28
|
+
return (react_1.default.createElement(RenderBetween, { maxWidth: maxWidth, minWidth: minWidth }, children));
|
|
29
|
+
}
|
|
30
|
+
if (minWidth) {
|
|
31
|
+
return react_1.default.createElement(RenderOver, { width: minWidth }, children);
|
|
32
|
+
}
|
|
33
|
+
if (maxWidth) {
|
|
34
|
+
return react_1.default.createElement(RenderUnder, { width: maxWidth }, children);
|
|
35
|
+
}
|
|
36
|
+
return react_1.default.createElement(react_1.default.Fragment, null, children);
|
|
34
37
|
};
|
|
35
38
|
exports.RenderOnScreen = RenderOnScreen;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
|
|
39
|
+
const RenderBetween = ({ children, maxWidth, minWidth }) => {
|
|
40
|
+
const isBetween = useBetween(minWidth, maxWidth);
|
|
41
|
+
return isBetween ? react_1.default.createElement(react_1.default.Fragment, null, children) : null;
|
|
42
|
+
};
|
|
43
|
+
const RenderOver = ({ children, width }) => {
|
|
44
|
+
const isOver = useUp(width);
|
|
45
|
+
return isOver ? react_1.default.createElement(react_1.default.Fragment, null, children) : null;
|
|
46
|
+
};
|
|
47
|
+
const RenderUnder = ({ children, width }) => {
|
|
48
|
+
const isUnder = useDown(width);
|
|
49
|
+
return isUnder ? react_1.default.createElement(react_1.default.Fragment, null, children) : null;
|
|
50
|
+
};
|
|
51
|
+
/** /!\ No need to export it, keep it internal */
|
|
49
52
|
/** Returns viewport width and provided screen width as a number. */
|
|
50
53
|
function useMedia(width) {
|
|
51
54
|
const theme = (0, theme_1.useTheme)();
|
|
@@ -54,10 +57,22 @@ function useMedia(width) {
|
|
|
54
57
|
const value = Number(valueString.replace('px', ''));
|
|
55
58
|
return { value, viewportWidth };
|
|
56
59
|
}
|
|
57
|
-
|
|
60
|
+
/** Returns true if current viewport width is smaller than provided width. */
|
|
61
|
+
function useDown(width) {
|
|
62
|
+
const { value, viewportWidth } = useMedia(width);
|
|
63
|
+
return viewportWidth !== null && value !== null && viewportWidth < value;
|
|
64
|
+
}
|
|
65
|
+
exports.useDown = useDown;
|
|
58
66
|
/** Returns true if current viewport width is larger than or equal to provided width. */
|
|
59
67
|
function useUp(width) {
|
|
60
68
|
const { value, viewportWidth } = useMedia(width);
|
|
61
69
|
return viewportWidth !== null && value !== null && viewportWidth >= value;
|
|
62
70
|
}
|
|
63
71
|
exports.useUp = useUp;
|
|
72
|
+
/** Returns true if current viewport width is between provided min and max widths. */
|
|
73
|
+
function useBetween(minWidth, maxWidth) {
|
|
74
|
+
const isDown = useDown(maxWidth);
|
|
75
|
+
const isUp = useUp(minWidth);
|
|
76
|
+
return isDown && isUp;
|
|
77
|
+
}
|
|
78
|
+
exports.useBetween = useBetween;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/header/header.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/header/header.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgD,YAAY,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAO,MAAM,UAAU,kIAMtB,CAAA;AAED,qHAAqH;AACrH,eAAO,MAAM,MAAM;aA0CR,oBAAoB;qBACZ,4BAA4B;aACpC,oBAAoB;mBACd,0BAA0B;aAChC,oBAAoB;cACnB,qBAAqB;UACzB,iBAAiB;eACZ,sBAAsB;mBAClB,0BAA0B;kBAC3B,yBAAyB;mBACxB,0BAA0B;cAC/B,qBAAqB;qBACd,4BAA4B;YACrC,mBAAmB;CAC5B,CAAA;AAiBD,eAAe,MAAM,CAAA"}
|
|
@@ -74,8 +74,8 @@ exports.Header = (0, core_1.vui)((props, ref) => {
|
|
|
74
74
|
(0, utils_1.useClickOutside)([mobileContentRef, mobileToggleRef], () => {
|
|
75
75
|
setIsMobileOpen(false);
|
|
76
76
|
});
|
|
77
|
-
const isDesktop = (0, core_1.useUp)('
|
|
78
|
-
const isMobile =
|
|
77
|
+
const isDesktop = (0, core_1.useUp)('lg');
|
|
78
|
+
const isMobile = !isDesktop;
|
|
79
79
|
const context = {
|
|
80
80
|
headerHeight,
|
|
81
81
|
isDesktop,
|
|
@@ -31,12 +31,12 @@ function HeaderServices(props) {
|
|
|
31
31
|
const { buttonProps, links = [] } = props, rest = __rest(props, ["buttonProps", "links"]);
|
|
32
32
|
const styles = (0, core_1.useStyleConfig)('Header', (0, context_1.useHeaderContext)()).services;
|
|
33
33
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
34
|
-
react_1.default.createElement(core_1.
|
|
34
|
+
react_1.default.createElement(core_1.RenderOnScreen, { minWidth: "lg" },
|
|
35
35
|
react_1.default.createElement(menu_1.default, Object.assign({ isLazy: false, offset: [0, 8], placement: "bottom-end", size: "lg" }, rest),
|
|
36
36
|
react_1.default.createElement(menu_1.default.Button, Object.assign({ colorScheme: "prussian", icon: "falTh", ml: 1, title: "My services" }, styles.button, buttonProps)),
|
|
37
37
|
react_1.default.createElement(menu_1.default.List, Object.assign({ heading: "My Services", maxH: 400, w: 320 }, styles.list),
|
|
38
38
|
react_1.default.createElement(ListContent, { links: links })))),
|
|
39
|
-
react_1.default.createElement(core_1.
|
|
39
|
+
react_1.default.createElement(core_1.RenderOnScreen, { maxWidth: "lg" },
|
|
40
40
|
react_1.default.createElement(list_1.default, Object.assign({ borderBottom: "1px solid grey.40", heading: "My Services" }, styles.list),
|
|
41
41
|
react_1.default.createElement(ListContent, { links: links })))));
|
|
42
42
|
}
|
|
@@ -26,15 +26,15 @@ exports.LoggedInHeader = (0, core_1.vui)((props, ref) => {
|
|
|
26
26
|
return (react_1.default.createElement(header_1.default, Object.assign({ className: (0, utils_1.cs)('vui-loggedInHeader', className), ref: ref }, rest),
|
|
27
27
|
react_1.default.createElement(header_1.default.Content, null,
|
|
28
28
|
(0, utils_1.isJsx)(logo) ? logo : react_1.default.createElement(header_1.default.Logo, Object.assign({}, logo)),
|
|
29
|
-
react_1.default.createElement(core_1.
|
|
29
|
+
react_1.default.createElement(core_1.RenderOnScreen, { minWidth: "lg" }, children),
|
|
30
30
|
react_1.default.createElement(box_1.default, { ml: "auto" }),
|
|
31
|
-
react_1.default.createElement(core_1.
|
|
31
|
+
react_1.default.createElement(core_1.RenderOnScreen, { minWidth: "lg" },
|
|
32
32
|
(0, utils_1.isJsx)(mainLinks) ? mainLinks : react_1.default.createElement(header_1.default.MainLinks, { links: mainLinks }),
|
|
33
33
|
mainLinks !== undefined && react_1.default.createElement(header_1.default.Divider, { mx: 1 }),
|
|
34
34
|
(0, utils_1.isJsx)(services) ? services : react_1.default.createElement(header_1.default.Services, Object.assign({}, services))),
|
|
35
35
|
(0, utils_1.isJsx)(notifications) ? notifications : react_1.default.createElement(header_1.default.Notifications, Object.assign({}, notifications)),
|
|
36
36
|
(0, utils_1.isJsx)(account) ? account : react_1.default.createElement(header_1.default.Account, Object.assign({}, account)),
|
|
37
|
-
react_1.default.createElement(core_1.
|
|
37
|
+
react_1.default.createElement(core_1.RenderOnScreen, { maxWidth: "lg" },
|
|
38
38
|
(account !== undefined || notifications !== undefined) && react_1.default.createElement(header_1.default.Divider, { ml: 2 }),
|
|
39
39
|
react_1.default.createElement(header_1.default.MobileToggle, null),
|
|
40
40
|
react_1.default.createElement(header_1.default.MobileContent, null,
|
|
@@ -26,14 +26,14 @@ exports.LoggedOutHeader = (0, core_1.vui)((props, ref) => {
|
|
|
26
26
|
return (react_1.default.createElement(header_1.default, Object.assign({ className: (0, utils_1.cs)('vui-loggedOutHeader', className), ref: ref }, rest),
|
|
27
27
|
react_1.default.createElement(header_1.default.Content, null,
|
|
28
28
|
(0, utils_1.isJsx)(logo) ? logo : react_1.default.createElement(header_1.default.Logo, Object.assign({}, logo)),
|
|
29
|
-
react_1.default.createElement(core_1.
|
|
29
|
+
react_1.default.createElement(core_1.RenderOnScreen, { minWidth: "lg" }, children),
|
|
30
30
|
react_1.default.createElement(box_1.default, { ml: "auto" }),
|
|
31
|
-
react_1.default.createElement(core_1.
|
|
31
|
+
react_1.default.createElement(core_1.RenderOnScreen, { minWidth: "lg" },
|
|
32
32
|
(0, utils_1.isJsx)(mainLinks) ? mainLinks : react_1.default.createElement(header_1.default.MainLinks, { links: mainLinks }),
|
|
33
33
|
mainLinks !== undefined && react_1.default.createElement(header_1.default.Divider, { ml: 1, mr: 3 }),
|
|
34
34
|
(0, utils_1.isJsx)(signIn) ? signIn : react_1.default.createElement(header_1.default.SignIn, Object.assign({}, signIn)),
|
|
35
35
|
(0, utils_1.isJsx)(createAccount) ? createAccount : react_1.default.createElement(header_1.default.CreateAccount, Object.assign({}, createAccount))),
|
|
36
|
-
react_1.default.createElement(core_1.
|
|
36
|
+
react_1.default.createElement(core_1.RenderOnScreen, { maxWidth: "lg" },
|
|
37
37
|
(0, utils_1.isJsx)(signIn) ? signIn : react_1.default.createElement(header_1.default.SignIn, Object.assign({}, signIn)),
|
|
38
38
|
react_1.default.createElement(header_1.default.Divider, { ml: 2 }),
|
|
39
39
|
react_1.default.createElement(header_1.default.MobileToggle, null),
|
|
@@ -49,7 +49,7 @@ function Select(props) {
|
|
|
49
49
|
react_1.default.createElement(popover_1.Popover, Object.assign({ matchWidth: true }, rest),
|
|
50
50
|
react_1.default.createElement(react_1.default.Fragment, null, selectButton !== null && selectButton !== void 0 ? selectButton : react_1.default.createElement(selectButton_1.default, null),
|
|
51
51
|
react_1.default.createElement(selectContent_1.default, null,
|
|
52
|
-
react_1.default.createElement(selectGroup_1.default,
|
|
52
|
+
react_1.default.createElement(selectGroup_1.default, { tabIndex: 1000 }, children !== null && children !== void 0 ? children : (_a = options === null || options === void 0 ? void 0 : options.map) === null || _a === void 0 ? void 0 : _a.call(options, option => react_1.default.createElement(selectOption_1.default, Object.assign({ key: option.value, title: option.text }, option)))))))));
|
|
53
53
|
}
|
|
54
54
|
exports.Select = Select;
|
|
55
55
|
Select.Button = selectButton_1.default;
|
package/dist/cjs/select/theme.js
CHANGED
|
@@ -21,16 +21,16 @@ const sizes = {
|
|
|
21
21
|
const variants = {
|
|
22
22
|
outlined: {
|
|
23
23
|
button: {
|
|
24
|
-
hoverBg: '
|
|
25
|
-
activeBg: '
|
|
24
|
+
hoverBg: 'white',
|
|
25
|
+
activeBg: 'white',
|
|
26
26
|
borderColor: 'grey.60',
|
|
27
27
|
hoverBorderColor: 'grey.60'
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
text: {
|
|
31
31
|
button: {
|
|
32
|
-
hoverBg: '
|
|
33
|
-
activeBg: '
|
|
32
|
+
hoverBg: 'white',
|
|
33
|
+
activeBg: 'white',
|
|
34
34
|
borderColor: 'transparent',
|
|
35
35
|
hoverBorderColor: 'transparent'
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGjB,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":";;;;;;;;AACA,wBAOC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Pixel values inspired by https://tailwindcss.com/docs/screens
|
|
3
4
|
exports.default = {
|
|
4
5
|
xs: 0,
|
|
5
|
-
sm:
|
|
6
|
-
md:
|
|
7
|
-
lg:
|
|
8
|
-
xl:
|
|
6
|
+
sm: 640,
|
|
7
|
+
md: 768,
|
|
8
|
+
lg: 1024,
|
|
9
|
+
xl: 1280,
|
|
10
|
+
'2xl': 1536
|
|
9
11
|
};
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { VuiComponent } from '../core';
|
|
1
2
|
import { AccordionProps } from './accordion.types';
|
|
3
|
+
import AccordionItem from './accordionItem';
|
|
4
|
+
import AccordionItemHorizontal from './accordionItemHorizontal';
|
|
2
5
|
export declare const AccordionBase: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("..").SystemProps, never>;
|
|
3
6
|
/** Allows to show and hide sections of related content on a page. */
|
|
4
|
-
export declare const Accordion:
|
|
7
|
+
export declare const Accordion: VuiComponent<"div", AccordionProps> & {
|
|
8
|
+
Item: typeof AccordionItem;
|
|
9
|
+
ItemHorizontal: typeof AccordionItemHorizontal;
|
|
10
|
+
};
|
|
5
11
|
export default Accordion;
|
|
6
12
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,YAAY,EAAE,MAAM,SAAS,CAAA;AAGnE,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,uBAAuB,MAAM,2BAA2B,CAAA;AAG/D,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS;UA8Bd,oBAAoB;oBACV,8BAA8B;CAC/C,CAAA;AAKD,eAAe,SAAS,CAAA"}
|
|
@@ -21,4 +21,6 @@ export const Accordion = vui((props, ref) => {
|
|
|
21
21
|
? items?.map?.((item, key) => (React.createElement(AccordionItem, { itemTitleHoverBg: itemTitleHoverBg, key: key, ...item })))
|
|
22
22
|
: children)) : items ? (items?.map?.((item, key) => (React.createElement(AccordionItemHorizontal, { itemTitleHoverBg: itemTitleHoverBg, key: key, ...item })))) : (children))));
|
|
23
23
|
});
|
|
24
|
+
Accordion.Item = AccordionItem;
|
|
25
|
+
Accordion.ItemHorizontal = AccordionItemHorizontal;
|
|
24
26
|
export default Accordion;
|
package/dist/esm/core/media.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useViewportWidth } from '@xstyled/styled-components';
|
|
1
2
|
import { FC } from 'react';
|
|
2
3
|
import { StyledProps } from 'styled-components';
|
|
3
4
|
import { Screen } from '../theme';
|
|
@@ -5,10 +6,10 @@ import { AnyNumber, AnyString } from '../utils';
|
|
|
5
6
|
import { ChildrenProp } from './types';
|
|
6
7
|
declare type ScreenWidth = Screen | AnyNumber | AnyString;
|
|
7
8
|
export declare type RenderOnScreenProps = {
|
|
8
|
-
/** Changes direction to below the breakpoint. */
|
|
9
|
-
isDown?: boolean;
|
|
10
9
|
/** Breakpoint to compare viewport width against. */
|
|
11
|
-
|
|
10
|
+
maxWidth?: Screen;
|
|
11
|
+
/** Breakpoint to compare viewport width against. */
|
|
12
|
+
minWidth?: Screen;
|
|
12
13
|
};
|
|
13
14
|
/** Returns CSS media string with appropriate min-width and max-width values. */
|
|
14
15
|
export declare const mediaBetween: (minWidth: ScreenWidth, maxWidth: ScreenWidth) => (props: StyledProps<unknown>) => string;
|
|
@@ -16,25 +17,17 @@ export declare const mediaBetween: (minWidth: ScreenWidth, maxWidth: ScreenWidth
|
|
|
16
17
|
export declare const mediaDown: (width: ScreenWidth) => (props: StyledProps<unknown>) => string;
|
|
17
18
|
/** Returns CSS media string with appropriate min-width value. */
|
|
18
19
|
export declare const mediaUp: (width: ScreenWidth) => (props: StyledProps<unknown>) => string;
|
|
19
|
-
/** Renders its content when viewport width is at or above 'md' breakpoint (default: 960px and more). */
|
|
20
|
-
export declare const RenderOnDesktop: FC<RenderOnScreenProps & ChildrenProp>;
|
|
21
|
-
/** Renders its content when viewport width is below 'md' breakpoint (default: below 960px). */
|
|
22
|
-
export declare const RenderOnMobile: FC<RenderOnScreenProps & ChildrenProp>;
|
|
23
20
|
/**
|
|
24
21
|
* Renders its content when viewport width is at or above a provided breakpoint.
|
|
25
22
|
* Optionally, direction can be set to down, or below, the breakpoint.
|
|
26
23
|
*/
|
|
27
24
|
export declare const RenderOnScreen: FC<RenderOnScreenProps & ChildrenProp>;
|
|
28
|
-
/** Returns true if current viewport width is between provided min and max widths. */
|
|
29
|
-
export declare function useBetween(minWidth: ScreenWidth, maxWidth: ScreenWidth): boolean;
|
|
30
25
|
/** Returns true if current viewport width is smaller than provided width. */
|
|
31
26
|
export declare function useDown(width: ScreenWidth): boolean;
|
|
32
|
-
/** Returns viewport width and provided screen width as a number. */
|
|
33
|
-
export declare function useMedia(width: ScreenWidth): {
|
|
34
|
-
value: number;
|
|
35
|
-
viewportWidth: number | null;
|
|
36
|
-
};
|
|
37
27
|
/** Returns true if current viewport width is larger than or equal to provided width. */
|
|
38
28
|
export declare function useUp(width: ScreenWidth): boolean;
|
|
39
|
-
|
|
29
|
+
/** Returns true if current viewport width is between provided min and max widths. */
|
|
30
|
+
export declare function useBetween(minWidth: ScreenWidth, maxWidth: ScreenWidth): boolean;
|
|
31
|
+
/** Return the width of the viewport. */
|
|
32
|
+
export { useViewportWidth };
|
|
40
33
|
//# sourceMappingURL=media.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/core/media.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/core/media.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,aAAK,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;AAEjD,oBAAY,mBAAmB,GAAG;IAChC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,YAAY,aAAc,WAAW,YAAY,WAAW,aAAa,YAAY,OAAO,CAAC,WACN,CAAA;AAEpG,gEAAgE;AAChE,eAAO,MAAM,SAAS,UAAW,WAAW,aAAa,YAAY,OAAO,CAAC,WAE5E,CAAA;AAED,iEAAiE;AACjE,eAAO,MAAM,OAAO,UAAW,WAAW,aAAa,YAAY,OAAO,CAAC,WACzB,CAAA;AAElD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAejE,CAAA;AAyBD,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,WAIzC;AAED,wFAAwF;AACxF,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,WAIvC;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,WAKtE;AAED,wCAAwC;AACxC,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
package/dist/esm/core/media.js
CHANGED
|
@@ -9,39 +9,58 @@ export const mediaDown = (width) => (props) => {
|
|
|
9
9
|
};
|
|
10
10
|
/** Returns CSS media string with appropriate min-width value. */
|
|
11
11
|
export const mediaUp = (width) => (props) => `@media (min-width: ${th.screen(width)(props)})`;
|
|
12
|
-
/** Renders its content when viewport width is at or above 'md' breakpoint (default: 960px and more). */
|
|
13
|
-
export const RenderOnDesktop = props => React.createElement(RenderOnScreen, { ...props });
|
|
14
|
-
/** Renders its content when viewport width is below 'md' breakpoint (default: below 960px). */
|
|
15
|
-
export const RenderOnMobile = props => React.createElement(RenderOnScreen, { isDown: true, ...props });
|
|
16
12
|
/**
|
|
17
13
|
* Renders its content when viewport width is at or above a provided breakpoint.
|
|
18
14
|
* Optionally, direction can be set to down, or below, the breakpoint.
|
|
19
15
|
*/
|
|
20
|
-
export const RenderOnScreen = ({ children,
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
export const RenderOnScreen = ({ children, maxWidth, minWidth }) => {
|
|
17
|
+
if (minWidth && maxWidth) {
|
|
18
|
+
return (React.createElement(RenderBetween, { maxWidth: maxWidth, minWidth: minWidth }, children));
|
|
19
|
+
}
|
|
20
|
+
if (minWidth) {
|
|
21
|
+
return React.createElement(RenderOver, { width: minWidth }, children);
|
|
22
|
+
}
|
|
23
|
+
if (maxWidth) {
|
|
24
|
+
return React.createElement(RenderUnder, { width: maxWidth }, children);
|
|
25
|
+
}
|
|
26
|
+
return React.createElement(React.Fragment, null, children);
|
|
23
27
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
28
|
+
const RenderBetween = ({ children, maxWidth, minWidth }) => {
|
|
29
|
+
const isBetween = useBetween(minWidth, maxWidth);
|
|
30
|
+
return isBetween ? React.createElement(React.Fragment, null, children) : null;
|
|
31
|
+
};
|
|
32
|
+
const RenderOver = ({ children, width }) => {
|
|
33
|
+
const isOver = useUp(width);
|
|
34
|
+
return isOver ? React.createElement(React.Fragment, null, children) : null;
|
|
35
|
+
};
|
|
36
|
+
const RenderUnder = ({ children, width }) => {
|
|
37
|
+
const isUnder = useDown(width);
|
|
38
|
+
return isUnder ? React.createElement(React.Fragment, null, children) : null;
|
|
39
|
+
};
|
|
40
|
+
/** /!\ No need to export it, keep it internal */
|
|
35
41
|
/** Returns viewport width and provided screen width as a number. */
|
|
36
|
-
|
|
42
|
+
function useMedia(width) {
|
|
37
43
|
const theme = useTheme();
|
|
38
44
|
const viewportWidth = useViewportWidth();
|
|
39
45
|
const valueString = th.screen(width)({ theme });
|
|
40
46
|
const value = Number(valueString.replace('px', ''));
|
|
41
47
|
return { value, viewportWidth };
|
|
42
48
|
}
|
|
49
|
+
/** Returns true if current viewport width is smaller than provided width. */
|
|
50
|
+
export function useDown(width) {
|
|
51
|
+
const { value, viewportWidth } = useMedia(width);
|
|
52
|
+
return viewportWidth !== null && value !== null && viewportWidth < value;
|
|
53
|
+
}
|
|
43
54
|
/** Returns true if current viewport width is larger than or equal to provided width. */
|
|
44
55
|
export function useUp(width) {
|
|
45
56
|
const { value, viewportWidth } = useMedia(width);
|
|
46
57
|
return viewportWidth !== null && value !== null && viewportWidth >= value;
|
|
47
58
|
}
|
|
59
|
+
/** Returns true if current viewport width is between provided min and max widths. */
|
|
60
|
+
export function useBetween(minWidth, maxWidth) {
|
|
61
|
+
const isDown = useDown(maxWidth);
|
|
62
|
+
const isUp = useUp(minWidth);
|
|
63
|
+
return isDown && isUp;
|
|
64
|
+
}
|
|
65
|
+
/** Return the width of the viewport. */
|
|
66
|
+
export { useViewportWidth };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/header/header.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../src/header/header.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgD,YAAY,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAC/C,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,mBAAmB,MAAM,uBAAuB,CAAA;AACvD,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAC7C,OAAO,qBAAqB,MAAM,yBAAyB,CAAA;AAC3D,OAAO,YAAY,MAAM,gBAAgB,CAAA;AAEzC,eAAO,MAAM,UAAU,kIAMtB,CAAA;AAED,qHAAqH;AACrH,eAAO,MAAM,MAAM;aA0CR,oBAAoB;qBACZ,4BAA4B;aACpC,oBAAoB;mBACd,0BAA0B;aAChC,oBAAoB;cACnB,qBAAqB;UACzB,iBAAiB;eACZ,sBAAsB;mBAClB,0BAA0B;kBAC3B,yBAAyB;mBACxB,0BAA0B;cAC/B,qBAAqB;qBACd,4BAA4B;YACrC,mBAAmB;CAC5B,CAAA;AAiBD,eAAe,MAAM,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useRef, useState } from 'react';
|
|
2
|
-
import { styled,
|
|
2
|
+
import { styled, useLinks, useStyleConfig, useUp, vui } from '../core';
|
|
3
3
|
import { cs, useClickOutside } from '../utils';
|
|
4
4
|
import { HeaderProvider } from './context';
|
|
5
5
|
import HeaderAccount from './headerAccount';
|
|
@@ -34,8 +34,8 @@ export const Header = vui((props, ref) => {
|
|
|
34
34
|
useClickOutside([mobileContentRef, mobileToggleRef], () => {
|
|
35
35
|
setIsMobileOpen(false);
|
|
36
36
|
});
|
|
37
|
-
const isDesktop = useUp('
|
|
38
|
-
const isMobile =
|
|
37
|
+
const isDesktop = useUp('lg');
|
|
38
|
+
const isMobile = !isDesktop;
|
|
39
39
|
const context = {
|
|
40
40
|
headerHeight,
|
|
41
41
|
isDesktop,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { RenderOnScreen, useStyleConfig } from '../core';
|
|
3
3
|
import List from '../list';
|
|
4
4
|
import Menu from '../menu';
|
|
5
5
|
import { useHeaderContext } from './context';
|
|
@@ -14,12 +14,12 @@ export function HeaderServices(props) {
|
|
|
14
14
|
const { buttonProps, links = [], ...rest } = props;
|
|
15
15
|
const styles = useStyleConfig('Header', useHeaderContext()).services;
|
|
16
16
|
return (React.createElement(React.Fragment, null,
|
|
17
|
-
React.createElement(
|
|
17
|
+
React.createElement(RenderOnScreen, { minWidth: "lg" },
|
|
18
18
|
React.createElement(Menu, { isLazy: false, offset: [0, 8], placement: "bottom-end", size: "lg", ...rest },
|
|
19
19
|
React.createElement(Menu.Button, { colorScheme: "prussian", icon: "falTh", ml: 1, title: "My services", ...styles.button, ...buttonProps }),
|
|
20
20
|
React.createElement(Menu.List, { heading: "My Services", maxH: 400, w: 320, ...styles.list },
|
|
21
21
|
React.createElement(ListContent, { links: links })))),
|
|
22
|
-
React.createElement(
|
|
22
|
+
React.createElement(RenderOnScreen, { maxWidth: "lg" },
|
|
23
23
|
React.createElement(List, { borderBottom: "1px solid grey.40", heading: "My Services", ...styles.list },
|
|
24
24
|
React.createElement(ListContent, { links: links })))));
|
|
25
25
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Box from '../box';
|
|
3
|
-
import {
|
|
3
|
+
import { RenderOnScreen, vui } from '../core';
|
|
4
4
|
import { cs, isJsx } from '../utils';
|
|
5
5
|
import Header from './header';
|
|
6
6
|
/** Displays Header content appropriate for logged in users, such as services, notifications or account information. */
|
|
@@ -9,15 +9,15 @@ export const LoggedInHeader = vui((props, ref) => {
|
|
|
9
9
|
return (React.createElement(Header, { className: cs('vui-loggedInHeader', className), ref: ref, ...rest },
|
|
10
10
|
React.createElement(Header.Content, null,
|
|
11
11
|
isJsx(logo) ? logo : React.createElement(Header.Logo, { ...logo }),
|
|
12
|
-
React.createElement(
|
|
12
|
+
React.createElement(RenderOnScreen, { minWidth: "lg" }, children),
|
|
13
13
|
React.createElement(Box, { ml: "auto" }),
|
|
14
|
-
React.createElement(
|
|
14
|
+
React.createElement(RenderOnScreen, { minWidth: "lg" },
|
|
15
15
|
isJsx(mainLinks) ? mainLinks : React.createElement(Header.MainLinks, { links: mainLinks }),
|
|
16
16
|
mainLinks !== undefined && React.createElement(Header.Divider, { mx: 1 }),
|
|
17
17
|
isJsx(services) ? services : React.createElement(Header.Services, { ...services })),
|
|
18
18
|
isJsx(notifications) ? notifications : React.createElement(Header.Notifications, { ...notifications }),
|
|
19
19
|
isJsx(account) ? account : React.createElement(Header.Account, { ...account }),
|
|
20
|
-
React.createElement(
|
|
20
|
+
React.createElement(RenderOnScreen, { maxWidth: "lg" },
|
|
21
21
|
(account !== undefined || notifications !== undefined) && React.createElement(Header.Divider, { ml: 2 }),
|
|
22
22
|
React.createElement(Header.MobileToggle, null),
|
|
23
23
|
React.createElement(Header.MobileContent, null,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Box from '../box';
|
|
3
|
-
import {
|
|
3
|
+
import { RenderOnScreen, vui } from '../core';
|
|
4
4
|
import { cs, isJsx } from '../utils';
|
|
5
5
|
import Header from './header';
|
|
6
6
|
/** Displays Header content appropriate for logged out users, such as sign in button or create account prompt. */
|
|
@@ -9,14 +9,14 @@ export const LoggedOutHeader = vui((props, ref) => {
|
|
|
9
9
|
return (React.createElement(Header, { className: cs('vui-loggedOutHeader', className), ref: ref, ...rest },
|
|
10
10
|
React.createElement(Header.Content, null,
|
|
11
11
|
isJsx(logo) ? logo : React.createElement(Header.Logo, { ...logo }),
|
|
12
|
-
React.createElement(
|
|
12
|
+
React.createElement(RenderOnScreen, { minWidth: "lg" }, children),
|
|
13
13
|
React.createElement(Box, { ml: "auto" }),
|
|
14
|
-
React.createElement(
|
|
14
|
+
React.createElement(RenderOnScreen, { minWidth: "lg" },
|
|
15
15
|
isJsx(mainLinks) ? mainLinks : React.createElement(Header.MainLinks, { links: mainLinks }),
|
|
16
16
|
mainLinks !== undefined && React.createElement(Header.Divider, { ml: 1, mr: 3 }),
|
|
17
17
|
isJsx(signIn) ? signIn : React.createElement(Header.SignIn, { ...signIn }),
|
|
18
18
|
isJsx(createAccount) ? createAccount : React.createElement(Header.CreateAccount, { ...createAccount })),
|
|
19
|
-
React.createElement(
|
|
19
|
+
React.createElement(RenderOnScreen, { maxWidth: "lg" },
|
|
20
20
|
isJsx(signIn) ? signIn : React.createElement(Header.SignIn, { ...signIn }),
|
|
21
21
|
React.createElement(Header.Divider, { ml: 2 }),
|
|
22
22
|
React.createElement(Header.MobileToggle, null),
|
|
@@ -35,7 +35,7 @@ export function Select(props) {
|
|
|
35
35
|
React.createElement(React.Fragment, null,
|
|
36
36
|
selectButton ?? React.createElement(SelectButton, null),
|
|
37
37
|
React.createElement(SelectContent, null,
|
|
38
|
-
React.createElement(SelectGroup,
|
|
38
|
+
React.createElement(SelectGroup, { tabIndex: 1000 }, children ??
|
|
39
39
|
options?.map?.(option => React.createElement(SelectOption, { key: option.value, title: option.text, ...option }))))))));
|
|
40
40
|
}
|
|
41
41
|
Select.Button = SelectButton;
|
package/dist/esm/select/theme.js
CHANGED
|
@@ -19,16 +19,16 @@ const sizes = {
|
|
|
19
19
|
const variants = {
|
|
20
20
|
outlined: {
|
|
21
21
|
button: {
|
|
22
|
-
hoverBg: '
|
|
23
|
-
activeBg: '
|
|
22
|
+
hoverBg: 'white',
|
|
23
|
+
activeBg: 'white',
|
|
24
24
|
borderColor: 'grey.60',
|
|
25
25
|
hoverBorderColor: 'grey.60'
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
text: {
|
|
29
29
|
button: {
|
|
30
|
-
hoverBg: '
|
|
31
|
-
activeBg: '
|
|
30
|
+
hoverBg: 'white',
|
|
31
|
+
activeBg: 'white',
|
|
32
32
|
borderColor: 'transparent',
|
|
33
33
|
hoverBorderColor: 'transparent'
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGjB,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":";;;;;;;;AACA,wBAOC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "1.8.0
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useMemo } from 'react'
|
|
2
2
|
|
|
3
|
-
import { styled, useStyleConfig, vui } from '../core'
|
|
3
|
+
import { styled, useStyleConfig, vui, VuiComponent } from '../core'
|
|
4
4
|
import List from '../list'
|
|
5
5
|
import { cs, filterUndefined } from '../utils'
|
|
6
6
|
import { AccordionItemProps, AccordionProps } from './accordion.types'
|
|
@@ -44,6 +44,12 @@ export const Accordion = vui<'div', AccordionProps>((props, ref) => {
|
|
|
44
44
|
</AccordionBase>
|
|
45
45
|
</AccordionProvider>
|
|
46
46
|
)
|
|
47
|
-
})
|
|
47
|
+
}) as VuiComponent<'div', AccordionProps> & {
|
|
48
|
+
Item: typeof AccordionItem
|
|
49
|
+
ItemHorizontal: typeof AccordionItemHorizontal
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
Accordion.Item = AccordionItem
|
|
53
|
+
Accordion.ItemHorizontal = AccordionItemHorizontal
|
|
48
54
|
|
|
49
55
|
export default Accordion
|
package/src/core/media.tsx
CHANGED
|
@@ -10,10 +10,10 @@ import { ChildrenProp } from './types'
|
|
|
10
10
|
type ScreenWidth = Screen | AnyNumber | AnyString
|
|
11
11
|
|
|
12
12
|
export type RenderOnScreenProps = {
|
|
13
|
-
/** Changes direction to below the breakpoint. */
|
|
14
|
-
isDown?: boolean
|
|
15
13
|
/** Breakpoint to compare viewport width against. */
|
|
16
|
-
|
|
14
|
+
maxWidth?: Screen
|
|
15
|
+
/** Breakpoint to compare viewport width against. */
|
|
16
|
+
minWidth?: Screen
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/** Returns CSS media string with appropriate min-width and max-width values. */
|
|
@@ -29,38 +29,42 @@ export const mediaDown = (width: ScreenWidth) => (props: StyledProps<unknown>) =
|
|
|
29
29
|
export const mediaUp = (width: ScreenWidth) => (props: StyledProps<unknown>) =>
|
|
30
30
|
`@media (min-width: ${th.screen(width)(props)})`
|
|
31
31
|
|
|
32
|
-
/** Renders its content when viewport width is at or above 'md' breakpoint (default: 960px and more). */
|
|
33
|
-
export const RenderOnDesktop: FC<RenderOnScreenProps & ChildrenProp> = props => <RenderOnScreen {...props} />
|
|
34
|
-
|
|
35
|
-
/** Renders its content when viewport width is below 'md' breakpoint (default: below 960px). */
|
|
36
|
-
export const RenderOnMobile: FC<RenderOnScreenProps & ChildrenProp> = props => <RenderOnScreen isDown {...props} />
|
|
37
|
-
|
|
38
32
|
/**
|
|
39
33
|
* Renders its content when viewport width is at or above a provided breakpoint.
|
|
40
34
|
* Optionally, direction can be set to down, or below, the breakpoint.
|
|
41
35
|
*/
|
|
42
|
-
export const RenderOnScreen: FC<RenderOnScreenProps & ChildrenProp> = ({ children,
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
export const RenderOnScreen: FC<RenderOnScreenProps & ChildrenProp> = ({ children, maxWidth, minWidth }) => {
|
|
37
|
+
if (minWidth && maxWidth) {
|
|
38
|
+
return (
|
|
39
|
+
<RenderBetween maxWidth={maxWidth} minWidth={minWidth}>
|
|
40
|
+
{children}
|
|
41
|
+
</RenderBetween>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
if (minWidth) {
|
|
45
|
+
return <RenderOver width={minWidth}>{children}</RenderOver>
|
|
46
|
+
}
|
|
47
|
+
if (maxWidth) {
|
|
48
|
+
return <RenderUnder width={maxWidth}>{children}</RenderUnder>
|
|
49
|
+
}
|
|
50
|
+
return <>{children}</>
|
|
45
51
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const isDown = useDown(maxWidth)
|
|
50
|
-
const isUp = useUp(minWidth)
|
|
51
|
-
|
|
52
|
-
return isDown && isUp
|
|
52
|
+
const RenderBetween: FC<{ maxWidth: Screen; minWidth: Screen } & ChildrenProp> = ({ children, maxWidth, minWidth }) => {
|
|
53
|
+
const isBetween = useBetween(minWidth, maxWidth)
|
|
54
|
+
return isBetween ? <>{children}</> : null
|
|
53
55
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
const RenderOver: FC<{ width: Screen } & ChildrenProp> = ({ children, width }) => {
|
|
57
|
+
const isOver = useUp(width)
|
|
58
|
+
return isOver ? <>{children}</> : null
|
|
59
|
+
}
|
|
60
|
+
const RenderUnder: FC<{ width: Screen } & ChildrenProp> = ({ children, width }) => {
|
|
61
|
+
const isUnder = useDown(width)
|
|
62
|
+
return isUnder ? <>{children}</> : null
|
|
60
63
|
}
|
|
61
64
|
|
|
65
|
+
/** /!\ No need to export it, keep it internal */
|
|
62
66
|
/** Returns viewport width and provided screen width as a number. */
|
|
63
|
-
|
|
67
|
+
function useMedia(width: ScreenWidth) {
|
|
64
68
|
const theme = useTheme()
|
|
65
69
|
const viewportWidth = useViewportWidth()
|
|
66
70
|
const valueString = th.screen(width)({ theme }) as string
|
|
@@ -69,9 +73,27 @@ export function useMedia(width: ScreenWidth) {
|
|
|
69
73
|
return { value, viewportWidth }
|
|
70
74
|
}
|
|
71
75
|
|
|
76
|
+
/** Returns true if current viewport width is smaller than provided width. */
|
|
77
|
+
export function useDown(width: ScreenWidth) {
|
|
78
|
+
const { value, viewportWidth } = useMedia(width)
|
|
79
|
+
|
|
80
|
+
return viewportWidth !== null && value !== null && viewportWidth < value
|
|
81
|
+
}
|
|
82
|
+
|
|
72
83
|
/** Returns true if current viewport width is larger than or equal to provided width. */
|
|
73
84
|
export function useUp(width: ScreenWidth) {
|
|
74
85
|
const { value, viewportWidth } = useMedia(width)
|
|
75
86
|
|
|
76
87
|
return viewportWidth !== null && value !== null && viewportWidth >= value
|
|
77
88
|
}
|
|
89
|
+
|
|
90
|
+
/** Returns true if current viewport width is between provided min and max widths. */
|
|
91
|
+
export function useBetween(minWidth: ScreenWidth, maxWidth: ScreenWidth) {
|
|
92
|
+
const isDown = useDown(maxWidth)
|
|
93
|
+
const isUp = useUp(minWidth)
|
|
94
|
+
|
|
95
|
+
return isDown && isUp
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Return the width of the viewport. */
|
|
99
|
+
export { useViewportWidth }
|
package/src/header/header.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useRef, useState } from 'react'
|
|
2
2
|
|
|
3
|
-
import { styled,
|
|
3
|
+
import { styled, useLinks, useStyleConfig, useUp, vui, VuiComponent } from '../core'
|
|
4
4
|
import { cs, useClickOutside } from '../utils'
|
|
5
5
|
import { HeaderProvider } from './context'
|
|
6
6
|
import { HeaderProps } from './header.types'
|
|
@@ -41,8 +41,8 @@ export const Header = vui<'header', HeaderProps>((props, ref) => {
|
|
|
41
41
|
setIsMobileOpen(false)
|
|
42
42
|
})
|
|
43
43
|
|
|
44
|
-
const isDesktop = useUp('
|
|
45
|
-
const isMobile =
|
|
44
|
+
const isDesktop = useUp('lg')
|
|
45
|
+
const isMobile = !isDesktop
|
|
46
46
|
|
|
47
47
|
const context = {
|
|
48
48
|
headerHeight,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { RenderOnScreen, useStyleConfig } from '../core'
|
|
4
4
|
import List from '../list'
|
|
5
5
|
import Menu from '../menu'
|
|
6
6
|
import { useHeaderContext } from './context'
|
|
@@ -31,7 +31,7 @@ export function HeaderServices(props: HeaderServicesProps) {
|
|
|
31
31
|
|
|
32
32
|
return (
|
|
33
33
|
<>
|
|
34
|
-
<
|
|
34
|
+
<RenderOnScreen minWidth="lg">
|
|
35
35
|
<Menu isLazy={false} offset={[0, 8]} placement="bottom-end" size="lg" {...rest}>
|
|
36
36
|
<Menu.Button
|
|
37
37
|
colorScheme="prussian"
|
|
@@ -46,13 +46,13 @@ export function HeaderServices(props: HeaderServicesProps) {
|
|
|
46
46
|
<ListContent links={links} />
|
|
47
47
|
</Menu.List>
|
|
48
48
|
</Menu>
|
|
49
|
-
</
|
|
49
|
+
</RenderOnScreen>
|
|
50
50
|
|
|
51
|
-
<
|
|
51
|
+
<RenderOnScreen maxWidth="lg">
|
|
52
52
|
<List borderBottom="1px solid grey.40" heading="My Services" {...styles.list}>
|
|
53
53
|
<ListContent links={links} />
|
|
54
54
|
</List>
|
|
55
|
-
</
|
|
55
|
+
</RenderOnScreen>
|
|
56
56
|
</>
|
|
57
57
|
)
|
|
58
58
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
|
|
3
3
|
import Box from '../box'
|
|
4
|
-
import {
|
|
4
|
+
import { RenderOnScreen, vui } from '../core'
|
|
5
5
|
import { cs, isJsx } from '../utils'
|
|
6
6
|
import Header from './header'
|
|
7
7
|
import { LoggedInHeaderProps } from './header.types'
|
|
@@ -15,23 +15,23 @@ export const LoggedInHeader = vui<'div', LoggedInHeaderProps>((props, ref) => {
|
|
|
15
15
|
<Header.Content>
|
|
16
16
|
{isJsx(logo) ? logo : <Header.Logo {...logo} />}
|
|
17
17
|
|
|
18
|
-
<
|
|
18
|
+
<RenderOnScreen minWidth="lg">{children}</RenderOnScreen>
|
|
19
19
|
|
|
20
20
|
<Box ml="auto" />
|
|
21
21
|
|
|
22
|
-
<
|
|
22
|
+
<RenderOnScreen minWidth="lg">
|
|
23
23
|
{isJsx(mainLinks) ? mainLinks : <Header.MainLinks links={mainLinks} />}
|
|
24
24
|
|
|
25
25
|
{mainLinks !== undefined && <Header.Divider mx={1} />}
|
|
26
26
|
|
|
27
27
|
{isJsx(services) ? services : <Header.Services {...services} />}
|
|
28
|
-
</
|
|
28
|
+
</RenderOnScreen>
|
|
29
29
|
|
|
30
30
|
{isJsx(notifications) ? notifications : <Header.Notifications {...notifications} />}
|
|
31
31
|
|
|
32
32
|
{isJsx(account) ? account : <Header.Account {...account} />}
|
|
33
33
|
|
|
34
|
-
<
|
|
34
|
+
<RenderOnScreen maxWidth="lg">
|
|
35
35
|
{(account !== undefined || notifications !== undefined) && <Header.Divider ml={2} />}
|
|
36
36
|
|
|
37
37
|
<Header.MobileToggle />
|
|
@@ -43,7 +43,7 @@ export const LoggedInHeader = vui<'div', LoggedInHeaderProps>((props, ref) => {
|
|
|
43
43
|
|
|
44
44
|
{isJsx(services) ? services : <Header.Services {...services} />}
|
|
45
45
|
</Header.MobileContent>
|
|
46
|
-
</
|
|
46
|
+
</RenderOnScreen>
|
|
47
47
|
</Header.Content>
|
|
48
48
|
</Header>
|
|
49
49
|
)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
|
|
3
3
|
import Box from '../box'
|
|
4
|
-
import {
|
|
4
|
+
import { RenderOnScreen, vui } from '../core'
|
|
5
5
|
import { cs, isJsx } from '../utils'
|
|
6
6
|
import Header from './header'
|
|
7
7
|
import { LoggedOutHeaderProps } from './header.types'
|
|
@@ -15,11 +15,11 @@ export const LoggedOutHeader = vui<'div', LoggedOutHeaderProps>((props, ref) =>
|
|
|
15
15
|
<Header.Content>
|
|
16
16
|
{isJsx(logo) ? logo : <Header.Logo {...logo} />}
|
|
17
17
|
|
|
18
|
-
<
|
|
18
|
+
<RenderOnScreen minWidth="lg">{children}</RenderOnScreen>
|
|
19
19
|
|
|
20
20
|
<Box ml="auto" />
|
|
21
21
|
|
|
22
|
-
<
|
|
22
|
+
<RenderOnScreen minWidth="lg">
|
|
23
23
|
{isJsx(mainLinks) ? mainLinks : <Header.MainLinks links={mainLinks} />}
|
|
24
24
|
|
|
25
25
|
{mainLinks !== undefined && <Header.Divider ml={1} mr={3} />}
|
|
@@ -27,9 +27,9 @@ export const LoggedOutHeader = vui<'div', LoggedOutHeaderProps>((props, ref) =>
|
|
|
27
27
|
{isJsx(signIn) ? signIn : <Header.SignIn {...signIn} />}
|
|
28
28
|
|
|
29
29
|
{isJsx(createAccount) ? createAccount : <Header.CreateAccount {...createAccount} />}
|
|
30
|
-
</
|
|
30
|
+
</RenderOnScreen>
|
|
31
31
|
|
|
32
|
-
<
|
|
32
|
+
<RenderOnScreen maxWidth="lg">
|
|
33
33
|
{isJsx(signIn) ? signIn : <Header.SignIn {...signIn} />}
|
|
34
34
|
|
|
35
35
|
<Header.Divider ml={2} />
|
|
@@ -43,7 +43,7 @@ export const LoggedOutHeader = vui<'div', LoggedOutHeaderProps>((props, ref) =>
|
|
|
43
43
|
|
|
44
44
|
{isJsx(mainLinks) ? mainLinks : <Header.MainLinks links={mainLinks} />}
|
|
45
45
|
</Header.MobileContent>
|
|
46
|
-
</
|
|
46
|
+
</RenderOnScreen>
|
|
47
47
|
</Header.Content>
|
|
48
48
|
</Header>
|
|
49
49
|
)
|
package/src/select/select.tsx
CHANGED
|
@@ -59,7 +59,7 @@ export function Select(props: SelectProps) {
|
|
|
59
59
|
<>
|
|
60
60
|
{selectButton ?? <SelectButton />}
|
|
61
61
|
<SelectContent>
|
|
62
|
-
<SelectGroup>
|
|
62
|
+
<SelectGroup tabIndex={1000}>
|
|
63
63
|
{children ??
|
|
64
64
|
options?.map?.(option => <SelectOption key={option.value} title={option.text} {...option} />)}
|
|
65
65
|
</SelectGroup>
|
package/src/select/theme.ts
CHANGED
|
@@ -23,16 +23,16 @@ const sizes = {
|
|
|
23
23
|
const variants = {
|
|
24
24
|
outlined: {
|
|
25
25
|
button: {
|
|
26
|
-
hoverBg: '
|
|
27
|
-
activeBg: '
|
|
26
|
+
hoverBg: 'white',
|
|
27
|
+
activeBg: 'white',
|
|
28
28
|
borderColor: 'grey.60',
|
|
29
29
|
hoverBorderColor: 'grey.60'
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
text: {
|
|
33
33
|
button: {
|
|
34
|
-
hoverBg: '
|
|
35
|
-
activeBg: '
|
|
34
|
+
hoverBg: 'white',
|
|
35
|
+
activeBg: 'white',
|
|
36
36
|
borderColor: 'transparent',
|
|
37
37
|
hoverBorderColor: 'transparent'
|
|
38
38
|
}
|