@kopexa/filter 0.0.25 → 0.0.26

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 (51) hide show
  1. package/dist/chunk-6TRAIAKS.mjs +178 -0
  2. package/dist/chunk-I7WCYMXD.mjs +133 -0
  3. package/dist/{chunk-45QJL74L.mjs → chunk-JSRGUDCG.mjs} +49 -24
  4. package/dist/chunk-NUDUXOHP.mjs +243 -0
  5. package/dist/chunk-ON2UFJ3Y.mjs +32 -0
  6. package/dist/{chunk-RFCPJLIQ.mjs → chunk-SJXRD3RO.mjs} +6 -1
  7. package/dist/{chunk-EF4VI36D.mjs → chunk-UBTUCPOG.mjs} +1 -1
  8. package/dist/{chunk-3ZBNWXRA.mjs → chunk-WD7YU6IN.mjs} +17 -14
  9. package/dist/chunk-XCWKWXBW.mjs +602 -0
  10. package/dist/{chunk-URDCG5NI.mjs → chunk-YTYOFT33.mjs} +52 -0
  11. package/dist/filter-active.js +108 -28
  12. package/dist/filter-active.mjs +4 -4
  13. package/dist/filter-bar-internal.d.mts +25 -0
  14. package/dist/filter-bar-internal.d.ts +25 -0
  15. package/dist/filter-bar-internal.js +648 -0
  16. package/dist/filter-bar-internal.mjs +11 -0
  17. package/dist/filter-bar-messages.d.mts +124 -0
  18. package/dist/filter-bar-messages.d.ts +124 -0
  19. package/dist/filter-bar-messages.js +156 -0
  20. package/dist/filter-bar-messages.mjs +7 -0
  21. package/dist/filter-bar-types.d.mts +112 -0
  22. package/dist/filter-bar-types.d.ts +112 -0
  23. package/dist/filter-bar-types.js +56 -0
  24. package/dist/filter-bar-types.mjs +8 -0
  25. package/dist/filter-bar.d.mts +29 -0
  26. package/dist/filter-bar.d.ts +29 -0
  27. package/dist/filter-bar.js +942 -0
  28. package/dist/filter-bar.mjs +11 -0
  29. package/dist/filter-menu.js +161 -1
  30. package/dist/filter-menu.mjs +2 -1
  31. package/dist/filter-trigger.js +52 -0
  32. package/dist/filter-trigger.mjs +2 -2
  33. package/dist/filter-value-editor.js +65 -10
  34. package/dist/filter-value-editor.mjs +3 -3
  35. package/dist/filter.d.mts +6 -0
  36. package/dist/filter.d.ts +6 -0
  37. package/dist/filter.mjs +2 -2
  38. package/dist/index.d.mts +4 -0
  39. package/dist/index.d.ts +4 -0
  40. package/dist/index.js +1263 -31
  41. package/dist/index.mjs +28 -14
  42. package/dist/messages.d.mts +50 -0
  43. package/dist/messages.d.ts +50 -0
  44. package/dist/messages.js +52 -0
  45. package/dist/messages.mjs +1 -1
  46. package/dist/search-filter-bar.d.mts +44 -0
  47. package/dist/search-filter-bar.d.ts +44 -0
  48. package/dist/search-filter-bar.js +1007 -0
  49. package/dist/search-filter-bar.mjs +11 -0
  50. package/package.json +19 -16
  51. package/dist/{chunk-SH7DBK54.mjs → chunk-LWDVRMCI.mjs} +3 -3
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ "use client";
3
+ import {
4
+ FilterBar
5
+ } from "./chunk-6TRAIAKS.mjs";
6
+ import "./chunk-XCWKWXBW.mjs";
7
+ import "./chunk-I7WCYMXD.mjs";
8
+ import "./chunk-ON2UFJ3Y.mjs";
9
+ export {
10
+ FilterBar
11
+ };
@@ -29,6 +29,7 @@ __export(filter_menu_exports, {
29
29
  });
30
30
  module.exports = __toCommonJS(filter_menu_exports);
31
31
  var import_dropdown_menu = require("@kopexa/dropdown-menu");
32
+ var import_i18n2 = require("@kopexa/i18n");
32
33
  var import_shared_utils = require("@kopexa/shared-utils");
