@decisiv/ui-components 2.0.1-alpha.222 → 2.0.1-alpha.224

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.
Files changed (34) hide show
  1. package/lib/atoms/InputField/index.d.ts +3 -0
  2. package/lib/atoms/InputField/index.d.ts.map +1 -1
  3. package/lib/atoms/InputField/index.js +9 -2
  4. package/lib/atoms/InputField/styles.d.ts +7 -0
  5. package/lib/atoms/InputField/styles.d.ts.map +1 -0
  6. package/lib/atoms/InputField/styles.js +31 -0
  7. package/lib/atoms/OptionsList/index.d.ts.map +1 -1
  8. package/lib/atoms/OptionsList/index.js +141 -15
  9. package/lib/atoms/OptionsList/index.test.js +89 -36
  10. package/lib/atoms/OptionsList/types.d.ts +16 -0
  11. package/lib/atoms/OptionsList/types.d.ts.map +1 -1
  12. package/lib/atoms/OptionsList/utils.d.ts +3 -1
  13. package/lib/atoms/OptionsList/utils.d.ts.map +1 -1
  14. package/lib/atoms/OptionsList/utils.js +79 -2
  15. package/lib/components/Combobox/index.d.ts.map +1 -1
  16. package/lib/components/Combobox/index.js +4 -2
  17. package/lib/components/Combobox/types.d.ts +1 -0
  18. package/lib/components/Combobox/types.d.ts.map +1 -1
  19. package/lib/components/TagInput/index.d.ts +3 -12
  20. package/lib/components/TagInput/index.d.ts.map +1 -1
  21. package/lib/components/TagInput/index.js +56 -13
  22. package/lib/components/TagInput/index.test.js +66 -0
  23. package/lib/components/TagInput/schema.d.ts.map +1 -1
  24. package/lib/components/TagInput/schema.js +8 -2
  25. package/lib/components/TagInput/types.d.ts +21 -0
  26. package/lib/components/TagInput/types.d.ts.map +1 -0
  27. package/lib/components/TagInput/types.js +5 -0
  28. package/lib/components/Wizard/index.d.ts +9 -1
  29. package/lib/components/Wizard/index.d.ts.map +1 -1
  30. package/lib/components/Wizard/index.js +34 -21
  31. package/lib/components/Wizard/index.test.js +157 -28
  32. package/lib/components/Wizard/schema.d.ts.map +1 -1
  33. package/lib/components/Wizard/schema.js +6 -4
  34. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Item, Category, Option, LinkOption } from './types';
1
+ import { Item, Category, Option, LinkOption, FlattenedItem } from './types';
2
2
  export declare const getId: (item: Item) => string;
3
3
  export declare const isCategory: (item: Item) => item is Category;
4
4
  export declare const sanitizeIds: (ids: string | string[] | undefined, multiple: boolean) => string[];
@@ -6,4 +6,6 @@ export declare const ensureItemIsVisible: (container: HTMLUListElement | null, i
6
6
  focus?: boolean | undefined;
7
7
  } | undefined) => void;
8
8
  export declare const isLink: (item: Option) => item is LinkOption;
9
+ export declare const flattenItems: (items: Item[]) => FlattenedItem[];
10
+ export declare const getItemHeight: (flattenedItem: FlattenedItem, size?: "small" | "medium") => number;
9
11
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE7D,eAAO,MAAM,KAAK,wBAAgD,CAAC;AAEnE,eAAO,MAAM,UAAU,kCACuB,CAAC;AAE/C,eAAO,MAAM,WAAW,qEAWvB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;sBA+B/B,CAAC;AAEF,eAAO,MAAM,MAAM,sCACgB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/atoms/OptionsList/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE5E,eAAO,MAAM,KAAK,wBAAgD,CAAC;AAEnE,eAAO,MAAM,UAAU,kCACuB,CAAC;AAE/C,eAAO,MAAM,WAAW,qEAWvB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;sBA+B/B,CAAC;AAEF,eAAO,MAAM,MAAM,sCACgB,CAAC;AAepC,eAAO,MAAM,YAAY,oCA+BxB,CAAC;AAYF,eAAO,MAAM,aAAa,qEAkBzB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isLink = exports.ensureItemIsVisible = exports.sanitizeIds = exports.isCategory = exports.getId = void 0;
6
+ exports.getItemHeight = exports.flattenItems = exports.isLink = exports.ensureItemIsVisible = exports.sanitizeIds = exports.isCategory = exports.getId = void 0;
7
7
 
