@nestledjs/data-browser 0.1.11 → 0.1.12

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/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__ */ 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")) : 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
+ } })));
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",
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,
255
129
  lineNumber: 161,
256
130
  columnNumber: 5
257
- }, this);
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
+ } }));
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/admin-data/src/lib/components/filters/RelationFilterField.tsx";
7
7
  function RelationFilterField({
8
8
  fieldName,
9
9
  relatedModelName,
@@ -17,13 +17,17 @@ 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]
24
- );
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]);
25
27
  const handleSelect = useCallback((item) => {
26
- onChange({ id: item.id });
28
+ onChange({
29
+ id: item.id
30
+ });
27
31
  setIsOpen(false);
28
32
  setSearchTerm("");
29
33
  }, [onChange]);
@@ -39,94 +43,43 @@ function RelationFilterField({
39
43
  }
40
44
  }, [isOpen]);
41
45
  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",
46
+ return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", __self: this, __source: {
47
+ fileName: _jsxFileName,
71
48
  lineNumber: 63,
72
49
  columnNumber: 7
73
- }, this);
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
+ } }));
74
61
  }
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",
62
+ return /* @__PURE__ */ React.createElement("div", { className: "space-y-1", ref: dropdownRef, __self: this, __source: {
63
+ fileName: _jsxFileName,
127
64
  lineNumber: 79,
128
65
  columnNumber: 5
129
- }, this);
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
+ } })));
130
83
  }
131
84
  export {
132
85
  RelationFilterField
@@ -1,6 +1,7 @@
1
- import { jsxDEV } from "react/jsx-dev-runtime";
1
+ import React from "react";
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";
4
5
  function AdminBreadcrumbs({
5
6
  items,
6
7
  showHome = true,
@@ -9,101 +10,52 @@ function AdminBreadcrumbs({
9
10
  }) {
10
11
  const renderHomeLink = () => {
11
12
  if (!showHome) return null;
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",
13
+ return /* @__PURE__ */ React.createElement("li", { key: "home", className: "flex items-center", __self: this, __source: {
14
+ fileName: _jsxFileName,
34
15
  lineNumber: 30,
35
16
  columnNumber: 7
36
- }, this);
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
+ } })));
37
26
  };
38
27
  const renderBreadcrumbItem = (item, index, isLast) => {
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",
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,
88
39
  lineNumber: 61,
89
40
  columnNumber: 7
90
- }, this);
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);
91
46
  };
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",
100
- lineNumber: 79,
101
- columnNumber: 7
102
- }, this) }, void 0, false, {
103
- fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/components/shared/AdminBreadcrumbs.tsx",
47
+ return /* @__PURE__ */ React.createElement("nav", { className: `flex ${className}`, "aria-label": "Breadcrumb", __self: this, __source: {
48
+ fileName: _jsxFileName,
104
49
  lineNumber: 78,
105
50
  columnNumber: 5
106
- }, this);
51
+ } }, /* @__PURE__ */ React.createElement("ol", { className: "flex items-center space-x-4", __self: this, __source: {
52
+ fileName: _jsxFileName,
53
+ lineNumber: 79,
54
+ columnNumber: 7
55
+ } }, renderHomeLink(), items.map((item, index) => {
56
+ index === items.length - 1;
57
+ return renderBreadcrumbItem(item, index);
58
+ })));
107
59
  }
108
60
  export {
109
61
  AdminBreadcrumbs