33
34
  var import_react = require("react");
34
35
 
@@ -40,12 +41,171 @@ var [FilterProvider, useFilterContext] = (0, import_react_utils.createContext)({
40
41
  errorMessage: "useFilterContext must be used within a Filter component. Make sure to wrap your FilterMenu, FilterTrigger, etc. inside a <Filter> component."
41
42
  });
42
43
 
44
+ // src/messages.ts
45
+ var import_i18n = require("@kopexa/i18n");
46
+ var messages = (0, import_i18n.defineMessages)({
47
+ add_filter: {
48
+ id: "filter.add_filter",
49
+ defaultMessage: "Add Filter",
50
+ description: "Button text for adding a new filter"
51
+ },
52
+ clear_all: {
53
+ id: "filter.clear_all",
54
+ defaultMessage: "Clear all",
55
+ description: "Button text for clearing all filters"
56
+ },
57
+ no_fields: {
58
+ id: "filter.no_fields",
59
+ defaultMessage: "No filter options available",
60
+ description: "Message when no filter fields are configured"
61
+ },
62
+ apply: {
63
+ id: "filter.apply",
64
+ defaultMessage: "Apply",
65
+ description: "Button text for applying a filter value"
66
+ },
67
+ cancel: {
68
+ id: "filter.cancel",
69
+ defaultMessage: "Cancel",
70
+ description: "Button text for canceling filter editing"
71
+ },
72
+ select_value: {
73
+ id: "filter.select_value",
74
+ defaultMessage: "Select value...",
75
+ description: "Placeholder for value selection"
76
+ },
77
+ enter_value: {
78
+ id: "filter.enter_value",
79
+ defaultMessage: "Enter value...",
80
+ description: "Placeholder for value input"
81
+ },
82
+ // Operators
83
+ op_equals: {
84
+ id: "filter.operator.equals",
85
+ defaultMessage: "is",
86
+ description: "Operator: equals"
87
+ },
88
+ op_not_equals: {
89
+ id: "filter.operator.not_equals",
90
+ defaultMessage: "is not",
91
+ description: "Operator: not equals"
92
+ },
93
+ op_contains: {
94
+ id: "filter.operator.contains",
95
+ defaultMessage: "contains",
96
+ description: "Operator: contains"
97
+ },
98
+ op_not_contains: {
99
+ id: "filter.operator.not_contains",
100
+ defaultMessage: "does not contain",
101
+ description: "Operator: does not contain"
102
+ },
103
+ op_starts_with: {
104
+ id: "filter.operator.starts_with",
105
+ defaultMessage: "starts with",
106
+ description: "Operator: starts with"
107
+ },
108
+ op_ends_with: {
109
+ id: "filter.operator.ends_with",
110
+ defaultMessage: "ends with",
111
+ description: "Operator: ends with"
112
+ },
113
+ op_gt: {
114
+ id: "filter.operator.gt",
115
+ defaultMessage: "greater than",
116
+ description: "Operator: greater than"
117
+ },
118
+ op_lt: {
119
+ id: "filter.operator.lt",
120
+ defaultMessage: "less than",
121
+ description: "Operator: less than"
122
+ },
123
+ op_gte: {
124
+ id: "filter.operator.gte",
125
+ defaultMessage: "greater or equal",
126
+ description: "Operator: greater than or equal"
127
+ },
128
+ op_lte: {
129
+ id: "filter.operator.lte",
130
+ defaultMessage: "less or equal",
131
+ description: "Operator: less than or equal"
132
+ },
133
+ op_between: {
134
+ id: "filter.operator.between",
135
+ defaultMessage: "between",
136
+ description: "Operator: between"
137
+ },
138
+ op_is_empty: {
139
+ id: "filter.operator.is_empty",
140
+ defaultMessage: "is empty",
141
+ description: "Operator: is empty"
142
+ },
143
+ op_is_not_empty: {
144
+ id: "filter.operator.is_not_empty",
145
+ defaultMessage: "is not empty",
146
+ description: "Operator: is not empty"
147
+ },
148
+ // Additional UI strings
149
+ loading: {
150
+ id: "filter.loading",
151
+ defaultMessage: "Loading...",
152
+ description: "Loading state text"
153
+ },
154
+ boolean_true: {
155
+ id: "filter.boolean_true",
156
+ defaultMessage: "Yes",
157
+ description: "Boolean true value display"
158
+ },
159
+ boolean_false: {
160
+ id: "filter.boolean_false",
161
+ defaultMessage: "No",
162
+ description: "Boolean false value display"
163
+ },
164
+ range_min: {
165
+ id: "filter.range_min",
166
+ defaultMessage: "Min",
167
+ description: "Minimum value placeholder for range inputs"
168
+ },
169
+ range_max: {
170
+ id: "filter.range_max",
171
+ defaultMessage: "Max",
172
+ description: "Maximum value placeholder for range inputs"
173
+ },
174
+ // Accessibility labels
175
+ remove_filter: {
176
+ id: "filter.remove_filter",
177
+ defaultMessage: "Remove {field} filter",
178
+ description: "Accessibility label for remove filter button"
179
+ },
180
+ operator_label: {
181
+ id: "filter.operator_label",
182
+ defaultMessage: "{field} operator",
183
+ description: "Accessibility label for operator select"
184
+ },
185
+ value_label: {
186
+ id: "filter.value_label",
187
+ defaultMessage: "{field} value",
188
+ description: "Accessibility label for value input"
189
+ },
190
+ value_min_label: {
191
+ id: "filter.value_min_label",
192
+ defaultMessage: "{field} minimum value",
193
+ description: "Accessibility label for minimum value input"
194
+ },
195
+ value_max_label: {
196
+ id: "filter.value_max_label",
197
+ defaultMessage: "{field} maximum value",
198
+ description: "Accessibility label for maximum value input"
199
+ }
200
+ });
201
+
43
202
  // src/filter-menu.tsx
