@bikdotai/bik-component-library 0.0.840-tools-beta.4 → 0.0.840

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 (88) hide show
  1. package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js +1 -1
  2. package/dist/cjs/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  3. package/dist/cjs/components/SearchFilter/index.js +1 -1
  4. package/dist/cjs/components/SearchFilter/index.js.map +1 -1
  5. package/dist/cjs/components/agent-builder/constants/tools.js.map +1 -1
  6. package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsChip.js +1 -1
  7. package/dist/cjs/components/analytics-chips-and-dropdowns/AnalyticsChip.js.map +1 -1
  8. package/dist/cjs/components/button/themes.js +11 -11
  9. package/dist/cjs/components/button/themes.js.map +1 -1
  10. package/dist/cjs/components/dashboard-review-popup/DashboardReviewPopUp.js +1 -1
  11. package/dist/cjs/components/dashboard-review-popup/DashboardReviewPopUp.js.map +1 -1
  12. package/dist/cjs/components/dropdown-button/DropdownButton.js +1 -1
  13. package/dist/cjs/components/dropdown-button/DropdownButton.js.map +1 -1
  14. package/dist/cjs/components/input/Input.js +1 -1
  15. package/dist/cjs/components/input/Input.js.map +1 -1
  16. package/dist/cjs/components/multi-level-dropdown/MenuItem.js +1 -1
  17. package/dist/cjs/components/multi-level-dropdown/MenuItem.js.map +1 -1
  18. package/dist/cjs/components/radioButton/RadioButton.js +1 -1
  19. package/dist/cjs/components/radioButton/RadioButton.js.map +1 -1
  20. package/dist/cjs/components/radioList/RadioList.js +1 -1
  21. package/dist/cjs/components/radioList/RadioList.js.map +1 -1
  22. package/dist/cjs/components/searchBar/searchBar.js +1 -1
  23. package/dist/cjs/components/searchBar/searchBar.js.map +1 -1
  24. package/dist/cjs/components/side-modal/SideModal.js +1 -1
  25. package/dist/cjs/components/side-modal/SideModal.js.map +1 -1
  26. package/dist/cjs/components/star-rating/Star.js +1 -1
  27. package/dist/cjs/components/star-rating/Star.js.map +1 -1
  28. package/dist/cjs/components/star-rating/StarRating.js +2 -2
  29. package/dist/cjs/components/star-rating/StarRating.js.map +1 -1
  30. package/dist/cjs/components/template-preview/TemplatePreview.js +1 -1
  31. package/dist/cjs/components/template-preview/TemplatePreview.js.map +1 -1
  32. package/dist/cjs/components/thumbnail/Thumbnail.js +1 -1
  33. package/dist/cjs/components/thumbnail/Thumbnail.js.map +1 -1
  34. package/dist/cjs/components/zeroState/ZeroState.js +3 -3
  35. package/dist/cjs/components/zeroState/ZeroState.js.map +1 -1
  36. package/dist/cjs/icons/Media/Visual/FormkitNeutral.js +2 -0
  37. package/dist/cjs/icons/Media/Visual/FormkitNeutral.js.map +1 -0
  38. package/dist/cjs/icons/Media/Visual/FormkitSad.js +2 -0
  39. package/dist/cjs/icons/Media/Visual/FormkitSad.js.map +1 -0
  40. package/dist/cjs/icons/index.js +1 -1
  41. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js +66 -61
  42. package/dist/esm/components/BikGiftedChat/GiftedChat/GiftedChat.js.map +1 -1
  43. package/dist/esm/components/SearchFilter/index.js +11 -10
  44. package/dist/esm/components/SearchFilter/index.js.map +1 -1
  45. package/dist/esm/components/agent-builder/constants/tools.d.ts +7 -0
  46. package/dist/esm/components/agent-builder/constants/tools.js.map +1 -1
  47. package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsChip.js +11 -10
  48. package/dist/esm/components/analytics-chips-and-dropdowns/AnalyticsChip.js.map +1 -1
  49. package/dist/esm/components/button/themes.d.ts +1 -0
  50. package/dist/esm/components/button/themes.js +61 -51
  51. package/dist/esm/components/button/themes.js.map +1 -1
  52. package/dist/esm/components/dashboard-review-popup/DashboardReviewPopUp.js +28 -21
  53. package/dist/esm/components/dashboard-review-popup/DashboardReviewPopUp.js.map +1 -1
  54. package/dist/esm/components/dropdown-button/DropdownButton.js +13 -13
  55. package/dist/esm/components/dropdown-button/DropdownButton.js.map +1 -1
  56. package/dist/esm/components/input/Input.js +35 -34
  57. package/dist/esm/components/input/Input.js.map +1 -1
  58. package/dist/esm/components/input/Input.model.d.ts +1 -0
  59. package/dist/esm/components/multi-level-dropdown/MenuItem.js +28 -27
  60. package/dist/esm/components/multi-level-dropdown/MenuItem.js.map +1 -1
  61. package/dist/esm/components/radioButton/RadioButton.js +10 -9
  62. package/dist/esm/components/radioButton/RadioButton.js.map +1 -1
  63. package/dist/esm/components/radioList/RadioList.js +28 -19
  64. package/dist/esm/components/radioList/RadioList.js.map +1 -1
  65. package/dist/esm/components/searchBar/searchBar.js +11 -10
  66. package/dist/esm/components/searchBar/searchBar.js.map +1 -1
  67. package/dist/esm/components/side-modal/SideModal.js +13 -5
  68. package/dist/esm/components/side-modal/SideModal.js.map +1 -1
  69. package/dist/esm/components/star-rating/Star.d.ts +1 -0
  70. package/dist/esm/components/star-rating/Star.js +32 -27
  71. package/dist/esm/components/star-rating/Star.js.map +1 -1
  72. package/dist/esm/components/star-rating/StarRating.js +17 -16
  73. package/dist/esm/components/star-rating/StarRating.js.map +1 -1
  74. package/dist/esm/components/template-preview/TemplatePreview.js +41 -40
  75. package/dist/esm/components/template-preview/TemplatePreview.js.map +1 -1
  76. package/dist/esm/components/thumbnail/Thumbnail.js +3 -3
  77. package/dist/esm/components/thumbnail/Thumbnail.js.map +1 -1
  78. package/dist/esm/components/zeroState/ZeroState.js +20 -13
  79. package/dist/esm/components/zeroState/ZeroState.js.map +1 -1
  80. package/dist/esm/icons/Media/Visual/FormkitNeutral.js +58 -0
  81. package/dist/esm/icons/Media/Visual/FormkitNeutral.js.map +1 -0
  82. package/dist/esm/icons/Media/Visual/FormkitSad.js +61 -0
  83. package/dist/esm/icons/Media/Visual/FormkitSad.js.map +1 -0
  84. package/dist/esm/icons/Media/Visual/index.d.ts +2 -0
  85. package/dist/esm/icons/index.d.ts +25 -25
  86. package/dist/esm/icons/index.js +420 -416
  87. package/dist/esm/icons/index.js.map +1 -1
  88. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
- import { jsxs as c, jsx as t, Fragment as x } from "react/jsx-runtime";
2
- import { useState as n, useEffect as h, useMemo as r } from "react";
1
+ import { jsxs as c, jsx as t, Fragment as u } from "react/jsx-runtime";
2
+ import { useState as n, useEffect as x, useMemo as r } from "react";
3
3
  import { RadioButtonContainer as S, RadioButtonIcon as y } from "./RadioButton.styled.js";
4
- import { BodyCaption as m, TitleSmall as C, BodySecondary as k, BodyPrimary as D } from "../TypographyStyle.js";
4
+ import { BodyCaption as m, TitleSmall as k, BodySecondary as C, BodyPrimary as D } from "../TypographyStyle.js";
5
5
  import { COLORS as i } from "../../constants/Theme.js";
