@medialane/ui 0.161.1 → 0.162.0

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 (51) hide show
  1. package/dist/components/rewards/{badge-unlock-toast-content.cjs → badge-unlocked.cjs} +7 -7
  2. package/dist/components/rewards/badge-unlocked.cjs.map +1 -0
  3. package/dist/components/rewards/badge-unlocked.d.cts +9 -0
  4. package/dist/components/rewards/badge-unlocked.d.ts +9 -0
  5. package/dist/components/rewards/{badge-unlock-toast-content.js → badge-unlocked.js} +3 -3
  6. package/dist/components/rewards/badge-unlocked.js.map +1 -0
  7. package/dist/components/rewards/reward-earned.cjs +65 -0
  8. package/dist/components/rewards/reward-earned.cjs.map +1 -0
  9. package/dist/components/rewards/reward-earned.d.cts +15 -0
  10. package/dist/components/rewards/reward-earned.d.ts +15 -0
  11. package/dist/components/rewards/reward-earned.js +41 -0
  12. package/dist/components/rewards/reward-earned.js.map +1 -0
  13. package/dist/components/rewards/{xp-toast-content.cjs → xp-earned.cjs} +7 -7
  14. package/dist/components/rewards/xp-earned.cjs.map +1 -0
  15. package/dist/components/rewards/xp-earned.d.cts +13 -0
  16. package/dist/components/rewards/xp-earned.d.ts +13 -0
  17. package/dist/components/rewards/{xp-toast-content.js → xp-earned.js} +3 -3
  18. package/dist/components/rewards/xp-earned.js.map +1 -0
  19. package/dist/index.cjs +9 -9
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +3 -3
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +6 -6
  24. package/dist/index.js.map +1 -1
  25. package/dist/utils/use-notifications.cjs +4 -15
  26. package/dist/utils/use-notifications.cjs.map +1 -1
  27. package/dist/utils/use-notifications.d.cts +0 -1
  28. package/dist/utils/use-notifications.d.ts +0 -1
  29. package/dist/utils/use-notifications.js +5 -16
  30. package/dist/utils/use-notifications.js.map +1 -1
  31. package/package.json +1 -3
  32. package/dist/components/rewards/badge-unlock-toast-content.cjs.map +0 -1
  33. package/dist/components/rewards/badge-unlock-toast-content.d.cts +0 -9
  34. package/dist/components/rewards/badge-unlock-toast-content.d.ts +0 -9
  35. package/dist/components/rewards/badge-unlock-toast-content.js.map +0 -1
  36. package/dist/components/rewards/reward-toast.cjs +0 -66
  37. package/dist/components/rewards/reward-toast.cjs.map +0 -1
  38. package/dist/components/rewards/reward-toast.d.cts +0 -9
  39. package/dist/components/rewards/reward-toast.d.ts +0 -9
  40. package/dist/components/rewards/reward-toast.js +0 -42
  41. package/dist/components/rewards/reward-toast.js.map +0 -1
  42. package/dist/components/rewards/xp-toast-content.cjs.map +0 -1
  43. package/dist/components/rewards/xp-toast-content.d.cts +0 -13
  44. package/dist/components/rewards/xp-toast-content.d.ts +0 -13
  45. package/dist/components/rewards/xp-toast-content.js.map +0 -1
  46. package/dist/utils/notification-readiness.cjs +0 -32
  47. package/dist/utils/notification-readiness.cjs.map +0 -1
  48. package/dist/utils/notification-readiness.d.cts +0 -9
  49. package/dist/utils/notification-readiness.d.ts +0 -9
  50. package/dist/utils/notification-readiness.js +0 -8
  51. package/dist/utils/notification-readiness.js.map +0 -1
