@popmenu/common-ui 0.19.4 → 0.19.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -33,7 +33,6 @@ var FormControl = require('@material-ui/core/FormControl');
33
33
  var Grid = require('@material-ui/core/Grid');
34
34
  var InputAdornment = require('@material-ui/core/InputAdornment');
35
35
  var LinearProgress = require('@material-ui/core/LinearProgress');
36
- var MuiLink = require('@material-ui/core/Link');
37
36
  var List = require('@material-ui/core/List');
38
37
  var ListItem = require('@material-ui/core/ListItem');
39
38
  var ListItemIcon = require('@material-ui/core/ListItemIcon');
@@ -103,7 +102,6 @@ var FormControl__default = /*#__PURE__*/_interopDefaultLegacy(FormControl);
103
102
  var Grid__default = /*#__PURE__*/_interopDefaultLegacy(Grid);
104
103
  var InputAdornment__default = /*#__PURE__*/_interopDefaultLegacy(InputAdornment);
105
104
  var LinearProgress__default = /*#__PURE__*/_interopDefaultLegacy(LinearProgress);
106
- var MuiLink__default = /*#__PURE__*/_interopDefaultLegacy(MuiLink);
107
105
  var List__default = /*#__PURE__*/_interopDefaultLegacy(List);
108
106
  var ListItem__default = /*#__PURE__*/_interopDefaultLegacy(ListItem);
109
107
  var ListItemIcon__default = /*#__PURE__*/_interopDefaultLegacy(ListItemIcon);
@@ -159,6 +157,24 @@ function __rest(s, e) {
159
157
  return t;
160
158
  }
161
159
 
160
+ var _path$3k;
161
+
162
+ function _extends$3B() { _extends$3B = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$3B.apply(this, arguments); }
163
+
164
+ function SvgUser(props) {
165
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends$3B({
166
+ viewBox: "0 0 16 16",
167
+ strokeLinecap: "round",
168
+ strokeLinejoin: "round",
169
+ stroke: "currentColor",
170
+ width: "1em",
171
+ height: "1em",
172
+ fill: "none"
173
+ }, props), _path$3k || (_path$3k = /*#__PURE__*/React__namespace.createElement("path", {
174
+ d: "M13.333 14v-1.333A2.667 2.667 0 0010.667 10H5.333a2.667 2.667 0 00-2.666 2.667V14M8 7.333A2.667 2.667 0 108 2a2.667 2.667 0 000 5.333z"
175
+ })));
176
+ }
177
+
162
178
  var _path$1f;
163
179
 
164
180
  function _extends$1p() { _extends$1p = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1p.apply(this, arguments); }
@@ -676,18 +692,9 @@ var LoadingStatus;
676
692
  LoadingStatus["LOADED"] = "LOADED";
677
693
  LoadingStatus["PENDING"] = "PENDING";
678
694
  })(LoadingStatus || (LoadingStatus = {}));
