@nestledjs/data-browser 0.1.11 → 0.1.13

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.
@@ -1,107 +1,53 @@
1
- import { jsxDEV } from "react/jsx-dev-runtime";
2
1
  import { getItemDisplayName } from "../../utils/string-utils.js";
2
+ var _jsxFileName = "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx";
3
3
  function RelationDropdownButton({
4
4
  currentItem,
5
5
  relatedModelName,
6
6
  isOpen,
7
7
  onClick
8
8
  }) {
9
- return /* @__PURE__ */ jsxDEV(
10
- "button",
11
- {
12
- type: "button",
13
- onClick,
14
- className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm text-left bg-white flex items-center justify-between",
15
- children: [
16
- /* @__PURE__ */ jsxDEV("span", { className: currentItem ? "text-gray-900" : "text-gray-500", children: currentItem ? getItemDisplayName(currentItem) : `Select ${relatedModelName.toLowerCase()}...` }, void 0, false, {
17
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
18
- lineNumber: 21,
19
- columnNumber: 11
20
- }, this),
21
- /* @__PURE__ */ jsxDEV(
22
- "svg",
23
- {
24
- className: `w-4 h-4 text-gray-400 transition-transform ${isOpen ? "rotate-180" : ""}`,
25
- fill: "none",
26
- stroke: "currentColor",
27
- viewBox: "0 0 24 24",
28
- children: /* @__PURE__ */ jsxDEV("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }, void 0, false, {
29
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
30
- lineNumber: 30,
31
- columnNumber: 13
32
- }, this)
33
- },
34
- void 0,
35
- false,
36
- {
37
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
38
- lineNumber: 24,
39
- columnNumber: 7
40
- },
41
- this
42
- )
43
- ]
44
- },
45
- void 0,
46
- true,
47
- {
48
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
49
- lineNumber: 16,
50
- columnNumber: 9
51
- },
52
- this
53
- );
9
+ return /* @__PURE__ */ React.createElement("button", { type: "button", onClick, className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm text-left bg-white flex items-center justify-between", __self: this, __source: {
10
+ fileName: _jsxFileName,
11
+ lineNumber: 16,
12
+ columnNumber: 9
13
+ } }, /* @__PURE__ */ React.createElement("span", { className: currentItem ? "text-gray-900" : "text-gray-500", __self: this, __source: {
14
+ fileName: _jsxFileName,
15
+ lineNumber: 21,
16
+ columnNumber: 11
17
+ } }, currentItem ? getItemDisplayName(currentItem) : `Select ${relatedModelName.toLowerCase()}...`), /* @__PURE__ */ React.createElement("svg", { className: `w-4 h-4 text-gray-400 transition-transform ${isOpen ? "rotate-180" : ""}`, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", __self: this, __source: {
18
+ fileName: _jsxFileName,
19
+ lineNumber: 24,
20
+ columnNumber: 7
21
+ } }, /* @__PURE__ */ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7", __self: this, __source: {
22
+ fileName: _jsxFileName,
23
+ lineNumber: 30,
24
+ columnNumber: 13
25
+ } })));
54
26
  }
55
27
  function RelationSearchInput({
56
28
  searchTerm,
57
29
  onSearchChange,
58
30
  relatedModelName
59
31
  }) {
60
- return /* @__PURE__ */ jsxDEV("div", { className: "p-2", children: /* @__PURE__ */ jsxDEV(
61
- "input",
62
- {
63
- type: "text",
64
- placeholder: `Search ${relatedModelName.toLowerCase()}...`,
65
- value: searchTerm,
66
- onChange: (e) => onSearchChange(e.target.value),
67
- className: "w-full px-2 py-1 text-sm border border-gray-300 rounded focus:outline-none focus:ring-1 focus:ring-green-web",
68
- autoFocus: true
69
- },
70
- void 0,
71
- false,
72
- {
73
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
74
- lineNumber: 48,
75
- columnNumber: 15
76
- },
77
- this
78
- ) }, void 0, false, {
79
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
32
+ return /* @__PURE__ */ React.createElement("div", { className: "p-2", __self: this, __source: {
33
+ fileName: _jsxFileName,
80
34
  lineNumber: 47,
81
35
  columnNumber: 13
82
- }, this);
36
+ } }, /* @__PURE__ */ React.createElement("input", { type: "text", placeholder: `Search ${relatedModelName.toLowerCase()}...`, value: searchTerm, onChange: (e) => onSearchChange(e.target.value), className: "w-full px-2 py-1 text-sm border border-gray-300 rounded focus:outline-none focus:ring-1 focus:ring-green-web", autoFocus: true, __self: this, __source: {
37
+ fileName: _jsxFileName,
38
+ lineNumber: 48,
39
+ columnNumber: 15
40
+ } }));
83
41
  }
