@innovaccer/design-system 2.25.1 → 2.27.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/css/dist/index.css +33 -1
  3. package/css/dist/index.css.map +1 -1
  4. package/css/src/components/avatar.css +1 -1
  5. package/css/src/components/icon.css +32 -0
  6. package/dist/.lib/tsconfig.type.tsbuildinfo +238 -66
  7. package/dist/core/components/atoms/avatar/Avatar.d.ts +4 -1
  8. package/dist/core/components/atoms/avatar/AvatarProvider.d.ts +10 -0
  9. package/dist/core/components/atoms/avatar/avatarIcon/AvatarIcon.d.ts +11 -0
  10. package/dist/core/components/atoms/avatar/avatarIcon/index.d.ts +2 -0
  11. package/dist/core/components/atoms/avatar/avatarImage/AvatarImage.d.ts +8 -0
  12. package/dist/core/components/atoms/avatar/avatarImage/index.d.ts +2 -0
  13. package/dist/core/components/atoms/helpText/HelpText.d.ts +2 -1
  14. package/dist/core/components/atoms/icon/Icon.d.ts +1 -1
  15. package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +268 -268
  16. package/dist/core/components/molecules/tooltip/Tooltip.d.ts +2 -0
  17. package/dist/core/components/organisms/textField/TextField.d.ts +8 -0
  18. package/dist/core/components/organisms/textField/TextFieldCommon.d.ts +12 -0
  19. package/dist/core/components/organisms/textField/TextFieldWithInput.d.ts +14 -0
  20. package/dist/core/components/organisms/textField/TextFieldWithTextarea.d.ts +11 -0
  21. package/dist/core/components/organisms/textField/__test__/Textarea.test.d.ts +6 -0
  22. package/dist/core/components/organisms/textField/index.d.ts +2 -0
  23. package/dist/core/index.d.ts +1 -0
  24. package/dist/core/index.type.d.ts +1 -0
  25. package/dist/core/utils/navigationHelper.d.ts +2 -2
  26. package/dist/index.esm.js +311 -24
  27. package/dist/index.js +305 -23
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.umd.js +1 -1
  30. package/dist/index.umd.js.br +0 -0
  31. package/dist/index.umd.js.gz +0 -0
  32. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  /**
3
- * Generated on: 1700506270234
3
+ * Generated on: 1705328657988
4
4
  * Package: @innovaccer/design-system
5
- * Version: v2.25.1
5
+ * Version: v2.27.0
6
6
  * License: MIT
7
7
  * Docs: https://innovaccer.github.io/design-system
8
8
  */
@@ -440,7 +440,102 @@
440
440
  }, {});
441
441
  };
442
442
 
