@nestledjs/data-browser 0.1.17 → 0.1.18

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,53 +1,107 @@
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
1
2
  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__ */ 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
- } })));
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/data-browser/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/data-browser/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/data-browser/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/data-browser/src/lib/components/filters/RelationComponents.tsx",
49
+ lineNumber: 16,
50
+ columnNumber: 9
51
+ },
52
+ this
53
+ );
26
54
  }
27
55
  function RelationSearchInput({
28
56
  searchTerm,
29
57
  onSearchChange,
30
58
  relatedModelName
31
59
  }) {
32
- return /* @__PURE__ */ React.createElement("div", { className: "p-2", __self: this, __source: {
33
- fileName: _jsxFileName,
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/data-browser/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/data-browser/src/lib/components/filters/RelationComponents.tsx",
34
80
  lineNumber: 47,
35
81
  columnNumber: 13
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
- } }));
82
+ }, this);
41
83
  }
42
84
  function RelationItem({
43
85
  item,
44
86
  onSelect
45
87
  }) {
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));
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/data-browser/src/lib/components/filters/RelationComponents.tsx",
100
+ lineNumber: 69,
101
+ columnNumber: 5
102
+ },
103
+ this
104
+ );
51
105
  }
52
106
  function RelationItemList({
53
107
  items,
@@ -56,63 +110,103 @@ function RelationItemList({
56
110
  onSelect,
57
111
  onClear
58
112
  }) {
59
- return /* @__PURE__ */ React.createElement("div", { className: "max-h-48 overflow-y-auto", __self: this, __source: {
60
- fileName: _jsxFileName,
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/data-browser/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/data-browser/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/data-browser/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/data-browser/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/data-browser/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/data-browser/src/lib/components/filters/RelationComponents.tsx",
155
+ lineNumber: 104,
156
+ columnNumber: 9
157
+ }, this),
158
+ !error && loading && /* @__PURE__ */ jsxDEV("div", { className: "px-3 py-2 text-sm text-gray-500", children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
159
+ /* @__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: [
160
+ /* @__PURE__ */ jsxDEV("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }, void 0, false, {
161
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
162
+ lineNumber: 120,
163
+ columnNumber: 15
164
+ }, this),
165
+ /* @__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, {
166
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
167
+ lineNumber: 121,
168
+ columnNumber: 15
169
+ }, this)
170
+ ] }, void 0, true, {
171
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
172
+ lineNumber: 119,
173
+ columnNumber: 13
174
+ }, this),
175
+ "Loading..."
176
+ ] }, void 0, true, {
177
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
178
+ lineNumber: 118,
179
+ columnNumber: 11
180
+ }, this) }, void 0, false, {
181
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
182
+ lineNumber: 117,
183
+ columnNumber: 9
184
+ }, this),
185
+ !error && !loading && items.length === 0 && /* @__PURE__ */ jsxDEV("div", { className: "px-3 py-2 text-sm text-gray-500", children: "No items found" }, void 0, false, {
186
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
187
+ lineNumber: 128,
188
+ columnNumber: 9
189
+ }, this),
190
+ !error && !loading && items.length > 0 && items.map((item) => /* @__PURE__ */ jsxDEV(
191
+ RelationItem,
192
+ {
193
+ item,
194
+ onSelect
195
+ },
196
+ item.id,
197
+ false,
198
+ {
199
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
200
+ lineNumber: 132,
201
+ columnNumber: 11
202
+ },
203
+ this
204
+ ))
205
+ ] }, void 0, true, {
206
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
61
207
  lineNumber: 94,
62
208
  columnNumber: 13
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
- } })));
209
+ }, this);
116
210
  }
117
211
  function RelationDropdownContent({
118
212
  searchTerm,
@@ -124,19 +218,46 @@ function RelationDropdownContent({
124
218
  onSelect,
125
219
  onClear
126
220
  }) {
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,
221
+ return /* @__PURE__ */ jsxDEV("div", { className: "absolute z-10 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg", children: [
222
+ /* @__PURE__ */ jsxDEV(
223
+ RelationSearchInput,
224
+ {
225
+ searchTerm,
226
+ onSearchChange,
227
+ relatedModelName
228
+ },
229
+ void 0,
230
+ false,
231
+ {
232
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
233
+ lineNumber: 165,
234
+ columnNumber: 7
235
+ },
236
+ this
237
+ ),
238
+ /* @__PURE__ */ jsxDEV(
239
+ RelationItemList,
240
+ {
241
+ items,
242
+ loading,
243
+ error,
244
+ onSelect,
245
+ onClear
246
+ },
247
+ void 0,
248
+ false,
249
+ {
250
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
251
+ lineNumber: 170,
252
+ columnNumber: 7
253
+ },
254
+ this
255
+ )
256
+ ] }, void 0, true, {
257
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationComponents.tsx",
129
258
  lineNumber: 164,
130
259
  columnNumber: 5
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
- } }));
260
+ }, this);
140
261
  }
