cobrowse-agent-ui 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index-CB-5iZZ3.js","sources":["../lib/icons/globe.svg?react","../lib/icons/apple.svg?react","../lib/icons/android.svg?react","../lib/icons/windows.svg?react","../lib/components/PlatformIcon/index.tsx","../lib/i18n.ts","../lib/deviceType.ts","../lib/components/Device/index.tsx","../lib/components/Stopwatch/index.tsx","../lib/components/Session/index.tsx","../lib/components/SmartConnectButton/index.tsx","../lib/icons/refresh.svg?react","../lib/components/RefreshButton/index.tsx","../lib/icons/loader.svg?react","../lib/components/Loader/index.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgGlobe = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.9167 14.4917C14.7001 13.8251 14.0751 13.3334 13.3334 13.3334H12.5001V10.8334C12.5001 10.6124 12.4123 10.4004 12.256 10.2442C12.0997 10.0879 11.8878 10.0001 11.6667 10.0001H6.66675V8.33341H8.33341C8.55443 8.33341 8.76639 8.24562 8.92267 8.08934C9.07895 7.93306 9.16675 7.7211 9.16675 7.50008V5.83341H10.8334C11.2754 5.83341 11.6994 5.65782 12.0119 5.34526C12.3245 5.0327 12.5001 4.60878 12.5001 4.16675V3.82508C13.4971 4.22705 14.382 4.86464 15.0788 5.68328C15.7756 6.50191 16.2637 7.4772 16.5012 8.52567C16.7387 9.57414 16.7187 10.6646 16.4427 11.7036C16.1668 12.7426 15.6432 13.6993 14.9167 14.4917ZM9.16675 16.6084C5.87508 16.2001 3.33341 13.4001 3.33341 10.0001C3.33341 9.48341 3.40008 8.98341 3.50841 8.50841L7.50008 12.5001V13.3334C7.50008 13.7754 7.67568 14.1994 7.98824 14.5119C8.3008 14.8245 8.72472 15.0001 9.16675 15.0001M10.0001 1.66675C8.90573 1.66675 7.8221 1.8823 6.81105 2.30109C5.80001 2.71987 4.88135 3.3337 4.10752 4.10752C2.54472 5.67033 1.66675 7.78994 1.66675 10.0001C1.66675 12.2102 2.54472 14.3298 4.10752 15.8926C4.88135 16.6665 5.80001 17.2803 6.81105 17.6991C7.8221 18.1179 8.90573 18.3334 10.0001 18.3334C12.2102 18.3334 14.3298 17.4554 15.8926 15.8926C17.4554 14.3298 18.3334 12.2102 18.3334 10.0001C18.3334 8.90573 18.1179 7.8221 17.6991 6.81105C17.2803 5.80001 16.6665 4.88135 15.8926 4.10752C15.1188 3.3337 14.2002 2.71987 13.1891 2.30109C12.1781 1.8823 11.0944 1.66675 10.0001 1.66675Z\", fill: \"currentColor\" }));\nexport default SvgGlobe;\n","import * as React from \"react\";\nconst SvgApple = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.2084 16.9C13.3917 17.6917 12.5001 17.5667 11.6417 17.1917C10.7334 16.8083 9.90005 16.7917 8.94172 17.1917C7.74172 17.7083 7.10839 17.5583 6.39172 16.9C2.32506 12.7083 2.92506 6.325 7.54172 6.09167C8.66672 6.15 9.45006 6.70833 10.1084 6.75833C11.0917 6.55833 12.0334 5.98333 13.0834 6.05833C14.3417 6.15833 15.2917 6.65833 15.9167 7.55833C13.3167 9.11667 13.9334 12.5417 16.3167 13.5C15.8417 14.75 15.2251 15.9917 14.2001 16.9083L14.2084 16.9ZM10.0251 6.04167C9.90005 4.18333 11.4084 2.65 13.1417 2.5C13.3834 4.65 11.1917 6.25 10.0251 6.04167Z\", fill: \"currentColor\" }));\nexport default SvgApple;\n","import * as React from \"react\";\nconst SvgAndroid = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.833252 15C0.958252 13.5139 1.41325 12.1458 2.19825 10.8958C2.98325 9.64583 4.02825 8.65278 5.33325 7.91667L3.79159 5.25C3.70825 5.125 3.68742 4.99306 3.72909 4.85417C3.77075 4.71528 3.86103 4.61111 3.99992 4.54167C4.11103 4.47222 4.23603 4.45833 4.37492 4.5C4.51381 4.54167 4.62492 4.625 4.70825 4.75L6.24992 7.41667C7.44436 6.91667 8.69436 6.66667 9.99992 6.66667C11.3055 6.66667 12.5555 6.91667 13.7499 7.41667L15.2916 4.75C15.3749 4.625 15.486 4.54167 15.6249 4.5C15.7638 4.45833 15.8888 4.47222 15.9999 4.54167C16.1388 4.61111 16.2291 4.71528 16.2708 4.85417C16.3124 4.99306 16.2916 5.125 16.2083 5.25L14.6666 7.91667C15.9721 8.65278 17.0171 9.64583 17.8016 10.8958C18.586 12.1458 19.041 13.5139 19.1666 15H0.833252ZM5.83325 12.7083C6.12492 12.7083 6.37159 12.6075 6.57325 12.4058C6.77492 12.2042 6.87547 11.9578 6.87492 11.6667C6.87492 11.375 6.77409 11.1283 6.57242 10.9267C6.37075 10.725 6.12436 10.6244 5.83325 10.625C5.54159 10.625 5.29492 10.7258 5.09325 10.9275C4.89159 11.1292 4.79103 11.3756 4.79159 11.6667C4.79159 11.9583 4.89242 12.205 5.09409 12.4067C5.29575 12.6083 5.54214 12.7089 5.83325 12.7083ZM14.1666 12.7083C14.4583 12.7083 14.7049 12.6075 14.9066 12.4058C15.1083 12.2042 15.2088 11.9578 15.2083 11.6667C15.2083 11.375 15.1074 11.1283 14.9058 10.9267C14.7041 10.725 14.4577 10.6244 14.1666 10.625C13.8749 10.625 13.6283 10.7258 13.4266 10.9275C13.2249 11.1292 13.1244 11.3756 13.1249 11.6667C13.1249 11.9583 13.2258 12.205 13.4274 12.4067C13.6291 12.6083 13.8755 12.7089 14.1666 12.7083Z\", fill: \"currentColor\" }));\nexport default SvgAndroid;\n","import * as React from \"react\";\nconst SvgWindows = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 37 36\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"Device Icon\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector\", d: \"M5.21561 8.2185L16.2811 6.6945V17.385H5.21411V8.22L5.21561 8.2185ZM5.21561 27.7815L16.2811 29.307V18.747H5.21411L5.21561 27.7815ZM17.4976 29.469L32.2156 31.5V18.747H17.4976V29.469ZM17.4976 6.531V17.385H32.2156V4.5L17.4976 6.531Z\", fill: \"currentColor\" })));\nexport default SvgWindows;\n","import clsx from 'clsx'\nimport IconGlobe from '@/icons/globe.svg?react'\nimport IconApple from '@/icons/apple.svg?react'\nimport IconAndroid from '@/icons/android.svg?react'\nimport IconWindows from '@/icons/windows.svg?react'\nimport styles from './PlatformIcon.module.css'\nimport type { ComponentType, SVGProps } from 'react'\nimport type { DeviceInfo } from 'cobrowse-agent-sdk'\n\ntype IconComponent = ComponentType<SVGProps<SVGSVGElement>>\n\nconst ICONS: Record<DeviceInfo['platform'], IconComponent> = {\n web: IconGlobe,\n ios: IconApple,\n macos: IconApple,\n android: IconAndroid,\n windows: IconWindows\n}\n\nexport interface PlatformIconProps extends SVGProps<SVGSVGElement> {\n platform: DeviceInfo['platform']\n className?: string\n}\n\nconst PlatformIcon = ({ platform, className, ...props }: PlatformIconProps) => {\n const Icon = ICONS[platform]\n\n return (\n <Icon\n fill='currentColor'\n {...props}\n className={clsx(styles.root, className)}\n />\n )\n}\n\nexport default PlatformIcon\n","import { createInstance } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport { formatDistanceToNow } from 'date-fns'\nimport type { Locale } from 'date-fns'\nimport {\n enUS, ar, cs, da, de, es, et, fi, fr, hi, it, ja, ko, lt, ms, nl, pl, pt, ro, ru, sk, sl, sv, th, uk, vi, zhCN\n} from 'date-fns/locale'\nimport localeEnUS from './locales/en-us/translation.json'\nimport localeAr from './locales/ar/translation.json'\nimport localeCs from './locales/cs/translation.json'\nimport localeDa from './locales/da/translation.json'\nimport localeDe from './locales/de/translation.json'\nimport localeEs from './locales/es/translation.json'\nimport localeEt from './locales/et/translation.json'\nimport localeFi from './locales/fi/translation.json'\nimport localeFr from './locales/fr/translation.json'\nimport localeHi from './locales/hi/translation.json'\nimport localeIt from './locales/it/translation.json'\nimport localeJa from './locales/ja/translation.json'\nimport localeKk from './locales/kk/translation.json'\nimport localeKo from './locales/ko/translation.json'\nimport localeLt from './locales/lt/translation.json'\nimport localeMr from './locales/mr/translation.json'\nimport localeMs from './locales/ms/translation.json'\nimport localeNl from './locales/nl/translation.json'\nimport localePl from './locales/pl/translation.json'\nimport localePt from './locales/pt/translation.json'\nimport localeRo from './locales/ro/translation.json'\nimport localeRu from './locales/ru/translation.json'\nimport localeSk from './locales/sk/translation.json'\nimport localeSl from './locales/sl/translation.json'\nimport localeSv from './locales/sv/translation.json'\nimport localeTh from './locales/th/translation.json'\nimport localeUk from './locales/uk/translation.json'\nimport localeVi from './locales/vi/translation.json'\nimport localeZh from './locales/zh/translation.json'\n\nconst englishUS = 'en-us'\n\nconst dateLocales: Record<string, Locale> = {\n [englishUS]: enUS,\n ar,\n cs,\n da,\n de,\n es,\n et,\n fi,\n fr,\n hi,\n it,\n ja,\n ko,\n lt,\n ms,\n nl,\n pl,\n pt,\n ro,\n ru,\n sk,\n sl,\n sv,\n th,\n uk,\n vi,\n zh: zhCN\n}\n\nconst i18n = createInstance({\n fallbackLng: englishUS,\n debug: import.meta.env.DEV,\n lowerCaseLng: true,\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n format: (value: unknown, format?: string, lng?: string) => {\n if (format === 'dateRelative' && value instanceof Date) {\n const { [lng ?? englishUS]: locale } = dateLocales\n return formatDistanceToNow(value, { addSuffix: true, locale })\n }\n\n return String(value)\n }\n },\n detection: {\n caches: [],\n order: []\n },\n resources: {\n [englishUS]: {\n translation: localeEnUS\n },\n ar: {\n translation: localeAr\n },\n cs: {\n translation: localeCs\n },\n da: {\n translation: localeDa\n },\n de: {\n translation: localeDe\n },\n es: {\n translation: localeEs\n },\n et: {\n translation: localeEt\n },\n fi: {\n translation: localeFi\n },\n fr: {\n translation: localeFr\n },\n hi: {\n translation: localeHi\n },\n it: {\n translation: localeIt\n },\n ja: {\n translation: localeJa\n },\n kk: {\n translation: localeKk\n },\n ko: {\n translation: localeKo\n },\n lt: {\n translation: localeLt\n },\n mr: {\n translation: localeMr\n },\n ms: {\n translation: localeMs\n },\n nl: {\n translation: localeNl\n },\n pl: {\n translation: localePl\n },\n pt: {\n translation: localePt\n },\n ro: {\n translation: localeRo\n },\n ru: {\n translation: localeRu\n },\n sk: {\n translation: localeSk\n },\n sl: {\n translation: localeSl\n },\n sv: {\n translation: localeSv\n },\n th: {\n translation: localeTh\n },\n uk: {\n translation: localeUk\n },\n vi: {\n translation: localeVi\n },\n zh: {\n translation: localeZh\n }\n }\n})\n\nvoid i18n\n .use(initReactI18next)\n .init()\n\nexport default i18n\n","import type { DeviceInfo as FullDeviceInfo } from 'cobrowse-agent-sdk'\nimport parser from 'ua-parser-js'\nimport i18n from '@/i18n'\n\nexport type DeviceInfo = Pick<FullDeviceInfo, 'platform' | 'device'>\n\nconst PLATFORM_LABELS: Record<Exclude<DeviceInfo['platform'], 'web'>, string> = {\n ios: 'iOS',\n android: 'Android',\n windows: 'Windows',\n macos: 'macOS'\n}\n\nexport default function deviceType ({ platform, device }: DeviceInfo): string {\n if (platform === 'web') {\n const ua = parser(device)\n\n return i18n.t('{{browser}} on {{os}}', {\n browser: ua.browser.name,\n os: ua.os.name\n })\n }\n\n return i18n.t('{{device}} Device', { device: PLATFORM_LABELS[platform] })\n}\n","import type { CSSProperties, ReactNode } from 'react'\nimport type { Device as FullDevice } from 'cobrowse-agent-sdk'\nimport deviceType, { type DeviceInfo } from '@/deviceType'\nimport clsx from 'clsx'\nimport i18n from '@/i18n'\nimport PlatformIcon from '@/components/PlatformIcon'\nimport styles from './Device.module.css'\n\nexport type DeviceData = Pick<FullDevice, 'id' | 'online' | 'connectable' | 'last_active'> & { device: DeviceInfo }\n\nexport interface DeviceProps<T extends DeviceData = DeviceData> {\n style?: CSSProperties\n className?: string\n device: T\n children?: ReactNode\n}\n\nconst LastSeen = ({ device }: { device: DeviceData }) => (\n <div className={styles.lastSeen}>\n {device.online\n ? i18n.t('Online')\n : i18n.t('Last seen {{date, dateRelative}}', {\n date: new Date(device.last_active)\n })}\n </div>\n)\n\nconst Device = <T extends DeviceData = DeviceData>({ style, className, device, children }: DeviceProps<T>) => (\n <div\n style={style}\n className={clsx(\n styles.root,\n device.online && styles.online,\n device.connectable && styles.connectable,\n className\n )}\n >\n <div className={styles.deviceStatus}>\n <PlatformIcon\n platform={device.device.platform}\n className={styles.platformIcon}\n />\n </div>\n <div className={styles.details}>\n {deviceType(device.device)}\n <LastSeen device={device} />\n </div>\n {children}\n </div>\n)\n\nexport default Device\n","import clsx from 'clsx'\nimport { differenceInMilliseconds, intervalToDuration, format } from 'date-fns'\nimport type { CSSProperties } from 'react'\n\nexport interface StopwatchProps {\n start: Date | number | string\n end?: Date | number | string\n style?: CSSProperties\n className?: string\n}\n\nconst Stopwatch = ({ start: startProp, end: endProp, style, className }: StopwatchProps) => {\n const start = new Date(startProp)\n const end = endProp ? new Date(endProp) : new Date()\n const ms = differenceInMilliseconds(end, start)\n const duration = intervalToDuration({ start, end })\n\n return (\n <span style={style} className={clsx('Stopwatch', className)}>\n {duration.hours && duration.hours > 0 ? <span>{duration.hours}<span>:</span></span> : null}\n <span>{format(new Date(ms), 'mm:ss')}</span>\n </span>\n )\n}\n\nexport default Stopwatch\n","import type { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react'\nimport type { Session as FullSession } from 'cobrowse-agent-sdk'\nimport deviceType, { type DeviceInfo } from '@/deviceType'\nimport clsx from 'clsx'\nimport Stopwatch from '@/components/Stopwatch'\nimport i18n from '@/i18n'\nimport { Trans } from 'react-i18next'\nimport styles from './Session.module.css'\n\nconst DEFAULT_TAG = 'div' as const\n\ntype PropsOf<T extends ElementType> = ComponentPropsWithoutRef<T>\n\nexport type SessionData = Pick<FullSession, 'id' | 'state' | 'recorded' | 'activated' | 'ended'> & { device: DeviceInfo }\n\ninterface BaseSessionProps<TSession extends SessionData = SessionData> {\n session: TSession\n className?: string\n children?: ReactNode\n}\n\nexport type SessionProps<TSession extends SessionData = SessionData, TElement extends ElementType = typeof DEFAULT_TAG> =\n BaseSessionProps<TSession> &\n Omit<PropsOf<TElement>, 'onClick'> & {\n as?: TElement\n onClick?: (session: TSession) => void\n }\n\nconst Session = <TSession extends SessionData = SessionData, TElement extends ElementType = typeof DEFAULT_TAG>({\n as,\n session,\n onClick,\n className,\n children,\n ...props\n}: SessionProps<TSession, TElement>) => {\n const isClickable = typeof onClick === 'function'\n const Tag = as ?? isClickable ? 'button' : DEFAULT_TAG\n\n return (\n <Tag\n onClick={isClickable ? () => { onClick(session) } : undefined}\n className={clsx(styles.root, isClickable && styles.clickable, className)}\n {...props}\n >\n <span className={styles.details}>\n <span>\n <Trans i18n={i18n}>\n <span className='device-prefix'>Connected to </span>\n {{ deviceType: deviceType(session.device) }}\n </Trans>\n </span>\n <span className={styles.subdetails}>\n <span className={styles.activated}>\n {i18n.t('{{date, dateRelative}}', {\n date: new Date(session.activated)\n })}\n </span>\n {session.state === 'ended' && session.recorded\n ? (\n <span className={styles.recorded}>\n {i18n.t('Recorded')}\n </span>\n )\n : null}\n </span>\n </span>\n {session.state === 'ended'\n ? (\n <Stopwatch\n className={styles.duration}\n start={new Date(session.activated)}\n end={session.ended ? new Date(session.ended) : undefined}\n />\n )\n : (\n <span className={styles.active}>{i18n.t('Active')}</span>\n )}\n {children}\n </Tag>\n )\n}\n\nexport default Session\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport i18n from '@/i18n'\nimport clsx from 'clsx'\nimport styles from './SmartConnectButton.module.css'\nimport type { DeviceData } from '@/components/Device'\n\nexport interface SmartConnectButtonProps<T extends DeviceData = DeviceData> extends Omit<ComponentPropsWithoutRef<'button'>, 'onClick'> {\n device: T\n onClick?: (device: T) => void\n children?: ReactNode\n}\n\nconst SmartConnectButton = <T extends DeviceData = DeviceData>({ device, onClick: onClickCallback, className, children, ...props }: SmartConnectButtonProps<T>) => {\n const handleClick = () => {\n if (device.connectable) onClickCallback?.(device)\n }\n\n const isDisabled = !device.connectable\n\n return (\n <button\n type='button'\n disabled={isDisabled}\n className={clsx(\n styles.root,\n device.online && styles.online,\n device.connectable && styles.connectable,\n className\n )}\n onClick={handleClick}\n {...props}\n >\n {children ?? i18n.t('Connect')}\n </button>\n )\n}\n\nexport default SmartConnectButton\n","import * as React from \"react\";\nconst SvgRefresh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\", className: \"lucide lucide-refresh-cw-icon lucide-refresh-cw\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 3v5h-5\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 16H3v5\" }));\nexport default SvgRefresh;\n","import clsx from 'clsx'\nimport type { ComponentPropsWithoutRef } from 'react'\nimport RefreshIcon from '@/icons/refresh.svg?react'\nimport styles from './RefreshButton.module.css'\n\nexport interface RefreshButtonProps extends ComponentPropsWithoutRef<'button'> {}\n\nconst RefreshButton = ({ className, children, ...props }: RefreshButtonProps) => (\n <button className={clsx(styles.root, className)} {...props}>\n {children ?? <RefreshIcon className={styles.icon} />}\n </button>\n)\n\nexport default RefreshButton\n","import * as React from \"react\";\nconst SvgLoader = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\", className: \"lucide lucide-loader-circle-icon lucide-loader-circle\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\" }));\nexport default SvgLoader;\n","import type { ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport LoaderIcon from '@/icons/loader.svg?react'\nimport styles from './Loader.module.css'\n\nexport interface LoaderProps {\n children?: ReactNode\n}\n\nconst Loader = ({ children }: LoaderProps) => {\n const { t } = useTranslation()\n\n return (\n <div role='status' aria-label={t('Loading...')} className={styles.root}>\n {children ?? <LoaderIcon className={styles.icon} />}\n </div>\n )\n}\n\nexport default Loader\n"],"names":["SvgGlobe","props","React","__spreadValues","SvgApple","SvgAndroid","SvgWindows","ICONS","IconGlobe","IconApple","IconAndroid","IconWindows","PlatformIcon","_a","_b","platform","className","__objRest","Icon","jsx","__spreadProps","clsx","styles","englishUS","dateLocales","enUS","ar","cs","da","de","es","et","fi","fr","hi","it","ja","ko","lt","ms","nl","pl","pt","ro","ru","sk","sl","sv","th","uk","vi","zhCN","i18n","createInstance","value","format","lng","locale","formatDistanceToNow","localeEnUS","localeAr","localeCs","localeDa","localeDe","localeEs","localeEt","localeFi","localeFr","localeHi","localeIt","localeJa","localeKk","localeKo","localeLt","localeMr","localeMs","localeNl","localePl","localePt","localeRo","localeRu","localeSk","localeSl","localeSv","localeTh","localeUk","localeVi","localeZh","initReactI18next","PLATFORM_LABELS","deviceType","device","ua","parser","LastSeen","Device","style","children","jsxs","Stopwatch","startProp","endProp","start","end","differenceInMilliseconds","duration","intervalToDuration","DEFAULT_TAG","Session","as","session","onClick","isClickable","Tag","Trans","SmartConnectButton","onClickCallback","handleClick","isDisabled","SvgRefresh","RefreshButton","RefreshIcon","SvgLoader","Loader","useTranslation","LoaderIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAMA,KAAW,CAACC,MAA0B,gBAAAC,EAAM,cAAc,OAAOC,EAAA,EAAE,SAAS,aAAa,MAAM,QAAQ,OAAO,gCAAiCF,IAAyB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,i5CAAi5C,MAAM,eAAc,CAAE,CAAC,GCAjnDE,IAAW,CAACH,MAA0B,gBAAAC,EAAM,cAAc,OAAOC,EAAA,EAAE,SAAS,aAAa,MAAM,QAAQ,OAAO,gCAAiCF,IAAyB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,siBAAsiB,MAAM,eAAc,CAAE,CAAC,GCAtwBG,KAAa,CAACJ,MAA0B,gBAAAC,EAAM,cAAc,OAAOC,EAAA,EAAE,SAAS,aAAa,MAAM,QAAQ,OAAO,gCAAiCF,IAAyB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,++CAA++C,MAAM,eAAc,CAAE,CAAC,GCAjtDI,KAAa,CAACL,MAA0B,gBAAAC,EAAM,cAAc,OAAOC,EAAA,EAAE,SAAS,aAAa,MAAM,QAAQ,OAAO,gCAAiCF,IAAyB,gBAAAC,EAAM,cAAc,KAAK,EAAE,IAAI,cAAa,GAAoB,gBAAAA,EAAM,cAAc,QAAQ,EAAE,IAAI,UAAU,GAAG,wOAAwO,MAAM,eAAc,CAAE,CAAC,CAAC;;GCUzhBK,KAAuD;AAAA,EAC3D,KAAKC;AAAAA,EACL,KAAKC;AAAAA,EACL,OAAOA;AAAAA,EACP,SAASC;AAAAA,EACT,SAASC;AACX,GAOMC,KAAe,CAACC,MAAyD;AAAzD,MAAAC,IAAAD,GAAE,YAAAE,GAAU,WAAAC,MAAZF,GAA0Bb,IAAAgB,EAA1BH,GAA0B,CAAxB,YAAU;AAChC,QAAMI,IAAOX,GAAMQ,CAAQ;AAE3B,SACE,gBAAAI;AAAA,IAACD;AAAA,IAAAE,EAAAjB,EAAA;AAAA,MACC,MAAK;AAAA,OACDF,IAFL;AAAA,MAGC,WAAWoB,EAAKC,GAAO,MAAMN,CAAS;AAAA,IAAA;AAAA,EAAA;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCGMO,IAAY,SAEZC,KAAsC;AAAA,EAC1C,CAACD,CAAS,GAAGE;AAAA,EACb,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAIC;AACN,GAEMC,IAAOC,EAAe;AAAA,EAC1B,aAAa9B;AAAA,EACb,OAAO;AAAA,EACP,cAAc;AAAA,EACd,eAAe;AAAA,IACb,aAAa;AAAA;AAAA,IACb,QAAQ,CAAC+B,GAAgBC,GAAiBC,MAAiB;AACzD,UAAID,MAAW,kBAAkBD,aAAiB,MAAM;AACtD,cAAM,EAAE,CAACE,KAAA,OAAAA,IAAOjC,CAAS,GAAGkC,MAAWjC;AACvC,eAAOkC,EAAoBJ,GAAO,EAAE,WAAW,IAAM,QAAAG,GAAQ;AAAA,MAC/D;AAEA,aAAO,OAAOH,CAAK;AAAA,IACrB;AAAA,EAAA;AAAA,EAEF,WAAW;AAAA,IACT,QAAQ,CAAA;AAAA,IACR,OAAO,CAAA;AAAA,EAAC;AAAA,EAEV,WAAW;AAAA,IACT,CAAC/B,CAAS,GAAG;AAAA,MACX,aAAaoC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,IAEf,IAAI;AAAA,MACF,aAAaC;AAAA,IAAA;AAAA,EACf;AAEJ,CAAC;AAEInC,EACF,IAAIoC,CAAgB,EACpB,KAAA;AC/KH,MAAMC,KAA0E;AAAA,EAC9E,KAAK;AAAA,EACL,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;AAEA,SAAwBC,EAAY,EAAE,UAAA3E,GAAU,QAAA4E,KAA8B;AAC5E,MAAI5E,MAAa,OAAO;AACtB,UAAM6E,IAAKC,EAAOF,CAAM;AAExB,WAAOvC,EAAK,EAAE,yBAAyB;AAAA,MACrC,SAASwC,EAAG,QAAQ;AAAA,MACpB,IAAIA,EAAG,GAAG;AAAA,IAAA,CACX;AAAA,EACH;AAEA,SAAOxC,EAAK,EAAE,qBAAqB,EAAE,QAAQqC,GAAgB1E,CAAQ,GAAG;AAC1E;;;;;;;;GCPM+E,KAAW,CAAC,EAAE,QAAAH,QAClB,gBAAAxE,EAAC,SAAI,WAAWG,EAAO,UACpB,UAAAqE,EAAO,SACJvC,EAAK,EAAE,QAAQ,IACfA,EAAK,EAAE,oCAAoC;AAAA,EAC3C,MAAM,IAAI,KAAKuC,EAAO,WAAW;AACnC,CAAC,GACL,GAGII,KAAS,CAAoC,EAAE,OAAAC,GAAO,WAAAhF,GAAW,QAAA2E,GAAQ,UAAAM,QAC7E,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAAF;AAAA,IACA,WAAW3E;AAAA,MACTC,EAAO;AAAA,MACPqE,EAAO,UAAUrE,EAAO;AAAA,MACxBqE,EAAO,eAAerE,EAAO;AAAA,MAC7BN;AAAA,IAAA;AAAA,IAGF,UAAA;AAAA,MAAA,gBAAAG,EAAC,OAAA,EAAI,WAAWG,EAAO,cACrB,UAAA,gBAAAH;AAAA,QAACP;AAAA,QAAA;AAAA,UACC,UAAU+E,EAAO,OAAO;AAAA,UACxB,WAAWrE,EAAO;AAAA,QAAA;AAAA,MAAA,GAEtB;AAAA,MACA,gBAAA4E,EAAC,OAAA,EAAI,WAAW5E,EAAO,SACpB,UAAA;AAAA,QAAAoE,EAAWC,EAAO,MAAM;AAAA,QACzB,gBAAAxE,EAAC2E,MAAS,QAAAH,EAAA,CAAgB;AAAA,MAAA,GAC5B;AAAA,MACCM;AAAA,IAAA;AAAA,EAAA;AACH,GCrCIE,KAAY,CAAC,EAAE,OAAOC,GAAW,KAAKC,GAAS,OAAAL,GAAO,WAAAhF,QAAgC;AAC1F,QAAMsF,IAAQ,IAAI,KAAKF,CAAS,GAC1BG,IAAMF,IAAU,IAAI,KAAKA,CAAO,wBAAQ,KAAA,GACxC9D,IAAKiE,EAAyBD,GAAKD,CAAK,GACxCG,IAAWC,EAAmB,EAAE,OAAAJ,GAAO,KAAAC,GAAK;AAElD,2BACG,QAAA,EAAK,OAAAP,GAAc,WAAW3E,EAAK,aAAaL,CAAS,GACvD,UAAA;AAAA,IAAAyF,EAAS,SAASA,EAAS,QAAQ,sBAAK,QAAA,EAAM,UAAA;AAAA,MAAAA,EAAS;AAAA,MAAM,gBAAAtF,EAAC,UAAK,UAAA,IAAA,CAAC;AAAA,IAAA,EAAA,CAAO,IAAU;AAAA,IACtF,gBAAAA,EAAC,UAAM,UAAAoC,EAAO,IAAI,KAAKhB,CAAE,GAAG,OAAO,EAAA,CAAE;AAAA,EAAA,GACvC;AAEJ;;;;;;;;;GCdMoE,KAAc,OAmBdC,KAAU,CAAgG/F,MAOxE;AAPwE,MAAAC,IAAAD,GAC9G;AAAA,QAAAgG;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAA/F;AAAA,IACA,UAAAiF;AAAA,MAL8GnF,GAM3Gb,IAAAgB,EAN2GH,GAM3G;AAAA,IALH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAMkG,IAAc,OAAOD,KAAY,YACjCE,KAAMJ,KAAA,OAAAA,IAAMG,KAAc,WAAWL;AAE3C,SACE,gBAAAT;AAAA,IAACe;AAAA,IAAA7F,EAAAjB,EAAA;AAAA,MACC,SAAS6G,IAAc,MAAM;AAAE,QAAAD,EAAQD,CAAO;AAAA,MAAE,IAAI;AAAA,MACpD,WAAWzF,EAAKC,EAAO,MAAM0F,KAAe1F,EAAO,WAAWN,CAAS;AAAA,OACnEf,IAHL;AAAA,MAKC,UAAA;AAAA,QAAA,gBAAAiG,EAAC,QAAA,EAAK,WAAW5E,EAAO,SACtB,UAAA;AAAA,UAAA,gBAAAH,EAAC,QAAA,EACC,UAAA,gBAAA+E,EAACgB,GAAA,EAAM,MAAA9D,GACL,UAAA;AAAA,YAAA,gBAAAjC,EAAC,QAAA,EAAK,WAAU,iBAAgB,UAAA,iBAAa;AAAA,YAC5C,EAAE,YAAYuE,EAAWoB,EAAQ,MAAM,EAAA;AAAA,UAAE,EAAA,CAC5C,EAAA,CACF;AAAA,UACA,gBAAAZ,EAAC,QAAA,EAAK,WAAW5E,EAAO,YACtB,UAAA;AAAA,YAAA,gBAAAH,EAAC,UAAK,WAAWG,EAAO,WACrB,UAAA8B,EAAK,EAAE,0BAA0B;AAAA,cAChC,MAAM,IAAI,KAAK0D,EAAQ,SAAS;AAAA,YAAA,CACjC,GACH;AAAA,YACCA,EAAQ,UAAU,WAAWA,EAAQ,WAElC,gBAAA3F,EAAC,QAAA,EAAK,WAAWG,EAAO,UACrB,UAAA8B,EAAK,EAAE,UAAU,GACpB,IAEA;AAAA,UAAA,EAAA,CACN;AAAA,QAAA,GACF;AAAA,QACC0D,EAAQ,UAAU,UAEf,gBAAA3F;AAAA,UAACgF;AAAA,UAAA;AAAA,YACC,WAAW7E,EAAO;AAAA,YAClB,OAAO,IAAI,KAAKwF,EAAQ,SAAS;AAAA,YACjC,KAAKA,EAAQ,QAAQ,IAAI,KAAKA,EAAQ,KAAK,IAAI;AAAA,UAAA;AAAA,QAAA,sBAIhD,QAAA,EAAK,WAAWxF,EAAO,QAAS,UAAA8B,EAAK,EAAE,QAAQ,EAAA,CAAE;AAAA,QAErD6C;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;;;GCrEMkB,KAAqB,CAAoCtG,MAAoG;AAApG,MAAAC,IAAAD,GAAE,UAAA8E,GAAQ,SAASyB,GAAiB,WAAApG,GAAW,UAAAiF,MAA/CnF,GAA4Db,IAAAgB,EAA5DH,GAA4D,CAA1D,UAAQ,WAA0B,aAAW;AAC5G,QAAMuG,IAAc,MAAM;AACxB,IAAI1B,EAAO,gBAAayB,KAAA,QAAAA,EAAkBzB;AAAA,EAC5C,GAEM2B,IAAa,CAAC3B,EAAO;AAE3B,SACE,gBAAAxE;AAAA,IAAC;AAAA,IAAAC,EAAAjB,EAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAUmH;AAAA,MACV,WAAWjG;AAAA,QACTC,EAAO;AAAA,QACPqE,EAAO,UAAUrE,EAAO;AAAA,QACxBqE,EAAO,eAAerE,EAAO;AAAA,QAC7BN;AAAA,MAAA;AAAA,MAEF,SAASqG;AAAA,OACLpH,IAVL;AAAA,MAYE,UAAAgG,KAAA,OAAAA,IAAY7C,EAAK,EAAE,SAAS;AAAA,IAAA;AAAA,EAAA;AAGnC,GClCMmE,KAAa,CAACtH,MAA0B,gBAAAC,EAAM,cAAc,OAAOC,EAAA,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,GAAG,eAAe,SAAS,gBAAgB,SAAS,WAAW,qDAAsDF,IAAyB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,qDAAoD,CAAE,GAAmB,gBAAAA,EAAM,cAAc,QAAQ,EAAE,GAAG,aAAY,CAAE,GAAmB,gBAAAA,EAAM,cAAc,QAAQ,EAAE,GAAG,sDAAqD,CAAE,GAAmB,gBAAAA,EAAM,cAAc,QAAQ,EAAE,GAAG,YAAW,CAAE,CAAC;;;GCM9pBsH,KAAgB,CAAC3G,MAAgC;AAAhC,MAAAC,IAAAD,GAAE,aAAAG,GAAW,UAAAiF,MAAbnF,GAA0Bb,IAAAgB,EAA1BH,GAA0B,CAAxB,aAAW;AAClC,yBAAAK,EAAC,UAAAC,EAAAjB,EAAA,EAAO,WAAWkB,EAAKC,EAAO,MAAMN,CAAS,KAAOf,IAApD,EACE,UAAAgG,KAAA,OAAAA,sBAAawB,IAAA,EAAY,WAAWnG,EAAO,KAAA,CAAM,EAAA,EACpD;AAAA,GCTIoG,KAAY,CAACzH,MAA0B,gBAAAC,EAAM,cAAc,OAAOC,EAAA,EAAE,OAAO,8BAA8B,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,GAAG,eAAe,SAAS,gBAAgB,SAAS,WAAW,2DAA4DF,IAAyB,gBAAAC,EAAM,cAAc,QAAQ,EAAE,GAAG,8BAA6B,CAAE,CAAC;;;GCQ9ZyH,KAAS,CAAC,EAAE,UAAA1B,QAA4B;AAC5C,QAAM,EAAE,EAAA,IAAM2B,EAAA;AAEd,2BACG,OAAA,EAAI,MAAK,UAAS,cAAY,EAAE,YAAY,GAAG,WAAWtG,EAAO,MAC/D,UAAA2E,KAAA,OAAAA,IAAY,gBAAA9E,EAAC0G,MAAW,WAAWvG,EAAO,MAAM,GACnD;AAEJ;"}
1
+ {"version":3,"file":"index-3Jr_M3Ae.js","sources":["../lib/icons/globe.svg?react","../lib/icons/apple.svg?react","../lib/icons/android.svg?react","../lib/icons/windows.svg?react","../lib/components/PlatformIcon/index.tsx","../lib/i18n.ts","../lib/deviceType.ts","../lib/components/Device/index.tsx","../lib/components/Stopwatch/index.tsx","../lib/components/Session/index.tsx","../lib/components/SmartConnectButton/index.tsx","../lib/icons/refresh.svg?react","../lib/components/RefreshButton/index.tsx","../lib/icons/loader.svg?react","../lib/components/Loader/index.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgGlobe = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.9167 14.4917C14.7001 13.8251 14.0751 13.3334 13.3334 13.3334H12.5001V10.8334C12.5001 10.6124 12.4123 10.4004 12.256 10.2442C12.0997 10.0879 11.8878 10.0001 11.6667 10.0001H6.66675V8.33341H8.33341C8.55443 8.33341 8.76639 8.24562 8.92267 8.08934C9.07895 7.93306 9.16675 7.7211 9.16675 7.50008V5.83341H10.8334C11.2754 5.83341 11.6994 5.65782 12.0119 5.34526C12.3245 5.0327 12.5001 4.60878 12.5001 4.16675V3.82508C13.4971 4.22705 14.382 4.86464 15.0788 5.68328C15.7756 6.50191 16.2637 7.4772 16.5012 8.52567C16.7387 9.57414 16.7187 10.6646 16.4427 11.7036C16.1668 12.7426 15.6432 13.6993 14.9167 14.4917ZM9.16675 16.6084C5.87508 16.2001 3.33341 13.4001 3.33341 10.0001C3.33341 9.48341 3.40008 8.98341 3.50841 8.50841L7.50008 12.5001V13.3334C7.50008 13.7754 7.67568 14.1994 7.98824 14.5119C8.3008 14.8245 8.72472 15.0001 9.16675 15.0001M10.0001 1.66675C8.90573 1.66675 7.8221 1.8823 6.81105 2.30109C5.80001 2.71987 4.88135 3.3337 4.10752 4.10752C2.54472 5.67033 1.66675 7.78994 1.66675 10.0001C1.66675 12.2102 2.54472 14.3298 4.10752 15.8926C4.88135 16.6665 5.80001 17.2803 6.81105 17.6991C7.8221 18.1179 8.90573 18.3334 10.0001 18.3334C12.2102 18.3334 14.3298 17.4554 15.8926 15.8926C17.4554 14.3298 18.3334 12.2102 18.3334 10.0001C18.3334 8.90573 18.1179 7.8221 17.6991 6.81105C17.2803 5.80001 16.6665 4.88135 15.8926 4.10752C15.1188 3.3337 14.2002 2.71987 13.1891 2.30109C12.1781 1.8823 11.0944 1.66675 10.0001 1.66675Z\", fill: \"currentColor\" }));\nexport default SvgGlobe;\n","import * as React from \"react\";\nconst SvgApple = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.2084 16.9C13.3917 17.6917 12.5001 17.5667 11.6417 17.1917C10.7334 16.8083 9.90005 16.7917 8.94172 17.1917C7.74172 17.7083 7.10839 17.5583 6.39172 16.9C2.32506 12.7083 2.92506 6.325 7.54172 6.09167C8.66672 6.15 9.45006 6.70833 10.1084 6.75833C11.0917 6.55833 12.0334 5.98333 13.0834 6.05833C14.3417 6.15833 15.2917 6.65833 15.9167 7.55833C13.3167 9.11667 13.9334 12.5417 16.3167 13.5C15.8417 14.75 15.2251 15.9917 14.2001 16.9083L14.2084 16.9ZM10.0251 6.04167C9.90005 4.18333 11.4084 2.65 13.1417 2.5C13.3834 4.65 11.1917 6.25 10.0251 6.04167Z\", fill: \"currentColor\" }));\nexport default SvgApple;\n","import * as React from \"react\";\nconst SvgAndroid = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.833252 15C0.958252 13.5139 1.41325 12.1458 2.19825 10.8958C2.98325 9.64583 4.02825 8.65278 5.33325 7.91667L3.79159 5.25C3.70825 5.125 3.68742 4.99306 3.72909 4.85417C3.77075 4.71528 3.86103 4.61111 3.99992 4.54167C4.11103 4.47222 4.23603 4.45833 4.37492 4.5C4.51381 4.54167 4.62492 4.625 4.70825 4.75L6.24992 7.41667C7.44436 6.91667 8.69436 6.66667 9.99992 6.66667C11.3055 6.66667 12.5555 6.91667 13.7499 7.41667L15.2916 4.75C15.3749 4.625 15.486 4.54167 15.6249 4.5C15.7638 4.45833 15.8888 4.47222 15.9999 4.54167C16.1388 4.61111 16.2291 4.71528 16.2708 4.85417C16.3124 4.99306 16.2916 5.125 16.2083 5.25L14.6666 7.91667C15.9721 8.65278 17.0171 9.64583 17.8016 10.8958C18.586 12.1458 19.041 13.5139 19.1666 15H0.833252ZM5.83325 12.7083C6.12492 12.7083 6.37159 12.6075 6.57325 12.4058C6.77492 12.2042 6.87547 11.9578 6.87492 11.6667C6.87492 11.375 6.77409 11.1283 6.57242 10.9267C6.37075 10.725 6.12436 10.6244 5.83325 10.625C5.54159 10.625 5.29492 10.7258 5.09325 10.9275C4.89159 11.1292 4.79103 11.3756 4.79159 11.6667C4.79159 11.9583 4.89242 12.205 5.09409 12.4067C5.29575 12.6083 5.54214 12.7089 5.83325 12.7083ZM14.1666 12.7083C14.4583 12.7083 14.7049 12.6075 14.9066 12.4058C15.1083 12.2042 15.2088 11.9578 15.2083 11.6667C15.2083 11.375 15.1074 11.1283 14.9058 10.9267C14.7041 10.725 14.4577 10.6244 14.1666 10.625C13.8749 10.625 13.6283 10.7258 13.4266 10.9275C13.2249 11.1292 13.1244 11.3756 13.1249 11.6667C13.1249 11.9583 13.2258 12.205 13.4274 12.4067C13.6291 12.6083 13.8755 12.7089 14.1666 12.7083Z\", fill: \"currentColor\" }));\nexport default SvgAndroid;\n","import * as React from \"react\";\nconst SvgWindows = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 37 36\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"Device Icon\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector\", d: \"M5.21561 8.2185L16.2811 6.6945V17.385H5.21411V8.22L5.21561 8.2185ZM5.21561 27.7815L16.2811 29.307V18.747H5.21411L5.21561 27.7815ZM17.4976 29.469L32.2156 31.5V18.747H17.4976V29.469ZM17.4976 6.531V17.385H32.2156V4.5L17.4976 6.531Z\", fill: \"currentColor\" })));\nexport default SvgWindows;\n","import clsx from 'clsx'\nimport IconGlobe from '@/icons/globe.svg?react'\nimport IconApple from '@/icons/apple.svg?react'\nimport IconAndroid from '@/icons/android.svg?react'\nimport IconWindows from '@/icons/windows.svg?react'\nimport styles from './PlatformIcon.module.css'\nimport type { ComponentType, SVGProps } from 'react'\nimport type { DeviceInfo } from 'cobrowse-agent-sdk'\n\ntype IconComponent = ComponentType<SVGProps<SVGSVGElement>>\n\nconst ICONS: Record<DeviceInfo['platform'], IconComponent> = {\n web: IconGlobe,\n ios: IconApple,\n macos: IconApple,\n android: IconAndroid,\n windows: IconWindows\n}\n\nexport interface PlatformIconProps extends SVGProps<SVGSVGElement> {\n platform: DeviceInfo['platform']\n className?: string\n}\n\nconst PlatformIcon = ({ platform, className, ...props }: PlatformIconProps) => {\n const Icon = ICONS[platform]\n\n return (\n <Icon\n fill='currentColor'\n {...props}\n className={clsx(styles.root, className)}\n />\n )\n}\n\nexport default PlatformIcon\n","import { createInstance } from 'i18next'\nimport { initReactI18next } from 'react-i18next'\nimport { formatDistanceToNow } from 'date-fns'\nimport type { Locale } from 'date-fns'\nimport {\n enUS, ar, cs, da, de, es, et, fi, fr, hi, it, ja, ko, lt, ms, nl, pl, pt, ro, ru, sk, sl, sv, th, uk, vi, zhCN\n} from 'date-fns/locale'\nimport localeEnUS from './locales/en-us/translation.json'\nimport localeAr from './locales/ar/translation.json'\nimport localeCs from './locales/cs/translation.json'\nimport localeDa from './locales/da/translation.json'\nimport localeDe from './locales/de/translation.json'\nimport localeEs from './locales/es/translation.json'\nimport localeEt from './locales/et/translation.json'\nimport localeFi from './locales/fi/translation.json'\nimport localeFr from './locales/fr/translation.json'\nimport localeHi from './locales/hi/translation.json'\nimport localeIt from './locales/it/translation.json'\nimport localeJa from './locales/ja/translation.json'\nimport localeKk from './locales/kk/translation.json'\nimport localeKo from './locales/ko/translation.json'\nimport localeLt from './locales/lt/translation.json'\nimport localeMr from './locales/mr/translation.json'\nimport localeMs from './locales/ms/translation.json'\nimport localeNl from './locales/nl/translation.json'\nimport localePl from './locales/pl/translation.json'\nimport localePt from './locales/pt/translation.json'\nimport localeRo from './locales/ro/translation.json'\nimport localeRu from './locales/ru/translation.json'\nimport localeSk from './locales/sk/translation.json'\nimport localeSl from './locales/sl/translation.json'\nimport localeSv from './locales/sv/translation.json'\nimport localeTh from './locales/th/translation.json'\nimport localeUk from './locales/uk/translation.json'\nimport localeVi from './locales/vi/translation.json'\nimport localeZh from './locales/zh/translation.json'\n\nconst englishUS = 'en-us'\n\nconst dateLocales: Record<string, Locale> = {\n [englishUS]: enUS,\n ar,\n cs,\n da,\n de,\n es,\n et,\n fi,\n fr,\n hi,\n it,\n ja,\n ko,\n lt,\n ms,\n nl,\n pl,\n pt,\n ro,\n ru,\n sk,\n sl,\n sv,\n th,\n uk,\n vi,\n zh: zhCN\n}\n\nconst i18n = createInstance({\n fallbackLng: englishUS,\n debug: import.meta.env.DEV,\n lowerCaseLng: true,\n interpolation: {\n escapeValue: false, // not needed for react as it escapes by default\n format: (value: unknown, format?: string, lng?: string) => {\n if (format === 'dateRelative' && value instanceof Date) {\n const { [lng ?? englishUS]: locale } = dateLocales\n return formatDistanceToNow(value, { addSuffix: true, locale })\n }\n\n return String(value)\n }\n },\n detection: {\n caches: [],\n order: []\n },\n resources: {\n [englishUS]: {\n translation: localeEnUS\n },\n ar: {\n translation: localeAr\n },\n cs: {\n translation: localeCs\n },\n da: {\n translation: localeDa\n },\n de: {\n translation: localeDe\n },\n es: {\n translation: localeEs\n },\n et: {\n translation: localeEt\n },\n fi: {\n translation: localeFi\n },\n fr: {\n translation: localeFr\n },\n hi: {\n translation: localeHi\n },\n it: {\n translation: localeIt\n },\n ja: {\n translation: localeJa\n },\n kk: {\n translation: localeKk\n },\n ko: {\n translation: localeKo\n },\n lt: {\n translation: localeLt\n },\n mr: {\n translation: localeMr\n },\n ms: {\n translation: localeMs\n },\n nl: {\n translation: localeNl\n },\n pl: {\n translation: localePl\n },\n pt: {\n translation: localePt\n },\n ro: {\n translation: localeRo\n },\n ru: {\n translation: localeRu\n },\n sk: {\n translation: localeSk\n },\n sl: {\n translation: localeSl\n },\n sv: {\n translation: localeSv\n },\n th: {\n translation: localeTh\n },\n uk: {\n translation: localeUk\n },\n vi: {\n translation: localeVi\n },\n zh: {\n translation: localeZh\n }\n }\n})\n\nvoid i18n\n .use(initReactI18next)\n .init()\n\nexport default i18n\n","import type { DeviceInfo as FullDeviceInfo } from 'cobrowse-agent-sdk'\nimport parser from 'ua-parser-js'\nimport i18n from '@/i18n'\n\nexport type DeviceInfo = Pick<FullDeviceInfo, 'platform' | 'device'>\n\nconst PLATFORM_LABELS: Record<Exclude<DeviceInfo['platform'], 'web'>, string> = {\n ios: 'iOS',\n android: 'Android',\n windows: 'Windows',\n macos: 'macOS'\n}\n\nexport default function deviceType ({ platform, device }: DeviceInfo): string {\n if (platform === 'web') {\n const ua = parser(device)\n\n return i18n.t('{{browser}} on {{os}}', {\n browser: ua.browser.name,\n os: ua.os.name\n })\n }\n\n return i18n.t('{{device}} Device', { device: PLATFORM_LABELS[platform] })\n}\n","import type { CSSProperties, ReactNode } from 'react'\nimport type { Device as FullDevice } from 'cobrowse-agent-sdk'\nimport deviceType, { type DeviceInfo } from '@/deviceType'\nimport clsx from 'clsx'\nimport i18n from '@/i18n'\nimport PlatformIcon from '@/components/PlatformIcon'\nimport styles from './Device.module.css'\n\nexport type DeviceData = Pick<FullDevice, 'id' | 'online' | 'connectable' | 'last_active'> & { device: DeviceInfo }\n\nexport interface DeviceProps<T extends DeviceData = DeviceData> {\n style?: CSSProperties\n className?: string\n device: T\n children?: ReactNode\n}\n\nconst LastSeen = ({ device }: { device: DeviceData }) => (\n <div className={styles.lastSeen}>\n {device.online\n ? i18n.t('Online')\n : i18n.t('Last seen {{date, dateRelative}}', {\n date: new Date(device.last_active)\n })}\n </div>\n)\n\nconst Device = <T extends DeviceData = DeviceData>({ style, className, device, children }: DeviceProps<T>) => (\n <div\n style={style}\n className={clsx(\n styles.root,\n device.online && styles.online,\n device.connectable && styles.connectable,\n className\n )}\n >\n <div className={styles.deviceStatus}>\n <PlatformIcon\n platform={device.device.platform}\n className={styles.platformIcon}\n />\n </div>\n <div className={styles.details}>\n {deviceType(device.device)}\n <LastSeen device={device} />\n </div>\n {children}\n </div>\n)\n\nexport default Device\n","import clsx from 'clsx'\nimport { differenceInMilliseconds, intervalToDuration, format } from 'date-fns'\nimport type { CSSProperties } from 'react'\n\nexport interface StopwatchProps {\n start: Date | number | string\n end?: Date | number | string\n style?: CSSProperties\n className?: string\n}\n\nconst Stopwatch = ({ start: startProp, end: endProp, style, className }: StopwatchProps) => {\n const start = new Date(startProp)\n const end = endProp ? new Date(endProp) : new Date()\n const ms = differenceInMilliseconds(end, start)\n const duration = intervalToDuration({ start, end })\n\n return (\n <span style={style} className={clsx('Stopwatch', className)}>\n {duration.hours && duration.hours > 0 ? <span>{duration.hours}<span>:</span></span> : null}\n <span>{format(new Date(ms), 'mm:ss')}</span>\n </span>\n )\n}\n\nexport default Stopwatch\n","import type { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react'\nimport type { Session as FullSession } from 'cobrowse-agent-sdk'\nimport deviceType, { type DeviceInfo } from '@/deviceType'\nimport clsx from 'clsx'\nimport Stopwatch from '@/components/Stopwatch'\nimport i18n from '@/i18n'\nimport { Trans } from 'react-i18next'\nimport styles from './Session.module.css'\n\nconst DEFAULT_TAG = 'div' as const\n\ntype PropsOf<T extends ElementType> = ComponentPropsWithoutRef<T>\n\nexport type SessionData = Pick<FullSession, 'id' | 'state' | 'recorded' | 'activated' | 'ended'> & { device: DeviceInfo }\n\ninterface BaseSessionProps<TSession extends SessionData = SessionData> {\n session: TSession\n className?: string\n children?: ReactNode\n}\n\nexport type SessionProps<TSession extends SessionData = SessionData, TElement extends ElementType = typeof DEFAULT_TAG> =\n BaseSessionProps<TSession> &\n Omit<PropsOf<TElement>, 'onClick'> & {\n as?: TElement\n onClick?: (session: TSession) => void\n }\n\nconst Session = <TSession extends SessionData = SessionData, TElement extends ElementType = typeof DEFAULT_TAG>({\n as,\n session,\n onClick,\n className,\n children,\n ...props\n}: SessionProps<TSession, TElement>) => {\n const isClickable = typeof onClick === 'function'\n const Tag = as ?? isClickable ? 'button' : DEFAULT_TAG\n\n return (\n <Tag\n onClick={isClickable ? () => { onClick(session) } : undefined}\n className={clsx(styles.root, isClickable && styles.clickable, className)}\n {...props}\n >\n <span className={styles.details}>\n <span>\n <Trans i18n={i18n}>\n <span className='device-prefix'>Connected to </span>\n {{ deviceType: deviceType(session.device) }}\n </Trans>\n </span>\n <span className={styles.subdetails}>\n <span className={styles.activated}>\n {i18n.t('{{date, dateRelative}}', {\n date: new Date(session.activated)\n })}\n </span>\n {session.state === 'ended' && session.recorded\n ? (\n <span className={styles.recorded}>\n {i18n.t('Recorded')}\n </span>\n )\n : null}\n </span>\n </span>\n {session.state === 'ended'\n ? (\n <Stopwatch\n className={styles.duration}\n start={new Date(session.activated)}\n end={session.ended ? new Date(session.ended) : undefined}\n />\n )\n : (\n <span className={styles.active}>{i18n.t('Active')}</span>\n )}\n {children}\n </Tag>\n )\n}\n\nexport default Session\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport i18n from '@/i18n'\nimport clsx from 'clsx'\nimport styles from './SmartConnectButton.module.css'\nimport type { DeviceData } from '@/components/Device'\n\nexport interface SmartConnectButtonProps<T extends DeviceData = DeviceData> extends Omit<ComponentPropsWithoutRef<'button'>, 'onClick'> {\n device: T\n onClick?: (device: T) => void\n children?: ReactNode\n}\n\nconst SmartConnectButton = <T extends DeviceData = DeviceData>({ device, onClick: onClickCallback, className, children, ...props }: SmartConnectButtonProps<T>) => {\n const handleClick = () => {\n if (device.connectable) onClickCallback?.(device)\n }\n\n const isDisabled = !device.connectable\n\n return (\n <button\n type='button'\n disabled={isDisabled}\n className={clsx(\n styles.root,\n device.online && styles.online,\n device.connectable && styles.connectable,\n className\n )}\n onClick={handleClick}\n {...props}\n >\n {children ?? i18n.t('Connect')}\n </button>\n )\n}\n\nexport default SmartConnectButton\n","import * as React from \"react\";\nconst SvgRefresh = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\", className: \"lucide lucide-refresh-cw-icon lucide-refresh-cw\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 3v5h-5\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 16H3v5\" }));\nexport default SvgRefresh;\n","import clsx from 'clsx'\nimport type { ComponentPropsWithoutRef } from 'react'\nimport RefreshIcon from '@/icons/refresh.svg?react'\nimport styles from './RefreshButton.module.css'\n\nexport interface RefreshButtonProps extends ComponentPropsWithoutRef<'button'> {}\n\nconst RefreshButton = ({ className, children, ...props }: RefreshButtonProps) => (\n <button className={clsx(styles.root, className)} {...props}>\n {children ?? <RefreshIcon className={styles.icon} />}\n </button>\n)\n\nexport default RefreshButton\n","import * as React from \"react\";\nconst SvgLoader = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", fill: \"none\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\", className: \"lucide lucide-loader-circle-icon lucide-loader-circle\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\" }));\nexport default SvgLoader;\n","import type { ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport LoaderIcon from '@/icons/loader.svg?react'\nimport styles from './Loader.module.css'\n\nexport interface LoaderProps {\n children?: ReactNode\n}\n\nconst Loader = ({ children }: LoaderProps) => {\n const { t } = useTranslation()\n\n return (\n <div role='status' aria-label={t('Loading...')} className={styles.root}>\n {children ?? <LoaderIcon className={styles.icon} />}\n </div>\n )\n}\n\nexport default Loader\n"],"names":["SvgGlobe","props","React","__spreadValues","SvgApple","SvgAndroid","SvgWindows","ICONS","IconGlobe","IconApple","IconAndroid","IconWindows","PlatformIcon","_a","_b","platform","className","__objRest","Icon","jsx","__spreadProps","clsx","styles","englishUS","dateLocales","enUS","ar","cs","da","de","es","et","fi","fr","hi","it","ja","ko","lt","ms","nl","pl","pt","ro","ru","sk","sl","sv","th","uk","vi","zhCN","i18n","createInstance","value","format","lng","locale","formatDistanceToNow","localeEnUS","localeAr","localeCs","localeDa","localeDe","localeEs","localeEt","localeFi","localeFr","localeHi","localeIt","localeJa","localeKk","localeKo","localeLt","localeMr","localeMs","localeNl","localePl","localePt","localeRo","localeRu","localeSk","localeSl","localeSv","localeTh","localeUk","localeVi","localeZh","initReactI18next","PLATFORM_LABELS","deviceType","device","ua","parser","LastSeen","Device","style","children","jsxs","Stopwatch","startProp","endProp","start","end","differenceInMilliseconds","duration","intervalToDuration","DEFAULT_TAG","Session","as","session","onClick","isClickable","Tag","Trans","SmartConnectButton","onClickCallback","handleClick","isDisabled","SvgRefresh","RefreshButton","RefreshIcon","SvgLoader","Loader","useTranslation","LoaderIcon"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as e, Fragment as N, jsxs as d } from "react/jsx-runtime";
2
2
  import c from "clsx";
3
3
  import { TabGroup as S, TabList as A, Tab as f, TabPanels as E, TabPanel as v } from "@headlessui/react";
4
4
  import { useTranslation as m } from "react-i18next";
5
- import { L as P, D, a as j, S as C, R as V } from "./index-CB-5iZZ3.js";
5
+ import { L as P, D, a as j, S as C, R as V } from "./index-3Jr_M3Ae.js";
6
6
  const w = ({ devices: t, onConnectClick: s, smartConnectButtonClassName: n, loader: l }) => {
7
7
  const { t: o } = m();
8
8
  return t === null ? /* @__PURE__ */ e(P, { children: l }) : t.length === 0 ? /* @__PURE__ */ e("p", { children: o("No devices") }) : /* @__PURE__ */ e(N, { children: t.map((a) => /* @__PURE__ */ e(D, { device: a, children: /* @__PURE__ */ e(
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "cobrowse-agent-ui",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "vite build",
8
8
  "preview": "vite preview",
9
9
  "prepare": "npm run build",
10
- "i18n": "i18next 'lib/**/*{.js,.jsx,.ts,.tsx}'",
10
+ "i18n": "i18next-cli extract",
11
11
  "typecheck": "tsc -p tsconfig.json --noEmit",
12
- "lint": "eslint . --ext .js,.jsx,.ts,.tsx"
12
+ "lint": "eslint . --ext .js,.jsx,.ts,.tsx && i18next-cli lint --quiet"
13
13
  },
14
14
  "main": "./dist/cobrowse-agent-ui.js",
15
15
  "module": "./dist/cobrowse-agent-ui.js",
@@ -59,7 +59,7 @@
59
59
  "eslint-config-love": "^136.0.0",
60
60
  "eslint-plugin-react": "^7.37.5",
61
61
  "eslint-plugin-react-hooks": "^7.0.1",
62
- "i18next-parser": "^9.3.0",
62
+ "i18next-cli": "^1.42.9",
63
63
  "react": "^19.0.0",
64
64
  "react-dom": "^19.0.0",
65
65
  "typescript": "^5.9.3",