@mercurjs/admin 2.2.0-canary.40 → 2.2.0-canary.42

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/{attribute-create-VGL7LGIH.js → attribute-create-VAR6C5GW.js} +4 -2
  2. package/dist/{attribute-detail-EKDAYT4B.js → attribute-detail-LBACUDU3.js} +1 -1
  3. package/dist/{attribute-edit-OBNLNOJS.js → attribute-edit-WXO5FGR6.js} +2 -2
  4. package/dist/{attribute-edit-possible-value-QDFVWLA3.js → attribute-edit-possible-value-RO7BY3NC.js} +2 -2
  5. package/dist/{campaign-detail-RNB3FEJZ.js → campaign-detail-6J7PTIIP.js} +1 -1
  6. package/dist/{campaign-edit-MAS3DCFB.js → campaign-edit-DBAJFIH4.js} +18 -5
  7. package/dist/{campaign-list-CDV4GWWD.js → campaign-list-XH7UM5JJ.js} +1 -1
  8. package/dist/{category-create-AIS2MG7E.js → category-create-CJZZZLDD.js} +1 -1
  9. package/dist/{category-detail-557376TZ.js → category-detail-XV6CDZZL.js} +5 -5
  10. package/dist/{category-edit-LYR2IOTA.js → category-edit-2NCWDSZY.js} +19 -6
  11. package/dist/{category-list-XKRI24VN.js → category-list-WYMOJJLW.js} +1 -1
  12. package/dist/{category-products-44PCDDNN.js → category-products-CQV2TKLY.js} +4 -4
  13. package/dist/{chunk-HRDVGFS7.js → chunk-27XNPAJP.js} +9 -3
  14. package/dist/{chunk-KGA2XI6W.js → chunk-2CJIE5MY.js} +18 -7
  15. package/dist/{chunk-PMVWIBTI.js → chunk-3L4IFGRJ.js} +45 -8
  16. package/dist/{chunk-HQM7D57C.js → chunk-4RLXMDIJ.js} +2 -2
  17. package/dist/{chunk-5ACJR6WB.js → chunk-4XYSIVPO.js} +2 -2
  18. package/dist/{chunk-BLR3NTU6.js → chunk-5PNM6QNB.js} +2 -0
  19. package/dist/{chunk-GCU4LHGY.js → chunk-5UT374IW.js} +69 -24
  20. package/dist/{chunk-BTJR5RSV.js → chunk-7U2JJYMP.js} +41 -13
  21. package/dist/{chunk-2Z2M5K5A.js → chunk-ADTYNS4J.js} +1 -1
  22. package/dist/chunk-APAT344J.js +144 -0
  23. package/dist/{chunk-NWSKT55Z.js → chunk-BQWSY6FS.js} +1 -1
  24. package/dist/{chunk-NZVS6B77.js → chunk-CBD7HK2G.js} +54 -17
  25. package/dist/{chunk-WKDHY2DJ.js → chunk-COOOOQ2N.js} +1 -1
  26. package/dist/{chunk-56UFDHNO.js → chunk-DJD3MWED.js} +1 -1
  27. package/dist/{chunk-J3L2FUIA.js → chunk-E6326AHP.js} +49 -33
  28. package/dist/{chunk-BVIIRGSW.js → chunk-F3F4JC7E.js} +3 -1
  29. package/dist/{chunk-7O7LYBHL.js → chunk-FNCDMOOR.js} +50 -18
  30. package/dist/{chunk-TDJSZ73V.js → chunk-GXU246YJ.js} +31 -4
  31. package/dist/{chunk-OYZIFLLC.js → chunk-I5HY5Q3K.js} +1 -1
  32. package/dist/{chunk-MZOINNCV.js → chunk-IASJSRP5.js} +70 -49
  33. package/dist/{chunk-THPXRTE5.js → chunk-IMLKFVFH.js} +23 -6
  34. package/dist/{chunk-Q6QXFLUY.js → chunk-JEN37H6L.js} +2 -0
  35. package/dist/{chunk-FICKHCWL.js → chunk-K2JORJRZ.js} +3 -1
  36. package/dist/{chunk-NISAIYSW.js → chunk-KRFXBBBU.js} +2 -2
  37. package/dist/{chunk-OAN4CZKX.js → chunk-KUCNCDST.js} +2 -0
  38. package/dist/{chunk-VJ4LQXMA.js → chunk-L2D2AMTK.js} +4 -2
  39. package/dist/{chunk-DPG4AWSG.js → chunk-LBDSZT5Q.js} +17 -6
  40. package/dist/{chunk-4346EIRG.js → chunk-LGOPKYNG.js} +1 -1
  41. package/dist/{chunk-VYQ6ASFF.js → chunk-MFCQTAVI.js} +15 -4
  42. package/dist/{chunk-TH26CWVG.js → chunk-NLJ5F7FS.js} +1 -1
  43. package/dist/{chunk-MOG7LT73.js → chunk-NPHYCQMP.js} +4 -2
  44. package/dist/{chunk-LVRCEGL7.js → chunk-ORCMDF54.js} +27 -11
  45. package/dist/{chunk-65YE4SVL.js → chunk-OVUKVGGD.js} +18 -7
  46. package/dist/{chunk-VPYI4X6C.js → chunk-PLU2GB4L.js} +27 -7
  47. package/dist/{chunk-GISFIAGQ.js → chunk-QAONUPAX.js} +42 -13
  48. package/dist/{chunk-W3P3RP5R.js → chunk-QFFF542X.js} +9 -3
  49. package/dist/{chunk-JU2O2H7I.js → chunk-RATQZHCS.js} +2 -2
  50. package/dist/{chunk-DI2M3J5Q.js → chunk-RMB7MPIT.js} +1 -1
  51. package/dist/{chunk-KFYTUQXT.js → chunk-S2C6DUQJ.js} +2 -2
  52. package/dist/{chunk-UZ452ISX.js → chunk-U4MV53CS.js} +32 -14
  53. package/dist/{chunk-VBKFXL2Q.js → chunk-USG4EATH.js} +19 -4
  54. package/dist/{chunk-EX4AGESR.js → chunk-VE7RLYJ7.js} +61 -27
  55. package/dist/{chunk-IVBNI2QE.js → chunk-VIJXGPDE.js} +78 -24
  56. package/dist/{chunk-W7CJSBDM.js → chunk-VLYPVR5U.js} +19 -8
  57. package/dist/{chunk-6KWWJE5P.js → chunk-VXDRQQRZ.js} +3 -3
  58. package/dist/{chunk-DSTHXHJ5.js → chunk-VYSB4CTB.js} +1356 -1356
  59. package/dist/{chunk-YRUCTB6M.js → chunk-WEVSVBVF.js} +1 -1
  60. package/dist/{chunk-3BTRS4AA.js → chunk-WMK3BQPH.js} +1 -1
  61. package/dist/{chunk-EGHDC6K6.js → chunk-X6KFVVHH.js} +2 -2
  62. package/dist/{chunk-2FPQHWJZ.js → chunk-X7IR2TVL.js} +106 -24
  63. package/dist/{collection-add-products-JFUIZEZI.js → collection-add-products-XUKFZOCQ.js} +4 -4
  64. package/dist/{collection-detail-2WOLOVWF.js → collection-detail-ID4FKP22.js} +5 -5
  65. package/dist/{collection-edit-UMZN5JZ6.js → collection-edit-GPUKISIV.js} +18 -5
  66. package/dist/{collection-list-B3Y2ALLZ.js → collection-list-C6U4CPLD.js} +4 -4
  67. package/dist/{customer-detail-ZGDPIWA4.js → customer-detail-IG2QAAQL.js} +1 -1
  68. package/dist/{customer-edit-D55FJLIN.js → customer-edit-TADBOMPB.js} +18 -5
  69. package/dist/{customer-group-detail-FXUICFYC.js → customer-group-detail-2B7XJ7NT.js} +1 -1
  70. package/dist/{customer-group-edit-NZ5SUPFQ.js → customer-group-edit-BX4HKVNN.js} +33 -18
  71. package/dist/{customer-group-list-R2DP2D42.js → customer-group-list-7LN5TN3G.js} +1 -1
  72. package/dist/{customer-list-Z4DUQHCH.js → customer-list-K5TV3PSF.js} +1 -1
  73. package/dist/{edit-inventory-item-73BY4I5T.js → edit-inventory-item-4RXYRJ7O.js} +19 -6
  74. package/dist/{edit-reservation-BC5IOLK6.js → edit-reservation-HA6J6U2N.js} +18 -5
  75. package/dist/extension-targets.d.ts +195 -0
  76. package/dist/extension-targets.js +1 -0
  77. package/dist/index.d.ts +6 -2
  78. package/dist/index.js +136 -108
  79. package/dist/{inventory-create-XQKH3HZQ.js → inventory-create-B3FHGX6A.js} +1 -1
  80. package/dist/{inventory-detail-RZJNTJDF.js → inventory-detail-7VEJHRBB.js} +2 -2
  81. package/dist/{inventory-list-SPSBDJXO.js → inventory-list-IRQUQD4G.js} +1 -1
  82. package/dist/{location-fulfillment-providers-XXZ7AIUF.js → location-fulfillment-providers-MFM4SHJJ.js} +2 -2
  83. package/dist/{offer-detail-page-2G5BUOIB.js → offer-detail-page-THKNBFWZ.js} +61 -16
  84. package/dist/{offer-variant-detail-page-V6TKNYZL.js → offer-variant-detail-page-NDGPFP6P.js} +1 -1
  85. package/dist/{offers-2QQFKGAX.js → offers-LYLEYD3A.js} +22 -7
  86. package/dist/{order-detail-QUGH2GXH.js → order-detail-NYKOH7OO.js} +1 -1
  87. package/dist/{order-list-GMUOLGZY.js → order-list-EZWCH5YW.js} +3 -3
  88. package/dist/pages/index.js +47 -47
  89. package/dist/{price-list-create-HKN72A6Q.js → price-list-create-YHSA7U3L.js} +5 -5
  90. package/dist/{price-list-detail-6JAMNNJW.js → price-list-detail-3SS3DGRU.js} +5 -5
  91. package/dist/{price-list-edit-RZQMPHXU.js → price-list-edit-TRRPPI43.js} +19 -6
  92. package/dist/{price-list-list-HLWCOORV.js → price-list-list-REIHOWWT.js} +1 -1
  93. package/dist/{price-list-prices-add-ST6WNQNH.js → price-list-prices-add-X2GLUD7O.js} +5 -5
  94. package/dist/{product-add-existing-attributes-J6MML6MT.js → product-add-existing-attributes-GPAZOIXH.js} +2 -2
  95. package/dist/{product-create-B4DTC2OM.js → product-create-6FDBZUB4.js} +3 -3
  96. package/dist/{product-create-attribute-BP6NN4GO.js → product-create-attribute-YFIEH7HD.js} +1 -1
  97. package/dist/{product-create-variant-VDQQNHAK.js → product-create-variant-4O22DW7M.js} +3 -3
  98. package/dist/{product-detail-MFJ3AIU6.js → product-detail-VORTX3LT.js} +3 -3
  99. package/dist/{product-edit-attribute-AXPTES26.js → product-edit-attribute-NUJB7M6R.js} +2 -2
  100. package/dist/{product-list-DMQSLXM4.js → product-list-2WE2JY4F.js} +15 -12
  101. package/dist/{product-media-XRBLOV7D.js → product-media-LINHO45U.js} +2 -2
  102. package/dist/{product-tag-detail-4FL4CU5S.js → product-tag-detail-2PMM6RG6.js} +6 -6
  103. package/dist/{product-tag-list-YPTIDXPX.js → product-tag-list-KBNI6UDN.js} +6 -6
  104. package/dist/{product-type-detail-RAYCHYAF.js → product-type-detail-UKJ6RIHU.js} +5 -5
  105. package/dist/{product-variant-edit-C4HXFQFW.js → product-variant-edit-MAM2RQ4V.js} +2 -2
  106. package/dist/{promotion-create-7VBA6JFM.js → promotion-create-3EDHAI7E.js} +1 -1
  107. package/dist/{promotion-detail-KXXWEFHW.js → promotion-detail-PLGDC3A7.js} +1 -1
  108. package/dist/{promotion-edit-details-YM5JPGEC.js → promotion-edit-details-RTLPOQ4H.js} +20 -6
  109. package/dist/{promotion-list-56ZDROMH.js → promotion-list-D6HSZKGU.js} +1 -1
  110. package/dist/{refund-reason-list-PBLA5HYO.js → refund-reason-list-OWXAGHOQ.js} +5 -5
  111. package/dist/{reservation-detail-MAWHNY2H.js → reservation-detail-PWZ3PLC4.js} +2 -2
  112. package/dist/{reservation-list-UWZRPRPH.js → reservation-list-URKNAFIX.js} +1 -1
  113. package/dist/{return-reason-list-NPAAMB5H.js → return-reason-list-4ANB2PXX.js} +5 -5
  114. package/dist/{sales-channel-add-products-2BBIMN6N.js → sales-channel-add-products-NATZ7L5S.js} +4 -4
  115. package/dist/{sales-channel-detail-D5R7HPC7.js → sales-channel-detail-VDYOKH35.js} +5 -5
  116. package/dist/{store-bulk-edit-OIYKZ6AZ.js → store-bulk-edit-I2J5YYZK.js} +1 -1
  117. package/dist/{store-create-Y3BGG5P5.js → store-create-IKHZ52NO.js} +1 -1
  118. package/dist/{store-details-56IHJJQV.js → store-details-CFWAS2MB.js} +5 -5
  119. package/dist/{store-edit-HWOGEOCH.js → store-edit-AZ4LD4C6.js} +24 -9
  120. package/dist/{store-list-5DRW6QZF.js → store-list-6XZEWHRE.js} +4 -4
  121. package/dist/{store-member-invite-7ORIMT73.js → store-member-invite-J2JFDOHX.js} +1 -1
  122. package/dist/{tax-region-tax-override-create-R5GKEOK6.js → tax-region-tax-override-create-5PIUENUZ.js} +6 -6
  123. package/dist/{tax-region-tax-override-edit-MLJKNLAR.js → tax-region-tax-override-edit-GBPRPUTS.js} +6 -6
  124. package/package.json +17 -12
  125. package/dist/chunk-LFKTHNWI.js +0 -83
