@mercurjs/admin 2.3.2-canary.1 → 2.3.2-canary.3

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 (66) hide show
  1. package/dist/{add-campaign-promotions-NZ62V2LH.js → add-campaign-promotions-DAJLAYTG.js} +3 -3
  2. package/dist/{api-key-management-list-AHXOCLBO.js → api-key-management-list-P4FQQKIV.js} +1 -1
  3. package/dist/{attribute-list-6ELFWDHO.js → attribute-list-PVC4KUYQ.js} +1 -1
  4. package/dist/{campaign-detail-KZWQLIS5.js → campaign-detail-V6RISO2Y.js} +4 -4
  5. package/dist/{campaign-list-7L2DGBHW.js → campaign-list-WFFH3VPJ.js} +1 -1
  6. package/dist/{category-list-3IL2MERS.js → category-list-RBFOTJFJ.js} +1 -1
  7. package/dist/{chunk-CR7TRBEB.js → chunk-2YEBREEY.js} +2 -1
  8. package/dist/chunk-4F6SHS7A.js +83 -0
  9. package/dist/{chunk-EAZ6YM6D.js → chunk-5SDHNLEC.js} +2 -1
  10. package/dist/{chunk-ADI5XIXM.js → chunk-6DBL7KIL.js} +1 -1
  11. package/dist/{chunk-ZBRRK3Y6.js → chunk-AB34V74P.js} +3 -2
  12. package/dist/{chunk-AV6HBMRX.js → chunk-AMKTWSOZ.js} +1 -1
  13. package/dist/{chunk-3W4T2KGY.js → chunk-BNYVXSFC.js} +1 -1
  14. package/dist/{chunk-MIVPIACG.js → chunk-CGT2IRFI.js} +1 -1
  15. package/dist/{chunk-N3ZYLAGA.js → chunk-GQ45JPQR.js} +3 -2
  16. package/dist/{chunk-4KULFU3V.js → chunk-GVKW5SUK.js} +3 -2
  17. package/dist/{chunk-UGDC6FPU.js → chunk-JIVTFB67.js} +2 -1
  18. package/dist/{chunk-23KZGNNG.js → chunk-KHMHTJZG.js} +2 -1
  19. package/dist/{chunk-OQLWF43Y.js → chunk-MUSHUJHY.js} +51 -0
  20. package/dist/{chunk-LAIT7Y53.js → chunk-NO64DRH4.js} +25 -7
  21. package/dist/{chunk-AJNXQUOR.js → chunk-O56RWFFI.js} +3 -2
  22. package/dist/{chunk-OJQSOFYG.js → chunk-PC5GU4HP.js} +2 -1
  23. package/dist/{chunk-PNLDVYCP.js → chunk-R3E7BMQB.js} +1 -1
  24. package/dist/{chunk-IP5YNQ5R.js → chunk-RQCYGC2H.js} +3 -2
  25. package/dist/{chunk-EF23N7II.js → chunk-S4W3RVQV.js} +3 -2
  26. package/dist/{chunk-HBNQ3R3P.js → chunk-T36KFL5R.js} +2 -1
  27. package/dist/{chunk-CMBHUF6P.js → chunk-T3KB4DCM.js} +4 -1
  28. package/dist/{chunk-LIMG2EY2.js → chunk-VB4A2G7A.js} +3 -2
  29. package/dist/{chunk-PB24YMA4.js → chunk-VYD6M7TF.js} +2 -1
  30. package/dist/{chunk-73N66XQD.js → chunk-WCA5Z4MT.js} +2 -1
  31. package/dist/{chunk-43SWJ765.js → chunk-XBEI6JKV.js} +2 -1
  32. package/dist/{chunk-GYHF5XBU.js → chunk-XVBLVV7Y.js} +1 -1
  33. package/dist/{chunk-HFMAEJN2.js → chunk-Y5T5NATQ.js} +2 -1
  34. package/dist/{chunk-WYRUCSGW.js → chunk-YS6DRI7V.js} +2 -1
  35. package/dist/{collection-list-GMAYML6Z.js → collection-list-C2EQXJTN.js} +1 -1
  36. package/dist/{commissions-list-X54FEOEZ.js → commissions-list-VBQOQF2D.js} +1 -1
  37. package/dist/{customer-group-list-KBZBSGTQ.js → customer-group-list-NZ3D2ZAR.js} +1 -1
  38. package/dist/{customer-list-IJJEZDOZ.js → customer-list-DFONJE23.js} +1 -1
  39. package/dist/index.css +3 -0
  40. package/dist/index.d.ts +2 -0
  41. package/dist/index.js +1501 -1296
  42. package/dist/{order-edit-billing-address-QCVPGEL6.js → order-edit-billing-address-ZT7HAEXB.js} +1 -1
  43. package/dist/pages/index.d.ts +22 -22
  44. package/dist/pages/index.js +27 -27
  45. package/dist/{price-list-list-JC5EDBH6.js → price-list-list-UEEYIP5R.js} +1 -1
  46. package/dist/{product-create-QS5KIHET.js → product-create-LBKJTFOY.js} +3 -3
  47. package/dist/{product-list-2FOZLWYH.js → product-list-YHJ7DW6D.js} +1 -1
  48. package/dist/{product-media-UHDJ6RSG.js → product-media-NEAAG6IC.js} +2 -2
  49. package/dist/{product-organization-IX5XCZW4.js → product-organization-SVOLE5TG.js} +1 -1
  50. package/dist/{product-tag-list-3HOXFHMN.js → product-tag-list-GDIVZYEB.js} +1 -1
  51. package/dist/{product-type-list-NNNFCCWS.js → product-type-list-VSCQHI3D.js} +1 -1
  52. package/dist/{promotion-detail-ADTUSGD4.js → promotion-detail-HVQKXMJL.js} +3 -3
  53. package/dist/{promotion-list-MRNS47TP.js → promotion-list-KB2E4AEZ.js} +4 -4
  54. package/dist/{reservation-list-CRPRHIMT.js → reservation-list-APKRLKOF.js} +1 -1
  55. package/dist/{reset-password-N4LXTU3G.js → reset-password-BIAORJOF.js} +1 -1
  56. package/dist/{return-reason-list-AVCC44CH.js → return-reason-list-IQ2JGNEN.js} +1 -1
  57. package/dist/{shipping-option-type-list-R4JPQOAA.js → shipping-option-type-list-VQ5UVOUU.js} +1 -1
  58. package/dist/{shipping-profiles-list-UKD47NUF.js → shipping-profiles-list-AK6KXUGF.js} +1 -1
  59. package/dist/{store-edit-B54LFFLE.js → store-edit-LXGZTR3G.js} +2 -2
  60. package/dist/{store-list-3KZCD7UB.js → store-list-XXRF6JAZ.js} +1 -1
  61. package/dist/{tax-region-create-DVBIX7IX.js → tax-region-create-SFRD4AJB.js} +1 -1
  62. package/dist/{tax-region-list-JC4QYF5B.js → tax-region-list-TM23Q4HH.js} +1 -1
  63. package/dist/{user-invite-WHBNPT4I.js → user-invite-A7TBRKWI.js} +2 -2
  64. package/dist/{user-list-P7JCBIOR.js → user-list-ECF647TZ.js} +1 -1
  65. package/package.json +9 -8
  66. package/dist/chunk-PVEB24HU.js +0 -208
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mercurjs/admin",
3
- "version": "2.3.2-canary.1",
3
+ "version": "2.3.2-canary.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/mercurjs/mercur",
@@ -34,8 +34,8 @@
34
34
  "lint": "oxlint --max-warnings 0"
