@wtree/payload-ecommerce-coupon 3.77.6 → 3.77.7

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/README.md CHANGED
@@ -206,6 +206,123 @@ import { useCouponCode, validateCouponCode, usePartnerStats } from '@wtree/paylo
206
206
  - `validateCouponCode({ code, cartValue?, cartID?, customerEmail? })`
207
207
  - `usePartnerStats()`
208
208
 
209
+ ### PartnerDashboard UI component
210
+
211
+ The package also exports ready-to-use partner dashboard UI components:
212
+
213
+ ```ts
214
+ import {
215
+ PartnerDashboard,
216
+ EarningsSummary,
217
+ ReferralPerformance,
218
+ RecentReferrals,
219
+ ReferralCodes,
220
+ ProgramOverview,
221
+ CommissionBreakdown,
222
+ } from '@wtree/payload-ecommerce-coupon'
223
+ import '@wtree/payload-ecommerce-coupon/dist/styles.css'
224
+ ```
225
+
226
+ > The dashboard components are client-side React components. Use them in your frontend app (for example, a Next.js client component).
227
+
228
+ #### Quick usage
229
+
230
+ ```tsx
231
+ 'use client'
232
+
233
+ import { PartnerDashboard } from '@wtree/payload-ecommerce-coupon'
234
+ import '@wtree/payload-ecommerce-coupon/dist/styles.css'
235
+
236
+ export default function PartnerPage() {
237
+ return <PartnerDashboard apiEndpoint="/api/referrals/partner-stats" />
238
+ }
239
+ ```
240
+
241
+ #### PartnerDashboard props
242
+
243
+ ```ts
244
+ type PartnerDashboardProps = {
245
+ showEarningsSummary?: boolean
246
+ showReferralPerformance?: boolean
247
+ showRecentReferrals?: boolean
248
+ showReferralCodes?: boolean
249
+ showProgramOverview?: boolean
250
+ showCommissionBreakdown?: boolean
251
+ apiEndpoint?: string
252
+ }
253
+ ```
254
+
255
+ Example with custom widget visibility:
256
+
257
+ ```tsx
258
+ <PartnerDashboard
259
+ apiEndpoint="/api/referrals/partner-stats"
260
+ showEarningsSummary
261
+ showReferralPerformance
262
+ showRecentReferrals={false}
263
+ showReferralCodes
264
+ showProgramOverview
265
+ showCommissionBreakdown
266
+ />
267
+ ```
268
+
269
+ #### Theming and style-guide compatibility
270
+
271
+ The `PartnerDashboard` styles are tokenized with CSS variables so your app can keep its own design system and branding.
272
+
273
+ By default, dashboard typography inherits from the host app (`font-family: inherit`) and colors use overridable tokens.
274
+
275
+ Basic override example:
276
+
277
+ ```css
278
+ .partner-dashboard {
279
+ --pd-color-text: var(--app-text-color);
280
+ --pd-color-text-muted: var(--app-text-muted);
281
+ --pd-color-surface: var(--app-surface);
282
+ --pd-color-surface-muted: var(--app-surface-muted);
283
+ --pd-color-border: var(--app-border);
284
+ --pd-color-primary: var(--app-primary);
285
+ --pd-color-primary-strong: var(--app-primary-strong);
286
+ --pd-color-success: var(--app-success);
287
+ --pd-color-warning: var(--app-warning);
288
+ --pd-color-danger: var(--app-danger);
289
+ }
290
+ ```
291
+
292
+ You can also set global aliases once:
293
+
294
+ ```css
295
+ :root {
296
+ --color-text: #111827;
297
+ --color-text-muted: #6b7280;
298
+ --color-surface: #ffffff;
299
+ --color-surface-muted: #f9fafb;
300
+ --color-border: #e5e7eb;
301
+ --color-primary: #2563eb;
302
+ --color-primary-strong: #1d4ed8;
303
+ --color-primary-soft: #dbeafe;
304
+ --color-success: #059669;
305
+ --color-warning: #d97706;
306
+ --color-danger: #dc2626;
307
+ }
308
+ ```
309
+
310
+ Common dashboard tokens you may override:
311
+
312
+ - Layout/spacing: `--pd-space-*`, `--pd-grid-min-column`, `--pd-referrals-status-col-width`
313
+ - Typography: `--pd-font-family`, `--pd-font-size-*`, `--pd-font-weight-*`
314
+ - Surfaces/borders: `--pd-color-bg`, `--pd-color-surface`, `--pd-color-surface-muted`, `--pd-color-border`
315
+ - Semantic colors: `--pd-color-primary`, `--pd-color-success`, `--pd-color-warning`, `--pd-color-danger`
316
+ - Widget accents:
317
+ - `--pd-color-earnings-total-*`
318
+ - `--pd-color-earnings-pending-*`
319
+ - `--pd-color-earnings-paid-*`
320
+ - `--pd-color-status-pending-*`
321
+ - `--pd-color-status-paid-*`
322
+ - `--pd-color-status-cancelled-*`
323
+
324
+ This keeps plugin UI behavior consistent while respecting your product’s style guide.
325
+
209
326
  ---
210
327
 
211
328
  ## Configuration overview