@@ -30,6 +30,7 @@ import {
30
30
 
31
31
  // src/pages/price-lists/price-list-list/price-list-list.tsx
32
32
  import { Children as Children3 } from "react";
33
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
33
34
 
34
35
  // src/pages/price-lists/price-list-list/components/price-list-list-table/price-list-list-table.tsx
35
36
  import { Children as Children2 } from "react";
@@ -65,72 +66,35 @@ var PriceListListHeader = ({
65
66
 
66
67
  // src/pages/price-lists/price-list-list/components/price-list-list-table/price-list-list-data-table.tsx
67
68
  import { keepPreviousData } from "@tanstack/react-query";
69
+ import { createColumnHelper as createColumnHelper2 } from "@tanstack/react-table";
70
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
71
+ import { useMemo as useMemo2 } from "react";
68
72
  import { useTranslation as useTranslation5 } from "react-i18next";
69
73
 
70
74
  // src/pages/price-lists/price-list-list/components/price-list-list-table/use-pricing-table-columns.tsx
71
75
  import { createColumnHelper } from "@tanstack/react-table";
72
76
  import { useMemo } from "react";
73
- import { useTranslation as useTranslation3 } from "react-i18next";
74
-
75
- // src/pages/price-lists/price-list-list/components/price-list-list-table/price-list-list-table-actions.tsx
76
- import { PencilSquare, Trash } from "@medusajs/icons";
77
77
  import { useTranslation as useTranslation2 } from "react-i18next";
78
78
  import { jsx as jsx2 } from "react/jsx-runtime";
79
- var PriceListListTableActions = ({ priceList }) => {
80
- const { t } = useTranslation2();
81
- const handleDelete = useDeletePriceListAction({ priceList, navigateOnSuccess: false });
82
- return /* @__PURE__ */ jsx2(
83
- ActionMenu,
84
- {
85
- groups: [
86
- {
87
- actions: [
88
- {
89
- label: t("actions.edit"),
90
- to: `${priceList.id}/edit`,
91
- icon: /* @__PURE__ */ jsx2(PencilSquare, {})
92
- }
93
- ]
94
- },
95
- {
96
- actions: [
97
- {
98
- label: t("actions.delete"),
99
- onClick: handleDelete,
100
- icon: /* @__PURE__ */ jsx2(Trash, {})
101
- }
102
- ]
103
- }
104
- ]
105
- }
106
- );
107
- };
108
-
109
- // src/pages/price-lists/price-list-list/components/price-list-list-table/use-pricing-table-columns.tsx
110
- import { jsx as jsx3 } from "react/jsx-runtime";
111
79
  var columnHelper = createColumnHelper();
112
80
  var usePricingTableColumns = () => {
113
- const { t } = useTranslation3();
81
+ const { t } = useTranslation2();
114
82
  return useMemo(
115
83
  () => [
116
84
  columnHelper.accessor("title", {
117
- header: () => /* @__PURE__ */ jsx3(TextHeader, { text: t("fields.title") }),
85
+ header: () => /* @__PURE__ */ jsx2(TextHeader, { text: t("fields.title") }),
118
86
  cell: (info) => info.getValue()
119
87
  }),
120
88
  columnHelper.accessor("status", {
121
89
  header: t("priceLists.fields.status.label"),
122
90
  cell: ({ row }) => {
123
91
  const { color, text } = getPriceListStatus(t, row.original);
124
- return /* @__PURE__ */ jsx3(StatusCell, { color, children: text });
92
+ return /* @__PURE__ */ jsx2(StatusCell, { color, children: text });
125
93
  }
126
94
  }),
127
95
  columnHelper.accessor("prices", {
128
96
  header: t("priceLists.fields.priceOverrides.header"),
129
- cell: (info) => /* @__PURE__ */ jsx3(TextCell, { text: `${info.getValue()?.length || "-"}` })
130
- }),
131
- columnHelper.display({
132
- id: "actions",
133
- cell: ({ row }) => /* @__PURE__ */ jsx3(PriceListListTableActions, { priceList: row.original })
97
+ cell: (info) => /* @__PURE__ */ jsx2(TextCell, { text: `${info.getValue()?.length || "-"}` })
134
98
  })
135
99
  ],
136
100
  [t]
@@ -138,9 +102,9 @@ var usePricingTableColumns = () => {
138
102
  };
139
103
 
140
104
  // src/pages/price-lists/price-list-list/components/price-list-list-table/use-pricing-table-filters.tsx
141
- import { useTranslation as useTranslation4 } from "react-i18next";
105
+ import { useTranslation as useTranslation3 } from "react-i18next";
142
106
  var usePricingTableFilters = () => {
143
- const { t } = useTranslation4();
107
+ const { t } = useTranslation3();
144
108
  const filters = [
145
109
  { label: t("fields.createdAt"), key: "starts_at", type: "date" },
146
110
  { label: t("fields.updatedAt"), key: "ends_at", type: "date" }
@@ -172,9 +136,62 @@ var usePricingTableQuery = ({
172
136
  };
173
137
  };
174
138
 
139
+ // src/pages/price-lists/price-list-list/components/price-list-list-table/price-list-list-table-actions.tsx
140
+ import { PencilSquare, Trash } from "@medusajs/icons";
141
+ import { useTranslation as useTranslation4 } from "react-i18next";
142
+ import { jsx as jsx3 } from "react/jsx-runtime";
143
+ var PriceListListTableActions = ({ priceList }) => {
144
+ const { t } = useTranslation4();
145
+ const handleDelete = useDeletePriceListAction({ priceList, navigateOnSuccess: false });
146
+ return /* @__PURE__ */ jsx3(
147
+ ActionMenu,
148
+ {
149
+ groups: [
150
+ {
151
+ actions: [
152
+ {
153
+ label: t("actions.edit"),
154
+ to: `${priceList.id}/edit`,
155
+ icon: /* @__PURE__ */ jsx3(PencilSquare, {})
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ actions: [
161
+ {
162
+ label: t("actions.delete"),
163
+ onClick: handleDelete,
164
+ icon: /* @__PURE__ */ jsx3(Trash, {})
165
+ }
166
+ ]
167
+ }
168
+ ]
169
+ }
170
+ );
171
+ };
172
+
175
173
  // src/pages/price-lists/price-list-list/components/price-list-list-table/price-list-list-data-table.tsx
176
174
  import { jsx as jsx4 } from "react/jsx-runtime";
177
175
  var PAGE_SIZE = 20;
176
+ var columnHelper2 = createColumnHelper2();
177
+ var useColumns = () => {
178
+ const base = usePricingTableColumns();
179
+ const { columns: extended, filters } = useExtendableTable({
180
+ model: "price_list",
181
+ columns: base
182
+ });
183
+ const columns = useMemo2(
184
+ () => [
185
+ ...extended,
186
+ columnHelper2.display({
187
+ id: "actions",
188
+ cell: ({ row }) => /* @__PURE__ */ jsx4(PriceListListTableActions, { priceList: row.original })
189
+ })
190
+ ],
191
+ [extended]
192
+ );
193
+ return { columns, filters };
194
+ };
178
195
  var PriceListListDataTable = () => {
179
196
  const { t } = useTranslation5();
180
197
  const { searchParams, raw } = usePricingTableQuery({
@@ -186,8 +203,12 @@ var PriceListListDataTable = () => {
186
203
  placeholderData: keepPreviousData
187
204
  }
188
205
  );
189
- const filters = usePricingTableFilters();
190
- const columns = usePricingTableColumns();
206
+ const baseFilters = usePricingTableFilters();
207
+ const { columns, filters: extFilters } = useColumns();
208
+ const filters = useMemo2(
209
+ () => [...baseFilters, ...extFilters],
210
+ [baseFilters, extFilters]
211
+ );
191
212
  const { table } = useDataTable({
192
213
  data: price_lists || [],
193
214
  columns,
@@ -234,7 +255,7 @@ var PriceListListTable = ({ children }) => {
234
255
  // src/pages/price-lists/price-list-list/price-list-list.tsx
235
256
  import { jsx as jsx6 } from "react/jsx-runtime";
236
257
  var Root = ({ children }) => {
237
- return /* @__PURE__ */ jsx6(SingleColumnPage, { children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx6(PriceListListTable, {}) });
258
+ return /* @__PURE__ */ jsx6(SingleColumnPage, { children: /* @__PURE__ */ jsx6(WidgetZone, { id: "price-lists.list", children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx6(PriceListListTable, {}) }) });
238
259
  };
239
260
  var PriceListListPage = Object.assign(Root, {
240
261
  Table: PriceListListTable,
@@ -24,6 +24,7 @@ import {
24
24
 
25
25
  // src/pages/customer-groups/customer-group-list/customer-group-list.tsx
26
26
  import { Children as Children2 } from "react";
27
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
27
28
 
28
29
  // src/pages/customer-groups/customer-group-list/components/customer-group-list-table/customer-group-list-table.tsx
29
30
  import { PencilSquare, Trash } from "@medusajs/icons";
@@ -34,6 +35,7 @@ import {
34
35
  toast,
35
36
  usePrompt
36
37
  } from "@medusajs/ui";
38
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
37
39
  import { keepPreviousData } from "@tanstack/react-query";
38
40
  import { createColumnHelper } from "@tanstack/react-table";
39
41
  import { Children, useCallback, useMemo } from "react";
@@ -77,8 +79,12 @@ var CustomerGroupListDataTable = () => {
77
79
  placeholderData: keepPreviousData
78
80
  }
79
81
  );
80
- const filters = useCustomerGroupTableFilters();
81
- const columns = useColumns();
82
+ const baseFilters = useCustomerGroupTableFilters();
83
+ const { columns, filters: extFilters } = useColumns();
84
+ const filters = useMemo(
85
+ () => [...baseFilters, ...extFilters],
86
+ [baseFilters, extFilters]
87
+ );
82
88
  const { table } = useDataTable({
83
89
  data: customer_groups ?? [],
84
90
  columns,
@@ -190,7 +196,7 @@ var columnHelper = createColumnHelper();
190
196
  var useColumns = () => {
191
197
  const { t } = useTranslation();
192
198
  const { getFullDate } = useDate();
193
- return useMemo(
199
+ const base = useMemo(
194
200
  () => [
195
201
  columnHelper.accessor("name", {
196
202
  header: t("fields.name")
@@ -226,20 +232,31 @@ var useColumns = () => {
226
232
  includeTime: true
227
233
  }) });
228
234
  }
229
- }),
235
+ })
236
+ ],
237
+ [t, getFullDate]
238
+ );
239
+ const { columns: extended, filters } = useExtendableTable({
240
+ model: "customer_group",
241
+ columns: base
242
+ });
243
+ const columns = useMemo(
244
+ () => [
245
+ ...extended,
230
246
  columnHelper.display({
231
247
  id: "actions",
232
248
  cell: ({ row }) => /* @__PURE__ */ jsx(CustomerGroupActions, { group: row.original })
233
249
  })
234
250
  ],
235
- [t, getFullDate]
251
+ [extended]
236
252
  );
253
+ return { columns, filters };
237
254
  };
238
255
 
239
256
  // src/pages/customer-groups/customer-group-list/customer-group-list.tsx
240
257
  import { jsx as jsx2 } from "react/jsx-runtime";
241
258
  var Root = ({ children }) => {
242
- return /* @__PURE__ */ jsx2(SingleColumnPage, { children: Children2.count(children) > 0 ? children : /* @__PURE__ */ jsx2(CustomerGroupListTable, {}) });
259
+ return /* @__PURE__ */ jsx2(SingleColumnPage, { children: /* @__PURE__ */ jsx2(WidgetZone, { id: "customer-groups.list", children: Children2.count(children) > 0 ? children : /* @__PURE__ */ jsx2(CustomerGroupListTable, {}) }) });
243
260
  };
244
261
  var CustomerGroupListPage = Object.assign(Root, {
245
262
  Table: CustomerGroupListTable,
@@ -397,6 +397,8 @@ function InventoryCreateForm({
397
397
  return /* @__PURE__ */ jsx3(
398
398
  TabbedForm,
399
399
  {
400
+ model: "inventory_item",
401
+ zone: "create",
400
402
  form,
401
403
  onSubmit: handleSubmit,
402
404
  isLoading,
@@ -211,6 +211,7 @@ var OfferPricingSection = ({ offer }) => {
211
211
  // src/pages/offers/[id]/_components/offer-store-sidebar.tsx
212
212
  import { TriangleRightMini } from "@medusajs/icons";
213
213
  import { Avatar, Container as Container3, Heading as Heading3 } from "@medusajs/ui";
214
+ import { DisplayExtensionZone } from "@mercurjs/dashboard-shared";
214
215
  import { useTranslation as useTranslation3 } from "react-i18next";
215
216
  import { Link } from "react-router-dom";
216
217
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
@@ -268,7 +269,8 @@ var OfferStoreSidebar = ({ seller }) => {
268
269
  "data-testid": "offer-detail-store-link",
269
270
  children: Inner
270
271
  }
271
- ) })
272
+ ) }),
273
+ /* @__PURE__ */ jsx3(DisplayExtensionZone, { model: "offer", zone: "store", data: seller })
272
274
  ] });
273
275
  };
274
276
 
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-QE4R2KT3.js";
4
4
  import {
5
5
  useProductTableColumns
6
- } from "./chunk-OYZIFLLC.js";
6
+ } from "./chunk-I5HY5Q3K.js";
7
7
  import {
8
8
  useProductTableFilters
9
- } from "./chunk-4346EIRG.js";
9
+ } from "./chunk-LGOPKYNG.js";
10
10
  import {
11
11
  useProductTableQuery
12
12
  } from "./chunk-H7NIKMPE.js";
@@ -1119,6 +1119,8 @@ function CreatePromotionForm({
1119
1119
  return /* @__PURE__ */ jsx4(
1120
1120
  TabbedForm,
1121
1121
  {
1122
+ model: "promotion",
1123
+ zone: "create",
1122
1124
  form,
1123
1125
  onSubmit: handleSubmit,
1124
1126
  isLoading,
@@ -10,7 +10,7 @@ import {
10
10
  decorateVariantsWithDefaultValues,
11
11
  generateVariantsFromAttributes,
12
12
  normalizeProductFormValues
13
- } from "./chunk-3BTRS4AA.js";
13
+ } from "./chunk-WMK3BQPH.js";
14
14
  import {
15
15
  HandleInput
16
16
  } from "./chunk-HJ56YXBU.js";
@@ -58,7 +58,7 @@ import {
58
58
  } from "./chunk-3QSRE5LS.js";
59
59
  import {
60
60
  require_dist
61
- } from "./chunk-DSTHXHJ5.js";
61
+ } from "./chunk-VYSB4CTB.js";
62
62
  import {
63
63
  useProductAttributes
64
64
  } from "./chunk-F5NW4XBU.js";
@@ -2006,6 +2006,8 @@ var ProductCreateForm = ({
2006
2006
  return /* @__PURE__ */ jsx10(
2007
2007
  TabbedForm,
2008
2008
  {
2009
+ model: "product",
2010
+ zone: "create",
2009
2011
  form,
2010
2012
  onSubmit: handleSubmit,
2011
2013
  isLoading: isPending || isRegionsPending,
@@ -22,11 +22,13 @@ import {
22
22
 
23
23
  // src/pages/promotions/promotion-list/promotions-list.tsx
24
24
  import { Children as Children2 } from "react";
25
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
25
26
 
26
27
  // src/pages/promotions/promotion-list/components/promotion-list-table/promotion-list-table.tsx
27
28
  import { PencilSquare, Trash } from "@medusajs/icons";
28
29
  import { Button, Container, Heading, usePrompt } from "@medusajs/ui";
29
30
  import { createColumnHelper } from "@tanstack/react-table";
31
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
30
32
  import { Children, useMemo } from "react";
31
33
  import { useTranslation } from "react-i18next";
32
34
  import { Link, Outlet, useLoaderData, useNavigate } from "react-router-dom";
@@ -68,8 +70,12 @@ var PromotionListDataTable = () => {
68
70
  placeholderData: keepPreviousData
69
71
  }
70
72
  );
71
- const filters = usePromotionTableFilters();
72
- const columns = useColumns();
73
+ const baseFilters = usePromotionTableFilters();
74
+ const { columns, filters: extFilters } = useColumns();
75
+ const filters = useMemo(
76
+ () => [...baseFilters, ...extFilters],
77
+ [baseFilters, extFilters]
78
+ );
73
79
  const { table } = useDataTable({
74
80
  data: promotions ?? [],
75
81
  columns,
@@ -166,9 +172,13 @@ var PromotionActions = ({ promotion }) => {
166
172
  var columnHelper = createColumnHelper();
167
173
  var useColumns = () => {
168
174
  const base = usePromotionTableColumns();
169
- return useMemo(
175
+ const { columns: extended, filters } = useExtendableTable({
176
+ model: "promotion",
177
+ columns: base
178
+ });
179
+ const columns = useMemo(
170
180
  () => [
171
- ...base,
181
+ ...extended,
172
182
  columnHelper.display({
173
183
  id: "actions",
174
184
  cell: ({ row }) => {
@@ -176,14 +186,15 @@ var useColumns = () => {
176
186
  }
177
187
  })
178
188
  ],
179
- [base]
189
+ [extended]
180
190
  );
191
+ return { columns, filters };
181
192
  };
182
193
 
183
194
  // src/pages/promotions/promotion-list/promotions-list.tsx
184
195
  import { jsx as jsx2 } from "react/jsx-runtime";
185
196
  var Root = ({ children }) => {
186
- return /* @__PURE__ */ jsx2(SingleColumnPage, { children: Children2.count(children) > 0 ? children : /* @__PURE__ */ jsx2(PromotionListTable, {}) });
197
+ return /* @__PURE__ */ jsx2(SingleColumnPage, { children: /* @__PURE__ */ jsx2(WidgetZone, { id: "promotions.list", children: Children2.count(children) > 0 ? children : /* @__PURE__ */ jsx2(PromotionListTable, {}) }) });
187
198
  };
188
199
  var PromotionListPage = Object.assign(Root, {
189
200
  Table: PromotionListTable,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_dist
3
- } from "./chunk-DSTHXHJ5.js";
3
+ } from "./chunk-VYSB4CTB.js";
4
4
  import {
5
5
  useProductTags
6
6
  } from "./chunk-ABS7HMLY.js";
@@ -34,6 +34,7 @@ import {
34
34
 
35
35
  // src/pages/orders/order-list/order-list.tsx
36
36
  import { Children as Children3 } from "react";
37
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
37
38
 
38
39
  // src/pages/orders/order-list/components/order-list-table/order-list-table.tsx
39
40
  import { Children as Children2 } from "react";
@@ -71,6 +72,7 @@ import { IconButton as IconButton2, clx } from "@medusajs/ui";
71
72
  import { TriangleRightMini } from "@medusajs/icons";
72
73
  import { keepPreviousData } from "@tanstack/react-query";
73
74
  import { createColumnHelper } from "@tanstack/react-table";
75
+ import { useExtendableTable } from "@mercurjs/dashboard-shared";
74
76
  import { useMemo } from "react";
75
77
  import { useTranslation as useTranslation3 } from "react-i18next";
76
78
 
@@ -196,8 +198,12 @@ var OrderListDataTable = () => {
196
198
  () => transformOrderGroups(order_groups ?? [], t),
197
199
  [order_groups, t]
198
200
  );
199
- const filters = useOrderGroupTableFilters();
200
- const columns = useColumns();
201
+ const baseFilters = useOrderGroupTableFilters();
202
+ const { columns, filters: extFilters } = useColumns();
203
+ const filters = useMemo(
204
+ () => [...baseFilters, ...extFilters],
205
+ [baseFilters, extFilters]
206
+ );
201
207
  const { table } = useDataTable({
202
208
  data: rows,
203
209
  columns,
@@ -245,7 +251,7 @@ var OrderListDataTable = () => {
245
251
  var columnHelper = createColumnHelper();
246
252
  var useColumns = () => {
247
253
  const { t } = useTranslation3();
248
- return useMemo(
254
+ const base = useMemo(
249
255
  () => [
250
256
  columnHelper.accessor("display_id", {
251
257
  header: () => /* @__PURE__ */ jsx3(TextHeader, { text: t("orders.fields.groupId") }),
@@ -340,6 +346,11 @@ var useColumns = () => {
340
346
  ],
341
347
  [t]
342
348
  );
349
+ const { columns: extended, filters } = useExtendableTable({
350
+ model: "order",
351
+ columns: base
352
+ });
353
+ return { columns: extended, filters };
343
354
  };
344
355
 
345
356
  // src/pages/orders/order-list/components/order-list-table/order-list-table.tsx
@@ -354,7 +365,7 @@ var OrderListTable = ({ children }) => {
354
365
  // src/pages/orders/order-list/order-list.tsx
355
366
  import { jsx as jsx5 } from "react/jsx-runtime";
356
367
  var Root = ({ children }) => {
357
- return /* @__PURE__ */ jsx5(SingleColumnPage, { hasOutlet: false, "data-testid": "orders-list-page", children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx5(OrderListTable, {}) });
368
+ return /* @__PURE__ */ jsx5(SingleColumnPage, { hasOutlet: false, "data-testid": "orders-list-page", children: /* @__PURE__ */ jsx5(WidgetZone, { id: "orders.list", children: Children3.count(children) > 0 ? children : /* @__PURE__ */ jsx5(OrderListTable, {}) }) });
358
369
  };
359
370
  var OrderListPage = Object.assign(Root, {
360
371
  Table: OrderListTable,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_dist
3
- } from "./chunk-DSTHXHJ5.js";
3
+ } from "./chunk-VYSB4CTB.js";
4
4
  import {
5
5
  __toESM
6
6
  } from "./chunk-NBMM2TZK.js";
@@ -13,10 +13,10 @@ import {
13
13
  } from "./chunk-U5MJIHLY.js";
14
14
  import {
15
15
  useProductTableColumns
16
- } from "./chunk-OYZIFLLC.js";
16
+ } from "./chunk-I5HY5Q3K.js";
17
17
  import {
18
18
  useProductTableFilters
19
- } from "./chunk-4346EIRG.js";
19
+ } from "./chunk-LGOPKYNG.js";
20
20
  import {
21
21
  useProductTableQuery
22
22
  } from "./chunk-H7NIKMPE.js";
@@ -705,6 +705,8 @@ var PriceListCreateForm = ({
705
705
  return /* @__PURE__ */ jsx4(
706
706
  TabbedForm,
707
707
  {
708
+ model: "price_list",
709
+ zone: "create",
708
710
  form,
709
711
  onSubmit: handleSubmit,
710
712
  isLoading: isPending,
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-VM56ZITS.js";
5
5
  import {
6
6
  useProductTableColumns
7
- } from "./chunk-OYZIFLLC.js";
7
+ } from "./chunk-I5HY5Q3K.js";
8
8
  import {
9
9
  useProductTableFilters
10
- } from "./chunk-4346EIRG.js";
10
+ } from "./chunk-LGOPKYNG.js";
11
11
  import {
12
12
  useProductTableQuery
13
13
  } from "./chunk-H7NIKMPE.js";
@@ -36,10 +36,12 @@ import {
36
36
  // src/pages/collections/collection-detail/collection-detail.tsx
37
37
  import { Children } from "react";
38
38
  import { useLoaderData, useParams } from "react-router-dom";
39
+ import { WidgetZone } from "@mercurjs/dashboard-shared";
39
40
 
40
41
  // src/pages/collections/collection-detail/components/collection-general-section/collection-general-section.tsx
41
42
  import { PencilSquare, Trash } from "@medusajs/icons";
42
43
  import { Container, Heading, Text, usePrompt } from "@medusajs/ui";
44
+ import { DisplayExtensionZone, DisplayField } from "@mercurjs/dashboard-shared";
43
45
  import { useTranslation } from "react-i18next";
44
46
  import { useNavigate } from "react-router-dom";
45
47
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -66,7 +68,7 @@ var CollectionGeneralSection = ({
66
68
  };
67
69
  return /* @__PURE__ */ jsxs(Container, { className: "divide-y p-0", children: [
68
70
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-6 py-4", children: [
69
- /* @__PURE__ */ jsx(Heading, { children: collection.title }),
71
+ /* @__PURE__ */ jsx(DisplayField, { model: "collection", zone: "general", id: "title", data: collection, children: /* @__PURE__ */ jsx(Heading, { children: collection.title }) }),
70
72
  /* @__PURE__ */ jsx(
71
73
  ActionMenu,
72
74
  {
@@ -95,19 +97,29 @@ var CollectionGeneralSection = ({
95
97
  }
96
98
  )
97
99
  ] }),
98
- /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4", children: [
100
+ /* @__PURE__ */ jsx(DisplayField, { model: "collection", zone: "general", id: "handle", data: collection, children: /* @__PURE__ */ jsxs("div", { className: "text-ui-fg-subtle grid grid-cols-2 items-center px-6 py-4", children: [
99
101
  /* @__PURE__ */ jsx(Text, { size: "small", leading: "compact", weight: "plus", children: t("fields.handle") }),
100
102
  /* @__PURE__ */ jsxs(Text, { size: "small", children: [
101
103
  "/",
102
104
  collection.handle
103
105
  ] })
104
- ] })
106
+ ] }) }),
107
+ /* @__PURE__ */ jsx(
108
+ DisplayExtensionZone,
109
+ {
110
+ model: "collection",
111
+ zone: "general",
112
+ data: collection,
113
+ builtInFieldIds: ["title", "handle"]
114
+ }
115
+ )
105
116
  ] });
106
117
  };
107
118
 
108
119
  // src/pages/collections/collection-detail/components/collection-icon-section/collection-icon-section.tsx
109
120
  import { PencilSquare as PencilSquare2 } from "@medusajs/icons";
110
121
  import { Container as Container2, Heading as Heading2, Text as Text2 } from "@medusajs/ui";
122
+ import { DisplayExtensionZone as DisplayExtensionZone2 } from "@mercurjs/dashboard-shared";
111
123
  import { useTranslation as useTranslation2 } from "react-i18next";
112
124
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
113
125
  var CollectionIconSection = ({
@@ -156,13 +168,14 @@ var CollectionIconSection = ({
156
168
  }
157
169
  ),
158
170
  /* @__PURE__ */ jsx2(Text2, { size: "small", className: "text-ui-fg-muted", children: t("collections.icon.empty.description") })
159
- ] }) })
171
+ ] }) }),
172
+ /* @__PURE__ */ jsx2(DisplayExtensionZone2, { model: "collection", zone: "icon", data: collection })
160
173
  ] });
161
174
  };
162
175
 
163
176
  // src/pages/collections/collection-detail/components/collection-media-section/collection-media-section.tsx
164
177
  import { PencilSquare as PencilSquare3, ThumbnailBadge } from "@medusajs/icons";
165
- import { ListBadge } from "@mercurjs/dashboard-shared";
178
+ import { DisplayExtensionZone as DisplayExtensionZone3, ListBadge } from "@mercurjs/dashboard-shared";
166
179
  import { Container as Container3, Heading as Heading3, Text as Text3, Tooltip } from "@medusajs/ui";
167
180
  import { useTranslation as useTranslation3 } from "react-i18next";
168
181
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
@@ -225,13 +238,15 @@ var CollectionMediaSection = ({
225
238
  }
226
239
  ),
227
240
  /* @__PURE__ */ jsx3(Text3, { size: "small", className: "text-ui-fg-muted", children: t("collections.media.empty.description") })
228
- ] }) })
241
+ ] }) }),
242
+ /* @__PURE__ */ jsx3(DisplayExtensionZone3, { model: "collection", zone: "media", data: collection })
229
243
  ] });