8
8
  var _castArray = _interopRequireDefault(require("lodash/castArray"));
9
9
 
@@ -73,5 +73,82 @@ exports.ensureItemIsVisible = ensureItemIsVisible;
73
73
  var isLink = function isLink(item) {
74
74
  return 'linkTo' in item && !!item.linkTo;
75
75
  };
76
+ /**
77
+ * Flatten items array to include category items inline for virtualization
78
+ *
79
+ * Categories are rendered as:
80
+ * - Category header (with special styling)
81
+ * - Followed by its items
82
+ *
83
+ * This function transforms:
84
+ * [Option1, Category{items: [Option2, Option3]}, Option4]
85
+ *
86
+ * Into:
87
+ * [Option1, CategoryHeader, Option2, Option3, Option4]
88
+ */
89
+
90
+
91
+ exports.isLink = isLink;
92
+
93
+ var flattenItems = function flattenItems(items) {
94
+ var flattened = [];
95
+ items.forEach(function (item) {
96
+ if (isCategory(item)) {
97
+ // Add the category header
98
+ flattened.push({
99
+ item: item,
100
+ type: 'category-header',
101
+ originalItem: item
102
+ }); // Add all items within the category
103
+
104
+ item.items.forEach(function (subItem) {
105
+ flattened.push({
106
+ item: subItem,
107
+ type: 'option',
108
+ originalItem: item // Keep reference to parent category
109
+
110
+ });
111
+ });
112
+ } else {
113
+ // Regular option
114
+ flattened.push({
115
+ item: item,
116
+ type: 'option',
117
+ originalItem: item
118
+ });
119
+ }
120
+ });
121
+ return flattened;
122
+ };
123
+ /**
124
+ * Calculate item height based on type and size for virtualization
125
+ *
126
+ * Heights are based on the styled-components padding values:
127
+ * - Options (small): 5px top + 5px bottom padding + ~25px content = ~35px
128
+ * - Options (medium): 10px top + 10px bottom padding + ~25px content = ~45px
129
+ * - Categories (small): 15px top + 7px bottom padding + ~20px content = ~42px
130
+ * - Categories (medium): 15px top + 10px bottom padding + ~25px content = ~50px
131
+ * - Options with labelDetails: Add ~20px extra height
132
+ */
133
+
134
+
135
+ exports.flattenItems = flattenItems;
136
+
137
+ var getItemHeight = function getItemHeight(flattenedItem) {
138
+ var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'small';
139
+ var type = flattenedItem.type,
140
+ item = flattenedItem.item;
141
+
142
+ if (type === 'category-header') {
143
+ // Category headers are taller
144
+ return size === 'medium' ? 50 : 42;
145
+ } // Regular option
146
+
147
+
148
+ var baseHeight = size === 'medium' ? 45 : 35; // Check if option has labelDetails (secondary text) which adds height
149
+
150
+ var hasLabelDetails = 'labelDetails' in item && item.labelDetails;
151
+ return hasLabelDetails ? baseHeight + 20 : baseHeight;
152
+ };
76
153
 
