@tenancy.nz/feature-ui 1.4.11 → 1.5.1

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.
@@ -4,7 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var ui = require('@tenancy.nz/ui');
7
- var icons = require('@tenancy.nz/icons');
7
+ var EmailRoundedIcon = require('@mui/icons-material/EmailRounded');
8
+ var PhoneRoundedIcon = require('@mui/icons-material/PhoneRounded');
9
+ var PersonRoundedIcon = require('@mui/icons-material/PersonRounded');
8
10
  var IconLabel = require('./IconLabel.cjs');
9
11
 
10
12
  function AgentDetailsCard(_ref) {
@@ -33,8 +35,8 @@ function AgentDetailsCard(_ref) {
33
35
  variant: "text"
34
36
  }) : /* @__PURE__ */React.createElement(IconLabel.default, {
35
37
  color: "tertiary.main",
36
- startIcon: /* @__PURE__ */React.createElement(icons.UserIcon, {
37
- size: "24px"
38
+ startIcon: /* @__PURE__ */React.createElement(PersonRoundedIcon, {
39
+ fontSize: "small"
38
40
  })
39
41
  }, /* @__PURE__ */React.createElement(ui.Heading, {
40
42
  as: "h5",
@@ -45,8 +47,8 @@ function AgentDetailsCard(_ref) {
45
47
  variant: "text"
46
48
  }) : /* @__PURE__ */React.createElement(IconLabel.default, {
47
49
  color: "tertiary.main",
48
- startIcon: /* @__PURE__ */React.createElement(icons.PhoneIcon, {
49
- size: "24px"
50
+ startIcon: /* @__PURE__ */React.createElement(PhoneRoundedIcon, {
51
+ fontSize: "small"
50
52
  })
51
53
  }, /* @__PURE__ */React.createElement(ui.Text, {
52
54
  as: "span",
@@ -59,8 +61,8 @@ function AgentDetailsCard(_ref) {
59
61
  variant: "text"
60
62
  }) : /* @__PURE__ */React.createElement(IconLabel.default, {
61
63
  color: "tertiary.main",
62
- startIcon: /* @__PURE__ */React.createElement(icons.EnvelopeIcon, {
63
- size: "24px"
64
+ startIcon: /* @__PURE__ */React.createElement(EmailRoundedIcon, {
65
+ fontSize: "small"
64
66
  })
65
67
  }, /* @__PURE__ */React.createElement(ui.Text, {
66
68
  as: "span",
@@ -4,9 +4,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
6
6
  var React = require('react');
7
+ var Stack = require('@mui/material/Stack');
7
8
  var ui = require('@tenancy.nz/ui');
8
9
 
9
- var _excluded = ["width", "minWidth", "maxWidth", "height", "border", "label", "amount", "text"];
10
+ var _excluded = ["width", "minWidth", "maxWidth", "height", "border", "label", "amount", "text", "sx"];
10
11
  function AnalyticsBox(_ref) {
11
12
  var width = _ref.width,
12
13
  minWidth = _ref.minWidth,
@@ -16,40 +17,48 @@ function AnalyticsBox(_ref) {
16
17
  label = _ref.label,
17
18
  amount = _ref.amount,
18
19
  text = _ref.text,
20
+ _ref$sx = _ref.sx,
21
+ sx = _ref$sx === void 0 ? {} : _ref$sx,
19
22
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
20
23
  return /* @__PURE__ */React.createElement(ui.Paper, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, rest), {}, {
21
- sx: {
24
+ inset: "medium",
25
+ sx: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
22
26
  maxWidth: maxWidth,
23
27
  width: width,
24
28
  minWidth: minWidth,
25
- border: border,
26
- height: height || "100%",
29
+ border: border || "1px solid",
30
+ height: height,
27
31
  display: "flex",
28
32
  alignItems: "center",
29
- justifyContent: "center",
30
- padding: "16px"
31
- }
32
- }), /* @__PURE__ */React.createElement(ui.Box, null, /* @__PURE__ */React.createElement(ui.Heading, {
33
+ justifyContent: "center"
34
+ }, border ? {} : {
35
+ borderColor: "grey.300"
36
+ }), sx)
37
+ }), /* @__PURE__ */React.createElement(Stack, {
38
+ color: "text.primary"
39
+ }, /* @__PURE__ */React.createElement(ui.Heading, {
33
40
  align: "center",
34
41
  weight: "700",
35
42
  as: "h3",
43
+ color: "primary",
36
44
  gutterBottom: true
37
45
  }, amount), /* @__PURE__ */React.createElement(ui.Text, {
38
46
  align: "center",
39
- weight: "400",
40
- variant: "body2"
47
+ weight: "500",
48
+ variant: "body2",
49
+ color: "primary"
41
50
  }, label), text && /* @__PURE__ */React.createElement(ui.Text, {
42
51
  align: "center",
43
52
  weight: "400",
53
+ color: "primary",
44
54
  sx: {
45
55
  fontSize: {
46
56
  xs: 8,
47
- sm: 10,
48
- xl: 14
57
+ sm: 10
49
58
  },
50
- lineHeight: "15.6px",
59
+ lineHeight: "13px",
51
60
  maxWidth: "366px",
52
- mt: "8px"
61
+ mt: 1
53
62
  }
54
63
  }, text)));
55
64
  }
@@ -3,9 +3,12 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
+ var reactUid = require('react-uid');
7
+ var Stack = require('@mui/material/Stack');
8
+ var useMediaQuery = require('@mui/material/useMediaQuery');
6
9
  var ui = require('@tenancy.nz/ui');
7
10
  var AnalyticsBox = require('./AnalyticsBox.cjs');
8
- var EnquiriesDoughnutChart = require('./EnquiriesDoughnutChart.cjs');
11
+ var analyticsDoughnutChart = require('./analytics-doughnut-chart.cjs');
9
12
 
10
13
  function AnalyticsSection(_ref) {
11
14
  var viewingsCount = _ref.viewingsCount,
@@ -15,158 +18,165 @@ function AnalyticsSection(_ref) {
15
18
  applicationsCount = _ref.applicationsCount,
16
19
  averageRent = _ref.averageRent,
17
20
  textUsage = _ref.textUsage,
18
- tradeMeEnquiriesCount = _ref.tradeMeEnquiriesCount,
19
- bookMeEnquiriesCount = _ref.bookMeEnquiriesCount,
20
- manualEnquiryCount = _ref.manualEnquiryCount,
21
21
  agreementsCount = _ref.agreementsCount,
22
22
  agreementsFinalisedCount = _ref.agreementsFinalisedCount,
23
- filterDaysCount = _ref.filterDaysCount;
24
- var isXlUp = ui.useMediaQuery(function (theme) {
23
+ filterDaysCount = _ref.filterDaysCount,
24
+ allHouseEnquiriesCount = _ref.allHouseEnquiriesCount,
25
+ bookMeEnquiriesCount = _ref.bookMeEnquiriesCount,
26
+ oneRoofEnquiriesCount = _ref.oneRoofEnquiriesCount,
27
+ realestateEnquiriesCount = _ref.realestateEnquiriesCount,
28
+ tradeMeEnquiriesCount = _ref.tradeMeEnquiriesCount,
29
+ manualEnquiryCount = _ref.manualEnquiryCount,
30
+ allHouseBookingsCount = _ref.allHouseBookingsCount,
31
+ bookMeBookingsCount = _ref.bookMeBookingsCount,
32
+ oneRoofBookingsCount = _ref.oneRoofBookingsCount,
33
+ realestateBookingsCount = _ref.realestateBookingsCount,
34
+ tradeMeBookingsCount = _ref.tradeMeBookingsCount,
35
+ manualBookingsCount = _ref.manualBookingsCount,
36
+ _ref$outlinedItems = _ref.outlinedItems,
37
+ outlinedItems = _ref$outlinedItems === void 0 ? false : _ref$outlinedItems;
38
+ var isXlUp = useMediaQuery(function (theme) {
25
39
  return theme.breakpoints.up("xl");
26
40
  });
27
- return /* @__PURE__ */React.createElement(ui.Box, {
28
- display: "flex",
29
- align: "stretch",
30
- direction: {
31
- xs: "column-reverse",
32
- mlg: "row"
33
- },
34
- gap: "27px"
35
- }, /* @__PURE__ */React.createElement(ui.Box, {
36
- width: "100%",
41
+ var stats = [{
42
+ label: "Viewings",
43
+ value: viewingsCount
44
+ }, {
45
+ label: "Bookings",
46
+ value: bookingsCount
47
+ }, {
48
+ label: "Attendees",
49
+ value: attendeesCount
50
+ }, {
51
+ label: "Cancellations",
52
+ value: cancellationsCount
53
+ }, {
54
+ label: "Applications",
55
+ value: applicationsCount
56
+ }, {
57
+ label: "Average Rent",
58
+ value: "$".concat(averageRent)
59
+ }, {
60
+ label: "Text Usage Total",
61
+ value: textUsage
62
+ }];
63
+ return /* @__PURE__ */React.createElement(Stack, {
64
+ gap: 6
65
+ }, /* @__PURE__ */React.createElement(Stack, {
66
+ flexDirection: "row",
67
+ gap: 6,
68
+ flexWrap: "wrap",
69
+ alignItems: "stretch"
70
+ }, /* @__PURE__ */React.createElement(ui.Paper, {
71
+ outlined: outlinedItems,
72
+ inset: "medium",
73
+ overflow: false,
37
74
  sx: {
38
- maxWidth: {
39
- xs: "100%",
40
- mob: "340px",
41
- xl: "463px"
42
- }
75
+ width: "100%",
76
+ minWidth: {
77
+ lg: "456px"
78
+ },
79
+ flex: {
80
+ xs: "0 0 100%",
81
+ md: 1
82
+ },
83
+ alignItems: "center",
84
+ justifyContent: "center",
85
+ display: "flex"
43
86
  }
44
- }, /* @__PURE__ */React.createElement(ui.Paper, {
45
- outlined: true,
87
+ }, /* @__PURE__ */React.createElement(analyticsDoughnutChart.default, {
88
+ tradeMeCount: tradeMeEnquiriesCount,
89
+ bookMeCount: bookMeEnquiriesCount,
90
+ manualCount: manualEnquiryCount,
91
+ allhouseCount: allHouseEnquiriesCount,
92
+ oneRoofCount: oneRoofEnquiriesCount,
93
+ realEstateCount: realestateEnquiriesCount,
94
+ heading: "Number of enquiries"
95
+ })), /* @__PURE__ */React.createElement(ui.Paper, {
96
+ outlined: outlinedItems,
97
+ inset: "medium",
98
+ overflow: false,
46
99
  sx: {
47
100
  width: "100%",
48
- position: "relative",
49
- height: "100%"
101
+ minWidth: {
102
+ lg: "456px"
103
+ },
104
+ flex: {
105
+ xs: "0 0 100%",
106
+ md: 1
107
+ },
108
+ alignItems: "center",
109
+ justifyContent: "center",
110
+ display: "flex"
111
+ }
112
+ }, /* @__PURE__ */React.createElement(analyticsDoughnutChart.default, {
113
+ tradeMeCount: tradeMeBookingsCount,
114
+ bookMeCount: bookMeBookingsCount,
115
+ manualCount: manualBookingsCount,
116
+ allhouseCount: allHouseBookingsCount,
117
+ oneRoofCount: oneRoofBookingsCount,
118
+ realEstateCount: realestateBookingsCount,
119
+ heading: "Number of bookings"
120
+ })), /* @__PURE__ */React.createElement(Stack, {
121
+ gap: {
122
+ xs: 3,
123
+ md: 6
124
+ },
125
+ justifyContent: "space-between",
126
+ sx: {
127
+ flexDirection: {
128
+ xs: "row",
129
+ lg: "column"
130
+ },
131
+ flex: {
132
+ sm: "0 0 100%",
133
+ lg: "0 0 284px"
134
+ }
50
135
  }
51
- }, /* @__PURE__ */React.createElement(ui.Box, {
52
- mt: "20px",
53
- height: "100%"
54
- }, /* @__PURE__ */React.createElement(EnquiriesDoughnutChart.default, {
55
- tradeMeEnquiriesCount: tradeMeEnquiriesCount,
56
- bookMeEnquiriesCount: bookMeEnquiriesCount,
57
- manualEnquiryCount: manualEnquiryCount
58
- })))), /* @__PURE__ */React.createElement(ui.Box, {
59
- width: "100%"
60
- }, /* @__PURE__ */React.createElement(ui.Box, {
61
- display: "flex",
62
- direction: "row",
63
- width: "100%",
64
- gap: 6
65
- }, /* @__PURE__ */React.createElement(ui.Box, {
66
- flex: 3
67
- }, /* @__PURE__ */React.createElement(ui.Box, {
68
- display: "flex",
69
- gap: 6
70
- }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
71
- outlined: true,
72
- label: "Viewings",
73
- amount: viewingsCount,
74
- width: "100%",
75
- height: isXlUp ? "157px" : "125px"
76
- }), /* @__PURE__ */React.createElement(AnalyticsBox.default, {
77
- outlined: true,
78
- label: "Bookings",
79
- amount: bookingsCount,
80
- width: "100%",
81
- height: isXlUp ? "157px" : "125px"
82
- }), /* @__PURE__ */React.createElement(AnalyticsBox.default, {
83
- outlined: true,
84
- label: "Attendees",
85
- amount: attendeesCount,
86
- width: "100%",
87
- border: "3px solid #6FD3C0",
88
- height: isXlUp ? "157px" : "125px"
89
- })), /* @__PURE__ */React.createElement(ui.Box, {
90
- display: "flex",
91
- width: "100%",
92
- gap: 6,
93
- mt: 6
94
136
  }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
95
- outlined: true,
96
- label: "Converted Properties",
137
+ outlined: outlinedItems,
138
+ label: /* @__PURE__ */React.createElement("strong", null, "Converted Properties"),
97
139
  amount: agreementsCount,
98
140
  width: "100%",
99
- height: isXlUp ? "157px" : "125px",
100
- text: /* @__PURE__ */React.createElement(ui.Box, {
101
- as: "span",
102
- maxWidth: "276px"
103
- }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement(ui.Text, {
104
- as: "span",
105
- display: "inline",
106
- weight: "700",
107
- fontSize: "inherit"
108
- }, filterDaysCount), " ", "days where an agreement has been", " ", /* @__PURE__ */React.createElement(ui.Text, {
141
+ height: isXlUp ? "157px" : "auto",
142
+ text: /* @__PURE__ */React.createElement(ui.Text, {
109
143
  as: "span",
110
- display: "inline",
111
- weight: "700",
112
- fontSize: "inherit"
113
- }, "created"))
144
+ variant: "inherit"
145
+ }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement("strong", null, filterDaysCount), " days where an agreement has been ", /* @__PURE__ */React.createElement("strong", null, "created"))
114
146
  }), /* @__PURE__ */React.createElement(AnalyticsBox.default, {
115
- outlined: true,
116
- label: "Converted Properties",
147
+ outlined: outlinedItems,
148
+ label: /* @__PURE__ */React.createElement("strong", null, "Converted Properties"),
117
149
  amount: agreementsFinalisedCount,
118
150
  width: "100%",
119
- height: isXlUp ? "157px" : "125px",
120
- text: /* @__PURE__ */React.createElement(ui.Box, {
151
+ height: isXlUp ? "157px" : "auto",
152
+ text: /* @__PURE__ */React.createElement(ui.Text, {
121
153
  as: "span",
122
- maxWidth: "276px"
123
- }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement(ui.Text, {
124
- as: "span",
125
- display: "inline",
126
- weight: "700",
127
- fontSize: "inherit"
128
- }, filterDaysCount), " ", "days where an agreement has been", " ", /* @__PURE__ */React.createElement(ui.Text, {
129
- as: "span",
130
- display: "inline",
131
- weight: "700",
132
- fontSize: "inherit"
133
- }, "finalised"))
134
- }))), /* @__PURE__ */React.createElement(ui.Box, {
135
- flex: 2
136
- }, /* @__PURE__ */React.createElement(ui.Box, {
137
- display: "flex",
138
- gap: 6
139
- }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
140
- outlined: true,
141
- label: "Cancellations",
142
- amount: cancellationsCount,
143
- width: "100%",
144
- border: "3px solid #ED0D8D",
145
- height: isXlUp ? "157px" : "125px"
146
- }), /* @__PURE__ */React.createElement(AnalyticsBox.default, {
147
- outlined: true,
148
- label: "Applications",
149
- amount: applicationsCount,
150
- width: "100%",
151
- border: "3px solid #F5C440",
152
- height: isXlUp ? "157px" : "125px"
153
- })), /* @__PURE__ */React.createElement(ui.Box, {
154
- display: "flex",
155
- gap: 6,
156
- mt: 6
157
- }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
158
- outlined: true,
159
- label: /* @__PURE__ */React.createElement("span", null, "Average", /* @__PURE__ */React.createElement("br", null), " Rent"),
160
- amount: averageRent,
161
- width: "100%",
162
- height: isXlUp ? "157px" : "125px"
163
- }), /* @__PURE__ */React.createElement(AnalyticsBox.default, {
164
- outlined: true,
165
- label: /* @__PURE__ */React.createElement("span", null, "Text Usage", /* @__PURE__ */React.createElement("br", null), " Total"),
166
- amount: textUsage,
167
- width: "100%",
168
- height: isXlUp ? "157px" : "125px"
169
- }))))));
154
+ variant: "inherit"
155
+ }, "Properties that have had a viewing in the last", " ", /* @__PURE__ */React.createElement("strong", null, " ", filterDaysCount), " days where an agreement has been ", /* @__PURE__ */React.createElement("strong", null, "finalised"))
156
+ })), /* @__PURE__ */React.createElement(ui.Grid, {
157
+ container: true,
158
+ spacing: {
159
+ xs: 3,
160
+ md: 6
161
+ }
162
+ }, stats.map(function (stat, i) {
163
+ return /* @__PURE__ */React.createElement(ui.Grid, {
164
+ item: true,
165
+ key: reactUid.uid(stat, i),
166
+ flex: {
167
+ lg: 1
168
+ },
169
+ xs: 6,
170
+ sm: 3,
171
+ md: 2
172
+ }, /* @__PURE__ */React.createElement(AnalyticsBox.default, {
173
+ outlined: outlinedItems,
174
+ label: stat.label,
175
+ amount: stat.value,
176
+ width: "100%",
177
+ height: isXlUp ? "157px" : "124px"
178
+ }));
179
+ }))));
170
180
  }
171
181
 
172
182
  exports.default = AnalyticsSection;
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
6
+ var React = require('react');
7
+ var Stack = require('@mui/material/Stack');
8
+ var ui = require('@tenancy.nz/ui');
9
+
10
+ function ChartLegend(_ref) {
11
+ var _ref$color = _ref.color,
12
+ color = _ref$color === void 0 ? void 0 : _ref$color,
13
+ _ref$count = _ref.count,
14
+ count = _ref$count === void 0 ? void 0 : _ref$count,
15
+ label = _ref.label,
16
+ _ref$sx = _ref.sx,
17
+ sx = _ref$sx === void 0 ? {} : _ref$sx;
18
+ return /* @__PURE__ */React.createElement(Stack, {
19
+ flexDirection: "row",
20
+ alignItems: "center",
21
+ gap: 1.5,
22
+ sx: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, sx), {}, {
23
+ userSelect: "none",
24
+ fontSize: "12px"
25
+ })
26
+ }, /* @__PURE__ */React.createElement(ui.Box, {
27
+ borderRadius: "4px",
28
+ width: "32px",
29
+ height: "18px",
30
+ bgcolor: color || "#D9D9D9"
31
+ }), /* @__PURE__ */React.createElement(ui.Box, {
32
+ minWidth: "24px"
33
+ }, count !== void 0 && count >= 0 && /* @__PURE__ */React.createElement(ui.Text, {
34
+ align: "center",
35
+ weight: "700",
36
+ variant: "inherit"
37
+ }, count)), typeof label !== "string" ? label : /* @__PURE__ */React.createElement(ui.Text, {
38
+ weight: "500",
39
+ variant: "inherit"
40
+ }, label));
41
+ }
42
+
43
+ exports.default = ChartLegend;
@@ -3,21 +3,26 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var icons = require('@tenancy.nz/icons');
6
+ var CheckCircleOutlineRoundedIcon = require('@mui/icons-material/CheckCircleOutlineRounded');
7
+ var HighlightOffRoundedIcon = require('@mui/icons-material/HighlightOffRounded');
7
8
  var ui = require('@tenancy.nz/ui');
8
9
 
9
10
  function CheckedIcon(_ref) {
10
11
  var value = _ref.value;
11
12
  if (value === true) {
12
- return /* @__PURE__ */React.createElement(icons.CircleCheckIcon, {
13
- color: "success.main",
14
- size: "20px"
13
+ return /* @__PURE__ */React.createElement(CheckCircleOutlineRoundedIcon, {
14
+ sx: {
15
+ color: "success.main"
16
+ },
17
+ fontSize: "small"
15
18
  });
16
19
  }
17
20
  if (value === false) {
18
- return /* @__PURE__ */React.createElement(icons.CircleTimesIcon, {
19
- color: "error.main",
20
- size: "20px"
21
+ return /* @__PURE__ */React.createElement(HighlightOffRoundedIcon, {
22
+ sx: {
23
+ color: "error.main"
24
+ },
25
+ fontSize: "small"
21
26
  });
22
27
  }
23
28
  return /* @__PURE__ */React.createElement(ui.Text, {