@xqmsg/ui-core 0.18.7 → 0.19.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.
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  export interface NeutralProps {
3
3
  boxSize: number | string;
4
+ color?: string;
4
5
  }
5
6
  /**
6
7
  * A functional React component utilized to render the `Neutral` icon component
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  export interface NavigationMenuItemProps {
3
3
  leftIcon: JSX.Element;
4
4
  label: string;
5
+ to?: string;
5
6
  href?: string;
6
7
  isSelected: boolean;
7
8
  onClick: () => void;
@@ -3,6 +3,7 @@ export declare type GroupMenuItems = {
3
3
  leftIcon: JSX.Element;
4
4
  label: string;
5
5
  href?: string;
6
+ to?: string;
6
7
  rightIcon?: JSX.Element;
7
8
  isExternal?: boolean;
8
9
  };
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { ToastProps } from '.';
3
+ declare const meta: Meta<ToastProps>;
4
+ export default meta;
5
+ export declare const Default: import("@storybook/csf").AnnotatedStoryFn<import("@storybook/react").ReactFramework, ToastProps>;
@@ -0,0 +1,12 @@
1
+ import React, { ReactNode } from 'react';
2
+ export declare type ToastVariant = 'positive' | 'warning' | 'error' | 'neutral';
3
+ export interface ToastProps {
4
+ variant: ToastVariant;
5
+ message: ReactNode;
6
+ buttonText?: string;
7
+ onClick?: () => void;
8
+ }
9
+ /**
10
+ * A functional React component utilized to render the `Toast` component
11
+ */
12
+ export declare const Toast: React.FC<ToastProps>;
@@ -0,0 +1,6 @@
1
+ import { ToastPosition } from '@chakra-ui/react';
2
+ import React from 'react';
3
+ import { ToastProps } from '../components/toast';
4
+ export declare const useToast: (props: ToastProps & {
5
+ position: ToastPosition;
6
+ }) => () => React.Key;
package/dist/index.d.ts CHANGED
@@ -16,5 +16,6 @@ export * from './components/tabs';
16
16
  export * from './components/text';
17
17
  export * from './theme/provider';
18
18
  export * from './components/toolbar';
19
+ export * from './hooks/useToast';
19
20
  export * from './components/form/utils/formErrors';
20
21
  export * from './theme/foundations/colors';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ChakraProviderProps } from '@chakra-ui/provider';
2
+ import { ChakraProviderProps } from '@chakra-ui/react';
3
3
  /**
4
4
  * A functional React wrapper component utilized to consume the custom XQ theme via `ChakraProvider`
5
5
  */
@@ -10,8 +10,8 @@ var react = require('@chakra-ui/react');
10
10
  var reactHookForm = require('react-hook-form');
11
11
  var lodash = require('lodash');
12
12
  var icons = require('@chakra-ui/icons');
13
+ var reactRouterDom = require('react-router-dom');
13
14
  var hi = require('react-icons/hi');
14
- var provider = require('@chakra-ui/provider');
15
15
  var themeTools = require('@chakra-ui/theme-tools');
16
16
  var system = require('@chakra-ui/system');
17
17
 
