@epicbagel/saas-kit 1.0.0 → 1.2.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/README.md +72 -3
- package/THIRD_PARTY_NOTICES.md +230 -7
- package/dist/chunk-2AU7ZRGX.cjs +96 -0
- package/dist/chunk-2BTDBZYN.cjs +154 -0
- package/dist/chunk-2HV2KKOE.cjs +38 -0
- package/dist/chunk-2KFZQJH5.cjs +29 -0
- package/dist/chunk-32Q4XOTU.cjs +204 -0
- package/dist/chunk-42RTTHND.js +29 -0
- package/dist/chunk-6FC65AZQ.js +38 -0
- package/dist/chunk-B765DSRG.cjs +66 -0
- package/dist/chunk-ELPV44S6.cjs +44 -0
- package/dist/chunk-EOUO3ORO.cjs +244 -0
- package/dist/chunk-EZCKWTH7.js +204 -0
- package/dist/chunk-F366BHWH.js +116 -0
- package/dist/chunk-GFG2R5BZ.js +132 -0
- package/dist/chunk-HAC32ALJ.js +244 -0
- package/dist/chunk-INNGGLMZ.js +44 -0
- package/dist/chunk-IW4ZIXXG.js +66 -0
- package/dist/chunk-JZOBIPFC.js +96 -0
- package/dist/chunk-KADJ56AH.cjs +416 -0
- package/dist/chunk-KENBU3NV.cjs +27 -0
- package/dist/chunk-M7FYGAGO.js +416 -0
- package/dist/chunk-MHYAVXOE.js +159 -0
- package/dist/chunk-RIWLAMME.cjs +159 -0
- package/dist/chunk-SUB4BAYE.cjs +73 -0
- package/dist/chunk-THWIJG5C.js +73 -0
- package/dist/chunk-V4YWTRLD.cjs +116 -0
- package/dist/chunk-VY5U4VGV.js +27 -0
- package/dist/chunk-XABXUP6L.cjs +132 -0
- package/dist/chunk-Z45YKVAM.js +154 -0
- package/dist/primitives/action-dock.cjs +8 -0
- package/dist/primitives/action-dock.d.cts +10 -0
- package/dist/primitives/action-dock.d.ts +10 -0
- package/dist/primitives/action-dock.js +8 -0
- package/dist/primitives/attachment.cjs +25 -203
- package/dist/primitives/attachment.d.cts +1 -1
- package/dist/primitives/attachment.d.ts +1 -1
- package/dist/primitives/attachment.js +12 -190
- package/dist/primitives/badge.d.cts +1 -1
- package/dist/primitives/badge.d.ts +1 -1
- package/dist/primitives/board-view.cjs +3 -3
- package/dist/primitives/board-view.js +2 -2
- package/dist/primitives/bubble.cjs +14 -0
- package/dist/primitives/bubble.d.cts +21 -0
- package/dist/primitives/bubble.d.ts +21 -0
- package/dist/primitives/bubble.js +14 -0
- package/dist/primitives/button.d.cts +3 -3
- package/dist/primitives/button.d.ts +3 -3
- package/dist/primitives/chat.cjs +881 -0
- package/dist/primitives/chat.d.cts +345 -0
- package/dist/primitives/chat.d.ts +345 -0
- package/dist/primitives/chat.js +881 -0
- package/dist/primitives/connection.cjs +6 -6
- package/dist/primitives/connection.js +7 -7
- package/dist/primitives/file-dropzone.cjs +7 -107
- package/dist/primitives/file-dropzone.d.cts +66 -3
- package/dist/primitives/file-dropzone.d.ts +66 -3
- package/dist/primitives/file-dropzone.js +13 -113
- package/dist/primitives/input-group.cjs +21 -0
- package/dist/primitives/input-group.d.cts +20 -0
- package/dist/primitives/input-group.d.ts +20 -0
- package/dist/primitives/input-group.js +21 -0
- package/dist/primitives/item.cjs +197 -0
- package/dist/primitives/item.d.cts +28 -0
- package/dist/primitives/item.d.ts +28 -0
- package/dist/primitives/item.js +197 -0
- package/dist/primitives/lazy-markdown.cjs +10 -0
- package/dist/primitives/lazy-markdown.d.cts +20 -0
- package/dist/primitives/lazy-markdown.d.ts +20 -0
- package/dist/primitives/lazy-markdown.js +10 -0
- package/dist/primitives/markdown.cjs +17 -0
- package/dist/primitives/markdown.d.cts +32 -0
- package/dist/primitives/markdown.d.ts +32 -0
- package/dist/primitives/markdown.js +17 -0
- package/dist/primitives/marker.cjs +14 -0
- package/dist/primitives/marker.d.cts +15 -0
- package/dist/primitives/marker.d.ts +15 -0
- package/dist/primitives/marker.js +14 -0
- package/dist/primitives/message-scroller.cjs +26 -0
- package/dist/primitives/message-scroller.d.cts +16 -0
- package/dist/primitives/message-scroller.d.ts +16 -0
- package/dist/primitives/message-scroller.js +26 -0
- package/dist/primitives/message.cjs +7 -84
- package/dist/primitives/message.js +8 -85
- package/dist/primitives/resource-list.cjs +3 -3
- package/dist/primitives/resource-list.js +2 -2
- package/dist/primitives/rich-text.cjs +3 -38
- package/dist/primitives/rich-text.js +3 -38
- package/dist/primitives/section-header.d.cts +1 -1
- package/dist/primitives/section-header.d.ts +1 -1
- package/dist/primitives/spinner.cjs +23 -0
- package/dist/primitives/spinner.d.cts +6 -0
- package/dist/primitives/spinner.d.ts +6 -0
- package/dist/primitives/spinner.js +23 -0
- package/dist/primitives/suggestion.cjs +11 -0
- package/dist/primitives/suggestion.d.cts +19 -0
- package/dist/primitives/suggestion.d.ts +19 -0
- package/dist/primitives/suggestion.js +11 -0
- package/dist/primitives/switch-field.cjs +2 -2
- package/dist/primitives/switch-field.js +3 -3
- package/dist/primitives/textarea.cjs +4 -33
- package/dist/primitives/textarea.js +3 -32
- package/dist/primitives/toggle-group.d.cts +2 -2
- package/dist/primitives/toggle-group.d.ts +2 -2
- package/dist/primitives/toggle.d.cts +2 -2
- package/dist/primitives/toggle.d.ts +2 -2
- package/dist/primitives/trace.cjs +23 -0
- package/dist/primitives/trace.d.cts +22 -0
- package/dist/primitives/trace.d.ts +22 -0
- package/dist/primitives/trace.js +23 -0
- package/dist/primitives/voice-dictation-button.cjs +5 -239
- package/dist/primitives/voice-dictation-button.js +4 -238
- package/package.json +125 -2
- package/src/styles/components/bubble.css +81 -0
- package/src/styles/components/marker.css +27 -0
- package/src/styles/components/message-scroller.css +11 -0
- package/src/styles/components.css +3 -0
- package/src/styles/utilities.css +3 -2
- package/dist/{chunk-UGF2K6NR.js → chunk-HRLP4BHJ.js} +6 -6
- package/dist/{chunk-RWWOFWLP.cjs → chunk-IH3COANJ.cjs} +3 -3
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk2HV2KKOEcjs = require('./chunk-2HV2KKOE.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkPQUSJEXLcjs = require('./chunk-PQUSJEXL.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkL4DH72UFcjs = require('./chunk-L4DH72UF.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
14
|
+
|
|
15
|
+
// src/primitives/input-group.tsx
|
|
16
|
+
var _classvarianceauthority = require('class-variance-authority');
|
|
17
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
18
|
+
function InputGroup({ className, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
20
|
+
"div",
|
|
21
|
+
{
|
|
22
|
+
"data-slot": "input-group",
|
|
23
|
+
role: "group",
|
|
24
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
25
|
+
"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5",
|
|
26
|
+
className
|
|
27
|
+
),
|
|
28
|
+
...props
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
var inputGroupAddonVariants = _classvarianceauthority.cva.call(void 0,
|
|
33
|
+
"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",
|
|
34
|
+
{
|
|
35
|
+
variants: {
|
|
36
|
+
align: {
|
|
37
|
+
"inline-start": "order-first pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem]",
|
|
38
|
+
"inline-end": "order-last pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem]",
|
|
39
|
+
"block-start": "order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2",
|
|
40
|
+
"block-end": "order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
defaultVariants: {
|
|
44
|
+
align: "inline-start"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
function InputGroupAddon({
|
|
49
|
+
className,
|
|
50
|
+
align = "inline-start",
|
|
51
|
+
...props
|
|
52
|
+
}) {
|
|
53
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
role: "group",
|
|
57
|
+
"data-slot": "input-group-addon",
|
|
58
|
+
"data-align": align,
|
|
59
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, inputGroupAddonVariants({ align }), className),
|
|
60
|
+
onClick: (e) => {
|
|
61
|
+
if (e.target.closest("button")) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
_optionalChain([e, 'access', _ => _.currentTarget, 'access', _2 => _2.parentElement, 'optionalAccess', _3 => _3.querySelector, 'call', _4 => _4("input"), 'optionalAccess', _5 => _5.focus, 'call', _6 => _6()]);
|
|
65
|
+
},
|
|
66
|
+
...props
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
var inputGroupButtonVariants = _classvarianceauthority.cva.call(void 0,
|
|
71
|
+
"flex items-center gap-2 text-sm shadow-none",
|
|
72
|
+
{
|
|
73
|
+
variants: {
|
|
74
|
+
size: {
|
|
75
|
+
xs: "h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
|
|
76
|
+
sm: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
|
|
77
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
78
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
defaultVariants: {
|
|
82
|
+
size: "xs"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
function InputGroupButton({
|
|
87
|
+
className,
|
|
88
|
+
type = "button",
|
|
89
|
+
variant = "ghost",
|
|
90
|
+
size = "xs",
|
|
91
|
+
...props
|
|
92
|
+
}) {
|
|
93
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
94
|
+
_chunkL4DH72UFcjs.Button,
|
|
95
|
+
{
|
|
96
|
+
type,
|
|
97
|
+
size: "bare",
|
|
98
|
+
"data-size": size,
|
|
99
|
+
variant,
|
|
100
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, inputGroupButtonVariants({ size }), className),
|
|
101
|
+
...props
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
function InputGroupText({ className, ...props }) {
|
|
106
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
107
|
+
"span",
|
|
108
|
+
{
|
|
109
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
110
|
+
"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
|
|
111
|
+
className
|
|
112
|
+
),
|
|
113
|
+
...props
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
function InputGroupInput({
|
|
118
|
+
className,
|
|
119
|
+
...props
|
|
120
|
+
}) {
|
|
121
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
122
|
+
_chunkPQUSJEXLcjs.Input,
|
|
123
|
+
{
|
|
124
|
+
"data-slot": "input-group-control",
|
|
125
|
+
controlSize: "sm",
|
|
126
|
+
surface: "ghost",
|
|
127
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
128
|
+
"min-w-0 flex-1 rounded-none border-0 bg-transparent px-2.5 py-1 shadow-none ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 aria-invalid:ring-0 dark:bg-transparent",
|
|
129
|
+
className
|
|
130
|
+
),
|
|
131
|
+
...props
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
function InputGroupTextarea({
|
|
136
|
+
className,
|
|
137
|
+
...props
|
|
138
|
+
}) {
|
|
139
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
140
|
+
_chunk2HV2KKOEcjs.Textarea,
|
|
141
|
+
{
|
|
142
|
+
"data-slot": "input-group-control",
|
|
143
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
144
|
+
"field-sizing-content min-h-16 flex-1 resize-none rounded-none border-0 bg-transparent px-2.5 py-2 shadow-none ring-0 focus-visible:ring-0 focus-visible:ring-offset-0 aria-invalid:ring-0 dark:bg-transparent",
|
|
145
|
+
className
|
|
146
|
+
),
|
|
147
|
+
...props
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
exports.InputGroup = InputGroup; exports.InputGroupAddon = InputGroupAddon; exports.InputGroupButton = InputGroupButton; exports.InputGroupText = InputGroupText; exports.InputGroupInput = InputGroupInput; exports.InputGroupTextarea = InputGroupTextarea;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkL4DH72UFcjs = require('./chunk-L4DH72UF.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
8
|
+
|
|
9
|
+
// src/primitives/suggestion.tsx
|
|
10
|
+
var _classvarianceauthority = require('class-variance-authority');
|
|
11
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
12
|
+
var suggestionsVariants = _classvarianceauthority.cva.call(void 0, "group/suggestions", {
|
|
13
|
+
variants: {
|
|
14
|
+
layout: {
|
|
15
|
+
row: "flex scroll-fade-x scrollbar-none gap-2 overflow-x-auto overscroll-x-contain",
|
|
16
|
+
wrap: "flex flex-wrap gap-2",
|
|
17
|
+
grid: "grid grid-cols-2 gap-2"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
layout: "row"
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
function Suggestions({
|
|
25
|
+
className,
|
|
26
|
+
layout = "row",
|
|
27
|
+
...props
|
|
28
|
+
}) {
|
|
29
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
"data-slot": "suggestions",
|
|
33
|
+
"data-layout": layout,
|
|
34
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, suggestionsVariants({ layout }), className),
|
|
35
|
+
...props
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
function Suggestion({
|
|
40
|
+
suggestion,
|
|
41
|
+
onClick,
|
|
42
|
+
className,
|
|
43
|
+
children,
|
|
44
|
+
type = "button",
|
|
45
|
+
variant = "outline",
|
|
46
|
+
size = "sm",
|
|
47
|
+
...props
|
|
48
|
+
}) {
|
|
49
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
50
|
+
_chunkL4DH72UFcjs.Button,
|
|
51
|
+
{
|
|
52
|
+
type,
|
|
53
|
+
"data-slot": "suggestion",
|
|
54
|
+
variant,
|
|
55
|
+
size,
|
|
56
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
57
|
+
"shrink-0 group-data-[layout=grid]/suggestions:justify-start group-data-[layout=grid]/suggestions:text-left group-data-[layout=grid]/suggestions:leading-snug group-data-[layout=grid]/suggestions:whitespace-normal",
|
|
58
|
+
// A prompt longer than the line wraps inside its chip rather than
|
|
59
|
+
// running out of the row.
|
|
60
|
+
"group-data-[layout=wrap]/suggestions:max-w-full group-data-[layout=wrap]/suggestions:text-left group-data-[layout=wrap]/suggestions:whitespace-normal",
|
|
61
|
+
className
|
|
62
|
+
),
|
|
63
|
+
onClick: () => _optionalChain([onClick, 'optionalCall', _ => _(suggestion)]),
|
|
64
|
+
...props,
|
|
65
|
+
children: _nullishCoalesce(children, () => ( suggestion))
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
exports.Suggestions = Suggestions; exports.Suggestion = Suggestion;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
Button
|
|
4
|
+
} from "./chunk-HQRWRRZJ.js";
|
|
5
|
+
import {
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-G6SRSWXB.js";
|
|
8
|
+
|
|
9
|
+
// src/primitives/suggestion.tsx
|
|
10
|
+
import { cva } from "class-variance-authority";
|
|
11
|
+
import { jsx } from "react/jsx-runtime";
|
|
12
|
+
var suggestionsVariants = cva("group/suggestions", {
|
|
13
|
+
variants: {
|
|
14
|
+
layout: {
|
|
15
|
+
row: "flex scroll-fade-x scrollbar-none gap-2 overflow-x-auto overscroll-x-contain",
|
|
16
|
+
wrap: "flex flex-wrap gap-2",
|
|
17
|
+
grid: "grid grid-cols-2 gap-2"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
layout: "row"
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
function Suggestions({
|
|
25
|
+
className,
|
|
26
|
+
layout = "row",
|
|
27
|
+
...props
|
|
28
|
+
}) {
|
|
29
|
+
return /* @__PURE__ */ jsx(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
"data-slot": "suggestions",
|
|
33
|
+
"data-layout": layout,
|
|
34
|
+
className: cn(suggestionsVariants({ layout }), className),
|
|
35
|
+
...props
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
function Suggestion({
|
|
40
|
+
suggestion,
|
|
41
|
+
onClick,
|
|
42
|
+
className,
|
|
43
|
+
children,
|
|
44
|
+
type = "button",
|
|
45
|
+
variant = "outline",
|
|
46
|
+
size = "sm",
|
|
47
|
+
...props
|
|
48
|
+
}) {
|
|
49
|
+
return /* @__PURE__ */ jsx(
|
|
50
|
+
Button,
|
|
51
|
+
{
|
|
52
|
+
type,
|
|
53
|
+
"data-slot": "suggestion",
|
|
54
|
+
variant,
|
|
55
|
+
size,
|
|
56
|
+
className: cn(
|
|
57
|
+
"shrink-0 group-data-[layout=grid]/suggestions:justify-start group-data-[layout=grid]/suggestions:text-left group-data-[layout=grid]/suggestions:leading-snug group-data-[layout=grid]/suggestions:whitespace-normal",
|
|
58
|
+
// A prompt longer than the line wraps inside its chip rather than
|
|
59
|
+
// running out of the row.
|
|
60
|
+
"group-data-[layout=wrap]/suggestions:max-w-full group-data-[layout=wrap]/suggestions:text-left group-data-[layout=wrap]/suggestions:whitespace-normal",
|
|
61
|
+
className
|
|
62
|
+
),
|
|
63
|
+
onClick: () => onClick?.(suggestion),
|
|
64
|
+
...props,
|
|
65
|
+
children: children ?? suggestion
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export {
|
|
71
|
+
Suggestions,
|
|
72
|
+
Suggestion
|
|
73
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
5
|
+
|
|
6
|
+
// src/primitives/bubble.tsx
|
|
7
|
+
var _classvarianceauthority = require('class-variance-authority');
|
|
8
|
+
var _radixui = require('radix-ui');
|
|
9
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
10
|
+
function BubbleGroup({ className, ...props }) {
|
|
11
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12
|
+
"div",
|
|
13
|
+
{
|
|
14
|
+
"data-slot": "bubble-group",
|
|
15
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, "cn-bubble-group flex min-w-0 flex-col", className),
|
|
16
|
+
...props
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
var bubbleVariants = _classvarianceauthority.cva.call(void 0,
|
|
21
|
+
"cn-bubble group/bubble relative flex w-fit min-w-0 flex-col",
|
|
22
|
+
{
|
|
23
|
+
variants: {
|
|
24
|
+
variant: {
|
|
25
|
+
default: "cn-bubble-variant-default",
|
|
26
|
+
secondary: "cn-bubble-variant-secondary",
|
|
27
|
+
muted: "cn-bubble-variant-muted",
|
|
28
|
+
tinted: "cn-bubble-variant-tinted",
|
|
29
|
+
outline: "cn-bubble-variant-outline",
|
|
30
|
+
ghost: "cn-bubble-variant-ghost",
|
|
31
|
+
destructive: "cn-bubble-variant-destructive"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
defaultVariants: {
|
|
35
|
+
variant: "default"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
function Bubble({
|
|
40
|
+
variant = "default",
|
|
41
|
+
align = "start",
|
|
42
|
+
className,
|
|
43
|
+
...props
|
|
44
|
+
}) {
|
|
45
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
46
|
+
"div",
|
|
47
|
+
{
|
|
48
|
+
"data-slot": "bubble",
|
|
49
|
+
"data-variant": variant,
|
|
50
|
+
"data-align": align,
|
|
51
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, bubbleVariants({ variant }), className),
|
|
52
|
+
...props
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
function BubbleContent({
|
|
57
|
+
asChild = false,
|
|
58
|
+
className,
|
|
59
|
+
...props
|
|
60
|
+
}) {
|
|
61
|
+
const Comp = asChild ? _radixui.Slot.Root : "div";
|
|
62
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
63
|
+
Comp,
|
|
64
|
+
{
|
|
65
|
+
"data-slot": "bubble-content",
|
|
66
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
67
|
+
"cn-bubble-content w-fit max-w-full min-w-0 overflow-hidden wrap-break-word [button]:text-left [button,a]:transition-colors",
|
|
68
|
+
className
|
|
69
|
+
),
|
|
70
|
+
...props
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
var bubbleReactionsVariants = _classvarianceauthority.cva.call(void 0,
|
|
75
|
+
"cn-bubble-reactions absolute z-10 flex w-fit items-center justify-center",
|
|
76
|
+
{
|
|
77
|
+
variants: {
|
|
78
|
+
side: {
|
|
79
|
+
top: "cn-bubble-reactions-side-top",
|
|
80
|
+
bottom: "cn-bubble-reactions-side-bottom"
|
|
81
|
+
},
|
|
82
|
+
align: {
|
|
83
|
+
start: "cn-bubble-reactions-align-start",
|
|
84
|
+
end: "cn-bubble-reactions-align-end"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
defaultVariants: {
|
|
88
|
+
side: "bottom",
|
|
89
|
+
align: "end"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
function BubbleReactions({
|
|
94
|
+
side = "bottom",
|
|
95
|
+
align = "end",
|
|
96
|
+
className,
|
|
97
|
+
...props
|
|
98
|
+
}) {
|
|
99
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
"data-slot": "bubble-reactions",
|
|
103
|
+
"data-align": align,
|
|
104
|
+
"data-side": side,
|
|
105
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0, bubbleReactionsVariants({ side, align }), className),
|
|
106
|
+
...props
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
exports.BubbleGroup = BubbleGroup; exports.Bubble = Bubble; exports.BubbleContent = BubbleContent; exports.BubbleReactions = BubbleReactions;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
RichText
|
|
4
|
+
} from "./chunk-INNGGLMZ.js";
|
|
5
|
+
import {
|
|
6
|
+
cn
|
|
7
|
+
} from "./chunk-G6SRSWXB.js";
|
|
8
|
+
|
|
9
|
+
// src/primitives/lazy-markdown.tsx
|
|
10
|
+
import { lazy, Suspense } from "react";
|
|
11
|
+
import { jsx } from "react/jsx-runtime";
|
|
12
|
+
var Markdown = lazy(
|
|
13
|
+
() => import("./primitives/markdown.js").then((module) => ({ default: module.Markdown }))
|
|
14
|
+
);
|
|
15
|
+
function LazyMarkdown({ children, components, className, ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx(
|
|
17
|
+
Suspense,
|
|
18
|
+
{
|
|
19
|
+
fallback: /* @__PURE__ */ jsx(RichText, { ...props, className: cn("whitespace-pre-wrap", className), children }),
|
|
20
|
+
children: /* @__PURE__ */ jsx(Markdown, { ...props, className, components, children })
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
LazyMarkdown
|
|
27
|
+
};
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkL4DH72UFcjs = require('./chunk-L4DH72UF.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkKWLSBTB2cjs = require('./chunk-KWLSBTB2.cjs');
|
|
8
|
+
|
|
9
|
+
// src/primitives/message-scroller.tsx
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _messagescroller = require('@shadcn/react/message-scroller');
|
|
16
|
+
var _lucidereact = require('lucide-react');
|
|
17
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
18
|
+
function MessageScrollerProvider(props) {
|
|
19
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _messagescroller.MessageScroller.Provider, { ...props });
|
|
20
|
+
}
|
|
21
|
+
function MessageScroller({
|
|
22
|
+
className,
|
|
23
|
+
...props
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
26
|
+
_messagescroller.MessageScroller.Root,
|
|
27
|
+
{
|
|
28
|
+
"data-slot": "message-scroller",
|
|
29
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
30
|
+
"cn-message-scroller group/message-scroller relative flex size-full min-h-0 flex-col overflow-hidden",
|
|
31
|
+
className
|
|
32
|
+
),
|
|
33
|
+
...props
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
function MessageScrollerViewport({
|
|
38
|
+
className,
|
|
39
|
+
...props
|
|
40
|
+
}) {
|
|
41
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
42
|
+
_messagescroller.MessageScroller.Viewport,
|
|
43
|
+
{
|
|
44
|
+
"data-slot": "message-scroller-viewport",
|
|
45
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
46
|
+
// @shadcn/react 0.3: while an automatic scroll runs the scrollbar goes
|
|
47
|
+
// transparent rather than away (so the gutter, and the text, never
|
|
48
|
+
// shift), and the viewport stays invisible until its opening scroll
|
|
49
|
+
// position is applied, so a long thread never flashes its first turn.
|
|
50
|
+
"cn-message-scroller-viewport size-full min-h-0 min-w-0 scroll-fade-b scrollbar-thin scrollbar-gutter-stable overflow-y-auto overscroll-contain contain-content data-autoscrolling:scrollbar-thumb-transparent data-autoscrolling:scrollbar-track-transparent data-pending-scroll:invisible",
|
|
51
|
+
className
|
|
52
|
+
),
|
|
53
|
+
...props
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
function MessageScrollerContent({
|
|
58
|
+
className,
|
|
59
|
+
...props
|
|
60
|
+
}) {
|
|
61
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
62
|
+
_messagescroller.MessageScroller.Content,
|
|
63
|
+
{
|
|
64
|
+
"data-slot": "message-scroller-content",
|
|
65
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
66
|
+
"cn-message-scroller-content flex h-max min-h-full flex-col",
|
|
67
|
+
className
|
|
68
|
+
),
|
|
69
|
+
...props
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
function MessageScrollerItem({
|
|
74
|
+
className,
|
|
75
|
+
scrollAnchor = false,
|
|
76
|
+
...props
|
|
77
|
+
}) {
|
|
78
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
79
|
+
_messagescroller.MessageScroller.Item,
|
|
80
|
+
{
|
|
81
|
+
"data-slot": "message-scroller-item",
|
|
82
|
+
scrollAnchor,
|
|
83
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
84
|
+
"cn-message-scroller-item min-w-0 shrink-0 [contain-intrinsic-size:auto_10rem] [content-visibility:auto]",
|
|
85
|
+
className
|
|
86
|
+
),
|
|
87
|
+
...props
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
function MessageScrollerButton({
|
|
92
|
+
direction = "end",
|
|
93
|
+
className,
|
|
94
|
+
children,
|
|
95
|
+
render,
|
|
96
|
+
variant = "secondary",
|
|
97
|
+
size = "icon-sm",
|
|
98
|
+
...props
|
|
99
|
+
}) {
|
|
100
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
101
|
+
_messagescroller.MessageScroller.Button,
|
|
102
|
+
{
|
|
103
|
+
"data-slot": "message-scroller-button",
|
|
104
|
+
"data-direction": direction,
|
|
105
|
+
"data-variant": variant,
|
|
106
|
+
"data-size": size,
|
|
107
|
+
direction,
|
|
108
|
+
className: _chunkKWLSBTB2cjs.cn.call(void 0,
|
|
109
|
+
"cn-message-scroller-button absolute inset-s-1/2 -translate-x-1/2 border-border bg-background text-foreground transition-[translate,scale,opacity] duration-200 hover:bg-muted hover:text-foreground data-[active=false]:pointer-events-none data-[active=false]:scale-95 data-[active=false]:opacity-0 data-[active=false]:duration-400 data-[active=false]:ease-[cubic-bezier(0.7,0,0.84,0)] data-[active=true]:translate-y-0 data-[active=true]:scale-100 data-[active=true]:opacity-100 data-[active=true]:ease-[cubic-bezier(0.23,1,0.32,1)] data-[direction=end]:bottom-4 data-[direction=end]:data-[active=false]:translate-y-full data-[direction=start]:top-4 data-[direction=start]:data-[active=false]:-translate-y-full rtl:translate-x-1/2 data-[direction=start]:[&_svg]:rotate-180",
|
|
110
|
+
className
|
|
111
|
+
),
|
|
112
|
+
render: _nullishCoalesce(render, () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkL4DH72UFcjs.Button, { variant, size }))),
|
|
113
|
+
...props,
|
|
114
|
+
children: _nullishCoalesce(children, () => ( /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
115
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ArrowDown, { className: "h-4 w-4" }),
|
|
116
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "sr-only", children: direction === "end" ? "Scroll to end" : "Scroll to start" })
|
|
117
|
+
] })))
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
exports.useMessageScroller = _messagescroller.useMessageScroller; exports.useMessageScrollerScrollable = _messagescroller.useMessageScrollerScrollable; exports.useMessageScrollerVisibility = _messagescroller.useMessageScrollerVisibility; exports.MessageScrollerProvider = MessageScrollerProvider; exports.MessageScroller = MessageScroller; exports.MessageScrollerViewport = MessageScrollerViewport; exports.MessageScrollerContent = MessageScrollerContent; exports.MessageScrollerItem = MessageScrollerItem; exports.MessageScrollerButton = MessageScrollerButton;
|