@aigentyc/chat-sdk 0.1.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/LICENSE +21 -0
- package/README.md +156 -0
- package/dist/JsonRenderResult-Ftw4AKwb.d.cts +18 -0
- package/dist/JsonRenderResult-Ftw4AKwb.d.ts +18 -0
- package/dist/JsonRenderResult-GQOYPLVH.cjs +15 -0
- package/dist/JsonRenderResult-GQOYPLVH.cjs.map +1 -0
- package/dist/JsonRenderResult-ZFJ6VWMS.js +6 -0
- package/dist/JsonRenderResult-ZFJ6VWMS.js.map +1 -0
- package/dist/SlotsContext-CBtt36al.d.ts +148 -0
- package/dist/SlotsContext-CHvISDJT.d.cts +148 -0
- package/dist/VisualizationRenderer-FNFYNN66.js +5 -0
- package/dist/VisualizationRenderer-FNFYNN66.js.map +1 -0
- package/dist/VisualizationRenderer-VKMZXRUX.cjs +20 -0
- package/dist/VisualizationRenderer-VKMZXRUX.cjs.map +1 -0
- package/dist/ai-elements.cjs +4608 -0
- package/dist/ai-elements.cjs.map +1 -0
- package/dist/ai-elements.d.cts +897 -0
- package/dist/ai-elements.d.ts +897 -0
- package/dist/ai-elements.js +4363 -0
- package/dist/ai-elements.js.map +1 -0
- package/dist/chunk-3MP2EGEJ.cjs +270 -0
- package/dist/chunk-3MP2EGEJ.cjs.map +1 -0
- package/dist/chunk-3RW7O444.js +26 -0
- package/dist/chunk-3RW7O444.js.map +1 -0
- package/dist/chunk-42ARGQXE.js +51 -0
- package/dist/chunk-42ARGQXE.js.map +1 -0
- package/dist/chunk-4FBVV64J.js +257 -0
- package/dist/chunk-4FBVV64J.js.map +1 -0
- package/dist/chunk-4QT25AXI.js +21 -0
- package/dist/chunk-4QT25AXI.js.map +1 -0
- package/dist/chunk-525KS5HM.cjs +30 -0
- package/dist/chunk-525KS5HM.cjs.map +1 -0
- package/dist/chunk-5F3O3ZJH.js +299 -0
- package/dist/chunk-5F3O3ZJH.js.map +1 -0
- package/dist/chunk-5QSXB6UL.cjs +259 -0
- package/dist/chunk-5QSXB6UL.cjs.map +1 -0
- package/dist/chunk-5T4FJ2SR.js +664 -0
- package/dist/chunk-5T4FJ2SR.js.map +1 -0
- package/dist/chunk-7BNYTOTE.cjs +67 -0
- package/dist/chunk-7BNYTOTE.cjs.map +1 -0
- package/dist/chunk-AWAJOSFP.cjs +96 -0
- package/dist/chunk-AWAJOSFP.cjs.map +1 -0
- package/dist/chunk-BKDV2H6Z.js +224 -0
- package/dist/chunk-BKDV2H6Z.js.map +1 -0
- package/dist/chunk-FQN6OBGN.cjs +171 -0
- package/dist/chunk-FQN6OBGN.cjs.map +1 -0
- package/dist/chunk-FYPJSHCL.js +190 -0
- package/dist/chunk-FYPJSHCL.js.map +1 -0
- package/dist/chunk-J2H6MLQF.cjs +680 -0
- package/dist/chunk-J2H6MLQF.cjs.map +1 -0
- package/dist/chunk-J2K7EJYP.cjs +198 -0
- package/dist/chunk-J2K7EJYP.cjs.map +1 -0
- package/dist/chunk-JI5KCSOI.cjs +23 -0
- package/dist/chunk-JI5KCSOI.cjs.map +1 -0
- package/dist/chunk-JOO6C3XT.cjs +44 -0
- package/dist/chunk-JOO6C3XT.cjs.map +1 -0
- package/dist/chunk-KBGPBUTI.cjs +78 -0
- package/dist/chunk-KBGPBUTI.cjs.map +1 -0
- package/dist/chunk-MT2AMINB.js +75 -0
- package/dist/chunk-MT2AMINB.js.map +1 -0
- package/dist/chunk-MZQKGNWF.js +4 -0
- package/dist/chunk-MZQKGNWF.js.map +1 -0
- package/dist/chunk-NG7OTWXQ.cjs +226 -0
- package/dist/chunk-NG7OTWXQ.cjs.map +1 -0
- package/dist/chunk-NPJKLYLV.js +68 -0
- package/dist/chunk-NPJKLYLV.js.map +1 -0
- package/dist/chunk-NW2ESHRV.js +685 -0
- package/dist/chunk-NW2ESHRV.js.map +1 -0
- package/dist/chunk-NWF735F5.js +1631 -0
- package/dist/chunk-NWF735F5.js.map +1 -0
- package/dist/chunk-NYQSM3EB.cjs +305 -0
- package/dist/chunk-NYQSM3EB.cjs.map +1 -0
- package/dist/chunk-OU7OROOE.cjs +1643 -0
- package/dist/chunk-OU7OROOE.cjs.map +1 -0
- package/dist/chunk-PS3U7T37.js +42 -0
- package/dist/chunk-PS3U7T37.js.map +1 -0
- package/dist/chunk-Q7T3VAJV.cjs +687 -0
- package/dist/chunk-Q7T3VAJV.cjs.map +1 -0
- package/dist/chunk-QYCEHFAB.js +265 -0
- package/dist/chunk-QYCEHFAB.js.map +1 -0
- package/dist/chunk-RPDJXB3U.js +676 -0
- package/dist/chunk-RPDJXB3U.js.map +1 -0
- package/dist/chunk-UKEL7FWS.js +64 -0
- package/dist/chunk-UKEL7FWS.js.map +1 -0
- package/dist/chunk-VS3NZ7FX.js +164 -0
- package/dist/chunk-VS3NZ7FX.js.map +1 -0
- package/dist/chunk-WZLWAVSS.cjs +73 -0
- package/dist/chunk-WZLWAVSS.cjs.map +1 -0
- package/dist/chunk-X5YEOOPK.cjs +758 -0
- package/dist/chunk-X5YEOOPK.cjs.map +1 -0
- package/dist/chunk-X7R334SB.cjs +5 -0
- package/dist/chunk-X7R334SB.cjs.map +1 -0
- package/dist/chunk-XXNDL5SJ.cjs +432 -0
- package/dist/chunk-XXNDL5SJ.cjs.map +1 -0
- package/dist/chunk-YQELMJW5.js +429 -0
- package/dist/chunk-YQELMJW5.js.map +1 -0
- package/dist/components.cjs +551 -0
- package/dist/components.cjs.map +1 -0
- package/dist/components.d.cts +181 -0
- package/dist/components.d.ts +181 -0
- package/dist/components.js +483 -0
- package/dist/components.js.map +1 -0
- package/dist/core.cjs +283 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.d.cts +455 -0
- package/dist/core.d.ts +455 -0
- package/dist/core.js +241 -0
- package/dist/core.js.map +1 -0
- package/dist/hooks.cjs +324 -0
- package/dist/hooks.cjs.map +1 -0
- package/dist/hooks.d.cts +163 -0
- package/dist/hooks.d.ts +163 -0
- package/dist/hooks.js +277 -0
- package/dist/hooks.js.map +1 -0
- package/dist/i18n.cjs +26 -0
- package/dist/i18n.cjs.map +1 -0
- package/dist/i18n.d.cts +50 -0
- package/dist/i18n.d.ts +50 -0
- package/dist/i18n.js +5 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.cjs +466 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +80 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.js +438 -0
- package/dist/index.js.map +1 -0
- package/dist/interaction-tracker-D9P1Oq4j.d.cts +83 -0
- package/dist/interaction-tracker-D9P1Oq4j.d.ts +83 -0
- package/dist/json-render.cjs +23 -0
- package/dist/json-render.cjs.map +1 -0
- package/dist/json-render.d.cts +857 -0
- package/dist/json-render.d.ts +857 -0
- package/dist/json-render.js +6 -0
- package/dist/json-render.js.map +1 -0
- package/dist/live-chat-transport-4XLOIPOE.js +4 -0
- package/dist/live-chat-transport-4XLOIPOE.js.map +1 -0
- package/dist/live-chat-transport-ALVRGWX7.cjs +13 -0
- package/dist/live-chat-transport-ALVRGWX7.cjs.map +1 -0
- package/dist/select-B4l9yoyn.d.cts +99 -0
- package/dist/select-B4l9yoyn.d.ts +99 -0
- package/dist/styles.css +2 -0
- package/dist/theme.cjs +18 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +55 -0
- package/dist/theme.d.ts +55 -0
- package/dist/theme.js +5 -0
- package/dist/theme.js.map +1 -0
- package/dist/tools.cjs +32 -0
- package/dist/tools.cjs.map +1 -0
- package/dist/tools.d.cts +117 -0
- package/dist/tools.d.ts +117 -0
- package/dist/tools.js +11 -0
- package/dist/tools.js.map +1 -0
- package/dist/types-DKJ_-nbG.d.cts +349 -0
- package/dist/types-DKJ_-nbG.d.ts +349 -0
- package/dist/ui.cjs +667 -0
- package/dist/ui.cjs.map +1 -0
- package/dist/ui.d.cts +95 -0
- package/dist/ui.d.ts +95 -0
- package/dist/ui.js +414 -0
- package/dist/ui.js.map +1 -0
- package/package.json +255 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var react = require('react');
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
// src/providers/I18nProvider.tsx
|
|
8
|
+
var en = {
|
|
9
|
+
welcomeTitle: "Welcome to {clientName}",
|
|
10
|
+
welcomeSubtitle: "How can I assist you today? Select a topic or type your message below.",
|
|
11
|
+
searchKnowledgeBase: "Searching knowledge base...",
|
|
12
|
+
searchingFor: 'Searching for "{query}"...',
|
|
13
|
+
processing: "Processing...",
|
|
14
|
+
thinking: "Thinking...",
|
|
15
|
+
newConversation: "New conversation",
|
|
16
|
+
backToStart: "Back to start",
|
|
17
|
+
closeChat: "Close chat",
|
|
18
|
+
alwaysVerify: "Always verify AI responses",
|
|
19
|
+
poweredBy: "powered by",
|
|
20
|
+
startNewConversation: "Start New Conversation",
|
|
21
|
+
somethingWentWrong: "Something Went Wrong",
|
|
22
|
+
conversationTooLong: "Conversation Too Long",
|
|
23
|
+
conversationTooLongDesc: "The conversation has become too long to continue.",
|
|
24
|
+
somethingWentWrongDesc: "We encountered an issue. Please try again or start fresh.",
|
|
25
|
+
typeMessage: "Type a message...",
|
|
26
|
+
send: "Send",
|
|
27
|
+
aboutUs: "About Us",
|
|
28
|
+
aboutUsDesc: "Learn more about our services",
|
|
29
|
+
support: "Support",
|
|
30
|
+
supportDesc: "Get help with your questions",
|
|
31
|
+
features: "Features",
|
|
32
|
+
featuresDesc: "Discover what we can do",
|
|
33
|
+
search: "Search",
|
|
34
|
+
searchDesc: "Find specific information",
|
|
35
|
+
greeting: "Hi there \u{1F44B} How can I help you today?",
|
|
36
|
+
guest: "Guest",
|
|
37
|
+
guestDesc: "Just browsing",
|
|
38
|
+
customer: "Customer",
|
|
39
|
+
customerDesc: "Existing customer with questions",
|
|
40
|
+
partner: "Partner",
|
|
41
|
+
partnerDesc: "Business partner or professional",
|
|
42
|
+
aboutUsQuery: "Tell me about About Us",
|
|
43
|
+
supportQuery: "Tell me about Support",
|
|
44
|
+
featuresQuery: "Tell me about Features",
|
|
45
|
+
searchQuery: "Tell me about Search",
|
|
46
|
+
whatWentWrong: "What went wrong?",
|
|
47
|
+
wrongAnswer: "Wrong answer",
|
|
48
|
+
partialAnswer: "Partial answer",
|
|
49
|
+
hallucination: "Hallucination",
|
|
50
|
+
inappropriateTone: "Inappropriate tone",
|
|
51
|
+
addDetails: "Add details (optional)...",
|
|
52
|
+
submitting: "Submitting...",
|
|
53
|
+
submitFeedback: "Submit Feedback",
|
|
54
|
+
helpful: "Helpful",
|
|
55
|
+
notHelpful: "Not helpful",
|
|
56
|
+
copyResponse: "Copy response",
|
|
57
|
+
searchingProducts: "Searching products...",
|
|
58
|
+
searchingProductsFor: 'Searching products: "{query}"...',
|
|
59
|
+
sendingVerification: "Sending verification code...",
|
|
60
|
+
verifyingOrders: "Verifying and fetching orders...",
|
|
61
|
+
generatingLogin: "Generating login link...",
|
|
62
|
+
noProductsFound: "No products found",
|
|
63
|
+
noOrdersFound: "No orders found",
|
|
64
|
+
inStock: "In stock",
|
|
65
|
+
outOfStock: "Out of stock",
|
|
66
|
+
backorder: "Backorder",
|
|
67
|
+
sale: "Sale",
|
|
68
|
+
addToCart: "Add to Cart",
|
|
69
|
+
addedToCart: "Added to cart!",
|
|
70
|
+
addToCartError: "Failed to add to cart",
|
|
71
|
+
loginToStore: "Login to Store",
|
|
72
|
+
enterEmail: "Enter your email to verify",
|
|
73
|
+
sendCode: "Send verification code",
|
|
74
|
+
otpSentTo: "Verification code sent to {email}",
|
|
75
|
+
verifyCode: "Verify",
|
|
76
|
+
verifiedSuccess: "Verified successfully!",
|
|
77
|
+
resendCode: "Resend code",
|
|
78
|
+
invalidCode: "Invalid code, please try again",
|
|
79
|
+
selectVariation: "Select",
|
|
80
|
+
orderStatus_completed: "Completed",
|
|
81
|
+
orderStatus_processing: "Processing",
|
|
82
|
+
"orderStatus_on-hold": "On Hold",
|
|
83
|
+
orderStatus_pending: "Pending",
|
|
84
|
+
orderStatus_cancelled: "Cancelled",
|
|
85
|
+
orderStatus_failed: "Failed",
|
|
86
|
+
orderStatus_refunded: "Refunded",
|
|
87
|
+
cart: "Cart",
|
|
88
|
+
yourCart: "Your Cart",
|
|
89
|
+
cartItems: "{count} items",
|
|
90
|
+
cartEmpty: "Your cart is empty",
|
|
91
|
+
checkout: "Checkout",
|
|
92
|
+
cartTotal: "Total",
|
|
93
|
+
removeItem: "Remove",
|
|
94
|
+
liveChatConnecting: "Connecting you with an operator...",
|
|
95
|
+
liveChatPosition: "Position #{position}",
|
|
96
|
+
liveChatCancel: "Cancel",
|
|
97
|
+
liveChatChattingWith: "Chatting with {name}",
|
|
98
|
+
liveChatEndChat: "End Chat",
|
|
99
|
+
liveChatRateTitle: "How was your experience?",
|
|
100
|
+
liveChatRateThank: "Thank you for your feedback!",
|
|
101
|
+
liveChatBackToAI: "Back to AI Assistant",
|
|
102
|
+
liveChatSubmit: "Submit",
|
|
103
|
+
liveChatSkip: "Skip",
|
|
104
|
+
liveChatFeedbackPlaceholder: "Any additional feedback? (optional)",
|
|
105
|
+
liveChatTalkToHuman: "Talk to an operator",
|
|
106
|
+
liveChatIdentityTitle: "Please provide your details to connect with an operator",
|
|
107
|
+
liveChatIdentityName: "Your name",
|
|
108
|
+
liveChatIdentityEmail: "Your email",
|
|
109
|
+
liveChatIdentityConnect: "Connect",
|
|
110
|
+
liveChatIdentityContinue: "Continue",
|
|
111
|
+
liveChatRateExperience: "Rate your experience",
|
|
112
|
+
liveChatEnded: "Chat ended"
|
|
113
|
+
};
|
|
114
|
+
var he = {
|
|
115
|
+
welcomeTitle: "\u05D1\u05E8\u05D5\u05DB\u05D9\u05DD \u05D4\u05D1\u05D0\u05D9\u05DD \u05DC-{clientName}",
|
|
116
|
+
welcomeSubtitle: "\u05D0\u05D9\u05DA \u05D0\u05D5\u05DB\u05DC \u05DC\u05E2\u05D6\u05D5\u05E8 \u05D4\u05D9\u05D5\u05DD? \u05D1\u05D7\u05E8\u05D5 \u05E0\u05D5\u05E9\u05D0 \u05D0\u05D5 \u05D4\u05E7\u05DC\u05D9\u05D3\u05D5 \u05D4\u05D5\u05D3\u05E2\u05D4 \u05DC\u05DE\u05D8\u05D4.",
|
|
117
|
+
searchKnowledgeBase: "\u05DE\u05D7\u05E4\u05E9 \u05D1\u05DE\u05D0\u05D2\u05E8 \u05D4\u05D9\u05D3\u05E2...",
|
|
118
|
+
searchingFor: '\u05DE\u05D7\u05E4\u05E9 \u05D0\u05EA "{query}"...',
|
|
119
|
+
processing: "\u05DE\u05E2\u05D1\u05D3...",
|
|
120
|
+
thinking: "\u05D7\u05D5\u05E9\u05D1...",
|
|
121
|
+
newConversation: "\u05E9\u05D9\u05D7\u05D4 \u05D7\u05D3\u05E9\u05D4",
|
|
122
|
+
backToStart: "\u05D7\u05D6\u05E8\u05D4 \u05DC\u05D4\u05EA\u05D7\u05DC\u05D4",
|
|
123
|
+
closeChat: "\u05E1\u05D2\u05D5\u05E8 \u05E6'\u05D0\u05D8",
|
|
124
|
+
alwaysVerify: "\u05EA\u05DE\u05D9\u05D3 \u05DB\u05D3\u05D0\u05D9 \u05DC\u05D5\u05D5\u05D3\u05D0 \u05D0\u05EA \u05EA\u05E9\u05D5\u05D1\u05D5\u05EA \u05D4-AI",
|
|
125
|
+
poweredBy: "\u05DE\u05D5\u05E4\u05E2\u05DC \u05E2\u05DC \u05D9\u05D3\u05D9",
|
|
126
|
+
startNewConversation: "\u05D4\u05EA\u05D7\u05DC \u05E9\u05D9\u05D7\u05D4 \u05D7\u05D3\u05E9\u05D4",
|
|
127
|
+
somethingWentWrong: "\u05DE\u05E9\u05D4\u05D5 \u05D4\u05E9\u05EA\u05D1\u05E9",
|
|
128
|
+
conversationTooLong: "\u05D4\u05E9\u05D9\u05D7\u05D4 \u05D0\u05E8\u05D5\u05DB\u05D4 \u05DE\u05D3\u05D9",
|
|
129
|
+
conversationTooLongDesc: "\u05D4\u05E9\u05D9\u05D7\u05D4 \u05D4\u05E4\u05DB\u05D4 \u05DC\u05D0\u05E8\u05D5\u05DB\u05D4 \u05DE\u05D3\u05D9 \u05D1\u05E9\u05D1\u05D9\u05DC \u05DC\u05D4\u05DE\u05E9\u05D9\u05DA.",
|
|
130
|
+
somethingWentWrongDesc: "\u05E0\u05EA\u05E7\u05DC\u05E0\u05D5 \u05D1\u05D1\u05E2\u05D9\u05D4. \u05D0\u05E0\u05D0 \u05E0\u05E1\u05D5 \u05E9\u05D5\u05D1 \u05D0\u05D5 \u05D4\u05EA\u05D7\u05D9\u05DC\u05D5 \u05DE\u05D7\u05D3\u05E9.",
|
|
131
|
+
typeMessage: "\u05D4\u05E7\u05DC\u05D3 \u05D4\u05D5\u05D3\u05E2\u05D4...",
|
|
132
|
+
send: "\u05E9\u05DC\u05D7",
|
|
133
|
+
aboutUs: "\u05D0\u05D5\u05D3\u05D5\u05EA\u05D9\u05E0\u05D5",
|
|
134
|
+
aboutUsDesc: "\u05DC\u05DE\u05D3\u05D5 \u05E2\u05D5\u05D3 \u05E2\u05DC \u05D4\u05E9\u05D9\u05E8\u05D5\u05EA\u05D9\u05DD \u05E9\u05DC\u05E0\u05D5",
|
|
135
|
+
support: "\u05EA\u05DE\u05D9\u05DB\u05D4",
|
|
136
|
+
supportDesc: "\u05E7\u05D1\u05DC\u05D5 \u05E2\u05D6\u05E8\u05D4 \u05E2\u05DD \u05D4\u05E9\u05D0\u05DC\u05D5\u05EA \u05E9\u05DC\u05DB\u05DD",
|
|
137
|
+
features: "\u05E4\u05D9\u05E6'\u05E8\u05D9\u05DD",
|
|
138
|
+
featuresDesc: "\u05D2\u05DC\u05D5 \u05DE\u05D4 \u05D0\u05E0\u05D7\u05E0\u05D5 \u05D9\u05DB\u05D5\u05DC\u05D9\u05DD \u05DC\u05E2\u05E9\u05D5\u05EA",
|
|
139
|
+
search: "\u05D7\u05D9\u05E4\u05D5\u05E9",
|
|
140
|
+
searchDesc: "\u05DE\u05E6\u05D0\u05D5 \u05DE\u05D9\u05D3\u05E2 \u05E1\u05E4\u05E6\u05D9\u05E4\u05D9",
|
|
141
|
+
greeting: "\u05E9\u05DC\u05D5\u05DD \u{1F44B} \u05D0\u05D9\u05DA \u05D0\u05D5\u05DB\u05DC \u05DC\u05E2\u05D6\u05D5\u05E8 \u05DC\u05DB\u05DD \u05D4\u05D9\u05D5\u05DD?",
|
|
142
|
+
guest: "\u05D0\u05D5\u05E8\u05D7",
|
|
143
|
+
guestDesc: "\u05E8\u05E7 \u05D2\u05D5\u05DC\u05E9",
|
|
144
|
+
customer: "\u05DC\u05E7\u05D5\u05D7",
|
|
145
|
+
customerDesc: "\u05DC\u05E7\u05D5\u05D7 \u05E7\u05D9\u05D9\u05DD \u05E2\u05DD \u05E9\u05D0\u05DC\u05D5\u05EA",
|
|
146
|
+
partner: "\u05E9\u05D5\u05EA\u05E3",
|
|
147
|
+
partnerDesc: "\u05E9\u05D5\u05EA\u05E3 \u05E2\u05E1\u05E7\u05D9 \u05D0\u05D5 \u05D0\u05D9\u05E9 \u05DE\u05E7\u05E6\u05D5\u05E2",
|
|
148
|
+
aboutUsQuery: "\u05E1\u05E4\u05E8 \u05DC\u05D9 \u05E2\u05DC \u05D0\u05D5\u05D3\u05D5\u05EA\u05D9\u05E0\u05D5",
|
|
149
|
+
supportQuery: "\u05E1\u05E4\u05E8 \u05DC\u05D9 \u05E2\u05DC \u05EA\u05DE\u05D9\u05DB\u05D4",
|
|
150
|
+
featuresQuery: "\u05E1\u05E4\u05E8 \u05DC\u05D9 \u05E2\u05DC \u05E4\u05D9\u05E6'\u05E8\u05D9\u05DD",
|
|
151
|
+
searchQuery: "\u05E1\u05E4\u05E8 \u05DC\u05D9 \u05E2\u05DC \u05D7\u05D9\u05E4\u05D5\u05E9",
|
|
152
|
+
whatWentWrong: "\u05DE\u05D4 \u05D4\u05E9\u05EA\u05D1\u05E9?",
|
|
153
|
+
wrongAnswer: "\u05EA\u05E9\u05D5\u05D1\u05D4 \u05DC\u05D0 \u05E0\u05DB\u05D5\u05E0\u05D4",
|
|
154
|
+
partialAnswer: "\u05EA\u05E9\u05D5\u05D1\u05D4 \u05D7\u05DC\u05E7\u05D9\u05EA",
|
|
155
|
+
hallucination: "\u05D4\u05D6\u05D9\u05D4 (\u05DE\u05D9\u05D3\u05E2 \u05DE\u05D5\u05DE\u05E6\u05D0)",
|
|
156
|
+
inappropriateTone: "\u05D8\u05D5\u05DF \u05DC\u05D0 \u05D4\u05D5\u05DC\u05DD",
|
|
157
|
+
addDetails: "\u05D4\u05D5\u05E1\u05D9\u05E4\u05D5 \u05E4\u05E8\u05D8\u05D9\u05DD (\u05D0\u05D5\u05E4\u05E6\u05D9\u05D5\u05E0\u05DC\u05D9)...",
|
|
158
|
+
submitting: "\u05E9\u05D5\u05DC\u05D7...",
|
|
159
|
+
submitFeedback: "\u05E9\u05DC\u05D7 \u05DE\u05E9\u05D5\u05D1",
|
|
160
|
+
helpful: "\u05E2\u05D5\u05D6\u05E8",
|
|
161
|
+
notHelpful: "\u05DC\u05D0 \u05E2\u05D5\u05D6\u05E8",
|
|
162
|
+
copyResponse: "\u05D4\u05E2\u05EA\u05E7 \u05EA\u05E9\u05D5\u05D1\u05D4",
|
|
163
|
+
searchingProducts: "\u05DE\u05D7\u05E4\u05E9 \u05DE\u05D5\u05E6\u05E8\u05D9\u05DD...",
|
|
164
|
+
searchingProductsFor: '\u05DE\u05D7\u05E4\u05E9 \u05DE\u05D5\u05E6\u05E8\u05D9\u05DD: "{query}"...',
|
|
165
|
+
sendingVerification: "\u05E9\u05D5\u05DC\u05D7 \u05E7\u05D5\u05D3 \u05D0\u05D9\u05DE\u05D5\u05EA...",
|
|
166
|
+
verifyingOrders: "\u05DE\u05D0\u05DE\u05EA \u05D5\u05DE\u05D1\u05D9\u05D0 \u05D4\u05D6\u05DE\u05E0\u05D5\u05EA...",
|
|
167
|
+
generatingLogin: "\u05DE\u05D9\u05D9\u05E6\u05E8 \u05E7\u05D9\u05E9\u05D5\u05E8 \u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA...",
|
|
168
|
+
noProductsFound: "\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05DE\u05D5\u05E6\u05E8\u05D9\u05DD",
|
|
169
|
+
noOrdersFound: "\u05DC\u05D0 \u05E0\u05DE\u05E6\u05D0\u05D5 \u05D4\u05D6\u05DE\u05E0\u05D5\u05EA",
|
|
170
|
+
inStock: "\u05D1\u05DE\u05DC\u05D0\u05D9",
|
|
171
|
+
outOfStock: "\u05D0\u05D6\u05DC \u05DE\u05D4\u05DE\u05DC\u05D0\u05D9",
|
|
172
|
+
backorder: "\u05D1\u05D4\u05D6\u05DE\u05E0\u05D4 \u05DE\u05E8\u05D0\u05E9",
|
|
173
|
+
sale: "\u05DE\u05D1\u05E6\u05E2",
|
|
174
|
+
addToCart: "\u05D4\u05D5\u05E1\u05E3 \u05DC\u05E1\u05DC",
|
|
175
|
+
addedToCart: "\u05E0\u05D5\u05E1\u05E3 \u05DC\u05E1\u05DC!",
|
|
176
|
+
addToCartError: "\u05E9\u05D2\u05D9\u05D0\u05D4 \u05D1\u05D4\u05D5\u05E1\u05E4\u05D4 \u05DC\u05E1\u05DC",
|
|
177
|
+
loginToStore: "\u05D4\u05EA\u05D7\u05D1\u05E8 \u05DC\u05D7\u05E0\u05D5\u05EA",
|
|
178
|
+
enterEmail: "\u05D4\u05D6\u05D9\u05E0\u05D5 \u05D0\u05D9\u05DE\u05D9\u05D9\u05DC \u05DC\u05D0\u05D9\u05DE\u05D5\u05EA",
|
|
179
|
+
sendCode: "\u05E9\u05DC\u05D7 \u05E7\u05D5\u05D3 \u05D0\u05D9\u05DE\u05D5\u05EA",
|
|
180
|
+
otpSentTo: "\u05E7\u05D5\u05D3 \u05D0\u05D9\u05DE\u05D5\u05EA \u05E0\u05E9\u05DC\u05D7 \u05DC-{email}",
|
|
181
|
+
verifyCode: "\u05D0\u05DE\u05EA",
|
|
182
|
+
verifiedSuccess: "\u05D0\u05D5\u05DE\u05EA \u05D1\u05D4\u05E6\u05DC\u05D7\u05D4!",
|
|
183
|
+
resendCode: "\u05E9\u05DC\u05D7 \u05E9\u05D5\u05D1",
|
|
184
|
+
invalidCode: "\u05E7\u05D5\u05D3 \u05E9\u05D2\u05D5\u05D9, \u05E0\u05E1\u05D5 \u05E9\u05D5\u05D1",
|
|
185
|
+
selectVariation: "\u05D1\u05D7\u05E8",
|
|
186
|
+
orderStatus_completed: "\u05D4\u05D5\u05E9\u05DC\u05DE\u05D4",
|
|
187
|
+
orderStatus_processing: "\u05D1\u05D8\u05D9\u05E4\u05D5\u05DC",
|
|
188
|
+
"orderStatus_on-hold": "\u05D1\u05D4\u05DE\u05EA\u05E0\u05D4",
|
|
189
|
+
orderStatus_pending: "\u05DE\u05DE\u05EA\u05D9\u05E0\u05D4",
|
|
190
|
+
orderStatus_cancelled: "\u05D1\u05D5\u05D8\u05DC\u05D4",
|
|
191
|
+
orderStatus_failed: "\u05E0\u05DB\u05E9\u05DC\u05D4",
|
|
192
|
+
orderStatus_refunded: "\u05D4\u05D5\u05D7\u05D6\u05E8\u05D4",
|
|
193
|
+
cart: "\u05E1\u05DC",
|
|
194
|
+
yourCart: "\u05D4\u05E1\u05DC \u05E9\u05DC\u05DA",
|
|
195
|
+
cartItems: "{count} \u05E4\u05E8\u05D9\u05D8\u05D9\u05DD",
|
|
196
|
+
cartEmpty: "\u05D4\u05E1\u05DC \u05E8\u05D9\u05E7",
|
|
197
|
+
checkout: "\u05DC\u05EA\u05E9\u05DC\u05D5\u05DD",
|
|
198
|
+
cartTotal: "\u05E1\u05D4\u05F4\u05DB",
|
|
199
|
+
removeItem: "\u05D4\u05E1\u05E8",
|
|
200
|
+
liveChatConnecting: "\u05DE\u05D7\u05D1\u05E8 \u05D0\u05D5\u05EA\u05DA \u05DC\u05E0\u05E6\u05D9\u05D2...",
|
|
201
|
+
liveChatPosition: "\u05DE\u05D9\u05E7\u05D5\u05DD #{position}",
|
|
202
|
+
liveChatCancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
|
|
203
|
+
liveChatChattingWith: "\u05DE\u05E9\u05D5\u05D7\u05D7 \u05E2\u05DD {name}",
|
|
204
|
+
liveChatEndChat: "\u05E1\u05D9\u05D5\u05DD \u05E9\u05D9\u05D7\u05D4",
|
|
205
|
+
liveChatRateTitle: "\u05D0\u05D9\u05DA \u05D4\u05D9\u05D4 \u05D4\u05E9\u05D9\u05E8\u05D5\u05EA?",
|
|
206
|
+
liveChatRateThank: "\u05EA\u05D5\u05D3\u05D4 \u05E2\u05DC \u05D4\u05DE\u05E9\u05D5\u05D1!",
|
|
207
|
+
liveChatBackToAI: "\u05D7\u05D6\u05E8\u05D4 \u05DC\u05E2\u05D5\u05D6\u05E8 AI",
|
|
208
|
+
liveChatSubmit: "\u05E9\u05DC\u05D7",
|
|
209
|
+
liveChatSkip: "\u05D3\u05DC\u05D2",
|
|
210
|
+
liveChatFeedbackPlaceholder: "\u05DE\u05E9\u05D5\u05D1 \u05E0\u05D5\u05E1\u05E3 (\u05D0\u05D5\u05E4\u05E6\u05D9\u05D5\u05E0\u05DC\u05D9)...",
|
|
211
|
+
liveChatTalkToHuman: "\u05D3\u05D1\u05E8 \u05E2\u05DD \u05E0\u05E6\u05D9\u05D2",
|
|
212
|
+
liveChatIdentityTitle: "\u05D0\u05E0\u05D0 \u05DE\u05DC\u05D0/\u05D9 \u05D0\u05EA \u05D4\u05E4\u05E8\u05D8\u05D9\u05DD \u05DB\u05D3\u05D9 \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8 \u05DC\u05E0\u05E6\u05D9\u05D2",
|
|
213
|
+
liveChatIdentityName: "\u05E9\u05DD",
|
|
214
|
+
liveChatIdentityEmail: "\u05D0\u05D9\u05DE\u05D9\u05D9\u05DC",
|
|
215
|
+
liveChatIdentityConnect: "\u05D4\u05EA\u05D7\u05D1\u05E8",
|
|
216
|
+
liveChatIdentityContinue: "\u05D4\u05DE\u05E9\u05DA",
|
|
217
|
+
liveChatRateExperience: "\u05D3\u05E8\u05D2\u05D5 \u05D0\u05EA \u05D4\u05D7\u05D5\u05D5\u05D9\u05D4 \u05E9\u05DC\u05DB\u05DD",
|
|
218
|
+
liveChatEnded: "\u05D4\u05E9\u05D9\u05D7\u05D4 \u05D4\u05E1\u05EA\u05D9\u05D9\u05DE\u05D4"
|
|
219
|
+
};
|
|
220
|
+
var builtInTranslations = { en, he };
|
|
221
|
+
var customTranslations = {};
|
|
222
|
+
function addLanguage(code, translations) {
|
|
223
|
+
const base = customTranslations[code] || builtInTranslations[code] || en;
|
|
224
|
+
customTranslations[code] = { ...base, ...translations };
|
|
225
|
+
}
|
|
226
|
+
function resolve(language, key, overrides, params) {
|
|
227
|
+
let text = overrides?.[key] || customTranslations[language]?.[key] || builtInTranslations[language]?.[key] || builtInTranslations["en"][key] || key;
|
|
228
|
+
if (params) {
|
|
229
|
+
Object.entries(params).forEach(([k, v]) => {
|
|
230
|
+
text = text.replace(`{${k}}`, v);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
return text;
|
|
234
|
+
}
|
|
235
|
+
var RTL_LANGUAGES = /* @__PURE__ */ new Set(["he", "ar", "fa", "ur"]);
|
|
236
|
+
function isRTL(language) {
|
|
237
|
+
return RTL_LANGUAGES.has(language);
|
|
238
|
+
}
|
|
239
|
+
var I18nContext = react.createContext(null);
|
|
240
|
+
function I18nProvider({
|
|
241
|
+
language: initialLanguage = "en",
|
|
242
|
+
translations: overrides,
|
|
243
|
+
children
|
|
244
|
+
}) {
|
|
245
|
+
const [language, setLanguage] = react.useState(initialLanguage);
|
|
246
|
+
const t = react.useCallback(
|
|
247
|
+
(key, params) => resolve(language, key, overrides, params),
|
|
248
|
+
[language, overrides]
|
|
249
|
+
);
|
|
250
|
+
const direction = isRTL(language) ? "rtl" : "ltr";
|
|
251
|
+
const value = react.useMemo(
|
|
252
|
+
() => ({ t, language, setLanguage, direction }),
|
|
253
|
+
[t, language, direction]
|
|
254
|
+
);
|
|
255
|
+
return /* @__PURE__ */ jsxRuntime.jsx(I18nContext.Provider, { value, children });
|
|
256
|
+
}
|
|
257
|
+
function useI18n() {
|
|
258
|
+
const ctx = react.useContext(I18nContext);
|
|
259
|
+
if (!ctx) {
|
|
260
|
+
throw new Error("useI18n must be used within an I18nProvider");
|
|
261
|
+
}
|
|
262
|
+
return ctx;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
exports.I18nProvider = I18nProvider;
|
|
266
|
+
exports.addLanguage = addLanguage;
|
|
267
|
+
exports.isRTL = isRTL;
|
|
268
|
+
exports.useI18n = useI18n;
|
|
269
|
+
//# sourceMappingURL=chunk-3MP2EGEJ.cjs.map
|
|
270
|
+
//# sourceMappingURL=chunk-3MP2EGEJ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/providers/I18nProvider.tsx"],"names":["createContext","useState","useCallback","useMemo","jsx","useContext"],"mappings":"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","file":"chunk-3MP2EGEJ.cjs","sourcesContent":["\"use client\";\n\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useMemo,\n type ReactNode,\n} from \"react\";\n\n/**\n * All supported translation keys.\n */\nexport type TranslationKeys =\n | \"welcomeTitle\"\n | \"welcomeSubtitle\"\n | \"searchKnowledgeBase\"\n | \"searchingFor\"\n | \"processing\"\n | \"thinking\"\n | \"newConversation\"\n | \"backToStart\"\n | \"closeChat\"\n | \"alwaysVerify\"\n | \"poweredBy\"\n | \"startNewConversation\"\n | \"somethingWentWrong\"\n | \"conversationTooLong\"\n | \"conversationTooLongDesc\"\n | \"somethingWentWrongDesc\"\n | \"typeMessage\"\n | \"send\"\n | \"aboutUs\"\n | \"aboutUsDesc\"\n | \"support\"\n | \"supportDesc\"\n | \"features\"\n | \"featuresDesc\"\n | \"search\"\n | \"searchDesc\"\n | \"greeting\"\n | \"guest\"\n | \"guestDesc\"\n | \"customer\"\n | \"customerDesc\"\n | \"partner\"\n | \"partnerDesc\"\n | \"aboutUsQuery\"\n | \"supportQuery\"\n | \"featuresQuery\"\n | \"searchQuery\"\n | \"whatWentWrong\"\n | \"wrongAnswer\"\n | \"partialAnswer\"\n | \"hallucination\"\n | \"inappropriateTone\"\n | \"addDetails\"\n | \"submitting\"\n | \"submitFeedback\"\n | \"helpful\"\n | \"notHelpful\"\n | \"copyResponse\"\n | \"searchingProducts\"\n | \"searchingProductsFor\"\n | \"sendingVerification\"\n | \"verifyingOrders\"\n | \"generatingLogin\"\n | \"noProductsFound\"\n | \"noOrdersFound\"\n | \"inStock\"\n | \"outOfStock\"\n | \"backorder\"\n | \"sale\"\n | \"addToCart\"\n | \"addedToCart\"\n | \"addToCartError\"\n | \"loginToStore\"\n | \"enterEmail\"\n | \"sendCode\"\n | \"otpSentTo\"\n | \"verifyCode\"\n | \"verifiedSuccess\"\n | \"resendCode\"\n | \"invalidCode\"\n | \"selectVariation\"\n | \"orderStatus_completed\"\n | \"orderStatus_processing\"\n | \"orderStatus_on-hold\"\n | \"orderStatus_pending\"\n | \"orderStatus_cancelled\"\n | \"orderStatus_failed\"\n | \"orderStatus_refunded\"\n | \"cart\"\n | \"yourCart\"\n | \"cartItems\"\n | \"cartEmpty\"\n | \"checkout\"\n | \"cartTotal\"\n | \"removeItem\"\n | \"liveChatConnecting\"\n | \"liveChatPosition\"\n | \"liveChatCancel\"\n | \"liveChatChattingWith\"\n | \"liveChatEndChat\"\n | \"liveChatRateTitle\"\n | \"liveChatRateThank\"\n | \"liveChatBackToAI\"\n | \"liveChatSubmit\"\n | \"liveChatSkip\"\n | \"liveChatFeedbackPlaceholder\"\n | \"liveChatTalkToHuman\"\n | \"liveChatIdentityTitle\"\n | \"liveChatIdentityName\"\n | \"liveChatIdentityEmail\"\n | \"liveChatIdentityConnect\"\n | \"liveChatIdentityContinue\"\n | \"liveChatRateExperience\"\n | \"liveChatEnded\";\n\n/** A complete set of translations for a language. */\nexport type TranslationMap = Record<TranslationKeys, string>;\n\n/** Built-in English translations. */\nconst en: TranslationMap = {\n welcomeTitle: \"Welcome to {clientName}\",\n welcomeSubtitle: \"How can I assist you today? Select a topic or type your message below.\",\n searchKnowledgeBase: \"Searching knowledge base...\",\n searchingFor: 'Searching for \"{query}\"...',\n processing: \"Processing...\",\n thinking: \"Thinking...\",\n newConversation: \"New conversation\",\n backToStart: \"Back to start\",\n closeChat: \"Close chat\",\n alwaysVerify: \"Always verify AI responses\",\n poweredBy: \"powered by\",\n startNewConversation: \"Start New Conversation\",\n somethingWentWrong: \"Something Went Wrong\",\n conversationTooLong: \"Conversation Too Long\",\n conversationTooLongDesc: \"The conversation has become too long to continue.\",\n somethingWentWrongDesc: \"We encountered an issue. Please try again or start fresh.\",\n typeMessage: \"Type a message...\",\n send: \"Send\",\n aboutUs: \"About Us\",\n aboutUsDesc: \"Learn more about our services\",\n support: \"Support\",\n supportDesc: \"Get help with your questions\",\n features: \"Features\",\n featuresDesc: \"Discover what we can do\",\n search: \"Search\",\n searchDesc: \"Find specific information\",\n greeting: \"Hi there 👋 How can I help you today?\",\n guest: \"Guest\",\n guestDesc: \"Just browsing\",\n customer: \"Customer\",\n customerDesc: \"Existing customer with questions\",\n partner: \"Partner\",\n partnerDesc: \"Business partner or professional\",\n aboutUsQuery: \"Tell me about About Us\",\n supportQuery: \"Tell me about Support\",\n featuresQuery: \"Tell me about Features\",\n searchQuery: \"Tell me about Search\",\n whatWentWrong: \"What went wrong?\",\n wrongAnswer: \"Wrong answer\",\n partialAnswer: \"Partial answer\",\n hallucination: \"Hallucination\",\n inappropriateTone: \"Inappropriate tone\",\n addDetails: \"Add details (optional)...\",\n submitting: \"Submitting...\",\n submitFeedback: \"Submit Feedback\",\n helpful: \"Helpful\",\n notHelpful: \"Not helpful\",\n copyResponse: \"Copy response\",\n searchingProducts: \"Searching products...\",\n searchingProductsFor: 'Searching products: \"{query}\"...',\n sendingVerification: \"Sending verification code...\",\n verifyingOrders: \"Verifying and fetching orders...\",\n generatingLogin: \"Generating login link...\",\n noProductsFound: \"No products found\",\n noOrdersFound: \"No orders found\",\n inStock: \"In stock\",\n outOfStock: \"Out of stock\",\n backorder: \"Backorder\",\n sale: \"Sale\",\n addToCart: \"Add to Cart\",\n addedToCart: \"Added to cart!\",\n addToCartError: \"Failed to add to cart\",\n loginToStore: \"Login to Store\",\n enterEmail: \"Enter your email to verify\",\n sendCode: \"Send verification code\",\n otpSentTo: \"Verification code sent to {email}\",\n verifyCode: \"Verify\",\n verifiedSuccess: \"Verified successfully!\",\n resendCode: \"Resend code\",\n invalidCode: \"Invalid code, please try again\",\n selectVariation: \"Select\",\n orderStatus_completed: \"Completed\",\n orderStatus_processing: \"Processing\",\n \"orderStatus_on-hold\": \"On Hold\",\n orderStatus_pending: \"Pending\",\n orderStatus_cancelled: \"Cancelled\",\n orderStatus_failed: \"Failed\",\n orderStatus_refunded: \"Refunded\",\n cart: \"Cart\",\n yourCart: \"Your Cart\",\n cartItems: \"{count} items\",\n cartEmpty: \"Your cart is empty\",\n checkout: \"Checkout\",\n cartTotal: \"Total\",\n removeItem: \"Remove\",\n liveChatConnecting: \"Connecting you with an operator...\",\n liveChatPosition: \"Position #{position}\",\n liveChatCancel: \"Cancel\",\n liveChatChattingWith: \"Chatting with {name}\",\n liveChatEndChat: \"End Chat\",\n liveChatRateTitle: \"How was your experience?\",\n liveChatRateThank: \"Thank you for your feedback!\",\n liveChatBackToAI: \"Back to AI Assistant\",\n liveChatSubmit: \"Submit\",\n liveChatSkip: \"Skip\",\n liveChatFeedbackPlaceholder: \"Any additional feedback? (optional)\",\n liveChatTalkToHuman: \"Talk to an operator\",\n liveChatIdentityTitle: \"Please provide your details to connect with an operator\",\n liveChatIdentityName: \"Your name\",\n liveChatIdentityEmail: \"Your email\",\n liveChatIdentityConnect: \"Connect\",\n liveChatIdentityContinue: \"Continue\",\n liveChatRateExperience: \"Rate your experience\",\n liveChatEnded: \"Chat ended\",\n};\n\n/** Built-in Hebrew translations. */\nconst he: TranslationMap = {\n welcomeTitle: \"ברוכים הבאים ל-{clientName}\",\n welcomeSubtitle: \"איך אוכל לעזור היום? בחרו נושא או הקלידו הודעה למטה.\",\n searchKnowledgeBase: \"מחפש במאגר הידע...\",\n searchingFor: 'מחפש את \"{query}\"...',\n processing: \"מעבד...\",\n thinking: \"חושב...\",\n newConversation: \"שיחה חדשה\",\n backToStart: \"חזרה להתחלה\",\n closeChat: \"סגור צ'אט\",\n alwaysVerify: \"תמיד כדאי לוודא את תשובות ה-AI\",\n poweredBy: \"מופעל על ידי\",\n startNewConversation: \"התחל שיחה חדשה\",\n somethingWentWrong: \"משהו השתבש\",\n conversationTooLong: \"השיחה ארוכה מדי\",\n conversationTooLongDesc: \"השיחה הפכה לארוכה מדי בשביל להמשיך.\",\n somethingWentWrongDesc: \"נתקלנו בבעיה. אנא נסו שוב או התחילו מחדש.\",\n typeMessage: \"הקלד הודעה...\",\n send: \"שלח\",\n aboutUs: \"אודותינו\",\n aboutUsDesc: \"למדו עוד על השירותים שלנו\",\n support: \"תמיכה\",\n supportDesc: \"קבלו עזרה עם השאלות שלכם\",\n features: \"פיצ'רים\",\n featuresDesc: \"גלו מה אנחנו יכולים לעשות\",\n search: \"חיפוש\",\n searchDesc: \"מצאו מידע ספציפי\",\n greeting: \"שלום 👋 איך אוכל לעזור לכם היום?\",\n guest: \"אורח\",\n guestDesc: \"רק גולש\",\n customer: \"לקוח\",\n customerDesc: \"לקוח קיים עם שאלות\",\n partner: \"שותף\",\n partnerDesc: \"שותף עסקי או איש מקצוע\",\n aboutUsQuery: \"ספר לי על אודותינו\",\n supportQuery: \"ספר לי על תמיכה\",\n featuresQuery: \"ספר לי על פיצ'רים\",\n searchQuery: \"ספר לי על חיפוש\",\n whatWentWrong: \"מה השתבש?\",\n wrongAnswer: \"תשובה לא נכונה\",\n partialAnswer: \"תשובה חלקית\",\n hallucination: \"הזיה (מידע מומצא)\",\n inappropriateTone: \"טון לא הולם\",\n addDetails: \"הוסיפו פרטים (אופציונלי)...\",\n submitting: \"שולח...\",\n submitFeedback: \"שלח משוב\",\n helpful: \"עוזר\",\n notHelpful: \"לא עוזר\",\n copyResponse: \"העתק תשובה\",\n searchingProducts: \"מחפש מוצרים...\",\n searchingProductsFor: 'מחפש מוצרים: \"{query}\"...',\n sendingVerification: \"שולח קוד אימות...\",\n verifyingOrders: \"מאמת ומביא הזמנות...\",\n generatingLogin: \"מייצר קישור התחברות...\",\n noProductsFound: \"לא נמצאו מוצרים\",\n noOrdersFound: \"לא נמצאו הזמנות\",\n inStock: \"במלאי\",\n outOfStock: \"אזל מהמלאי\",\n backorder: \"בהזמנה מראש\",\n sale: \"מבצע\",\n addToCart: \"הוסף לסל\",\n addedToCart: \"נוסף לסל!\",\n addToCartError: \"שגיאה בהוספה לסל\",\n loginToStore: \"התחבר לחנות\",\n enterEmail: \"הזינו אימייל לאימות\",\n sendCode: \"שלח קוד אימות\",\n otpSentTo: \"קוד אימות נשלח ל-{email}\",\n verifyCode: \"אמת\",\n verifiedSuccess: \"אומת בהצלחה!\",\n resendCode: \"שלח שוב\",\n invalidCode: \"קוד שגוי, נסו שוב\",\n selectVariation: \"בחר\",\n orderStatus_completed: \"הושלמה\",\n orderStatus_processing: \"בטיפול\",\n \"orderStatus_on-hold\": \"בהמתנה\",\n orderStatus_pending: \"ממתינה\",\n orderStatus_cancelled: \"בוטלה\",\n orderStatus_failed: \"נכשלה\",\n orderStatus_refunded: \"הוחזרה\",\n cart: \"סל\",\n yourCart: \"הסל שלך\",\n cartItems: \"{count} פריטים\",\n cartEmpty: \"הסל ריק\",\n checkout: \"לתשלום\",\n cartTotal: \"סה״כ\",\n removeItem: \"הסר\",\n liveChatConnecting: \"מחבר אותך לנציג...\",\n liveChatPosition: \"מיקום #{position}\",\n liveChatCancel: \"ביטול\",\n liveChatChattingWith: \"משוחח עם {name}\",\n liveChatEndChat: \"סיום שיחה\",\n liveChatRateTitle: \"איך היה השירות?\",\n liveChatRateThank: \"תודה על המשוב!\",\n liveChatBackToAI: \"חזרה לעוזר AI\",\n liveChatSubmit: \"שלח\",\n liveChatSkip: \"דלג\",\n liveChatFeedbackPlaceholder: \"משוב נוסף (אופציונלי)...\",\n liveChatTalkToHuman: \"דבר עם נציג\",\n liveChatIdentityTitle: \"אנא מלא/י את הפרטים כדי להתחבר לנציג\",\n liveChatIdentityName: \"שם\",\n liveChatIdentityEmail: \"אימייל\",\n liveChatIdentityConnect: \"התחבר\",\n liveChatIdentityContinue: \"המשך\",\n liveChatRateExperience: \"דרגו את החוויה שלכם\",\n liveChatEnded: \"השיחה הסתיימה\",\n};\n\n/** Built-in translation registry. */\nconst builtInTranslations: Record<string, TranslationMap> = { en, he };\n\n/** Registry for dynamically added languages. */\nconst customTranslations: Record<string, TranslationMap> = {};\n\n/**\n * Register a new language at runtime. Merges with any existing translations.\n *\n * @param code - Language code (e.g. \"fr\", \"es\")\n * @param translations - Full or partial translation map\n */\nexport function addLanguage(\n code: string,\n translations: Partial<TranslationMap>\n): void {\n const base = customTranslations[code] || builtInTranslations[code] || en;\n customTranslations[code] = { ...base, ...translations };\n}\n\n/** Resolve a translation string for the given language and key. */\nfunction resolve(\n language: string,\n key: TranslationKeys,\n overrides?: Partial<TranslationMap>,\n params?: Record<string, string>\n): string {\n // Priority: overrides > custom > built-in > fallback to English\n let text =\n overrides?.[key] ||\n customTranslations[language]?.[key] ||\n builtInTranslations[language]?.[key] ||\n builtInTranslations[\"en\"][key] ||\n key;\n\n if (params) {\n Object.entries(params).forEach(([k, v]) => {\n text = text.replace(`{${k}}`, v);\n });\n }\n return text;\n}\n\n/** RTL language codes. */\nconst RTL_LANGUAGES = new Set([\"he\", \"ar\", \"fa\", \"ur\"]);\n\n/** Returns true if the given language code is RTL. */\nexport function isRTL(language: string): boolean {\n return RTL_LANGUAGES.has(language);\n}\n\ninterface I18nContextValue {\n /** Translate a key, with optional interpolation params. */\n t: (key: TranslationKeys, params?: Record<string, string>) => string;\n /** Current language code. */\n language: string;\n /** Change the active language at runtime. */\n setLanguage: (lang: string) => void;\n /** Current text direction. */\n direction: \"ltr\" | \"rtl\";\n}\n\nconst I18nContext = createContext<I18nContextValue | null>(null);\n\n/** Props for the I18nProvider component. */\nexport interface I18nProviderProps {\n /** Active language code. Defaults to \"en\". */\n language?: string;\n /** Per-key translation overrides applied on top of built-in strings. */\n translations?: Partial<TranslationMap>;\n children: ReactNode;\n}\n\n/**\n * Provides i18n context to descendant components.\n * Supports built-in \"en\" and \"he\", dynamic languages via `addLanguage()`,\n * and per-instance overrides via the `translations` prop.\n */\nexport function I18nProvider({\n language: initialLanguage = \"en\",\n translations: overrides,\n children,\n}: I18nProviderProps) {\n const [language, setLanguage] = useState(initialLanguage);\n\n const t = useCallback(\n (key: TranslationKeys, params?: Record<string, string>) =>\n resolve(language, key, overrides, params),\n [language, overrides]\n );\n\n const direction = isRTL(language) ? \"rtl\" : \"ltr\";\n\n const value = useMemo<I18nContextValue>(\n () => ({ t, language, setLanguage, direction }),\n [t, language, direction]\n );\n\n return <I18nContext.Provider value={value}>{children}</I18nContext.Provider>;\n}\n\n/**\n * Returns the i18n context: `t()` translation function, current language, and `setLanguage`.\n * Must be used within an `I18nProvider`.\n */\nexport function useI18n(): I18nContextValue {\n const ctx = useContext(I18nContext);\n if (!ctx) {\n throw new Error(\"useI18n must be used within an I18nProvider\");\n }\n return ctx;\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { clsx } from 'clsx';
|
|
3
|
+
import { twMerge } from 'tailwind-merge';
|
|
4
|
+
|
|
5
|
+
// src/core/utils.ts
|
|
6
|
+
function cn(...inputs) {
|
|
7
|
+
return twMerge(clsx(inputs));
|
|
8
|
+
}
|
|
9
|
+
function addUtmParams(url) {
|
|
10
|
+
if (isSsr()) return url;
|
|
11
|
+
try {
|
|
12
|
+
const urlObj = new URL(url);
|
|
13
|
+
urlObj.searchParams.set("utm_source", "chat");
|
|
14
|
+
urlObj.searchParams.set("utm_medium", "referral");
|
|
15
|
+
return urlObj.toString();
|
|
16
|
+
} catch {
|
|
17
|
+
return url;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function isSsr() {
|
|
21
|
+
return typeof window === "undefined";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { addUtmParams, cn, isSsr };
|
|
25
|
+
//# sourceMappingURL=chunk-3RW7O444.js.map
|
|
26
|
+
//# sourceMappingURL=chunk-3RW7O444.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/utils.ts"],"names":[],"mappings":";;;;AAcO,SAAS,MAAM,MAAA,EAA8B;AAClD,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;AAUO,SAAS,aAAa,GAAA,EAAqB;AAChD,EAAA,IAAI,KAAA,IAAS,OAAO,GAAA;AACpB,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,GAAG,CAAA;AAC1B,IAAA,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,YAAA,EAAc,MAAM,CAAA;AAC5C,IAAA,MAAA,CAAO,YAAA,CAAa,GAAA,CAAI,YAAA,EAAc,UAAU,CAAA;AAChD,IAAA,OAAO,OAAO,QAAA,EAAS;AAAA,EACzB,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,GAAA;AAAA,EACT;AACF;AAMO,SAAS,KAAA,GAAiB;AAC/B,EAAA,OAAO,OAAO,MAAA,KAAW,WAAA;AAC3B","file":"chunk-3RW7O444.js","sourcesContent":["\"use client\";\n\nimport { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge Tailwind CSS class names with conflict resolution.\n *\n * Combines `clsx` (conditional classes) with `tailwind-merge` (deduplication).\n *\n * @example\n * cn(\"px-2 py-1\", condition && \"bg-red-500\", \"px-4\")\n * // → \"py-1 px-4 bg-red-500\" (px-2 is overridden by px-4)\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n\n/**\n * Append UTM parameters to a URL for analytics tracking.\n *\n * If the URL is malformed, it is returned unchanged.\n *\n * @param url - The target URL\n * @returns The URL with `utm_source=chat` and `utm_medium=referral` appended\n */\nexport function addUtmParams(url: string): string {\n if (isSsr()) return url;\n try {\n const urlObj = new URL(url);\n urlObj.searchParams.set(\"utm_source\", \"chat\");\n urlObj.searchParams.set(\"utm_medium\", \"referral\");\n return urlObj.toString();\n } catch {\n return url;\n }\n}\n\n/**\n * Returns `true` when running in a server-side rendering context\n * (i.e. `window` is not available).\n */\nexport function isSsr(): boolean {\n return typeof window === \"undefined\";\n}\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from './chunk-3RW7O444.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
5
|
+
import { cva } from 'class-variance-authority';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var buttonVariants = cva(
|
|
9
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
variant: {
|
|
13
|
+
default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
|
14
|
+
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
|
15
|
+
outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
|
16
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
|
17
|
+
ghost: "hover:bg-accent hover:text-accent-foreground",
|
|
18
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
19
|
+
},
|
|
20
|
+
size: {
|
|
21
|
+
default: "h-9 px-4 py-2",
|
|
22
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
23
|
+
lg: "h-10 rounded-md px-8",
|
|
24
|
+
icon: "h-9 w-9",
|
|
25
|
+
"icon-sm": "h-7 w-7"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
variant: "default",
|
|
30
|
+
size: "default"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
var Button = React.forwardRef(
|
|
35
|
+
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
36
|
+
const Comp = asChild ? Slot : "button";
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
Comp,
|
|
39
|
+
{
|
|
40
|
+
className: cn(buttonVariants({ variant, size, className })),
|
|
41
|
+
ref,
|
|
42
|
+
...props
|
|
43
|
+
}
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
Button.displayName = "Button";
|
|
48
|
+
|
|
49
|
+
export { Button };
|
|
50
|
+
//# sourceMappingURL=chunk-42ARGQXE.js.map
|
|
51
|
+
//# sourceMappingURL=chunk-42ARGQXE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/ui/button.tsx"],"names":[],"mappings":";;;;;;AAOA,IAAM,cAAA,GAAiB,GAAA;AAAA,EACtB,uSAAA;AAAA,EACA;AAAA,IACC,QAAA,EAAU;AAAA,MACT,OAAA,EAAS;AAAA,QACR,OAAA,EACC,+DAAA;AAAA,QACD,WAAA,EACC,8EAAA;AAAA,QACD,OAAA,EACC,0FAAA;AAAA,QACD,SAAA,EACC,wEAAA;AAAA,QACD,KAAA,EAAO,8CAAA;AAAA,QACP,IAAA,EAAM;AAAA,OACP;AAAA,MACA,IAAA,EAAM;AAAA,QACL,OAAA,EAAS,eAAA;AAAA,QACT,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM,SAAA;AAAA,QACN,SAAA,EAAW;AAAA;AACZ,KACD;AAAA,IACA,eAAA,EAAiB;AAAA,MAChB,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACP;AAEF,CAAA;AAQA,IAAM,MAAA,GAAe,KAAA,CAAA,UAAA;AAAA,EACpB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACjE,IAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,QAAA;AAC9B,IAAA,uBACC,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACA,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,QAC1D,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACL;AAAA,EAEF;AACD;AACA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-42ARGQXE.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../core/utils\";\n\nconst buttonVariants = cva(\n\t\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault:\n\t\t\t\t\t\"bg-primary text-primary-foreground shadow hover:bg-primary/90\",\n\t\t\t\tdestructive:\n\t\t\t\t\t\"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n\t\t\t\toutline:\n\t\t\t\t\t\"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground\",\n\t\t\t\tsecondary:\n\t\t\t\t\t\"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n\t\t\t\tghost: \"hover:bg-accent hover:text-accent-foreground\",\n\t\t\t\tlink: \"text-primary underline-offset-4 hover:underline\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"h-9 px-4 py-2\",\n\t\t\t\tsm: \"h-8 rounded-md px-3 text-xs\",\n\t\t\t\tlg: \"h-10 rounded-md px-8\",\n\t\t\t\ticon: \"h-9 w-9\",\n\t\t\t\t\"icon-sm\": \"h-7 w-7\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nexport interface ButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>,\n\tVariantProps<typeof buttonVariants> {\n\tasChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t({ className, variant, size, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tclassName={cn(buttonVariants({ variant, size, className }))}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t},\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"]}
|