@uipath/apollo-wind 2.66.1 → 2.67.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.
- package/dist/components/ui/attachment.cjs +174 -0
- package/dist/components/ui/attachment.d.ts +39 -0
- package/dist/components/ui/attachment.js +113 -0
- package/dist/components/ui/bubble.cjs +123 -0
- package/dist/components/ui/bubble.d.ts +28 -0
- package/dist/components/ui/bubble.js +77 -0
- package/dist/components/ui/index.cjs +268 -213
- package/dist/components/ui/index.d.ts +6 -1
- package/dist/components/ui/index.js +6 -1
- package/dist/components/ui/marker.cjs +89 -0
- package/dist/components/ui/marker.d.ts +16 -0
- package/dist/components/ui/marker.js +46 -0
- package/dist/components/ui/message-scroller/index.cjs +58 -0
- package/dist/components/ui/message-scroller/index.d.ts +1 -0
- package/dist/components/ui/message-scroller/index.js +1 -0
- package/dist/components/ui/message-scroller/message-scroller.cjs +137 -0
- package/dist/components/ui/message-scroller/message-scroller.d.ts +60 -0
- package/dist/components/ui/message-scroller/message-scroller.js +73 -0
- package/dist/components/ui/message-scroller/primitive/components.cjs +357 -0
- package/dist/components/ui/message-scroller/primitive/components.d.ts +28 -0
- package/dist/components/ui/message-scroller/primitive/components.js +299 -0
- package/dist/components/ui/message-scroller/primitive/geometry.cjs +232 -0
- package/dist/components/ui/message-scroller/primitive/geometry.d.ts +54 -0
- package/dist/components/ui/message-scroller/primitive/geometry.js +153 -0
- package/dist/components/ui/message-scroller/primitive/index.cjs +53 -0
- package/dist/components/ui/message-scroller/primitive/index.d.ts +23 -0
- package/dist/components/ui/message-scroller/primitive/index.js +10 -0
- package/dist/components/ui/message-scroller/primitive/stores.cjs +81 -0
- package/dist/components/ui/message-scroller/primitive/stores.d.ts +6 -0
- package/dist/components/ui/message-scroller/primitive/stores.js +38 -0
- package/dist/components/ui/message-scroller/primitive/types.cjs +82 -0
- package/dist/components/ui/message-scroller/primitive/types.d.ts +89 -0
- package/dist/components/ui/message-scroller/primitive/types.js +24 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-commands.cjs +213 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-commands.d.ts +18 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-commands.js +179 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-controller.cjs +474 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-controller.d.ts +6 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-controller.js +440 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-refs.cjs +124 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-refs.d.ts +52 -0
- package/dist/components/ui/message-scroller/primitive/use-message-scroller-refs.js +84 -0
- package/dist/components/ui/message-scroller/primitive/use-render.cjs +116 -0
- package/dist/components/ui/message-scroller/primitive/use-render.d.ts +21 -0
- package/dist/components/ui/message-scroller/primitive/use-render.js +76 -0
- package/dist/components/ui/message-scroller/primitive/utils.cjs +41 -0
- package/dist/components/ui/message-scroller/primitive/utils.d.ts +3 -0
- package/dist/components/ui/message-scroller/primitive/utils.js +7 -0
- package/dist/components/ui/message.cjs +96 -0
- package/dist/components/ui/message.d.ts +17 -0
- package/dist/components/ui/message.js +47 -0
- package/dist/index.cjs +164 -51
- package/dist/index.d.ts +10 -0
- package/dist/index.js +6 -1
- package/dist/styles.css +720 -0
- package/dist/tailwind.utilities.css +223 -0
- package/package.json +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { useRef } from "react";
|
|
2
|
+
import { areScrollStatesEqual, createMessageScrollerStore, createMessageScrollerVisibilityStore } from "./stores.js";
|
|
3
|
+
import { EMPTY_MESSAGE_SCROLLER_SCROLLABLE } from "./types.js";
|
|
4
|
+
function useMessageScrollerRefs({ autoScroll, defaultScrollPosition, scrollEdgeThreshold, scrollMargin, scrollPreviousItemPeek }) {
|
|
5
|
+
const autoScrollRef = useRef(autoScroll);
|
|
6
|
+
const autoscrollingRef = useRef(false);
|
|
7
|
+
const contentRef = useRef(null);
|
|
8
|
+
const defaultScrollPositionAppliedRef = useRef(false);
|
|
9
|
+
const scrollEdgeThresholdRef = useRef(scrollEdgeThreshold);
|
|
10
|
+
const itemCountRef = useRef(0);
|
|
11
|
+
const firstItemRef = useRef(null);
|
|
12
|
+
const lastScrollTopRef = useRef(0);
|
|
13
|
+
const modeRef = useRef(autoScroll ? 'following-bottom' : 'free-scrolling');
|
|
14
|
+
const messageElementsRef = useRef(new Map());
|
|
15
|
+
const pendingScrollToMessageRef = useRef(null);
|
|
16
|
+
const prependRestoreRef = useRef(null);
|
|
17
|
+
const streamingTurnRef = useRef(null);
|
|
18
|
+
const scrollPreviousItemPeekRef = useRef(scrollPreviousItemPeek);
|
|
19
|
+
const preserveScrollOnPrependRef = useRef(true);
|
|
20
|
+
const rootRef = useRef(null);
|
|
21
|
+
const scrollMarginRef = useRef(scrollMargin);
|
|
22
|
+
const pendingScrollFrameRef = useRef(null);
|
|
23
|
+
const spacerGapRef = useRef(0);
|
|
24
|
+
const spacerHeightRef = useRef(0);
|
|
25
|
+
const spacerRef = useRef(null);
|
|
26
|
+
const stateFrameRef = useRef(null);
|
|
27
|
+
const pendingDefaultScrollStoreRef = useRef(null);
|
|
28
|
+
const stateStoreRef = useRef(null);
|
|
29
|
+
const autoscrollingTimeoutRef = useRef(null);
|
|
30
|
+
const viewportRef = useRef(null);
|
|
31
|
+
const visibilityFrameRef = useRef(null);
|
|
32
|
+
const visibilityObserverRef = useRef(null);
|
|
33
|
+
const visibilityStoreRef = useRef(null);
|
|
34
|
+
const visibleMessageIdsRef = useRef(new Set());
|
|
35
|
+
const handledScrollAnchorsRef = useRef(new WeakSet());
|
|
36
|
+
if (null === pendingDefaultScrollStoreRef.current) pendingDefaultScrollStoreRef.current = createMessageScrollerStore('end' === defaultScrollPosition || 'last-anchor' === defaultScrollPosition, (current, next)=>current === next);
|
|
37
|
+
if (null === stateStoreRef.current) stateStoreRef.current = createMessageScrollerStore(EMPTY_MESSAGE_SCROLLER_SCROLLABLE, areScrollStatesEqual);
|
|
38
|
+
if (null === visibilityStoreRef.current) visibilityStoreRef.current = createMessageScrollerVisibilityStore();
|
|
39
|
+
autoScrollRef.current = autoScroll;
|
|
40
|
+
scrollEdgeThresholdRef.current = scrollEdgeThreshold;
|
|
41
|
+
scrollMarginRef.current = scrollMargin;
|
|
42
|
+
scrollPreviousItemPeekRef.current = scrollPreviousItemPeek;
|
|
43
|
+
return {
|
|
44
|
+
autoScrollRef,
|
|
45
|
+
autoscrollingRef,
|
|
46
|
+
autoscrollingTimeoutRef,
|
|
47
|
+
streamingTurnRef,
|
|
48
|
+
contentRef,
|
|
49
|
+
defaultScrollPositionAppliedRef,
|
|
50
|
+
firstItemRef,
|
|
51
|
+
itemCountRef,
|
|
52
|
+
lastScrollTopRef,
|
|
53
|
+
messageElementsRef,
|
|
54
|
+
modeRef,
|
|
55
|
+
pendingScrollFrameRef,
|
|
56
|
+
pendingScrollToMessageRef,
|
|
57
|
+
prependRestoreRef,
|
|
58
|
+
preserveScrollOnPrependRef,
|
|
59
|
+
pendingDefaultScrollStore: pendingDefaultScrollStoreRef.current,
|
|
60
|
+
rootRef,
|
|
61
|
+
scrollEdgeThresholdRef,
|
|
62
|
+
scrollMarginRef,
|
|
63
|
+
scrollPreviousItemPeekRef,
|
|
64
|
+
spacerGapRef,
|
|
65
|
+
spacerHeightRef,
|
|
66
|
+
spacerRef,
|
|
67
|
+
stateFrameRef,
|
|
68
|
+
stateStore: stateStoreRef.current,
|
|
69
|
+
viewportRef,
|
|
70
|
+
visibilityFrameRef,
|
|
71
|
+
visibilityObserverRef,
|
|
72
|
+
visibilityStore: visibilityStoreRef.current,
|
|
73
|
+
visibleMessageIdsRef,
|
|
74
|
+
handledScrollAnchorsRef
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function clearPendingDefaultScroll(refs) {
|
|
78
|
+
refs.pendingDefaultScrollStore.setSnapshot(false);
|
|
79
|
+
}
|
|
80
|
+
function markDefaultScrollPositionApplied(refs) {
|
|
81
|
+
refs.defaultScrollPositionAppliedRef.current = true;
|
|
82
|
+
clearPendingDefaultScroll(refs);
|
|
83
|
+
}
|
|
84
|
+
export { clearPendingDefaultScroll, markDefaultScrollPositionApplied, useMessageScrollerRefs };
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
composeRefs: ()=>composeRefs,
|
|
28
|
+
mergeProps: ()=>mergeProps,
|
|
29
|
+
useRender: ()=>useRender
|
|
30
|
+
});
|
|
31
|
+
const external_react_namespaceObject = require("react");
|
|
32
|
+
function useRender({ defaultTagName, props, render, state = {}, stateAttributesMapping }) {
|
|
33
|
+
const elementProps = mergeProps(getStateAttributes(state, stateAttributesMapping), props);
|
|
34
|
+
if (!render) return external_react_namespaceObject.createElement(defaultTagName, elementProps);
|
|
35
|
+
if ('function' == typeof render) return render(elementProps, state);
|
|
36
|
+
if (!external_react_namespaceObject.isValidElement(render)) return null;
|
|
37
|
+
const renderProps = render.props;
|
|
38
|
+
const renderRef = renderProps.ref ?? render.ref;
|
|
39
|
+
const propsWithRenderProps = mergeProps(elementProps, renderProps);
|
|
40
|
+
const propsWithRef = {
|
|
41
|
+
...propsWithRenderProps,
|
|
42
|
+
ref: composeRefs(elementProps.ref, renderRef)
|
|
43
|
+
};
|
|
44
|
+
return external_react_namespaceObject.cloneElement(render, propsWithRef);
|
|
45
|
+
}
|
|
46
|
+
function mergeProps(...sources) {
|
|
47
|
+
const result = {};
|
|
48
|
+
for (const source of sources){
|
|
49
|
+
if (!source) continue;
|
|
50
|
+
const sourceProps = source;
|
|
51
|
+
for (const key of Object.keys(sourceProps)){
|
|
52
|
+
const value = sourceProps[key];
|
|
53
|
+
if (void 0 === value) continue;
|
|
54
|
+
const current = result[key];
|
|
55
|
+
if ('className' === key) result[key] = [
|
|
56
|
+
current,
|
|
57
|
+
value
|
|
58
|
+
].filter(Boolean).join(' ');
|
|
59
|
+
else if ('style' === key) result[key] = {
|
|
60
|
+
...current,
|
|
61
|
+
...value
|
|
62
|
+
};
|
|
63
|
+
else if ('ref' === key) result[key] = composeRefs(current, value);
|
|
64
|
+
else if (isEventHandler(key) && 'function' == typeof current && 'function' == typeof value) result[key] = composeEventHandlers(value, current);
|
|
65
|
+
else result[key] = value;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
function getStateAttributes(state, mapping) {
|
|
71
|
+
const props = {};
|
|
72
|
+
for (const key of Object.keys(state)){
|
|
73
|
+
const value = state[key];
|
|
74
|
+
const attributes = mapping?.[key]?.(value);
|
|
75
|
+
if (attributes) {
|
|
76
|
+
Object.assign(props, attributes);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if ('slot' === key) {
|
|
80
|
+
props['data-slot'] = value;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const attribute = `data-${String(key).replace(/[A-Z]/g, (letter)=>`-${letter.toLowerCase()}`)}`;
|
|
84
|
+
if ('boolean' == typeof value) props[attribute] = value ? '' : void 0;
|
|
85
|
+
else if (null != value) props[attribute] = String(value);
|
|
86
|
+
}
|
|
87
|
+
return props;
|
|
88
|
+
}
|
|
89
|
+
function composeEventHandlers(theirs, ours) {
|
|
90
|
+
return function(event) {
|
|
91
|
+
theirs(event);
|
|
92
|
+
if (!event.defaultPrevented) ours(event);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function isEventHandler(key) {
|
|
96
|
+
return /^on[A-Z]/.test(key);
|
|
97
|
+
}
|
|
98
|
+
function composeRefs(...refs) {
|
|
99
|
+
const validRefs = refs.filter(Boolean);
|
|
100
|
+
if (0 === validRefs.length) return;
|
|
101
|
+
return (value)=>{
|
|
102
|
+
for (const ref of validRefs)if ('function' == typeof ref) ref(value);
|
|
103
|
+
else if (ref) ref.current = value;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
exports.composeRefs = __webpack_exports__.composeRefs;
|
|
107
|
+
exports.mergeProps = __webpack_exports__.mergeProps;
|
|
108
|
+
exports.useRender = __webpack_exports__.useRender;
|
|
109
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
110
|
+
"composeRefs",
|
|
111
|
+
"mergeProps",
|
|
112
|
+
"useRender"
|
|
113
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
114
|
+
Object.defineProperty(exports, '__esModule', {
|
|
115
|
+
value: true
|
|
116
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type RenderState = Record<string, unknown>;
|
|
3
|
+
type RenderFunction<TState extends RenderState> = (props: Record<string, unknown>, state: TState) => React.ReactElement | null;
|
|
4
|
+
type RenderProp<TState extends RenderState> = React.ReactElement | RenderFunction<TState>;
|
|
5
|
+
type StateAttributesMapping<TState extends RenderState> = Partial<{
|
|
6
|
+
[K in keyof TState]: (value: TState[K]) => Record<string, string | undefined> | null | undefined;
|
|
7
|
+
}>;
|
|
8
|
+
type UseRenderComponentProps<TElement extends React.ElementType, TState extends RenderState = RenderState> = React.ComponentPropsWithoutRef<TElement> & {
|
|
9
|
+
render?: RenderProp<TState>;
|
|
10
|
+
};
|
|
11
|
+
type UseRenderOptions<TElement extends React.ElementType, TState extends RenderState> = {
|
|
12
|
+
defaultTagName: TElement;
|
|
13
|
+
props?: React.ComponentPropsWithRef<TElement>;
|
|
14
|
+
render?: RenderProp<TState>;
|
|
15
|
+
state?: TState;
|
|
16
|
+
stateAttributesMapping?: StateAttributesMapping<TState>;
|
|
17
|
+
};
|
|
18
|
+
declare function useRender<TElement extends React.ElementType, TState extends RenderState = RenderState>({ defaultTagName, props, render, state, stateAttributesMapping, }: UseRenderOptions<TElement, TState>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
|
|
19
|
+
declare function mergeProps<TElement extends React.ElementType>(...sources: Array<React.ComponentPropsWithRef<TElement> | Record<string, unknown> | undefined>): React.ComponentPropsWithRef<TElement>;
|
|
20
|
+
declare function composeRefs<T>(...refs: Array<React.Ref<T> | undefined>): React.RefCallback<T> | undefined;
|
|
21
|
+
export { composeRefs, mergeProps, useRender, type UseRenderComponentProps };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { cloneElement, createElement, isValidElement } from "react";
|
|
2
|
+
function useRender({ defaultTagName, props, render, state = {}, stateAttributesMapping }) {
|
|
3
|
+
const elementProps = mergeProps(getStateAttributes(state, stateAttributesMapping), props);
|
|
4
|
+
if (!render) return createElement(defaultTagName, elementProps);
|
|
5
|
+
if ('function' == typeof render) return render(elementProps, state);
|
|
6
|
+
if (!isValidElement(render)) return null;
|
|
7
|
+
const renderProps = render.props;
|
|
8
|
+
const renderRef = renderProps.ref ?? render.ref;
|
|
9
|
+
const propsWithRenderProps = mergeProps(elementProps, renderProps);
|
|
10
|
+
const propsWithRef = {
|
|
11
|
+
...propsWithRenderProps,
|
|
12
|
+
ref: composeRefs(elementProps.ref, renderRef)
|
|
13
|
+
};
|
|
14
|
+
return cloneElement(render, propsWithRef);
|
|
15
|
+
}
|
|
16
|
+
function mergeProps(...sources) {
|
|
17
|
+
const result = {};
|
|
18
|
+
for (const source of sources){
|
|
19
|
+
if (!source) continue;
|
|
20
|
+
const sourceProps = source;
|
|
21
|
+
for (const key of Object.keys(sourceProps)){
|
|
22
|
+
const value = sourceProps[key];
|
|
23
|
+
if (void 0 === value) continue;
|
|
24
|
+
const current = result[key];
|
|
25
|
+
if ('className' === key) result[key] = [
|
|
26
|
+
current,
|
|
27
|
+
value
|
|
28
|
+
].filter(Boolean).join(' ');
|
|
29
|
+
else if ('style' === key) result[key] = {
|
|
30
|
+
...current,
|
|
31
|
+
...value
|
|
32
|
+
};
|
|
33
|
+
else if ('ref' === key) result[key] = composeRefs(current, value);
|
|
34
|
+
else if (isEventHandler(key) && 'function' == typeof current && 'function' == typeof value) result[key] = composeEventHandlers(value, current);
|
|
35
|
+
else result[key] = value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
function getStateAttributes(state, mapping) {
|
|
41
|
+
const props = {};
|
|
42
|
+
for (const key of Object.keys(state)){
|
|
43
|
+
const value = state[key];
|
|
44
|
+
const attributes = mapping?.[key]?.(value);
|
|
45
|
+
if (attributes) {
|
|
46
|
+
Object.assign(props, attributes);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
if ('slot' === key) {
|
|
50
|
+
props['data-slot'] = value;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const attribute = `data-${String(key).replace(/[A-Z]/g, (letter)=>`-${letter.toLowerCase()}`)}`;
|
|
54
|
+
if ('boolean' == typeof value) props[attribute] = value ? '' : void 0;
|
|
55
|
+
else if (null != value) props[attribute] = String(value);
|
|
56
|
+
}
|
|
57
|
+
return props;
|
|
58
|
+
}
|
|
59
|
+
function composeEventHandlers(theirs, ours) {
|
|
60
|
+
return function(event) {
|
|
61
|
+
theirs(event);
|
|
62
|
+
if (!event.defaultPrevented) ours(event);
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function isEventHandler(key) {
|
|
66
|
+
return /^on[A-Z]/.test(key);
|
|
67
|
+
}
|
|
68
|
+
function composeRefs(...refs) {
|
|
69
|
+
const validRefs = refs.filter(Boolean);
|
|
70
|
+
if (0 === validRefs.length) return;
|
|
71
|
+
return (value)=>{
|
|
72
|
+
for (const ref of validRefs)if ('function' == typeof ref) ref(value);
|
|
73
|
+
else if (ref) ref.current = value;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
export { composeRefs, mergeProps, useRender };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
useLatest: ()=>useLatest
|
|
28
|
+
});
|
|
29
|
+
const external_react_namespaceObject = require("react");
|
|
30
|
+
function useLatest(value) {
|
|
31
|
+
const ref = external_react_namespaceObject.useRef(value);
|
|
32
|
+
ref.current = value;
|
|
33
|
+
return ref;
|
|
34
|
+
}
|
|
35
|
+
exports.useLatest = __webpack_exports__.useLatest;
|
|
36
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
37
|
+
"useLatest"
|
|
38
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
39
|
+
Object.defineProperty(exports, '__esModule', {
|
|
40
|
+
value: true
|
|
41
|
+
});
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
MessageContent: ()=>MessageContent,
|
|
28
|
+
MessageAvatar: ()=>MessageAvatar,
|
|
29
|
+
MessageFooter: ()=>MessageFooter,
|
|
30
|
+
MessageGroup: ()=>MessageGroup,
|
|
31
|
+
Message: ()=>Message,
|
|
32
|
+
MessageHeader: ()=>MessageHeader
|
|
33
|
+
});
|
|
34
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
35
|
+
const external_react_namespaceObject = require("react");
|
|
36
|
+
const index_cjs_namespaceObject = require("../../lib/index.cjs");
|
|
37
|
+
const MessageGroup = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
38
|
+
ref: ref,
|
|
39
|
+
"data-slot": "message-group",
|
|
40
|
+
className: (0, index_cjs_namespaceObject.cn)('flex min-w-0 flex-col gap-2', className),
|
|
41
|
+
...props
|
|
42
|
+
}));
|
|
43
|
+
MessageGroup.displayName = 'MessageGroup';
|
|
44
|
+
const Message = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, align = 'start', ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
45
|
+
ref: ref,
|
|
46
|
+
"data-slot": "message",
|
|
47
|
+
"data-align": align,
|
|
48
|
+
className: (0, index_cjs_namespaceObject.cn)('group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse', className),
|
|
49
|
+
...props
|
|
50
|
+
}));
|
|
51
|
+
Message.displayName = 'Message';
|
|
52
|
+
const MessageAvatar = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
53
|
+
ref: ref,
|
|
54
|
+
"data-slot": "message-avatar",
|
|
55
|
+
className: (0, index_cjs_namespaceObject.cn)('flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-[[data-slot=message-footer]]/message:-translate-y-8', className),
|
|
56
|
+
...props
|
|
57
|
+
}));
|
|
58
|
+
MessageAvatar.displayName = 'MessageAvatar';
|
|
59
|
+
const MessageContent = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
60
|
+
ref: ref,
|
|
61
|
+
"data-slot": "message-content",
|
|
62
|
+
className: (0, index_cjs_namespaceObject.cn)('flex w-full min-w-0 flex-col gap-2.5 break-words group-data-[align=end]/message:*:self-end', className),
|
|
63
|
+
...props
|
|
64
|
+
}));
|
|
65
|
+
MessageContent.displayName = 'MessageContent';
|
|
66
|
+
const MessageHeader = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
67
|
+
ref: ref,
|
|
68
|
+
"data-slot": "message-header",
|
|
69
|
+
className: (0, index_cjs_namespaceObject.cn)('flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground', className),
|
|
70
|
+
...props
|
|
71
|
+
}));
|
|
72
|
+
MessageHeader.displayName = 'MessageHeader';
|
|
73
|
+
const MessageFooter = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
74
|
+
ref: ref,
|
|
75
|
+
"data-slot": "message-footer",
|
|
76
|
+
className: (0, index_cjs_namespaceObject.cn)('flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-data-[align=end]/message:justify-end', className),
|
|
77
|
+
...props
|
|
78
|
+
}));
|
|
79
|
+
MessageFooter.displayName = 'MessageFooter';
|
|
80
|
+
exports.Message = __webpack_exports__.Message;
|
|
81
|
+
exports.MessageAvatar = __webpack_exports__.MessageAvatar;
|
|
82
|
+
exports.MessageContent = __webpack_exports__.MessageContent;
|
|
83
|
+
exports.MessageFooter = __webpack_exports__.MessageFooter;
|
|
84
|
+
exports.MessageGroup = __webpack_exports__.MessageGroup;
|
|
85
|
+
exports.MessageHeader = __webpack_exports__.MessageHeader;
|
|
86
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
87
|
+
"Message",
|
|
88
|
+
"MessageAvatar",
|
|
89
|
+
"MessageContent",
|
|
90
|
+
"MessageFooter",
|
|
91
|
+
"MessageGroup",
|
|
92
|
+
"MessageHeader"
|
|
93
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
94
|
+
Object.defineProperty(exports, '__esModule', {
|
|
95
|
+
value: true
|
|
96
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Chat conversation row primitives, ported from shadcn/ui's chat components. A `Message` lays out
|
|
4
|
+
* one turn: an optional `MessageAvatar`, then `MessageContent` holding a `MessageHeader`, the body
|
|
5
|
+
* (usually a `Bubble`) and a `MessageFooter`. `align="end"` mirrors the row for the current user.
|
|
6
|
+
*/
|
|
7
|
+
declare const MessageGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export interface MessageProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
/** `end` mirrors the row so the avatar and bubble sit on the trailing edge. */
|
|
10
|
+
align?: 'start' | 'end';
|
|
11
|
+
}
|
|
12
|
+
declare const Message: React.ForwardRefExoticComponent<MessageProps & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
declare const MessageAvatar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
+
declare const MessageContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
declare const MessageHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const MessageFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
export { MessageGroup, Message, MessageAvatar, MessageContent, MessageHeader, MessageFooter };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../../lib/index.js";
|
|
4
|
+
const MessageGroup = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
5
|
+
ref: ref,
|
|
6
|
+
"data-slot": "message-group",
|
|
7
|
+
className: cn('flex min-w-0 flex-col gap-2', className),
|
|
8
|
+
...props
|
|
9
|
+
}));
|
|
10
|
+
MessageGroup.displayName = 'MessageGroup';
|
|
11
|
+
const Message = /*#__PURE__*/ forwardRef(({ className, align = 'start', ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
12
|
+
ref: ref,
|
|
13
|
+
"data-slot": "message",
|
|
14
|
+
"data-align": align,
|
|
15
|
+
className: cn('group/message relative flex w-full min-w-0 gap-2 text-sm data-[align=end]:flex-row-reverse', className),
|
|
16
|
+
...props
|
|
17
|
+
}));
|
|
18
|
+
Message.displayName = 'Message';
|
|
19
|
+
const MessageAvatar = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
20
|
+
ref: ref,
|
|
21
|
+
"data-slot": "message-avatar",
|
|
22
|
+
className: cn('flex w-fit min-w-8 shrink-0 items-center justify-center self-end overflow-hidden rounded-full bg-muted group-has-[[data-slot=message-footer]]/message:-translate-y-8', className),
|
|
23
|
+
...props
|
|
24
|
+
}));
|
|
25
|
+
MessageAvatar.displayName = 'MessageAvatar';
|
|
26
|
+
const MessageContent = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
27
|
+
ref: ref,
|
|
28
|
+
"data-slot": "message-content",
|
|
29
|
+
className: cn('flex w-full min-w-0 flex-col gap-2.5 break-words group-data-[align=end]/message:*:self-end', className),
|
|
30
|
+
...props
|
|
31
|
+
}));
|
|
32
|
+
MessageContent.displayName = 'MessageContent';
|
|
33
|
+
const MessageHeader = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
34
|
+
ref: ref,
|
|
35
|
+
"data-slot": "message-header",
|
|
36
|
+
className: cn('flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground', className),
|
|
37
|
+
...props
|
|
38
|
+
}));
|
|
39
|
+
MessageHeader.displayName = 'MessageHeader';
|
|
40
|
+
const MessageFooter = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ jsx("div", {
|
|
41
|
+
ref: ref,
|
|
42
|
+
"data-slot": "message-footer",
|
|
43
|
+
className: cn('flex max-w-full min-w-0 items-center px-3 text-xs font-medium text-muted-foreground group-data-[align=end]/message:justify-end', className),
|
|
44
|
+
...props
|
|
45
|
+
}));
|
|
46
|
+
MessageFooter.displayName = 'MessageFooter';
|
|
47
|
+
export { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader };
|