@cossistant/react 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -0
- package/_virtual/rolldown_runtime.js +19 -0
- package/conversation.d.ts +26 -3
- package/conversation.d.ts.map +1 -1
- package/hooks/index.d.ts +5 -3
- package/hooks/index.js +7 -5
- package/hooks/private/store/use-conversations-store.d.ts +8 -0
- package/hooks/private/store/use-conversations-store.d.ts.map +1 -1
- package/hooks/private/store/use-conversations-store.js +8 -0
- package/hooks/private/store/use-conversations-store.js.map +1 -1
- package/hooks/private/store/use-store-selector.d.ts +4 -0
- package/hooks/private/store/use-store-selector.d.ts.map +1 -1
- package/hooks/private/store/use-store-selector.js +5 -2
- package/hooks/private/store/use-store-selector.js.map +1 -1
- package/hooks/private/store/use-website-store.d.ts +4 -0
- package/hooks/private/store/use-website-store.d.ts.map +1 -1
- package/hooks/private/store/use-website-store.js +6 -3
- package/hooks/private/store/use-website-store.js.map +1 -1
- package/hooks/private/typing.d.ts +35 -0
- package/hooks/private/typing.d.ts.map +1 -0
- package/hooks/private/typing.js +49 -0
- package/hooks/private/typing.js.map +1 -0
- package/hooks/private/use-client-query.d.ts +5 -0
- package/hooks/private/use-client-query.d.ts.map +1 -1
- package/hooks/private/use-client-query.js +5 -0
- package/hooks/private/use-client-query.js.map +1 -1
- package/hooks/private/use-grouped-messages.d.ts +10 -4
- package/hooks/private/use-grouped-messages.d.ts.map +1 -1
- package/hooks/private/use-grouped-messages.js +24 -4
- package/hooks/private/use-grouped-messages.js.map +1 -1
- package/hooks/private/use-multimodal-input.d.ts.map +1 -1
- package/hooks/private/use-rest-client.d.ts.map +1 -1
- package/hooks/private/use-visitor-typing-reporter.d.ts +6 -0
- package/hooks/private/use-visitor-typing-reporter.d.ts.map +1 -1
- package/hooks/private/use-visitor-typing-reporter.js +6 -0
- package/hooks/private/use-visitor-typing-reporter.js.map +1 -1
- package/hooks/use-composer-refocus.d.ts.map +1 -1
- package/hooks/use-conversation-auto-seen.d.ts +9 -0
- package/hooks/use-conversation-auto-seen.d.ts.map +1 -1
- package/hooks/use-conversation-auto-seen.js +44 -3
- package/hooks/use-conversation-auto-seen.js.map +1 -1
- package/hooks/use-conversation-history-page.d.ts.map +1 -1
- package/hooks/use-conversation-history-page.js +16 -18
- package/hooks/use-conversation-history-page.js.map +1 -1
- package/hooks/use-conversation-lifecycle.d.ts.map +1 -1
- package/hooks/use-conversation-lifecycle.js +2 -4
- package/hooks/use-conversation-lifecycle.js.map +1 -1
- package/hooks/use-conversation-page.d.ts +6 -0
- package/hooks/use-conversation-page.d.ts.map +1 -1
- package/hooks/use-conversation-page.js +41 -3
- package/hooks/use-conversation-page.js.map +1 -1
- package/hooks/use-conversation-preview.d.ts +61 -0
- package/hooks/use-conversation-preview.d.ts.map +1 -0
- package/hooks/use-conversation-preview.js +173 -0
- package/hooks/use-conversation-preview.js.map +1 -0
- package/hooks/use-conversation-seen.d.ts +4 -0
- package/hooks/use-conversation-seen.d.ts.map +1 -1
- package/hooks/use-conversation-seen.js +4 -0
- package/hooks/use-conversation-seen.js.map +1 -1
- package/hooks/use-conversation-timeline-items.d.ts +4 -0
- package/hooks/use-conversation-timeline-items.d.ts.map +1 -1
- package/hooks/use-conversation-timeline-items.js +4 -0
- package/hooks/use-conversation-timeline-items.js.map +1 -1
- package/hooks/use-conversation-timeline.d.ts +32 -0
- package/hooks/use-conversation-timeline.d.ts.map +1 -0
- package/hooks/use-conversation-timeline.js +41 -0
- package/hooks/use-conversation-timeline.js.map +1 -0
- package/hooks/use-conversation-typing.d.ts +4 -0
- package/hooks/use-conversation-typing.d.ts.map +1 -1
- package/hooks/use-conversation-typing.js +4 -0
- package/hooks/use-conversation-typing.js.map +1 -1
- package/hooks/use-conversation.d.ts +11 -0
- package/hooks/use-conversation.d.ts.map +1 -1
- package/hooks/use-conversation.js +11 -0
- package/hooks/use-conversation.js.map +1 -1
- package/hooks/use-conversations.d.ts +12 -0
- package/hooks/use-conversations.d.ts.map +1 -1
- package/hooks/use-conversations.js +12 -0
- package/hooks/use-conversations.js.map +1 -1
- package/hooks/use-create-conversation.d.ts +5 -0
- package/hooks/use-create-conversation.d.ts.map +1 -1
- package/hooks/use-create-conversation.js +12 -9
- package/hooks/use-create-conversation.js.map +1 -1
- package/hooks/use-home-page.d.ts.map +1 -1
- package/hooks/use-home-page.js +6 -4
- package/hooks/use-home-page.js.map +1 -1
- package/hooks/use-message-composer.d.ts.map +1 -1
- package/hooks/use-realtime-support.d.ts.map +1 -1
- package/hooks/use-send-message.d.ts +9 -0
- package/hooks/use-send-message.d.ts.map +1 -1
- package/hooks/use-send-message.js +15 -13
- package/hooks/use-send-message.js.map +1 -1
- package/hooks/use-visitor.d.ts.map +1 -1
- package/hooks/use-visitor.js +28 -30
- package/hooks/use-visitor.js.map +1 -1
- package/hooks/use-window-visibility-focus.d.ts +4 -0
- package/hooks/use-window-visibility-focus.d.ts.map +1 -1
- package/hooks/use-window-visibility-focus.js +5 -2
- package/hooks/use-window-visibility-focus.js.map +1 -1
- package/identify-visitor.d.ts +12 -3
- package/identify-visitor.d.ts.map +1 -1
- package/identify-visitor.js +58 -9
- package/identify-visitor.js.map +1 -1
- package/index.d.ts +10 -7
- package/index.js +10 -9
- package/package.json +14 -17
- package/primitives/avatar/avatar.d.ts.map +1 -1
- package/primitives/avatar/fallback.d.ts.map +1 -1
- package/primitives/avatar/fallback.js +1 -3
- package/primitives/avatar/fallback.js.map +1 -1
- package/primitives/avatar/image.d.ts.map +1 -1
- package/primitives/avatar/index.d.ts +1 -0
- package/primitives/bubble.d.ts +2 -0
- package/primitives/bubble.d.ts.map +1 -1
- package/primitives/bubble.js +8 -2
- package/primitives/bubble.js.map +1 -1
- package/primitives/button.d.ts.map +1 -1
- package/primitives/conversation-timeline.d.ts.map +1 -1
- package/primitives/conversation-timeline.js +58 -5
- package/primitives/conversation-timeline.js.map +1 -1
- package/primitives/index.d.ts +1 -0
- package/primitives/index.parts.d.ts +1 -0
- package/primitives/multimodal-input.d.ts.map +1 -1
- package/primitives/timeline-item-group.d.ts +7 -7
- package/primitives/timeline-item-group.d.ts.map +1 -1
- package/primitives/timeline-item-group.js.map +1 -1
- package/primitives/timeline-item.d.ts +1 -1
- package/primitives/timeline-item.d.ts.map +1 -1
- package/primitives/timeline-item.js +7 -1
- package/primitives/timeline-item.js.map +1 -1
- package/primitives/window.d.ts +1 -1
- package/primitives/window.d.ts.map +1 -1
- package/primitives/window.js +4 -4
- package/primitives/window.js.map +1 -1
- package/provider.d.ts +23 -43
- package/provider.d.ts.map +1 -1
- package/provider.js +152 -49
- package/provider.js.map +1 -1
- package/realtime/event-filter.d.ts +4 -0
- package/realtime/event-filter.d.ts.map +1 -1
- package/realtime/event-filter.js +4 -0
- package/realtime/event-filter.js.map +1 -1
- package/realtime/index.js +1 -1
- package/realtime/provider.d.ts +7 -2
- package/realtime/provider.d.ts.map +1 -1
- package/realtime/provider.js +23 -1
- package/realtime/provider.js.map +1 -1
- package/realtime/seen-store.d.ts +13 -0
- package/realtime/seen-store.d.ts.map +1 -1
- package/realtime/seen-store.js +14 -2
- package/realtime/seen-store.js.map +1 -1
- package/realtime/support-provider.d.ts +1 -2
- package/realtime/support-provider.d.ts.map +1 -1
- package/realtime/support-provider.js +19 -20
- package/realtime/support-provider.js.map +1 -1
- package/realtime/typing-store.d.ts +18 -0
- package/realtime/typing-store.d.ts.map +1 -1
- package/realtime/typing-store.js +19 -2
- package/realtime/typing-store.js.map +1 -1
- package/realtime/use-realtime.d.ts +8 -4
- package/realtime/use-realtime.d.ts.map +1 -1
- package/realtime/use-realtime.js +4 -0
- package/realtime/use-realtime.js.map +1 -1
- package/realtime-events.d.ts +17 -3
- package/realtime-events.d.ts.map +1 -1
- package/schemas.d.ts +7 -1
- package/schemas.d.ts.map +1 -1
- package/support/components/avatar-stack.d.ts +8 -4
- package/support/components/avatar-stack.d.ts.map +1 -1
- package/support/components/avatar-stack.js +4 -0
- package/support/components/avatar-stack.js.map +1 -1
- package/support/components/avatar.d.ts +11 -6
- package/support/components/avatar.d.ts.map +1 -1
- package/support/components/avatar.js +4 -0
- package/support/components/avatar.js.map +1 -1
- package/support/components/bubble.d.ts.map +1 -1
- package/support/components/bubble.js +29 -6
- package/support/components/bubble.js.map +1 -1
- package/support/components/button.d.ts +8 -5
- package/support/components/button.d.ts.map +1 -1
- package/support/components/button.js +5 -1
- package/support/components/button.js.map +1 -1
- package/support/components/container.d.ts +0 -1
- package/support/components/container.d.ts.map +1 -1
- package/support/components/container.js +2 -8
- package/support/components/container.js.map +1 -1
- package/support/components/conversation-button-link.d.ts +8 -21
- package/support/components/conversation-button-link.d.ts.map +1 -1
- package/support/components/conversation-button-link.js +62 -178
- package/support/components/conversation-button-link.js.map +1 -1
- package/support/components/conversation-event.d.ts.map +1 -1
- package/support/components/conversation-event.js +4 -0
- package/support/components/conversation-event.js.map +1 -1
- package/support/components/conversation-timeline.d.ts +10 -1
- package/support/components/conversation-timeline.d.ts.map +1 -1
- package/support/components/conversation-timeline.js +63 -57
- package/support/components/conversation-timeline.js.map +1 -1
- package/support/components/cossistant-branding.d.ts +5 -2
- package/support/components/cossistant-branding.d.ts.map +1 -1
- package/support/components/cossistant-branding.js +3 -0
- package/support/components/cossistant-branding.js.map +1 -1
- package/support/components/header.d.ts.map +1 -1
- package/support/components/header.js +2 -2
- package/support/components/header.js.map +1 -1
- package/support/components/icons.d.ts.map +1 -1
- package/support/components/multimodal-input.d.ts.map +1 -1
- package/support/components/multimodal-input.js +5 -24
- package/support/components/multimodal-input.js.map +1 -1
- package/support/components/navigation-tab.d.ts +7 -2
- package/support/components/navigation-tab.d.ts.map +1 -1
- package/support/components/navigation-tab.js +4 -0
- package/support/components/navigation-tab.js.map +1 -1
- package/support/components/support-content.d.ts +1 -1
- package/support/components/support-content.d.ts.map +1 -1
- package/support/components/support-content.js +7 -10
- package/support/components/support-content.js.map +1 -1
- package/support/components/text-effect.d.ts +5 -2
- package/support/components/text-effect.d.ts.map +1 -1
- package/support/components/text-effect.js +4 -0
- package/support/components/text-effect.js.map +1 -1
- package/support/components/timeline-identification-tool.d.ts +7 -0
- package/support/components/timeline-identification-tool.d.ts.map +1 -0
- package/support/components/timeline-identification-tool.js +139 -0
- package/support/components/timeline-identification-tool.js.map +1 -0
- package/support/components/timeline-message-group.d.ts +2 -1
- package/support/components/timeline-message-group.d.ts.map +1 -1
- package/support/components/timeline-message-group.js +4 -19
- package/support/components/timeline-message-group.js.map +1 -1
- package/support/components/timeline-message-item.d.ts +6 -2
- package/support/components/timeline-message-item.d.ts.map +1 -1
- package/support/components/timeline-message-item.js +8 -4
- package/support/components/timeline-message-item.js.map +1 -1
- package/support/components/typing-indicator.d.ts +5 -2
- package/support/components/typing-indicator.d.ts.map +1 -1
- package/support/components/typing-indicator.js +4 -4
- package/support/components/typing-indicator.js.map +1 -1
- package/support/components/watermark.d.ts.map +1 -1
- package/support/context/websocket.d.ts +8 -0
- package/support/context/websocket.d.ts.map +1 -1
- package/support/context/websocket.js +12 -6
- package/support/context/websocket.js.map +1 -1
- package/support/index.d.ts +8 -8
- package/support/index.d.ts.map +1 -1
- package/support/index.js +18 -18
- package/support/index.js.map +1 -1
- package/support/pages/conversation-history.js +46 -54
- package/support/pages/conversation-history.js.map +1 -1
- package/support/pages/conversation.d.ts +3 -6
- package/support/pages/conversation.d.ts.map +1 -1
- package/support/pages/conversation.js +19 -9
- package/support/pages/conversation.js.map +1 -1
- package/support/pages/home.d.ts +2 -2
- package/support/pages/home.d.ts.map +1 -1
- package/support/pages/home.js +64 -77
- package/support/pages/home.js.map +1 -1
- package/support/store/support-store.d.ts +18 -2
- package/support/store/support-store.d.ts.map +1 -1
- package/support/store/support-store.js +20 -5
- package/support/store/support-store.js.map +1 -1
- package/support/{support-CMoDLQoC.css → support-Ck4jy29i.css} +1 -2
- package/support/support-Ck4jy29i.css.map +1 -0
- package/support/text/index.d.ts +15 -2
- package/support/text/index.d.ts.map +1 -1
- package/support/text/index.js +15 -2
- package/support/text/index.js.map +1 -1
- package/support/text/locales/en.js +22 -4
- package/support/text/locales/en.js.map +1 -1
- package/support/text/locales/es.js +18 -0
- package/support/text/locales/es.js.map +1 -1
- package/support/text/locales/fr.js +18 -0
- package/support/text/locales/fr.js.map +1 -1
- package/support/text/locales/keys.d.ts +69 -9
- package/support/text/locales/keys.d.ts.map +1 -1
- package/support/text/locales/keys.js +18 -0
- package/support/text/locales/keys.js.map +1 -1
- package/support/text/runtime.d.ts +21 -0
- package/support/text/runtime.d.ts.map +1 -1
- package/support/text/runtime.js +21 -0
- package/support/text/runtime.js.map +1 -1
- package/support/utils/index.d.ts +4 -0
- package/support/utils/index.d.ts.map +1 -1
- package/support/utils/index.js +4 -1
- package/support/utils/index.js.map +1 -1
- package/support/utils/time.d.ts +3 -0
- package/support/utils/time.d.ts.map +1 -1
- package/support/utils/time.js +3 -0
- package/support/utils/time.js.map +1 -1
- package/support-config.d.ts +2 -1
- package/support-config.d.ts.map +1 -1
- package/support-config.js.map +1 -1
- package/support.css +2 -2
- package/timeline-item.d.ts +10 -0
- package/timeline-item.d.ts.map +1 -1
- package/utils/conversation.d.ts +7 -0
- package/utils/conversation.d.ts.map +1 -0
- package/utils/conversation.js +18 -0
- package/utils/conversation.js.map +1 -0
- package/utils/id.d.ts +3 -0
- package/utils/id.d.ts.map +1 -1
- package/utils/id.js +3 -0
- package/utils/id.js.map +1 -1
- package/utils/index.d.ts +2 -1
- package/utils/index.js +2 -1
- package/utils/metadata-hash.d.ts +12 -0
- package/utils/metadata-hash.d.ts.map +1 -0
- package/utils/metadata-hash.js +26 -0
- package/utils/metadata-hash.js.map +1 -0
- package/utils/text.d.ts +3 -0
- package/utils/text.d.ts.map +1 -1
- package/utils/text.js +3 -0
- package/utils/text.js.map +1 -1
- package/utils/use-render-element.d.ts +3 -0
- package/utils/use-render-element.d.ts.map +1 -1
- package/utils/use-render-element.js +3 -0
- package/utils/use-render-element.js.map +1 -1
- package/support/context/config.d.ts +0 -32
- package/support/context/config.d.ts.map +0 -1
- package/support/context/config.js +0 -27
- package/support/context/config.js.map +0 -1
- package/support/support-CMoDLQoC.css.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support-store.js","names":["patch: Partial<SupportConfig>"],"sources":["../../../src/support/store/support-store.ts"],"sourcesContent":["\"use client\";\n\nimport {\n\tcreateSupportStore,\n\ttype SupportConfig,\n\ttype SupportStore,\n\ttype SupportStoreState,\n} from \"@cossistant/core\";\nimport { useMemo, useRef, useSyncExternalStore } from \"react\";\n\nconst storage = typeof window !== \"undefined\" ? window.localStorage : undefined;\nconst store = createSupportStore({ storage });\n\ntype Selector<T> = (state: SupportStoreState) => T;\n\ntype EqualityChecker<T> = (previous: T, next: T) => boolean;\n\nfunction useSelector<TSelected>(\n\tselector: Selector<TSelected>,\n\tisEqual: EqualityChecker<TSelected> = Object.is\n): TSelected {\n\tconst selectionRef = useRef<TSelected>(undefined);\n\n\tconst subscribe = (onStoreChange: () => void) =>\n\t\tstore.subscribe(() => {\n\t\t\tonStoreChange();\n\t\t});\n\n\tconst snapshot = useSyncExternalStore(\n\t\tsubscribe,\n\t\tstore.getState,\n\t\tstore.getState\n\t);\n\n\tconst selected = selector(snapshot);\n\n\tif (\n\t\tselectionRef.current === undefined ||\n\t\t!isEqual(selectionRef.current, selected)\n\t) {\n\t\tselectionRef.current = selected;\n\t}\n\n\treturn selectionRef.current as TSelected;\n}\n\nexport type UseSupportStoreResult = SupportStoreState &\n\tPick<\n\t\tSupportStore,\n\t\t| \"navigate\"\n\t\t| \"replace\"\n\t\t| \"goBack\"\n\t\t| \"open\"\n\t\t| \"close\"\n\t\t| \"toggle\"\n\t\t| \"updateConfig\"\n\t\t| \"reset\"\n\t>;\n\nexport function useSupportStore(): UseSupportStoreResult {\n\tconst state = useSelector((current) => current);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\t...state,\n\t\t\tnavigate: store.navigate,\n\t\t\treplace: store.replace,\n\t\t\tgoBack: store.goBack,\n\t\t\topen: store.open,\n\t\t\tclose: store.close,\n\t\t\ttoggle: store.toggle,\n\t\t\tupdateConfig: store.updateConfig,\n\t\t\treset: store.reset,\n\t\t}),\n\t\t[state]\n\t);\n}\n\nexport const useSupportConfig = () => {\n\tconst config = useSelector((state) => state.config);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\t...config,\n\t\t\topen: store.open,\n\t\t\tclose: store.close,\n\t\t\ttoggle: store.toggle,\n\t\t}),\n\t\t[config]\n\t);\n};\n\nexport const useSupportNavigation = () => {\n\tconst navigation = useSelector((state) => state.navigation);\n\tconst { current, previousPages } = navigation;\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcurrent,\n\t\t\tpage: current.page,\n\t\t\tparams: current.params,\n\t\t\tpreviousPages,\n\t\t\tnavigate: store.navigate,\n\t\t\treplace: store.replace,\n\t\t\tgoBack: store.goBack,\n\t\t\tcanGoBack: previousPages.length > 0,\n\t\t}),\n\t\t[current, previousPages]\n\t);\n};\n\nexport const initializeSupportStore = (props: {\n\
|
|
1
|
+
{"version":3,"file":"support-store.js","names":["patch: Partial<SupportConfig>"],"sources":["../../../src/support/store/support-store.ts"],"sourcesContent":["\"use client\";\n\nimport {\n\tcreateSupportStore,\n\ttype SupportConfig,\n\ttype SupportStore,\n\ttype SupportStoreState,\n} from \"@cossistant/core\";\nimport { useMemo, useRef, useSyncExternalStore } from \"react\";\n\nconst storage = typeof window !== \"undefined\" ? window.localStorage : undefined;\nconst store = createSupportStore({ storage });\n\ntype Selector<T> = (state: SupportStoreState) => T;\n\ntype EqualityChecker<T> = (previous: T, next: T) => boolean;\n\nfunction useSelector<TSelected>(\n\tselector: Selector<TSelected>,\n\tisEqual: EqualityChecker<TSelected> = Object.is\n): TSelected {\n\tconst selectionRef = useRef<TSelected>(undefined);\n\n\tconst subscribe = (onStoreChange: () => void) =>\n\t\tstore.subscribe(() => {\n\t\t\tonStoreChange();\n\t\t});\n\n\tconst snapshot = useSyncExternalStore(\n\t\tsubscribe,\n\t\tstore.getState,\n\t\tstore.getState\n\t);\n\n\tconst selected = selector(snapshot);\n\n\tif (\n\t\tselectionRef.current === undefined ||\n\t\t!isEqual(selectionRef.current, selected)\n\t) {\n\t\tselectionRef.current = selected;\n\t}\n\n\treturn selectionRef.current as TSelected;\n}\n\nexport type UseSupportStoreResult = SupportStoreState &\n\tPick<\n\t\tSupportStore,\n\t\t| \"navigate\"\n\t\t| \"replace\"\n\t\t| \"goBack\"\n\t\t| \"open\"\n\t\t| \"close\"\n\t\t| \"toggle\"\n\t\t| \"updateConfig\"\n\t\t| \"reset\"\n\t>;\n\n/**\n * React hook wrapper around the shared support widget store. Exposes both the\n * raw state and imperative actions so UI components can drive navigation or\n * change configuration without importing the store singleton directly.\n */\nexport function useSupportStore(): UseSupportStoreResult {\n\tconst state = useSelector((current) => current);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\t...state,\n\t\t\tnavigate: store.navigate,\n\t\t\treplace: store.replace,\n\t\t\tgoBack: store.goBack,\n\t\t\topen: store.open,\n\t\t\tclose: store.close,\n\t\t\ttoggle: store.toggle,\n\t\t\tupdateConfig: store.updateConfig,\n\t\t\treset: store.reset,\n\t\t}),\n\t\t[state]\n\t);\n}\n\n/**\n * Shortcut hook that returns the persisted widget configuration along with\n * open/close/toggle helpers for common UI bindings.\n */\nexport const useSupportConfig = () => {\n\tconst config = useSelector((state) => state.config);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\t...config,\n\t\t\topen: store.open,\n\t\t\tclose: store.close,\n\t\t\ttoggle: store.toggle,\n\t\t}),\n\t\t[config]\n\t);\n};\n\n/**\n * Provides the current navigation entry, the stack history and helpers to\n * transition between screens inside the support widget.\n */\nexport const useSupportNavigation = () => {\n\tconst navigation = useSelector((state) => state.navigation);\n\tconst { current, previousPages } = navigation;\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcurrent,\n\t\t\tpage: current.page,\n\t\t\tparams: current.params,\n\t\t\tpreviousPages,\n\t\t\tnavigate: store.navigate,\n\t\t\treplace: store.replace,\n\t\t\tgoBack: store.goBack,\n\t\t\tcanGoBack: previousPages.length > 0,\n\t\t}),\n\t\t[current, previousPages]\n\t);\n};\n\n/**\n * Applies initial configuration derived from provider props or server state to\n * the singleton support store. Call this once during bootstrapping so that the\n * UI renders with the expected open state.\n */\nexport const initializeSupportStore = (props: {\n\tsize?: SupportConfig[\"size\"];\n\tdefaultOpen?: boolean;\n}) => {\n\tconst patch: Partial<SupportConfig> = {};\n\n\tif (props.size !== undefined) {\n\t\tpatch.size = props.size;\n\t}\n\n\tif (props.defaultOpen !== undefined) {\n\t\tpatch.isOpen = props.defaultOpen;\n\t}\n\n\tif (Object.keys(patch).length > 0) {\n\t\tstore.updateConfig(patch);\n\t}\n};\n"],"mappings":";;;;;;;AAWA,MAAM,QAAQ,mBAAmB,EAAE,SADnB,OAAO,WAAW,cAAc,OAAO,eAAe,QAC1B,CAAC;AAM7C,SAAS,YACR,UACA,UAAsC,OAAO,IACjC;CACZ,MAAM,eAAe,OAAkB,OAAU;CAEjD,MAAM,aAAa,kBAClB,MAAM,gBAAgB;AACrB,iBAAe;GACd;CAQH,MAAM,WAAW,SANA,qBAChB,WACA,MAAM,UACN,MAAM,SACN,CAEkC;AAEnC,KACC,aAAa,YAAY,UACzB,CAAC,QAAQ,aAAa,SAAS,SAAS,CAExC,cAAa,UAAU;AAGxB,QAAO,aAAa;;;;;;;AAqBrB,SAAgB,kBAAyC;CACxD,MAAM,QAAQ,aAAa,YAAY,QAAQ;AAE/C,QAAO,eACC;EACN,GAAG;EACH,UAAU,MAAM;EAChB,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,cAAc,MAAM;EACpB,OAAO,MAAM;EACb,GACD,CAAC,MAAM,CACP;;;;;;AAOF,MAAa,yBAAyB;CACrC,MAAM,SAAS,aAAa,UAAU,MAAM,OAAO;AAEnD,QAAO,eACC;EACN,GAAG;EACH,MAAM,MAAM;EACZ,OAAO,MAAM;EACb,QAAQ,MAAM;EACd,GACD,CAAC,OAAO,CACR;;;;;;AAOF,MAAa,6BAA6B;CAEzC,MAAM,EAAE,SAAS,kBADE,aAAa,UAAU,MAAM,WAAW;AAG3D,QAAO,eACC;EACN;EACA,MAAM,QAAQ;EACd,QAAQ,QAAQ;EAChB;EACA,UAAU,MAAM;EAChB,SAAS,MAAM;EACf,QAAQ,MAAM;EACd,WAAW,cAAc,SAAS;EAClC,GACD,CAAC,SAAS,cAAc,CACxB;;;;;;;AAQF,MAAa,0BAA0B,UAGjC;CACL,MAAMA,QAAgC,EAAE;AAExC,KAAI,MAAM,SAAS,OAClB,OAAM,OAAO,MAAM;AAGpB,KAAI,MAAM,gBAAgB,OACzB,OAAM,SAAS,MAAM;AAGtB,KAAI,OAAO,KAAK,MAAM,CAAC,SAAS,EAC/B,OAAM,aAAa,MAAM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-Ck4jy29i.css","names":[],"sources":["../../src/support/support.css"],"sourcesContent":["@custom-variant dark (&:is(.dark *));\n\n@layer base {\n\t.cossistant {\n\t\t@apply border-co-border;\n\t\t@apply scroll-smooth;\n\n\t\tcolor-scheme: inherit;\n\n\t\t/* Typeface tokens */\n\t\t--co-font-sans: var(\n\t\t\t--co-theme-font-sans,\n\t\t\tvar(--font-sans, \"Geist\", \"Inter\", sans-serif)\n\t\t);\n\t\t--co-font-mono: var(\n\t\t\t--co-theme-font-mono,\n\t\t\tvar(--font-mono, \"Geist Mono\", \"Inter Mono\", monospace)\n\t\t);\n\n\t\t--co-border-color: var(\n\t\t\t--co-theme-border-color,\n\t\t\tvar(--color-border, oklch(92.2% 0 0))\n\t\t);\n\n\t\t/* Core surfaces */\n\t\t--co-radius: var(--co-theme-radius, var(--radius, 0.625rem));\n\t\t--co-background-base: var(\n\t\t\t--co-theme-background,\n\t\t\tvar(--background, oklch(99% 0 0))\n\t\t);\n\t\t--co-foreground-base: var(\n\t\t\t--co-theme-foreground,\n\t\t\tvar(--foreground, oklch(14.5% 0 0))\n\t\t);\n\t\t--co-popover-base: var(\n\t\t\t--co-theme-popover,\n\t\t\tvar(--popover, var(--co-background-base))\n\t\t);\n\t\t--co-popover-foreground-base: var(\n\t\t\t--co-theme-popover-foreground,\n\t\t\tvar(--popover-foreground, var(--co-foreground-base))\n\t\t);\n\t\t--co-primary-base: var(\n\t\t\t--co-theme-primary,\n\t\t\tvar(--primary, oklch(20.5% 0 0))\n\t\t);\n\t\t--co-primary-foreground-base: var(\n\t\t\t--co-theme-primary-foreground,\n\t\t\tvar(--primary-foreground, oklch(98.5% 0 0))\n\t\t);\n\t\t--co-secondary-base: var(\n\t\t\t--co-theme-secondary,\n\t\t\tvar(--secondary, oklch(97% 0 0))\n\t\t);\n\t\t--co-secondary-foreground-base: var(\n\t\t\t--co-theme-secondary-foreground,\n\t\t\tvar(--secondary-foreground, oklch(20.5% 0 0))\n\t\t);\n\t\t--co-border-base: var(--co-theme-border, var(--border, oklch(92.2% 0 0)));\n\t\t--co-input-base: var(--co-theme-input, var(--input, oklch(92.2% 0 0)));\n\t\t--co-ring-base: var(--co-theme-ring, var(--ring, var(--co-primary-base)));\n\t\t--co-accent-base: var(\n\t\t\t--co-theme-accent,\n\t\t\tvar(--accent, var(--co-primary-base))\n\t\t);\n\t\t--co-accent-foreground-base: var(\n\t\t\t--co-theme-accent-foreground,\n\t\t\tvar(--accent-foreground, var(--co-primary-foreground-base))\n\t\t);\n\n\t\t/* Neutral shades derived from the background */\n\t\t--co-background-50-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 98%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-100-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 97%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-200-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 96%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-300-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 95%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-400-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 94%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-500-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 93%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-600-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 92%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\n\t\t/* Muted tones */\n\t\t--co-muted-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 85%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-muted-foreground-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-foreground-base) 70%,\n\t\t\twhite\n\t\t);\n\n\t\t/* Public tokens consumed by Tailwind theme */\n\t\t--co-background: var(--co-background-base);\n\t\t--co-background-50: var(\n\t\t\t--co-theme-background-50,\n\t\t\tvar(--co-background-50-mix, oklch(92% 0 0))\n\t\t);\n\t\t--co-background-100: var(\n\t\t\t--co-theme-background-100,\n\t\t\tvar(--co-background-100-mix, oklch(93% 0 0))\n\t\t);\n\t\t--co-background-200: var(\n\t\t\t--co-theme-background-200,\n\t\t\tvar(--co-background-200-mix, oklch(94% 0 0))\n\t\t);\n\t\t--co-background-300: var(\n\t\t\t--co-theme-background-300,\n\t\t\tvar(--co-background-300-mix, oklch(95% 0 0))\n\t\t);\n\t\t--co-background-400: var(\n\t\t\t--co-theme-background-400,\n\t\t\tvar(--co-background-400-mix, oklch(96% 0 0))\n\t\t);\n\t\t--co-background-500: var(\n\t\t\t--co-theme-background-500,\n\t\t\tvar(--co-background-500-mix, oklch(97% 0 0))\n\t\t);\n\t\t--co-background-600: var(\n\t\t\t--co-theme-background-600,\n\t\t\tvar(--co-background-600-mix, oklch(98% 0 0))\n\t\t);\n\n\t\t--co-foreground: var(--co-foreground-base);\n\t\t--co-popover: var(--co-popover-base);\n\t\t--co-popover-foreground: var(--co-popover-foreground-base);\n\t\t--co-primary: var(--co-primary-base);\n\t\t--co-primary-foreground: var(--co-primary-foreground-base);\n\t\t--co-secondary: var(--co-secondary-base);\n\t\t--co-secondary-foreground: var(--co-secondary-foreground-base);\n\t\t--co-muted: var(\n\t\t\t--co-theme-muted,\n\t\t\tvar(--muted, var(--co-muted-mix, oklch(97% 0 0)))\n\t\t);\n\t\t--co-muted-foreground: var(\n\t\t\t--co-theme-muted-foreground,\n\t\t\tvar(--muted-foreground, var(--co-muted-foreground-mix, oklch(55.6% 0 0)))\n\t\t);\n\t\t--co-border: var(--co-border-base);\n\t\t--co-input: var(--co-input-base);\n\t\t--co-ring: var(--co-ring-base);\n\t\t--co-accent: var(--co-accent-base);\n\t\t--co-accent-foreground: var(--co-accent-foreground-base);\n\n\t\t/* Accent palette */\n\t\t--co-pink: var(--co-theme-pink, oklch(76.3% 0.152 354));\n\t\t--co-yellow: var(--co-theme-yellow, oklch(86.4% 0.144 99));\n\t\t--co-blue: var(--co-theme-blue, oklch(72.5% 0.132 241));\n\t\t--co-orange: var(--co-theme-orange, oklch(74.5% 0.166 50));\n\n\t\t/* Status colors */\n\t\t--co-destructive: var(--co-theme-destructive, oklch(57.7% 0.245 27.325));\n\t\t--co-destructive-foreground: var(\n\t\t\t--co-theme-destructive-foreground,\n\t\t\toklch(57.7% 0.245 27.325)\n\t\t);\n\t\t--co-success: var(--co-theme-success, oklch(71.7% 0.18 142));\n\t\t--co-success-foreground: var(\n\t\t\t--co-theme-success-foreground,\n\t\t\toklch(26.5% 0.052 142.7)\n\t\t);\n\t\t--co-neutral: var(--co-theme-neutral, oklch(60.8% 0 0));\n\t\t--co-neutral-foreground: var(\n\t\t\t--co-theme-neutral-foreground,\n\t\t\toklch(25.6% 0 0)\n\t\t);\n\t\t--co-warning: var(--co-theme-warning, oklch(86.4% 0.144 99));\n\t\t--co-warning-foreground: var(\n\t\t\t--co-theme-warning-foreground,\n\t\t\toklch(41.4% 0.071 99)\n\t\t);\n\t}\n\n\t.dark .cossistant,\n\t.cossistant[data-color-scheme=\"dark\"] {\n\t\t/* Provide dark defaults without overriding host tokens */\n\t\t--co-background-base: var(\n\t\t\t--co-theme-background,\n\t\t\tvar(--background, oklch(15.5% 0 0))\n\t\t);\n\t\t--co-foreground-base: var(\n\t\t\t--co-theme-foreground,\n\t\t\tvar(--foreground, oklch(98.5% 0 0))\n\t\t);\n\t\t--co-border-color: var(\n\t\t\t--co-theme-border-color,\n\t\t\tvar(--color-border, oklch(26.9% 0 0))\n\t\t);\n\t\t--co-popover-base: var(\n\t\t\t--co-theme-popover,\n\t\t\tvar(--popover, oklch(14.5% 0 0))\n\t\t);\n\t\t--co-popover-foreground-base: var(\n\t\t\t--co-theme-popover-foreground,\n\t\t\tvar(--popover-foreground, oklch(98.5% 0 0))\n\t\t);\n\t\t--co-primary-base: var(\n\t\t\t--co-theme-primary,\n\t\t\tvar(--primary, oklch(98.5% 0 0))\n\t\t);\n\t\t--co-primary-foreground-base: var(\n\t\t\t--co-theme-primary-foreground,\n\t\t\tvar(--primary-foreground, oklch(20.5% 0 0))\n\t\t);\n\t\t--co-secondary-base: var(\n\t\t\t--co-theme-secondary,\n\t\t\tvar(--secondary, oklch(26.9% 0 0))\n\t\t);\n\t\t--co-secondary-foreground-base: var(\n\t\t\t--co-theme-secondary-foreground,\n\t\t\tvar(--secondary-foreground, oklch(98.5% 0 0))\n\t\t);\n\t\t--co-border-base: var(--co-theme-border, var(--border, oklch(26.9% 0 0)));\n\t\t--co-input-base: var(--co-theme-input, var(--input, oklch(26.9% 0 0)));\n\t\t--co-ring-base: var(--co-theme-ring, var(--ring, var(--co-primary-base)));\n\t\t--co-accent-base: var(\n\t\t\t--co-theme-accent,\n\t\t\tvar(--accent, var(--co-primary-base))\n\t\t);\n\t\t--co-accent-foreground-base: var(\n\t\t\t--co-theme-accent-foreground,\n\t\t\tvar(--accent-foreground, var(--co-primary-foreground-base))\n\t\t);\n\n\t\t--co-muted-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 55%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-muted-foreground-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-foreground-base) 65%,\n\t\t\twhite\n\t\t);\n\n\t\t--co-background-50-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 98%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-100-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 96%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-200-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 94%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-300-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 92%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-400-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 90%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-500-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 88%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\t\t--co-background-600-mix: color-mix(\n\t\t\tin oklch,\n\t\t\tvar(--co-background-base) 86%,\n\t\t\tvar(--co-foreground-base)\n\t\t);\n\n\t\t--co-pink: var(--co-theme-pink, oklch(84.2% 0.109 354));\n\t\t--co-yellow: var(--co-theme-yellow, oklch(90.3% 0.111 99));\n\t\t--co-blue: var(--co-theme-blue, oklch(79.8% 0.089 241));\n\t\t--co-orange: var(--co-theme-orange, oklch(68.2% 0.194 50));\n\n\t\t--co-destructive: var(--co-theme-destructive, oklch(39.6% 0.141 25.723));\n\t\t--co-destructive-foreground: var(\n\t\t\t--co-theme-destructive-foreground,\n\t\t\toklch(63.7% 0.237 25.331)\n\t\t);\n\t\t--co-success: var(--co-theme-success, oklch(60% 0.15 142));\n\t\t--co-success-foreground: var(\n\t\t\t--co-theme-success-foreground,\n\t\t\toklch(85% 0.12 142)\n\t\t);\n\t\t--co-neutral: var(--co-theme-neutral, oklch(50% 0 0));\n\t\t--co-neutral-foreground: var(--co-theme-neutral-foreground, oklch(85% 0 0));\n\t\t--co-warning: var(--co-theme-warning, oklch(90.3% 0.111 99));\n\t\t--co-warning-foreground: var(\n\t\t\t--co-theme-warning-foreground,\n\t\t\toklch(85% 0.1 99)\n\t\t);\n\t}\n}\n\n@theme inline {\n\t--font-co-sans: var(--co-font-sans);\n\t--font-co-mono: var(--co-font-mono);\n\t--color-co-background: var(--co-background);\n\t--color-co-background-50: var(--co-background-50);\n\t--color-co-background-100: var(--co-background-100);\n\t--color-co-background-200: var(--co-background-200);\n\t--color-co-background-300: var(--co-background-300);\n\t--color-co-background-400: var(--co-background-400);\n\t--color-co-background-500: var(--co-background-500);\n\t--color-co-background-600: var(--co-background-600);\n\n\t--color-co-foreground: var(--co-foreground);\n\n\t--color-co-primary: var(--co-primary);\n\t--color-co-primary-foreground: var(--co-primary-foreground);\n\t--color-co-secondary: var(--co-secondary);\n\t--color-co-secondary-foreground: var(--co-secondary-foreground);\n\t--color-co-muted: var(--co-muted);\n\t--color-co-muted-foreground: var(--co-muted-foreground);\n\t--color-co-border: var(--co-border);\n\t--color-co-input: var(--co-input);\n\t--color-co-ring: var(--co-ring);\n\t--radius-co: var(--co-radius);\n\n\t/* custom colors */\n\t--color-co-pink: var(--co-pink);\n\t--color-co-yellow: var(--co-yellow);\n\t--color-co-blue: var(--co-blue);\n\t--color-co-orange: var(--co-orange);\n\n\t/* status colors */\n\t--color-co-destructive: var(--co-destructive);\n\t--color-co-destructive-foreground: var(--co-destructive-foreground);\n\t--color-co-success: var(--co-success);\n\t--color-co-success-foreground: var(--co-success-foreground);\n\t--color-co-neutral: var(--co-neutral);\n\t--color-co-neutral-foreground: var(--co-neutral-foreground);\n\t--color-co-warning: var(--co-warning);\n\t--color-co-warning-foreground: var(--co-warning-foreground);\n}\n\n@layer utilities {\n\t.cossistant {\n\t\t.animation-delay-0 {\n\t\t\tanimation-delay: 0ms;\n\t\t}\n\t\t.animation-delay-200 {\n\t\t\tanimation-delay: 200ms;\n\t\t}\n\t\t.animation-delay-400 {\n\t\t\tanimation-delay: 400ms;\n\t\t}\n\n\t\t@keyframes bounce-dot {\n\t\t\t0%,\n\t\t\t80%,\n\t\t\t100% {\n\t\t\t\ttransform: translateY(0);\n\t\t\t}\n\t\t\t40% {\n\t\t\t\ttransform: translateY(-6px);\n\t\t\t}\n\t\t}\n\n\t\t.dot-bounce-1 {\n\t\t\tanimation: bounce-dot 1.4s infinite;\n\t\t\tanimation-delay: 0s;\n\t\t}\n\n\t\t.dot-bounce-2 {\n\t\t\tanimation: bounce-dot 1.4s infinite;\n\t\t\tanimation-delay: 0.16s;\n\t\t}\n\n\t\t.dot-bounce-3 {\n\t\t\tanimation: bounce-dot 1.4s infinite;\n\t\t\tanimation-delay: 0.32s;\n\t\t}\n\t}\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA"}
|
package/support/text/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SupportLocale, SupportTextContentOverrides, SupportTextDefinitions, SupportTextKey, SupportTextResolvedFormatter, SupportTextVariables } from "./locales/keys.js";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import * as react_jsx_runtime12 from "react/jsx-runtime";
|
|
4
3
|
|
|
5
4
|
//#region src/support/text/index.d.ts
|
|
6
5
|
type SupportTextProviderProps<Locale extends string = SupportLocale> = {
|
|
@@ -8,11 +7,20 @@ type SupportTextProviderProps<Locale extends string = SupportLocale> = {
|
|
|
8
7
|
locale?: Locale;
|
|
9
8
|
content?: SupportTextContentOverrides<Locale>;
|
|
10
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Supplies localized copy and formatting helpers for the support widget. The
|
|
12
|
+
* provider merges bundled locale strings with optional runtime overrides and
|
|
13
|
+
* exposes a formatter that understands visitor/website context.
|
|
14
|
+
*/
|
|
11
15
|
declare function SupportTextProvider<Locale extends string = SupportLocale>({
|
|
12
16
|
children,
|
|
13
17
|
locale,
|
|
14
18
|
content
|
|
15
|
-
}: SupportTextProviderProps<Locale>):
|
|
19
|
+
}: SupportTextProviderProps<Locale>): React.ReactElement;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the active text formatter for the support widget. Throws if used
|
|
22
|
+
* outside of `SupportTextProvider` to help catch integration mistakes.
|
|
23
|
+
*/
|
|
16
24
|
declare function useSupportText(): SupportTextResolvedFormatter;
|
|
17
25
|
type OptionalVariablesProp<K extends SupportTextKey> = SupportTextDefinitions[K]["variables"] extends undefined ? {
|
|
18
26
|
variables?: undefined;
|
|
@@ -27,6 +35,11 @@ type TextProps<K extends SupportTextKey, As extends keyof React.JSX.IntrinsicEle
|
|
|
27
35
|
textKey: K;
|
|
28
36
|
as?: As;
|
|
29
37
|
} & Omit<React.ComponentPropsWithoutRef<As>, "children">;
|
|
38
|
+
/**
|
|
39
|
+
* Convenience component that renders localized support copy via the
|
|
40
|
+
* `SupportTextProvider` context while still allowing callers to customize the
|
|
41
|
+
* rendered HTML element.
|
|
42
|
+
*/
|
|
30
43
|
declare const Text: <K extends SupportTextKey, As extends keyof React.JSX.IntrinsicElements = "span">(props: TextProps<K, As> & {
|
|
31
44
|
ref?: React.ComponentPropsWithRef<As>["ref"];
|
|
32
45
|
}) => React.ReactElement | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/support/text/index.tsx"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/support/text/index.tsx"],"sourcesContent":[],"mappings":";;;;AAewB,KASnB,wBAAA,CAAA,eAAwB,MAAA,GAAyB,aAAzB,CAAA,GAAA;EAAyB,QAAA,EAC3C,KAAA,CAAM,SADqC;EAC3C,MAAM,CAAA,EACP,MADO;EACP,OAAA,CAAA,EACC,2BADD,CAC6B,MAD7B,CAAA;CAC6B;;;AAWvC;;;AAEC,iBAFe,mBAEf,CAAA,eAAA,MAAA,GAF2D,aAE3D,CAAA,CAAA;EAAA,QAAA;EAAA,MAAA;EAAA;AAAA,CAAA,EAEE,wBAFF,CAE2B,MAF3B,CAAA,CAAA,EAEqC,KAAA,CAAM,YAF3C;;;;;AAEuD,iBAyExC,cAAA,CAAA,CAzEwC,EAyEtB,4BAzEsB;AAyExD,KASK,qBATyB,CAAA,UASO,cATH,CAAA,GAUjC,sBAV6D,CAUtC,CAVsC,CAAA,CAAA,WAAA,CAAA,SAAA,SAAA,GAAA;EASzD,SAAA,CAAA,EAAA,SAAA;CAAgC,GAAA,UAAA,SAAA,MAGR,sBAHQ,CAGe,CAHf,CAAA,GAIhC,sBAJgC,CAIT,CAJS,CAAA,CAAA,UAAA,CAAA,SAAA,IAAA,GAAA;EACpC,SAAA,CAAA,EAImB,oBAJnB,CAIwC,CAJxC,CAAA;CAAuB,GAAA;EAEK,SAAA,EAGV,oBAHU,CAGW,CAHX,CAAA;CAAuB,GAAA;EAC/C,SAAA,EAGa,oBAHb,CAGkC,CAHlC,CAAA;CAAuB;KAKvB,SAJoC,CAAA,UAK9B,cAL8B,EAAA,WAAA,MAMvB,KAAA,CAAM,GAAA,CAAI,iBANa,GAAA,MAAA,CAAA,GAOrC,qBAPqC,CAOf,CAPe,CAAA,GAAA;EAArB,OAAA,EAQV,CARU;EACoB,EAAA,CAAA,EAQlC,EARkC;CAArB,GASf,IATe,CASV,KAAA,CAAM,wBATI,CASqB,EATrB,CAAA,EAAA,UAAA,CAAA;;;;AACmB;;AAId,cAkCX,IAlCe,EAAA,CAAA,UAmCjB,cAnCiB,EAAA,WAAA,MAoCV,KAAA,CAAM,GAAA,CAAI,iBApCA,GAAA,MAAA,CAAA,CAAA,KAAA,EAsCpB,SAtCoB,CAsCV,CAtCU,EAsCP,EAtCO,CAAA,GAAA;EACF,GAAA,CAAA,EAqCS,KAAA,CAAM,qBArCf,CAqCqC,EArCrC,CAAA,CAAA,KAAA,CAAA;CAAtB,EAAA,GAsCC,KAAA,CAAM,YAtCP,GAAA,IAAA"}
|
package/support/text/index.js
CHANGED
|
@@ -6,6 +6,11 @@ import { jsx } from "react/jsx-runtime";
|
|
|
6
6
|
|
|
7
7
|
//#region src/support/text/index.tsx
|
|
8
8
|
const SupportTextRuntimeContext = React.createContext(null);
|
|
9
|
+
/**
|
|
10
|
+
* Supplies localized copy and formatting helpers for the support widget. The
|
|
11
|
+
* provider merges bundled locale strings with optional runtime overrides and
|
|
12
|
+
* exposes a formatter that understands visitor/website context.
|
|
13
|
+
*/
|
|
9
14
|
function SupportTextProvider({ children, locale, content }) {
|
|
10
15
|
const { website, availableHumanAgents, availableAIAgents, visitor } = useSupport();
|
|
11
16
|
const [isHydrated, setIsHydrated] = React.useState(false);
|
|
@@ -29,8 +34,7 @@ function SupportTextProvider({ children, locale, content }) {
|
|
|
29
34
|
const format = ((key, variables) => {
|
|
30
35
|
const definition = supportTextDefinitions[key];
|
|
31
36
|
if (definition.variables !== void 0 && !("optional" in definition && definition.optional === true) && variables === void 0) throw new Error(`Missing variables for text key "${key}".`);
|
|
32
|
-
|
|
33
|
-
return evaluateMessage(key, resolved, variables, textContext, utils);
|
|
37
|
+
return evaluateMessage(key, resolveMessage(key, localeChain, normalizedOverrides), variables, textContext, utils);
|
|
34
38
|
});
|
|
35
39
|
const value = React.useMemo(() => ({
|
|
36
40
|
format,
|
|
@@ -46,6 +50,10 @@ function SupportTextProvider({ children, locale, content }) {
|
|
|
46
50
|
children
|
|
47
51
|
});
|
|
48
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Returns the active text formatter for the support widget. Throws if used
|
|
55
|
+
* outside of `SupportTextProvider` to help catch integration mistakes.
|
|
56
|
+
*/
|
|
49
57
|
function useSupportText() {
|
|
50
58
|
const context = React.useContext(SupportTextRuntimeContext);
|
|
51
59
|
if (!context) throw new Error("useSupportText must be used within SupportTextProvider");
|
|
@@ -63,6 +71,11 @@ function TextInner(props, forwardedRef) {
|
|
|
63
71
|
children: content
|
|
64
72
|
});
|
|
65
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Convenience component that renders localized support copy via the
|
|
76
|
+
* `SupportTextProvider` context while still allowing callers to customize the
|
|
77
|
+
* rendered HTML element.
|
|
78
|
+
*/
|
|
66
79
|
const Text = React.forwardRef(TextInner);
|
|
67
80
|
Text.displayName = "SupportText";
|
|
68
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/support/text/index.tsx"],"sourcesContent":["/** biome-ignore-all lint/correctness/useExhaustiveDependencies: dependencies are intentionally managed */\n/** biome-ignore-all lint/correctness/noChildrenProp: children prop is needed for React.createElement */\nimport React from \"react\";\n\nimport { useSupport } from \"../../provider\";\nimport {\n\ttype SupportLocale,\n\ttype SupportTextContentOverrides,\n\ttype SupportTextContext,\n\ttype SupportTextDefinitions,\n\ttype SupportTextKey,\n\ttype SupportTextProviderValue,\n\ttype SupportTextResolvedFormatter,\n\ttype SupportTextVariables,\n\tsupportTextDefinitions,\n} from \"./locales/keys\";\nimport {\n\tbuildLocaleChain,\n\tcreateTextUtils,\n\tevaluateMessage,\n\tnormalizeOverrides,\n\tresolveMessage,\n} from \"./runtime\";\n\ntype SupportTextProviderProps<Locale extends string = SupportLocale> = {\n\tchildren: React.ReactNode;\n\tlocale?: Locale;\n\tcontent?: SupportTextContentOverrides<Locale>;\n};\n\nconst SupportTextRuntimeContext =\n\tReact.createContext<SupportTextProviderValue | null>(null);\n\nexport function SupportTextProvider<Locale extends string = SupportLocale>({\n\tchildren,\n\tlocale,\n\tcontent,\n}: SupportTextProviderProps<Locale>) {\n\tconst { website, availableHumanAgents, availableAIAgents, visitor } =\n\t\tuseSupport();\n\tconst [isHydrated, setIsHydrated] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tsetIsHydrated(true);\n\t}, []);\n\n\tconst localeChain = React.useMemo(\n\t\t() => buildLocaleChain([locale, visitor?.locale]),\n\t\t[locale, visitor?.locale]\n\t);\n\n\tconst normalizedOverrides = React.useMemo(\n\t\t() => normalizeOverrides(content),\n\t\t[content]\n\t);\n\n\tconst utils = React.useMemo(\n\t\t() => createTextUtils(localeChain[0] ?? \"en\", isHydrated),\n\t\t[localeChain, isHydrated]\n\t);\n\n\tconst textContext = React.useMemo<SupportTextContext>(\n\t\t() => ({\n\t\t\twebsite,\n\t\t\tvisitor: visitor ?? null,\n\t\t\thumanAgents: availableHumanAgents,\n\t\t\taiAgents: availableAIAgents,\n\t\t}),\n\t\t[website, visitor, availableHumanAgents, availableAIAgents]\n\t);\n\n\tconst format = ((key: SupportTextKey, variables?: unknown) => {\n\t\tconst definition = supportTextDefinitions[key];\n\t\tconst requiresVariables =\n\t\t\tdefinition.variables !== undefined &&\n\t\t\t!(\"optional\" in definition && definition.optional === true);\n\n\t\tif (requiresVariables && variables === undefined) {\n\t\t\tthrow new Error(`Missing variables for text key \"${key}\".`);\n\t\t}\n\n\t\tconst resolved = resolveMessage(key, localeChain, normalizedOverrides);\n\t\treturn evaluateMessage(\n\t\t\tkey,\n\t\t\tresolved,\n\t\t\tvariables as SupportTextVariables<typeof key>,\n\t\t\ttextContext,\n\t\t\tutils\n\t\t);\n\t}) as SupportTextResolvedFormatter;\n\n\tconst value = React.useMemo<SupportTextProviderValue>(\n\t\t() => ({\n\t\t\tformat,\n\t\t\tlocale: localeChain[0] ?? \"en\",\n\t\t}),\n\t\t[localeChain, normalizedOverrides, textContext, utils]\n\t);\n\n\treturn (\n\t\t<SupportTextRuntimeContext.Provider value={value}>\n\t\t\t{children}\n\t\t</SupportTextRuntimeContext.Provider>\n\t);\n}\n\nexport function useSupportText(): SupportTextResolvedFormatter {\n\tconst context = React.useContext(SupportTextRuntimeContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSupportText must be used within SupportTextProvider\");\n\t}\n\n\treturn context.format;\n}\n\ntype OptionalVariablesProp<K extends SupportTextKey> =\n\tSupportTextDefinitions[K][\"variables\"] extends undefined\n\t\t? { variables?: undefined }\n\t\t: \"optional\" extends keyof SupportTextDefinitions[K]\n\t\t\t? SupportTextDefinitions[K][\"optional\"] extends true\n\t\t\t\t? { variables?: SupportTextVariables<K> }\n\t\t\t\t: { variables: SupportTextVariables<K> }\n\t\t\t: { variables: SupportTextVariables<K> };\n\ntype TextProps<\n\tK extends SupportTextKey,\n\tAs extends keyof React.JSX.IntrinsicElements = \"span\",\n> = OptionalVariablesProp<K> & {\n\ttextKey: K;\n\tas?: As;\n} & Omit<React.ComponentPropsWithoutRef<As>, \"children\">;\n\nfunction TextInner<\n\tK extends SupportTextKey,\n\tAs extends keyof React.JSX.IntrinsicElements = \"span\",\n>(\n\tprops: TextProps<K, As>,\n\tforwardedRef: React.ComponentPropsWithRef<As>[\"ref\"]\n) {\n\tconst { textKey, variables, as, ...rest } = props as TextProps<K, As>;\n\tconst format = useSupportText();\n\tconst Component = (as ?? \"span\") as As;\n\tconst content =\n\t\tvariables !== undefined\n\t\t\t? format(textKey, variables as SupportTextVariables<K>)\n\t\t\t: format(textKey);\n\n\treturn React.createElement(Component, {\n\t\t...rest,\n\t\tref: forwardedRef,\n\t\t\"data-key-name\": textKey,\n\t\tchildren: content,\n\t});\n}\n\nexport const Text = React.forwardRef(TextInner) as <\n\tK extends SupportTextKey,\n\tAs extends keyof React.JSX.IntrinsicElements = \"span\",\n>(\n\tprops: TextProps<K, As> & { ref?: React.ComponentPropsWithRef<As>[\"ref\"] }\n) => React.ReactElement | null;\n\n(Text as { displayName?: string }).displayName = \"SupportText\";\n\nexport type {\n\tSupportLocale,\n\tSupportTextContentOverrides,\n\tSupportTextKey,\n\tSupportTextVariables,\n} from \"./locales/keys\";\n"],"mappings":";;;;;;;AA8BA,MAAM,4BACL,MAAM,cAA+C,KAAK
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/support/text/index.tsx"],"sourcesContent":["/** biome-ignore-all lint/correctness/useExhaustiveDependencies: dependencies are intentionally managed */\n/** biome-ignore-all lint/correctness/noChildrenProp: children prop is needed for React.createElement */\nimport React from \"react\";\n\nimport { useSupport } from \"../../provider\";\nimport {\n\ttype SupportLocale,\n\ttype SupportTextContentOverrides,\n\ttype SupportTextContext,\n\ttype SupportTextDefinitions,\n\ttype SupportTextKey,\n\ttype SupportTextProviderValue,\n\ttype SupportTextResolvedFormatter,\n\ttype SupportTextVariables,\n\tsupportTextDefinitions,\n} from \"./locales/keys\";\nimport {\n\tbuildLocaleChain,\n\tcreateTextUtils,\n\tevaluateMessage,\n\tnormalizeOverrides,\n\tresolveMessage,\n} from \"./runtime\";\n\ntype SupportTextProviderProps<Locale extends string = SupportLocale> = {\n\tchildren: React.ReactNode;\n\tlocale?: Locale;\n\tcontent?: SupportTextContentOverrides<Locale>;\n};\n\nconst SupportTextRuntimeContext =\n\tReact.createContext<SupportTextProviderValue | null>(null);\n\n/**\n * Supplies localized copy and formatting helpers for the support widget. The\n * provider merges bundled locale strings with optional runtime overrides and\n * exposes a formatter that understands visitor/website context.\n */\nexport function SupportTextProvider<Locale extends string = SupportLocale>({\n\tchildren,\n\tlocale,\n\tcontent,\n}: SupportTextProviderProps<Locale>): React.ReactElement {\n\tconst { website, availableHumanAgents, availableAIAgents, visitor } =\n\t\tuseSupport();\n\tconst [isHydrated, setIsHydrated] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tsetIsHydrated(true);\n\t}, []);\n\n\tconst localeChain = React.useMemo(\n\t\t() => buildLocaleChain([locale, visitor?.locale]),\n\t\t[locale, visitor?.locale]\n\t);\n\n\tconst normalizedOverrides = React.useMemo(\n\t\t() => normalizeOverrides(content),\n\t\t[content]\n\t);\n\n\tconst utils = React.useMemo(\n\t\t() => createTextUtils(localeChain[0] ?? \"en\", isHydrated),\n\t\t[localeChain, isHydrated]\n\t);\n\n\tconst textContext = React.useMemo<SupportTextContext>(\n\t\t() => ({\n\t\t\twebsite,\n\t\t\tvisitor: visitor ?? null,\n\t\t\thumanAgents: availableHumanAgents,\n\t\t\taiAgents: availableAIAgents,\n\t\t}),\n\t\t[website, visitor, availableHumanAgents, availableAIAgents]\n\t);\n\n\tconst format = ((key: SupportTextKey, variables?: unknown) => {\n\t\tconst definition = supportTextDefinitions[key];\n\t\tconst requiresVariables =\n\t\t\tdefinition.variables !== undefined &&\n\t\t\t!(\"optional\" in definition && definition.optional === true);\n\n\t\tif (requiresVariables && variables === undefined) {\n\t\t\tthrow new Error(`Missing variables for text key \"${key}\".`);\n\t\t}\n\n\t\tconst resolved = resolveMessage(key, localeChain, normalizedOverrides);\n\t\treturn evaluateMessage(\n\t\t\tkey,\n\t\t\tresolved,\n\t\t\tvariables as SupportTextVariables<typeof key>,\n\t\t\ttextContext,\n\t\t\tutils\n\t\t);\n\t}) as SupportTextResolvedFormatter;\n\n\tconst value = React.useMemo<SupportTextProviderValue>(\n\t\t() => ({\n\t\t\tformat,\n\t\t\tlocale: localeChain[0] ?? \"en\",\n\t\t}),\n\t\t[localeChain, normalizedOverrides, textContext, utils]\n\t);\n\n\treturn (\n\t\t<SupportTextRuntimeContext.Provider value={value}>\n\t\t\t{children}\n\t\t</SupportTextRuntimeContext.Provider>\n\t);\n}\n\n/**\n * Returns the active text formatter for the support widget. Throws if used\n * outside of `SupportTextProvider` to help catch integration mistakes.\n */\nexport function useSupportText(): SupportTextResolvedFormatter {\n\tconst context = React.useContext(SupportTextRuntimeContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSupportText must be used within SupportTextProvider\");\n\t}\n\n\treturn context.format;\n}\n\ntype OptionalVariablesProp<K extends SupportTextKey> =\n\tSupportTextDefinitions[K][\"variables\"] extends undefined\n\t\t? { variables?: undefined }\n\t\t: \"optional\" extends keyof SupportTextDefinitions[K]\n\t\t\t? SupportTextDefinitions[K][\"optional\"] extends true\n\t\t\t\t? { variables?: SupportTextVariables<K> }\n\t\t\t\t: { variables: SupportTextVariables<K> }\n\t\t\t: { variables: SupportTextVariables<K> };\n\ntype TextProps<\n\tK extends SupportTextKey,\n\tAs extends keyof React.JSX.IntrinsicElements = \"span\",\n> = OptionalVariablesProp<K> & {\n\ttextKey: K;\n\tas?: As;\n} & Omit<React.ComponentPropsWithoutRef<As>, \"children\">;\n\nfunction TextInner<\n\tK extends SupportTextKey,\n\tAs extends keyof React.JSX.IntrinsicElements = \"span\",\n>(\n\tprops: TextProps<K, As>,\n\tforwardedRef: React.ComponentPropsWithRef<As>[\"ref\"]\n) {\n\tconst { textKey, variables, as, ...rest } = props as TextProps<K, As>;\n\tconst format = useSupportText();\n\tconst Component = (as ?? \"span\") as As;\n\tconst content =\n\t\tvariables !== undefined\n\t\t\t? format(textKey, variables as SupportTextVariables<K>)\n\t\t\t: format(textKey);\n\n\treturn React.createElement(Component, {\n\t\t...rest,\n\t\tref: forwardedRef,\n\t\t\"data-key-name\": textKey,\n\t\tchildren: content,\n\t});\n}\n\n/**\n * Convenience component that renders localized support copy via the\n * `SupportTextProvider` context while still allowing callers to customize the\n * rendered HTML element.\n */\nexport const Text = React.forwardRef(TextInner) as <\n\tK extends SupportTextKey,\n\tAs extends keyof React.JSX.IntrinsicElements = \"span\",\n>(\n\tprops: TextProps<K, As> & { ref?: React.ComponentPropsWithRef<As>[\"ref\"] }\n) => React.ReactElement | null;\n\n(Text as { displayName?: string }).displayName = \"SupportText\";\n\nexport type {\n\tSupportLocale,\n\tSupportTextContentOverrides,\n\tSupportTextKey,\n\tSupportTextVariables,\n} from \"./locales/keys\";\n"],"mappings":";;;;;;;AA8BA,MAAM,4BACL,MAAM,cAA+C,KAAK;;;;;;AAO3D,SAAgB,oBAA2D,EAC1E,UACA,QACA,WACwD;CACxD,MAAM,EAAE,SAAS,sBAAsB,mBAAmB,YACzD,YAAY;CACb,MAAM,CAAC,YAAY,iBAAiB,MAAM,SAAS,MAAM;AAEzD,OAAM,gBAAgB;AACrB,gBAAc,KAAK;IACjB,EAAE,CAAC;CAEN,MAAM,cAAc,MAAM,cACnB,iBAAiB,CAAC,QAAQ,SAAS,OAAO,CAAC,EACjD,CAAC,QAAQ,SAAS,OAAO,CACzB;CAED,MAAM,sBAAsB,MAAM,cAC3B,mBAAmB,QAAQ,EACjC,CAAC,QAAQ,CACT;CAED,MAAM,QAAQ,MAAM,cACb,gBAAgB,YAAY,MAAM,MAAM,WAAW,EACzD,CAAC,aAAa,WAAW,CACzB;CAED,MAAM,cAAc,MAAM,eAClB;EACN;EACA,SAAS,WAAW;EACpB,aAAa;EACb,UAAU;EACV,GACD;EAAC;EAAS;EAAS;EAAsB;EAAkB,CAC3D;CAED,MAAM,WAAW,KAAqB,cAAwB;EAC7D,MAAM,aAAa,uBAAuB;AAK1C,MAHC,WAAW,cAAc,UACzB,EAAE,cAAc,cAAc,WAAW,aAAa,SAE9B,cAAc,OACtC,OAAM,IAAI,MAAM,mCAAmC,IAAI,IAAI;AAI5D,SAAO,gBACN,KAFgB,eAAe,KAAK,aAAa,oBAAoB,EAIrE,WACA,aACA,MACA;;CAGF,MAAM,QAAQ,MAAM,eACZ;EACN;EACA,QAAQ,YAAY,MAAM;EAC1B,GACD;EAAC;EAAa;EAAqB;EAAa;EAAM,CACtD;AAED,QACC,oBAAC,0BAA0B;EAAgB;EACzC;GACmC;;;;;;AAQvC,SAAgB,iBAA+C;CAC9D,MAAM,UAAU,MAAM,WAAW,0BAA0B;AAC3D,KAAI,CAAC,QACJ,OAAM,IAAI,MAAM,yDAAyD;AAG1E,QAAO,QAAQ;;AAoBhB,SAAS,UAIR,OACA,cACC;CACD,MAAM,EAAE,SAAS,WAAW,GAAI,GAAG,SAAS;CAC5C,MAAM,SAAS,gBAAgB;CAC/B,MAAM,YAAa,MAAM;CACzB,MAAM,UACL,cAAc,SACX,OAAO,SAAS,UAAqC,GACrD,OAAO,QAAQ;AAEnB,QAAO,MAAM,cAAc,WAAW;EACrC,GAAG;EACH,KAAK;EACL,iBAAiB;EACjB,UAAU;EACV,CAAC;;;;;;;AAQH,MAAa,OAAO,MAAM,WAAW,UAAU;AAO/C,AAAC,KAAkC,cAAc"}
|
|
@@ -17,12 +17,12 @@ const en = {
|
|
|
17
17
|
"page.home.greeting": ({ variables, context, utils }) => {
|
|
18
18
|
const period = utils.timeOfDay();
|
|
19
19
|
const phrases = {
|
|
20
|
-
morning: "
|
|
21
|
-
afternoon: "
|
|
22
|
-
evening: "
|
|
20
|
+
morning: "Morning",
|
|
21
|
+
afternoon: "Afternoon",
|
|
22
|
+
evening: "Evening"
|
|
23
23
|
};
|
|
24
24
|
const visitorName = variables?.visitorName || context.visitor?.contact?.name;
|
|
25
|
-
return
|
|
25
|
+
return `${phrases[period.token]}${visitorName ? ` ${visitorName}` : ""}, how can we help?`;
|
|
26
26
|
},
|
|
27
27
|
"page.home.history.more": ({ variables, utils }) => {
|
|
28
28
|
const count = variables.count;
|
|
@@ -40,6 +40,10 @@ const en = {
|
|
|
40
40
|
"component.conversationButtonLink.lastMessage.agent": ({ variables }) => `${variables.name} - ${variables.time}`,
|
|
41
41
|
"component.conversationButtonLink.lastMessage.visitor": ({ variables }) => `You - ${variables.time}`,
|
|
42
42
|
"component.conversationButtonLink.typing": ({ variables }) => `${variables.name} is typing...`,
|
|
43
|
+
"component.conversationButtonLink.status.open": "Open",
|
|
44
|
+
"component.conversationButtonLink.status.resolved": "Resolved",
|
|
45
|
+
"component.conversationButtonLink.status.spam": "Spam",
|
|
46
|
+
"component.conversationButtonLink.status.closed": "closed",
|
|
43
47
|
"component.conversationEvent.assigned": ({ variables }) => `${variables.actorName} assigned the conversation`,
|
|
44
48
|
"component.conversationEvent.unassigned": ({ variables }) => `${variables.actorName} unassigned the conversation`,
|
|
45
49
|
"component.conversationEvent.default": ({ variables }) => `${variables.actorName} performed an action`,
|
|
@@ -52,6 +56,20 @@ const en = {
|
|
|
52
56
|
"component.conversationEvent.statusChanged": ({ variables }) => `${variables.actorName} changed the status`,
|
|
53
57
|
"component.conversationEvent.tagAdded": ({ variables }) => `${variables.actorName} added a tag`,
|
|
54
58
|
"component.conversationEvent.tagRemoved": ({ variables }) => `${variables.actorName} removed a tag`,
|
|
59
|
+
"component.conversationEvent.visitorBlocked": ({ variables }) => `${variables.actorName} blocked the visitor`,
|
|
60
|
+
"component.conversationEvent.visitorUnblocked": ({ variables }) => `${variables.actorName} unblocked the visitor`,
|
|
61
|
+
"component.conversationEvent.visitorIdentified": () => "Contact details confirmed",
|
|
62
|
+
"component.identificationTool.title": "Let us keep in touch",
|
|
63
|
+
"component.identificationTool.description": "Leave your email so we can follow up on this conversation.",
|
|
64
|
+
"component.identificationTool.cta": "Share email",
|
|
65
|
+
"component.identificationTool.loading": "Saving...",
|
|
66
|
+
"component.identificationTool.success": "Thanks! We'll reach out to you at this email if we need to.",
|
|
67
|
+
"component.identificationTool.error": "We couldn't save your email. Please try again.",
|
|
68
|
+
"component.identificationTool.validation": "Enter an email address to continue.",
|
|
69
|
+
"component.identificationTool.inputPlaceholder": "you@example.com",
|
|
70
|
+
"component.identificationTool.inputLabel": "Email address",
|
|
71
|
+
"component.identificationTool.eventLog": "Visitor confirmed their email address",
|
|
72
|
+
"component.conversationPage.closedMessage": "This conversation is closed, start a new one to talk with us",
|
|
55
73
|
"component.multimodalInput.placeholder": "Type your message...",
|
|
56
74
|
"component.multimodalInput.remove": ({ variables }) => `Remove ${variables.fileName}`,
|
|
57
75
|
"component.navigation.articles": "Articles",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","names":["en: SupportLocaleMessages","phrases: Record<typeof period.token, string>"],"sources":["../../../../src/support/text/locales/en.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst en: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Ask us a question\",\n\t\"common.actions.attachFiles\": \"Attach files\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"common.brand.watermark\": \"We run on\",\n\t\"common.fallbacks.aiAssistant\": \"AI assistant\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Someone\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Unknown\",\n\t\"common.fallbacks.you\": \"You\",\n\t\"common.labels.aiAgentIndicator\": \"AI agent\",\n\t\"common.labels.supportOnline\": \"Support online\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} more`,\n\t\"page.conversationHistory.title\": \"Conversation history\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst phrases: Record<typeof period.token, string> = {\n\t\t\tmorning: \"
|
|
1
|
+
{"version":3,"file":"en.js","names":["en: SupportLocaleMessages","phrases: Record<typeof period.token, string>"],"sources":["../../../../src/support/text/locales/en.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst en: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Ask us a question\",\n\t\"common.actions.attachFiles\": \"Attach files\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"common.brand.watermark\": \"We run on\",\n\t\"common.fallbacks.aiAssistant\": \"AI assistant\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Someone\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Unknown\",\n\t\"common.fallbacks.you\": \"You\",\n\t\"common.labels.aiAgentIndicator\": \"AI agent\",\n\t\"common.labels.supportOnline\": \"Support online\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} more`,\n\t\"page.conversationHistory.title\": \"Conversation history\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst phrases: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Morning\",\n\t\t\tafternoon: \"Afternoon\",\n\t\t\tevening: \"Evening\",\n\t\t};\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${phrases[period.token]}${visitorName ? ` ${visitorName}` : \"\"}, how can we help?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation\",\n\t\t\tother: \"conversations\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} more ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\tconst formatted = websiteName\n\t\t\t? `${utils.titleCase(websiteName)} support`\n\t\t\t: \"Support\";\n\t\treturn formatted;\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Untitled conversation\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`You - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} is typing...`,\n\t\"component.conversationButtonLink.status.open\": \"Open\",\n\t\"component.conversationButtonLink.status.resolved\": \"Resolved\",\n\t\"component.conversationButtonLink.status.spam\": \"Spam\",\n\t\"component.conversationButtonLink.status.closed\": \"closed\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} assigned the conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} unassigned the conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} performed an action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} joined the conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} left the conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} requested to join`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} changed the priority`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reopened the conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolved the conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} changed the status`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} added a tag`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} removed a tag`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} blocked the visitor`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} unblocked the visitor`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Contact details confirmed\",\n\t\"component.identificationTool.title\": \"Let us keep in touch\",\n\t\"component.identificationTool.description\":\n\t\t\"Leave your email so we can follow up on this conversation.\",\n\t\"component.identificationTool.cta\": \"Share email\",\n\t\"component.identificationTool.loading\": \"Saving...\",\n\t\"component.identificationTool.success\":\n\t\t\"Thanks! We'll reach out to you at this email if we need to.\",\n\t\"component.identificationTool.error\":\n\t\t\"We couldn't save your email. Please try again.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Enter an email address to continue.\",\n\t\"component.identificationTool.inputPlaceholder\": \"you@example.com\",\n\t\"component.identificationTool.inputLabel\": \"Email address\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"Visitor confirmed their email address\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"This conversation is closed, start a new one to talk with us\",\n\t\"component.multimodalInput.placeholder\": \"Type your message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Remove ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Home\",\n\t\"component.message.timestamp.aiIndicator\": \"• AI agent\",\n};\n\nexport default en;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,UAAU,UAAU;CACrB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EACxD,MAAM,SAAS,MAAM,WAAW;EAChC,MAAMC,UAA+C;GACpD,SAAS;GACT,WAAW;GACX,SAAS;GACT;EACD,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,QAAQ,OAAO,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAExE,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,QAAQ;;CAE/C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AAIvE,SAHkB,cACf,GAAG,MAAM,UAAU,YAAY,CAAC,YAChC;;CAGJ,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,SAAS,UAAU;CACpB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,gDAAgD;CAChD,kDAAkD;CAClD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,UAAU,UAAU;CACrB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
|
|
@@ -39,6 +39,9 @@ const es = {
|
|
|
39
39
|
"component.conversationButtonLink.lastMessage.agent": ({ variables }) => `${variables.name} - ${variables.time}`,
|
|
40
40
|
"component.conversationButtonLink.lastMessage.visitor": ({ variables }) => `Tú - ${variables.time}`,
|
|
41
41
|
"component.conversationButtonLink.typing": ({ variables }) => `${variables.name} está escribiendo...`,
|
|
42
|
+
"component.conversationButtonLink.status.open": "Abierta",
|
|
43
|
+
"component.conversationButtonLink.status.resolved": "Resuelta",
|
|
44
|
+
"component.conversationButtonLink.status.spam": "Spam",
|
|
42
45
|
"component.conversationEvent.assigned": ({ variables }) => `${variables.actorName} asignó la conversación`,
|
|
43
46
|
"component.conversationEvent.unassigned": ({ variables }) => `${variables.actorName} retiró la asignación de la conversación`,
|
|
44
47
|
"component.conversationEvent.default": ({ variables }) => `${variables.actorName} realizó una acción`,
|
|
@@ -48,9 +51,24 @@ const es = {
|
|
|
48
51
|
"component.conversationEvent.priorityChanged": ({ variables }) => `${variables.actorName} cambió la prioridad`,
|
|
49
52
|
"component.conversationEvent.reopened": ({ variables }) => `${variables.actorName} reabrió la conversación`,
|
|
50
53
|
"component.conversationEvent.resolved": ({ variables }) => `${variables.actorName} resolvió la conversación`,
|
|
54
|
+
"component.conversationButtonLink.status.closed": "Cerrada",
|
|
51
55
|
"component.conversationEvent.statusChanged": ({ variables }) => `${variables.actorName} cambió el estado`,
|
|
52
56
|
"component.conversationEvent.tagAdded": ({ variables }) => `${variables.actorName} agregó una etiqueta`,
|
|
53
57
|
"component.conversationEvent.tagRemoved": ({ variables }) => `${variables.actorName} quitó una etiqueta`,
|
|
58
|
+
"component.conversationEvent.visitorBlocked": ({ variables }) => `${variables.actorName} bloqueó al visitante`,
|
|
59
|
+
"component.conversationEvent.visitorUnblocked": ({ variables }) => `${variables.actorName} desbloqueó al visitante`,
|
|
60
|
+
"component.conversationEvent.visitorIdentified": () => "Detalles de contacto confirmados",
|
|
61
|
+
"component.identificationTool.title": "Comparte tu correo",
|
|
62
|
+
"component.identificationTool.description": "Déjanos tu correo electrónico para que podamos continuar la conversación.",
|
|
63
|
+
"component.identificationTool.cta": "Compartir correo",
|
|
64
|
+
"component.identificationTool.loading": "Guardando...",
|
|
65
|
+
"component.identificationTool.success": "¡Gracias! Usaremos este correo si necesitamos contactarte.",
|
|
66
|
+
"component.identificationTool.error": "No pudimos guardar tu correo. Inténtalo de nuevo.",
|
|
67
|
+
"component.identificationTool.validation": "Ingresa un correo electrónico para continuar.",
|
|
68
|
+
"component.identificationTool.inputPlaceholder": "tu@ejemplo.com",
|
|
69
|
+
"component.identificationTool.inputLabel": "Correo electrónico",
|
|
70
|
+
"component.identificationTool.eventLog": "El visitante confirmó su correo electrónico",
|
|
71
|
+
"component.conversationPage.closedMessage": "Esta conversación está cerrada, inicia una nueva para hablar con nosotros",
|
|
54
72
|
"component.multimodalInput.placeholder": "Escribe tu mensaje...",
|
|
55
73
|
"component.multimodalInput.remove": ({ variables }) => `Eliminar ${variables.fileName}`,
|
|
56
74
|
"component.navigation.articles": "Artículos",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.js","names":["es: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/es.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst es: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Haznos una pregunta\",\n\t\"common.actions.attachFiles\": \"Adjuntar archivos\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Impulsado por\",\n\t\"common.fallbacks.aiAssistant\": \"Asistente de IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Alguien\",\n\t\"common.fallbacks.supportTeam\": \"Soporte\",\n\t\"common.fallbacks.unknown\": \"Desconocido\",\n\t\"common.fallbacks.you\": \"Tú\",\n\t\"common.labels.aiAgentIndicator\": \"Agente IA\",\n\t\"common.labels.supportOnline\": \"Soporte en línea\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} más`,\n\t\"page.conversationHistory.title\": \"Historial de conversaciones\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Buenos días\",\n\t\t\tafternoon: \"Buenas tardes\",\n\t\t\tevening: \"Buenas noches\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, ¿en qué podemos ayudarte?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversación más\",\n\t\t\tother: \"conversaciones más\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Soporte ${utils.titleCase(websiteName)}` : \"Soporte\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversación sin título\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Tú - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} está escribiendo...`,\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} asignó la conversación`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} retiró la asignación de la conversación`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} realizó una acción`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} se unió a la conversación`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} salió de la conversación`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} solicitó unirse`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió la prioridad`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reabrió la conversación`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolvió la conversación`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió el estado`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} agregó una etiqueta`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} quitó una etiqueta`,\n\t\"component.multimodalInput.placeholder\": \"Escribe tu mensaje...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Artículos\",\n\t\"component.navigation.home\": \"Inicio\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agente IA\",\n};\n\nexport default es;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,YAAY,UAAU;CACvB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,QAAQ,UAAU;CACnB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,YAAY,UAAU;CACvB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
|
|
1
|
+
{"version":3,"file":"es.js","names":["es: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/es.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst es: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Haznos una pregunta\",\n\t\"common.actions.attachFiles\": \"Adjuntar archivos\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Impulsado por\",\n\t\"common.fallbacks.aiAssistant\": \"Asistente de IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Alguien\",\n\t\"common.fallbacks.supportTeam\": \"Soporte\",\n\t\"common.fallbacks.unknown\": \"Desconocido\",\n\t\"common.fallbacks.you\": \"Tú\",\n\t\"common.labels.aiAgentIndicator\": \"Agente IA\",\n\t\"common.labels.supportOnline\": \"Soporte en línea\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} más`,\n\t\"page.conversationHistory.title\": \"Historial de conversaciones\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Buenos días\",\n\t\t\tafternoon: \"Buenas tardes\",\n\t\t\tevening: \"Buenas noches\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, ¿en qué podemos ayudarte?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversación más\",\n\t\t\tother: \"conversaciones más\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Soporte ${utils.titleCase(websiteName)}` : \"Soporte\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversación sin título\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Tú - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} está escribiendo...`,\n\t\"component.conversationButtonLink.status.open\": \"Abierta\",\n\t\"component.conversationButtonLink.status.resolved\": \"Resuelta\",\n\t\"component.conversationButtonLink.status.spam\": \"Spam\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} asignó la conversación`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} retiró la asignación de la conversación`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} realizó una acción`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} se unió a la conversación`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} salió de la conversación`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} solicitó unirse`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió la prioridad`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} reabrió la conversación`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} resolvió la conversación`,\n\t\"component.conversationButtonLink.status.closed\": \"Cerrada\",\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} cambió el estado`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} agregó una etiqueta`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} quitó una etiqueta`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} bloqueó al visitante`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} desbloqueó al visitante`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Detalles de contacto confirmados\",\n\t\"component.identificationTool.title\": \"Comparte tu correo\",\n\t\"component.identificationTool.description\":\n\t\t\"Déjanos tu correo electrónico para que podamos continuar la conversación.\",\n\t\"component.identificationTool.cta\": \"Compartir correo\",\n\t\"component.identificationTool.loading\": \"Guardando...\",\n\t\"component.identificationTool.success\":\n\t\t\"¡Gracias! Usaremos este correo si necesitamos contactarte.\",\n\t\"component.identificationTool.error\":\n\t\t\"No pudimos guardar tu correo. Inténtalo de nuevo.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Ingresa un correo electrónico para continuar.\",\n\t\"component.identificationTool.inputPlaceholder\": \"tu@ejemplo.com\",\n\t\"component.identificationTool.inputLabel\": \"Correo electrónico\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"El visitante confirmó su correo electrónico\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"Esta conversación está cerrada, inicia una nueva para hablar con nosotros\",\n\t\"component.multimodalInput.placeholder\": \"Escribe tu mensaje...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Eliminar ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Artículos\",\n\t\"component.navigation.home\": \"Inicio\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agente IA\",\n};\n\nexport default es;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,YAAY,UAAU;CACvB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,QAAQ,UAAU;CACnB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,gDAAgD;CAChD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,kDAAkD;CAClD,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,YAAY,UAAU;CACvB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
|
|
@@ -39,6 +39,10 @@ const fr = {
|
|
|
39
39
|
"component.conversationButtonLink.lastMessage.agent": ({ variables }) => `${variables.name} - ${variables.time}`,
|
|
40
40
|
"component.conversationButtonLink.lastMessage.visitor": ({ variables }) => `Vous - ${variables.time}`,
|
|
41
41
|
"component.conversationButtonLink.typing": ({ variables }) => `${variables.name} est en train d'écrire...`,
|
|
42
|
+
"component.conversationButtonLink.status.open": "Ouverte",
|
|
43
|
+
"component.conversationButtonLink.status.resolved": "Résolue",
|
|
44
|
+
"component.conversationButtonLink.status.closed": "Fermée",
|
|
45
|
+
"component.conversationButtonLink.status.spam": "Indésirable",
|
|
42
46
|
"component.conversationEvent.assigned": ({ variables }) => `${variables.actorName} a attribué la conversation`,
|
|
43
47
|
"component.conversationEvent.unassigned": ({ variables }) => `${variables.actorName} a retiré l'attribution de la conversation`,
|
|
44
48
|
"component.conversationEvent.default": ({ variables }) => `${variables.actorName} a effectué une action`,
|
|
@@ -51,6 +55,20 @@ const fr = {
|
|
|
51
55
|
"component.conversationEvent.statusChanged": ({ variables }) => `${variables.actorName} a modifié le statut`,
|
|
52
56
|
"component.conversationEvent.tagAdded": ({ variables }) => `${variables.actorName} a ajouté une étiquette`,
|
|
53
57
|
"component.conversationEvent.tagRemoved": ({ variables }) => `${variables.actorName} a retiré une étiquette`,
|
|
58
|
+
"component.conversationEvent.visitorBlocked": ({ variables }) => `${variables.actorName} a bloqué le visiteur`,
|
|
59
|
+
"component.conversationEvent.visitorUnblocked": ({ variables }) => `${variables.actorName} a débloqué le visiteur`,
|
|
60
|
+
"component.conversationEvent.visitorIdentified": () => "Coordonnées confirmées",
|
|
61
|
+
"component.identificationTool.title": "Partagez votre e-mail",
|
|
62
|
+
"component.identificationTool.description": "Laissez-nous votre adresse e-mail afin que nous puissions vous recontacter.",
|
|
63
|
+
"component.identificationTool.cta": "Partager l'e-mail",
|
|
64
|
+
"component.identificationTool.loading": "Enregistrement...",
|
|
65
|
+
"component.identificationTool.success": "Merci ! Nous utiliserons cette adresse si nous devons vous recontacter.",
|
|
66
|
+
"component.identificationTool.error": "Impossible d'enregistrer votre e-mail. Veuillez réessayer.",
|
|
67
|
+
"component.identificationTool.validation": "Veuillez saisir une adresse e-mail pour continuer.",
|
|
68
|
+
"component.identificationTool.inputPlaceholder": "vous@example.com",
|
|
69
|
+
"component.identificationTool.inputLabel": "Adresse e-mail",
|
|
70
|
+
"component.identificationTool.eventLog": "Le visiteur a confirmé son adresse e-mail",
|
|
71
|
+
"component.conversationPage.closedMessage": "Cette conversation est close, commencez-en une nouvelle pour discuter avec nous",
|
|
54
72
|
"component.multimodalInput.placeholder": "Écrivez votre message...",
|
|
55
73
|
"component.multimodalInput.remove": ({ variables }) => `Supprimer ${variables.fileName}`,
|
|
56
74
|
"component.navigation.articles": "Articles",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fr.js","names":["fr: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/fr.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst fr: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Posez-nous une question\",\n\t\"common.actions.attachFiles\": \"Joindre des fichiers\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Propulsé par\",\n\t\"common.fallbacks.aiAssistant\": \"Assistant IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Quelqu'un\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Inconnu\",\n\t\"common.fallbacks.you\": \"Vous\",\n\t\"common.labels.aiAgentIndicator\": \"Agent IA\",\n\t\"common.labels.supportOnline\": \"Support en ligne\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} de plus`,\n\t\"page.conversationHistory.title\": \"Historique des conversations\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Bonjour\",\n\t\t\tafternoon: \"Bon après-midi\",\n\t\t\tevening: \"Bonsoir\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, comment pouvons-nous vous aider ?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation supplémentaire\",\n\t\t\tother: \"conversations supplémentaires\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Support ${utils.titleCase(websiteName)}` : \"Support\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversation sans titre\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Vous - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} est en train d'écrire...`,\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} a attribué la conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré l'attribution de la conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} a effectué une action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} a rejoint la conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} a quitté la conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} a demandé à rejoindre`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié la priorité`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} a rouvert la conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} a résolu la conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié le statut`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} a ajouté une étiquette`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré une étiquette`,\n\t\"component.multimodalInput.placeholder\": \"Écrivez votre message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Accueil\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agent IA\",\n};\n\nexport default fr;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,aAAa,UAAU;CACxB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,UAAU,UAAU;CACrB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,aAAa,UAAU;CACxB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
|
|
1
|
+
{"version":3,"file":"fr.js","names":["fr: SupportLocaleMessages"],"sources":["../../../../src/support/text/locales/fr.tsx"],"sourcesContent":["import type { SupportLocaleMessages } from \"./keys\";\n\nconst fr: SupportLocaleMessages = {\n\t\"common.actions.askQuestion\": \"Posez-nous une question\",\n\t\"common.actions.attachFiles\": \"Joindre des fichiers\",\n\t\"common.actions.removeFile\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"common.brand.watermark\": \"Propulsé par\",\n\t\"common.fallbacks.aiAssistant\": \"Assistant IA\",\n\t\"common.fallbacks.cossistant\": \"Cossistant\",\n\t\"common.fallbacks.someone\": \"Quelqu'un\",\n\t\"common.fallbacks.supportTeam\": \"Support\",\n\t\"common.fallbacks.unknown\": \"Inconnu\",\n\t\"common.fallbacks.you\": \"Vous\",\n\t\"common.labels.aiAgentIndicator\": \"Agent IA\",\n\t\"common.labels.supportOnline\": \"Support en ligne\",\n\t\"page.conversationHistory.showMore\": ({ variables, utils }) =>\n\t\t`+${utils.formatNumber(variables.count)} de plus`,\n\t\"page.conversationHistory.title\": \"Historique des conversations\",\n\t\"page.home.greeting\": ({ variables, context, utils }) => {\n\t\tconst period = utils.timeOfDay();\n\t\tconst prefixes: Record<typeof period.token, string> = {\n\t\t\tmorning: \"Bonjour\",\n\t\t\tafternoon: \"Bon après-midi\",\n\t\t\tevening: \"Bonsoir\",\n\t\t};\n\t\tconst prefix = prefixes[period.token];\n\t\tconst visitorName =\n\t\t\tvariables?.visitorName || context.visitor?.contact?.name;\n\t\treturn `${prefix}${visitorName ? ` ${visitorName}` : \"\"}, comment pouvons-nous vous aider ?`;\n\t},\n\t\"page.home.history.more\": ({ variables, utils }) => {\n\t\tconst count = variables.count;\n\t\tconst noun = utils.pluralize(count, {\n\t\t\tone: \"conversation supplémentaire\",\n\t\t\tother: \"conversations supplémentaires\",\n\t\t});\n\t\treturn `+ ${utils.formatNumber(count)} ${noun}`;\n\t},\n\t\"page.home.tagline\": ({ variables, context, utils }) => {\n\t\tconst websiteName = variables?.websiteName || context.website?.name || \"\";\n\t\treturn websiteName ? `Support ${utils.titleCase(websiteName)}` : \"Support\";\n\t},\n\t\"component.conversationButtonLink.fallbackTitle\": \"Conversation sans titre\",\n\t\"component.conversationButtonLink.lastMessage.agent\": ({ variables }) =>\n\t\t`${variables.name} - ${variables.time}`,\n\t\"component.conversationButtonLink.lastMessage.visitor\": ({ variables }) =>\n\t\t`Vous - ${variables.time}`,\n\t\"component.conversationButtonLink.typing\": ({ variables }) =>\n\t\t`${variables.name} est en train d'écrire...`,\n\t\"component.conversationButtonLink.status.open\": \"Ouverte\",\n\t\"component.conversationButtonLink.status.resolved\": \"Résolue\",\n\t\"component.conversationButtonLink.status.closed\": \"Fermée\",\n\t\"component.conversationButtonLink.status.spam\": \"Indésirable\",\n\t\"component.conversationEvent.assigned\": ({ variables }) =>\n\t\t`${variables.actorName} a attribué la conversation`,\n\t\"component.conversationEvent.unassigned\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré l'attribution de la conversation`,\n\t\"component.conversationEvent.default\": ({ variables }) =>\n\t\t`${variables.actorName} a effectué une action`,\n\t\"component.conversationEvent.participantJoined\": ({ variables }) =>\n\t\t`${variables.actorName} a rejoint la conversation`,\n\t\"component.conversationEvent.participantLeft\": ({ variables }) =>\n\t\t`${variables.actorName} a quitté la conversation`,\n\t\"component.conversationEvent.participantRequested\": ({ variables }) =>\n\t\t`${variables.actorName} a demandé à rejoindre`,\n\t\"component.conversationEvent.priorityChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié la priorité`,\n\t\"component.conversationEvent.reopened\": ({ variables }) =>\n\t\t`${variables.actorName} a rouvert la conversation`,\n\t\"component.conversationEvent.resolved\": ({ variables }) =>\n\t\t`${variables.actorName} a résolu la conversation`,\n\t\"component.conversationEvent.statusChanged\": ({ variables }) =>\n\t\t`${variables.actorName} a modifié le statut`,\n\t\"component.conversationEvent.tagAdded\": ({ variables }) =>\n\t\t`${variables.actorName} a ajouté une étiquette`,\n\t\"component.conversationEvent.tagRemoved\": ({ variables }) =>\n\t\t`${variables.actorName} a retiré une étiquette`,\n\t\"component.conversationEvent.visitorBlocked\": ({ variables }) =>\n\t\t`${variables.actorName} a bloqué le visiteur`,\n\t\"component.conversationEvent.visitorUnblocked\": ({ variables }) =>\n\t\t`${variables.actorName} a débloqué le visiteur`,\n\t\"component.conversationEvent.visitorIdentified\": () =>\n\t\t\"Coordonnées confirmées\",\n\t\"component.identificationTool.title\": \"Partagez votre e-mail\",\n\t\"component.identificationTool.description\":\n\t\t\"Laissez-nous votre adresse e-mail afin que nous puissions vous recontacter.\",\n\t\"component.identificationTool.cta\": \"Partager l'e-mail\",\n\t\"component.identificationTool.loading\": \"Enregistrement...\",\n\t\"component.identificationTool.success\":\n\t\t\"Merci ! Nous utiliserons cette adresse si nous devons vous recontacter.\",\n\t\"component.identificationTool.error\":\n\t\t\"Impossible d'enregistrer votre e-mail. Veuillez réessayer.\",\n\t\"component.identificationTool.validation\":\n\t\t\"Veuillez saisir une adresse e-mail pour continuer.\",\n\t\"component.identificationTool.inputPlaceholder\": \"vous@example.com\",\n\t\"component.identificationTool.inputLabel\": \"Adresse e-mail\",\n\t\"component.identificationTool.eventLog\":\n\t\t\"Le visiteur a confirmé son adresse e-mail\",\n\t\"component.conversationPage.closedMessage\":\n\t\t\"Cette conversation est close, commencez-en une nouvelle pour discuter avec nous\",\n\t\"component.multimodalInput.placeholder\": \"Écrivez votre message...\",\n\t\"component.multimodalInput.remove\": ({ variables }) =>\n\t\t`Supprimer ${variables.fileName}`,\n\t\"component.navigation.articles\": \"Articles\",\n\t\"component.navigation.home\": \"Accueil\",\n\t\"component.message.timestamp.aiIndicator\": \"• Agent IA\",\n};\n\nexport default fr;\n"],"mappings":";AAEA,MAAMA,KAA4B;CACjC,8BAA8B;CAC9B,8BAA8B;CAC9B,8BAA8B,EAAE,gBAC/B,aAAa,UAAU;CACxB,0BAA0B;CAC1B,gCAAgC;CAChC,+BAA+B;CAC/B,4BAA4B;CAC5B,gCAAgC;CAChC,4BAA4B;CAC5B,wBAAwB;CACxB,kCAAkC;CAClC,+BAA+B;CAC/B,sCAAsC,EAAE,WAAW,YAClD,IAAI,MAAM,aAAa,UAAU,MAAM,CAAC;CACzC,kCAAkC;CAClC,uBAAuB,EAAE,WAAW,SAAS,YAAY;EAOxD,MAAM,SALgD;GACrD,SAAS;GACT,WAAW;GACX,SAAS;GACT,CALc,MAAM,WAAW,CAMD;EAC/B,MAAM,cACL,WAAW,eAAe,QAAQ,SAAS,SAAS;AACrD,SAAO,GAAG,SAAS,cAAc,IAAI,gBAAgB,GAAG;;CAEzD,2BAA2B,EAAE,WAAW,YAAY;EACnD,MAAM,QAAQ,UAAU;EACxB,MAAM,OAAO,MAAM,UAAU,OAAO;GACnC,KAAK;GACL,OAAO;GACP,CAAC;AACF,SAAO,KAAK,MAAM,aAAa,MAAM,CAAC,GAAG;;CAE1C,sBAAsB,EAAE,WAAW,SAAS,YAAY;EACvD,MAAM,cAAc,WAAW,eAAe,QAAQ,SAAS,QAAQ;AACvE,SAAO,cAAc,WAAW,MAAM,UAAU,YAAY,KAAK;;CAElE,kDAAkD;CAClD,uDAAuD,EAAE,gBACxD,GAAG,UAAU,KAAK,KAAK,UAAU;CAClC,yDAAyD,EAAE,gBAC1D,UAAU,UAAU;CACrB,4CAA4C,EAAE,gBAC7C,GAAG,UAAU,KAAK;CACnB,gDAAgD;CAChD,oDAAoD;CACpD,kDAAkD;CAClD,gDAAgD;CAChD,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,wCAAwC,EAAE,gBACzC,GAAG,UAAU,UAAU;CACxB,kDAAkD,EAAE,gBACnD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,qDAAqD,EAAE,gBACtD,GAAG,UAAU,UAAU;CACxB,gDAAgD,EAAE,gBACjD,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,8CAA8C,EAAE,gBAC/C,GAAG,UAAU,UAAU;CACxB,yCAAyC,EAAE,gBAC1C,GAAG,UAAU,UAAU;CACxB,2CAA2C,EAAE,gBAC5C,GAAG,UAAU,UAAU;CACxB,+CAA+C,EAAE,gBAChD,GAAG,UAAU,UAAU;CACxB,iDAAiD,EAAE,gBAClD,GAAG,UAAU,UAAU;CACxB,uDACC;CACD,sCAAsC;CACtC,4CACC;CACD,oCAAoC;CACpC,wCAAwC;CACxC,wCACC;CACD,sCACC;CACD,2CACC;CACD,iDAAiD;CACjD,2CAA2C;CAC3C,yCACC;CACD,4CACC;CACD,yCAAyC;CACzC,qCAAqC,EAAE,gBACtC,aAAa,UAAU;CACxB,iCAAiC;CACjC,6BAA6B;CAC7B,2CAA2C;CAC3C;AAED,iBAAe"}
|
|
@@ -105,6 +105,18 @@ declare const supportTextDefinitions: {
|
|
|
105
105
|
readonly name: string;
|
|
106
106
|
};
|
|
107
107
|
};
|
|
108
|
+
readonly "component.conversationButtonLink.status.open": {
|
|
109
|
+
readonly variables: undefined;
|
|
110
|
+
};
|
|
111
|
+
readonly "component.conversationButtonLink.status.resolved": {
|
|
112
|
+
readonly variables: undefined;
|
|
113
|
+
};
|
|
114
|
+
readonly "component.conversationButtonLink.status.closed": {
|
|
115
|
+
readonly variables: undefined;
|
|
116
|
+
};
|
|
117
|
+
readonly "component.conversationButtonLink.status.spam": {
|
|
118
|
+
readonly variables: undefined;
|
|
119
|
+
};
|
|
108
120
|
readonly "component.conversationEvent.assigned": {
|
|
109
121
|
readonly variables: {
|
|
110
122
|
readonly actorName: string;
|
|
@@ -165,6 +177,54 @@ declare const supportTextDefinitions: {
|
|
|
165
177
|
readonly actorName: string;
|
|
166
178
|
};
|
|
167
179
|
};
|
|
180
|
+
readonly "component.conversationEvent.visitorBlocked": {
|
|
181
|
+
readonly variables: {
|
|
182
|
+
readonly actorName: string;
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
readonly "component.conversationEvent.visitorUnblocked": {
|
|
186
|
+
readonly variables: {
|
|
187
|
+
readonly actorName: string;
|
|
188
|
+
};
|
|
189
|
+
};
|
|
190
|
+
readonly "component.conversationEvent.visitorIdentified": {
|
|
191
|
+
readonly variables: {
|
|
192
|
+
readonly actorName: string;
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
readonly "component.identificationTool.title": {
|
|
196
|
+
readonly variables: undefined;
|
|
197
|
+
};
|
|
198
|
+
readonly "component.identificationTool.description": {
|
|
199
|
+
readonly variables: undefined;
|
|
200
|
+
};
|
|
201
|
+
readonly "component.identificationTool.cta": {
|
|
202
|
+
readonly variables: undefined;
|
|
203
|
+
};
|
|
204
|
+
readonly "component.identificationTool.loading": {
|
|
205
|
+
readonly variables: undefined;
|
|
206
|
+
};
|
|
207
|
+
readonly "component.identificationTool.success": {
|
|
208
|
+
readonly variables: undefined;
|
|
209
|
+
};
|
|
210
|
+
readonly "component.identificationTool.error": {
|
|
211
|
+
readonly variables: undefined;
|
|
212
|
+
};
|
|
213
|
+
readonly "component.identificationTool.validation": {
|
|
214
|
+
readonly variables: undefined;
|
|
215
|
+
};
|
|
216
|
+
readonly "component.identificationTool.inputPlaceholder": {
|
|
217
|
+
readonly variables: undefined;
|
|
218
|
+
};
|
|
219
|
+
readonly "component.identificationTool.inputLabel": {
|
|
220
|
+
readonly variables: undefined;
|
|
221
|
+
};
|
|
222
|
+
readonly "component.identificationTool.eventLog": {
|
|
223
|
+
readonly variables: undefined;
|
|
224
|
+
};
|
|
225
|
+
readonly "component.conversationPage.closedMessage": {
|
|
226
|
+
readonly variables: undefined;
|
|
227
|
+
};
|
|
168
228
|
readonly "component.multimodalInput.placeholder": {
|
|
169
229
|
readonly variables: undefined;
|
|
170
230
|
};
|
|
@@ -185,26 +245,26 @@ declare const supportTextDefinitions: {
|
|
|
185
245
|
};
|
|
186
246
|
type SupportTextDefinitions = typeof supportTextDefinitions;
|
|
187
247
|
type SupportTextKey = keyof SupportTextDefinitions;
|
|
188
|
-
type SupportTextVariables<K extends SupportTextKey> = SupportTextDefinitions[K]["variables"];
|
|
189
|
-
type OptionalFlag<K extends SupportTextKey> = SupportTextDefinitions[K] extends {
|
|
248
|
+
type SupportTextVariables<K$1 extends SupportTextKey> = SupportTextDefinitions[K$1]["variables"];
|
|
249
|
+
type OptionalFlag<K$1 extends SupportTextKey> = SupportTextDefinitions[K$1] extends {
|
|
190
250
|
optional: true;
|
|
191
251
|
} ? true : false;
|
|
192
|
-
type MessageVariables<K extends SupportTextKey, Vars = SupportTextVariables<K>> = Vars extends undefined ? undefined : OptionalFlag<K> extends true ? Vars | undefined : Vars;
|
|
193
|
-
type SupportTextMessage<K extends SupportTextKey, Vars = SupportTextVariables<K>> = string | ((args: {
|
|
194
|
-
variables: MessageVariables<K, Vars>;
|
|
252
|
+
type MessageVariables<K$1 extends SupportTextKey, Vars = SupportTextVariables<K$1>> = Vars extends undefined ? undefined : OptionalFlag<K$1> extends true ? Vars | undefined : Vars;
|
|
253
|
+
type SupportTextMessage<K$1 extends SupportTextKey, Vars = SupportTextVariables<K$1>> = string | ((args: {
|
|
254
|
+
variables: MessageVariables<K$1, Vars>;
|
|
195
255
|
context: SupportTextContext;
|
|
196
256
|
utils: SupportTextUtils;
|
|
197
257
|
}) => string);
|
|
198
258
|
type SupportLocaleMessages = { [K in SupportTextKey]: SupportTextMessage<K> };
|
|
199
259
|
type SupportTextContentOverrides<Locale extends string = SupportLocale> = Partial<{ [K in SupportTextKey]: SupportTextMessage<K> | Partial<Record<SupportLocale | Locale, SupportTextMessage<K>>> }>;
|
|
200
260
|
type SupportTextFormatter = {
|
|
201
|
-
<K extends SupportTextKey>(key: K, variables: SupportTextVariables<K>): string;
|
|
202
|
-
<K extends SupportTextKey>(key: K): string;
|
|
261
|
+
<K$1 extends SupportTextKey>(key: K$1, variables: SupportTextVariables<K$1>): string;
|
|
262
|
+
<K$1 extends SupportTextKey>(key: K$1): string;
|
|
203
263
|
};
|
|
204
264
|
type KeysWithVariables = { [K in SupportTextKey]: SupportTextVariables<K> extends undefined ? never : OptionalFlag<K> extends true ? never : K }[SupportTextKey];
|
|
205
265
|
type StrictSupportTextFormatter = {
|
|
206
|
-
<K extends KeysWithVariables>(key: K, variables: SupportTextVariables<K>): string;
|
|
207
|
-
<K extends Exclude<SupportTextKey, KeysWithVariables>>(key: K, variables?: SupportTextVariables<K>): string;
|
|
266
|
+
<K$1 extends KeysWithVariables>(key: K$1, variables: SupportTextVariables<K$1>): string;
|
|
267
|
+
<K$1 extends Exclude<SupportTextKey, KeysWithVariables>>(key: K$1, variables?: SupportTextVariables<K$1>): string;
|
|
208
268
|
};
|
|
209
269
|
type SupportTextResolvedFormatter = StrictSupportTextFormatter & SupportTextFormatter;
|
|
210
270
|
type SupportTextProviderValue = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","names":[],"sources":["../../../../src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":";;;KAMY,aAAA;KAEA,qBAAA;AAFA,KAIA,qBAAA,GAJa;EAEb,KAAA,EAGJ,qBAHyB;EAErB,KAAA,EAAA,MAAA;AAKZ,CAAA;
|
|
1
|
+
{"version":3,"file":"keys.d.ts","names":[],"sources":["../../../../src/support/text/locales/keys.ts"],"sourcesContent":[],"mappings":";;;KAMY,aAAA;KAEA,qBAAA;AAFA,KAIA,qBAAA,GAJa;EAEb,KAAA,EAGJ,qBAHyB;EAErB,KAAA,EAAA,MAAA;AAKZ,CAAA;AAOY,KAPA,gBAAA,GAOkB;EACpB,YAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAP+B,IAAA,CAAK,mBAOpC,EAAA,GAAA,MAAA;EACA,SAAA,EAAA,CAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA;IACI,GAAA,EAAA,MAAA;IACH,KAAA,EAAA,MAAA;EAAgB,CAAA,EAAA,GAAA,MAAA;EAad,SAAA,EAAA,CAAA,KAAA,EAAA,MAyHsD,EAAA,GAAA,MAAA;EAEvD,SAAA,EAAA,GAAA,GA/IM,qBA+I0B;AAC5C,CAAA;AAEY,KA/IA,kBAAA,GA+IoB;EAAW,OAAA,EA9IjC,qBA8IiC,GAAA,IAAA;EAC1C,OAAA,EA9IS,qBA8IT,CAAA,SAAA,CAAA,GAAA,IAAA;EAAuB,WAAA,EA7IV,mBA6IU,EAAA;EAAC,QAAA,EA5Id,gBA4Ic,EAAA;AAAe,CAAA;AAEZ,cAjIf,sBAiIe,EAAA;EAC3B,SAAA,4BAAA,EAAA;IAAuB,SAAA,SAAA,EAAA,SAAA;EAAC,CAAA;EAEpB,SAAA,4BAAgB,EAAA;IACV,SAAA,SAAA,EAAA,SAAA;EACkB,CAAA;EAArB,SAAA,2BAAA,EAAA;IACJ,SAAA,SAAA,EAAA;MAEY,SAAA,QAAA,EAAA,MAAA;IAAb,CAAA;EACC,CAAA;EACA,SAAA,wBAAA,EAAA;IAAI,SAAA,SAAA,EAAA,SAAA;EAEI,CAAA;EACD,SAAA,8BAAA,EAAA;IACkB,SAAA,SAAA,EAAA,SAAA;EAArB,CAAA;EAIuB,SAAA,6BAAA,EAAA;IAAG,SAAA,SAAA,EAAA,SAAA;EAApB,CAAA;EACF,SAAA,0BAAA,EAAA;IACF,SAAA,SAAA,EAAA,SAAA;EAAgB,CAAA;EAGd,SAAA,8BAAqB,EAAA;IAC1B,SAAA,SAAA,EAAA,SAAA;EAAoC,CAAA;EAAnB,SAAA,0BAAA,EAAA;IAAkB,SAAA,SAAA,EAAA,SAAA;EAG9B,CAAA;EAAoD,SAAA,sBAAA,EAAA;IAExD,SAAA,SAAA,EAAA,SAAA;EACgB,CAAA;EAAnB,SAAA,gCAAA,EAAA;IACe,SAAA,SAAA,EAAA,SAAA;EAAgB,CAAA;EAA2B,SAAA,6BAAA,EAAA;IAAnB,SAAA,SAAA,EAAA,SAAA;EAA/B,CAAA;EAAR,SAAA,mCAAA,EAAA;IAHJ,SAAA,SAAA,EAAA;MAAO,SAAA,KAAA,EAAA,MAAA;IAMI,CAAA;EACA,CAAA;EACL,SAAA,gCAAA,EAAA;IAC2B,SAAA,SAAA,EAAA,SAAA;EAArB,CAAA;EAGD,SAAA,oBAAA,EAAA;IAAqB,SAAA,SAAA,EAAA;MAAC,SAAA,WAAA,EAAA,MAAA,GAAA,SAAA;IAG7B,CAAA;IACE,SAAA,QAAA,EAAA,IAAA;EAAsC,CAAA;EAArB,SAAA,wBAAA,EAAA;IAEP,SAAA,SAAA,EAAA;MAAb,SAAA,KAAA,EAAA,MAAA;IAEC,CAAA;EACH,CAAA;EAAc,SAAA,mBAAA,EAAA;IAEJ,SAAA,SAAA,EAAA;MACA,SAAA,WAAA,EAAA,MAAA,GAAA,IAAA;IACL,CAAA;IAC2B,SAAA,QAAA,EAAA,IAAA;EAArB,CAAA;EAEO,SAAA,gDAAA,EAAA;IAAgB,SAAA,SAAA,EAAA,SAAA;EAAxB,CAAA;EACL,SAAA,oDAAA,EAAA;IAC4B,SAAA,SAAA,EAAA;MAArB,SAAA,IAAA,EAAA,MAAA;MAAoB,SAAA,IAAA,EAAA,MAAA;IAItB,CAAA;EAGA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAvEA,sBAAA,UAAgC;KAChC,cAAA,SAAuB;KAEvB,iCAA+B,kBAC1C,uBAAuB;KAEnB,yBAAuB,kBAC3B,uBAAuB;;;KAEnB,6BACM,uBACH,qBAAqB,QACzB,qCAED,aAAa,oBACZ,mBACA;KAEQ,+BACD,uBACH,qBAAqB;aAIf,iBAAiB,KAAG;WACtB;SACF;;KAGE,qBAAA,WACL,iBAAiB,mBAAmB;KAG/B,oDAAoD,iBAC/D,gBACO,iBACH,mBAAmB,KACnB,QAAQ,OAAO,gBAAgB,QAAQ,mBAAmB;KAGnD,oBAAA;eACA,qBACL,gBACM,qBAAqB;eAGtB,qBAAqB;;KAG5B,iBAAA,WACE,iBAAiB,qBAAqB,+BAEzC,aAAa,0BAEZ,IACH;KAEU,0BAAA;eACA,wBACL,gBACM,qBAAqB;eAEtB,QAAQ,gBAAgB,yBAC7B,iBACO,qBAAqB;;KAIvB,4BAAA,GAA+B,6BAC1C;KAEW,wBAAA;UACH"}
|