@cloudtower/eagle 490.0.8 → 490.0.10

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 (248) hide show
  1. package/dist/cjs/core/AccordionCard/index.js +4 -1
  2. package/dist/cjs/core/Alert/index.js +4 -2
  3. package/dist/cjs/core/Arch/index.js +5 -3
  4. package/dist/cjs/core/Avatar/index.js +3 -1
  5. package/dist/cjs/core/Banner/index.js +16 -3
  6. package/dist/cjs/core/BasicCTError/index.js +25 -12
  7. package/dist/cjs/core/Bit/index.js +4 -3
  8. package/dist/cjs/core/BitPerSecond/index.js +4 -3
  9. package/dist/cjs/core/BlankState/index.js +14 -12
  10. package/dist/cjs/core/Bps/index.js +4 -3
  11. package/dist/cjs/core/Breadcrumb/index.js +4 -1
  12. package/dist/cjs/core/ButtonGroup/index.js +3 -1
  13. package/dist/cjs/core/Byte/index.js +6 -5
  14. package/dist/cjs/core/BytePerSecond/index.js +4 -3
  15. package/dist/cjs/core/Card/index.js +7 -3
  16. package/dist/cjs/core/Checkbox/index.js +28 -2
  17. package/dist/cjs/core/ConfigProvider/index.js +1 -1
  18. package/dist/cjs/core/DetailCard/index.js +7 -3
  19. package/dist/cjs/core/DonutChart/index.js +3 -1
  20. package/dist/cjs/core/DropdownMenu/index.js +9 -4
  21. package/dist/cjs/core/Duration/index.js +7 -6
  22. package/dist/cjs/core/Empty/index.js +6 -3
  23. package/dist/cjs/core/Error/index.js +4 -1
  24. package/dist/cjs/core/FailedLoad/index.js +4 -1
  25. package/dist/cjs/core/Fields/FieldsBoolean/index.js +11 -2
  26. package/dist/cjs/core/Fields/FieldsDateTime/index.js +5 -1
  27. package/dist/cjs/core/Fields/FieldsDateTimeRange/index.js +6 -3
  28. package/dist/cjs/core/Fields/FieldsEnum/index.js +5 -3
  29. package/dist/cjs/core/Fields/FieldsFloat/index.js +6 -3
  30. package/dist/cjs/core/Fields/FieldsInt/index.js +6 -3
  31. package/dist/cjs/core/Fields/FieldsInteger/index.js +6 -3
  32. package/dist/cjs/core/Fields/FieldsString/index.js +14 -4
  33. package/dist/cjs/core/Fields/FieldsTextArea/index.js +6 -3
  34. package/dist/cjs/core/Fields/FieldsTimePicker/index.js +7 -4
  35. package/dist/cjs/core/FormItem/index.js +15 -1
  36. package/dist/cjs/core/Frequency/index.js +4 -3
  37. package/dist/cjs/core/ImmersiveDialog/index.js +15 -4
  38. package/dist/cjs/core/Input/index.js +15 -3
  39. package/dist/cjs/core/InputInteger/index.js +15 -3
  40. package/dist/cjs/core/InputNumber/index.js +15 -3
  41. package/dist/cjs/core/InputPassword/index.js +15 -3
  42. package/dist/cjs/core/LegacySelect/index.js +18 -4
  43. package/dist/cjs/core/LineChart/index.js +2 -0
  44. package/dist/cjs/core/LocalUpload/LocalUpload.js +45 -32
  45. package/dist/cjs/core/Metric/index.js +3 -1
  46. package/dist/cjs/core/Nav/index.js +5 -2
  47. package/dist/cjs/core/Pagination/index.js +7 -1
  48. package/dist/cjs/core/Percent/index.js +4 -3
  49. package/dist/cjs/core/Progress/index.js +5 -3
  50. package/dist/cjs/core/Radio/index.js +41 -9
  51. package/dist/cjs/core/Second/index.js +4 -2
  52. package/dist/cjs/core/SimplePagination/index.js +7 -1
  53. package/dist/cjs/core/SmallDialog/SmallDialog.js +10 -4
  54. package/dist/cjs/core/SmallDialog/SmallDialog.widget.js +1 -1
  55. package/dist/cjs/core/Speed/index.js +4 -3
  56. package/dist/cjs/core/StepProgress/index.js +3 -1
  57. package/dist/cjs/core/Switch/index.js +5 -3
  58. package/dist/cjs/core/Tab/Tab.js +8 -3
  59. package/dist/cjs/core/Table/index.js +4 -2
  60. package/dist/cjs/core/TextArea/index.js +21 -3
  61. package/dist/cjs/core/Time/index.js +9 -8
  62. package/dist/cjs/core/TimePicker/index.js +1 -9
  63. package/dist/cjs/core/TimeZoneSelect/index.js +3 -1
  64. package/dist/cjs/core/Timeline/index.js +74 -59
  65. package/dist/cjs/core/Truncate/index.js +3 -1
  66. package/dist/cjs/core/WizardDialog/index.js +9 -4
  67. package/dist/cjs/coreX/BarChart/index.js +2 -2
  68. package/dist/cjs/coreX/CheckPointList/index.js +2 -2
  69. package/dist/cjs/coreX/Dialogs/DeleteDialog/DeleteDialog.js +1 -1
  70. package/dist/cjs/coreX/Dialogs/RejectDialog/RejectDialog.js +1 -1
  71. package/dist/cjs/hooks/useAntdPatchEnLocales.js +1 -1
  72. package/dist/cjs/hooks/useCTErrorMsg.js +3 -3
  73. package/dist/cjs/stats1.html +1 -1
  74. package/dist/components.css +3438 -3438
  75. package/dist/esm/core/AccordionCard/index.js +4 -1
  76. package/dist/esm/core/Alert/index.js +4 -2
  77. package/dist/esm/core/Arch/index.js +5 -3
  78. package/dist/esm/core/Avatar/index.js +3 -1
  79. package/dist/esm/core/Banner/index.js +16 -3
  80. package/dist/esm/core/BasicCTError/index.js +25 -12
  81. package/dist/esm/core/Bit/index.js +4 -3
  82. package/dist/esm/core/BitPerSecond/index.js +4 -3
  83. package/dist/esm/core/BlankState/index.js +14 -12
  84. package/dist/esm/core/Bps/index.js +4 -3
  85. package/dist/esm/core/Breadcrumb/index.js +4 -1
  86. package/dist/esm/core/ButtonGroup/index.js +3 -1
  87. package/dist/esm/core/Byte/index.js +6 -5
  88. package/dist/esm/core/BytePerSecond/index.js +4 -3
  89. package/dist/esm/core/Card/index.js +7 -3
  90. package/dist/esm/core/Checkbox/index.js +29 -3
  91. package/dist/esm/core/ConfigProvider/index.js +1 -1
  92. package/dist/esm/core/DetailCard/index.js +7 -3
  93. package/dist/esm/core/DonutChart/index.js +3 -1
  94. package/dist/esm/core/DropdownMenu/index.js +9 -4
  95. package/dist/esm/core/Duration/index.js +7 -6
  96. package/dist/esm/core/Empty/index.js +6 -3
  97. package/dist/esm/core/Error/index.js +4 -1
  98. package/dist/esm/core/FailedLoad/index.js +4 -1
  99. package/dist/esm/core/Fields/FieldsBoolean/index.js +11 -2
  100. package/dist/esm/core/Fields/FieldsDateTime/index.js +5 -1
  101. package/dist/esm/core/Fields/FieldsDateTimeRange/index.js +6 -3
  102. package/dist/esm/core/Fields/FieldsEnum/index.js +5 -3
  103. package/dist/esm/core/Fields/FieldsFloat/index.js +6 -3
  104. package/dist/esm/core/Fields/FieldsInt/index.js +6 -3
  105. package/dist/esm/core/Fields/FieldsInteger/index.js +6 -3
  106. package/dist/esm/core/Fields/FieldsString/index.js +14 -4
  107. package/dist/esm/core/Fields/FieldsTextArea/index.js +6 -3
  108. package/dist/esm/core/Fields/FieldsTimePicker/index.js +7 -4
  109. package/dist/esm/core/FormItem/index.js +15 -1
  110. package/dist/esm/core/Frequency/index.js +4 -3
  111. package/dist/esm/core/ImmersiveDialog/index.js +17 -6
  112. package/dist/esm/core/Input/index.js +15 -3
  113. package/dist/esm/core/InputInteger/index.js +15 -3
  114. package/dist/esm/core/InputNumber/index.js +15 -3
  115. package/dist/esm/core/InputPassword/index.js +15 -3
  116. package/dist/esm/core/LegacySelect/index.js +18 -4
  117. package/dist/esm/core/LineChart/index.js +2 -0
  118. package/dist/esm/core/LocalUpload/LocalUpload.js +45 -32
  119. package/dist/esm/core/Metric/index.js +3 -1
  120. package/dist/esm/core/Nav/index.js +5 -2
  121. package/dist/esm/core/Pagination/index.js +7 -1
  122. package/dist/esm/core/Percent/index.js +4 -3
  123. package/dist/esm/core/Progress/index.js +5 -3
  124. package/dist/esm/core/Radio/index.js +42 -10
  125. package/dist/esm/core/Second/index.js +4 -2
  126. package/dist/esm/core/SimplePagination/index.js +7 -1
  127. package/dist/esm/core/SmallDialog/SmallDialog.js +10 -4
  128. package/dist/esm/core/SmallDialog/SmallDialog.widget.js +1 -1
  129. package/dist/esm/core/Speed/index.js +4 -3
  130. package/dist/esm/core/StepProgress/index.js +3 -1
  131. package/dist/esm/core/Switch/index.js +5 -3
  132. package/dist/esm/core/Tab/Tab.js +8 -3
  133. package/dist/esm/core/Table/index.js +4 -2
  134. package/dist/esm/core/TextArea/index.js +21 -3
  135. package/dist/esm/core/Time/index.js +9 -8
  136. package/dist/esm/core/TimePicker/index.js +1 -9
  137. package/dist/esm/core/TimeZoneSelect/index.js +3 -1
  138. package/dist/esm/core/Timeline/index.js +74 -59
  139. package/dist/esm/core/Truncate/index.js +3 -1
  140. package/dist/esm/core/WizardDialog/index.js +9 -4
  141. package/dist/esm/coreX/BarChart/index.js +1 -1
  142. package/dist/esm/coreX/CheckPointList/index.js +1 -1
  143. package/dist/esm/coreX/Dialogs/DeleteDialog/DeleteDialog.js +1 -1
  144. package/dist/esm/coreX/Dialogs/RejectDialog/RejectDialog.js +1 -1
  145. package/dist/esm/hooks/useAntdPatchEnLocales.js +1 -1
  146. package/dist/esm/hooks/useCTErrorMsg.js +3 -3
  147. package/dist/esm/stats1.html +1 -1
  148. package/dist/linaria.merged.scss +4378 -4378
  149. package/dist/src/core/AccordionCard/accordionCard.type.d.ts +1 -0
  150. package/dist/src/core/Alert/alert.type.d.ts +1 -0
  151. package/dist/src/core/Antd5Flex/index.d.ts +1 -1
  152. package/dist/src/core/Arch/arch.type.d.ts +1 -0
  153. package/dist/src/core/AutoComplete/AutoComplete.d.ts +4 -1
  154. package/dist/src/core/Avatar/avatar.type.d.ts +1 -0
  155. package/dist/src/core/Banner/banner.types.d.ts +2 -1
  156. package/dist/src/core/BasicCTError/BasicCTError.type.d.ts +8 -2
  157. package/dist/src/core/BlankState/index.d.ts +1 -1
  158. package/dist/src/core/BlankState/type.d.ts +1 -0
  159. package/dist/src/core/Breadcrumb/breadcrumb.type.d.ts +2 -0
  160. package/dist/src/core/Button/button.type.d.ts +1 -0
  161. package/dist/src/core/Card/index.d.ts +8 -0
  162. package/dist/src/core/Cascader/cascader.type.d.ts +2 -0
  163. package/dist/src/core/Checkbox/index.d.ts +1 -1
  164. package/dist/src/core/DetailCard/detailCard.type.d.ts +1 -0
  165. package/dist/src/core/DonutChart/index.d.ts +1 -0
  166. package/dist/src/core/DropdownMenu/dropdownMenu.type.d.ts +2 -0
  167. package/dist/src/core/DropdownMenu/index.d.ts +1 -0
  168. package/dist/src/core/Duration/duration.type.d.ts +11 -3
  169. package/dist/src/core/Empty/index.d.ts +2 -1
  170. package/dist/src/core/Error/index.d.ts +2 -1
  171. package/dist/src/core/FailedLoad/index.d.ts +1 -0
  172. package/dist/src/core/Fields/FieldsBoolean/index.d.ts +1 -1
  173. package/dist/src/core/Fields/FieldsDateTime/index.d.ts +1 -1
  174. package/dist/src/core/Fields/FieldsEnum/fieldsEnum.type.d.ts +1 -0
  175. package/dist/src/core/Fields/FieldsEnum/index.d.ts +1 -1
  176. package/dist/src/core/Fields/FieldsFloat/index.d.ts +1 -1
  177. package/dist/src/core/Fields/FieldsInt/index.d.ts +1 -1
  178. package/dist/src/core/Fields/FieldsInteger/index.d.ts +1 -1
  179. package/dist/src/core/Fields/FieldsString/index.d.ts +1 -1
  180. package/dist/src/core/Fields/FieldsTextArea/index.d.ts +1 -1
  181. package/dist/src/core/Fields/FieldsTimePicker/index.d.ts +1 -1
  182. package/dist/src/core/Fields/__test__/data-testid.test.d.ts +1 -0
  183. package/dist/src/core/Fields/fields.type.d.ts +2 -1
  184. package/dist/src/core/Fields/index.d.ts +13 -9
  185. package/dist/src/core/FormItem/index.d.ts +3 -1
  186. package/dist/src/core/ImmersiveDialog/type.d.ts +5 -0
  187. package/dist/src/core/Input/input.type.d.ts +5 -0
  188. package/dist/src/core/InputPassword/index.d.ts +7 -2
  189. package/dist/src/core/LegacySelect/select.type.d.ts +1 -0
  190. package/dist/src/core/Legend/legend.type.d.ts +2 -0
  191. package/dist/src/core/LineChart/type.d.ts +4 -0
  192. package/dist/src/core/LocalUpload/LocalUpload.type.d.ts +4 -0
  193. package/dist/src/core/Metric/index.d.ts +1 -0
  194. package/dist/src/core/Nav/nav.type.d.ts +2 -0
  195. package/dist/src/core/Pagination/pagination.type.d.ts +1 -0
  196. package/dist/src/core/Progress/progress.type.d.ts +4 -0
  197. package/dist/src/core/Radio/index.d.ts +3 -1
  198. package/dist/src/core/Radio/radio.type.d.ts +2 -0
  199. package/dist/src/core/SearchInput/SearchInput.type.d.ts +4 -0
  200. package/dist/src/core/SegmentControl/segmentControl.type.d.ts +2 -0
  201. package/dist/src/core/SimplePagination/simplePagination.type.d.ts +1 -0
  202. package/dist/src/core/SmallDialog/SmallDialog.type.d.ts +5 -0
  203. package/dist/src/core/SmallDialog/index.d.ts +1 -1
  204. package/dist/src/core/StepProgress/stepProgress.type.d.ts +1 -0
  205. package/dist/src/core/Steps/steps.type.d.ts +1 -0
  206. package/dist/src/core/Switch/switch.type.d.ts +1 -0
  207. package/dist/src/core/Tab/Tab.type.d.ts +4 -0
  208. package/dist/src/core/Table/table.type.d.ts +6 -2
  209. package/dist/src/core/TextArea/textArea.type.d.ts +1 -0
  210. package/dist/src/core/Time/index.d.ts +1 -1
  211. package/dist/src/core/Time/time.type.d.ts +5 -0
  212. package/dist/src/core/TimePicker/index.d.ts +2 -0
  213. package/dist/src/core/TimeZoneSelect/timeZoneSelect.type.d.ts +1 -0
  214. package/dist/src/core/Timeline/Timeline.type.d.ts +2 -0
  215. package/dist/src/core/Timeline/index.d.ts +1 -1
  216. package/dist/src/core/Truncate/index.d.ts +1 -0
  217. package/dist/src/core/Units/units.type.d.ts +10 -0
  218. package/dist/src/core/WizardDialog/type.d.ts +2 -0
  219. package/dist/src/core/__test__/data-testid.test.d.ts +1 -0
  220. package/dist/src/coreX/CheckPointList/checkpointlist.type.d.ts +1 -1
  221. package/dist/src/coreX/index.d.ts +1 -1
  222. package/dist/src/utils/index.d.ts +2 -2
  223. package/dist/stories/docs/core/Alert.stories.d.ts +1 -0
  224. package/dist/stories/docs/core/Arch.stories.d.ts +3 -0
  225. package/dist/stories/docs/core/AutoComplete.stories.d.ts +3 -1
  226. package/dist/stories/docs/core/Banner.stories.d.ts +2 -2
  227. package/dist/stories/docs/core/BasicCTError.stories.d.ts +1 -1
  228. package/dist/stories/docs/core/Bit.stories.d.ts +3 -0
  229. package/dist/stories/docs/core/BitPerSecond.stories.d.ts +3 -0
  230. package/dist/stories/docs/core/BlankState.stories.d.ts +1 -1
  231. package/dist/stories/docs/core/Bps.stories.d.ts +3 -0
  232. package/dist/stories/docs/core/Byte.stories.d.ts +3 -0
  233. package/dist/stories/docs/core/BytePerSecond.stories.d.ts +3 -0
  234. package/dist/stories/docs/core/Card.stories.d.ts +1 -0
  235. package/dist/stories/docs/core/FieldsBoolean.stories.d.ts +2 -0
  236. package/dist/stories/docs/core/FieldsString.stories.d.ts +4 -0
  237. package/dist/stories/docs/core/FieldsTimePicker.stories.d.ts +2 -0
  238. package/dist/stories/docs/core/Frequency.stories.d.ts +3 -0
  239. package/dist/stories/docs/core/ImmersiveDialog.stories.d.ts +1 -0
  240. package/dist/stories/docs/core/InputPassword.stories.d.ts +1 -3
  241. package/dist/stories/docs/core/Percent.stories.d.ts +5 -0
  242. package/dist/stories/docs/core/Speed.stories.d.ts +3 -0
  243. package/dist/stories/docs/core/Table.stories.d.ts +1 -1
  244. package/dist/stories/docs/core/Timeline.stories.d.ts +1 -1
  245. package/dist/stories/docs/core/WizardDialog.stories.d.ts +2 -0
  246. package/dist/stories/docs/coreX/KubeConfigModal.stories.d.ts +1 -1
  247. package/dist/style.css +3438 -3438
  248. package/package.json +4 -4