@@ -90,7 +90,7 @@ var SvgNeutral = function SvgNeutral(props, ref) {
90
90
  ref: ref
91
91
  }, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement("path", {
92
92
  d: "M7 4.5V4a.5.5 0 0 0-.5.5H7Zm.005 0h.5a.5.5 0 0 0-.5-.5v.5Zm0 .005v.5a.5.5 0 0 0 .5-.5h-.5Zm-.005 0h-.5a.5.5 0 0 0 .5.5v-.5Zm-.724 1.548a.5.5 0 1 0 .448.894l-.448-.894Zm.252.433-.224-.447.224.447Zm.708.569.485.12-.485-.12Zm-.472 1.89-.485-.12.485.12Zm.708.569.224.447-.224-.447Zm.252.433a.5.5 0 1 0-.448-.894l.448.894ZM12.5 7A5.5 5.5 0 0 1 7 12.5v1A6.5 6.5 0 0 0 13.5 7h-1ZM7 12.5A5.5 5.5 0 0 1 1.5 7h-1A6.5 6.5 0 0 0 7 13.5v-1ZM1.5 7A5.5 5.5 0 0 1 7 1.5v-1A6.5 6.5 0 0 0 .5 7h1ZM7 1.5A5.5 5.5 0 0 1 12.5 7h1A6.5 6.5 0 0 0 7 .5v1ZM7 5h.005V4H7v1Zm-.495-.5v.005h1V4.5h-1Zm.5-.495H7v1h.005v-1Zm.495.5V4.5h-1v.005h1Zm-.776 2.442.027-.014-.447-.894-.028.014.448.894Zm.027-.014L6.28 8.824l.97.243.472-1.891-.97-.243Zm.945 3.028.028-.014-.448-.894-.027.014.447.894ZM6.279 8.824a1 1 0 0 0 1.417 1.137l-.447-.894-.97-.243Zm.472-1.89.97.242a1 1 0 0 0-1.417-1.137l.447.894Z",
93
- fill: "#3C3C43",
93
+ fill: "current",
94
94
  fillOpacity: 0.6
95
95
  })));
96
96
  };
@@ -102,9 +102,11 @@ var Memo$1 = /*#__PURE__*/React.memo(ForwardRef$1);
102
102
  */
103
103
 
104
104
  var Neutral = function Neutral(_ref) {
105
- var boxSize = _ref.boxSize;
105
+ var color = _ref.color,
106
+ boxSize = _ref.boxSize;
106
107
  return /*#__PURE__*/React__default.createElement(Memo$1, {
107
- boxSize: boxSize
108
+ boxSize: boxSize,
109
+ fill: color || '#3C3C43'
108
110
  });
109
111
  };
110
112
 