@@ -361,6 +478,13 @@ Main exports include:
361
478
  - `useCouponCode`
362
479
  - `validateCouponCode`
363
480
  - `usePartnerStats`
481
+ - `PartnerDashboard`
482
+ - `EarningsSummary`
483
+ - `ReferralPerformance`
484
+ - `RecentReferrals`
485
+ - `ReferralCodes`
486
+ - `ProgramOverview`
487
+ - `CommissionBreakdown`
364
488
  - `getCartTotalWithDiscounts`
365
489
  - `recordCouponUsageForOrder`
366
490
  - full TypeScript types for plugin options/policies/integration
@@ -3,5 +3,7 @@ export { EarningsSummary } from '../components/PartnerDashboard/EarningsSummary'
3
3
  export { RecentReferrals } from '../components/PartnerDashboard/RecentReferrals';
4
4
  export { ReferralCodes } from '../components/PartnerDashboard/ReferralCodes';
5
5
  export { ReferralPerformance } from '../components/PartnerDashboard/ReferralPerformance';
6
+ export { ProgramOverview } from '../components/PartnerDashboard/ProgramOverview';
7
+ export { CommissionBreakdown } from '../components/PartnerDashboard/CommissionBreakdown';
6
8
  export { useCouponCode, usePartnerStats, validateCouponCode } from './hooks';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAA;AACxF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { PartnerStats } from '../../types';
3
+ export type CommissionBreakdownProps = {
4
+ stats: PartnerStats;
5
+ currency: string;
6
+ };
7
+ export declare const CommissionBreakdown: React.FC<CommissionBreakdownProps>;
8
+ export default CommissionBreakdown;
9
+ //# sourceMappingURL=CommissionBreakdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommissionBreakdown.d.ts","sourceRoot":"","sources":["../../../src/components/PartnerDashboard/CommissionBreakdown.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAeD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA0FlE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import type { PartnerDashboardData } from '../../types';
3
+ export type ProgramOverviewProps = {
4
+ program: PartnerDashboardData['program'];
5
+ };
6
+ export declare const ProgramOverview: React.FC<ProgramOverviewProps>;
7
+ export default ProgramOverview;
8
+ //# sourceMappingURL=ProgramOverview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgramOverview.d.ts","sourceRoot":"","sources":["../../../src/components/PartnerDashboard/ProgramOverview.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmC1D,CAAA;AAED,eAAe,eAAe,CAAA"}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
- import './styles.css';
3
2
  export type PartnerDashboardProps = {
4
3
  showEarningsSummary?: boolean;
5
4
  showReferralPerformance?: boolean;
6
5
  showRecentReferrals?: boolean;
7
6
  showReferralCodes?: boolean;
7
+ showProgramOverview?: boolean;
8
+ showCommissionBreakdown?: boolean;
8
9
  apiEndpoint?: string;
9
10
  };
10
11
  export declare const PartnerDashboard: React.FC<PartnerDashboardProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PartnerDashboard/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AASlD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,qBAAqB,GAAG;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAqH5D,CAAA;AAED,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PartnerDashboard/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAWlD,MAAM,MAAM,qBAAqB,GAAG;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA2H5D,CAAA;AAED,eAAe,gBAAgB,CAAA"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,13 @@ import { createReferralCodesCollection } from './collections/createReferralCodes
3
3
  import { createReferralProgramsCollection } from './collections/createReferralProgramsCollection';
4
4
  import { payloadEcommerceCouponPlugin } from './plugin';
5
5
  export { useCouponCode, usePartnerStats, validateCouponCode } from './client/hooks';
6
+ export { PartnerDashboard } from './components/PartnerDashboard';
7
+ export { EarningsSummary } from './components/PartnerDashboard/EarningsSummary';
8
+ export { RecentReferrals } from './components/PartnerDashboard/RecentReferrals';
9
+ export { ReferralCodes } from './components/PartnerDashboard/ReferralCodes';
10
+ export { ReferralPerformance } from './components/PartnerDashboard/ReferralPerformance';
11
+ export { ProgramOverview } from './components/PartnerDashboard/ProgramOverview';
12
+ export { CommissionBreakdown } from './components/PartnerDashboard/CommissionBreakdown';
6
13
  export { calculateCommissionAndDiscount, getProgramMinimumOrderAmount, } from './utilities/calculateValues';
7
14
  export { getCartTotalWithDiscounts } from './utilities/getCartTotalWithDiscounts';
8
15
  export { recordCouponUsageForOrder } from './utilities/recordCouponUsageForOrder';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAA;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAA;AACjG,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,gCAAgC,EAChC,4BAA4B,IAAI,sBAAsB,GACvD,CAAA;AAED,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,aAAa,EACb,6BAA6B,EAC7B,qBAAqB,EACrB,UAAU,GACX,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAA;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAA;AAC3F,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAA;AACjG,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AAEvF,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,gCAAgC,EAChC,4BAA4B,IAAI,sBAAsB,GACvD,CAAA;AAED,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,aAAa,EACb,6BAA6B,EAC7B,qBAAqB,EACrB,UAAU,GACX,MAAM,SAAS,CAAA;AAChB,YAAY,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAA"}