@uniformdev/mesh-sdk-react 18.31.0 → 18.31.1-alpha.22

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.
package/dist/index.js CHANGED
@@ -31,46 +31,58 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  // src/index.ts
32
32
  var src_exports = {};
33
33
  __export(src_exports, {
34
- AddListButton: () => import_design_system25.AddListButton,
35
- Button: () => import_design_system25.Button,
36
- Callout: () => import_design_system25.Callout,
34
+ AddListButton: () => import_design_system34.AddListButton,
35
+ Button: () => import_design_system34.Button,
36
+ Callout: () => import_design_system34.Callout,
37
37
  DamSelectedItem: () => DamSelectedItem,
38
+ DataRefreshButton: () => DataRefreshButton,
38
39
  DataResourceVariablesList: () => DataResourceVariablesList,
39
40
  DataSourceEditor: () => DataSourceEditor,
40
41
  DataTypeEditor: () => DataTypeEditor,
41
42
  DefaultSearchRow: () => DefaultSearchRow,
42
43
  DefaultSelectedItem: () => DefaultSelectedItem,
43
44
  EntrySearch: () => EntrySearch,
44
- Heading: () => import_design_system25.Heading,
45
+ EntrySearchContainer: () => EntrySearchContainer,
46
+ EntrySearchContext: () => EntrySearchContext,
47
+ EntrySearchFilter: () => EntrySearchFilter,
48
+ EntrySearchFilterContainer: () => EntrySearchFilterContainer2,
49
+ EntrySearchListItem: () => EntrySearchListItem,
50
+ EntrySearchListItemLoadingSkeleton: () => EntrySearchListItemLoadingSkeleton,
51
+ EntrySearchProvider: () => EntrySearchProvider,
52
+ EntrySearchResultItem: () => EntrySearchResultItem,
53
+ EntrySearchResultItemButton: () => EntrySearchResultItemButton,
54
+ EntrySearchResultList: () => EntrySearchResultList,
55
+ Heading: () => import_design_system34.Heading,
45
56
  Icons: () => icons_exports,
46
- Input: () => import_design_system25.Input,
47
- InputComboBox: () => import_design_system25.InputComboBox,
48
- InputKeywordSearch: () => import_design_system25.InputKeywordSearch,
49
- InputSelect: () => import_design_system25.InputSelect,
50
- InputToggle: () => import_design_system25.InputToggle,
57
+ Input: () => import_design_system34.Input,
58
+ InputComboBox: () => import_design_system34.InputComboBox,
59
+ InputKeywordSearch: () => import_design_system34.InputKeywordSearch,
60
+ InputSelect: () => import_design_system34.InputSelect,
61
+ InputToggle: () => import_design_system34.InputToggle,
51
62
  InputVariables: () => InputVariables,
52
- KeywordSearchInput: () => import_design_system25.InputKeywordSearch,
53
- Label: () => import_design_system25.Label,
54
- LoadingIndicator: () => import_design_system25.LoadingIndicator,
55
- LoadingOverlay: () => import_design_system25.LoadingOverlay,
56
- Menu: () => import_design_system25.Menu,
57
- MenuItem: () => import_design_system25.MenuItem,
63
+ KeywordSearchInput: () => import_design_system34.InputKeywordSearch,
64
+ Label: () => import_design_system34.Label,
65
+ LinkButton: () => LinkButton,
66
+ LoadingIndicator: () => import_design_system34.LoadingIndicator,
67
+ LoadingOverlay: () => import_design_system34.LoadingOverlay,
68
+ Menu: () => import_design_system34.Menu,
69
+ MenuItem: () => import_design_system34.MenuItem,
58
70
  MeshApp: () => MeshApp,
59
- ParameterGroup: () => import_design_system25.ParameterGroup,
60
- ParameterImage: () => import_design_system25.ParameterImage,
61
- ParameterImageInner: () => import_design_system25.ParameterImageInner,
62
- ParameterInput: () => import_design_system25.ParameterInput,
63
- ParameterInputInner: () => import_design_system25.ParameterInputInner,
64
- ParameterLabel: () => import_design_system25.ParameterLabel,
65
- ParameterMenuButton: () => import_design_system25.ParameterMenuButton,
66
- ParameterSelect: () => import_design_system25.ParameterSelect,
67
- ParameterSelectInner: () => import_design_system25.ParameterSelectInner,
68
- ParameterShell: () => import_design_system25.ParameterShell,
69
- ParameterShellContext: () => import_design_system24.ParameterShellContext,
70
- ParameterTextarea: () => import_design_system25.ParameterTextarea,
71
- ParameterTextareaInner: () => import_design_system25.ParameterTextareaInner,
72
- ParameterToggle: () => import_design_system25.ParameterToggle,
73
- ParameterToggleInner: () => import_design_system25.ParameterToggleInner,
71
+ ParameterGroup: () => import_design_system34.ParameterGroup,
72
+ ParameterImage: () => import_design_system34.ParameterImage,
73
+ ParameterImageInner: () => import_design_system34.ParameterImageInner,
74
+ ParameterInput: () => import_design_system34.ParameterInput,
75
+ ParameterInputInner: () => import_design_system34.ParameterInputInner,
76
+ ParameterLabel: () => import_design_system34.ParameterLabel,
77
+ ParameterMenuButton: () => import_design_system34.ParameterMenuButton,
78
+ ParameterSelect: () => import_design_system34.ParameterSelect,
79
+ ParameterSelectInner: () => import_design_system34.ParameterSelectInner,
80
+ ParameterShell: () => import_design_system34.ParameterShell,
81
+ ParameterShellContext: () => import_design_system33.ParameterShellContext,
82
+ ParameterTextarea: () => import_design_system34.ParameterTextarea,
83
+ ParameterTextareaInner: () => import_design_system34.ParameterTextareaInner,
84
+ ParameterToggle: () => import_design_system34.ParameterToggle,
85
+ ParameterToggleInner: () => import_design_system34.ParameterToggleInner,
74
86
  ProductPreviewList: () => ProductPreviewList,
75
87
  ProductQuery: () => ProductQuery,
76
88
  ProductQueryContext: () => ProductQueryContext,
@@ -78,6 +90,7 @@ __export(src_exports, {
78
90
  ProductSearchContext: () => ProductSearchContext,
79
91
  ProductSearchRow: () => ProductSearchRow,
80
92
  ProductSelectedItem: () => ProductSelectedItem,
93
+ QueryFilter: () => QueryFilter,
81
94
  RequestBody: () => RequestBody,
82
95
  RequestHeaders: () => RequestHeaders,
83
96
  RequestMethodSelect: () => RequestMethodSelect,
@@ -87,13 +100,13 @@ __export(src_exports, {
87
100
  RequestUrl: () => RequestUrl,
88
101
  RequestUrlInput: () => RequestUrlInput,
89
102
  ResolvableLoadingValue: () => ResolvableLoadingValue,
90
- ScrollableList: () => import_design_system25.ScrollableList,
91
- ScrollableListItem: () => import_design_system25.ScrollableListItem,
103
+ ScrollableList: () => import_design_system34.ScrollableList,
104
+ ScrollableListItem: () => import_design_system34.ScrollableListItem,
92
105
  SelectionField: () => SelectionField,
93
- Switch: () => import_design_system25.Switch,
106
+ Switch: () => import_design_system34.Switch,
94
107
  TextVariableRenderer: () => TextVariableRenderer,
95
- Textarea: () => import_design_system25.Textarea,
96
- Theme: () => import_design_system25.Theme,
108
+ Textarea: () => import_design_system34.Textarea,
109
+ Theme: () => import_design_system34.Theme,
97
110
  UniformMeshLocationContext: () => UniformMeshLocationContext,
98
111
  UniformMeshLocationContextProvider: () => UniformMeshLocationContextProvider,
99
112
  UniformMeshSdkContext: () => UniformMeshSdkContext,
@@ -166,9 +179,10 @@ __export(src_exports, {
166
179
  selectedItemTitle: () => selectedItemTitle,
167
180
  urlEncodeRequestParameter: () => urlEncodeRequestParameter,
168
181
  urlEncodeRequestUrl: () => urlEncodeRequestUrl,
182
+ useEntrySearchContext: () => useEntrySearchContext,
169
183
  useInitializeUniformMeshSdk: () => useInitializeUniformMeshSdk,
170
184
  useMeshLocation: () => useMeshLocation,
171
- useParameterShell: () => import_design_system24.useParameterShell,
185
+ useParameterShell: () => import_design_system33.useParameterShell,
172
186
  useProductQueryContext: () => useProductQueryContext,
173
187
  useProductSearchContext: () => useProductSearchContext,
174
188
  useRequest: () => useRequest,
@@ -1134,12 +1148,12 @@ var import_design_system10 = require("@uniformdev/design-system");
1134
1148
  var import_react21 = __toESM(require("react"));
1135
1149
  var import_react_use3 = require("react-use");
1136
1150
 
1137
- // src/components/EntrySearch/DefaultSearchRow.tsx
1151
+ // src/components/legacy/EntrySearch/DefaultSearchRow.tsx
1138
1152
  var import_react9 = require("@emotion/react");
1139
1153
  var import_design_system4 = require("@uniformdev/design-system");
1140
1154
  var import_react10 = require("react");
1141
1155
 
1142
- // src/components/EntrySearch/styles/DefaultSearchRow.styles.ts
1156
+ // src/components/legacy/EntrySearch/styles/DefaultSearchRow.styles.ts
1143
1157
  var import_react8 = require("@emotion/react");
1144
1158
  var searchRowContainer = import_react8.css`
1145
1159
  cursor: pointer;
@@ -1180,7 +1194,7 @@ var searchRowBtn = import_react8.css`
1180
1194
  inset: 0 var(--spacing-sm) 0 auto;
1181
1195
  `;
1182
1196
 
1183
- // src/components/EntrySearch/DefaultSearchRow.tsx
1197
+ // src/components/legacy/EntrySearch/DefaultSearchRow.tsx
1184
1198
  var import_jsx_runtime19 = require("@emotion/react/jsx-runtime");
1185
1199
  var DefaultSearchRow = ({ result, isSelected, triggerSelection }) => {
1186
1200
  const popoverRef = (0, import_react10.useRef)(null);
@@ -1254,7 +1268,7 @@ var DefaultSearchRow = ({ result, isSelected, triggerSelection }) => {
1254
1268
  );
1255
1269
  };
1256
1270
 
1257
- // src/components/EntrySearch/DefaultSelectedItem.tsx
1271
+ // src/components/legacy/EntrySearch/DefaultSelectedItem.tsx
1258
1272
  var import_react12 = require("@emotion/react");
1259
1273
  var import_design_system6 = require("@uniformdev/design-system");
1260
1274
  var import_react13 = require("react");
@@ -1272,7 +1286,7 @@ function openWindowWithCloseCallback(href, callback) {
1272
1286
  }, 500);
1273
1287
  }
1274
1288
 
1275
- // src/components/EntrySearch/styles/DefaultSelectedItem.styles.ts
1289
+ // src/components/legacy/EntrySearch/styles/DefaultSelectedItem.styles.ts
1276
1290
  var import_react11 = require("@emotion/react");
1277
1291
  var import_design_system5 = require("@uniformdev/design-system");
1278
1292
  var selectedItemContainer = import_react11.css`
@@ -1356,7 +1370,7 @@ var selectItemLinkBtn = import_react11.css`
1356
1370
  }
1357
1371
  `;
1358
1372
 
1359
- // src/components/EntrySearch/DefaultSelectedItem.tsx
1373
+ // src/components/legacy/EntrySearch/DefaultSelectedItem.tsx
1360
1374
  var import_jsx_runtime20 = require("@emotion/react/jsx-runtime");
1361
1375
  var DefaultSelectedItem = ({
1362
1376
  selectedItem,
@@ -1539,7 +1553,7 @@ var DefaultSelectedItem = ({
1539
1553
  ] }) }, selectedItem.id);
1540
1554
  };
1541
1555
 
1542
- // src/components/EntrySearch/EntrySearch.tsx
1556
+ // src/components/legacy/EntrySearch/EntrySearch.tsx
1543
1557
  var import_react16 = require("@emotion/react");
1544
1558
  var import_design_system7 = require("@uniformdev/design-system");
1545
1559
  var React5 = __toESM(require("react"));
@@ -1580,7 +1594,7 @@ function useLoadingDelay(loading, { delay = 500, minDuration = 200 } = {
1580
1594
  return state === "DISPLAY" || state === "EXPIRE";
1581
1595
  }
1582
1596
 
1583
- // src/components/EntrySearch/styles/EntrySearch.styles.ts
1597
+ // src/components/legacy/EntrySearch/styles/EntrySearch.styles.ts
1584
1598
  var import_react15 = require("@emotion/react");
1585
1599
  var entrySearchWrapper = import_react15.css`
1586
1600
  background: var(--white);
@@ -1691,7 +1705,7 @@ var badgeIcon = import_react15.css`
1691
1705
  height: calc(var(--spacing-lg) + var(--spacing-xs));
1692
1706
  `;
1693
1707
 
1694
- // src/components/EntrySearch/EntrySearch.tsx
1708
+ // src/components/legacy/EntrySearch/EntrySearch.tsx
1695
1709
  var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
1696
1710
  var DefaultNoResults = ({ searchText, selectedContentType }) => {
1697
1711
  let message = "No content found";
@@ -4036,17 +4050,756 @@ function convertRequestDataToDataType(dataType, requestData) {
4036
4050
  };
4037
4051
  }
4038
4052
 
4039
- // src/components/MeshApp.tsx
4053
+ // src/components/EntrySearch/DataRefreshButton.tsx
4054
+ var import_react38 = require("@emotion/react");
4040
4055
  var import_design_system23 = require("@uniformdev/design-system");
4056
+ var import_jsx_runtime44 = require("@emotion/react/jsx-runtime");
4057
+ var DataRefreshButton = ({
4058
+ buttonText,
4059
+ isLoading,
4060
+ onRefreshData,
4061
+ ...props
4062
+ }) => {
4063
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_design_system23.Button, { buttonType: "primaryInvert", onClick: onRefreshData, disabled: isLoading, ...props, children: [
4064
+ !isLoading ? null : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
4065
+ import_design_system23.LoadingIndicator,
4066
+ {
4067
+ css: import_react38.css`
4068
+ ${isLoading ? "opacity: 0.2;" : void 0}
4069
+ `
4070
+ }
4071
+ ),
4072
+ buttonText
4073
+ ] });
4074
+ };
4075
+
4076
+ // src/components/EntrySearch/EntrySearchContainer.tsx
4077
+ var import_design_system24 = require("@uniformdev/design-system");
4078
+
4079
+ // src/components/EntrySearch/styles/EntrySearchContainer.styles.ts
4080
+ var import_react39 = require("@emotion/react");
4081
+ var EntrySearchBtnGroup = import_react39.css`
4082
+ align-items: center;
4083
+ display: flex;
4084
+ gap: var(--spacing-sm);
4085
+ `;
4086
+
4087
+ // src/components/EntrySearch/EntrySearchContainer.tsx
4088
+ var import_jsx_runtime45 = require("@emotion/react/jsx-runtime");
4089
+ var EntrySearchContainer = ({
4090
+ searchFilters,
4091
+ resultList,
4092
+ onSave,
4093
+ onCancel,
4094
+ children
4095
+ }) => {
4096
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_design_system24.IconsProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_design_system24.VerticalRhythm, { children: [
4097
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_design_system24.Container, { backgroundColor: "gray-50", padding: "var(--spacing-base)", border: true, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_design_system24.VerticalRhythm, { children: [
4098
+ searchFilters,
4099
+ !resultList ? null : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_design_system24.ScrollableList, { role: "list", children: resultList })
4100
+ ] }) }),
4101
+ children,
4102
+ !onSave && !onCancel ? null : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { css: EntrySearchBtnGroup, children: [
4103
+ !onSave ? null : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_design_system24.Button, { buttonType: "primary", onClick: onSave, children: "Save" }),
4104
+ !onCancel ? null : /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_design_system24.Button, { buttonType: "ghostDestructive", onClick: onCancel, children: "Cancel" })
4105
+ ] })
4106
+ ] }) });
4107
+ };
4108
+
4109
+ // src/components/EntrySearch/EntrySearchFilter.tsx
4110
+ var import_design_system25 = require("@uniformdev/design-system");
4111
+ var import_react42 = require("react");
4112
+
4113
+ // src/components/EntrySearch/hooks/EntrySearchContext.tsx
4114
+ var import_react40 = require("react");
4115
+ var import_jsx_runtime46 = require("@emotion/react/jsx-runtime");
4116
+ var EntrySearchContext = (0, import_react40.createContext)({
4117
+ onSetQuery: () => {
4118
+ },
4119
+ onSelectItem: () => {
4120
+ },
4121
+ query: {
4122
+ contentType: "",
4123
+ keyword: ""
4124
+ },
4125
+ list: {},
4126
+ onSetList: () => {
4127
+ },
4128
+ selectedListItems: [],
4129
+ onRemoveAllSelectedItems: () => {
4130
+ }
4131
+ });
4132
+ var EntrySearchProvider = ({ currentlySelectedItems, children }) => {
4133
+ const [query, setQuery] = (0, import_react40.useState)({
4134
+ contentType: "",
4135
+ keyword: ""
4136
+ });
4137
+ const querySearchDeferred = (0, import_react40.useDeferredValue)(query);
4138
+ const [selectedItems, setSelectedItems] = (0, import_react40.useState)(currentlySelectedItems != null ? currentlySelectedItems : []);
4139
+ const [list, setList] = (0, import_react40.useState)({});
4140
+ const onSetQuery = (0, import_react40.useCallback)(
4141
+ (value) => {
4142
+ setQuery(value);
4143
+ },
4144
+ [setQuery]
4145
+ );
4146
+ const onSelectItem = (0, import_react40.useCallback)(
4147
+ (selectedResult) => {
4148
+ if (Array.isArray(selectedResult)) {
4149
+ setSelectedItems(selectedResult);
4150
+ } else {
4151
+ if (selectedItems.some((item) => item.id === selectedResult.id)) {
4152
+ setSelectedItems((prev) => prev.filter((item) => item.id !== selectedResult.id));
4153
+ } else {
4154
+ setSelectedItems((prev) => [...prev, selectedResult]);
4155
+ }
4156
+ }
4157
+ },
4158
+ [setSelectedItems, selectedItems]
4159
+ );
4160
+ const onRemoveAllSelectedItems = (0, import_react40.useCallback)(() => {
4161
+ setSelectedItems([]);
4162
+ }, [setSelectedItems]);
4163
+ const onSetList = (0, import_react40.useCallback)(
4164
+ (value) => {
4165
+ setList(value);
4166
+ },
4167
+ [setList]
4168
+ );
4169
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
4170
+ EntrySearchContext.Provider,
4171
+ {
4172
+ value: {
4173
+ onSetQuery,
4174
+ query: querySearchDeferred,
4175
+ onSelectItem,
4176
+ selectedListItems: selectedItems,
4177
+ onRemoveAllSelectedItems,
4178
+ list,
4179
+ onSetList
4180
+ },
4181
+ children
4182
+ }
4183
+ );
4184
+ };
4185
+ var useEntrySearchContext = () => {
4186
+ const contextValues = (0, import_react40.useContext)(EntrySearchContext);
4187
+ return { ...contextValues };
4188
+ };
4189
+
4190
+ // src/components/EntrySearch/styles/EntrySearchFilterContainer.styles.ts
4191
+ var import_react41 = require("@emotion/react");
4192
+ var EntrySearchFilterContainerLabel = import_react41.css`
4193
+ align-items: center;
4194
+ display: flex;
4195
+ font-size: var(--fs-sm);
4196
+ font-weight: var(--fw-bold);
4197
+ line-height: 1rem;
4198
+ margin-bottom: var(--spacing-sm);
4199
+ `;
4200
+ var EntrySearchFilterContainer = import_react41.css`
4201
+ display: grid;
4202
+ gap: var(--spacing-base);
4203
+ `;
4204
+ var EntrySearchFilterDropdownAndTextSearch = import_react41.css`
4205
+ grid-template-columns: 0.5fr 1fr;
4206
+ `;
4207
+ var EntrySearchFilterGrid = (gridColumns) => import_react41.css`
4208
+ display: grid;
4209
+ grid-template-columns: ${gridColumns};
4210
+ gap: var(--spacing-base);
4211
+ `;
4212
+
4213
+ // src/components/EntrySearch/EntrySearchFilter.tsx
4214
+ var import_jsx_runtime47 = require("@emotion/react/jsx-runtime");
4215
+ var EntrySearchFilter = ({
4216
+ requireContentType,
4217
+ typeSelectorAllTypesOptionText = "All content types",
4218
+ searchInputName = "searchText",
4219
+ searchInputPlaceholderText = "Enter keyword to narrow your results",
4220
+ selectLabel = "Content Type Select",
4221
+ selectOptions
4222
+ }) => {
4223
+ const { query, onSetQuery } = useEntrySearchContext();
4224
+ const [searchState, setSearchState] = (0, import_react42.useState)({
4225
+ contentType: "any",
4226
+ keyword: ""
4227
+ });
4228
+ const handleFilterChange = (value) => {
4229
+ setSearchState((prev) => {
4230
+ return { ...prev, ...value };
4231
+ });
4232
+ onSetQuery({ ...query, ...value });
4233
+ };
4234
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("fieldset", { css: [EntrySearchFilterContainer, EntrySearchFilterDropdownAndTextSearch], children: [
4235
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4236
+ import_design_system25.InputSelect,
4237
+ {
4238
+ label: selectLabel,
4239
+ showLabel: false,
4240
+ onChange: (e) => handleFilterChange({ contentType: e.target.value }),
4241
+ options: [
4242
+ ...!requireContentType ? [{ value: "any", label: typeSelectorAllTypesOptionText }] : [],
4243
+ ...selectOptions ? selectOptions.map((option) => {
4244
+ var _a;
4245
+ return { name: option == null ? void 0 : option.name, label: (_a = option.label) != null ? _a : option == null ? void 0 : option.name, id: option.id };
4246
+ }) : []
4247
+ ],
4248
+ value: searchState.contentType
4249
+ }
4250
+ ),
4251
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4252
+ import_design_system25.InputKeywordSearch,
4253
+ {
4254
+ inputFieldName: searchInputName,
4255
+ placeholder: searchInputPlaceholderText,
4256
+ onSearchTextChanged: (e) => handleFilterChange({ keyword: e }),
4257
+ disabledFieldSubmission: true,
4258
+ onClear: () => handleFilterChange({ keyword: "" }),
4259
+ value: searchState.keyword
4260
+ }
4261
+ )
4262
+ ] });
4263
+ };
4264
+
4265
+ // src/components/EntrySearch/EntrySearchFilterContainer.tsx
4266
+ var import_jsx_runtime48 = require("@emotion/react/jsx-runtime");
4267
+ var EntrySearchFilterContainer2 = ({ label, children }) => {
4268
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4269
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { css: EntrySearchFilterContainerLabel, children: label }),
4270
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { css: EntrySearchFilterContainer, children })
4271
+ ] });
4272
+ };
4273
+
4274
+ // src/components/EntrySearch/EntrySearchListItem.tsx
4275
+ var import_design_system27 = require("@uniformdev/design-system");
4276
+
4277
+ // src/components/EntrySearch/styles/EntrySearchListItem.styles.ts
4278
+ var import_react43 = require("@emotion/react");
4279
+ var import_design_system26 = require("@uniformdev/design-system");
4280
+ var EntryListItemContainer = import_react43.css`
4281
+ align-items: center;
4282
+ border: 1px solid var(--gray-300);
4283
+ border-radius: var(--rounded-base);
4284
+ background: var(--white);
4285
+ display: grid;
4286
+ grid-template-columns: 1fr 32px;
4287
+ padding: var(--spacing-sm);
4288
+
4289
+ &[hidden] {
4290
+ display: none;
4291
+ }
4292
+ `;
4293
+ var EntryListItemLoading = import_react43.css`
4294
+ animation: ${import_design_system26.skeletonLoading} 1s linear infinite alternate;
4295
+ border-color: transparent;
4296
+ min-height: 42px;
4297
+ position: relative;
4298
+
4299
+ &:before,
4300
+ &:after {
4301
+ background: var(--gray-200);
4302
+ content: '';
4303
+ display: block;
4304
+ height: 1rem;
4305
+ }
4306
+
4307
+ &:before {
4308
+ border-radius: var(--rounded-base);
4309
+ width: 10rem;
4310
+ }
4311
+
4312
+ &:after {
4313
+ border-radius: var(--rounded-full);
4314
+ width: 1rem;
4315
+ }
4316
+ `;
4317
+ var EntryListItemHeadingGroup = import_react43.css`
4318
+ align-items: center;
4319
+ display: grid;
4320
+ `;
4321
+ var EntryListItemTitle = import_react43.css`
4322
+ color: var(--brand-secondary-1);
4323
+ display: block;
4324
+ font-size: var(--fs-sm);
4325
+ `;
4326
+ var EntryListItemSubtitle = import_react43.css`
4327
+ color: var(--gray-500);
4328
+ display: block;
4329
+ font-size: var(--fs-xs);
4330
+ line-height: 1;
4331
+ `;
4332
+ var EntryListItemInfoContainer = import_react43.css`
4333
+ align-items: center;
4334
+ display: flex;
4335
+ justify-content: center;
4336
+ `;
4337
+ var EntryListItemControlledContent = import_react43.css`
4338
+ display: flex;
4339
+ gap: var(--spacing-sm);
4340
+ `;
4341
+ var EntryListItemUnControlledContent = import_react43.css`
4342
+ margin-top: var(--spacing-sm);
4343
+ grid-column: 1 / -1;
4344
+ `;
4345
+
4346
+ // src/components/EntrySearch/EntrySearchListItem.tsx
4347
+ var import_jsx_runtime49 = require("@emotion/react/jsx-runtime");
4348
+ var EntrySearchListItem = ({
4349
+ id,
4350
+ title,
4351
+ contentType,
4352
+ image,
4353
+ popoverData,
4354
+ onSelect,
4355
+ isMulti = false,
4356
+ children,
4357
+ ...props
4358
+ }) => {
4359
+ const { onSelectItem, selectedListItems } = useEntrySearchContext();
4360
+ const formatedContentType = Array.isArray(contentType) ? contentType.join(", ") : contentType;
4361
+ const handleSelectItem = () => {
4362
+ var _a;
4363
+ const extraData = (_a = onSelect == null ? void 0 : onSelect()) != null ? _a : {};
4364
+ const selectedItem = { id, title, contentType, image, popoverData, ...extraData };
4365
+ if (isMulti) {
4366
+ return onSelectItem(selectedItem);
4367
+ }
4368
+ return onSelectItem([selectedItem]);
4369
+ };
4370
+ const hideWhenInSelectedList = selectedListItems.some((item) => item.id === id);
4371
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { role: "listitem", hidden: hideWhenInSelectedList, css: EntryListItemContainer, ...props, children: [
4372
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { role: "button", onClick: handleSelectItem, css: EntryListItemControlledContent, children: [
4373
+ !image ? null : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("img", { ...image, loading: (image == null ? void 0 : image.width) && image.height ? "lazy" : "eager" }),
4374
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { role: "heading", css: EntryListItemHeadingGroup, children: [
4375
+ !contentType ? null : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { css: EntryListItemSubtitle, children: formatedContentType }),
4376
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { css: EntryListItemTitle, children: title })
4377
+ ] })
4378
+ ] }),
4379
+ !popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { css: EntryListItemInfoContainer, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_design_system27.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData }) }),
4380
+ !children ? null : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { css: EntryListItemUnControlledContent, children })
4381
+ ] });
4382
+ };
4383
+ var EntrySearchListItemLoadingSkeleton = () => {
4384
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { role: "presentation", css: [EntryListItemContainer, EntryListItemLoading] });
4385
+ };
4386
+
4387
+ // src/components/EntrySearch/EntrySearchResultItem.tsx
4388
+ var import_design_system28 = require("@uniformdev/design-system");
4389
+ var import_timeago3 = require("timeago.js");
4390
+
4391
+ // src/components/EntrySearch/styles/EntrySearchResultItem.styles.ts
4392
+ var import_react44 = require("@emotion/react");
4393
+ var EntrySearchResultItemContainer = import_react44.css`
4394
+ align-items: center;
4395
+ border: 1px solid var(--gray-300);
4396
+ border-radius: var(--rounded-base);
4397
+ background: var(--gray-50);
4398
+ display: grid;
4399
+ grid-template-columns: 1fr auto;
4400
+ padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-sm) var(--spacing-md);
4401
+ position: relative;
4402
+
4403
+ &:hover {
4404
+ .drag-handle {
4405
+ opacity: 1;
4406
+ }
4407
+ }
4408
+ `;
4409
+ var EntrySearchDragHandle = import_react44.css`
4410
+ border-left: 2px dotted var(--gray-300);
4411
+ border-right: 2px dotted var(--gray-300);
4412
+ position: absolute;
4413
+ inset: var(--spacing-sm) auto var(--spacing-sm) var(--spacing-sm);
4414
+ width: 5px;
4415
+ transition: opacity var(--duration-fast) var(--timing-ease-out);
4416
+ opacity: 0;
4417
+ `;
4418
+ var EntrySearchResultItemSubtitle = import_react44.css`
4419
+ color: var(--gray-500);
4420
+ display: block;
4421
+ font-size: var(--fs-xs);
4422
+ line-height: 1;
4423
+ `;
4424
+ var EntrySearchResultItemTitle = import_react44.css`
4425
+ align-items: center;
4426
+ color: var(--brand-secondary-1);
4427
+ display: flex;
4428
+ gap: var(--spacing-xs);
4429
+ `;
4430
+ var EntrySearchResultItemTimeStamp = import_react44.css`
4431
+ color: var(--gray-500);
4432
+ font-size: var(--fs-xs);
4433
+ `;
4434
+ var EntrySearchAuthorStateGroup = import_react44.css`
4435
+ align-items: center;
4436
+ display: flex;
4437
+ gap: var(--spacing-sm);
4438
+ `;
4439
+ var EntrySearchUpdateGroup = import_react44.css`
4440
+ display: grid;
4441
+ `;
4442
+ var EntrySearchContentContainer = import_react44.css`
4443
+ display: flex;
4444
+ gap: var(--spacing-base);
4445
+ `;
4446
+ var EntrySearchImage = import_react44.css`
4447
+ width: 56px;
4448
+ object-fit: contain;
4449
+ `;
4450
+
4451
+ // src/components/EntrySearch/EntrySearchResultItem.tsx
4452
+ var import_jsx_runtime50 = require("@emotion/react/jsx-runtime");
4453
+ var EntrySearchResultItem = ({
4454
+ id,
4455
+ title,
4456
+ name,
4457
+ contentType,
4458
+ popoverData,
4459
+ publishStatus,
4460
+ editLinkIcon,
4461
+ editLink,
4462
+ imageUrl,
4463
+ onRemove,
4464
+ createdAt,
4465
+ publishedAt,
4466
+ hideRemoveButton = false,
4467
+ disableDnD = false,
4468
+ children
4469
+ }) => {
4470
+ const { onSelectItem } = useEntrySearchContext();
4471
+ const formatedContentType = Array.isArray(contentType) ? contentType.join(", ") : contentType;
4472
+ const onRemoveItem = () => {
4473
+ onSelectItem({ id });
4474
+ onRemove == null ? void 0 : onRemove();
4475
+ };
4476
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { css: EntrySearchResultItemContainer, children: [
4477
+ disableDnD ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { role: "presentation", className: "drag-handle", css: EntrySearchDragHandle }),
4478
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { css: EntrySearchContentContainer, children: [
4479
+ !imageUrl ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("img", { src: imageUrl, alt: `Thumbnail for ${title}`, css: EntrySearchImage }),
4480
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { children: [
4481
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { css: EntrySearchResultItemSubtitle, children: formatedContentType }),
4482
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("span", { role: "heading", css: EntrySearchResultItemTitle, children: [
4483
+ title != null ? title : name,
4484
+ !popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_design_system28.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData })
4485
+ ] }),
4486
+ !createdAt && !publishStatus ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { css: EntrySearchAuthorStateGroup, children: [
4487
+ !(publishStatus == null ? void 0 : publishStatus.text) ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_design_system28.Badge, { ...publishStatus, size: "sm", uppercaseText: true }),
4488
+ !createdAt && !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { css: EntrySearchUpdateGroup, children: [
4489
+ !createdAt ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("small", { css: EntrySearchResultItemTimeStamp, children: [
4490
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("strong", { children: "Last updated: " }),
4491
+ (0, import_timeago3.format)(createdAt)
4492
+ ] }),
4493
+ !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("small", { css: EntrySearchResultItemTimeStamp, children: [
4494
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("strong", { children: "Last published: " }),
4495
+ (0, import_timeago3.format)(publishedAt)
4496
+ ] })
4497
+ ] })
4498
+ ] }),
4499
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { children })
4500
+ ] })
4501
+ ] }) }),
4502
+ !editLink && hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { css: EntrySearchAuthorStateGroup, children: [
4503
+ !editLink ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(LinkButton, { text: "Edit", href: editLink, icon: editLinkIcon }),
4504
+ hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_design_system28.Button, { buttonType: "ghostDestructive", onClick: onRemoveItem, children: "Remove" })
4505
+ ] })
4506
+ ] });
4507
+ };
4508
+
4509
+ // src/components/EntrySearch/styles/EntrySearchResultItemButton.styles.ts
4510
+ var import_react45 = require("@emotion/react");
4511
+ var import_design_system29 = require("@uniformdev/design-system");
4512
+ var ButtonStyles = import_react45.css`
4513
+ ${import_design_system29.button}
4514
+ background: transparent;
4515
+ border: 1px solid var(--brand-secondary-1);
4516
+ color: var(--brand-secondary-1);
4517
+ padding: var(--spacing-sm);
4518
+ font-size: var(--fs-sm);
4519
+ line-height: 1;
4520
+ gap: var(--spacing-xs);
4521
+ transition: border-color var(--duration-fast) var(--timing-ease-out),
4522
+ background-color var(--duration-fast) var(--timing-ease-out);
4523
+
4524
+ &:hover {
4525
+ background: var(--gray-100);
4526
+ border-color: var(--gray-300);
4527
+ }
4528
+
4529
+ &:disabled {
4530
+ background: var(--gray-300);
4531
+ border-color: var(--gray-200);
4532
+ color: var(--gray-500);
4533
+ }
4534
+
4535
+ &:link {
4536
+ text-decoration: none;
4537
+ }
4538
+ `;
4539
+ var ButtonIcon = import_react45.css`
4540
+ width: 1rem;
4541
+ height: 1rem;
4542
+ `;
4543
+
4544
+ // src/components/EntrySearch/EntrySearchResultItemButton.tsx
4545
+ var import_jsx_runtime51 = require("@emotion/react/jsx-runtime");
4546
+ var EntrySearchResultItemButton = ({
4547
+ text,
4548
+ icon,
4549
+ ...props
4550
+ }) => {
4551
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("button", { type: "button", css: ButtonStyles, ...props, children: [
4552
+ !icon ? null : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Image, { src: icon, css: ButtonIcon }),
4553
+ text
4554
+ ] });
4555
+ };
4556
+ var LinkButton = ({
4557
+ text,
4558
+ icon,
4559
+ ...props
4560
+ }) => {
4561
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("a", { ...props, css: ButtonStyles, target: "_blank", rel: "noopener noreferrer", children: [
4562
+ !icon ? null : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Image, { src: icon, css: ButtonIcon }),
4563
+ text
4564
+ ] });
4565
+ };
4566
+
4567
+ // src/components/EntrySearch/EntrySearchResultList.tsx
4568
+ var import_design_system30 = require("@uniformdev/design-system");
4569
+ var import_react_beautiful_dnd3 = require("react-beautiful-dnd");
4570
+
4571
+ // src/components/EntrySearch/styles/EntrySearchResultList.styles.ts
4572
+ var import_react46 = require("@emotion/react");
4573
+ var EntrySearchResultListContainer = import_react46.css`
4574
+ align-items: center;
4575
+ display: flex;
4576
+ gap: var(--spacing-sm);
4577
+ justify-content: space-between;
4578
+ `;
4579
+ var EntrySearchResultListCounterContainer = import_react46.css`
4580
+ align-items: center;
4581
+ display: flex;
4582
+ gap: var(--spacing-sm);
4583
+ `;
4584
+ var EntrySearchResultListTitle = import_react46.css`
4585
+ font-weight: var(--fw-bold);
4586
+ line-height: 1;
4587
+ `;
4588
+
4589
+ // src/components/EntrySearch/EntrySearchResultList.tsx
4590
+ var import_jsx_runtime52 = require("@emotion/react/jsx-runtime");
4591
+ var EntrySearchResultList = ({
4592
+ resultLabelText = "Selected",
4593
+ removeButtonText = "Remove all",
4594
+ onRemoveAllSelected,
4595
+ hideRemoveButton = false,
4596
+ additionalButtons,
4597
+ renderResultComponent = (value) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(EntrySearchResultItem, { ...value, disableDnD }),
4598
+ disableDnD = false
4599
+ }) => {
4600
+ const { selectedListItems, onRemoveAllSelectedItems, onSelectItem } = useEntrySearchContext();
4601
+ const handleRemoveAllSelectedItems = () => {
4602
+ onRemoveAllSelectedItems();
4603
+ onRemoveAllSelected == null ? void 0 : onRemoveAllSelected();
4604
+ };
4605
+ const onDragEnd = (res) => {
4606
+ var _a, _b;
4607
+ if (res.destination && res.source.droppableId === ((_a = res.destination) == null ? void 0 : _a.droppableId)) {
4608
+ const result = [...selectedListItems || []];
4609
+ const [removed] = (_b = result == null ? void 0 : result.splice(res.source.index, 1)) != null ? _b : [];
4610
+ result == null ? void 0 : result.splice(res.destination.index, 0, removed);
4611
+ onSelectItem(result);
4612
+ return result;
4613
+ }
4614
+ };
4615
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
4616
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { role: "group", css: EntrySearchResultListContainer, children: [
4617
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { role: "note", css: EntrySearchResultListCounterContainer, children: [
4618
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { css: EntrySearchResultListTitle, children: resultLabelText }),
4619
+ " ",
4620
+ !selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_design_system30.Counter, { count: selectedListItems.length })
4621
+ ] }),
4622
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { css: EntrySearchResultListCounterContainer, children: [
4623
+ additionalButtons,
4624
+ hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4625
+ import_design_system30.Button,
4626
+ {
4627
+ buttonType: "ghostDestructive",
4628
+ size: "xs",
4629
+ disabled: selectedListItems.length === 0,
4630
+ onClick: handleRemoveAllSelectedItems,
4631
+ children: removeButtonText
4632
+ }
4633
+ )
4634
+ ] })
4635
+ ] }),
4636
+ !selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_beautiful_dnd3.DragDropContext, { onDragEnd: (res) => onDragEnd(res), children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react_beautiful_dnd3.Droppable, { droppableId: "canvas-multi-select", children: (provided) => /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { ...provided.droppableProps, ref: provided.innerRef, children: [
4637
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_design_system30.VerticalRhythm, { gap: "sm", children: selectedListItems.map((item, i) => {
4638
+ const renderListItem = renderResultComponent(item);
4639
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4640
+ import_react_beautiful_dnd3.Draggable,
4641
+ {
4642
+ draggableId: item.title,
4643
+ index: i,
4644
+ isDragDisabled: disableDnD,
4645
+ children: (provided2, snapshot) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4646
+ "div",
4647
+ {
4648
+ ref: provided2.innerRef,
4649
+ "data-dragging": snapshot.isDragging,
4650
+ ...provided2.draggableProps,
4651
+ ...provided2.dragHandleProps,
4652
+ children: renderListItem
4653
+ }
4654
+ )
4655
+ },
4656
+ item.title
4657
+ );
4658
+ }) }),
4659
+ provided.placeholder
4660
+ ] }) }) })
4661
+ ] });
4662
+ };
4663
+
4664
+ // src/components/EntrySearch/QueryFilter.tsx
4665
+ var import_design_system31 = require("@uniformdev/design-system");
4666
+ var import_react47 = require("react");
4667
+ var import_jsx_runtime53 = require("@emotion/react/jsx-runtime");
4668
+ var QueryFilter = ({
4669
+ requireContentType,
4670
+ queryFilterTitle = "Configure Query",
4671
+ contentTypeLabel = "Filter by content type",
4672
+ typeSelectorAllTypesOptionText = "All content types",
4673
+ contentTypeOptions,
4674
+ searchInputName = "searchText",
4675
+ searchInputPlaceholderText = "Enter keyword to narrow your results",
4676
+ countLabel = "Count",
4677
+ countValue = 5,
4678
+ sortLabel = "Sort",
4679
+ sortOptions,
4680
+ sortOrderLabel = "Sort Order",
4681
+ sortOrderOptions = [
4682
+ {
4683
+ name: "Ascending",
4684
+ id: "asc",
4685
+ label: "Ascending"
4686
+ },
4687
+ {
4688
+ name: "Descending",
4689
+ id: "desc",
4690
+ label: "Descending"
4691
+ }
4692
+ ],
4693
+ children
4694
+ }) => {
4695
+ var _a, _b;
4696
+ const { query, onSetQuery } = useEntrySearchContext();
4697
+ const [queryState, setQueryState] = (0, import_react47.useState)({
4698
+ contentType: "",
4699
+ keyword: "",
4700
+ count: countValue != null ? countValue : 5,
4701
+ sortBy: (_a = sortOptions[0].id) != null ? _a : "",
4702
+ sortOrder: (_b = sortOrderOptions[0].id) != null ? _b : ""
4703
+ });
4704
+ const handleFilterChange = (value) => {
4705
+ setQueryState((prev) => ({ ...prev, ...value }));
4706
+ onSetQuery({ ...query, ...value });
4707
+ };
4708
+ (0, import_react47.useEffect)(() => {
4709
+ onSetQuery(queryState);
4710
+ }, [onSetQuery, queryState]);
4711
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("fieldset", { children: [
4712
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { css: EntrySearchFilterContainerLabel, children: queryFilterTitle }),
4713
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { css: EntrySearchFilterContainer, children: [
4714
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { css: EntrySearchFilterGrid("0.5fr 1fr"), children: [
4715
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4716
+ import_design_system31.InputSelect,
4717
+ {
4718
+ label: contentTypeLabel,
4719
+ showLabel: false,
4720
+ options: [
4721
+ ...!requireContentType ? [{ id: "", label: typeSelectorAllTypesOptionText }] : [],
4722
+ ...contentTypeOptions ? contentTypeOptions.map((option) => {
4723
+ var _a2;
4724
+ return { id: option.id, label: (_a2 = option.label) != null ? _a2 : option.name, name: option.name };
4725
+ }) : []
4726
+ ],
4727
+ onChange: (e) => handleFilterChange({ contentType: e.target.value }),
4728
+ value: queryState.contentType
4729
+ }
4730
+ ),
4731
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4732
+ import_design_system31.InputKeywordSearch,
4733
+ {
4734
+ inputFieldName: searchInputName,
4735
+ placeholder: searchInputPlaceholderText,
4736
+ onSearchTextChanged: (e) => handleFilterChange({ keyword: e }),
4737
+ disabledFieldSubmission: true,
4738
+ onClear: () => handleFilterChange({ keyword: "" }),
4739
+ value: queryState.keyword
4740
+ }
4741
+ )
4742
+ ] }),
4743
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { css: EntrySearchFilterGrid("repeat(2, 1fr) 0.5fr"), children: [
4744
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4745
+ import_design_system31.InputSelect,
4746
+ {
4747
+ label: sortLabel,
4748
+ options: [
4749
+ {
4750
+ label: "Select a sort",
4751
+ id: ""
4752
+ },
4753
+ ...sortOptions ? sortOptions.map((option) => {
4754
+ var _a2;
4755
+ return { id: option.id, name: option.name, label: (_a2 = option.label) != null ? _a2 : option.name };
4756
+ }) : []
4757
+ ],
4758
+ onChange: (e) => handleFilterChange({ sortBy: e.target.value }),
4759
+ value: queryState.sortBy
4760
+ }
4761
+ ),
4762
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4763
+ import_design_system31.InputSelect,
4764
+ {
4765
+ label: sortOrderLabel,
4766
+ options: [
4767
+ ...sortOrderOptions ? sortOrderOptions.map((option) => {
4768
+ var _a2;
4769
+ return { value: option.id, label: (_a2 = option.label) != null ? _a2 : option.name, name: option.name };
4770
+ }) : []
4771
+ ],
4772
+ onChange: (e) => handleFilterChange({ sortOrder: e.target.value }),
4773
+ value: queryState.sortOrder
4774
+ }
4775
+ ),
4776
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4777
+ import_design_system31.Input,
4778
+ {
4779
+ label: countLabel,
4780
+ type: "number",
4781
+ onChange: (e) => handleFilterChange({ count: e.target.value }),
4782
+ defaultValue: countValue,
4783
+ value: queryState.count
4784
+ }
4785
+ )
4786
+ ] }),
4787
+ children
4788
+ ] })
4789
+ ] });
4790
+ };
4791
+
4792
+ // src/components/MeshApp.tsx
4793
+ var import_design_system32 = require("@uniformdev/design-system");
4041
4794
 
4042
4795
  // src/hooks/useInitializeUniformMeshSdk.ts
4043
4796
  var import_mesh_sdk = require("@uniformdev/mesh-sdk");
4044
- var import_react38 = require("react");
4797
+ var import_react48 = require("react");
4045
4798
  var useInitializeUniformMeshSdk = ({ autoResizingDisabled } = {}) => {
4046
- const [error, setError] = (0, import_react38.useState)();
4047
- const [sdk, setSdk] = (0, import_react38.useState)();
4048
- const initializationInProgress = (0, import_react38.useRef)(false);
4049
- (0, import_react38.useEffect)(
4799
+ const [error, setError] = (0, import_react48.useState)();
4800
+ const [sdk, setSdk] = (0, import_react48.useState)();
4801
+ const initializationInProgress = (0, import_react48.useRef)(false);
4802
+ (0, import_react48.useEffect)(
4050
4803
  () => {
4051
4804
  if (typeof window === "undefined" || sdk) {
4052
4805
  return;
@@ -4079,7 +4832,7 @@ var useInitializeUniformMeshSdk = ({ autoResizingDisabled } = {}) => {
4079
4832
  };
4080
4833
 
4081
4834
  // src/components/MeshApp.tsx
4082
- var import_jsx_runtime44 = require("@emotion/react/jsx-runtime");
4835
+ var import_jsx_runtime54 = require("@emotion/react/jsx-runtime");
4083
4836
  var MeshApp = ({
4084
4837
  children,
4085
4838
  loadingComponent,
@@ -4088,18 +4841,18 @@ var MeshApp = ({
4088
4841
  const { initializing, error, sdk } = useInitializeUniformMeshSdk();
4089
4842
  if (initializing || !sdk) {
4090
4843
  const LoadingComponent = loadingComponent;
4091
- return LoadingComponent ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(LoadingComponent, {}) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_design_system23.LoadingIndicator, {});
4844
+ return LoadingComponent ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(LoadingComponent, {}) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_design_system32.LoadingIndicator, {});
4092
4845
  }
4093
4846
  if (error) {
4094
4847
  const ErrorComponent = errorComponent;
4095
4848
  if (ErrorComponent) {
4096
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(ErrorComponent, { error });
4849
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ErrorComponent, { error });
4097
4850
  }
4098
4851
  throw error;
4099
4852
  }
4100
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(UniformMeshSdkContext.Provider, { value: { sdk }, children: [
4101
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_design_system23.Theme, {}),
4102
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(UniformMeshLocationContextProvider, { children })
4853
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(UniformMeshSdkContext.Provider, { value: { sdk }, children: [
4854
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_design_system32.Theme, {}),
4855
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(UniformMeshLocationContextProvider, { children })
4103
4856
  ] });
4104
4857
  };
4105
4858
 
@@ -4110,7 +4863,7 @@ function useUniformMeshLocation() {
4110
4863
  }
4111
4864
 
4112
4865
  // src/hooks/index.ts
4113
- var import_design_system24 = require("@uniformdev/design-system");
4866
+ var import_design_system33 = require("@uniformdev/design-system");
4114
4867
 
4115
4868
  // src/utils/createLocationValidator.ts
4116
4869
  function createLocationValidator(setValue, validate) {
@@ -4121,7 +4874,7 @@ function createLocationValidator(setValue, validate) {
4121
4874
  }
4122
4875
 
4123
4876
  // src/index.ts
4124
- var import_design_system25 = require("@uniformdev/design-system");
4877
+ var import_design_system34 = require("@uniformdev/design-system");
4125
4878
  __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
4126
4879
  // Annotate the CommonJS export names for ESM import in node:
4127
4880
  0 && (module.exports = {
@@ -4129,12 +4882,23 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
4129
4882
  Button,
4130
4883
  Callout,
4131
4884
  DamSelectedItem,
4885
+ DataRefreshButton,
4132
4886
  DataResourceVariablesList,
4133
4887
  DataSourceEditor,
4134
4888
  DataTypeEditor,
4135
4889
  DefaultSearchRow,
4136
4890
  DefaultSelectedItem,
4137
4891
  EntrySearch,
4892
+ EntrySearchContainer,
4893
+ EntrySearchContext,
4894
+ EntrySearchFilter,
4895
+ EntrySearchFilterContainer,
4896
+ EntrySearchListItem,
4897
+ EntrySearchListItemLoadingSkeleton,
4898
+ EntrySearchProvider,
4899
+ EntrySearchResultItem,
4900
+ EntrySearchResultItemButton,
4901
+ EntrySearchResultList,
4138
4902
  Heading,
4139
4903
  Icons,
4140
4904
  Input,
@@ -4145,6 +4909,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
4145
4909
  InputVariables,
4146
4910
  KeywordSearchInput,
4147
4911
  Label,
4912
+ LinkButton,
4148
4913
  LoadingIndicator,
4149
4914
  LoadingOverlay,
4150
4915
  Menu,
@@ -4172,6 +4937,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
4172
4937
  ProductSearchContext,
4173
4938
  ProductSearchRow,
4174
4939
  ProductSelectedItem,
4940
+ QueryFilter,
4175
4941
  RequestBody,
4176
4942
  RequestHeaders,
4177
4943
  RequestMethodSelect,
@@ -4260,6 +5026,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
4260
5026
  selectedItemTitle,
4261
5027
  urlEncodeRequestParameter,
4262
5028
  urlEncodeRequestUrl,
5029
+ useEntrySearchContext,
4263
5030
  useInitializeUniformMeshSdk,
4264
5031
  useMeshLocation,
4265
5032
  useParameterShell,