@jokkoo/sdk-react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles/tokens.css","../src/styles/panel.css","../src/styles/list.css","../src/styles/avatar.css","../src/styles/conversation.css"],"sourcesContent":[".jokkoo-widget {\n --jk-color-primary: #1c1c1c;\n --jk-color-background: #ffffff;\n --jk-color-surface: #f5f6f8;\n --jk-color-border: #e4e4e8;\n --jk-color-text: #1c1c1c;\n --jk-color-text-secondary: #8a8a9a;\n --jk-color-on-primary: #ffffff;\n --jk-color-user-bubble: #1c1c1c;\n --jk-color-agent-bubble: #f5f6f8;\n --jk-color-status-blue-bg: #dbeafe;\n --jk-color-status-blue-text: #3b82f6;\n --jk-color-status-green-bg: #d1fae5;\n --jk-color-status-green-text: #10b981;\n --jk-color-resolved-bg: rgba(76, 175, 80, 0.08);\n --jk-color-resolved-text: #4caf50;\n --jk-color-header: #1c1c1c;\n --jk-color-header-text: #ffffff;\n --jk-color-unread: #ef4444;\n --jk-font-family: \"Montserrat\", system-ui, -apple-system, sans-serif;\n --jk-radius-panel: 20px;\n --jk-radius-bubble: 20px;\n --jk-radius-card: 16px;\n --jk-radius-badge: 8px;\n --jk-radius-input: 16px;\n --jk-z-floating: 2147483000;\n --jk-z-panel: 2147483001;\n box-sizing: border-box;\n font-family: var(--jk-font-family);\n color: var(--jk-color-text);\n -webkit-font-smoothing: antialiased;\n}\n\n.jokkoo-widget *,\n.jokkoo-widget *::before,\n.jokkoo-widget *::after {\n box-sizing: border-box;\n}\n\n.jokkoo-widget button {\n font-family: inherit;\n cursor: pointer;\n border: none;\n background: none;\n padding: 0;\n}\n\n.jokkoo-widget button:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n.jokkoo-widget textarea {\n font-family: inherit;\n}\n",".jokkoo-widget .jk-floating-btn {\n position: fixed;\n z-index: var(--jk-z-floating);\n display: inline-flex;\n align-items: center;\n gap: 12px;\n padding: 4px 16px 4px 4px;\n border-radius: 9999px;\n background: var(--jk-color-primary);\n color: var(--jk-color-on-primary);\n box-shadow: 0 8px 24px rgba(28, 28, 28, 0.22);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n\n.jokkoo-widget .jk-floating-btn:hover {\n transform: translateY(-1px);\n box-shadow: 0 10px 28px rgba(28, 28, 28, 0.28);\n}\n\n.jokkoo-widget .jk-floating-btn--bottom-right {\n right: 24px;\n bottom: 24px;\n}\n\n.jokkoo-widget .jk-floating-btn--bottom-left {\n left: 24px;\n bottom: 24px;\n}\n\n.jokkoo-widget .jk-floating-btn__icon {\n width: 44px;\n height: 44px;\n border-radius: 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(255, 255, 255, 0.15);\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-floating-btn__label {\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n white-space: nowrap;\n padding-right: 4px;\n}\n\n.jokkoo-widget .jk-floating-btn__badge {\n position: absolute;\n top: -2px;\n right: -2px;\n min-width: 20px;\n height: 20px;\n border-radius: 10px;\n background: var(--jk-color-unread);\n color: #fff;\n font-size: 11px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 4px;\n border: 2px solid var(--jk-color-background);\n}\n\n.jokkoo-widget .jk-panel {\n position: fixed;\n z-index: var(--jk-z-panel);\n right: 24px;\n bottom: 24px;\n width: 393px;\n max-width: calc(100vw - 32px);\n height: min(700px, 90vh);\n background: var(--jk-color-background);\n border-radius: var(--jk-radius-panel);\n box-shadow: 0 16px 48px rgba(28, 28, 28, 0.2);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: jk-panel-enter 0.28s ease;\n}\n\n.jokkoo-widget .jk-panel--expanded {\n right: 0;\n bottom: 0;\n width: 100vw;\n max-width: 100vw;\n height: 100vh;\n border-radius: 0;\n}\n\n@keyframes jk-panel-enter {\n from {\n opacity: 0;\n transform: translateY(16px) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n.jokkoo-widget .jk-panel-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 12px 16px 0;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-panel-header--dark {\n background: var(--jk-color-header);\n padding-bottom: 12px;\n}\n\n.jokkoo-widget .jk-icon-btn {\n width: 32px;\n height: 32px;\n border-radius: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--jk-color-surface);\n color: var(--jk-color-text);\n transition: background 0.15s ease;\n}\n\n.jokkoo-widget .jk-icon-btn:hover {\n background: var(--jk-color-border);\n}\n\n.jokkoo-widget .jk-icon-btn--dark {\n background: var(--jk-color-header-button, #404040);\n color: var(--jk-color-header-text);\n}\n\n.jokkoo-widget .jk-icon-btn--dark:hover {\n background: #505050;\n}\n\n.jokkoo-widget .jk-panel-body {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n",".jokkoo-widget .jk-request-list {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--jk-color-background);\n}\n\n.jokkoo-widget .jk-request-list__header {\n padding: 8px 24px 0;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-request-list__title {\n margin: 0;\n font-size: 24px;\n font-weight: 600;\n letter-spacing: -1px;\n line-height: 1.2;\n color: var(--jk-color-text);\n}\n\n.jokkoo-widget .jk-request-list__subtitle {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--jk-color-text-secondary);\n line-height: 16px;\n}\n\n.jokkoo-widget .jk-request-list__section {\n margin: 24px 0 8px;\n font-size: 12px;\n color: var(--jk-color-text-secondary);\n line-height: 16px;\n}\n\n.jokkoo-widget .jk-request-list__items {\n flex: 1;\n overflow-y: auto;\n padding: 0 24px 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.jokkoo-widget .jk-request-list__footer {\n padding: 8px 24px 24px;\n display: flex;\n justify-content: flex-end;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-request-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 9px 16px;\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-card);\n background: var(--jk-color-background);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.04);\n text-align: left;\n width: 100%;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.jokkoo-widget .jk-request-card:hover {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);\n}\n\n.jokkoo-widget .jk-request-card--unread {\n border-color: var(--jk-color-unread);\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.06);\n}\n\n.jokkoo-widget .jk-request-card__content {\n flex: 1;\n min-width: 0;\n}\n\n.jokkoo-widget .jk-request-card__row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n}\n\n.jokkoo-widget .jk-request-card__title {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n color: var(--jk-color-text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jokkoo-widget .jk-request-card__preview {\n margin: 6px 0 0;\n font-size: 12px;\n line-height: 16px;\n color: var(--jk-color-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jokkoo-widget .jk-request-card__preview--unread {\n color: var(--jk-color-text);\n font-weight: 600;\n}\n\n.jokkoo-widget .jk-request-card__time {\n display: flex;\n align-items: center;\n gap: 4px;\n margin-top: 8px;\n font-size: 12px;\n font-weight: 500;\n color: var(--jk-color-text-secondary);\n line-height: 16px;\n}\n\n.jokkoo-widget .jk-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 80px;\n gap: 8px;\n color: var(--jk-color-text-secondary);\n font-size: 12px;\n text-align: center;\n}\n\n.jokkoo-widget .jk-empty__retry {\n color: var(--jk-color-primary);\n font-size: 14px;\n font-weight: 600;\n}\n\n.jokkoo-widget .jk-spinner {\n width: 24px;\n height: 24px;\n border: 2px solid var(--jk-color-border);\n border-top-color: var(--jk-color-primary);\n border-radius: 50%;\n animation: jk-spin 0.7s linear infinite;\n}\n\n@keyframes jk-spin {\n to {\n transform: rotate(360deg);\n }\n}\n",".jokkoo-widget .jk-avatar {\n position: relative;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-avatar__circle {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: var(--jk-color-primary);\n color: var(--jk-color-on-primary);\n font-weight: 800;\n overflow: hidden;\n}\n\n.jokkoo-widget .jk-avatar__img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.jokkoo-widget .jk-avatar__unread {\n position: absolute;\n top: 0;\n right: 0;\n border-radius: 50%;\n background: var(--jk-color-unread);\n border: 2px solid var(--jk-color-background);\n}\n\n.jokkoo-widget .jk-status-badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: var(--jk-radius-badge);\n font-size: 11px;\n font-weight: 600;\n line-height: 16px;\n white-space: nowrap;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-status-badge--new,\n.jokkoo-widget .jk-status-badge--in-progress {\n background: var(--jk-color-status-blue-bg);\n color: var(--jk-color-status-blue-text);\n}\n\n.jokkoo-widget .jk-status-badge--resolved,\n.jokkoo-widget .jk-status-badge--ended {\n background: var(--jk-color-status-green-bg);\n color: var(--jk-color-status-green-text);\n}\n",".jokkoo-widget .jk-conversation {\n display: flex;\n flex-direction: column;\n height: 100%;\n background: var(--jk-color-background);\n}\n\n.jokkoo-widget .jk-conversation-header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 12px 16px 16px;\n background: var(--jk-color-header);\n color: var(--jk-color-header-text);\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-conversation-header__title {\n flex: 1;\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n line-height: 24px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jokkoo-widget .jk-conversation-header .jk-status-badge {\n margin-left: auto;\n}\n\n.jokkoo-widget .jk-messages {\n flex: 1;\n overflow-y: auto;\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 0;\n}\n\n.jokkoo-widget .jk-messages--new {\n justify-content: flex-end;\n}\n\n.jokkoo-widget .jk-bubble-row {\n display: flex;\n flex-direction: column;\n max-width: 78%;\n}\n\n.jokkoo-widget .jk-bubble-row--user {\n align-self: flex-end;\n align-items: flex-end;\n}\n\n.jokkoo-widget .jk-bubble-row--agent {\n align-self: flex-start;\n flex-direction: row;\n align-items: flex-start;\n gap: 8px;\n max-width: 100%;\n}\n\n.jokkoo-widget .jk-bubble-row__agent-body {\n display: flex;\n flex-direction: column;\n max-width: 78%;\n}\n\n.jokkoo-widget .jk-bubble-row__agent-name {\n font-size: 10.4px;\n font-weight: 600;\n color: var(--jk-color-text-secondary);\n margin-bottom: 4px;\n line-height: 16px;\n}\n\n.jokkoo-widget .jk-bubble {\n padding: 12px 16px;\n border-radius: var(--jk-radius-bubble);\n font-size: 12px;\n line-height: 16px;\n word-break: break-word;\n}\n\n.jokkoo-widget .jk-bubble--user {\n background: var(--jk-color-user-bubble);\n color: var(--jk-color-on-primary);\n border-bottom-right-radius: 4px;\n}\n\n.jokkoo-widget .jk-bubble--agent {\n background: var(--jk-color-agent-bubble);\n color: var(--jk-color-text);\n border-bottom-left-radius: 4px;\n}\n\n.jokkoo-widget .jk-bubble--welcome {\n background: transparent;\n padding: 0;\n font-size: 14px;\n line-height: 20px;\n color: var(--jk-color-text);\n}\n\n.jokkoo-widget .jk-bubble__time {\n margin-top: 3px;\n font-size: 10px;\n color: var(--jk-color-text-secondary);\n line-height: 15px;\n}\n\n.jokkoo-widget .jk-activity {\n align-self: stretch;\n text-align: center;\n padding: 8px 16px;\n color: var(--jk-color-text-secondary);\n font-size: 12px;\n line-height: 18px;\n}\n\n.jokkoo-widget .jk-activity__time {\n margin-top: 3px;\n font-size: 10px;\n opacity: 0.8;\n}\n\n.jokkoo-widget .jk-input-bar {\n border-top: 1px solid var(--jk-color-border);\n padding: 16px;\n background: var(--jk-color-background);\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-input-shell {\n display: flex;\n align-items: flex-end;\n gap: 4px;\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-input);\n padding: 9px;\n min-height: 54px;\n}\n\n.jokkoo-widget .jk-input-shell__field {\n flex: 1;\n display: flex;\n flex-direction: column;\n}\n\n.jokkoo-widget .jk-input-shell textarea {\n width: 100%;\n border: none;\n outline: none;\n resize: none;\n background: transparent;\n color: var(--jk-color-text);\n font-size: 13.6px;\n line-height: 18px;\n min-height: 36px;\n max-height: 120px;\n padding: 8px;\n}\n\n.jokkoo-widget .jk-input-shell__counter {\n font-size: 12px;\n color: var(--jk-color-text-secondary);\n text-align: right;\n padding: 0 8px;\n}\n\n.jokkoo-widget .jk-input-shell__counter--error {\n color: #ef4444;\n}\n\n.jokkoo-widget .jk-input-shell__icon {\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--jk-color-text-secondary);\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-resolved-banner {\n margin: 8px 16px 16px;\n padding: 16px;\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-card);\n background: var(--jk-color-resolved-bg);\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.jokkoo-widget .jk-resolved-banner__row {\n display: flex;\n align-items: center;\n gap: 10px;\n color: var(--jk-color-resolved-text);\n font-size: 12px;\n line-height: 18px;\n}\n\n.jokkoo-widget .jk-resolved-banner__icon {\n width: 28px;\n height: 28px;\n border-radius: 14px;\n background: var(--jk-color-status-green-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-resolved-banner__cta {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n align-self: center;\n padding: 10px 16px;\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-badge);\n font-size: 12px;\n font-weight: 600;\n color: var(--jk-color-text);\n}\n\n.jokkoo-widget .jk-new-msg-indicator {\n position: absolute;\n right: 16px;\n width: 44px;\n height: 44px;\n border-radius: 22px;\n background: var(--jk-color-primary);\n color: var(--jk-color-on-primary);\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);\n z-index: 2;\n}\n\n.jokkoo-widget .jk-new-msg-indicator__badge {\n position: absolute;\n top: -2px;\n right: -2px;\n min-width: 20px;\n height: 20px;\n border-radius: 10px;\n background: var(--jk-color-unread);\n border: 2px solid var(--jk-color-background);\n color: #fff;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 4px;\n}\n\n.jokkoo-widget .jk-satisfaction {\n padding: 16px;\n}\n\n.jokkoo-widget .jk-satisfaction__card {\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-card);\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n text-align: center;\n}\n\n.jokkoo-widget .jk-satisfaction__title {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--jk-color-text);\n}\n\n.jokkoo-widget .jk-satisfaction__desc {\n margin: 0;\n font-size: 12px;\n color: var(--jk-color-text-secondary);\n}\n\n.jokkoo-widget .jk-satisfaction__row {\n display: flex;\n justify-content: space-between;\n margin-top: 4px;\n}\n\n.jokkoo-widget .jk-satisfaction__btn {\n flex: 1;\n font-size: 28px;\n line-height: 34px;\n padding: 8px 0;\n transition: transform 0.15s ease;\n}\n\n.jokkoo-widget .jk-satisfaction__btn--selected {\n transform: scale(1.1);\n}\n\n.jokkoo-widget .jk-pending-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.jokkoo-widget .jk-pending-item {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 10px;\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-bubble);\n}\n\n.jokkoo-widget .jk-pending-item__thumb {\n width: 52px;\n height: 52px;\n border-radius: 12px;\n object-fit: cover;\n background: var(--jk-color-surface);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n overflow: hidden;\n}\n\n.jokkoo-widget .jk-pending-item__thumb img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.jokkoo-widget .jk-pending-item__details {\n flex: 1;\n min-width: 0;\n}\n\n.jokkoo-widget .jk-pending-item__name {\n font-size: 12px;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jokkoo-widget .jk-pending-item__status {\n font-size: 12px;\n margin-top: 2px;\n color: var(--jk-color-text-secondary);\n}\n\n.jokkoo-widget .jk-pending-item__status--error {\n color: #ef4444;\n}\n\n.jokkoo-widget .jk-pending-item__status--ready {\n color: var(--jk-color-primary);\n}\n\n.jokkoo-widget .jk-pending-item__progress {\n height: 4px;\n border-radius: 999px;\n background: var(--jk-color-border);\n margin-top: 6px;\n overflow: hidden;\n}\n\n.jokkoo-widget .jk-pending-item__progress-fill {\n height: 100%;\n background: var(--jk-color-primary);\n border-radius: 999px;\n}\n\n.jokkoo-widget .jk-pending-item__actions {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 8px;\n font-size: 12px;\n}\n\n.jokkoo-widget .jk-attachments {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 8px;\n}\n\n.jokkoo-widget .jk-attachments__img {\n width: 180px;\n height: 140px;\n border-radius: var(--jk-radius-bubble);\n object-fit: cover;\n}\n\n.jokkoo-widget .jk-attachments__doc {\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-bubble);\n padding: 10px 12px;\n max-width: 220px;\n background: var(--jk-color-background);\n text-align: left;\n}\n\n.jokkoo-widget .jk-attachments__doc-name {\n margin-top: 4px;\n font-size: 12px;\n color: var(--jk-color-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.jokkoo-widget .jk-voice-player {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 220px;\n}\n\n.jokkoo-widget .jk-voice-player__btn {\n width: 36px;\n height: 36px;\n border-radius: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.jokkoo-widget .jk-voice-player__content {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.jokkoo-widget .jk-voice-player__duration {\n font-size: 11px;\n line-height: 14px;\n}\n\n.jokkoo-widget .jk-waveform {\n display: flex;\n align-items: center;\n gap: 1.5px;\n flex: 1;\n}\n\n.jokkoo-widget .jk-waveform__bar {\n flex: 1;\n min-width: 2px;\n border-radius: 999px;\n}\n\n.jokkoo-widget .jk-voice-overlay {\n border-top: 1px solid var(--jk-color-border);\n padding: 10px 16px;\n background: var(--jk-color-background);\n}\n\n.jokkoo-widget .jk-voice-overlay__panel {\n display: flex;\n align-items: center;\n gap: 8px;\n min-height: 52px;\n padding: 8px;\n border: 1px solid var(--jk-color-border);\n border-radius: var(--jk-radius-bubble);\n background: var(--jk-color-surface);\n}\n\n.jokkoo-widget .jk-voice-overlay__rec {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 52px;\n font-size: 13px;\n font-weight: 600;\n font-variant-numeric: tabular-nums;\n}\n\n.jokkoo-widget .jk-voice-overlay__dot {\n width: 8px;\n height: 8px;\n border-radius: 4px;\n background: #ef4444;\n animation: jk-pulse 1.3s ease infinite;\n}\n\n@keyframes jk-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.35;\n }\n}\n\n.jokkoo-widget .jk-voice-overlay__uploading {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-size: 12px;\n color: var(--jk-color-text-secondary);\n}\n\n.jokkoo-widget .jk-conversation__body {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n min-height: 0;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,227 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
4
+ import { QueryClient } from '@tanstack/react-query';
5
+ import * as _jokkoo_sdk_web from '@jokkoo/sdk-web';
6
+ import { UserTokenProvider, JokkooLocale, Translations, JokkooApiClient, JokkooRealtimeClient, Conversation, Message, RealtimeStatus, PendingAttachment, SendMessagePayload } from '@jokkoo/sdk-web';
7
+ export { ChatMessage, Conversation, JokkooConfig, Message, NEW_CONVERSATION_ID, Translations, UserTokenProvider } from '@jokkoo/sdk-web';
8
+
9
+ interface JokkooThemeColors {
10
+ primary: string;
11
+ background: string;
12
+ surface: string;
13
+ text: string;
14
+ textMuted: string;
15
+ border: string;
16
+ onPrimary: string;
17
+ chatHeaderBackground: string;
18
+ chatHeaderText: string;
19
+ chatHeaderButtonBackground: string;
20
+ chatBackground: string;
21
+ chatSurface: string;
22
+ chatText: string;
23
+ chatTextMuted: string;
24
+ chatBorder: string;
25
+ inputBackground: string;
26
+ inputPlaceholder: string;
27
+ userBubbleBackground: string;
28
+ userBubbleText: string;
29
+ agentBubbleBackground: string;
30
+ agentBubbleText: string;
31
+ statusActiveBackground: string;
32
+ statusActiveText: string;
33
+ statusEndedBackground: string;
34
+ statusEndedText: string;
35
+ discussionEndedBackground: string;
36
+ resolvedBackground: string;
37
+ resolvedText: string;
38
+ unreadIndicator: string;
39
+ }
40
+ interface JokkooThemeSpacing {
41
+ xs: number;
42
+ sm: number;
43
+ md: number;
44
+ lg: number;
45
+ xl: number;
46
+ }
47
+ interface JokkooThemeTypography {
48
+ headingSize: number;
49
+ headingWeight: "400" | "500" | "600" | "700";
50
+ headingLetterSpacing: number;
51
+ titleSize: number;
52
+ titleWeight: "400" | "500" | "600" | "700";
53
+ smallSize: number;
54
+ smallWeight: "400" | "500" | "600" | "700";
55
+ bodySize: number;
56
+ bodyWeight: "400" | "500" | "600" | "700";
57
+ captionSize: number;
58
+ captionWeight: "400" | "500" | "600" | "700";
59
+ messageSize: number;
60
+ timestampSize: number;
61
+ }
62
+ interface JokkooTheme {
63
+ colors: JokkooThemeColors;
64
+ spacing: JokkooThemeSpacing;
65
+ borderRadius: number;
66
+ cardBorderRadius: number;
67
+ badgeBorderRadius: number;
68
+ bubbleBorderRadius: number;
69
+ panelBorderRadius: number;
70
+ typography: JokkooThemeTypography;
71
+ }
72
+ declare const defaultTheme: JokkooTheme;
73
+ declare function mergeTheme(partial?: Partial<JokkooTheme>): JokkooTheme;
74
+ /** Map theme colors to CSS custom properties for `.jokkoo-widget`. */
75
+ declare function themeToCssVars(theme: JokkooTheme): Record<string, string>;
76
+
77
+ type JokkooScreen = {
78
+ name: "requestList";
79
+ } | {
80
+ name: "conversation";
81
+ conversationId: number;
82
+ };
83
+ interface JokkooProviderProps {
84
+ children: ReactNode;
85
+ theme?: Partial<JokkooTheme>;
86
+ /** Public channel identifier from Jokkoo dashboard */
87
+ clientToken: string;
88
+ /** Callback that returns a fresh user_token JWT from the tenant backend */
89
+ userTokenProvider: UserTokenProvider;
90
+ /** Jokkoo API base URL (defaults to production) */
91
+ baseUrl?: string;
92
+ /** End-user locale (defaults to "fr") */
93
+ locale?: JokkooLocale;
94
+ /** Enable debug logging */
95
+ debug?: boolean;
96
+ /** Seconds before JWT expiry to proactively refresh (default: 60) */
97
+ tokenRefreshBufferSeconds?: number;
98
+ /** Optional shared QueryClient instance */
99
+ queryClient?: QueryClient;
100
+ }
101
+ interface JokkooContextValue {
102
+ theme: JokkooTheme;
103
+ themeStyle: CSSProperties;
104
+ t: Translations;
105
+ locale?: JokkooLocale;
106
+ isChatOpen: boolean;
107
+ isExpanded: boolean;
108
+ currentScreen: JokkooScreen;
109
+ apiClient: JokkooApiClient;
110
+ realtimeClient: JokkooRealtimeClient;
111
+ openChat: () => void;
112
+ closeChat: () => void;
113
+ toggleExpanded: () => void;
114
+ navigateTo: (screen: JokkooScreen) => void;
115
+ goBack: () => void;
116
+ unreadCount: number;
117
+ markConversationRead: (conversationId: number) => void;
118
+ isConversationUnread: (conversationId: number) => boolean;
119
+ }
120
+ declare function JokkooProvider({ children, theme, clientToken, userTokenProvider, baseUrl, locale, debug, tokenRefreshBufferSeconds, queryClient: externalQueryClient, }: JokkooProviderProps): react.JSX.Element;
121
+ declare function useJokkooContext(): JokkooContextValue;
122
+
123
+ type FloatingButtonPosition = "bottom-right" | "bottom-left";
124
+ interface FloatingButtonProps {
125
+ position?: FloatingButtonPosition;
126
+ label?: string;
127
+ onClick?: () => void;
128
+ showBadge?: boolean;
129
+ className?: string;
130
+ }
131
+ declare function FloatingButton({ position, label, onClick, showBadge, className, }: FloatingButtonProps): react.JSX.Element;
132
+
133
+ interface JokkooWidgetProps {
134
+ /** Position of the floating launcher button when the panel is closed */
135
+ position?: FloatingButtonPosition;
136
+ /** Optional custom label for the floating launcher */
137
+ launcherLabel?: string;
138
+ }
139
+ /**
140
+ * Complete Jokkoo support widget: floating launcher + slide-up panel with
141
+ * request list and conversation screens.
142
+ */
143
+ declare function JokkooWidget({ position, launcherLabel }: JokkooWidgetProps): react.JSX.Element;
144
+
145
+ interface WidgetPanelProps {
146
+ children: ReactNode;
147
+ headerVariant?: "light" | "dark";
148
+ }
149
+ declare function WidgetPanel({ children, headerVariant }: WidgetPanelProps): react.JSX.Element;
150
+
151
+ declare function RequestListScreen(): react.JSX.Element;
152
+
153
+ interface ConversationScreenProps {
154
+ conversationId: number;
155
+ }
156
+ declare function ConversationScreen({ conversationId }: ConversationScreenProps): react.JSX.Element;
157
+
158
+ declare const jokkooQueryKeys: {
159
+ conversations: readonly ["jokkoo", "conversations"];
160
+ conversationPolicies: readonly ["jokkoo", "conversation-policies"];
161
+ messages: (conversationId: number) => readonly ["jokkoo", "conversations", number, "messages"];
162
+ };
163
+
164
+ interface UseConversationsOptions {
165
+ pageSize?: number;
166
+ }
167
+ interface UseConversationsResult {
168
+ conversations: Conversation[];
169
+ fetchNextPage: () => void;
170
+ hasNextPage: boolean;
171
+ isFetchingNextPage: boolean;
172
+ isLoading: boolean;
173
+ isError: boolean;
174
+ refetch: () => void;
175
+ }
176
+ declare function useConversations(options?: UseConversationsOptions): UseConversationsResult;
177
+
178
+ type MessagesPageParam = "latest" | number;
179
+ interface UseMessagesOptions {
180
+ pageSize?: number;
181
+ enabled?: boolean;
182
+ }
183
+ interface UseMessagesResult {
184
+ messages: Message[];
185
+ fetchNextPage: () => void;
186
+ hasNextPage: boolean;
187
+ isFetchingNextPage: boolean;
188
+ isLoading: boolean;
189
+ isError: boolean;
190
+ }
191
+ declare function useMessages(conversationId: number, options?: UseMessagesOptions): UseMessagesResult;
192
+
193
+ declare function useRealtimeStatus(): RealtimeStatus;
194
+
195
+ declare function useFileUpload(): {
196
+ pendingAttachments: PendingAttachment[];
197
+ isUploading: boolean;
198
+ confirmedFileIds: string[];
199
+ pickAttachments: () => void;
200
+ removeAttachment: (id: string) => void;
201
+ retryAttachment: (id: string) => void;
202
+ clearAttachments: () => void;
203
+ };
204
+
205
+ type VoiceRecorderState = "idle" | "recording" | "stopped" | "uploading" | "confirmed";
206
+ declare function useVoiceRecorder(): {
207
+ state: VoiceRecorderState;
208
+ durationMs: number;
209
+ meteringLevels: number[];
210
+ uploadProgress: number;
211
+ confirmedFileId: string | null;
212
+ audioDurationMs: number;
213
+ isRecordingActive: boolean;
214
+ startRecording: () => Promise<void>;
215
+ cancelRecording: () => Promise<void>;
216
+ stopAndUpload: () => Promise<{
217
+ fileId: string;
218
+ audioDurationMs: number;
219
+ } | null>;
220
+ reset: () => void;
221
+ };
222
+
223
+ declare function useSendMessage(): _tanstack_react_query.UseMutationResult<_jokkoo_sdk_web.Message, Error, SendMessagePayload, unknown>;
224
+
225
+ declare function useUnreadCount(): number;
226
+
227
+ export { ConversationScreen, type ConversationScreenProps, FloatingButton, type FloatingButtonPosition, type FloatingButtonProps, FloatingButton as JokkooButton, JokkooProvider, type JokkooProviderProps, type JokkooScreen, type JokkooTheme, type JokkooThemeColors, type JokkooThemeSpacing, type JokkooThemeTypography, JokkooWidget, type JokkooWidgetProps, type MessagesPageParam, RequestListScreen, type UseConversationsOptions, type UseConversationsResult, type UseMessagesOptions, type UseMessagesResult, type VoiceRecorderState, WidgetPanel, type WidgetPanelProps, defaultTheme, jokkooQueryKeys, mergeTheme, themeToCssVars, useConversations, useFileUpload, useJokkooContext, useMessages, useRealtimeStatus, useSendMessage, useUnreadCount, useVoiceRecorder };
@@ -0,0 +1,227 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, CSSProperties } from 'react';
3
+ import * as _tanstack_react_query from '@tanstack/react-query';
4
+ import { QueryClient } from '@tanstack/react-query';
5
+ import * as _jokkoo_sdk_web from '@jokkoo/sdk-web';
6
+ import { UserTokenProvider, JokkooLocale, Translations, JokkooApiClient, JokkooRealtimeClient, Conversation, Message, RealtimeStatus, PendingAttachment, SendMessagePayload } from '@jokkoo/sdk-web';
7
+ export { ChatMessage, Conversation, JokkooConfig, Message, NEW_CONVERSATION_ID, Translations, UserTokenProvider } from '@jokkoo/sdk-web';
8
+
9
+ interface JokkooThemeColors {
10
+ primary: string;
11
+ background: string;
12
+ surface: string;
13
+ text: string;
14
+ textMuted: string;
15
+ border: string;
16
+ onPrimary: string;
17
+ chatHeaderBackground: string;
18
+ chatHeaderText: string;
19
+ chatHeaderButtonBackground: string;
20
+ chatBackground: string;
21
+ chatSurface: string;
22
+ chatText: string;
23
+ chatTextMuted: string;
24
+ chatBorder: string;
25
+ inputBackground: string;
26
+ inputPlaceholder: string;
27
+ userBubbleBackground: string;
28
+ userBubbleText: string;
29
+ agentBubbleBackground: string;
30
+ agentBubbleText: string;
31
+ statusActiveBackground: string;
32
+ statusActiveText: string;
33
+ statusEndedBackground: string;
34
+ statusEndedText: string;
35
+ discussionEndedBackground: string;
36
+ resolvedBackground: string;
37
+ resolvedText: string;
38
+ unreadIndicator: string;
39
+ }
40
+ interface JokkooThemeSpacing {
41
+ xs: number;
42
+ sm: number;
43
+ md: number;
44
+ lg: number;
45
+ xl: number;
46
+ }
47
+ interface JokkooThemeTypography {
48
+ headingSize: number;
49
+ headingWeight: "400" | "500" | "600" | "700";
50
+ headingLetterSpacing: number;
51
+ titleSize: number;
52
+ titleWeight: "400" | "500" | "600" | "700";
53
+ smallSize: number;
54
+ smallWeight: "400" | "500" | "600" | "700";
55
+ bodySize: number;
56
+ bodyWeight: "400" | "500" | "600" | "700";
57
+ captionSize: number;
58
+ captionWeight: "400" | "500" | "600" | "700";
59
+ messageSize: number;
60
+ timestampSize: number;
61
+ }
62
+ interface JokkooTheme {
63
+ colors: JokkooThemeColors;
64
+ spacing: JokkooThemeSpacing;
65
+ borderRadius: number;
66
+ cardBorderRadius: number;
67
+ badgeBorderRadius: number;
68
+ bubbleBorderRadius: number;
69
+ panelBorderRadius: number;
70
+ typography: JokkooThemeTypography;
71
+ }
72
+ declare const defaultTheme: JokkooTheme;
73
+ declare function mergeTheme(partial?: Partial<JokkooTheme>): JokkooTheme;
74
+ /** Map theme colors to CSS custom properties for `.jokkoo-widget`. */
75
+ declare function themeToCssVars(theme: JokkooTheme): Record<string, string>;
76
+
77
+ type JokkooScreen = {
78
+ name: "requestList";
79
+ } | {
80
+ name: "conversation";
81
+ conversationId: number;
82
+ };
83
+ interface JokkooProviderProps {
84
+ children: ReactNode;
85
+ theme?: Partial<JokkooTheme>;
86
+ /** Public channel identifier from Jokkoo dashboard */
87
+ clientToken: string;
88
+ /** Callback that returns a fresh user_token JWT from the tenant backend */
89
+ userTokenProvider: UserTokenProvider;
90
+ /** Jokkoo API base URL (defaults to production) */
91
+ baseUrl?: string;
92
+ /** End-user locale (defaults to "fr") */
93
+ locale?: JokkooLocale;
94
+ /** Enable debug logging */
95
+ debug?: boolean;
96
+ /** Seconds before JWT expiry to proactively refresh (default: 60) */
97
+ tokenRefreshBufferSeconds?: number;
98
+ /** Optional shared QueryClient instance */
99
+ queryClient?: QueryClient;
100
+ }
101
+ interface JokkooContextValue {
102
+ theme: JokkooTheme;
103
+ themeStyle: CSSProperties;
104
+ t: Translations;
105
+ locale?: JokkooLocale;
106
+ isChatOpen: boolean;
107
+ isExpanded: boolean;
108
+ currentScreen: JokkooScreen;
109
+ apiClient: JokkooApiClient;
110
+ realtimeClient: JokkooRealtimeClient;
111
+ openChat: () => void;
112
+ closeChat: () => void;
113
+ toggleExpanded: () => void;
114
+ navigateTo: (screen: JokkooScreen) => void;
115
+ goBack: () => void;
116
+ unreadCount: number;
117
+ markConversationRead: (conversationId: number) => void;
118
+ isConversationUnread: (conversationId: number) => boolean;
119
+ }
120
+ declare function JokkooProvider({ children, theme, clientToken, userTokenProvider, baseUrl, locale, debug, tokenRefreshBufferSeconds, queryClient: externalQueryClient, }: JokkooProviderProps): react.JSX.Element;
121
+ declare function useJokkooContext(): JokkooContextValue;
122
+
123
+ type FloatingButtonPosition = "bottom-right" | "bottom-left";
124
+ interface FloatingButtonProps {
125
+ position?: FloatingButtonPosition;
126
+ label?: string;
127
+ onClick?: () => void;
128
+ showBadge?: boolean;
129
+ className?: string;
130
+ }
131
+ declare function FloatingButton({ position, label, onClick, showBadge, className, }: FloatingButtonProps): react.JSX.Element;
132
+
133
+ interface JokkooWidgetProps {
134
+ /** Position of the floating launcher button when the panel is closed */
135
+ position?: FloatingButtonPosition;
136
+ /** Optional custom label for the floating launcher */
137
+ launcherLabel?: string;
138
+ }
139
+ /**
140
+ * Complete Jokkoo support widget: floating launcher + slide-up panel with
141
+ * request list and conversation screens.
142
+ */
143
+ declare function JokkooWidget({ position, launcherLabel }: JokkooWidgetProps): react.JSX.Element;
144
+
145
+ interface WidgetPanelProps {
146
+ children: ReactNode;
147
+ headerVariant?: "light" | "dark";
148
+ }
149
+ declare function WidgetPanel({ children, headerVariant }: WidgetPanelProps): react.JSX.Element;
150
+
151
+ declare function RequestListScreen(): react.JSX.Element;
152
+
153
+ interface ConversationScreenProps {
154
+ conversationId: number;
155
+ }
156
+ declare function ConversationScreen({ conversationId }: ConversationScreenProps): react.JSX.Element;
157
+
158
+ declare const jokkooQueryKeys: {
159
+ conversations: readonly ["jokkoo", "conversations"];
160
+ conversationPolicies: readonly ["jokkoo", "conversation-policies"];
161
+ messages: (conversationId: number) => readonly ["jokkoo", "conversations", number, "messages"];
162
+ };
163
+
164
+ interface UseConversationsOptions {
165
+ pageSize?: number;
166
+ }
167
+ interface UseConversationsResult {
168
+ conversations: Conversation[];
169
+ fetchNextPage: () => void;
170
+ hasNextPage: boolean;
171
+ isFetchingNextPage: boolean;
172
+ isLoading: boolean;
173
+ isError: boolean;
174
+ refetch: () => void;
175
+ }
176
+ declare function useConversations(options?: UseConversationsOptions): UseConversationsResult;
177
+
178
+ type MessagesPageParam = "latest" | number;
179
+ interface UseMessagesOptions {
180
+ pageSize?: number;
181
+ enabled?: boolean;
182
+ }
183
+ interface UseMessagesResult {
184
+ messages: Message[];
185
+ fetchNextPage: () => void;
186
+ hasNextPage: boolean;
187
+ isFetchingNextPage: boolean;
188
+ isLoading: boolean;
189
+ isError: boolean;
190
+ }
191
+ declare function useMessages(conversationId: number, options?: UseMessagesOptions): UseMessagesResult;
192
+
193
+ declare function useRealtimeStatus(): RealtimeStatus;
194
+
195
+ declare function useFileUpload(): {
196
+ pendingAttachments: PendingAttachment[];
197
+ isUploading: boolean;
198
+ confirmedFileIds: string[];
199
+ pickAttachments: () => void;
200
+ removeAttachment: (id: string) => void;
201
+ retryAttachment: (id: string) => void;
202
+ clearAttachments: () => void;
203
+ };
204
+
205
+ type VoiceRecorderState = "idle" | "recording" | "stopped" | "uploading" | "confirmed";
206
+ declare function useVoiceRecorder(): {
207
+ state: VoiceRecorderState;
208
+ durationMs: number;
209
+ meteringLevels: number[];
210
+ uploadProgress: number;
211
+ confirmedFileId: string | null;
212
+ audioDurationMs: number;
213
+ isRecordingActive: boolean;
214
+ startRecording: () => Promise<void>;
215
+ cancelRecording: () => Promise<void>;
216
+ stopAndUpload: () => Promise<{
217
+ fileId: string;
218
+ audioDurationMs: number;
219
+ } | null>;
220
+ reset: () => void;
221
+ };
222
+
223
+ declare function useSendMessage(): _tanstack_react_query.UseMutationResult<_jokkoo_sdk_web.Message, Error, SendMessagePayload, unknown>;
224
+
225
+ declare function useUnreadCount(): number;
226
+
227
+ export { ConversationScreen, type ConversationScreenProps, FloatingButton, type FloatingButtonPosition, type FloatingButtonProps, FloatingButton as JokkooButton, JokkooProvider, type JokkooProviderProps, type JokkooScreen, type JokkooTheme, type JokkooThemeColors, type JokkooThemeSpacing, type JokkooThemeTypography, JokkooWidget, type JokkooWidgetProps, type MessagesPageParam, RequestListScreen, type UseConversationsOptions, type UseConversationsResult, type UseMessagesOptions, type UseMessagesResult, type VoiceRecorderState, WidgetPanel, type WidgetPanelProps, defaultTheme, jokkooQueryKeys, mergeTheme, themeToCssVars, useConversations, useFileUpload, useJokkooContext, useMessages, useRealtimeStatus, useSendMessage, useUnreadCount, useVoiceRecorder };