@veracity/vui 0.3.2 → 0.4.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 (100) hide show
  1. package/avatar/avatar.js +1 -1
  2. package/button/button.types.d.ts +4 -4
  3. package/button/consts.js +2 -2
  4. package/footer/consts.d.ts +105 -8
  5. package/footer/consts.js +18 -9
  6. package/footer/footerColumn.d.ts +1 -1
  7. package/footer/helpers.d.ts +2 -3
  8. package/footer/helpers.js +16 -16
  9. package/header/consts.d.ts +58 -0
  10. package/header/consts.js +76 -0
  11. package/header/context.d.ts +2 -2
  12. package/header/context.js +3 -3
  13. package/header/header.d.ts +7 -7
  14. package/header/header.js +30 -15
  15. package/header/header.types.d.ts +41 -22
  16. package/header/headerAccount.d.ts +4 -0
  17. package/header/{headerProfile.js → headerAccount.js} +17 -9
  18. package/header/headerAccount.types.d.ts +35 -0
  19. package/header/headerContent.js +1 -1
  20. package/header/headerCreateAccount.js +7 -4
  21. package/header/headerDivider.js +2 -2
  22. package/header/headerLinkItem.d.ts +4 -0
  23. package/header/headerLinkItem.js +53 -0
  24. package/header/headerLinksList.d.ts +4 -0
  25. package/header/{headerLinks.js → headerLinksList.js} +10 -7
  26. package/header/headerLogo.js +5 -9
  27. package/header/headerMobileContent.js +4 -3
  28. package/header/headerMobileToggle.d.ts +2 -2
  29. package/header/headerMobileToggle.js +6 -7
  30. package/header/headerNotifications.js +5 -6
  31. package/header/headerServices.js +15 -11
  32. package/header/headerSignIn.js +1 -1
  33. package/header/helpers.d.ts +17 -0
  34. package/header/helpers.js +66 -0
  35. package/header/index.d.ts +7 -3
  36. package/header/index.js +7 -3
  37. package/header/loggedInHeader.d.ts +1 -1
  38. package/header/loggedInHeader.js +12 -8
  39. package/header/loggedOutHeader.js +13 -10
  40. package/header/theme.d.ts +60 -7
  41. package/header/theme.js +49 -12
  42. package/icons/baseIcons/fas/fasCalendarAlt.js +1 -1
  43. package/index.d.ts +2 -0
  44. package/index.js +2 -0
  45. package/input/consts.js +2 -2
  46. package/input/input.types.d.ts +3 -3
  47. package/link/link.types.d.ts +4 -4
  48. package/list/listItem.js +1 -1
  49. package/menu/menuItem.js +7 -22
  50. package/menu/menuList.js +1 -1
  51. package/modal/context.d.ts +4 -0
  52. package/modal/context.js +23 -0
  53. package/modal/focusLock.d.ts +9 -0
  54. package/modal/focusLock.js +47 -0
  55. package/modal/focusLock.types.d.ts +28 -0
  56. package/modal/focusLock.types.js +2 -0
  57. package/modal/index.d.ts +7 -0
  58. package/modal/index.js +24 -0
  59. package/modal/modal.d.ts +10 -0
  60. package/modal/modal.js +109 -0
  61. package/modal/modal.types.d.ts +40 -0
  62. package/modal/modal.types.js +2 -0
  63. package/modal/modalBackdrop.d.ts +4 -0
  64. package/modal/modalBackdrop.js +38 -0
  65. package/modal/modalManager.d.ts +12 -0
  66. package/modal/modalManager.js +33 -0
  67. package/modal/theme.d.ts +7 -0
  68. package/modal/theme.js +12 -0
  69. package/notification/consts.js +2 -2
  70. package/notification/notification.types.d.ts +1 -2
  71. package/package.json +3 -1
  72. package/popover/popover.d.ts +1 -1
  73. package/popover/popover.js +5 -4
  74. package/popover/popoverContent.js +1 -1
  75. package/popover/usePopover.js +7 -9
  76. package/popover/usePopover.types.d.ts +1 -1
  77. package/portal/index.d.ts +3 -0
  78. package/portal/index.js +20 -0
  79. package/portal/portal.d.ts +5 -0
  80. package/portal/portal.js +56 -0
  81. package/portal/portal.types.d.ts +7 -0
  82. package/portal/portal.types.js +2 -0
  83. package/svg/svg.js +9 -7
  84. package/svg/svg.types.d.ts +2 -2
  85. package/tag/tag.types.d.ts +3 -4
  86. package/theme/components.d.ts +60 -7
  87. package/theme/defaultTheme.d.ts +60 -7
  88. package/utils/index.d.ts +1 -0
  89. package/utils/index.js +1 -0
  90. package/utils/react.d.ts +10 -5
  91. package/utils/react.js +64 -9
  92. package/utils/string.d.ts +5 -0
  93. package/utils/string.js +19 -0
  94. package/utils/types.d.ts +4 -2
  95. package/header/headerLink.d.ts +0 -4
  96. package/header/headerLink.js +0 -43
  97. package/header/headerLinks.d.ts +0 -4
  98. package/header/headerProfile.d.ts +0 -4
  99. package/header/headerProfile.types.d.ts +0 -35
  100. /package/header/{headerProfile.types.js → headerAccount.types.js} +0 -0
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.getHeaderMainLinks = exports.getHeaderAccountSections = void 0;
31
+ var utils_1 = require("../utils");
32
+ var consts_1 = require("./consts");
33
+ /**
34
+ * Computes Header links for the Account's sections.
35
+ * Links are selected per environment and modified based on log in state.
36
+ * @param environment current application environment
37
+ * @param isLoggedIn is current user logged in
38
+ */
39
+ function getHeaderAccountSections(environment, isLoggedIn) {
40
+ if (isLoggedIn === void 0) { isLoggedIn = false; }
41
+ // Ok to clone object with JSON here
42
+ var sections = JSON.parse(JSON.stringify(consts_1.headerAccountSectionsTemplate));
43
+ Object.entries(consts_1.headerAccountSectionsTemplate).forEach(function (_a) {
44
+ var _b = __read(_a, 2), sectionName = _b[0], section = _b[1];
45
+ sections[sectionName].links = section.links.map(function (link) {
46
+ var url = consts_1.headerLinks[environment][link.url];
47
+ return __assign(__assign({}, link), { url: (0, utils_1.getLoggedInLink)(url, isLoggedIn) });
48
+ });
49
+ });
50
+ return sections;
51
+ }
52
+ exports.getHeaderAccountSections = getHeaderAccountSections;
53
+ /**
54
+ * Computes Header main links.
55
+ * Links are selected per environment and modified based on log in state.
56
+ * @param environment current application environment
57
+ * @param isLoggedIn is current user logged in
58
+ */
59
+ function getHeaderMainLinks(environment, isLoggedIn) {
60
+ if (isLoggedIn === void 0) { isLoggedIn = false; }
61
+ return consts_1.headerMainLinksTemplate.map(function (link) {
62
+ var url = consts_1.headerLinks[environment][link.url];
63
+ return __assign(__assign({}, link), { url: (0, utils_1.getLoggedInLink)(url, isLoggedIn) });
64
+ });
65
+ }
66
+ exports.getHeaderMainLinks = getHeaderMainLinks;
package/header/index.d.ts CHANGED
@@ -1,17 +1,21 @@
1
+ export * from './consts';
2
+ export * from './context';
1
3
  export * from './header';
