carbon-react 96.1.0 → 99.0.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.
@@ -23,88 +23,30 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
23
23
 
24
24
  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); }
25
25
 
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
-
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
-
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
-
32
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
33
-
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
37
-
38
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
39
-
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
-
46
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
-
48
26
  const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default);
49
27
 
50
- let Detail = /*#__PURE__*/function (_React$Component) {
51
- _inherits(Detail, _React$Component);
52
-
53
- var _super = _createSuper(Detail);
54
-
55
- function Detail(...args) {
56
- var _this;
57
-
58
- _classCallCheck(this, Detail);
59
-
60
- _this = _super.call(this, ...args);
61
-
62
- _defineProperty(_assertThisInitialized(_this), "icon", () => {
63
- if (!_this.props.icon) {
64
- return null;
65
- }
66
-
67
- return /*#__PURE__*/_react.default.createElement(_detail.StyledDetailIcon, {
68
- type: _this.props.icon,
69
- "data-element": "icon"
70
- });
71
- });
72
-
73
- _defineProperty(_assertThisInitialized(_this), "footnote", () => {
74
- if (!_this.props.footnote) {
75
- return null;
76
- }
77
-
78
- return /*#__PURE__*/_react.default.createElement(_detail.StyledDetailFootnote, {
79
- "data-element": "footnote",
80
- hasIcon: _this.props.icon
81
- }, _this.props.footnote);
82
- });
83
-
84
- return _this;
85
- }
86
-
87
- _createClass(Detail, [{
88
- key: "render",
89
- value:
90
- /**
91
- * @method render
92
- * @return {Object} JSX
93
- */
94
- function render() {
95
- const marginProps = (0, _utils.filterStyledSystemMarginProps)(this.props);
96
- return /*#__PURE__*/_react.default.createElement(_detail.StyledDetail, _extends({
97
- className: (0, _classnames.default)("carbon-detail", this.props.className),
98
- hasIcon: this.props.icon
99
- }, (0, _tags.default)("detail", this.props), marginProps), this.icon(), /*#__PURE__*/_react.default.createElement(_detail.StyledDetailContent, {
100
- "data-element": "detail-content",
101
- hasIcon: this.props.icon
102
- }, this.props.children), this.footnote());
103
- }
104
- }]);
105
-
106
- return Detail;
107
- }(_react.default.Component);
28
+ const Detail = ({
29
+ className,
30
+ icon,
31
+ footnote,
32
+ children,
33
+ ...rest
34
+ }) => {
35
+ const marginProps = (0, _utils.filterStyledSystemMarginProps)(rest);
36
+ return /*#__PURE__*/_react.default.createElement(_detail.StyledDetail, _extends({
37
+ className: (0, _classnames.default)("carbon-detail", className),
38
+ hasIcon: icon
39
+ }, (0, _tags.default)("detail", rest), marginProps), icon && /*#__PURE__*/_react.default.createElement(_detail.StyledDetailIcon, {
40
+ type: icon,
41
+ "data-element": "icon"
42
+ }), /*#__PURE__*/_react.default.createElement(_detail.StyledDetailContent, {
43
+ "data-element": "detail-content",
44
+ hasIcon: icon
45
+ }, children), footnote && /*#__PURE__*/_react.default.createElement(_detail.StyledDetailFootnote, {
46
+ "data-element": "footnote",
47
+ hasIcon: icon
48
+ }, footnote));
49
+ };
108
50
 
109
51
  Detail.propTypes = { ...marginPropTypes,
110
52
 
@@ -114,7 +56,7 @@ Detail.propTypes = { ...marginPropTypes,
114
56
  className: _propTypes.default.string,
115
57
 
116
58
  /**
117
- * <a href="https://brand.sage.com/d/NdbrveWvNheA/foundations#/icons/icons" target="_blank">List of supported icons</a>
59
+ * <a href="https://carbon.sage.com/?path=/docs/icon--list-of-icons#list-of-icons" target="_blank">List of supported icons</a>
118
60
  *
119
61
  * The type of icon to use.
120
62
  */
@@ -19,82 +19,36 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
19
19
 
20
20
  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); }
21
21
 