230
244
  };
231
245
 
232
246
  // src/pages/collections/collection-detail/components/collection-product-section/collection-product-section.tsx
233
247
  import { PencilSquare as PencilSquare4, Plus, Trash as Trash2 } from "@medusajs/icons";
234
248
  import { Checkbox, Container as Container4, Heading as Heading4, toast, usePrompt as usePrompt2 } from "@medusajs/ui";
249
+ import { DisplayExtensionZone as DisplayExtensionZone4 } from "@mercurjs/dashboard-shared";
235
250
  import { keepPreviousData } from "@tanstack/react-query";
236
251
  import { createColumnHelper } from "@tanstack/react-table";
237
252
  import { useMemo } from "react";
@@ -352,7 +367,8 @@ var CollectionProductSection = ({
352
367
  message: t("collections.products.list.noRecordsMessage")
353
368
  }
354
369
  }
355
- )
370
+ ),
371
+ /* @__PURE__ */ jsx4(DisplayExtensionZone4, { model: "collection", zone: "products", data: collection })
356
372
  ] });
357
373
  };
358
374
  var ProductActions = ({
@@ -480,12 +496,12 @@ var Root = ({ children }) => {
480
496
  if (isError) {
481
497
  throw error;
482
498
  }
483
- return Children.count(children) > 0 ? /* @__PURE__ */ jsx5(SingleColumnPage, { showJSON: true, showMetadata: true, data: collection, children }) : /* @__PURE__ */ jsxs5(SingleColumnPage, { showJSON: true, showMetadata: true, data: collection, children: [
499
+ return Children.count(children) > 0 ? /* @__PURE__ */ jsx5(SingleColumnPage, { showJSON: true, showMetadata: true, data: collection, children }) : /* @__PURE__ */ jsx5(SingleColumnPage, { showJSON: true, showMetadata: true, data: collection, children: /* @__PURE__ */ jsxs5(WidgetZone, { id: "collections.detail.main", data: collection, children: [
484
500
  /* @__PURE__ */ jsx5(CollectionGeneralSection, { collection }),
485
501
  /* @__PURE__ */ jsx5(CollectionMediaSection, { collection }),
486
502
  /* @__PURE__ */ jsx5(CollectionIconSection, { collection }),
487
503
  /* @__PURE__ */ jsx5(CollectionProductSection, { collection })
488
- ] });
504
+ ] }) });
489
505
  };
490
506
  var CollectionDetailPage = Object.assign(Root, {
491
507
  GeneralSection: CollectionGeneralSection,