679
- /**
680
- * Hook returns [imgProps, loaded]
681
- * ref: Merged default and provided imgProp object. Includes load and error events for img tag. To be passed to MuiAvatar.
682
- * loaded: Indicates whether the src supplied to an img within Avatar results in loaded or error
683
- */
684
695
  var useImgProps = function (avatarProps) {
685
696
  var _a = React__default['default'].useState(LoadingStatus.PENDING), loaded = _a[0], setLoaded = _a[1];
686
- var imgProps = __assign(__assign({}, avatarProps.imgProps), { onError: function (event) {
687
- var _a, _b;
688
- setLoaded(LoadingStatus.ERROR);
689
- (_b = (_a = avatarProps.imgProps) === null || _a === void 0 ? void 0 : _a.onError) === null || _b === void 0 ? void 0 : _b.call(_a, event);
690
- }, onLoad: function (event) {
697
+ var imgProps = __assign(__assign({}, avatarProps.imgProps), { onLoad: function (event) {
691
698
  var _a, _b;
692
699
  setLoaded(LoadingStatus.LOADED);
693
700
  (_b = (_a = avatarProps.imgProps) === null || _a === void 0 ? void 0 : _a.onLoad) === null || _b === void 0 ? void 0 : _b.call(_a, event);
@@ -714,97 +721,49 @@ var getAvatarFontSize = function (props) {
714
721
  large: '1.25rem',
715
722
  'extra-large': '3.5rem',
716
723
  };
717
- return fontSizes[props.size || 'medium'];
718
- };
719
- var getAvatarBackground = function (props) {
720
- var src = props.src, loaded = props.loaded;
721
- var background = props.background;
722
- if (src && loaded === LoadingStatus.LOADED) {
723
- background = 'transparent';
724
- }
725
- return background;
724
+ return fontSizes[props.size];
726
725
  };
727
726
  var useAvatarStyles = styles.makeStyles(function (theme) { return ({
728
- root: {
729
- width: function (props) { return getAvatarDimensions(theme, props); },
730
- height: function (props) { return getAvatarDimensions(theme, props); },
731
- fontSize: function (props) { return getAvatarFontSize(props); },
732
- backgroundColor: function (props) { return getAvatarBackground(props); },
733
- color: function (props) { return theme.palette.getContrastText(props.background || '#E0E0E0'); },
734
- objectFit: function (props) { return props.fit; },
735
- },
736
- silhouette: {
737
- '& path': {
738
- fill: function (props) { return theme.palette.getContrastText(props.background || '#E0E0E0'); },
739
- },
740
- },
727
+ root: function (props) { return ({
728
+ width: getAvatarDimensions(theme, props),
729
+ height: getAvatarDimensions(theme, props),
730
+ fontSize: getAvatarFontSize(props),
731
+ backgroundColor: props.loaded === LoadingStatus.LOADED ? 'transparent' : props.background,
732
+ color: theme.palette.getContrastText(props.background),
733
+ objectFit: props.fit,
734
+ }); },
735
+ fallback: function (props) { return ({
736
+ fontSize: getAvatarDimensions(theme, props),
737
+ strokeWidth: 1,
738
+ }); },
741
739
  }); });
742
740
 
743
- var _path$2;
744
-
745
- function _extends$2() { _extends$2 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$2.apply(this, arguments); }
746
-
747
- function SvgSilhouetteFemale(props) {
748
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$2({
749
- viewBox: "0 0 300 300",
750
- fill: "none",
751
- xmlns: "http://www.w3.org/2000/svg"
752
- }, props), _path$2 || (_path$2 = /*#__PURE__*/React__namespace.createElement("path", {
753
- d: "M179.417 182.917a3.362 3.362 0 00-2.951 1.076 3.461 3.461 0 00-.875 3.021c1.916 10.069 8.368 23.889 28.173 32.493 2.347 1.014 5.972 1.805 10.57 2.799 17.208 3.722 45.986 9.958 53.055 36.333a3.488 3.488 0 001.622 2.11 3.491 3.491 0 002.639.345 3.488 3.488 0 002.109-1.622 3.473 3.473 0 00.345-2.639c-8.173-30.465-40.777-37.527-58.298-41.319-4.056-.882-7.563-1.639-9.278-2.389-11.903-5.167-19.59-12.833-22.924-22.819 33.07 2.458 48.042-10.716 48.702-11.313a3.469 3.469 0 001.121-2.951 3.478 3.478 0 00-1.732-2.639c-19.084-10.903-19.084-48.577-19.084-62.764 0-39.674-26.722-71.125-60.979-71.618-.326-.011-.652-.018-.979-.021h-.007c-34.757.194-63.035 31.68-63.035 70.194 0 14.188 0 51.868-19.083 62.764a3.5 3.5 0 00-1.73 2.769 3.494 3.494 0 001.313 2.988c.959.743 22.14 16.952 48.202 12.028-3.486 9.569-11.07 16.931-22.625 21.951-1.674.73-5.007 1.528-8.868 2.445-17.64 4.194-50.48 12.007-58.702 42.687a3.481 3.481 0 00.348 2.638 3.475 3.475 0 006.368-.839c7.145-26.694 36.229-33.604 53.597-37.743 4.354-1.035 7.791-1.854 10.028-2.82 19.805-8.604 26.25-22.423 28.173-32.493a3.45 3.45 0 00-1.104-3.243 3.457 3.457 0 00-3.347-.722c-18.799 5.917-36.167-2.222-43.757-6.736 18.132-15.181 18.132-50.118 18.132-65.674 0-34.7 25.18-63.076 56.389-63.263l.736.041c30.778.438 53.986 28.236 53.986 64.667 0 15.562 0 50.576 18.208 65.757-6.271 3.583-20.569 9.382-44.458 6.521z",
754
- fill: "#2E3042"
755
- })));
756
- }
757
-
758
- var _path$1;
759
-
760
- function _extends$1() { _extends$1 = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
761
-
762
- function SvgSilhouetteMale(props) {
763
- return /*#__PURE__*/React__namespace.createElement("svg", _extends$1({
764
- viewBox: "0 0 300 300",
765
- fill: "none",
766
- xmlns: "http://www.w3.org/2000/svg"
767
- }, props), _path$1 || (_path$1 = /*#__PURE__*/React__namespace.createElement("path", {
768
- d: "M27.594 261.886a3.513 3.513 0 004.281-2.478c7.204-26.904 36.484-33.877 53.984-38.05 4.386-1.043 7.848-1.869 10.1-2.842 19.935-8.66 26.433-22.592 28.377-32.757a3.493 3.493 0 00-.133-1.81 3.492 3.492 0 00-1.021-1.501c-10.38-8.968-19.137-22.431-24.663-37.917a3.447 3.447 0 00-.72-1.197c-7.31-7.953-11.506-16.361-11.506-23.06 0-3.914 1.475-6.539 4.798-8.52a3.5 3.5 0 001.7-2.857c1.545-35.662 26.922-63.735 58.047-63.917l.749.049c31.279.434 56.495 29.11 57.397 65.275a3.487 3.487 0 001.245 2.584c2.189 1.855 3.211 4.207 3.211 7.4 0 5.607-2.987 12.503-8.401 19.406a3.633 3.633 0 00-.587 1.106c-5.596 17.754-15.64 33.429-27.545 43.02a3.517 3.517 0 00-1.245 3.381c1.945 10.159 8.442 24.083 28.377 32.757 2.357 1.022 6.015 1.821 10.653 2.822 17.325 3.752 46.318 10.046 53.431 36.628a3.503 3.503 0 002.926 2.562 3.494 3.494 0 003.922-3.019 3.52 3.52 0 00-.091-1.363c-8.219-30.713-41.065-37.833-58.705-41.655-4.092-.889-7.625-1.652-9.345-2.408-13.01-5.657-21.026-14.275-23.859-25.658 12.08-10.383 22.187-26.401 27.965-44.365 6.134-7.981 9.505-16.2 9.505-23.221 0-4.684-1.511-8.59-4.504-11.643-1.665-39.232-29.636-70.127-64.35-70.624L150.545 38c-34.085.182-62.175 30.264-64.63 68.818-4.379 3.22-6.603 7.736-6.603 13.47 0 8.282 4.68 18.188 12.87 27.275 5.659 15.563 14.43 29.235 24.873 38.805-2.819 11.426-10.842 20.072-23.88 25.735-1.685.735-5.043 1.541-8.932 2.465-17.773 4.228-50.843 12.104-59.125 43.034a3.501 3.501 0 002.476 4.284z",
769
- fill: "#2E3042"
770
- })));
771
- }
772
-
773
- var _path;
774
-
775
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
776
-
777
- function SvgSilhouetteNeutral(props) {
778
- return /*#__PURE__*/React__namespace.createElement("svg", _extends({
779
- viewBox: "0 0 300 300",
780
- fill: "none",
781
- xmlns: "http://www.w3.org/2000/svg"
782
- }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
783
- fillRule: "evenodd",
784
- clipRule: "evenodd",
785
- d: "M209 121c0 32.585-26.415 59-59 59s-59-26.415-59-59 26.415-59 59-59 59 26.415 59 59zm8 0c0 37.003-29.997 67-67 67s-67-29.997-67-67 29.997-67 67-67 67 29.997 67 67zm35 137.333V284h8v-25.667c0-13.614-5.821-26.671-16.182-36.298C233.456 212.408 219.403 207 204.75 207H94.25c-14.653 0-28.706 5.408-39.068 15.035C44.821 231.662 39 244.719 39 258.333V284h8v-25.667c0-11.295 4.824-22.257 13.628-30.437C69.45 219.698 81.537 215 94.25 215h110.5c12.714 0 24.799 4.698 33.622 12.896 8.804 8.18 13.628 19.142 13.628 30.437z",
786
- fill: "#2E3042"
787
- })));
788
- }
789
-
790
- var silhouettes = {
791
- female: SvgSilhouetteFemale,
792
- male: SvgSilhouetteMale,
793
- neutral: SvgSilhouetteNeutral,
794
- };
795
741
  var Avatar = React.forwardRef(function (props, ref) {
796
- var children = props.children, _a = props.silhouette, silhouette = _a === void 0 ? 'neutral' : _a, muiProps = __rest(props, ["children", "silhouette"]);
797
- var _b = useImgProps(props), imgProps = _b.imgProps, loaded = _b.loaded;
742
+ var children = props.children, src = props.src, alt = props.alt, fallback = props.fallback, muiProps = __rest(props, ["children", "src", "alt", "fallback"]);
743
+ var _a = useImgProps(props), imgProps = _a.imgProps, loaded = _a.loaded;
798
744
  var classes = useAvatarStyles(__assign(__assign({}, props), { loaded: loaded }));
799
- var Silhouette = silhouettes[silhouette];
800
- var fallback = muiProps.src || silhouette === 'none' ? '' : React__default['default'].createElement(Silhouette, { className: classes.silhouette });
801
- return (React__default['default'].createElement(MuiAvatar__default['default'], __assign({ ref: ref, classes: { root: classes.root } }, muiProps, imgProps), children || fallback));
745
+ var displayAltTextFallback = src && alt;
746
+ var displayNoFallback = fallback === 'none';
747
+ var displayCustomFallback = fallback !== 'none' && typeof fallback !== 'undefined';
748
+ var Fallback;
749
+ if (displayAltTextFallback) {
750
+ Fallback = null;
751
+ }
752
+ else if (displayNoFallback) {
753
+ Fallback = ' ';
754
+ }
755
+ else if (displayCustomFallback) {
756
+ Fallback = fallback;
757
+ }
758
+ else {
759
+ Fallback = React__default['default'].createElement(Icon, { icon: SvgUser, className: classes.fallback });
760
+ }
761
+ return (React__default['default'].createElement(MuiAvatar__default['default'], __assign({ ref: ref, classes: { root: classes.root }, src: src, alt: alt }, muiProps, { imgProps: imgProps }), children || Fallback));
802
762
  });
803
763
  Avatar.defaultProps = {
804
764
  size: 'medium',
805
765
  fit: 'cover',
806
766
  background: '#E0E0E0',
807
- silhouette: 'neutral',
808
767
  };
809
768
  Avatar.displayName = 'Avatar';
810
769
 
@@ -858,33 +817,35 @@ var useCollapsibleTextStyles = core.makeStyles(function (theme) { return ({
858
817
  }); });
859
818
 
860
819
  var CollapsibleText = function (props) {
861
- var _a = props, text = _a.text, open = _a.open, previewLines = _a.previewLines, _b = _a.typographyVariant, typographyVariant = _b === void 0 ? 'body1' : _b, collapsible = _a.collapsible, setCollapsible = _a.setCollapsible;
862
- var classes = useCollapsibleTextStyles(props);
820
+ var text = props.text, open = props.open, _a = props.previewLines, previewLines = _a === void 0 ? 2 : _a, _b = props.typographyVariant, typographyVariant = _b === void 0 ? 'body1' : _b; props.collapseState; var restProps = __rest(props, ["text", "open", "previewLines", "typographyVariant", "collapseState"]);
821
+ var collapseState = React.useState(false);
863
822
  var typographyRef = React.useRef(null);
864
- var typography = core.useTheme().typography;
865
- var collapsedSize = previewLines * parseFloat(typography[typographyVariant].lineHeight);
823
+ var classes = useCollapsibleTextStyles(__assign(__assign({}, props), { previewLines: previewLines, typographyVariant: typographyVariant }));
824
+ var theme = core.useTheme();
825
+ var _c = props.collapseState ? props.collapseState : collapseState, collapsible = _c[0], setCollapsible = _c[1];
826
+ var typographyEntryLineHeightRem = parseFloat(theme.typography[typographyVariant].lineHeight);
827
+ var collapsedSizeRem = previewLines * typographyEntryLineHeightRem;
828
+ var documentFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize);
829
+ var collapsedSizePx = collapsedSizeRem * documentFontSize;
866
830
  React.useEffect(function () {
867
831
  var typographyNode = typographyRef.current;
868
832
  var observer = new ResizeObserver(function (entries) {
869
- var typographyHeight = entries[0].contentRect.height;
870
- var collapsedPxSize = collapsedSize * 16;
871
- var collapsible = typographyHeight > collapsedPxSize;
872
- setCollapsible(collapsible);
833
+ var typographyEntry = entries.find(function (entry) { return entry.target === typographyNode; });
834
+ if (typographyEntry) {
835
+ var typographyEntryHeight = typographyEntry.contentRect.height;
836
+ var isCollapsible = typographyEntryHeight > collapsedSizePx;
837
+ setCollapsible(isCollapsible);
838
+ }
873
839
  });
874
840
  observer.observe(typographyNode);
875
841
  return function () {
876
842
  observer.unobserve(typographyNode);
877
843
  };
878
844
  }, []);
879
- return (React__default['default'].createElement(React.Fragment, null,
880
- React__default['default'].createElement(core.Box, { position: "relative", overflow: "hidden" },
881
- React__default['default'].createElement(Collapse__default['default'], { in: open, collapsedSize: collapsedSize + 'rem' },
882
- React__default['default'].createElement(Typography, { ref: typographyRef, variant: typographyVariant }, text)),
883
- collapsible && !open && React__default['default'].createElement(core.Box, { className: classes.overlay }))));
884
- };
885
- CollapsibleText.defaultProps = {
886
- previewLines: 2,
887
- typographyVariant: 'body1',
845
+ return (React__default['default'].createElement(core.Box, __assign({ position: "relative", overflow: "hidden" }, restProps),
846
+ React__default['default'].createElement(Collapse__default['default'], { in: open, collapsedSize: collapsedSizePx + 'px' },
847
+ React__default['default'].createElement(Typography, { ref: typographyRef, variant: typographyVariant }, text)),
848
+ collapsible && !open && React__default['default'].createElement(core.Box, { className: classes.overlay })));
888
849
  };
889
850
 
890
851
  var SemanticColors;
@@ -947,42 +908,21 @@ Divider.defaultProps = {
947
908
  textTransform: 'lowercase',
948
909
  };
949
910
 
950
- var getLinkColor = function (_a, _b) {
951
- var palette = _a.palette;
952
- var _c = _b.color, color = _c === void 0 ? 'info' : _c;
953
- var resolved;
954
- if (['primary', 'secondary', 'info', 'error'].includes(color)) {
955
- resolved = palette[color].main;
956
- }
957
- else if (['textPrimary', 'textSecondary'].includes(color)) {
958
- resolved = palette.text[color.substring(4).toLowerCase()];
959
- }
960
- else if (color === 'inherit') {
961
- resolved = color;
962
- }
963
- return resolved;
964
- };
965
- var useLinkStyles = styles.makeStyles(function (theme) {
966
- var _a;
967
- return ({
968
- root: (_a = {
969
- display: 'flex',
970
- color: function (props) { return getLinkColor(theme, props); }
971
- },
972
- _a["& ." + iconStaticClassName] = {
973
- alignSelf: 'center',
974
- },
975
- _a),
976
- });
977
- });
911
+ var useLinkStyles = styles.makeStyles(function (theme) { return ({
912
+ root: function (props) {
913
+ var _a;
914
+ return (__assign(__assign({ display: 'flex' }, (props.color === undefined && { color: theme.palette.info.main })), (_a = {}, _a["& ." + iconStaticClassName] = {
915
+ alignSelf: 'center',
916
+ }, _a)));
917
+ },
918
+ }); });
978
919
 
979
920
  var Link = React.forwardRef(function (props, ref) {
980
- var children = props.children; props.color; var muiProps = __rest(props, ["children", "color"]);
921
+ var children = props.children, muiProps = __rest(props, ["children"]);
981
922
  var classes = useLinkStyles(props);
982
- return (React__default['default'].createElement(MuiLink__default['default'], __assign({ ref: ref, classes: { root: classes.root } }, muiProps), children));
923
+ return (React__default['default'].createElement(core.Link, __assign({ ref: ref, classes: { root: classes.root } }, muiProps), children));
983
924
  });
984
925
  Link.defaultProps = {
985
- color: 'info',
986
926
  variant: 'body1',
987
927
  };
988
928
  Link.displayName = 'Link';
@@ -1124,13 +1064,12 @@ Tooltip.displayName = 'Tooltip';
1124
1064
 
1125
1065
  var useCollapsibleText = function () {
1126
1066
  var _a = React.useState(false), open = _a[0], setOpen = _a[1];
1127
- var _b = React.useState(false), collapsible = _b[0], setCollapsible = _b[1];
1128
- var toggle = function () { return collapsible && setOpen(!open); };
1067
+ var collapseState = React.useState(false);
1068
+ var toggle = function () { return collapseState[0] && setOpen(!open); };
1129
1069
  return {
1130
1070
  collapsibleText: {
1131
1071
  open: open,
1132
- collapsible: collapsible,
1133
- setCollapsible: setCollapsible,
1072
+ collapseState: collapseState,
1134
1073
  },
1135
1074
  toggle: toggle,
1136
1075
  };