beem-component 2.1.28 → 2.1.30

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 (81) hide show
  1. package/Dockerfile +3 -1
  2. package/Jenkinsfile +20 -5
  3. package/dist/assets/voiceCallIcon.svg +5 -0
  4. package/dist/components/Alert/Alert.js +83 -0
  5. package/dist/components/Alert/Alert.stories.js +66 -0
  6. package/dist/components/BmCustomCardTitle/CustomCardTitle.js +181 -0
  7. package/dist/components/BmCustomCardTitle/CustomCardTitle.stories.js +92 -0
  8. package/dist/components/BmSelector/BmSelector.js +31 -4
  9. package/dist/components/BmSelector/BmSelector.stories.js +14 -1
  10. package/dist/components/BmTabv2/BmTabv2.js +51 -0
  11. package/dist/components/BmTabv2/BmTabv2.stories.js +73 -0
  12. package/dist/components/Card_v2/Card.js +53 -13
  13. package/dist/components/ChatComponents/ChatBody/chatBody.js +404 -104
  14. package/dist/components/DepartmentCard/DepartmentCard.js +99 -0
  15. package/dist/components/DepartmentCard/DepartmentCard.stories.js +53 -0
  16. package/dist/components/HorizontalCard/HorizontalCard.js +142 -0
  17. package/dist/components/HorizontalCard/HorizontalCard.stories.js +40 -0
  18. package/dist/components/InfoPanel/InfoPanel.js +72 -21
  19. package/dist/components/InfoPanel/InfoPanel.stories.js +56 -4
  20. package/dist/components/Modals/modal.js +26 -10
  21. package/dist/components/Modals/modals.stories.js +13 -6
  22. package/dist/components/ProfileIcon/ProfileIcon.js +5 -0
  23. package/dist/components/ProgressIndicator/ProgressIndicator.js +17 -3
  24. package/dist/components/ResourceCard/ResourceCard.js +132 -0
  25. package/dist/components/ResourceCard/ResourceCard.stories.js +94 -0
  26. package/dist/components/SelectionNotice/SelectionNotice.js +17 -3
  27. package/dist/components/globalStyles.js +1 -1
  28. package/dist/components/index.js +42 -0
  29. package/dist/components/text.js +11 -10
  30. package/dist/components/typography.js +3 -2
  31. package/nginx.conf +26 -12
  32. package/package.json +2 -1
  33. package/public/index.html +1 -0
  34. package/src/App.js +805 -1412
  35. package/src/fonts/Inter-Black.woff2 +0 -0
  36. package/src/fonts/Inter-Bold.woff2 +0 -0
  37. package/src/fonts/Inter-ExtraBold.woff2 +0 -0
  38. package/src/fonts/Inter-ExtraLight.woff2 +0 -0
  39. package/src/fonts/Inter-Light.woff2 +0 -0
  40. package/src/fonts/Inter-Medium.woff2 +0 -0
  41. package/src/fonts/Inter-Regular.woff2 +0 -0
  42. package/src/fonts/Inter-SemiBold.woff2 +0 -0
  43. package/src/fonts/Inter-Thin.woff2 +0 -0
  44. package/src/fonts/Inter-VariableFont_opsz,wght.ttf +0 -0
  45. package/src/fonts/InterDisplay-Black.woff2 +0 -0
  46. package/src/fonts/InterDisplay-Bold.woff2 +0 -0
  47. package/src/fonts/InterDisplay-ExtraBold.woff2 +0 -0
  48. package/src/fonts/InterDisplay-ExtraLight.woff2 +0 -0
  49. package/src/fonts/InterDisplay-Light.woff2 +0 -0
  50. package/src/fonts/InterDisplay-Medium.woff2 +0 -0
  51. package/src/fonts/InterDisplay-SemiBold.woff2 +0 -0
  52. package/src/fonts/InterDisplay-Thin.woff2 +0 -0
  53. package/src/fonts.scss +4 -1
  54. package/src/lib/assets/voiceCallIcon.svg +5 -0
  55. package/src/lib/components/Alert/Alert.js +111 -0
  56. package/src/lib/components/Alert/Alert.stories.jsx +66 -0
  57. package/src/lib/components/BmCustomCardTitle/CustomCardTitle.js +162 -0
  58. package/src/lib/components/BmCustomCardTitle/CustomCardTitle.stories.jsx +92 -0
  59. package/src/lib/components/BmSelector/BmSelector.js +34 -2
  60. package/src/lib/components/BmSelector/BmSelector.stories.jsx +10 -0
  61. package/src/lib/components/BmTabv2/BmTabv2.js +109 -0
  62. package/src/lib/components/BmTabv2/BmTabv2.stories.jsx +51 -0
  63. package/src/lib/components/Card_v2/Card.js +63 -12
  64. package/src/lib/components/ChatComponents/ChatBody/chatBody.js +553 -57
  65. package/src/lib/components/DepartmentCard/DepartmentCard.js +130 -0
  66. package/src/lib/components/DepartmentCard/DepartmentCard.stories.jsx +38 -0
  67. package/src/lib/components/HorizontalCard/HorizontalCard.js +276 -0
  68. package/src/lib/components/HorizontalCard/HorizontalCard.stories.jsx +33 -0
  69. package/src/lib/components/InfoPanel/InfoPanel.js +55 -12
  70. package/src/lib/components/InfoPanel/InfoPanel.stories.jsx +42 -2
  71. package/src/lib/components/Modals/modal.js +17 -4
  72. package/src/lib/components/Modals/modals.stories.js +10 -6
  73. package/src/lib/components/ProfileIcon/ProfileIcon.js +4 -0
  74. package/src/lib/components/ProgressIndicator/ProgressIndicator.js +19 -1
  75. package/src/lib/components/ResourceCard/ResourceCard.js +213 -0
  76. package/src/lib/components/ResourceCard/ResourceCard.stories.jsx +68 -0
  77. package/src/lib/components/SelectionNotice/SelectionNotice.js +19 -1
  78. package/src/lib/components/globalStyles.js +2 -1
  79. package/src/lib/components/index.js +13 -0
  80. package/src/lib/components/text.js +17 -11
  81. package/src/lib/components/typography.js +1 -0
