@widergy/energy-ui 3.126.0 → 3.127.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [3.127.0](https://github.com/widergy/energy-ui/compare/v3.126.0...v3.127.0) (2026-01-06)
2
+
3
+
4
+ ### Features
5
+
6
+ * [PDI-564] citation chips ([#739](https://github.com/widergy/energy-ui/issues/739)) ([e8259c5](https://github.com/widergy/energy-ui/commit/e8259c56f2b378680bd893fb571984d7fedc2060))
7
+
1
8
  # [3.126.0](https://github.com/widergy/energy-ui/compare/v3.125.1...v3.126.0) (2025-12-17)
2
9
 
3
10
 
@@ -5,6 +5,7 @@
5
5
  border-width: 1px;
6
6
  display: flex;
7
7
  flex-direction: row;
8
+ flex-shrink: 0;
8
9
  grid-gap: 8px;
9
10
  transition:
10
11
  background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
@@ -5,6 +5,7 @@
5
5
  white-space: pre-line;
6
6
 
7
7
  &:before {
8
+ background: var(--gray01);
8
9
  border-radius: 3;
9
10
  content: '';
10
11
  display: block;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EXTENSION_ICON = exports.DEFAULT_ICON = void 0;
7
+ const EXTENSION_ICON = exports.EXTENSION_ICON = {
8
+ doc: 'IconFileTypeDoc',
9
+ docx: 'IconFileTypeDocx',
10
+ jpg: 'IconFileTypeJpg',
11
+ pdf: 'IconFileTypePdf',
12
+ txt: 'IconFileTypeTxt',
13
+ xls: 'IconFileTypeXls',
14
+ xml: 'IconFileTypeXml',
15
+ zip: 'IconFileTypeZip'
16
+ };
17
+ const DEFAULT_ICON = exports.DEFAULT_ICON = 'IconFile';
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = require("prop-types");
9
- var _UTButton = _interopRequireDefault(require("../../../../../UTButton"));
9
+ var _UTChip = _interopRequireDefault(require("../../../../../UTChip"));
10
10
  var _WithCustomHandler = _interopRequireDefault(require("../WithCustomHandler"));
11
+ var _utils = require("./utils");
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
13
  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); }
13
14
  const Citation = _ref => {
@@ -15,9 +16,16 @@ const Citation = _ref => {
15
16
  label,
16
17
  url
17
18
  } = _ref;
18
- return /*#__PURE__*/_react.default.createElement(_UTButton.default, {
19
- colorTheme: "secondary",
20
- onClick: () => window.open(url, '_blank', 'noopener,noreferrer'),
19
+ const onClick = () => window.open(url, '_blank', 'noopener,noreferrer');
20
+ const icon = (0, _utils.getIcon)(label, url);
21
+ return /*#__PURE__*/_react.default.createElement(_UTChip.default, {
22
+ adornment: {
23
+ props: {
24
+ name: icon
25
+ },
26
+ type: 'icon'
27
+ },
28
+ onClick: onClick,
21
29
  size: "small"
22
30
  }, label);
23
31
  };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getIcon = void 0;
7
+ var _constants = require("./constants");
8
+ const getFileExtension = str => {
9
+ if (!str) return null;
10
+ const match = str.match(/\.([a-zA-Z0-9]+)(?:\?|$)/);
11
+ return match ? match[1].toLowerCase() : null;
12
+ };
13
+ const getIcon = (label, url) => {
14
+ const extension = getFileExtension(label) || getFileExtension(url);
15
+ const icon = extension && _constants.EXTENSION_ICON[extension] || _constants.DEFAULT_ICON;
16
+ return icon;
17
+ };
18
+ exports.getIcon = getIcon;
@@ -5,21 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _propTypes = require("prop-types");
9
8
  var _WithCustomHandler = _interopRequireDefault(require("../WithCustomHandler"));
10
9
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
11
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
11
  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); }
13
12
  const CitationGroup = _ref => {
14
13
  let {
15
- children,
16
- classes
14
+ children
17
15
  } = _ref;
16
+ const [isHovered, setIsHovered] = (0, _react.useState)(false);
18
17
  return /*#__PURE__*/_react.default.createElement("div", {
19
- className: "".concat(_stylesModule.default.citationGroup, " ").concat(classes.citationGroup)
18
+ className: "".concat(_stylesModule.default.citationGroup, " ").concat(isHovered ? _stylesModule.default.isHovered : ''),
19
+ onMouseEnter: () => setIsHovered(true),
20
+ onMouseLeave: () => setIsHovered(false)
20
21
  }, children);
21
22
  };
22
- CitationGroup.propTypes = {
23
- classes: (0, _propTypes.objectOf)(_propTypes.string)
24
- };
25
23
  var _default = exports.default = /*#__PURE__*/(0, _react.memo)((0, _WithCustomHandler.default)(CitationGroup));
@@ -8,15 +8,22 @@
8
8
  scroll-behavior: smooth;
9
9
  scroll-snap-type: x mandatory;
10
10
 
11
- button {
12
- flex: 0 0 auto;
13
- }
14
-
15
11
  &::-webkit-scrollbar {
16
12
  height: 8px;
17
13
  }
18
14
 
19
- &::-webkit-scrollbar * {
15
+ &::-webkit-scrollbar-track {
20
16
  background-color: transparent;
21
17
  }
18
+
19
+ &::-webkit-scrollbar-thumb {
20
+ background-color: transparent;
21
+ border-radius: 4px;
22
+ }
23
+
24
+ &.isHovered {
25
+ &::-webkit-scrollbar-thumb {
26
+ background-color: var(--light05);
27
+ }
28
+ }
22
29
  }
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = require("prop-types");
9
9
  var _UTIcon = _interopRequireDefault(require("../../../../../UTIcon"));
10
10
  var _WithCustomHandler = _interopRequireDefault(require("../WithCustomHandler"));
11
+ var _utils = require("../../utils");
11
12
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  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); }
@@ -15,7 +16,6 @@ const ListItem = _ref => {
15
16
  var _node$properties;
16
17
  let {
17
18
  children,
18
- classes,
19
19
  node,
20
20
  ...props
21
21
  } = _ref;
@@ -36,18 +36,17 @@ const ListItem = _ref => {
36
36
  }), /*#__PURE__*/_react.default.createElement("span", {
37
37
  className: _stylesModule.default.itemContentChecked
38
38
  }, contentNodes)) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
