@nestledjs/data-browser 0.1.9 → 0.1.11

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/admin-data/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/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
+ );
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/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",
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/admin-data/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,100 @@ 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/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",
61
204
  lineNumber: 94,
62
205
  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")) : loading ? /* @__PURE__ */ React.createElement("div", { className: "px-3 py-2 text-sm text-gray-500", __self: this, __source: {
88
- fileName: _jsxFileName,
89
- lineNumber: 116,
90
- columnNumber: 9
91
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
92
- fileName: _jsxFileName,
93
- lineNumber: 117,
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: 118,
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: 119,
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: 120,
106
- columnNumber: 15
107
- } })), "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: 126,
110
- columnNumber: 17
111
- } }, "No items found") : items.map((item) => /* @__PURE__ */ React.createElement(RelationItem, { key: item.id, item, onSelect, __self: this, __source: {
112
- fileName: _jsxFileName,
113
- lineNumber: 129,
114
- columnNumber: 11
115
- } })));
206
+ }, this);
116
207
  }
117
208
  function RelationDropdownContent({
118
209
  searchTerm,
@@ -124,19 +215,46 @@ function RelationDropdownContent({
124
215
  onSelect,
125
216
  onClear
126
217
  }) {
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,
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",
129
255
  lineNumber: 161,
130
256
  columnNumber: 5
131
- } }, /* @__PURE__ */ React.createElement(RelationSearchInput, { searchTerm, onSearchChange, relatedModelName, __self: this, __source: {
132
- fileName: _jsxFileName,
133
- lineNumber: 162,
134
- columnNumber: 7
135
- } }), /* @__PURE__ */ React.createElement(RelationItemList, { items, loading, error, onSelect, onClear, __self: this, __source: {
136
- fileName: _jsxFileName,
137
- lineNumber: 167,
138
- columnNumber: 7
139
- } }));
257
+ }, this);
140
258
  }
141
259
  export {
142
260
  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/admin-data/src/lib/components/filters/RelationFilterField.tsx";
7
7
  function RelationFilterField({
8
8
  fieldName,
9
9
  relatedModelName,
@@ -17,17 +17,13 @@ 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(relatedModelName, searchTerm, isOpen);
26
- const currentItem = useMemo(() => (currentValue == null ? void 0 : currentValue.id) ? relatedItems.find((item) => item.id === currentValue.id) : null, [currentValue == null ? void 0 : currentValue.id, relatedItems]);
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]
24
+ );
27
25
  const handleSelect = useCallback((item) => {
28
- onChange({
29
- id: item.id
30
- });
26
+ onChange({ id: item.id });
31
27
  setIsOpen(false);
32
28
  setSearchTerm("");
33
29
  }, [onChange]);
@@ -43,43 +39,94 @@ function RelationFilterField({
43
39
  }
44
40
  }, [isOpen]);
45
41
  if (!hasDocument) {
46
- return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", __self: this, __source: {
47
- fileName: _jsxFileName,
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",
48
71
  lineNumber: 63,
49
72
  columnNumber: 7
50
- } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
51
- fileName: _jsxFileName,
52
- lineNumber: 64,
53
- columnNumber: 9
54
- } }, formatFieldName(fieldName), " ID"), /* @__PURE__ */ React.createElement("input", { type: "text", value: (currentValue == null ? void 0 : currentValue.id) || "", onChange: (e) => onChange(e.target.value ? {
55
- id: e.target.value
56
- } : 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: {
57
- fileName: _jsxFileName,
58
- lineNumber: 67,
59
- columnNumber: 9
60
- } }));
73
+ }, this);
61
74
  }
62
- return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", ref: dropdownRef, __self: this, __source: {
63
- fileName: _jsxFileName,
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",
64
127
  lineNumber: 79,
65
128
  columnNumber: 5
66
- } }, /* @__PURE__ */ React.createElement("label", { className: "block text-sm font-medium text-gray-700", __self: this, __source: {
67
- fileName: _jsxFileName,
68
- lineNumber: 80,
69
- columnNumber: 7
70
- } }, formatFieldName(fieldName)), /* @__PURE__ */ React.createElement("div", { className: "relative", __self: this, __source: {
71
- fileName: _jsxFileName,
72
- lineNumber: 83,
73
- columnNumber: 7
74
- } }, /* @__PURE__ */ React.createElement(RelationDropdownButton, { currentItem, relatedModelName, isOpen, onClick: handleToggleOpen, __self: this, __source: {
75
- fileName: _jsxFileName,
76
- lineNumber: 84,
77
- columnNumber: 9
78
- } }), isOpen && /* @__PURE__ */ React.createElement(RelationDropdownContent, { searchTerm, onSearchChange: setSearchTerm, relatedModelName, items: relatedItems, loading, error: relationError, onSelect: handleSelect, onClear: handleClear, __self: this, __source: {
79
- fileName: _jsxFileName,
80
- lineNumber: 92,
81
- columnNumber: 11
82
- } })));
129
+ }, this);
83
130
  }