@@ -2863,22 +2865,31 @@ var NavigationMenuItem = function NavigationMenuItem(_ref) {
2863
2865
  var label = _ref.label,
2864
2866
  leftIcon = _ref.leftIcon,
2865
2867
  href = _ref.href,
2868
+ to = _ref.to,
2866
2869
  rightIcon = _ref.rightIcon,
2867
2870
  isExternal = _ref.isExternal,
2868
2871
  isSelected = _ref.isSelected,
2869
2872
  onClick = _ref.onClick;
2870
2873
  var additionalProps = {};
2874
+ var reactRouterLinkProps = {};
2875
+
2876
+ if (to) {
2877
+ reactRouterLinkProps = {
2878
+ to: to,
2879
+ as: reactRouterDom.Link
2880
+ };
2881
+ }
2871
2882
 
2872
2883
  if (isExternal) {
2873
2884
  additionalProps = _extends$6({}, additionalProps, {
2874
2885
  referrerPolicy: 'no-referrer',
2875
- target: '_blank'
2886
+ target: '_blank',
2887
+ href: href,
2888
+ isExternal: true
2876
2889
  });
2877
2890
  }
2878
2891
 
2879
- return /*#__PURE__*/React__default.createElement(react.Link, Object.assign({
2880
- href: href
2881
- }, additionalProps, {
2892
+ return /*#__PURE__*/React__default.createElement(react.Link, Object.assign({}, reactRouterLinkProps, additionalProps, {
2882
2893
  onClick: onClick,
2883
2894
  display: "flex",
2884
2895
  alignItems: "center",
@@ -4167,7 +4178,7 @@ var customXQChakraTheme = /*#__PURE__*/react.extendTheme( /*#__PURE__*/_extends$
4167
4178
  var XQThemeProvider = function XQThemeProvider(_ref) {
4168
4179
  var children = _ref.children,
4169
4180
  cssVarsRoot = _ref.cssVarsRoot;
4170
- return /*#__PURE__*/React__default.createElement(provider.ChakraProvider, {
4181
+ return /*#__PURE__*/React__default.createElement(react.ChakraProvider, {
4171
4182
  theme: customXQChakraTheme,
4172
4183
  resetCSS: true,
4173
4184
  cssVarsRoot: cssVarsRoot
@@ -4307,6 +4318,87 @@ var Toolbar = function Toolbar(_ref) {
4307
4318
  }, children, " ")));
4308
4319
  };
4309
4320
 
4321
+ /**
4322
+ * A functional React component utilized to render the `Toast` component
4323
+ */
4324
+
4325
+ var Toast = function Toast(_ref) {
4326
+ var variant = _ref.variant,
4327
+ message = _ref.message,
4328
+ buttonText = _ref.buttonText,
4329
+ onClick = _ref.onClick;
4330
+ var Icon = React.useMemo(function () {
4331
+ switch (variant) {
4332
+ case 'error':
4333
+ return /*#__PURE__*/React__default.createElement(Error$1, {
4334
+ boxSize: "16px"
4335
+ });
4336
+
4337
+ case 'neutral':
4338
+ return /*#__PURE__*/React__default.createElement(Neutral, {
4339
+ boxSize: "16px",
4340
+ color: "white"
4341
+ });
4342
+
4343
+ case 'positive':
4344
+ return /*#__PURE__*/React__default.createElement(Positive, {
4345
+ boxSize: "16px"
4346
+ });
4347
+
4348
+ case 'warning':
4349
+ return /*#__PURE__*/React__default.createElement(Warning, {
4350
+ boxSize: "16px"
4351
+ });
4352
+
4353
+ default:
4354
+ return null;
4355
+ }
4356
+ }, [variant]);
4357
+ return /*#__PURE__*/React__default.createElement(react.Flex, {
4358
+ alignItems: "center",
4359
+ width: "fit-content",
4360
+ height: "32px",
4361
+ p: "8px",
4362
+ bg: "#151515D9",
4363
+ borderColor: "#9999991A",
4364
+ borderRadius: "8px"
4365
+ }, /*#__PURE__*/React__default.createElement(react.Box, {
4366
+ pr: "8px"
4367
+ }, Icon), /*#__PURE__*/React__default.createElement(react.Text, {
4368
+ pr: "16px",
4369
+ fontSize: "13px",
4370
+ color: colors.label.primary.dark
4371
+ }, message), onClick && buttonText && /*#__PURE__*/React__default.createElement(react.Flex, {
4372
+ ml: "auto",
4373
+ justifyContent: "flex-end"
4374
+ }, /*#__PURE__*/React__default.createElement(react.Button, {
4375
+ color: colors.fill.action,
4376
+ style: {
4377
+ background: 'transparent',
4378
+ border: 'transparent',
4379
+ boxShadow: 'none'
4380
+ },
4381
+ _hover: {
4382
+ bg: 'transparent',
4383
+ border: 'transparent',
4384
+ boxShadow: 'none'
4385
+ },
4386
+ onClick: onClick
4387
+ }, buttonText)));
4388
+ };
4389
+
4390
+ var useToast = function useToast(props) {
4391
+ var toast = react.useToast();
4392
+ return function () {
4393
+ return toast({
4394
+ position: props.position,
4395
+ render: function render() {
4396
+ return /*#__PURE__*/React__default.createElement(Toast, Object.assign({}, props));
4397
+ }
4398
+ });
4399
+ };
4400
+ };
4401
+
4310
4402
  function formatErrorResponse(error) {
4311
4403
  var _error$response, _error$response$data;
4312
4404
 
@@ -4382,4 +4474,5 @@ exports.Warning = Warning;
4382
4474
  exports.XQThemeProvider = XQThemeProvider;
4383
4475
  exports.colors = colors;
4384
4476
  exports.formatErrorResponse = formatErrorResponse;
4477
+ exports.useToast = useToast;
4385
4478
  //# sourceMappingURL=ui-core.cjs.development.js.map