35
35
  },
36
36
  "dependencies": {
37
- "@mercurjs/dashboard-shared": "2.3.2-canary.1",
38
- "@mercurjs/client": "2.3.2-canary.1",
37
+ "@mercurjs/dashboard-shared": "2.3.2-canary.3",
38
+ "@mercurjs/client": "2.3.2-canary.3",
39
39
  "@ariakit/react": "^0.4.15",
40
40
  "@babel/runtime": "^8.0.0",
41
41
  "@dnd-kit/core": "^6.1.0",
@@ -71,12 +71,12 @@
71
71
  "react-hook-form": "7.49.1",
72
72
  "react-i18next": "17.0.8",
73
73
  "react-jwt": "^2.1.1",
74
- "react-router-dom": "7.18.1",
75
74
  "zod": "4.4.3"
76
75
  },
77
76
  "peerDependencies": {
78
77
  "react": "^18.0.0",
79
- "react-dom": "^18.0.0"
78
+ "react-dom": "^18.0.0",
79
+ "react-router-dom": "^7.18.1"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@medusajs/ui-preset": "2.18.0",
@@ -88,8 +88,9 @@
88
88
  "tsup": "^8.0.2",
89
89
  "typescript": "5.9.3",
90
90
  "@medusajs/types": "2.18.0",
91
- "@mercurjs/core": "2.3.2-canary.1",
92
- "@mercurjs/dashboard-sdk": "2.3.2-canary.1",
93
- "@mercurjs/types": "2.3.2-canary.1"
91
+ "@mercurjs/core": "2.3.2-canary.3",
92
+ "@mercurjs/dashboard-sdk": "2.3.2-canary.3",
93
+ "@mercurjs/types": "2.3.2-canary.3",
94
+ "react-router-dom": "7.18.1"
94
95
  }
