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

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,13 +36,11 @@ __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,
40
39
  ControlledValuePlugin: () => ControlledValuePlugin,
41
40
  DISCONNECT_VARIABLE_COMMAND: () => DISCONNECT_VARIABLE_COMMAND,
42
41
  DamSelectedItem: () => DamSelectedItem,
43
42
  DataRefreshButton: () => DataRefreshButton,
44
43
  DataResourceDynamicInputProvider: () => DataResourceDynamicInputProvider,
45
- DataResourceInputContext: () => DataResourceInputContext,
46
44
  DataResourceVariablesList: () => DataResourceVariablesList,
47
45
  DataResourceVariablesListExplicit: () => DataResourceVariablesListExplicit,
48
46
  DataSourceEditor: () => DataSourceEditor,
@@ -70,7 +68,6 @@ __export(src_exports, {
70
68
  MeshApp: () => MeshApp,
71
69
  OPEN_INSERT_VARIABLE_COMMAND: () => OPEN_INSERT_VARIABLE_COMMAND,
72
70
  ObjectSearchContainer: () => ObjectSearchContainer,
73
- ObjectSearchContext: () => ObjectSearchContext,
74
71
  ObjectSearchFilter: () => ObjectSearchFilter,
75
72
  ObjectSearchFilterContainer: () => ObjectSearchFilterContainer2,
76
73
  ObjectSearchListItem: () => ObjectSearchListItem,
@@ -128,7 +125,6 @@ __export(src_exports, {
128
125
  VariablesPlugin: () => VariablesPlugin,
129
126
  VariablesProvider: () => VariablesProvider,
130
127
  badgeIcon: () => badgeIcon,
131
- bindQuery: () => bindQuery,
132
128
  convertConnectedDataToVariable: () => convertConnectedDataToVariable,
133
129
  createLocationValidator: () => createLocationValidator,
134
130
  damSelectItemImage: () => damSelectItemImage,
@@ -200,7 +196,6 @@ __export(src_exports, {
200
196
  urlEncodeRequestUrl: () => urlEncodeRequestUrl,
201
197
  useConnectedDataAsVariables: () => useConnectedDataAsVariables,
202
198
  useContentDataResourceLocaleInfo: () => useContentDataResourceLocaleInfo,
203
- useDataResourceDynamicInputs: () => useDataResourceDynamicInputs,
204
199
  useDynamicInputsAsVariables: () => useDynamicInputsAsVariables,
205
200
  useMeshLocation: () => useMeshLocation,
206
201
  useObjectSearchContext: () => useObjectSearchContext,
@@ -2860,9 +2855,6 @@ function DefaultDamItemRenderer({ item }) {
2860
2855
  ] }) : null;
2861
2856
  }
2862
2857
 
2863
- // src/components/DataResourceDynamicInputProvider.tsx
2864
- var import_react58 = require("react");
2865
-
2866
2858
  // src/hooks/useConnectedDataAsVariables.tsx
2867
2859
  var import_react26 = require("react");
2868
2860
  function useConnectedDataAsVariables(connectedData) {
@@ -5362,13 +5354,13 @@ function VariablesList() {
5362
5354
  const result = [...sorted || []];
5363
5355
  const [removed] = (_b = result == null ? void 0 : result.splice(res.source.index, 1)) != null ? _b : [];
5364
5356
  result == null ? void 0 : result.splice(res.destination.index, 0, removed);
5365
- const resultAsObj = result.reduce(
5366
- (acc, item, index) => ({
5357
+ const resultAsObj = result.reduce((acc, item, index) => {
5358
+ const { name, ...variableDefinition } = item;
5359
+ return {
5367
5360
  ...acc,
5368
- [item.name]: { type: item.type, default: item.default, order: index }
5369
- }),
5370
- {}
5371
- );
5361
+ [item.name]: { ...variableDefinition, order: index }
5362
+ };
5363
+ }, {});
5372
5364
  dispatch({ type: "reorder", result: resultAsObj });
5373
5365
  return result;
5374
5366
  }
@@ -5455,10 +5447,6 @@ function VariablesList() {
5455
5447
 
5456
5448
  // src/components/DataResourceDynamicInputProvider.tsx
5457
5449
  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
- };
5462
5450
  function DataResourceDynamicInputProvider(props) {
5463
5451
  const { children, dynamicInputs } = props;
5464
5452
  if (dynamicInputs) {
@@ -5477,7 +5465,7 @@ function DataResourceDynamicInputProviderRenderer({
5477
5465
  dynamicInputs
5478
5466
  }) {
5479
5467
  const variables = useDynamicInputsAsVariables(dynamicInputs);
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 }) });
5468
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(VariablesProvider, { value: variables, readOnly: true, children });
5481
5469
  }
5482
5470
 
5483
5471
  // src/components/DataResourceVariablesList.tsx
@@ -5554,9 +5542,9 @@ function TextVariableRenderer({ definition, value, setValue }) {
5554
5542
  }
5555
5543
 
5556
5544
  // src/components/Request/RequestBody.tsx
5557
- var import_react60 = require("@emotion/react");
5545
+ var import_react59 = require("@emotion/react");
5558
5546
  var import_design_system27 = require("@uniformdev/design-system");
5559
- var import_react61 = require("react");
5547
+ var import_react60 = require("react");
5560
5548
 
5561
5549
  // src/components/Request/RequestProvider.tsx
5562
5550
  var React11 = __toESM(require("react"));
@@ -5640,11 +5628,11 @@ function useRequest() {
5640
5628
  }
5641
5629
 
5642
5630
  // src/components/Request/styles/Request.styles.ts
5643
- var import_react59 = require("@emotion/react");
5644
- var innerContentStyles = import_react59.css`
5631
+ var import_react58 = require("@emotion/react");
5632
+ var innerContentStyles = import_react58.css`
5645
5633
  background: var(--white);
5646
5634
  `;
5647
- var requestTypeContainer = (bgColor) => import_react59.css`
5635
+ var requestTypeContainer = (bgColor) => import_react58.css`
5648
5636
  align-items: start;
5649
5637
  background: ${bgColor};
5650
5638
  display: grid;
@@ -5682,11 +5670,11 @@ var LANGUAGE_TO_CONTENT_TYPE = {
5682
5670
  };
5683
5671
  function RequestBody() {
5684
5672
  const { request, dispatch } = useRequest();
5685
- const [language, setLanguage] = (0, import_react61.useState)("json");
5673
+ const [language, setLanguage] = (0, import_react60.useState)("json");
5686
5674
  return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
5687
5675
  "div",
5688
5676
  {
5689
- css: import_react60.css`
5677
+ css: import_react59.css`
5690
5678
  background: var(--white);
5691
5679
  `,
5692
5680
  children: [
@@ -5694,7 +5682,7 @@ function RequestBody() {
5694
5682
  RequestTypeContainer,
5695
5683
  {
5696
5684
  bgColor: "var(--gray-100)",
5697
- css: import_react60.css`
5685
+ css: import_react59.css`
5698
5686
  padding: var(--spacing-sm) var(--spacing-base);
5699
5687
  `,
5700
5688
  children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
@@ -5965,8 +5953,8 @@ function RequestParameters({
5965
5953
  }
5966
5954
 
5967
5955
  // src/components/Request/RequestUrl.tsx
5968
- var import_react62 = require("@emotion/react");
5969
- var import_react63 = require("react");
5956
+ var import_react61 = require("@emotion/react");
5957
+ var import_react62 = require("react");
5970
5958
 
5971
5959
  // src/components/Request/urlEncodeRequestParameter.ts
5972
5960
  function urlEncodeRequestUrl(url, varValues) {
@@ -5992,7 +5980,7 @@ function RequestUrl() {
5992
5980
  var _a, _b;
5993
5981
  const { variables } = useVariables();
5994
5982
  const { request } = useRequest();
5995
- const mergedParameters = (0, import_react63.useMemo)(() => {
5983
+ const mergedParameters = (0, import_react62.useMemo)(() => {
5996
5984
  var _a2;
5997
5985
  if (!((_a2 = request.baseRequest) == null ? void 0 : _a2.parameters)) {
5998
5986
  return request.parameters;
@@ -6002,7 +5990,7 @@ function RequestUrl() {
6002
5990
  return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
6003
5991
  "small",
6004
5992
  {
6005
- css: import_react62.css`
5993
+ css: import_react61.css`
6006
5994
  display: inline-block;
6007
5995
  margin-bottom: var(--spacing-xs);
6008
5996
  word-break: break-word;
@@ -6240,12 +6228,12 @@ var import_design_system31 = require("@uniformdev/design-system");
6240
6228
 
6241
6229
  // src/hooks/useInitializeUniformMeshSdk.ts
6242
6230
  var import_mesh_sdk = require("@uniformdev/mesh-sdk");
6243
- var import_react64 = require("react");
6231
+ var import_react63 = require("react");
6244
6232
  var useInitializeUniformMeshSdk = ({ autoResizingDisabled } = {}) => {
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)(
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)(
6249
6237
  () => {
6250
6238
  if (typeof window === "undefined" || sdk) {
6251
6239
  return;
@@ -6303,7 +6291,7 @@ var MeshApp = ({
6303
6291
  };
6304
6292
 
6305
6293
  // src/components/ObjectSearch/DataRefreshButton.tsx
6306
- var import_react65 = require("@emotion/react");
6294
+ var import_react64 = require("@emotion/react");
6307
6295
  var import_design_system32 = require("@uniformdev/design-system");
6308
6296
  var import_jsx_runtime58 = require("@emotion/react/jsx-runtime");
6309
6297
  var DataRefreshButton = ({
@@ -6316,7 +6304,7 @@ var DataRefreshButton = ({
6316
6304
  !isLoading ? null : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
6317
6305
  import_design_system32.LoadingIndicator,
6318
6306
  {
6319
- css: import_react65.css`
6307
+ css: import_react64.css`
6320
6308
  ${isLoading ? "opacity: 0.2;" : void 0}
6321
6309
  `
6322
6310
  }
@@ -6326,16 +6314,15 @@ var DataRefreshButton = ({
6326
6314
  };
6327
6315
 
6328
6316
  // src/components/ObjectSearch/ObjectSearchContainer.tsx
6329
- var import_react71 = require("@emotion/react");
6317
+ var import_react67 = require("@emotion/react");
6330
6318
  var import_canvas9 = require("@uniformdev/canvas");
6331
- var import_design_system38 = require("@uniformdev/design-system");
6332
- var import_react72 = __toESM(require("react"));
6319
+ var import_design_system35 = require("@uniformdev/design-system");
6333
6320
 
6334
6321
  // src/components/ObjectSearch/hooks/ObjectSearchContext.tsx
6335
6322
  var import_canvas8 = require("@uniformdev/canvas");
6336
- var import_react66 = require("react");
6323
+ var import_react65 = require("react");
6337
6324
  var import_jsx_runtime59 = require("@emotion/react/jsx-runtime");
6338
- var ObjectSearchContext = (0, import_react66.createContext)({
6325
+ var ObjectSearchContext = (0, import_react65.createContext)({
6339
6326
  onSetQuery: () => {
6340
6327
  },
6341
6328
  onSelectItem: () => {
@@ -6343,6 +6330,8 @@ var ObjectSearchContext = (0, import_react66.createContext)({
6343
6330
  query: {},
6344
6331
  boundQuery: {},
6345
6332
  list: {},
6333
+ onSetList: () => {
6334
+ },
6346
6335
  selectedListItems: [],
6347
6336
  onRemoveAllSelectedItems: () => {
6348
6337
  },
@@ -6354,16 +6343,16 @@ var ObjectSearchProvider = ({
6354
6343
  children,
6355
6344
  defaultQuery
6356
6345
  }) => {
6357
- const [query, setQuery] = (0, import_react66.useState)({
6346
+ const [query, setQuery] = (0, import_react65.useState)({
6358
6347
  contentType: "",
6359
6348
  keyword: "",
6360
6349
  ...defaultQuery
6361
6350
  });
6362
6351
  const { flatVariables } = useVariables(true);
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)(
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)(
6367
6356
  (value2) => {
6368
6357
  if (Array.isArray(value2.contentType) && value2.contentType.length > 0) {
6369
6358
  return setQuery({
@@ -6375,7 +6364,7 @@ var ObjectSearchProvider = ({
6375
6364
  },
6376
6365
  [setQuery]
6377
6366
  );
6378
- const onSelectItem = (0, import_react66.useCallback)(
6367
+ const onSelectItem = (0, import_react65.useCallback)(
6379
6368
  (selectedResult) => {
6380
6369
  if (Array.isArray(selectedResult)) {
6381
6370
  setSelectedItems(selectedResult);
@@ -6389,17 +6378,17 @@ var ObjectSearchProvider = ({
6389
6378
  },
6390
6379
  [setSelectedItems, selectedItems]
6391
6380
  );
6392
- const onRemoveAllSelectedItems = (0, import_react66.useCallback)(() => {
6381
+ const onRemoveAllSelectedItems = (0, import_react65.useCallback)(() => {
6393
6382
  setSelectedItems([]);
6394
6383
  }, [setSelectedItems]);
6395
- const onSetList = (0, import_react66.useCallback)(
6384
+ const onSetList = (0, import_react65.useCallback)(
6396
6385
  (value2) => {
6397
6386
  setList(value2);
6398
6387
  },
6399
6388
  [setList]
6400
6389
  );
6401
- const boundQuery = (0, import_react66.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
6402
- const value = (0, import_react66.useMemo)(
6390
+ const boundQuery = (0, import_react65.useMemo)(() => bindQuery(query, flatVariables), [query, flatVariables]);
6391
+ const value = (0, import_react65.useMemo)(
6403
6392
  () => ({
6404
6393
  boundQuery,
6405
6394
  onSetQuery,
@@ -6426,7 +6415,7 @@ var ObjectSearchProvider = ({
6426
6415
  return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ObjectSearchContext.Provider, { value, children });
6427
6416
  };
6428
6417
  function useObjectSearchContext() {
6429
- return (0, import_react66.useContext)(ObjectSearchContext);
6418
+ return (0, import_react65.useContext)(ObjectSearchContext);
6430
6419
  }
6431
6420
  function bindQuery(query, inputs) {
6432
6421
  const { result, errors } = (0, import_canvas8.bindVariablesToObject)({
@@ -6444,9 +6433,9 @@ function bindQuery(query, inputs) {
6444
6433
  var import_design_system34 = require("@uniformdev/design-system");
6445
6434
 
6446
6435
  // src/components/ObjectSearch/styles/ObjectSearchListItem.styles.ts
6447
- var import_react67 = require("@emotion/react");
6436
+ var import_react66 = require("@emotion/react");
6448
6437
  var import_design_system33 = require("@uniformdev/design-system");
6449
- var ObjectListItemContainer = import_react67.css`
6438
+ var ObjectListItemContainer = import_react66.css`
6450
6439
  align-items: center;
6451
6440
  border: 1px solid var(--gray-300);
6452
6441
  border-radius: var(--rounded-base);
@@ -6455,11 +6444,11 @@ var ObjectListItemContainer = import_react67.css`
6455
6444
  grid-template-columns: 1fr auto;
6456
6445
  padding: var(--spacing-sm);
6457
6446
  `;
6458
- var ObjectListItemContainerDisabled = import_react67.css`
6447
+ var ObjectListItemContainerDisabled = import_react66.css`
6459
6448
  opacity: var(--opacity-50);
6460
6449
  pointer-events: none;
6461
6450
  `;
6462
- var ObjectListItemLoading = import_react67.css`
6451
+ var ObjectListItemLoading = import_react66.css`
6463
6452
  animation: ${import_design_system33.skeletonLoading} 1s linear infinite alternate;
6464
6453
  border-color: transparent;
6465
6454
  min-height: 42px;
@@ -6483,36 +6472,36 @@ var ObjectListItemLoading = import_react67.css`
6483
6472
  width: 1rem;
6484
6473
  }
6485
6474
  `;
6486
- var ObjectListItemHeadingGroup = import_react67.css`
6475
+ var ObjectListItemHeadingGroup = import_react66.css`
6487
6476
  align-items: center;
6488
6477
  display: grid;
6489
6478
  `;
6490
- var ObjectListItemThumbnail = import_react67.css`
6479
+ var ObjectListItemThumbnail = import_react66.css`
6491
6480
  width: 30px;
6492
6481
  object-fit: contain;
6493
6482
  `;
6494
- var ObjectListItemTitle = import_react67.css`
6483
+ var ObjectListItemTitle = import_react66.css`
6495
6484
  color: var(--typography-base);
6496
6485
  display: block;
6497
6486
  font-size: var(--fs-sm);
6498
6487
  `;
6499
- var ObjectListItemSubtitle = import_react67.css`
6488
+ var ObjectListItemSubtitle = import_react66.css`
6500
6489
  color: var(--gray-500);
6501
6490
  display: block;
6502
6491
  font-size: var(--fs-xs);
6503
6492
  line-height: 1;
6504
6493
  `;
6505
- var ObjectListItemInfoContainer = import_react67.css`
6494
+ var ObjectListItemInfoContainer = import_react66.css`
6506
6495
  align-items: center;
6507
6496
  display: flex;
6508
6497
  gap: var(--spacing-sm);
6509
6498
  justify-content: center;
6510
6499
  `;
6511
- var ObjectListItemControlledContent = import_react67.css`
6500
+ var ObjectListItemControlledContent = import_react66.css`
6512
6501
  display: flex;
6513
6502
  gap: var(--spacing-sm);
6514
6503
  `;
6515
- var ObjectListItemUnControlledContent = import_react67.css`
6504
+ var ObjectListItemUnControlledContent = import_react66.css`
6516
6505
  margin-top: var(--spacing-sm);
6517
6506
  grid-column: 1 / -1;
6518
6507
  `;
@@ -6580,19 +6569,202 @@ var ObjectSearchListItemLoadingSkeleton = () => {
6580
6569
  return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { role: "presentation", css: [ObjectListItemContainer, ObjectListItemLoading] });
6581
6570
  };
6582
6571
 
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");
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
+ };
6586
6659
 
6587
- // src/components/ObjectSearch/ObjectSearchResultItem.tsx
6660
+ // src/components/ObjectSearch/ObjectSearchFilter.tsx
6588
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
+ };
6758
+
6759
+ // src/components/ObjectSearch/ObjectSearchResultItem.tsx
6760
+ var import_design_system38 = require("@uniformdev/design-system");
6589
6761
  var import_timeago3 = require("timeago.js");
6590
6762
 
6591
6763
  // src/components/ObjectSearch/styles/ObjectSearchResultItemButton.styles.ts
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}
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}
6596
6768
  background: transparent;
6597
6769
  border: 1px solid var(--typography-base);
6598
6770
  color: var(--typography-base);
@@ -6618,20 +6790,20 @@ var ButtonStyles = import_react68.css`
6618
6790
  text-decoration: none;
6619
6791
  }
6620
6792
  `;
6621
- var ButtonIcon = import_react68.css`
6793
+ var ButtonIcon = import_react70.css`
6622
6794
  width: 1rem;
6623
6795
  height: 1rem;
6624
6796
  `;
6625
6797
 
6626
6798
  // src/components/ObjectSearch/ObjectSearchResultItemButton.tsx
6627
- var import_jsx_runtime61 = require("@emotion/react/jsx-runtime");
6799
+ var import_jsx_runtime64 = require("@emotion/react/jsx-runtime");
6628
6800
  var ObjectSearchResultItemButton = ({
6629
6801
  text,
6630
6802
  icon,
6631
6803
  ...props
6632
6804
  }) => {
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 }),
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 }),
6635
6807
  text
6636
6808
  ] });
6637
6809
  };
@@ -6640,15 +6812,15 @@ var LinkButton = ({
6640
6812
  icon,
6641
6813
  ...props
6642
6814
  }) => {
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 }),
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 }),
6645
6817
  text
6646
6818
  ] });
6647
6819
  };
6648
6820
 
6649
6821
  // src/components/ObjectSearch/styles/ObjectSearchResultItem.styles.ts
6650
- var import_react69 = require("@emotion/react");
6651
- var ObjectSearchResultItemContainer = import_react69.css`
6822
+ var import_react71 = require("@emotion/react");
6823
+ var ObjectSearchResultItemContainer = import_react71.css`
6652
6824
  align-items: center;
6653
6825
  border: 1px solid var(--gray-300);
6654
6826
  border-radius: var(--rounded-base);
@@ -6664,7 +6836,7 @@ var ObjectSearchResultItemContainer = import_react69.css`
6664
6836
  }
6665
6837
  }
6666
6838
  `;
6667
- var ObjectSearchDragHandle = import_react69.css`
6839
+ var ObjectSearchDragHandle = import_react71.css`
6668
6840
  border-left: 2px dotted var(--gray-300);
6669
6841
  border-right: 2px dotted var(--gray-300);
6670
6842
  position: absolute;
@@ -6673,41 +6845,41 @@ var ObjectSearchDragHandle = import_react69.css`
6673
6845
  transition: opacity var(--duration-fast) var(--timing-ease-out);
6674
6846
  opacity: 0;
6675
6847
  `;
6676
- var ObjectSearchResultItemSubtitle = import_react69.css`
6848
+ var ObjectSearchResultItemSubtitle = import_react71.css`
6677
6849
  color: var(--gray-500);
6678
6850
  display: block;
6679
6851
  font-size: var(--fs-xs);
6680
6852
  line-height: 1;
6681
6853
  `;
6682
- var ObjectSearchResultItemTitle = import_react69.css`
6854
+ var ObjectSearchResultItemTitle = import_react71.css`
6683
6855
  align-items: center;
6684
6856
  color: var(--typography-base);
6685
6857
  display: flex;
6686
6858
  gap: var(--spacing-xs);
6687
6859
  `;
6688
- var ObjectSearchResultItemTimeStamp = import_react69.css`
6860
+ var ObjectSearchResultItemTimeStamp = import_react71.css`
6689
6861
  color: var(--gray-500);
6690
6862
  font-size: var(--fs-xs);
6691
6863
  `;
6692
- var ObjectSearchAuthorStateGroup = import_react69.css`
6864
+ var ObjectSearchAuthorStateGroup = import_react71.css`
6693
6865
  align-items: center;
6694
6866
  display: flex;
6695
6867
  gap: var(--spacing-sm);
6696
6868
  `;
6697
- var ObjectSearchUpdateGroup = import_react69.css`
6869
+ var ObjectSearchUpdateGroup = import_react71.css`
6698
6870
  display: grid;
6699
6871
  `;
6700
- var ObjectSearchContentContainer = import_react69.css`
6872
+ var ObjectSearchContentContainer = import_react71.css`
6701
6873
  display: flex;
6702
6874
  gap: var(--spacing-base);
6703
6875
  `;
6704
- var ObjectSearchImage = import_react69.css`
6876
+ var ObjectSearchImage = import_react71.css`
6705
6877
  width: 56px;
6706
6878
  object-fit: contain;
6707
6879
  `;
6708
6880
 
6709
6881
  // src/components/ObjectSearch/ObjectSearchResultItem.tsx
6710
- var import_jsx_runtime62 = require("@emotion/react/jsx-runtime");
6882
+ var import_jsx_runtime65 = require("@emotion/react/jsx-runtime");
6711
6883
  var ObjectSearchResultItem = ({
6712
6884
  id,
6713
6885
  title,
@@ -6731,73 +6903,77 @@ var ObjectSearchResultItem = ({
6731
6903
  onSelectItem({ id, title: id });
6732
6904
  onRemove == null ? void 0 : onRemove();
6733
6905
  };
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: [
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: [
6741
6913
  title != null ? title : name,
6742
- !popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_design_system36.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData })
6914
+ !popoverData ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_design_system38.Popover, { baseId: title, ariaLabel: title, buttonText: `See ${title} details`, children: popoverData })
6743
6915
  ] }),
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: " }),
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: " }),
6749
6921
  (0, import_timeago3.format)(createdAt)
6750
6922
  ] }),
6751
- !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
6752
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("strong", { children: "Last published: " }),
6923
+ !publishedAt ? null : /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("small", { css: ObjectSearchResultItemTimeStamp, children: [
6924
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("strong", { children: "Last published: " }),
6753
6925
  (0, import_timeago3.format)(publishedAt)
6754
6926
  ] })
6755
6927
  ] })
6756
6928
  ] }),
6757
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { children })
6929
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { children })
6758
6930
  ] })
6759
6931
  ] }) }),
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" })
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" })
6763
6935
  ] })
6764
6936
  ] });
6765
6937
  };