@@ -10,7 +10,7 @@ var _icons = require("@material-ui/icons");
10
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
  var _colors = require("../colors");
12
12
  var _iconStyles = require("../iconStyles");
13
- const _excluded = ["children", "show", "size", "onHide", "centered"],
13
+ const _excluded = ["children", "show", "size", "zIndex", "onHide", "centered"],
14
14
  _excluded2 = ["children", "size", "onHide", "subHeading", "closeButton", "show", "icon", "trailingIcon"];
15
15
  /* eslint-disable no-undef */
16
16
  /* eslint-disable react/display-name */
@@ -25,22 +25,36 @@ const {
25
25
  } = /*#__PURE__*/_react.default.createContext();
26
26
  const Overlay = exports.Overlay = _styledComponents.default.div.withConfig({
27
27
  displayName: "modal__Overlay"
28
- })(["position:fixed;top:0;left:0;z-index:9999;width:100vw;height:100vh;background-color:", ";"], _colors.BmBgGrey45);
28
+ })(["position:fixed;top:0;left:0;z-index:", ";width:100vw;height:100vh;background-color:", ";"], _ref => {
29
+ let {
30
+ zIndex
31
+ } = _ref;
32
+ return zIndex || 20;
33
+ }, _colors.BmBgGrey45);
29
34
  const ModalContent = exports.ModalContent = _styledComponents.default.div.withConfig({
30
35
  displayName: "modal__ModalContent"
31
- })(["display:flex;flex-direction:column;border-radius:0.8571rem;padding:1rem;margin:2rem auto;background:", ";width:auto;max-width:100%;> *:not(:last-child){margin-bottom:0.5rem;}@media (min-width:576px){width:500px;}"], _colors.BmPrimaryWhite);
36
+ })(["display:flex;flex-direction:column;border-radius:0.8571rem;padding:1rem;margin:2rem auto;background:", ";width:auto;max-width:100%;> *:not(:last-child){margin-bottom:0.5rem;}@media (min-width:576px){width:", ";}"], _colors.BmPrimaryWhite, _ref2 => {
37
+ let {
38
+ size
39
+ } = _ref2;
40
+ if (size) {
41
+ return size;
42
+ }
43
+ return '500px';
44
+ });
32
45
  const ModalWrapper = exports.ModalWrapper = _styledComponents.default.div.withConfig({
33
46
  displayName: "modal__ModalWrapper"
34
47
  })(["position:fixed;top:0;left:0;z-index:9999;display:block;width:100%;height:100%;overflow:hidden;outline:0;margin:auto;overflow-x:hidden;overflow-y:auto;"]);