44
203
  var import_jsx_runtime = require("react/jsx-runtime");
45
204
  function FilterMenu(props) {
46
205
  var _a;
47
206
  const { children, className } = props;
48
207
  const { fields, styles, addFilter, allowMultiple, value } = useFilterContext();
208
+ const t = (0, import_i18n2.useSafeIntl)();
49
209
  const fieldGroups = /* @__PURE__ */ new Map();
50
210
  for (const [id, field] of fields) {
51
211
  const group = field.group;
@@ -62,7 +222,7 @@ function FilterMenu(props) {
62
222
  "data-slot": "filter-menu",
63
223
  className: (0, import_shared_utils.cn)("min-w-[220px]", className),
64
224
  align: "start",
65
- children: fields.size === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "px-2 py-3 text-sm text-muted-foreground text-center", children: "Loading..." }) : Array.from(fieldGroups.entries()).map(([groupLabel, groupFields]) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dropdown_menu.DropdownMenu.Group, { children: [
225
+ children: fields.size === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "px-2 py-3 text-sm text-muted-foreground text-center", children: t.formatMessage(messages.loading) }) : Array.from(fieldGroups.entries()).map(([groupLabel, groupFields]) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dropdown_menu.DropdownMenu.Group, { children: [
66
226
  groupLabel && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown_menu.DropdownMenu.Label, { children: groupLabel }),
67
227
  Array.from(groupFields.values()).map((field) => {
68
228
  const hasFilter = value.some((f) => f.fieldId === field.id);
@@ -5,7 +5,8 @@ import {
5
5
  FilterItem,
6
6
  FilterMenu,
7
7
  FilterMenuSeparator
8
- } from "./chunk-RFCPJLIQ.mjs";
8
+ } from "./chunk-SJXRD3RO.mjs";
9
+ import "./chunk-YTYOFT33.mjs";
9
10
  import "./chunk-I3Z2T4N2.mjs";
10
11
  export {
11
12
  FilterGroup,
@@ -141,6 +141,58 @@ var messages = (0, import_i18n.defineMessages)({
141
141
  id: "filter.operator.is_not_empty",
142
142
  defaultMessage: "is not empty",
143
143
  description: "Operator: is not empty"
144
+ },
145
+ // Additional UI strings
146
+ loading: {
147
+ id: "filter.loading",
148
+ defaultMessage: "Loading...",
149
+ description: "Loading state text"
150
+ },
151
+ boolean_true: {
152
+ id: "filter.boolean_true",
153
+ defaultMessage: "Yes",
154
+ description: "Boolean true value display"
155
+ },
156
+ boolean_false: {
157
+ id: "filter.boolean_false",
158
+ defaultMessage: "No",
159
+ description: "Boolean false value display"
160
+ },
161
+ range_min: {
162
+ id: "filter.range_min",
163
+ defaultMessage: "Min",
164
+ description: "Minimum value placeholder for range inputs"
165
+ },
166
+ range_max: {
167
+ id: "filter.range_max",
168
+ defaultMessage: "Max",
169
+ description: "Maximum value placeholder for range inputs"
170
+ },
171
+ // Accessibility labels
172
+ remove_filter: {
173
+ id: "filter.remove_filter",
174
+ defaultMessage: "Remove {field} filter",
175
+ description: "Accessibility label for remove filter button"
176
+ },
177
+ operator_label: {
178
+ id: "filter.operator_label",
179
+ defaultMessage: "{field} operator",
180
+ description: "Accessibility label for operator select"
181
+ },
182
+ value_label: {
183
+ id: "filter.value_label",
184
+ defaultMessage: "{field} value",
185
+ description: "Accessibility label for value input"
186
+ },
187
+ value_min_label: {
188
+ id: "filter.value_min_label",
189
+ defaultMessage: "{field} minimum value",
190
+ description: "Accessibility label for minimum value input"
191
+ },
192
+ value_max_label: {
193
+ id: "filter.value_max_label",
194
+ defaultMessage: "{field} maximum value",
195
+ description: "Accessibility label for maximum value input"
144
196
  }
145
197
  });
146
198
 
@@ -2,8 +2,8 @@
2
2
  "use client";
3
3
  import {
4
4
  FilterTrigger
5
- } from "./chunk-EF4VI36D.mjs";
6
- import "./chunk-URDCG5NI.mjs";
5
+ } from "./chunk-UBTUCPOG.mjs";
6
+ import "./chunk-YTYOFT33.mjs";
7
7
  import "./chunk-I3Z2T4N2.mjs";
8
8
  export {
9
9
  FilterTrigger
@@ -161,6 +161,58 @@ var messages = (0, import_i18n.defineMessages)({
161
161
  id: "filter.operator.is_not_empty",
162
162
  defaultMessage: "is not empty",
163
163
  description: "Operator: is not empty"
164
+ },
165
+ // Additional UI strings
166
+ loading: {
167
+ id: "filter.loading",
168
+ defaultMessage: "Loading...",
169
+ description: "Loading state text"
170
+ },
171
+ boolean_true: {
172
+ id: "filter.boolean_true",
173
+ defaultMessage: "Yes",
174
+ description: "Boolean true value display"
175
+ },
176
+ boolean_false: {
177
+ id: "filter.boolean_false",
178
+ defaultMessage: "No",
179
+ description: "Boolean false value display"
180
+ },
181
+ range_min: {
182
+ id: "filter.range_min",
183
+ defaultMessage: "Min",
184
+ description: "Minimum value placeholder for range inputs"
185
+ },
186
+ range_max: {
187
+ id: "filter.range_max",
188
+ defaultMessage: "Max",
189
+ description: "Maximum value placeholder for range inputs"
190
+ },
191
+ // Accessibility labels
192
+ remove_filter: {
193
+ id: "filter.remove_filter",
194
+ defaultMessage: "Remove {field} filter",
195
+ description: "Accessibility label for remove filter button"
196
+ },
197
+ operator_label: {
198
+ id: "filter.operator_label",
199
+ defaultMessage: "{field} operator",
200
+ description: "Accessibility label for operator select"
201
+ },
202
+ value_label: {
203
+ id: "filter.value_label",
204
+ defaultMessage: "{field} value",
205
+ description: "Accessibility label for value input"
206
+ },
207
+ value_min_label: {
208
+ id: "filter.value_min_label",
209
+ defaultMessage: "{field} minimum value",
210
+ description: "Accessibility label for minimum value input"
211
+ },
212
+ value_max_label: {
213
+ id: "filter.value_max_label",
214
+ defaultMessage: "{field} maximum value",
215
+ description: "Accessibility label for maximum value input"
164
216
  }
165
217
  });
166
218
 
@@ -302,27 +354,29 @@ function ValueInput({
302
354
  placeholder: (_c = field.placeholder) != null ? _c : t.formatMessage(messages.select_value)
303
355
  }
304
356
  ) }),
305
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_select.Select.Content, { children: (_d = field.options) == null ? void 0 : _d.map((option) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
357
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_select.Select.Content, { children: (_d = field.options) == null ? void 0 : _d.map((option) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
306
358
  import_select.Select.Item,
307
359
  {
308
360
  value: option.value,
309
361
  disabled: option.disabled,
310
- children: [
311
- option.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mr-2 size-4", children: option.icon }),
362
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "flex items-center gap-2", children: [
363
+ option.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "size-4 flex-shrink-0", children: option.icon }),
312
364
  option.label
313
- ]
365
+ ] })
314
366
  },
315
367
  option.value
316
368
  )) })