@@ -1,42 +0,0 @@
1
- "use client";
2
- import { jsx } from "react/jsx-runtime";
3
- import { toast } from "sonner";
4
- import { XpToastContent } from "./xp-toast-content.js";
5
- function createRewardToast(getRewardsConfig) {
6
- let configPromise = null;
7
- function loadConfig() {
8
- configPromise ?? (configPromise = getRewardsConfig());
9
- return configPromise;
10
- }
11
- return function rewardToast(actionType, snapshot) {
12
- loadConfig().then((config) => {
13
- const action = config.actions.find((a) => a.type === actionType);
14
- if (!action) return;
15
- if (!snapshot) {
16
- toast(/* @__PURE__ */ jsx(XpToastContent, { xp: action.xp, label: action.label }), { duration: 3500 });
17
- return;
18
- }
19
- const level = config.levels.find((l) => l.level === snapshot.currentLevel);
20
- const nextLevel = config.levels.find((l) => l.level === snapshot.currentLevel + 1);
21
- toast(
22
- /* @__PURE__ */ jsx(
23
- XpToastContent,
24
- {
25
- xp: action.xp,
26
- label: action.label,
27
- totalXp: snapshot.totalXp,
28
- levelXp: level?.xpRequired ?? 0,
29
- nextLevelXp: nextLevel?.xpRequired ?? null
30
- }
31
- ),
32
- { duration: 3500 }
33
- );
34
- }).catch(() => {
35
- configPromise = null;
36
- });
37
- };
38
- }
39
- export {
40
- createRewardToast
41
- };
42
- //# sourceMappingURL=reward-toast.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/rewards/reward-toast.tsx"],"sourcesContent":["\"use client\";\n\nimport { toast } from \"sonner\";\nimport { XpToastContent } from \"./xp-toast-content.js\";\nimport type { ApiRewardsConfig } from \"@medialane/sdk\";\n\nexport interface RewardToastSnapshot {\n totalXp: number;\n currentLevel: number;\n}\n\nexport function createRewardToast(getRewardsConfig: () => Promise<ApiRewardsConfig>) {\n let configPromise: Promise<ApiRewardsConfig> | null = null;\n function loadConfig() {\n configPromise ??= getRewardsConfig();\n return configPromise;\n }\n\n return function rewardToast(actionType: string, snapshot?: RewardToastSnapshot): void {\n loadConfig()\n .then((config) => {\n const action = config.actions.find((a) => a.type === actionType);\n if (!action) return;\n\n if (!snapshot) {\n toast(<XpToastContent xp={action.xp} label={action.label} />, { duration: 3500 });\n return;\n }\n\n const level = config.levels.find((l) => l.level === snapshot.currentLevel);\n const nextLevel = config.levels.find((l) => l.level === snapshot.currentLevel + 1);\n toast(\n <XpToastContent\n xp={action.xp}\n label={action.label}\n totalXp={snapshot.totalXp}\n levelXp={level?.xpRequired ?? 0}\n nextLevelXp={nextLevel?.xpRequired ?? null}\n />,\n { duration: 3500 }\n );\n })\n .catch(() => {\n configPromise = null;\n });\n };\n}\n"],"mappings":";AAyBgB;AAvBhB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAQxB,SAAS,kBAAkB,kBAAmD;AACnF,MAAI,gBAAkD;AACtD,WAAS,aAAa;AACpB,sCAAkB,iBAAiB;AACnC,WAAO;AAAA,EACT;AAEA,SAAO,SAAS,YAAY,YAAoB,UAAsC;AACpF,eAAW,EACR,KAAK,CAAC,WAAW;AAChB,YAAM,SAAS,OAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,SAAS,UAAU;AAC/D,UAAI,CAAC,OAAQ;AAEb,UAAI,CAAC,UAAU;AACb,cAAM,oBAAC,kBAAe,IAAI,OAAO,IAAI,OAAO,OAAO,OAAO,GAAI,EAAE,UAAU,KAAK,CAAC;AAChF;AAAA,MACF;AAEA,YAAM,QAAQ,OAAO,OAAO,KAAK,CAAC,MAAM,EAAE,UAAU,SAAS,YAAY;AACzE,YAAM,YAAY,OAAO,OAAO,KAAK,CAAC,MAAM,EAAE,UAAU,SAAS,eAAe,CAAC;AACjF;AAAA,QACE;AAAA,UAAC;AAAA;AAAA,YACC,IAAI,OAAO;AAAA,YACX,OAAO,OAAO;AAAA,YACd,SAAS,SAAS;AAAA,YAClB,SAAS,OAAO,cAAc;AAAA,YAC9B,aAAa,WAAW,cAAc;AAAA;AAAA,QACxC;AAAA,QACA,EAAE,UAAU,KAAK;AAAA,MACnB;AAAA,IACF,CAAC,EACA,MAAM,MAAM;AACX,sBAAgB;AAAA,IAClB,CAAC;AAAA,EACL;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/rewards/xp-toast-content.tsx"],"sourcesContent":["import { XpProgress } from \"./xp-progress.js\";\n\nexport interface XpToastContentProps {\n xp: number;\n\n label: string;\n color?: string;\n\n totalXp?: number;\n levelXp?: number;\n nextLevelXp?: number | null;\n}\n\nexport function XpToastContent({ xp, label, color = \"#8b5cf6\", totalXp, levelXp, nextLevelXp }: XpToastContentProps) {\n const showProgress = totalXp !== undefined && levelXp !== undefined && nextLevelXp !== undefined;\n return (\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-center gap-2.5\">\n <span\n className=\"flex h-8 shrink-0 items-center rounded-full border px-2.5 text-sm font-black tabular-nums\"\n style={{ borderColor: `${color}60`, backgroundColor: `${color}18`, color }}\n >\n +{xp} XP\n </span>\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-semibold\">{label}</p>\n {!showProgress && <p className=\"text-xs text-muted-foreground\">Counts toward your score soon</p>}\n </div>\n </div>\n {showProgress && (\n <XpProgress totalXp={totalXp!} levelXp={levelXp!} nextLevelXp={nextLevelXp!} badgeColor={color} variant=\"bar\" />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBQ;AAlBR,yBAA2B;AAapB,SAAS,eAAe,EAAE,IAAI,OAAO,QAAQ,WAAW,SAAS,SAAS,YAAY,GAAwB;AACnH,QAAM,eAAe,YAAY,UAAa,YAAY,UAAa,gBAAgB;AACvF,SACE,6CAAC,SAAI,WAAU,yBACb;AAAA,iDAAC,SAAI,WAAU,6BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,aAAa,GAAG,KAAK,MAAM,iBAAiB,GAAG,KAAK,MAAM,MAAM;AAAA,UAC1E;AAAA;AAAA,YACG;AAAA,YAAG;AAAA;AAAA;AAAA,MACP;AAAA,MACA,6CAAC,SAAI,WAAU,WACb;AAAA,oDAAC,OAAE,WAAU,kCAAkC,iBAAM;AAAA,QACpD,CAAC,gBAAgB,4CAAC,OAAE,WAAU,iCAAgC,2CAA6B;AAAA,SAC9F;AAAA,OACF;AAAA,IACC,gBACC,4CAAC,iCAAW,SAAmB,SAAmB,aAA2B,YAAY,OAAO,SAAQ,OAAM;AAAA,KAElH;AAEJ;","names":[]}
@@ -1,13 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface XpToastContentProps {
4
- xp: number;
5
- label: string;
6
- color?: string;
7
- totalXp?: number;
8
- levelXp?: number;
9
- nextLevelXp?: number | null;
10
- }
11
- declare function XpToastContent({ xp, label, color, totalXp, levelXp, nextLevelXp }: XpToastContentProps): react_jsx_runtime.JSX.Element;
12
-
13
- export { XpToastContent, type XpToastContentProps };
@@ -1,13 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface XpToastContentProps {
4
- xp: number;
5
- label: string;
6
- color?: string;
7
- totalXp?: number;
8
- levelXp?: number;
9
- nextLevelXp?: number | null;
10
- }
11
- declare function XpToastContent({ xp, label, color, totalXp, levelXp, nextLevelXp }: XpToastContentProps): react_jsx_runtime.JSX.Element;
12
-
13
- export { XpToastContent, type XpToastContentProps };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/rewards/xp-toast-content.tsx"],"sourcesContent":["import { XpProgress } from \"./xp-progress.js\";\n\nexport interface XpToastContentProps {\n xp: number;\n\n label: string;\n color?: string;\n\n totalXp?: number;\n levelXp?: number;\n nextLevelXp?: number | null;\n}\n\nexport function XpToastContent({ xp, label, color = \"#8b5cf6\", totalXp, levelXp, nextLevelXp }: XpToastContentProps) {\n const showProgress = totalXp !== undefined && levelXp !== undefined && nextLevelXp !== undefined;\n return (\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-center gap-2.5\">\n <span\n className=\"flex h-8 shrink-0 items-center rounded-full border px-2.5 text-sm font-black tabular-nums\"\n style={{ borderColor: `${color}60`, backgroundColor: `${color}18`, color }}\n >\n +{xp} XP\n </span>\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-semibold\">{label}</p>\n {!showProgress && <p className=\"text-xs text-muted-foreground\">Counts toward your score soon</p>}\n </div>\n </div>\n {showProgress && (\n <XpProgress totalXp={totalXp!} levelXp={levelXp!} nextLevelXp={nextLevelXp!} badgeColor={color} variant=\"bar\" />\n )}\n </div>\n );\n}\n"],"mappings":"AAkBQ,SAOE,KAPF;AAlBR,SAAS,kBAAkB;AAapB,SAAS,eAAe,EAAE,IAAI,OAAO,QAAQ,WAAW,SAAS,SAAS,YAAY,GAAwB;AACnH,QAAM,eAAe,YAAY,UAAa,YAAY,UAAa,gBAAgB;AACvF,SACE,qBAAC,SAAI,WAAU,yBACb;AAAA,yBAAC,SAAI,WAAU,6BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,aAAa,GAAG,KAAK,MAAM,iBAAiB,GAAG,KAAK,MAAM,MAAM;AAAA,UAC1E;AAAA;AAAA,YACG;AAAA,YAAG;AAAA;AAAA;AAAA,MACP;AAAA,MACA,qBAAC,SAAI,WAAU,WACb;AAAA,4BAAC,OAAE,WAAU,kCAAkC,iBAAM;AAAA,QACpD,CAAC,gBAAgB,oBAAC,OAAE,WAAU,iCAAgC,2CAA6B;AAAA,SAC9F;AAAA,OACF;AAAA,IACC,gBACC,oBAAC,cAAW,SAAmB,SAAmB,aAA2B,YAAY,OAAO,SAAQ,OAAM;AAAA,KAElH;AAEJ;","names":[]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var notification_readiness_exports = {};
20
- __export(notification_readiness_exports, {
21
- notificationsAreLoading: () => notificationsAreLoading
22
- });
23
- module.exports = __toCommonJS(notification_readiness_exports);
24
- function notificationsAreLoading(state) {
25
- if (!state.hasAddress) return false;
26
- return state.ordersLoading || state.receivedLoading || state.activitiesLoading;
27
- }
28
- // Annotate the CommonJS export names for ESM import in node:
29
- 0 && (module.exports = {
30
- notificationsAreLoading
31
- });
32
- //# sourceMappingURL=notification-readiness.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/notification-readiness.ts"],"sourcesContent":["export interface NotificationSourceState {\n ordersLoading: boolean;\n receivedLoading: boolean;\n activitiesLoading: boolean;\n hasAddress: boolean;\n}\n\nexport function notificationsAreLoading(state: NotificationSourceState): boolean {\n if (!state.hasAddress) return false;\n return state.ordersLoading || state.receivedLoading || state.activitiesLoading;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,SAAS,wBAAwB,OAAyC;AAC/E,MAAI,CAAC,MAAM,WAAY,QAAO;AAC9B,SAAO,MAAM,iBAAiB,MAAM,mBAAmB,MAAM;AAC/D;","names":[]}
@@ -1,9 +0,0 @@
1
- interface NotificationSourceState {
2
- ordersLoading: boolean;
3
- receivedLoading: boolean;
4
- activitiesLoading: boolean;
5
- hasAddress: boolean;
6
- }
7
- declare function notificationsAreLoading(state: NotificationSourceState): boolean;
8
-
9
- export { type NotificationSourceState, notificationsAreLoading };
@@ -1,9 +0,0 @@
1
- interface NotificationSourceState {
2
- ordersLoading: boolean;
3
- receivedLoading: boolean;
4
- activitiesLoading: boolean;
5
- hasAddress: boolean;
6
- }
7
- declare function notificationsAreLoading(state: NotificationSourceState): boolean;
8
-
9
- export { type NotificationSourceState, notificationsAreLoading };
@@ -1,8 +0,0 @@
1
- function notificationsAreLoading(state) {
2
- if (!state.hasAddress) return false;
3
- return state.ordersLoading || state.receivedLoading || state.activitiesLoading;
4
- }
5
- export {
6
- notificationsAreLoading
7
- };
8
- //# sourceMappingURL=notification-readiness.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/notification-readiness.ts"],"sourcesContent":["export interface NotificationSourceState {\n ordersLoading: boolean;\n receivedLoading: boolean;\n activitiesLoading: boolean;\n hasAddress: boolean;\n}\n\nexport function notificationsAreLoading(state: NotificationSourceState): boolean {\n if (!state.hasAddress) return false;\n return state.ordersLoading || state.receivedLoading || state.activitiesLoading;\n}\n"],"mappings":"AAOO,SAAS,wBAAwB,OAAyC;AAC/E,MAAI,CAAC,MAAM,WAAY,QAAO;AAC9B,SAAO,MAAM,iBAAiB,MAAM,mBAAmB,MAAM;AAC/D;","names":[]}