39
- className: "".concat(_stylesModule.default.taskItemIconUnchecked, " ").concat(classes === null || classes === void 0 ? void 0 : classes.taskItemIconUnchecked)
39
+ className: _stylesModule.default.taskItemIconUnchecked
40
40
  }), /*#__PURE__*/_react.default.createElement("span", null, contentNodes)));
41
41
  }
42
42
  const safeChildren = Array.isArray(children) ? children : children ? [children] : [];
43
43
  const mergedProps = {
44
- ...props,
44
+ ...(0, _utils.cleanElementProps)(props),
45
45
  ...((node === null || node === void 0 ? void 0 : node.properties) || {})
46
46
  };
47
47
  return /*#__PURE__*/_react.default.createElement('li', mergedProps, safeChildren);
48
48
  };
49
49
  ListItem.propTypes = {
50
- classes: (0, _propTypes.objectOf)(_propTypes.string),
51
50
  node: _propTypes.object
52
51
  };
53
52
  var _default = exports.default = /*#__PURE__*/(0, _react.memo)((0, _WithCustomHandler.default)(ListItem));
@@ -7,9 +7,8 @@
7
7
  }
8
8
 
9
9
  .taskItemIconUnchecked {
10
+ border: 1px solid var(--gray01);
10
11
  border-radius: 50%;
11
- border-style: solid;
12
- border-width: 1px;
13
12
  box-sizing: border-box;
14
13
  display: inline-block;
15
14
  flex-shrink: 0;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = require("prop-types");
9
+ var _utils = require("../../utils");
9
10
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
10
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
12
  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); }