2
4
  export { default } from './header';
3
5
  export * from './header.types';
6
+ export * from './headerAccount';
7
+ export * from './headerAccount.types';
4
8
  export * from './headerContent';
5
9
  export * from './headerCreateAccount';
6
10
  export * from './headerDivider';
7
- export * from './headerLink';
8
- export * from './headerLinks';
11
+ export * from './headerLinkItem';
12
+ export * from './headerLinksList';
9
13
  export * from './headerLogo';
10
14
  export * from './headerMobileContent';
11
15
  export * from './headerMobileToggle';
12
16
  export * from './headerNotifications';
13
- export * from './headerProfile';
14
17
  export * from './headerServices';
15
18
  export * from './headerSignIn';
19
+ export * from './helpers';
16
20
  export * from './loggedInHeader';
17
21
  export * from './loggedOutHeader';
package/header/index.js CHANGED
@@ -14,21 +14,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.default = void 0;
17
+ __exportStar(require("./consts"), exports);
18
+ __exportStar(require("./context"), exports);
17
19
  __exportStar(require("./header"), exports);
18
20
  var header_1 = require("./header");
19
21
  Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(header_1).default; } });
20
22
  __exportStar(require("./header.types"), exports);
23
+ __exportStar(require("./headerAccount"), exports);
24
+ __exportStar(require("./headerAccount.types"), exports);
21
25
  __exportStar(require("./headerContent"), exports);