22
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
-
24
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
25
-
26
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
27
-
28
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
29
-
30
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
31
-
32
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
33
-
34
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
35
-
36
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
-
40
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
41
-
42
- let PortraitGravatar = /*#__PURE__*/function (_React$Component) {
43
- _inherits(PortraitGravatar, _React$Component);
44
-
45
- var _super = _createSuper(PortraitGravatar);
46
-
47
- function PortraitGravatar() {
48
- _classCallCheck(this, PortraitGravatar);
49
-
50
- return _super.apply(this, arguments);
51
- }
52
-
53
- _createClass(PortraitGravatar, [{
54
- key: "gravatarSrc",
55
- value:
56
- /** Generates the Gravatar URL for the specified email address and dimensions. */
57
- function gravatarSrc() {
58
- const {
59
- gravatarEmail,
60
- size
61
- } = this.props;
62
- const {
63
- dimensions
64
- } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
65
- const base = "https://www.gravatar.com/avatar/";
66
- const hash = (0, _md.default)(gravatarEmail.toLowerCase());
67
- const fallbackOption = "404"; // "Return an HTTP 404 File Not Found response"
68
-
69
- /** @see https://en.gravatar.com/site/implement/images/#default-image */
70
-
71
- return `${base}${hash}?s=${dimensions}&d=${fallbackOption}`;
72
- }
73
- /** Renders the component. */
74
-
75
- }, {
76
- key: "render",
77
- value: function render() {
78
- const {
79
- alt,
80
- size,
81
- shape,
82
- errorCallback,
83
- ...otherProps
84
- } = this.props;
85
- return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitGravatar, _extends({
86
- src: this.gravatarSrc(),
87
- alt: alt,
88
- size: size,
89
- shape: shape,
90
- onError: errorCallback,
91
- "data-element": "user-image"
92
- }, otherProps));
93
- }
94
- }]);
95
-
96
- return PortraitGravatar;
97
- }(_react.default.Component);
22
+ const PortraitGravatar = ({
23
+ gravatarEmail,
24
+ size,
25
+ alt,
26
+ shape,
27
+ errorCallback,
28
+ ...rest
29
+ }) => {
30
+ const gravatarSrc = () => {
31
+ const {
32
+ dimensions
33
+ } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
34
+ const base = "https://www.gravatar.com/avatar/";
35
+ const hash = (0, _md.default)(gravatarEmail.toLowerCase());
36
+ const fallbackOption = "404"; // "Return an HTTP 404 File Not Found response"
37
+
38
+ /** @see https://en.gravatar.com/site/implement/images/#default-image */
39
+
40
+ return `${base}${hash}?s=${dimensions}&d=${fallbackOption}`;
41
+ };
42
+
43
+ return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitGravatar, _extends({
44
+ src: gravatarSrc(),
45
+ alt: alt,
46
+ size: size,
47
+ shape: shape,
48
+ onError: errorCallback,
49
+ "data-element": "user-image"
50
+ }, rest));
51
+ };
98
52
 
99
53
  PortraitGravatar.propTypes = {
100
54
  /** The theme to use. */
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
@@ -21,145 +21,73 @@ var _portrait2 = require("./portrait.config");
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
- 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); }
25
-
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
27
-
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
29
-
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
31
-
32
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
33
-
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
37
-
38
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
39
-
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
-
46
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
47
25
 