77
- exports.isLink = isLink;
154
+ exports.getItemHeight = getItemHeight;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/index.tsx"],"names":[],"mappings":"AASA,OAAc,EAGZ,sBAAsB,EAQvB,MAAM,OAAO,CAAC;AA2Bf,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAQ,MAAM,SAAS,CAAC;AA4mBhE,QAAA,MAAM,eAAe,EAAE,sBAAsB,CAC3C,gBAAgB,EAChB,aAAa,CACS,CAAC;AAOzB,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/index.tsx"],"names":[],"mappings":"AASA,OAAc,EAGZ,sBAAsB,EAQvB,MAAM,OAAO,CAAC;AA2Bf,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAQ,MAAM,SAAS,CAAC;AA8mBhE,QAAA,MAAM,eAAe,EAAE,sBAAsB,CAC3C,gBAAgB,EAChB,aAAa,CACS,CAAC;AAOzB,eAAe,eAAe,CAAC"}
@@ -126,7 +126,8 @@ function Combobox(props, ref) {
126
126
  containerSelector = props.containerSelector,
127
127
  pointerEvents = props.pointerEvents,
128
128
  externalIsPopoverVisible = props.isPopoverVisible,
129
- externalListRef = props.listRef;
129
+ externalListRef = props.listRef,
130
+ enableVirtualization = props.enableVirtualization;
130
131
 
131
132
  var _useCombobox = (0, _useCombobox2.default)(props),
132
133
  getInputFieldProps = _useCombobox.getInputFieldProps,
@@ -605,7 +606,8 @@ function Combobox(props, ref) {
605
606
  visible: Boolean(popoverVisibleStateToUse || loading),
606
607
  renderOptionLabel: renderOptionLabel,
607
608
  zIndex: zIndex,
608
- pointerEvents: pointerEvents
609
+ pointerEvents: pointerEvents,
610
+ enableVirtualization: enableVirtualization
609
611
  }));
610
612
  }));
611
613
  }
@@ -12,6 +12,7 @@ export interface ComboboxProps extends Omit<React.InputHTMLAttributes<ComboboxIn
12
12
  clearButtonLabel?: string;
13
13
  defaultInputValue?: string;
14
14
  defaultValue?: string;
15
+ enableVirtualization?: boolean;
15
16
  inputValue?: string;
16
17
  isPopoverVisible?: boolean;
17
18
  multiple?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Combobox/types.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { BaseInputFieldProps } from '../../atoms/InputField';
3
- import { DropdownListItem } from '../DropdownList/types';
4
- export interface TagInputProps extends Omit<BaseInputFieldProps, 'onChange' | 'children' | 'value' | 'hideLabel'> {
5
- hiddenLabel?: boolean;
6
- defaultTags?: string[];
7
- tags?: string[];
8
- options: DropdownListItem[];
9
- onChange?: (value: string[]) => void;
10
- onSelect?: (item: string[]) => void;
11
- zIndex?: number;
12
- }
13
- export default function TagInput({ defaultTags, tags, onChange, disabled, readOnly, label, hiddenLabel, options, onSelect, zIndex, ...props }: TagInputProps): JSX.Element;
2
+ import { TagInputProps, TagItem, TagObject } from './types';
3
+ export { TagInputProps, TagItem, TagObject };
4
+ export default function TagInput({ defaultTags, tags, onChange, disabled, readOnly, label, hiddenLabel, options, onSelect, maxTags, showMaxTagsCount, zIndex, ...props }: TagInputProps): JSX.Element;
14
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TagInput/index.tsx"],"names":[],"mappings":";AAoBA,OAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKzD,MAAM,WAAW,aACf,SAAQ,IAAI,CACV,mBAAmB,EACnB,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAChD;IACD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,WAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,EACR,MAAM,EACN,GAAG,KAAK,EACT,EAAE,aAAa,eA2Sf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TagInput/index.tsx"],"names":[],"mappings":";AAyBA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAI5D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,WAAgB,EAChB,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,GAAG,KAAK,EACT,EAAE,aAAa,eAkUf"}
@@ -4,6 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = TagInput;
7
+ Object.defineProperty(exports, "TagInputProps", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _types.TagInputProps;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "TagItem", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _types.TagItem;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "TagObject", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _types.TagObject;
23
+ }
24
+ });
7
25
 