84
42
  function RelationItem({
85
43
  item,
86
44
  onSelect
87
45
  }) {
88
- return /* @__PURE__ */ jsxDEV(
89
- "button",
90
- {
91
- type: "button",
92
- onClick: () => onSelect(item),
93
- className: "w-full px-3 py-2 text-left text-sm hover:bg-gray-100 focus:bg-gray-100 transition-colors",
94
- children: getItemDisplayName(item)
95
- },
96
- void 0,
97
- false,
98
- {
99
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
100
- lineNumber: 69,
101
- columnNumber: 5
102
- },
103
- this
104
- );
46
+ return /* @__PURE__ */ React.createElement("button", { type: "button", onClick: () => onSelect(item), className: "w-full px-3 py-2 text-left text-sm hover:bg-gray-100 focus:bg-gray-100 transition-colors", __self: this, __source: {
47
+ fileName: _jsxFileName,
48
+ lineNumber: 69,
49
+ columnNumber: 5
50
+ } }, getItemDisplayName(item));
105
51
  }
106
52
  function RelationItemList({
107
53
  items,
@@ -110,100 +56,63 @@ function RelationItemList({
110
56
  onSelect,
111
57
  onClear
112
58
  }) {
113
- return /* @__PURE__ */ jsxDEV("div", { className: "max-h-48 overflow-y-auto", children: [
114
- /* @__PURE__ */ jsxDEV(
115
- "button",
116
- {
117
- type: "button",
118
- onClick: onClear,
119
- className: "w-full px-3 py-2 text-left text-sm hover:bg-gray-100 text-gray-500 border-b border-gray-200",
120
- children: "Clear selection"
121
- },
122
- void 0,
123
- false,
124
- {
125
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
126
- lineNumber: 95,
127
- columnNumber: 15
128
- },
129
- this
130
- ),
131
- error ? /* @__PURE__ */ jsxDEV("div", { className: "px-3 py-2 text-sm text-red-600", children: [
132
- /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
133
- /* @__PURE__ */ jsxDEV("svg", { className: "w-4 h-4 mr-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsxDEV("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }, void 0, false, {
134
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
135
- lineNumber: 107,
136
- columnNumber: 15
137
- }, this) }, void 0, false, {
138
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
139
- lineNumber: 106,
140
- columnNumber: 13
141
- }, this),
142
- "Failed to load options"
143
- ] }, void 0, true, {
144
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
145
- lineNumber: 105,
146
- columnNumber: 11
147
- }, this),
148
- /* @__PURE__ */ jsxDEV("div", { className: "text-xs text-gray-500 mt-1", children: error.networkError ? "Network error" : "Please try again" }, void 0, false, {
149
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
150
- lineNumber: 111,
151
- columnNumber: 11
152
- }, this)
153
- ] }, void 0, true, {
154
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
155
- lineNumber: 104,
156
- columnNumber: 9
157
- }, this) : loading ? /* @__PURE__ */ jsxDEV("div", { className: "px-3 py-2 text-sm text-gray-500", children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
158
- /* @__PURE__ */ jsxDEV("svg", { className: "animate-spin -ml-1 mr-2 h-4 w-4 text-gray-500", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", children: [
159
- /* @__PURE__ */ jsxDEV("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }, void 0, false, {
160
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
161
- lineNumber: 119,
162
- columnNumber: 15
163
- }, this),
164
- /* @__PURE__ */ jsxDEV("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" }, void 0, false, {
165
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
166
- lineNumber: 120,
167
- columnNumber: 15
168
- }, this)
169
- ] }, void 0, true, {
170
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
171
- lineNumber: 118,
172
- columnNumber: 13
173
- }, this),
174
- "Loading..."
175
- ] }, void 0, true, {
176
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
177
- lineNumber: 117,
178
- columnNumber: 11
179
- }, this) }, void 0, false, {
180
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
181
- lineNumber: 116,
182
- columnNumber: 9
183
- }, this) : items.length === 0 ? /* @__PURE__ */ jsxDEV("div", { className: "px-3 py-2 text-sm text-gray-500", children: "No items found" }, void 0, false, {
184
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
185
- lineNumber: 126,
186
- columnNumber: 17
187
- }, this) : items.map((item) => /* @__PURE__ */ jsxDEV(
188
- RelationItem,
189
- {
190
- item,
191
- onSelect
192
- },
193
- item.id,
194
- false,
195
- {
196
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
197
- lineNumber: 129,
198
- columnNumber: 11
199
- },
200
- this
201
- ))
202
- ] }, void 0, true, {
203
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
59
+ return /* @__PURE__ */ React.createElement("div", { className: "max-h-48 overflow-y-auto", __self: this, __source: {
60
+ fileName: _jsxFileName,
204
61
  lineNumber: 94,
205
62
  columnNumber: 13
206
- }, this);
63
+ } }, /* @__PURE__ */ React.createElement("button", { type: "button", onClick: onClear, className: "w-full px-3 py-2 text-left text-sm hover:bg-gray-100 text-gray-500 border-b border-gray-200", __self: this, __source: {
64
+ fileName: _jsxFileName,
65
+ lineNumber: 95,
66
+ columnNumber: 15
67
+ } }, "Clear selection"), error && /* @__PURE__ */ React.createElement("div", { className: "px-3 py-2 text-sm text-red-600", __self: this, __source: {
68
+ fileName: _jsxFileName,
69
+ lineNumber: 104,
70
+ columnNumber: 9
71
+ } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
72
+ fileName: _jsxFileName,
73
+ lineNumber: 105,
74
+ columnNumber: 11
75
+ } }, /* @__PURE__ */ React.createElement("svg", { className: "w-4 h-4 mr-2", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", __self: this, __source: {
76
+ fileName: _jsxFileName,
77
+ lineNumber: 106,
78
+ columnNumber: 13
79
+ } }, /* @__PURE__ */ React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z", __self: this, __source: {
80
+ fileName: _jsxFileName,
81
+ lineNumber: 107,
82
+ columnNumber: 15
83
+ } })), "Failed to load options"), /* @__PURE__ */ React.createElement("div", { className: "text-xs text-gray-500 mt-1", __self: this, __source: {
84
+ fileName: _jsxFileName,
85
+ lineNumber: 111,
86
+ columnNumber: 11
87
+ } }, error.networkError ? "Network error" : "Please try again")), !error && loading && /* @__PURE__ */ React.createElement("div", { className: "px-3 py-2 text-sm text-gray-500", __self: this, __source: {
88
+ fileName: _jsxFileName,
89
+ lineNumber: 117,
90
+ columnNumber: 9
91
+ } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
92
+ fileName: _jsxFileName,
93
+ lineNumber: 118,
94
+ columnNumber: 11
95
+ } }, /* @__PURE__ */ React.createElement("svg", { className: "animate-spin -ml-1 mr-2 h-4 w-4 text-gray-500", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", __self: this, __source: {
96
+ fileName: _jsxFileName,
97
+ lineNumber: 119,
98
+ columnNumber: 13
99
+ } }, /* @__PURE__ */ React.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4", __self: this, __source: {
100
+ fileName: _jsxFileName,
101
+ lineNumber: 120,
102
+ columnNumber: 15
103
+ } }), /* @__PURE__ */ React.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", __self: this, __source: {
104
+ fileName: _jsxFileName,
105
+ lineNumber: 121,
106
+ columnNumber: 15
107
+ } })), "Loading...")), !error && !loading && items.length === 0 && /* @__PURE__ */ React.createElement("div", { className: "px-3 py-2 text-sm text-gray-500", __self: this, __source: {
108
+ fileName: _jsxFileName,
109
+ lineNumber: 128,
110
+ columnNumber: 9
111
+ } }, "No items found"), !error && !loading && items.length > 0 && items.map((item) => /* @__PURE__ */ React.createElement(RelationItem, { key: item.id, item, onSelect, __self: this, __source: {
112
+ fileName: _jsxFileName,
113
+ lineNumber: 132,
114
+ columnNumber: 11
115
+ } })));
207
116
  }