@@ -33,12 +33,15 @@ const AccordionCard = props => {
33
33
  className,
34
34
  defaultExpand = true,
35
35
  mountOnEnter,
36
- unmountOnExit
36
+ unmountOnExit,
37
+ "data-testid": dataTestId
37
38
  } = props;
38
39
  const [active, setActive] = useState(defaultExpand);
39
40
  return /* @__PURE__ */React__default.createElement(Card, {
41
+ "data-testid": dataTestId,
40
42
  className: cs(active && "active", className)
41
43
  }, /* @__PURE__ */React__default.createElement("header", {
44
+ "data-testid": dataTestId ? `${dataTestId}-header` : void 0,
42
45
  onClick: () => setActive(!active),
43
46
  className: "show-close"
44
47
  }, typeof header === "function" ? header(active) : header), /* @__PURE__ */React__default.createElement(DropdownTransition, {
@@ -46,9 +46,10 @@ const Alert = _a => {
46
46
  closeText,
47
47
  action,
48
48
  message,
49
- closable
49
+ closable,
50
+ "data-testid": dataTestId
50
51
  } = _b,
51
- props = __objRest(_b, ["type", "icon", "showIcon", "className", "onClose", "closeText", "action", "message", "closable"]);
52
+ props = __objRest(_b, ["type", "icon", "showIcon", "className", "onClose", "closeText", "action", "message", "closable", "data-testid"]);
52
53
  const _icon = /* @__PURE__ */React__default.createElement(Icon, {
53
54
  alt: type,
54
55
  src: getAlertIcon(type)
@@ -56,6 +57,7 @@ const Alert = _a => {
56
57
  const _type = type === "normal" ? "info" : type;
57
58
  const _closable = closable || Boolean(onClose) || Boolean(closeText);
58
59
  return /* @__PURE__ */React__default.createElement(Alert$2, __spreadProps(__spreadValues({}, props), {
60
+ "data-testid": dataTestId,
59
61
  className: cs(AlertStyle, type ? `alert-${type}` : "", className, {
60
62
  action
61
63
  }),
@@ -1,14 +1,16 @@
1
1
  import useParrotTranslation from '../../hooks/useParrotTranslation.js';
2
2
  import React__default from 'react';
3
3
 
4
- const Arch = (props) => {
4
+ const Arch = ({
5
+ architecture,
6
+ "data-testid": dataTestId
7
+ }) => {
5
8
  const { t } = useParrotTranslation();
6
- const { architecture } = props;
7
9
  let text = "";
8
10
  if (architecture) {
9
11
  text = t(`components.Architecture_${architecture}`);
10
12
  }
11
- return /* @__PURE__ */ React__default.createElement("span", null, text);
13
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, text);
12
14
  };
13
15
  var Arch$1 = Arch;
14
16
 
@@ -17,9 +17,11 @@ const AvatarWrapper = /*#__PURE__*/styled('span')({
17
17
  const Avatar = ({
18
18
  username,
19
19
  className,
20
- background = "light-blue"
20
+ background = "light-blue",
21
+ "data-testid": dataTestId
21
22
  }) => {
22
23
  return /* @__PURE__ */React__default.createElement(AvatarWrapper, {
24
+ "data-testid": dataTestId,
23
25
  background: Color.gradient[background] || background,
24
26
  className: cx(className, "user-icon btn-item")
25
27
  }, /* @__PURE__ */React__default.createElement("span", {
@@ -6,8 +6,13 @@ import React__default from 'react';
6
6
  import { BasicBanner, ErrorBanner, InfoBanner, WarningBanner } from './banner.style.js';
7
7
  import { Show } from '../../coreX/Show/index.js';
8
8
 
9
- const Banner = ({ message, type, btnProps }) => {
10
- return /* @__PURE__ */ React__default.createElement("div", { id: "global-banner" }, /* @__PURE__ */ React__default.createElement(
9
+ const Banner = ({
10
+ message,
11
+ type,
12
+ btnProps,
13
+ "data-testid": dataTestId
14
+ }) => {
15
+ return /* @__PURE__ */ React__default.createElement("div", { "data-testid": dataTestId, id: "global-banner" }, /* @__PURE__ */ React__default.createElement(
11
16
  "div",
12
17
  {
13
18
  className: cs(Typo.Label.l3_bold, BasicBanner, {
@@ -18,7 +23,15 @@ const Banner = ({ message, type, btnProps }) => {
18
23
  },
19
24
  /* @__PURE__ */ React__default.createElement(Icon, { src: InfoICircleFill16OntintIcon }),
20
25
  /* @__PURE__ */ React__default.createElement("span", null, message),
21
- /* @__PURE__ */ React__default.createElement(Show, { condition: !(btnProps == null ? void 0 : btnProps.hide) }, /* @__PURE__ */ React__default.createElement("span", { className: "dashed-btn", onClick: btnProps == null ? void 0 : btnProps.onClick }, btnProps == null ? void 0 : btnProps.text))
26
+ /* @__PURE__ */ React__default.createElement(Show, { condition: !(btnProps == null ? void 0 : btnProps.hide) }, /* @__PURE__ */ React__default.createElement(
27
+ "span",
28
+ {
29
+ className: "dashed-btn",
30
+ "data-testid": dataTestId ? `${dataTestId}-action` : void 0,
31
+ onClick: btnProps == null ? void 0 : btnProps.onClick
32
+ },
33
+ btnProps == null ? void 0 : btnProps.text
34
+ ))
22
35
  ));
23
36
  };
24
37
 
@@ -1,15 +1,19 @@
1
- import React__default, { useMemo } from 'react';
2
1
  import { cx } from '@linaria/core';
3
- import { BasicCTErrorStyle } from './BasicCTError.style.js';
4
- import { Typo } from '../Typo/index.js';
5
2
  import { useCTErrorMsg } from '../../hooks/useCTErrorMsg.js';
6
3
  import useParrotTranslation from '../../hooks/useParrotTranslation.js';
4
+ import React__default, { useMemo } from 'react';
5
+ import { Typo } from '../Typo/index.js';
6
+ import { BasicCTErrorStyle } from './BasicCTError.style.js';
7
7
 
8
- const defaultErrorContainerRender = ({
9
- children,
10
- className
11
- }) => {
12
- return /* @__PURE__ */ React__default.createElement("span", { className: cx(Typo.Label.l3_regular, BasicCTErrorStyle, className) }, children);
8
+ const defaultErrorContainerRender = ({ children, className, "data-testid": dataTestId }) => {
9
+ return /* @__PURE__ */ React__default.createElement(
10
+ "span",
11
+ {
12
+ "data-testid": dataTestId,
13
+ className: cx(Typo.Label.l3_regular, BasicCTErrorStyle, className)
14
+ },
15
+ children
16
+ );
13
17
  };
14
18
  const BasicCTError = (props) => {
15
19
  const {
@@ -17,18 +21,27 @@ const BasicCTError = (props) => {
17
21
  className,
18
22
  ErrorItemRender,
19
23
  ErrorContainerRender,
20
- errorMsgOptions
24
+ errorMsgOptions,
25
+ "data-testid": dataTestId
21
26
  } = props;
22
27
  const msgs = useCTErrorMsg(error, errorMsgOptions);
23
- const { t } = useParrotTranslation();
28
+ useParrotTranslation();
24
29
  const ContainerRender = ErrorContainerRender || defaultErrorContainerRender;
25
30
  const child = useMemo(() => {
26
31
  if (ErrorItemRender) {
27
32
  return msgs.map((errorMsg, index) => /* @__PURE__ */ React__default.createElement(ErrorItemRender, { errorMsg, index, key: index }));
28
33
  }
29
34
  return msgs.join("");
30
- }, [msgs, ErrorItemRender, t]);
31
- return /* @__PURE__ */ React__default.createElement(ContainerRender, { className, errorMsgs: msgs, children: child });
35
+ }, [msgs, ErrorItemRender]);
36
+ return /* @__PURE__ */ React__default.createElement(
37
+ ContainerRender,
38
+ {
39
+ className,
40
+ errorMsgs: msgs,
41
+ children: child,
42
+ "data-testid": dataTestId
43
+ }
44
+ );
32
45
  };
33
46
 
34
47
  export { BasicCTError };
@@ -26,13 +26,14 @@ const Bit = ({
26
26
  decimals,
27
27
  unitClassName,
28
28
  valueClassName,
29
- emptyProps
29
+ emptyProps,
30
+ "data-testid": dataTestId
30
31
  }) => {
31
32
  if (isEmpty(rawValue)) {
32
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
33
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
33
34
  }
34
35
  const { value, unit } = formatBits(rawValue, decimals);
35
- return /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
37
  };
37
38
  var Bit$1 = Bit;
38
39
 
@@ -26,13 +26,14 @@ const BitPerSecond = ({
26
26
  decimals,
27
27
  valueClassName,
28
28
  unitClassName,
29
- emptyProps
29
+ emptyProps,
30
+ "data-testid": dataTestId
30
31
  }) => {
31
32
  if (isEmpty(rawValue)) {
32
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
33
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
33
34
  }
34
35
  const { value, unit } = formatBitPerSecond(rawValue, decimals);
35
- return /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
37
  };
37
38
  var BitPerSecond$1 = BitPerSecond;
38
39
 
@@ -41,23 +41,24 @@ const SIZE_FONT_MAP = {
41
41
  title: Typo.Heading.h2_regular_title
42
42
  }
43
43
  };
44
- const BlankState = (props) => {
45
- const {
46
- className,
47
- style,
48
- width,
49
- height,
50
- title,
51
- description,
52
- action,
53
- backgroundColor,
54
- size = "medium"
55
- } = props;
44
+ const BlankState = ({
45
+ className,
46
+ style,
47
+ width,
48
+ height,
49
+ title,
50
+ description,
51
+ action,
52
+ backgroundColor,
53
+ size = "medium",
54
+ "data-testid": dataTestId
55
+ }) => {
56
56
  const fontStyle = SIZE_FONT_MAP[size];
57
57
  const buttonSize = size === "large" || size === "medium" ? "middle" : "small";
58
58
  return /* @__PURE__ */ React__default.createElement(
59
59
  "div",
60
60
  {
61
+ "data-testid": dataTestId,
61
62
  className: cx(className, BlankStateWrapper, size, backgroundColor),
62
63
  style: __spreadValues({
63
64
  width: typeof width === "number" ? `${width}px` : width,
@@ -72,6 +73,7 @@ const BlankState = (props) => {
72
73
  type: "ordinary",
73
74
  size: buttonSize,
74
75
  className: cx("action-button", buttonSize),
76
+ "data-testid": dataTestId ? `${dataTestId}-action` : void 0,
75
77
  onClick: action.onClick
76
78
  },
77
79
  action.label
@@ -26,13 +26,14 @@ const Bps = ({
26
26
  decimals,
27
27
  valueClassName,
28
28
  unitClassName,
29
- emptyProps
29
+ emptyProps,
30
+ "data-testid": dataTestId
30
31
  }) => {
31
32
  if (isEmpty(rawValue)) {
32
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
33
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
33
34
  }
34
35
  const { value, unit } = formatBps(rawValue, decimals);
35
- return /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
37
  };
37
38
  var Bps$1 = Bps;
38
39
 
@@ -9,9 +9,11 @@ const BreadWrapper = /*#__PURE__*/styled('div')({
9
9
  });
10
10
  const Breadcrumb = props => {
11
11
  const {
12
- items
12
+ items,
13
+ "data-testid": dataTestId
13
14
  } = props;
14
15
  return /* @__PURE__ */React__default.createElement(BreadWrapper, {
16
+ "data-testid": dataTestId,
15
17
  className: Typo.Heading.h3_bold_title
16
18
  }, items.map((item, index) => {
17
19
  return /* @__PURE__ */React__default.createElement("span", {
@@ -31,6 +33,7 @@ const Breadcrumb = props => {
31
33
  fillOpacity: "0.18"
32
34
  })) : null, /* @__PURE__ */React__default.createElement("span", {
33
35
  className: "breadcrumb-link",
36
+ "data-testid": item["data-testid"],
34
37
  onClick: item.onClick
35
38
  }, item.name), index === items.length - 1 && /* @__PURE__ */React__default.createElement("svg", {
36
39
  style: {
@@ -39,12 +39,14 @@ const ButtonGroup = React__default.forwardRef((props, ref) => {
39
39
  const {
40
40
  className,
41
41
  options,
42
- size = "middle"
42
+ size = "middle",
43
+ "data-testid": dataTestId
43
44
  } = props;
44
45
  if (!options.length) {
45
46
  return null;
46
47
  }
47
48
  return /* @__PURE__ */React__default.createElement(ButtonGroupContainer, {
49
+ "data-testid": dataTestId,
48
50
  className,
49
51
  ref
50
52
  }, options.map((button, index) => {
@@ -28,20 +28,21 @@ const Byte = ({
28
28
  decimals,
29
29
  valueClassName,
30
30
  unitClassName,
31
- emptyProps
31
+ emptyProps,
32
+ "data-testid": dataTestId
32
33
  }) => {
33
34
  const { t } = useParrotTranslation();
34
35
  if (isEmpty(rawValue)) {
35
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
36
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
36
37
  }
37
38
  if (rawValue === -1) {
38
- return /* @__PURE__ */ React__default.createElement("span", null, t("common.calculation"));
39
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, t("common.calculation"));
39
40
  }
40
41
  const { value, unit } = formatBytes(rawValue, decimals);
41
42
  if (noUnitOnZero && value === 0) {
42
- return /* @__PURE__ */ React__default.createElement("span", { className: "value" }, value);
43
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId, className: "value" }, value);
43
44
  }
44
- return /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
45
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
45
46
  };
46
47
  var Byte$1 = Byte;
47
48
 
@@ -26,13 +26,14 @@ const BytePerSecond = ({
26
26
  decimals,
27
27
  valueClassName,
28
28
  unitClassName,
29
- emptyProps
29
+ emptyProps,
30
+ "data-testid": dataTestId
30
31
  }) => {
31
32
  if (isEmpty(rawValue)) {
32
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
33
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
33
34
  }
34
35
  const { value, unit } = formatBytePerSecond(rawValue, decimals);
35
- return /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId }, /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, value), /* @__PURE__ */ React__default.createElement("span", { className: cx("unit", UnitStyle, unitClassName) }, ` ${unit}`));
36
37
  };
37
38
  var BytePerSecond$1 = BytePerSecond;
38
39
 
@@ -46,7 +46,8 @@ const Card = React__default.forwardRef(
46
46
  className,
47
47
  defaultOpen = false,
48
48
  hoverable,
49
- shadow = true
49
+ shadow = true,
50
+ "data-testid": dataTestId
50
51
  } = _a, domProps = __objRest(_a, [
51
52
  "collapsible",
52
53
  "title",
@@ -54,7 +55,8 @@ const Card = React__default.forwardRef(
54
55
  "className",
55
56
  "defaultOpen",
56
57
  "hoverable",
57
- "shadow"
58
+ "shadow",
59
+ "data-testid"
58
60
  ]);
59
61
  const [open, setOpen] = useState(defaultOpen);
60
62
  return /* @__PURE__ */ React__default.createElement(
@@ -63,7 +65,8 @@ const Card = React__default.forwardRef(
63
65
  ref,
64
66
  className: cs(["card-wrapper", className, hoverable && "hoverable"])
65
67
  }, domProps), {
66
- shadow
68
+ shadow,
69
+ "data-testid": dataTestId
67
70
  }),
68
71
  title && /* @__PURE__ */ React__default.createElement(
69
72
  CardTitle,
@@ -74,6 +77,7 @@ const Card = React__default.forwardRef(
74
77
  "div",
75
78
  {
76
79
  className: cs(["title-wrapper", open ? "is-open" : ""]),
80
+ "data-testid": dataTestId && collapsible ? `${dataTestId}-header` : void 0,
77
81
  onClick: () => {
78
82
  collapsible && setOpen(!open);
79
83
  }
@@ -2,7 +2,7 @@ import { CheckboxStyle } from './checkbox.style.js';
2
2
  import { Typo } from '../Typo/index.js';
3
3
  import { Checkbox as Checkbox$2 } from 'antd';
4
4
  import cs from 'classnames';
5
- import React__default from 'react';
5
+ import React__default, { useCallback } from 'react';
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __defProps = Object.defineProperties;
@@ -36,13 +36,39 @@ var __objRest = (source, exclude) => {
36
36
  return target;
37
37
  };
38
38
  const Checkbox = (_a) => {
39
- var _b = _a, { className, children, description, compact } = _b, props = __objRest(_b, ["className", "children", "description", "compact"]);
39
+ var _b = _a, {
40
+ className,
41
+ children,
42
+ description,
43
+ compact,
44
+ "data-testid": dataTestId
45
+ } = _b, props = __objRest(_b, [
46
+ "className",
47
+ "children",
48
+ "description",
49
+ "compact",
50
+ "data-testid"
51
+ ]);
52
+ const markerRef = useCallback(
53
+ (node) => {
54
+ if (node) {
55
+ const label = node.closest("label.ant-checkbox-wrapper");
56
+ if (label) {
57
+ const testId = dataTestId || props.value;
58
+ if (testId) {
59
+ label.setAttribute("data-testid", String(testId));
60
+ }
61
+ }
62
+ }
63
+ },
64
+ [dataTestId, props.value]
65
+ );
40
66
  return /* @__PURE__ */ React__default.createElement(
41
67
  Checkbox$2,
42
68
  __spreadProps(__spreadValues({}, props), {
43
- "data-test": props["data-test"] || props.value,
44
69
  className: cs(className, CheckboxStyle, compact && "compact")
45
70
  }),
71
+ (dataTestId || props.value) && /* @__PURE__ */ React__default.createElement("span", { ref: markerRef, style: { display: "none" } }),
46
72
  children ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("div", { className: cs("main", Typo.Label.l2_regular) }, children), description ? /* @__PURE__ */ React__default.createElement("div", { className: cs("sub", Typo.Label.l4_regular) }, description) : null) : null
47
73
  );
48
74
  };
@@ -1,3 +1,4 @@
1
+ import { useAntdPatchEnLocales } from '../../hooks/useAntdPatchEnLocales.js';
1
2
  import useParrotTranslation from '../../hooks/useParrotTranslation.js';
2
3
  import { ConfigProvider as ConfigProvider$2 } from 'antd';
3
4
  import enUS from 'antd/lib/locale/en_US';
@@ -8,7 +9,6 @@ import antd5zhCN from 'antd5/lib/locale/zh_CN';
8
9
  import dayjs from 'dayjs';
9
10
  import moment from 'moment';
10
11
  import React__default, { createContext, useContext, useEffect } from 'react';
11
- import { useAntdPatchEnLocales } from '../../hooks/useAntdPatchEnLocales.js';
12
12
 
13
13
  var __defProp = Object.defineProperty;
14
14
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -8,13 +8,17 @@ const CardWrapper = /*#__PURE__*/styled('div')({
8
8
  });
9
9
  const DetailCard = props => {
10
10
  const {
11
- title
11
+ title,
12
+ children,
13
+ "data-testid": dataTestId
12
14
  } = props;
13
- return /* @__PURE__ */React__default.createElement(CardWrapper, null, title && /* @__PURE__ */React__default.createElement("div", {
15
+ return /* @__PURE__ */React__default.createElement(CardWrapper, {
16
+ "data-testid": dataTestId
17
+ }, title && /* @__PURE__ */React__default.createElement("div", {
14
18
  className: "card-title"
15
19
  }, title), /* @__PURE__ */React__default.createElement("div", {
16
20
  className: "card-body"
17
- }, props.children));
21
+ }, children));
18
22
  };
19
23
  var DetailCard$1 = DetailCard;
20
24
 
@@ -97,7 +97,8 @@ const DonutChart = ({
97
97
  innerRadius = 45,
98
98
  outerRadius = 50,
99
99
  widthPadding = true,
100
- showLegend = true
100
+ showLegend = true,
101
+ "data-testid": dataTestId
101
102
  }) => {
102
103
  const initColorMap = color ? ColorMap[color] : [];
103
104
  const {
@@ -112,6 +113,7 @@ const DonutChart = ({
112
113
  });
113
114
  }, [data, otherData, t, collapseText]);
114
115
  return /* @__PURE__ */React__default.createElement(DonutChartWrapper, {
116
+ "data-testid": dataTestId,
115
117
  width
116
118
  }, /* @__PURE__ */React__default.createElement(PieChart, {
117
119
  width,
@@ -24,7 +24,8 @@ const RenderMenuItem = item => {
24
24
  danger: item.danger,
25
25
  key: item.key,
26
26
  disabled: item.disabled,
27
- onClick: item.onClick
27
+ onClick: item.onClick,
28
+ "data-testid": item["data-testid"]
28
29
  }, /* @__PURE__ */React__default.createElement(Tooltip, {
29
30
  title: item.tooltip
30
31
  }, item.icon ? React__default.cloneElement(item.icon, {}, item.text) : /* @__PURE__ */React__default.createElement("div", null, item.text)));
@@ -33,7 +34,8 @@ const RenderMenuItem = item => {
33
34
  danger: item.danger,
34
35
  key: item.key,
35
36
  disabled: item.disabled,
36
- onClick: item.onClick
37
+ onClick: item.onClick,
38
+ "data-testid": item["data-testid"]
37
39
  }, item.icon ? React__default.cloneElement(item.icon, {}, item.text) : item.text);
38
40
  };
39
41
  const DropdownMenu = ({
@@ -42,7 +44,8 @@ const DropdownMenu = ({
42
44
  placement,
43
45
  trigger,
44
46
  customStyle,
45
- slotsElements = {}
47
+ slotsElements = {},
48
+ "data-testid": dataTestId
46
49
  }) => {
47
50
  const menuItems = items.filter(item => !item.hidden);
48
51
  const menuDisabled = disabled || menuItems.length === 0;
@@ -54,7 +57,9 @@ const DropdownMenu = ({
54
57
  overlay: /* @__PURE__ */React__default.createElement(Menu, null, menuItems.map(item => {
55
58
  return RenderMenuItem(item);
56
59
  }))
57
- }, /* @__PURE__ */React__default.createElement("span", null, slotsElements.trigger ? slotsElements.trigger({}) : null));
60
+ }, /* @__PURE__ */React__default.createElement("span", {
61
+ "data-testid": dataTestId
62
+ }, slotsElements.trigger ? slotsElements.trigger({}) : null));
58
63
  };
59
64
  var DropdownMenu$1 = DropdownMenu;
60
65
 
@@ -1,10 +1,10 @@
1
- import React__default from 'react';
2
1
  import { cx } from '@linaria/core';
3
2
  import Empty from '../Empty/index.js';
4
3
  import { ParrotTrans } from '../ParrotTrans/index.js';
5
4
  import { useFormatDuration } from '../../hooks/useFormatDuration.js';
6
- import isEmpty from '../../utils/isEmpty.js';
7
5
  import { formatDuration } from '../../utils/formatDuration.js';
6
+ import isEmpty from '../../utils/isEmpty.js';
7
+ import React__default from 'react';
8
8
  import { UnitStyle } from '../Styled/index.js';
9
9
 
10
10
  var __defProp = Object.defineProperty;
@@ -32,7 +32,8 @@ const Duration = ({
32
32
  maxDisplayUnits = 2,
33
33
  minUnit = "second",
34
34
  noUnitOnZero = false,
35
- contentRender
35
+ contentRender,
36
+ "data-testid": dataTestId
36
37
  }) => {
37
38
  const { parts } = useFormatDuration(rawValue != null ? rawValue : 0, {
38
39
  maxDisplayUnits,
@@ -40,10 +41,10 @@ const Duration = ({
40
41
  minUnit
41
42
  });
42
43
  if (isEmpty(rawValue)) {
43
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
44
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
44
45
  }
45
46
  if (parts.length === 0) {
46
- return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({}, emptyProps));
47
+ return /* @__PURE__ */ React__default.createElement(Empty, __spreadValues({ "data-testid": dataTestId }, emptyProps));
47
48
  }
48
49
  if (contentRender) {
49
50
  const formatItems = formatDuration(rawValue, {
@@ -54,7 +55,7 @@ const Duration = ({
54
55
  }
55
56
  const allZero = parts.every((part) => part.value === 0);
56
57
  if (noUnitOnZero && allZero) {
57
- return /* @__PURE__ */ React__default.createElement("span", { className: cx("value", valueClassName) }, "0");
58
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId, className: cx("value", valueClassName) }, "0");
58
59
  }
59
60
  return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, parts.map((part, index) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, { key: `${part.unit}-${index}` }, index > 0 && /* @__PURE__ */ React__default.createElement("span", null, " "), /* @__PURE__ */ React__default.createElement(
60
61
  ParrotTrans,
@@ -1,8 +1,11 @@
1
1
  import React__default from 'react';
2
2
 
3
- const Empty = (props) => {
4
- const { className, style } = props;
5
- return /* @__PURE__ */ React__default.createElement("span", { className, style }, "-");
3
+ const Empty = ({
4
+ className,
5
+ style,
6
+ "data-testid": dataTestId
7
+ }) => {
8
+ return /* @__PURE__ */ React__default.createElement("span", { "data-testid": dataTestId, className, style }, "-");
6
9
  };
7
10
  var Empty$1 = Empty;
8
11
 
@@ -1,6 +1,9 @@
1
1
  import React__default from 'react';
2
2
 
3
- const Error = ({ error }) => /* @__PURE__ */ React__default.createElement("div", { className: "error" }, String(error));
3
+ const Error = ({
4
+ error,
5
+ "data-testid": dataTestId
6
+ }) => /* @__PURE__ */ React__default.createElement("div", { "data-testid": dataTestId, className: "error" }, String(error));
4
7
  var Error$1 = Error;
5
8
 
6
9
  export { Error$1 as default };
@@ -10,18 +10,21 @@ const FailedLoad = props => {
10
10
  refetch,
11
11
  className,
12
12
  title,
13
- refetchText
13
+ refetchText,
14
+ "data-testid": dataTestId
14
15
  } = props;
15
16
  const {
16
17
  t
17
18
  } = useParrotTranslation();
18
19
  return /* @__PURE__ */React__default.createElement("div", {
20
+ "data-testid": dataTestId,
19
21
  className: cs(FailedLoadStyle, className),
20
22
  title
21
23
  }, /* @__PURE__ */React__default.createElement("div", {
22
24
  className: "error-text"
23
25
  }, String(error)), /* @__PURE__ */React__default.createElement(Button, {
24
26
  type: "ordinary",
27
+ "data-testid": dataTestId ? `${dataTestId}-retry` : void 0,
25
28
  onClick: () => refetch()
26
29
  }, refetchText || t("common.retry")));
27
30
  };