@rolder/kit 3.0.0-alpha.4 → 3.0.0-alpha.40

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.
Files changed (134) hide show
  1. package/dist/ai/index.d.ts +2 -0
  2. package/dist/ai/index.js +2 -0
  3. package/dist/ai/ui/{conversation → chat}/Empty.js +5 -4
  4. package/dist/ai/ui/chat/File.d.ts +3 -0
  5. package/dist/ai/ui/{conversation → chat}/File.js +10 -8
  6. package/dist/ai/ui/chat/FileIcon.js +43 -0
  7. package/dist/ai/ui/{conversation → chat}/Loader.js +4 -3
  8. package/dist/ai/ui/chat/Message.d.ts +3 -0
  9. package/dist/ai/ui/chat/Message.js +28 -0
  10. package/dist/ai/ui/chat/Messages.d.ts +2 -0
  11. package/dist/ai/ui/chat/Messages.js +9 -0
  12. package/dist/ai/ui/chat/Root.d.ts +8 -0
  13. package/dist/ai/ui/chat/Root.js +22 -0
  14. package/dist/ai/ui/chat/chatInput/File.js +72 -0
  15. package/dist/ai/ui/chat/chatInput/FileIcon.js +43 -0
  16. package/dist/ai/ui/{promptInput → chat/chatInput}/Footer.js +4 -1
  17. package/dist/ai/ui/chat/chatInput/Root.d.ts +9 -0
  18. package/dist/ai/ui/chat/chatInput/Root.js +25 -0
  19. package/dist/ai/ui/chat/chatInput/Submit.js +24 -0
  20. package/dist/ai/ui/{promptInput → chat/chatInput}/Textarea.js +9 -7
  21. package/dist/ai/ui/{promptInput → chat/chatInput}/index.d.ts +2 -3
  22. package/dist/ai/ui/{promptInput → chat/chatInput}/index.js +2 -2
  23. package/dist/ai/ui/chat/chatInput/store/file.d.ts +8 -0
  24. package/dist/ai/ui/chat/chatInput/store/file.js +32 -0
  25. package/dist/ai/ui/chat/chatInput/store/fileErrorNotificaton.d.ts +2 -0
  26. package/dist/ai/ui/chat/chatInput/store/fileErrorNotificaton.js +21 -0
  27. package/dist/ai/ui/chat/chatInput/store/index.d.ts +2 -0
  28. package/dist/ai/ui/chat/chatInput/store/index.js +2 -0
  29. package/dist/ai/ui/chat/chatInput/store/input.d.ts +13 -0
  30. package/dist/ai/ui/chat/chatInput/store/input.js +80 -0
  31. package/dist/ai/ui/chat/chatInput/store/parseFile.d.ts +2 -0
  32. package/dist/ai/ui/chat/chatInput/store/parseFile.js +23 -0
  33. package/dist/ai/ui/chat/index.d.ts +14 -0
  34. package/dist/ai/ui/{conversation → chat}/index.js +6 -3
  35. package/dist/ai/ui/chat/store/index.d.ts +2 -0
  36. package/dist/ai/ui/chat/store/index.js +2 -0
  37. package/dist/ai/ui/chat/store/messages.d.ts +18 -0
  38. package/dist/ai/ui/chat/store/messages.js +89 -0
  39. package/dist/ai/ui/chat/store/states.d.ts +11 -0
  40. package/dist/ai/ui/chat/store/states.js +17 -0
  41. package/dist/ai/ui/index.d.ts +1 -0
  42. package/dist/ai/ui/index.js +1 -0
  43. package/dist/ai/utils/index.d.ts +2 -0
  44. package/dist/ai/utils/index.js +2 -0
  45. package/dist/app/AppDefaults.js +1 -1
  46. package/dist/app/DefaultApp.js +1 -1
  47. package/dist/app/cookieColorSchemeManager.js +1 -1
  48. package/dist/app/defaultTheme.d.ts +1 -1
  49. package/dist/app/index.d.ts +4 -0
  50. package/dist/app/index.js +4 -0
  51. package/dist/hooks/index.d.ts +2 -0
  52. package/dist/hooks/index.js +2 -0
  53. package/dist/index.d.ts +4 -16
  54. package/dist/index.js +4 -17
  55. package/dist/styles.css +3 -3
  56. package/dist/tanstackFunctions/cookie/index.d.ts +3 -0
  57. package/dist/tanstackFunctions/cookie/index.js +4 -0
  58. package/dist/tanstackFunctions/index.d.ts +2 -0
  59. package/dist/tanstackFunctions/index.js +2 -0
  60. package/dist/tanstackFunctions/s3/getS3Client.d.ts +2 -0
  61. package/dist/tanstackFunctions/s3/getS3Client.js +18 -0
  62. package/dist/tanstackFunctions/s3/getSignedFileUrlFn.d.ts +4 -0
  63. package/dist/tanstackFunctions/s3/getSignedFileUrlFn.js +21 -0
  64. package/dist/tanstackFunctions/s3/index.d.ts +2 -0
  65. package/dist/tanstackFunctions/s3/index.js +2 -0
  66. package/dist/tanstackFunctions/s3/uploadRequest.d.ts +3 -0
  67. package/dist/tanstackFunctions/s3/uploadRequest.js +21 -0
  68. package/dist/ui/AnimatedChevron.d.ts +2 -2
  69. package/dist/ui/AnimatedChevron.js +7 -25
  70. package/dist/ui/JsonInput.js +1 -1
  71. package/dist/ui/editor/Toolbar.js +4 -22
  72. package/dist/ui/error/index.d.ts +4 -4
  73. package/dist/ui/error/index.js +5 -4
  74. package/dist/ui/form/buttons/CancelButton.js +4 -26
  75. package/dist/ui/form/buttons/SubmitButton.js +4 -29
  76. package/dist/ui/form/fields/TextPassowrdField.js +4 -26
  77. package/dist/ui/form/index.d.ts +2 -2
  78. package/dist/ui/form/index.js +3 -3
  79. package/dist/ui/hoverPaper/index.d.ts +2 -2
  80. package/dist/ui/hoverPaper/index.js +3 -2
  81. package/dist/ui/scrollArea/ScrollArea.d.ts +1 -1
  82. package/dist/ui/scrollArea/ScrollAreaButton.d.ts +1 -1
  83. package/dist/ui/scrollArea/ScrollAreaButton.js +7 -28
  84. package/package.json +40 -28
  85. package/dist/ai/ui/conversation/ConversationContext.d.ts +0 -7
  86. package/dist/ai/ui/conversation/ConversationContext.js +0 -8
  87. package/dist/ai/ui/conversation/ConversationProvider.d.ts +0 -2
  88. package/dist/ai/ui/conversation/ConversationProvider.js +0 -14
  89. package/dist/ai/ui/conversation/File.d.ts +0 -4
  90. package/dist/ai/ui/conversation/FileIcon.js +0 -225
  91. package/dist/ai/ui/conversation/Message.d.ts +0 -4
  92. package/dist/ai/ui/conversation/Message.js +0 -25
  93. package/dist/ai/ui/conversation/Root.d.ts +0 -2
  94. package/dist/ai/ui/conversation/Root.js +0 -26
  95. package/dist/ai/ui/conversation/index.d.ts +0 -13
  96. package/dist/ai/ui/conversation/types.d.ts +0 -7
  97. package/dist/ai/ui/conversation/types.js +0 -0
  98. package/dist/ai/ui/conversation/useChatMessage.d.ts +0 -2
  99. package/dist/ai/ui/conversation/useChatMessage.js +0 -12
  100. package/dist/ai/ui/promptInput/File.js +0 -117
  101. package/dist/ai/ui/promptInput/FileIcon.js +0 -225
  102. package/dist/ai/ui/promptInput/PromptInputContext.d.ts +0 -12
  103. package/dist/ai/ui/promptInput/PromptInputContext.js +0 -8
  104. package/dist/ai/ui/promptInput/PromptInputProvider.d.ts +0 -2
  105. package/dist/ai/ui/promptInput/PromptInputProvider.js +0 -50
  106. package/dist/ai/ui/promptInput/Root.d.ts +0 -3
  107. package/dist/ai/ui/promptInput/Root.js +0 -17
  108. package/dist/ai/ui/promptInput/Submit.js +0 -40
  109. package/dist/ai/ui/promptInput/types.d.ts +0 -11
  110. package/dist/ai/ui/promptInput/types.js +0 -0
  111. package/dist/surreal/connection.d.ts +0 -9
  112. package/dist/surreal/connection.js +0 -49
  113. package/dist/surreal/deafaultCrud.d.ts +0 -2
  114. package/dist/surreal/deafaultCrud.js +0 -18
  115. package/dist/surreal/deserialize.d.ts +0 -17
  116. package/dist/surreal/deserialize.js +0 -46
  117. package/dist/surreal/encryption.d.ts +0 -6
  118. package/dist/surreal/encryption.js +0 -30
  119. package/dist/ui/editor/styles.module.js +0 -7
  120. package/dist/ui/editor/styles_module.css +0 -16
  121. /package/dist/ai/ui/{conversation → chat}/Empty.d.ts +0 -0
  122. /package/dist/ai/ui/{conversation → chat}/FileIcon.d.ts +0 -0
  123. /package/dist/ai/ui/{conversation → chat}/Loader.d.ts +0 -0
  124. /package/dist/ai/ui/{promptInput → chat/chatInput}/File.d.ts +0 -0
  125. /package/dist/ai/ui/{promptInput → chat/chatInput}/FileIcon.d.ts +0 -0
  126. /package/dist/ai/ui/{promptInput → chat/chatInput}/Footer.d.ts +0 -0
  127. /package/dist/ai/ui/{promptInput → chat/chatInput}/Submit.d.ts +0 -0
  128. /package/dist/ai/ui/{promptInput → chat/chatInput}/Textarea.d.ts +0 -0
  129. /package/dist/{functions → tanstackFunctions/cookie}/getCookie.d.ts +0 -0
  130. /package/dist/{functions → tanstackFunctions/cookie}/getCookie.js +0 -0
  131. /package/dist/{functions → tanstackFunctions/cookie}/setCookie.d.ts +0 -0
  132. /package/dist/{functions → tanstackFunctions/cookie}/setCookie.js +0 -0
  133. /package/dist/{functions → tanstackFunctions/cookie}/setCookies.d.ts +0 -0
  134. /package/dist/{functions → tanstackFunctions/cookie}/setCookies.js +0 -0