22
26
  __exportStar(require("./headerCreateAccount"), exports);
23
27
  __exportStar(require("./headerDivider"), exports);
24
- __exportStar(require("./headerLink"), exports);
25
- __exportStar(require("./headerLinks"), exports);
28
+ __exportStar(require("./headerLinkItem"), exports);
29
+ __exportStar(require("./headerLinksList"), exports);
26
30
  __exportStar(require("./headerLogo"), exports);
27
31
  __exportStar(require("./headerMobileContent"), exports);
28
32
  __exportStar(require("./headerMobileToggle"), exports);
29
33
  __exportStar(require("./headerNotifications"), exports);
30
- __exportStar(require("./headerProfile"), exports);
31
34
  __exportStar(require("./headerServices"), exports);
32
35
  __exportStar(require("./headerSignIn"), exports);
36
+ __exportStar(require("./helpers"), exports);
33
37
  __exportStar(require("./loggedInHeader"), exports);
34
38
  __exportStar(require("./loggedOutHeader"), exports);
@@ -1,4 +1,4 @@
1
1
  import { LoggedInHeaderProps } from './header.types';
2
- /** Displays Header content appropriate for logged in users, such as services, notifications or profile information. */
2
+ /** Displays Header content appropriate for logged in users, such as services, notifications or account information. */
3
3
  export declare const LoggedInHeader: import("../core").VuiComponent<"div", LoggedInHeaderProps>;
4
4
  export default LoggedInHeader;
@@ -27,26 +27,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  exports.LoggedInHeader = void 0;
29
29
  var react_1 = __importDefault(require("react"));
30
+ var box_1 = __importDefault(require("../box"));
30
31
  var core_1 = require("../core");
31
32
  var utils_1 = require("../utils");
32
33
  var header_1 = __importDefault(require("./header"));
