@mercurjs/vendor 2.2.0-canary.39 → 2.2.0-canary.41

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.
Files changed (125) hide show
  1. package/dist/{[id]-XLUKGPLL.js → [id]-5OOWGWHL.js} +52 -17
  2. package/dist/{[id]-J5UPTFQM.js → [id]-5RQ7NFL7.js} +102 -27
  3. package/dist/{[id]-5P5LTATX.js → [id]-ARHFE7ID.js} +28 -10
  4. package/dist/{[id]-DVFWG6XZ.js → [id]-BGOV2BKI.js} +124 -30
  5. package/dist/{[id]-TGP6MMMJ.js → [id]-KUVSIFMW.js} +6 -6
  6. package/dist/{[id]-3PB4ZW3D.js → [id]-LFYUX6ON.js} +41 -19
  7. package/dist/{[id]-KSROQUIC.js → [id]-M6DVHCGK.js} +32 -15
  8. package/dist/{[id]-OG4D44M4.js → [id]-MFEOWOHY.js} +246 -156
  9. package/dist/{[id]-Q5C2MVHS.js → [id]-TF35KIFE.js} +123 -41
  10. package/dist/{[id]-O22LRQBI.js → [id]-WG6ZEK3I.js} +62 -25
  11. package/dist/{[id]-ESWNTTKU.js → [id]-YDR5VTPB.js} +6 -6
  12. package/dist/{[id]-ISKSMHND.js → [id]-ZV36X6E6.js} +52 -17
  13. package/dist/{add-C3MXH64T.js → add-PUXNN6CE.js} +15 -12
  14. package/dist/{add-JWIJVAMY.js → add-TCNRAUZF.js} +2 -2
  15. package/dist/{add-customer-groups-IPYD62GM.js → add-customer-groups-FB5T6PQN.js} +1 -1
  16. package/dist/{add-products-PEG6AWCO.js → add-products-DGJ6LFWC.js} +6 -6
  17. package/dist/{add-promotions-EGJYH3N6.js → add-promotions-TJDK7HLW.js} +4 -4
  18. package/dist/{areas-KGUPDMWG.js → areas-IYGBRCRH.js} +2 -2
  19. package/dist/{campaigns-BQBUZDPP.js → campaigns-OVHA6HH2.js} +2 -2
  20. package/dist/{categories-WKSXPHX6.js → categories-XVD4SWIS.js} +2 -2
  21. package/dist/{chunk-442JMKOJ.js → chunk-2K3RNFEC.js} +2 -2
  22. package/dist/{chunk-LRGMWXWW.js → chunk-3EF326ZJ.js} +16 -5
  23. package/dist/{chunk-6YE7WQLK.js → chunk-3F4MUPGR.js} +1 -1
  24. package/dist/{chunk-UFJQ7D4A.js → chunk-3N3K55NN.js} +34 -13
  25. package/dist/{chunk-XJSF7HIV.js → chunk-4TGDYJMA.js} +19 -8
  26. package/dist/{chunk-3ALBZK4M.js → chunk-4YM7N6OQ.js} +4 -1
  27. package/dist/{chunk-WADTVVSQ.js → chunk-5CHFC47S.js} +42 -11
  28. package/dist/{chunk-BAVE4NRL.js → chunk-7HLAOLG7.js} +1 -1
  29. package/dist/{chunk-X3ZH4SMS.js → chunk-BUQXFADV.js} +27 -6
  30. package/dist/{chunk-EGEC3BY2.js → chunk-CSZ6RV7N.js} +13 -6
  31. package/dist/{chunk-JAKAZ3ZY.js → chunk-D76WZZSB.js} +1 -1
  32. package/dist/{chunk-2UPEWY5I.js → chunk-E5BSLZR5.js} +10 -4
  33. package/dist/{chunk-FRYZRBLA.js → chunk-INYLPVCG.js} +2 -2
  34. package/dist/{chunk-MI7PXP7H.js → chunk-JY2XON7H.js} +1 -1
  35. package/dist/{chunk-2QEFRSKJ.js → chunk-KZQFIPY2.js} +37 -3
  36. package/dist/{chunk-CAE5333U.js → chunk-MAW6ZT3D.js} +1 -1
  37. package/dist/{chunk-H6LZ77GX.js → chunk-QGZH3D2P.js} +4 -1
  38. package/dist/{chunk-ZG6T4LG6.js → chunk-T7OX3EOG.js} +58 -29
  39. package/dist/{chunk-MUGQQY6P.js → chunk-TB3B7NEX.js} +48 -10
  40. package/dist/{chunk-EIEPLZ7H.js → chunk-TJKZ5QCJ.js} +1 -1
  41. package/dist/{chunk-BNR46M4J.js → chunk-TPGIMZLI.js} +1 -1
  42. package/dist/{chunk-KSVCLDMO.js → chunk-TRUC5GIG.js} +15 -4
  43. package/dist/{chunk-MGV65SKV.js → chunk-UEJJFJVX.js} +15 -5
  44. package/dist/{chunk-YMICE6QS.js → chunk-UWZVAW6K.js} +5 -3
  45. package/dist/{chunk-Q4W6OMSR.js → chunk-VD27SL7H.js} +1 -1
  46. package/dist/{chunk-NMPZRRHM.js → chunk-VMHLOWKL.js} +16 -6
  47. package/dist/{chunk-YZBEJ3CY.js → chunk-VYSB4CTB.js} +1500 -1370
  48. package/dist/{chunk-XRLRKSND.js → chunk-W3UHAQCV.js} +3 -2
  49. package/dist/{chunk-Q57UH7FE.js → chunk-WQQMCV7M.js} +1 -1
  50. package/dist/{chunk-IGVP55PK.js → chunk-WTYASKLY.js} +4 -4
  51. package/dist/{chunk-EAK75O26.js → chunk-Y4PM3IDZ.js} +1 -1
  52. package/dist/{chunk-2434FG47.js → chunk-YD43PVVT.js} +15 -4
  53. package/dist/{chunk-5KCDUBPF.js → chunk-ZOJP2DHA.js} +1 -1
  54. package/dist/{chunk-Y3WDFB7J.js → chunk-ZZUJHLFM.js} +1 -1
  55. package/dist/{collections-3N6NHNO3.js → collections-PRMRAQSQ.js} +5 -5
  56. package/dist/{create-2YMKREP2.js → create-2RGNAVVY.js} +1 -1
  57. package/dist/{create-RA6NUBNO.js → create-5S3GWAUX.js} +2 -2
  58. package/dist/{create-Q7PD6MKG.js → create-EAIGKLSC.js} +1 -1
  59. package/dist/{create-52MHLRAU.js → create-HEZYB7RF.js} +1 -1
  60. package/dist/{create-6JFEKPWB.js → create-KM5HXMYT.js} +7 -7
  61. package/dist/{create-XIZQBWH5.js → create-N534JQPH.js} +2 -2
  62. package/dist/{create-3NGK5I6L.js → create-NEK6JCKR.js} +1 -1
  63. package/dist/{create-FPIFC5TE.js → create-QU45XB4S.js} +12 -8
  64. package/dist/{create-QO72DNYF.js → create-QZDRRIB6.js} +5 -5
  65. package/dist/{create-OQX3EUET.js → create-RPBHXU32.js} +1 -1
  66. package/dist/{create-QMEQGDUS.js → create-VL7LDTVE.js} +1 -1
  67. package/dist/{customer-group-add-customers-3C2XPMSD.js → customer-group-add-customers-2C53NFBJ.js} +1 -1
  68. package/dist/{customer-group-detail-LUVO4MX6.js → customer-group-detail-3UR5AUY3.js} +2 -2
  69. package/dist/{customer-group-edit-N77RCW6I.js → customer-group-edit-WMGWG2OH.js} +40 -25
  70. package/dist/{customer-groups-FO6XVXFI.js → customer-groups-2T2HEYQ6.js} +25 -8
  71. package/dist/{customers-OQP7WC2G.js → customers-NVTX4FK2.js} +2 -2
  72. package/dist/{edit-ZNFDORB5.js → edit-4PMUQMTL.js} +2 -2
  73. package/dist/{edit-2BJHCU5E.js → edit-4PWAJ7A3.js} +1 -1
  74. package/dist/{edit-OZFW3BBS.js → edit-GE2UOMBI.js} +7 -7
  75. package/dist/{edit-UNN3QTEJ.js → edit-HK6HAYZW.js} +18 -5
  76. package/dist/{edit-T4IFCD3F.js → edit-IRH2IGXB.js} +3 -3
  77. package/dist/{edit-IJ6DCBUU.js → edit-JDYB3U7H.js} +21 -7
  78. package/dist/{edit-7SBPHN6P.js → edit-KEUVWNLU.js} +18 -5
  79. package/dist/{edit-WO4A636W.js → edit-NHQJLCAK.js} +1 -1
  80. package/dist/{edit-YCM5FRGL.js → edit-NR3WDBFF.js} +29 -13
  81. package/dist/{edit-XBOZLGI2.js → edit-TD7QFM4Z.js} +1 -1
  82. package/dist/{edit-TBT3QGGW.js → edit-WEUFBORT.js} +4 -5
  83. package/dist/{edit-ZJKNYVCO.js → edit-ZGAOUZYP.js} +4 -5
  84. package/dist/{edit-inventory-item-QMYWEBZ3.js → edit-inventory-item-UKBKVTYI.js} +18 -5
  85. package/dist/extension-targets.d.ts +206 -0
  86. package/dist/extension-targets.js +1 -0
  87. package/dist/{fulfillment-providers-XWFKXOUX.js → fulfillment-providers-SJRXA3EC.js} +3 -3
  88. package/dist/index.d.ts +2 -0
  89. package/dist/index.js +155 -128
  90. package/dist/{inventory-ZGGENULY.js → inventory-MFA4C6TO.js} +2 -2
  91. package/dist/{invite-AXTW6P6L.js → invite-WTFQ6UV2.js} +3 -3
  92. package/dist/{login-YUWOWICV.js → login-2CQ6RYIE.js} +1 -1
  93. package/dist/{media-JVYMNE2Z.js → media-QIWRWMSV.js} +4 -4
  94. package/dist/{media-3ZLEAL6U.js → media-XFZNEQCY.js} +1 -1
  95. package/dist/{metadata-K6WS5S5Z.js → metadata-5Q6FLVX4.js} +1 -1
  96. package/dist/{metadata-NRYGXCD3.js → metadata-6OYHLPLA.js} +1 -1
  97. package/dist/{metadata-GTSYILV2.js → metadata-ADXGD4Y6.js} +1 -1
  98. package/dist/{metadata-O7TWMZNX.js → metadata-J447GEBP.js} +1 -1
  99. package/dist/{metadata-4LYZ5AJ2.js → metadata-VTQ2CGZX.js} +1 -1
  100. package/dist/{offer-create-page-PHG2PDUQ.js → offer-create-page-JP5Z2CAG.js} +18 -10
  101. package/dist/{offer-detail-page-RN4WECNF.js → offer-detail-page-FF7SJX7E.js} +70 -16
  102. package/dist/{offer-variant-detail-page-YQXETIWY.js → offer-variant-detail-page-KURNVWYU.js} +13 -5
  103. package/dist/{offers-4A6TNOBW.js → offers-XDLT2AEJ.js} +5 -5
  104. package/dist/{onboarding-TUGXFOA6.js → onboarding-BXFZZHIW.js} +31 -16
  105. package/dist/{orders-2RXDIAWC.js → orders-ML36IAEE.js} +4 -4
  106. package/dist/{organization-TBNIRH7N.js → organization-2BZGUGLM.js} +1 -1
  107. package/dist/pages/index.d.ts +81 -66
  108. package/dist/pages/index.js +31 -29
  109. package/dist/{payouts-TRFBXEDP.js → payouts-WFLYAMEU.js} +2 -2
  110. package/dist/{price-lists-2TEBUG7S.js → price-lists-PG33QKVZ.js} +2 -2
  111. package/dist/{product-tags-CSM2HUMF.js → product-tags-WBERDKIH.js} +7 -7
  112. package/dist/{product-types-CQ7OCF42.js → product-types-4PTJW5DE.js} +2 -2
  113. package/dist/{product-variant-edit-3CVSKGZ6.js → product-variant-edit-TUIVXPXO.js} +2 -2
  114. package/dist/{products-OE6AYPFI.js → products-CZMAHOE3.js} +6 -6
  115. package/dist/{products-I7XBRIVQ.js → products-ZFB35IHK.js} +15 -13
  116. package/dist/{promotions-CYAMHAJQ.js → promotions-APUOIWRR.js} +5 -5
  117. package/dist/{register-376SEOMZ.js → register-MQDAUF64.js} +2 -2
  118. package/dist/{reset-password-46WJA4HT.js → reset-password-SKUJJLSV.js} +1 -1
  119. package/dist/{return-reasons-2F2U6NEY.js → return-reasons-ZX7KIFTS.js} +5 -5
  120. package/dist/{settings-U7CM7PNQ.js → settings-AYPJWXFO.js} +9 -9
  121. package/dist/{shipping-profiles-HZFZ4HEU.js → shipping-profiles-4TJ4IH6U.js} +2 -2
  122. package/dist/{store-FQD3OYBF.js → store-FK643K5M.js} +52 -25
  123. package/dist/{store-select-S55SW3BP.js → store-select-IWYWXESC.js} +20 -2
  124. package/dist/{team-GHRVM6RK.js → team-DZHLNPCO.js} +3 -3
  125. package/package.json +23 -18
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-PHOCVOZ5.js";
7
7
  import {
8
8
  require_dist
9
- } from "./chunk-YZBEJ3CY.js";
9
+ } from "./chunk-VYSB4CTB.js";
10
10
  import {
11
11
  __toESM
12
12
  } from "./chunk-NBMM2TZK.js";