@@ -1,12 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { parseAiMessagePart } from "../../utils/parseAiMessagePart.js";
3
- const useChatMessage = (part)=>{
4
- const [parsedText, setParsedText] = useState('');
5
- useEffect(()=>{
6
- parseAiMessagePart(part).then((i)=>setParsedText(i.text));
7
- }, [
8
- part
9
- ]);
10
- return parsedText;
11
- };
12
- export { useChatMessage };
@@ -1,117 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { ActionIcon, FileButton, Tooltip } from "@mantine/core";
3
- import { useRef } from "react";
4
- import { FileIcon } from "./FileIcon.js";
5
- import { usePromptInput } from "./PromptInputContext.js";
6
- const File = (props)=>{
7
- const resetRef = useRef(null);
8
- const { file, setFile, accept, submiting, uploading } = usePromptInput();
9
- return /*#__PURE__*/ jsx(FileButton, {
10
- resetRef: resetRef,
11
- onChange: async (file)=>{
12
- if (file) setFile(file);
13
- },
14
- accept: accept,
15
- disabled: submiting || uploading,
16
- ...props,
17
- children: (props)=>/*#__PURE__*/ jsxs(ActionIcon.Group, {
18
- children: [
19
- /*#__PURE__*/ jsx(ActionIcon, {
20
- size: "lg",
21
- variant: "default",
22
- disabled: submiting,
23
- loading: uploading,
24
- classNames: {
25
- root: 'rolder-prompt-input-file-action-action'
26
- },
27
- ...props,
28
- children: /*#__PURE__*/ jsxs("svg", {
29
- xmlns: "http://www.w3.org/2000/svg",
30
- width: "24",
31
- height: "24",
32
- viewBox: "0 0 24 24",
33
- fill: "none",
34
- stroke: "currentColor",
35
- "stroke-width": "1.5",
36
- "stroke-linecap": "round",
37
- "stroke-linejoin": "round",
38
- role: "img",
39
- "aria-label": "Paperclip",
40
- children: [
41
- /*#__PURE__*/ jsx("path", {
42
- stroke: "none",
43
- d: "M0 0h24v24H0z",
44
- fill: "none"
45
- }),
46
- /*#__PURE__*/ jsx("path", {
47
- d: "M15 7l-6.5 6.5a1.5 1.5 0 0 0 3 3l6.5 -6.5a3 3 0 0 0 -6 -6l-6.5 6.5a4.5 4.5 0 0 0 9 9l6.5 -6.5"
48
- })
49
- ]
50
- })
51
- }),
52
- file && /*#__PURE__*/ jsxs(Fragment, {
53
- children: [
54
- /*#__PURE__*/ jsx(Tooltip, {
55
- label: file.name,
56
- openDelay: 500,
57
- children: /*#__PURE__*/ jsx(ActionIcon.GroupSection, {
58
- variant: "default",
59
- size: "lg",
60
- children: /*#__PURE__*/ jsx(FileIcon, {
61
- mimeType: file.type
62
- })
63
- })
64
- }),
65
- /*#__PURE__*/ jsx(ActionIcon, {
66
- size: "lg",
67
- variant: "default",
68
- classNames: {
69
- root: 'rolder-prompt-input-file-action-action'
70
- },
71
- onClick: ()=>{
72
- resetRef.current?.();
73
- setFile(void 0);
74
- },
75
- children: /*#__PURE__*/ jsxs("svg", {
76
- xmlns: "http://www.w3.org/2000/svg",
77
- width: "24",
78
- height: "24",
79
- viewBox: "0 0 24 24",
80
- fill: "none",
81
- stroke: "currentColor",
82
- "stroke-width": "1.5",
83
- "stroke-linecap": "round",
84
- "stroke-linejoin": "round",
85
- role: "img",
86
- "aria-label": "Trash",
87
- children: [
88
- /*#__PURE__*/ jsx("path", {
89
- stroke: "none",
90
- d: "M0 0h24v24H0z",
91
- fill: "none"
92
- }),
93
- /*#__PURE__*/ jsx("path", {
94
- d: "M4 7l16 0"
95
- }),
96
- /*#__PURE__*/ jsx("path", {
97
- d: "M10 11l0 6"
98
- }),
99
- /*#__PURE__*/ jsx("path", {
100
- d: "M14 11l0 6"
101
- }),
102
- /*#__PURE__*/ jsx("path", {
103
- d: "M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"
104
- }),
105
- /*#__PURE__*/ jsx("path", {
106
- d: "M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"
107
- })
108
- ]
109
- })
110
- })
111
- ]
112
- })
113
- ]
114
- })
115
- });
116
- };
117
- export { File };
@@ -1,225 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- const FileIcon = ({ mimeType })=>{
3
- switch(true){
4
- case mimeType.includes('image/'):
5
- return /*#__PURE__*/ jsxs("svg", {
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: "24",
8
- height: "24",
9
- viewBox: "0 0 24 24",
10
- fill: "none",
11
- stroke: "var(--mantine-color-dimmed)",
12
- "stroke-width": "1.5",
13
- "stroke-linecap": "round",
14
- "stroke-linejoin": "round",
15
- role: "img",
16
- "aria-label": "Image",
17
- children: [
18
- /*#__PURE__*/ jsx("path", {
19
- stroke: "none",
20
- d: "M0 0h24v24H0z",
21
- fill: "none"
22
- }),
23
- /*#__PURE__*/ jsx("path", {
24
- d: "M15 8h.01"
25
- }),
26
- /*#__PURE__*/ jsx("path", {
27
- d: "M3 6a3 3 0 0 1 3 -3h12a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3h-12a3 3 0 0 1 -3 -3v-12"
28
- }),
29
- /*#__PURE__*/ jsx("path", {
30
- d: "M3 16l5 -5c.928 -.893 2.072 -.893 3 0l5 5"
31
- }),
32
- /*#__PURE__*/ jsx("path", {
33
- d: "M14 14l1 -1c.928 -.893 2.072 -.893 3 0l3 3"
34
- })
35
- ]
36
- });
37
- case mimeType.includes('application/pdf'):
38
- return /*#__PURE__*/ jsxs("svg", {
39
- xmlns: "http://www.w3.org/2000/svg",
40
- width: "24",
41
- height: "24",
42
- viewBox: "0 0 24 24",
43
- fill: "none",
44
- stroke: "var(--mantine-color-dimmed)",
45
- "stroke-width": "1.5",
46
- "stroke-linecap": "round",
47
- "stroke-linejoin": "round",
48
- role: "img",
49
- "aria-label": "FilePdf",
50
- children: [
51
- /*#__PURE__*/ jsx("path", {
52
- stroke: "none",
53
- d: "M0 0h24v24H0z",
54
- fill: "none"
55
- }),
56
- /*#__PURE__*/ jsx("path", {
57
- d: "M14 3v4a1 1 0 0 0 1 1h4"
58
- }),
59
- /*#__PURE__*/ jsx("path", {
60
- d: "M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"
61
- }),
62
- /*#__PURE__*/ jsx("path", {
63
- d: "M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"
64
- }),
65
- /*#__PURE__*/ jsx("path", {
66
- d: "M17 18h2"
67
- }),
68
- /*#__PURE__*/ jsx("path", {
69
- d: "M20 15h-3v6"
70
- }),
71
- /*#__PURE__*/ jsx("path", {
72
- d: "M11 15v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1"
73
- })
74
- ]
75
- });
76
- case mimeType.includes('application/vnd.openxmlformats-officedocument.wordprocessingml.document'):
77
- return /*#__PURE__*/ jsxs("svg", {
78
- xmlns: "http://www.w3.org/2000/svg",
79
- width: "24",
80
- height: "24",
81
- viewBox: "0 0 24 24",
82
- fill: "none",
83
- stroke: "var(--mantine-color-dimmed)",
84
- "stroke-width": "1.5",
85
- "stroke-linecap": "round",
86
- "stroke-linejoin": "round",
87
- role: "img",
88
- "aria-label": "FileDoc",
89
- children: [
90
- /*#__PURE__*/ jsx("path", {
91
- stroke: "none",
92
- d: "M0 0h24v24H0z",
93
- fill: "none"
94
- }),
95
- /*#__PURE__*/ jsx("path", {
96
- d: "M14 3v4a1 1 0 0 0 1 1h4"
97
- }),
98
- /*#__PURE__*/ jsx("path", {
99
- d: "M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"
100
- }),
101
- /*#__PURE__*/ jsx("path", {
102
- d: "M5 15v6h1a2 2 0 0 0 2 -2v-2a2 2 0 0 0 -2 -2h-1"
103
- }),
104
- /*#__PURE__*/ jsx("path", {
105
- d: "M20 16.5a1.5 1.5 0 0 0 -3 0v3a1.5 1.5 0 0 0 3 0"
106
- }),
107
- /*#__PURE__*/ jsx("path", {
108
- d: "M12.5 15a1.5 1.5 0 0 1 1.5 1.5v3a1.5 1.5 0 0 1 -3 0v-3a1.5 1.5 0 0 1 1.5 -1.5"
109
- })
110
- ]
111
- });
112
- case mimeType.includes('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'):
113
- return /*#__PURE__*/ jsxs("svg", {
114
- xmlns: "http://www.w3.org/2000/svg",
115
- width: "24",
116
- height: "24",
117
- viewBox: "0 0 24 24",
118
- fill: "none",
119
- stroke: "var(--mantine-color-dimmed)",
120
- "stroke-width": "1.5",
121
- "stroke-linecap": "round",
122
- "stroke-linejoin": "round",
123
- role: "img",
124
- "aria-label": "FileXls",
125
- children: [
126
- /*#__PURE__*/ jsx("path", {
127
- stroke: "none",
128
- d: "M0 0h24v24H0z",
129
- fill: "none"
130
- }),
131
- /*#__PURE__*/ jsx("path", {
132
- d: "M14 3v4a1 1 0 0 0 1 1h4"
133
- }),
134
- /*#__PURE__*/ jsx("path", {
135
- d: "M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"
136
- }),
137
- /*#__PURE__*/ jsx("path", {
138
- d: "M4 15l4 6"
139
- }),
140
- /*#__PURE__*/ jsx("path", {
141
- d: "M4 21l4 -6"
142
- }),
143
- /*#__PURE__*/ jsx("path", {
144
- d: "M17 20.25c0 .414 .336 .75 .75 .75h1.25a1 1 0 0 0 1 -1v-1a1 1 0 0 0 -1 -1h-1a1 1 0 0 1 -1 -1v-1a1 1 0 0 1 1 -1h1.25a.75 .75 0 0 1 .75 .75"
145
- }),
146
- /*#__PURE__*/ jsx("path", {
147
- d: "M11 15v6h3"
148
- })
149
- ]
150
- });
151
- case mimeType.includes('application/vnd.openxmlformats-officedocument.presentationml.presentation'):
152
- return /*#__PURE__*/ jsxs("svg", {
153
- xmlns: "http://www.w3.org/2000/svg",
154
- width: "24",
155
- height: "24",
156
- viewBox: "0 0 24 24",
157
- fill: "none",
158
- stroke: "var(--mantine-color-dimmed)",
159
- "stroke-width": "1.5",
160
- "stroke-linecap": "round",
161
- "stroke-linejoin": "round",
162
- role: "img",
163
- "aria-label": "FilePpt",
164
- children: [
165
- /*#__PURE__*/ jsx("path", {
166
- stroke: "none",
167
- d: "M0 0h24v24H0z",
168
- fill: "none"
169
- }),
170
- /*#__PURE__*/ jsx("path", {
171
- d: "M14 3v4a1 1 0 0 0 1 1h4"
172
- }),
173
- /*#__PURE__*/ jsx("path", {
174
- d: "M14 3v4a1 1 0 0 0 1 1h4"
175
- }),
176
- /*#__PURE__*/ jsx("path", {
177
- d: "M5 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"
178
- }),
179
- /*#__PURE__*/ jsx("path", {
180
- d: "M11 18h1.5a1.5 1.5 0 0 0 0 -3h-1.5v6"
181
- }),
182
- /*#__PURE__*/ jsx("path", {
183
- d: "M16.5 15h3"
184
- }),
185
- /*#__PURE__*/ jsx("path", {
186
- d: "M18 15v6"
187
- }),
188
- /*#__PURE__*/ jsx("path", {
189
- d: "M5 12v-7a2 2 0 0 1 2 -2h7l5 5v4"
190
- })
191
- ]
192
- });
193
- default:
194
- return /*#__PURE__*/ jsxs("svg", {
195
- xmlns: "http://www.w3.org/2000/svg",
196
- width: "24",
197
- height: "24",
198
- viewBox: "0 0 24 24",
199
- fill: "none",
200
- stroke: "var(--mantine-color-dimmed)",
201
- "stroke-width": "1.5",
202
- "stroke-linecap": "round",
203
- "stroke-linejoin": "round",
204
- role: "img",
205
- "aria-label": "File",
206
- children: [
207
- /*#__PURE__*/ jsx("path", {
208
- stroke: "none",
209
- d: "M0 0h24v24H0z",
210
- fill: "none"
211
- }),
212
- /*#__PURE__*/ jsx("path", {
213
- d: "M15 3v4a1 1 0 0 0 1 1h4"
214
- }),
215
- /*#__PURE__*/ jsx("path", {
216
- d: "M18 17h-7a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h4l5 5v7a2 2 0 0 1 -2 2"
217
- }),
218
- /*#__PURE__*/ jsx("path", {
219
- d: "M16 17v2a2 2 0 0 1 -2 2h-7a2 2 0 0 1 -2 -2v-10a2 2 0 0 1 2 -2h2"
220
- })
221
- ]
222
- });
223
- }
224
- };
225
- export { FileIcon };
@@ -1,12 +0,0 @@
1
- export interface PromptInputContext {
2
- text: string;
3
- setText: (text: string) => void;
4
- file?: File;
5
- setFile: (file?: File) => void;
6
- onSubmit: () => void;
7
- submiting: boolean;
8
- uploading: boolean;
9
- accept?: string;
10
- }
11
- export declare const PromptInputContext: import("react").Context<PromptInputContext | null>;
12
- export declare const usePromptInput: () => PromptInputContext;
@@ -1,8 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- const PromptInputContext = createContext(null);
3
- const usePromptInput = ()=>{
4
- const context = useContext(PromptInputContext);
5
- if (!context) throw new Error('usePromptInput must be used within a PromptInputProvider');
6
- return context;
7
- };
8
- export { PromptInputContext, usePromptInput };
@@ -1,2 +0,0 @@
1
- import type { PromptInputProps } from './types';
2
- export declare const Provider: ({ children, onSubmit, submiting, uploading, accept, }: PromptInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,50 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { PromptInputContext } from "./PromptInputContext.js";
4
- const Provider = ({ children, onSubmit, submiting, uploading, accept = [
5
- 'text',
6
- 'image',
7
- 'pdf'
8
- ] })=>{
9
- const [text, setText] = useState('');
10
- const [file, setFile] = useState();
11
- const value = {
12
- text,
13
- setText,
14
- file,
15
- setFile,
16
- onSubmit: ()=>{
17
- if (text.trim()) {
18
- onSubmit({
19
- text: text.trim(),
20
- file
21
- });
22
- setText('');
23
- setFile(void 0);
24
- }
25
- },
26
- submiting,
27
- uploading,
28
- accept: accept.map((type)=>{
29
- switch(type){
30
- case 'text':
31
- return 'text/plain';
32
- case 'image':
33
- return 'image/*';
34
- case 'pdf':
35
- return 'application/pdf';
36
- case 'excel':
37
- return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
38
- case 'word':
39
- return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
40
- default:
41
- return type;
42
- }
43
- }).join(',')
44
- };
45
- return /*#__PURE__*/ jsx(PromptInputContext.Provider, {
46
- value: value,
47
- children: children
48
- });
49
- };
50
- export { Provider };
@@ -1,3 +0,0 @@
1
- import { type PaperProps } from '@mantine/core';
2
- import type { PromptInputProps } from './types';
3
- export declare const Root: ({ className, onSubmit, submiting, uploading, accept, ...props }: PaperProps & PromptInputProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,17 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Paper } from "@mantine/core";
3
- import clsx from "clsx";
4
- import { Provider } from "./PromptInputProvider.js";
5
- const Root = ({ className, onSubmit, submiting, uploading, accept, ...props })=>/*#__PURE__*/ jsx(Provider, {
6
- onSubmit: onSubmit,
7
- submiting: submiting,
8
- uploading: uploading,
9
- accept: accept,
10
- children: /*#__PURE__*/ jsx(Paper, {
11
- radius: "md",
12
- withBorder: true,
13
- className: clsx('rolder-prompt-input-root', className),
14
- ...props
15
- })
16
- });
17
- export { Root };
@@ -1,40 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { ActionIcon } from "@mantine/core";
3
- import { usePromptInput } from "./PromptInputContext.js";
4
- const Submit = ({ children, ...props })=>{
5
- const Icon = /*#__PURE__*/ jsxs("svg", {
6
- xmlns: "http://www.w3.org/2000/svg",
7
- width: "24",
8
- height: "24",
9
- viewBox: "0 0 24 24",
10
- fill: "none",
11
- stroke: "currentColor",
12
- "stroke-width": "1.5",
13
- "stroke-linecap": "round",
14
- "stroke-linejoin": "round",
15
- role: "img",
16
- "aria-label": "Submit",
17
- children: [
18
- /*#__PURE__*/ jsx("path", {
19
- stroke: "none",
20
- d: "M0 0h24v24H0z",
21
- fill: "none"
22
- }),
23
- /*#__PURE__*/ jsx("path", {
24
- d: "M9 20v-8h-3.586a1 1 0 0 1 -.707 -1.707l6.586 -6.586a1 1 0 0 1 1.414 0l6.586 6.586a1 1 0 0 1 -.707 1.707h-3.586v8a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1"
25
- })
26
- ]
27
- });
28
- const { onSubmit, submiting, uploading } = usePromptInput();
29
- return /*#__PURE__*/ jsx(ActionIcon, {
30
- "aria-label": "Submit",
31
- variant: "light",
32
- size: "lg",
33
- onClick: onSubmit,
34
- disabled: uploading,
35
- loading: submiting,
36
- ...props,
37
- children: children ?? Icon
38
- });
39
- };
40
- export { Submit };
@@ -1,11 +0,0 @@
1
- export type Accept = 'text' | 'image' | 'pdf' | 'excel' | 'word';
2
- export interface PromptInputProps {
3
- children: React.ReactNode;
4
- onSubmit: ({ text, file }: {
5
- text: string;
6
- file?: File;
7
- }) => void;
8
- submiting: boolean;
9
- uploading: boolean;
10
- accept?: Accept[];
11
- }
File without changes
@@ -1,9 +0,0 @@
1
- import { type CodecOptions, Surreal } from 'surrealdb';
2
- export declare const getDB: (params?: {
3
- url?: string;
4
- namespace?: string;
5
- database?: string;
6
- username?: string;
7
- password?: string;
8
- codecOptions?: CodecOptions;
9
- } | undefined) => Promise<Surreal>;
@@ -1,49 +0,0 @@
1
- import { createServerOnlyFn } from "@tanstack/react-start";
2
- import { getCookie } from "@tanstack/react-start/server";
3
- import { DateTime, Surreal } from "surrealdb";
4
- let db = null;
5
- const getDB = createServerOnlyFn(async (params = {})=>{
6
- if (db?.isConnected) return db;
7
- const locale = getCookie('locale') || 'ru-RU';
8
- const timeZone = getCookie('tz') || 'UTC';
9
- const instance = new Surreal({
10
- codecOptions: params.codecOptions || {
11
- valueDecodeVisitor (value) {
12
- if (value instanceof DateTime) return new Date(value.toDate()).toLocaleDateString(locale, {
13
- hour: 'numeric',
14
- minute: 'numeric',
15
- timeZone
16
- });
17
- return value;
18
- }
19
- }
20
- });
21
- try {
22
- const url = params.url || process.env.SURREALDB_URL;
23
- if (!url) throw new Error('Missing required SurrealDB URL');
24
- const namespace = params.namespace || process.env.SURREALDB_NAMESPACE;
25
- if (!namespace) throw new Error('Missing required SurrealDB namespace');
26
- const database = params.database || process.env.SURREALDB_DATABASE;
27
- if (!database) throw new Error('Missing required SurrealDB database');
28
- const username = params.username || process.env.SURREALDB_USERNAME;
29
- const password = params.password || process.env.SURREALDB_PASSWORD;
30
- if (username && password) await instance.connect(url, {
31
- authentication: {
32
- username,
33
- password
34
- }
35
- });
36
- else await instance.connect(url);
37
- await instance.use({
38
- namespace,
39
- database
40
- });
41
- db = instance;
42
- return instance;
43
- } catch (error) {
44
- console.error('Failed to connect to SurrealDB:', error);
45
- db = null;
46
- throw error;
47
- }
48
- });
49
- export { getDB };
@@ -1,2 +0,0 @@
1
- export declare const surrealDeleteFn: import("@tanstack/start-client-core").RequiredFetcher<undefined, (data: string) => string, Promise<void>>;
2
- export declare const surrealUnsubscribeFn: import("@tanstack/start-client-core").RequiredFetcher<undefined, (data: string) => string, Promise<void>>;
@@ -1,18 +0,0 @@
1
- import { createServerFn } from "@tanstack/react-start";
2
- import { getDB } from "./connection.js";
3
- import { deserialize } from "./deserialize.js";
4
- const surrealDeleteFn = createServerFn({
5
- method: 'POST'
6
- }).inputValidator((data)=>data).handler(async ({ data })=>{
7
- const db = await getDB();
8
- const id = deserialize(data);
9
- await db.delete(id);
10
- });
11
- const surrealUnsubscribeFn = createServerFn({
12
- method: 'POST'
13
- }).inputValidator((data)=>data).handler(async ({ data })=>{
14
- const db = await getDB();
15
- const live = await db.liveOf(data);
16
- await live.kill();
17
- });
18
- export { surrealDeleteFn, surrealUnsubscribeFn };
@@ -1,17 +0,0 @@
1
- import { RecordId } from 'surrealdb';
2
- /**
3
- * Type that converts specified string paths to RecordId, others stay as their original types
4
- */
5
- type DeserializeResult<T, IdPaths extends string = never> = T extends string ? RecordId<string> : T extends (infer U)[] ? U extends object ? {
6
- [K in keyof U]: K extends IdPaths ? RecordId<string> : U[K];
7
- }[] : DeserializeResult<U, IdPaths>[] : T extends object ? T extends Date ? T : {
8
- [K in keyof T]: K extends IdPaths ? RecordId<string> : T[K];
9
- } : T;
10
- /**
11
- * Deserializes DTO back to SurrealDB Record recursively based on specified ID paths
12
- */
13
- export declare function deserialize<T, K extends keyof T & string>(dto: T[], idPaths: K[]): DeserializeResult<T, K>[];
14
- export declare function deserialize<T, K extends keyof T & string>(dto: T, idPaths: K[]): DeserializeResult<T, K>;
15
- export declare function deserialize<T>(dto: T[]): DeserializeResult<T>[];
16
- export declare function deserialize<T>(dto: T): DeserializeResult<T>;
17
- export {};
@@ -1,46 +0,0 @@
1
- import { RecordId } from "surrealdb";
2
- const extractTableName = (str)=>{
3
- const match = str.match(/^([^:]+):/);
4
- return match ? match[1] : null;
5
- };
6
- const isRecordIdFormat = (str)=>/^[^:]+:.+$/.test(str);
7
- function deserialize(dto, idPaths) {
8
- if (Array.isArray(dto)) return dto.map((item)=>convertStringsToRecordIds(item, idPaths || []));
9
- return convertStringsToRecordIds(dto, idPaths || []);
10
- }
11
- const convertStringsToRecordIds = (obj, idPaths, currentPath = '')=>{
12
- if (null == obj) return obj;
13
- if (Array.isArray(obj)) {
14
- if (idPaths.includes(currentPath)) return obj.map((item)=>{
15
- if ('string' == typeof item && isRecordIdFormat(item)) {
16
- const tableName = extractTableName(item);
17
- if (tableName) return new RecordId(tableName, item.split(':')[1]);
18
- }
19
- return item;
20
- });
21
- return obj.map((item, index)=>convertStringsToRecordIds(item, idPaths, `${currentPath}[${index}]`));
22
- }
23
- if ('object' == typeof obj && !(obj instanceof Date)) {
24
- const result = {};
25
- for (const [key, value] of Object.entries(obj)){
26
- const fieldPath = currentPath ? `${currentPath}.${key}` : key;
27
- if ('string' == typeof value) {
28
- const shouldConvert = idPaths.includes(fieldPath) && isRecordIdFormat(value);
29
- if (shouldConvert) {
30
- const tableName = extractTableName(value);
31
- if (tableName) result[key] = new RecordId(tableName, value.split(':')[1]);
32
- else result[key] = value;
33
- } else result[key] = value;
34
- } else result[key] = convertStringsToRecordIds(value, idPaths, fieldPath);
35
- }
36
- return result;
37
- }
38
- if ('string' == typeof obj) {
39
- if (0 === idPaths.length && isRecordIdFormat(obj)) {
40
- const tableName = extractTableName(obj);
41
- if (tableName) return new RecordId(tableName, obj.split(':')[1]);
42
- }
43
- }
44
- return obj;
45
- };
46
- export { deserialize };