@widergy/energy-ui 3.140.0 → 3.141.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [3.141.1](https://github.com/widergy/energy-ui/compare/v3.141.0...v3.141.1) (2026-03-31)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * markdown fix ([#770](https://github.com/widergy/energy-ui/issues/770)) ([bbb9804](https://github.com/widergy/energy-ui/commit/bbb980470af108f4472b00eb03fdc8c542c2e333))
7
+
8
+ # [3.141.0](https://github.com/widergy/energy-ui/compare/v3.140.0...v3.141.0) (2026-03-18)
9
+
10
+
11
+ ### Features
12
+
13
+ * [AXCH-1339] abbreviations in avatar component ([#769](https://github.com/widergy/energy-ui/issues/769)) ([1604f31](https://github.com/widergy/energy-ui/commit/1604f313981bcdbf64ea23fac687943e30dbefc5))
14
+
1
15
  # [3.140.0](https://github.com/widergy/energy-ui/compare/v3.139.1...v3.140.0) (2026-03-11)
2
16
 
3
17
 
@@ -17,6 +17,7 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
17
17
  const UTAvatar = _ref => {
18
18
  var _iconProps$name;
19
19
  let {
20
+ abbreviation,
20
21
  areaShape = _constants.SHAPE.CIRCLE,
21
22
  className,
22
23
  iconProps,
@@ -32,12 +33,12 @@ const UTAvatar = _ref => {
32
33
  getFirstLetter,
33
34
  getAvatarColors
34
35
  } = _componentUtils.default;
35
- const firstNameLetter = getFirstLetter(userName);
36
36
  const {
37
37
  colorTheme,
38
38
  ...styles
39
- } = getAvatarColors(type === _constants.TYPE.LETTER ? userName : (_iconProps$name = iconProps === null || iconProps === void 0 ? void 0 : iconProps.name) !== null && _iconProps$name !== void 0 ? _iconProps$name : _constants.DEFAULT_ICON, palette || _constants.defaultPalette);
39
+ } = getAvatarColors(type === _constants.TYPE.LETTER ? userName || abbreviation : (_iconProps$name = iconProps === null || iconProps === void 0 ? void 0 : iconProps.name) !== null && _iconProps$name !== void 0 ? _iconProps$name : _constants.DEFAULT_ICON, palette || _constants.defaultPalette);
40
40
  const sizeVariant = _constants.SIZE_VARIANTS[size][type];
41
+ const textToShow = abbreviation || getFirstLetter(userName);
41
42
  return /*#__PURE__*/_react.default.createElement(_Avatar.default, {
42
43
  className: "".concat(className !== null && className !== void 0 ? className : '', " ").concat(size ? _stylesModule.default[size] : ''),
43
44
  style: manualColors ? {} : styles,
@@ -47,13 +48,14 @@ const UTAvatar = _ref => {
47
48
  colorTheme: colorTheme,
48
49
  variant: sizeVariant,
49
50
  weight: "medium"
50
- }, labelProps), firstNameLetter) : /*#__PURE__*/_react.default.createElement(_UTIcon.default, _extends({
51
+ }, labelProps), textToShow) : /*#__PURE__*/_react.default.createElement(_UTIcon.default, _extends({
51
52
  colorTheme: colorTheme,
52
53
  name: _constants.DEFAULT_ICON,
53
54
  size: sizeVariant
54
55
  }, iconProps)));
55
56
  };
56
57
  UTAvatar.propTypes = {
58
+ abbreviation: _propTypes.string,
57
59
  className: _propTypes.string,
58
60
  iconProps: (0, _propTypes.shape)({
59
61
  className: _propTypes.string,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.LetterVsIcon = exports.Letter = exports.Icon = void 0;
6
+ exports.default = exports.WithAbbreviation = exports.LetterVsIcon = exports.Letter = exports.Icon = void 0;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _index = _interopRequireDefault(require("../index"));
9
9
  var _constants = require("../constants");
@@ -28,6 +28,14 @@ const Letter = exports.Letter = {
28
28
  type: _constants.TYPE.LETTER
29
29
  }
30
30
  };
31
+ const WithAbbreviation = exports.WithAbbreviation = {
32
+ args: {
33
+ userName: 'John Doe',
34
+ abbreviation: 'JD',
35
+ type: _constants.TYPE.LETTER
36
+ },
37
+ name: 'With Abbreviation'
38
+ };
31
39
  const Icon = exports.Icon = {
32
40
  args: {
33
41
  userName: 'Icon Avatar',
@@ -7,6 +7,18 @@ exports.COMMON_PARAMETERS = exports.COMMON_ARG_TYPES = exports.COMMON_ARGS = voi
7
7
  var _constants = require("../constants");
8
8
  // Common argTypes used across multiple stories files
9
9
  const COMMON_ARG_TYPES = exports.COMMON_ARG_TYPES = {
10
+ abbreviation: {
11
+ control: 'text',
12
+ description: 'The abbreviation to display instead of the initial letter',
13
+ table: {
14
+ defaultValue: {
15
+ summary: 'undefined'
16
+ },
17
+ type: {
18
+ summary: 'string'
19
+ }
20
+ }
21
+ },
10
22
  userName: {
11
23
  control: 'text',
12
24
  description: 'The name of the user to display (first letter will be shown)',
@@ -24,35 +24,94 @@ function remarkDeflist() {
24
24
  return tree => {
25
25
  (0, _unistUtilVisit.visit)(tree, _constants.NODE_TYPES.PARAGRAPH, (node, index, parent) => {
26
26
  if (!parent || !Array.isArray(parent.children)) return;
27
+
28
+ // Check if this paragraph contains definition list items
29
+ // A valid definition list has lines that start with ':' at the beginning (after whitespace)
30
+ const hasDefinitionItems = node.children.some(child => {
31
+ if ('value' in child) {
32
+ const lines = child.value.split('\n');
33
+ return lines.some(l => l.trim().startsWith(':'));
34
+ }
35
+ return false;
36
+ });
37
+ if (!hasDefinitionItems) return;
38
+
39
+ // Extract text content to check structure
27
40
  const raw = node.children.map(ch => 'value' in ch ? ch.value : '').join('');
28
41
  const lines = raw.split('\n');
29
- if (!lines.some(l => l.trim().startsWith(':'))) return;
42
+
43
+ // Validate that this is a proper definition list structure
44
+ // A valid definition list should have at least one term followed by descriptions
45
+ let hasValidStructure = false;
46
+ let hasTerms = false;
47
+ let hasDescriptions = false;
48
+ for (let i = 0; i < lines.length; i += 1) {
49
+ const trimmed = lines[i].trim();
50
+ if (trimmed && !trimmed.startsWith(':')) {
51
+ hasTerms = true;
52
+ }
53
+ if (trimmed.startsWith(':')) {
54
+ hasDescriptions = true;
55
+ }
56
+ }
57
+ hasValidStructure = hasTerms && hasDescriptions;
58
+ if (!hasValidStructure) return;
59
+
60
+ // Build items while preserving node structure
30
61
  const items = [];
31
62
  let currentTerm = null;
32
- for (let i = 0; i < lines.length; i += 1) {
33
- const line = lines[i];
34
- const trimmed = line.trim();
63
+ const processLine = trimmed => {
35
64
  if (trimmed && !trimmed.startsWith(':')) {
65
+ // This is a term
36
66
  if (currentTerm) {
37
- items.push(currentTerm);
67
+ items.push({
68
+ term: currentTerm,
69
+ desc: []
70
+ });
38
71
  }
39
- currentTerm = {
40
- term: trimmed,
41
- desc: []
42
- };
72
+ currentTerm = trimmed;
43
73
  } else if (trimmed.startsWith(':')) {
74
+ // This is a description
44
75
  if (!currentTerm) {
45
- currentTerm = {
46
- term: '',
47
- desc: []
48
- };
76
+ currentTerm = '';
77
+ }
78
+ const itemExists = items.some(item => item.term === currentTerm);
79
+ if (!itemExists) {
80
+ // Only add if we haven't already added this term
81
+ if (currentTerm) {
82
+ items.push({
83
+ term: currentTerm,
84
+ desc: []
85
+ });
86
+ currentTerm = null;
87
+ }
88
+ }
89
+ const descText = trimmed.replace(/^:\s*/, '');
90
+ if (items.length > 0) {
91
+ items[items.length - 1].desc.push(descText);
92
+ }
93
+ }
94
+ };
95
+ for (let i = 0; i < node.children.length; i += 1) {
96
+ const child = node.children[i];
97
+ if ('value' in child) {
98
+ const childLines = child.value.split('\n');
99
+ for (let lineIdx = 0; lineIdx < childLines.length; lineIdx += 1) {
100
+ const line = childLines[lineIdx];
101
+ const trimmed = line.trim();
102
+ processLine(trimmed);
49
103
  }
50
- currentTerm.desc.push(trimmed.replace(/^:\s*/, ''));
51
104
  }
52
105
  }
53
106
  if (currentTerm) {
54
- items.push(currentTerm);
107
+ items.push({
108
+ term: currentTerm,
109
+ desc: []
110
+ });
55
111
  }
112
+
113
+ // Only process if we have valid items
114
+ if (items.length === 0) return;
56
115
  const dlNode = {
57
116
  type: _constants.COMPONENTS_NAMES.DEFINITION_LIST,
58
117
  data: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/energy-ui",
3
- "version": "3.140.0",
3
+ "version": "3.141.1",
4
4
  "description": "Widergy Web Components",
5
5
  "author": "widergy",
6
6
  "license": "MIT",