443
+ var AvatarContext = /*#__PURE__*/React__namespace.createContext({
444
+ size: 'regular',
445
+ appearance: 'secondary',
446
+ firstName: '',
447
+ lastName: ''
448
+ });
449
+ var AvatarProvider = AvatarContext.Provider;
450
+
451
+ var appearanceMapper = {
452
+ secondary: 'inverse',
453
+ primary: 'white',
454
+ alert: 'white',
455
+ accent2: 'white',
456
+ accent3: 'white',
457
+ warning: 'warning_darker',
458
+ success: 'success_darker',
459
+ accent1: 'accent1_darker',
460
+ accent4: 'accent4_darker'
461
+ };
462
+ var AvatarIcon = function AvatarIcon(props) {
463
+ var contextProp = React__namespace.useContext(AvatarContext);
464
+ var size = contextProp.size,
465
+ appearance = contextProp.appearance;
466
+ var iconSize = size === 'regular' ? 20 : 16;
467
+ var iconAppearance = appearance && appearanceMapper[appearance] || 'inverse';
468
+ return /*#__PURE__*/React__namespace.createElement(Icon, __assign({}, props, {
469
+ size: iconSize,
470
+ appearance: iconAppearance
471
+ }));
472
+ };
473
+
474
+ var sizeMapper = {
475
+ regular: 32,
476
+ tiny: 24
477
+ };
478
+ var AvatarImage = function AvatarImage(props) {
479
+ var _a, _b;
480
+
481
+ var children = props.children,
482
+ src = props.src;
483
+
484
+ var _c = React__namespace.useState(false),
485
+ error = _c[0],
486
+ setError = _c[1];
487
+
488
+ var contextProp = React__namespace.useContext(AvatarContext);
489
+ var size = contextProp.size,
490
+ appearance = contextProp.appearance,
491
+ firstName = contextProp.firstName,
492
+ lastName = contextProp.lastName;
493
+ var baseProps = extractBaseProps(props);
494
+ var initials = "" + (firstName ? firstName.trim()[0] : '') + (lastName ? lastName.trim()[0] : '');
495
+ var imgSize = size && sizeMapper[size];
496
+ var TextClassNames = classNames__default["default"]((_a = {}, _a["Avatar-content--" + size] = size, _a["Avatar-content--" + appearance] = appearance, _a));
497
+ var IconClassNames = classNames__default["default"]((_b = {}, _b["Avatar-content--" + appearance] = appearance, _b));
498
+
499
+ var onError = function onError() {
500
+ setError(true);
501
+ };
502
+
503
+ if (children) {
504
+ return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, children);
505
+ }
506
+
507
+ if (error) {
508
+ if (initials) {
509
+ return /*#__PURE__*/React__namespace.createElement(Text, __assign({
510
+ weight: "medium",
511
+ appearance: 'white',
512
+ className: TextClassNames
513
+ }, baseProps), initials);
514
+ }
515
+
516
+ return /*#__PURE__*/React__namespace.createElement(Icon, {
517
+ "data-test": "DesignSystem-Avatar--Icon",
518
+ name: "person",
519
+ size: size === 'regular' ? 20 : 16,
520
+ appearance: "white",
521
+ className: IconClassNames
522
+ });
523
+ }
524
+
525
+ return /*#__PURE__*/React__namespace.createElement("img", __assign({
526
+ "data-test": "DesignSystem-Image",
527
+ src: src,
528
+ alt: firstName
529
+ }, baseProps, {
530
+ height: imgSize,
531
+ width: imgSize,
532
+ onError: onError
533
+ }));
534
+ };
535
+
443
536
  var initialsLength = 2;
