@wtree/payload-ecommerce-coupon 3.78.4 → 3.78.5

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.mjs","names":["formatCurrency","formatCurrency","formatCurrency"],"sources":["../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/jsx-runtime.js","../src/components/PartnerDashboard/EarningsSummary.tsx","../src/components/PartnerDashboard/ReferralPerformance.tsx","../src/components/PartnerDashboard/RecentReferrals.tsx","../src/components/PartnerDashboard/ReferralCodes.tsx","../src/components/PartnerDashboard/ProgramOverview.tsx","../src/components/PartnerDashboard/CommissionBreakdown.tsx","../src/components/PartnerDashboard/index.tsx","../src/client/hooks.ts"],"sourcesContent":["/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function () {},\n enqueueReplaceState: function () {},\n enqueueSetState: function () {}\n },\n assign = Object.assign,\n emptyObject = {};\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray;\nfunction noop() {}\nvar ReactSharedInternals = { H: null, A: null, T: null, S: null },\n hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, props) {\n var refProp = props.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== refProp ? refProp : null,\n props: props\n };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n return ReactElement(oldElement.type, newKey, oldElement.props);\n}\nfunction isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n}\nfunction escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n return \"object\" === typeof element && null !== element && null != element.key\n ? escape(\"\" + element.key)\n : index.toString(36);\n}\nfunction resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback)\n return (\n (callback = callback(children)),\n (invokeCallback =\n \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != invokeCallback &&\n (escapedPrefix =\n invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (callback = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (children && children.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n invokeCallback\n )),\n array.push(callback)),\n 1\n );\n invokeCallback = 0;\n var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n children = i.call(children), i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\nfunction lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ctor = payload._result;\n ctor = ctor();\n ctor.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 1), (payload._result = moduleObject);\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status)\n (payload._status = 2), (payload._result = error);\n }\n );\n -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n }\n if (1 === payload._status) return payload._result.default;\n throw payload._result;\n}\nvar reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n Children = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\nexports.Activity = REACT_ACTIVITY_TYPE;\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\nexports.__COMPILER_RUNTIME = {\n __proto__: null,\n c: function (size) {\n return ReactSharedInternals.H.useMemoCache(size);\n }\n};\nexports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n};\nexports.cacheSignal = function () {\n return null;\n};\nexports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" + element + \".\"\n );\n var props = assign({}, element.props),\n key = element.key;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n for (var childArray = Array(propName), i = 0; i < propName; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n return ReactElement(element.type, key, props);\n};\nexports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n var propName,\n props = {},\n key = null;\n if (null != config)\n for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (props[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) props.children = children;\n else if (1 < childrenLength) {\n for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n childArray[i] = arguments[i + 2];\n props.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === props[propName] &&\n (props[propName] = childrenLength[propName]);\n return ReactElement(type, key, props);\n};\nexports.createRef = function () {\n return { current: null };\n};\nexports.forwardRef = function (render) {\n return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n return {\n $$typeof: REACT_LAZY_TYPE,\n _payload: { _status: -1, _result: ctor },\n _init: lazyInitializer\n };\n};\nexports.memo = function (type, compare) {\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n};\nexports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n returnValue.then(noop, reportGlobalError);\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (prevTransition.types = currentTransition.types),\n (ReactSharedInternals.T = prevTransition);\n }\n};\nexports.unstable_useCacheRefresh = function () {\n return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useEffectEvent = function (callback) {\n return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.useId = function () {\n return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n) {\n return ReactSharedInternals.H.useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n};\nexports.useTransition = function () {\n return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.2.4\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use client'\n\nimport React from 'react'\n\nimport type { PartnerStats } from '../../types'\n\nexport type EarningsSummaryProps = {\n stats: PartnerStats\n currency: string\n}\n\nconst formatCurrency = (amount: number, currency: string): string => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n minimumFractionDigits: 2,\n }).format(amount)\n}\n\nexport const EarningsSummary: React.FC<EarningsSummaryProps> = ({ stats, currency }) => {\n return (\n <div className=\"partner-widget partner-widget--earnings\">\n <h3 className=\"partner-widget__title\">Earnings Summary</h3>\n <div className=\"partner-widget__content\">\n <div className=\"earnings-grid\">\n <div className=\"earnings-card earnings-card--total\">\n <span className=\"earnings-card__label\">Total Earnings</span>\n <span className=\"earnings-card__value\">\n {formatCurrency(stats.totalEarnings, currency)}\n </span>\n </div>\n <div className=\"earnings-card earnings-card--pending\">\n <span className=\"earnings-card__label\">Pending</span>\n <span className=\"earnings-card__value\">\n {formatCurrency(stats.pendingEarnings, currency)}\n </span>\n </div>\n <div className=\"earnings-card earnings-card--paid\">\n <span className=\"earnings-card__label\">Paid Out</span>\n <span className=\"earnings-card__value\">\n {formatCurrency(stats.paidEarnings, currency)}\n </span>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default EarningsSummary\n","'use client'\n\nimport React from 'react'\n\nimport type { PartnerStats } from '../../types'\n\nexport type ReferralPerformanceProps = {\n stats: PartnerStats\n}\n\nexport const ReferralPerformance: React.FC<ReferralPerformanceProps> = ({ stats }) => {\n return (\n <div className=\"partner-widget partner-widget--performance\">\n <h3 className=\"partner-widget__title\">Referral Performance</h3>\n <div className=\"partner-widget__content\">\n <div className=\"performance-grid\">\n <div className=\"performance-stat\">\n <span className=\"performance-stat__value\">{stats.totalReferrals}</span>\n <span className=\"performance-stat__label\">Total Referrals</span>\n </div>\n <div className=\"performance-stat\">\n <span className=\"performance-stat__value\">{stats.successfulReferrals}</span>\n <span className=\"performance-stat__label\">Successful</span>\n </div>\n <div className=\"performance-stat\">\n <span className=\"performance-stat__value\">{stats.conversionRate.toFixed(1)}%</span>\n <span className=\"performance-stat__label\">Conversion Rate</span>\n </div>\n </div>\n\n {stats.monthlyEarnings.length > 0 && (\n <div className=\"performance-chart\">\n <h4 className=\"performance-chart__title\">Monthly Trend</h4>\n <div className=\"performance-chart__bars\">\n {stats.monthlyEarnings.map((month, index) => {\n const maxEarnings = Math.max(...stats.monthlyEarnings.map((m) => m.earnings), 1)\n const heightPercent = (month.earnings / maxEarnings) * 100\n\n return (\n <div key={index} className=\"performance-chart__bar-container\">\n <div\n className=\"performance-chart__bar\"\n style={{ height: `${Math.max(heightPercent, 5)}%` }}\n title={`${month.month}: ${month.referrals} referrals`}\n />\n <span className=\"performance-chart__label\">{month.month.split(' ')[0]}</span>\n </div>\n )\n })}\n </div>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport default ReferralPerformance\n","'use client'\n\nimport React from 'react'\n\nimport type { PartnerStats } from '../../types'\n\nexport type RecentReferralsProps = {\n referrals: PartnerStats['recentReferrals']\n currency: string\n}\n\nconst formatCurrency = (amount: number, currency: string): string => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n minimumFractionDigits: 2,\n }).format(amount)\n}\n\nconst formatDate = (dateString: string): string => {\n return new Date(dateString).toLocaleDateString('en-US', {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n })\n}\n\nexport const RecentReferrals: React.FC<RecentReferralsProps> = ({ referrals, currency }) => {\n return (\n <div className=\"partner-widget partner-widget--recent\">\n <h3 className=\"partner-widget__title\">Recent Referrals</h3>\n <div className=\"partner-widget__content\">\n <div className=\"referrals-table\">\n <div className=\"referrals-table__header\">\n <span>Code</span>\n <span>Order Value</span>\n <span>Commission</span>\n <span>Date</span>\n <span>Status</span>\n </div>\n <div className=\"referrals-table__body\">\n {referrals.map((referral) => (\n <div key={referral.id} className=\"referrals-table__row\">\n <span className=\"referrals-table__code\">{referral.code}</span>\n <span className=\"referrals-table__value\">\n {formatCurrency(referral.orderValue, currency)}\n </span>\n <span className=\"referrals-table__commission\">\n {formatCurrency(referral.commission, currency)}\n </span>\n <span className=\"referrals-table__date\">{formatDate(referral.date)}</span>\n <span\n className={`referrals-table__status referrals-table__status--${referral.status}`}\n >\n {referral.status}\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default RecentReferrals\n","'use client'\n\nimport React, { useState } from 'react'\n\nimport type { PartnerDashboardData } from '../../types'\n\nexport type ReferralCodesProps = {\n codes: PartnerDashboardData['referralCodes']\n currency: string\n}\n\nconst formatCurrency = (amount: number, currency: string): string => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n minimumFractionDigits: 2,\n }).format(amount)\n}\n\nexport const ReferralCodes: React.FC<ReferralCodesProps> = ({ codes, currency }) => {\n const [copiedCode, setCopiedCode] = useState<string | null>(null)\n\n const copyToClipboard = async (code: string) => {\n try {\n await navigator.clipboard.writeText(code)\n setCopiedCode(code)\n setTimeout(() => setCopiedCode(null), 2000)\n } catch {\n // Fallback for older browsers\n const textArea = document.createElement('textarea')\n textArea.value = code\n document.body.appendChild(textArea)\n textArea.select()\n document.execCommand('copy')\n document.body.removeChild(textArea)\n setCopiedCode(code)\n setTimeout(() => setCopiedCode(null), 2000)\n }\n }\n\n return (\n <div className=\"partner-widget partner-widget--codes\">\n <h3 className=\"partner-widget__title\">Your Referral Codes</h3>\n <div className=\"partner-widget__content\">\n <div className=\"codes-list\">\n {codes.map((codeData) => (\n <div\n key={codeData.id}\n className={`code-card ${!codeData.isActive ? 'code-card--inactive' : ''}`}\n >\n <div className=\"code-card__header\">\n <span className=\"code-card__code\">{codeData.code}</span>\n <button\n type=\"button\"\n className=\"code-card__copy\"\n onClick={() => copyToClipboard(codeData.code)}\n title=\"Copy code\"\n >\n {copiedCode === codeData.code ? '✓ Copied' : 'Copy'}\n </button>\n </div>\n <div className=\"code-card__stats\">\n <div className=\"code-card__stat\">\n <span className=\"code-card__stat-value\">{codeData.usageCount}</span>\n <span className=\"code-card__stat-label\">Uses</span>\n </div>\n <div className=\"code-card__stat\">\n <span className=\"code-card__stat-value\">\n {formatCurrency(codeData.totalEarnings, currency)}\n </span>\n <span className=\"code-card__stat-label\">Earnings</span>\n </div>\n </div>\n {!codeData.isActive && (\n <span className=\"code-card__badge code-card__badge--inactive\">Inactive</span>\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nexport default ReferralCodes\n","'use client'\n\nimport React from 'react'\n\nimport type { PartnerDashboardData } from '../../types'\n\nexport type ProgramOverviewProps = {\n program: PartnerDashboardData['program']\n}\n\nexport const ProgramOverview: React.FC<ProgramOverviewProps> = ({ program }) => {\n if (!program) {\n return (\n <div className=\"partner-widget partner-widget--program-overview\">\n <h3 className=\"partner-widget__title\">Program Overview</h3>\n <div className=\"partner-widget__content\">\n <div className=\"program-overview program-overview--empty\">\n <p>No referral program details are available yet.</p>\n </div>\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"partner-widget partner-widget--program-overview\">\n <h3 className=\"partner-widget__title\">Program Overview</h3>\n <div className=\"partner-widget__content\">\n <div className=\"program-overview\">\n <div className=\"program-overview__row\">\n <span className=\"program-overview__label\">Program Name</span>\n <span className=\"program-overview__value\">{program.name}</span>\n </div>\n <div className=\"program-overview__row\">\n <span className=\"program-overview__label\">Commission Rate</span>\n <span className=\"program-overview__value\">{program.commissionRate}%</span>\n </div>\n <div className=\"program-overview__row\">\n <span className=\"program-overview__label\">Customer Discount</span>\n <span className=\"program-overview__value\">{program.customerDiscount}%</span>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default ProgramOverview\n","'use client'\n\nimport React from 'react'\n\nimport type { PartnerStats } from '../../types'\n\nexport type CommissionBreakdownProps = {\n stats: PartnerStats\n currency: string\n}\n\nconst formatCurrency = (amount: number, currency: string): string => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency,\n minimumFractionDigits: 2,\n }).format(amount)\n}\n\nconst formatPercent = (value: number): string => {\n if (!Number.isFinite(value)) return '0%'\n return `${value.toFixed(1)}%`\n}\n\nexport const CommissionBreakdown: React.FC<CommissionBreakdownProps> = ({ stats, currency }) => {\n const totalEarnings = Math.max(stats.totalEarnings || 0, 0)\n const paidEarnings = Math.max(stats.paidEarnings || 0, 0)\n const pendingEarnings = Math.max(stats.pendingEarnings || 0, 0)\n\n const paidPercent = totalEarnings > 0 ? (paidEarnings / totalEarnings) * 100 : 0\n const pendingPercent = totalEarnings > 0 ? (pendingEarnings / totalEarnings) * 100 : 0\n const unpaidOrOther = Math.max(totalEarnings - (paidEarnings + pendingEarnings), 0)\n const otherPercent = totalEarnings > 0 ? (unpaidOrOther / totalEarnings) * 100 : 0\n\n return (\n <div className=\"partner-widget partner-widget--commission-breakdown\">\n <h3 className=\"partner-widget__title\">Commission Breakdown</h3>\n\n <div className=\"partner-widget__content\">\n <div className=\"commission-breakdown\">\n <div className=\"commission-breakdown__summary\">\n <span className=\"commission-breakdown__total-label\">Total Commission</span>\n <span className=\"commission-breakdown__total-value\">\n {formatCurrency(totalEarnings, currency)}\n </span>\n </div>\n\n <div\n className=\"commission-breakdown__bars\"\n role=\"img\"\n aria-label=\"Commission distribution\"\n >\n <div className=\"commission-breakdown__track\">\n <div\n className=\"commission-breakdown__segment commission-breakdown__segment--paid\"\n style={{ width: `${Math.max(Math.min(paidPercent, 100), 0)}%` }}\n title={`Paid: ${formatCurrency(paidEarnings, currency)} (${formatPercent(paidPercent)})`}\n />\n <div\n className=\"commission-breakdown__segment commission-breakdown__segment--pending\"\n style={{ width: `${Math.max(Math.min(pendingPercent, 100), 0)}%` }}\n title={`Pending: ${formatCurrency(pendingEarnings, currency)} (${formatPercent(pendingPercent)})`}\n />\n {otherPercent > 0 && (\n <div\n className=\"commission-breakdown__segment commission-breakdown__segment--other\"\n style={{ width: `${Math.max(Math.min(otherPercent, 100), 0)}%` }}\n title={`Other: ${formatCurrency(unpaidOrOther, currency)} (${formatPercent(otherPercent)})`}\n />\n )}\n </div>\n </div>\n\n <div className=\"commission-breakdown__legend\">\n <div className=\"commission-breakdown__item\">\n <span className=\"commission-breakdown__dot commission-breakdown__dot--paid\" />\n <div className=\"commission-breakdown__meta\">\n <span className=\"commission-breakdown__label\">Paid</span>\n <span className=\"commission-breakdown__value\">\n {formatCurrency(paidEarnings, currency)} · {formatPercent(paidPercent)}\n </span>\n </div>\n </div>\n\n <div className=\"commission-breakdown__item\">\n <span className=\"commission-breakdown__dot commission-breakdown__dot--pending\" />\n <div className=\"commission-breakdown__meta\">\n <span className=\"commission-breakdown__label\">Pending</span>\n <span className=\"commission-breakdown__value\">\n {formatCurrency(pendingEarnings, currency)} · {formatPercent(pendingPercent)}\n </span>\n </div>\n </div>\n\n {otherPercent > 0 && (\n <div className=\"commission-breakdown__item\">\n <span className=\"commission-breakdown__dot commission-breakdown__dot--other\" />\n <div className=\"commission-breakdown__meta\">\n <span className=\"commission-breakdown__label\">Other</span>\n <span className=\"commission-breakdown__value\">\n {formatCurrency(unpaidOrOther, currency)} · {formatPercent(otherPercent)}\n </span>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"commission-breakdown__footnote\">\n Based on current referral payouts and pending settlements.\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default CommissionBreakdown\n","'use client'\n\nimport React, { useEffect, useState } from 'react'\n\nimport type { PartnerDashboardData } from '../../types'\n\nimport { EarningsSummary } from './EarningsSummary'\nimport { ReferralPerformance } from './ReferralPerformance'\nimport { RecentReferrals } from './RecentReferrals'\nimport { ReferralCodes } from './ReferralCodes'\nimport { ProgramOverview } from './ProgramOverview'\nimport { CommissionBreakdown } from './CommissionBreakdown'\n\nexport type PartnerDashboardProps = {\n showEarningsSummary?: boolean\n showReferralPerformance?: boolean\n showRecentReferrals?: boolean\n showReferralCodes?: boolean\n showProgramOverview?: boolean\n showCommissionBreakdown?: boolean\n apiEndpoint?: string\n}\n\nexport const PartnerDashboard: React.FC<PartnerDashboardProps> = ({\n showEarningsSummary = true,\n showReferralPerformance = true,\n showRecentReferrals = true,\n showReferralCodes = true,\n showProgramOverview = true,\n showCommissionBreakdown = true,\n apiEndpoint = '/api/referrals/partner-stats',\n}) => {\n const [data, setData] = useState<PartnerDashboardData | null>(null)\n const [loading, setLoading] = useState(true)\n const [error, setError] = useState<string | null>(null)\n const [currency, setCurrency] = useState('USD')\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n setLoading(true)\n const response = await fetch(apiEndpoint, {\n credentials: 'include',\n })\n\n if (!response.ok) {\n if (response.status === 401) {\n setError('Please log in to view your partner dashboard')\n return\n }\n if (response.status === 403) {\n setError('Partner access required')\n return\n }\n throw new Error('Failed to fetch partner data')\n }\n\n const result = (await response.json()) as {\n success: boolean\n data?: PartnerDashboardData\n currency?: string\n error?: string\n }\n\n if (result.success) {\n setData(result.data ?? null)\n setCurrency(result.currency ?? 'USD')\n } else {\n setError(result.error ?? 'Failed to load dashboard data')\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : 'An error occurred')\n } finally {\n setLoading(false)\n }\n }\n\n fetchData()\n }, [apiEndpoint])\n\n if (loading) {\n return (\n <div className=\"partner-dashboard partner-dashboard--loading\">\n <div className=\"partner-dashboard__loader\">\n <div className=\"partner-dashboard__spinner\" />\n <p>Loading partner dashboard...</p>\n </div>\n </div>\n )\n }\n\n if (error) {\n return (\n <div className=\"partner-dashboard partner-dashboard--error\">\n <div className=\"partner-dashboard__error\">\n <h3>Unable to load dashboard</h3>\n <p>{error}</p>\n </div>\n </div>\n )\n }\n\n if (!data) {\n return (\n <div className=\"partner-dashboard partner-dashboard--empty\">\n <div className=\"partner-dashboard__empty\">\n <h3>No data available</h3>\n <p>Your partner dashboard will appear here once you have referral activity.</p>\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"partner-dashboard\">\n <div className=\"partner-dashboard__header\">\n <h2>Partner Dashboard</h2>\n {data.program && (\n <div className=\"partner-dashboard__program\">\n <span className=\"partner-dashboard__program-name\">{data.program.name}</span>\n <span className=\"partner-dashboard__program-rate\">\n {data.program.commissionRate}% commission\n </span>\n </div>\n )}\n </div>\n\n <div className=\"partner-dashboard__grid\">\n {showEarningsSummary && <EarningsSummary stats={data.stats} currency={currency} />}\n\n {showReferralPerformance && <ReferralPerformance stats={data.stats} />}\n\n {showRecentReferrals && data.stats.recentReferrals.length > 0 && (\n <RecentReferrals referrals={data.stats.recentReferrals} currency={currency} />\n )}\n\n {showReferralCodes && data.referralCodes.length > 0 && (\n <ReferralCodes codes={data.referralCodes} currency={currency} />\n )}\n\n {showProgramOverview && <ProgramOverview program={data.program} />}\n\n {showCommissionBreakdown && <CommissionBreakdown stats={data.stats} currency={currency} />}\n </div>\n </div>\n )\n}\n\nexport default PartnerDashboard\n","import type { ApplyCouponHook, ApplyCouponResponse, PartnerDashboardData } from '../types'\n\ntype EndpointInput =\n | string\n | {\n applyCoupon?: string\n validateCoupon?: string\n partnerStats?: string\n baseURL?: string\n }\n\nconst DEFAULT_ENDPOINTS = {\n applyCoupon: '/api/coupons/apply',\n validateCoupon: '/api/coupons/validate',\n partnerStats: '/api/referrals/partner-stats',\n} as const\n\nfunction normalizePath(path: string): string {\n if (!path) return ''\n return path.startsWith('/') ? path : `/${path}`\n}\n\nfunction withBaseURL(path: string, baseURL?: string): string {\n if (!baseURL) return path\n const trimmedBase = baseURL.endsWith('/') ? baseURL.slice(0, -1) : baseURL\n const normalizedPath = normalizePath(path)\n return `${trimmedBase}${normalizedPath}`\n}\n\nfunction resolveEndpoints(input?: EndpointInput) {\n if (typeof input === 'string') {\n return {\n ...DEFAULT_ENDPOINTS,\n partnerStats: input,\n }\n }\n\n const baseURL = input?.baseURL\n return {\n applyCoupon: withBaseURL(input?.applyCoupon || DEFAULT_ENDPOINTS.applyCoupon, baseURL),\n validateCoupon: withBaseURL(input?.validateCoupon || DEFAULT_ENDPOINTS.validateCoupon, baseURL),\n partnerStats: withBaseURL(input?.partnerStats || DEFAULT_ENDPOINTS.partnerStats, baseURL),\n }\n}\n\n/**\n * Apply a coupon/referral code to a cart\n * @param options - Code, cart ID, and optional customerEmail\n * @param endpointConfig - Optional endpoint override config\n */\nexport async function useCouponCode(\n options: ApplyCouponHook,\n endpointConfig?: EndpointInput,\n): Promise<ApplyCouponResponse> {\n const { code, cartID, customerEmail } = options\n\n if (!code) {\n return {\n success: false,\n message: 'Coupon code is required',\n error: 'Code is missing',\n }\n }\n\n const endpoints = resolveEndpoints(endpointConfig)\n\n try {\n const response = await fetch(endpoints.applyCoupon, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ code, cartID, customerEmail }),\n })\n\n const data = (await response.json()) as Record<string, unknown>\n\n if (!response.ok) {\n return {\n success: false,\n message: (data.error as string) || 'Failed to apply coupon',\n error: data.error as string,\n }\n }\n\n const couponData = data.coupon as Record<string, unknown> | undefined\n const referralData = data.referralCode as Record<string, unknown> | undefined\n\n return {\n success: Boolean(data.success),\n message: (data.message as string) || 'Code applied',\n discount: (data.discount as number) || (data.customerDiscount as number),\n partnerCommission: data.partnerCommission as number,\n customerDiscount: data.customerDiscount as number,\n\n coupon: couponData\n ? {\n code: (couponData.code as string) || '',\n type: (couponData.type as 'percentage' | 'fixed') || 'percentage',\n value: (couponData.value as number) || 0,\n }\n : undefined,\n referralCode: referralData\n ? {\n code: (referralData.code as string) || '',\n }\n : undefined,\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Network error'\n return { success: false, message, error: message }\n }\n}\n\n/**\n * Validate a coupon/referral code without applying it\n * @param code - Code to validate\n * @param cartValue - Optional cart value\n * @param cartID - Optional cart ID\n * @param customerEmail - Optional customer email (for per-customer limits)\n * @param endpointConfig - Optional endpoint override config\n */\nexport async function validateCouponCode(\n code: string,\n cartValue?: number,\n cartID?: string,\n customerEmail?: string,\n endpointConfig?: EndpointInput,\n): Promise<ApplyCouponResponse> {\n if (!code) {\n return {\n success: false,\n message: 'Code required',\n error: 'Code missing',\n }\n }\n\n const endpoints = resolveEndpoints(endpointConfig)\n\n try {\n const response = await fetch(endpoints.validateCoupon, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ code, cartValue, cartID, customerEmail }),\n })\n\n const data = (await response.json()) as Record<string, unknown>\n\n if (!response.ok) {\n return {\n success: false,\n message: (data.error as string) || 'Invalid coupon',\n error: data.error as string,\n }\n }\n\n const couponData = data.coupon as Record<string, unknown> | undefined\n const referralData = data.referralCode as Record<string, unknown> | undefined\n\n return {\n success: Boolean(data.success),\n message: (data.message as string) || 'Code is valid',\n coupon: couponData\n ? {\n code: (couponData.code as string) || '',\n type: (couponData.type as 'percentage' | 'fixed') || 'percentage',\n value: (couponData.value as number) || 0,\n }\n : undefined,\n referralCode: referralData\n ? {\n code: (referralData.code as string) || '',\n }\n : undefined,\n discount: data.discount as number,\n partnerCommission: data.partnerCommission as number,\n customerDiscount: data.customerDiscount as number,\n currency: data.currency as string,\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Network error'\n return { success: false, message, error: message }\n }\n}\n\nexport type PartnerStatsResponse = {\n success: boolean\n data?: PartnerDashboardData\n currency?: string\n error?: string\n}\n\n/**\n * Fetch partner dashboard statistics\n * @param endpointConfig - Optional endpoint override config\n */\nexport async function usePartnerStats(\n endpointConfig?: EndpointInput,\n): Promise<PartnerStatsResponse> {\n const endpoints = resolveEndpoints(endpointConfig)\n\n try {\n const response = await fetch(endpoints.partnerStats, {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'include',\n })\n\n const data = (await response.json()) as Record<string, unknown>\n\n if (!response.ok) {\n return {\n success: false,\n error: (data.error as string) || 'Failed to fetch partner stats',\n }\n }\n\n return {\n success: Boolean(data.success),\n data: data.data as PartnerDashboardData,\n currency: data.currency as string,\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : 'Network error'\n return { success: false, error: message }\n }\n}\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wtree/payload-ecommerce-coupon",
3
- "version": "3.78.4",
3
+ "version": "3.78.5",
4
4
  "description": "Production-ready coupon and referral system plugin for Payload CMS Ecommerce Plugin",
5
5
  "keywords": [
6
6
  "coupon",
@@ -34,10 +34,26 @@
34
34
  "exports": {
35
35
  ".": {
36
36
  "types": "./dist/index.d.ts",
37
+ "browser": "./dist/browser.mjs",
37
38
  "import": "./dist/index.mjs",
38
39
  "require": "./dist/index.js"
39
- }
40
+ },
41
+ "./client": {
42
+ "types": "./dist/client/index.d.ts",
43
+ "import": "./dist/browser.mjs",
44
+ "require": "./dist/browser.js"
45
+ },
46
+ "./styles.css": "./dist/styles.css",
47
+ "./dist/styles.css": "./dist/styles.css"
40
48
  },
49
+ "browser": {
50
+ "./dist/index.mjs": "./dist/browser.mjs",
51
+ "./dist/index.js": "./dist/browser.js"
52
+ },
53
+ "sideEffects": [
54
+ "*.css",
55
+ "dist/styles.css"
56
+ ],
41
57
  "scripts": {
42
58
  "build": "bun run clean && rolldown -c && tsc --declaration --emitDeclarationOnly --outDir dist && bun scripts/copy-styles.mjs",
43
59
  "clean": "rm -rf dist",