@tenancy.nz/tenant-ui 1.6.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.
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ function _defineProperty(e, r, t) {
4
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
5
+ value: t,
6
+ enumerable: true,
7
+ configurable: true,
8
+ writable: true
9
+ }) : e[r] = t, e;
10
+ }
11
+ function ownKeys(e, r) {
12
+ var t = Object.keys(e);
13
+ if (Object.getOwnPropertySymbols) {
14
+ var o = Object.getOwnPropertySymbols(e);
15
+ r && (o = o.filter(function (r) {
16
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
17
+ })), t.push.apply(t, o);
18
+ }
19
+ return t;
20
+ }
21
+ function _objectSpread2(e) {
22
+ for (var r = 1; r < arguments.length; r++) {
23
+ var t = null != arguments[r] ? arguments[r] : {};
24
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
25
+ _defineProperty(e, r, t[r]);
26
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
27
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
28
+ });
29
+ }
30
+ return e;
31
+ }
32
+ function _objectWithoutProperties(e, t) {
33
+ if (null == e) return {};
34
+ var o,
35
+ r,
36
+ i = _objectWithoutPropertiesLoose(e, t);
37
+ if (Object.getOwnPropertySymbols) {
38
+ var n = Object.getOwnPropertySymbols(e);
39
+ for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
40
+ }
41
+ return i;
42
+ }
43
+ function _objectWithoutPropertiesLoose(r, e) {
44
+ if (null == r) return {};
45
+ var t = {};
46
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
47
+ if (-1 !== e.indexOf(n)) continue;
48
+ t[n] = r[n];
49
+ }
50
+ return t;
51
+ }
52
+ function _taggedTemplateLiteral(e, t) {
53
+ return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
54
+ raw: {
55
+ value: Object.freeze(t)
56
+ }
57
+ }));
58
+ }
59
+ function _toPrimitive(t, r) {
60
+ if ("object" != typeof t || !t) return t;
61
+ var e = t[Symbol.toPrimitive];
62
+ if (void 0 !== e) {
63
+ var i = e.call(t, r);
64
+ if ("object" != typeof i) return i;
65
+ throw new TypeError("@@toPrimitive must return a primitive value.");
66
+ }
67
+ return ("string" === r ? String : Number)(t);
68
+ }
69
+ function _toPropertyKey(t) {
70
+ var i = _toPrimitive(t, "string");
71
+ return "symbol" == typeof i ? i : i + "";
72
+ }
73
+
74
+ exports.defineProperty = _defineProperty;
75
+ exports.objectSpread2 = _objectSpread2;
76
+ exports.objectWithoutProperties = _objectWithoutProperties;
77
+ exports.objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose;
78
+ exports.taggedTemplateLiteral = _taggedTemplateLiteral;
79
+ exports.toPrimitive = _toPrimitive;
80
+ exports.toPropertyKey = _toPropertyKey;
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var Stack = require('@mui/material/Stack');
7
+ var ui = require('@tenancy.nz/ui');
8
+
9
+ function AgencyLogo(_ref) {
10
+ var src = _ref.src,
11
+ _ref$name = _ref.name,
12
+ name = _ref$name === void 0 ? void 0 : _ref$name,
13
+ _ref$size = _ref.size,
14
+ size = _ref$size === void 0 ? "30px" : _ref$size;
15
+ return /* @__PURE__ */React.createElement(Stack, {
16
+ flexDirection: "row",
17
+ gap: 4,
18
+ alignItems: "center"
19
+ }, /* @__PURE__ */React.createElement(Stack, {
20
+ alignItems: "center",
21
+ justifyContent: "center",
22
+ sx: {
23
+ width: size,
24
+ height: size,
25
+ ">img": {
26
+ maxWidth: "100%",
27
+ maxHeight: "100%"
28
+ }
29
+ }
30
+ }, /* @__PURE__ */React.createElement("img", {
31
+ src: src,
32
+ alt: "Logo"
33
+ })), name && /* @__PURE__ */React.createElement(ui.Text, {
34
+ weight: "600"
35
+ }, name));
36
+ }
37
+
38
+ exports.default = AgencyLogo;
@@ -0,0 +1,33 @@
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 IconLabel(_ref) {
11
+ var icon = _ref.icon,
12
+ _ref$size = _ref.size,
13
+ size = _ref$size === void 0 ? "13px" : _ref$size,
14
+ _ref$text = _ref.text,
15
+ text = _ref$text === void 0 ? void 0 : _ref$text,
16
+ _ref$sx = _ref.sx,
17
+ sx = _ref$sx === void 0 ? {} : _ref$sx;
18
+ if (!text) {
19
+ return null;
20
+ }
21
+ return /* @__PURE__ */React.createElement(Stack, _rollupPluginBabelHelpers.objectSpread2({
22
+ flexDirection: "row",
23
+ alignItems: "center",
24
+ gap: 1,
25
+ fontSize: size
26
+ }, sx), icon, /* @__PURE__ */React.createElement(ui.Text, {
27
+ as: "span",
28
+ variant: "inherit",
29
+ weight: "600"
30
+ }, text));
31
+ }
32
+
33
+ exports.default = IconLabel;
@@ -0,0 +1,103 @@
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
+ var BedIcon = require('@mui/icons-material/Bed');
10
+ var BathtubIcon = require('@mui/icons-material/Bathtub');
11
+ var DirectionsCarIcon = require('@mui/icons-material/DirectionsCar');
12
+ var iconLabel = require('./icon-label.cjs');
13
+
14
+ function PropertyAttributes(_ref) {
15
+ var _ref$address = _ref.address,
16
+ address = _ref$address === void 0 ? void 0 : _ref$address,
17
+ _ref$availableAt = _ref.availableAt,
18
+ availableAt = _ref$availableAt === void 0 ? void 0 : _ref$availableAt,
19
+ _ref$noOfBedrooms = _ref.noOfBedrooms,
20
+ noOfBedrooms = _ref$noOfBedrooms === void 0 ? void 0 : _ref$noOfBedrooms,
21
+ _ref$noOfBathrooms = _ref.noOfBathrooms,
22
+ noOfBathrooms = _ref$noOfBathrooms === void 0 ? void 0 : _ref$noOfBathrooms,
23
+ _ref$noOfCarparks = _ref.noOfCarparks,
24
+ noOfCarparks = _ref$noOfCarparks === void 0 ? void 0 : _ref$noOfCarparks,
25
+ _ref$rent = _ref.rent,
26
+ rent = _ref$rent === void 0 ? void 0 : _ref$rent,
27
+ _ref$spacing = _ref.spacing,
28
+ spacing = _ref$spacing === void 0 ? 4 : _ref$spacing,
29
+ _ref$type = _ref.type,
30
+ type = _ref$type === void 0 ? void 0 : _ref$type,
31
+ _ref$iconSize = _ref.iconSize,
32
+ iconSize = _ref$iconSize === void 0 ? "21px" : _ref$iconSize,
33
+ _ref$sx = _ref.sx,
34
+ sx = _ref$sx === void 0 ? {} : _ref$sx;
35
+ var labelProps = _rollupPluginBabelHelpers.objectSpread2({}, sx.fontSize && {
36
+ size: sx.fontSize
37
+ });
38
+ var iconBoxStyles = {
39
+ display: "flex",
40
+ alignItems: "center",
41
+ justifyContent: "center",
42
+ width: iconSize,
43
+ height: iconSize,
44
+ fontSize: iconSize,
45
+ color: "tertiary.main"
46
+ };
47
+ return /* @__PURE__ */React.createElement(Stack, {
48
+ sx: _rollupPluginBabelHelpers.objectSpread2({
49
+ color: "text.primary",
50
+ gap: {
51
+ xs: 2,
52
+ md: 4
53
+ }
54
+ }, sx)
55
+ }, address && /* @__PURE__ */React.createElement(ui.Heading, {
56
+ as: "h6",
57
+ color: "inherit",
58
+ gutterBottom: false
59
+ }, address), rent && /* @__PURE__ */React.createElement(ui.Text, {
60
+ paragraph: true
61
+ }, rent), /* @__PURE__ */React.createElement(ui.Grid, {
62
+ container: true,
63
+ spacing: spacing,
64
+ alignItems: "center"
65
+ }, !!type && /* @__PURE__ */React.createElement(ui.Grid, {
66
+ item: true
67
+ }, /* @__PURE__ */React.createElement(iconLabel.default, _rollupPluginBabelHelpers.objectSpread2({
68
+ color: "tertiary",
69
+ icon: "home",
70
+ text: type
71
+ }, labelProps))), !!noOfBedrooms && /* @__PURE__ */React.createElement(ui.Grid, {
72
+ item: true
73
+ }, /* @__PURE__ */React.createElement(iconLabel.default, _rollupPluginBabelHelpers.objectSpread2({
74
+ icon: /* @__PURE__ */React.createElement(ui.Box, {
75
+ sx: iconBoxStyles
76
+ }, /* @__PURE__ */React.createElement(BedIcon, {
77
+ fontSize: "inherit"
78
+ })),
79
+ text: noOfBedrooms
80
+ }, labelProps))), !!noOfBathrooms && /* @__PURE__ */React.createElement(ui.Grid, {
81
+ item: true
82
+ }, /* @__PURE__ */React.createElement(iconLabel.default, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
83
+ icon: /* @__PURE__ */React.createElement(ui.Box, {
84
+ sx: iconBoxStyles
85
+ }, /* @__PURE__ */React.createElement(BathtubIcon, {
86
+ fontSize: "inherit"
87
+ }))
88
+ }, labelProps), {}, {
89
+ text: noOfBathrooms
90
+ }))), (!!noOfCarparks || noOfCarparks === 0) && /* @__PURE__ */React.createElement(ui.Grid, {
91
+ item: true
92
+ }, /* @__PURE__ */React.createElement(iconLabel.default, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
93
+ icon: /* @__PURE__ */React.createElement(ui.Box, {
94
+ sx: iconBoxStyles
95
+ }, /* @__PURE__ */React.createElement(DirectionsCarIcon, {
96
+ fontSize: "inherit"
97
+ }))
98
+ }, labelProps), {}, {
99
+ text: noOfCarparks === 0 ? "0" : noOfCarparks
100
+ })))), availableAt && /* @__PURE__ */React.createElement(ui.Text, null, /* @__PURE__ */React.createElement("strong", null, "Available: ", availableAt)));
101
+ }
102
+
103
+ exports.default = PropertyAttributes;
@@ -0,0 +1,106 @@
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
+ var propertyAttributes = require('./property-attributes.cjs');
10
+ var rentIconLabel = require('./rent-icon-label.cjs');
11
+ var propertyCard_styled = require('./property-card.styled.cjs');
12
+
13
+ function PropertyCard(_ref) {
14
+ var _ref$action = _ref.action,
15
+ action = _ref$action === void 0 ? void 0 : _ref$action,
16
+ _ref$addressPart = _ref.addressPart1,
17
+ addressPart1 = _ref$addressPart === void 0 ? "" : _ref$addressPart,
18
+ _ref$addressPart2 = _ref.addressPart2,
19
+ addressPart2 = _ref$addressPart2 === void 0 ? "" : _ref$addressPart2,
20
+ _ref$bedrooms = _ref.bedrooms,
21
+ bedrooms = _ref$bedrooms === void 0 ? void 0 : _ref$bedrooms,
22
+ _ref$bathrooms = _ref.bathrooms,
23
+ bathrooms = _ref$bathrooms === void 0 ? void 0 : _ref$bathrooms,
24
+ _ref$content = _ref.content,
25
+ content = _ref$content === void 0 ? void 0 : _ref$content,
26
+ _ref$footer = _ref.footer,
27
+ footer = _ref$footer === void 0 ? void 0 : _ref$footer,
28
+ _ref$fullHeight = _ref.fullHeight,
29
+ fullHeight = _ref$fullHeight === void 0 ? true : _ref$fullHeight,
30
+ _ref$onClick = _ref.onClick,
31
+ onClick = _ref$onClick === void 0 ? void 0 : _ref$onClick,
32
+ _ref$parkingSpaces = _ref.parkingSpaces,
33
+ parkingSpaces = _ref$parkingSpaces === void 0 ? void 0 : _ref$parkingSpaces,
34
+ _ref$photoSrc = _ref.photoSrc,
35
+ photoSrc = _ref$photoSrc === void 0 ? "" : _ref$photoSrc,
36
+ _ref$rent = _ref.rent,
37
+ rent = _ref$rent === void 0 ? "" : _ref$rent;
38
+ return /* @__PURE__ */React.createElement(Stack, {
39
+ onClick: onClick,
40
+ sx: _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
41
+ transition: "all 0.25s ease-out",
42
+ cursor: "default"
43
+ }, fullHeight && {
44
+ height: "100%"
45
+ }), typeof onClick === "function" && {
46
+ cursor: "pointer",
47
+ "&:hover": {
48
+ transform: "translateY(-6px)"
49
+ }
50
+ })
51
+ }, /* @__PURE__ */React.createElement(ui.Paper, {
52
+ overflow: false,
53
+ sx: _rollupPluginBabelHelpers.objectSpread2({}, fullHeight && {
54
+ height: "100%",
55
+ display: "flex",
56
+ flexDirection: "column"
57
+ })
58
+ }, /* @__PURE__ */React.createElement(propertyCard_styled.StyledPropertyItemImgWrapper, null, photoSrc && /* @__PURE__ */React.createElement(ui.Media, {
59
+ src: photoSrc,
60
+ title: addressPart1,
61
+ as: "img"
62
+ })), /* @__PURE__ */React.createElement(Stack, {
63
+ p: 4,
64
+ position: "relative",
65
+ gap: 2,
66
+ flex: 1
67
+ }, /* @__PURE__ */React.createElement(Stack, {
68
+ flexDirection: "row",
69
+ gap: 2,
70
+ alignItems: "center"
71
+ }, /* @__PURE__ */React.createElement(Stack, {
72
+ gap: 1
73
+ }, /* @__PURE__ */React.createElement(ui.Heading, {
74
+ as: "h4"
75
+ }, addressPart1), /* @__PURE__ */React.createElement(ui.Text, {
76
+ sx: {
77
+ fontSize: "12px"
78
+ },
79
+ weight: "500"
80
+ }, addressPart2)), action && /* @__PURE__ */React.createElement(Stack, {
81
+ ml: "auto"
82
+ }, action)), content, /* @__PURE__ */React.createElement(Stack, {
83
+ flexDirection: "row",
84
+ alignItems: "center",
85
+ mt: "auto",
86
+ pt: 4
87
+ }, /* @__PURE__ */React.createElement(propertyAttributes.default, {
88
+ noOfBedrooms: bedrooms,
89
+ noOfBathrooms: bathrooms,
90
+ noOfCarparks: parkingSpaces,
91
+ iconSize: "20px"
92
+ }), rent && /* @__PURE__ */React.createElement(rentIconLabel.default, {
93
+ text: rent,
94
+ sx: {
95
+ ml: "auto"
96
+ }
97
+ }))), footer && /* @__PURE__ */React.createElement(Stack, {
98
+ sx: {
99
+ borderTop: "1px solid",
100
+ borderTopColor: "grey.300"
101
+ },
102
+ p: 4
103
+ }, footer)));
104
+ }
105
+
106
+ exports.default = PropertyCard;
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.cjs');
4
+ var styled = require('@emotion/styled');
5
+
6
+ var _templateObject;
7
+ var StyledPropertyItemImgWrapper = styled.figure(_templateObject || (_templateObject = _rollupPluginBabelHelpers.taggedTemplateLiteral(["\n background-color: #ebebeb;\n background-image:\n linear-gradient(45deg, #fff 25%, transparent 25%),\n linear-gradient(-45deg, #fff 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #fff 75%),\n linear-gradient(-45deg, transparent 75%, #fff 75%);\n background-size: 40px 40px;\n background-position:\n 0 0,\n 0 20px,\n 20px -20px,\n -20px 0px;\n width: 100%;\n max-width: 100%;\n height: 200px;\n margin: 0;\n padding: 0;\n overflow: hidden;\n"])));
8
+
9
+ exports.StyledPropertyItemImgWrapper = StyledPropertyItemImgWrapper;
@@ -0,0 +1,25 @@
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 MonetizationOnIcon = require('@mui/icons-material/MonetizationOn');
8
+ var iconLabel = require('./icon-label.cjs');
9
+
10
+ var _excluded = ["text"];
11
+ function RentIconLabel(_ref) {
12
+ var text = _ref.text,
13
+ rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
14
+ return /* @__PURE__ */React.createElement(iconLabel.default, _rollupPluginBabelHelpers.objectSpread2({
15
+ icon: /* @__PURE__ */React.createElement(MonetizationOnIcon, {
16
+ sx: {
17
+ color: "tertiary.main",
18
+ fontSize: "24px"
19
+ }
20
+ }),
21
+ text: text
22
+ }, rest));
23
+ }
24
+
25
+ exports.default = RentIconLabel;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ var agencyLogo = require('./components/agency-logo.cjs');
4
+ var iconLabel = require('./components/icon-label.cjs');
5
+ var propertyAttributes = require('./components/property-attributes.cjs');
6
+ var propertyCard = require('./components/property-card.cjs');
7
+ var rentIconLabel = require('./components/rent-icon-label.cjs');
8
+
9
+
10
+
11
+ exports.AgencyLogo = agencyLogo.default;
12
+ exports.IconLabel = iconLabel.default;
13
+ exports.PropertyAttributes = propertyAttributes.default;
14
+ exports.PropertyCard = propertyCard.default;
15
+ exports.RentIconLabel = rentIconLabel.default;
@@ -0,0 +1,72 @@
1
+ function _defineProperty(e, r, t) {
2
+ return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
3
+ value: t,
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true
7
+ }) : e[r] = t, e;
8
+ }
9
+ function ownKeys(e, r) {
10
+ var t = Object.keys(e);
11
+ if (Object.getOwnPropertySymbols) {
12
+ var o = Object.getOwnPropertySymbols(e);
13
+ r && (o = o.filter(function (r) {
14
+ return Object.getOwnPropertyDescriptor(e, r).enumerable;
15
+ })), t.push.apply(t, o);
16
+ }
17
+ return t;
18
+ }
19
+ function _objectSpread2(e) {
20
+ for (var r = 1; r < arguments.length; r++) {
21
+ var t = null != arguments[r] ? arguments[r] : {};
22
+ r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
23
+ _defineProperty(e, r, t[r]);
24
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
25
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
26
+ });
27
+ }
28
+ return e;
29
+ }
30
+ function _objectWithoutProperties(e, t) {
31
+ if (null == e) return {};
32
+ var o,
33
+ r,
34
+ i = _objectWithoutPropertiesLoose(e, t);
35
+ if (Object.getOwnPropertySymbols) {
36
+ var n = Object.getOwnPropertySymbols(e);
37
+ for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
38
+ }
39
+ return i;
40
+ }
41
+ function _objectWithoutPropertiesLoose(r, e) {
42
+ if (null == r) return {};
43
+ var t = {};
44
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
45
+ if (-1 !== e.indexOf(n)) continue;
46
+ t[n] = r[n];
47
+ }
48
+ return t;
49
+ }
50
+ function _taggedTemplateLiteral(e, t) {
51
+ return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {
52
+ raw: {
53
+ value: Object.freeze(t)
54
+ }
55
+ }));
56
+ }
57
+ function _toPrimitive(t, r) {
58
+ if ("object" != typeof t || !t) return t;
59
+ var e = t[Symbol.toPrimitive];
60
+ if (void 0 !== e) {
61
+ var i = e.call(t, r);
62
+ if ("object" != typeof i) return i;
63
+ throw new TypeError("@@toPrimitive must return a primitive value.");
64
+ }
65
+ return ("string" === r ? String : Number)(t);
66
+ }
67
+ function _toPropertyKey(t) {
68
+ var i = _toPrimitive(t, "string");
69
+ return "symbol" == typeof i ? i : i + "";
70
+ }
71
+
72
+ export { _defineProperty as defineProperty, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _taggedTemplateLiteral as taggedTemplateLiteral, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import Stack from '@mui/material/Stack';
3
+ import { Text } from '@tenancy.nz/ui';
4
+
5
+ function AgencyLogo(_ref) {
6
+ var src = _ref.src,
7
+ _ref$name = _ref.name,
8
+ name = _ref$name === void 0 ? void 0 : _ref$name,
9
+ _ref$size = _ref.size,
10
+ size = _ref$size === void 0 ? "30px" : _ref$size;
11
+ return /* @__PURE__ */React.createElement(Stack, {
12
+ flexDirection: "row",
13
+ gap: 4,
14
+ alignItems: "center"
15
+ }, /* @__PURE__ */React.createElement(Stack, {
16
+ alignItems: "center",
17
+ justifyContent: "center",
18
+ sx: {
19
+ width: size,
20
+ height: size,
21
+ ">img": {
22
+ maxWidth: "100%",
23
+ maxHeight: "100%"
24
+ }
25
+ }
26
+ }, /* @__PURE__ */React.createElement("img", {
27
+ src: src,
28
+ alt: "Logo"
29
+ })), name && /* @__PURE__ */React.createElement(Text, {
30
+ weight: "600"
31
+ }, name));
32
+ }
33
+
34
+ export { AgencyLogo as default };
@@ -0,0 +1,29 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import Stack from '@mui/material/Stack';
4
+ import { Text } from '@tenancy.nz/ui';
5
+
6
+ function IconLabel(_ref) {
7
+ var icon = _ref.icon,
8
+ _ref$size = _ref.size,
9
+ size = _ref$size === void 0 ? "13px" : _ref$size,
10
+ _ref$text = _ref.text,
11
+ text = _ref$text === void 0 ? void 0 : _ref$text,
12
+ _ref$sx = _ref.sx,
13
+ sx = _ref$sx === void 0 ? {} : _ref$sx;
14
+ if (!text) {
15
+ return null;
16
+ }
17
+ return /* @__PURE__ */React.createElement(Stack, _objectSpread2({
18
+ flexDirection: "row",
19
+ alignItems: "center",
20
+ gap: 1,
21
+ fontSize: size
22
+ }, sx), icon, /* @__PURE__ */React.createElement(Text, {
23
+ as: "span",
24
+ variant: "inherit",
25
+ weight: "600"
26
+ }, text));
27
+ }
28
+
29
+ export { IconLabel as default };
@@ -0,0 +1,99 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import Stack from '@mui/material/Stack';
4
+ import { Heading, Text, Grid, Box } from '@tenancy.nz/ui';
5
+ import BedIcon from '@mui/icons-material/Bed';
6
+ import BathtubIcon from '@mui/icons-material/Bathtub';
7
+ import DirectionsCarIcon from '@mui/icons-material/DirectionsCar';
8
+ import IconLabel from './icon-label.js';
9
+
10
+ function PropertyAttributes(_ref) {
11
+ var _ref$address = _ref.address,
12
+ address = _ref$address === void 0 ? void 0 : _ref$address,
13
+ _ref$availableAt = _ref.availableAt,
14
+ availableAt = _ref$availableAt === void 0 ? void 0 : _ref$availableAt,
15
+ _ref$noOfBedrooms = _ref.noOfBedrooms,
16
+ noOfBedrooms = _ref$noOfBedrooms === void 0 ? void 0 : _ref$noOfBedrooms,
17
+ _ref$noOfBathrooms = _ref.noOfBathrooms,
18
+ noOfBathrooms = _ref$noOfBathrooms === void 0 ? void 0 : _ref$noOfBathrooms,
19
+ _ref$noOfCarparks = _ref.noOfCarparks,
20
+ noOfCarparks = _ref$noOfCarparks === void 0 ? void 0 : _ref$noOfCarparks,
21
+ _ref$rent = _ref.rent,
22
+ rent = _ref$rent === void 0 ? void 0 : _ref$rent,
23
+ _ref$spacing = _ref.spacing,
24
+ spacing = _ref$spacing === void 0 ? 4 : _ref$spacing,
25
+ _ref$type = _ref.type,
26
+ type = _ref$type === void 0 ? void 0 : _ref$type,
27
+ _ref$iconSize = _ref.iconSize,
28
+ iconSize = _ref$iconSize === void 0 ? "21px" : _ref$iconSize,
29
+ _ref$sx = _ref.sx,
30
+ sx = _ref$sx === void 0 ? {} : _ref$sx;
31
+ var labelProps = _objectSpread2({}, sx.fontSize && {
32
+ size: sx.fontSize
33
+ });
34
+ var iconBoxStyles = {
35
+ display: "flex",
36
+ alignItems: "center",
37
+ justifyContent: "center",
38
+ width: iconSize,
39
+ height: iconSize,
40
+ fontSize: iconSize,
41
+ color: "tertiary.main"
42
+ };
43
+ return /* @__PURE__ */React.createElement(Stack, {
44
+ sx: _objectSpread2({
45
+ color: "text.primary",
46
+ gap: {
47
+ xs: 2,
48
+ md: 4
49
+ }
50
+ }, sx)
51
+ }, address && /* @__PURE__ */React.createElement(Heading, {
52
+ as: "h6",
53
+ color: "inherit",
54
+ gutterBottom: false
55
+ }, address), rent && /* @__PURE__ */React.createElement(Text, {
56
+ paragraph: true
57
+ }, rent), /* @__PURE__ */React.createElement(Grid, {
58
+ container: true,
59
+ spacing: spacing,
60
+ alignItems: "center"
61
+ }, !!type && /* @__PURE__ */React.createElement(Grid, {
62
+ item: true
63
+ }, /* @__PURE__ */React.createElement(IconLabel, _objectSpread2({
64
+ color: "tertiary",
65
+ icon: "home",
66
+ text: type
67
+ }, labelProps))), !!noOfBedrooms && /* @__PURE__ */React.createElement(Grid, {
68
+ item: true
69
+ }, /* @__PURE__ */React.createElement(IconLabel, _objectSpread2({
70
+ icon: /* @__PURE__ */React.createElement(Box, {
71
+ sx: iconBoxStyles
72
+ }, /* @__PURE__ */React.createElement(BedIcon, {
73
+ fontSize: "inherit"
74
+ })),
75
+ text: noOfBedrooms
76
+ }, labelProps))), !!noOfBathrooms && /* @__PURE__ */React.createElement(Grid, {
77
+ item: true
78
+ }, /* @__PURE__ */React.createElement(IconLabel, _objectSpread2(_objectSpread2({
79
+ icon: /* @__PURE__ */React.createElement(Box, {
80
+ sx: iconBoxStyles
81
+ }, /* @__PURE__ */React.createElement(BathtubIcon, {
82
+ fontSize: "inherit"
83
+ }))
84
+ }, labelProps), {}, {
85
+ text: noOfBathrooms
86
+ }))), (!!noOfCarparks || noOfCarparks === 0) && /* @__PURE__ */React.createElement(Grid, {
87
+ item: true
88
+ }, /* @__PURE__ */React.createElement(IconLabel, _objectSpread2(_objectSpread2({
89
+ icon: /* @__PURE__ */React.createElement(Box, {
90
+ sx: iconBoxStyles
91
+ }, /* @__PURE__ */React.createElement(DirectionsCarIcon, {
92
+ fontSize: "inherit"
93
+ }))
94
+ }, labelProps), {}, {
95
+ text: noOfCarparks === 0 ? "0" : noOfCarparks
96
+ })))), availableAt && /* @__PURE__ */React.createElement(Text, null, /* @__PURE__ */React.createElement("strong", null, "Available: ", availableAt)));
97
+ }
98
+
99
+ export { PropertyAttributes as default };
@@ -0,0 +1,102 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import Stack from '@mui/material/Stack';
4
+ import { Paper, Media, Heading, Text } from '@tenancy.nz/ui';
5
+ import PropertyAttributes from './property-attributes.js';
6
+ import RentIconLabel from './rent-icon-label.js';
7
+ import { StyledPropertyItemImgWrapper } from './property-card.styled.js';
8
+
9
+ function PropertyCard(_ref) {
10
+ var _ref$action = _ref.action,
11
+ action = _ref$action === void 0 ? void 0 : _ref$action,
12
+ _ref$addressPart = _ref.addressPart1,
13
+ addressPart1 = _ref$addressPart === void 0 ? "" : _ref$addressPart,
14
+ _ref$addressPart2 = _ref.addressPart2,
15
+ addressPart2 = _ref$addressPart2 === void 0 ? "" : _ref$addressPart2,
16
+ _ref$bedrooms = _ref.bedrooms,
17
+ bedrooms = _ref$bedrooms === void 0 ? void 0 : _ref$bedrooms,
18
+ _ref$bathrooms = _ref.bathrooms,
19
+ bathrooms = _ref$bathrooms === void 0 ? void 0 : _ref$bathrooms,
20
+ _ref$content = _ref.content,
21
+ content = _ref$content === void 0 ? void 0 : _ref$content,
22
+ _ref$footer = _ref.footer,
23
+ footer = _ref$footer === void 0 ? void 0 : _ref$footer,
24
+ _ref$fullHeight = _ref.fullHeight,
25
+ fullHeight = _ref$fullHeight === void 0 ? true : _ref$fullHeight,
26
+ _ref$onClick = _ref.onClick,
27
+ onClick = _ref$onClick === void 0 ? void 0 : _ref$onClick,
28
+ _ref$parkingSpaces = _ref.parkingSpaces,
29
+ parkingSpaces = _ref$parkingSpaces === void 0 ? void 0 : _ref$parkingSpaces,
30
+ _ref$photoSrc = _ref.photoSrc,
31
+ photoSrc = _ref$photoSrc === void 0 ? "" : _ref$photoSrc,
32
+ _ref$rent = _ref.rent,
33
+ rent = _ref$rent === void 0 ? "" : _ref$rent;
34
+ return /* @__PURE__ */React.createElement(Stack, {
35
+ onClick: onClick,
36
+ sx: _objectSpread2(_objectSpread2({
37
+ transition: "all 0.25s ease-out",
38
+ cursor: "default"
39
+ }, fullHeight && {
40
+ height: "100%"
41
+ }), typeof onClick === "function" && {
42
+ cursor: "pointer",
43
+ "&:hover": {
44
+ transform: "translateY(-6px)"
45
+ }
46
+ })
47
+ }, /* @__PURE__ */React.createElement(Paper, {
48
+ overflow: false,
49
+ sx: _objectSpread2({}, fullHeight && {
50
+ height: "100%",
51
+ display: "flex",
52
+ flexDirection: "column"
53
+ })
54
+ }, /* @__PURE__ */React.createElement(StyledPropertyItemImgWrapper, null, photoSrc && /* @__PURE__ */React.createElement(Media, {
55
+ src: photoSrc,
56
+ title: addressPart1,
57
+ as: "img"
58
+ })), /* @__PURE__ */React.createElement(Stack, {
59
+ p: 4,
60
+ position: "relative",
61
+ gap: 2,
62
+ flex: 1
63
+ }, /* @__PURE__ */React.createElement(Stack, {
64
+ flexDirection: "row",
65
+ gap: 2,
66
+ alignItems: "center"
67
+ }, /* @__PURE__ */React.createElement(Stack, {
68
+ gap: 1
69
+ }, /* @__PURE__ */React.createElement(Heading, {
70
+ as: "h4"
71
+ }, addressPart1), /* @__PURE__ */React.createElement(Text, {
72
+ sx: {
73
+ fontSize: "12px"
74
+ },
75
+ weight: "500"
76
+ }, addressPart2)), action && /* @__PURE__ */React.createElement(Stack, {
77
+ ml: "auto"
78
+ }, action)), content, /* @__PURE__ */React.createElement(Stack, {
79
+ flexDirection: "row",
80
+ alignItems: "center",
81
+ mt: "auto",
82
+ pt: 4
83
+ }, /* @__PURE__ */React.createElement(PropertyAttributes, {
84
+ noOfBedrooms: bedrooms,
85
+ noOfBathrooms: bathrooms,
86
+ noOfCarparks: parkingSpaces,
87
+ iconSize: "20px"
88
+ }), rent && /* @__PURE__ */React.createElement(RentIconLabel, {
89
+ text: rent,
90
+ sx: {
91
+ ml: "auto"
92
+ }
93
+ }))), footer && /* @__PURE__ */React.createElement(Stack, {
94
+ sx: {
95
+ borderTop: "1px solid",
96
+ borderTopColor: "grey.300"
97
+ },
98
+ p: 4
99
+ }, footer)));
100
+ }
101
+
102
+ export { PropertyCard as default };
@@ -0,0 +1,7 @@
1
+ import { taggedTemplateLiteral as _taggedTemplateLiteral } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import styled from '@emotion/styled';
3
+
4
+ var _templateObject;
5
+ var StyledPropertyItemImgWrapper = styled.figure(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background-color: #ebebeb;\n background-image:\n linear-gradient(45deg, #fff 25%, transparent 25%),\n linear-gradient(-45deg, #fff 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #fff 75%),\n linear-gradient(-45deg, transparent 75%, #fff 75%);\n background-size: 40px 40px;\n background-position:\n 0 0,\n 0 20px,\n 20px -20px,\n -20px 0px;\n width: 100%;\n max-width: 100%;\n height: 200px;\n margin: 0;\n padding: 0;\n overflow: hidden;\n"])));
6
+
7
+ export { StyledPropertyItemImgWrapper };
@@ -0,0 +1,21 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import MonetizationOnIcon from '@mui/icons-material/MonetizationOn';
4
+ import IconLabel from './icon-label.js';
5
+
6
+ var _excluded = ["text"];
7
+ function RentIconLabel(_ref) {
8
+ var text = _ref.text,
9
+ rest = _objectWithoutProperties(_ref, _excluded);
10
+ return /* @__PURE__ */React.createElement(IconLabel, _objectSpread2({
11
+ icon: /* @__PURE__ */React.createElement(MonetizationOnIcon, {
12
+ sx: {
13
+ color: "tertiary.main",
14
+ fontSize: "24px"
15
+ }
16
+ }),
17
+ text: text
18
+ }, rest));
19
+ }
20
+
21
+ export { RentIconLabel as default };
@@ -0,0 +1,5 @@
1
+ export { default as AgencyLogo } from './components/agency-logo.js';
2
+ export { default as IconLabel } from './components/icon-label.js';
3
+ export { default as PropertyAttributes } from './components/property-attributes.js';
4
+ export { default as PropertyCard } from './components/property-card.js';
5
+ export { default as RentIconLabel } from './components/rent-icon-label.js';
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@tenancy.nz/tenant-ui",
3
+ "description": "React UI tenant components.",
4
+ "version": "1.6.0",
5
+ "author": "TPS <https://www.tenancy.co.nz>",
6
+ "type": "module",
7
+ "main": "dist/cjs/index.cjs",
8
+ "module": "dist/esm/index.js",
9
+ "types": "dist/types/index.d.ts",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "peerDependencies": {
14
+ "@emotion/react": "^11.14.0",
15
+ "@emotion/styled": "^11.14.1",
16
+ "@mui/icons-material": "^7.2.0",
17
+ "@mui/material": "^7.3.1",
18
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
19
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
20
+ "@tenancy.nz/ui": "1.6.0"
21
+ },
22
+ "devDependencies": {
23
+ "@emotion/react": "^11.14.0",
24
+ "@emotion/styled": "^11.14.1",
25
+ "@mui/icons-material": "^7.2.0",
26
+ "@mui/material": "^7.3.1",
27
+ "@tenancy.nz/ui": "1.6.0"
28
+ },
29
+ "dependencies": {
30
+ "react-uid": "^2.4.0"
31
+ },
32
+ "scripts": {
33
+ "build": "tsx ../../scripts/build.js"
34
+ }
35
+ }