537
+ var DefaultAppearance = 'secondary';
538
+ var colors = ['accent4', 'primary', 'accent3', 'alert', 'accent2', 'warning', 'accent1', 'success'];
444
539
  var Avatar = function Avatar(props) {
445
540
  var _a, _b, _c;
446
541
 
@@ -453,32 +548,46 @@
453
548
  className = props.className,
454
549
  appearance = props.appearance;
455
550
  var baseProps = extractBaseProps(props);
456
- var initials = children ? children.trim().slice(0, initialsLength) : "" + (firstName ? firstName.trim()[0] : '') + (lastName ? lastName.trim()[0] : '');
457
- var tooltip = children || (firstName || '') + " " + (lastName || '') || '';
458
- var DefaultAppearance = 'secondary';
459
- var colors = ['accent4', 'primary', 'accent3', 'alert', 'accent2', 'warning', 'accent1', 'success'];
551
+ var initials = children && typeof children === 'string' ? children.trim().slice(0, initialsLength) : "" + (firstName ? firstName.trim()[0] : '') + (lastName ? lastName.trim()[0] : '');
552
+ var tooltip = children && typeof children === 'string' ? children : (firstName || '') + " " + (lastName || '') || '';
460
553
  var AvatarAppearance = appearance || colors[(initials.charCodeAt(0) + (initials.charCodeAt(1) || 0)) % 8] || DefaultAppearance;
461
- var classes = classNames__default["default"]((_a = {
554
+ var AvatarClassNames = classNames__default["default"]((_a = {
462
555
  Avatar: true
463
556
  }, _a["Avatar--" + size] = size, _a["Avatar--" + AvatarAppearance] = AvatarAppearance, _a['Avatar--disabled'] = !initials || !withTooltip, _a), className);
464
- var ContentClass = classNames__default["default"]((_b = {}, _b["Avatar-content--" + size] = size, _b["Avatar-content--" + AvatarAppearance] = AvatarAppearance, _b));
465
- var IconClass = classNames__default["default"]((_c = {}, _c["Avatar-content--" + AvatarAppearance] = AvatarAppearance, _c));
557
+ var TextClassNames = classNames__default["default"]((_b = {}, _b["Avatar-content--" + size] = size, _b["Avatar-content--" + AvatarAppearance] = AvatarAppearance, _b));
558
+ var IconClassNames = classNames__default["default"]((_c = {}, _c["Avatar-content--" + AvatarAppearance] = AvatarAppearance, _c));
559
+ var sharedProp = {
560
+ size: size,
561
+ firstName: firstName,
562
+ lastName: lastName,
563
+ appearance: AvatarAppearance
564
+ };
466
565
 
467
566
  var renderAvatar = function renderAvatar() {
567
+ if (children && typeof children !== 'string') {
568
+ return /*#__PURE__*/React__namespace.createElement(AvatarProvider, {
569
+ value: sharedProp
570
+ }, /*#__PURE__*/React__namespace.createElement("span", __assign({
571
+ "data-test": "DesignSystem-Avatar"
572
+ }, baseProps, {
573
+ className: AvatarClassNames
574
+ }), children));
575
+ }
576
+
468
577
  return /*#__PURE__*/React__namespace.createElement("span", __assign({
469
578
  "data-test": "DesignSystem-Avatar"
470
579
  }, baseProps, {
471
- className: classes
580
+ className: AvatarClassNames
472
581
  }), initials && /*#__PURE__*/React__namespace.createElement(Text, {
473
582
  weight: "medium",
474
583
  appearance: 'white',
475
- className: ContentClass
584
+ className: TextClassNames
476
585
  }, initials), !initials && /*#__PURE__*/React__namespace.createElement(Icon, {
477
586
  "data-test": "DesignSystem-Avatar--Icon",
478
587
  name: "person",
479
- size: size === 'regular' ? 16 : 12,
588
+ size: size === 'regular' ? 20 : 16,
480
589
  appearance: 'white',
481
- className: IconClass
590
+ className: IconClassNames
482
591
  }));
483
592
  };
484
593
 
@@ -497,6 +606,8 @@
497
606
  return renderTooltip();
498
607
  };
499
608
  Avatar.displayName = 'Avatar';
609
+ Avatar.Icon = AvatarIcon;
610
+ Avatar.Image = AvatarImage;
500
611
  Avatar.defaultProps = {
501
612
  tooltipPosition: 'bottom',
502
613
  withTooltip: true,
@@ -6740,7 +6851,6 @@
6740
6851
 
6741
6852
  var onClose = function onClose(selected) {
6742
6853
  setEditing(false);
6743
- setShowComponent(false);
6744
6854
  if (onDropdownClose) onDropdownClose(selected);
6745
6855
  };
6746
6856
 
@@ -8508,7 +8618,7 @@
8508
8618
  }
8509
8619
 
8510
8620
  var popperAnimationStyles = {
8511
- animation: open ? "popper-open-" + uniqueKey + " 120ms cubic-bezier(0, 0, 0.38, 0.9), popper-fade-in 120ms" : "popper-close-" + uniqueKey + " 120ms cubic-bezier(0.2, 0, 1, 0.9) 120ms, fadeOut 120ms 120ms"
8621
+ animation: open ? "popper-open-" + uniqueKey + " 120ms cubic-bezier(0, 0, 0.38, 0.9), popper-fade-in 120ms" : "popper-close-" + uniqueKey + " 120ms cubic-bezier(0.2, 0, 1, 0.9), fadeOut 100ms"
8512
8622
  };
8513
8623
  childrenStyles = __assign(__assign(__assign({}, childrenStyles), popperAnimationStyles), {
8514
8624
  overflow: 'hidden'
@@ -9226,7 +9336,12 @@
9226
9336
  var Tooltip = function Tooltip(props) {
9227
9337
  var children = props.children,
9228
9338
  tooltip = props.tooltip,
9229
- rest = __rest(props, ["children", "tooltip"]);
9339
+ showTooltip = props.showTooltip,
9340
+ rest = __rest(props, ["children", "tooltip", "showTooltip"]);
9341
+
9342
+ if (!showTooltip) {
9343
+ return children;
9344
+ }
9230
9345
 
9231
9346
  var tooltipWrapper = /*#__PURE__*/React__namespace.createElement("div", {
9232
9347
  className: "Tooltip"
@@ -9247,7 +9362,8 @@
9247
9362
  }), tooltipWrapper);
9248
9363
  };
9249
9364
  Tooltip.defaultProps = Object.assign({}, filterProps(Popover.defaultProps, tooltipPropsList), {
9250
- hoverable: false
9365
+ hoverable: false,
9366
+ showTooltip: true
9251
9367
  });
9252
9368
 
9253
9369
  var Dialog = function Dialog(props) {
@@ -16356,21 +16472,26 @@
16356
16472
 
16357
16473
  var HelpText = function HelpText(props) {
16358
16474
  var error = props.error,
16359
- message = props.message;
16475
+ message = props.message,
16476
+ className = props.className;
16477
+ var baseProps = extractBaseProps(props);
16478
+ var classes = classNames__default["default"]({
16479
+ 'mt-3': true
16480
+ }, className);
16360
16481
  if (!message) return null;
16361
16482
 
16362
16483
  if (error) {
16363
16484
  return /*#__PURE__*/React__namespace.createElement(InlineMessage, {
16364
16485
  size: "small",
16365
- className: "mt-3",
16486
+ className: classes,
16366
16487
  appearance: "alert",
16367
16488
  description: message
16368
16489
  });
16369
16490
  }
16370
16491
 
16371
- return /*#__PURE__*/React__namespace.createElement("div", {
16372
- className: "mt-3"
16373
- }, /*#__PURE__*/React__namespace.createElement(Text, {
16492
+ return /*#__PURE__*/React__namespace.createElement("div", __assign({}, baseProps, {
16493
+ className: classes
16494
+ }), /*#__PURE__*/React__namespace.createElement(Text, {
16374
16495
  appearance: "subtle",
16375
16496
  size: "small",
16376
16497
  weight: "medium"
@@ -17500,7 +17621,167 @@
17500
17621
  };
17501
17622
  Listbox.Item = ListboxItem;
17502
17623
 
17503
- var version = "2.25.1";
17624
+ var RenderHelpText = function RenderHelpText(_a) {
17625
+ var helpText = _a.helpText,
17626
+ error = _a.error;
17627
+ return /*#__PURE__*/React__default["default"].createElement(HelpText, {
17628
+ className: "d-flex",
17629
+ message: helpText.trim().length > 0 ? helpText : ' ',
17630
+ error: error ? error : undefined
17631
+ });
17632
+ };
17633
+ var RenderCounter = function RenderCounter(_a) {
17634
+ var inputText = _a.inputText,
17635
+ max = _a.max;
17636
+ return /*#__PURE__*/React__default["default"].createElement("div", {
17637
+ className: "mt-3 d-flex"
17638
+ }, /*#__PURE__*/React__default["default"].createElement(Text, {
17639
+ appearance: "subtle",
17640
+ className: "pr-2",
17641
+ color: inputText.length > max ? 'alert' : undefined,
17642
+ size: "small",
17643
+ weight: "medium"
17644
+ }, inputText.length), /*#__PURE__*/React__default["default"].createElement(Text, {
17645
+ appearance: "subtle",
17646
+ className: "pr-2",
17647
+ size: "small",
17648
+ weight: "medium"
17649
+ }, "/"), /*#__PURE__*/React__default["default"].createElement(Text, {
17650
+ appearance: "subtle",
17651
+ size: "small",
17652
+ weight: "medium"
17653
+ }, max));
17654
+ };
17655
+
17656
+ var TextFieldWithTextarea = function TextFieldWithTextarea(props) {
17657
+ var label = props.label,
17658
+ _a = props.rows,
17659
+ rows = _a === void 0 ? 3 : _a,
17660
+ _b = props.resize,
17661
+ resize = _b === void 0 ? true : _b,
17662
+ required = props.required,
17663
+ error = props.error,
17664
+ onChange = props.onChange,
17665
+ _c = props.value,
17666
+ value = _c === void 0 ? '' : _c,
17667
+ _d = props.max,
17668
+ max = _d === void 0 ? 200 : _d,
17669
+ _e = props.helpText,
17670
+ helpText = _e === void 0 ? ' ' : _e;
17671
+ var textareaRef = React__namespace.useRef(null);
17672
+
17673
+ var _f = React__namespace.useState(value),
17674
+ inputText = _f[0],
17675
+ setInputText = _f[1];
17676
+
17677
+ var _g = React__namespace.useState(0),
17678
+ helptextWidth = _g[0],
17679
+ setHelptextWidth = _g[1];
17680
+
17681
+ var onChangeHandler = function onChangeHandler(e) {
17682
+ setInputText(e.target.value);
17683
+ if (onChange) onChange(e);
17684
+ };
17685
+
17686
+ var inputError = error || inputText.length > max;
17687
+ React__namespace.useEffect(function () {
17688
+ var textarea = textareaRef.current;
17689
+
17690
+ if (window.ResizeObserver) {
17691
+ var resizeObserver_1 = new window.ResizeObserver(function (entries) {
17692
+ var entry = entries[0];
17693
+ var offsetWidth = entry.target.offsetWidth;
17694
+ setHelptextWidth(offsetWidth);
17695
+ });
17696
+ textarea && resizeObserver_1.observe(textarea);
17697
+ return function () {
17698
+ resizeObserver_1.disconnect();
17699
+ };
17700
+ }
17701
+
17702
+ return function () {};
17703
+ }, []);
17704
+ return /*#__PURE__*/React__namespace.createElement("div", null, label && /*#__PURE__*/React__namespace.createElement(Label, {
17705
+ required: required,
17706
+ withInput: true
17707
+ }, label), /*#__PURE__*/React__namespace.createElement(Textarea, __assign({}, props, {
17708
+ resize: resize,
17709
+ rows: rows,
17710
+ onChange: onChangeHandler,
17711
+ error: inputError,
17712
+ ref: textareaRef
17713
+ })), /*#__PURE__*/React__namespace.createElement("div", {
17714
+ className: "d-flex justify-content-between",
17715
+ style: {
17716
+ width: helptextWidth
17717
+ }
17718
+ }, /*#__PURE__*/React__namespace.createElement(RenderHelpText, {
17719
+ helpText: helpText,
17720
+ error: inputError
17721
+ }), /*#__PURE__*/React__namespace.createElement(RenderCounter, {
17722
+ inputText: inputText,
17723
+ max: max
17724
+ })));
17725
+ };
17726
+
17727
+ var TextFieldWithInput = function TextFieldWithInput(props) {
17728
+ var label = props.label,
17729
+ minWidth = props.minWidth,
17730
+ required = props.required,
17731
+ error = props.error,
17732
+ onChange = props.onChange,
17733
+ _a = props.value,
17734
+ value = _a === void 0 ? '' : _a,
17735
+ _b = props.max,
17736
+ max = _b === void 0 ? 200 : _b,
17737
+ _c = props.helpText,
17738
+ helpText = _c === void 0 ? ' ' : _c;
17739
+
17740
+ var _d = React__namespace.useState(value),
17741
+ inputText = _d[0],
17742
+ setInputText = _d[1];
17743
+
17744
+ var onChangeHandler = function onChangeHandler(event) {
17745
+ setInputText(event.target.value);
17746
+ if (onChange) onChange(event);
17747
+ };
17748
+
17749
+ var inputError = error || inputText.length > max;
17750
+ return /*#__PURE__*/React__namespace.createElement("div", null, label && /*#__PURE__*/React__namespace.createElement(Label, {
17751
+ required: required,
17752
+ withInput: true
17753
+ }, label), /*#__PURE__*/React__namespace.createElement(Input, __assign({}, props, {
17754
+ error: inputError,
17755
+ onChange: onChangeHandler
17756
+ })), /*#__PURE__*/React__namespace.createElement("div", {
17757
+ className: "d-flex justify-content-between",
17758
+ style: {
17759
+ minWidth: minWidth
17760
+ }
17761
+ }, /*#__PURE__*/React__namespace.createElement(RenderHelpText, {
17762
+ helpText: helpText,
17763
+ error: inputError
17764
+ }), /*#__PURE__*/React__namespace.createElement(RenderCounter, {
17765
+ inputText: inputText,
17766
+ max: max
17767
+ })));
17768
+ };
17769
+ TextFieldWithInput.defaultProps = {
17770
+ minWidth: 256
17771
+ };
17772
+
17773
+ var TextField = function TextField(props) {
17774
+ var withTextarea = props.withTextarea;
17775
+
17776
+ if (withTextarea) {
17777
+ return /*#__PURE__*/React__namespace.createElement(TextFieldWithTextarea, __assign({}, props));
17778
+ }
17779
+
17780
+ return /*#__PURE__*/React__namespace.createElement(TextFieldWithInput, __assign({}, props));
17781
+ };
17782
+ TextField.displayName = 'TextField';
17783
+
17784
+ var version = "2.27.0";
17504
17785
 
17505
17786
  exports.ActionCard = ActionCard;
17506
17787
  exports.Avatar = Avatar;
@@ -17590,6 +17871,7 @@
17590
17871
  exports.Tabs = Tabs;
17591
17872
  exports.TabsWrapper = TabsWrapper;
17592
17873
  exports.Text = Text;
17874
+ exports.TextField = TextField;
17593
17875
  exports.Textarea = Textarea;
17594
17876
  exports.TimePicker = TimePicker;
17595
17877
  exports.Toast = Toast;