@aigentyc/chat-sdk 0.4.0 → 0.5.1
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/context7.json +1 -1
- package/dist/{ChatInterface-0rq8D5-8.d.cts → ChatInterface-DrzYAWnG.d.cts} +1 -1
- package/dist/{ChatInterface--yaDB5yp.d.ts → ChatInterface-qiVhkmx3.d.ts} +1 -1
- package/dist/{SlotsContext-CWTjP0mA.d.ts → SlotsContext-B_087V7B.d.ts} +99 -5
- package/dist/{SlotsContext-u5CFB7MS.d.cts → SlotsContext-DAQiASVu.d.cts} +99 -5
- package/dist/ai-elements.cjs +164 -567
- package/dist/ai-elements.cjs.map +1 -1
- package/dist/ai-elements.d.cts +10 -2
- package/dist/ai-elements.d.ts +10 -2
- package/dist/ai-elements.js +17 -462
- package/dist/ai-elements.js.map +1 -1
- package/dist/{chunk-LSKOJ7SH.js → chunk-3H4CX3MS.js} +8 -5
- package/dist/chunk-3H4CX3MS.js.map +1 -0
- package/dist/{chunk-4WOBNRRB.cjs → chunk-6CVBJ4EI.cjs} +594 -10
- package/dist/chunk-6CVBJ4EI.cjs.map +1 -0
- package/dist/{chunk-3MP2EGEJ.cjs → chunk-72QJ2ORD.cjs} +4 -2
- package/dist/chunk-72QJ2ORD.cjs.map +1 -0
- package/dist/chunk-BYTPAQ7F.js +70 -0
- package/dist/chunk-BYTPAQ7F.js.map +1 -0
- package/dist/{chunk-P3RPAI4F.cjs → chunk-BYX6IOGX.cjs} +4 -4
- package/dist/{chunk-P3RPAI4F.cjs.map → chunk-BYX6IOGX.cjs.map} +1 -1
- package/dist/{chunk-B27JIQ4Z.js → chunk-CNGIOCLR.js} +577 -7
- package/dist/chunk-CNGIOCLR.js.map +1 -0
- package/dist/chunk-CNPYBLLT.js +81 -0
- package/dist/chunk-CNPYBLLT.js.map +1 -0
- package/dist/{chunk-6ZZTTD5E.js → chunk-CW6LCVNC.js} +3 -3
- package/dist/{chunk-6ZZTTD5E.js.map → chunk-CW6LCVNC.js.map} +1 -1
- package/dist/chunk-DDATCJ3O.cjs +75 -0
- package/dist/chunk-DDATCJ3O.cjs.map +1 -0
- package/dist/{chunk-LVWSWTI3.cjs → chunk-DTOOWY2S.cjs} +184 -74
- package/dist/chunk-DTOOWY2S.cjs.map +1 -0
- package/dist/{chunk-NYQSM3EB.cjs → chunk-DVWX2UGY.cjs} +16 -2
- package/dist/chunk-DVWX2UGY.cjs.map +1 -0
- package/dist/{chunk-TZ7EM3EG.cjs → chunk-EMVZ7HWM.cjs} +44 -2
- package/dist/chunk-EMVZ7HWM.cjs.map +1 -0
- package/dist/{chunk-3EN3DMUL.js → chunk-JAEXKKSE.js} +47 -38
- package/dist/chunk-JAEXKKSE.js.map +1 -0
- package/dist/{chunk-JHWSG5IB.js → chunk-JAOD6CNW.js} +38 -3
- package/dist/chunk-JAOD6CNW.js.map +1 -0
- package/dist/{chunk-OEEDYJTV.cjs → chunk-JEK2V5I3.cjs} +6 -6
- package/dist/{chunk-OEEDYJTV.cjs.map → chunk-JEK2V5I3.cjs.map} +1 -1
- package/dist/{chunk-QYCEHFAB.js → chunk-LDQVDUUJ.js} +4 -2
- package/dist/chunk-LDQVDUUJ.js.map +1 -0
- package/dist/{chunk-AWRQSM42.cjs → chunk-NBZDBH4M.cjs} +8 -5
- package/dist/chunk-NBZDBH4M.cjs.map +1 -0
- package/dist/{chunk-5F3O3ZJH.js → chunk-P7UR37HP.js} +17 -4
- package/dist/chunk-P7UR37HP.js.map +1 -0
- package/dist/{chunk-3KSMOHNY.js → chunk-R3TYC66R.js} +46 -81
- package/dist/chunk-R3TYC66R.js.map +1 -0
- package/dist/{chunk-RAQVW2D7.js → chunk-UTEGHMBN.js} +142 -33
- package/dist/chunk-UTEGHMBN.js.map +1 -0
- package/dist/{chunk-46MUOYPR.cjs → chunk-UXVOUC2A.cjs} +47 -38
- package/dist/chunk-UXVOUC2A.cjs.map +1 -0
- package/dist/{chunk-IU7Q7O5G.js → chunk-VQPOUMBC.js} +3 -3
- package/dist/{chunk-IU7Q7O5G.js.map → chunk-VQPOUMBC.js.map} +1 -1
- package/dist/chunk-VYBHYFG3.cjs +87 -0
- package/dist/chunk-VYBHYFG3.cjs.map +1 -0
- package/dist/{chunk-OU5OZKYH.cjs → chunk-Y4B45DW4.cjs} +48 -90
- package/dist/chunk-Y4B45DW4.cjs.map +1 -0
- package/dist/components.cjs +22 -21
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.cts +3 -3
- package/dist/components.d.ts +3 -3
- package/dist/components.js +10 -9
- package/dist/components.js.map +1 -1
- package/dist/core.cjs +21 -82
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/core.js +2 -78
- package/dist/core.js.map +1 -1
- package/dist/hooks.cjs +36 -14
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +2 -2
- package/dist/hooks.d.ts +2 -2
- package/dist/hooks.js +7 -5
- package/dist/hooks.js.map +1 -1
- package/dist/i18n.cjs +5 -5
- package/dist/i18n.d.cts +2 -2
- package/dist/i18n.d.ts +2 -2
- package/dist/i18n.js +1 -1
- package/dist/index.cjs +61 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -5
- package/dist/index.d.ts +15 -5
- package/dist/index.js +16 -14
- package/dist/index.js.map +1 -1
- package/dist/llms-full.txt +10 -10
- package/dist/styles.css +1 -1
- package/dist/theme.cjs +4 -4
- package/dist/theme.d.cts +1 -1
- package/dist/theme.d.ts +1 -1
- package/dist/theme.js +2 -2
- package/dist/tools.cjs +6 -5
- package/dist/tools.d.cts +2 -2
- package/dist/tools.d.ts +2 -2
- package/dist/tools.js +3 -2
- package/dist/{types-DQCjs81O.d.cts → types-DRa1zFlN.d.cts} +33 -1
- package/dist/{types-DQCjs81O.d.ts → types-DRa1zFlN.d.ts} +33 -1
- package/dist/ui.cjs +52 -52
- package/dist/ui.js +2 -2
- package/package.json +2 -2
- package/dist/chunk-3EN3DMUL.js.map +0 -1
- package/dist/chunk-3KSMOHNY.js.map +0 -1
- package/dist/chunk-3MP2EGEJ.cjs.map +0 -1
- package/dist/chunk-46MUOYPR.cjs.map +0 -1
- package/dist/chunk-4WOBNRRB.cjs.map +0 -1
- package/dist/chunk-5F3O3ZJH.js.map +0 -1
- package/dist/chunk-AWRQSM42.cjs.map +0 -1
- package/dist/chunk-B27JIQ4Z.js.map +0 -1
- package/dist/chunk-JHWSG5IB.js.map +0 -1
- package/dist/chunk-LSKOJ7SH.js.map +0 -1
- package/dist/chunk-LVWSWTI3.cjs.map +0 -1
- package/dist/chunk-NYQSM3EB.cjs.map +0 -1
- package/dist/chunk-OU5OZKYH.cjs.map +0 -1
- package/dist/chunk-QYCEHFAB.js.map +0 -1
- package/dist/chunk-RAQVW2D7.js.map +0 -1
- package/dist/chunk-TZ7EM3EG.cjs.map +0 -1
package/dist/hooks.cjs
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkNBZDBH4M_cjs = require('./chunk-NBZDBH4M.cjs');
|
|
5
5
|
var chunkKBGPBUTI_cjs = require('./chunk-KBGPBUTI.cjs');
|
|
6
6
|
require('./chunk-NG7OTWXQ.cjs');
|
|
7
|
-
var
|
|
8
|
-
var
|
|
7
|
+
var chunkDVWX2UGY_cjs = require('./chunk-DVWX2UGY.cjs');
|
|
8
|
+
var chunkBYX6IOGX_cjs = require('./chunk-BYX6IOGX.cjs');
|
|
9
|
+
var chunkDDATCJ3O_cjs = require('./chunk-DDATCJ3O.cjs');
|
|
9
10
|
require('./chunk-X7R334SB.cjs');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
11
|
+
var chunk72QJ2ORD_cjs = require('./chunk-72QJ2ORD.cjs');
|
|
12
|
+
var chunkUXVOUC2A_cjs = require('./chunk-UXVOUC2A.cjs');
|
|
13
|
+
require('./chunk-VYBHYFG3.cjs');
|
|
12
14
|
var react = require('react');
|
|
13
15
|
|
|
14
16
|
function useImageLoader() {
|
|
@@ -276,43 +278,63 @@ function useMultiOrderTracking() {
|
|
|
276
278
|
|
|
277
279
|
Object.defineProperty(exports, "useAigentycChat", {
|
|
278
280
|
enumerable: true,
|
|
279
|
-
get: function () { return
|
|
281
|
+
get: function () { return chunkNBZDBH4M_cjs.useAigentycChat; }
|
|
280
282
|
});
|
|
281
283
|
Object.defineProperty(exports, "useInteractionTracker", {
|
|
282
284
|
enumerable: true,
|
|
283
285
|
get: function () { return chunkKBGPBUTI_cjs.useInteractionTracker; }
|
|
284
286
|
});
|
|
287
|
+
Object.defineProperty(exports, "useAutoResize", {
|
|
288
|
+
enumerable: true,
|
|
289
|
+
get: function () { return chunkDVWX2UGY_cjs.useAutoResize; }
|
|
290
|
+
});
|
|
285
291
|
Object.defineProperty(exports, "useIsMobile", {
|
|
286
292
|
enumerable: true,
|
|
287
|
-
get: function () { return
|
|
293
|
+
get: function () { return chunkDVWX2UGY_cjs.useIsMobile; }
|
|
288
294
|
});
|
|
289
295
|
Object.defineProperty(exports, "useLiveChat", {
|
|
290
296
|
enumerable: true,
|
|
291
|
-
get: function () { return
|
|
297
|
+
get: function () { return chunkDVWX2UGY_cjs.useLiveChat; }
|
|
292
298
|
});
|
|
293
299
|
Object.defineProperty(exports, "usePreviewEmbed", {
|
|
294
300
|
enumerable: true,
|
|
295
|
-
get: function () { return
|
|
301
|
+
get: function () { return chunkDVWX2UGY_cjs.usePreviewEmbed; }
|
|
296
302
|
});
|
|
297
303
|
Object.defineProperty(exports, "useTheme", {
|
|
298
304
|
enumerable: true,
|
|
299
|
-
get: function () { return
|
|
305
|
+
get: function () { return chunkBYX6IOGX_cjs.useTheme; }
|
|
306
|
+
});
|
|
307
|
+
Object.defineProperty(exports, "LATIN", {
|
|
308
|
+
enumerable: true,
|
|
309
|
+
get: function () { return chunkDDATCJ3O_cjs.LATIN; }
|
|
310
|
+
});
|
|
311
|
+
Object.defineProperty(exports, "detectLanguage", {
|
|
312
|
+
enumerable: true,
|
|
313
|
+
get: function () { return chunkDDATCJ3O_cjs.detectLanguage; }
|
|
314
|
+
});
|
|
315
|
+
Object.defineProperty(exports, "scriptLanguageOf", {
|
|
316
|
+
enumerable: true,
|
|
317
|
+
get: function () { return chunkDDATCJ3O_cjs.scriptLanguageOf; }
|
|
318
|
+
});
|
|
319
|
+
Object.defineProperty(exports, "useKeyboardLanguage", {
|
|
320
|
+
enumerable: true,
|
|
321
|
+
get: function () { return chunkDDATCJ3O_cjs.useKeyboardLanguage; }
|
|
300
322
|
});
|
|
301
323
|
Object.defineProperty(exports, "useI18n", {
|
|
302
324
|
enumerable: true,
|
|
303
|
-
get: function () { return
|
|
325
|
+
get: function () { return chunk72QJ2ORD_cjs.useI18n; }
|
|
304
326
|
});
|
|
305
327
|
Object.defineProperty(exports, "useChatContext", {
|
|
306
328
|
enumerable: true,
|
|
307
|
-
get: function () { return
|
|
329
|
+
get: function () { return chunkUXVOUC2A_cjs.useChatContext; }
|
|
308
330
|
});
|
|
309
331
|
Object.defineProperty(exports, "useSlot", {
|
|
310
332
|
enumerable: true,
|
|
311
|
-
get: function () { return
|
|
333
|
+
get: function () { return chunkUXVOUC2A_cjs.useSlot; }
|
|
312
334
|
});
|
|
313
335
|
Object.defineProperty(exports, "useSlots", {
|
|
314
336
|
enumerable: true,
|
|
315
|
-
get: function () { return
|
|
337
|
+
get: function () { return chunkUXVOUC2A_cjs.useSlots; }
|
|
316
338
|
});
|
|
317
339
|
exports.useImageLoader = useImageLoader;
|
|
318
340
|
exports.useMultiImageLoader = useMultiImageLoader;
|
package/dist/hooks.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-image-loader.ts","../src/hooks/use-pagination.ts","../src/hooks/use-slider-drag.ts","../src/hooks/use-order-tracking.ts"],"names":["useState","useCallback","useMemo","useEffect"],"mappings":"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","file":"hooks.cjs","sourcesContent":["\"use client\";\n\nimport { useState, useCallback } from \"react\";\n\ninterface UseImageLoaderReturn {\n /** Whether the image has finished loading. */\n loaded: boolean;\n /** Callback to set loaded state to true. Pass as `onLoad` to an `<img>`. */\n onLoad: () => void;\n /** Reset loaded state to false. */\n reset: () => void;\n}\n\n/**\n * Tracks load state for a single image element.\n */\nexport function useImageLoader(): UseImageLoaderReturn {\n const [loaded, setLoaded] = useState(false);\n\n const onLoad = useCallback(() => {\n setLoaded(true);\n }, []);\n\n const reset = useCallback(() => {\n setLoaded(false);\n }, []);\n\n return { loaded, onLoad, reset };\n}\n\ninterface UseMultiImageLoaderReturn {\n /** Check if a specific image has loaded. */\n isLoaded: (key: string) => boolean;\n /** Returns a callback for the given key to mark it as loaded. */\n onLoad: (key: string) => () => void;\n /** Reset a specific image's loaded state. */\n reset: (key: string) => void;\n /** Reset all images' loaded states. */\n resetAll: () => void;\n}\n\n/**\n * Tracks load state for multiple images by key.\n */\nexport function useMultiImageLoader(): UseMultiImageLoaderReturn {\n const [loadedMap, setLoadedMap] = useState<Set<string>>(new Set());\n\n const isLoaded = useCallback(\n (key: string) => loadedMap.has(key),\n [loadedMap]\n );\n\n const onLoad = useCallback(\n (key: string) => () => {\n setLoadedMap((prev) => new Set(prev).add(key));\n },\n []\n );\n\n const reset = useCallback((key: string) => {\n setLoadedMap((prev) => {\n const next = new Set(prev);\n next.delete(key);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setLoadedMap(new Set());\n }, []);\n\n return { isLoaded, onLoad, reset, resetAll };\n}\n","\"use client\";\n\nimport { useState, useMemo, useCallback } from \"react\";\n\ninterface UsePaginationOptions<T> {\n /** The full list of items to paginate. */\n items: T[];\n /** Number of items per page. */\n itemsPerPage: number;\n /** Optional callback when the page changes. */\n onPageChange?: (\n direction: \"next\" | \"prev\",\n newPage: number,\n totalPages: number\n ) => void;\n}\n\ninterface UsePaginationReturn<T> {\n /** Current page index (0-based). */\n page: number;\n /** Total number of pages. */\n totalPages: number;\n /** Items for the current page. */\n currentItems: T[];\n /** Go to the next page. */\n goNext: () => void;\n /** Go to the previous page. */\n goPrev: () => void;\n /** Go to a specific page (0-based). */\n goToPage: (page: number) => void;\n /** Whether the current page is the first page. */\n isFirstPage: boolean;\n /** Whether the current page is the last page. */\n isLastPage: boolean;\n}\n\n/**\n * Generic pagination hook for any list of items.\n */\nexport function usePagination<T>({\n items,\n itemsPerPage,\n onPageChange,\n}: UsePaginationOptions<T>): UsePaginationReturn<T> {\n const [page, setPage] = useState(0);\n\n const totalPages = useMemo(\n () => Math.ceil(items.length / itemsPerPage),\n [items.length, itemsPerPage]\n );\n\n const currentItems = useMemo(\n () => items.slice(page * itemsPerPage, (page + 1) * itemsPerPage),\n [items, page, itemsPerPage]\n );\n\n const goNext = useCallback(() => {\n if (page < totalPages - 1) {\n const newPage = page + 1;\n setPage(newPage);\n onPageChange?.(\"next\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goPrev = useCallback(() => {\n if (page > 0) {\n const newPage = page - 1;\n setPage(newPage);\n onPageChange?.(\"prev\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goToPage = useCallback(\n (newPage: number) => {\n if (newPage >= 0 && newPage < totalPages) {\n const direction = newPage > page ? \"next\" : \"prev\";\n setPage(newPage);\n onPageChange?.(direction, newPage, totalPages);\n }\n },\n [page, totalPages, onPageChange]\n );\n\n const isFirstPage = page === 0;\n const isLastPage = page >= totalPages - 1;\n\n return {\n page,\n totalPages,\n currentItems,\n goNext,\n goPrev,\n goToPage,\n isFirstPage,\n isLastPage,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback, type RefObject } from \"react\";\n\ninterface UseSliderDragOptions {\n /** Ref to the container element. */\n containerRef: RefObject<HTMLDivElement | null>;\n /** Initial slider position as a percentage (0-100). Defaults to 50. */\n initialPosition?: number;\n /** Minimum allowed position. Defaults to 0. */\n minPosition?: number;\n /** Maximum allowed position. Defaults to 100. */\n maxPosition?: number;\n}\n\ninterface UseSliderDragReturn {\n /** Current slider position as a percentage (0-100). */\n sliderPosition: number;\n /** Whether the user is currently dragging. */\n isDragging: boolean;\n /** Call this on mousedown/touchstart to begin dragging. */\n handleMouseDown: () => void;\n /** Programmatically set the slider position. */\n setSliderPosition: (position: number) => void;\n}\n\n/**\n * Handles mouse and touch drag interactions for a horizontal slider.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useSliderDrag({\n containerRef,\n initialPosition = 50,\n minPosition = 0,\n maxPosition = 100,\n}: UseSliderDragOptions): UseSliderDragReturn {\n const [sliderPosition, setSliderPosition] = useState(initialPosition);\n const [isDragging, setIsDragging] = useState(false);\n\n const handleSliderMove = useCallback(\n (clientX: number) => {\n if (!containerRef.current) return;\n const rect = containerRef.current.getBoundingClientRect();\n const x = clientX - rect.left;\n const percentage = Math.max(\n minPosition,\n Math.min(maxPosition, (x / rect.width) * 100)\n );\n setSliderPosition(percentage);\n },\n [containerRef, minPosition, maxPosition]\n );\n\n const handleMouseDown = useCallback(() => {\n setIsDragging(true);\n }, []);\n\n const handleMouseUp = useCallback(() => {\n setIsDragging(false);\n }, []);\n\n const handleMouseMove = useCallback(\n (e: MouseEvent) => {\n if (isDragging) {\n handleSliderMove(e.clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (isDragging && e.touches[0]) {\n handleSliderMove(e.touches[0].clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n if (isDragging) {\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"touchmove\", handleTouchMove);\n window.addEventListener(\"touchend\", handleMouseUp);\n }\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n window.removeEventListener(\"touchmove\", handleTouchMove);\n window.removeEventListener(\"touchend\", handleMouseUp);\n };\n }, [isDragging, handleMouseMove, handleMouseUp, handleTouchMove]);\n\n return {\n sliderPosition,\n isDragging,\n handleMouseDown,\n setSliderPosition,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback } from \"react\";\n\ntype OrderStatus = \"idle\" | \"pending\" | \"added\" | \"error\";\n\ninterface UseOrderTrackingOptions {\n /** Product ID to track. */\n productId?: string;\n}\n\ninterface UseOrderTrackingReturn {\n /** Current order status. */\n orderStatus: OrderStatus;\n /** Error message if status is \"error\". */\n orderError: string | null;\n /** Mark the order as pending. */\n startOrder: () => void;\n /** Reset to idle state. */\n reset: () => void;\n}\n\n/**\n * Tracks a single product order status via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useOrderTracking({\n productId,\n}: UseOrderTrackingOptions): UseOrderTrackingReturn {\n const [orderStatus, setOrderStatus] = useState<OrderStatus>(\"idle\");\n const [orderError, setOrderError] = useState<string | null>(null);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !productId) return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id === productId) {\n if (success) {\n setOrderStatus(\"added\");\n setOrderError(null);\n } else {\n setOrderStatus(\"error\");\n setOrderError(error || \"Failed to add to cart\");\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, [productId]);\n\n const startOrder = useCallback(() => {\n setOrderStatus(\"pending\");\n setOrderError(null);\n }, []);\n\n const reset = useCallback(() => {\n setOrderStatus(\"idle\");\n setOrderError(null);\n }, []);\n\n return { orderStatus, orderError, startOrder, reset };\n}\n\ninterface UseMultiOrderTrackingReturn {\n /** Get status for a specific product. */\n getStatus: (productId: string) => OrderStatus;\n /** Get error message for a specific product. */\n getError: (productId: string) => string | undefined;\n /** Mark a product order as pending. */\n startOrder: (productId: string) => void;\n /** Reset a specific product's order status. */\n reset: (productId: string) => void;\n /** Reset all tracked products. */\n resetAll: () => void;\n}\n\n/**\n * Tracks multiple product order statuses via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useMultiOrderTracking(): UseMultiOrderTrackingReturn {\n const [statusMap, setStatusMap] = useState<Map<string, OrderStatus>>(\n new Map()\n );\n const [errorMap, setErrorMap] = useState<Map<string, string>>(new Map());\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id) {\n if (success) {\n setStatusMap((prev) => new Map(prev).set(product_id, \"added\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(product_id);\n return next;\n });\n } else {\n setStatusMap((prev) => new Map(prev).set(product_id, \"error\"));\n setErrorMap((prev) =>\n new Map(prev).set(product_id, error || \"Failed to add to cart\")\n );\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, []);\n\n const getStatus = useCallback(\n (productId: string) => statusMap.get(productId) || \"idle\",\n [statusMap]\n );\n\n const getError = useCallback(\n (productId: string) => errorMap.get(productId),\n [errorMap]\n );\n\n const startOrder = useCallback((productId: string) => {\n setStatusMap((prev) => new Map(prev).set(productId, \"pending\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const reset = useCallback((productId: string) => {\n setStatusMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setStatusMap(new Map());\n setErrorMap(new Map());\n }, []);\n\n return { getStatus, getError, startOrder, reset, resetAll };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-image-loader.ts","../src/hooks/use-pagination.ts","../src/hooks/use-slider-drag.ts","../src/hooks/use-order-tracking.ts"],"names":["useState","useCallback","useMemo","useEffect"],"mappings":"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","file":"hooks.cjs","sourcesContent":["\"use client\";\n\nimport { useState, useCallback } from \"react\";\n\ninterface UseImageLoaderReturn {\n /** Whether the image has finished loading. */\n loaded: boolean;\n /** Callback to set loaded state to true. Pass as `onLoad` to an `<img>`. */\n onLoad: () => void;\n /** Reset loaded state to false. */\n reset: () => void;\n}\n\n/**\n * Tracks load state for a single image element.\n */\nexport function useImageLoader(): UseImageLoaderReturn {\n const [loaded, setLoaded] = useState(false);\n\n const onLoad = useCallback(() => {\n setLoaded(true);\n }, []);\n\n const reset = useCallback(() => {\n setLoaded(false);\n }, []);\n\n return { loaded, onLoad, reset };\n}\n\ninterface UseMultiImageLoaderReturn {\n /** Check if a specific image has loaded. */\n isLoaded: (key: string) => boolean;\n /** Returns a callback for the given key to mark it as loaded. */\n onLoad: (key: string) => () => void;\n /** Reset a specific image's loaded state. */\n reset: (key: string) => void;\n /** Reset all images' loaded states. */\n resetAll: () => void;\n}\n\n/**\n * Tracks load state for multiple images by key.\n */\nexport function useMultiImageLoader(): UseMultiImageLoaderReturn {\n const [loadedMap, setLoadedMap] = useState<Set<string>>(new Set());\n\n const isLoaded = useCallback(\n (key: string) => loadedMap.has(key),\n [loadedMap]\n );\n\n const onLoad = useCallback(\n (key: string) => () => {\n setLoadedMap((prev) => new Set(prev).add(key));\n },\n []\n );\n\n const reset = useCallback((key: string) => {\n setLoadedMap((prev) => {\n const next = new Set(prev);\n next.delete(key);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setLoadedMap(new Set());\n }, []);\n\n return { isLoaded, onLoad, reset, resetAll };\n}\n","\"use client\";\n\nimport { useState, useMemo, useCallback } from \"react\";\n\ninterface UsePaginationOptions<T> {\n /** The full list of items to paginate. */\n items: T[];\n /** Number of items per page. */\n itemsPerPage: number;\n /** Optional callback when the page changes. */\n onPageChange?: (\n direction: \"next\" | \"prev\",\n newPage: number,\n totalPages: number\n ) => void;\n}\n\ninterface UsePaginationReturn<T> {\n /** Current page index (0-based). */\n page: number;\n /** Total number of pages. */\n totalPages: number;\n /** Items for the current page. */\n currentItems: T[];\n /** Go to the next page. */\n goNext: () => void;\n /** Go to the previous page. */\n goPrev: () => void;\n /** Go to a specific page (0-based). */\n goToPage: (page: number) => void;\n /** Whether the current page is the first page. */\n isFirstPage: boolean;\n /** Whether the current page is the last page. */\n isLastPage: boolean;\n}\n\n/**\n * Generic pagination hook for any list of items.\n */\nexport function usePagination<T>({\n items,\n itemsPerPage,\n onPageChange,\n}: UsePaginationOptions<T>): UsePaginationReturn<T> {\n const [page, setPage] = useState(0);\n\n const totalPages = useMemo(\n () => Math.ceil(items.length / itemsPerPage),\n [items.length, itemsPerPage]\n );\n\n const currentItems = useMemo(\n () => items.slice(page * itemsPerPage, (page + 1) * itemsPerPage),\n [items, page, itemsPerPage]\n );\n\n const goNext = useCallback(() => {\n if (page < totalPages - 1) {\n const newPage = page + 1;\n setPage(newPage);\n onPageChange?.(\"next\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goPrev = useCallback(() => {\n if (page > 0) {\n const newPage = page - 1;\n setPage(newPage);\n onPageChange?.(\"prev\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goToPage = useCallback(\n (newPage: number) => {\n if (newPage >= 0 && newPage < totalPages) {\n const direction = newPage > page ? \"next\" : \"prev\";\n setPage(newPage);\n onPageChange?.(direction, newPage, totalPages);\n }\n },\n [page, totalPages, onPageChange]\n );\n\n const isFirstPage = page === 0;\n const isLastPage = page >= totalPages - 1;\n\n return {\n page,\n totalPages,\n currentItems,\n goNext,\n goPrev,\n goToPage,\n isFirstPage,\n isLastPage,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback, type RefObject } from \"react\";\n\ninterface UseSliderDragOptions {\n /** Ref to the container element. */\n containerRef: RefObject<HTMLDivElement | null>;\n /** Initial slider position as a percentage (0-100). Defaults to 50. */\n initialPosition?: number;\n /** Minimum allowed position. Defaults to 0. */\n minPosition?: number;\n /** Maximum allowed position. Defaults to 100. */\n maxPosition?: number;\n}\n\ninterface UseSliderDragReturn {\n /** Current slider position as a percentage (0-100). */\n sliderPosition: number;\n /** Whether the user is currently dragging. */\n isDragging: boolean;\n /** Call this on mousedown/touchstart to begin dragging. */\n handleMouseDown: () => void;\n /** Programmatically set the slider position. */\n setSliderPosition: (position: number) => void;\n}\n\n/**\n * Handles mouse and touch drag interactions for a horizontal slider.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useSliderDrag({\n containerRef,\n initialPosition = 50,\n minPosition = 0,\n maxPosition = 100,\n}: UseSliderDragOptions): UseSliderDragReturn {\n const [sliderPosition, setSliderPosition] = useState(initialPosition);\n const [isDragging, setIsDragging] = useState(false);\n\n const handleSliderMove = useCallback(\n (clientX: number) => {\n if (!containerRef.current) return;\n const rect = containerRef.current.getBoundingClientRect();\n const x = clientX - rect.left;\n const percentage = Math.max(\n minPosition,\n Math.min(maxPosition, (x / rect.width) * 100)\n );\n setSliderPosition(percentage);\n },\n [containerRef, minPosition, maxPosition]\n );\n\n const handleMouseDown = useCallback(() => {\n setIsDragging(true);\n }, []);\n\n const handleMouseUp = useCallback(() => {\n setIsDragging(false);\n }, []);\n\n const handleMouseMove = useCallback(\n (e: MouseEvent) => {\n if (isDragging) {\n handleSliderMove(e.clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (isDragging && e.touches[0]) {\n handleSliderMove(e.touches[0].clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n if (isDragging) {\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"touchmove\", handleTouchMove);\n window.addEventListener(\"touchend\", handleMouseUp);\n }\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n window.removeEventListener(\"touchmove\", handleTouchMove);\n window.removeEventListener(\"touchend\", handleMouseUp);\n };\n }, [isDragging, handleMouseMove, handleMouseUp, handleTouchMove]);\n\n return {\n sliderPosition,\n isDragging,\n handleMouseDown,\n setSliderPosition,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback } from \"react\";\n\ntype OrderStatus = \"idle\" | \"pending\" | \"added\" | \"error\";\n\ninterface UseOrderTrackingOptions {\n /** Product ID to track. */\n productId?: string;\n}\n\ninterface UseOrderTrackingReturn {\n /** Current order status. */\n orderStatus: OrderStatus;\n /** Error message if status is \"error\". */\n orderError: string | null;\n /** Mark the order as pending. */\n startOrder: () => void;\n /** Reset to idle state. */\n reset: () => void;\n}\n\n/**\n * Tracks a single product order status via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useOrderTracking({\n productId,\n}: UseOrderTrackingOptions): UseOrderTrackingReturn {\n const [orderStatus, setOrderStatus] = useState<OrderStatus>(\"idle\");\n const [orderError, setOrderError] = useState<string | null>(null);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !productId) return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id === productId) {\n if (success) {\n setOrderStatus(\"added\");\n setOrderError(null);\n } else {\n setOrderStatus(\"error\");\n setOrderError(error || \"Failed to add to cart\");\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, [productId]);\n\n const startOrder = useCallback(() => {\n setOrderStatus(\"pending\");\n setOrderError(null);\n }, []);\n\n const reset = useCallback(() => {\n setOrderStatus(\"idle\");\n setOrderError(null);\n }, []);\n\n return { orderStatus, orderError, startOrder, reset };\n}\n\ninterface UseMultiOrderTrackingReturn {\n /** Get status for a specific product. */\n getStatus: (productId: string) => OrderStatus;\n /** Get error message for a specific product. */\n getError: (productId: string) => string | undefined;\n /** Mark a product order as pending. */\n startOrder: (productId: string) => void;\n /** Reset a specific product's order status. */\n reset: (productId: string) => void;\n /** Reset all tracked products. */\n resetAll: () => void;\n}\n\n/**\n * Tracks multiple product order statuses via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useMultiOrderTracking(): UseMultiOrderTrackingReturn {\n const [statusMap, setStatusMap] = useState<Map<string, OrderStatus>>(\n new Map()\n );\n const [errorMap, setErrorMap] = useState<Map<string, string>>(new Map());\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id) {\n if (success) {\n setStatusMap((prev) => new Map(prev).set(product_id, \"added\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(product_id);\n return next;\n });\n } else {\n setStatusMap((prev) => new Map(prev).set(product_id, \"error\"));\n setErrorMap((prev) =>\n new Map(prev).set(product_id, error || \"Failed to add to cart\")\n );\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, []);\n\n const getStatus = useCallback(\n (productId: string) => statusMap.get(productId) || \"idle\",\n [statusMap]\n );\n\n const getError = useCallback(\n (productId: string) => errorMap.get(productId),\n [errorMap]\n );\n\n const startOrder = useCallback((productId: string) => {\n setStatusMap((prev) => new Map(prev).set(productId, \"pending\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const reset = useCallback((productId: string) => {\n setStatusMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setStatusMap(new Map());\n setErrorMap(new Map());\n }, []);\n\n return { getStatus, getError, startOrder, reset, resetAll };\n}\n"]}
|
package/dist/hooks.d.cts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { L as LiveChatReturn, U as UseAigentycChatOptions,
|
|
1
|
+
export { A as AutoResizeOptions, K as KeyboardLanguageOptions, L as LATIN, a as LiveChatReturn, U as UseAigentycChatOptions, c as UseAigentycChatReturn, d as detectLanguage, s as scriptLanguageOf, u as useAigentycChat, e as useAutoResize, f as useChatContext, g as useKeyboardLanguage, h as useLiveChat, i as useSlot, j as useSlots } from './SlotsContext-DAQiASVu.cjs';
|
|
2
2
|
export { useTheme } from './theme.cjs';
|
|
3
3
|
export { useI18n } from './i18n.cjs';
|
|
4
4
|
import { RefObject } from 'react';
|
|
5
5
|
export { u as useInteractionTracker } from './interaction-tracker-D9P1Oq4j.cjs';
|
|
6
|
-
import './types-
|
|
6
|
+
import './types-DRa1zFlN.cjs';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
/** Information about a preview to display in an embedded panel. */
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { L as LiveChatReturn, U as UseAigentycChatOptions,
|
|
1
|
+
export { A as AutoResizeOptions, K as KeyboardLanguageOptions, L as LATIN, a as LiveChatReturn, U as UseAigentycChatOptions, c as UseAigentycChatReturn, d as detectLanguage, s as scriptLanguageOf, u as useAigentycChat, e as useAutoResize, f as useChatContext, g as useKeyboardLanguage, h as useLiveChat, i as useSlot, j as useSlots } from './SlotsContext-B_087V7B.js';
|
|
2
2
|
export { useTheme } from './theme.js';
|
|
3
3
|
export { useI18n } from './i18n.js';
|
|
4
4
|
import { RefObject } from 'react';
|
|
5
5
|
export { u as useInteractionTracker } from './interaction-tracker-D9P1Oq4j.js';
|
|
6
|
-
import './types-
|
|
6
|
+
import './types-DRa1zFlN.js';
|
|
7
7
|
import 'react/jsx-runtime';
|
|
8
8
|
|
|
9
9
|
/** Information about a preview to display in an embedded panel. */
|
package/dist/hooks.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { useAigentycChat } from './chunk-
|
|
2
|
+
export { useAigentycChat } from './chunk-3H4CX3MS.js';
|
|
3
3
|
export { useInteractionTracker } from './chunk-MT2AMINB.js';
|
|
4
4
|
import './chunk-BKDV2H6Z.js';
|
|
5
|
-
export { useIsMobile, useLiveChat, usePreviewEmbed } from './chunk-
|
|
6
|
-
export { useTheme } from './chunk-
|
|
5
|
+
export { useAutoResize, useIsMobile, useLiveChat, usePreviewEmbed } from './chunk-P7UR37HP.js';
|
|
6
|
+
export { useTheme } from './chunk-VQPOUMBC.js';
|
|
7
|
+
export { LATIN, detectLanguage, scriptLanguageOf, useKeyboardLanguage } from './chunk-BYTPAQ7F.js';
|
|
7
8
|
import './chunk-MZQKGNWF.js';
|
|
8
|
-
export { useI18n } from './chunk-
|
|
9
|
-
export { useChatContext, useSlot, useSlots } from './chunk-
|
|
9
|
+
export { useI18n } from './chunk-LDQVDUUJ.js';
|
|
10
|
+
export { useChatContext, useSlot, useSlots } from './chunk-JAEXKKSE.js';
|
|
11
|
+
import './chunk-CNPYBLLT.js';
|
|
10
12
|
import { useState, useCallback, useMemo, useEffect } from 'react';
|
|
11
13
|
|
|
12
14
|
function useImageLoader() {
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-image-loader.ts","../src/hooks/use-pagination.ts","../src/hooks/use-slider-drag.ts","../src/hooks/use-order-tracking.ts"],"names":["useState","useCallback","useEffect"],"mappings":"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","file":"hooks.js","sourcesContent":["\"use client\";\n\nimport { useState, useCallback } from \"react\";\n\ninterface UseImageLoaderReturn {\n /** Whether the image has finished loading. */\n loaded: boolean;\n /** Callback to set loaded state to true. Pass as `onLoad` to an `<img>`. */\n onLoad: () => void;\n /** Reset loaded state to false. */\n reset: () => void;\n}\n\n/**\n * Tracks load state for a single image element.\n */\nexport function useImageLoader(): UseImageLoaderReturn {\n const [loaded, setLoaded] = useState(false);\n\n const onLoad = useCallback(() => {\n setLoaded(true);\n }, []);\n\n const reset = useCallback(() => {\n setLoaded(false);\n }, []);\n\n return { loaded, onLoad, reset };\n}\n\ninterface UseMultiImageLoaderReturn {\n /** Check if a specific image has loaded. */\n isLoaded: (key: string) => boolean;\n /** Returns a callback for the given key to mark it as loaded. */\n onLoad: (key: string) => () => void;\n /** Reset a specific image's loaded state. */\n reset: (key: string) => void;\n /** Reset all images' loaded states. */\n resetAll: () => void;\n}\n\n/**\n * Tracks load state for multiple images by key.\n */\nexport function useMultiImageLoader(): UseMultiImageLoaderReturn {\n const [loadedMap, setLoadedMap] = useState<Set<string>>(new Set());\n\n const isLoaded = useCallback(\n (key: string) => loadedMap.has(key),\n [loadedMap]\n );\n\n const onLoad = useCallback(\n (key: string) => () => {\n setLoadedMap((prev) => new Set(prev).add(key));\n },\n []\n );\n\n const reset = useCallback((key: string) => {\n setLoadedMap((prev) => {\n const next = new Set(prev);\n next.delete(key);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setLoadedMap(new Set());\n }, []);\n\n return { isLoaded, onLoad, reset, resetAll };\n}\n","\"use client\";\n\nimport { useState, useMemo, useCallback } from \"react\";\n\ninterface UsePaginationOptions<T> {\n /** The full list of items to paginate. */\n items: T[];\n /** Number of items per page. */\n itemsPerPage: number;\n /** Optional callback when the page changes. */\n onPageChange?: (\n direction: \"next\" | \"prev\",\n newPage: number,\n totalPages: number\n ) => void;\n}\n\ninterface UsePaginationReturn<T> {\n /** Current page index (0-based). */\n page: number;\n /** Total number of pages. */\n totalPages: number;\n /** Items for the current page. */\n currentItems: T[];\n /** Go to the next page. */\n goNext: () => void;\n /** Go to the previous page. */\n goPrev: () => void;\n /** Go to a specific page (0-based). */\n goToPage: (page: number) => void;\n /** Whether the current page is the first page. */\n isFirstPage: boolean;\n /** Whether the current page is the last page. */\n isLastPage: boolean;\n}\n\n/**\n * Generic pagination hook for any list of items.\n */\nexport function usePagination<T>({\n items,\n itemsPerPage,\n onPageChange,\n}: UsePaginationOptions<T>): UsePaginationReturn<T> {\n const [page, setPage] = useState(0);\n\n const totalPages = useMemo(\n () => Math.ceil(items.length / itemsPerPage),\n [items.length, itemsPerPage]\n );\n\n const currentItems = useMemo(\n () => items.slice(page * itemsPerPage, (page + 1) * itemsPerPage),\n [items, page, itemsPerPage]\n );\n\n const goNext = useCallback(() => {\n if (page < totalPages - 1) {\n const newPage = page + 1;\n setPage(newPage);\n onPageChange?.(\"next\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goPrev = useCallback(() => {\n if (page > 0) {\n const newPage = page - 1;\n setPage(newPage);\n onPageChange?.(\"prev\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goToPage = useCallback(\n (newPage: number) => {\n if (newPage >= 0 && newPage < totalPages) {\n const direction = newPage > page ? \"next\" : \"prev\";\n setPage(newPage);\n onPageChange?.(direction, newPage, totalPages);\n }\n },\n [page, totalPages, onPageChange]\n );\n\n const isFirstPage = page === 0;\n const isLastPage = page >= totalPages - 1;\n\n return {\n page,\n totalPages,\n currentItems,\n goNext,\n goPrev,\n goToPage,\n isFirstPage,\n isLastPage,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback, type RefObject } from \"react\";\n\ninterface UseSliderDragOptions {\n /** Ref to the container element. */\n containerRef: RefObject<HTMLDivElement | null>;\n /** Initial slider position as a percentage (0-100). Defaults to 50. */\n initialPosition?: number;\n /** Minimum allowed position. Defaults to 0. */\n minPosition?: number;\n /** Maximum allowed position. Defaults to 100. */\n maxPosition?: number;\n}\n\ninterface UseSliderDragReturn {\n /** Current slider position as a percentage (0-100). */\n sliderPosition: number;\n /** Whether the user is currently dragging. */\n isDragging: boolean;\n /** Call this on mousedown/touchstart to begin dragging. */\n handleMouseDown: () => void;\n /** Programmatically set the slider position. */\n setSliderPosition: (position: number) => void;\n}\n\n/**\n * Handles mouse and touch drag interactions for a horizontal slider.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useSliderDrag({\n containerRef,\n initialPosition = 50,\n minPosition = 0,\n maxPosition = 100,\n}: UseSliderDragOptions): UseSliderDragReturn {\n const [sliderPosition, setSliderPosition] = useState(initialPosition);\n const [isDragging, setIsDragging] = useState(false);\n\n const handleSliderMove = useCallback(\n (clientX: number) => {\n if (!containerRef.current) return;\n const rect = containerRef.current.getBoundingClientRect();\n const x = clientX - rect.left;\n const percentage = Math.max(\n minPosition,\n Math.min(maxPosition, (x / rect.width) * 100)\n );\n setSliderPosition(percentage);\n },\n [containerRef, minPosition, maxPosition]\n );\n\n const handleMouseDown = useCallback(() => {\n setIsDragging(true);\n }, []);\n\n const handleMouseUp = useCallback(() => {\n setIsDragging(false);\n }, []);\n\n const handleMouseMove = useCallback(\n (e: MouseEvent) => {\n if (isDragging) {\n handleSliderMove(e.clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (isDragging && e.touches[0]) {\n handleSliderMove(e.touches[0].clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n if (isDragging) {\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"touchmove\", handleTouchMove);\n window.addEventListener(\"touchend\", handleMouseUp);\n }\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n window.removeEventListener(\"touchmove\", handleTouchMove);\n window.removeEventListener(\"touchend\", handleMouseUp);\n };\n }, [isDragging, handleMouseMove, handleMouseUp, handleTouchMove]);\n\n return {\n sliderPosition,\n isDragging,\n handleMouseDown,\n setSliderPosition,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback } from \"react\";\n\ntype OrderStatus = \"idle\" | \"pending\" | \"added\" | \"error\";\n\ninterface UseOrderTrackingOptions {\n /** Product ID to track. */\n productId?: string;\n}\n\ninterface UseOrderTrackingReturn {\n /** Current order status. */\n orderStatus: OrderStatus;\n /** Error message if status is \"error\". */\n orderError: string | null;\n /** Mark the order as pending. */\n startOrder: () => void;\n /** Reset to idle state. */\n reset: () => void;\n}\n\n/**\n * Tracks a single product order status via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useOrderTracking({\n productId,\n}: UseOrderTrackingOptions): UseOrderTrackingReturn {\n const [orderStatus, setOrderStatus] = useState<OrderStatus>(\"idle\");\n const [orderError, setOrderError] = useState<string | null>(null);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !productId) return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id === productId) {\n if (success) {\n setOrderStatus(\"added\");\n setOrderError(null);\n } else {\n setOrderStatus(\"error\");\n setOrderError(error || \"Failed to add to cart\");\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, [productId]);\n\n const startOrder = useCallback(() => {\n setOrderStatus(\"pending\");\n setOrderError(null);\n }, []);\n\n const reset = useCallback(() => {\n setOrderStatus(\"idle\");\n setOrderError(null);\n }, []);\n\n return { orderStatus, orderError, startOrder, reset };\n}\n\ninterface UseMultiOrderTrackingReturn {\n /** Get status for a specific product. */\n getStatus: (productId: string) => OrderStatus;\n /** Get error message for a specific product. */\n getError: (productId: string) => string | undefined;\n /** Mark a product order as pending. */\n startOrder: (productId: string) => void;\n /** Reset a specific product's order status. */\n reset: (productId: string) => void;\n /** Reset all tracked products. */\n resetAll: () => void;\n}\n\n/**\n * Tracks multiple product order statuses via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useMultiOrderTracking(): UseMultiOrderTrackingReturn {\n const [statusMap, setStatusMap] = useState<Map<string, OrderStatus>>(\n new Map()\n );\n const [errorMap, setErrorMap] = useState<Map<string, string>>(new Map());\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id) {\n if (success) {\n setStatusMap((prev) => new Map(prev).set(product_id, \"added\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(product_id);\n return next;\n });\n } else {\n setStatusMap((prev) => new Map(prev).set(product_id, \"error\"));\n setErrorMap((prev) =>\n new Map(prev).set(product_id, error || \"Failed to add to cart\")\n );\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, []);\n\n const getStatus = useCallback(\n (productId: string) => statusMap.get(productId) || \"idle\",\n [statusMap]\n );\n\n const getError = useCallback(\n (productId: string) => errorMap.get(productId),\n [errorMap]\n );\n\n const startOrder = useCallback((productId: string) => {\n setStatusMap((prev) => new Map(prev).set(productId, \"pending\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const reset = useCallback((productId: string) => {\n setStatusMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setStatusMap(new Map());\n setErrorMap(new Map());\n }, []);\n\n return { getStatus, getError, startOrder, reset, resetAll };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-image-loader.ts","../src/hooks/use-pagination.ts","../src/hooks/use-slider-drag.ts","../src/hooks/use-order-tracking.ts"],"names":["useState","useCallback","useEffect"],"mappings":"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","file":"hooks.js","sourcesContent":["\"use client\";\n\nimport { useState, useCallback } from \"react\";\n\ninterface UseImageLoaderReturn {\n /** Whether the image has finished loading. */\n loaded: boolean;\n /** Callback to set loaded state to true. Pass as `onLoad` to an `<img>`. */\n onLoad: () => void;\n /** Reset loaded state to false. */\n reset: () => void;\n}\n\n/**\n * Tracks load state for a single image element.\n */\nexport function useImageLoader(): UseImageLoaderReturn {\n const [loaded, setLoaded] = useState(false);\n\n const onLoad = useCallback(() => {\n setLoaded(true);\n }, []);\n\n const reset = useCallback(() => {\n setLoaded(false);\n }, []);\n\n return { loaded, onLoad, reset };\n}\n\ninterface UseMultiImageLoaderReturn {\n /** Check if a specific image has loaded. */\n isLoaded: (key: string) => boolean;\n /** Returns a callback for the given key to mark it as loaded. */\n onLoad: (key: string) => () => void;\n /** Reset a specific image's loaded state. */\n reset: (key: string) => void;\n /** Reset all images' loaded states. */\n resetAll: () => void;\n}\n\n/**\n * Tracks load state for multiple images by key.\n */\nexport function useMultiImageLoader(): UseMultiImageLoaderReturn {\n const [loadedMap, setLoadedMap] = useState<Set<string>>(new Set());\n\n const isLoaded = useCallback(\n (key: string) => loadedMap.has(key),\n [loadedMap]\n );\n\n const onLoad = useCallback(\n (key: string) => () => {\n setLoadedMap((prev) => new Set(prev).add(key));\n },\n []\n );\n\n const reset = useCallback((key: string) => {\n setLoadedMap((prev) => {\n const next = new Set(prev);\n next.delete(key);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setLoadedMap(new Set());\n }, []);\n\n return { isLoaded, onLoad, reset, resetAll };\n}\n","\"use client\";\n\nimport { useState, useMemo, useCallback } from \"react\";\n\ninterface UsePaginationOptions<T> {\n /** The full list of items to paginate. */\n items: T[];\n /** Number of items per page. */\n itemsPerPage: number;\n /** Optional callback when the page changes. */\n onPageChange?: (\n direction: \"next\" | \"prev\",\n newPage: number,\n totalPages: number\n ) => void;\n}\n\ninterface UsePaginationReturn<T> {\n /** Current page index (0-based). */\n page: number;\n /** Total number of pages. */\n totalPages: number;\n /** Items for the current page. */\n currentItems: T[];\n /** Go to the next page. */\n goNext: () => void;\n /** Go to the previous page. */\n goPrev: () => void;\n /** Go to a specific page (0-based). */\n goToPage: (page: number) => void;\n /** Whether the current page is the first page. */\n isFirstPage: boolean;\n /** Whether the current page is the last page. */\n isLastPage: boolean;\n}\n\n/**\n * Generic pagination hook for any list of items.\n */\nexport function usePagination<T>({\n items,\n itemsPerPage,\n onPageChange,\n}: UsePaginationOptions<T>): UsePaginationReturn<T> {\n const [page, setPage] = useState(0);\n\n const totalPages = useMemo(\n () => Math.ceil(items.length / itemsPerPage),\n [items.length, itemsPerPage]\n );\n\n const currentItems = useMemo(\n () => items.slice(page * itemsPerPage, (page + 1) * itemsPerPage),\n [items, page, itemsPerPage]\n );\n\n const goNext = useCallback(() => {\n if (page < totalPages - 1) {\n const newPage = page + 1;\n setPage(newPage);\n onPageChange?.(\"next\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goPrev = useCallback(() => {\n if (page > 0) {\n const newPage = page - 1;\n setPage(newPage);\n onPageChange?.(\"prev\", newPage, totalPages);\n }\n }, [page, totalPages, onPageChange]);\n\n const goToPage = useCallback(\n (newPage: number) => {\n if (newPage >= 0 && newPage < totalPages) {\n const direction = newPage > page ? \"next\" : \"prev\";\n setPage(newPage);\n onPageChange?.(direction, newPage, totalPages);\n }\n },\n [page, totalPages, onPageChange]\n );\n\n const isFirstPage = page === 0;\n const isLastPage = page >= totalPages - 1;\n\n return {\n page,\n totalPages,\n currentItems,\n goNext,\n goPrev,\n goToPage,\n isFirstPage,\n isLastPage,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback, type RefObject } from \"react\";\n\ninterface UseSliderDragOptions {\n /** Ref to the container element. */\n containerRef: RefObject<HTMLDivElement | null>;\n /** Initial slider position as a percentage (0-100). Defaults to 50. */\n initialPosition?: number;\n /** Minimum allowed position. Defaults to 0. */\n minPosition?: number;\n /** Maximum allowed position. Defaults to 100. */\n maxPosition?: number;\n}\n\ninterface UseSliderDragReturn {\n /** Current slider position as a percentage (0-100). */\n sliderPosition: number;\n /** Whether the user is currently dragging. */\n isDragging: boolean;\n /** Call this on mousedown/touchstart to begin dragging. */\n handleMouseDown: () => void;\n /** Programmatically set the slider position. */\n setSliderPosition: (position: number) => void;\n}\n\n/**\n * Handles mouse and touch drag interactions for a horizontal slider.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useSliderDrag({\n containerRef,\n initialPosition = 50,\n minPosition = 0,\n maxPosition = 100,\n}: UseSliderDragOptions): UseSliderDragReturn {\n const [sliderPosition, setSliderPosition] = useState(initialPosition);\n const [isDragging, setIsDragging] = useState(false);\n\n const handleSliderMove = useCallback(\n (clientX: number) => {\n if (!containerRef.current) return;\n const rect = containerRef.current.getBoundingClientRect();\n const x = clientX - rect.left;\n const percentage = Math.max(\n minPosition,\n Math.min(maxPosition, (x / rect.width) * 100)\n );\n setSliderPosition(percentage);\n },\n [containerRef, minPosition, maxPosition]\n );\n\n const handleMouseDown = useCallback(() => {\n setIsDragging(true);\n }, []);\n\n const handleMouseUp = useCallback(() => {\n setIsDragging(false);\n }, []);\n\n const handleMouseMove = useCallback(\n (e: MouseEvent) => {\n if (isDragging) {\n handleSliderMove(e.clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (isDragging && e.touches[0]) {\n handleSliderMove(e.touches[0].clientX);\n }\n },\n [isDragging, handleSliderMove]\n );\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n if (isDragging) {\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n window.addEventListener(\"touchmove\", handleTouchMove);\n window.addEventListener(\"touchend\", handleMouseUp);\n }\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n window.removeEventListener(\"touchmove\", handleTouchMove);\n window.removeEventListener(\"touchend\", handleMouseUp);\n };\n }, [isDragging, handleMouseMove, handleMouseUp, handleTouchMove]);\n\n return {\n sliderPosition,\n isDragging,\n handleMouseDown,\n setSliderPosition,\n };\n}\n","\"use client\";\n\nimport { useState, useEffect, useCallback } from \"react\";\n\ntype OrderStatus = \"idle\" | \"pending\" | \"added\" | \"error\";\n\ninterface UseOrderTrackingOptions {\n /** Product ID to track. */\n productId?: string;\n}\n\ninterface UseOrderTrackingReturn {\n /** Current order status. */\n orderStatus: OrderStatus;\n /** Error message if status is \"error\". */\n orderError: string | null;\n /** Mark the order as pending. */\n startOrder: () => void;\n /** Reset to idle state. */\n reset: () => void;\n}\n\n/**\n * Tracks a single product order status via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useOrderTracking({\n productId,\n}: UseOrderTrackingOptions): UseOrderTrackingReturn {\n const [orderStatus, setOrderStatus] = useState<OrderStatus>(\"idle\");\n const [orderError, setOrderError] = useState<string | null>(null);\n\n useEffect(() => {\n if (typeof window === \"undefined\" || !productId) return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id === productId) {\n if (success) {\n setOrderStatus(\"added\");\n setOrderError(null);\n } else {\n setOrderStatus(\"error\");\n setOrderError(error || \"Failed to add to cart\");\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, [productId]);\n\n const startOrder = useCallback(() => {\n setOrderStatus(\"pending\");\n setOrderError(null);\n }, []);\n\n const reset = useCallback(() => {\n setOrderStatus(\"idle\");\n setOrderError(null);\n }, []);\n\n return { orderStatus, orderError, startOrder, reset };\n}\n\ninterface UseMultiOrderTrackingReturn {\n /** Get status for a specific product. */\n getStatus: (productId: string) => OrderStatus;\n /** Get error message for a specific product. */\n getError: (productId: string) => string | undefined;\n /** Mark a product order as pending. */\n startOrder: (productId: string) => void;\n /** Reset a specific product's order status. */\n reset: (productId: string) => void;\n /** Reset all tracked products. */\n resetAll: () => void;\n}\n\n/**\n * Tracks multiple product order statuses via the `caesarstone:order-sample-complete` custom event.\n * SSR-safe: event listeners are only attached in the browser.\n */\nexport function useMultiOrderTracking(): UseMultiOrderTrackingReturn {\n const [statusMap, setStatusMap] = useState<Map<string, OrderStatus>>(\n new Map()\n );\n const [errorMap, setErrorMap] = useState<Map<string, string>>(new Map());\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n\n const handleOrderComplete = (e: Event) => {\n const customEvent = e as CustomEvent<{\n success: boolean;\n product_id: string;\n error?: string;\n }>;\n const { success, product_id, error } = customEvent.detail || {};\n\n if (product_id) {\n if (success) {\n setStatusMap((prev) => new Map(prev).set(product_id, \"added\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(product_id);\n return next;\n });\n } else {\n setStatusMap((prev) => new Map(prev).set(product_id, \"error\"));\n setErrorMap((prev) =>\n new Map(prev).set(product_id, error || \"Failed to add to cart\")\n );\n }\n }\n };\n\n window.addEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n return () => {\n window.removeEventListener(\n \"caesarstone:order-sample-complete\",\n handleOrderComplete\n );\n };\n }, []);\n\n const getStatus = useCallback(\n (productId: string) => statusMap.get(productId) || \"idle\",\n [statusMap]\n );\n\n const getError = useCallback(\n (productId: string) => errorMap.get(productId),\n [errorMap]\n );\n\n const startOrder = useCallback((productId: string) => {\n setStatusMap((prev) => new Map(prev).set(productId, \"pending\"));\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const reset = useCallback((productId: string) => {\n setStatusMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n setErrorMap((prev) => {\n const next = new Map(prev);\n next.delete(productId);\n return next;\n });\n }, []);\n\n const resetAll = useCallback(() => {\n setStatusMap(new Map());\n setErrorMap(new Map());\n }, []);\n\n return { getStatus, getError, startOrder, reset, resetAll };\n}\n"]}
|
package/dist/i18n.cjs
CHANGED
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
require('./chunk-X7R334SB.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunk72QJ2ORD_cjs = require('./chunk-72QJ2ORD.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "I18nProvider", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunk72QJ2ORD_cjs.I18nProvider; }
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "addLanguage", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunk72QJ2ORD_cjs.addLanguage; }
|
|
16
16
|
});
|
|
17
17
|
Object.defineProperty(exports, "isRTL", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunk72QJ2ORD_cjs.isRTL; }
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(exports, "useI18n", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunk72QJ2ORD_cjs.useI18n; }
|
|
24
24
|
});
|
|
25
25
|
//# sourceMappingURL=i18n.cjs.map
|
|
26
26
|
//# sourceMappingURL=i18n.cjs.map
|
package/dist/i18n.d.cts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
export { L as Language } from './types-
|
|
3
|
+
export { L as Language } from './types-DRa1zFlN.cjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* All supported translation keys.
|
|
7
7
|
*/
|
|
8
|
-
type TranslationKeys = "welcomeTitle" | "welcomeSubtitle" | "searchKnowledgeBase" | "searchingFor" | "processing" | "thinking" | "newConversation" | "backToStart" | "closeChat" | "alwaysVerify" | "poweredBy" | "startNewConversation" | "somethingWentWrong" | "conversationTooLong" | "conversationTooLongDesc" | "somethingWentWrongDesc" | "typeMessage" | "send" | "aboutUs" | "aboutUsDesc" | "support" | "supportDesc" | "features" | "featuresDesc" | "search" | "searchDesc" | "greeting" | "guest" | "guestDesc" | "customer" | "customerDesc" | "partner" | "partnerDesc" | "aboutUsQuery" | "supportQuery" | "featuresQuery" | "searchQuery" | "whatWentWrong" | "wrongAnswer" | "partialAnswer" | "hallucination" | "inappropriateTone" | "addDetails" | "submitting" | "submitFeedback" | "helpful" | "notHelpful" | "copyResponse" | "searchingProducts" | "searchingProductsFor" | "sendingVerification" | "verifyingOrders" | "generatingLogin" | "noProductsFound" | "noOrdersFound" | "inStock" | "outOfStock" | "backorder" | "sale" | "addToCart" | "addedToCart" | "addToCartError" | "loginToStore" | "enterEmail" | "sendCode" | "otpSentTo" | "verifyCode" | "verifiedSuccess" | "resendCode" | "invalidCode" | "selectVariation" | "orderStatus_completed" | "orderStatus_processing" | "orderStatus_on-hold" | "orderStatus_pending" | "orderStatus_cancelled" | "orderStatus_failed" | "orderStatus_refunded" | "cart" | "yourCart" | "cartItems" | "cartEmpty" | "checkout" | "cartTotal" | "removeItem" | "liveChatConnecting" | "liveChatPosition" | "liveChatCancel" | "liveChatChattingWith" | "liveChatEndChat" | "liveChatRateTitle" | "liveChatRateThank" | "liveChatBackToAI" | "liveChatSubmit" | "liveChatSkip" | "liveChatFeedbackPlaceholder" | "liveChatTalkToHuman" | "liveChatIdentityTitle" | "liveChatIdentityName" | "liveChatIdentityEmail" | "liveChatIdentityConnect" | "liveChatIdentityContinue" | "liveChatRateExperience" | "liveChatEnded";
|
|
8
|
+
type TranslationKeys = "welcomeTitle" | "welcomeSubtitle" | "searchKnowledgeBase" | "searchingFor" | "processing" | "thinking" | "newConversation" | "backToStart" | "closeChat" | "alwaysVerify" | "poweredBy" | "startNewConversation" | "somethingWentWrong" | "conversationTooLong" | "conversationTooLongDesc" | "somethingWentWrongDesc" | "tryAgain" | "typeMessage" | "send" | "aboutUs" | "aboutUsDesc" | "support" | "supportDesc" | "features" | "featuresDesc" | "search" | "searchDesc" | "greeting" | "guest" | "guestDesc" | "customer" | "customerDesc" | "partner" | "partnerDesc" | "aboutUsQuery" | "supportQuery" | "featuresQuery" | "searchQuery" | "whatWentWrong" | "wrongAnswer" | "partialAnswer" | "hallucination" | "inappropriateTone" | "addDetails" | "submitting" | "submitFeedback" | "helpful" | "notHelpful" | "copyResponse" | "searchingProducts" | "searchingProductsFor" | "sendingVerification" | "verifyingOrders" | "generatingLogin" | "noProductsFound" | "noOrdersFound" | "inStock" | "outOfStock" | "backorder" | "sale" | "addToCart" | "addedToCart" | "addToCartError" | "loginToStore" | "enterEmail" | "sendCode" | "otpSentTo" | "verifyCode" | "verifiedSuccess" | "resendCode" | "invalidCode" | "selectVariation" | "orderStatus_completed" | "orderStatus_processing" | "orderStatus_on-hold" | "orderStatus_pending" | "orderStatus_cancelled" | "orderStatus_failed" | "orderStatus_refunded" | "cart" | "yourCart" | "cartItems" | "cartEmpty" | "checkout" | "cartTotal" | "removeItem" | "liveChatConnecting" | "liveChatPosition" | "liveChatCancel" | "liveChatChattingWith" | "liveChatEndChat" | "liveChatRateTitle" | "liveChatRateThank" | "liveChatBackToAI" | "liveChatSubmit" | "liveChatSkip" | "liveChatFeedbackPlaceholder" | "liveChatTalkToHuman" | "liveChatIdentityTitle" | "liveChatIdentityName" | "liveChatIdentityEmail" | "liveChatIdentityConnect" | "liveChatIdentityContinue" | "liveChatRateExperience" | "liveChatEnded";
|
|
9
9
|
/** A complete set of translations for a language. */
|
|
10
10
|
type TranslationMap = Record<TranslationKeys, string>;
|
|
11
11
|
/**
|
package/dist/i18n.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
export { L as Language } from './types-
|
|
3
|
+
export { L as Language } from './types-DRa1zFlN.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* All supported translation keys.
|
|
7
7
|
*/
|
|
8
|
-
type TranslationKeys = "welcomeTitle" | "welcomeSubtitle" | "searchKnowledgeBase" | "searchingFor" | "processing" | "thinking" | "newConversation" | "backToStart" | "closeChat" | "alwaysVerify" | "poweredBy" | "startNewConversation" | "somethingWentWrong" | "conversationTooLong" | "conversationTooLongDesc" | "somethingWentWrongDesc" | "typeMessage" | "send" | "aboutUs" | "aboutUsDesc" | "support" | "supportDesc" | "features" | "featuresDesc" | "search" | "searchDesc" | "greeting" | "guest" | "guestDesc" | "customer" | "customerDesc" | "partner" | "partnerDesc" | "aboutUsQuery" | "supportQuery" | "featuresQuery" | "searchQuery" | "whatWentWrong" | "wrongAnswer" | "partialAnswer" | "hallucination" | "inappropriateTone" | "addDetails" | "submitting" | "submitFeedback" | "helpful" | "notHelpful" | "copyResponse" | "searchingProducts" | "searchingProductsFor" | "sendingVerification" | "verifyingOrders" | "generatingLogin" | "noProductsFound" | "noOrdersFound" | "inStock" | "outOfStock" | "backorder" | "sale" | "addToCart" | "addedToCart" | "addToCartError" | "loginToStore" | "enterEmail" | "sendCode" | "otpSentTo" | "verifyCode" | "verifiedSuccess" | "resendCode" | "invalidCode" | "selectVariation" | "orderStatus_completed" | "orderStatus_processing" | "orderStatus_on-hold" | "orderStatus_pending" | "orderStatus_cancelled" | "orderStatus_failed" | "orderStatus_refunded" | "cart" | "yourCart" | "cartItems" | "cartEmpty" | "checkout" | "cartTotal" | "removeItem" | "liveChatConnecting" | "liveChatPosition" | "liveChatCancel" | "liveChatChattingWith" | "liveChatEndChat" | "liveChatRateTitle" | "liveChatRateThank" | "liveChatBackToAI" | "liveChatSubmit" | "liveChatSkip" | "liveChatFeedbackPlaceholder" | "liveChatTalkToHuman" | "liveChatIdentityTitle" | "liveChatIdentityName" | "liveChatIdentityEmail" | "liveChatIdentityConnect" | "liveChatIdentityContinue" | "liveChatRateExperience" | "liveChatEnded";
|
|
8
|
+
type TranslationKeys = "welcomeTitle" | "welcomeSubtitle" | "searchKnowledgeBase" | "searchingFor" | "processing" | "thinking" | "newConversation" | "backToStart" | "closeChat" | "alwaysVerify" | "poweredBy" | "startNewConversation" | "somethingWentWrong" | "conversationTooLong" | "conversationTooLongDesc" | "somethingWentWrongDesc" | "tryAgain" | "typeMessage" | "send" | "aboutUs" | "aboutUsDesc" | "support" | "supportDesc" | "features" | "featuresDesc" | "search" | "searchDesc" | "greeting" | "guest" | "guestDesc" | "customer" | "customerDesc" | "partner" | "partnerDesc" | "aboutUsQuery" | "supportQuery" | "featuresQuery" | "searchQuery" | "whatWentWrong" | "wrongAnswer" | "partialAnswer" | "hallucination" | "inappropriateTone" | "addDetails" | "submitting" | "submitFeedback" | "helpful" | "notHelpful" | "copyResponse" | "searchingProducts" | "searchingProductsFor" | "sendingVerification" | "verifyingOrders" | "generatingLogin" | "noProductsFound" | "noOrdersFound" | "inStock" | "outOfStock" | "backorder" | "sale" | "addToCart" | "addedToCart" | "addToCartError" | "loginToStore" | "enterEmail" | "sendCode" | "otpSentTo" | "verifyCode" | "verifiedSuccess" | "resendCode" | "invalidCode" | "selectVariation" | "orderStatus_completed" | "orderStatus_processing" | "orderStatus_on-hold" | "orderStatus_pending" | "orderStatus_cancelled" | "orderStatus_failed" | "orderStatus_refunded" | "cart" | "yourCart" | "cartItems" | "cartEmpty" | "checkout" | "cartTotal" | "removeItem" | "liveChatConnecting" | "liveChatPosition" | "liveChatCancel" | "liveChatChattingWith" | "liveChatEndChat" | "liveChatRateTitle" | "liveChatRateThank" | "liveChatBackToAI" | "liveChatSubmit" | "liveChatSkip" | "liveChatFeedbackPlaceholder" | "liveChatTalkToHuman" | "liveChatIdentityTitle" | "liveChatIdentityName" | "liveChatIdentityEmail" | "liveChatIdentityConnect" | "liveChatIdentityContinue" | "liveChatRateExperience" | "liveChatEnded";
|
|
9
9
|
/** A complete set of translations for a language. */
|
|
10
10
|
type TranslationMap = Record<TranslationKeys, string>;
|
|
11
11
|
/**
|
package/dist/i18n.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import './chunk-MZQKGNWF.js';
|
|
3
|
-
export { I18nProvider, addLanguage, isRTL, useI18n } from './chunk-
|
|
3
|
+
export { I18nProvider, addLanguage, isRTL, useI18n } from './chunk-LDQVDUUJ.js';
|
|
4
4
|
//# sourceMappingURL=i18n.js.map
|
|
5
5
|
//# sourceMappingURL=i18n.js.map
|