6766
6938
 
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
+
6767
6943
  // src/components/ObjectSearch/styles/ObjectSearchResultList.styles.ts
6768
- var import_react70 = require("@emotion/react");
6769
- var ObjectSearchResultListContainer = import_react70.css`
6944
+ var import_react72 = require("@emotion/react");
6945
+ var ObjectSearchResultListContainer = import_react72.css`
6770
6946
  align-items: center;
6771
6947
  display: flex;
6772
6948
  gap: var(--spacing-sm);
6773
6949
  justify-content: space-between;
6774
6950
  `;
6775
- var ObjectSearchDragContainer = import_react70.css`
6951
+ var ObjectSearchDragContainer = import_react72.css`
6776
6952
  margin: 0 0 var(--spacing-sm);
6777
6953
  `;
6778
- var ObjectSearchContainerDragging = import_react70.css`
6954
+ var ObjectSearchContainerDragging = import_react72.css`
6779
6955
  box-shadow: var(--shadow-base);
6780
6956
  opacity: var(--opacity-50);
6781
6957
  `;
6782
- var ObjectSearchResultListCounterContainer = import_react70.css`
6958
+ var ObjectSearchResultListCounterContainer = import_react72.css`
6783
6959
  align-items: center;
6784
6960
  display: flex;
6785
6961
  gap: var(--spacing-sm);
6786
6962
  `;
