@wallarm-org/design-system 3.4.1-rc-fix-data-display-category.2 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/components/Chat/Chat.js +20 -18
  2. package/dist/components/Chat/ChatTrigger.js +37 -33
  3. package/dist/components/DateInput/internal/DateInputInternal.js +8 -4
  4. package/dist/components/DateRangeInput/DateRangeInputInternal.js +8 -4
  5. package/dist/components/DateRangeInput/DateRangeSeparator.js +15 -6
  6. package/dist/components/FileUpload/FileUploadItemReplaceTrigger.js +14 -11
  7. package/dist/components/FilterCascade/FilterCascadeLevel.js +18 -10
  8. package/dist/components/FilterInput/FilterInput.d.ts +2 -1
  9. package/dist/components/FilterInput/FilterInput.js +160 -142
  10. package/dist/components/FilterInput/FilterInputField/FilterInputChip/FilterInputChip.d.ts +2 -1
  11. package/dist/components/FilterInput/FilterInputField/FilterInputChip/FilterInputChip.js +157 -138
  12. package/dist/components/FilterInput/FilterInputField/FilterInputChip/FilterInputRemoveButton.js +8 -4
  13. package/dist/components/FilterInput/FilterInputField/FilterInputChip/PairSeparator.js +20 -11
  14. package/dist/components/FilterInput/FilterInputField/FilterInputChip/Segment.js +4 -0
  15. package/dist/components/FilterInput/FilterInputField/FilterInputConnectorChip/FilterInputConnectorChip.js +98 -86
  16. package/dist/components/FilterInput/FilterInputField/FilterInputField.js +82 -70
  17. package/dist/components/FilterInput/FilterInputMenu/FilterInputFieldMenu/FilterInputFieldMenu.d.ts +2 -1
  18. package/dist/components/FilterInput/FilterInputMenu/FilterInputFieldMenu/FilterInputFieldMenu.js +5 -1
  19. package/dist/components/FilterInput/FilterInputMenu/FilterInputOperatorMenu.d.ts +2 -1
  20. package/dist/components/FilterInput/FilterInputMenu/FilterInputOperatorMenu.js +20 -14
  21. package/dist/components/NavRail/NavRailItem.js +57 -55
  22. package/dist/components/Select/SelectInput/SelectInputItemRenderer.js +20 -13
  23. package/dist/components/Selection/SelectionItem.js +8 -4
  24. package/dist/components/SimpleCharts/AreaChart/AreaChartArea.js +8 -4
  25. package/dist/components/SimpleCharts/BarList/BarListPercent.js +16 -13
  26. package/dist/components/SimpleCharts/LineChart/LineChartHoverPopover.js +8 -4
  27. package/dist/components/SimpleCharts/LineChart/LineChartLine.js +8 -4
  28. package/dist/components/SimpleCharts/LineChart/LineChartZoomBrush.js +3 -0
  29. package/dist/components/SimpleCharts/PieChart/PieChartDonut.js +33 -30
  30. package/dist/components/Tree/TreeItemContent.js +18 -12
  31. package/dist/components/Tree/TreeItemHeader.js +49 -38
  32. package/dist/components/TreeView/TreeViewItem.js +46 -40
  33. package/dist/metadata/components.json +68 -512
  34. package/package.json +1 -1
  35. package/dist/components/TreeBase/TreeBase.d.ts +0 -31
  36. package/dist/components/TreeBase/TreeBase.js +0 -245
  37. package/dist/components/TreeBase/classes.d.ts +0 -7
  38. package/dist/components/TreeBase/classes.js +0 -10
  39. package/dist/components/TreeBase/index.d.ts +0 -1
  40. package/dist/components/TreeBase/index.js +0 -1
@@ -2,6 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useEffect, useRef } from "react";
4
4
  import { cn } from "../../utils/cn.js";
5
+ import { TestIdProvider } from "../../utils/testId.js";
5
6
  import { FilterInputProvider, useFilterInputContextValue } from "./FilterInputContext/index.js";
6
7
  import { FilterInputErrors, parseFilterInputErrors } from "./FilterInputErrors/index.js";
7
8
  import { FilterInputField } from "./FilterInputField/index.js";