48
- let PortraitInitials = /*#__PURE__*/function (_React$Component) {
49
- _inherits(PortraitInitials, _React$Component);
26
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
50
27
 
51
- var _super = _createSuper(PortraitInitials);
52
-
53
- function PortraitInitials(...args) {
54
- var _this;
55
-
56
- _classCallCheck(this, PortraitInitials);
57
-
58
- _this = _super.call(this, ...args);
59
-
60
- _defineProperty(_assertThisInitialized(_this), "cachedImageDataUrl", null);
61
-
62
- return _this;
63
- }
64
-
65
- _createClass(PortraitInitials, [{
66
- key: "UNSAFE_componentWillReceiveProps",
67
- value:
68
- /** Invoked before a mounted component receives new props. */
69
- function UNSAFE_componentWillReceiveProps(nextProps) {
70
- const shouldClearCache = this.props.theme !== nextProps.theme || this.props.initials !== nextProps.initials || this.props.size !== nextProps.size || this.props.darkBackground !== nextProps.darkBackground;
28
+ 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); }
71
29
 
72
- if (shouldClearCache) {
73
- this.cachedImageDataUrl = null;
74
- }
75
- }
76
- /** Generates a graphic with initials. */
77
-
78
- }, {
79
- key: "generateDataUrl",
80
- value: function generateDataUrl() {
81
- if (this.cachedImageDataUrl) {
82
- return this.cachedImageDataUrl;
83
- }
84
-
85
- const {
86
- theme,
87
- size,
88
- darkBackground
89
- } = this.props;
90
- const {
91
- textColor,
92
- bgColor
93
- } = (0, _portrait.getColorsForInitials)(theme, darkBackground);
94
-
95
- let canvas = _browser.default.getDocument().createElement("canvas");
96
-
97
- let context = canvas.getContext("2d");
98
- let {
99
- dimensions
100
- } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
101
- dimensions -= 2; // Set canvas with & height
102
-
103
- canvas.width = dimensions;
104
- canvas.height = dimensions; // Select a font family to support different language characters
105
- // like Arial
106
-
107
- context.font = `${Math.round(canvas.width / 2.4)}px Lato, Arial`;
108
- context.textAlign = "center"; // Setup background and front color
109
-
110
- context = this.applyBackground(context, dimensions, bgColor);
111
- context = this.applyText(context, dimensions, textColor); // Set image representation in default format (png)
112
-
113
- const dataURI = canvas.toDataURL(); // Dispose canvas element
114
-
115
- canvas = null;
116
- this.cachedImageDataUrl = dataURI;
117
- return this.cachedImageDataUrl;
118
- }
119
- /** Applies the background colour to the canvas. */
120
-
121
- }, {
122
- key: "applyBackground",
123
- value: function applyBackground(canvasContext, dimensions, bgColor) {
124
- canvasContext.fillStyle = bgColor;
125
- canvasContext.fillRect(0, 0, dimensions, dimensions);
126
- return canvasContext;
30
+ const PortraitInitials = ({
31
+ theme,
32
+ initials,
33
+ size,
34
+ shape,
35
+ darkBackground,
36
+ alt,
37
+ ...rest
38
+ }) => {
39
+ const [cachedImageDataUrl, setCachedImageDataUrl] = (0, _react.useState)();
40
+ (0, _react.useEffect)(() => {
41
+ setCachedImageDataUrl(null);
42
+ }, [theme, initials, size, darkBackground]);
43
+
44
+ const generateDataUrl = () => {
45
+ if (cachedImageDataUrl) {
46
+ return cachedImageDataUrl;
127
47
  }
128
- /** Applies the initials text to the canvas. */
129
-
130
- }, {
131
- key: "applyText",
132
- value: function applyText(canvasContext, dimensions, textColor) {
133
- const letters = this.props.initials.slice(0, 3);
134
- canvasContext.fillStyle = textColor;
135
- canvasContext.fillText(letters.toUpperCase(), dimensions / 2, dimensions / 1.5);
136
- return canvasContext;
137
- }
138
- /** Renders the component. */
139
-
140
- }, {
141
- key: "render",
142
- value: function render() {
143
- const {
144
- size,
145
- shape,
146
- theme,
147
- ...otherProps
148
- } = this.props;
149
- return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitials, _extends({
150
- "data-element": "initials",
151
- size: size,
152
- shape: shape,
153
- theme: theme
154
- }, otherProps), /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitialsImg, {
155
- src: this.generateDataUrl(),
156
- alt: this.props.alt
157
- }));
158
- }
159
- }]);
160
48
 
161
- return PortraitInitials;
162
- }(_react.default.Component);
49
+ const {
50
+ textColor,
51
+ bgColor
52
+ } = (0, _portrait.getColorsForInitials)(theme, darkBackground);
53
+
54
+ let canvas = _browser.default.getDocument().createElement("canvas");
55
+
56
+ const context = canvas.getContext("2d");
57
+ let {
58
+ dimensions
59
+ } = _portrait2.PORTRAIT_SIZE_PARAMS[size];
60
+ dimensions -= 2; // Set canvas with & height
61
+
62
+ canvas.width = dimensions;
63
+ canvas.height = dimensions; // Select a font family to support different language characters
64
+ // like Arial
65
+
66
+ context.font = `${Math.round(canvas.width / 2.4)}px Lato, Arial`;
67
+ context.textAlign = "center"; // Setup background and front color
68
+
69
+ context.fillStyle = bgColor;
70
+ context.fillRect(0, 0, dimensions, dimensions);
71
+ context.fillStyle = textColor;
72
+ context.fillText(initials.slice(0, 3).toUpperCase(), dimensions / 2, dimensions / 1.5); // Set image representation in default format (png)
73
+
74
+ const dataURI = canvas.toDataURL(); // Dispose canvas element
75
+
76
+ canvas = null;
77
+ setCachedImageDataUrl(dataURI);
78
+ return dataURI;
79
+ };
80
+
81
+ return /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitials, _extends({
82
+ "data-element": "initials",
83
+ size: size,
84
+ shape: shape,
85
+ theme: theme
86
+ }, rest), /*#__PURE__*/_react.default.createElement(_portrait.StyledPortraitInitialsImg, {
87
+ src: generateDataUrl(),
88
+ alt: alt
89
+ }));
90
+ };
163
91
 
164
92
  PortraitInitials.propTypes = {
165
93
  /** The theme to use. */