@ssa-ui-kit/core 2.30.0 → 2.32.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 (34) hide show
  1. package/dist/components/Chip/Chip.d.ts +2 -0
  2. package/dist/components/Chip/constants.d.ts +22 -0
  3. package/dist/components/Chip/helpers.d.ts +13 -0
  4. package/dist/components/Chip/index.d.ts +2 -0
  5. package/dist/components/Chip/styles.d.ts +35 -0
  6. package/dist/components/Chip/types.d.ts +23 -0
  7. package/dist/components/DatePicker/styles.d.ts +0 -1
  8. package/dist/components/DateRangePicker/components/DatesListWrapper.d.ts +0 -1
  9. package/dist/components/DateRangePicker/styles.d.ts +0 -2
  10. package/dist/components/Filters/FilterBlockWrapper.d.ts +0 -1
  11. package/dist/components/JsonSchemaForm/constants.d.ts +1 -0
  12. package/dist/components/JsonSchemaForm/index.d.ts +2 -0
  13. package/dist/components/JsonSchemaForm/types.d.ts +6 -0
  14. package/dist/components/PersonInfo/PersonInfo.d.ts +3 -0
  15. package/dist/components/PersonInfo/PersonInfoAvatar.d.ts +3 -0
  16. package/dist/components/PersonInfo/PersonInfoBadges.d.ts +8 -0
  17. package/dist/components/PersonInfo/PersonInfoCounter.d.ts +3 -0
  18. package/dist/components/PersonInfo/PersonInfoIcon.d.ts +7 -0
  19. package/dist/components/PersonInfo/PersonInfoValue.d.ts +3 -0
  20. package/dist/components/PersonInfo/constants.d.ts +9 -0
  21. package/dist/components/PersonInfo/helpers.d.ts +11 -0
  22. package/dist/components/PersonInfo/index.d.ts +2 -0
  23. package/dist/components/PersonInfo/styles.d.ts +71 -0
  24. package/dist/components/PersonInfo/types.d.ts +48 -0
  25. package/dist/components/Tooltip/types.d.ts +1 -0
  26. package/dist/components/Typeahead/components/TypeaheadOption.d.ts +1 -1
  27. package/dist/components/Typeahead/styles.d.ts +4 -1
  28. package/dist/components/Typeahead/types.d.ts +1 -0
  29. package/dist/components/UserProfile/styles.d.ts +0 -2
  30. package/dist/components/Wrapper/Wrapper.d.ts +0 -1
  31. package/dist/components/index.d.ts +2 -0
  32. package/dist/index.js +772 -78
  33. package/dist/index.js.map +1 -1
  34. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -86,6 +86,7 @@ __webpack_require__.d(__webpack_exports__, {
86
86
  CardList: () => (/* reexport */ CardList),
87
87
  ChartBackground: () => (/* reexport */ ChartBackground),
88
88
  Checkbox: () => (/* reexport */ Checkbox_Checkbox),
89
+ Chip: () => (/* reexport */ Chip),
89
90
  CollapsibleNavBar: () => (/* reexport */ CollapsibleNavBar),
90
91
  CollapsibleNavBarContext: () => (/* reexport */ CollapsibleNavBarContext),
91
92
  CollapsibleNavBarCustomIconSVG: () => (/* reexport */ CollapsibleNavBarCustomIconSVG),
@@ -148,6 +149,7 @@ __webpack_require__.d(__webpack_exports__, {
148
149
  Pagination: () => (/* reexport */ Pagination_Pagination),
149
150
  PaginationContext: () => (/* reexport */ PaginationContext),
150
151
  PaginationContextProvider: () => (/* reexport */ PaginationContextProvider),
152
+ PersonInfo: () => (/* reexport */ PersonInfo),
151
153
  PieChart: () => (/* reexport */ PieChart),
152
154
  PieChartComponent: () => (/* reexport */ PieChartComponent),
153
155
  PieChartLegend: () => (/* reexport */ PieChartLegend),
@@ -1100,6 +1102,7 @@ __webpack_require__.d(Field_index_parts_namespaceObject, {
1100
1102
  var JsonSchemaForm_namespaceObject = {};
1101
1103
  __webpack_require__.r(JsonSchemaForm_namespaceObject);
1102
1104
  __webpack_require__.d(JsonSchemaForm_namespaceObject, {
1105
+ DEFAULT_AVATAR_SIZE: () => (DEFAULT_AVATAR_SIZE),
1103
1106
  Fields: () => (fields),
1104
1107
  Form: () => (JsonSchemaForm_Form),
1105
1108
  Templates: () => (templates),
@@ -8224,7 +8227,8 @@ const useTooltip = props => {
8224
8227
  size = 'small',
8225
8228
  hasArrow = true,
8226
8229
  arrowProps = {},
8227
- isOpen: isInitOpen = false
8230
+ isOpen: isInitOpen = false,
8231
+ allowHoverContent = false
8228
8232
  } = props || {};
8229
8233
  const [isOpen, setIsOpen] = (0,external_react_namespaceObject.useState)(isInitOpen || false);
8230
8234
  const arrowRef = (0,external_react_namespaceObject.useRef)(null);
@@ -8242,7 +8246,8 @@ const useTooltip = props => {
8242
8246
  } = floatingData;
8243
8247
  const hover = (0,external_floating_ui_react_namespaceObject.useHover)(context, {
8244
8248
  enabled: enableHover,
8245
- move: true
8249
+ move: true,
8250
+ handleClose: allowHoverContent ? (0,external_floating_ui_react_namespaceObject.safePolygon)() : undefined
8246
8251
  });
8247
8252
  const click = (0,external_floating_ui_react_namespaceObject.useClick)(context, {
8248
8253
  enabled: enableClick
@@ -8782,6 +8787,247 @@ const CardList = ({
8782
8787
  ;// ./src/components/CardList/index.ts
8783
8788
 
8784
8789
 
8790
+ ;// ./src/components/Chip/styles.tsx
8791
+
8792
+ function Chip_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
8793
+
8794
+ const ChipBase = /*#__PURE__*/base_default()("div", true ? {
8795
+ target: "ea97dtp5"
8796
+ } : 0)( true ? {
8797
+ name: "1crjacs",
8798
+ styles: "display:inline-flex;align-items:center;justify-content:center;font-family:Manrope,sans-serif;font-weight:500;border-radius:24px;white-space:nowrap;user-select:none;outline:none"
8799
+ } : 0);
8800
+ const Chip_styles_small = true ? {
8801
+ name: "17p2qgf",
8802
+ styles: "height:24px;padding:2px 8px;font-size:12px;line-height:16px"
8803
+ } : 0;
8804
+ const Chip_styles_medium = true ? {
8805
+ name: "sge2fk",
8806
+ styles: "height:32px;padding:4px 12px;font-size:14px;line-height:20px"
8807
+ } : 0;
8808
+ const Chip_styles_large = true ? {
8809
+ name: "7ik91b",
8810
+ styles: "height:40px;padding:6px 16px;font-size:16px;line-height:24px"
8811
+ } : 0;
8812
+ const baseFilled = theme => /*#__PURE__*/(0,react_namespaceObject.css)("background-color:", theme.colors.greyLighter, ";border:none;" + ( true ? "" : 0), true ? "" : 0);
8813
+ const baseOutlined = theme => /*#__PURE__*/(0,react_namespaceObject.css)("background-color:", theme.colors.white, ";border:1px solid ", theme.colors.grey, ";" + ( true ? "" : 0), true ? "" : 0);
8814
+ const filled = theme => /*#__PURE__*/(0,react_namespaceObject.css)(baseFilled(theme), ";color:", theme.colors.greyDarker, ";" + ( true ? "" : 0), true ? "" : 0);
8815
+ const filledDisabled = theme => /*#__PURE__*/(0,react_namespaceObject.css)(baseFilled(theme), ";color:", theme.colors.greyDisabled, ";opacity:0.6;" + ( true ? "" : 0), true ? "" : 0);
8816
+ const outlined = theme => /*#__PURE__*/(0,react_namespaceObject.css)(baseOutlined(theme), ";color:", theme.colors.greyDarker, ";" + ( true ? "" : 0), true ? "" : 0);
8817
+ const outlinedDisabled = theme => /*#__PURE__*/(0,react_namespaceObject.css)(baseOutlined(theme), ";color:", theme.colors.greyDisabled, ";opacity:0.6;" + ( true ? "" : 0), true ? "" : 0);
8818
+ const clickable = true ? {
8819
+ name: "1q9v0e",
8820
+ styles: "cursor:pointer;transition:all 0.2s ease;&:hover{opacity:0.8;}&:active{opacity:0.7;}"
8821
+ } : 0;
8822
+ const clickableDisabled = true ? {
8823
+ name: "1sfig4b",
8824
+ styles: "cursor:not-allowed"
8825
+ } : 0;
8826
+ const IconWrapper = /*#__PURE__*/base_default()("span", true ? {
8827
+ target: "ea97dtp4"
8828
+ } : 0)( true ? {
8829
+ name: "ltz2qk",
8830
+ styles: "display:flex;align-items:center;margin-right:7px;& svg path{stroke-width:1;}"
8831
+ } : 0);
8832
+ const AvatarWrapper = /*#__PURE__*/base_default()("span", true ? {
8833
+ target: "ea97dtp3"
8834
+ } : 0)( true ? {
8835
+ name: "1twmlgg",
8836
+ styles: "display:flex;align-items:center;margin-right:7px"
8837
+ } : 0);
8838
+ const TitleWrapper = /*#__PURE__*/base_default()("span", true ? {
8839
+ target: "ea97dtp2"
8840
+ } : 0)( true ? {
8841
+ name: "xltcoo",
8842
+ styles: "color:inherit;font-weight:700;margin-right:4px"
8843
+ } : 0);
8844
+ const LabelWrapper = /*#__PURE__*/base_default()("span", true ? {
8845
+ target: "ea97dtp1"
8846
+ } : 0)( true ? {
8847
+ name: "opde7s",
8848
+ styles: "color:inherit"
8849
+ } : 0);
8850
+ const DeleteIconButton = /*#__PURE__*/base_default()("button", true ? {
8851
+ target: "ea97dtp0"
8852
+ } : 0)( true ? {
8853
+ name: "eddkk8",
8854
+ styles: "display:flex;align-items:center;justify-content:center;margin-left:7px;padding:0;padding-top:1px;cursor:pointer;border:none;background:none;color:inherit;transition:opacity 0.2s ease;& svg path{stroke-width:1;}&:hover{opacity:0.7;}&:active{opacity:0.5;}&:disabled{cursor:not-allowed;pointer-events:none;}"
8855
+ } : 0);
8856
+ ;// ./src/components/Chip/constants.ts
8857
+
8858
+ const VARIANTS = {
8859
+ OUTLINED: 'outlined',
8860
+ FILLED: 'filled'
8861
+ };
8862
+ const COLORS = {
8863
+ DEFAULT: 'default',
8864
+ PRIMARY: 'primary',
8865
+ SUCCESS: 'success',
8866
+ ERROR: 'error',
8867
+ INFO: 'info',
8868
+ WARNING: 'warning'
8869
+ };
8870
+ const constants_mapSizes = {
8871
+ small: Chip_styles_small,
8872
+ medium: Chip_styles_medium,
8873
+ large: Chip_styles_large
8874
+ };
8875
+ const ICON_SIZES = {
8876
+ small: 12,
8877
+ medium: 14,
8878
+ large: 16
8879
+ };
8880
+ ;// ./src/components/Chip/helpers.ts
8881
+
8882
+
8883
+
8884
+ const colorMap = theme => ({
8885
+ primary: {
8886
+ main: theme.colors.blue,
8887
+ bg: theme.colors.blue20
8888
+ },
8889
+ success: {
8890
+ main: theme.colors.green,
8891
+ bg: theme.colors.green20
8892
+ },
8893
+ error: {
8894
+ main: theme.colors.red,
8895
+ bg: theme.colors.red40
8896
+ },
8897
+ info: {
8898
+ main: theme.colors.blueLight,
8899
+ bg: theme.colors.blueLight20
8900
+ },
8901
+ warning: {
8902
+ main: theme.colors.yellow,
8903
+ bg: theme.colors.yellow20
8904
+ }
8905
+ });
8906
+ const getVariantColorBlock = (theme, variant, colorConfig, disabled) => {
8907
+ if (variant === 'outlined') {
8908
+ return /*#__PURE__*/(0,react_namespaceObject.css)("background-color:", colorConfig.bg, ";border:1px solid ", colorConfig.main, ";color:", colorConfig.main, ";", disabled ? 'opacity: 0.5;' : '', ";" + ( true ? "" : 0), true ? "" : 0);
8909
+ }
8910
+ return /*#__PURE__*/(0,react_namespaceObject.css)("background-color:", colorConfig.main, ";border:1px solid ", colorConfig.bg, ";color:", theme.colors.white, ";", disabled ? 'opacity: 0.5;' : '', ";" + ( true ? "" : 0), true ? "" : 0);
8911
+ };
8912
+ const getVariantColors = (theme, variant, color, disabled) => {
8913
+ const variantKey = variant ?? VARIANTS.FILLED;
8914
+ const colorKey = color ?? COLORS.DEFAULT;
8915
+ const paletteMap = colorMap(theme);
8916
+ const palette = colorKey === COLORS.DEFAULT ? null : paletteMap[colorKey];
8917
+ const chipStyles = colorKey === COLORS.DEFAULT ? variantKey === VARIANTS.OUTLINED ? disabled ? outlinedDisabled(theme) : outlined(theme) : disabled ? filledDisabled(theme) : filled(theme) : palette ? getVariantColorBlock(theme, variantKey, palette, disabled) : variantKey === VARIANTS.OUTLINED ? outlined(theme) : filled(theme);
8918
+ const iconColor = (() => {
8919
+ if (!palette) {
8920
+ return disabled ? theme.colors.greyDisabled : theme.colors.greyDarker;
8921
+ }
8922
+ if (variantKey === VARIANTS.OUTLINED) {
8923
+ return palette.main;
8924
+ }
8925
+ return theme.colors.white;
8926
+ })();
8927
+ return {
8928
+ chipStyles,
8929
+ iconColor
8930
+ };
8931
+ };
8932
+ ;// ./src/components/Chip/Chip.tsx
8933
+
8934
+
8935
+
8936
+
8937
+
8938
+
8939
+
8940
+ const Chip = /*#__PURE__*/(0,external_react_namespaceObject.forwardRef)(function Chip({
8941
+ label,
8942
+ title,
8943
+ variant = VARIANTS.FILLED,
8944
+ color = COLORS.DEFAULT,
8945
+ size = 'medium',
8946
+ disabled = false,
8947
+ icon,
8948
+ avatar,
8949
+ onDelete,
8950
+ deleteIcon,
8951
+ showIcon = true,
8952
+ onClick,
8953
+ clickable: clickableProp,
8954
+ className,
8955
+ css: customCss,
8956
+ ...props
8957
+ }, ref) {
8958
+ const theme = (0,react_namespaceObject.useTheme)();
8959
+ const isClickable = !disabled && (onClick || clickableProp);
8960
+ const hasDeleteIcon = Boolean(onDelete);
8961
+ const {
8962
+ chipStyles,
8963
+ iconColor
8964
+ } = getVariantColors(theme, variant, color, disabled);
8965
+ const sizeStyles = constants_mapSizes[size];
8966
+ const iconName = showIcon ? icon ?? 'plus' : null;
8967
+ const deleteIconName = deleteIcon ?? 'cross';
8968
+ const leadingIcon = iconName ? (0,jsx_runtime_namespaceObject.jsx)(Icon_Icon, {
8969
+ name: iconName,
8970
+ color: iconColor,
8971
+ size: ICON_SIZES[size]
8972
+ }) : null;
8973
+ const handleDeleteClick = event => {
8974
+ event.stopPropagation();
8975
+ if (onDelete && !disabled) {
8976
+ onDelete(event);
8977
+ }
8978
+ };
8979
+ const handleKeyDown = event => {
8980
+ if (disabled) return;
8981
+ if (event.key === 'Backspace' || event.key === 'Delete') {
8982
+ if (onDelete) {
8983
+ event.preventDefault();
8984
+ const syntheticEvent = {
8985
+ ...event,
8986
+ stopPropagation: () => {},
8987
+ currentTarget: event.currentTarget,
8988
+ target: event.target
8989
+ };
8990
+ onDelete(syntheticEvent);
8991
+ }
8992
+ }
8993
+ if (event.key === 'Escape') {
8994
+ event.currentTarget.blur();
8995
+ }
8996
+ };
8997
+ return (0,jsx_runtime_namespaceObject.jsxs)(ChipBase, {
8998
+ ...props,
8999
+ ref: ref,
9000
+ role: isClickable ? 'button' : undefined,
9001
+ tabIndex: !disabled && (isClickable || hasDeleteIcon) ? 0 : undefined,
9002
+ "aria-disabled": disabled ? 'true' : 'false',
9003
+ className: className,
9004
+ css: [sizeStyles, chipStyles, isClickable && !disabled ? clickable : undefined, disabled ? clickableDisabled : undefined, customCss, true ? "" : 0, true ? "" : 0],
9005
+ onClick: disabled ? undefined : onClick,
9006
+ onKeyDown: handleKeyDown,
9007
+ children: [avatar && (0,jsx_runtime_namespaceObject.jsx)(AvatarWrapper, {
9008
+ children: avatar
9009
+ }), leadingIcon && !avatar && (0,jsx_runtime_namespaceObject.jsx)(IconWrapper, {
9010
+ children: leadingIcon
9011
+ }), title && (0,jsx_runtime_namespaceObject.jsx)(TitleWrapper, {
9012
+ children: title
9013
+ }), (0,jsx_runtime_namespaceObject.jsx)(LabelWrapper, {
9014
+ children: label
9015
+ }), hasDeleteIcon && (0,jsx_runtime_namespaceObject.jsx)(DeleteIconButton, {
9016
+ type: "button",
9017
+ onClick: handleDeleteClick,
9018
+ "aria-label": "Delete",
9019
+ disabled: disabled,
9020
+ children: (0,jsx_runtime_namespaceObject.jsx)(Icon_Icon, {
9021
+ name: deleteIconName,
9022
+ color: iconColor,
9023
+ size: ICON_SIZES[size]
9024
+ })
9025
+ })]
9026
+ });
9027
+ });
9028
+ ;// ./src/components/Chip/index.ts
9029
+
9030
+
8785
9031
  ;// ./src/components/Charts/PieChart/colorPalettes.ts
8786
9032
  const getBalancePalette = theme => {
8787
9033
  const legendColorNames = ['yellow', 'blue', 'green', 'yellowWarm', 'blueLight', 'turquoise', 'pink', 'purple', 'blueCool', 'cyanTeal'];
@@ -9318,7 +9564,8 @@ const useChartInfo = () => {
9318
9564
  const {
9319
9565
  filteredData,
9320
9566
  selected,
9321
- lineShape
9567
+ lineShape,
9568
+ data
9322
9569
  } = useBarLineComplexChartContext();
9323
9570
  const {
9324
9571
  isFullscreenMode,
@@ -9331,8 +9578,19 @@ const useChartInfo = () => {
9331
9578
  context.refs.setFloating(null);
9332
9579
  };
9333
9580
  }, []);
9334
- const transformedChartData = filteredData.map((item, index) => {
9335
- const markerColor = (0,utils_namespaceObject.pathOr)(colorPalette[index], ['marker', 'color'])(item);
9581
+
9582
+ // Get orientation from data to determine if we need to reverse the order
9583
+ const orientation = (0,utils_namespaceObject.pathOr)('v', [0, 'orientation'])(data);
9584
+
9585
+ // For horizontal charts, reverse the data order so lines render in the correct direction
9586
+ // Plotly renders horizontal charts from bottom to top, so we reverse to match legend order
9587
+ // The legend will be reversed back using traceorder: 'reversed' in the layout
9588
+ const orderedData = orientation === 'h' ? [...filteredData].reverse() : filteredData;
9589
+ const transformedChartData = orderedData.map((item, index) => {
9590
+ // Calculate the original index in filteredData for color assignment
9591
+ // When reversed, the item at position 'index' was originally at position 'filteredData.length - 1 - index'
9592
+ const originalIndex = orientation === 'h' ? filteredData.length - 1 - index : index;
9593
+ const markerColor = (0,utils_namespaceObject.pathOr)(colorPalette[originalIndex], ['marker', 'color'])(item);
9336
9594
  const valueDimension = item.valueDimension === null || item.valueDimension === undefined ? '' : item.valueDimension;
9337
9595
  const extraParams = {
9338
9596
  mode: 'markers',
@@ -9819,6 +10077,7 @@ const BarLineComplexChartView = ({
9819
10077
  family: FONT_FAMILY,
9820
10078
  size: isFullscreenMode ? 16 : 12
9821
10079
  },
10080
+ traceorder: orientation === 'h' ? 'reversed' : 'normal',
9822
10081
  ...legend
9823
10082
  },
9824
10083
  ...layoutRest
@@ -14052,6 +14311,459 @@ const DatePickerInner = ({
14052
14311
  const DatePicker = /*#__PURE__*/(0,external_react_namespaceObject.forwardRef)(DatePickerInner);
14053
14312
  ;// ./src/components/DatePicker/index.ts
14054
14313
 
14314
+ ;// ./src/components/PersonInfo/constants.ts
14315
+ const DEFAULT_BADGE_COLORS = ['purple', 'blueLight', 'green', 'blue', 'pink', 'turquoise', 'yellow', 'yellowWarm'];
14316
+ const BADGE_COLORS = theme => ({
14317
+ purple: {
14318
+ text: theme.colors.purple,
14319
+ bg: theme.colors.purple20
14320
+ },
14321
+ blueLight: {
14322
+ text: theme.colors.blueLight,
14323
+ bg: theme.colors.blueLight20
14324
+ },
14325
+ green: {
14326
+ text: theme.colors.green,
14327
+ bg: theme.colors.green20
14328
+ },
14329
+ blue: {
14330
+ text: theme.colors.blue,
14331
+ bg: theme.colors.blue20
14332
+ },
14333
+ pink: {
14334
+ text: theme.colors.pink,
14335
+ bg: theme.colors.pink20
14336
+ },
14337
+ turquoise: {
14338
+ text: theme.colors.turquoise,
14339
+ bg: theme.colors.turquoise20
14340
+ },
14341
+ yellow: {
14342
+ text: theme.colors.yellow,
14343
+ bg: theme.colors.yellow20
14344
+ },
14345
+ yellowWarm: {
14346
+ text: theme.colors.yellowLighter,
14347
+ bg: theme.colors.yellowLighter20
14348
+ }
14349
+ });
14350
+ ;// ./src/components/PersonInfo/styles.ts
14351
+
14352
+ function PersonInfo_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
14353
+
14354
+
14355
+ const PersonInfoBase = /*#__PURE__*/base_default()("div", true ? {
14356
+ target: "ej2kihb15"
14357
+ } : 0)( true ? {
14358
+ name: "3w0yoi",
14359
+ styles: "display:flex;flex-direction:column;gap:8px"
14360
+ } : 0);
14361
+ const PersonInfoHeader = /*#__PURE__*/base_default()("div", true ? {
14362
+ target: "ej2kihb14"
14363
+ } : 0)( true ? {
14364
+ name: "1ocjxm6",
14365
+ styles: "display:flex;align-items:flex-start;gap:8px"
14366
+ } : 0);
14367
+ const styles_IconWrapper = /*#__PURE__*/base_default()("div", true ? {
14368
+ target: "ej2kihb13"
14369
+ } : 0)( true ? {
14370
+ name: "13ltyg2",
14371
+ styles: "display:flex;align-items:flex-start;flex-shrink:0"
14372
+ } : 0);
14373
+ const styles_TitleWrapper = /*#__PURE__*/base_default()("div", true ? {
14374
+ target: "ej2kihb12"
14375
+ } : 0)( true ? {
14376
+ name: "1tcizyl",
14377
+ styles: "display:flex;flex-direction:column;gap:4px;flex:1"
14378
+ } : 0);
14379
+ const Title = /*#__PURE__*/base_default()("div", true ? {
14380
+ target: "ej2kihb11"
14381
+ } : 0)( true ? {
14382
+ name: "edklr6",
14383
+ styles: "font-size:14px;font-weight:600;line-height:19px"
14384
+ } : 0);
14385
+ const Row = /*#__PURE__*/base_default()("div", true ? {
14386
+ target: "ej2kihb10"
14387
+ } : 0)( true ? {
14388
+ name: "1j5vobt",
14389
+ styles: "display:flex;align-items:center;gap:4px"
14390
+ } : 0);
14391
+ const TextBase = /*#__PURE__*/base_default()("div", true ? {
14392
+ target: "ej2kihb9"
14393
+ } : 0)( true ? {
14394
+ name: "1bzpq77",
14395
+ styles: "font-size:14px;font-weight:400;line-height:19px"
14396
+ } : 0);
14397
+ const ValueWithCounter = /*#__PURE__*/base_default()("div", true ? {
14398
+ target: "ej2kihb8"
14399
+ } : 0)( true ? {
14400
+ name: "1j5vobt",
14401
+ styles: "display:flex;align-items:center;gap:4px"
14402
+ } : 0);
14403
+ const Counter = /*#__PURE__*/base_default()(TextBase.withComponent('span', true ? {
14404
+ target: "ej2kihb16"
14405
+ } : 0), true ? {
14406
+ target: "ej2kihb7"
14407
+ } : 0)("color:", ({
14408
+ theme
14409
+ }) => theme.colors.greyDropdownFocused, ";margin-left:5px;cursor:pointer;" + ( true ? "" : 0));
14410
+ const CounterTooltipContent = /*#__PURE__*/base_default()("div", true ? {
14411
+ target: "ej2kihb6"
14412
+ } : 0)( true ? {
14413
+ name: "1oeds5o",
14414
+ styles: "min-width:220px;padding:12px"
14415
+ } : 0);
14416
+ const CounterTooltipList = /*#__PURE__*/base_default()("div", true ? {
14417
+ target: "ej2kihb5"
14418
+ } : 0)( true ? {
14419
+ name: "1acx518",
14420
+ styles: "display:flex;flex-direction:column;gap:8px;height:auto;max-height:220px;overflow:hidden;overflow-y:auto;padding-right:4px"
14421
+ } : 0);
14422
+ const AttributesList = /*#__PURE__*/base_default()("div", true ? {
14423
+ target: "ej2kihb4"
14424
+ } : 0)( true ? {
14425
+ name: "urqszi",
14426
+ styles: "display:flex;flex-direction:column;gap:4px"
14427
+ } : 0);
14428
+ const styles_AvatarWrapper = /*#__PURE__*/base_default()("div", true ? {
14429
+ target: "ej2kihb3"
14430
+ } : 0)( true ? {
14431
+ name: "1yydxi7",
14432
+ styles: "display:flex;align-items:center;gap:8px"
14433
+ } : 0);
14434
+ const BadgeWrapper = /*#__PURE__*/base_default()("div", true ? {
14435
+ target: "ej2kihb2"
14436
+ } : 0)( true ? {
14437
+ name: "mwxihw",
14438
+ styles: "display:flex;align-items:center;gap:8px;flex-wrap:wrap"
14439
+ } : 0);
14440
+ const StyledBadge = /*#__PURE__*/base_default()(Badge_Badge, true ? {
14441
+ target: "ej2kihb1"
14442
+ } : 0)( true ? {
14443
+ name: "tv444a",
14444
+ styles: "padding:4px 8px;border-radius:20px"
14445
+ } : 0);
14446
+ const CustomBadge = /*#__PURE__*/base_default()("div", true ? {
14447
+ target: "ej2kihb0"
14448
+ } : 0)("display:inline-block;padding:2px 8px;border-radius:24px;font-weight:500;font-size:14px;color:", ({
14449
+ theme,
14450
+ colorName
14451
+ }) => {
14452
+ const {
14453
+ text
14454
+ } = BADGE_COLORS(theme)[colorName];
14455
+ return text;
14456
+ }, ";background-color:", ({
14457
+ theme,
14458
+ colorName
14459
+ }) => {
14460
+ const {
14461
+ bg
14462
+ } = BADGE_COLORS(theme)[colorName];
14463
+ return bg;
14464
+ }, ";" + ( true ? "" : 0));
14465
+ const personInfoValueLinkStyles = theme => ({
14466
+ textDecoration: 'none',
14467
+ color: theme.colors.greyDarker,
14468
+ cursor: 'pointer',
14469
+ transition: 'color 0.2s ease',
14470
+ display: 'inline-flex',
14471
+ alignItems: 'center',
14472
+ '&:hover': {
14473
+ color: theme.colors.blue
14474
+ }
14475
+ });
14476
+ const avatarWrapperLinkStyles = theme => ({
14477
+ textDecoration: 'none',
14478
+ color: theme.colors.greyDarker,
14479
+ cursor: 'pointer',
14480
+ transition: 'color 0.2s ease',
14481
+ '&:hover': {
14482
+ color: theme.colors.blue,
14483
+ '& > div:last-child': {
14484
+ color: theme.colors.blue
14485
+ }
14486
+ }
14487
+ });
14488
+ ;// ./src/components/PersonInfo/PersonInfoIcon.tsx
14489
+
14490
+
14491
+
14492
+
14493
+
14494
+ const PersonInfoIcon = ({
14495
+ icon
14496
+ }) => {
14497
+ const theme = (0,react_namespaceObject.useTheme)();
14498
+ return (0,jsx_runtime_namespaceObject.jsx)(styles_IconWrapper, {
14499
+ children: typeof icon === 'string' ? (0,jsx_runtime_namespaceObject.jsx)(Icon_Icon, {
14500
+ name: icon,
14501
+ size: 16,
14502
+ color: theme.colors.greyDarker
14503
+ }) : icon
14504
+ });
14505
+ };
14506
+ ;// ./src/components/PersonInfo/PersonInfoValue.tsx
14507
+
14508
+
14509
+
14510
+ const PersonInfoValue = ({
14511
+ value,
14512
+ css,
14513
+ linkAttributes
14514
+ }) => {
14515
+ const isLink = Boolean(linkAttributes?.href);
14516
+ return (0,jsx_runtime_namespaceObject.jsx)(TextBase, {
14517
+ css: [isLink ? personInfoValueLinkStyles : undefined, css, true ? "" : 0, true ? "" : 0],
14518
+ ...(linkAttributes ?? {}),
14519
+ children: value
14520
+ });
14521
+ };
14522
+ ;// ./src/components/PersonInfo/helpers.ts
14523
+ const getLinkAttributes = (link, openLinkInNewTab) => {
14524
+ const isLink = Boolean(link);
14525
+ return isLink ? {
14526
+ as: 'a',
14527
+ href: link,
14528
+ target: openLinkInNewTab ? '_blank' : undefined,
14529
+ rel: openLinkInNewTab ? 'noreferrer' : undefined
14530
+ } : {};
14531
+ };
14532
+ ;// ./src/components/PersonInfo/PersonInfoAvatar.tsx
14533
+
14534
+
14535
+
14536
+
14537
+
14538
+
14539
+ const PersonInfoAvatar = ({
14540
+ avatar,
14541
+ value,
14542
+ styles,
14543
+ link,
14544
+ openLinkInNewTab
14545
+ }) => {
14546
+ const hasAvatar = Boolean(avatar);
14547
+ const hasValue = Boolean(value);
14548
+ const isLink = Boolean(link);
14549
+ const linkAttributes = getLinkAttributes(link, openLinkInNewTab);
14550
+ if (!hasAvatar && !hasValue) return null;
14551
+ const valueNode = hasValue ? (0,jsx_runtime_namespaceObject.jsx)(PersonInfoValue, {
14552
+ value: value,
14553
+ css: hasAvatar ? styles?.avatarName : styles?.value,
14554
+ linkAttributes: !hasAvatar ? linkAttributes : undefined
14555
+ }) : null;
14556
+ if (!hasAvatar) {
14557
+ return valueNode;
14558
+ }
14559
+ return (0,jsx_runtime_namespaceObject.jsxs)(styles_AvatarWrapper, {
14560
+ css: isLink ? avatarWrapperLinkStyles : undefined,
14561
+ ...linkAttributes,
14562
+ children: [(0,jsx_runtime_namespaceObject.jsx)(Avatar_Avatar, {
14563
+ size: 24,
14564
+ image: avatar
14565
+ }), valueNode]
14566
+ });
14567
+ };
14568
+ ;// ./src/components/PersonInfo/PersonInfoBadges.tsx
14569
+
14570
+
14571
+
14572
+
14573
+ const PersonInfoBadges = ({
14574
+ badges,
14575
+ styles
14576
+ }) => {
14577
+ if (!badges) return null;
14578
+ if (!Array.isArray(badges)) {
14579
+ return (0,jsx_runtime_namespaceObject.jsx)(BadgeWrapper, {
14580
+ css: styles?.badge,
14581
+ children: badges
14582
+ });
14583
+ }
14584
+ return (0,jsx_runtime_namespaceObject.jsx)(BadgeWrapper, {
14585
+ css: styles?.badge,
14586
+ children: badges.map((badgeItem, index) => {
14587
+ if (typeof badgeItem === 'string') {
14588
+ const colorIndex = index % DEFAULT_BADGE_COLORS.length;
14589
+ const colorName = DEFAULT_BADGE_COLORS[colorIndex];
14590
+ return (0,jsx_runtime_namespaceObject.jsx)(CustomBadge, {
14591
+ colorName: colorName,
14592
+ css: styles?.badgeItem,
14593
+ children: badgeItem
14594
+ }, index);
14595
+ }
14596
+ return (0,jsx_runtime_namespaceObject.jsx)((external_react_default()).Fragment, {
14597
+ children: badgeItem
14598
+ }, index);
14599
+ })
14600
+ });
14601
+ };
14602
+ ;// ./src/components/ImageItem/ImageItem.tsx
14603
+ function ImageItem_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
14604
+
14605
+
14606
+
14607
+
14608
+ var ImageItem_ref = true ? {
14609
+ name: "c5ejfv",
14610
+ styles: "gap:8px;text-decoration:none"
14611
+ } : 0;
14612
+ const ImageItem = ({
14613
+ children,
14614
+ image,
14615
+ avatarSize = 24,
14616
+ link = '',
14617
+ openLinkInNewTab = false,
14618
+ className
14619
+ }) => {
14620
+ const theme = (0,react_namespaceObject.useTheme)();
14621
+ const additionalProps = link ? {
14622
+ href: link,
14623
+ target: openLinkInNewTab ? '_blank' : undefined
14624
+ } : {};
14625
+ return (0,jsx_runtime_namespaceObject.jsxs)(Wrapper_Wrapper, {
14626
+ css: ImageItem_ref,
14627
+ as: link ? 'a' : 'div',
14628
+ className: className,
14629
+ "data-testid": "image-item",
14630
+ ...additionalProps,
14631
+ children: [(0,jsx_runtime_namespaceObject.jsx)(Avatar_Avatar, {
14632
+ size: avatarSize,
14633
+ image: image
14634
+ }), (0,jsx_runtime_namespaceObject.jsx)("span", {
14635
+ css: /*#__PURE__*/(0,react_namespaceObject.css)({
14636
+ color: theme.colors.greyDarker,
14637
+ fontSize: 14,
14638
+ fontWeight: 500,
14639
+ cursor: link ? 'pointer' : 'default',
14640
+ '&:hover': {
14641
+ color: link ? theme.colors.blue : theme.colors.greyDarker
14642
+ }
14643
+ }, true ? "" : 0, true ? "" : 0),
14644
+ children: children
14645
+ })]
14646
+ });
14647
+ };
14648
+ ;// ./src/components/PersonInfo/PersonInfoCounter.tsx
14649
+
14650
+
14651
+
14652
+
14653
+
14654
+
14655
+
14656
+ const PersonInfoCounter = ({
14657
+ counterTooltip,
14658
+ css
14659
+ }) => {
14660
+ const tooltipUsers = counterTooltip?.users ?? [];
14661
+ const hasTooltipUsers = tooltipUsers.length > 0;
14662
+ const counterValue = hasTooltipUsers ? `+${tooltipUsers.length}` : null;
14663
+ if (!counterValue) {
14664
+ return null;
14665
+ }
14666
+ const tooltipBody = (0,jsx_runtime_namespaceObject.jsx)(CounterTooltipList, {
14667
+ "data-testid": "person-info-counter-tooltip-list",
14668
+ children: tooltipUsers.map(user => (0,jsx_runtime_namespaceObject.jsx)(ImageItem, {
14669
+ image: user.avatar,
14670
+ link: user.link,
14671
+ openLinkInNewTab: user.openLinkInNewTab,
14672
+ children: user.name
14673
+ }, user.id))
14674
+ });
14675
+ const counterNode = (0,jsx_runtime_namespaceObject.jsx)(Counter, {
14676
+ css: css,
14677
+ "data-testid": "person-info-counter",
14678
+ children: counterValue
14679
+ });
14680
+ return (0,jsx_runtime_namespaceObject.jsxs)(Tooltip_Tooltip, {
14681
+ enableHover: true,
14682
+ enableClick: false,
14683
+ allowHoverContent: true,
14684
+ placement: "top",
14685
+ size: "medium",
14686
+ hasArrow: true,
14687
+ children: [(0,jsx_runtime_namespaceObject.jsx)(TooltipTrigger_TooltipTrigger, {
14688
+ children: counterNode
14689
+ }), (0,jsx_runtime_namespaceObject.jsx)(TooltipContent_TooltipContent, {
14690
+ children: (0,jsx_runtime_namespaceObject.jsx)(CounterTooltipContent, {
14691
+ children: tooltipBody
14692
+ })
14693
+ })]
14694
+ });
14695
+ };
14696
+ ;// ./src/components/PersonInfo/PersonInfo.tsx
14697
+
14698
+
14699
+
14700
+
14701
+
14702
+
14703
+
14704
+ const PersonInfo = /*#__PURE__*/external_react_default().forwardRef(function PersonInfo({
14705
+ title,
14706
+ icon,
14707
+ value,
14708
+ badges,
14709
+ avatar,
14710
+ counterTooltip,
14711
+ attributes,
14712
+ description,
14713
+ styles,
14714
+ className,
14715
+ link,
14716
+ openLinkInNewTab,
14717
+ ...props
14718
+ }, ref) {
14719
+ return (0,jsx_runtime_namespaceObject.jsx)(PersonInfoBase, {
14720
+ ref: ref,
14721
+ className: className,
14722
+ ...props,
14723
+ children: (0,jsx_runtime_namespaceObject.jsxs)(PersonInfoHeader, {
14724
+ children: [icon && (0,jsx_runtime_namespaceObject.jsx)(PersonInfoIcon, {
14725
+ icon: icon
14726
+ }), (0,jsx_runtime_namespaceObject.jsxs)(styles_TitleWrapper, {
14727
+ children: [(0,jsx_runtime_namespaceObject.jsx)(Title, {
14728
+ css: styles?.title,
14729
+ children: title
14730
+ }), (0,jsx_runtime_namespaceObject.jsxs)(Row, {
14731
+ children: [(0,jsx_runtime_namespaceObject.jsx)(PersonInfoAvatar, {
14732
+ avatar: avatar,
14733
+ value: value,
14734
+ styles: styles,
14735
+ link: link,
14736
+ openLinkInNewTab: openLinkInNewTab
14737
+ }), counterTooltip && (0,jsx_runtime_namespaceObject.jsx)(PersonInfoCounter, {
14738
+ counterTooltip: counterTooltip,
14739
+ css: styles?.counter
14740
+ })]
14741
+ }), badges && (0,jsx_runtime_namespaceObject.jsx)(PersonInfoBadges, {
14742
+ badges: badges,
14743
+ styles: styles
14744
+ }), attributes && attributes.length > 0 && (0,jsx_runtime_namespaceObject.jsx)(AttributesList, {
14745
+ children: attributes.map((attr, index) => {
14746
+ if (typeof attr === 'string') {
14747
+ return (0,jsx_runtime_namespaceObject.jsx)(TextBase, {
14748
+ css: styles?.attributes,
14749
+ children: attr
14750
+ }, index);
14751
+ }
14752
+ return (0,jsx_runtime_namespaceObject.jsx)((external_react_default()).Fragment, {
14753
+ children: attr
14754
+ }, index);
14755
+ })
14756
+ }), description && (0,jsx_runtime_namespaceObject.jsx)(TextBase, {
14757
+ css: styles?.description,
14758
+ children: description
14759
+ })]
14760
+ })]
14761
+ })
14762
+ });
14763
+ });
14764
+ ;// ./src/components/PersonInfo/index.ts
14765
+
14766
+
14055
14767
  ;// ./src/components/DateRangePicker/constants.ts
14056
14768
  const constants_DEFAULT_MASK_FORMAT = 'mm/dd/yyyy';
14057
14769
  const DEFAULT_MONTH_MASK_FORMAT = 'mm/yyyy';
@@ -17622,52 +18334,6 @@ const FiltersMultiSelectOptions = ({
17622
18334
  ;// ./src/components/Icon/index.ts
17623
18335
 
17624
18336
 
17625
- ;// ./src/components/ImageItem/ImageItem.tsx
17626
- function ImageItem_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
17627
-
17628
-
17629
-
17630
-
17631
- var ImageItem_ref = true ? {
17632
- name: "c5ejfv",
17633
- styles: "gap:8px;text-decoration:none"
17634
- } : 0;
17635
- const ImageItem = ({
17636
- children,
17637
- image,
17638
- avatarSize = 24,
17639
- link = '',
17640
- openLinkInNewTab = false,
17641
- className
17642
- }) => {
17643
- const theme = (0,react_namespaceObject.useTheme)();
17644
- const additionalProps = link ? {
17645
- href: link,
17646
- target: openLinkInNewTab ? '_blank' : undefined
17647
- } : {};
17648
- return (0,jsx_runtime_namespaceObject.jsxs)(Wrapper_Wrapper, {
17649
- css: ImageItem_ref,
17650
- as: link ? 'a' : 'div',
17651
- className: className,
17652
- "data-testid": "image-item",
17653
- ...additionalProps,
17654
- children: [(0,jsx_runtime_namespaceObject.jsx)(Avatar_Avatar, {
17655
- size: avatarSize,
17656
- image: image
17657
- }), (0,jsx_runtime_namespaceObject.jsx)("span", {
17658
- css: /*#__PURE__*/(0,react_namespaceObject.css)({
17659
- color: theme.colors.greyDarker,
17660
- fontSize: 14,
17661
- fontWeight: 500,
17662
- cursor: link ? 'pointer' : 'default',
17663
- '&:hover': {
17664
- color: link ? theme.colors.blue : theme.colors.greyDarker
17665
- }
17666
- }, true ? "" : 0, true ? "" : 0),
17667
- children: children
17668
- })]
17669
- });
17670
- };
17671
18337
  ;// ./src/components/ImageItem/index.ts
17672
18338
 
17673
18339
  ;// ./src/components/LinksTabBar/LinksTabBarBase.tsx
@@ -19254,29 +19920,29 @@ function Typeahead_styles_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tr
19254
19920
  // TODO: automatically calculate max-height
19255
19921
  // https://github.com/ssagroup/ui-kit/issues/385
19256
19922
  const TypeaheadOptionsBase = /*#__PURE__*/base_default()("ul", true ? {
19257
- target: "e1vig1dw6"
19923
+ target: "e1vig1dw7"
19258
19924
  } : 0)("padding:0;margin:0;list-style:none;background:#fff;border-radius:8px;filter:", ({
19259
19925
  theme
19260
19926
  }) => `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`, ";backdrop-filter:", ({
19261
19927
  theme
19262
19928
  }) => `drop-shadow(-4px 4px 14px ${theme.colors.greyDarker14})`, ";overflow-y:auto;max-height:350px;" + ( true ? "" : 0));
19263
19929
  const TypeaheadOption = /*#__PURE__*/base_default()("li", true ? {
19264
- target: "e1vig1dw5"
19930
+ target: "e1vig1dw6"
19265
19931
  } : 0)("display:flex;align-items:center;padding:0 16px;border:none;cursor:pointer;font-size:14px;gap:8px;padding:10px 12px;min-height:40px;line-height:20px;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;background:", ({
19266
19932
  isActive,
19267
19933
  theme
19268
19934
  }) => isActive ? theme.colors.blueRoyal12 : 'none', ";&:hover{background:rgba(72, 125, 225, 0.06);}" + ( true ? "" : 0));
19269
- const TypeaheadInput = theme => /*#__PURE__*/(0,css_namespaceObject.css)("&.typeahead-input{color:", theme.colors.greyDarker, ";border:none;border-radius:0;height:32px;cursor:pointer;padding:0;background:transparent;text-indent:8px;&:active,&:focus{min-width:100%;}}" + ( true ? "" : 0), true ? "" : 0);
19935
+ const TypeaheadInput = theme => /*#__PURE__*/(0,css_namespaceObject.css)("&.typeahead-input{flex:1;width:100%;color:", theme.colors.greyDarker, ";border:none;border-radius:0;height:32px;cursor:pointer;padding:0;background:transparent;text-indent:8px;&:active,&:focus{min-width:100%;}}" + ( true ? "" : 0), true ? "" : 0);
19270
19936
  const TypeaheadInputPlaceholder = /*#__PURE__*/(0,css_namespaceObject.css)( true ? {
19271
19937
  name: "1kivhs5",
19272
19938
  styles: "position:absolute;top:0;left:-4px;font-weight:400;font-size:0.875rem;line-height:1rem;color:rgba(0, 0, 0, 0.54);&:disabled:hover{cursor:default;}"
19273
19939
  } : 0);
19274
19940
  const TypeaheadInputWrapper = /*#__PURE__*/(0,css_namespaceObject.css)( true ? {
19275
- name: "1f6chlt",
19276
- styles: "height:32px;z-index:5;background:transparent;margin-left:-8px;&:active,&:focus{min-width:100%;}"
19941
+ name: "16adhtk",
19942
+ styles: "flex:1;width:100%;height:32px;z-index:5;background:transparent;margin-left:-8px;&:active,&:focus{min-width:100%;}"
19277
19943
  } : 0);
19278
19944
  const TypeaheadItem = /*#__PURE__*/base_default()("div", true ? {
19279
- target: "e1vig1dw4"
19945
+ target: "e1vig1dw5"
19280
19946
  } : 0)("display:flex;gap:6px;background:", ({
19281
19947
  theme,
19282
19948
  isDisabled
@@ -19286,15 +19952,21 @@ const TypeaheadItem = /*#__PURE__*/base_default()("div", true ? {
19286
19952
  theme,
19287
19953
  isDisabled
19288
19954
  }) => isDisabled ? theme.colors.grey : theme.colors.greyDarker, ";font-weight:500;font-size:14px;min-height:20px;align-items:center;padding:6px;user-select:none;overflow:hidden;" + ( true ? "" : 0));
19955
+ const TypeaheadItemAvatar = /*#__PURE__*/base_default()("span", true ? {
19956
+ target: "e1vig1dw4"
19957
+ } : 0)( true ? {
19958
+ name: "za0kxg",
19959
+ styles: "display:flex;align-items:center;flex-shrink:0"
19960
+ } : 0);
19289
19961
  const TypeaheadItemLabel = /*#__PURE__*/base_default()("div", true ? {
19290
19962
  target: "e1vig1dw3"
19291
19963
  } : 0)("color:", ({
19292
19964
  theme,
19293
19965
  isDisabled
19294
- }) => isDisabled ? theme.colors.grey : theme.colors.greyDarker, ";font-size:14px;font-weight:500;display:block;gap:6px;align-items:center;cursor:default;overflow:hidden;text-overflow:ellipsis;" + ( true ? "" : 0));
19966
+ }) => isDisabled ? theme.colors.grey : theme.colors.greyDarker, ";font-size:14px;font-weight:500;display:flex;align-items:center;cursor:default;overflow:hidden;text-overflow:ellipsis;" + ( true ? "" : 0));
19295
19967
  const TypeaheadItemCross = /*#__PURE__*/base_default()(Button_Button, true ? {
19296
19968
  target: "e1vig1dw2"
19297
- } : 0)("background:none;padding:0;padding-right:5;height:auto;&:active,&:focus,&:hover{cursor:", ({
19969
+ } : 0)("background:none;padding:0;padding-right:5px;height:auto;&:active,&:focus,&:hover{cursor:", ({
19298
19970
  isDisabled
19299
19971
  }) => isDisabled ? 'default' : 'pointer', ";background:none;box-shadow:none;}&:disabled{background:none;}" + ( true ? "" : 0));
19300
19972
  const TypeaheadInputsGroupWrapper = /*#__PURE__*/base_default()(Wrapper_Wrapper, true ? {
@@ -19361,10 +20033,14 @@ const MultipleTrigger = () => {
19361
20033
  children: [Object.values(context.optionsWithKey).length > 0 && context.selectedItems.map((selectedItem, index) => {
19362
20034
  const currentOption = context.optionsWithKey[selectedItem];
19363
20035
  const optionText = currentOption ? currentOption.children || currentOption.label || currentOption.value : '';
20036
+ const avatar = currentOption?.avatar;
19364
20037
  return (0,jsx_runtime_namespaceObject.jsxs)(TypeaheadItem, {
19365
20038
  onClick: e => e.stopPropagation(),
19366
20039
  isDisabled: context.isDisabled,
19367
- children: [(0,jsx_runtime_namespaceObject.jsx)(TypeaheadItemLabel, {
20040
+ children: [avatar && (0,jsx_runtime_namespaceObject.jsx)(TypeaheadItemAvatar, {
20041
+ "data-testid": "typeahead-item-avatar",
20042
+ children: avatar
20043
+ }), (0,jsx_runtime_namespaceObject.jsx)(TypeaheadItemLabel, {
19368
20044
  isDisabled: context.isDisabled,
19369
20045
  children: optionText
19370
20046
  }), (0,jsx_runtime_namespaceObject.jsx)(TypeaheadItemCross, {
@@ -19676,8 +20352,8 @@ function TypeaheadOption_EMOTION_STRINGIFIED_CSS_ERROR_() { return "You have tri
19676
20352
 
19677
20353
 
19678
20354
  var TypeaheadOption_ref = true ? {
19679
- name: "1gz2b5f",
19680
- styles: "overflow:hidden;text-overflow:ellipsis"
20355
+ name: "szjn6i",
20356
+ styles: "overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1"
19681
20357
  } : 0;
19682
20358
  var TypeaheadOption_ref2 = true ? {
19683
20359
  name: "1kqn2f4",
@@ -19689,10 +20365,14 @@ var TypeaheadOption_ref3 = true ? {
19689
20365
  } : 0;
19690
20366
  const TypeaheadOption_TypeaheadOption = ({
19691
20367
  children,
20368
+ avatar,
19692
20369
  ...rest
19693
20370
  }) => (0,jsx_runtime_namespaceObject.jsxs)(TypeaheadOption, {
19694
20371
  ...rest,
19695
- children: [(0,jsx_runtime_namespaceObject.jsxs)("div", {
20372
+ children: [avatar && (0,jsx_runtime_namespaceObject.jsx)(TypeaheadItemAvatar, {
20373
+ "data-testid": "typeahead-option-avatar",
20374
+ children: avatar
20375
+ }), (0,jsx_runtime_namespaceObject.jsxs)("div", {
19696
20376
  css: TypeaheadOption_ref,
19697
20377
  children: [children, ' ']
19698
20378
  }), rest.isActive && (0,jsx_runtime_namespaceObject.jsx)(Button_Button, {
@@ -20567,10 +21247,22 @@ const RadioWidget = props => {
20567
21247
  }, i)) : undefined
20568
21248
  });
20569
21249
  };
21250
+ ;// ./src/components/JsonSchemaForm/constants.ts
21251
+ const DEFAULT_AVATAR_SIZE = 24;
20570
21252
  ;// ./src/components/JsonSchemaForm/widgets/SelectWidget.tsx
20571
21253
 
20572
21254
 
20573
21255
 
21256
+
21257
+ const getAvatarNode = (option, uiOptions) => {
21258
+ const avatar = option.schema?.avatar;
21259
+ if (!avatar) return;
21260
+ const avatarSize = uiOptions.typeaheadAvatarSize ?? DEFAULT_AVATAR_SIZE;
21261
+ return (0,jsx_runtime_namespaceObject.jsx)(Avatar_Avatar, {
21262
+ size: avatarSize,
21263
+ image: avatar
21264
+ });
21265
+ };
20574
21266
  const SelectWidget = props => {
20575
21267
  const {
20576
21268
  id,
@@ -20583,12 +21275,15 @@ const SelectWidget = props => {
20583
21275
  onFocus,
20584
21276
  value,
20585
21277
  onChangeOverride,
20586
- multiple
21278
+ multiple,
21279
+ uiSchema
20587
21280
  } = props;
20588
21281
  const {
20589
21282
  enumOptions = [],
20590
21283
  enumDisabled = []
20591
21284
  } = options;
21285
+ const customPlaceholder = placeholder || uiSchema?.['ui:placeholder'];
21286
+ const selectUiOptions = uiSchema?.['ui:options'] || {};
20592
21287
  const isMultiple = !!multiple || Array.isArray(value);
20593
21288
  const items = Array.isArray(enumOptions) ? enumOptions : [];
20594
21289
  const handleChange = onChangeOverride ? onChangeOverride : value => {
@@ -20616,8 +21311,7 @@ const SelectWidget = props => {
20616
21311
  };
20617
21312
  const handleTypeaheadChange = (changedValue, isAdded) => {
20618
21313
  if (isMultiple) {
20619
- const currentSelected = Array.isArray(selectedItems) ? selectedItems : [];
20620
- const newSelected = isAdded ? [...currentSelected, changedValue] : currentSelected.filter(item => item !== changedValue);
21314
+ const newSelected = isAdded ? [...selectedItems, changedValue] : selectedItems.filter(item => item !== changedValue);
20621
21315
  handleFormChange(newSelected);
20622
21316
  } else {
20623
21317
  const newValue = isAdded ? changedValue : undefined;
@@ -20640,8 +21334,7 @@ const SelectWidget = props => {
20640
21334
  };
20641
21335
  const onRemoveSelectedClick = removedValue => {
20642
21336
  if (isMultiple) {
20643
- const currentSelected = Array.isArray(selectedItems) ? selectedItems : [];
20644
- const newSelected = currentSelected.filter(item => item !== removedValue);
21337
+ const newSelected = selectedItems.filter(item => item !== removedValue);
20645
21338
  handleChange(newSelected);
20646
21339
  } else {
20647
21340
  handleChange(undefined);
@@ -20657,7 +21350,7 @@ const SelectWidget = props => {
20657
21350
  isDisabled: disabled,
20658
21351
  name: name,
20659
21352
  isMultiple: isMultiple,
20660
- placeholder: placeholder || undefined,
21353
+ placeholder: customPlaceholder || undefined,
20661
21354
  onChange: handleTypeaheadChange,
20662
21355
  onEmptyChange: onEmptyChange,
20663
21356
  onClearAll: onClearAll,
@@ -20666,15 +21359,13 @@ const SelectWidget = props => {
20666
21359
  label,
20667
21360
  input
20668
21361
  }) => highlightInputMatch(label, input),
20669
- children: items.map(({
20670
- label,
20671
- value
20672
- }) => (0,jsx_runtime_namespaceObject.jsx)(TypeaheadOption_TypeaheadOption, {
20673
- value: value,
20674
- label: label || value,
20675
- isDisabled: disabled || Array.isArray(enumDisabled) && enumDisabled.includes(value),
20676
- children: label || value
20677
- }, value))
21362
+ children: items.map(item => (0,jsx_runtime_namespaceObject.jsx)(TypeaheadOption_TypeaheadOption, {
21363
+ value: item.value,
21364
+ label: item.label || item.value,
21365
+ avatar: getAvatarNode(item, selectUiOptions),
21366
+ isDisabled: disabled || Array.isArray(enumDisabled) && enumDisabled.includes(item.value),
21367
+ children: item.label || item.value
21368
+ }, item.value))
20678
21369
  })
20679
21370
  });
20680
21371
  };
@@ -21012,6 +21703,7 @@ const JsonSchemaForm_Form = /*#__PURE__*/base_default()(UnstyledForm, true ? {
21012
21703
  styles: ".form-group{margin-bottom:16px;}.form-group:last-child{margin-bottom:0;}"
21013
21704
  } : 0);
21014
21705
 
21706
+
21015
21707
  ;// ./src/components/index.ts
21016
21708
 
21017
21709
 
@@ -21126,6 +21818,8 @@ const JsonSchemaForm_Form = /*#__PURE__*/base_default()(UnstyledForm, true ? {
21126
21818
 
21127
21819
 
21128
21820
 
21821
+
21822
+
21129
21823
 
21130
21824
 
21131
21825