95
96
  }
@@ -1,208 +0,0 @@
1
- import {
2
- fetchQuery,
3
- sdk
4
- } from "./chunk-DTGEFKK4.js";
5
-
6
- // src/providers/feature-flag-provider/index.tsx
7
- import { createContext, useCallback, useContext, useMemo } from "react";
8
-
9
- // src/hooks/api/feature-flags.tsx
10
- import { useQuery } from "@tanstack/react-query";
11
- var useFeatureFlags = () => {
12
- return useQuery({
13
- queryKey: ["admin", "feature-flags"],
14
- queryFn: async () => {
15
- const response = await fetchQuery("/admin/feature-flags", {
16
- method: "GET"
17
- });
18
- return response.feature_flags;
19
- },
20
- staleTime: 5 * 60 * 1e3,
21
- gcTime: 10 * 60 * 1e3
22
- });
23
- };
24
-
25
- // src/providers/feature-flag-provider/index.tsx
26
- import { jsx } from "react/jsx-runtime";
27
- var FeatureFlagContext = createContext(null);
28
- var useFeatureFlag = (flag) => {
29
- const context = useContext(FeatureFlagContext);
30
- if (!context) {
31
- return false;
32
- }
33
- return context.isFeatureEnabled(flag);
34
- };
35
- var FeatureFlagProvider = ({
36
- children
37
- }) => {
38
- const { data: flags = {}, isLoading } = useFeatureFlags();
39
- const isFeatureEnabled = useCallback(
40
- (flag) => {
41
- return flags[flag] === true;
42
- },
43
- [flags]
44
- );
45
- const value = useMemo(
46
- () => ({ flags, isLoading, isFeatureEnabled }),
47
- [flags, isLoading, isFeatureEnabled]
48
- );
49
- return /* @__PURE__ */ jsx(FeatureFlagContext.Provider, { value, children });
50
- };
51
-
52
- // src/providers/permissions-provider/permissions-context.tsx
53
- import { createContext as createContext2 } from "react";
54
- var PermissionsContext = createContext2(null);
55
-
56
- // src/providers/permissions-provider/permissions-provider.tsx
57
- import { useCallback as useCallback2, useMemo as useMemo2 } from "react";
58
-
59
- // src/lib/permissions/constants.ts
60
- var OPERATION_IMPLICATIONS = {
61
- read: ["read"],
62
- create: ["create"],
63
- update: ["update"],
64
- delete: ["delete"],
65
- "*": ["read", "create", "update", "delete", "*"]
66
- };
67
-
68
- // src/lib/permissions/utils.ts
69
- function parsePermission(permission) {
70
- const parts = permission.split(":");
71
- if (parts.length !== 2) {
72
- return null;
73
- }
74
- const [resource, operation] = parts;
75
- return {
76
- resource,
77
- operation
78
- };
79
- }
80
- function buildPermission(resource, operation) {
81
- return `${resource}:${operation}`;
82
- }
83
-
84
- // src/providers/permissions-provider/permissions-provider.tsx
85
- import { jsx as jsx2 } from "react/jsx-runtime";
86
- var PermissionsProvider = ({
87
- policy,
88
- isLoading = false,
89
- isRbacEnabled = true,
90
- children
91
- }) => {
92
- const permissionsMap = useMemo2(() => {
93
- const index = /* @__PURE__ */ Object.create(null);
94
- for (const granted of policy?.permissions ?? []) {
95
- const parsed = parsePermission(granted);
96
- if (!parsed) {
97
- continue;
98
- }
99
- const { resource, operation } = parsed;
100
- const impliedOperations = OPERATION_IMPLICATIONS[operation] || [operation];
101
- for (const impliedOperation of impliedOperations) {
102
- index[buildPermission(resource, impliedOperation)] = true;
103
- }
104
- }
105
- return index;
106
- }, [policy]);
107
- const hasPermission = useCallback2(
108
- (permission) => {
109
- if (!isRbacEnabled) {
110
- return true;
111
- }
112
- return !!permissionsMap[permission];
113
- },
114
- [isRbacEnabled, permissionsMap]
115
- );
116
- const hasAnyPermission = useCallback2(
117
- (permissions) => {
118
- if (!isRbacEnabled) {
119
- return true;
120
- }
121
- if (!permissions?.length) {
122
- return false;
123
- }
124
- return permissions.some(hasPermission);
125
- },
126
- [isRbacEnabled, hasPermission]
127
- );
128
- const hasAllPermissions = useCallback2(
129
- (permissions) => {
130
- if (!isRbacEnabled) {
131
- return true;
132
- }
133
- if (!permissions?.length) {
134
- return false;
135
- }
136
- return permissions.every(hasPermission);
137
- },
138
- [isRbacEnabled, hasPermission]
139
- );
140
- const can = useCallback2(
141
- (resource, operation) => {
142
- if (!isRbacEnabled) {
143
- return true;
144
- }
145
- return !!permissionsMap[buildPermission(resource, operation)];
146
- },
147
- [isRbacEnabled, permissionsMap]
148
- );
149
- const value = useMemo2(
150
- () => ({
151
- policy,
152
- isLoading,
153
- hasPermission,
154
- hasAnyPermission,
155
- hasAllPermissions,
156
- can
157
- }),
158
- [policy, isLoading, hasPermission, hasAnyPermission, hasAllPermissions, can]
159
- );
160
- return /* @__PURE__ */ jsx2(PermissionsContext.Provider, { value, children });
161
- };
162
-
163
- // src/providers/permissions-provider/use-permissions.tsx
164
- import { useContext as useContext2 } from "react";
165
- var usePermissions = () => {
166
- const context = useContext2(PermissionsContext);
167
- if (!context) {
168
- throw new Error(
169
- "usePermissions must be used within a PermissionsProvider"
170
- );
171
- }
172
- return context;
173
- };
174
-
175
- // src/hooks/api/rbac-roles.tsx
176
- import { useQuery as useQuery2 } from "@tanstack/react-query";
177
- var ME_PERMISSIONS_QUERY_KEY = ["rbac_me_permissions"];
178
- var mePermissionsQueryKey = ME_PERMISSIONS_QUERY_KEY;
179
- var useMePermissions = (options) => {
180
- return useQuery2({
181
- queryFn: () => sdk.admin.rbac.me.permissions.query(
182
- {}
183
- ),
184
- queryKey: mePermissionsQueryKey,
185
- staleTime: 5 * 60 * 1e3,
186
- ...options
187
- });
188
- };
189
- var ASSIGNABLE_ROLES_QUERY_KEY = ["rbac_assignable_roles"];
190
- var useRbacAssignableRoles = (query, options) => {
191
- return useQuery2({
192
- queryFn: () => sdk.admin.rbac.roles.assignable.query({
193
- ...query
194
- }),
195
- queryKey: [...ASSIGNABLE_ROLES_QUERY_KEY, query],
196
- staleTime: 5 * 60 * 1e3,
197
- ...options
198
- });
199
- };
200
-
201
- export {
202
- useFeatureFlag,
203
- FeatureFlagProvider,
204
- PermissionsProvider,
205
- usePermissions,
206
- useMePermissions,
207
- useRbacAssignableRoles
208
- };