208
117
  function RelationDropdownContent({
209
118
  searchTerm,
@@ -215,46 +124,19 @@ function RelationDropdownContent({
215
124
  onSelect,
216
125
  onClear
217
126
  }) {
218
- return /* @__PURE__ */ jsxDEV("div", { className: "absolute z-10 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg", children: [
219
- /* @__PURE__ */ jsxDEV(
220
- RelationSearchInput,
221
- {
222
- searchTerm,
223
- onSearchChange,
224
- relatedModelName
225
- },
226
- void 0,
227
- false,
228
- {
229
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
230
- lineNumber: 162,
231
- columnNumber: 7
232
- },
233
- this
234
- ),
235
- /* @__PURE__ */ jsxDEV(
236
- RelationItemList,
237
- {
238
- items,
239
- loading,
240
- error,
241
- onSelect,
242
- onClear
243
- },
244
- void 0,
245
- false,
246
- {
247
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
248
- lineNumber: 167,
249
- columnNumber: 7
250
- },
251
- this
252
- )
253
- ] }, void 0, true, {
254
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationComponents.tsx",
255
- lineNumber: 161,
127
+ return /* @__PURE__ */ React.createElement("div", { className: "absolute z-10 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg", __self: this, __source: {
128
+ fileName: _jsxFileName,
129
+ lineNumber: 164,
256
130
  columnNumber: 5
257
- }, this);
131
+ } }, /* @__PURE__ */ React.createElement(RelationSearchInput, { searchTerm, onSearchChange, relatedModelName, __self: this, __source: {
132
+ fileName: _jsxFileName,
133
+ lineNumber: 165,
134
+ columnNumber: 7
135
+ } }), /* @__PURE__ */ React.createElement(RelationItemList, { items, loading, error, onSelect, onClear, __self: this, __source: {
136
+ fileName: _jsxFileName,
137
+ lineNumber: 170,
138
+ columnNumber: 7
139
+ } }));
258
140
  }
259
141
  export {
260
142
  RelationDropdownButton,
@@ -1,9 +1,9 @@
1
- import { jsxDEV } from "react/jsx-dev-runtime";
2
1
  import { useState, useRef, useCallback, useMemo } from "react";
3
2
  import { useClickOutside } from "../../hooks/useClickOutside.js";
4
3
  import { useRelationData } from "../../hooks/useRelationData.js";
5
4
  import { formatFieldName } from "../../utils/string-utils.js";
6
5
  import { RelationDropdownButton, RelationDropdownContent } from "./RelationComponents.js";
6
+ var _jsxFileName = "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx";
7
7
  function RelationFilterField({
8
8
  fieldName,
9
9
  relatedModelName,
@@ -17,13 +17,23 @@ function RelationFilterField({
17
17
  setIsOpen(false);
18
18
  }, []);
19
19
  useClickOutside(dropdownRef, handleCloseDropdown, isOpen);
20
- const { relatedItems, loading, error: relationError, hasDocument } = useRelationData(relatedModelName, searchTerm, isOpen);
21
- const currentItem = useMemo(
22
- () => (currentValue == null ? void 0 : currentValue.id) ? relatedItems.find((item) => item.id === currentValue.id) : null,
23
- [currentValue == null ? void 0 : currentValue.id, relatedItems]
20
+ const {
21
+ relatedItems,
22
+ loading,
23
+ error: relationError,
24
+ hasDocument
25
+ } = useRelationData(
26
+ relatedModelName,
27
+ searchTerm,
28
+ isOpen,
29
+ currentValue == null ? void 0 : currentValue.id
30
+ // Pass current value ID so it can be loaded even when dropdown is closed
24
31
  );
32
+ const currentItem = useMemo(() => (currentValue == null ? void 0 : currentValue.id) ? relatedItems.find((item) => item.id === currentValue.id) : null, [currentValue == null ? void 0 : currentValue.id, relatedItems]);
25
33
  const handleSelect = useCallback((item) => {
26
- onChange({ id: item.id });
34
+ onChange({
35
+ id: item.id
36
+ });
27
37
  setIsOpen(false);
28
38
  setSearchTerm("");
29
39
  }, [onChange]);
@@ -39,94 +49,43 @@ function RelationFilterField({
39
49
  }
40
50
  }, [isOpen]);
41
51
  if (!hasDocument) {
42
- return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", children: [
43
- /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: [
44
- formatFieldName(fieldName),
45
- " ID"
46
- ] }, void 0, true, {
47
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
48
- lineNumber: 64,
49
- columnNumber: 9
50
- }, this),
51
- /* @__PURE__ */ jsxDEV(
52
- "input",
53
- {
54
- type: "text",
55
- value: (currentValue == null ? void 0 : currentValue.id) || "",
56
- onChange: (e) => onChange(e.target.value ? { id: e.target.value } : void 0),
57
- placeholder: "Enter ID...",
58
- className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm"
59
- },
60
- void 0,
61
- false,
62
- {
63
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
64
- lineNumber: 67,
65
- columnNumber: 9
66
- },
67
- this
68
- )
69
- ] }, void 0, true, {
70
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
71
- lineNumber: 63,
52
+ return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", __self: this, __source: {
53
+ fileName: _jsxFileName,
54
+ lineNumber: 68,
72
55
  columnNumber: 7
73
- }, this);
56
+ } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
57
+ fileName: _jsxFileName,
58
+ lineNumber: 69,
59
+ columnNumber: 9
60
+ } }, formatFieldName(fieldName), " ID"), /* @__PURE__ */ React.createElement("input", { type: "text", value: (currentValue == null ? void 0 : currentValue.id) || "", onChange: (e) => onChange(e.target.value ? {
61
+ id: e.target.value
62
+ } : void 0), placeholder: "Enter ID...", className: "w-full px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-green-web focus:border-green-web text-sm", __self: this, __source: {
63
+ fileName: _jsxFileName,
64
+ lineNumber: 72,
65
+ columnNumber: 9
66
+ } }));
74
67
  }