317
369
  ] });
318
370
  case "multiselect": {
319
- const selectedValues = Array.isArray(value) ? value : [];
320
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-2 max-h-[200px] overflow-auto", children: (_e = field.options) == null ? void 0 : _e.map((option) => (
371
+ const selectedValues = Array.isArray(value) ? value.filter(
372
+ (v) => typeof v === "string" && v.length > 1
373
+ ) : [];
374
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-1 max-h-[200px] overflow-auto p-1", children: (_e = field.options) == null ? void 0 : _e.map((option) => (
321
375
  // biome-ignore lint/a11y/noLabelWithoutControl: Checkbox is a custom form control inside the label
322
376
  /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
323
377
  "label",
324
378
  {
325
- className: "flex items-center gap-2 cursor-pointer",
379
+ className: "flex items-center gap-2 cursor-pointer hover:bg-muted/50 rounded-md px-2 py-1.5",
326
380
  children: [
327
381
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
328
382
  import_checkbox.Checkbox,
@@ -335,11 +389,12 @@ function ValueInput({
335
389
  onChange(selectedValues.filter((v) => v !== option.value));
336
390
  }
337
391
  },
338
- disabled: option.disabled
392
+ disabled: option.disabled,
393
+ className: "flex-shrink-0 border-border bg-background data-[state=checked]:bg-primary data-[state=checked]:border-primary [&_svg]:text-primary-foreground"
339
394
  }
340
395
  ),
341
- option.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "size-4", children: option.icon }),
342
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-sm", children: option.label })
396
+ option.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "flex-shrink-0 [&>*]:size-5", children: option.icon }),
397
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-sm truncate", children: option.label })
343
398
  ]