6
6
  const g = (e) => {
7
7
  const l = r(
@@ -33,6 +33,7 @@ const g = (e) => {
33
33
  e.isActive && /* @__PURE__ */ t(
34
34
  "circle",
35
35
  {
36
+ "data-test": "radio-checked-indicator",
36
37
  cx: e.isSmall ? "8" : "10",
37
38
  cy: e.isSmall ? "8" : "10",
38
39
  r: e.isSmall ? 3 : 5,
@@ -49,11 +50,11 @@ const g = (e) => {
49
50
  a(o), e.onValueChange?.(o, e.value);
50
51
  }
51
52
  };
52
- h(() => {
53
+ x(() => {
53
54
  a(e.isActive);
54
55
  }, [e.isActive]);
55
- const u = () => e.label ? e.boldOnChecked && l || e.alwaysBold ? /* @__PURE__ */ t(
56
- C,
56
+ const h = () => e.label ? e.boldOnChecked && l || e.alwaysBold ? /* @__PURE__ */ t(
57
+ k,
57
58
  {
58
59
  color: e.isDisabled ? i.text.disabled : i.text.primary,
59
60
  children: e.label
@@ -65,7 +66,7 @@ const g = (e) => {
65
66
  children: e.label
66
67
  }
67
68
  ) : e.labelSize === "MEDIUM" ? /* @__PURE__ */ t(
68
- k,
69
+ C,
69
70
  {
70
71
  color: e.isDisabled ? i.text.disabled : i.text.primary,
71
72
  children: e.label
@@ -76,7 +77,7 @@ const g = (e) => {
76
77
  color: e.isDisabled ? i.text.disabled : i.text.primary,
77
78
  children: e.label
78
79
  }
79
- ) : /* @__PURE__ */ t(x, {});
80
+ ) : /* @__PURE__ */ t(u, {});
80
81
  return /* @__PURE__ */ c(
81
82
  S,
82
83
  {
@@ -117,7 +118,7 @@ const g = (e) => {
117
118
  gap: e.gapBetweenBodyAndCaption || "0px"
118
119
  },
119
120
  children: [
120
- u(),
121
+ h(),
121
122
  e.caption && /* @__PURE__ */ t(
122
123
  m,
123
124
  {
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sources":["../../../../src/components/radioButton/RadioButton.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n\tRadioButtonContainer,\n\tRadioButtonIcon,\n} from '@src/components/radioButton/RadioButton.styled';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport type RadioButtonProps = {\n\tisActive: boolean;\n\tisDisabled?: boolean;\n\tvalue?: string;\n\tlabel?: string;\n\tcaption?: string;\n\tonValueChange: (checked: boolean, value?: string) => void;\n\tskipHoverState?: boolean;\n\tsize?: 'DEFAULT' | 'SMALL';\n\tskipSelectingOff?: boolean;\n\tlabelSize?: 'DEFAULT' | 'MEDIUM';\n\tboldOnChecked?: boolean;\n\talwaysBold?: boolean;\n\tactiveColor?: string;\n\tgapBetweenBodyAndCaption?: string;\n\t'data-test'?: string;\n};\n\nconst CheckMark: React.FC<{\n\tisActive: boolean;\n\tisDisabled: boolean;\n\tisSmall: boolean;\n\tactiveColor?: string;\n}> = (props) => {\n\tconst fillColor = useMemo(\n\t\t() => props?.activeColor || COLORS.background.positive.vibrant,\n\t\t[props.activeColor],\n\t);\n\n\tconst strokeColor = useMemo(\n\t\t() =>\n\t\t\tprops.isDisabled\n\t\t\t\t? COLORS.content.inactive\n\t\t\t\t: props.isActive\n\t\t\t\t? fillColor\n\t\t\t\t: COLORS.content.primary,\n\t\t[props.isDisabled, props.isActive, fillColor],\n\t);\n\n\treturn (\n\t\t<svg\n\t\t\twidth={props.isSmall ? '16' : '20'}\n\t\t\theight={props.isSmall ? '16' : '20'}\n\t\t\tviewBox={props.isSmall ? '0 0 16 16' : '0 0 20 20'}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<circle\n\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\tr={props.isSmall ? 6 : 9}\n\t\t\t\tstroke={strokeColor}\n\t\t\t\tstrokeWidth={props.isSmall ? 1.5 : 2}\n\t\t\t/>\n\t\t\t{props.isActive && (\n\t\t\t\t<circle\n\t\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\t\tr={props.isSmall ? 3 : 5}\n\t\t\t\t\tfill={props.isDisabled ? COLORS.content.inactive : fillColor}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</svg>\n\t);\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = (props) => {\n\tconst [isActive, setIsActive] = useState(props.isActive || false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isClicked, setIsClicked] = useState(false);\n\n\tconst handleCheck = () => {\n\t\tif (props.skipSelectingOff) {\n\t\t\treturn;\n\t\t}\n\t\tif (!props.isDisabled) {\n\t\t\tconst newVal = !isActive;\n\t\t\tsetIsActive(newVal);\n\t\t\tprops.onValueChange?.(newVal, props.value);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsActive(props.isActive);\n\t}, [props.isActive]);\n\n\tconst renderLabel = () => {\n\t\tif (!props.label) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tif ((props.boldOnChecked && isActive) || props.alwaysBold) {\n\t\t\treturn (\n\t\t\t\t<TitleSmall\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</TitleSmall>\n\t\t\t);\n\t\t}\n\n\t\tif (props.size === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodyCaption\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodyCaption>\n\t\t\t);\n\t\t}\n\n\t\tif (props.labelSize === 'MEDIUM') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BodyPrimary\n\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t>\n\t\t\t\t{props.label}\n\t\t\t</BodyPrimary>\n\t\t);\n\t};\n\n\treturn (\n\t\t<RadioButtonContainer\n\t\t\tdata-test={props['data-test']}\n\t\t\tonClick={handleCheck}\n\t\t\tonMouseEnter={() => setIsHovered(!props.skipHoverState)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t\tonMouseDown={() => setIsClicked(!props.skipHoverState)}\n\t\t\tonMouseUp={() => setIsClicked(false)}\n\t\t\tstyle={props.caption ? { alignItems: 'flex-start' } : {}}\n\t\t>\n\t\t\t<RadioButtonIcon\n\t\t\t\tchecked={isActive}\n\t\t\t\thovered={isHovered}\n\t\t\t\tclicked={isClicked}\n\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\tsize={props.size}\n\t\t\t\tstyle={props.caption ? { margin: '2px 0' } : {}}\n\t\t\t>\n\t\t\t\t<CheckMark\n\t\t\t\t\tisSmall={props.size === 'SMALL'}\n\t\t\t\t\tisActive={isActive}\n\t\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\t\tactiveColor={props.activeColor}\n\t\t\t\t/>\n\t\t\t</RadioButtonIcon>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tgap: props.gapBetweenBodyAndCaption || '0px',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{renderLabel()}\n\t\t\t\t{props.caption && (\n\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tprops.isDisabled ? COLORS.text.disabled : COLORS.text.secondary\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.caption}\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</RadioButtonContainer>\n\t);\n};\n"],"names":["CheckMark","props","fillColor","useMemo","COLORS","strokeColor","jsxs","jsx","RadioButton","isActive","setIsActive","useState","isHovered","setIsHovered","isClicked","setIsClicked","handleCheck","newVal","useEffect","renderLabel","TitleSmall","BodyCaption","BodySecondary","BodyPrimary","Fragment","RadioButtonContainer","RadioButtonIcon"],"mappings":"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"}
1
+ {"version":3,"file":"RadioButton.js","sources":["../../../../src/components/radioButton/RadioButton.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport {\n\tRadioButtonContainer,\n\tRadioButtonIcon,\n} from '@src/components/radioButton/RadioButton.styled';\nimport {\n\tBodyCaption,\n\tBodyPrimary,\n\tBodySecondary,\n\tTitleSmall,\n} from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\nexport type RadioButtonProps = {\n\tisActive: boolean;\n\tisDisabled?: boolean;\n\tvalue?: string;\n\tlabel?: string;\n\tcaption?: string;\n\tonValueChange: (checked: boolean, value?: string) => void;\n\tskipHoverState?: boolean;\n\tsize?: 'DEFAULT' | 'SMALL';\n\tskipSelectingOff?: boolean;\n\tlabelSize?: 'DEFAULT' | 'MEDIUM';\n\tboldOnChecked?: boolean;\n\talwaysBold?: boolean;\n\tactiveColor?: string;\n\tgapBetweenBodyAndCaption?: string;\n\t'data-test'?: string;\n};\n\nconst CheckMark: React.FC<{\n\tisActive: boolean;\n\tisDisabled: boolean;\n\tisSmall: boolean;\n\tactiveColor?: string;\n}> = (props) => {\n\tconst fillColor = useMemo(\n\t\t() => props?.activeColor || COLORS.background.positive.vibrant,\n\t\t[props.activeColor],\n\t);\n\n\tconst strokeColor = useMemo(\n\t\t() =>\n\t\t\tprops.isDisabled\n\t\t\t\t? COLORS.content.inactive\n\t\t\t\t: props.isActive\n\t\t\t\t? fillColor\n\t\t\t\t: COLORS.content.primary,\n\t\t[props.isDisabled, props.isActive, fillColor],\n\t);\n\n\treturn (\n\t\t<svg\n\t\t\twidth={props.isSmall ? '16' : '20'}\n\t\t\theight={props.isSmall ? '16' : '20'}\n\t\t\tviewBox={props.isSmall ? '0 0 16 16' : '0 0 20 20'}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<circle\n\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\tr={props.isSmall ? 6 : 9}\n\t\t\t\tstroke={strokeColor}\n\t\t\t\tstrokeWidth={props.isSmall ? 1.5 : 2}\n\t\t\t/>\n\t\t\t{props.isActive && (\n\t\t\t\t<circle\n\t\t\t\t\tdata-test=\"radio-checked-indicator\"\n\t\t\t\t\tcx={props.isSmall ? '8' : '10'}\n\t\t\t\t\tcy={props.isSmall ? '8' : '10'}\n\t\t\t\t\tr={props.isSmall ? 3 : 5}\n\t\t\t\t\tfill={props.isDisabled ? COLORS.content.inactive : fillColor}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</svg>\n\t);\n};\n\nexport const RadioButton: React.FC<RadioButtonProps> = (props) => {\n\tconst [isActive, setIsActive] = useState(props.isActive || false);\n\tconst [isHovered, setIsHovered] = useState(false);\n\tconst [isClicked, setIsClicked] = useState(false);\n\n\tconst handleCheck = () => {\n\t\tif (props.skipSelectingOff) {\n\t\t\treturn;\n\t\t}\n\t\tif (!props.isDisabled) {\n\t\t\tconst newVal = !isActive;\n\t\t\tsetIsActive(newVal);\n\t\t\tprops.onValueChange?.(newVal, props.value);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsActive(props.isActive);\n\t}, [props.isActive]);\n\n\tconst renderLabel = () => {\n\t\tif (!props.label) {\n\t\t\treturn <></>;\n\t\t}\n\n\t\tif ((props.boldOnChecked && isActive) || props.alwaysBold) {\n\t\t\treturn (\n\t\t\t\t<TitleSmall\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</TitleSmall>\n\t\t\t);\n\t\t}\n\n\t\tif (props.size === 'SMALL') {\n\t\t\treturn (\n\t\t\t\t<BodyCaption\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodyCaption>\n\t\t\t);\n\t\t}\n\n\t\tif (props.labelSize === 'MEDIUM') {\n\t\t\treturn (\n\t\t\t\t<BodySecondary\n\t\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t\t>\n\t\t\t\t\t{props.label}\n\t\t\t\t</BodySecondary>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<BodyPrimary\n\t\t\t\tcolor={props.isDisabled ? COLORS.text.disabled : COLORS.text.primary}\n\t\t\t>\n\t\t\t\t{props.label}\n\t\t\t</BodyPrimary>\n\t\t);\n\t};\n\n\treturn (\n\t\t<RadioButtonContainer\n\t\t\tdata-test={props['data-test']}\n\t\t\tonClick={handleCheck}\n\t\t\tonMouseEnter={() => setIsHovered(!props.skipHoverState)}\n\t\t\tonMouseLeave={() => setIsHovered(false)}\n\t\t\tonMouseDown={() => setIsClicked(!props.skipHoverState)}\n\t\t\tonMouseUp={() => setIsClicked(false)}\n\t\t\tstyle={props.caption ? { alignItems: 'flex-start' } : {}}\n\t\t>\n\t\t\t<RadioButtonIcon\n\t\t\t\tchecked={isActive}\n\t\t\t\thovered={isHovered}\n\t\t\t\tclicked={isClicked}\n\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\tsize={props.size}\n\t\t\t\tstyle={props.caption ? { margin: '2px 0' } : {}}\n\t\t\t>\n\t\t\t\t<CheckMark\n\t\t\t\t\tisSmall={props.size === 'SMALL'}\n\t\t\t\t\tisActive={isActive}\n\t\t\t\t\tisDisabled={props.isDisabled || false}\n\t\t\t\t\tactiveColor={props.activeColor}\n\t\t\t\t/>\n\t\t\t</RadioButtonIcon>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: 'flex',\n\t\t\t\t\tflexDirection: 'column',\n\t\t\t\t\tgap: props.gapBetweenBodyAndCaption || '0px',\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{renderLabel()}\n\t\t\t\t{props.caption && (\n\t\t\t\t\t<BodyCaption\n\t\t\t\t\t\tcolor={\n\t\t\t\t\t\t\tprops.isDisabled ? COLORS.text.disabled : COLORS.text.secondary\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.caption}\n\t\t\t\t\t</BodyCaption>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</RadioButtonContainer>\n\t);\n};\n"],"names":["CheckMark","props","fillColor","useMemo","COLORS","strokeColor","jsxs","jsx","RadioButton","isActive","setIsActive","useState","isHovered","setIsHovered","isClicked","setIsClicked","handleCheck","newVal","useEffect","renderLabel","TitleSmall","BodyCaption","BodySecondary","BodyPrimary","Fragment","RadioButtonContainer","RadioButtonIcon"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { jsxs as a, jsx as l } from "react/jsx-runtime";
1
+ import { jsxs as c, jsx as l } from "react/jsx-runtime";
2
2
  import { useState as m, useEffect as u } from "react";
3
3
  import { RadioListStyled as f } from "./RadioList.styled.js";
4
4
  import { TitleRegular as h, BodySecondary as O } from "../TypographyStyle.js";
5
- import { COLORS as C } from "../../constants/Theme.js";
6
- import { RadioButton as v } from "../radioButton/RadioButton.js";
5
+ import { COLORS as v } from "../../constants/Theme.js";
6
+ import { RadioButton as C } from "../radioButton/RadioButton.js";
7
7
  const T = (t) => {
8
8
  const [n, s] = m(
9
9
  t.listItems
@@ -12,26 +12,35 @@ const T = (t) => {
12
12
  s(t.listItems);
13
13
  }, [t.listItems]);
14
14
  const d = (e, r) => {
15
- let o;
16
- const c = [...n];
17
- c.forEach((i) => {
18
- i.value === r ? (o = i, i.isActive = e) : i.isActive = !e;
19
- }), s(c), t.onChange(o);
15
+ let a;
16
+ const o = [...n];
17
+ o.forEach((i) => {
18
+ i.value === r ? (a = i, i.isActive = e) : i.isActive = !e;
19
+ }), s(o), t.onChange(a);
20
20
  };
21
- return /* @__PURE__ */ a(f, { children: [
22
- (t.title || t.subTitle) && /* @__PURE__ */ a("div", { className: "title__container", children: [
21
+ return /* @__PURE__ */ c(f, { children: [
22
+ (t.title || t.subTitle) && /* @__PURE__ */ c("div", { className: "title__container", children: [
23
23
  t.title && /* @__PURE__ */ l(h, { children: t.title }),
24
- t.subTitle && /* @__PURE__ */ l(O, { color: C.text.secondary, children: t.subTitle })
24
+ t.subTitle && /* @__PURE__ */ l(O, { color: v.text.secondary, children: t.subTitle })
25
25
  ] }),
26
- /* @__PURE__ */ l("div", { style: t.listContainerStyles ?? {}, className: "list__container", children: n.map((e) => /* @__PURE__ */ l(
27
- v,
26
+ /* @__PURE__ */ l(
27
+ "div",
28
28
  {
29
- ...e,
30
- onValueChange: d,
31
- boldOnChecked: t.boldOnChecked
32
- },
33
- e.value
34
- )) })
29
+ "data-test": "radio-list-container",
30
+ style: t.listContainerStyles ?? {},
31
+ className: "list__container",
32
+ children: n.map((e) => /* @__PURE__ */ l(
33
+ C,
34
+ {
35
+ "data-test": e.value,
36
+ ...e,
37
+ onValueChange: d,
38
+ boldOnChecked: t.boldOnChecked
39
+ },
40
+ e.value
41
+ ))
42
+ }
43
+ )
35
44
  ] });
36
45
  };
37
46
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"RadioList.js","sources":["../../../../src/components/radioList/RadioList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { RadioButton, RadioButtonProps } from '@src/components/radioButton';\nimport { RadioListStyled } from '@src/components/radioList/RadioList.styled';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\ntype RadioListItem = Omit<RadioButtonProps, 'onValueChange'> & {\n\tvalue: string;\n};\n\nexport type RadioListProps = {\n\ttitle?: string;\n\tsubTitle?: string;\n\tlistItems: RadioListItem[];\n\tonChange: (option: RadioListItem) => void;\n\tlistContainerStyles?: React.CSSProperties;\n\tboldOnChecked?: boolean;\n};\n\nexport const RadioList: React.FC<RadioListProps> = (props) => {\n\tconst [listOptions, setListOptions] = useState<RadioListItem[]>(\n\t\tprops.listItems,\n\t);\n\n\tuseEffect(() => {\n\t\tsetListOptions(props.listItems);\n\t}, [props.listItems]);\n\n\tconst onOptionClicked = (checked: boolean, value: string | undefined) => {\n\t\tlet selectedOption;\n\t\tconst temptListOptions = [...listOptions];\n\t\ttemptListOptions.forEach((option) => {\n\t\t\tif (option.value === value) {\n\t\t\t\tselectedOption = option;\n\t\t\t\toption['isActive'] = checked;\n\t\t\t} else {\n\t\t\t\toption['isActive'] = !checked;\n\t\t\t}\n\t\t});\n\t\tsetListOptions(temptListOptions);\n\t\tprops.onChange(selectedOption);\n\t};\n\n\treturn (\n\t\t<RadioListStyled>\n\t\t\t{(props.title || props.subTitle) && (\n\t\t\t\t<div className=\"title__container\">\n\t\t\t\t\t{props.title && <TitleRegular>{props.title}</TitleRegular>}\n\t\t\t\t\t{props.subTitle && (\n\t\t\t\t\t\t<BodySecondary color={COLORS.text.secondary}>\n\t\t\t\t\t\t\t{props.subTitle}\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div style={props.listContainerStyles ?? {}} className=\"list__container\">\n\t\t\t\t{listOptions.map((listItem) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\tkey={listItem.value}\n\t\t\t\t\t\t\t{...listItem}\n\t\t\t\t\t\t\tonValueChange={onOptionClicked}\n\t\t\t\t\t\t\tboldOnChecked={props.boldOnChecked}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</RadioListStyled>\n\t);\n};\n"],"names":["RadioList","props","listOptions","setListOptions","useState","useEffect","onOptionClicked","checked","value","selectedOption","temptListOptions","option","RadioListStyled","jsxs","jsx","TitleRegular","BodySecondary","COLORS","listItem","RadioButton"],"mappings":";;;;;;AAmBO,MAAMA,IAAsC,CAACC,MAAU;AAC7D,QAAM,CAACC,GAAaC,CAAc,IAAIC;AAAA,IACrCH,EAAM;AAAA,EAAA;AAGP,EAAAI,EAAU,MAAM;AACf,IAAAF,EAAeF,EAAM,SAAS;AAAA,EAC/B,GAAG,CAACA,EAAM,SAAS,CAAC;AAEpB,QAAMK,IAAkB,CAACC,GAAkBC,MAA8B;AACxE,QAAIC;AACJ,UAAMC,IAAmB,CAAC,GAAGR,CAAW;AACxC,IAAAQ,EAAiB,QAAQ,CAACC,MAAW;AACpC,MAAIA,EAAO,UAAUH,KACpBC,IAAiBE,GACjBA,EAAO,WAAcJ,KAErBI,EAAO,WAAc,CAACJ;AAAA,IAExB,CAAC,GACDJ,EAAeO,CAAgB,GAC/BT,EAAM,SAASQ,CAAc;AAAA,EAC9B;AAEA,2BACEG,GAAA,EACE,UAAA;AAAA,KAAAX,EAAM,SAASA,EAAM,aACtB,gBAAAY,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,MAAAZ,EAAM,SAAS,gBAAAa,EAACC,GAAA,EAAc,UAAAd,EAAM,OAAM;AAAA,MAC1CA,EAAM,YACN,gBAAAa,EAACE,GAAA,EAAc,OAAOC,EAAO,KAAK,WAChC,UAAAhB,EAAM,SAAA,CACR;AAAA,IAAA,GAEF;AAAA,IAED,gBAAAa,EAAC,OAAA,EAAI,OAAOb,EAAM,uBAAuB,CAAA,GAAI,WAAU,mBACrD,UAAAC,EAAY,IAAI,CAACgB,MAEhB,gBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QAEC,GAAGD;AAAA,QACJ,eAAeZ;AAAA,QACf,eAAeL,EAAM;AAAA,MAAA;AAAA,MAHhBiB,EAAS;AAAA,IAAA,CAMhB,EAAA,CACF;AAAA,EAAA,GACD;AAEF;"}
1
+ {"version":3,"file":"RadioList.js","sources":["../../../../src/components/radioList/RadioList.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { RadioButton, RadioButtonProps } from '@src/components/radioButton';\nimport { RadioListStyled } from '@src/components/radioList/RadioList.styled';\nimport { BodySecondary, TitleRegular } from '@src/components/TypographyStyle';\nimport { COLORS } from '@src/constants/Theme';\n\ntype RadioListItem = Omit<RadioButtonProps, 'onValueChange'> & {\n\tvalue: string;\n};\n\nexport type RadioListProps = {\n\ttitle?: string;\n\tsubTitle?: string;\n\tlistItems: RadioListItem[];\n\tonChange: (option: RadioListItem) => void;\n\tlistContainerStyles?: React.CSSProperties;\n\tboldOnChecked?: boolean;\n};\n\nexport const RadioList: React.FC<RadioListProps> = (props) => {\n\tconst [listOptions, setListOptions] = useState<RadioListItem[]>(\n\t\tprops.listItems,\n\t);\n\n\tuseEffect(() => {\n\t\tsetListOptions(props.listItems);\n\t}, [props.listItems]);\n\n\tconst onOptionClicked = (checked: boolean, value: string | undefined) => {\n\t\tlet selectedOption;\n\t\tconst temptListOptions = [...listOptions];\n\t\ttemptListOptions.forEach((option) => {\n\t\t\tif (option.value === value) {\n\t\t\t\tselectedOption = option;\n\t\t\t\toption['isActive'] = checked;\n\t\t\t} else {\n\t\t\t\toption['isActive'] = !checked;\n\t\t\t}\n\t\t});\n\t\tsetListOptions(temptListOptions);\n\t\tprops.onChange(selectedOption);\n\t};\n\n\treturn (\n\t\t<RadioListStyled>\n\t\t\t{(props.title || props.subTitle) && (\n\t\t\t\t<div className=\"title__container\">\n\t\t\t\t\t{props.title && <TitleRegular>{props.title}</TitleRegular>}\n\t\t\t\t\t{props.subTitle && (\n\t\t\t\t\t\t<BodySecondary color={COLORS.text.secondary}>\n\t\t\t\t\t\t\t{props.subTitle}\n\t\t\t\t\t\t</BodySecondary>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tdata-test=\"radio-list-container\"\n\t\t\t\tstyle={props.listContainerStyles ?? {}}\n\t\t\t\tclassName=\"list__container\"\n\t\t\t>\n\t\t\t\t{listOptions.map((listItem) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<RadioButton\n\t\t\t\t\t\t\tkey={listItem.value}\n\t\t\t\t\t\t\tdata-test={listItem.value}\n\t\t\t\t\t\t\t{...listItem}\n\t\t\t\t\t\t\tonValueChange={onOptionClicked}\n\t\t\t\t\t\t\tboldOnChecked={props.boldOnChecked}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</RadioListStyled>\n\t);\n};\n"],"names":["RadioList","props","listOptions","setListOptions","useState","useEffect","onOptionClicked","checked","value","selectedOption","temptListOptions","option","RadioListStyled","jsxs","jsx","TitleRegular","BodySecondary","COLORS","listItem","RadioButton"],"mappings":";;;;;;AAmBO,MAAMA,IAAsC,CAACC,MAAU;AAC7D,QAAM,CAACC,GAAaC,CAAc,IAAIC;AAAA,IACrCH,EAAM;AAAA,EAAA;AAGP,EAAAI,EAAU,MAAM;AACf,IAAAF,EAAeF,EAAM,SAAS;AAAA,EAC/B,GAAG,CAACA,EAAM,SAAS,CAAC;AAEpB,QAAMK,IAAkB,CAACC,GAAkBC,MAA8B;AACxE,QAAIC;AACJ,UAAMC,IAAmB,CAAC,GAAGR,CAAW;AACxC,IAAAQ,EAAiB,QAAQ,CAACC,MAAW;AACpC,MAAIA,EAAO,UAAUH,KACpBC,IAAiBE,GACjBA,EAAO,WAAcJ,KAErBI,EAAO,WAAc,CAACJ;AAAA,IAExB,CAAC,GACDJ,EAAeO,CAAgB,GAC/BT,EAAM,SAASQ,CAAc;AAAA,EAC9B;AAEA,2BACEG,GAAA,EACE,UAAA;AAAA,KAAAX,EAAM,SAASA,EAAM,aACtB,gBAAAY,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,MAAAZ,EAAM,SAAS,gBAAAa,EAACC,GAAA,EAAc,UAAAd,EAAM,OAAM;AAAA,MAC1CA,EAAM,YACN,gBAAAa,EAACE,GAAA,EAAc,OAAOC,EAAO,KAAK,WAChC,UAAAhB,EAAM,SAAA,CACR;AAAA,IAAA,GAEF;AAAA,IAED,gBAAAa;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,aAAU;AAAA,QACV,OAAOb,EAAM,uBAAuB,CAAA;AAAA,QACpC,WAAU;AAAA,QAET,UAAAC,EAAY,IAAI,CAACgB,MAEhB,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YAEA,aAAWD,EAAS;AAAA,YACnB,GAAGA;AAAA,YACJ,eAAeZ;AAAA,YACf,eAAeL,EAAM;AAAA,UAAA;AAAA,UAJhBiB,EAAS;AAAA,QAAA,CAOhB;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACD;AAEF;"}
@@ -1,27 +1,27 @@
1
1
  import { jsx as B } from "react/jsx-runtime";
2
2
  import { SearchIcon as E } from "../../assets/icons/searchIcon.js";
3
- import { useState as c, useEffect as d } from "react";
3
+ import { useState as o, useEffect as d } from "react";
4
4
  import w from "../../assets/icons/cross.svg.js";
5
5
  import { Input as x } from "../input/Input.js";
6
6
  const O = (e) => {
7
7
  const {
8
- isEnabled: o,
8
+ isEnabled: c,
9
9
  onEnter: h,
10
10
  placeholder: C,
11
11
  width: v,
12
12
  variant: b,
13
13
  validate: S,
14
14
  isActive: i
15
- } = e, [f, t] = c("search"), [m, s] = c("default"), [k, n] = c(
16
- i ? "active" : o ? "none" : "disabled"
17
- ), [l, r] = c(
15
+ } = e, [f, t] = o("search"), [m, s] = o("default"), [k, n] = o(
16
+ i ? "active" : c ? "none" : "disabled"
17
+ ), [l, r] = o(
18
18
  e.initialValue || e.searchValue || ""
19
19
  );
20
20
  d(() => {
21
21
  r(e.searchValue ?? ""), e.searchValue?.trim()?.length ? t("cross") : t("search");
22
22
  }, [e.searchValue]), d(() => {
23
- n(i ? "active" : o ? "none" : "disabled");
24
- }, [o, i]), d(() => {
23
+ n(i ? "active" : c ? "none" : "disabled");
24
+ }, [c, i]), d(() => {
25
25
  e.reset && g();
26
26
  }, [e?.reset]);
27
27
  const I = (a, u) => {
@@ -31,7 +31,7 @@ const O = (e) => {
31
31
  }
32
32
  a.trim().length ? t("cross") : t("search");
33
33
  }, V = (a) => {
34
- o && h(a);
34
+ c && h(a);
35
35
  }, g = () => {
36
36
  t("search"), s("default"), r(""), e.onChange(""), n("none"), h("");
37
37
  };
@@ -42,7 +42,7 @@ const O = (e) => {
42
42
  id: "search-bar",
43
43
  validate: S,
44
44
  onFocus: () => {
45
- l.length && t("cross"), m === "default" && o && (s("clicked"), n("active"));
45
+ l.length && t("cross"), m === "default" && c && (s("clicked"), n("active"));
46
46
  },
47
47
  width: v,
48
48
  state: k,
@@ -53,7 +53,8 @@ const O = (e) => {
53
53
  icon: w,
54
54
  callback: () => {
55
55
  g(), e.onClickCross && e.onClickCross();
56
- }
56
+ },
57
+ "data-test": "search-clear-icon"
57
58
  } : void 0,
58
59
  onChangeText: I,
59
60
  placeholder: C,
@@ -1 +1 @@
1
- {"version":3,"file":"searchBar.js","sources":["../../../../src/components/searchBar/searchBar.tsx"],"sourcesContent":["import { SearchIcon } from '@src/assets/icons/searchIcon';\nimport { useEffect, useState } from 'react';\nimport CrossIcon from '../../assets/icons/cross.svg';\nimport { ButtonProps } from '../button/model';\nimport { Input } from '../input/Input';\nimport { InputVariant } from '../input/Input.model';\n\nexport interface SearchBarProps {\n\twidth: string;\n\tisEnabled: boolean;\n\tonChange: (searchText: string) => void;\n\tonEnter: (searchText: string) => void;\n\tplaceholder: string;\n\tvariant: InputVariant;\n\tvalidate?: (input?: string | number) => [boolean, string];\n\tinitialValue?: string;\n\treset?: boolean;\n\tonClickCross?: () => void;\n\tisActive?: boolean;\n\tsuffixButton?: ButtonProps;\n\tsearchValue?: string;\n\t'data-test'?: string;\n}\n\ntype ActiveStates = 'none' | 'disabled' | 'active';\ntype Mode = 'default' | 'clicked';\n\nexport const SearchBar = (props: SearchBarProps) => {\n\tconst {\n\t\tisEnabled,\n\t\tonEnter,\n\t\tplaceholder,\n\t\twidth,\n\t\tvariant,\n\t\tvalidate,\n\t\tisActive,\n\t} = props;\n\tconst [icon, setIcon] = useState<string>('search');\n\tconst [mode, setMode] = useState<Mode>('default');\n\tconst [inputState, setInputState] = useState<ActiveStates>(\n\t\tisActive ? 'active' : isEnabled ? 'none' : 'disabled',\n\t);\n\tconst [value, setValue] = useState<string>(\n\t\tprops.initialValue || props.searchValue || '',\n\t);\n\n\tuseEffect(() => {\n\t\tsetValue(props.searchValue ?? '');\n\t\tif (props.searchValue?.trim()?.length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t}, [props.searchValue]);\n\n\tuseEffect(() => {\n\t\tisActive\n\t\t\t? setInputState('active')\n\t\t\t: isEnabled\n\t\t\t? setInputState('none')\n\t\t\t: setInputState('disabled');\n\t}, [isEnabled, isActive]);\n\n\tuseEffect(() => {\n\t\tprops.reset && resetSearch();\n\t}, [props?.reset]);\n\n\tconst handleOnChange = (searchText: string, event: any) => {\n\t\tprops.onChange(searchText);\n\t\tsetValue(searchText);\n\n\t\tif (\n\t\t\tevent?.type === 'keydown' &&\n\t\t\t(event.which === 13 || event.keyCode === 13)\n\t\t) {\n\t\t\thandleEnter(searchText);\n\t\t\treturn;\n\t\t}\n\n\t\tif (searchText.trim().length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t};\n\n\tconst handleEnter = (searchText: string) => {\n\t\tisEnabled && onEnter(searchText);\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetIcon('search');\n\t\tsetMode('default');\n\t\tsetValue('');\n\t\tprops.onChange('');\n\t\tsetInputState('none');\n\t\tonEnter('');\n\t};\n\n\treturn (\n\t\t<Input\n\t\t\tdata-test={props['data-test']}\n\t\t\tid=\"search-bar\"\n\t\t\tvalidate={validate}\n\t\t\tonFocus={() => {\n\t\t\t\tif (value.length) setIcon('cross');\n\t\t\t\tif (mode === 'default') {\n\t\t\t\t\tif (isEnabled) {\n\t\t\t\t\t\tsetMode('clicked');\n\t\t\t\t\t\tsetInputState('active');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t\twidth={width}\n\t\t\tstate={inputState}\n\t\t\tleftIcon={\n\t\t\t\ticon === 'search' && mode === 'default'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: SearchIcon,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\trightIcon={\n\t\t\t\ticon === 'cross' && !props.suffixButton\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: CrossIcon,\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tresetSearch();\n\t\t\t\t\t\t\t\tprops.onClickCross && props.onClickCross();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonChangeText={handleOnChange}\n\t\t\tplaceholder={placeholder}\n\t\t\tvariant={variant}\n\t\t\tvalue={value}\n\t\t\tonBlur={() => {\n\t\t\t\tif (!value.length) {\n\t\t\t\t\tsetMode('default');\n\t\t\t\t}\n\t\t\t\tsetInputState('none');\n\t\t\t}}\n\t\t\tbutton={{ text: '', buttonProps: props.suffixButton }}\n\t\t/>\n\t);\n};\n"],"names":["SearchBar","props","isEnabled","onEnter","placeholder","width","variant","validate","isActive","icon","setIcon","useState","mode","setMode","inputState","setInputState","value","setValue","useEffect","resetSearch","handleOnChange","searchText","event","handleEnter","jsx","Input","SearchIcon","CrossIcon"],"mappings":";;;;;AA2BO,MAAMA,IAAY,CAACC,MAA0B;AACnD,QAAM;AAAA,IACL,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACGP,GACE,CAACQ,GAAMC,CAAO,IAAIC,EAAiB,QAAQ,GAC3C,CAACC,GAAMC,CAAO,IAAIF,EAAe,SAAS,GAC1C,CAACG,GAAYC,CAAa,IAAIJ;AAAA,IACnCH,IAAW,WAAWN,IAAY,SAAS;AAAA,EAAA,GAEtC,CAACc,GAAOC,CAAQ,IAAIN;AAAA,IACzBV,EAAM,gBAAgBA,EAAM,eAAe;AAAA,EAAA;AAG5C,EAAAiB,EAAU,MAAM;AACf,IAAAD,EAAShB,EAAM,eAAe,EAAE,GAC5BA,EAAM,aAAa,KAAA,GAAQ,SAC9BS,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAAG,CAACT,EAAM,WAAW,CAAC,GAEtBiB,EAAU,MAAM;AACf,IACGH,EADHP,IACiB,WACdN,IACc,SACA,UAHQ;AAAA,EAI1B,GAAG,CAACA,GAAWM,CAAQ,CAAC,GAExBU,EAAU,MAAM;AACf,IAAAjB,EAAM,SAASkB,EAAA;AAAA,EAChB,GAAG,CAAClB,GAAO,KAAK,CAAC;AAEjB,QAAMmB,IAAiB,CAACC,GAAoBC,MAAe;AAI1D,QAHArB,EAAM,SAASoB,CAAU,GACzBJ,EAASI,CAAU,GAGlBC,GAAO,SAAS,cACfA,EAAM,UAAU,MAAMA,EAAM,YAAY,KACxC;AACD,MAAAC,EAAYF,CAAU;AACtB;AAAA,IACD;AAEA,IAAIA,EAAW,KAAA,EAAO,SACrBX,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAEMa,IAAc,CAACF,MAAuB;AAC3C,IAAAnB,KAAaC,EAAQkB,CAAU;AAAA,EAChC,GAEMF,IAAc,MAAM;AACzB,IAAAT,EAAQ,QAAQ,GAChBG,EAAQ,SAAS,GACjBI,EAAS,EAAE,GACXhB,EAAM,SAAS,EAAE,GACjBc,EAAc,MAAM,GACpBZ,EAAQ,EAAE;AAAA,EACX;AAEA,SACC,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAWxB,EAAM,WAAW;AAAA,MAC5B,IAAG;AAAA,MACH,UAAAM;AAAA,MACA,SAAS,MAAM;AACd,QAAIS,EAAM,UAAQN,EAAQ,OAAO,GAC7BE,MAAS,aACRV,MACHW,EAAQ,SAAS,GACjBE,EAAc,QAAQ;AAAA,MAGzB;AAAA,MACA,OAAAV;AAAA,MACA,OAAOS;AAAA,MACP,UACCL,MAAS,YAAYG,MAAS,YAC3B;AAAA,QACA,MAAMc;AAAA,MAAA,IAEN;AAAA,MAEJ,WACCjB,MAAS,WAAW,CAACR,EAAM,eACxB;AAAA,QACA,MAAM0B;AAAAA,QACN,UAAU,MAAM;AACf,UAAAR,EAAA,GACAlB,EAAM,gBAAgBA,EAAM,aAAA;AAAA,QAC7B;AAAA,MAAA,IAEA;AAAA,MAEJ,cAAcmB;AAAA,MACd,aAAAhB;AAAA,MACA,SAAAE;AAAA,MACA,OAAAU;AAAA,MACA,QAAQ,MAAM;AACb,QAAKA,EAAM,UACVH,EAAQ,SAAS,GAElBE,EAAc,MAAM;AAAA,MACrB;AAAA,MACA,QAAQ,EAAE,MAAM,IAAI,aAAad,EAAM,aAAA;AAAA,IAAa;AAAA,EAAA;AAGvD;"}
1
+ {"version":3,"file":"searchBar.js","sources":["../../../../src/components/searchBar/searchBar.tsx"],"sourcesContent":["import { SearchIcon } from '@src/assets/icons/searchIcon';\nimport { useEffect, useState } from 'react';\nimport CrossIcon from '../../assets/icons/cross.svg';\nimport { ButtonProps } from '../button/model';\nimport { Input } from '../input/Input';\nimport { InputVariant } from '../input/Input.model';\n\nexport interface SearchBarProps {\n\twidth: string;\n\tisEnabled: boolean;\n\tonChange: (searchText: string) => void;\n\tonEnter: (searchText: string) => void;\n\tplaceholder: string;\n\tvariant: InputVariant;\n\tvalidate?: (input?: string | number) => [boolean, string];\n\tinitialValue?: string;\n\treset?: boolean;\n\tonClickCross?: () => void;\n\tisActive?: boolean;\n\tsuffixButton?: ButtonProps;\n\tsearchValue?: string;\n\t'data-test'?: string;\n}\n\ntype ActiveStates = 'none' | 'disabled' | 'active';\ntype Mode = 'default' | 'clicked';\n\nexport const SearchBar = (props: SearchBarProps) => {\n\tconst {\n\t\tisEnabled,\n\t\tonEnter,\n\t\tplaceholder,\n\t\twidth,\n\t\tvariant,\n\t\tvalidate,\n\t\tisActive,\n\t} = props;\n\tconst [icon, setIcon] = useState<string>('search');\n\tconst [mode, setMode] = useState<Mode>('default');\n\tconst [inputState, setInputState] = useState<ActiveStates>(\n\t\tisActive ? 'active' : isEnabled ? 'none' : 'disabled',\n\t);\n\tconst [value, setValue] = useState<string>(\n\t\tprops.initialValue || props.searchValue || '',\n\t);\n\n\tuseEffect(() => {\n\t\tsetValue(props.searchValue ?? '');\n\t\tif (props.searchValue?.trim()?.length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t}, [props.searchValue]);\n\n\tuseEffect(() => {\n\t\tisActive\n\t\t\t? setInputState('active')\n\t\t\t: isEnabled\n\t\t\t? setInputState('none')\n\t\t\t: setInputState('disabled');\n\t}, [isEnabled, isActive]);\n\n\tuseEffect(() => {\n\t\tprops.reset && resetSearch();\n\t}, [props?.reset]);\n\n\tconst handleOnChange = (searchText: string, event: any) => {\n\t\tprops.onChange(searchText);\n\t\tsetValue(searchText);\n\n\t\tif (\n\t\t\tevent?.type === 'keydown' &&\n\t\t\t(event.which === 13 || event.keyCode === 13)\n\t\t) {\n\t\t\thandleEnter(searchText);\n\t\t\treturn;\n\t\t}\n\n\t\tif (searchText.trim().length) {\n\t\t\tsetIcon('cross');\n\t\t} else {\n\t\t\tsetIcon('search');\n\t\t}\n\t};\n\n\tconst handleEnter = (searchText: string) => {\n\t\tisEnabled && onEnter(searchText);\n\t};\n\n\tconst resetSearch = () => {\n\t\tsetIcon('search');\n\t\tsetMode('default');\n\t\tsetValue('');\n\t\tprops.onChange('');\n\t\tsetInputState('none');\n\t\tonEnter('');\n\t};\n\n\treturn (\n\t\t<Input\n\t\t\tdata-test={props['data-test']}\n\t\t\tid=\"search-bar\"\n\t\t\tvalidate={validate}\n\t\t\tonFocus={() => {\n\t\t\t\tif (value.length) setIcon('cross');\n\t\t\t\tif (mode === 'default') {\n\t\t\t\t\tif (isEnabled) {\n\t\t\t\t\t\tsetMode('clicked');\n\t\t\t\t\t\tsetInputState('active');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t\twidth={width}\n\t\t\tstate={inputState}\n\t\t\tleftIcon={\n\t\t\t\ticon === 'search' && mode === 'default'\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: SearchIcon,\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\trightIcon={\n\t\t\t\ticon === 'cross' && !props.suffixButton\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ticon: CrossIcon,\n\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\tresetSearch();\n\t\t\t\t\t\t\t\tprops.onClickCross && props.onClickCross();\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t'data-test': 'search-clear-icon',\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonChangeText={handleOnChange}\n\t\t\tplaceholder={placeholder}\n\t\t\tvariant={variant}\n\t\t\tvalue={value}\n\t\t\tonBlur={() => {\n\t\t\t\tif (!value.length) {\n\t\t\t\t\tsetMode('default');\n\t\t\t\t}\n\t\t\t\tsetInputState('none');\n\t\t\t}}\n\t\t\tbutton={{ text: '', buttonProps: props.suffixButton }}\n\t\t/>\n\t);\n};\n"],"names":["SearchBar","props","isEnabled","onEnter","placeholder","width","variant","validate","isActive","icon","setIcon","useState","mode","setMode","inputState","setInputState","value","setValue","useEffect","resetSearch","handleOnChange","searchText","event","handleEnter","jsx","Input","SearchIcon","CrossIcon"],"mappings":";;;;;AA2BO,MAAMA,IAAY,CAACC,MAA0B;AACnD,QAAM;AAAA,IACL,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACGP,GACE,CAACQ,GAAMC,CAAO,IAAIC,EAAiB,QAAQ,GAC3C,CAACC,GAAMC,CAAO,IAAIF,EAAe,SAAS,GAC1C,CAACG,GAAYC,CAAa,IAAIJ;AAAA,IACnCH,IAAW,WAAWN,IAAY,SAAS;AAAA,EAAA,GAEtC,CAACc,GAAOC,CAAQ,IAAIN;AAAA,IACzBV,EAAM,gBAAgBA,EAAM,eAAe;AAAA,EAAA;AAG5C,EAAAiB,EAAU,MAAM;AACf,IAAAD,EAAShB,EAAM,eAAe,EAAE,GAC5BA,EAAM,aAAa,KAAA,GAAQ,SAC9BS,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAAG,CAACT,EAAM,WAAW,CAAC,GAEtBiB,EAAU,MAAM;AACf,IACGH,EADHP,IACiB,WACdN,IACc,SACA,UAHQ;AAAA,EAI1B,GAAG,CAACA,GAAWM,CAAQ,CAAC,GAExBU,EAAU,MAAM;AACf,IAAAjB,EAAM,SAASkB,EAAA;AAAA,EAChB,GAAG,CAAClB,GAAO,KAAK,CAAC;AAEjB,QAAMmB,IAAiB,CAACC,GAAoBC,MAAe;AAI1D,QAHArB,EAAM,SAASoB,CAAU,GACzBJ,EAASI,CAAU,GAGlBC,GAAO,SAAS,cACfA,EAAM,UAAU,MAAMA,EAAM,YAAY,KACxC;AACD,MAAAC,EAAYF,CAAU;AACtB;AAAA,IACD;AAEA,IAAIA,EAAW,KAAA,EAAO,SACrBX,EAAQ,OAAO,IAEfA,EAAQ,QAAQ;AAAA,EAElB,GAEMa,IAAc,CAACF,MAAuB;AAC3C,IAAAnB,KAAaC,EAAQkB,CAAU;AAAA,EAChC,GAEMF,IAAc,MAAM;AACzB,IAAAT,EAAQ,QAAQ,GAChBG,EAAQ,SAAS,GACjBI,EAAS,EAAE,GACXhB,EAAM,SAAS,EAAE,GACjBc,EAAc,MAAM,GACpBZ,EAAQ,EAAE;AAAA,EACX;AAEA,SACC,gBAAAqB;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,aAAWxB,EAAM,WAAW;AAAA,MAC5B,IAAG;AAAA,MACH,UAAAM;AAAA,MACA,SAAS,MAAM;AACd,QAAIS,EAAM,UAAQN,EAAQ,OAAO,GAC7BE,MAAS,aACRV,MACHW,EAAQ,SAAS,GACjBE,EAAc,QAAQ;AAAA,MAGzB;AAAA,MACA,OAAAV;AAAA,MACA,OAAOS;AAAA,MACP,UACCL,MAAS,YAAYG,MAAS,YAC3B;AAAA,QACA,MAAMc;AAAA,MAAA,IAEN;AAAA,MAEJ,WACCjB,MAAS,WAAW,CAACR,EAAM,eACxB;AAAA,QACA,MAAM0B;AAAAA,QACN,UAAU,MAAM;AACf,UAAAR,EAAA,GACAlB,EAAM,gBAAgBA,EAAM,aAAA;AAAA,QAC7B;AAAA,QACA,aAAa;AAAA,MAAA,IAEb;AAAA,MAEJ,cAAcmB;AAAA,MACd,aAAAhB;AAAA,MACA,SAAAE;AAAA,MACA,OAAAU;AAAA,MACA,QAAQ,MAAM;AACb,QAAKA,EAAM,UACVH,EAAQ,SAAS,GAElBE,EAAc,MAAM;AAAA,MACrB;AAAA,MACA,QAAQ,EAAE,MAAM,IAAI,aAAad,EAAM,aAAA;AAAA,IAAa;AAAA,EAAA;AAGvD;"}
@@ -3,7 +3,7 @@ import { useEffect as a } from "react";
3
3
  import m from "react-dom";
4
4
  import u from "../../assets/icons/cross.svg.js";
5
5
  import { TitleMedium as h } from "../TypographyStyle.js";
6
- import { SideModalStyle as f, SideModalContainer as y, SideModalHeader as S, SideModalBody as C, SideModalFooter as s, FooterButtonWrapper as B } from "./SideModal.style.js";
6
+ import { SideModalStyle as f, SideModalContainer as y, SideModalHeader as s, SideModalBody as S, SideModalFooter as C, FooterButtonWrapper as B } from "./SideModal.style.js";
7
7
  import { Button as i } from "../button/Button.js";
8
8
  const D = (e) => {
9
9
  const { closeOnEscapeKey: n, onClose: d } = e;
@@ -18,20 +18,28 @@ const D = (e) => {
18
18
  }, [n, d]), m.createPortal(
19
19
  /* @__PURE__ */ t(f, { zIndex: e.zIndex, children: /* @__PURE__ */ o(y, { width: e.width, children: [
20
20
  /* @__PURE__ */ o(
21
- S,
21
+ s,
22
22
  {
23
23
  headerStyle: {
24
24
  ...e.headerStyle
25
25
  },
26
26
  children: [
27
27
  e?.headerCustomComponent || /* @__PURE__ */ t(h, { children: e.header }),
28
- !e.hideCrossButton && /* @__PURE__ */ t(u, { width: 24, height: 24, onClick: e.onClose }),
28
+ !e.hideCrossButton && /* @__PURE__ */ t(
29
+ u,
30
+ {
31
+ width: 24,
32
+ height: 24,
33
+ onClick: e.onClose,
34
+ "data-test": "side-modal-close-button"
35
+ }
36
+ ),
29
37
  " "
30
38
  ]
31
39
  }
32
40
  ),
33
41
  /* @__PURE__ */ o(
34
- C,
42
+ S,
35
43
  {
36
44
  hideFooter: e.hideFooter,
37
45
  bodyStyle: {
@@ -44,7 +52,7 @@ const D = (e) => {
44
52
  }
45
53
  ),
46
54
  e.hideFooter === !0 ? null : /* @__PURE__ */ o(
47
- s,
55
+ C,
48
56
  {
49
57
  footerDirection: e.footerDirection,
50
58
  footerStyle: {
@@ -1 +1 @@
1
- {"version":3,"file":"SideModal.js","sources":["../../../../src/components/side-modal/SideModal.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport CrossIcon from '../../assets/icons/cross.svg';\nimport { Button } from '../button';\nimport { ButtonProps } from '../button/model';\nimport { TitleMedium } from '../TypographyStyle';\nimport {\n\tFooterButtonWrapper,\n\tSideModalBody,\n\tSideModalContainer,\n\tSideModalFooter,\n\tSideModalHeader,\n\tSideModalStyle,\n} from './SideModal.style';\n\nexport interface SideModalProps {\n\theader: string;\n\tchildren: React.ReactNode;\n\theaderCustomComponent?: React.ReactNode;\n\tfooterCustomComponent?: React.ReactNode;\n\tfooterDirection?: 'row' | 'row-reverse';\n\thideCrossButton?: boolean;\n\twidth?: string;\n\tsaveButtonProps?: ButtonProps;\n\tcancelButtonProps?: ButtonProps;\n\tonClose: () => void;\n\tzIndex?: number;\n\thideFooter?: boolean;\n\tbodyStyle?: React.CSSProperties;\n\telement?: Element | DocumentFragment;\n\theaderStyle?: React.CSSProperties;\n\tfooterStyle?: React.CSSProperties;\n\tcloseOnEscapeKey?: boolean;\n}\n\nexport const SideModal: React.FC<SideModalProps> = (props) => {\n\tconst { closeOnEscapeKey, onClose } = props;\n\n\t// Escape key handler - enabled by default\n\tuseEffect(() => {\n\t\t// Guard: Escape key must be enabled (default: true)\n\n\t\tconst escapeEnabled = closeOnEscapeKey ?? true;\n\t\tif (!escapeEnabled) return;\n\n\t\tconst handleEscapeKey = (event: KeyboardEvent) => {\n\t\t\tif (event.key !== 'Escape') return;\n\n\t\t\tonClose();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handleEscapeKey);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleEscapeKey);\n\t\t};\n\t}, [closeOnEscapeKey, onClose]);\n\n\treturn ReactDOM.createPortal(\n\t\t<SideModalStyle zIndex={props.zIndex}>\n\t\t\t<SideModalContainer width={props.width}>\n\t\t\t\t<SideModalHeader\n\t\t\t\t\theaderStyle={{\n\t\t\t\t\t\t...props.headerStyle,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{props?.headerCustomComponent || (\n\t\t\t\t\t\t<TitleMedium>{props.header}</TitleMedium>\n\t\t\t\t\t)}\n\t\t\t\t\t{!props.hideCrossButton && (\n\t\t\t\t\t\t<CrossIcon width={24} height={24} onClick={props.onClose} />\n\t\t\t\t\t)}{' '}\n\t\t\t\t</SideModalHeader>\n\t\t\t\t<SideModalBody\n\t\t\t\t\thideFooter={props.hideFooter}\n\t\t\t\t\tbodyStyle={{\n\t\t\t\t\t\t...props.bodyStyle,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{props.children}{' '}\n\t\t\t\t</SideModalBody>\n\t\t\t\t{props.hideFooter === true ? null : (\n\t\t\t\t\t<SideModalFooter\n\t\t\t\t\t\tfooterDirection={props.footerDirection}\n\t\t\t\t\t\tfooterStyle={{\n\t\t\t\t\t\t\t...props.footerStyle,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{(props.saveButtonProps || props.cancelButtonProps) && (\n\t\t\t\t\t\t\t<FooterButtonWrapper footerDirection={props.footerDirection}>\n\t\t\t\t\t\t\t\t{props.saveButtonProps && <Button {...props.saveButtonProps} />}\n\t\t\t\t\t\t\t\t{props.cancelButtonProps && (\n\t\t\t\t\t\t\t\t\t<Button {...props.cancelButtonProps} />\n\t\t\t\t\t\t\t\t)}{' '}\n\t\t\t\t\t\t\t</FooterButtonWrapper>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{props.footerCustomComponent ? props.footerCustomComponent : <></>}{' '}\n\t\t\t\t\t</SideModalFooter>\n\t\t\t\t)}{' '}\n\t\t\t</SideModalContainer>\n\t\t</SideModalStyle>,\n\t\tprops.element ?? document.body,\n\t);\n};\n"],"names":["SideModal","props","closeOnEscapeKey","onClose","useEffect","handleEscapeKey","event","ReactDOM","jsx","SideModalStyle","jsxs","SideModalContainer","SideModalHeader","TitleMedium","CrossIcon","SideModalBody","SideModalFooter","FooterButtonWrapper","Button","Fragment"],"mappings":";;;;;;;AAmCO,MAAMA,IAAsC,CAACC,MAAU;AAC7D,QAAM,EAAE,kBAAAC,GAAkB,SAAAC,EAAA,IAAYF;AAGtC,SAAAG,EAAU,MAAM;AAIf,QAAI,EADkBF,KAAoB,IACtB;AAEpB,UAAMG,IAAkB,CAACC,MAAyB;AACjD,MAAIA,EAAM,QAAQ,YAElBH,EAAA;AAAA,IACD;AAEA,oBAAS,iBAAiB,WAAWE,CAAe,GAE7C,MAAM;AACZ,eAAS,oBAAoB,WAAWA,CAAe;AAAA,IACxD;AAAA,EACD,GAAG,CAACH,GAAkBC,CAAO,CAAC,GAEvBI,EAAS;AAAA,IACf,gBAAAC,EAACC,KAAe,QAAQR,EAAM,QAC7B,UAAA,gBAAAS,EAACC,GAAA,EAAmB,OAAOV,EAAM,OAChC,UAAA;AAAA,MAAA,gBAAAS;AAAA,QAACE;AAAA,QAAA;AAAA,UACA,aAAa;AAAA,YACZ,GAAGX,EAAM;AAAA,UAAA;AAAA,UAGT,UAAA;AAAA,YAAAA,GAAO,yBACP,gBAAAO,EAACK,GAAA,EAAa,UAAAZ,EAAM,QAAO;AAAA,YAE3B,CAACA,EAAM,mBACP,gBAAAO,EAACM,GAAA,EAAU,OAAO,IAAI,QAAQ,IAAI,SAASb,EAAM,QAAA,CAAS;AAAA,YACxD;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEJ,gBAAAS;AAAA,QAACK;AAAA,QAAA;AAAA,UACA,YAAYd,EAAM;AAAA,UAClB,WAAW;AAAA,YACV,GAAGA,EAAM;AAAA,UAAA;AAAA,UAGT,UAAA;AAAA,YAAAA,EAAM;AAAA,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjBA,EAAM,eAAe,KAAO,OAC5B,gBAAAS;AAAA,QAACM;AAAA,QAAA;AAAA,UACA,iBAAiBf,EAAM;AAAA,UACvB,aAAa;AAAA,YACZ,GAAGA,EAAM;AAAA,UAAA;AAAA,UAGR,UAAA;AAAA,aAAAA,EAAM,mBAAmBA,EAAM,wCAC/BgB,GAAA,EAAoB,iBAAiBhB,EAAM,iBAC1C,UAAA;AAAA,cAAAA,EAAM,mBAAmB,gBAAAO,EAACU,GAAA,EAAQ,GAAGjB,EAAM,iBAAiB;AAAA,cAC5DA,EAAM,qBACN,gBAAAO,EAACU,GAAA,EAAQ,GAAGjB,EAAM,mBAAmB;AAAA,cACnC;AAAA,YAAA,GACJ;AAAA,YAEAA,EAAM,wBAAwBA,EAAM,wBAAwB,gBAAAO,EAAAW,GAAA,EAAE;AAAA,YAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEnE;AAAA,IAAA,EAAA,CACJ,EAAA,CACD;AAAA,IACAlB,EAAM,WAAW,SAAS;AAAA,EAAA;AAE5B;"}
1
+ {"version":3,"file":"SideModal.js","sources":["../../../../src/components/side-modal/SideModal.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport CrossIcon from '../../assets/icons/cross.svg';\nimport { Button } from '../button';\nimport { ButtonProps } from '../button/model';\nimport { TitleMedium } from '../TypographyStyle';\nimport {\n\tFooterButtonWrapper,\n\tSideModalBody,\n\tSideModalContainer,\n\tSideModalFooter,\n\tSideModalHeader,\n\tSideModalStyle,\n} from './SideModal.style';\n\nexport interface SideModalProps {\n\theader: string;\n\tchildren: React.ReactNode;\n\theaderCustomComponent?: React.ReactNode;\n\tfooterCustomComponent?: React.ReactNode;\n\tfooterDirection?: 'row' | 'row-reverse';\n\thideCrossButton?: boolean;\n\twidth?: string;\n\tsaveButtonProps?: ButtonProps;\n\tcancelButtonProps?: ButtonProps;\n\tonClose: () => void;\n\tzIndex?: number;\n\thideFooter?: boolean;\n\tbodyStyle?: React.CSSProperties;\n\telement?: Element | DocumentFragment;\n\theaderStyle?: React.CSSProperties;\n\tfooterStyle?: React.CSSProperties;\n\tcloseOnEscapeKey?: boolean;\n}\n\nexport const SideModal: React.FC<SideModalProps> = (props) => {\n\tconst { closeOnEscapeKey, onClose } = props;\n\n\t// Escape key handler - enabled by default\n\tuseEffect(() => {\n\t\t// Guard: Escape key must be enabled (default: true)\n\n\t\tconst escapeEnabled = closeOnEscapeKey ?? true;\n\t\tif (!escapeEnabled) return;\n\n\t\tconst handleEscapeKey = (event: KeyboardEvent) => {\n\t\t\tif (event.key !== 'Escape') return;\n\n\t\t\tonClose();\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handleEscapeKey);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleEscapeKey);\n\t\t};\n\t}, [closeOnEscapeKey, onClose]);\n\n\treturn ReactDOM.createPortal(\n\t\t<SideModalStyle zIndex={props.zIndex}>\n\t\t\t<SideModalContainer width={props.width}>\n\t\t\t\t<SideModalHeader\n\t\t\t\t\theaderStyle={{\n\t\t\t\t\t\t...props.headerStyle,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{props?.headerCustomComponent || (\n\t\t\t\t\t\t<TitleMedium>{props.header}</TitleMedium>\n\t\t\t\t\t)}\n\t\t\t\t\t{!props.hideCrossButton && (\n\t\t\t\t\t\t<CrossIcon\n\t\t\t\t\t\t\twidth={24}\n\t\t\t\t\t\t\theight={24}\n\t\t\t\t\t\t\tonClick={props.onClose}\n\t\t\t\t\t\t\tdata-test=\"side-modal-close-button\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}{' '}\n\t\t\t\t</SideModalHeader>\n\t\t\t\t<SideModalBody\n\t\t\t\t\thideFooter={props.hideFooter}\n\t\t\t\t\tbodyStyle={{\n\t\t\t\t\t\t...props.bodyStyle,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{props.children}{' '}\n\t\t\t\t</SideModalBody>\n\t\t\t\t{props.hideFooter === true ? null : (\n\t\t\t\t\t<SideModalFooter\n\t\t\t\t\t\tfooterDirection={props.footerDirection}\n\t\t\t\t\t\tfooterStyle={{\n\t\t\t\t\t\t\t...props.footerStyle,\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{(props.saveButtonProps || props.cancelButtonProps) && (\n\t\t\t\t\t\t\t<FooterButtonWrapper footerDirection={props.footerDirection}>\n\t\t\t\t\t\t\t\t{props.saveButtonProps && <Button {...props.saveButtonProps} />}\n\t\t\t\t\t\t\t\t{props.cancelButtonProps && (\n\t\t\t\t\t\t\t\t\t<Button {...props.cancelButtonProps} />\n\t\t\t\t\t\t\t\t)}{' '}\n\t\t\t\t\t\t\t</FooterButtonWrapper>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{props.footerCustomComponent ? props.footerCustomComponent : <></>}{' '}\n\t\t\t\t\t</SideModalFooter>\n\t\t\t\t)}{' '}\n\t\t\t</SideModalContainer>\n\t\t</SideModalStyle>,\n\t\tprops.element ?? document.body,\n\t);\n};\n"],"names":["SideModal","props","closeOnEscapeKey","onClose","useEffect","handleEscapeKey","event","ReactDOM","jsx","SideModalStyle","jsxs","SideModalContainer","SideModalHeader","TitleMedium","CrossIcon","SideModalBody","SideModalFooter","FooterButtonWrapper","Button","Fragment"],"mappings":";;;;;;;AAmCO,MAAMA,IAAsC,CAACC,MAAU;AAC7D,QAAM,EAAE,kBAAAC,GAAkB,SAAAC,EAAA,IAAYF;AAGtC,SAAAG,EAAU,MAAM;AAIf,QAAI,EADkBF,KAAoB,IACtB;AAEpB,UAAMG,IAAkB,CAACC,MAAyB;AACjD,MAAIA,EAAM,QAAQ,YAElBH,EAAA;AAAA,IACD;AAEA,oBAAS,iBAAiB,WAAWE,CAAe,GAE7C,MAAM;AACZ,eAAS,oBAAoB,WAAWA,CAAe;AAAA,IACxD;AAAA,EACD,GAAG,CAACH,GAAkBC,CAAO,CAAC,GAEvBI,EAAS;AAAA,IACf,gBAAAC,EAACC,KAAe,QAAQR,EAAM,QAC7B,UAAA,gBAAAS,EAACC,GAAA,EAAmB,OAAOV,EAAM,OAChC,UAAA;AAAA,MAAA,gBAAAS;AAAA,QAACE;AAAA,QAAA;AAAA,UACA,aAAa;AAAA,YACZ,GAAGX,EAAM;AAAA,UAAA;AAAA,UAGT,UAAA;AAAA,YAAAA,GAAO,yBACP,gBAAAO,EAACK,GAAA,EAAa,UAAAZ,EAAM,QAAO;AAAA,YAE3B,CAACA,EAAM,mBACP,gBAAAO;AAAA,cAACM;AAAAA,cAAA;AAAA,gBACA,OAAO;AAAA,gBACP,QAAQ;AAAA,gBACR,SAASb,EAAM;AAAA,gBACf,aAAU;AAAA,cAAA;AAAA,YAAA;AAAA,YAET;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEJ,gBAAAS;AAAA,QAACK;AAAA,QAAA;AAAA,UACA,YAAYd,EAAM;AAAA,UAClB,WAAW;AAAA,YACV,GAAGA,EAAM;AAAA,UAAA;AAAA,UAGT,UAAA;AAAA,YAAAA,EAAM;AAAA,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjBA,EAAM,eAAe,KAAO,OAC5B,gBAAAS;AAAA,QAACM;AAAA,QAAA;AAAA,UACA,iBAAiBf,EAAM;AAAA,UACvB,aAAa;AAAA,YACZ,GAAGA,EAAM;AAAA,UAAA;AAAA,UAGR,UAAA;AAAA,aAAAA,EAAM,mBAAmBA,EAAM,wCAC/BgB,GAAA,EAAoB,iBAAiBhB,EAAM,iBAC1C,UAAA;AAAA,cAAAA,EAAM,mBAAmB,gBAAAO,EAACU,GAAA,EAAQ,GAAGjB,EAAM,iBAAiB;AAAA,cAC5DA,EAAM,qBACN,gBAAAO,EAACU,GAAA,EAAQ,GAAGjB,EAAM,mBAAmB;AAAA,cACnC;AAAA,YAAA,GACJ;AAAA,YAEAA,EAAM,wBAAwBA,EAAM,wBAAwB,gBAAAO,EAAAW,GAAA,EAAE;AAAA,YAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAEnE;AAAA,IAAA,EAAA,CACJ,EAAA,CACD;AAAA,IACAlB,EAAM,WAAW,SAAS;AAAA,EAAA;AAE5B;"}
@@ -10,4 +10,5 @@ export declare const Star: React.FC<{
10
10
  asHovered?: boolean;
11
11
  mode?: 'VIEW' | 'EDIT';
12
12
  version?: 'v1' | 'v2';
13
+ 'data-testid'?: string;
13
14
  }>;
@@ -1,30 +1,32 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import p, { useState as v, useEffect as f } from "react";
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import d, { useState as v, useEffect as E } from "react";
3
3
  import { COLORS as u } from "../../constants/Theme.js";
4
4
  import S from "../../assets/icons/starEmpty.svg.js";
5
5
  import M from "../../assets/icons/starFilled.svg.js";
6
6
  import V from "../../assets/icons/starFilledV2.svg.js";
7
- const I = (t) => t === "v1" ? M : V, L = ({
7
+ const W = (t) => t === "v1" ? M : V, k = ({
8
8
  size: t,
9
- filled: E,
10
- emptyColor: g,
11
- filledColor: a,
9
+ filled: g,
10
+ emptyColor: h,
11
+ filledColor: s,
12
12
  onClick: o,
13
- asHovered: s,
14
- onHover: h,
13
+ asHovered: i,
14
+ onHover: p,
15
15
  mode: e,
16
- version: l = "v1"
16
+ version: f = "v1",
17
+ "data-testid": n
17
18
  }) => {
18
19
  const [c, r] = v(!1);
19
- f(() => {
20
- h?.(c);
21
- }, [c]), f(() => {
22
- s || r(!1);
23
- }, [s]);
24
- const i = p.useMemo(() => I(l), [l]);
25
- return s ? /* @__PURE__ */ n(
26
- i,
20
+ E(() => {
21
+ p?.(c);
22
+ }, [c]), E(() => {
23
+ i || r(!1);
24
+ }, [i]);
25
+ const l = d.useMemo(() => W(f), [f]);
26
+ return i ? /* @__PURE__ */ a(
27
+ l,
27
28
  {
29
+ "data-testid": n,
28
30
  onClick: () => {
29
31
  o?.("select");
30
32
  },
@@ -33,11 +35,12 @@ const I = (t) => t === "v1" ? M : V, L = ({
33
35
  style: { cursor: "pointer" },
34
36
  width: t,
35
37
  height: t,
36
- color: a ?? u.background.warning.vibrant
38
+ color: s ?? u.background.warning.vibrant
37
39
  }
38
- ) : c ? /* @__PURE__ */ n(
39
- i,
40
+ ) : c ? /* @__PURE__ */ a(
41
+ l,
40
42
  {
43
+ "data-testid": n,
41
44
  onMouseLeave: () => r(!1),
42
45
  onMouseEnter: () => r(!0),
43
46
  style: { cursor: "pointer" },
@@ -46,11 +49,12 @@ const I = (t) => t === "v1" ? M : V, L = ({
46
49
  },
47
50
  width: t,
48
51
  height: t,
49
- color: a ?? u.background.warning.vibrant
52
+ color: s ?? u.background.warning.vibrant
50
53
  }
51
- ) : E ? /* @__PURE__ */ n(
52
- i,
54
+ ) : g ? /* @__PURE__ */ a(
55
+ l,
53
56
  {
57
+ "data-testid": n,
54
58
  onMouseEnter: () => e !== "VIEW" && r(!0),
55
59
  onMouseLeave: () => e !== "VIEW" && r(!1),
56
60
  style: { cursor: e !== "VIEW" ? "pointer" : "default" },
@@ -59,11 +63,12 @@ const I = (t) => t === "v1" ? M : V, L = ({
59
63
  },
60
64
  width: t,
61
65
  height: t,
62
- color: a ?? u.background.warning.vibrant
66
+ color: s ?? u.background.warning.vibrant
63
67
  }
64
- ) : /* @__PURE__ */ n(
68
+ ) : /* @__PURE__ */ a(
65
69
  S,
66
70
  {
71
+ "data-testid": n,
67
72
  onMouseEnter: () => e !== "VIEW" && r(!0),
68
73
  onMouseLeave: () => e !== "VIEW" && r(!1),
69
74
  style: { cursor: e !== "VIEW" ? "pointer" : "default" },
@@ -72,11 +77,11 @@ const I = (t) => t === "v1" ? M : V, L = ({
72
77
  },
73
78
  width: t,
74
79
  height: t,
75
- color: g ?? u.surface.standard
80
+ color: h ?? u.surface.standard
76
81
  }
77
82
  );
78
83
  };
79
84
  export {
80
- L as Star
85
+ k as Star
81
86
  };
82
87
  //# sourceMappingURL=Star.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Star.js","sources":["../../../../src/components/star-rating/Star.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { COLORS } from '@src/constants/Theme';\nimport StarEmpty from '../../assets/icons/starEmpty.svg';\nimport StarFilledV1 from '../../assets/icons/starFilled.svg';\nimport StarFilledV2 from '../../assets/icons/starFilledV2.svg';\n\nconst GetStar = (version: 'v1' | 'v2') => {\n\tif (version === 'v1') {\n\t\treturn StarFilledV1;\n\t}\n\treturn StarFilledV2;\n};\n\nexport const Star: React.FC<{\n\tfilled?: boolean;\n\tsize?: number;\n\temptyColor?: string;\n\tfilledColor?: string;\n\tonClick?: (action: 'de-select' | 'select') => void;\n\tonHover?: (hovered: boolean) => void;\n\t/** this means this star is hovered-active cause there is a star hovered after this */\n\tasHovered?: boolean;\n\tmode?: 'VIEW' | 'EDIT';\n\tversion?: 'v1' | 'v2';\n}> = ({\n\tsize,\n\tfilled,\n\temptyColor,\n\tfilledColor,\n\tonClick,\n\tasHovered,\n\tonHover,\n\tmode,\n\tversion = 'v1',\n}) => {\n\tconst [hovered, setHovered] = useState(false);\n\n\tuseEffect(() => {\n\t\tonHover?.(hovered);\n\t}, [hovered]);\n\n\tuseEffect(() => {\n\t\tif (!asHovered) {\n\t\t\tsetHovered(false);\n\t\t}\n\t}, [asHovered]);\n\n\tconst StarFilled = React.useMemo(() => GetStar(version), [version]);\n\n\tif (asHovered) {\n\t\treturn (\n\t\t\t<StarFilled\n\t\t\t\tonClick={() => {\n\t\t\t\t\tonClick?.('select');\n\t\t\t\t}}\n\t\t\t\tonMouseEnter={() => setHovered(true)}\n\t\t\t\tonMouseLeave={() => setHovered(false)}\n\t\t\t\tstyle={{ cursor: 'pointer' }}\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tcolor={filledColor ?? COLORS.background.warning.vibrant}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (hovered) {\n\t\treturn (\n\t\t\t<StarFilled\n\t\t\t\tonMouseLeave={() => setHovered(false)}\n\t\t\t\tonMouseEnter={() => setHovered(true)}\n\t\t\t\tstyle={{ cursor: 'pointer' }}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tonClick?.('select');\n\t\t\t\t}}\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tcolor={filledColor ?? COLORS.background.warning.vibrant}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (filled) {\n\t\treturn (\n\t\t\t<StarFilled\n\t\t\t\tonMouseEnter={() => mode !== 'VIEW' && setHovered(true)}\n\t\t\t\tonMouseLeave={() => mode !== 'VIEW' && setHovered(false)}\n\t\t\t\tstyle={{ cursor: mode !== 'VIEW' ? 'pointer' : 'default' }}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tmode !== 'VIEW' && onClick?.('de-select');\n\t\t\t\t}}\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tcolor={filledColor ?? COLORS.background.warning.vibrant}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<StarEmpty\n\t\t\tonMouseEnter={() => mode !== 'VIEW' && setHovered(true)}\n\t\t\tonMouseLeave={() => mode !== 'VIEW' && setHovered(false)}\n\t\t\tstyle={{ cursor: mode !== 'VIEW' ? 'pointer' : 'default' }}\n\t\t\tonClick={() => {\n\t\t\t\tmode !== 'VIEW' && onClick?.('select');\n\t\t\t}}\n\t\t\twidth={size}\n\t\t\theight={size}\n\t\t\tcolor={emptyColor ?? COLORS.surface.standard}\n\t\t/>\n\t);\n};\n"],"names":["GetStar","version","StarFilledV1","StarFilledV2","Star","size","filled","emptyColor","filledColor","onClick","asHovered","onHover","mode","hovered","setHovered","useState","useEffect","StarFilled","React","jsx","COLORS","StarEmpty"],"mappings":";;;;;;AAMA,MAAMA,IAAU,CAACC,MACZA,MAAY,OACRC,IAEDC,GAGKC,IAWR,CAAC;AAAA,EACL,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAX,IAAU;AACX,MAAM;AACL,QAAM,CAACY,GAASC,CAAU,IAAIC,EAAS,EAAK;AAE5C,EAAAC,EAAU,MAAM;AACf,IAAAL,IAAUE,CAAO;AAAA,EAClB,GAAG,CAACA,CAAO,CAAC,GAEZG,EAAU,MAAM;AACf,IAAKN,KACJI,EAAW,EAAK;AAAA,EAElB,GAAG,CAACJ,CAAS,CAAC;AAEd,QAAMO,IAAaC,EAAM,QAAQ,MAAMlB,EAAQC,CAAO,GAAG,CAACA,CAAO,CAAC;AAElE,SAAIS,IAEF,gBAAAS;AAAA,IAACF;AAAA,IAAA;AAAA,MACA,SAAS,MAAM;AACd,QAAAR,IAAU,QAAQ;AAAA,MACnB;AAAA,MACA,cAAc,MAAMK,EAAW,EAAI;AAAA,MACnC,cAAc,MAAMA,EAAW,EAAK;AAAA,MACpC,OAAO,EAAE,QAAQ,UAAA;AAAA,MACjB,OAAOT;AAAA,MACP,QAAQA;AAAA,MACR,OAAOG,KAAeY,EAAO,WAAW,QAAQ;AAAA,IAAA;AAAA,EAAA,IAK/CP,IAEF,gBAAAM;AAAA,IAACF;AAAA,IAAA;AAAA,MACA,cAAc,MAAMH,EAAW,EAAK;AAAA,MACpC,cAAc,MAAMA,EAAW,EAAI;AAAA,MACnC,OAAO,EAAE,QAAQ,UAAA;AAAA,MACjB,SAAS,MAAM;AACd,QAAAL,IAAU,QAAQ;AAAA,MACnB;AAAA,MACA,OAAOJ;AAAA,MACP,QAAQA;AAAA,MACR,OAAOG,KAAeY,EAAO,WAAW,QAAQ;AAAA,IAAA;AAAA,EAAA,IAK/Cd,IAEF,gBAAAa;AAAA,IAACF;AAAA,IAAA;AAAA,MACA,cAAc,MAAML,MAAS,UAAUE,EAAW,EAAI;AAAA,MACtD,cAAc,MAAMF,MAAS,UAAUE,EAAW,EAAK;AAAA,MACvD,OAAO,EAAE,QAAQF,MAAS,SAAS,YAAY,UAAA;AAAA,MAC/C,SAAS,MAAM;AACd,QAAAA,MAAS,UAAUH,IAAU,WAAW;AAAA,MACzC;AAAA,MACA,OAAOJ;AAAA,MACP,QAAQA;AAAA,MACR,OAAOG,KAAeY,EAAO,WAAW,QAAQ;AAAA,IAAA;AAAA,EAAA,IAMlD,gBAAAD;AAAA,IAACE;AAAAA,IAAA;AAAA,MACA,cAAc,MAAMT,MAAS,UAAUE,EAAW,EAAI;AAAA,MACtD,cAAc,MAAMF,MAAS,UAAUE,EAAW,EAAK;AAAA,MACvD,OAAO,EAAE,QAAQF,MAAS,SAAS,YAAY,UAAA;AAAA,MAC/C,SAAS,MAAM;AACd,QAAAA,MAAS,UAAUH,IAAU,QAAQ;AAAA,MACtC;AAAA,MACA,OAAOJ;AAAA,MACP,QAAQA;AAAA,MACR,OAAOE,KAAca,EAAO,QAAQ;AAAA,IAAA;AAAA,EAAA;AAGvC;"}
1
+ {"version":3,"file":"Star.js","sources":["../../../../src/components/star-rating/Star.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { COLORS } from '@src/constants/Theme';\nimport StarEmpty from '../../assets/icons/starEmpty.svg';\nimport StarFilledV1 from '../../assets/icons/starFilled.svg';\nimport StarFilledV2 from '../../assets/icons/starFilledV2.svg';\n\nconst GetStar = (version: 'v1' | 'v2') => {\n\tif (version === 'v1') {\n\t\treturn StarFilledV1;\n\t}\n\treturn StarFilledV2;\n};\n\nexport const Star: React.FC<{\n\tfilled?: boolean;\n\tsize?: number;\n\temptyColor?: string;\n\tfilledColor?: string;\n\tonClick?: (action: 'de-select' | 'select') => void;\n\tonHover?: (hovered: boolean) => void;\n\t/** this means this star is hovered-active cause there is a star hovered after this */\n\tasHovered?: boolean;\n\tmode?: 'VIEW' | 'EDIT';\n\tversion?: 'v1' | 'v2';\n\t'data-testid'?: string;\n}> = ({\n\tsize,\n\tfilled,\n\temptyColor,\n\tfilledColor,\n\tonClick,\n\tasHovered,\n\tonHover,\n\tmode,\n\tversion = 'v1',\n\t'data-testid': dataTestId,\n}) => {\n\tconst [hovered, setHovered] = useState(false);\n\n\tuseEffect(() => {\n\t\tonHover?.(hovered);\n\t}, [hovered]);\n\n\tuseEffect(() => {\n\t\tif (!asHovered) {\n\t\t\tsetHovered(false);\n\t\t}\n\t}, [asHovered]);\n\n\tconst StarFilled = React.useMemo(() => GetStar(version), [version]);\n\n\tif (asHovered) {\n\t\treturn (\n\t\t\t<StarFilled\n\t\t\t\tdata-testid={dataTestId}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tonClick?.('select');\n\t\t\t\t}}\n\t\t\t\tonMouseEnter={() => setHovered(true)}\n\t\t\t\tonMouseLeave={() => setHovered(false)}\n\t\t\t\tstyle={{ cursor: 'pointer' }}\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tcolor={filledColor ?? COLORS.background.warning.vibrant}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (hovered) {\n\t\treturn (\n\t\t\t<StarFilled\n\t\t\t\tdata-testid={dataTestId}\n\t\t\t\tonMouseLeave={() => setHovered(false)}\n\t\t\t\tonMouseEnter={() => setHovered(true)}\n\t\t\t\tstyle={{ cursor: 'pointer' }}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tonClick?.('select');\n\t\t\t\t}}\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tcolor={filledColor ?? COLORS.background.warning.vibrant}\n\t\t\t/>\n\t\t);\n\t}\n\n\tif (filled) {\n\t\treturn (\n\t\t\t<StarFilled\n\t\t\t\tdata-testid={dataTestId}\n\t\t\t\tonMouseEnter={() => mode !== 'VIEW' && setHovered(true)}\n\t\t\t\tonMouseLeave={() => mode !== 'VIEW' && setHovered(false)}\n\t\t\t\tstyle={{ cursor: mode !== 'VIEW' ? 'pointer' : 'default' }}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tmode !== 'VIEW' && onClick?.('de-select');\n\t\t\t\t}}\n\t\t\t\twidth={size}\n\t\t\t\theight={size}\n\t\t\t\tcolor={filledColor ?? COLORS.background.warning.vibrant}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<StarEmpty\n\t\t\tdata-testid={dataTestId}\n\t\t\tonMouseEnter={() => mode !== 'VIEW' && setHovered(true)}\n\t\t\tonMouseLeave={() => mode !== 'VIEW' && setHovered(false)}\n\t\t\tstyle={{ cursor: mode !== 'VIEW' ? 'pointer' : 'default' }}\n\t\t\tonClick={() => {\n\t\t\t\tmode !== 'VIEW' && onClick?.('select');\n\t\t\t}}\n\t\t\twidth={size}\n\t\t\theight={size}\n\t\t\tcolor={emptyColor ?? COLORS.surface.standard}\n\t\t/>\n\t);\n};\n"],"names":["GetStar","version","StarFilledV1","StarFilledV2","Star","size","filled","emptyColor","filledColor","onClick","asHovered","onHover","mode","dataTestId","hovered","setHovered","useState","useEffect","StarFilled","React","jsx","COLORS","StarEmpty"],"mappings":";;;;;;AAMA,MAAMA,IAAU,CAACC,MACZA,MAAY,OACRC,IAEDC,GAGKC,IAYR,CAAC;AAAA,EACL,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAX,IAAU;AAAA,EACV,eAAeY;AAChB,MAAM;AACL,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAK;AAE5C,EAAAC,EAAU,MAAM;AACf,IAAAN,IAAUG,CAAO;AAAA,EAClB,GAAG,CAACA,CAAO,CAAC,GAEZG,EAAU,MAAM;AACf,IAAKP,KACJK,EAAW,EAAK;AAAA,EAElB,GAAG,CAACL,CAAS,CAAC;AAEd,QAAMQ,IAAaC,EAAM,QAAQ,MAAMnB,EAAQC,CAAO,GAAG,CAACA,CAAO,CAAC;AAElE,SAAIS,IAEF,gBAAAU;AAAA,IAACF;AAAA,IAAA;AAAA,MACA,eAAaL;AAAA,MACb,SAAS,MAAM;AACd,QAAAJ,IAAU,QAAQ;AAAA,MACnB;AAAA,MACA,cAAc,MAAMM,EAAW,EAAI;AAAA,MACnC,cAAc,MAAMA,EAAW,EAAK;AAAA,MACpC,OAAO,EAAE,QAAQ,UAAA;AAAA,MACjB,OAAOV;AAAA,MACP,QAAQA;AAAA,MACR,OAAOG,KAAea,EAAO,WAAW,QAAQ;AAAA,IAAA;AAAA,EAAA,IAK/CP,IAEF,gBAAAM;AAAA,IAACF;AAAA,IAAA;AAAA,MACA,eAAaL;AAAA,MACb,cAAc,MAAME,EAAW,EAAK;AAAA,MACpC,cAAc,MAAMA,EAAW,EAAI;AAAA,MACnC,OAAO,EAAE,QAAQ,UAAA;AAAA,MACjB,SAAS,MAAM;AACd,QAAAN,IAAU,QAAQ;AAAA,MACnB;AAAA,MACA,OAAOJ;AAAA,MACP,QAAQA;AAAA,MACR,OAAOG,KAAea,EAAO,WAAW,QAAQ;AAAA,IAAA;AAAA,EAAA,IAK/Cf,IAEF,gBAAAc;AAAA,IAACF;AAAA,IAAA;AAAA,MACA,eAAaL;AAAA,MACb,cAAc,MAAMD,MAAS,UAAUG,EAAW,EAAI;AAAA,MACtD,cAAc,MAAMH,MAAS,UAAUG,EAAW,EAAK;AAAA,MACvD,OAAO,EAAE,QAAQH,MAAS,SAAS,YAAY,UAAA;AAAA,MAC/C,SAAS,MAAM;AACd,QAAAA,MAAS,UAAUH,IAAU,WAAW;AAAA,MACzC;AAAA,MACA,OAAOJ;AAAA,MACP,QAAQA;AAAA,MACR,OAAOG,KAAea,EAAO,WAAW,QAAQ;AAAA,IAAA;AAAA,EAAA,IAMlD,gBAAAD;AAAA,IAACE;AAAAA,IAAA;AAAA,MACA,eAAaT;AAAA,MACb,cAAc,MAAMD,MAAS,UAAUG,EAAW,EAAI;AAAA,MACtD,cAAc,MAAMH,MAAS,UAAUG,EAAW,EAAK;AAAA,MACvD,OAAO,EAAE,QAAQH,MAAS,SAAS,YAAY,UAAA;AAAA,MAC/C,SAAS,MAAM;AACd,QAAAA,MAAS,UAAUH,IAAU,QAAQ;AAAA,MACtC;AAAA,MACA,OAAOJ;AAAA,MACP,QAAQA;AAAA,MACR,OAAOE,KAAcc,EAAO,QAAQ;AAAA,IAAA;AAAA,EAAA;AAGvC;"}
@@ -1,4 +1,4 @@
1
- import { jsx as a } from "react/jsx-runtime";
1
+ import { jsx as i } from "react/jsx-runtime";
2
2
  import { useState as n, useMemo as j, useEffect as f } from "react";
3
3
  import C from "styled-components";
4
4
  import { Star as M } from "./Star.js";
@@ -13,34 +13,35 @@ const k = C.div`
13
13
  filledColor: m,
14
14
  onChange: p,
15
15
  value: u,
16
- maxValue: l,
17
- starSize: v,
18
- mode: d,
16
+ maxValue: a,
17
+ starSize: d,
18
+ mode: v,
19
19
  version: S = "v1"
20
20
  }) => {
21
- const [t, o] = n(u ?? 0), [g, y] = n(!1), [s, i] = n(0), H = j(() => Array(l ?? 5).fill(null).map((r, h) => h + 1), [l]);
21
+ const [e, s] = n(u ?? 0), [g, y] = n(!1), [o, l] = n(0), H = j(() => Array(a ?? 5).fill(null).map((r, h) => h + 1), [a]);
22
22
  return f(() => {
23
- g && p(t);
24
- }, [t]), f(() => {
23
+ g && p(e);
24
+ }, [e]), f(() => {
25
25
  y(!0);
26
- }, []), /* @__PURE__ */ a(k, { children: H.map((e) => /* @__PURE__ */ a(
26
+ }, []), /* @__PURE__ */ i(k, { children: H.map((t) => /* @__PURE__ */ i(
27
27
  M,
28
28
  {
29
- asHovered: s ? e <= s : !1,
30
- size: v ?? 24,
31
- filled: s ? void 0 : e <= t,
29
+ asHovered: o ? t <= o : !1,
30
+ size: d ?? 24,
31
+ filled: o ? void 0 : t <= e,
32
32
  emptyColor: c,
33
33
  filledColor: m,
34
34
  onClick: (r) => {
35
- r === "de-select" ? e < t ? o(e) : o(e - 1) : o(e);
35
+ r === "de-select" ? t < e ? s(t) : s(t - 1) : s(t);
36
36
  },
37
37
  onHover: (r) => {
38
- i(r ? e : 0);
38
+ l(r ? t : 0);
39
39
  },
40
- mode: d,
41
- version: S
40
+ mode: v,
41
+ version: S,
42
+ "data-testid": `star-${t}`
42
43
  },
43
- e
44
+ t
44
45
  )) });
45
46
  };
46
47
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"StarRating.js","sources":["../../../../src/components/star-rating/StarRating.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\nimport { Star } from './Star';\n\nconst Container = styled.div`\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: 12px;\n\tjustify-content: start;\n\talign-items: center;\n`;\n\nexport const StarRating: React.FC<{\n\temptyColor?: string;\n\tfilledColor?: string;\n\tonChange: (stars: number) => void;\n\tvalue?: number;\n\tmaxValue?: number;\n\tstarSize?: number;\n\tmode?: 'VIEW' | 'EDIT';\n\tversion?: 'v1' | 'v2';\n}> = ({\n\temptyColor,\n\tfilledColor,\n\tonChange,\n\tvalue,\n\tmaxValue,\n\tstarSize,\n\tmode,\n\tversion = 'v1',\n}) => {\n\tconst [stars, setStars] = useState(value ?? 0);\n\tconst [mounted, setMountedFlag] = useState(false);\n\tconst [hoveredStar, setHoveredStar] = useState(0);\n\n\tconst arr = useMemo(() => {\n\t\tconst limit = maxValue ?? 5;\n\t\treturn Array(limit)\n\t\t\t.fill(null)\n\t\t\t.map((_, idx) => idx + 1);\n\t}, [maxValue]);\n\n\tuseEffect(() => {\n\t\tif (mounted) {\n\t\t\tonChange(stars);\n\t\t}\n\t}, [stars]);\n\n\tuseEffect(() => {\n\t\tsetMountedFlag(true);\n\t}, []);\n\n\treturn (\n\t\t<Container>\n\t\t\t{arr.map((idx) => (\n\t\t\t\t<Star\n\t\t\t\t\tasHovered={hoveredStar ? idx <= hoveredStar : false}\n\t\t\t\t\tkey={idx}\n\t\t\t\t\tsize={starSize ?? 24}\n\t\t\t\t\tfilled={hoveredStar ? undefined : idx <= stars}\n\t\t\t\t\temptyColor={emptyColor}\n\t\t\t\t\tfilledColor={filledColor}\n\t\t\t\t\tonClick={(action) => {\n\t\t\t\t\t\tif (action === 'de-select') {\n\t\t\t\t\t\t\tif (idx < stars) {\n\t\t\t\t\t\t\t\tsetStars(idx);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetStars(idx - 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetStars(idx);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tonHover={(hovered) => {\n\t\t\t\t\t\tif (hovered) setHoveredStar(idx);\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsetHoveredStar(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tmode={mode}\n\t\t\t\t\tversion={version}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</Container>\n\t);\n};\n"],"names":["Container","styled","StarRating","emptyColor","filledColor","onChange","value","maxValue","starSize","mode","version","stars","setStars","useState","mounted","setMountedFlag","hoveredStar","setHoveredStar","arr","useMemo","_","idx","useEffect","jsx","Star","action","hovered"],"mappings":";;;;AAIA,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQZC,IASR,CAAC;AAAA,EACL,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AACX,MAAM;AACL,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAASP,KAAS,CAAC,GACvC,CAACQ,GAASC,CAAc,IAAIF,EAAS,EAAK,GAC1C,CAACG,GAAaC,CAAc,IAAIJ,EAAS,CAAC,GAE1CK,IAAMC,EAAQ,MAEZ,MADOZ,KAAY,CACR,EAChB,KAAK,IAAI,EACT,IAAI,CAACa,GAAGC,MAAQA,IAAM,CAAC,GACvB,CAACd,CAAQ,CAAC;AAEb,SAAAe,EAAU,MAAM;AACf,IAAIR,KACHT,EAASM,CAAK;AAAA,EAEhB,GAAG,CAACA,CAAK,CAAC,GAEVW,EAAU,MAAM;AACf,IAAAP,EAAe,EAAI;AAAA,EACpB,GAAG,CAAA,CAAE,GAGJ,gBAAAQ,EAACvB,GAAA,EACC,UAAAkB,EAAI,IAAI,CAACG,MACT,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,WAAWR,IAAcK,KAAOL,IAAc;AAAA,MAE9C,MAAMR,KAAY;AAAA,MAClB,QAAQQ,IAAc,SAAYK,KAAOV;AAAA,MACzC,YAAAR;AAAA,MACA,aAAAC;AAAA,MACA,SAAS,CAACqB,MAAW;AACpB,QAAIA,MAAW,cACVJ,IAAMV,IACTC,EAASS,CAAG,IAEZT,EAASS,IAAM,CAAC,IAGjBT,EAASS,CAAG;AAAA,MAEd;AAAA,MACA,SAAS,CAACK,MAAY;AACrB,UAAIA,IAAwBL,IAEZ,CAFe;AAAA,MAIhC;AAAA,MACA,MAAAZ;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,IAvBKW;AAAA,EAAA,CAyBN,GACF;AAEF;"}
1
+ {"version":3,"file":"StarRating.js","sources":["../../../../src/components/star-rating/StarRating.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\nimport { Star } from './Star';\n\nconst Container = styled.div`\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: 12px;\n\tjustify-content: start;\n\talign-items: center;\n`;\n\nexport const StarRating: React.FC<{\n\temptyColor?: string;\n\tfilledColor?: string;\n\tonChange: (stars: number) => void;\n\tvalue?: number;\n\tmaxValue?: number;\n\tstarSize?: number;\n\tmode?: 'VIEW' | 'EDIT';\n\tversion?: 'v1' | 'v2';\n}> = ({\n\temptyColor,\n\tfilledColor,\n\tonChange,\n\tvalue,\n\tmaxValue,\n\tstarSize,\n\tmode,\n\tversion = 'v1',\n}) => {\n\tconst [stars, setStars] = useState(value ?? 0);\n\tconst [mounted, setMountedFlag] = useState(false);\n\tconst [hoveredStar, setHoveredStar] = useState(0);\n\n\tconst arr = useMemo(() => {\n\t\tconst limit = maxValue ?? 5;\n\t\treturn Array(limit)\n\t\t\t.fill(null)\n\t\t\t.map((_, idx) => idx + 1);\n\t}, [maxValue]);\n\n\tuseEffect(() => {\n\t\tif (mounted) {\n\t\t\tonChange(stars);\n\t\t}\n\t}, [stars]);\n\n\tuseEffect(() => {\n\t\tsetMountedFlag(true);\n\t}, []);\n\n\treturn (\n\t\t<Container>\n\t\t\t{arr.map((idx) => (\n\t\t\t\t<Star\n\t\t\t\t\tasHovered={hoveredStar ? idx <= hoveredStar : false}\n\t\t\t\t\tkey={idx}\n\t\t\t\t\tsize={starSize ?? 24}\n\t\t\t\t\tfilled={hoveredStar ? undefined : idx <= stars}\n\t\t\t\t\temptyColor={emptyColor}\n\t\t\t\t\tfilledColor={filledColor}\n\t\t\t\t\tonClick={(action) => {\n\t\t\t\t\t\tif (action === 'de-select') {\n\t\t\t\t\t\t\tif (idx < stars) {\n\t\t\t\t\t\t\t\tsetStars(idx);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tsetStars(idx - 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetStars(idx);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tonHover={(hovered) => {\n\t\t\t\t\t\tif (hovered) setHoveredStar(idx);\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tsetHoveredStar(0);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tmode={mode}\n\t\t\t\t\tversion={version}\n\t\t\t\t\tdata-testid={`star-${idx}`}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</Container>\n\t);\n};\n"],"names":["Container","styled","StarRating","emptyColor","filledColor","onChange","value","maxValue","starSize","mode","version","stars","setStars","useState","mounted","setMountedFlag","hoveredStar","setHoveredStar","arr","useMemo","_","idx","useEffect","jsx","Star","action","hovered"],"mappings":";;;;AAIA,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQZC,IASR,CAAC;AAAA,EACL,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAC,IAAU;AACX,MAAM;AACL,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAASP,KAAS,CAAC,GACvC,CAACQ,GAASC,CAAc,IAAIF,EAAS,EAAK,GAC1C,CAACG,GAAaC,CAAc,IAAIJ,EAAS,CAAC,GAE1CK,IAAMC,EAAQ,MAEZ,MADOZ,KAAY,CACR,EAChB,KAAK,IAAI,EACT,IAAI,CAACa,GAAGC,MAAQA,IAAM,CAAC,GACvB,CAACd,CAAQ,CAAC;AAEb,SAAAe,EAAU,MAAM;AACf,IAAIR,KACHT,EAASM,CAAK;AAAA,EAEhB,GAAG,CAACA,CAAK,CAAC,GAEVW,EAAU,MAAM;AACf,IAAAP,EAAe,EAAI;AAAA,EACpB,GAAG,CAAA,CAAE,GAGJ,gBAAAQ,EAACvB,GAAA,EACC,UAAAkB,EAAI,IAAI,CAACG,MACT,gBAAAE;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,WAAWR,IAAcK,KAAOL,IAAc;AAAA,MAE9C,MAAMR,KAAY;AAAA,MAClB,QAAQQ,IAAc,SAAYK,KAAOV;AAAA,MACzC,YAAAR;AAAA,MACA,aAAAC;AAAA,MACA,SAAS,CAACqB,MAAW;AACpB,QAAIA,MAAW,cACVJ,IAAMV,IACTC,EAASS,CAAG,IAEZT,EAASS,IAAM,CAAC,IAGjBT,EAASS,CAAG;AAAA,MAEd;AAAA,MACA,SAAS,CAACK,MAAY;AACrB,UAAIA,IAAwBL,IAEZ,CAFe;AAAA,MAIhC;AAAA,MACA,MAAAZ;AAAA,MACA,SAAAC;AAAA,MACA,eAAa,QAAQW,CAAG;AAAA,IAAA;AAAA,IAxBnBA;AAAA,EAAA,CA0BN,GACF;AAEF;"}