@@ -20,7 +21,7 @@ const Section = _ref => {
20
21
  } = _ref;
21
22
  const isFootnotesSection = (node === null || node === void 0 || (_node$properties = node.properties) === null || _node$properties === void 0 ? void 0 : _node$properties.dataFootnotes) !== undefined;
22
23
  if (!isFootnotesSection) {
23
- return /*#__PURE__*/_react.default.createElement('section', props, children);
24
+ return /*#__PURE__*/_react.default.createElement('section', (0, _utils.cleanElementProps)(props), children);
24
25
  }
25
26
  const reactChildren = _react.default.Children.toArray(children);
26
27
  const ol = reactChildren.find(c => (c === null || c === void 0 ? void 0 : c.type) === 'ol');
@@ -27,8 +27,7 @@ var _default = () => {
27
27
  const getText = n => {
28
28
  if (n.type === _constants.NODE_TYPES.TEXT) return n.value || '';
29
29
  if (n.type === _constants.NODE_TYPES.LINK) {
30
- const inner = Array.isArray(n.children) ? n.children.map(getText).join('') : '';
31
- return inner + (n.url || '');
30
+ return Array.isArray(n.children) ? n.children.map(getText).join('') : '';
32
31
  }
33
32
  if (Array.isArray(n.children)) return n.children.map(getText).join('');
34
33
  return '';
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getMarkdownPlugins = void 0;
6
+ exports.getMarkdownPlugins = exports.cleanElementProps = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
8
9
  var _constants = require("./constants");
9
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
11
  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); }
@@ -36,4 +37,12 @@ const getMarkdownPlugins = function (classes, markdownExtended) {
36
37
  remarkPlugins
37
38
  };
38
39
  };
39
- exports.getMarkdownPlugins = getMarkdownPlugins;
40
+ exports.getMarkdownPlugins = getMarkdownPlugins;
41
+ const cleanElementProps = function () {
42
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
43
+ if ((0, _isEmpty.default)(props)) return {};
44
+ if (props.markdownExtended) delete props.markdownExtended;
45
+ if (props.customHandler) delete props.customHandler;
46
+ return props;
47
+ };
48
+ exports.cleanElementProps = cleanElementProps;
@@ -197,23 +197,12 @@ const retrieveStyle = _ref2 => {
197
197
  }
198
198
  },
199
199
  blockquote: {
200
- color: grayTextColor,
201
- '&::before': {
202
- background: theme.Palette[_Palette.COLOR_THEMES.gray][_Palette.COLOR_SHADES.shade01]
203
- }
204
- },
205
- citationGroup: {
206
- '&::-webkit-scrollbar-thumb': {
207
- backgroundColor: theme.Palette[_Palette.COLOR_THEMES.gray][_Palette.COLOR_SHADES.shade04]
208
- }
200
+ color: grayTextColor
209
201
  },
210
202
  customFootnotes: {
211
203
  '& span': {
212
204
  color: grayTextColor
213
205
  }
214
- },
215
- taskItemIconUnchecked: {
216
- borderColor: theme.Palette[_Palette.COLOR_THEMES.gray][_Palette.COLOR_SHADES.shade01]
217
206
  }
218
207
  };
219
208
  };
@@ -162,7 +162,7 @@ const propTypes = exports.propTypes = {
162
162
  classNames: (0, _propTypes.objectOf)(_propTypes.string),
163
163
  dataTestId: _propTypes.string,
164
164
  disabled: _propTypes.bool,
165
- error: _propTypes.bool,
165
+ error: (0, _propTypes.oneOfType)([_propTypes.bool, _propTypes.string]),
166
166
  helpText: _propTypes.string,
167
167
  helperTextDataTestId: _propTypes.string,
168
168
  id: _propTypes.string,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/energy-ui",
3
- "version": "3.126.0",
3
+ "version": "3.127.0",
4
4
  "description": "Widergy Web Components",
5
5
  "author": "widergy",
6
6
  "license": "MIT",