75
- return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", ref: dropdownRef, children: [
76
- /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: formatFieldName(fieldName) }, void 0, false, {
77
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
78
- lineNumber: 80,
79
- columnNumber: 7
80
- }, this),
81
- /* @__PURE__ */ jsxDEV("div", { className: "relative", children: [
82
- /* @__PURE__ */ jsxDEV(
83
- RelationDropdownButton,
84
- {
85
- currentItem,
86
- relatedModelName,
87
- isOpen,
88
- onClick: handleToggleOpen
89
- },
90
- void 0,
91
- false,
92
- {
93
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
94
- lineNumber: 84,
95
- columnNumber: 9
96
- },
97
- this
98
- ),
99
- isOpen && /* @__PURE__ */ jsxDEV(
100
- RelationDropdownContent,
101
- {
102
- searchTerm,
103
- onSearchChange: setSearchTerm,
104
- relatedModelName,
105
- items: relatedItems,
106
- loading,
107
- error: relationError,
108
- onSelect: handleSelect,
109
- onClear: handleClear
110
- },
111
- void 0,
112
- false,
113
- {
114
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
115
- lineNumber: 92,
116
- columnNumber: 11
117
- },
118
- this
119
- )
120
- ] }, void 0, true, {
121
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
122
- lineNumber: 83,
123
- columnNumber: 7
124
- }, this)
125
- ] }, void 0, true, {
126
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/filters/RelationFilterField.tsx",
127
- lineNumber: 79,
68
+ return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", ref: dropdownRef, __self: this, __source: {
69
+ fileName: _jsxFileName,
70
+ lineNumber: 84,
128
71
  columnNumber: 5
129
- }, this);
72
+ } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
73
+ fileName: _jsxFileName,
74
+ lineNumber: 85,
75
+ columnNumber: 7
76
+ } }, formatFieldName(fieldName)), /* @__PURE__ */ React.createElement("div", { className: "relative", __self: this, __source: {
77
+ fileName: _jsxFileName,
78
+ lineNumber: 88,
79
+ columnNumber: 7
80
+ } }, /* @__PURE__ */ React.createElement(RelationDropdownButton, { currentItem, relatedModelName, isOpen, onClick: handleToggleOpen, __self: this, __source: {
81
+ fileName: _jsxFileName,
82
+ lineNumber: 89,
83
+ columnNumber: 9
84
+ } }), isOpen && /* @__PURE__ */ React.createElement(RelationDropdownContent, { searchTerm, onSearchChange: setSearchTerm, relatedModelName, items: relatedItems, loading, error: relationError, onSelect: handleSelect, onClear: handleClear, __self: this, __source: {
85
+ fileName: _jsxFileName,
86
+ lineNumber: 97,
87
+ columnNumber: 11
88
+ } })));
130
89
  }
131
90
  export {
132
91
  RelationFilterField
@@ -1,2 +1,3 @@
1
1
  export * from './filters';
2
2
  export * from './shared';
3
+ export * from './RelationFieldWrapper';