@@ -9,7 +10,7 @@ import { FilterInputMenu } from "./FilterInputMenu/FilterInputMenu.js";
9
10
  import { useFilterInputAutocomplete, useFilterInputExpression, useFilterInputSelection } from "./hooks/index.js";
10
11
  import { applyKnownFieldHelpers } from "./lib/applyKnownFieldHelpers.js";
11
12
  const FilterInput = (t0)=>{
12
- const $ = c(97);
13
+ const $ = c(102);
13
14
  let className;
14
15
  let externalErrors;
15
16
  let fieldGroups;
@@ -20,9 +21,10 @@ const FilterInput = (t0)=>{
20
21
  let t2;
21
22
  let t3;
22
23
  let t4;
24
+ let testId;
23
25
  let value;
24
26
  if ($[0] !== t0) {
25
- ({ fields: t1, fieldGroups, value, onChange, placeholder: t2, error: t3, externalErrors, onErrorsChange, showKeyboardHint: t4, className, ...props } = t0);
27
+ ({ fields: t1, fieldGroups, value, onChange, placeholder: t2, error: t3, externalErrors, onErrorsChange, showKeyboardHint: t4, className, "data-testid": testId, ...props } = t0);
26
28
  $[0] = t0;
27
29
  $[1] = className;
28
30
  $[2] = externalErrors;
@@ -34,7 +36,8 @@ const FilterInput = (t0)=>{
34
36
  $[8] = t2;
35
37
  $[9] = t3;
36
38
  $[10] = t4;
37
- $[11] = value;
39
+ $[11] = testId;
40
+ $[12] = value;
38
41
  } else {
39
42
  className = $[1];
40
43
  externalErrors = $[2];
@@ -46,14 +49,15 @@ const FilterInput = (t0)=>{
46
49
  t2 = $[8];
47
50
  t3 = $[9];
48
51
  t4 = $[10];
49
- value = $[11];
52
+ testId = $[11];
53
+ value = $[12];
50
54
  }
51
55
  let t5;
52
- if ($[12] !== t1) {
56
+ if ($[13] !== t1) {
53
57
  t5 = void 0 === t1 ? [] : t1;
54
- $[12] = t1;
55
- $[13] = t5;
56
- } else t5 = $[13];
58
+ $[13] = t1;
59
+ $[14] = t5;
60
+ } else t5 = $[14];
57
61
  const rawFields = t5;
58
62
  const placeholder = void 0 === t2 ? "Type to filter..." : t2;
59
63
  const error = void 0 === t3 ? false : t3;
@@ -62,29 +66,29 @@ const FilterInput = (t0)=>{
62
66
  const containerRef = useRef(null);
63
67
  const buildingChipRef = useRef(null);
64
68
  let t6;
65
- if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
69
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
66
70
  t6 = new Map();
67
- $[14] = t6;
68
- } else t6 = $[14];
71
+ $[15] = t6;
72
+ } else t6 = $[15];
69
73
  const chipRegistryRef = useRef(t6);
70
74
  let t7;
71
- if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
75
+ if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
72
76
  t7 = (id, el)=>{
73
77
  if (el) chipRegistryRef.current.set(id, el);
74
78
  else chipRegistryRef.current.delete(id);
75
79
  };
76
- $[15] = t7;
77
- } else t7 = $[15];
80
+ $[16] = t7;
81
+ } else t7 = $[16];
78
82
  const registerChipRef = t7;
79
83
  let t8;
80
- if ($[16] !== rawFields) {
84
+ if ($[17] !== rawFields) {
81
85
  t8 = applyKnownFieldHelpers(rawFields);
82
- $[16] = rawFields;
83
- $[17] = t8;
84
- } else t8 = $[17];
86
+ $[17] = rawFields;
87
+ $[18] = t8;
88
+ } else t8 = $[18];
85
89
  const fields = t8;
86
90
  let t9;
87
- if ($[18] !== error || $[19] !== externalErrors || $[20] !== fields || $[21] !== onChange || $[22] !== value) {
91
+ if ($[19] !== error || $[20] !== externalErrors || $[21] !== fields || $[22] !== onChange || $[23] !== value) {
88
92
  t9 = {
89
93
  fields,
90
94
  value,
@@ -92,16 +96,16 @@ const FilterInput = (t0)=>{
92
96
  error,
93
97
  externalErrors
94
98
  };
95
- $[18] = error;
96
- $[19] = externalErrors;
97
- $[20] = fields;
98
- $[21] = onChange;
99
- $[22] = value;
100
- $[23] = t9;
101
- } else t9 = $[23];
99
+ $[19] = error;
100
+ $[20] = externalErrors;
101
+ $[21] = fields;
102
+ $[22] = onChange;
103
+ $[23] = value;
104
+ $[24] = t9;
105
+ } else t9 = $[24];
102
106
  const { conditions, connectors, chips, upsertCondition, removeCondition, removeConditionAtIndex, clearAll, replaceExpression, setConnectorValue } = useFilterInputExpression(t9);
103
107
  let t10;
104
- if ($[24] !== chips || $[25] !== clearAll || $[26] !== conditions || $[27] !== fields || $[28] !== removeCondition || $[29] !== removeConditionAtIndex || $[30] !== setConnectorValue || $[31] !== upsertCondition) {
108
+ if ($[25] !== chips || $[26] !== clearAll || $[27] !== conditions || $[28] !== fields || $[29] !== removeCondition || $[30] !== removeConditionAtIndex || $[31] !== setConnectorValue || $[32] !== upsertCondition) {
105
109
  t10 = {
106
110
  fields,
107
111
  conditions,
@@ -115,19 +119,19 @@ const FilterInput = (t0)=>{
115
119
  buildingChipRef,
116
120
  inputRef
117
121
  };
118
- $[24] = chips;
119
- $[25] = clearAll;
120
- $[26] = conditions;
121
- $[27] = fields;
122
- $[28] = removeCondition;
123
- $[29] = removeConditionAtIndex;
124
- $[30] = setConnectorValue;
125
- $[31] = upsertCondition;
126
- $[32] = t10;
127
- } else t10 = $[32];
122
+ $[25] = chips;
123
+ $[26] = clearAll;
124
+ $[27] = conditions;
125
+ $[28] = fields;
126
+ $[29] = removeCondition;
127
+ $[30] = removeConditionAtIndex;
128
+ $[31] = setConnectorValue;
129
+ $[32] = upsertCondition;
130
+ $[33] = t10;
131
+ } else t10 = $[33];
128
132
  const autocomplete = useFilterInputAutocomplete(t10);
129
133
  let t11;
130
- if ($[33] !== autocomplete.closeAutocompleteMenu || $[34] !== autocomplete.resetAutocompleteState || $[35] !== autocomplete.setInputText || $[36] !== clearAll || $[37] !== conditions || $[38] !== connectors || $[39] !== fields || $[40] !== replaceExpression) {
134
+ if ($[34] !== autocomplete.closeAutocompleteMenu || $[35] !== autocomplete.resetAutocompleteState || $[36] !== autocomplete.setInputText || $[37] !== clearAll || $[38] !== conditions || $[39] !== connectors || $[40] !== fields || $[41] !== replaceExpression) {
131
135
  t11 = {
132
136
  conditions,
133
137
  connectors,
@@ -141,19 +145,19 @@ const FilterInput = (t0)=>{
141
145
  replaceExpression,
142
146
  resetAutocompleteState: autocomplete.resetAutocompleteState
143
147
  };
144
- $[33] = autocomplete.closeAutocompleteMenu;
145
- $[34] = autocomplete.resetAutocompleteState;
146
- $[35] = autocomplete.setInputText;
147
- $[36] = clearAll;
148
- $[37] = conditions;
149
- $[38] = connectors;
150
- $[39] = fields;
151
- $[40] = replaceExpression;
152
- $[41] = t11;
153
- } else t11 = $[41];
148
+ $[34] = autocomplete.closeAutocompleteMenu;
149
+ $[35] = autocomplete.resetAutocompleteState;
150
+ $[36] = autocomplete.setInputText;
151
+ $[37] = clearAll;
152
+ $[38] = conditions;
153
+ $[39] = connectors;
154
+ $[40] = fields;
155
+ $[41] = replaceExpression;
156
+ $[42] = t11;
157
+ } else t11 = $[42];
154
158
  const { allSelected, pasteError, clearSelection, dismissPasteError, handleMouseDown, handleKeyDown, handleCopy, handlePaste, retryParse } = useFilterInputSelection(t11);
155
159
  let t12;
156
- if ($[42] !== autocomplete || $[43] !== chips || $[44] !== error || $[45] !== placeholder || $[46] !== showKeyboardHint) {
160
+ if ($[43] !== autocomplete || $[44] !== chips || $[45] !== error || $[46] !== placeholder || $[47] !== showKeyboardHint) {
157
161
  t12 = {
158
162
  chips,
159
163
  autocomplete,
@@ -164,73 +168,73 @@ const FilterInput = (t0)=>{
164
168
  showKeyboardHint,
165
169
  registerChipRef
166
170
  };
167
- $[42] = autocomplete;
168
- $[43] = chips;
169
- $[44] = error;
170
- $[45] = placeholder;
171
- $[46] = showKeyboardHint;
172
- $[47] = t12;
173
- } else t12 = $[47];
171
+ $[43] = autocomplete;
172
+ $[44] = chips;
173
+ $[45] = error;
174
+ $[46] = placeholder;
175
+ $[47] = showKeyboardHint;
176
+ $[48] = t12;
177
+ } else t12 = $[48];
174
178
  const contextValue = useFilterInputContextValue(t12);
175
179
  let t13;
176
- if ($[48] !== dismissPasteError || $[49] !== pasteError) {
180
+ if ($[49] !== dismissPasteError || $[50] !== pasteError) {
177
181
  t13 = ()=>{
178
182
  if (pasteError) dismissPasteError();
179
183
  };
180
- $[48] = dismissPasteError;
181
- $[49] = pasteError;
182
- $[50] = t13;
183
- } else t13 = $[50];
184
+ $[49] = dismissPasteError;
185
+ $[50] = pasteError;
186
+ $[51] = t13;
187
+ } else t13 = $[51];
184
188
  let t14;
185
- if ($[51] !== conditions.length) {
189
+ if ($[52] !== conditions.length) {
186
190
  t14 = [
187
191
  conditions.length
188
192
  ];
189
- $[51] = conditions.length;
190
- $[52] = t14;
191
- } else t14 = $[52];
193
+ $[52] = conditions.length;
194
+ $[53] = t14;
195
+ } else t14 = $[53];
192
196
  useEffect(t13, t14);
193
197
  let t15;
194
- if ($[53] !== autocomplete.inputText || $[54] !== pasteError || $[55] !== retryParse) {
198
+ if ($[54] !== autocomplete.inputText || $[55] !== pasteError || $[56] !== retryParse) {
195
199
  t15 = ()=>{
196
200
  if (pasteError) retryParse(autocomplete.inputText);
197
201
  };
198
- $[53] = autocomplete.inputText;
199
- $[54] = pasteError;
200
- $[55] = retryParse;
201
- $[56] = t15;
202
- } else t15 = $[56];
202
+ $[54] = autocomplete.inputText;
203
+ $[55] = pasteError;
204
+ $[56] = retryParse;
205
+ $[57] = t15;
206
+ } else t15 = $[57];
203
207
  let t16;
204
- if ($[57] !== autocomplete.inputText) {
208
+ if ($[58] !== autocomplete.inputText) {
205
209
  t16 = [
206
210
  autocomplete.inputText
207
211
  ];
208
- $[57] = autocomplete.inputText;
209
- $[58] = t16;
210
- } else t16 = $[58];
212
+ $[58] = autocomplete.inputText;
213
+ $[59] = t16;
214
+ } else t16 = $[59];
211
215
  useEffect(t15, t16);
212
216
  let t17;
213
- if ($[59] !== conditions || $[60] !== fields) {
217
+ if ($[60] !== conditions || $[61] !== fields) {
214
218
  t17 = parseFilterInputErrors(conditions, fields);
215
- $[59] = conditions;
216
- $[60] = fields;
217
- $[61] = t17;
218
- } else t17 = $[61];
219
+ $[60] = conditions;
220
+ $[61] = fields;
221
+ $[62] = t17;
222
+ } else t17 = $[62];
219
223
  const fieldErrors = t17;
220
224
  let t18;
221
- if ($[62] !== fieldErrors || $[63] !== pasteError) {
225
+ if ($[63] !== fieldErrors || $[64] !== pasteError) {
222
226
  t18 = pasteError ? [
223
227
  pasteError,
224
228
  ...fieldErrors
225
229
  ] : fieldErrors;
226
- $[62] = fieldErrors;
227
- $[63] = pasteError;
228
- $[64] = t18;
229
- } else t18 = $[64];
230
+ $[63] = fieldErrors;
231
+ $[64] = pasteError;
232
+ $[65] = t18;
233
+ } else t18 = $[65];
230
234
  const errors = t18;
231
235
  let t19;
232
236
  let t20;
233
- if ($[65] !== errors || $[66] !== onErrorsChange) {
237
+ if ($[66] !== errors || $[67] !== onErrorsChange) {
234
238
  t19 = ()=>{
235
239
  onErrorsChange?.(errors);
236
240
  };
@@ -238,72 +242,88 @@ const FilterInput = (t0)=>{
238
242
  errors,
239
243
  onErrorsChange
240
244
  ];
241
- $[65] = errors;
242
- $[66] = onErrorsChange;
243
- $[67] = t19;
244
- $[68] = t20;
245
+ $[66] = errors;
246
+ $[67] = onErrorsChange;
247
+ $[68] = t19;
248
+ $[69] = t20;
245
249
  } else {
246
- t19 = $[67];
247
- t20 = $[68];
250
+ t19 = $[68];
251
+ t20 = $[69];
248
252
  }
249
253
  useEffect(t19, t20);
250
254
  let t21;
251
- if ($[69] !== className) {
255
+ if ($[70] !== className) {
252
256
  t21 = cn("group/filter-input relative flex w-full flex-col gap-4", className);
253
- $[69] = className;
254
- $[70] = t21;
255
- } else t21 = $[70];
257
+ $[70] = className;
258
+ $[71] = t21;
259
+ } else t21 = $[71];
256
260
  const t22 = autocomplete.handleFocus;
257
261
  const t23 = allSelected ? clearSelection : void 0;
258
262
  let t24;
259
- if ($[71] !== allSelected) {
263
+ if ($[72] !== allSelected) {
260
264
  t24 = allSelected && {
261
265
  "data-selected-all": ""
262
266
  };
263
- $[71] = allSelected;
264
- $[72] = t24;
265
- } else t24 = $[72];
267
+ $[72] = allSelected;
268
+ $[73] = t24;
269
+ } else t24 = $[73];
266
270
  let t25;
267
- if ($[73] !== props) {
271
+ if ($[74] !== props || $[75] !== testId) {
268
272
  t25 = /*#__PURE__*/ jsx(FilterInputField, {
269
- ...props
273
+ ...props,
274
+ "data-testid": testId
270
275
  });
271
- $[73] = props;
272
- $[74] = t25;
273
- } else t25 = $[74];
276
+ $[74] = props;
277
+ $[75] = testId;
278
+ $[76] = t25;
279
+ } else t25 = $[76];
274
280
  let t26;
275
- if ($[75] !== contextValue || $[76] !== t25) {
281
+ if ($[77] !== contextValue || $[78] !== t25) {
276
282
  t26 = /*#__PURE__*/ jsx(FilterInputProvider, {
277
283
  value: contextValue,
278
284
  children: t25
279
285
  });
280
- $[75] = contextValue;
281
- $[76] = t25;
282
- $[77] = t26;
283
- } else t26 = $[77];
286
+ $[77] = contextValue;
287
+ $[78] = t25;
288
+ $[79] = t26;
289
+ } else t26 = $[79];
284
290
  let t27;
285
- if ($[78] !== autocomplete || $[79] !== fieldGroups || $[80] !== fields) {
291
+ if ($[80] !== autocomplete || $[81] !== fieldGroups || $[82] !== fields) {
286
292
  t27 = /*#__PURE__*/ jsx(FilterInputMenu, {
287
293
  fields: fields,
288
294
  fieldGroups: fieldGroups,
289
295
  autocomplete: autocomplete
290
296
  });
291
- $[78] = autocomplete;
292
- $[79] = fieldGroups;
293
- $[80] = fields;
294
- $[81] = t27;
295
- } else t27 = $[81];
297
+ $[80] = autocomplete;
298
+ $[81] = fieldGroups;
299
+ $[82] = fields;
300
+ $[83] = t27;
301
+ } else t27 = $[83];
296
302
  let t28;
297
- if ($[82] !== errors) {
298
- t28 = /*#__PURE__*/ jsx(FilterInputErrors, {
299
- errors: errors
303
+ if ($[84] !== t26 || $[85] !== t27 || $[86] !== testId) {
304
+ t28 = /*#__PURE__*/ jsxs(TestIdProvider, {
305
+ value: testId,
306
+ children: [
307
+ t26,
308
+ t27
309
+ ]
300
310
  });
301
- $[82] = errors;
302
- $[83] = t28;
303
- } else t28 = $[83];
311
+ $[84] = t26;
312
+ $[85] = t27;
313
+ $[86] = testId;
314
+ $[87] = t28;
315
+ } else t28 = $[87];
304
316
  let t29;
305
- if ($[84] !== autocomplete.handleBlur || $[85] !== handleCopy || $[86] !== handleKeyDown || $[87] !== handleMouseDown || $[88] !== handlePaste || $[89] !== t21 || $[90] !== t22 || $[91] !== t23 || $[92] !== t24 || $[93] !== t26 || $[94] !== t27 || $[95] !== t28) {
306
- t29 = /*#__PURE__*/ jsxs("div", {
317
+ if ($[88] !== errors) {
318
+ t29 = /*#__PURE__*/ jsx(FilterInputErrors, {
319
+ errors: errors
320
+ });
321
+ $[88] = errors;
322
+ $[89] = t29;
323
+ } else t29 = $[89];
324
+ let t30;
325
+ if ($[90] !== autocomplete.handleBlur || $[91] !== handleCopy || $[92] !== handleKeyDown || $[93] !== handleMouseDown || $[94] !== handlePaste || $[95] !== t21 || $[96] !== t22 || $[97] !== t23 || $[98] !== t24 || $[99] !== t28 || $[100] !== t29) {
326
+ t30 = /*#__PURE__*/ jsxs("div", {
307
327
  ref: containerRef,
308
328
  className: t21,
309
329
  tabIndex: -1,
@@ -316,26 +336,24 @@ const FilterInput = (t0)=>{
316
336
  onPaste: handlePaste,
317
337
  ...t24,
318
338
  children: [
319
- t26,
320
- t27,
321
- t28
339
+ t28,
340
+ t29
322
341
  ]
323
342
  });
324
- $[84] = autocomplete.handleBlur;
325
- $[85] = handleCopy;
326
- $[86] = handleKeyDown;
327
- $[87] = handleMouseDown;
328
- $[88] = handlePaste;
329
- $[89] = t21;
330
- $[90] = t22;
331
- $[91] = t23;
332
- $[92] = t24;
333
- $[93] = t26;
334
- $[94] = t27;
335
- $[95] = t28;
336
- $[96] = t29;
337
- } else t29 = $[96];
338
- return t29;
343
+ $[90] = autocomplete.handleBlur;
344
+ $[91] = handleCopy;
345
+ $[92] = handleKeyDown;
346
+ $[93] = handleMouseDown;
347
+ $[94] = handlePaste;
348
+ $[95] = t21;
349
+ $[96] = t22;
350
+ $[97] = t23;
351
+ $[98] = t24;
352
+ $[99] = t28;
353
+ $[100] = t29;
354
+ $[101] = t30;
355
+ } else t30 = $[101];
356
+ return t30;
339
357
  };
340
358
  FilterInput.displayName = "FilterInput";
341
359
  export { FilterInput };
@@ -1,10 +1,11 @@
1
1
  import type { FC, HTMLAttributes, Ref } from 'react';
2
+ import { type TestableProps } from '../../../../utils/testId.js';
2
3
  import type { ChipErrorSegment, FilterInputChipData } from '../../types.js';
3
4
  import { type SegmentVariant } from './segmentVariant.js';
4
5
  export type ChipSegment = SegmentVariant;
5
6
  /** Editable segments of the paired (second) triplet. The paired attribute is fixed. */
6
7
  export type PairSegment = Extract<SegmentVariant, 'operator' | 'value'>;
7
- export interface FilterInputChipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
8
+ export interface FilterInputChipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, TestableProps {
8
9
  ref?: Ref<HTMLDivElement>;
9
10
  chipId?: string;
10
11
  attribute: string;