344
399
  },
345
400
  option.value
@@ -2,10 +2,10 @@
2
2
  "use client";
3
3
  import {
4
4
  FilterValueEditor
5
- } from "./chunk-3ZBNWXRA.mjs";
6
- import "./chunk-URDCG5NI.mjs";
7
- import "./chunk-I3Z2T4N2.mjs";
5
+ } from "./chunk-WD7YU6IN.mjs";
8
6
  import "./chunk-PHESMHTT.mjs";
7
+ import "./chunk-YTYOFT33.mjs";
8
+ import "./chunk-I3Z2T4N2.mjs";
9
9
  export {
10
10
  FilterValueEditor
11
11
  };
package/dist/filter.d.mts CHANGED
@@ -4,6 +4,9 @@ import * as React from 'react';
4
4
  import { FilterI18nConfig } from './filter-i18n.mjs';
5
5
  import { FilterValue } from './filter-types.mjs';
6
6
 
7
+ /**
8
+ * @deprecated Use FilterBar instead. This component will be removed in a future version.
9
+ */
7
10
  interface FilterProps extends Omit<React.ComponentProps<"div">, "onChange" | "defaultValue">, FilterVariantProps {
8
11
  /** Controlled filter values */
9
12
  value?: FilterValue[];
@@ -16,6 +19,9 @@ interface FilterProps extends Omit<React.ComponentProps<"div">, "onChange" | "de
16
19
  /** Children */
17
20
  children?: React.ReactNode;
18
21
  }
22
+ /**
23
+ * @deprecated Use FilterBar instead. This component will be removed in a future version.
24
+ */
19
25
  declare function Filter(props: FilterProps): react_jsx_runtime.JSX.Element;