8
26
  var _react = _interopRequireWildcard(require("react"));
9
27
 
@@ -29,6 +47,8 @@ var _Button = _interopRequireDefault(require("../Button"));
29
47
 
30
48
  var _DropdownList = _interopRequireDefault(require("../DropdownList"));
31
49
 
50
+ var _types = require("./types");
51
+
32
52
  var _styles = require("./styles");
33
53
 
34
54
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -68,8 +88,10 @@ function TagInput(_ref) {
68
88
  hiddenLabel = _ref.hiddenLabel,
69
89
  options = _ref.options,
70
90
  onSelect = _ref.onSelect,
91
+ maxTags = _ref.maxTags,
92
+ showMaxTagsCount = _ref.showMaxTagsCount,
71
93
  zIndex = _ref.zIndex,
72
- props = _objectWithoutProperties(_ref, ["defaultTags", "tags", "onChange", "disabled", "readOnly", "label", "hiddenLabel", "options", "onSelect", "zIndex"]);
94
+ props = _objectWithoutProperties(_ref, ["defaultTags", "tags", "onChange", "disabled", "readOnly", "label", "hiddenLabel", "options", "onSelect", "maxTags", "showMaxTagsCount", "zIndex"]);
73
95
 
74
96
  var clearButtonRef = (0, _react.useRef)(null);
75
97
  var listRef = (0, _react.useRef)(null);
@@ -102,6 +124,11 @@ function TagInput(_ref) {
102
124
  var tagsToRender = (0, _react.useMemo)(function () {
103
125
  return tags || innerTags;
104
126
  }, [tags, innerTags]);
127
+ var flatenTagsToRender = (0, _react.useMemo)(function () {
128
+ return tagsToRender.map(function (tag) {
129
+ return typeof tag === 'string' ? tag : tag.text;
130
+ });
131
+ }, [tagsToRender]);
105
132
  var isDisabled = disabled || readOnly;
106
133
  var handleNotifyChange = (0, _react.useCallback)(function (value) {
107
134
  if (!onChange) return;
@@ -112,7 +139,7 @@ function TagInput(_ref) {
112
139
  }, [options]);
113
140
  var handleAddTag = (0, _react.useCallback)(function (rawString) {
114
141
  var text = rawString.replace(/\s+/g, ' ').trim();
115
- if (!text || tagsToRender.includes(text)) return;
142
+ if (!text || flatenTagsToRender.includes(text)) return;
116
143
 
117
144
  if (isControlled) {
118
145
  handleNotifyChange([].concat(_toConsumableArray(tags), [text]));
@@ -124,7 +151,7 @@ function TagInput(_ref) {
124
151
  handleNotifyChange(newState);
125
152
  return newState;
126
153
  });
127
- }, [handleNotifyChange, tags, tagsToRender, isControlled]);
154
+ }, [handleNotifyChange, tags, flatenTagsToRender, isControlled]);
128
155
  var handleRemoveOnBackspace = (0, _react.useCallback)(function () {
129
156
  if (isControlled) {
130
157
  handleNotifyChange(_toConsumableArray(tags.slice(0, -1)));
@@ -144,14 +171,14 @@ function TagInput(_ref) {
144
171
 
145
172
  if (isControlled) {
146
173
  handleNotifyChange(_toConsumableArray(tags).filter(function (tag) {
147
- return tag !== text;
174
+ return typeof tag === 'string' ? tag !== text : tag.text !== text;
148
175
  }));
149
176
  return;
150
177
  }
151
178
 
152
179
  setInnerTags(function (oldState) {
153
180
  var newState = _toConsumableArray(oldState).filter(function (tag) {
154
- return tag !== text;
181
+ return typeof tag === 'string' ? tag !== text : tag.text !== text;
155
182
  });
156
183
 
157
184
  handleNotifyChange(newState);
@@ -213,7 +240,7 @@ function TagInput(_ref) {
213
240
  return newState;
214
241
  });
215
242
  setIsPopoverVisible(false);
216
- }, [handleNotifyChange, tags, isControlled, options]);
243
+ }, [handleNotifyChange, tags, isControlled, options, onSelect]);
217
244
  /**
218
245
  * Toggle the dropdown list.
219
246
  */
@@ -274,20 +301,36 @@ function TagInput(_ref) {
274
301
  label: label,
275
302
  hideLabel: hiddenLabel,
276
303
  inputContainerRef: inputContainerRef,
277
- onClick: handleContainerClick
304
+ onClick: handleContainerClick,
305
+ containerMaxCount: maxTags,
306
+ containerCount: tagsToRender.length,
307
+ showContainerCount: showMaxTagsCount
278
308
  }, props), function (innerProps) {
279
309
  return _react.default.createElement(_styles.Container, null, tagsToRender.map(function (tag) {
310
+ var _ref2 = typeof tag === 'string' ? {
311
+ text: tag
312
+ } : {
313
+ text: tag.text,
314
+ color: tag.color,
315
+ palette: tag.palette
316
+ },
317
+ text = _ref2.text,
318
+ _ref2$color = _ref2.color,
319
+ color = _ref2$color === void 0 ? 'information' : _ref2$color,
320
+ _ref2$palette = _ref2.palette,
321
+ palette = _ref2$palette === void 0 ? 'pastel' : _ref2$palette;
322
+
280
323
  return _react.default.createElement(_Tag.default, {
281
- key: tag,
324
+ key: text,
282
325
  size: "small",
283
- text: tag,
284
- palette: "pastel",
285
- color: isDisabled ? 'licoriceMousse' : 'information',
286
- action: isDisabled ? undefined : handleRemoveTag(tag),
326
+ text: text,
327
+ palette: palette,
328
+ color: isDisabled ? 'licoriceMousse' : color,
329
+ action: isDisabled ? undefined : handleRemoveTag(text),
287
330
  actionIntent: "danger",
288
331
  actionAttributes: {
289
332
  'aria-label': translate(undefined, 'tagInput.tagAriaLabel', {
290
- tagName: tag
333
+ tagName: text
291
334
  })
292
335
  },
293
336
  actionIcon: isDisabled ? undefined : _Times.default
@@ -1074,4 +1074,70 @@ describe('TagInput', function () {
1074
1074
  expect(onSelectMock).toHaveBeenCalledWith(['Option1']);
1075
1075
  });
1076
1076
  });
1077
+ describe('maxTags counter', function () {
1078
+ it('renders maxTags counter when showMaxTagsCount is true', function () {
1079
+ var _render34 = render(_react.default.createElement(_.default, {
1080
+ defaultTags: ['Tag1', 'Tag2'],
1081
+ maxTags: 5,
1082
+ showMaxTagsCount: true,
1083
+ label: "My Tag Input"
1084
+ })),
1085
+ getByText = _render34.getByText;
1086
+
1087
+ expect(getByText('2/5')).toBeInTheDocument();
1088
+ });
1089
+ it('does not render maxTags counter when showMaxTagsCount is false', function () {
1090
+ var _render35 = render(_react.default.createElement(_.default, {
1091
+ defaultTags: ['Tag1', 'Tag2'],
1092
+ maxTags: 5,
1093
+ showMaxTagsCount: false,
1094
+ label: "My Tag Input"
1095
+ })),
1096
+ queryByText = _render35.queryByText;
1097
+
1098
+ expect(queryByText('2/5')).not.toBeInTheDocument();
1099
+ });
1100
+ it('renders red counter when maxTags is reached', function () {
1101
+ var _render36 = render(_react.default.createElement(_.default, {
1102
+ defaultTags: ['Tag1', 'Tag2', 'Tag3', 'Tag4'],
1103
+ maxTags: 3,
1104
+ showMaxTagsCount: true,
1105
+ label: "My Tag Input"
1106
+ })),
1107
+ getByText = _render36.getByText;
1108
+
1109
+ expect(getByText('4/3')).toHaveStyle("\n color: #FF4142;\n ");
1110
+ });
1111
+ });
1112
+ describe('decorated tags', function () {
1113
+ it('renders tags with specified colors', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee33() {
1114
+ var _render37, getByText;
1115
+
1116
+ return regeneratorRuntime.wrap(function _callee33$(_context33) {
1117
+ while (1) {
1118
+ switch (_context33.prev = _context33.next) {
1119
+ case 0:
1120
+ _render37 = render(_react.default.createElement(_.default, {
1121
+ defaultTags: [{
1122
+ text: 'Red Tag',
1123
+ color: 'danger'
1124
+ }, {
1125
+ text: 'Green Tag',
1126
+ color: 'fizzyLime',
1127
+ palette: 'dark'
1128
+ }, 'default tag'],
1129
+ label: "My Tag Input"
1130
+ })), getByText = _render37.getByText;
1131
+ expect(getByText('Red Tag').parentElement.parentElement).toHaveStyle("\n background-color: #ffdfdf;\n ");
1132
+ expect(getByText('Green Tag').parentElement.parentElement).toHaveStyle("\n background-color: #6b7700;\n ");
1133
+ expect(getByText('default tag').parentElement.parentElement).toHaveStyle("\n background-color: #d4eefe;\n ");
1134
+
1135
+ case 4:
1136
+ case "end":
1137
+ return _context33.stop();
1138
+ }
1139
+ }
1140
+ }, _callee33);
1141
+ })));
1142
+ });
1077
1143
  });
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/TagInput/schema.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,MAAM,KAAwC,CAAC;AAoBrD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/components/TagInput/schema.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,MAAM,KAAwC,CAAC;AAmCrD,eAAe,MAAM,CAAC"}
@@ -23,8 +23,14 @@ var schema = (0, _reactDesc.describe)({
23
23
  displayName: 'TagInput'
24
24
  });
25
25
  schema.propTypes = _objectSpread({}, (0, _omit.default)(_InputField.schema.makePropTypes(), ['icon', 'children', 'value', 'onFocus', 'onBlur', 'showCharacterCount', 'maxLength']), {
26
- tags: _reactDesc.PropTypes.arrayOf(_reactDesc.PropTypes.string).description('An array of tags that represents the controlled value of the component.'),
27
- defaultTags: _reactDesc.PropTypes.arrayOf(_reactDesc.PropTypes.string).description('An array of tags that represents the initial uncontrolled value of the component.')
26
+ tags: _reactDesc.PropTypes.arrayOf(_reactDesc.PropTypes.oneOf([_reactDesc.PropTypes.string, _reactDesc.PropTypes.shape({
27
+ text: _reactDesc.PropTypes.string,
28
+ color: _reactDesc.PropTypes.string,
29
+ palette: _reactDesc.PropTypes.string
30
+ })])).description('An array of tags that represents the controlled value of the component. Array elements can be either strings or objects with `text`, `color` and `palette` properties.'),
31
+ defaultTags: _reactDesc.PropTypes.arrayOf(_reactDesc.PropTypes.string).description('An array of tags that represents the initial uncontrolled value of the component.'),
32
+ maxTags: _reactDesc.PropTypes.number.description('The maximum number of tags that should be added to the component. Used in conjuction with `showMaxTagsCount`.'),
33
+ showMaxTagsCount: _reactDesc.PropTypes.bool.description('Whether to show a counter with the number of added tags and the maximum allowed when `maxTags` is set.')
28
34
  });
29
35
  var _default = schema;
30
36
  exports.default = _default;
@@ -0,0 +1,21 @@
1
+ import { CommonUIColorKeys } from '../../utils/commonUIColors';
2
+ import { BaseInputFieldProps } from '../../atoms/InputField';
3
+ import { DropdownListItem } from '../DropdownList/types';
4
+ export interface TagObject {
5
+ text: string;
6
+ color?: CommonUIColorKeys;
7
+ palette?: 'pastel' | 'bright' | 'dark';
8
+ }
9
+ export declare type TagItem = TagObject | string;
10
+ export interface TagInputProps extends Omit<BaseInputFieldProps, 'onChange' | 'children' | 'value' | 'hideLabel'> {
11
+ hiddenLabel?: boolean;
12
+ defaultTags?: TagItem[];
13
+ tags?: TagItem[];
14
+ options: DropdownListItem[];
15
+ onChange?: (value: TagItem[]) => void;
16
+ onSelect?: (item: string[]) => void;
17
+ maxTags?: number;
18
+ showMaxTagsCount?: boolean;
19
+ zIndex?: number;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/TagInput/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,oBAAY,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,aACf,SAAQ,IAAI,CACV,mBAAmB,EACnB,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAChD;IACD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -6,14 +6,22 @@ export interface Step {
6
6
  content: React.ReactNode;
7
7
  nextButtonProps?: ButtonProps;
8
8
  previousButtonProps?: ButtonProps;
9
+ hideBodyTitle?: boolean;
9
10
  }
10
11
  export interface WizardProps extends Pick<ModalProps, 'id' | 'visible' | 'zIndex'> {
11
12
  title: string;
12
13
  size?: 'normal' | 'extraLarge';
13
14
  steps: Step[];
14
15
  activeStep: number;
15
- submitButtonProps: ButtonProps;
16
+ submitButtonProps?: ButtonProps;
16
17
  onCancel: NonNullable<ModalProps['onClose']>;
18
+ renderActions?: (context: {
19
+ step: Step;
20
+ stepIndex: number;
21
+ isFirstStep: boolean;
22
+ isLastStep: boolean;
23
+ defaultActions: React.ReactNode;
24
+ }) => React.ReactNode;
17
25
  }
18
26
  declare function WizardManger(props: PropsWithChildren<WizardProps>): JSX.Element;
19
27
  declare namespace WizardManger {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Wizard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAOjD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAa5C,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,mBAAmB,CAAC,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,WAAW,CAAC;IAC/B,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;CAC9C;AAmGD,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAQ1D;kBARQ,YAAY;;;;AAiBrB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Wizard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAC;AAO1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAa5C,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,mBAAmB,CAAC,EAAE,WAAW,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QACxB,IAAI,EAAE,IAAI,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,OAAO,CAAC;QACpB,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC;KACjC,KAAK,KAAK,CAAC,SAAS,CAAC;CACvB;AAsID,iBAAS,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,eAQ1D;kBARQ,YAAY;;;;AAiBrB,eAAe,YAAY,CAAC"}
@@ -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 _breakpointObserver = require("@decisiv/breakpoint-observer");
11
11
 
@@ -31,6 +31,8 @@ var _schema = _interopRequireDefault(require("./schema"));
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
34
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
35
+
34
36
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { keys.push.apply(keys, Object.getOwnPropertySymbols(object)); } if (enumerableOnly) keys = keys.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); return keys; }
35
37
 
36
38
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -63,6 +65,7 @@ var Wizard = function Wizard(_ref) {
63
65
  size = _ref$size === void 0 ? 'normal' : _ref$size,
64
66
  steps = _ref.steps,
65
67
  onCancel = _ref.onCancel,
68
+ renderActions = _ref.renderActions,
66
69
  _ref$zIndex = _ref.zIndex,
67
70
  zIndex = _ref$zIndex === void 0 ? 100 : _ref$zIndex;
68
71
  var translate = (0, _useTranslations.default)();
@@ -82,10 +85,31 @@ var Wizard = function Wizard(_ref) {
82
85
  var title = currentStep.title,
83
86
  content = currentStep.content,
84
87
  nextButtonProps = currentStep.nextButtonProps,
85
- previousButtonProps = currentStep.previousButtonProps;
88
+ previousButtonProps = currentStep.previousButtonProps,
89
+ hideBodyTitle = currentStep.hideBodyTitle;
86
90
  var showPrevious = currentStepNumber > 1 && !!previousButtonProps;
87
91
  var showSubmit = currentStepNumber === steps.length && !!submitButtonProps;
88
92
  var showNext = currentStepNumber < steps.length && !showSubmit && !!nextButtonProps;
93
+ var defaultActions = (0, _react.useMemo)(function () {
94
+ return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_styles.ActionButtonsContainer, {
95
+ size: breakpoint
96
+ }, showSubmit && _react.default.createElement(_.Button, _extends({
97
+ text: translate('Submit', 'wizard.actions.submit')
98
+ }, submitButtonProps)), showNext && _react.default.createElement(_.Button, _extends({
99
+ text: translate('Continue', 'wizard.actions.continue'),
100
+ icon: _ArrowRight.default,
101
+ iconPosition: "right"
102
+ }, nextButtonProps)), showPrevious && _react.default.createElement(_.Button, _extends({
103
+ text: translate('Back', 'wizard.actions.back'),
104
+ kind: "secondary",
105
+ icon: _ArrowLeft.default
106
+ }, previousButtonProps))), _react.default.createElement(_.Button, {
107
+ text: translate('Cancel', 'wizard.actions.cancel'),
108
+ kind: "secondary",
109
+ variant: "ghost",
110
+ onClick: onCancel
111
+ }));
112
+ }, [breakpoint, showSubmit, translate, submitButtonProps, showNext, nextButtonProps, showPrevious, previousButtonProps, onCancel]);
89
113
  return _react.default.createElement(_ResponsiveModalWrapper.default, {
90
114
  id: id,
91
115
  size: sizeMapping[size],
@@ -103,30 +127,19 @@ var Wizard = function Wizard(_ref) {
103
127
  activeStep: currentStepNumber
104
128
  })), _react.default.createElement(_styles.StepContainer, {
105
129
  tabIndex: 0
106
- }, _react.default.createElement(_.Flex, {
130
+ }, !hideBodyTitle && _react.default.createElement(_.Flex, {
107
131
  marginBottom: 2
108
132
  }, _react.default.createElement(_Typography.H3, null, title)), content)), _react.default.createElement(_styles.Footer, {
109
133
  size: breakpoint,
110
134
  paddingX: (_ref3 = {}, _defineProperty(_ref3, _breakpointObserver.sizes.LG, 3), _defineProperty(_ref3, _breakpointObserver.sizes.XS, 2), _ref3),
111
135
  paddingY: 1.5
112
- }, _react.default.createElement(_styles.ActionButtonsContainer, {
113
- size: breakpoint
114
- }, showSubmit && _react.default.createElement(_.Button, _extends({
115
- text: translate('Submit', 'wizard.actions.submit')
116
- }, submitButtonProps)), showNext && _react.default.createElement(_.Button, _extends({
117
- text: translate('Continue', 'wizard.actions.continue'),
118
- icon: _ArrowRight.default,
119
- iconPosition: "right"
120
- }, nextButtonProps)), showPrevious && _react.default.createElement(_.Button, _extends({
121
- text: translate('Back', 'wizard.actions.back'),
122
- kind: "secondary",
123
- icon: _ArrowLeft.default
124
- }, previousButtonProps))), _react.default.createElement(_.Button, {
125
- text: translate('Cancel', 'wizard.actions.cancel'),
126
- kind: "secondary",
127
- variant: "ghost",
128
- onClick: onCancel
129
- }))));
136
+ }, renderActions ? renderActions({
137
+ step: currentStep,
138
+ stepIndex: currentStepNumber - 1,
139
+ isFirstStep: currentStepNumber === 1,
140
+ isLastStep: currentStepNumber === steps.length,
141
+ defaultActions: defaultActions
142
+ }) : defaultActions)));
130
143
  };
131
144
 
132
145
  function WizardManger(props) {