141
262
  export {
142
263
  RelationDropdownButton,
@@ -1,9 +1,9 @@
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
1
2
  import { useState, useRef, useCallback, useMemo } from "react";
2
3
  import { useClickOutside } from "../../hooks/useClickOutside.js";
3
4
  import { useRelationData } from "../../hooks/useRelationData.js";
4
5
  import { formatFieldName } from "../../utils/string-utils.js";
5
6
  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,23 +17,19 @@ function RelationFilterField({
17
17
  setIsOpen(false);
18
18
  }, []);
19
19
  useClickOutside(dropdownRef, handleCloseDropdown, isOpen);
20
- const {
21
- relatedItems,
22
- loading,
23
- error: relationError,
24
- hasDocument
25
- } = useRelationData(
20
+ const { relatedItems, loading, error: relationError, hasDocument } = useRelationData(
26
21
  relatedModelName,
27
22
  searchTerm,
28
23
  isOpen,
29
24
  currentValue == null ? void 0 : currentValue.id
30
25
  // Pass current value ID so it can be loaded even when dropdown is closed
31
26
  );
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]);
27
+ const currentItem = useMemo(
28
+ () => (currentValue == null ? void 0 : currentValue.id) ? relatedItems.find((item) => item.id === currentValue.id) : null,
29
+ [currentValue == null ? void 0 : currentValue.id, relatedItems]
30
+ );
33
31
  const handleSelect = useCallback((item) => {
34
- onChange({
35
- id: item.id
36
- });
32
+ onChange({ id: item.id });
37
33
  setIsOpen(false);
38
34
  setSearchTerm("");
39
35
  }, [onChange]);
@@ -49,43 +45,94 @@ function RelationFilterField({
49
45
  }
50
46
  }, [isOpen]);
51
47
  if (!hasDocument) {
52
- return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", __self: this, __source: {
53
- fileName: _jsxFileName,
48
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", children: [
49
+ /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: [
50
+ formatFieldName(fieldName),
51
+ " ID"
52
+ ] }, void 0, true, {
53
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
54
+ lineNumber: 69,
55
+ columnNumber: 9
56
+ }, this),
57
+ /* @__PURE__ */ jsxDEV(
58
+ "input",
59
+ {
60
+ type: "text",
61
+ value: (currentValue == null ? void 0 : currentValue.id) || "",
62
+ onChange: (e) => onChange(e.target.value ? { id: e.target.value } : void 0),
63
+ placeholder: "Enter ID...",
64
+ 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"
65
+ },
66
+ void 0,
67
+ false,
68
+ {
69
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
70
+ lineNumber: 72,
71
+ columnNumber: 9
72
+ },
73
+ this
74
+ )
75
+ ] }, void 0, true, {
76
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
54
77
  lineNumber: 68,
55
78
  columnNumber: 7
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
- } }));
79
+ }, this);
67
80
  }
68
- return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", ref: dropdownRef, __self: this, __source: {
69
- fileName: _jsxFileName,
81
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-1", ref: dropdownRef, children: [
82
+ /* @__PURE__ */ jsxDEV("label", { className: "block text-sm font-medium text-gray-700", children: formatFieldName(fieldName) }, void 0, false, {
83
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
84
+ lineNumber: 85,
85
+ columnNumber: 7
86
+ }, this),
87
+ /* @__PURE__ */ jsxDEV("div", { className: "relative", children: [
88
+ /* @__PURE__ */ jsxDEV(
89
+ RelationDropdownButton,
90
+ {
91
+ currentItem,
92
+ relatedModelName,
93
+ isOpen,
94
+ onClick: handleToggleOpen
95
+ },
96
+ void 0,
97
+ false,
98
+ {
99
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
100
+ lineNumber: 89,
101
+ columnNumber: 9
102
+ },
103
+ this
104
+ ),
105
+ isOpen && /* @__PURE__ */ jsxDEV(
106
+ RelationDropdownContent,
107
+ {
108
+ searchTerm,
109
+ onSearchChange: setSearchTerm,
110
+ relatedModelName,
111
+ items: relatedItems,
112
+ loading,
113
+ error: relationError,
114
+ onSelect: handleSelect,
115
+ onClear: handleClear
116
+ },
117
+ void 0,
118
+ false,
119
+ {
120
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
121
+ lineNumber: 97,
122
+ columnNumber: 11
123
+ },
124
+ this
125
+ )
126
+ ] }, void 0, true, {
127
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
128
+ lineNumber: 88,
129
+ columnNumber: 7
130
+ }, this)
131
+ ] }, void 0, true, {
132
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/components/filters/RelationFilterField.tsx",
70
133
  lineNumber: 84,
71
134
  columnNumber: 5
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
- } })));
135
+ }, this);
89
136
  }
90
137
  export {
91
138
  RelationFilterField