33
- /** Displays Header content appropriate for logged in users, such as services, notifications or profile information. */
34
+ /** Displays Header content appropriate for logged in users, such as services, notifications or account information. */
34
35
  exports.LoggedInHeader = (0, core_1.vui)(function (props, ref) {
35
- var className = props.className, children = props.children, links = props.links, logo = props.logo, profile = props.profile, services = props.services, notifications = props.notifications, rest = __rest(props, ["className", "children", "links", "logo", "profile", "services", "notifications"]);
36
+ var account = props.account, className = props.className, children = props.children, links = props.links, logo = props.logo, services = props.services, notifications = props.notifications, rest = __rest(props, ["account", "className", "children", "links", "logo", "services", "notifications"]);
36
37
  return (react_1.default.createElement(header_1.default, __assign({ className: (0, utils_1.cs)('vui-loggedInHeader', className), ref: ref }, rest),
37
38
  react_1.default.createElement(header_1.default.Content, null,
38
39
  (0, utils_1.isObject)(logo) ? react_1.default.createElement(header_1.default.Logo, __assign({}, logo)) : logo,
39
- react_1.default.createElement(core_1.RenderOnDesktop, { screen: "lg" },
40
- children,
41
- (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.Links, { links: links }) : links,
40
+ react_1.default.createElement(core_1.RenderOnDesktop, null, children),
41
+ react_1.default.createElement(box_1.default, { ml: "auto" }),
42
+ react_1.default.createElement(core_1.RenderOnDesktop, null,
43
+ (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.LinksList, { links: links }) : links,
44
+ links !== undefined && react_1.default.createElement(header_1.default.Divider, { mr: 1 }),
42
45
  (0, utils_1.isArray)(services) ? react_1.default.createElement(header_1.default.Services, { services: services }) : services),
43
46
  (0, utils_1.isObject)(notifications) ? react_1.default.createElement(header_1.default.Notifications, __assign({}, notifications)) : notifications,
44
- (0, utils_1.isObject)(profile) ? react_1.default.createElement(header_1.default.Profile, __assign({}, profile)) : profile,
45
- react_1.default.createElement(core_1.RenderOnMobile, { screen: "lg" },
47
+ (0, utils_1.isObject)(account) ? react_1.default.createElement(header_1.default.Account, __assign({}, account)) : account,
48
+ react_1.default.createElement(core_1.RenderOnMobile, null,
49
+ (account !== undefined || notifications !== undefined) && react_1.default.createElement(header_1.default.Divider, { ml: 2 }),
46
50
  react_1.default.createElement(header_1.default.MobileToggle, null),
47
51
  react_1.default.createElement(header_1.default.MobileContent, null,
48
52
  children,
49
- (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.Links, { links: links }) : links,
53
+ (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.LinksList, { links: links }) : links,
50
54
  (0, utils_1.isArray)(services) ? react_1.default.createElement(header_1.default.Services, { services: services }) : services)))));
51
55
  });
52
56
  exports.LoggedInHeader.displayName = 'LoggedInHeader';
@@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  exports.LoggedOutHeader = void 0;
29
29
  var react_1 = __importDefault(require("react"));
30
+ var box_1 = __importDefault(require("../box"));
30
31
  var core_1 = require("../core");
31
32
  var utils_1 = require("../utils");
32
33
  var header_1 = __importDefault(require("./header"));
@@ -36,19 +37,21 @@ exports.LoggedOutHeader = (0, core_1.vui)(function (props, ref) {
36
37
  return (react_1.default.createElement(header_1.default, __assign({ className: (0, utils_1.cs)('vui-loggedOutHeader', className), ref: ref }, rest),
37
38
  react_1.default.createElement(header_1.default.Content, null,
38
39
  (0, utils_1.isObject)(logo) ? react_1.default.createElement(header_1.default.Logo, __assign({}, logo)) : logo,
39
- react_1.default.createElement(core_1.RenderOnDesktop, { screen: "lg" },
40
- children,
41
- (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.Links, { links: links }) : links,
42
- react_1.default.createElement(header_1.default.Divider, null),
43
- (0, utils_1.isString)(signIn) ? react_1.default.createElement(header_1.default.SignIn, { url: signIn }) : signIn,
44
- (0, utils_1.isString)(createAccount) ? react_1.default.createElement(header_1.default.CreateAccount, { url: createAccount }) : createAccount),
45
- react_1.default.createElement(core_1.RenderOnMobile, { screen: "lg" },
46
- (0, utils_1.isString)(signIn) ? react_1.default.createElement(header_1.default.SignIn, { url: signIn }) : signIn,
40
+ react_1.default.createElement(core_1.RenderOnDesktop, null, children),
41
+ react_1.default.createElement(box_1.default, { ml: "auto" }),
42
+ react_1.default.createElement(core_1.RenderOnDesktop, null,
43
+ (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.LinksList, { links: links }) : links,
44
+ links !== undefined && react_1.default.createElement(header_1.default.Divider, { mr: 3 }),
45
+ (0, utils_1.isObject)(signIn) ? react_1.default.createElement(header_1.default.SignIn, __assign({}, signIn)) : signIn,
46
+ (0, utils_1.isObject)(createAccount) ? (react_1.default.createElement(header_1.default.CreateAccount, __assign({}, createAccount))) : (createAccount)),
47
+ react_1.default.createElement(core_1.RenderOnMobile, null,
48
+ (0, utils_1.isObject)(signIn) ? react_1.default.createElement(header_1.default.SignIn, __assign({}, signIn)) : signIn,
49
+ signIn !== undefined && react_1.default.createElement(header_1.default.Divider, { ml: 2 }),
47
50
  react_1.default.createElement(header_1.default.MobileToggle, null),
48
51
  react_1.default.createElement(header_1.default.MobileContent, null,
49
52
  children,
50
- (0, utils_1.isString)(createAccount) ? react_1.default.createElement(header_1.default.CreateAccount, { url: createAccount }) : createAccount,
51
- (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.Links, { links: links }) : links)))));
53
+ (0, utils_1.isObject)(createAccount) ? (react_1.default.createElement(header_1.default.CreateAccount, __assign({}, createAccount))) : (createAccount),
54
+ (0, utils_1.isArray)(links) ? react_1.default.createElement(header_1.default.LinksList, { links: links }) : links)))));
52
55
  });
53
56
  exports.LoggedOutHeader.displayName = 'LoggedOutHeader';
54
57
  exports.default = exports.LoggedOutHeader;
