@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.
Files changed (50) hide show
  1. package/dist/cjs/accordion/accordion.d.ts +7 -1
  2. package/dist/cjs/accordion/accordion.d.ts.map +1 -1
  3. package/dist/cjs/accordion/accordion.js +2 -0
  4. package/dist/cjs/core/media.d.ts +8 -15
  5. package/dist/cjs/core/media.d.ts.map +1 -1
  6. package/dist/cjs/core/media.js +39 -24
  7. package/dist/cjs/header/header.d.ts.map +1 -1
  8. package/dist/cjs/header/header.js +2 -2
  9. package/dist/cjs/header/headerServices.js +2 -2
  10. package/dist/cjs/header/loggedInHeader.js +3 -3
  11. package/dist/cjs/header/loggedOutHeader.js +3 -3
  12. package/dist/cjs/select/select.js +1 -1
  13. package/dist/cjs/select/theme.js +4 -4
  14. package/dist/cjs/theme/defaultTheme.d.ts +1 -0
  15. package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
  16. package/dist/cjs/theme/foundations/index.d.ts +1 -0
  17. package/dist/cjs/theme/foundations/index.d.ts.map +1 -1
  18. package/dist/cjs/theme/foundations/screens.d.ts +1 -0
  19. package/dist/cjs/theme/foundations/screens.d.ts.map +1 -1
  20. package/dist/cjs/theme/foundations/screens.js +6 -4
  21. package/dist/esm/accordion/accordion.d.ts +7 -1
  22. package/dist/esm/accordion/accordion.d.ts.map +1 -1
  23. package/dist/esm/accordion/accordion.js +2 -0
  24. package/dist/esm/core/media.d.ts +8 -15
  25. package/dist/esm/core/media.d.ts.map +1 -1
  26. package/dist/esm/core/media.js +38 -19
  27. package/dist/esm/header/header.d.ts.map +1 -1
  28. package/dist/esm/header/header.js +3 -3
  29. package/dist/esm/header/headerServices.js +3 -3
  30. package/dist/esm/header/loggedInHeader.js +4 -4
  31. package/dist/esm/header/loggedOutHeader.js +4 -4
  32. package/dist/esm/select/select.js +1 -1
  33. package/dist/esm/select/theme.js +4 -4
  34. package/dist/esm/theme/defaultTheme.d.ts +1 -0
  35. package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
  36. package/dist/esm/theme/foundations/index.d.ts +1 -0
  37. package/dist/esm/theme/foundations/index.d.ts.map +1 -1
  38. package/dist/esm/theme/foundations/screens.d.ts +1 -0
  39. package/dist/esm/theme/foundations/screens.d.ts.map +1 -1
  40. package/dist/esm/theme/foundations/screens.js +6 -4
  41. package/package.json +1 -1
  42. package/src/accordion/accordion.tsx +8 -2
  43. package/src/core/media.tsx +48 -26
  44. package/src/header/header.tsx +3 -3
  45. package/src/header/headerServices.tsx +5 -5
  46. package/src/header/loggedInHeader.tsx +6 -6
  47. package/src/header/loggedOutHeader.tsx +6 -6
  48. package/src/select/select.tsx +1 -1
  49. package/src/select/theme.ts +4 -4
  50. 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: import("../core").VuiComponent<"div", AccordionProps>;
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":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKtE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS,uDA6BpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
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;
@@ -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
- screen?: Screen;
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
- export {};
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":"AACA,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,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,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,wGAAwG;AACxG,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAA0C,CAAA;AAE7G,+FAA+F;AAC/F,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAAiD,CAAA;AAEnH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAGjE,CAAA;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,WAKtE;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,WAIzC;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW;;;EAO1C;AAED,wFAAwF;AACxF,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,WAIvC"}
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"}
@@ -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.useUp = exports.useMedia = exports.useDown = exports.useBetween = exports.RenderOnScreen = exports.RenderOnMobile = exports.RenderOnDesktop = exports.mediaUp = exports.mediaDown = exports.mediaBetween = void 0;
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, isDown, screen = 'md' }) => {
32
- const mediaFn = isDown ? useDown : useUp;
33
- return mediaFn(screen) ? react_1.default.createElement(react_1.default.Fragment, null, children) : null;
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
- /** Returns true if current viewport width is between provided min and max widths. */
37
- function useBetween(minWidth, maxWidth) {
38
- const isDown = useDown(maxWidth);
39
- const isUp = useUp(minWidth);
40
- return isDown && isUp;
41
- }
42
- exports.useBetween = useBetween;
43
- /** Returns true if current viewport width is smaller than provided width. */
44
- function useDown(width) {
45
- const { value, viewportWidth } = useMedia(width);
46
- return viewportWidth !== null && value !== null && viewportWidth < value;
47
- }
48
- exports.useDown = useDown;
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
- exports.useMedia = useMedia;
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,EAAyD,YAAY,EAAE,MAAM,SAAS,CAAA;AAG7F,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
+ {"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)('md');
78
- const isMobile = (0, core_1.useDown)('md');
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.RenderOnDesktop, null,
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.RenderOnMobile, null,
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.RenderOnDesktop, null, children),
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.RenderOnDesktop, null,
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.RenderOnMobile, null,
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.RenderOnDesktop, null, children),
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.RenderOnDesktop, null,
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.RenderOnMobile, null,
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, null, 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)))))))));
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;
@@ -21,16 +21,16 @@ const sizes = {
21
21
  const variants = {
22
22
  outlined: {
23
23
  button: {
24
- hoverBg: 'transparent',
25
- activeBg: 'transparent',
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: 'transparent',
33
- activeBg: 'transparent',
32
+ hoverBg: 'white',
33
+ activeBg: 'white',
34
34
  borderColor: 'transparent',
35
35
  hoverBorderColor: 'transparent'
36
36
  }
@@ -159,6 +159,7 @@ declare const defaultTheme: {
159
159
  md: number;
160
160
  lg: number;
161
161
  xl: number;
162
+ '2xl': number;
162
163
  };
163
164
  shadows: {
164
165
  '0': string;
@@ -1 +1 @@
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
+ {"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGjB,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -159,6 +159,7 @@ declare const _default: {
159
159
  md: number;
160
160
  lg: number;
161
161
  xl: number;
162
+ '2xl': number;
162
163
  };
163
164
  shadows: {
164
165
  '0': string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBC"}
@@ -4,6 +4,7 @@ declare const _default: {
4
4
  md: number;
5
5
  lg: number;
6
6
  xl: number;
7
+ '2xl': number;
7
8
  };
8
9
  export default _default;
9
10
  //# sourceMappingURL=screens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":";;;;;;;AAAA,wBAMC"}
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: 600,
6
- md: 960,
7
- lg: 1280,
8
- xl: 1920
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: import("../core").VuiComponent<"div", AccordionProps>;
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":"AAKA,OAAO,EAAsB,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKtE,eAAO,MAAM,aAAa,+HAIzB,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,SAAS,uDA6BpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
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;
@@ -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
- screen?: Screen;
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
- export {};
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":"AACA,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,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,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,wGAAwG;AACxG,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAA0C,CAAA;AAE7G,+FAA+F;AAC/F,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAAiD,CAAA;AAEnH;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,GAAG,YAAY,CAGjE,CAAA;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,WAKtE;AAED,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,WAIzC;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW;;;EAO1C;AAED,wFAAwF;AACxF,wBAAgB,KAAK,CAAC,KAAK,EAAE,WAAW,WAIvC"}
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"}
@@ -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, isDown, screen = 'md' }) => {
21
- const mediaFn = isDown ? useDown : useUp;
22
- return mediaFn(screen) ? React.createElement(React.Fragment, null, children) : null;
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
- /** Returns true if current viewport width is between provided min and max widths. */
25
- export function useBetween(minWidth, maxWidth) {
26
- const isDown = useDown(maxWidth);
27
- const isUp = useUp(minWidth);
28
- return isDown && isUp;
29
- }
30
- /** Returns true if current viewport width is smaller than provided width. */
31
- export function useDown(width) {
32
- const { value, viewportWidth } = useMedia(width);
33
- return viewportWidth !== null && value !== null && viewportWidth < value;
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
- export function useMedia(width) {
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,EAAyD,YAAY,EAAE,MAAM,SAAS,CAAA;AAG7F,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
+ {"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, useDown, useLinks, useStyleConfig, useUp, vui } from '../core';
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('md');
38
- const isMobile = useDown('md');
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 { RenderOnDesktop, RenderOnMobile, useStyleConfig } from '../core';
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(RenderOnDesktop, null,
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(RenderOnMobile, null,
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 { RenderOnDesktop, RenderOnMobile, vui } from '../core';
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(RenderOnDesktop, null, children),
12
+ React.createElement(RenderOnScreen, { minWidth: "lg" }, children),
13
13
  React.createElement(Box, { ml: "auto" }),
14
- React.createElement(RenderOnDesktop, null,
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(RenderOnMobile, null,
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 { RenderOnDesktop, RenderOnMobile, vui } from '../core';
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(RenderOnDesktop, null, children),
12
+ React.createElement(RenderOnScreen, { minWidth: "lg" }, children),
13
13
  React.createElement(Box, { ml: "auto" }),
14
- React.createElement(RenderOnDesktop, null,
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(RenderOnMobile, null,
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, null, children ??
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;
@@ -19,16 +19,16 @@ const sizes = {
19
19
  const variants = {
20
20
  outlined: {
21
21
  button: {
22
- hoverBg: 'transparent',
23
- activeBg: 'transparent',
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: 'transparent',
31
- activeBg: 'transparent',
30
+ hoverBg: 'white',
31
+ activeBg: 'white',
32
32
  borderColor: 'transparent',
33
33
  hoverBorderColor: 'transparent'
34
34
  }
@@ -159,6 +159,7 @@ declare const defaultTheme: {
159
159
  md: number;
160
160
  lg: number;
161
161
  xl: number;
162
+ '2xl': number;
162
163
  };
163
164
  shadows: {
164
165
  '0': string;
@@ -1 +1 @@
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
+ {"version":3,"file":"defaultTheme.d.ts","sourceRoot":"","sources":["../../../src/theme/defaultTheme.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGjB,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -159,6 +159,7 @@ declare const _default: {
159
159
  md: number;
160
160
  lg: number;
161
161
  xl: number;
162
+ '2xl': number;
162
163
  };
163
164
  shadows: {
164
165
  '0': string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,wBAqBC"}
@@ -4,6 +4,7 @@ declare const _default: {
4
4
  md: number;
5
5
  lg: number;
6
6
  xl: number;
7
+ '2xl': number;
7
8
  };
8
9
  export default _default;
9
10
  //# sourceMappingURL=screens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":";;;;;;;AAAA,wBAMC"}
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../../src/theme/foundations/screens.ts"],"names":[],"mappings":";;;;;;;;AACA,wBAOC"}
@@ -1,7 +1,9 @@
1
+ // Pixel values inspired by https://tailwindcss.com/docs/screens
1
2
  export default {
2
3
  xs: 0,
3
- sm: 600,
4
- md: 960,
5
- lg: 1280,
6
- xl: 1920
4
+ sm: 640,
5
+ md: 768,
6
+ lg: 1024,
7
+ xl: 1280,
8
+ '2xl': 1536
7
9
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veracity/vui",
3
- "version": "1.8.0-beta.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
@@ -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
- screen?: Screen
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, isDown, screen = 'md' }) => {
43
- const mediaFn = isDown ? useDown : useUp
44
- return mediaFn(screen) ? <>{children}</> : null
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
- /** Returns true if current viewport width is between provided min and max widths. */
48
- export function useBetween(minWidth: ScreenWidth, maxWidth: ScreenWidth) {
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
- /** Returns true if current viewport width is smaller than provided width. */
56
- export function useDown(width: ScreenWidth) {
57
- const { value, viewportWidth } = useMedia(width)
58
-
59
- return viewportWidth !== null && value !== null && viewportWidth < value
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
- export function useMedia(width: ScreenWidth) {
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 }
@@ -1,6 +1,6 @@
1
1
  import React, { useRef, useState } from 'react'
2
2
 
3
- import { styled, useDown, useLinks, useStyleConfig, useUp, vui, VuiComponent } from '../core'
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('md')
45
- const isMobile = useDown('md')
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 { RenderOnDesktop, RenderOnMobile, useStyleConfig } from '../core'
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
- <RenderOnDesktop>
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
- </RenderOnDesktop>
49
+ </RenderOnScreen>
50
50
 
51
- <RenderOnMobile>
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
- </RenderOnMobile>
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 { RenderOnDesktop, RenderOnMobile, vui } from '../core'
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
- <RenderOnDesktop>{children}</RenderOnDesktop>
18
+ <RenderOnScreen minWidth="lg">{children}</RenderOnScreen>
19
19
 
20
20
  <Box ml="auto" />
21
21
 
22
- <RenderOnDesktop>
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
- </RenderOnDesktop>
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
- <RenderOnMobile>
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
- </RenderOnMobile>
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 { RenderOnDesktop, RenderOnMobile, vui } from '../core'
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
- <RenderOnDesktop>{children}</RenderOnDesktop>
18
+ <RenderOnScreen minWidth="lg">{children}</RenderOnScreen>
19
19
 
20
20
  <Box ml="auto" />
21
21
 
22
- <RenderOnDesktop>
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
- </RenderOnDesktop>
30
+ </RenderOnScreen>
31
31
 
32
- <RenderOnMobile>
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
- </RenderOnMobile>
46
+ </RenderOnScreen>
47
47
  </Header.Content>
48
48
  </Header>
49
49
  )
@@ -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>
@@ -23,16 +23,16 @@ const sizes = {
23
23
  const variants = {
24
24
  outlined: {
25
25
  button: {
26
- hoverBg: 'transparent',
27
- activeBg: 'transparent',
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: 'transparent',
35
- activeBg: 'transparent',
34
+ hoverBg: 'white',
35
+ activeBg: 'white',
36
36
  borderColor: 'transparent',
37
37
  hoverBorderColor: 'transparent'
38
38
  }
@@ -1,7 +1,9 @@
1
+ // Pixel values inspired by https://tailwindcss.com/docs/screens
1
2
  export default {
2
3
  xs: 0,
3
- sm: 600,
4
- md: 960,
5
- lg: 1280,
6
- xl: 1920
4
+ sm: 640,
5
+ md: 768,
6
+ lg: 1024,
7
+ xl: 1280,
8
+ '2xl': 1536
7
9
  }