84
131
  export {
85
132
  RelationFilterField
@@ -1,7 +1,6 @@
1
- import React from "react";
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { Link } from "react-router";
3
3
  import { HomeIcon, ChevronRightIcon } from "@heroicons/react/24/outline";
4
- var _jsxFileName = "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx";
5
4
  function AdminBreadcrumbs({
6
5
  items,
7
6
  showHome = true,
@@ -10,52 +9,101 @@ function AdminBreadcrumbs({
10
9
  }) {
11
10
  const renderHomeLink = () => {
12
11
  if (!showHome) return null;
13
- return /* @__PURE__ */ React.createElement("li", { key: "home", className: "flex items-center", __self: this, __source: {
14
- fileName: _jsxFileName,
12
+ return /* @__PURE__ */ jsxDEV("li", { className: "flex items-center", children: /* @__PURE__ */ jsxDEV(
13
+ Link,
14
+ {
15
+ to: homeHref,
16
+ className: "text-gray-400 hover:text-gray-500",
17
+ "aria-label": "Home",
18
+ children: /* @__PURE__ */ jsxDEV(HomeIcon, { className: "h-5 w-5 flex-shrink-0" }, void 0, false, {
19
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
20
+ lineNumber: 36,
21
+ columnNumber: 11
22
+ }, this)
23
+ },
24
+ void 0,
25
+ false,
26
+ {
27
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
28
+ lineNumber: 31,
29
+ columnNumber: 9
30
+ },
31
+ this
32
+ ) }, "home", false, {
33
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
15
34
  lineNumber: 30,
16
35
  columnNumber: 7
17
- } }, /* @__PURE__ */ React.createElement(Link, { to: homeHref, className: "text-gray-400 hover:text-gray-500", "aria-label": "Home", __self: this, __source: {
18
- fileName: _jsxFileName,
19
- lineNumber: 31,
20
- columnNumber: 9
21
- } }, /* @__PURE__ */ React.createElement(HomeIcon, { className: "h-5 w-5 flex-shrink-0", __self: this, __source: {
22
- fileName: _jsxFileName,
23
- lineNumber: 36,
24
- columnNumber: 11
25
- } })));
36
+ }, this);
26
37
  };
27
38
  const renderBreadcrumbItem = (item, index, isLast) => {
28
- const content = item.href && !item.isActive ? /* @__PURE__ */ React.createElement(Link, { to: item.href, className: "text-sm font-medium text-gray-500 hover:text-gray-700", __self: this, __source: {
29
- fileName: _jsxFileName,
30
- lineNumber: 44,
31
- columnNumber: 7
32
- } }, item.label) : /* @__PURE__ */ React.createElement("span", { className: `text-sm font-medium ${item.isActive ? "text-gray-900" : "text-gray-500"}`, __self: this, __source: {
33
- fileName: _jsxFileName,
34
- lineNumber: 51,
35
- columnNumber: 7
36
- } }, item.label);
37
- return /* @__PURE__ */ React.createElement("li", { key: item.id, className: "flex items-center", __self: this, __source: {
38
- fileName: _jsxFileName,
39
+ const content = item.href && !item.isActive ? /* @__PURE__ */ jsxDEV(
40
+ Link,
41
+ {
42
+ to: item.href,
43
+ className: "text-sm font-medium text-gray-500 hover:text-gray-700",
44
+ children: item.label
45
+ },
46
+ void 0,
47
+ false,
48
+ {
49
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
50
+ lineNumber: 44,
51
+ columnNumber: 7
52
+ },
53
+ this
54
+ ) : /* @__PURE__ */ jsxDEV(
55
+ "span",
56
+ {
57
+ className: `text-sm font-medium ${item.isActive ? "text-gray-900" : "text-gray-500"}`,
58
+ children: item.label
59
+ },
60
+ void 0,
61
+ false,
62
+ {
63
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
64
+ lineNumber: 51,
65
+ columnNumber: 7
66
+ },
67
+ this
68
+ );
69
+ return /* @__PURE__ */ jsxDEV("li", { className: "flex items-center", children: [
70
+ (showHome || index > 0) && /* @__PURE__ */ jsxDEV(
71
+ ChevronRightIcon,
72
+ {
73
+ className: "h-5 w-5 flex-shrink-0 text-gray-400 mr-4",
74
+ "aria-hidden": "true"
75
+ },
76
+ void 0,
77
+ false,
78
+ {
79
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
80
+ lineNumber: 63,
81
+ columnNumber: 11
82
+ },
83
+ this
84
+ ),
85
+ content
86
+ ] }, item.id, true, {
87
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
39
88
  lineNumber: 61,
40
89
  columnNumber: 7
41
- } }, (showHome || index > 0) && /* @__PURE__ */ React.createElement(ChevronRightIcon, { className: "h-5 w-5 flex-shrink-0 text-gray-400 mr-4", "aria-hidden": "true", __self: this, __source: {
42
- fileName: _jsxFileName,
43
- lineNumber: 63,
44
- columnNumber: 11
45
- } }), content);
90
+ }, this);
46
91
  };
47
- return /* @__PURE__ */ React.createElement("nav", { className: `flex ${className}`, "aria-label": "Breadcrumb", __self: this, __source: {
48
- fileName: _jsxFileName,
49
- lineNumber: 78,
50
- columnNumber: 5
51
- } }, /* @__PURE__ */ React.createElement("ol", { className: "flex items-center space-x-4", __self: this, __source: {
52
- fileName: _jsxFileName,
92
+ return /* @__PURE__ */ jsxDEV("nav", { className: `flex ${className}`, "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsxDEV("ol", { className: "flex items-center space-x-4", children: [
93
+ renderHomeLink(),
94
+ items.map((item, index) => {
95
+ index === items.length - 1;
96
+ return renderBreadcrumbItem(item, index);
97
+ })
98
+ ] }, void 0, true, {
99
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
53
100
  lineNumber: 79,
54
101
  columnNumber: 7
55
- } }, renderHomeLink(), items.map((item, index) => {
56
- index === items.length - 1;
57
- return renderBreadcrumbItem(item, index);
58
- })));
102
+ }, this) }, void 0, false, {
103
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
104
+ lineNumber: 78,
105
+ columnNumber: 5
106
+ }, this);
59
107
  }
60
108
  export {
61
109
  AdminBreadcrumbs