@bitbaum/chatkit 0.17.1 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +152 -0
- package/dist/conversations.d.ts +99 -0
- package/dist/conversations.d.ts.map +1 -0
- package/dist/conversations.js +146 -0
- package/dist/conversations.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/react/ChatApp.d.ts +123 -0
- package/dist/react/ChatApp.d.ts.map +1 -0
- package/dist/react/ChatApp.js +215 -0
- package/dist/react/ChatApp.js.map +1 -0
- package/dist/react/ChatHistory.d.ts +28 -0
- package/dist/react/ChatHistory.d.ts.map +1 -0
- package/dist/react/ChatHistory.js +58 -0
- package/dist/react/ChatHistory.js.map +1 -0
- package/dist/react/Composer.d.ts +4 -1
- package/dist/react/Composer.d.ts.map +1 -1
- package/dist/react/Composer.js +3 -3
- package/dist/react/Composer.js.map +1 -1
- package/dist/react/Thread.d.ts +4 -0
- package/dist/react/Thread.d.ts.map +1 -1
- package/dist/react/Thread.js +2 -2
- package/dist/react/Thread.js.map +1 -1
- package/dist/react/hooks.d.ts.map +1 -1
- package/dist/react/hooks.js +11 -0
- package/dist/react/hooks.js.map +1 -1
- package/dist/react/icons.d.ts +7 -0
- package/dist/react/icons.d.ts.map +1 -1
- package/dist/react/icons.js +8 -0
- package/dist/react/icons.js.map +1 -1
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +3 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/use-chat-app.d.ts +81 -0
- package/dist/react/use-chat-app.d.ts.map +1 -0
- package/dist/react/use-chat-app.js +380 -0
- package/dist/react/use-chat-app.js.map +1 -0
- package/dist/stores.d.ts +63 -0
- package/dist/stores.d.ts.map +1 -0
- package/dist/stores.js +291 -0
- package/dist/stores.js.map +1 -0
- package/package.json +3 -3
- package/styles.css +409 -0
package/styles.css
CHANGED
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
.ck-screen,
|
|
61
|
+
.ck-app,
|
|
62
|
+
.ck-app-drawer,
|
|
61
63
|
.ck-composer-wrap,
|
|
62
64
|
.ck-thread-wrap,
|
|
63
65
|
.ck-starters,
|
|
@@ -67,6 +69,8 @@
|
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
.ck-screen *,
|
|
72
|
+
.ck-app *,
|
|
73
|
+
.ck-app-drawer *,
|
|
70
74
|
.ck-composer-wrap *,
|
|
71
75
|
.ck-thread-wrap *,
|
|
72
76
|
.ck-starters *,
|
|
@@ -1938,3 +1942,408 @@ details.ck-thinking[open] > summary svg {
|
|
|
1938
1942
|
bottom: 1rem;
|
|
1939
1943
|
z-index: 10;
|
|
1940
1944
|
}
|
|
1945
|
+
|
|
1946
|
+
/* ── ChatApp: the whole app ─────────────────────────────────────────────
|
|
1947
|
+
The chat list is a drawer from the left edge on a phone (a native <dialog>:
|
|
1948
|
+
Escape, the focus trap and focus restore come from the browser) and a rail
|
|
1949
|
+
beside the chat from a wide screen. One row anatomy in the list: title,
|
|
1950
|
+
date, one "…". demo/app.html is the reference at 390px and 1440px. */
|
|
1951
|
+
.ck-app {
|
|
1952
|
+
position: relative;
|
|
1953
|
+
display: flex;
|
|
1954
|
+
height: 100%;
|
|
1955
|
+
min-height: 0;
|
|
1956
|
+
min-width: 0;
|
|
1957
|
+
overflow: hidden;
|
|
1958
|
+
background: var(--ck-page);
|
|
1959
|
+
}
|
|
1960
|
+
.ck-app-viewport {
|
|
1961
|
+
height: var(--ck-viewport-height, 100dvh);
|
|
1962
|
+
}
|
|
1963
|
+
.ck-app-screen {
|
|
1964
|
+
flex: 1;
|
|
1965
|
+
}
|
|
1966
|
+
.ck-app-rail {
|
|
1967
|
+
display: flex;
|
|
1968
|
+
flex: 0 0 18rem;
|
|
1969
|
+
flex-direction: column;
|
|
1970
|
+
width: 18rem;
|
|
1971
|
+
min-height: 0;
|
|
1972
|
+
border-right: 1px solid var(--ck-line);
|
|
1973
|
+
background: var(--ck-bg);
|
|
1974
|
+
}
|
|
1975
|
+
.ck-app-drawer {
|
|
1976
|
+
position: fixed;
|
|
1977
|
+
inset: 0 auto 0 0;
|
|
1978
|
+
width: min(20rem, 88vw);
|
|
1979
|
+
max-width: none;
|
|
1980
|
+
height: 100%;
|
|
1981
|
+
max-height: none;
|
|
1982
|
+
margin: 0;
|
|
1983
|
+
padding: 0;
|
|
1984
|
+
border: 0;
|
|
1985
|
+
background: var(--ck-bg);
|
|
1986
|
+
color: var(--ck-fg);
|
|
1987
|
+
}
|
|
1988
|
+
.ck-app-drawer::backdrop {
|
|
1989
|
+
background: color-mix(in srgb, #000 40%, transparent);
|
|
1990
|
+
}
|
|
1991
|
+
.ck-app-drawer[open] .ck-app-drawer-panel {
|
|
1992
|
+
animation: ck-slide-in 0.2s ease-out;
|
|
1993
|
+
}
|
|
1994
|
+
@keyframes ck-slide-in {
|
|
1995
|
+
from {
|
|
1996
|
+
transform: translateX(-1.5rem);
|
|
1997
|
+
opacity: 0;
|
|
1998
|
+
}
|
|
1999
|
+
}
|
|
2000
|
+
.ck-app-drawer-panel {
|
|
2001
|
+
display: flex;
|
|
2002
|
+
flex-direction: column;
|
|
2003
|
+
height: 100%;
|
|
2004
|
+
padding: env(safe-area-inset-top, 0px) 0 env(safe-area-inset-bottom, 0px);
|
|
2005
|
+
}
|
|
2006
|
+
.ck-history {
|
|
2007
|
+
display: flex;
|
|
2008
|
+
flex: 1;
|
|
2009
|
+
flex-direction: column;
|
|
2010
|
+
gap: 0.5rem;
|
|
2011
|
+
min-height: 0;
|
|
2012
|
+
padding: 0.75rem;
|
|
2013
|
+
}
|
|
2014
|
+
.ck-history-head {
|
|
2015
|
+
display: flex;
|
|
2016
|
+
align-items: center;
|
|
2017
|
+
justify-content: space-between;
|
|
2018
|
+
min-height: var(--ck-target);
|
|
2019
|
+
}
|
|
2020
|
+
.ck-history-title {
|
|
2021
|
+
padding-inline: 0.5rem;
|
|
2022
|
+
font-size: 1rem;
|
|
2023
|
+
font-weight: 600;
|
|
2024
|
+
}
|
|
2025
|
+
.ck-history-close {
|
|
2026
|
+
border-color: transparent;
|
|
2027
|
+
background: transparent;
|
|
2028
|
+
}
|
|
2029
|
+
.ck-history-new,
|
|
2030
|
+
.ck-history-search {
|
|
2031
|
+
display: flex;
|
|
2032
|
+
align-items: center;
|
|
2033
|
+
gap: 0.625rem;
|
|
2034
|
+
min-height: var(--ck-target);
|
|
2035
|
+
padding: 0 0.75rem;
|
|
2036
|
+
border: 1px solid var(--ck-line);
|
|
2037
|
+
border-radius: var(--ck-radius-sm);
|
|
2038
|
+
font-size: 0.9375rem;
|
|
2039
|
+
}
|
|
2040
|
+
.ck-history-new {
|
|
2041
|
+
background: var(--ck-raised);
|
|
2042
|
+
color: var(--ck-fg);
|
|
2043
|
+
font-family: inherit;
|
|
2044
|
+
cursor: pointer;
|
|
2045
|
+
}
|
|
2046
|
+
.ck-history-new:hover {
|
|
2047
|
+
border-color: var(--ck-line-2);
|
|
2048
|
+
}
|
|
2049
|
+
.ck-history-search {
|
|
2050
|
+
background: var(--ck-bg);
|
|
2051
|
+
color: var(--ck-fg-3);
|
|
2052
|
+
}
|
|
2053
|
+
.ck-history-search:focus-within {
|
|
2054
|
+
border-color: var(--ck-line-2);
|
|
2055
|
+
}
|
|
2056
|
+
.ck-history-search input {
|
|
2057
|
+
flex: 1;
|
|
2058
|
+
min-width: 0;
|
|
2059
|
+
min-height: var(--ck-target);
|
|
2060
|
+
padding: 0;
|
|
2061
|
+
border: 0;
|
|
2062
|
+
outline: none;
|
|
2063
|
+
background: transparent;
|
|
2064
|
+
color: var(--ck-fg);
|
|
2065
|
+
font: inherit;
|
|
2066
|
+
font-size: max(16px, var(--ck-text));
|
|
2067
|
+
}
|
|
2068
|
+
.ck-history-list {
|
|
2069
|
+
flex: 1;
|
|
2070
|
+
min-height: 0;
|
|
2071
|
+
margin-inline: -0.25rem;
|
|
2072
|
+
padding-inline: 0.25rem;
|
|
2073
|
+
overflow-y: auto;
|
|
2074
|
+
overscroll-behavior: contain;
|
|
2075
|
+
}
|
|
2076
|
+
.ck-history-group-title {
|
|
2077
|
+
margin: 0.875rem 0.5rem 0.25rem;
|
|
2078
|
+
color: var(--ck-muted);
|
|
2079
|
+
font-size: 0.75rem;
|
|
2080
|
+
font-weight: 600;
|
|
2081
|
+
}
|
|
2082
|
+
.ck-history-group ul {
|
|
2083
|
+
display: flex;
|
|
2084
|
+
flex-direction: column;
|
|
2085
|
+
gap: 2px;
|
|
2086
|
+
margin: 0;
|
|
2087
|
+
padding: 0;
|
|
2088
|
+
list-style: none;
|
|
2089
|
+
}
|
|
2090
|
+
.ck-history-row {
|
|
2091
|
+
border-radius: var(--ck-radius-sm);
|
|
2092
|
+
}
|
|
2093
|
+
.ck-history-row-active {
|
|
2094
|
+
background: var(--ck-raised);
|
|
2095
|
+
}
|
|
2096
|
+
.ck-history-line {
|
|
2097
|
+
display: flex;
|
|
2098
|
+
align-items: center;
|
|
2099
|
+
min-width: 0;
|
|
2100
|
+
}
|
|
2101
|
+
.ck-history-open {
|
|
2102
|
+
display: flex;
|
|
2103
|
+
flex: 1;
|
|
2104
|
+
align-items: baseline;
|
|
2105
|
+
gap: 0.5rem;
|
|
2106
|
+
min-width: 0;
|
|
2107
|
+
min-height: var(--ck-target);
|
|
2108
|
+
padding: 0.5rem;
|
|
2109
|
+
border: 0;
|
|
2110
|
+
border-radius: var(--ck-radius-sm);
|
|
2111
|
+
background: transparent;
|
|
2112
|
+
color: var(--ck-fg);
|
|
2113
|
+
font: inherit;
|
|
2114
|
+
font-size: 0.9375rem;
|
|
2115
|
+
text-align: left;
|
|
2116
|
+
cursor: pointer;
|
|
2117
|
+
}
|
|
2118
|
+
.ck-history-name {
|
|
2119
|
+
flex: 1;
|
|
2120
|
+
min-width: 0;
|
|
2121
|
+
overflow: hidden;
|
|
2122
|
+
text-overflow: ellipsis;
|
|
2123
|
+
white-space: nowrap;
|
|
2124
|
+
}
|
|
2125
|
+
.ck-history-date {
|
|
2126
|
+
flex: none;
|
|
2127
|
+
color: var(--ck-muted);
|
|
2128
|
+
font-size: 0.75rem;
|
|
2129
|
+
font-variant-numeric: tabular-nums;
|
|
2130
|
+
}
|
|
2131
|
+
.ck-history-more {
|
|
2132
|
+
display: inline-flex;
|
|
2133
|
+
flex: none;
|
|
2134
|
+
align-items: center;
|
|
2135
|
+
justify-content: center;
|
|
2136
|
+
width: var(--ck-target);
|
|
2137
|
+
height: var(--ck-target);
|
|
2138
|
+
border: 0;
|
|
2139
|
+
border-radius: 999px;
|
|
2140
|
+
background: transparent;
|
|
2141
|
+
color: var(--ck-fg-3);
|
|
2142
|
+
cursor: pointer;
|
|
2143
|
+
}
|
|
2144
|
+
.ck-history-open:hover,
|
|
2145
|
+
.ck-history-more:hover {
|
|
2146
|
+
background: color-mix(in srgb, var(--ck-line) 60%, transparent);
|
|
2147
|
+
}
|
|
2148
|
+
.ck-history-pair {
|
|
2149
|
+
display: grid;
|
|
2150
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2151
|
+
gap: 0.5rem;
|
|
2152
|
+
padding: 0.25rem 0.5rem 0.5rem;
|
|
2153
|
+
}
|
|
2154
|
+
.ck-history-pair > button,
|
|
2155
|
+
.ck-history-retry {
|
|
2156
|
+
min-height: var(--ck-target);
|
|
2157
|
+
padding: 0 0.75rem;
|
|
2158
|
+
border: 1px solid var(--ck-line);
|
|
2159
|
+
border-radius: var(--ck-radius-sm);
|
|
2160
|
+
background: var(--ck-bg);
|
|
2161
|
+
color: var(--ck-fg);
|
|
2162
|
+
font: inherit;
|
|
2163
|
+
font-size: 0.9375rem;
|
|
2164
|
+
cursor: pointer;
|
|
2165
|
+
}
|
|
2166
|
+
.ck-history-pair > button:hover,
|
|
2167
|
+
.ck-history-retry:hover {
|
|
2168
|
+
border-color: var(--ck-line-2);
|
|
2169
|
+
}
|
|
2170
|
+
.ck-history-pair > .ck-history-danger,
|
|
2171
|
+
.ck-app-menu-item.ck-history-danger {
|
|
2172
|
+
color: var(--ck-danger);
|
|
2173
|
+
}
|
|
2174
|
+
.ck-history-confirm p,
|
|
2175
|
+
.ck-app-confirm p {
|
|
2176
|
+
margin: 0.25rem 0.5rem 0;
|
|
2177
|
+
font-size: 0.9375rem;
|
|
2178
|
+
}
|
|
2179
|
+
.ck-history-rename {
|
|
2180
|
+
padding: 0.25rem 0.5rem 0;
|
|
2181
|
+
}
|
|
2182
|
+
.ck-history-rename .ck-history-pair {
|
|
2183
|
+
padding-inline: 0;
|
|
2184
|
+
}
|
|
2185
|
+
.ck-history-rename input,
|
|
2186
|
+
.ck-app-rename input {
|
|
2187
|
+
width: 100%;
|
|
2188
|
+
min-height: var(--ck-target);
|
|
2189
|
+
padding: 0 0.75rem;
|
|
2190
|
+
border: 1px solid var(--ck-line-2);
|
|
2191
|
+
border-radius: var(--ck-radius-sm);
|
|
2192
|
+
background: var(--ck-bg);
|
|
2193
|
+
color: var(--ck-fg);
|
|
2194
|
+
font: inherit;
|
|
2195
|
+
font-size: max(16px, var(--ck-text));
|
|
2196
|
+
}
|
|
2197
|
+
.ck-history-empty {
|
|
2198
|
+
display: flex;
|
|
2199
|
+
flex-direction: column;
|
|
2200
|
+
align-items: flex-start;
|
|
2201
|
+
gap: 0.75rem;
|
|
2202
|
+
margin: 1.5rem 0.5rem;
|
|
2203
|
+
color: var(--ck-fg-3);
|
|
2204
|
+
font-size: 0.9375rem;
|
|
2205
|
+
}
|
|
2206
|
+
.ck-history-empty p {
|
|
2207
|
+
margin: 0;
|
|
2208
|
+
}
|
|
2209
|
+
.ck-history-new:focus-visible,
|
|
2210
|
+
.ck-history-open:focus-visible,
|
|
2211
|
+
.ck-history-more:focus-visible,
|
|
2212
|
+
.ck-history-pair > button:focus-visible,
|
|
2213
|
+
.ck-history-retry:focus-visible,
|
|
2214
|
+
.ck-app-menu-item:focus-visible {
|
|
2215
|
+
outline: 2px solid var(--ck-accent);
|
|
2216
|
+
outline-offset: -2px;
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
/* The header: Chats · title · New chat · More, as frosted pills. */
|
|
2220
|
+
.ck-app-icon {
|
|
2221
|
+
flex: none;
|
|
2222
|
+
width: var(--ck-target);
|
|
2223
|
+
padding: 0;
|
|
2224
|
+
font-size: 1.125rem;
|
|
2225
|
+
}
|
|
2226
|
+
.ck-app-title {
|
|
2227
|
+
display: flex;
|
|
2228
|
+
flex: 1;
|
|
2229
|
+
flex-direction: column;
|
|
2230
|
+
align-items: center;
|
|
2231
|
+
min-width: 0;
|
|
2232
|
+
text-align: center;
|
|
2233
|
+
}
|
|
2234
|
+
.ck-app-title-text {
|
|
2235
|
+
display: inline-flex;
|
|
2236
|
+
align-items: center;
|
|
2237
|
+
gap: 0.375rem;
|
|
2238
|
+
max-width: 100%;
|
|
2239
|
+
min-width: 0;
|
|
2240
|
+
font-size: 1rem;
|
|
2241
|
+
font-weight: 600;
|
|
2242
|
+
}
|
|
2243
|
+
.ck-app-title-note {
|
|
2244
|
+
max-width: 100%;
|
|
2245
|
+
overflow: hidden;
|
|
2246
|
+
color: var(--ck-muted);
|
|
2247
|
+
font-size: 0.75rem;
|
|
2248
|
+
text-overflow: ellipsis;
|
|
2249
|
+
white-space: nowrap;
|
|
2250
|
+
}
|
|
2251
|
+
.ck-app-rename {
|
|
2252
|
+
width: 100%;
|
|
2253
|
+
max-width: 24rem;
|
|
2254
|
+
}
|
|
2255
|
+
.ck-app-menu-wrap {
|
|
2256
|
+
position: relative;
|
|
2257
|
+
flex: none;
|
|
2258
|
+
}
|
|
2259
|
+
.ck-app-menu {
|
|
2260
|
+
position: absolute;
|
|
2261
|
+
top: calc(100% + 0.375rem);
|
|
2262
|
+
right: 0;
|
|
2263
|
+
z-index: 5;
|
|
2264
|
+
display: flex;
|
|
2265
|
+
flex-direction: column;
|
|
2266
|
+
min-width: 14rem;
|
|
2267
|
+
padding: 0.375rem;
|
|
2268
|
+
border: 1px solid var(--ck-line);
|
|
2269
|
+
border-radius: var(--ck-radius);
|
|
2270
|
+
background: var(--ck-bg);
|
|
2271
|
+
box-shadow: 0 12px 32px -12px rgb(0 0 0 / 0.35);
|
|
2272
|
+
}
|
|
2273
|
+
.ck-app-menu-item {
|
|
2274
|
+
display: flex;
|
|
2275
|
+
align-items: center;
|
|
2276
|
+
gap: 0.625rem;
|
|
2277
|
+
min-height: var(--ck-target);
|
|
2278
|
+
padding: 0 0.75rem;
|
|
2279
|
+
border: 0;
|
|
2280
|
+
border-radius: var(--ck-radius-sm);
|
|
2281
|
+
background: transparent;
|
|
2282
|
+
color: var(--ck-fg);
|
|
2283
|
+
font: inherit;
|
|
2284
|
+
font-size: 0.9375rem;
|
|
2285
|
+
text-align: left;
|
|
2286
|
+
white-space: nowrap;
|
|
2287
|
+
cursor: pointer;
|
|
2288
|
+
}
|
|
2289
|
+
.ck-app-menu-item:hover {
|
|
2290
|
+
background: var(--ck-raised);
|
|
2291
|
+
}
|
|
2292
|
+
.ck-app-menu-check {
|
|
2293
|
+
width: 0.5rem;
|
|
2294
|
+
height: 0.5rem;
|
|
2295
|
+
margin-left: auto;
|
|
2296
|
+
border-radius: 999px;
|
|
2297
|
+
background: var(--ck-fg);
|
|
2298
|
+
}
|
|
2299
|
+
|
|
2300
|
+
/* Above the composer: a delete to confirm, the messages queued behind a turn. */
|
|
2301
|
+
.ck-app-confirm {
|
|
2302
|
+
padding-top: 0.5rem;
|
|
2303
|
+
border: 1px solid var(--ck-line);
|
|
2304
|
+
border-radius: var(--ck-radius);
|
|
2305
|
+
background: var(--ck-bg);
|
|
2306
|
+
}
|
|
2307
|
+
.ck-app-queue {
|
|
2308
|
+
display: flex;
|
|
2309
|
+
flex-direction: column;
|
|
2310
|
+
gap: 0.25rem;
|
|
2311
|
+
margin: 0;
|
|
2312
|
+
padding: 0;
|
|
2313
|
+
list-style: none;
|
|
2314
|
+
}
|
|
2315
|
+
.ck-app-queue li {
|
|
2316
|
+
display: flex;
|
|
2317
|
+
align-items: center;
|
|
2318
|
+
gap: 0.5rem;
|
|
2319
|
+
padding: 0.25rem 0.25rem 0.25rem 0.875rem;
|
|
2320
|
+
border: 1px solid var(--ck-line);
|
|
2321
|
+
border-radius: 1.5rem;
|
|
2322
|
+
background: color-mix(in srgb, var(--ck-bg) 90%, transparent);
|
|
2323
|
+
}
|
|
2324
|
+
.ck-app-queue-text {
|
|
2325
|
+
display: flex;
|
|
2326
|
+
flex: 1;
|
|
2327
|
+
flex-direction: column;
|
|
2328
|
+
min-width: 0;
|
|
2329
|
+
font-size: 0.9375rem;
|
|
2330
|
+
}
|
|
2331
|
+
.ck-app-queue-text small {
|
|
2332
|
+
color: var(--ck-muted);
|
|
2333
|
+
font-size: 0.75rem;
|
|
2334
|
+
}
|
|
2335
|
+
|
|
2336
|
+
/* What the person sent with their words, above their bubble. */
|
|
2337
|
+
.ck-turn-files {
|
|
2338
|
+
display: flex;
|
|
2339
|
+
flex-wrap: wrap;
|
|
2340
|
+
justify-content: flex-end;
|
|
2341
|
+
gap: 0.5rem;
|
|
2342
|
+
max-width: min(85%, 42rem);
|
|
2343
|
+
margin-bottom: 0.375rem;
|
|
2344
|
+
}
|
|
2345
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2346
|
+
.ck-app-drawer[open] .ck-app-drawer-panel {
|
|
2347
|
+
animation: none;
|
|
2348
|
+
}
|
|
2349
|
+
}
|