6787
- var ObjectSearchResultListTitle = import_react70.css`
6963
+ var ObjectSearchResultListTitle = import_react72.css`
6788
6964
  font-weight: var(--fw-bold);
6789
6965
  line-height: 1;
6790
6966
  `;
6791
6967
 
6792
6968
  // src/components/ObjectSearch/ObjectSearchResultList.tsx
6793
- var import_jsx_runtime63 = require("@emotion/react/jsx-runtime");
6969
+ var import_jsx_runtime66 = require("@emotion/react/jsx-runtime");
6794
6970
  function ObjectSearchResultList({
6795
6971
  resultLabelText = "Selected",
6796
6972
  removeButtonText = "Remove all",
6797
6973
  onRemoveAllSelected,
6798
6974
  hideRemoveButton = false,
6799
6975
  additionalButtons,
6800
- renderResultComponent = (value) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ObjectSearchResultItem, { ...value }),
6976
+ renderResultComponent = (value) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ObjectSearchResultItem, { ...value }),
6801
6977
  multiSelectId,
6802
6978
  disableDnD = false,
6803
6979
  getContainerForDnDReparenting,
@@ -6824,7 +7000,7 @@ function ObjectSearchResultList({
6824
7000
  ...item,
6825
7001
  disableDnD: selectedListItems.length === 1 || disableDnD
6826
7002
  });
6827
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7003
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6828
7004
  "div",
6829
7005
  {
6830
7006
  css: [
@@ -6839,17 +7015,17 @@ function ObjectSearchResultList({
6839
7015
  }
6840
7016
  );
6841
7017
  };
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 }),
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 }),
6846
7022
  " ",
6847
- !selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_design_system37.Counter, { count: selectedListItems.length })
7023
+ !selectedListItems.length ? null : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_design_system39.Counter, { count: selectedListItems.length })
6848
7024
  ] }),
6849
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { css: ObjectSearchResultListCounterContainer, children: [
7025
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { css: ObjectSearchResultListCounterContainer, children: [
6850
7026
  additionalButtons,
6851
- hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
6852
- import_design_system37.Button,
7027
+ hideRemoveButton ? null : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
7028
+ import_design_system39.Button,
6853
7029
  {
6854
7030
  buttonType: "ghostDestructive",
6855
7031
  size: "xs",
@@ -6860,15 +7036,15 @@ function ObjectSearchResultList({
6860
7036
  )
6861
7037
  ] })
6862
7038
  ] }),
6863
- !selectedListItems.length ? whenNothingSelected : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(DragDropContext, { onDragEnd: (res) => onDragEnd(res), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7039
+ !selectedListItems.length ? whenNothingSelected : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(DragDropContext, { onDragEnd: (res) => onDragEnd(res), children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6864
7040
  import_react_beautiful_dnd4.Droppable,
6865
7041
  {
6866
7042
  droppableId: multiSelectId != null ? multiSelectId : "canvas-multi-select",
6867
7043
  renderClone: getContainerForDnDReparenting ? getDraggableItem : void 0,
6868
7044
  getContainerForClone: getContainerForDnDReparenting,
6869
- children: (provided) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { ...provided.droppableProps, ref: provided.innerRef, children: [
7045
+ children: (provided) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { ...provided.droppableProps, ref: provided.innerRef, children: [
6870
7046
  selectedListItems.map((item, i) => {
6871
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7047
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6872
7048
  import_react_beautiful_dnd4.Draggable,
6873
7049
  {
6874
7050
  draggableId: item.id,
@@ -6886,284 +7062,9 @@ function ObjectSearchResultList({
6886
7062
  ] });
6887
7063
  }
6888
7064
 
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
-
7164
7065
  // src/components/ObjectSearch/QueryFilter.tsx
7165
7066
  var import_design_system40 = require("@uniformdev/design-system");
7166
- var import_react76 = require("react");
7067
+ var import_react73 = require("react");
7167
7068
  var import_jsx_runtime67 = require("@emotion/react/jsx-runtime");
7168
7069
  var QueryFilter = ({
7169
7070
  requireContentType,
@@ -7193,7 +7094,7 @@ var QueryFilter = ({
7193
7094
  }) => {
7194
7095
  var _a, _b, _c, _d, _e, _f, _g;
7195
7096
  const { query, onSetQuery } = useObjectSearchContext();
7196
- const [queryState, setQueryState] = (0, import_react76.useState)({
7097
+ const [queryState, setQueryState] = (0, import_react73.useState)({
7197
7098
  contentType: (_a = query.contentType) != null ? _a : "",
7198
7099
  keyword: (_b = query.keyword) != null ? _b : "",
7199
7100
  count: (_c = query.count) != null ? _c : countValue,
@@ -7204,7 +7105,7 @@ var QueryFilter = ({
7204
7105
  setQueryState((prev) => ({ ...prev, ...value }));
7205
7106
  onSetQuery({ ...query, ...value });
7206
7107
  };
7207
- (0, import_react76.useEffect)(() => {
7108
+ (0, import_react73.useEffect)(() => {
7208
7109
  onSetQuery(queryState);
7209
7110
  }, []);
7210
7111
  return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("fieldset", { children: [
@@ -7329,93 +7230,9 @@ var QueryFilter = ({
7329
7230
  ] });
7330
7231
  };
7331
7232
 
7332
- // src/components/ObjectSearch/hooks/ControlledObjectSearchProvider.tsx
7333
- var import_react77 = require("react");
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
7233
  // src/components/ParamTypeDynamicDataProvider.tsx
7417
- var import_react78 = require("react");
7418
- var import_jsx_runtime69 = require("@emotion/react/jsx-runtime");
7234
+ var import_react74 = require("react");
7235
+ var import_jsx_runtime68 = require("@emotion/react/jsx-runtime");
7419
7236
  function ParamTypeDynamicDataProvider(props) {
7420
7237
  const { children } = props;
7421
7238
  const {
@@ -7423,11 +7240,11 @@ function ParamTypeDynamicDataProvider(props) {
7423
7240
  } = useMeshLocation("paramType");
7424
7241
  const dynamicInputsAsVariables = useDynamicInputsAsVariables(dynamicInputs);
7425
7242
  const connectedDataAsVariables = useConnectedDataAsVariables(connectedData);
7426
- const variables = (0, import_react78.useMemo)(
7243
+ const variables = (0, import_react74.useMemo)(
7427
7244
  () => ({ ...connectedDataAsVariables, ...dynamicInputsAsVariables }),
7428
7245
  [dynamicInputsAsVariables, connectedDataAsVariables]
7429
7246
  );
7430
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(VariablesProvider, { value: variables, onChange: () => {
7247
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(VariablesProvider, { value: variables, onChange: () => {
7431
7248
  }, editVariableComponent: JsonMeshVariableEditor, children });
7432
7249
  }
7433
7250
  var JsonMeshVariableEditor = ({
@@ -7436,9 +7253,9 @@ var JsonMeshVariableEditor = ({
7436
7253
  variable,
7437
7254
  context
7438
7255
  }) => {
7439
- const sillyRef = (0, import_react78.useRef)(false);
7256
+ const sillyRef = (0, import_react74.useRef)(false);
7440
7257
  const { editConnectedData } = useMeshLocation("paramType");
7441
- (0, import_react78.useEffect)(() => {
7258
+ (0, import_react74.useEffect)(() => {
7442
7259
  if (sillyRef.current) {
7443
7260
  return;
7444
7261
  }
@@ -7466,6 +7283,36 @@ var JsonMeshVariableEditor = ({
7466
7283
  return null;
7467
7284
  };
7468
7285
 
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
+
7469
7316
  // src/index.ts
7470
7317
  var import_design_system41 = require("@uniformdev/design-system");
7471
7318
  __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
@@ -7476,13 +7323,11 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7476
7323
  AddListButton,
7477
7324
  Button,
7478
7325
  Callout,
7479
- ControlledObjectSearchProvider,
7480
7326
  ControlledValuePlugin,
7481
7327
  DISCONNECT_VARIABLE_COMMAND,
7482
7328
  DamSelectedItem,
7483
7329
  DataRefreshButton,
7484
7330
  DataResourceDynamicInputProvider,
7485
- DataResourceInputContext,
7486
7331
  DataResourceVariablesList,
7487
7332
  DataResourceVariablesListExplicit,
7488
7333
  DataSourceEditor,
@@ -7510,7 +7355,6 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7510
7355
  MeshApp,
7511
7356
  OPEN_INSERT_VARIABLE_COMMAND,
7512
7357
  ObjectSearchContainer,
7513
- ObjectSearchContext,
7514
7358
  ObjectSearchFilter,
7515
7359
  ObjectSearchFilterContainer,
7516
7360
  ObjectSearchListItem,
@@ -7568,7 +7412,6 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7568
7412
  VariablesPlugin,
7569
7413
  VariablesProvider,
7570
7414
  badgeIcon,
7571
- bindQuery,
7572
7415
  convertConnectedDataToVariable,
7573
7416
  createLocationValidator,
7574
7417
  damSelectItemImage,
@@ -7640,7 +7483,6 @@ __reExport(src_exports, require("@uniformdev/mesh-sdk"), module.exports);
7640
7483
  urlEncodeRequestUrl,
7641
7484
  useConnectedDataAsVariables,
7642
7485
  useContentDataResourceLocaleInfo,
7643
- useDataResourceDynamicInputs,
7644
7486
  useDynamicInputsAsVariables,
7645
7487
  useMeshLocation,
7646
7488
  useObjectSearchContext,