@@ -7,20 +7,20 @@ import {
7
7
  CategoryHeader,
8
8
  ProductStatusCell,
9
9
  ProductStatusHeader
10
- } from "./chunk-BAVE4NRL.js";
10
+ } from "./chunk-7HLAOLG7.js";
11
11
  import {
12
12
  ProductCell
13
13
  } from "./chunk-FWPGOIFA.js";
14
14
  import {
15
15
  useProductTableFilters
16
- } from "./chunk-Y3WDFB7J.js";
16
+ } from "./chunk-ZZUJHLFM.js";
17
17
  import {
18
18
  PlaceholderCell
19
19
  } from "./chunk-PHOCVOZ5.js";
20
20
  import {
21
21
  _DataTable,
22
22
  useDataTable
23
- } from "./chunk-XRLRKSND.js";
23
+ } from "./chunk-W3UHAQCV.js";
24
24
  import {
25
25
  SingleColumnPage
26
26
  } from "./chunk-YV6MK4PZ.js";
@@ -39,6 +39,7 @@ import {
39
39
 
40
40
  // src/pages/offers/offer-list-page.tsx
41
41
  import { Children as Children2 } from "react";
42
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
42
43
 
43
44
  // src/pages/offers/_components/offer-list-table.tsx
44
45
  import { Container } from "@medusajs/ui";
@@ -47,7 +48,9 @@ import { Outlet } from "react-router-dom";
47
48
 
48
49
  // src/pages/offers/_components/offer-list-data-table.tsx
49
50
  import { keepPreviousData } from "@tanstack/react-query";
51
+ import { useMemo as useMemo2 } from "react";
50
52
  import { useTranslation as useTranslation3 } from "react-i18next";
53
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
51
54
 
52
55
  // src/pages/offers/_components/use-offer-table-columns.tsx
53
56
  import { Text } from "@medusajs/ui";
@@ -265,8 +268,12 @@ var OfferListDataTable = () => {
265
268
  { placeholderData: keepPreviousData }
266
269
  );
267
270
  const rows = products ?? [];
268
- const filters = useOfferTableFilters();
269
- const columns = useOfferTableColumns();
271
+ const baseFilters = useOfferTableFilters();
272
+ const { columns, filters: extFilters } = useColumns();
273
+ const filters = useMemo2(
274
+ () => [...baseFilters, ...extFilters],
275
+ [baseFilters, extFilters]
276
+ );
270
277
  const { table } = useDataTable({
271
278
  data: rows,
272
279
  columns,
@@ -308,6 +315,20 @@ var OfferListDataTable = () => {
308
315
  }
309
316
  );
310
317
  };
318
+ var useColumns = () => {
319
+ const base = useOfferTableColumns();
320
+ const actionsColumn = base[base.length - 1];
321
+ const baseColumns = base.slice(0, -1);
322
+ const { columns: extended, filters } = useExtendableTable({
323
+ model: "offer",
324
+ columns: baseColumns
325
+ });
326
+ const columns = useMemo2(
327
+ () => [...extended, actionsColumn],
328
+ [extended, actionsColumn]
329
+ );
330
+ return { columns, filters };
331
+ };
311
332
 
312
333
  // src/pages/offers/_components/offer-list-header.tsx
313
334
  import { Button, Heading } from "@medusajs/ui";
@@ -339,7 +360,7 @@ var OfferListTable = ({ children }) => /* @__PURE__ */ jsxs2(Container, { classN
339
360
 
340
361
  // src/pages/offers/offer-list-page.tsx
341
362
  import { jsx as jsx6 } from "react/jsx-runtime";
342
- var Root = ({ children }) => /* @__PURE__ */ jsx6(SingleColumnPage, { children: Children2.count(children) > 0 ? children : /* @__PURE__ */ jsx6(OfferListTable, {}) });
363
+ var Root = ({ children }) => /* @__PURE__ */ jsx6(SingleColumnPage, { children: /* @__PURE__ */ jsx6(WidgetZone, { id: "offers.list", children: Children2.count(children) > 0 ? children : /* @__PURE__ */ jsx6(OfferListTable, {}) }) });
343
364
  var OfferListPage = Object.assign(Root, {
344
365
  Table: OfferListTable,
345
366
  Header: OfferListHeader,
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  _DataTable,
9
9
  useDataTable
10
- } from "./chunk-XRLRKSND.js";
10
+ } from "./chunk-W3UHAQCV.js";
11
11
  import {
12
12
  SingleColumnPage
13
13
  } from "./chunk-YV6MK4PZ.js";
@@ -21,6 +21,7 @@ import {
21
21
 
22
22
  // src/pages/campaigns/campaign-list-page.tsx
23
23
  import { Children as Children3 } from "react";
24
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
24
25
 
25
26
  // src/pages/campaigns/_components/campaign-list-table/campaign-list-table.tsx
26
27
  import { Children as Children2 } from "react";
@@ -59,6 +60,7 @@ import { PencilSquare, Trash } from "@medusajs/icons";
59
60
  import { toast, usePrompt } from "@medusajs/ui";
60
61
  import { keepPreviousData } from "@tanstack/react-query";
61
62
  import { createColumnHelper } from "@tanstack/react-table";
63
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
62
64
  import { useMemo } from "react";
63
65
  import { useTranslation as useTranslation2 } from "react-i18next";
64
66
  import { jsx as jsx2 } from "react/jsx-runtime";
@@ -75,7 +77,7 @@ var CampaignListDataTable = () => {
75
77
  } = useCampaigns(searchParams, {
76
78
  placeholderData: keepPreviousData
77
79
  });
78
- const columns = useColumns();
80
+ const { columns } = useColumns();
79
81
  const { table } = useDataTable({
80
82
  data: campaigns ?? [],
81
83
  columns,
@@ -165,9 +167,13 @@ var CampaignActions = ({ campaign }) => {
165
167
  var columnHelper = createColumnHelper();
166
168
  var useColumns = () => {
167
169
  const base = useCampaignTableColumns();
168
- return useMemo(
170
+ const { columns: extended, filters } = useExtendableTable({
171
+ model: "campaign",
172
+ columns: base
173
+ });
174
+ const columns = useMemo(
169
175
  () => [
170
- ...base,
176
+ ...extended,
171
177
  columnHelper.display({
172
178
  id: "actions",
173
179
  cell: ({ row }) => {
@@ -175,8 +181,9 @@ var useColumns = () => {
175
181
  }
176
182
  })
177
183
  ],
178
- [base]
184
+ [extended]
179
185
  );
186
+ return { columns, filters };
180
187
  };
181
188
 
182
189
  // src/pages/campaigns/_components/campaign-list-table/campaign-list-table.tsx
@@ -191,7 +198,7 @@ var CampaignListTable = ({ children }) => {
191
198
  // src/pages/campaigns/campaign-list-page.tsx
192
199
  import { jsx as jsx4 } from "react/jsx-runtime";
193
200
  var Root = ({ children }) => {
194
- return /* @__PURE__ */ jsx4(SingleColumnPage, { hasOutlet: true, children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx4(CampaignListTable, {}) });
201
+ return /* @__PURE__ */ jsx4(SingleColumnPage, { hasOutlet: true, children: /* @__PURE__ */ jsx4(WidgetZone, { id: "campaigns.list", children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx4(CampaignListTable, {}) }) });
195
202
  };
196
203
  var CampaignListPage = Object.assign(Root, {
197
204
  Table: CampaignListTable,
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  _DataTable,
15
15
  useDataTable
16
- } from "./chunk-XRLRKSND.js";
16
+ } from "./chunk-W3UHAQCV.js";
17
17
  import {
18
18
  SingleColumnPage
19
19
  } from "./chunk-YV6MK4PZ.js";
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  _DataTable,
16
16
  useDataTable
17
- } from "./chunk-XRLRKSND.js";
17
+ } from "./chunk-W3UHAQCV.js";
18
18
  import {
19
19
  SingleColumnPage
20
20
  } from "./chunk-YV6MK4PZ.js";
@@ -30,6 +30,7 @@ import {
30
30
 
31
31
  // src/pages/categories/category-list-page.tsx
32
32
  import { Children as Children3 } from "react";
33
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
33
34
 
34
35
  // src/pages/categories/_components/category-list-table/category-list-table.tsx
35
36
  import { Children as Children2 } from "react";
@@ -45,7 +46,7 @@ var CategoryListTitle = () => {
45
46
  const { t } = useTranslation();
46
47
  return /* @__PURE__ */ jsxs("div", { children: [
47
48
  /* @__PURE__ */ jsx(Heading, { children: t("categories.domain") }),
48
- /* @__PURE__ */ jsx(Text, { className: "text-ui-fg-subtle", size: "small", children: "Organize products into categories." })
49
+ /* @__PURE__ */ jsx(Text, { className: "text-ui-fg-subtle", size: "small", children: t("categories.subtitle") })
49
50
  ] });
50
51
  };
51
52
  var CategoryListActions = ({
@@ -64,6 +65,7 @@ var CategoryListHeader = ({
64
65
 
65
66
  // src/pages/categories/_components/category-list-table/category-list-data-table.tsx
66
67
  import { keepPreviousData } from "@tanstack/react-query";
68
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
67
69
  import { useMemo as useMemo2 } from "react";
68
70
 
69
71
  // src/pages/categories/_components/category-list-table/use-category-table-columns.tsx
@@ -228,7 +230,11 @@ var CategoryListDataTable = () => {
228
230
  };
229
231
  var useColumns = () => {
230
232
  const base = useCategoryTableColumns();
231
- return useMemo2(() => [...base], [base]);
233
+ const { columns: extended } = useExtendableTable({
234
+ model: "category",
235
+ columns: base
236
+ });
237
+ return useMemo2(() => [...extended], [extended]);
232
238
  };
233
239
 
234
240
  // src/pages/categories/_components/category-list-table/category-list-table.tsx
@@ -246,7 +252,7 @@ var CategoryListTable = ({ children }) => {
246
252
  // src/pages/categories/category-list-page.tsx
247
253
  import { jsx as jsx5 } from "react/jsx-runtime";
248
254
  var Root = ({ children }) => {
249
- return /* @__PURE__ */ jsx5(SingleColumnPage, { hasOutlet: true, children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx5(CategoryListTable, {}) });
255
+ return /* @__PURE__ */ jsx5(SingleColumnPage, { hasOutlet: true, children: /* @__PURE__ */ jsx5(WidgetZone, { id: "categories.list", children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx5(CategoryListTable, {}) }) });
250
256
  };
251
257
  var CategoryListPage = Object.assign(Root, {
252
258
  Table: CategoryListTable,
@@ -160,7 +160,7 @@ var InnerForm = ({
160
160
  "aria-labelledby": METADATA_KEY_LABEL_ID,
161
161
  ...field2,
162
162
  disabled: isDisabled,
163
- placeholder: "Key"
163
+ placeholder: t("metadata.edit.labels.key")
164
164
  }
165
165
  ) }) });
166
166
  }
@@ -179,7 +179,7 @@ var InnerForm = ({
179
179
  ...field2,
180
180
  value: isDisabled ? placeholder : value,
181
181
  disabled: isDisabled,
182
- placeholder: "Value"
182
+ placeholder: t("metadata.edit.labels.value")
183
183
  }
184
184
  ) }) });
185
185
  }
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  _DataTable,
12
12
  useDataTable
13
- } from "./chunk-XRLRKSND.js";
13
+ } from "./chunk-W3UHAQCV.js";
14
14
  import {
15
15
  SingleColumnPage
16
16
  } from "./chunk-YV6MK4PZ.js";
@@ -8937,6 +8937,7 @@ var en_default = {
8937
8937
  duplicate: "Duplicate",
8938
8938
  publish: "Publish",
8939
8939
  create: "Create",
8940
+ request: "Request",
8940
8941
  delete: "Delete",
8941
8942
  remove: "Remove",
8942
8943
  revoke: "Revoke",
@@ -9724,6 +9725,7 @@ var en_default = {
9724
9725
  createCollection: "Create Collection",
9725
9726
  createCollectionHint: "Create a new collection to organize your products.",
9726
9727
  createSuccess: "Collection created successfully.",
9728
+ requestSuccess: "Collection requested successfully",
9727
9729
  editCollection: "Edit Collection",
9728
9730
  handleTooltip: "The handle is used to reference the collection in your storefront. If not specified, the handle will be generated from the collection title.",
9729
9731
  deleteWarning: "You are about to delete the collection {{title}}. This action cannot be undone.",
@@ -9861,6 +9863,7 @@ var en_default = {
9861
9863
  attributes: "Attributes",
9862
9864
  requiresShipping: "Requires shipping",
9863
9865
  requiresShippingHint: "Does the inventory item require shipping?",
9866
+ descriptionPlaceholder: "The item description",
9864
9867
  successToast: "Inventory item was successfully created."
9865
9868
  },
9866
9869
  reservation: {
@@ -9912,6 +9915,7 @@ var en_default = {
9912
9915
  subtitle: "Manage your catalog listings",
9913
9916
  create: {
9914
9917
  header: "Create offer",
9918
+ description: "Select variants and configure stock levels and prices to create offers.",
9915
9919
  successToast: "Offer was successfully published. Only offers with stock levels and prices set will be visible on the storefront.",
9916
9920
  publish: "Publish",
9917
9921
  tipLabel: "Tip:",
@@ -10286,6 +10290,7 @@ var en_default = {
10286
10290
  partiallyCaptured: "Partially captured",
10287
10291
  refunded: "Refunded",
10288
10292
  canceled: "Canceled",
10293
+ pending: "Pending",
10289
10294
  requiresAction: "Requires action"
10290
10295
  },
10291
10296
  capturePayment: "Payment of {{amount}} will be captured.",
@@ -11348,10 +11353,16 @@ var en_default = {
11348
11353
  campaign_currency: {
11349
11354
  tooltip: "This is the promotion's currency. Change it from the Details tab."
11350
11355
  },
11356
+ campaignSection: {
11357
+ noRecordsTitle: "Not part of a campaign",
11358
+ noRecordsMessage: "Add this promotion to an existing campaign",
11359
+ addToCampaign: "Add to Campaign"
11360
+ },
11351
11361
  form: {
11352
11362
  required: "Required",
11353
11363
  and: "AND",
11354
11364
  selectAttribute: "Select Attribute",
11365
+ selectOperator: "Select Operator",
11355
11366
  campaign: {
11356
11367
  existing: {
11357
11368
  title: "Existing Campaign",
@@ -11618,10 +11629,17 @@ var en_default = {
11618
11629
  successToast_other: "Successfully deleted prices for {{count}} products."
11619
11630
  },
11620
11631
  add: {
11621
- successToast: "Prices were successfully added to the price list."
11632
+ successToast: "Prices were successfully added to the price list.",
11633
+ atLeastOnePrice: "At least one price must be added.",
11634
+ alreadyInPriceList: "This product is already in the price list",
11635
+ noVariants: "This product has no variants",
11636
+ title: "Add Products to Price List",
11637
+ description: "Add products and set prices for the price list"
11622
11638
  },
11623
11639
  edit: {
11624
- successToast: "Prices were successfully updated."
11640
+ successToast: "Prices were successfully updated.",
11641
+ title: "Edit Prices for {{title}}",
11642
+ description: "Update prices for products in the price list"
11625
11643
  }
11626
11644
  },
11627
11645
  fields: {
@@ -12550,8 +12568,10 @@ var en_default = {
12550
12568
  subtitle: "Organize your products into types.",
12551
12569
  create: {
12552
12570
  header: "Create Product Type",
12571
+ requestHeader: "Request Product Type",
12553
12572
  hint: "Create a new product type to categorize your products.",
12554
- successToast: "Product type {{value}} was successfully created."
12573
+ successToast: "Product type {{value}} was successfully created.",
12574
+ requestSuccessToast: "Product type requested successfully"
12555
12575
  },
12556
12576
  edit: {
12557
12577
  header: "Edit Product Type",
@@ -12833,8 +12853,10 @@ var en_default = {
12833
12853
  views: {
12834
12854
  save: "Save",
12835
12855
  saveAsNew: "Save as new view",
12856
+ saveAsSystemDefault: "Save as system default",
12836
12857
  updateDefaultForEveryone: "Update default for everyone",
12837
12858
  updateViewName: "Update view",
12859
+ updateNamed: 'Update "{{name}}"',
12838
12860
  prompts: {
12839
12861
  updateDefault: {
12840
12862
  title: "Update default view",
@@ -12847,6 +12869,18 @@ var en_default = {
12847
12869
  description: 'Are you sure you want to update "{{name}}"?',
12848
12870
  confirmText: "Update",
12849
12871
  cancelText: "Cancel"
12872
+ },
12873
+ saveAsDefault: {
12874
+ title: "Save as system default",
12875
+ description: "This will save the current configuration as the system default. All users will see this configuration by default unless they have their own personal views. Are you sure?",
12876
+ confirmText: "Save as default",
12877
+ cancelText: "Cancel"
12878
+ },
12879
+ updateExisting: {
12880
+ title: "Update existing view",
12881
+ description: 'Update "{{name}}" with the current configuration?',
12882
+ confirmText: "Update",
12883
+ cancelText: "Cancel"
12850
12884
  }
12851
12885
  }
12852
12886
  },
@@ -14,7 +14,7 @@ import {
14
14
  import {
15
15
  _DataTable,
16
16
  useDataTable
17
- } from "./chunk-XRLRKSND.js";
17
+ } from "./chunk-W3UHAQCV.js";
18
18
  import {
19
19
  useQueryParams
20
20
  } from "./chunk-THHRRYRS.js";
@@ -3,6 +3,7 @@ import {
3
3
  } from "./chunk-THHRRYRS.js";
4
4
 
5
5
  // src/hooks/table/query/use-product-table-query.tsx
6
+ import { useExtension, withLinkFields } from "@mercurjs/dashboard-shared";
6
7
  var DEFAULT_FIELDS = (
7
8
  // TODO: Remove exclusion once we avoid including unnecessary relations by default in the query config
8
9
  "id,title,handle,status,*collection,categories.id,categories.name,variants.id,thumbnail,-type,-tags,-images,-variants"
@@ -11,6 +12,7 @@ var useProductTableQuery = ({
11
12
  prefix,
12
13
  pageSize = 20
13
14
  }) => {
15
+ const links = useExtension().getLinks("product");
14
16
  const queryObject = useQueryParams(
15
17
  [
16
18
  "offset",
@@ -57,7 +59,7 @@ var useProductTableQuery = ({
57
59
  type_id: type_id?.split(","),
58
60
  status: status?.split(","),
59
61
  q,
60
- fields: DEFAULT_FIELDS
62
+ fields: withLinkFields(DEFAULT_FIELDS, links)
61
63
  };
62
64
  return {
63
65
  searchParams,
@@ -66,5 +68,6 @@ var useProductTableQuery = ({
66
68
  };
67
69
 
68
70
  export {
71
+ DEFAULT_FIELDS,
69
72
  useProductTableQuery
70
73
  };
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  _DataTable,
15
15
  useDataTable
16
- } from "./chunk-XRLRKSND.js";
16
+ } from "./chunk-W3UHAQCV.js";
17
17
  import {
18
18
  SingleColumnPage
19
19
  } from "./chunk-YV6MK4PZ.js";
@@ -33,6 +33,7 @@ import {
33
33
  // src/pages/customer-groups/customer-group-detail/customer-group-detail.tsx
34
34
  import { Children } from "react";
35
35
  import { useLoaderData, useParams } from "react-router-dom";
36
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
36
37
 
37
38
  // src/pages/customer-groups/customer-group-detail/components/customer-group-customer-section/customer-group-customer-section.tsx
38
39
  import { XCircle } from "@medusajs/icons";
@@ -48,6 +49,7 @@ import { createColumnHelper } from "@tanstack/react-table";
48
49
  import { useMemo, useState } from "react";
49
50
  import { useTranslation } from "react-i18next";
50
51
  import { Link } from "react-router-dom";
52
+ import { DisplayExtensionZone } from "@mercurjs/dashboard-shared";
51
53
  import { jsx, jsxs } from "react/jsx-runtime";
52
54
  var PAGE_SIZE = 20;
53
55
  var CustomerGroupCustomerSection = ({
@@ -186,6 +188,14 @@ var CustomerGroupCustomerSection = ({
186
188
  message: t("customerGroups.customers.list.noRecordsMessage")
187
189
  }
188
190
  }
191
+ ),
192
+ /* @__PURE__ */ jsx(
193
+ DisplayExtensionZone,
194
+ {
195
+ model: "customer_group",
196
+ zone: "customers",
197
+ data: group
198
+ }
189
199
  )
190
200
  ]
191
201
  }
@@ -293,6 +303,7 @@ import { PencilSquare, Trash } from "@medusajs/icons";
293
303
  import { Container as Container2, Heading as Heading2, Text, toast as toast2, usePrompt as usePrompt2 } from "@medusajs/ui";
294
304
  import { useTranslation as useTranslation2 } from "react-i18next";
295
305
  import { useNavigate } from "react-router-dom";
306
+ import { DisplayExtensionZone as DisplayExtensionZone2, DisplayField } from "@mercurjs/dashboard-shared";
296
307
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
297
308
  var CustomerGroupGeneralSection = ({
298
309
  group
@@ -339,7 +350,7 @@ var CustomerGroupGeneralSection = ({
339
350
  className: "flex items-center justify-between px-6 py-4",
340
351
  "data-testid": "customer-group-general-section-header",
341
352
  children: [
342
- /* @__PURE__ */ jsx2(Heading2, { "data-testid": "customer-group-general-section-name", children: group.name }),
353
+ /* @__PURE__ */ jsx2(DisplayField, { model: "customer_group", zone: "general", id: "name", data: group, children: /* @__PURE__ */ jsx2(Heading2, { "data-testid": "customer-group-general-section-name", children: group.name }) }),
343
354
  /* @__PURE__ */ jsx2(
344
355
  ActionMenu,
345
356
  {
@@ -368,32 +379,50 @@ var CustomerGroupGeneralSection = ({
368
379
  ]
369
380
  }
370
381
  ),
371
- /* @__PURE__ */ jsxs2(
372
- "div",
382
+ /* @__PURE__ */ jsx2(
383
+ DisplayField,
373
384
  {
374
- className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4",
375
- "data-testid": "customer-group-general-section-customers-row",
376
- children: [
377
- /* @__PURE__ */ jsx2(
378
- Text,
379
- {
380
- size: "small",
381
- leading: "compact",
382
- weight: "plus",
383
- "data-testid": "customer-group-general-section-customers-label",
384
- children: t("customers.domain")
385
- }
386
- ),
387
- /* @__PURE__ */ jsx2(
388
- Text,
389
- {
390
- size: "small",
391
- leading: "compact",
392
- "data-testid": "customer-group-general-section-customers-value",
393
- children: group.customers?.length || "-"
394
- }
395
- )
396
- ]
385
+ model: "customer_group",
386
+ zone: "general",
387
+ id: "customers",
388
+ data: group,
389
+ children: /* @__PURE__ */ jsxs2(
390
+ "div",
391
+ {
392
+ className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4",
393
+ "data-testid": "customer-group-general-section-customers-row",
394
+ children: [
395
+ /* @__PURE__ */ jsx2(
396
+ Text,
397
+ {
398
+ size: "small",
399
+ leading: "compact",
400
+ weight: "plus",
401
+ "data-testid": "customer-group-general-section-customers-label",
402
+ children: t("customers.domain")
403
+ }
404
+ ),
405
+ /* @__PURE__ */ jsx2(
406
+ Text,
407
+ {
408
+ size: "small",
409
+ leading: "compact",
410
+ "data-testid": "customer-group-general-section-customers-value",
411
+ children: group.customers?.length || "-"
412
+ }
413
+ )
414
+ ]
415
+ }
416
+ )
417
+ }
418
+ ),
419
+ /* @__PURE__ */ jsx2(
420
+ DisplayExtensionZone2,
421
+ {
422
+ model: "customer_group",
423
+ zone: "general",
424
+ data: group,
425
+ builtInFieldIds: ["name", "customers"]
397
426
  }
398
427
  )
399
428
  ]
@@ -419,10 +448,10 @@ var Root = ({ children }) => {
419
448
  if (isError) {
420
449
  throw error;
421
450
  }
422
- return Children.count(children) > 0 ? /* @__PURE__ */ jsx3(SingleColumnPage, { showJSON: true, data: customer_group, hasOutlet: true, children }) : /* @__PURE__ */ jsxs3(SingleColumnPage, { showJSON: true, data: customer_group, hasOutlet: true, children: [
451
+ return Children.count(children) > 0 ? /* @__PURE__ */ jsx3(SingleColumnPage, { showJSON: true, data: customer_group, hasOutlet: true, children }) : /* @__PURE__ */ jsx3(SingleColumnPage, { showJSON: true, data: customer_group, hasOutlet: true, children: /* @__PURE__ */ jsxs3(WidgetZone, { id: "customer-groups.detail.main", data: customer_group, children: [
423
452
  /* @__PURE__ */ jsx3(CustomerGroupGeneralSection, { group: customer_group }),
424
453
  /* @__PURE__ */ jsx3(CustomerGroupCustomerSection, { group: customer_group })
425
- ] });
454
+ ] }) });
426
455
  };
427
456
  var CustomerGroupDetailPage = Object.assign(Root, {
428
457
  GeneralSection: CustomerGroupGeneralSection,
@@ -25,6 +25,7 @@ import {
25
25
  } from "@medusajs/ui";
26
26
  import { useTranslation } from "react-i18next";
27
27
  import { Link } from "react-router-dom";
28
+ import { DisplayExtensionZone } from "@mercurjs/dashboard-shared";
28
29
  import { jsx, jsxs } from "react/jsx-runtime";
29
30
  var ProductMediaSection = ({
30
31
  product,
@@ -186,7 +187,8 @@ var ProductMediaSection = ({
186
187
  shortcut: "d"
187
188
  }
188
189
  )
189
- ] }) })
190
+ ] }) }),
191
+ /* @__PURE__ */ jsx(DisplayExtensionZone, { model: "product", zone: "media", data: product })
190
192
  ] });
191
193
  };
192
194
  var getMedia = (product) => {
@@ -211,7 +213,16 @@ import { PencilSquare as PencilSquare2, Trash } from "@medusajs/icons";
211
213
  import { Container as Container2, Heading as Heading2, StatusBadge, usePrompt as usePrompt2 } from "@medusajs/ui";
212
214
  import { useTranslation as useTranslation2 } from "react-i18next";
213
215
  import { useNavigate } from "react-router-dom";
216
+ import { DisplayExtensionZone as DisplayExtensionZone2, DisplayField } from "@mercurjs/dashboard-shared";
214
217
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
218
+ var GENERAL_FIELD_IDS = [
219
+ "title",
220
+ "status",
221
+ "description",
222
+ "subtitle",
223
+ "handle",
224
+ "discountable"
225
+ ];
215
226
  var productStatusColor = (status) => {
216
227
  switch (status) {
217
228
  case "draft":
@@ -253,9 +264,18 @@ var ProductGeneralSection = ({
253
264
  };
254
265
  return /* @__PURE__ */ jsxs2(Container2, { className: "divide-y p-0", children: [
255
266
  /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between px-6 py-4", children: [
256
- /* @__PURE__ */ jsx2(Heading2, { children: product.title }),
267
+ /* @__PURE__ */ jsx2(DisplayField, { model: "product", zone: "general", id: "title", data: product, children: /* @__PURE__ */ jsx2(Heading2, { children: product.title }) }),
257
268
  /* @__PURE__ */ jsxs2("div", { className: "flex items-center gap-x-4", children: [
258
- /* @__PURE__ */ jsx2(StatusBadge, { color: productStatusColor(product.status), children: t(`products.productStatus.${product.status}`) }),
269
+ /* @__PURE__ */ jsx2(
270
+ DisplayField,
271
+ {
272
+ model: "product",
273
+ zone: "general",
274
+ id: "status",
275
+ data: product,
276
+ children: /* @__PURE__ */ jsx2(StatusBadge, { color: productStatusColor(product.status), children: t(`products.productStatus.${product.status}`) })
277
+ }
278
+ ),
259
279
  /* @__PURE__ */ jsx2(
260
280
  ActionMenu,
261
281
  {
@@ -283,26 +303,44 @@ var ProductGeneralSection = ({
283
303
  )
284
304
  ] })
285
305
  ] }),
286
- /* @__PURE__ */ jsx2(
306
+ /* @__PURE__ */ jsx2(DisplayField, { model: "product", zone: "general", id: "description", data: product, children: /* @__PURE__ */ jsx2(
287
307
  SectionRow,
288
308
  {
289
309
  title: t("fields.description"),
290
310
  value: product.description || "-"
291
311
  }
292
- ),
293
- /* @__PURE__ */ jsx2(
312
+ ) }),
313
+ /* @__PURE__ */ jsx2(DisplayField, { model: "product", zone: "general", id: "subtitle", data: product, children: /* @__PURE__ */ jsx2(
294
314
  SectionRow,
295
315
  {
296
316
  title: t("fields.subtitle"),
297
317
  value: product.subtitle || "-"
298
318
  }
319
+ ) }),
320
+ /* @__PURE__ */ jsx2(DisplayField, { model: "product", zone: "general", id: "handle", data: product, children: /* @__PURE__ */ jsx2(SectionRow, { title: t("fields.handle"), value: `/${product.handle}` }) }),
321
+ /* @__PURE__ */ jsx2(
322
+ DisplayField,
323
+ {
324
+ model: "product",
325
+ zone: "general",
326
+ id: "discountable",
327
+ data: product,
328
+ children: /* @__PURE__ */ jsx2(
329
+ SectionRow,
330
+ {
331
+ title: t("fields.discountable"),
332
+ value: product.discountable ? t("general.true") : t("general.false")
333
+ }
334
+ )
335
+ }
299
336
  ),
300
- /* @__PURE__ */ jsx2(SectionRow, { title: t("fields.handle"), value: `/${product.handle}` }),
301
337
  /* @__PURE__ */ jsx2(
302
- SectionRow,
338
+ DisplayExtensionZone2,
303
339
  {
304
- title: t("fields.discountable"),
305
- value: product.discountable ? t("general.true") : t("general.false")
340
+ model: "product",
341
+ zone: "general",
342
+ data: product,
343
+ builtInFieldIds: GENERAL_FIELD_IDS
306
344
  }
307
345
  )
308
346
  ] });