@moshevents/copy 0.7.1 → 0.8.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.
- package/lib/copy.d.ts +99 -2
- package/lib/copy.js +96 -2
- package/package.json +1 -1
package/lib/copy.d.ts
CHANGED
|
@@ -72,14 +72,14 @@ export declare const copy: {
|
|
|
72
72
|
readonly onTheList: "You're on the list";
|
|
73
73
|
readonly goingRowSolo: "You're going";
|
|
74
74
|
readonly goingRowOthers: (p: {
|
|
75
|
-
count:
|
|
75
|
+
count: number;
|
|
76
76
|
}) => string;
|
|
77
77
|
readonly goingRowNamedOnly: (p: {
|
|
78
78
|
names: string | number;
|
|
79
79
|
}) => string;
|
|
80
80
|
readonly goingRowNamed: (p: {
|
|
81
|
+
count: number;
|
|
81
82
|
names: string | number;
|
|
82
|
-
count: string | number;
|
|
83
83
|
}) => string;
|
|
84
84
|
readonly goingCount: (p: {
|
|
85
85
|
count: string | number;
|
|
@@ -233,6 +233,103 @@ export declare const copy: {
|
|
|
233
233
|
readonly empty: "No sales yet — payout details will appear here.";
|
|
234
234
|
};
|
|
235
235
|
};
|
|
236
|
+
readonly promosManage: {
|
|
237
|
+
readonly templatesHeader: "Start from a template";
|
|
238
|
+
readonly listHeader: "Promotions";
|
|
239
|
+
readonly empty: "No promotions yet — pick a template to spin one up in seconds.";
|
|
240
|
+
readonly loadFailed: "Couldn't load promotions. Try again.";
|
|
241
|
+
readonly saveFailed: "Couldn't save the promotion. Try again.";
|
|
242
|
+
readonly newHeader: "New promotion";
|
|
243
|
+
readonly editHeader: "Edit promotion";
|
|
244
|
+
readonly templates: {
|
|
245
|
+
readonly rsvpFreeName: "First __ RSVPs get in free";
|
|
246
|
+
readonly rsvpFreeHint: "Held when guests RSVP";
|
|
247
|
+
readonly doorFreeName: "First __ at the door get in free";
|
|
248
|
+
readonly doorFreeHint: "Claimed when guests arrive";
|
|
249
|
+
readonly beforeTimeName: "Free entry before __:__";
|
|
250
|
+
readonly beforeTimeHint: "Time-window offer, no cap";
|
|
251
|
+
readonly customName: "Custom";
|
|
252
|
+
readonly customHint: "Start from a blank form";
|
|
253
|
+
readonly rsvpFreeTitle: (p: {
|
|
254
|
+
n: string | number;
|
|
255
|
+
}) => string;
|
|
256
|
+
readonly doorFreeTitle: (p: {
|
|
257
|
+
n: string | number;
|
|
258
|
+
}) => string;
|
|
259
|
+
readonly beforeTimeTitle: (p: {
|
|
260
|
+
time: string | number;
|
|
261
|
+
}) => string;
|
|
262
|
+
};
|
|
263
|
+
readonly form: {
|
|
264
|
+
readonly titleLabel: "Title";
|
|
265
|
+
readonly triggerLabel: "Trigger";
|
|
266
|
+
readonly triggerRsvp: "First-N RSVPs";
|
|
267
|
+
readonly triggerDoor: "At the door";
|
|
268
|
+
readonly doorHint: "Claimed when guests arrive — nothing is held in advance.";
|
|
269
|
+
readonly benefitLabel: "Benefit";
|
|
270
|
+
readonly benefitFree: "Free entry";
|
|
271
|
+
readonly benefitDiscounted: "Discounted entry";
|
|
272
|
+
readonly benefitCustom: "Custom perk";
|
|
273
|
+
readonly valueLabel: "Door price (USD)";
|
|
274
|
+
readonly valueHint: "What the guest pays at the door.";
|
|
275
|
+
readonly perkLabel: "Perk";
|
|
276
|
+
readonly perkPlaceholder: "e.g. Free shot at the bar";
|
|
277
|
+
readonly benefitLockedHint: "The benefit is locked while claims are outstanding — void and recreate to change it.";
|
|
278
|
+
readonly capLabel: "Claim cap (optional)";
|
|
279
|
+
readonly capPlaceholder: "Uncapped";
|
|
280
|
+
readonly untilLabel: "Valid at the door until (optional)";
|
|
281
|
+
readonly advancedToggle: "Advanced — claim window, live countdown threshold";
|
|
282
|
+
readonly claimOpensLabel: "Claims open (optional)";
|
|
283
|
+
readonly claimClosesLabel: "Claims close (optional)";
|
|
284
|
+
readonly countdownBefore: "Show live countdown when";
|
|
285
|
+
readonly countdownAfter: "or fewer remain";
|
|
286
|
+
readonly termsPlaceholder: "Terms — fine print (optional)";
|
|
287
|
+
readonly saveGoLive: "Save & go live";
|
|
288
|
+
readonly saveDraft: "Save draft";
|
|
289
|
+
readonly saveChanges: "Save changes";
|
|
290
|
+
};
|
|
291
|
+
readonly row: {
|
|
292
|
+
readonly freeEntry: "Free entry";
|
|
293
|
+
readonly discountedEntry: (p: {
|
|
294
|
+
price: string | number;
|
|
295
|
+
}) => string;
|
|
296
|
+
readonly customPerk: "Custom perk";
|
|
297
|
+
readonly triggerRsvp: "First-N RSVPs";
|
|
298
|
+
readonly triggerDoor: "At the door";
|
|
299
|
+
readonly claimedOfCap: (p: {
|
|
300
|
+
claimed: string | number;
|
|
301
|
+
cap: string | number;
|
|
302
|
+
}) => string;
|
|
303
|
+
readonly claimedOpen: (p: {
|
|
304
|
+
claimed: string | number;
|
|
305
|
+
}) => string;
|
|
306
|
+
};
|
|
307
|
+
readonly status: {
|
|
308
|
+
readonly draft: "Draft";
|
|
309
|
+
readonly scheduled: "Scheduled";
|
|
310
|
+
readonly live: "Live";
|
|
311
|
+
readonly paused: "Paused";
|
|
312
|
+
readonly exhausted: "Exhausted";
|
|
313
|
+
readonly expired: "Expired";
|
|
314
|
+
readonly ended: "Ended";
|
|
315
|
+
readonly voided: "Voided";
|
|
316
|
+
};
|
|
317
|
+
readonly actions: {
|
|
318
|
+
readonly edit: "Edit";
|
|
319
|
+
readonly goLive: "Go live";
|
|
320
|
+
readonly pause: "Pause";
|
|
321
|
+
readonly resume: "Resume";
|
|
322
|
+
readonly void: "Void";
|
|
323
|
+
};
|
|
324
|
+
readonly voidDialog: {
|
|
325
|
+
readonly title: "Void this promotion?";
|
|
326
|
+
readonly warning: "Voiding cancels all outstanding claims — guests who already claimed lose the benefit.";
|
|
327
|
+
readonly ownerNote: "Guests have already claimed this promotion, so only the venue owner can void it.";
|
|
328
|
+
readonly reasonLabel: "Reason";
|
|
329
|
+
readonly reasonPlaceholder: "Why are you voiding this?";
|
|
330
|
+
readonly confirm: "Void promotion";
|
|
331
|
+
};
|
|
332
|
+
};
|
|
236
333
|
readonly account: {
|
|
237
334
|
readonly deactivate: {
|
|
238
335
|
readonly title: "Deactivate or delete?";
|
package/lib/copy.js
CHANGED
|
@@ -65,9 +65,19 @@ export const copy = {
|
|
|
65
65
|
goingCheck: "Going ✓",
|
|
66
66
|
onTheList: "You're on the list",
|
|
67
67
|
goingRowSolo: "You're going",
|
|
68
|
-
goingRowOthers: (p) =>
|
|
68
|
+
goingRowOthers: (p) => {
|
|
69
|
+
const n = Number(p.count);
|
|
70
|
+
if (n === 1)
|
|
71
|
+
return `You and ${p.count} other are going`;
|
|
72
|
+
return `You and ${p.count} others are going`;
|
|
73
|
+
},
|
|
69
74
|
goingRowNamedOnly: (p) => `You, ${p.names} are going`,
|
|
70
|
-
goingRowNamed: (p) =>
|
|
75
|
+
goingRowNamed: (p) => {
|
|
76
|
+
const n = Number(p.count);
|
|
77
|
+
if (n === 1)
|
|
78
|
+
return `You, ${p.names} and ${p.count} friend are going`;
|
|
79
|
+
return `You, ${p.names} and ${p.count} friends are going`;
|
|
80
|
+
},
|
|
71
81
|
goingCount: (p) => `${p.count} going`,
|
|
72
82
|
wentCount: (p) => `${p.count} went`,
|
|
73
83
|
invite: "+ Invite",
|
|
@@ -209,6 +219,90 @@ export const copy = {
|
|
|
209
219
|
empty: "No sales yet — payout details will appear here.",
|
|
210
220
|
},
|
|
211
221
|
},
|
|
222
|
+
promosManage: {
|
|
223
|
+
templatesHeader: "Start from a template",
|
|
224
|
+
listHeader: "Promotions",
|
|
225
|
+
empty: "No promotions yet — pick a template to spin one up in seconds.",
|
|
226
|
+
loadFailed: "Couldn't load promotions. Try again.",
|
|
227
|
+
saveFailed: "Couldn't save the promotion. Try again.",
|
|
228
|
+
newHeader: "New promotion",
|
|
229
|
+
editHeader: "Edit promotion",
|
|
230
|
+
templates: {
|
|
231
|
+
rsvpFreeName: "First __ RSVPs get in free",
|
|
232
|
+
rsvpFreeHint: "Held when guests RSVP",
|
|
233
|
+
doorFreeName: "First __ at the door get in free",
|
|
234
|
+
doorFreeHint: "Claimed when guests arrive",
|
|
235
|
+
beforeTimeName: "Free entry before __:__",
|
|
236
|
+
beforeTimeHint: "Time-window offer, no cap",
|
|
237
|
+
customName: "Custom",
|
|
238
|
+
customHint: "Start from a blank form",
|
|
239
|
+
rsvpFreeTitle: (p) => `Free entry for the first ${p.n} RSVPs`,
|
|
240
|
+
doorFreeTitle: (p) => `First ${p.n} at the door get in free`,
|
|
241
|
+
beforeTimeTitle: (p) => `Free entry before ${p.time}`,
|
|
242
|
+
},
|
|
243
|
+
form: {
|
|
244
|
+
titleLabel: "Title",
|
|
245
|
+
triggerLabel: "Trigger",
|
|
246
|
+
triggerRsvp: "First-N RSVPs",
|
|
247
|
+
triggerDoor: "At the door",
|
|
248
|
+
doorHint: "Claimed when guests arrive — nothing is held in advance.",
|
|
249
|
+
benefitLabel: "Benefit",
|
|
250
|
+
benefitFree: "Free entry",
|
|
251
|
+
benefitDiscounted: "Discounted entry",
|
|
252
|
+
benefitCustom: "Custom perk",
|
|
253
|
+
valueLabel: "Door price (USD)",
|
|
254
|
+
valueHint: "What the guest pays at the door.",
|
|
255
|
+
perkLabel: "Perk",
|
|
256
|
+
perkPlaceholder: "e.g. Free shot at the bar",
|
|
257
|
+
benefitLockedHint: "The benefit is locked while claims are outstanding — void and recreate to change it.",
|
|
258
|
+
capLabel: "Claim cap (optional)",
|
|
259
|
+
capPlaceholder: "Uncapped",
|
|
260
|
+
untilLabel: "Valid at the door until (optional)",
|
|
261
|
+
advancedToggle: "Advanced — claim window, live countdown threshold",
|
|
262
|
+
claimOpensLabel: "Claims open (optional)",
|
|
263
|
+
claimClosesLabel: "Claims close (optional)",
|
|
264
|
+
countdownBefore: "Show live countdown when",
|
|
265
|
+
countdownAfter: "or fewer remain",
|
|
266
|
+
termsPlaceholder: "Terms — fine print (optional)",
|
|
267
|
+
saveGoLive: "Save & go live",
|
|
268
|
+
saveDraft: "Save draft",
|
|
269
|
+
saveChanges: "Save changes",
|
|
270
|
+
},
|
|
271
|
+
row: {
|
|
272
|
+
freeEntry: "Free entry",
|
|
273
|
+
discountedEntry: (p) => `${p.price} entry`,
|
|
274
|
+
customPerk: "Custom perk",
|
|
275
|
+
triggerRsvp: "First-N RSVPs",
|
|
276
|
+
triggerDoor: "At the door",
|
|
277
|
+
claimedOfCap: (p) => `${p.claimed}/${p.cap} claimed`,
|
|
278
|
+
claimedOpen: (p) => `${p.claimed} claimed`,
|
|
279
|
+
},
|
|
280
|
+
status: {
|
|
281
|
+
draft: "Draft",
|
|
282
|
+
scheduled: "Scheduled",
|
|
283
|
+
live: "Live",
|
|
284
|
+
paused: "Paused",
|
|
285
|
+
exhausted: "Exhausted",
|
|
286
|
+
expired: "Expired",
|
|
287
|
+
ended: "Ended",
|
|
288
|
+
voided: "Voided",
|
|
289
|
+
},
|
|
290
|
+
actions: {
|
|
291
|
+
edit: "Edit",
|
|
292
|
+
goLive: "Go live",
|
|
293
|
+
pause: "Pause",
|
|
294
|
+
resume: "Resume",
|
|
295
|
+
void: "Void",
|
|
296
|
+
},
|
|
297
|
+
voidDialog: {
|
|
298
|
+
title: "Void this promotion?",
|
|
299
|
+
warning: "Voiding cancels all outstanding claims — guests who already claimed lose the benefit.",
|
|
300
|
+
ownerNote: "Guests have already claimed this promotion, so only the venue owner can void it.",
|
|
301
|
+
reasonLabel: "Reason",
|
|
302
|
+
reasonPlaceholder: "Why are you voiding this?",
|
|
303
|
+
confirm: "Void promotion",
|
|
304
|
+
},
|
|
305
|
+
},
|
|
212
306
|
account: {
|
|
213
307
|
deactivate: {
|
|
214
308
|
title: "Deactivate or delete?",
|
package/package.json
CHANGED