package/header/theme.d.ts CHANGED
@@ -4,19 +4,72 @@ declare const _default: {
4
4
  parts: string[];
5
5
  sizes: {};
6
6
  variants: {
7
- test: {
7
+ dark: {
8
8
  container: {
9
9
  bg: string;
10
- color: string;
10
+ borderBottom: number;
11
11
  };
12
- profile: {
13
- content: {
14
- color: string;
15
- };
12
+ account: {
16
13
  trigger: {
14
+ bg: string;
17
15
  color: string;
18
- name: string;
16
+ hoverBg: string;
17
+ activeBg: string;
18
+ };
19
+ };
20
+ createAccount: {
21
+ link: {
22
+ color: {
23
+ xs: string;
24
+ md: string;
25
+ };
26
+ hoverColor: {
27
+ xs: string;
28
+ md: string;
29
+ };
30
+ };
31
+ text: {
32
+ color: {
33
+ md: string;
34
+ };
35
+ };
36
+ };
37
+ divider: {
38
+ borderColor: string;
39
+ };
40
+ linkItem: {
41
+ container: {
42
+ hoverBg: {
43
+ xs: string;
44
+ md: string;
45
+ };
46
+ activeBg: {
47
+ xs: string;
48
+ md: string;
49
+ };
19
50
  };
51
+ link: {
52
+ borderColor: string;
53
+ };
54
+ };
55
+ linksList: {
56
+ color: {
57
+ md: string;
58
+ };
59
+ };
60
+ logo: {
61
+ svg: {
62
+ pathFill: string;
63
+ };
64
+ };
65
+ mobileContent: {
66
+ top: string;
67
+ };
68
+ mobileToggle: {
69
+ variant: string;
70
+ };
71
+ notifications: {
72
+ variant: string;
20
73
  };
21
74
  services: {
22
75
  button: {
package/header/theme.js CHANGED
@@ -4,38 +4,75 @@ var baseStyle = {};
4
4
  var defaultProps = {};
5
5
  var parts = [
6
6
  'container',
7
+ 'account',
7
8
  'content',
8
9
  'createAccount',
9
10
  'divider',
10
- 'link',
11
- 'links',
11
+ 'linkItem',
12
+ 'linksList',
12
13
  'logo',
13
14
  'mobileContent',
14
15
  'mobileToggle',
15
16
  'notifications',
16
- 'profile',
17
17
  'services',
18
18
  'signIn'
19
19
  ];
20
20
  var sizes = {};
21
21
  var variants = {
22
- test: {
22
+ dark: {
23
23
  container: {
24
24
  bg: 'prussian.80',
25
- color: 'white'
25
+ borderBottom: 0
26
26
  },
27
- profile: {
28
- content: {
29
- color: 'prussian.80'
30
- },
27
+ account: {
31
28
  trigger: {
32
- color: 'green.80',
33
- name: 'Ferdynand Kiepski'
29
+ bg: 'white',
30
+ color: 'prussian.80',
31
+ hoverBg: 'blue.20',
32
+ activeBg: 'blue.30'
33
+ }
34
+ },
35
+ createAccount: {
36
+ link: {
37
+ color: { xs: 'blue.80', md: 'blue.60' },
38
+ hoverColor: { xs: 'blue.60', md: 'blue.40' }
39
+ },
40
+ text: {
41
+ color: { md: 'white' }
42
+ }
43
+ },
44
+ divider: {
45
+ borderColor: 'white'
46
+ },
47
+ linkItem: {
48
+ container: {
49
+ hoverBg: { xs: 'blue.20', md: 'prussian.60' },
50
+ activeBg: { xs: 'blue.30', md: 'prussian.50' }
51
+ },
52
+ link: {
53
+ borderColor: 'pink.80'
54
+ }
55
+ },
56
+ linksList: {
57
+ color: { md: 'white' }
58
+ },
59
+ logo: {
60
+ svg: {
61
+ pathFill: 'white'
34
62
  }
35
63
  },
64
+ mobileContent: {
65
+ top: '100%'
66
+ },
67
+ mobileToggle: {
68
+ variant: 'solid'
69
+ },
70
+ notifications: {
71
+ variant: 'solid'
72
+ },
36
73
  services: {
37
74
  button: {
38
- variant: 'text'
75
+ variant: 'solid'
39
76
  }
40
77
  },
41
78
  signIn: {
@@ -2,6 +2,6 @@
2
2
  /* eslint-disable */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.default = {
5
- details: [32, 32, [], '', 'M9 0C8.44772 0 8 0.447715 8 1V4H5C3.34315 4 2 5.34315 2 7V10H30V7C30 5.34315 28.6569 4 27 4H24V1C24 0.447715 23.5523 0 23 0H21C20.4477 0 20 0.447715 20 1V4H12V1C12 0.447715 11.5523 0 11 0H9Z M30 12H2V29C2 30.6569 3.34315 32 5 32H27C28.6569 32 30 30.6569 30 29V12ZM22 17C22 16.4477 22.4477 16 23 16H25C25.5523 16 26 16.4477 26 17V19C26 19.5523 25.5523 20 25 20H23C22.4477 20 22 19.5523 22 19V17ZM23 24C22.4477 24 22 24.4477 22 25V27C22 27.5523 22.4477 28 23 28H25C25.5523 28 26 27.5523 26 27V25C26 24.4477 25.5523 24 25 24H23ZM14 17C14 16.4477 14.4477 16 15 16H17C17.5523 16 18 16.4477 18 17V19C18 19.5523 17.5523 20 17 20H15C14.4477 20 14 19.5523 14 19V17ZM7 16C6.44772 16 6 16.4477 6 17V19C6 19.5523 6.44772 20 7 20H9C9.55228 20 10 19.5523 10 19V17C10 16.4477 9.55228 16 9 16H7ZM14 25C14 24.4477 14.4477 24 15 24H17C17.5523 24 18 24.4477 18 25V27C18 27.5523 17.5523 28 17 28H15C14.4477 28 14 27.5523 14 27V25ZM7 24C6.44772 24 6 24.4477 6 25V27C6 27.5523 6.44772 28 7 28H9C9.55228 28 10 27.5523 10 27V25C10 24.4477 9.55228 24 9 24H7Z'],
5
+ details: [448, 512, [], '', 'M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z'],
6
6
  name: 'fasCalendarAlt'
7
7
  };
package/index.d.ts CHANGED
@@ -16,10 +16,12 @@ export * from './input';
16
16
  export * from './link';
17
17
  export * from './list';
18
18
  export * from './menu';
19
+ export * from './modal';
19
20
  export * from './notification';
20
21
  export * from './p';
21
22
  export * from './panel';
22
23
  export * from './popover';
24
+ export * from './portal';
23
25
  export * from './radio';
24
26
  export * from './skeleton';
25
27
  export * from './spinner';
package/index.js CHANGED
@@ -28,10 +28,12 @@ __exportStar(require("./input"), exports);
28
28
  __exportStar(require("./link"), exports);
29
29
  __exportStar(require("./list"), exports);
30
30
  __exportStar(require("./menu"), exports);
31
+ __exportStar(require("./modal"), exports);
31
32
  __exportStar(require("./notification"), exports);
32
33
  __exportStar(require("./p"), exports);
33
34
  __exportStar(require("./panel"), exports);
34
35
  __exportStar(require("./popover"), exports);
36
+ __exportStar(require("./portal"), exports);
35
37
  __exportStar(require("./radio"), exports);
36
38
  __exportStar(require("./skeleton"), exports);
37
39
  __exportStar(require("./spinner"), exports);
package/input/consts.js CHANGED
@@ -13,8 +13,8 @@ exports.inputStateMapping = {
13
13
  colorScheme: 'grey',
14
14
  iconProps: {
15
15
  animation: 'vui-spin 0.6s linear infinite',
16
- fill: ['blue.20', 'blue.50'],
17
- icon: 'fadSpinnerThird'
16
+ name: 'fadSpinnerThird',
17
+ pathFill: ['blue.20', 'blue.50']
18
18
  }
19
19
  },
20
20
  success: {
@@ -2,7 +2,7 @@
2
2
  import { IconProp, IconProps } from '../icon';
3
3
  import { SystemProps } from '../system';
4
4
  import { ThemingProps } from '../theme';
5
- import { AnyElement, ChangeEventHandler, FocusEventHandler, PropsOf } from '../utils';
5
+ import { ChangeEventHandler, FocusEventHandler, PropsOf } from '../utils';
6
6
  export declare type InputInputProps = PropsOf<'input', SystemProps>;
7
7
  export declare type InputProps = SystemProps & ThemingProps<'Input'> & {
8
8
  /** Passed to the inner input. */
@@ -16,9 +16,9 @@ export declare type InputProps = SystemProps & ThemingProps<'Input'> & {
16
16
  /** Passed to the inner input. */
17
17
  disabled?: boolean;
18
18
  /** Socket displaying an icon on the left. */
19
- iconLeft?: IconProp | AnyElement;
19
+ iconLeft?: IconProp | JSX.Element;
20
20
  /** Socket displaying an icon on the right. */
21
- iconRight?: IconProp | AnyElement;
21
+ iconRight?: IconProp | JSX.Element;
22
22
  /** Socket rendering a custom input element. */
23
23
  input?: React.ReactNode;
24
24
  /** Props object passed to the inner input. */
@@ -1,7 +1,7 @@
1
+ /// <reference types="react" />
1
2
  import { IconProp } from '../icon';
2
3
  import { SystemProps, TypographyProps } from '../system';
3
4
  import { ThemingProps } from '../theme';
4
- import { AnyElement } from '../utils';
5
5
  export declare type LinkProps = SystemProps & ThemingProps<'Link'> & {
6
6
  /** Available theme colors for this component. @default blue */
7
7
  colorScheme?: 'blue' | 'white';
@@ -10,15 +10,15 @@ export declare type LinkProps = SystemProps & ThemingProps<'Link'> & {
10
10
  /** Alias for hoverTextDecoration prop. @deprecated */
11
11
  hoverDecoration?: TypographyProps['textDecoration'];
12
12
  /** Socket displaying an icon on the left. */
13
- iconLeft?: IconProp | AnyElement;
13
+ iconLeft?: IconProp | JSX.Element;
14
14
  /** Socket displaying an icon on the right. */
15
- iconRight?: IconProp | AnyElement;
15
+ iconRight?: IconProp | JSX.Element;
16
16
  /** Opens the link in new tab with appropriate attributes. */
17
17
  isExternal?: boolean;
18
18
  /** Displays permanent underline. */
19
19
  isUnderlined?: boolean;
20
20
  /** Socket displaying text within the Link. */
21
- text?: number | string | AnyElement;
21
+ text?: number | string | JSX.Element;
22
22
  /** Alias for fontWeight prop. @deprecated */
23
23
  weight?: TypographyProps['fontWeight'];
24
24
  };
package/list/listItem.js CHANGED
@@ -58,7 +58,7 @@ var listIcon_1 = __importDefault(require("./listIcon"));
58
58
  var listText_1 = __importDefault(require("./listText"));
59
59
  /** Used as optional content wrapper when list item should be a link. */
60
60
  var ListItemLink = (0, core_1.vui)(function (props, ref) { return (react_1.default.createElement(link_1.default, __assign({ borderRadius: "none", h: "100%", px: 2, ref: ref, variant: "plain", w: "100%" }, props))); });
61
- exports.ListItemBase = core_1.styled.liBox(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\tdisplay: flex;\n\tline-height: normal;\n\tmargin-bottom: 1px;\n\toutline: none;\n\ttransition-duration: fast;\n\n\t&[aria-disabled='true'] {\n\t\tbackground-color: disabled.bg;\n\t\tcolor: disabled.color;\n\t\tcursor: not-allowed;\n\t\tuser-select: none;\n\t}\n"], ["\n\tdisplay: flex;\n\tline-height: normal;\n\tmargin-bottom: 1px;\n\toutline: none;\n\ttransition-duration: fast;\n\n\t&[aria-disabled='true'] {\n\t\tbackground-color: disabled.bg;\n\t\tcolor: disabled.color;\n\t\tcursor: not-allowed;\n\t\tuser-select: none;\n\t}\n"
61
+ exports.ListItemBase = core_1.styled.liBox(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\tdisplay: flex;\n\tline-height: normal;\n\toutline: none;\n\ttransition-duration: fast;\n\n\t&[aria-disabled='true'] {\n\t\tbackground-color: disabled.bg;\n\t\tcolor: disabled.color;\n\t\tcursor: not-allowed;\n\t\tuser-select: none;\n\t}\n"], ["\n\tdisplay: flex;\n\tline-height: normal;\n\toutline: none;\n\ttransition-duration: fast;\n\n\t&[aria-disabled='true'] {\n\t\tbackground-color: disabled.bg;\n\t\tcolor: disabled.color;\n\t\tcursor: not-allowed;\n\t\tuser-select: none;\n\t}\n"
62
62
  /**
63
63
  * Displays a list item with text and optional icons. Can be shown as interactive or selected.
64
64
  * Optionally wraps the content with an <a> element when rendering a link.
package/menu/menuItem.js CHANGED
@@ -10,25 +10,6 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || function (mod) {
26
- if (mod && mod.__esModule) return mod;
27
- var result = {};
28
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
- __setModuleDefault(result, mod);
30
- return result;
31
- };
32
13
  var __rest = (this && this.__rest) || function (s, e) {
33
14
  var t = {};
34
15
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -40,12 +21,16 @@ var __rest = (this && this.__rest) || function (s, e) {
40
21
  }
41
22
  return t;
42
23
  };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
43
27
  Object.defineProperty(exports, "__esModule", { value: true });
44
28
  exports.MenuItem = void 0;
45
- var react_1 = __importStar(require("react"));
29
+ var react_1 = __importDefault(require("react"));
46
30
  var core_1 = require("../core");
47
31
  var list_1 = require("../list");
48
32
  var popover_1 = require("../popover");
33
+ var utils_1 = require("../utils");
49
34
  var context_1 = require("./context");
50
35
  /** Displays a list item and by default closes the menu on click. */
51
36
  exports.MenuItem = (0, core_1.vui)(function (props, ref) {
@@ -54,10 +39,10 @@ exports.MenuItem = (0, core_1.vui)(function (props, ref) {
54
39
  var instance = ((_a = (0, popover_1.usePopoverContext)()) !== null && _a !== void 0 ? _a : {}).instance;
55
40
  var _c = (_b = (0, context_1.useMenuContext)()) !== null && _b !== void 0 ? _b : {}, closeOnSelect = _c.closeOnSelect, menuProps = __rest(_c, ["closeOnSelect"]);
56
41
  var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, menuProps), props));
57
- var onClick = (0, react_1.useCallback)(function (e) {
42
+ var onClick = (0, utils_1.useCallbackRef)(function (e) {
58
43
  onClickProp === null || onClickProp === void 0 ? void 0 : onClickProp(e);
59
44
  closeOnSelect && (instance === null || instance === void 0 ? void 0 : instance.hide());
60
- }, [closeOnSelect, instance]);
45
+ });
61
46
  return react_1.default.createElement(list_1.ListItem, __assign({ className: "vui-menuItem", isInteractive: true, onClick: onClick, ref: ref }, styles.item, rest));
62
47
  });
63
48
  exports.MenuItem.displayName = 'MenuItem';
package/menu/menuList.js CHANGED
@@ -36,7 +36,7 @@ exports.MenuList = (0, core_1.vui)(function (props, ref) {
36
36
  var contentProps = props.contentProps, contentRef = props.contentRef, rest = __rest(props, ["contentProps", "contentRef"]);
37
37
  var styles = (0, core_1.useStyleConfig)('Menu', __assign(__assign({}, (0, context_1.useMenuContext)()), props));
38
38
  return (react_1.default.createElement(popover_1.PopoverContent, __assign({ ref: contentRef }, contentProps),
39
- react_1.default.createElement(list_1.default, __assign({ className: "vui-menuList", py: 1, ref: ref }, styles.list, rest))));
39
+ react_1.default.createElement(list_1.default, __assign({ className: "vui-menuList", py: 1, ref: ref, w: "100%" }, styles.list, rest))));
40
40
  });
41
41
  exports.MenuList.displayName = 'MenuList';
42
42
  exports.MenuList.Divider = list_1.default.Divider;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { ModalContext } from './modal.types';
3
+ declare const ModalProvider: import("react").Provider<ModalContext>, useModalContext: () => ModalContext;
4
+ export { ModalProvider, useModalContext };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.useModalContext = exports.ModalProvider = void 0;
20
+ var utils_1 = require("../utils");
21
+ var _a = __read((0, utils_1.createContext)({ isOptional: true }), 2), ModalProvider = _a[0], useModalContext = _a[1];
22
+ exports.ModalProvider = ModalProvider;
23
+ exports.useModalContext = useModalContext;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { FocusLockProps } from './focusLock.types';
3
+ /**
4
+ * Traps the focus within the provided content. That is, tabbing with keyboard will
5
+ * only cycle through the children and won't leave the boundary of the FocusLock.
6
+ * This behavior enhances accessibility of the Modal component.
7
+ */
8
+ export declare const FocusLock: FC<FocusLockProps>;
9
+ export default FocusLock;