20
26
  declare namespace Filter {
21
27
  var displayName: string;
package/dist/filter.d.ts CHANGED
@@ -4,6 +4,9 @@ import * as React from 'react';
4
4
  import { FilterI18nConfig } from './filter-i18n.js';
5
5
  import { FilterValue } from './filter-types.js';
6
6
 
7
+ /**
8
+ * @deprecated Use FilterBar instead. This component will be removed in a future version.
9
+ */
7
10
  interface FilterProps extends Omit<React.ComponentProps<"div">, "onChange" | "defaultValue">, FilterVariantProps {
8
11
  /** Controlled filter values */
9
12
  value?: FilterValue[];
@@ -16,6 +19,9 @@ interface FilterProps extends Omit<React.ComponentProps<"div">, "onChange" | "de
16
19
  /** Children */
17
20
  children?: React.ReactNode;
18
21
  }
22
+ /**
23
+ * @deprecated Use FilterBar instead. This component will be removed in a future version.
24
+ */
19
25
  declare function Filter(props: FilterProps): react_jsx_runtime.JSX.Element;
20
26
  declare namespace Filter {
21
27
  var displayName: string;
package/dist/filter.mjs CHANGED
@@ -2,10 +2,10 @@
2
2
  "use client";
3
3
  import {
4
4
  Filter
5
- } from "./chunk-SH7DBK54.mjs";
5
+ } from "./chunk-LWDVRMCI.mjs";
6
+ import "./chunk-PHESMHTT.mjs";
6
7
  import "./chunk-3WNAREG6.mjs";
7
8
  import "./chunk-I3Z2T4N2.mjs";
8
- import "./chunk-PHESMHTT.mjs";
9
9
  export {
10
10
  Filter
11
11
  };
package/dist/index.d.mts CHANGED
@@ -5,7 +5,11 @@ export { FilterGroup, FilterGroupProps, FilterItem, FilterItemProps, FilterMenu,
5
5
  export { FilterTrigger, FilterTriggerProps } from './filter-trigger.mjs';
6
6
  export { FilterEditorRenderProps, FilterFieldConfig, FilterFieldType, FilterOperator, FilterOption, FilterValue, FilterValueRenderProps } from './filter-types.mjs';
7
7
  export { FilterValueEditor } from './filter-value-editor.mjs';
8
+ export { FilterBar, FilterBarProps } from './filter-bar.mjs';
9
+ export { SearchFilterBar, SearchFilterBarProps } from './search-filter-bar.mjs';
10
+ export { filterBarMessages } from './filter-bar-messages.mjs';
8
11
  export { messages as filterMessages } from './messages.mjs';
12
+ export { FilterBarCustomRendererProps, FilterBarFieldConfig, FilterBarFieldType, FilterBarI18nConfig, FilterBarInputValue, FilterBarOperator, FilterBarOption, FilterBarValidation, FilterBarValue } from './filter-bar-types.mjs';
9
13
  import 'react/jsx-runtime';
10
14
  import '@kopexa/theme';
11
15
  import 'react';
package/dist/index.d.ts CHANGED
@@ -5,7 +5,11 @@ export { FilterGroup, FilterGroupProps, FilterItem, FilterItemProps, FilterMenu,
5
5
  export { FilterTrigger, FilterTriggerProps } from './filter-trigger.js';
6
6
  export { FilterEditorRenderProps, FilterFieldConfig, FilterFieldType, FilterOperator, FilterOption, FilterValue, FilterValueRenderProps } from './filter-types.js';
7
7
  export { FilterValueEditor } from './filter-value-editor.js';
8
+ export { FilterBar, FilterBarProps } from './filter-bar.js';
9
+ export { SearchFilterBar, SearchFilterBarProps } from './search-filter-bar.js';
10
+ export { filterBarMessages } from './filter-bar-messages.js';
8
11
  export { messages as filterMessages } from './messages.js';
12
+ export { FilterBarCustomRendererProps, FilterBarFieldConfig, FilterBarFieldType, FilterBarI18nConfig, FilterBarInputValue, FilterBarOperator, FilterBarOption, FilterBarValidation, FilterBarValue } from './filter-bar-types.js';
9
13
  import 'react/jsx-runtime';
10
14
  import '@kopexa/theme';
11
15
  import 'react';