35
- const BmModal = _ref => {
48
+ const BmModal = _ref3 => {
36
49
  let {
37
50
  children,
38
51
  show,
39
52
  size,
53
+ zIndex,
40
54
  onHide,
41
55
  centered
42
- } = _ref,
43
- rest = _objectWithoutProperties(_ref, _excluded);
56
+ } = _ref3,
57
+ rest = _objectWithoutProperties(_ref3, _excluded);
44
58
  const [toggle, setToggle] = (0, _react.useState)(show);
45
59
  (0, _react.useEffect)(() => {
46
60
  setToggle(show);
@@ -54,7 +68,9 @@ const BmModal = _ref => {
54
68
  document.addEventListener('keydown', keyPress);
55
69
  return () => document.removeEventListener('keydown', keyPress);
56
70
  }, [keyPress]);
57
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toggle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Overlay, null), /*#__PURE__*/_react.default.createElement(ModalWrapper, {
71
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toggle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Overlay, {
72
+ zIndex: zIndex
73
+ }), /*#__PURE__*/_react.default.createElement(ModalWrapper, {
58
74
  showModal: show,
59
75
  centered: centered,
60
76
  onHide: onHide
@@ -79,7 +95,7 @@ const ModalHeaderContent = _styledComponents.default.div.withConfig({
79
95
  const IconContainer = _styledComponents.default.div.withConfig({
80
96
  displayName: "modal__IconContainer"
81
97
  })(["display:flex;padding:0.5714rem;justify-content:center;align-items:center;border-radius:0.7143rem;border:0.0714rem solid var(--Gray-200,#eaecf0);background:var(--Base-White,#fff);box-shadow:0rem 0.0714rem 0.1429rem 0rem rgba(16,24,40,0.05);"]);
82
- BmModal.Header = _ref2 => {
98
+ BmModal.Header = _ref4 => {
83
99
  let {
84
100
  children,
85
101
  size,
@@ -89,8 +105,8 @@ BmModal.Header = _ref2 => {
89
105
  show,
90
106
  icon,
91
107
  trailingIcon
92
- } = _ref2,
93
- rest = _objectWithoutProperties(_ref2, _excluded2);
108
+ } = _ref4,
109
+ rest = _objectWithoutProperties(_ref4, _excluded2);
94
110
  return /*#__PURE__*/_react.default.createElement(Consumer, null, value => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ModalHeader, rest, trailingIcon && /*#__PURE__*/_react.default.createElement(IconContainer, null, trailingIcon), /*#__PURE__*/_react.default.createElement("div", {
95
111
  style: {
96
112
  width: '100%'
@@ -15,12 +15,13 @@ var _default = exports.default = {
15
15
  component: _modal.default,
16
16
  title: 'components/Modals',
17
17
  argTypes: {
18
- // size: {
19
- // options: ["small", "default", "large", "xlarge"],
20
- // control: { type: "select" },
21
- // description: "Size of the Modal (Optional)",
22
- // defaultValue: { summary: "default" },
23
- // },
18
+ size: {
19
+ control: {
20
+ type: 'text'
21
+ },
22
+ description: 'Controls the width of the modal in Pixels',
23
+ defaultValue: '500px'
24
+ },
24
25
  closeButton: {
25
26
  description: 'Placed on BmModal.Header component. Displays the close button (X)'
26
27
  },
@@ -35,6 +36,12 @@ var _default = exports.default = {
35
36
  },
36
37
  onHide: {
37
38
  description: 'Handling the closing of the modal'
39
+ },
40
+ zIndex: {
41
+ description: 'Controls the stacking order of the modal in an event you have multiple modals',
42
+ control: {
43
+ type: 'number'
44
+ }
38
45
  }
39
46
  }
40
47
  };
@@ -11,6 +11,7 @@ var _wa = _interopRequireDefault(require("../../assets/wa.png"));
11
11
  var _fb = _interopRequireDefault(require("../../assets/fb.png"));
12
12
  var _insta = _interopRequireDefault(require("../../assets/insta.png"));
13
13
  var _Google_Messages_logo = _interopRequireDefault(require("../../assets/Google_Messages_logo.png"));
14
+ var _voiceCallIcon = _interopRequireDefault(require("../../assets/voiceCallIcon.svg"));
14
15
  const _excluded = ["img", "content", "channel", "size"];
15
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -84,6 +85,10 @@ const BmProfileIcon = _ref2 => {
84
85
  size: size,
85
86
  src: _Google_Messages_logo.default,
86
87
  alt: "icon"
88
+ }), channel && channel === 'voice_call' && /*#__PURE__*/_react.default.createElement(Dot, {
89
+ size: size,
90
+ src: _voiceCallIcon.default,
91
+ alt: "icon"
87
92
  })));
88
93
  };
89
94
  exports.BmProfileIcon = BmProfileIcon;
@@ -6,8 +6,22 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
- var _convertToRGBA = _interopRequireDefault(require("../../../util/convertToRGBA"));
10
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const hexToRgba = function (hex) {
11
+ let opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.6;
12
+ try {
13
+ const normalizedHex = hex === null || hex === void 0 ? void 0 : hex.replace('#', '');
14
+ if (!normalizedHex || normalizedHex.length !== 6 || !/^[0-9a-fA-F]{6}$/.test(normalizedHex)) {
15
+ throw new Error('Invalid hex');
16
+ }
17
+ const r = parseInt(normalizedHex.slice(0, 2), 16);
18
+ const g = parseInt(normalizedHex.slice(2, 4), 16);
19
+ const b = parseInt(normalizedHex.slice(4, 6), 16);
20
+ return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(opacity, ")");
21
+ } catch (e) {
22
+ return "rgba(0, 0, 0, ".concat(opacity, ")");
23
+ }
24
+ };
11
25
  const Container = _styledComponents.default.div.withConfig({
12
26
  displayName: "ProgressIndicator__Container"
13
27
  })(["margin-bottom:1rem;--primary-color:", ";--primary-light:", ";--primary-lighter:", ";--muted-color:", ";--muted-foreground-color:", ";@media (min-width:45.7143rem){margin-bottom:1.5rem;}"], _ref => {
@@ -19,12 +33,12 @@ const Container = _styledComponents.default.div.withConfig({
19
33
  let {
20
34
  primaryColor
21
35
  } = _ref2;
22
- return (0, _convertToRGBA.default)(primaryColor, 0.2);
36
+ return hexToRgba(primaryColor, 0.2);
23
37
  }, _ref3 => {
24
38
  let {
25
39
  primaryColor
26
40
  } = _ref3;
27
- return (0, _convertToRGBA.default)(primaryColor, 0.4);
41
+ return hexToRgba(primaryColor, 0.4);
28
42
  }, _ref4 => {
29
43
  let {
30
44
  mutedColor
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /* eslint-disable react/no-array-index-key */
11
+
12
+ const CardWrapper = _styledComponents.default.div.withConfig({
13
+ displayName: "ResourceCard__CardWrapper"
14
+ })(["overflow:hidden;border:1px solid #e5e7eb;border-radius:0.5rem;border-top:4px solid ", ";background-color:#ffffff;opacity:", ";transition:opacity 0.3s;"], _ref => {
15
+ let {
16
+ borderTopColor
17
+ } = _ref;
18
+ return borderTopColor || '#cccccc';
19
+ }, _ref2 => {
20
+ let {
21
+ isActive
22
+ } = _ref2;
23
+ return isActive ? 1 : 0.5;
24
+ });
25
+ const Header = _styledComponents.default.div.withConfig({
26
+ displayName: "ResourceCard__Header"
27
+ })(["padding:1rem 1rem 0.5rem 1rem;"]);
28
+ const TitleRow = _styledComponents.default.div.withConfig({
29
+ displayName: "ResourceCard__TitleRow"
30
+ })(["display:flex;justify-content:space-between;align-items:flex-start;"]);
31
+ const TitleContainer = _styledComponents.default.div.withConfig({
32
+ displayName: "ResourceCard__TitleContainer"
33
+ })(["display:flex;flex-direction:column;"]);
34
+ const CardTitle = _styledComponents.default.h3.withConfig({
35
+ displayName: "ResourceCard__CardTitle"
36
+ })(["font-size:1.125rem;margin:0;"]);
37
+ const BadgeRow = _styledComponents.default.div.withConfig({
38
+ displayName: "ResourceCard__BadgeRow"
39
+ })(["display:flex;gap:0.5rem;margin-top:0.25rem;flex-wrap:wrap;"]);
40
+ const Badge = _styledComponents.default.span.withConfig({
41
+ displayName: "ResourceCard__Badge"
42
+ })(["display:inline-flex;align-items:center;border:1px solid #e5e7eb;border-radius:0.375rem;padding:0.125rem 0.5rem;font-size:0.75rem;background-color:#f9fafb;color:", ";"], _ref3 => {
43
+ let {
44
+ color
45
+ } = _ref3;
46
+ return color || 'inherit';
47
+ });
48
+ const IconsContainer = _styledComponents.default.div.withConfig({
49
+ displayName: "ResourceCard__IconsContainer"
50
+ })(["display:flex;gap:0.25rem;"]);
51
+ const IconButton = _styledComponents.default.button.withConfig({
52
+ displayName: "ResourceCard__IconButton"
53
+ })(["background:none;border:none;padding:0;height:2rem;width:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:", ";&:hover{color:", ";}"], _ref4 => {
54
+ let {
55
+ destructive
56
+ } = _ref4;
57
+ return destructive ? '#ef4444' : 'inherit';
58
+ }, _ref5 => {
59
+ let {
60
+ destructive
61
+ } = _ref5;
62
+ return destructive ? '#ef4444' : '#374151';
63
+ });
64
+ const Content = _styledComponents.default.div.withConfig({
65
+ displayName: "ResourceCard__Content"
66
+ })(["margin-top:1rem;padding:0 1rem 0.5rem 1rem;display:flex;flex-direction:column;gap:0.5rem;font-size:0.875rem;"]);
67
+ const InfoRow = _styledComponents.default.div.withConfig({
68
+ displayName: "ResourceCard__InfoRow"
69
+ })(["display:flex;flex-wrap:wrap;gap:0.25rem;"]);
70
+ const Label = _styledComponents.default.span.withConfig({
71
+ displayName: "ResourceCard__Label"
72
+ })(["color:#6b7280;font-size:0.875rem;"]);
73
+ const Value = _styledComponents.default.span.withConfig({
74
+ displayName: "ResourceCard__Value"
75
+ })(["color:#374151;font-size:0.875rem;"]);
76
+ const Footer = _styledComponents.default.div.withConfig({
77
+ displayName: "ResourceCard__Footer"
78
+ })(["display:flex;justify-content:flex-end;align-items:center;margin-top:1rem;padding:0 1rem 0.75rem 1rem;"]);
79
+ const StatusDot = _styledComponents.default.span.withConfig({
80
+ displayName: "ResourceCard__StatusDot"
81
+ })(["flex-shrink:0;width:0.5rem;height:0.5rem;margin-right:0.5rem;border-radius:9999px;background-color:", ";"], _ref6 => {
82
+ let {
83
+ isActive
84
+ } = _ref6;
85
+ return isActive ? '#22c55e' : '#9ca3af';
86
+ });
87
+ const StatusText = _styledComponents.default.span.withConfig({
88
+ displayName: "ResourceCard__StatusText"
89
+ })(["font-size:0.75rem;color:#6b7280;"]);
90
+ const BmResourceCard = _ref7 => {
91
+ let {
92
+ borderTopColor = '#cccccc',
93
+ isActive = true,
94
+ name,
95
+ type,
96
+ resourceBadges = [],
97
+ departmentName,
98
+ email,
99
+ phone,
100
+ capacity,
101
+ features,
102
+ availability,
103
+ onEdit,
104
+ onDelete,
105
+ EditIcon,
106
+ DeleteIcon
107
+ } = _ref7;
108
+ return /*#__PURE__*/_react.default.createElement(CardWrapper, {
109
+ borderTopColor: borderTopColor,
110
+ isActive: isActive
111
+ }, /*#__PURE__*/_react.default.createElement(Header, null, /*#__PURE__*/_react.default.createElement(TitleRow, null, /*#__PURE__*/_react.default.createElement(TitleContainer, null, /*#__PURE__*/_react.default.createElement(CardTitle, null, name), /*#__PURE__*/_react.default.createElement(BadgeRow, null, /*#__PURE__*/_react.default.createElement(Badge, null, type), resourceBadges.map((badge, index) => /*#__PURE__*/_react.default.createElement(Badge, {
112
+ key: index,
113
+ color: badge.color
114
+ }, badge.icon && /*#__PURE__*/_react.default.createElement(badge.icon, {
115
+ style: {
116
+ fontSize: 14,
117
+ marginRight: 4
118
+ }
119
+ }), badge.label)))), /*#__PURE__*/_react.default.createElement(IconsContainer, null, /*#__PURE__*/_react.default.createElement(IconButton, {
120
+ onClick: onEdit
121
+ }, EditIcon && /*#__PURE__*/_react.default.createElement(EditIcon, {
122
+ fontSize: "small"
123
+ })), /*#__PURE__*/_react.default.createElement(IconButton, {
124
+ destructive: true,
125
+ onClick: onDelete
126
+ }, DeleteIcon && /*#__PURE__*/_react.default.createElement(DeleteIcon, {
127
+ fontSize: "small"
128
+ }))))), /*#__PURE__*/_react.default.createElement(Content, null, departmentName && /*#__PURE__*/_react.default.createElement(InfoRow, null, /*#__PURE__*/_react.default.createElement(Label, null, "Department:"), /*#__PURE__*/_react.default.createElement(Value, null, departmentName)), email && /*#__PURE__*/_react.default.createElement(InfoRow, null, /*#__PURE__*/_react.default.createElement(Label, null, "Email:"), /*#__PURE__*/_react.default.createElement(Value, null, email)), phone && /*#__PURE__*/_react.default.createElement(InfoRow, null, /*#__PURE__*/_react.default.createElement(Label, null, "Phone:"), /*#__PURE__*/_react.default.createElement(Value, null, phone)), type === 'room' && capacity && /*#__PURE__*/_react.default.createElement(InfoRow, null, /*#__PURE__*/_react.default.createElement(Label, null, "Capacity:"), /*#__PURE__*/_react.default.createElement(Value, null, capacity)), type === 'room' && features && features.length > 0 && /*#__PURE__*/_react.default.createElement(InfoRow, null, /*#__PURE__*/_react.default.createElement(Label, null, "Features:"), /*#__PURE__*/_react.default.createElement(Value, null, features.join(', '))), availability && /*#__PURE__*/_react.default.createElement(InfoRow, null, /*#__PURE__*/_react.default.createElement(Label, null, "Availability:"), /*#__PURE__*/_react.default.createElement(Value, null, availability))), /*#__PURE__*/_react.default.createElement(Footer, null, /*#__PURE__*/_react.default.createElement(StatusDot, {
129
+ isActive: isActive
130
+ }), /*#__PURE__*/_react.default.createElement(StatusText, null, isActive ? 'Active' : 'Inactive')));
131
+ };
132
+ var _default = exports.default = BmResourceCard;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.StaffExample = exports.RoomExample = exports.Default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _Edit = _interopRequireDefault(require("@mui/icons-material/Edit"));
9
+ var _Delete = _interopRequireDefault(require("@mui/icons-material/Delete"));
10
+ var _CalendarToday = _interopRequireDefault(require("@mui/icons-material/CalendarToday"));
11
+ var _ResourceCard = _interopRequireDefault(require("./ResourceCard"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
+ var _default = exports.default = {
15
+ title: 'Components/BmResourceCard',
16
+ component: _ResourceCard.default,
17
+ argTypes: {
18
+ borderTopColor: {
19
+ control: 'color'
20
+ },
21
+ isActive: {
22
+ control: 'boolean'
23
+ },
24
+ name: {
25
+ control: 'text'
26
+ },
27
+ type: {
28
+ control: 'text'
29
+ },
30
+ departmentName: {
31
+ control: 'text'
32
+ },
33
+ email: {
34
+ control: 'text'
35
+ },
36
+ phone: {
37
+ control: 'text'
38
+ },
39
+ capacity: {
40
+ control: 'number'
41
+ },
42
+ availability: {
43
+ control: 'text'
44
+ }
45
+ }
46
+ };
47
+ const Template = args => /*#__PURE__*/_react.default.createElement(_ResourceCard.default, _extends({}, args, {
48
+ EditIcon: _Edit.default,
49
+ DeleteIcon: _Delete.default
50
+ }));
51
+ const Default = exports.Default = Template.bind({});
52
+ Default.args = {
53
+ borderTopColor: '#3b82f6',
54
+ isActive: true,
55
+ name: 'Room 101',
56
+ type: 'room',
57
+ resourceBadges: [{
58
+ label: 'Synced',
59
+ icon: _CalendarToday.default,
60
+ color: '#10b981'
61
+ }],
62
+ departmentName: 'Radiology',
63
+ capacity: 12,
64
+ features: ['Projector', 'Whiteboard'],
65
+ availability: 'Weekdays 9am - 5pm'
66
+ };
67
+ const StaffExample = exports.StaffExample = Template.bind({});
68
+ StaffExample.args = {
69
+ borderTopColor: '#10b981',
70
+ isActive: true,
71
+ name: 'Dr. Sarah Johnson',
72
+ type: 'staff',
73
+ resourceBadges: [{
74
+ label: 'Google Synced',
75
+ icon: _CalendarToday.default,
76
+ color: '#3b82f6'
77
+ }],
78
+ departmentName: 'Cardiology',
79
+ email: 'sarah.johnson@hospital.com',
80
+ phone: '+1 555 123 4567',
81
+ availability: 'Mon - Fri, 9am - 3pm'
82
+ };
83
+ const RoomExample = exports.RoomExample = Template.bind({});
84
+ RoomExample.args = {
85
+ borderTopColor: '#f59e0b',
86
+ isActive: false,
87
+ name: 'Conference Room B',
88
+ type: 'room',
89
+ resourceBadges: [],
90
+ departmentName: 'Oncology',
91
+ capacity: 20,
92
+ features: ['Video Conferencing', 'AC', 'Whiteboard'],
93
+ availability: 'Available on demand'
94
+ };
@@ -6,20 +6,34 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
- var _convertToRGBA = _interopRequireDefault(require("../../../util/convertToRGBA"));
10
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const hexToRgba = function (hex) {
11
+ let opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.6;
12
+ try {
13
+ const normalizedHex = hex === null || hex === void 0 ? void 0 : hex.replace('#', '');
14
+ if (!normalizedHex || normalizedHex.length !== 6 || !/^[0-9a-fA-F]{6}$/.test(normalizedHex)) {
15
+ throw new Error('Invalid hex');
16
+ }
17
+ const r = parseInt(normalizedHex.slice(0, 2), 16);
18
+ const g = parseInt(normalizedHex.slice(2, 4), 16);
19
+ const b = parseInt(normalizedHex.slice(4, 6), 16);
20
+ return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(opacity, ")");
21
+ } catch (e) {
22
+ return "rgba(0, 0, 0, ".concat(opacity, ")");
23
+ }
24
+ };
11
25
  const Container = _styledComponents.default.div.withConfig({
12
26
  displayName: "SelectionNotice__Container"
13
27
  })(["background-color:", ";border:0.0714rem solid ", ";padding:0.5rem;border-radius:0.5rem;text-align:center;animation:fadeIn 0.3s ease-in;@media (min-width:45.7143rem){padding:0.75rem;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}"], _ref => {
14
28
  let {
15
29
  color
16
30
  } = _ref;
17
- return (0, _convertToRGBA.default)(color || '#33B1BA', 0.05);
31
+ return hexToRgba(color || '#33B1BA', 0.05);
18
32
  }, _ref2 => {
19
33
  let {
20
34
  color
21
35
  } = _ref2;
22
- return (0, _convertToRGBA.default)(color || '#33B1BA', 0.2);
36
+ return hexToRgba(color || '#33B1BA', 0.2);
23
37
  });
24
38
  const Text = _styledComponents.default.p.withConfig({
25
39
  displayName: "SelectionNotice__Text"
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.GlobalStyle = void 0;
7
7
  var _styledComponents = require("styled-components");
8
8
  var _text = require("./text");
9
- const GlobalStyle = exports.GlobalStyle = (0, _styledComponents.createGlobalStyle)(["*{font-size:14px;cursor:pointer}h1{", "}h2{", "}h3{", "}h4{", "}h5{", "}h6{", "}p{", "}input{", "}a{", "}"], _text.h1, _text.h2, _text.h3, _text.h4, _text.h5, _text.h6, _text.p, _text.input, _text.a);
9
+ const GlobalStyle = exports.GlobalStyle = (0, _styledComponents.createGlobalStyle)(["*{font-size:14px;cursor:pointer}h1{", "}h2{", "}h3{", "}h4{", "}h5{", "}h6{", "}p{", "}input{", "}a{", "}span{", "}"], _text.h1, _text.h2, _text.h3, _text.h4, _text.h5, _text.h6, _text.p, _text.input, _text.a, _text.span);
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "BmAccordion", {
9
9
  return _Accordion.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "BmAlertBox", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Alert.default;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "BmAlertIcon", {
13
19
  enumerable: true,
14
20
  get: function () {
@@ -166,6 +172,24 @@ Object.defineProperty(exports, "BmCounter", {
166
172
  return _messageCounter.default;
167
173
  }
168
174
  });
175
+ Object.defineProperty(exports, "BmCustomCardTitle", {
176
+ enumerable: true,
177
+ get: function () {
178
+ return _CustomCardTitle.default;
179
+ }
180
+ });
181
+ Object.defineProperty(exports, "BmCustomTab", {
182
+ enumerable: true,
183
+ get: function () {
184
+ return _BmTabv.default;
185
+ }
186
+ });
187
+ Object.defineProperty(exports, "BmDepartmentCard", {
188
+ enumerable: true,
189
+ get: function () {
190
+ return _DepartmentCard.default;
191
+ }
192
+ });
169
193
  Object.defineProperty(exports, "BmEmojiIcon", {
170
194
  enumerable: true,
171
195
  get: function () {
@@ -184,6 +208,12 @@ Object.defineProperty(exports, "BmFooterRight", {
184
208
  return _ContentTitle.BmFooterRight;
185
209
  }
186
210
  });
211
+ Object.defineProperty(exports, "BmHorizontalCard", {
212
+ enumerable: true,
213
+ get: function () {
214
+ return _HorizontalCard.default;
215
+ }
216
+ });
187
217
  Object.defineProperty(exports, "BmIcons", {
188
218
  enumerable: true,
189
219
  get: function () {
@@ -298,6 +328,12 @@ Object.defineProperty(exports, "BmQuickReplyIcon", {
298
328
  return _iconStyles.BmQuickReplyIcon;
299
329
  }
300
330
  });
331
+ Object.defineProperty(exports, "BmResourceCard", {
332
+ enumerable: true,
333
+ get: function () {
334
+ return _ResourceCard.default;
335
+ }
336
+ });
301
337
  Object.defineProperty(exports, "BmRouteLink", {
302
338
  enumerable: true,
303
339
  get: function () {
@@ -465,5 +501,11 @@ var _LabelWithIcon = _interopRequireDefault(require("./LabelWithIcon/LabelWithIc
465
501
  var _Card = require("./Card_v2/Card");
466
502
  var _InfoPanel = _interopRequireDefault(require("./InfoPanel/InfoPanel"));
467
503
  var _BmSelector = _interopRequireDefault(require("./BmSelector/BmSelector"));
504
+ var _CustomCardTitle = _interopRequireDefault(require("./BmCustomCardTitle/CustomCardTitle"));
505
+ var _Alert = _interopRequireDefault(require("./Alert/Alert"));
506
+ var _DepartmentCard = _interopRequireDefault(require("./DepartmentCard/DepartmentCard"));
507
+ var _ResourceCard = _interopRequireDefault(require("./ResourceCard/ResourceCard"));
508
+ var _BmTabv = _interopRequireDefault(require("./BmTabv2/BmTabv2"));
509
+ var _HorizontalCard = _interopRequireDefault(require("./HorizontalCard/HorizontalCard"));
468
510
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
469
511
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -3,27 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.p = exports.input = exports.h6 = exports.h5 = exports.h4 = exports.h3 = exports.h2 = exports.h1 = exports.a = void 0;
6
+ exports.span = exports.p = exports.input = exports.h6 = exports.h5 = exports.h4 = exports.h3 = exports.h2 = exports.h1 = exports.a = void 0;
7
7
  var _typography = require("./typography");
8
8
  // 32px
9
- const h1 = exports.h1 = "font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 2.286rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
9
+ const h1 = exports.h1 = "font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 2.286rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
10
10
 
11
11
  // 24px
12
- const h2 = exports.h2 = "font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1.714rem;\nletter-spacing: -0.02em;\nmargin: 0rem;");
12
+ const h2 = exports.h2 = "font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1.714rem;\nletter-spacing: -0.02em;\nmargin: 0rem;");
13
13
 
14
14
  // 18px
15
- const h3 = exports.h3 = "font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1.286rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
15
+ const h3 = exports.h3 = "font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1.286rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
16
16
 
17
17
  // 16px
18
- const h4 = exports.h4 = " font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1.143rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
18
+ const h4 = exports.h4 = " font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1.143rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
19
19
 
20
20
  // 14px
21
- const h5 = exports.h5 = " font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
21
+ const h5 = exports.h5 = " font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
22
22
 
23
23
  // 12px
24
- const h6 = exports.h6 = " font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: .857rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
24
+ const h6 = exports.h6 = " font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: 500;\nfont-size: .857rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
25
25
 
26
26
  // 14px
27
- const p = exports.p = "font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
28
- const input = exports.input = " font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
29
- const a = exports.a = "font-family: ".concat(_typography.OpenSans, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
27
+ const p = exports.p = "font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
28
+ const input = exports.input = " font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
29
+ const a = exports.a = "font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
30
+ const span = exports.span = "font-family: ".concat(_typography.Inter, ";\nfont-style: normal;\nfont-weight: normal;\nfont-size: 1rem;\nletter-spacing: -0.02rem;\nmargin: 0rem;");
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.QuoteMark = exports.PullQuote = exports.PoppinsMedium = exports.Poppins = exports.P = exports.OpenSans = exports.Hero = exports.H6 = exports.H5 = exports.H4 = exports.H3 = exports.H2 = exports.H1 = exports.Captions = void 0;
6
+ exports.QuoteMark = exports.PullQuote = exports.PoppinsMedium = exports.Poppins = exports.P = exports.OpenSans = exports.Inter = exports.Hero = exports.H6 = exports.H5 = exports.H4 = exports.H3 = exports.H2 = exports.H1 = exports.Captions = void 0;
7
7
  const H1 = exports.H1 = '2.286rem';
8
8
  const H2 = exports.H2 = '1.714rem';
9
9
  const H3 = exports.H3 = '1.286rem';
@@ -17,4 +17,5 @@ const Captions = exports.Captions = '0.714rem';
17
17
  const Hero = exports.Hero = '1rem';
18
18
  const PoppinsMedium = exports.PoppinsMedium = 'PoppinsMedium';
19
19
  const Poppins = exports.Poppins = 'Poppins';
20
- const OpenSans = exports.OpenSans = 'OpenSans';
20
+ const OpenSans = exports.OpenSans = 'OpenSans';
21
+ const Inter = exports.Inter = 'Inter';
package/nginx.conf CHANGED
@@ -1,17 +1,31 @@
1
- server {
2
- listen 8085;
3
- root /usr/share/nginx/html;
1
+ # server {
2
+ # listen 8085;
3
+ # root /usr/share/nginx/html;
4
4
 
5
- index index.html index.htm;
5
+ # index index.html index.htm;
6
6
 
7
- include /etc/nginx/mime.types;
7
+ # include /etc/nginx/mime.types;
8
8
 
9
- gzip on;
10
- gzip_min_length 1000;
11
- gzip_proxied expired no-cache no-store private auth;
12
- gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
9
+ # gzip on;
10
+ # gzip_min_length 1000;
11
+ # gzip_proxied expired no-cache no-store private auth;
12
+ # gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
13
13
 
14
- location / {
15
- try_files $uri $uri/ /index.html;
16
- }
14
+ # location / {
15
+ # try_files $uri $uri/ /index.html;
16
+ # }
17
+ # }
18
+
19
+
20
+ # nginx.conf
21
+ server {
22
+ listen 3000;
23
+ server_name localhost;
24
+
25
+ root /usr/share/nginx/html;
26
+ index index.html;
27
+
28
+ location / {
29
+ try_files $uri $uri/ /index.html;
30
+ }
17
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beem-component",
3
- "version": "2.1.28",
3
+ "version": "2.1.30",
4
4
  "private": false,
5
5
  "main": "dist/components/index.js",
6
6
  "scripts": {
@@ -51,6 +51,7 @@
51
51
  "ajv": "^8.17.1",
52
52
  "ajv-keywords": "^5.1.0",
53
53
  "bootstrap": "^5.3.3",
54
+ "date-fns": "^4.1.0",
54
55
  "js-file-download": "^0.4.12",
55
56
  "lodash": "^4.17.21",
56
57
  "node-sass": "^6.0.1",
package/public/index.html CHANGED
@@ -4,6 +4,7 @@
4
4
  <head>
5
5
  <meta charset="utf-8" />
6
6
  <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400..700&display=swap" rel="stylesheet">
7
8
  <meta name="viewport" content="width=device-width, initial-scale=1" />
8
9
  <meta name="theme-color" content="#000000" />
9
10
  <meta name="description" content="Web site created using create-react-app" />