@uniformdev/mesh-sdk-react 19.117.0 → 19.117.1-alpha.1

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
@@ -36,11 +36,13 @@ __export(src_exports, {
36
36
  AddListButton: () => import_design_system41.AddListButton,
37
37
  Button: () => import_design_system41.Button,
38
38
  Callout: () => import_design_system41.Callout,
39
+ ControlledObjectSearchProvider: () => ControlledObjectSearchProvider,
39
40
  ControlledValuePlugin: () => ControlledValuePlugin,
40
41
  DISCONNECT_VARIABLE_COMMAND: () => DISCONNECT_VARIABLE_COMMAND,
41
42
  DamSelectedItem: () => DamSelectedItem,
42
43
  DataRefreshButton: () => DataRefreshButton,
43
44
  DataResourceDynamicInputProvider: () => DataResourceDynamicInputProvider,
45
+ DataResourceInputContext: () => DataResourceInputContext,
44
46
  DataResourceVariablesList: () => DataResourceVariablesList,
45
47
  DataResourceVariablesListExplicit: () => DataResourceVariablesListExplicit,
46
48
  DataSourceEditor: () => DataSourceEditor,
@@ -68,6 +70,7 @@ __export(src_exports, {
68
70
  MeshApp: () => MeshApp,
69
71
  OPEN_INSERT_VARIABLE_COMMAND: () => OPEN_INSERT_VARIABLE_COMMAND,
70
72
  ObjectSearchContainer: () => ObjectSearchContainer,
73
+ ObjectSearchContext: () => ObjectSearchContext,
71
74
  ObjectSearchFilter: () => ObjectSearchFilter,
72
75
  ObjectSearchFilterContainer: () => ObjectSearchFilterContainer2,
73
76
  ObjectSearchListItem: () => ObjectSearchListItem,
@@ -125,6 +128,7 @@ __export(src_exports, {
125
128
  VariablesPlugin: () => VariablesPlugin,
126
129
  VariablesProvider: () => VariablesProvider,
127
130
  badgeIcon: () => badgeIcon,
131
+ bindQuery: () => bindQuery,
128
132
  convertConnectedDataToVariable: () => convertConnectedDataToVariable,
129
133
  createLocationValidator: () => createLocationValidator,
130
134
  damSelectItemImage: () => damSelectItemImage,
@@ -196,6 +200,7 @@ __export(src_exports, {
196
200
  urlEncodeRequestUrl: () => urlEncodeRequestUrl,
197
201
  useConnectedDataAsVariables: () => useConnectedDataAsVariables,
198
202
  useContentDataResourceLocaleInfo: () => useContentDataResourceLocaleInfo,
203
+ useDataResourceDynamicInputs: () => useDataResourceDynamicInputs,
199
204
  useDynamicInputsAsVariables: () => useDynamicInputsAsVariables,
200
205
  useMeshLocation: () => useMeshLocation,
201
206
  useObjectSearchContext: () => useObjectSearchContext,
@@ -2855,6 +2860,9 @@ function DefaultDamItemRenderer({ item }) {
2855
2860
  ] }) : null;
2856
2861
  }
2857
2862
 
2863
+ // src/components/DataResourceDynamicInputProvider.tsx
2864
+ var import_react58 = require("react");
2865
+
2858
2866
  // src/hooks/useConnectedDataAsVariables.tsx
2859
2867
  var import_react26 = require("react");
2860
2868
  function useConnectedDataAsVariables(connectedData) {
@@ -5447,6 +5455,10 @@ function VariablesList() {
5447
5455
 
5448
5456
  // src/components/DataResourceDynamicInputProvider.tsx
5449
5457
  var import_jsx_runtime45 = require("@emotion/react/jsx-runtime");
5458
+ var DataResourceInputContext = (0, import_react58.createContext)(void 0);
5459
+ var useDataResourceDynamicInputs = () => {
5460
+ return (0, import_react58.useContext)(DataResourceInputContext);
5461
+ };
5450
5462
  function DataResourceDynamicInputProvider(props) {
5451
5463
  const { children, dynamicInputs } = props;
5452
5464
  if (dynamicInputs) {
@@ -5465,7 +5477,7 @@ function DataResourceDynamicInputProviderRenderer({
5465
5477
  dynamicInputs
5466
5478
  }) {
5467
5479
  const variables = useDynamicInputsAsVariables(dynamicInputs);
5468
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(VariablesProvider, { value: variables, readOnly: true, children });
5480
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(DataResourceInputContext.Provider, { value: dynamicInputs, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(VariablesProvider, { value: variables, readOnly: true, children }) });
5469
5481
  }
5470
5482
 
5471
5483
  // src/components/DataResourceVariablesList.tsx
@@ -5542,9 +5554,9 @@ function TextVariableRenderer({ definition, value, setValue }) {
5542
5554
  }
5543
5555
 
5544
5556
  // src/components/Request/RequestBody.tsx
5545
- var import_react59 = require("@emotion/react");
5557
+ var import_react60 = require("@emotion/react");
5546
5558
  var import_design_system27 = require("@uniformdev/design-system");
5547
- var import_react60 = require("react");
5559
+ var import_react61 = require("react");
5548
5560
 
5549
5561
  // src/components/Request/RequestProvider.tsx
5550
5562
  var React11 = __toESM(require("react"));
@@ -5628,11 +5640,11 @@ function useRequest() {
5628
5640
  }
5629
5641
 
5630
5642
  // src/components/Request/styles/Request.styles.ts
5631
- var import_react58 = require("@emotion/react");
5632
- var innerContentStyles = import_react58.css`
5643
+ var import_react59 = require("@emotion/react");
5644
+ var innerContentStyles = import_react59.css`
5633
5645
  background: var(--white);
5634
5646
  `;
5635
- var requestTypeContainer = (bgColor) => import_react58.css`
5647
+ var requestTypeContainer = (bgColor) => import_react59.css`
5636
5648
  align-items: start;
5637
5649
  background: ${bgColor};
5638
5650
  display: grid;
@@ -5670,11 +5682,11 @@ var LANGUAGE_TO_CONTENT_TYPE = {
5670
5682
  };
5671
5683
  function RequestBody() {
5672
5684
  const { request, dispatch } = useRequest();
5673
- const [language, setLanguage] = (0, import_react60.useState)("json");
5685
+ const [language, setLanguage] = (0, import_react61.useState)("json");
5674
5686
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
5675
5687
  "div",
5676
5688
  {
5677
- css: import_react59.css`
5689
+ css: import_react60.css`
5678
5690
  background: var(--white);
5679
5691
  `,
5680
5692
  children: [
@@ -5682,7 +5694,7 @@ function RequestBody() {
5682
5694
  RequestTypeContainer,
5683
5695
  {
5684
5696
  bgColor: "var(--gray-100)",
5685
- css: import_react59.css`
5697
+ css: import_react60.css`
5686
5698
  padding: var(--spacing-sm) var(--spacing-base);
5687
5699
  `,
5688
5700
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
@@ -5953,8 +5965,8 @@ function RequestParameters({
5953
5965
  }
5954
5966
 
5955
5967
  // src/components/Request/RequestUrl.tsx
5956
- var import_react61 = require("@emotion/react");
5957
- var import_react62 = require("react");
5968
+ var import_react62 = require("@emotion/react");
5969
+ var import_react63 = require("react");
5958
5970
 
5959
5971
  // src/components/Request/urlEncodeRequestParameter.ts
5960
5972
  function urlEncodeRequestUrl(url, varValues) {
@@ -5980,7 +5992,7 @@ function RequestUrl() {
5980
5992
  var _a, _b;
5981
5993
  const { variables } = useVariables();
5982
5994
  const { request } = useRequest();
5983
- const mergedParameters = (0, import_react62.useMemo)(() => {
5995
+ const mergedParameters = (0, import_react63.useMemo)(() => {
5984
5996
  var _a2;
5985
5997
  if (!((_a2 = request.baseRequest) == null ? void 0 : _a2.parameters)) {
5986
5998
  return request.parameters;
@@ -5990,7 +6002,7 @@ function RequestUrl() {
5990
6002
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
5991
6003
  "small",
5992
6004
  {
5993
- css: import_react61.css`
6005
+ css: import_react62.css`
5994
6006
  display: inline-block;
5995
6007
  margin-bottom: var(--spacing-xs);
5996
6008
  word-break: break-word;
@@ -6228,12 +6240,12 @@ var import_design_system31 = require("@uniformdev/design-system");
6228
6240
 
6229
6241
  // src/hooks/useInitializeUniformMeshSdk.ts
6230
6242
  var import_mesh_sdk = require("@uniformdev/mesh-sdk");
6231
- var import_react63 = require("react");
6243
+ var import_react64 = require("react");
6232
6244
  var useInitializeUniformMeshSdk = ({ autoResizingDisabled } = {}) => {
6233
- const [error, setError] = (0, import_react63.useState)();
6234
- const [sdk, setSdk] = (0, import_react63.useState)();
6235
- const initializationInProgress = (0, import_react63.useRef)(false);
6236
- (0, import_react63.useEffect)(
6245
+ const [error, setError] = (0, import_react64.useState)();
6246
+ const [sdk, setSdk] = (0, import_react64.useState)();
6247
+ const initializationInProgress = (0, import_react64.useRef)(false);
6248
+ (0, import_react64.useEffect)(
6237
6249
  () => {
6238
6250
  if (typeof window === "undefined" || sdk) {
6239
6251
  return;
@@ -6291,7 +6303,7 @@ var MeshApp = ({
6291
6303
  };
6292
6304
 
6293
6305
  // src/components/ObjectSearch/DataRefreshButton.tsx
6294
- var import_react64 = require("@emotion/react");
6306
+ var import_react65 = require("@emotion/react");
6295
6307
  var import_design_system32 = require("@uniformdev/design-system");
6296
6308
  var import_jsx_runtime58 = require("@emotion/react/jsx-runtime");
6297
6309
  var DataRefreshButton = ({
@@ -6304,7 +6316,7 @@ var DataRefreshButton = ({
6304
6316
  !isLoading ? null : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6305
6317
  import_design_system32.LoadingIndicator,
6306
6318
  {
6307
- css: import_react64.css`
6319
+ css: import_react65.css`
6308
6320
  ${isLoading ? "opacity: 0.2;" : void 0}
6309
6321
  `
6310
6322
  }
@@ -6314,15 +6326,16 @@ var DataRefreshButton = ({
6314
6326
  };
6315
6327
 
6316
6328
  // src/components/ObjectSearch/ObjectSearchContainer.tsx
6317
- var import_react67 = require("@emotion/react");
6329
+ var import_react71 = require("@emotion/react");
6318
6330
  var import_canvas9 = require("@uniformdev/canvas");
6319
- var import_design_system35 = require("@uniformdev/design-system");
6331
+ var import_design_system38 = require("@uniformdev/design-system");
6332
+ var import_react72 = __toESM(require("react"));
6320
6333
 
6321
6334
  // src/components/ObjectSearch/hooks/ObjectSearchContext.tsx
6322
6335
  var import_canvas8 = require("@uniformdev/canvas");
6323
- var import_react65 = require("react");
6336
+ var import_react66 = require("react");
6324
6337
  var import_jsx_runtime59 = require("@emotion/react/jsx-runtime");
6325
- var ObjectSearchContext = (0, import_react65.createContext)({
6338
+ var ObjectSearchContext = (0, import_react66.createContext)({
6326
6339
  onSetQuery: () => {
6327
6340
  },
6328
6341
  onSelectItem: () => {
@@ -6330,8 +6343,6 @@ var ObjectSearchContext = (0, import_react65.createContext)({
6330
6343
  query: {},
6331
6344
  boundQuery: {},
6332
6345
  list: {},
6333
- onSetList: () => {
6334
- },
6335
6346
  selectedListItems: [],
6336
6347
  onRemoveAllSelectedItems: () => {
6337
6348
  },
@@ -6343,16 +6354,16 @@ var ObjectSearchProvider = ({
6343
6354
  children,
6344
6355
  defaultQuery
6345
6356
  }) => {
6346
- const [query, setQuery] = (0, import_react65.useState)({
6357
+ const [query, setQuery] = (0, import_react66.useState)({
6347
6358
  contentType: "",
6348
6359
  keyword: "",
6349
6360
  ...defaultQuery
6350
6361
  });
6351
6362
  const { flatVariables } = useVariables(true);
6352
- const querySearchDeferred = (0, import_react65.useDeferredValue)(query);
6353
- const [selectedItems, setSelectedItems] = (0, import_react65.useState)(currentlySelectedItems != null ? currentlySelectedItems : []);
6354
- const [list, setList] = (0, import_react65.useState)({});
6355
- const onSetQuery = (0, import_react65.useCallback)(
6363
+ const querySearchDeferred = (0, import_react66.useDeferredValue)(query);
6364
+ const [selectedItems, setSelectedItems] = (0, import_react66.useState)(currentlySelectedItems != null ? currentlySelectedItems : []);
6365
+ const [list, setList] = (0, import_react66.useState)({});
6366
+ const onSetQuery = (0, import_react66.useCallback)(
6356
6367
  (value2) => {
6357
6368
  if (Array.isArray(value2.contentType) && value2.contentType.length > 0) {
6358
6369
  return setQuery({
@@ -6364,7 +6375,7 @@ var ObjectSearchProvider = ({
6364
6375
  },
6365
6376
  [setQuery]
6366
6377
  );
6367
- const onSelectItem = (0, import_react65.useCallback)(
6378
+ const onSelectItem = (0, import_react66.useCallback)(
6368
6379
  (selectedResult) => {
6369
6380
  if (Array.isArray(selectedResult)) {
6370
6381
  setSelectedItems(selectedResult);
@@ -6378,17 +6389,17 @@ var ObjectSearchProvider = ({
6378
6389
  },
6379
6390
  [setSelectedItems, selectedItems]
6380
6391
  );
6381
- const onRemoveAllSelectedItems = (0, import_react65.useCallback)(() => {
6392
+ const onRemoveAllSelectedItems = (0, import_react66.useCallback)(() => {
6382
6393
  setSelectedItems([]);
6383
6394
  }, [setSelectedItems]);
6384
- const onSetList = (0, import_react65.useCallback)(
6395
+ const onSetList = (0, import_react66.useCallback)(
6385
6396
  (value2) => {
6386
6397
  setList(value2);
6387
6398
  },
6388
6399
  [setList]
6389
6400
  );
6390
- const boundQuery = (0, import_react65.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
6391
- const value = (0, import_react65.useMemo)(
6401
+ const boundQuery = (0, import_react66.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
6402
+ const value = (0, import_react66.useMemo)(
6392
6403
  () => ({
6393
6404
  boundQuery,
6394
6405
  onSetQuery,
@@ -6415,7 +6426,7 @@ var ObjectSearchProvider = ({
6415
6426
  return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ObjectSearchContext.Provider, { value, children });
6416
6427
  };
6417
6428
  function useObjectSearchContext() {
6418
- return (0, import_react65.useContext)(ObjectSearchContext);
6429
+ return (0, import_react66.useContext)(ObjectSearchContext);
6419
6430
  }
6420
6431
  function bindQuery(query, inputs) {
6421
6432
  const { result, errors } = (0, import_canvas8.bindVariablesToObject)({
@@ -6433,9 +6444,9 @@ function bindQuery(query, inputs) {
6433
6444
  var import_design_system34 = require("@uniformdev/design-system");
6434
6445
 
6435
6446
  // src/components/ObjectSearch/styles/ObjectSearchListItem.styles.ts
6436
- var import_react66 = require("@emotion/react");
6447
+ var import_react67 = require("@emotion/react");
6437
6448
  var import_design_system33 = require("@uniformdev/design-system");
6438
- var ObjectListItemContainer = import_react66.css`
6449
+ var ObjectListItemContainer = import_react67.css`
6439
6450
  align-items: center;
6440
6451
  border: 1px solid var(--gray-300);
6441
6452
  border-radius: var(--rounded-base);
@@ -6444,11 +6455,11 @@ var ObjectListItemContainer = import_react66.css`
6444
6455
  grid-template-columns: 1fr auto;
6445
6456
  padding: var(--spacing-sm);
6446
6457
  `;
6447
- var ObjectListItemContainerDisabled = import_react66.css`
6458
+ var ObjectListItemContainerDisabled = import_react67.css`
6448
6459
  opacity: var(--opacity-50);
6449
6460
  pointer-events: none;
6450
6461
  `;
6451
- var ObjectListItemLoading = import_react66.css`
6462
+ var ObjectListItemLoading = import_react67.css`
6452
6463
  animation: ${import_design_system33.skeletonLoading} 1s linear infinite alternate;
6453
6464
  border-color: transparent;
6454
6465
  min-height: 42px;
@@ -6472,36 +6483,36 @@ var ObjectListItemLoading = import_react66.css`
6472
6483
  width: 1rem;
6473
6484
  }
6474
6485
  `;
6475
- var ObjectListItemHeadingGroup = import_react66.css`
6486
+ var ObjectListItemHeadingGroup = import_react67.css`
6476
6487
  align-items: center;
6477
6488
  display: grid;
6478
6489
  `;
6479
- var ObjectListItemThumbnail = import_react66.css`
6490
+ var ObjectListItemThumbnail = import_react67.css`
6480
6491
  width: 30px;
6481
6492
  object-fit: contain;
6482
6493
  `;
6483
- var ObjectListItemTitle = import_react66.css`
6494
+ var ObjectListItemTitle = import_react67.css`
6484
6495
  color: var(--typography-base);
6485
6496
  display: block;
6486
6497
  font-size: var(--fs-sm);
6487
6498
  `;
6488
- var ObjectListItemSubtitle = import_react66.css`
6499
+ var ObjectListItemSubtitle = import_react67.css`
6489
6500
  color: var(--gray-500);
6490
6501
  display: block;
6491
6502
  font-size: var(--fs-xs);
6492
6503
  line-height: 1;
6493
6504
  `;
6494
- var ObjectListItemInfoContainer = import_react66.css`
6505
+ var ObjectListItemInfoContainer = import_react67.css`
6495
6506
  align-items: center;
6496
6507
  display: flex;
6497
6508
  gap: var(--spacing-sm);
6498
6509
  justify-content: center;
6499
6510
  `;
6500
- var ObjectListItemControlledContent = import_react66.css`
6511
+ var ObjectListItemControlledContent = import_react67.css`
6501
6512
  display: flex;
6502
6513
  gap: var(--spacing-sm);
6503
6514
  `;
6504
- var ObjectListItemUnControlledContent = import_react66.css`
6515
+ var ObjectListItemUnControlledContent = import_react67.css`
6505
6516
  margin-top: var(--spacing-sm);
6506
6517
  grid-column: 1 / -1;
6507
6518
  `;
@@ -6569,202 +6580,19 @@ var ObjectSearchListItemLoadingSkeleton = () => {
6569
6580
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { role: "presentation", css: [ObjectListItemContainer, ObjectListItemLoading] });
6570
6581
  };
6571
6582
 
6572
- // src/components/ObjectSearch/ObjectSearchContainer.tsx
6573
- var import_jsx_runtime61 = require("@emotion/react/jsx-runtime");
6574
- var ObjectSearchContainer = ({
6575
- label,
6576
- enableDynamicInputToResultId,
6577
- searchFilters,
6578
- resultList,
6579
- children
6580
- }) => {
6581
- var _a, _b;
6582
- const { onSelectItem, selectedListItems, list } = useObjectSearchContext();
6583
- const { flatVariables } = useVariables(true);
6584
- const inputValue = (_b = (_a = selectedListItems == null ? void 0 : selectedListItems[0]) == null ? void 0 : _a.id) != null ? _b : "";
6585
- const listItems = resultList != null ? resultList : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6586
- import_design_system35.ScrollableList,
6587
- {
6588
- role: "list",
6589
- css: import_react67.css`
6590
- > div {
6591
- transition: max-height var(--duration-slow) var(--timing-ease-out);
6592
- max-height: ${selectedListItems.length === 0 ? "50vh" : "184px"};
6593
- }
6594
- `,
6595
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(DefaultResultList, {})
6596
- }
6597
- );
6598
- const body = /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_design_system35.VerticalRhythm, { children: [
6599
- searchFilters,
6600
- listItems
6601
- ] });
6602
- const handleSelectedVariableChange = (selectedValue) => {
6603
- var _a2;
6604
- if (!selectedValue) {
6605
- onSelectItem([]);
6606
- return;
6607
- }
6608
- const { result, errors } = (0, import_canvas9.bindVariables)({
6609
- value: selectedValue,
6610
- variables: flatVariables,
6611
- errorPrefix: "Dynamic input"
6612
- });
6613
- if (!result) {
6614
- onSelectItem([]);
6615
- return;
6616
- }
6617
- const item = (_a2 = list.items) == null ? void 0 : _a2.find((i) => i.id === result);
6618
- onSelectItem([
6619
- {
6620
- title: selectedValue,
6621
- contentType: (errors == null ? void 0 : errors.length) ? errors[0] instanceof Error ? errors[0].message : errors[0] : `Current dynamic value "${result}" is not an ID in the options`,
6622
- // spread any matched list item, overriding the above default props
6623
- ...item,
6624
- // we want to make sure the ID is our dynamic value
6625
- id: selectedValue
6626
- }
6627
- ]);
6628
- };
6629
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_design_system35.IconsProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_design_system35.VerticalRhythm, { children: [
6630
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_design_system35.Container, { backgroundColor: "gray-50", padding: "var(--spacing-base)", border: true, children: label ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6631
- InputVariables,
6632
- {
6633
- label,
6634
- value: inputValue,
6635
- onChange: (value) => {
6636
- if (value === inputValue) {
6637
- return;
6638
- }
6639
- handleSelectedVariableChange(value);
6640
- },
6641
- inputWhenNoVariables: body,
6642
- disableVariables: !enableDynamicInputToResultId
6643
- }
6644
- ) : body }),
6645
- children
6646
- ] }) });
6647
- };
6648
- var DefaultResultList = () => {
6649
- var _a;
6650
- const { list } = useObjectSearchContext();
6651
- if (!list.items) {
6652
- return Array.from(Array(5).keys()).map((i) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ObjectSearchListItemLoadingSkeleton, {}, i));
6653
- }
6654
- if (list.items.length === 0) {
6655
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_design_system35.Callout, { type: "info", children: "No results were found" });
6656
- }
6657
- return (_a = list.items) == null ? void 0 : _a.map((item) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ObjectSearchListItem, { ...item }, item.id));
6658
- };
6659
-
6660
- // src/components/ObjectSearch/ObjectSearchFilter.tsx
6661
- var import_design_system36 = require("@uniformdev/design-system");
6662
- var import_react69 = require("react");
6663
-
6664
- // src/components/ObjectSearch/styles/ObjectSearchFilterContainer.styles.ts
6665
- var import_react68 = require("@emotion/react");
6666
- var ObjectSearchFilterContainerLabel = import_react68.css`
6667
- align-items: center;
6668
- display: flex;
6669
- font-size: var(--fs-sm);
6670
- font-weight: var(--fw-bold);
6671
- line-height: 1rem;
6672
- margin-bottom: var(--spacing-sm);
6673
- `;
6674
- var ObjectSearchFilterContainer = import_react68.css`
6675
- display: grid;
6676
- gap: var(--spacing-base);
6677
- `;
6678
- var ObjectSearchFilterGrid = (gridColumns) => import_react68.css`
6679
- display: grid;
6680
- grid-template-columns: ${gridColumns};
6681
- gap: var(--spacing-base);
6682
- `;
6683
-
6684
- // src/components/ObjectSearch/ObjectSearchFilter.tsx
6685
- var import_jsx_runtime62 = require("@emotion/react/jsx-runtime");
6686
- var ObjectSearchFilter = ({
6687
- requireContentType,
6688
- typeSelectorAllTypesOptionText = "All content types",
6689
- searchInputName = "searchText",
6690
- searchInputPlaceholderText = "Enter keyword to narrow your results",
6691
- selectLabel = "Content Type Select",
6692
- selectOptions
6693
- }) => {
6694
- var _a, _b;
6695
- const { query, onSetQuery } = useObjectSearchContext();
6696
- const [searchState, setSearchState] = (0, import_react69.useState)({
6697
- contentType: (_a = query.contentType) != null ? _a : "",
6698
- keyword: (_b = query.keyword) != null ? _b : ""
6699
- });
6700
- const handleFilterChange = (value) => {
6701
- setSearchState((prev) => {
6702
- return { ...prev, ...value };
6703
- });
6704
- onSetQuery({ ...query, ...value });
6705
- };
6706
- const memoizedSelectOptions = (0, import_react69.useMemo)(() => {
6707
- if (!requireContentType && !(selectOptions == null ? void 0 : selectOptions.length)) {
6708
- return [];
6709
- }
6710
- return [
6711
- ...!requireContentType ? [{ value: "any", label: typeSelectorAllTypesOptionText }] : [],
6712
- ...selectOptions != null ? selectOptions : []
6713
- ];
6714
- }, [requireContentType, typeSelectorAllTypesOptionText, selectOptions]);
6715
- const shouldRenderSelect = memoizedSelectOptions.length > 0;
6716
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
6717
- "fieldset",
6718
- {
6719
- css: [
6720
- ObjectSearchFilterContainer,
6721
- ObjectSearchFilterGrid(shouldRenderSelect ? "1fr 2fr" : "1fr")
6722
- ],
6723
- children: [
6724
- memoizedSelectOptions.length ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6725
- import_design_system36.InputSelect,
6726
- {
6727
- label: selectLabel,
6728
- showLabel: false,
6729
- onChange: (e) => handleFilterChange({ contentType: e.target.value }),
6730
- options: memoizedSelectOptions,
6731
- value: query.contentType
6732
- }
6733
- ) : null,
6734
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6735
- import_design_system36.DebouncedInputKeywordSearch,
6736
- {
6737
- inputFieldName: searchInputName,
6738
- placeholder: searchInputPlaceholderText,
6739
- onSearchTextChanged: (keyword) => handleFilterChange({ keyword }),
6740
- disabledFieldSubmission: true,
6741
- defaultValue: searchState.keyword,
6742
- delay: 300
6743
- }
6744
- )
6745
- ]
6746
- }
6747
- );
6748
- };
6749
-
6750
- // src/components/ObjectSearch/ObjectSearchFilterContainer.tsx
6751
- var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
6752
- var ObjectSearchFilterContainer2 = ({ label, children }) => {
6753
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { children: [
6754
- label ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { css: ObjectSearchFilterContainerLabel, children: label }) : null,
6755
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { css: ObjectSearchFilterContainer, children })
6756
- ] });
6757
- };
6583
+ // src/components/ObjectSearch/ObjectSearchResultList.tsx
6584
+ var import_design_system37 = require("@uniformdev/design-system");
6585
+ var import_react_beautiful_dnd4 = require("react-beautiful-dnd");
6758
6586
 
6759
6587
  // src/components/ObjectSearch/ObjectSearchResultItem.tsx
6760
- var import_design_system38 = require("@uniformdev/design-system");
6588
+ var import_design_system36 = require("@uniformdev/design-system");
6761
6589
  var import_timeago3 = require("timeago.js");
6762
6590
 
6763
6591
  // src/components/ObjectSearch/styles/ObjectSearchResultItemButton.styles.ts
6764
- var import_react70 = require("@emotion/react");
6765
- var import_design_system37 = require("@uniformdev/design-system");
6766
- var ButtonStyles = import_react70.css`
6767
- ${import_design_system37.button}
6592
+ var import_react68 = require("@emotion/react");
6593
+ var import_design_system35 = require("@uniformdev/design-system");
6594
+ var ButtonStyles = import_react68.css`
6595
+ ${import_design_system35.button}
6768
6596
  background: transparent;
6769
6597
  border: 1px solid var(--typography-base);
6770
6598
  color: var(--typography-base);
@@ -6790,20 +6618,20 @@ var ButtonStyles = import_react70.css`
6790
6618
  text-decoration: none;
6791
6619
  }
6792
6620
  `;
6793
- var ButtonIcon = import_react70.css`
6621
+ var ButtonIcon = import_react68.css`
6794
6622
  width: 1rem;
6795
6623
  height: 1rem;
6796
6624
  `;
6797
6625
 
6798
6626
  // src/components/ObjectSearch/ObjectSearchResultItemButton.tsx
6799
- var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
6627
+ var import_jsx_runtime61 = require("@emotion/react/jsx-runtime");
6800
6628
  var ObjectSearchResultItemButton = ({
6801
6629
  text,
6802
6630
  icon,
6803
6631
  ...props
6804
6632
  }) => {
6805
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("button", { type: "button", css: ButtonStyles, ...props, children: [
6806
- !icon ? null : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Image, { src: icon, css: ButtonIcon }),
6633
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("button", { type: "button", css: ButtonStyles, ...props, children: [
6634
+ !icon ? null : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Image, { src: icon, css: ButtonIcon }),
6807
6635
  text
6808
6636
  ] });
6809
6637
  };
@@ -6812,15 +6640,15 @@ var LinkButton = ({
6812
6640
  icon,
6813
6641
  ...props
6814
6642
  }) => {
6815
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("a", { ...props, css: ButtonStyles, target: "_blank", rel: "noopener noreferrer", children: [
6816
- !icon ? null : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Image, { src: icon, css: ButtonIcon }),
6643
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("a", { ...props, css: ButtonStyles, target: "_blank", rel: "noopener noreferrer", children: [
6644
+ !icon ? null : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Image, { src: icon, css: ButtonIcon }),
6817
6645
  text
6818
6646
  ] });
6819
6647
  };
6820
6648
 
6821
6649
  // src/components/ObjectSearch/styles/ObjectSearchResultItem.styles.ts
6822
- var import_react71 = require("@emotion/react");
6823
- var ObjectSearchResultItemContainer = import_react71.css`
6650
+ var import_react69 = require("@emotion/react");
6651
+ var ObjectSearchResultItemContainer = import_react69.css`
6824
6652
  align-items: center;
6825
6653
  border: 1px solid var(--gray-300);
6826
6654
  border-radius: var(--rounded-base);
@@ -6836,7 +6664,7 @@ var ObjectSearchResultItemContainer = import_react71.css`
6836
6664
  }
6837
6665
  }
6838
6666
  `;
6839
- var ObjectSearchDragHandle = import_react71.css`
6667
+ var ObjectSearchDragHandle = import_react69.css`
6840
6668
  border-left: 2px dotted var(--gray-300);
6841
6669
  border-right: 2px dotted var(--gray-300);
6842
6670
  position: absolute;
@@ -6845,41 +6673,41 @@ var ObjectSearchDragHandle = import_react71.css`
6845
6673
  transition: opacity var(--duration-fast) var(--timing-ease-out);
6846
6674
  opacity: 0;
6847
6675
  `;
6848
- var ObjectSearchResultItemSubtitle = import_react71.css`
6676
+ var ObjectSearchResultItemSubtitle = import_react69.css`
6849
6677
  color: var(--gray-500);
6850
6678
  display: block;
6851
6679
  font-size: var(--fs-xs);
6852
6680
  line-height: 1;
6853
6681
  `;
6854
- var ObjectSearchResultItemTitle = import_react71.css`
6682
+ var ObjectSearchResultItemTitle = import_react69.css`
6855
6683
  align-items: center;
6856
6684
  color: var(--typography-base);
6857
6685
  display: flex;
6858
6686
  gap: var(--spacing-xs);
6859
6687
  `;
6860
- var ObjectSearchResultItemTimeStamp = import_react71.css`
6688
+ var ObjectSearchResultItemTimeStamp = import_react69.css`
6861
6689
  color: var(--gray-500);
6862
6690
  font-size: var(--fs-xs);
6863
6691
  `;
6864
- var ObjectSearchAuthorStateGroup = import_react71.css`
6692
+ var ObjectSearchAuthorStateGroup = import_react69.css`
6865
6693
  align-items: center;
6866
6694
  display: flex;
6867
6695
  gap: var(--spacing-sm);
6868
6696
  `;
6869
- var ObjectSearchUpdateGroup = import_react71.css`
6697
+ var ObjectSearchUpdateGroup = import_react69.css`
6870
6698
  display: grid;
6871
6699
  `;
6872
- var ObjectSearchContentContainer = import_react71.css`
6700
+ var ObjectSearchContentContainer = import_react69.css`
6873
6701
  display: flex;
6874
6702
  gap: var(--spacing-base);
6875
6703
  `;
6876
- var ObjectSearchImage = import_react71.css`
6704
+ var ObjectSearchImage = import_react69.css`
6877
6705
  width: 56px;
6878
6706
  object-fit: contain;
6879
6707
  `;
6880
6708
 
6881
6709
  // src/components/ObjectSearch/ObjectSearchResultItem.tsx
6882
- var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
6710
+ var import_jsx_runtime62 = require("@emotion/react/jsx-runtime");
6883
6711
  var ObjectSearchResultItem = ({
6884
6712
  id,
6885
6713
  title,
@@ -6903,77 +6731,73 @@ var ObjectSearchResultItem = ({
6903
6731
  onSelectItem({ id, title: id });
6904
6732
  onRemove == null ? void 0 : onRemove();
6905
6733
  };
6906
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: ObjectSearchResultItemContainer, "data-testid": "search-result-item", children: [
6907
- disableDnD ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { role: "presentation", className: "drag-handle", css: ObjectSearchDragHandle }),
6908
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: ObjectSearchContentContainer, children: [
6909
- !imageUrl ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("img", { src: imageUrl, alt: `Thumbnail for ${title}`, css: ObjectSearchImage }),
6910
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { children: [
6911
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { css: ObjectSearchResultItemSubtitle, "data-testid": "sub-title", children: formatedContentType }),
6912
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { role: "heading", css: ObjectSearchResultItemTitle, "data-testid": "title", children: [
6734
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchResultItemContainer, "data-testid": "search-result-item", children: [
6735
+ disableDnD ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { role: "presentation", className: "drag-handle", css: ObjectSearchDragHandle }),
6736
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchContentContainer, children: [
6737
+ !imageUrl ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("img", { src: imageUrl, alt: `Thumbnail for ${title}`, css: ObjectSearchImage }),
6738
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { children: [
6739
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { css: ObjectSearchResultItemSubtitle, "data-testid": "sub-title", children: formatedContentType }),
6740
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { role: "heading", css: ObjectSearchResultItemTitle, "data-testid": "title", children: [
6913
6741
  title != null ? title : name,
6914
- !popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_design_system38.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData })
6742
+ !popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData })
6915
6743
  ] }),
6916
- !createdAt && !publishStatus ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: ObjectSearchAuthorStateGroup, children: [
6917
- !(publishStatus == null ? void 0 : publishStatus.text) ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_design_system38.Badge, { ...publishStatus, size: "sm", uppercaseText: true }),
6918
- !createdAt && !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: ObjectSearchUpdateGroup, children: [
6919
- !createdAt ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
6920
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("strong", { children: "Last updated: " }),
6744
+ !createdAt && !publishStatus ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchAuthorStateGroup, children: [
6745
+ !(publishStatus == null ? void 0 : publishStatus.text) ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Badge, { ...publishStatus, size: "sm", uppercaseText: true }),
6746
+ !createdAt && !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchUpdateGroup, children: [
6747
+ !createdAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
6748
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("strong", { children: "Last updated: " }),
6921
6749
  (0, import_timeago3.format)(createdAt)
6922
6750
  ] }),
6923
- !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
6924
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("strong", { children: "Last published: " }),
6751
+ !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
6752
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("strong", { children: "Last published: " }),
6925
6753
  (0, import_timeago3.format)(publishedAt)
6926
6754
  ] })
6927
6755
  ] })
6928
6756
  ] }),
6929
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { children })
6757
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { children })
6930
6758
  ] })
6931
6759
  ] }) }),
6932
- !editLink && hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { css: ObjectSearchAuthorStateGroup, children: [
6933
- !editLink ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(LinkButton, { text: "Edit", href: editLink, icon: editLinkIcon }),
6934
- hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_design_system38.Button, { buttonType: "ghostDestructive", onClick: onRemoveItem, children: "Remove" })
6760
+ !editLink && hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { css: ObjectSearchAuthorStateGroup, children: [
6761
+ !editLink ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LinkButton, { text: "Edit", href: editLink, icon: editLinkIcon }),
6762
+ hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Button, { buttonType: "ghostDestructive", onClick: onRemoveItem, children: "Remove" })
6935
6763
  ] })
6936
6764
  ] });
6937
6765
  };
6938
6766
 
6939
- // src/components/ObjectSearch/ObjectSearchResultList.tsx
6940
- var import_design_system39 = require("@uniformdev/design-system");
6941
- var import_react_beautiful_dnd4 = require("react-beautiful-dnd");
6942
-
6943
6767
  // src/components/ObjectSearch/styles/ObjectSearchResultList.styles.ts
6944
- var import_react72 = require("@emotion/react");
6945
- var ObjectSearchResultListContainer = import_react72.css`
6768
+ var import_react70 = require("@emotion/react");
6769
+ var ObjectSearchResultListContainer = import_react70.css`
6946
6770
  align-items: center;
6947
6771
  display: flex;
6948
6772
  gap: var(--spacing-sm);
6949
6773
  justify-content: space-between;
6950
6774
  `;
6951
- var ObjectSearchDragContainer = import_react72.css`
6775
+ var ObjectSearchDragContainer = import_react70.css`
6952
6776
  margin: 0 0 var(--spacing-sm);
6953
6777
  `;
6954
- var ObjectSearchContainerDragging = import_react72.css`
6778
+ var ObjectSearchContainerDragging = import_react70.css`
6955
6779
  box-shadow: var(--shadow-base);
6956
6780
  opacity: var(--opacity-50);
6957
6781
  `;
6958
- var ObjectSearchResultListCounterContainer = import_react72.css`
6782
+ var ObjectSearchResultListCounterContainer = import_react70.css`
6959
6783
  align-items: center;
6960
6784
  display: flex;
6961
6785
  gap: var(--spacing-sm);
6962
6786
  `;
6963
- var ObjectSearchResultListTitle = import_react72.css`
6787
+ var ObjectSearchResultListTitle = import_react70.css`
6964
6788
  font-weight: var(--fw-bold);
6965
6789
  line-height: 1;
6966
6790
  `;
6967
6791
 
6968
6792
  // src/components/ObjectSearch/ObjectSearchResultList.tsx
6969
- var import_jsx_runtime66 = require("@emotion/react/jsx-runtime");
6793
+ var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
6970
6794
  function ObjectSearchResultList({
6971
6795
  resultLabelText = "Selected",
6972
6796
  removeButtonText = "Remove all",
6973
6797
  onRemoveAllSelected,
6974
6798
  hideRemoveButton = false,
6975
6799
  additionalButtons,
6976
- renderResultComponent = (value) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ObjectSearchResultItem, { ...value }),
6800
+ renderResultComponent = (value) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ObjectSearchResultItem, { ...value }),
6977
6801
  multiSelectId,
6978
6802
  disableDnD = false,
6979
6803
  getContainerForDnDReparenting,
@@ -7000,7 +6824,7 @@ function ObjectSearchResultList({
7000
6824
  ...item,
7001
6825
  disableDnD: selectedListItems.length === 1 || disableDnD
7002
6826
  });
7003
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6827
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7004
6828
  "div",
7005
6829
  {
7006
6830
  css: [
@@ -7015,17 +6839,17 @@ function ObjectSearchResultList({
7015
6839
  }
7016
6840
  );
7017
6841
  };
7018
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_jsx_runtime66.Fragment, { children: [
7019
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { role: "group", css: ObjectSearchResultListContainer, children: [
7020
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { role: "note", css: ObjectSearchResultListCounterContainer, children: [
7021
- /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { css: ObjectSearchResultListTitle, children: resultLabelText }),
6842
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
6843
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { role: "group", css: ObjectSearchResultListContainer, children: [
6844
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { role: "note", css: ObjectSearchResultListCounterContainer, children: [
6845
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { css: ObjectSearchResultListTitle, children: resultLabelText }),
7022
6846
  " ",
7023
- !selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_design_system39.Counter, { count: selectedListItems.length })
6847
+ !selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_design_system37.Counter, { count: selectedListItems.length })
7024
6848
  ] }),
7025
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { css: ObjectSearchResultListCounterContainer, children: [
6849
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { css: ObjectSearchResultListCounterContainer, children: [
7026
6850
  additionalButtons,
7027
- hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
7028
- import_design_system39.Button,
6851
+ hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6852
+ import_design_system37.Button,
7029
6853
  {
7030
6854
  buttonType: "ghostDestructive",
7031
6855
  size: "xs",
@@ -7036,15 +6860,15 @@ function ObjectSearchResultList({
7036
6860
  )
7037
6861
  ] })
7038
6862
  ] }),
7039
- !selectedListItems.length ? whenNothingSelected : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DragDropContext, { onDragEnd: (res) => onDragEnd(res), children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6863
+ !selectedListItems.length ? whenNothingSelected : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DragDropContext, { onDragEnd: (res) => onDragEnd(res), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7040
6864
  import_react_beautiful_dnd4.Droppable,
7041
6865
  {
7042
6866
  droppableId: multiSelectId != null ? multiSelectId : "canvas-multi-select",
7043
6867
  renderClone: getContainerForDnDReparenting ? getDraggableItem : void 0,
7044
6868
  getContainerForClone: getContainerForDnDReparenting,
7045
- children: (provided) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { ...provided.droppableProps, ref: provided.innerRef, children: [
6869
+ children: (provided) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { ...provided.droppableProps, ref: provided.innerRef, children: [
7046
6870
  selectedListItems.map((item, i) => {
7047
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6871
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7048
6872
  import_react_beautiful_dnd4.Draggable,
7049
6873
  {
7050
6874
  draggableId: item.id,
@@ -7062,9 +6886,284 @@ function ObjectSearchResultList({
7062
6886
  ] });
7063
6887
  }
7064
6888
 
6889
+ // src/components/ObjectSearch/ObjectSearchContainer.tsx
6890
+ var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
6891
+ var ObjectSearchContainer = ({
6892
+ label,
6893
+ enableDynamicInputToResultId,
6894
+ searchFilters,
6895
+ resultList,
6896
+ children = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ObjectSearchResultList, {})
6897
+ }) => {
6898
+ var _a, _b;
6899
+ const { onSelectItem, selectedListItems, list, dynamicEntryId, onSetQuery, query } = useObjectSearchContext();
6900
+ const { flatVariables } = useVariables(true);
6901
+ const inputValue = (_b = dynamicEntryId != null ? dynamicEntryId : (_a = selectedListItems[0]) == null ? void 0 : _a.id) != null ? _b : "";
6902
+ const isDynamicEntryIdAvailable = import_react72.default.useMemo(
6903
+ () => Boolean(inputValue && hasReferencedVariables(inputValue)),
6904
+ [inputValue]
6905
+ );
6906
+ const listItems = resultList != null ? resultList : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6907
+ import_design_system38.ScrollableList,
6908
+ {
6909
+ role: "list",
6910
+ css: import_react71.css`
6911
+ > div {
6912
+ transition: max-height var(--duration-slow) var(--timing-ease-out);
6913
+ max-height: ${selectedListItems.length === 0 ? "50vh" : "184px"};
6914
+ }
6915
+ `,
6916
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(DefaultResultList, {})
6917
+ }
6918
+ );
6919
+ const handleSelectedVariableChange = (selectedValue) => {
6920
+ var _a2;
6921
+ if (!selectedValue) {
6922
+ onSelectItem([]);
6923
+ return;
6924
+ }
6925
+ const { result, errors } = (0, import_canvas9.bindVariables)({
6926
+ value: selectedValue,
6927
+ variables: flatVariables,
6928
+ errorPrefix: "Dynamic input"
6929
+ });
6930
+ if (!result) {
6931
+ onSelectItem([]);
6932
+ return;
6933
+ }
6934
+ const item = (_a2 = list.items) == null ? void 0 : _a2.find((i) => i.id === result);
6935
+ onSelectItem([
6936
+ {
6937
+ title: selectedValue,
6938
+ contentType: (errors == null ? void 0 : errors.length) ? errors[0] instanceof Error ? errors[0].message : errors[0] : `Current dynamic value "${result}" is not an ID in the options`,
6939
+ // spread any matched list item, overriding the above default props
6940
+ ...item,
6941
+ // we want to make sure the ID is our dynamic value
6942
+ id: selectedValue
6943
+ }
6944
+ ]);
6945
+ if (hasReferencedVariables(selectedValue)) {
6946
+ onSetQuery({ ...query, dynamicEntryId: selectedValue });
6947
+ }
6948
+ };
6949
+ const showSearchList = !label || !isDynamicEntryIdAvailable || !enableDynamicInputToResultId;
6950
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_design_system38.IconsProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_design_system38.VerticalRhythm, { children: [
6951
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_design_system38.Container, { backgroundColor: "gray-50", padding: "var(--spacing-base)", border: true, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_design_system38.VerticalRhythm, { children: [
6952
+ label ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
6953
+ InputVariables,
6954
+ {
6955
+ id: "entryId",
6956
+ label,
6957
+ value: inputValue,
6958
+ onChange: (value) => {
6959
+ if (value === inputValue) {
6960
+ return;
6961
+ }
6962
+ handleSelectedVariableChange(value);
6963
+ },
6964
+ inputWhenNoVariables: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_jsx_runtime64.Fragment, { children: searchFilters }),
6965
+ disableVariables: !enableDynamicInputToResultId
6966
+ }
6967
+ ) : searchFilters,
6968
+ showSearchList ? listItems : null
6969
+ ] }) }),
6970
+ children
6971
+ ] }) });
6972
+ };
6973
+ var DefaultResultList = () => {
6974
+ var _a, _b;
6975
+ const { list, isListLoading } = useObjectSearchContext();
6976
+ if (isListLoading || !list.items) {
6977
+ return Array.from(Array(5).keys()).map((i) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ObjectSearchListItemLoadingSkeleton, {}, i));
6978
+ }
6979
+ if (((_a = list.items) == null ? void 0 : _a.length) === 0) {
6980
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_design_system38.Callout, { type: "info", children: "No results were found" });
6981
+ }
6982
+ return (_b = list.items) == null ? void 0 : _b.map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ObjectSearchListItem, { ...item }, item.id));
6983
+ };
6984
+
6985
+ // src/components/ObjectSearch/ObjectSearchFilter.tsx
6986
+ var import_design_system39 = require("@uniformdev/design-system");
6987
+ var import_react75 = require("react");
6988
+ var import_react_use5 = require("react-use");
6989
+
6990
+ // src/utils/createLocationValidator.ts
6991
+ function createLocationValidator(setValue, validate) {
6992
+ return (dispatch) => setValue((previous) => {
6993
+ const { newValue, options } = dispatch(previous);
6994
+ return { newValue, options: validate(newValue, options) };
6995
+ });
6996
+ }
6997
+
6998
+ // src/utils/useContentDataResourceLocaleInfo.ts
6999
+ var import_canvas10 = require("@uniformdev/canvas");
7000
+ var import_react73 = require("react");
7001
+ function useContentDataResourceLocaleInfo({
7002
+ locale,
7003
+ setLocale,
7004
+ dynamicInputs
7005
+ }) {
7006
+ var _a;
7007
+ const setLocaleRef = (0, import_react73.useRef)(setLocale);
7008
+ setLocaleRef.current = setLocale;
7009
+ const { flatVariables } = useVariables();
7010
+ const effectiveLocale = locale != null ? locale : dynamicInputs[import_canvas10.LOCALE_DYNAMIC_INPUT_NAME] ? (0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME) : "";
7011
+ const boundLocale = (_a = (0, import_canvas10.bindVariables)({ variables: flatVariables, value: effectiveLocale }).result) != null ? _a : effectiveLocale;
7012
+ (0, import_react73.useEffect)(() => {
7013
+ if (locale === void 0 && effectiveLocale && setLocaleRef.current) {
7014
+ setLocaleRef.current((0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME));
7015
+ }
7016
+ }, [locale, effectiveLocale]);
7017
+ return { effectiveLocale, boundLocale: boundLocale ? boundLocale : void 0 };
7018
+ }
7019
+
7020
+ // src/components/ObjectSearch/styles/ObjectSearchFilterContainer.styles.ts
7021
+ var import_react74 = require("@emotion/react");
7022
+ var ObjectSearchFilterContainerLabel = import_react74.css`
7023
+ align-items: center;
7024
+ display: flex;
7025
+ font-size: var(--fs-sm);
7026
+ font-weight: var(--fw-bold);
7027
+ line-height: 1rem;
7028
+ margin-bottom: var(--spacing-sm);
7029
+ `;
7030
+ var ObjectSearchFilterContainer = import_react74.css`
7031
+ display: grid;
7032
+ gap: var(--spacing-base);
7033
+ `;
7034
+ var ObjectSearchFilterGrid = (gridColumns) => import_react74.css`
7035
+ display: grid;
7036
+ grid-template-columns: ${gridColumns};
7037
+ gap: var(--spacing-base);
7038
+ `;
7039
+
7040
+ // src/components/ObjectSearch/ObjectSearchFilter.tsx
7041
+ var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
7042
+ var ObjectSearchFilter = ({
7043
+ requireContentType,
7044
+ typeSelectorAllTypesOptionText = "All content types",
7045
+ searchInputName = "searchText",
7046
+ searchInputPlaceholderText = "Enter keyword to narrow your results",
7047
+ selectLabel = "Content Type Select",
7048
+ localeFilterLabel = "Filter by locale",
7049
+ selectOptions
7050
+ }) => {
7051
+ var _a, _b, _c;
7052
+ const { query, onSetQuery, localeOptions, enableFilterByLocale } = useObjectSearchContext();
7053
+ const dynamicInputs = useDataResourceDynamicInputs();
7054
+ const { boundLocale = "", effectiveLocale } = useContentDataResourceLocaleInfo({
7055
+ locale: query.locale,
7056
+ dynamicInputs: dynamicInputs != null ? dynamicInputs : {},
7057
+ setLocale: (newLocale) => handleFilterChange({ locale: newLocale != null ? newLocale : "" })
7058
+ });
7059
+ const [searchState, setSearchState] = (0, import_react75.useState)({
7060
+ keyword: (_a = query.keyword) != null ? _a : "",
7061
+ contentType: (_b = query.contentType) != null ? _b : "",
7062
+ locale: (_c = query.locale) != null ? _c : ""
7063
+ });
7064
+ const handleFilterChange = (value) => {
7065
+ setSearchState((prev) => {
7066
+ return { ...prev, ...value };
7067
+ });
7068
+ };
7069
+ (0, import_react_use5.useDebounce)(
7070
+ () => {
7071
+ onSetQuery({ ...query, ...searchState });
7072
+ },
7073
+ 500,
7074
+ [searchState]
7075
+ );
7076
+ const memoizedSelectOptions = (0, import_react75.useMemo)(() => {
7077
+ if (!requireContentType && !(selectOptions == null ? void 0 : selectOptions.length)) {
7078
+ return [];
7079
+ }
7080
+ return [
7081
+ ...!requireContentType ? [{ value: "any", label: typeSelectorAllTypesOptionText }] : [],
7082
+ ...selectOptions != null ? selectOptions : []
7083
+ ];
7084
+ }, [requireContentType, typeSelectorAllTypesOptionText, selectOptions]);
7085
+ const shouldRenderSelect = memoizedSelectOptions.length > 0;
7086
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_design_system39.VerticalRhythm, { gap: "base", children: [
7087
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
7088
+ "fieldset",
7089
+ {
7090
+ css: [
7091
+ ObjectSearchFilterContainer,
7092
+ ObjectSearchFilterGrid(shouldRenderSelect ? "1fr 2fr" : "1fr")
7093
+ ],
7094
+ children: [
7095
+ memoizedSelectOptions.length ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7096
+ import_design_system39.InputSelect,
7097
+ {
7098
+ label: selectLabel,
7099
+ showLabel: false,
7100
+ onChange: (e) => handleFilterChange({ contentType: e.target.value }),
7101
+ options: memoizedSelectOptions,
7102
+ value: query.contentType,
7103
+ "data-testid": "select-entry"
7104
+ }
7105
+ ) : null,
7106
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7107
+ import_design_system39.InputKeywordSearch,
7108
+ {
7109
+ inputFieldName: searchInputName,
7110
+ placeholder: searchInputPlaceholderText,
7111
+ onSearchTextChanged: (e) => handleFilterChange({ keyword: e }),
7112
+ disabledFieldSubmission: true,
7113
+ onClear: () => handleFilterChange({ keyword: "" }),
7114
+ value: searchState.keyword
7115
+ }
7116
+ ),
7117
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7118
+ import_design_system39.DebouncedInputKeywordSearch,
7119
+ {
7120
+ inputFieldName: searchInputName,
7121
+ placeholder: searchInputPlaceholderText,
7122
+ onSearchTextChanged: (keyword) => handleFilterChange({ keyword }),
7123
+ disabledFieldSubmission: true,
7124
+ defaultValue: searchState.keyword,
7125
+ delay: 300
7126
+ }
7127
+ )
7128
+ ]
7129
+ }
7130
+ ),
7131
+ enableFilterByLocale && (localeOptions == null ? void 0 : localeOptions.length) && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7132
+ InputVariables,
7133
+ {
7134
+ label: localeFilterLabel,
7135
+ id: "locale",
7136
+ value: effectiveLocale,
7137
+ onChange: (newLocale) => handleFilterChange({ locale: newLocale != null ? newLocale : "" }),
7138
+ disableInlineMenu: true,
7139
+ inputWhenNoVariables: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7140
+ import_design_system39.InputSelect,
7141
+ {
7142
+ id: "locale",
7143
+ options: localeOptions,
7144
+ name: "locale",
7145
+ label: "",
7146
+ value: boundLocale,
7147
+ onChange: (e) => handleFilterChange({ locale: e.target.value })
7148
+ }
7149
+ )
7150
+ }
7151
+ )
7152
+ ] });
7153
+ };
7154
+
7155
+ // src/components/ObjectSearch/ObjectSearchFilterContainer.tsx
7156
+ var import_jsx_runtime66 = require("@emotion/react/jsx-runtime");
7157
+ var ObjectSearchFilterContainer2 = ({ label, children }) => {
7158
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { children: [
7159
+ label ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { css: ObjectSearchFilterContainerLabel, children: label }) : null,
7160
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { css: ObjectSearchFilterContainer, children })
7161
+ ] });
7162
+ };
7163
+
7065
7164
  // src/components/ObjectSearch/QueryFilter.tsx
7066
7165
  var import_design_system40 = require("@uniformdev/design-system");
7067
- var import_react73 = require("react");
7166
+ var import_react76 = require("react");
7068
7167
  var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
7069
7168
  var QueryFilter = ({
7070
7169
  requireContentType,
@@ -7094,7 +7193,7 @@ var QueryFilter = ({
7094
7193
  }) => {
7095
7194
  var _a, _b, _c, _d, _e, _f, _g;
7096
7195
  const { query, onSetQuery } = useObjectSearchContext();
7097
- const [queryState, setQueryState] = (0, import_react73.useState)({
7196
+ const [queryState, setQueryState] = (0, import_react76.useState)({
7098
7197
  contentType: (_a = query.contentType) != null ? _a : "",
7099
7198
  keyword: (_b = query.keyword) != null ? _b : "",
7100
7199
  count: (_c = query.count) != null ? _c : countValue,
@@ -7105,7 +7204,7 @@ var QueryFilter = ({
7105
7204
  setQueryState((prev) => ({ ...prev, ...value }));
7106
7205
  onSetQuery({ ...query, ...value });
7107
7206
  };
7108
- (0, import_react73.useEffect)(() => {
7207
+ (0, import_react76.useEffect)(() => {
7109
7208
  onSetQuery(queryState);
7110
7209
  }, []);
7111
7210
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("fieldset", { children: [
@@ -7230,9 +7329,93 @@ var QueryFilter = ({
7230
7329
  ] });
7231
7330
  };
7232
7331
 
7233
- // src/components/ParamTypeDynamicDataProvider.tsx
7234
- var import_react74 = require("react");
7332
+ // src/components/ObjectSearch/hooks/ControlledObjectSearchProvider.tsx
7333
+ var import_react77 = require("react");
7235
7334
  var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
7335
+ var ControlledObjectSearchProvider = ({
7336
+ selectedItems,
7337
+ searchResultItems,
7338
+ selectedItemsLoading,
7339
+ searchResultListLoading,
7340
+ searchResultItemsLoading,
7341
+ onQueryChange,
7342
+ onSelectItemsChange,
7343
+ isMulti = false,
7344
+ children,
7345
+ query,
7346
+ enableFilterByLocale,
7347
+ localeOptions,
7348
+ dynamicEntryId
7349
+ }) => {
7350
+ const { flatVariables } = useVariables(true);
7351
+ const querySearchDeferred = (0, import_react77.useDeferredValue)(query);
7352
+ const onSetQuery = (0, import_react77.useCallback)(
7353
+ (value2) => {
7354
+ const newQuery = { ...query, ...value2 };
7355
+ onQueryChange(newQuery);
7356
+ },
7357
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7358
+ [onQueryChange]
7359
+ );
7360
+ const onSelectItem = (0, import_react77.useCallback)(
7361
+ (selectedResult) => {
7362
+ if (Array.isArray(selectedResult)) {
7363
+ onSelectItemsChange(selectedResult);
7364
+ } else {
7365
+ if (selectedItems == null ? void 0 : selectedItems.some((item) => item.id === selectedResult.id)) {
7366
+ onSelectItemsChange(selectedItems.filter((item) => item.id !== selectedResult.id));
7367
+ } else {
7368
+ onSelectItemsChange([...selectedItems != null ? selectedItems : [], selectedResult]);
7369
+ }
7370
+ }
7371
+ },
7372
+ [onSelectItemsChange, selectedItems]
7373
+ );
7374
+ const onRemoveAllSelectedItems = (0, import_react77.useCallback)(() => {
7375
+ onSelectItemsChange([]);
7376
+ }, [onSelectItemsChange]);
7377
+ const list = (0, import_react77.useMemo)(() => ({ items: searchResultItems }), [searchResultItems]);
7378
+ const boundQuery = (0, import_react77.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
7379
+ const value = (0, import_react77.useMemo)(
7380
+ () => ({
7381
+ boundQuery,
7382
+ onSetQuery,
7383
+ query: querySearchDeferred,
7384
+ onSelectItem,
7385
+ selectedListItems: selectedItems != null ? selectedItems : [],
7386
+ onRemoveAllSelectedItems,
7387
+ list,
7388
+ selectedItemsLoading,
7389
+ searchResultItemsLoading,
7390
+ searchResultListLoading,
7391
+ isMulti,
7392
+ localeOptions,
7393
+ enableFilterByLocale,
7394
+ dynamicEntryId
7395
+ }),
7396
+ [
7397
+ boundQuery,
7398
+ onSetQuery,
7399
+ querySearchDeferred,
7400
+ onSelectItem,
7401
+ selectedItems,
7402
+ selectedItemsLoading,
7403
+ searchResultItemsLoading,
7404
+ onRemoveAllSelectedItems,
7405
+ searchResultListLoading,
7406
+ list,
7407
+ isMulti,
7408
+ localeOptions,
7409
+ enableFilterByLocale,
7410
+ dynamicEntryId
7411
+ ]
7412
+ );
7413
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ObjectSearchContext.Provider, { value, children });
7414
+ };
7415
+
7416
+ // src/components/ParamTypeDynamicDataProvider.tsx
7417
+ var import_react78 = require("react");
7418
+ var import_jsx_runtime69 = require("@emotion/react/jsx-runtime");
7236
7419
  function ParamTypeDynamicDataProvider(props) {
7237
7420
  const { children } = props;
7238
7421
  const {
@@ -7240,11 +7423,11 @@ function ParamTypeDynamicDataProvider(props) {
7240
7423
  } = useMeshLocation("paramType");
7241
7424
  const dynamicInputsAsVariables = useDynamicInputsAsVariables(dynamicInputs);
7242
7425
  const connectedDataAsVariables = useConnectedDataAsVariables(connectedData);
7243
- const variables = (0, import_react74.useMemo)(
7426
+ const variables = (0, import_react78.useMemo)(
7244
7427
  () => ({ ...connectedDataAsVariables, ...dynamicInputsAsVariables }),
7245
7428
  [dynamicInputsAsVariables, connectedDataAsVariables]
7246
7429
  );
7247
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(VariablesProvider, { value: variables, onChange: () => {
7430
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(VariablesProvider, { value: variables, onChange: () => {
7248
7431
  }, editVariableComponent: JsonMeshVariableEditor, children });
7249
7432
  }
7250
7433
  var JsonMeshVariableEditor = ({
@@ -7253,9 +7436,9 @@ var JsonMeshVariableEditor = ({
7253
7436
  variable,
7254
7437
  context
7255
7438
  }) => {
7256
- const sillyRef = (0, import_react74.useRef)(false);
7439
+ const sillyRef = (0, import_react78.useRef)(false);
7257
7440
  const { editConnectedData } = useMeshLocation("paramType");
7258
- (0, import_react74.useEffect)(() => {
7441
+ (0, import_react78.useEffect)(() => {
7259
7442
  if (sillyRef.current) {
7260
7443
  return;
7261
7444
  }
@@ -7283,36 +7466,6 @@ var JsonMeshVariableEditor = ({
7283
7466
  return null;
7284
7467
  };
7285
7468
 
7286
- // src/utils/createLocationValidator.ts
7287
- function createLocationValidator(setValue, validate) {
7288
- return (dispatch) => setValue((previous) => {
7289
- const { newValue, options } = dispatch(previous);
7290
- return { newValue, options: validate(newValue, options) };
7291
- });
7292
- }
7293
-
7294
- // src/utils/useContentDataResourceLocaleInfo.ts
7295
- var import_canvas10 = require("@uniformdev/canvas");
7296
- var import_react75 = require("react");
7297
- function useContentDataResourceLocaleInfo({
7298
- locale,
7299
- setLocale,
7300
- dynamicInputs
7301
- }) {
7302
- var _a;
7303
- const setLocaleRef = (0, import_react75.useRef)(setLocale);
7304
- setLocaleRef.current = setLocale;
7305
- const { flatVariables } = useVariables();
7306
- const effectiveLocale = locale != null ? locale : dynamicInputs[import_canvas10.LOCALE_DYNAMIC_INPUT_NAME] ? (0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME) : "";
7307
- const boundLocale = (_a = (0, import_canvas10.bindVariables)({ variables: flatVariables, value: effectiveLocale }).result) != null ? _a : effectiveLocale;
7308
- (0, import_react75.useEffect)(() => {
7309
- if (locale === void 0 && effectiveLocale && setLocaleRef.current) {
7310
- setLocaleRef.current((0, import_canvas10.createVariableReference)(import_canvas10.LOCALE_DYNAMIC_INPUT_NAME));
7311
- }
7312
- }, [locale, effectiveLocale]);
7313
- return { effectiveLocale, boundLocale: boundLocale ? boundLocale : void 0 };
7314
- }
7315
-
7316
7469
  // src/index.ts
7317
7470
  var import_design_system41 = require("@uniformdev/design-system");
7318
7471
  __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
@@ -7323,11 +7476,13 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7323
7476
  AddListButton,
7324
7477
  Button,
7325
7478
  Callout,
7479
+ ControlledObjectSearchProvider,
7326
7480
  ControlledValuePlugin,
7327
7481
  DISCONNECT_VARIABLE_COMMAND,
7328
7482
  DamSelectedItem,
7329
7483
  DataRefreshButton,
7330
7484
  DataResourceDynamicInputProvider,
7485
+ DataResourceInputContext,
7331
7486
  DataResourceVariablesList,
7332
7487
  DataResourceVariablesListExplicit,
7333
7488
  DataSourceEditor,
@@ -7355,6 +7510,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7355
7510
  MeshApp,
7356
7511
  OPEN_INSERT_VARIABLE_COMMAND,
7357
7512
  ObjectSearchContainer,
7513
+ ObjectSearchContext,
7358
7514
  ObjectSearchFilter,
7359
7515
  ObjectSearchFilterContainer,
7360
7516
  ObjectSearchListItem,
@@ -7412,6 +7568,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7412
7568
  VariablesPlugin,
7413
7569
  VariablesProvider,
7414
7570
  badgeIcon,
7571
+ bindQuery,
7415
7572
  convertConnectedDataToVariable,
7416
7573
  createLocationValidator,
7417
7574
  damSelectItemImage,
@@ -7483,6 +7640,7 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7483
7640
  urlEncodeRequestUrl,
7484
7641
  useConnectedDataAsVariables,
7485
7642
  useContentDataResourceLocaleInfo,
7643
+ useDataResourceDynamicInputs,
7486
7644
  useDynamicInputsAsVariables,
7487
7645
  useMeshLocation,
7488
7646
  useObjectSearchContext,