@rolder/kit 3.0.0-alpha.7 → 3.0.0-alpha.8

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 (263) hide show
  1. package/package.json +1 -4
  2. package/rslib.config.ts +21 -0
  3. package/src/ai/ui/conversation/ConversationContext.ts +21 -0
  4. package/src/ai/ui/conversation/ConversationProvider.tsx +21 -0
  5. package/src/ai/ui/conversation/Empty.tsx +15 -0
  6. package/src/ai/ui/conversation/File.tsx +40 -0
  7. package/src/ai/ui/conversation/FileIcon.tsx +143 -0
  8. package/src/ai/ui/conversation/Loader.tsx +8 -0
  9. package/src/ai/ui/conversation/Message.tsx +34 -0
  10. package/src/ai/ui/conversation/Root.tsx +24 -0
  11. package/src/ai/ui/conversation/index.ts +16 -0
  12. package/{dist/ai/ui/conversation/types.d.ts → src/ai/ui/conversation/types.ts} +5 -4
  13. package/src/ai/ui/conversation/useChatMessage.ts +13 -0
  14. package/src/ai/ui/promptInput/File.tsx +98 -0
  15. package/src/ai/ui/promptInput/FileIcon.tsx +149 -0
  16. package/src/ai/ui/promptInput/Footer.tsx +5 -0
  17. package/src/ai/ui/promptInput/PromptInputContext.ts +24 -0
  18. package/src/ai/ui/promptInput/PromptInputProvider.tsx +54 -0
  19. package/src/ai/ui/promptInput/Root.tsx +29 -0
  20. package/src/ai/ui/promptInput/Submit.tsx +39 -0
  21. package/src/ai/ui/promptInput/Textarea.tsx +39 -0
  22. package/src/ai/ui/promptInput/index.ts +15 -0
  23. package/src/ai/ui/promptInput/types.ts +9 -0
  24. package/src/ai/utils/convertFileUIPartBlobToDataURL.ts +29 -0
  25. package/src/ai/utils/parseAiMessagePart.ts +19 -0
  26. package/src/app/AppDefaults.tsx +21 -0
  27. package/src/app/DefaultApp.tsx +50 -0
  28. package/src/app/cookieColorSchemeManager.ts +70 -0
  29. package/src/app/defaultRequestMiddlewares.ts +22 -0
  30. package/src/app/defaultTheme.ts +22 -0
  31. package/src/functions/getCookie.ts +36 -0
  32. package/src/functions/setCookie.ts +29 -0
  33. package/src/functions/setCookies.ts +24 -0
  34. package/src/hooks/useMutation.ts +14 -0
  35. package/src/hooks/useMutationWithInvalidate.ts +23 -0
  36. package/{dist/index.d.ts → src/index.ts} +45 -5
  37. package/{dist → src}/styles.css +21 -11
  38. package/src/surreal/connection.ts +72 -0
  39. package/src/surreal/deafaultCrud.ts +25 -0
  40. package/src/surreal/deserialize.ts +144 -0
  41. package/src/surreal/encryption.ts +51 -0
  42. package/src/ui/AnimatedChevron.tsx +32 -0
  43. package/src/ui/JsonInput.tsx +52 -0
  44. package/src/ui/RouterLink.tsx +78 -0
  45. package/src/ui/editor/Content.tsx +11 -0
  46. package/src/ui/editor/Provider.tsx +96 -0
  47. package/src/ui/editor/Root.tsx +25 -0
  48. package/src/ui/editor/Toolbar.tsx +92 -0
  49. package/src/ui/editor/index.ts +13 -0
  50. package/src/ui/editor/types.ts +7 -0
  51. package/src/ui/error/DefaultError.tsx +60 -0
  52. package/src/ui/error/DefaultNotFound.tsx +19 -0
  53. package/src/ui/error/Forbidden.tsx +18 -0
  54. package/src/ui/error/defaultErrorNotification.ts +9 -0
  55. package/src/ui/form/blurOnError.ts +21 -0
  56. package/src/ui/form/buttons/CancelButton.tsx +42 -0
  57. package/src/ui/form/buttons/SubmitButton.tsx +43 -0
  58. package/src/ui/form/buttons/SubscribeActionIcon.tsx +18 -0
  59. package/src/ui/form/buttons/SubscribeButton.tsx +17 -0
  60. package/src/ui/form/context.ts +45 -0
  61. package/src/ui/form/fields/JsonField.tsx +16 -0
  62. package/src/ui/form/fields/MultiSelectField.tsx +17 -0
  63. package/src/ui/form/fields/NumberField.tsx +17 -0
  64. package/src/ui/form/fields/PassowrdField.tsx +20 -0
  65. package/src/ui/form/fields/SelectField.tsx +17 -0
  66. package/src/ui/form/fields/SwitchField.tsx +17 -0
  67. package/src/ui/form/fields/TextField.tsx +17 -0
  68. package/src/ui/form/fields/TextPassowrdField.tsx +51 -0
  69. package/src/ui/form/fields/TextareaField.tsx +17 -0
  70. package/src/ui/form/fieldsSchema.ts +24 -0
  71. package/src/ui/hoverPaper/HoverPaper.tsx +17 -0
  72. package/src/ui/hoverPaper/usePaperHover.ts +9 -0
  73. package/src/ui/saveInput/JsonInput.tsx +40 -0
  74. package/src/ui/saveInput/NumberInput.tsx +40 -0
  75. package/src/ui/saveInput/SaveInput.tsx +15 -0
  76. package/src/ui/saveInput/Select.tsx +41 -0
  77. package/src/ui/saveInput/Switch.tsx +46 -0
  78. package/src/ui/saveInput/TextInput.tsx +40 -0
  79. package/src/ui/saveInput/Textarea.tsx +40 -0
  80. package/src/ui/scrollArea/ARCH.md +204 -0
  81. package/src/ui/scrollArea/README.md +369 -0
  82. package/{dist/ui/scrollArea/ScrollArea.d.ts → src/ui/scrollArea/ScrollArea.tsx} +41 -10
  83. package/src/ui/scrollArea/ScrollAreaButton.tsx +56 -0
  84. package/src/ui/scrollArea/ScrollAreaContent.tsx +36 -0
  85. package/{dist/ui/scrollArea/context.d.ts → src/ui/scrollArea/context.tsx} +18 -3
  86. package/src/ui/scrollArea/index.ts +10 -0
  87. package/src/ui/scrollArea/types.ts +77 -0
  88. package/src/ui/scrollArea/useScrollArea.ts +227 -0
  89. package/tsconfig.json +14 -0
  90. package/dist/ai/ui/conversation/ConversationContext.d.ts +0 -7
  91. package/dist/ai/ui/conversation/ConversationContext.js +0 -8
  92. package/dist/ai/ui/conversation/ConversationProvider.d.ts +0 -2
  93. package/dist/ai/ui/conversation/ConversationProvider.js +0 -14
  94. package/dist/ai/ui/conversation/Empty.d.ts +0 -1
  95. package/dist/ai/ui/conversation/Empty.js +0 -21
  96. package/dist/ai/ui/conversation/File.d.ts +0 -4
  97. package/dist/ai/ui/conversation/File.js +0 -42
  98. package/dist/ai/ui/conversation/FileIcon.d.ts +0 -3
  99. package/dist/ai/ui/conversation/FileIcon.js +0 -225
  100. package/dist/ai/ui/conversation/Loader.d.ts +0 -2
  101. package/dist/ai/ui/conversation/Loader.js +0 -12
  102. package/dist/ai/ui/conversation/Message.d.ts +0 -4
  103. package/dist/ai/ui/conversation/Message.js +0 -25
  104. package/dist/ai/ui/conversation/Root.d.ts +0 -2
  105. package/dist/ai/ui/conversation/Root.js +0 -26
  106. package/dist/ai/ui/conversation/index.d.ts +0 -13
  107. package/dist/ai/ui/conversation/index.js +0 -14
  108. package/dist/ai/ui/conversation/types.js +0 -0
  109. package/dist/ai/ui/conversation/useChatMessage.d.ts +0 -2
  110. package/dist/ai/ui/conversation/useChatMessage.js +0 -12
  111. package/dist/ai/ui/promptInput/File.d.ts +0 -2
  112. package/dist/ai/ui/promptInput/File.js +0 -117
  113. package/dist/ai/ui/promptInput/FileIcon.d.ts +0 -3
  114. package/dist/ai/ui/promptInput/FileIcon.js +0 -225
  115. package/dist/ai/ui/promptInput/Footer.d.ts +0 -2
  116. package/dist/ai/ui/promptInput/Footer.js +0 -8
  117. package/dist/ai/ui/promptInput/PromptInputContext.d.ts +0 -12
  118. package/dist/ai/ui/promptInput/PromptInputContext.js +0 -8
  119. package/dist/ai/ui/promptInput/PromptInputProvider.d.ts +0 -2
  120. package/dist/ai/ui/promptInput/PromptInputProvider.js +0 -50
  121. package/dist/ai/ui/promptInput/Root.d.ts +0 -3
  122. package/dist/ai/ui/promptInput/Root.js +0 -17
  123. package/dist/ai/ui/promptInput/Submit.d.ts +0 -2
  124. package/dist/ai/ui/promptInput/Submit.js +0 -40
  125. package/dist/ai/ui/promptInput/Textarea.d.ts +0 -2
  126. package/dist/ai/ui/promptInput/Textarea.js +0 -33
  127. package/dist/ai/ui/promptInput/index.d.ts +0 -8
  128. package/dist/ai/ui/promptInput/index.js +0 -13
  129. package/dist/ai/ui/promptInput/types.d.ts +0 -11
  130. package/dist/ai/ui/promptInput/types.js +0 -0
  131. package/dist/ai/utils/convertFileUIPartBlobToDataURL.d.ts +0 -5
  132. package/dist/ai/utils/convertFileUIPartBlobToDataURL.js +0 -21
  133. package/dist/ai/utils/parseAiMessagePart.d.ts +0 -2
  134. package/dist/ai/utils/parseAiMessagePart.js +0 -12
  135. package/dist/app/AppDefaults.d.ts +0 -3
  136. package/dist/app/AppDefaults.js +0 -27
  137. package/dist/app/DefaultApp.d.ts +0 -6
  138. package/dist/app/DefaultApp.js +0 -43
  139. package/dist/app/cookieColorSchemeManager.d.ts +0 -6
  140. package/dist/app/cookieColorSchemeManager.js +0 -46
  141. package/dist/app/defaultRequestMiddlewares.d.ts +0 -4
  142. package/dist/app/defaultRequestMiddlewares.js +0 -24
  143. package/dist/app/defaultTheme.d.ts +0 -141
  144. package/dist/app/defaultTheme.js +0 -24
  145. package/dist/functions/getCookie.d.ts +0 -3
  146. package/dist/functions/getCookie.js +0 -8
  147. package/dist/functions/setCookie.d.ts +0 -10
  148. package/dist/functions/setCookie.js +0 -19
  149. package/dist/functions/setCookies.d.ts +0 -14
  150. package/dist/functions/setCookies.js +0 -13
  151. package/dist/hooks/useMutation.d.ts +0 -4
  152. package/dist/hooks/useMutation.js +0 -8
  153. package/dist/hooks/useMutationWithInvalidate.d.ts +0 -4
  154. package/dist/hooks/useMutationWithInvalidate.js +0 -16
  155. package/dist/index.js +0 -26
  156. package/dist/surreal/connection.d.ts +0 -9
  157. package/dist/surreal/connection.js +0 -49
  158. package/dist/surreal/deafaultCrud.d.ts +0 -2
  159. package/dist/surreal/deafaultCrud.js +0 -18
  160. package/dist/surreal/deserialize.d.ts +0 -17
  161. package/dist/surreal/deserialize.js +0 -46
  162. package/dist/surreal/encryption.d.ts +0 -6
  163. package/dist/surreal/encryption.js +0 -30
  164. package/dist/ui/AnimatedChevron.d.ts +0 -6
  165. package/dist/ui/AnimatedChevron.js +0 -31
  166. package/dist/ui/JsonInput.d.ts +0 -2
  167. package/dist/ui/JsonInput.js +0 -45
  168. package/dist/ui/RouterLink.d.ts +0 -16
  169. package/dist/ui/RouterLink.js +0 -36
  170. package/dist/ui/editor/Content.d.ts +0 -3
  171. package/dist/ui/editor/Content.js +0 -13
  172. package/dist/ui/editor/Provider.d.ts +0 -17
  173. package/dist/ui/editor/Provider.js +0 -80
  174. package/dist/ui/editor/Root.d.ts +0 -2
  175. package/dist/ui/editor/Root.js +0 -18
  176. package/dist/ui/editor/Toolbar.d.ts +0 -5
  177. package/dist/ui/editor/Toolbar.js +0 -156
  178. package/dist/ui/editor/index.d.ts +0 -12
  179. package/dist/ui/editor/index.js +0 -11
  180. package/dist/ui/editor/types.d.ts +0 -7
  181. package/dist/ui/editor/types.js +0 -0
  182. package/dist/ui/error/DefaultError.d.ts +0 -2
  183. package/dist/ui/error/DefaultError.js +0 -62
  184. package/dist/ui/error/DefaultNotFound.d.ts +0 -1
  185. package/dist/ui/error/DefaultNotFound.js +0 -37
  186. package/dist/ui/error/Forbidden.d.ts +0 -1
  187. package/dist/ui/error/Forbidden.js +0 -32
  188. package/dist/ui/error/defaultErrorNotification.d.ts +0 -1
  189. package/dist/ui/error/defaultErrorNotification.js +0 -8
  190. package/dist/ui/error/index.js +0 -5
  191. package/dist/ui/form/blurOnError.d.ts +0 -4
  192. package/dist/ui/form/blurOnError.js +0 -11
  193. package/dist/ui/form/buttons/CancelButton.d.ts +0 -5
  194. package/dist/ui/form/buttons/CancelButton.js +0 -44
  195. package/dist/ui/form/buttons/SubmitButton.d.ts +0 -5
  196. package/dist/ui/form/buttons/SubmitButton.js +0 -47
  197. package/dist/ui/form/buttons/SubscribeActionIcon.d.ts +0 -4
  198. package/dist/ui/form/buttons/SubscribeActionIcon.js +0 -15
  199. package/dist/ui/form/buttons/SubscribeButton.d.ts +0 -5
  200. package/dist/ui/form/buttons/SubscribeButton.js +0 -16
  201. package/dist/ui/form/buttons/index.js +0 -4
  202. package/dist/ui/form/context.d.ts +0 -83
  203. package/dist/ui/form/context.js +0 -26
  204. package/dist/ui/form/fields/JsonField.d.ts +0 -2
  205. package/dist/ui/form/fields/JsonField.js +0 -13
  206. package/dist/ui/form/fields/MultiSelectField.d.ts +0 -2
  207. package/dist/ui/form/fields/MultiSelectField.js +0 -15
  208. package/dist/ui/form/fields/NumberField.d.ts +0 -2
  209. package/dist/ui/form/fields/NumberField.js +0 -15
  210. package/dist/ui/form/fields/PassowrdField.d.ts +0 -2
  211. package/dist/ui/form/fields/PassowrdField.js +0 -18
  212. package/dist/ui/form/fields/SelectField.d.ts +0 -2
  213. package/dist/ui/form/fields/SelectField.js +0 -15
  214. package/dist/ui/form/fields/SwitchField.d.ts +0 -2
  215. package/dist/ui/form/fields/SwitchField.js +0 -15
  216. package/dist/ui/form/fields/TextField.d.ts +0 -2
  217. package/dist/ui/form/fields/TextField.js +0 -15
  218. package/dist/ui/form/fields/TextPassowrdField.d.ts +0 -2
  219. package/dist/ui/form/fields/TextPassowrdField.js +0 -51
  220. package/dist/ui/form/fields/TextareaField.d.ts +0 -2
  221. package/dist/ui/form/fields/TextareaField.js +0 -15
  222. package/dist/ui/form/fields/index.js +0 -9
  223. package/dist/ui/form/fieldsSchema.d.ts +0 -12
  224. package/dist/ui/form/fieldsSchema.js +0 -13
  225. package/dist/ui/form/index.js +0 -4
  226. package/dist/ui/hoverPaper/HoverPaper.d.ts +0 -6
  227. package/dist/ui/hoverPaper/HoverPaper.js +0 -15
  228. package/dist/ui/hoverPaper/index.js +0 -3
  229. package/dist/ui/hoverPaper/usePaperHover.d.ts +0 -4
  230. package/dist/ui/hoverPaper/usePaperHover.js +0 -9
  231. package/dist/ui/saveInput/JsonInput.d.ts +0 -6
  232. package/dist/ui/saveInput/JsonInput.js +0 -34
  233. package/dist/ui/saveInput/NumberInput.d.ts +0 -6
  234. package/dist/ui/saveInput/NumberInput.js +0 -27
  235. package/dist/ui/saveInput/SaveInput.d.ts +0 -36
  236. package/dist/ui/saveInput/SaveInput.js +0 -15
  237. package/dist/ui/saveInput/Select.d.ts +0 -6
  238. package/dist/ui/saveInput/Select.js +0 -27
  239. package/dist/ui/saveInput/Switch.d.ts +0 -6
  240. package/dist/ui/saveInput/Switch.js +0 -30
  241. package/dist/ui/saveInput/TextInput.d.ts +0 -6
  242. package/dist/ui/saveInput/TextInput.js +0 -26
  243. package/dist/ui/saveInput/Textarea.d.ts +0 -6
  244. package/dist/ui/saveInput/Textarea.js +0 -26
  245. package/dist/ui/saveInput/index.js +0 -2
  246. package/dist/ui/scrollArea/ScrollArea.js +0 -30
  247. package/dist/ui/scrollArea/ScrollAreaButton.d.ts +0 -5
  248. package/dist/ui/scrollArea/ScrollAreaButton.js +0 -51
  249. package/dist/ui/scrollArea/ScrollAreaContent.d.ts +0 -6
  250. package/dist/ui/scrollArea/ScrollAreaContent.js +0 -29
  251. package/dist/ui/scrollArea/context.js +0 -10
  252. package/dist/ui/scrollArea/index.d.ts +0 -3
  253. package/dist/ui/scrollArea/index.js +0 -3
  254. package/dist/ui/scrollArea/types.d.ts +0 -65
  255. package/dist/ui/scrollArea/types.js +0 -0
  256. package/dist/ui/scrollArea/useScrollArea.d.ts +0 -9
  257. package/dist/ui/scrollArea/useScrollArea.js +0 -146
  258. /package/{dist/ui/error/index.d.ts → src/ui/error/index.ts} +0 -0
  259. /package/{dist/ui/form/buttons/index.d.ts → src/ui/form/buttons/index.ts} +0 -0
  260. /package/{dist/ui/form/fields/index.d.ts → src/ui/form/fields/index.ts} +0 -0
  261. /package/{dist/ui/form/index.d.ts → src/ui/form/index.ts} +0 -0
  262. /package/{dist/ui/hoverPaper/index.d.ts → src/ui/hoverPaper/index.ts} +0 -0
  263. /package/{dist/ui/saveInput/index.d.ts → src/ui/saveInput/index.ts} +0 -0
@@ -1,12 +0,0 @@
1
- import z from 'zod/v4';
2
- export declare const fieldsSchema: {
3
- id: z.ZodString;
4
- str: z.ZodString;
5
- strArr: z.ZodArray<z.ZodString>;
6
- strMin3: z.ZodString;
7
- select: z.ZodString;
8
- email: z.ZodEmail;
9
- username: z.ZodString;
10
- password: z.ZodString;
11
- kebab: z.ZodString;
12
- };
@@ -1,13 +0,0 @@
1
- import v4 from "zod/v4";
2
- const fieldsSchema = {
3
- id: v4.string().min(1, 'ID не может быть пустым'),
4
- str: v4.string().min(1, 'Значение не может быть пустым'),
5
- strArr: v4.array(v4.string().min(1, 'Значение не может быть пустым')),
6
- strMin3: v4.string().min(3, 'Должно содержать не менее 3 символов'),
7
- select: v4.string().min(1, 'Выберите значение'),
8
- email: v4.email('Неверный формат email'),
9
- username: v4.string().min(3, 'Должен быть не менее 3 символов').max(24, 'Должен быть не более 24 символов'),
10
- password: v4.string('Пароль не может быть пустым').min(8, 'Пароль должен содержать не менее 8 символов'),
11
- kebab: v4.string().min(3, 'Минимум 3 символа').regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, 'Должен быть в формате kebab-case (только строчные буквы, цифры и дефисы)')
12
- };
13
- export { fieldsSchema };
@@ -1,4 +0,0 @@
1
- import { blurOnError } from "./blurOnError.js";
2
- import { useAppForm, useFieldContext, withForm } from "./context.js";
3
- import { fieldsSchema } from "./fieldsSchema.js";
4
- export { blurOnError, fieldsSchema, useAppForm, useFieldContext, withForm };
@@ -1,6 +0,0 @@
1
- import { type ElementProps, type PaperProps } from '@mantine/core';
2
- interface Props extends PaperProps, ElementProps<'div', keyof PaperProps> {
3
- disabled?: boolean;
4
- }
5
- export declare const HoverPaper: import("react").ForwardRefExoticComponent<Props & import("react").RefAttributes<HTMLDivElement>>;
6
- export {};
@@ -1,15 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Paper } from "@mantine/core";
3
- import { forwardRef } from "react";
4
- const HoverPaper = /*#__PURE__*/ forwardRef(({ disabled, classNames, ...props }, ref)=>/*#__PURE__*/ jsx(Paper, {
5
- ref: ref,
6
- classNames: {
7
- root: 'rolder-hover-paper-root',
8
- ...classNames
9
- },
10
- mod: {
11
- disabled
12
- },
13
- ...props
14
- }));
15
- export { HoverPaper };
@@ -1,3 +0,0 @@
1
- import { HoverPaper } from "./HoverPaper.js";
2
- import { usePaperHover } from "./usePaperHover.js";
3
- export { HoverPaper, usePaperHover };
@@ -1,4 +0,0 @@
1
- export declare const usePaperHover: () => {
2
- paperHovered: boolean;
3
- paperRef: (node: HTMLDivElement | null) => void;
4
- };
@@ -1,9 +0,0 @@
1
- import { useHover } from "@mantine/hooks";
2
- const usePaperHover = ()=>{
3
- const { hovered: paperHovered, ref: paperRef } = useHover();
4
- return {
5
- paperHovered,
6
- paperRef
7
- };
8
- };
9
- export { usePaperHover };
@@ -1,6 +0,0 @@
1
- import type { ReactCodeMirrorProps } from '@uiw/react-codemirror';
2
- export declare const JsonInput: ({ initialValue, onChange, debounce, ...props }: {
3
- initialValue: string;
4
- onChange: (value: string) => Promise<void>;
5
- debounce?: number;
6
- } & Omit<ReactCodeMirrorProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
@@ -1,34 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Box, Loader } from "@mantine/core";
3
- import { useDebouncedCallback } from "@mantine/hooks";
4
- import { useState } from "react";
5
- import { JsonInput } from "../JsonInput.js";
6
- const JsonInput_JsonInput = ({ initialValue, onChange, debounce = 300, ...props })=>{
7
- const [value, setValue] = useState(initialValue);
8
- const [loading, setLoading] = useState(false);
9
- const handleSave = useDebouncedCallback(async (content)=>{
10
- setLoading(true);
11
- await onChange(content);
12
- setLoading(false);
13
- }, debounce);
14
- return /*#__PURE__*/ jsxs(Box, {
15
- pos: "relative",
16
- children: [
17
- /*#__PURE__*/ jsx(JsonInput, {
18
- value: value,
19
- onChange: (e)=>{
20
- setValue(e);
21
- handleSave(e);
22
- },
23
- ...props
24
- }),
25
- loading && /*#__PURE__*/ jsx(Loader, {
26
- size: "sm",
27
- pos: "absolute",
28
- top: 8,
29
- left: 8
30
- })
31
- ]
32
- });
33
- };
34
- export { JsonInput_JsonInput as JsonInput };
@@ -1,6 +0,0 @@
1
- import { type NumberInputProps } from '@mantine/core';
2
- export declare const NumberInput: ({ initialValue, onChange, debounce, ...props }: {
3
- initialValue: string | number;
4
- onChange: (value: string | number) => Promise<void>;
5
- debounce?: number;
6
- } & Omit<NumberInputProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
@@ -1,27 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Loader, NumberInput } from "@mantine/core";
3
- import { useDebouncedCallback } from "@mantine/hooks";
4
- import { useState } from "react";
5
- const NumberInput_NumberInput = ({ initialValue, onChange, debounce = 300, ...props })=>{
6
- const [value, setValue] = useState(initialValue);
7
- const [loading, setLoading] = useState(false);
8
- const handleSave = useDebouncedCallback(async (content)=>{
9
- setLoading(true);
10
- await onChange(content);
11
- setLoading(false);
12
- }, debounce);
13
- return /*#__PURE__*/ jsx(NumberInput, {
14
- value: value,
15
- onChange: (v)=>{
16
- setValue(v);
17
- handleSave(v);
18
- },
19
- flex: props.w ? void 0 : 1,
20
- rightSection: loading ? /*#__PURE__*/ jsx(Loader, {
21
- size: "sm",
22
- mr: 8
23
- }) : void 0,
24
- ...props
25
- });
26
- };
27
- export { NumberInput_NumberInput as NumberInput };
@@ -1,36 +0,0 @@
1
- export declare const SaveInput: (({ initialValue, onChange, debounce, ...props }: {
2
- initialValue?: string;
3
- onChange: (value: string) => Promise<void>;
4
- debounce?: number;
5
- } & Omit<import("@mantine/core").TextInputProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element) & {
6
- TextInput: ({ initialValue, onChange, debounce, ...props }: {
7
- initialValue?: string;
8
- onChange: (value: string) => Promise<void>;
9
- debounce?: number;
10
- } & Omit<import("@mantine/core").TextInputProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
11
- NumberInput: ({ initialValue, onChange, debounce, ...props }: {
12
- initialValue: string | number;
13
- onChange: (value: string | number) => Promise<void>;
14
- debounce?: number;
15
- } & Omit<import("@mantine/core").NumberInputProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
16
- Textarea: ({ initialValue, onChange, debounce, ...props }: {
17
- initialValue: string;
18
- onChange: (value: string) => Promise<void>;
19
- debounce?: number;
20
- } & Omit<import("@mantine/core").TextareaProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
21
- Switch: ({ initialValue, onChange, debounce, w, ...props }: {
22
- initialValue: boolean;
23
- onChange: (value: boolean) => Promise<void>;
24
- debounce?: number;
25
- } & Omit<import("@mantine/core").SwitchProps, "checked" | "onChange">) => import("react/jsx-runtime").JSX.Element;
26
- JsonInput: ({ initialValue, onChange, debounce, ...props }: {
27
- initialValue: string;
28
- onChange: (value: string) => Promise<void>;
29
- debounce?: number;
30
- } & Omit<import("@uiw/react-codemirror").ReactCodeMirrorProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
31
- Select: ({ initialValue, onChange, debounce, ...props }: {
32
- initialValue: string | null;
33
- onChange: (value: string | null) => Promise<void>;
34
- debounce?: number;
35
- } & Omit<import("@mantine/core").SelectProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
36
- };
@@ -1,15 +0,0 @@
1
- import { JsonInput } from "./JsonInput.js";
2
- import { NumberInput } from "./NumberInput.js";
3
- import { Select } from "./Select.js";
4
- import { Switch } from "./Switch.js";
5
- import { Textarea } from "./Textarea.js";
6
- import { TextInput } from "./TextInput.js";
7
- const SaveInput = Object.assign(TextInput, {
8
- TextInput: TextInput,
9
- NumberInput: NumberInput,
10
- Textarea: Textarea,
11
- Switch: Switch,
12
- JsonInput: JsonInput,
13
- Select: Select
14
- });
15
- export { SaveInput };
@@ -1,6 +0,0 @@
1
- import { type SelectProps } from '@mantine/core';
2
- export declare const Select: ({ initialValue, onChange, debounce, ...props }: {
3
- initialValue: string | null;
4
- onChange: (value: string | null) => Promise<void>;
5
- debounce?: number;
6
- } & Omit<SelectProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
@@ -1,27 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Loader, Select } from "@mantine/core";
3
- import { useDebouncedCallback } from "@mantine/hooks";
4
- import { useState } from "react";
5
- const Select_Select = ({ initialValue, onChange, debounce = 300, ...props })=>{
6
- const [value, setValue] = useState(initialValue);
7
- const [loading, setLoading] = useState(false);
8
- const handleSave = useDebouncedCallback(async (content)=>{
9
- setLoading(true);
10
- await onChange(content);
11
- setLoading(false);
12
- }, debounce);
13
- return /*#__PURE__*/ jsx(Select, {
14
- value: value,
15
- onChange: (v)=>{
16
- setValue(v);
17
- handleSave(v);
18
- },
19
- flex: props.w ? void 0 : 1,
20
- disabled: loading,
21
- rightSection: loading ? /*#__PURE__*/ jsx(Loader, {
22
- size: "sm"
23
- }) : void 0,
24
- ...props
25
- });
26
- };
27
- export { Select_Select as Select };
@@ -1,6 +0,0 @@
1
- import { type SwitchProps } from '@mantine/core';
2
- export declare const Switch: ({ initialValue, onChange, debounce, w, ...props }: {
3
- initialValue: boolean;
4
- onChange: (value: boolean) => Promise<void>;
5
- debounce?: number;
6
- } & Omit<SwitchProps, "checked" | "onChange">) => import("react/jsx-runtime").JSX.Element;
@@ -1,30 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Box, Loader, Switch } from "@mantine/core";
3
- import { useDebouncedCallback } from "@mantine/hooks";
4
- import { useState } from "react";
5
- const Switch_Switch = ({ initialValue, onChange, debounce = 300, w, ...props })=>{
6
- const [value, setValue] = useState(initialValue);
7
- const [loading, setLoading] = useState(false);
8
- const handleSave = useDebouncedCallback(async (content)=>{
9
- setLoading(true);
10
- await onChange(content);
11
- setLoading(false);
12
- }, debounce);
13
- return /*#__PURE__*/ jsx(Box, {
14
- flex: 1,
15
- w: w,
16
- children: loading ? /*#__PURE__*/ jsx(Loader, {
17
- size: "sm",
18
- mt: 6.5,
19
- ml: 8
20
- }) : /*#__PURE__*/ jsx(Switch, {
21
- checked: value,
22
- onChange: (e)=>{
23
- setValue(e.currentTarget.checked);
24
- handleSave(e.currentTarget.checked);
25
- },
26
- ...props
27
- })
28
- });
29
- };
30
- export { Switch_Switch as Switch };
@@ -1,6 +0,0 @@
1
- import { type TextInputProps } from '@mantine/core';
2
- export declare const TextInput: ({ initialValue, onChange, debounce, ...props }: {
3
- initialValue?: string;
4
- onChange: (value: string) => Promise<void>;
5
- debounce?: number;
6
- } & Omit<TextInputProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
@@ -1,26 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Loader, TextInput } from "@mantine/core";
3
- import { useDebouncedCallback } from "@mantine/hooks";
4
- import { useState } from "react";
5
- const TextInput_TextInput = ({ initialValue, onChange, debounce = 300, ...props })=>{
6
- const [value, setValue] = useState(initialValue || '');
7
- const [loading, setLoading] = useState(false);
8
- const handleSave = useDebouncedCallback(async (content)=>{
9
- setLoading(true);
10
- await onChange(content);
11
- setLoading(false);
12
- }, debounce);
13
- return /*#__PURE__*/ jsx(TextInput, {
14
- value: value,
15
- onChange: (e)=>{
16
- setValue(e.target.value);
17
- handleSave(e.target.value);
18
- },
19
- flex: props.w ? void 0 : 1,
20
- rightSection: loading ? /*#__PURE__*/ jsx(Loader, {
21
- size: "sm"
22
- }) : void 0,
23
- ...props
24
- });
25
- };
26
- export { TextInput_TextInput as TextInput };
@@ -1,6 +0,0 @@
1
- import { type TextareaProps } from '@mantine/core';
2
- export declare const Textarea: ({ initialValue, onChange, debounce, ...props }: {
3
- initialValue: string;
4
- onChange: (value: string) => Promise<void>;
5
- debounce?: number;
6
- } & Omit<TextareaProps, "value" | "onChange">) => import("react/jsx-runtime").JSX.Element;
@@ -1,26 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Loader, Textarea } from "@mantine/core";
3
- import { useDebouncedCallback } from "@mantine/hooks";
4
- import { useState } from "react";
5
- const Textarea_Textarea = ({ initialValue, onChange, debounce = 300, ...props })=>{
6
- const [value, setValue] = useState(initialValue);
7
- const [loading, setLoading] = useState(false);
8
- const handleSave = useDebouncedCallback(async (content)=>{
9
- setLoading(true);
10
- await onChange(content);
11
- setLoading(false);
12
- }, debounce);
13
- return /*#__PURE__*/ jsx(Textarea, {
14
- value: value,
15
- onChange: (e)=>{
16
- setValue(e.target.value);
17
- handleSave(e.target.value);
18
- },
19
- flex: props.w ? void 0 : 1,
20
- rightSection: loading ? /*#__PURE__*/ jsx(Loader, {
21
- size: "sm"
22
- }) : void 0,
23
- ...props
24
- });
25
- };
26
- export { Textarea_Textarea as Textarea };
@@ -1,2 +0,0 @@
1
- import { SaveInput } from "./SaveInput.js";
2
- export { SaveInput };
@@ -1,30 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { ScrollAreaProvider } from "./context.js";
3
- import { ScrollAreaButton } from "./ScrollAreaButton.js";
4
- import { ScrollAreaContent } from "./ScrollAreaContent.js";
5
- import { useScrollAreaState } from "./useScrollArea.js";
6
- const ScrollAreaRoot = ({ children, autoScroll = false, scrollToBottomOnInit = false, animated = true, nearThreshold = 100, radius, ...mantineProps })=>{
7
- const scrollAreaValue = useScrollAreaState({
8
- autoScroll,
9
- scrollToBottomOnInit,
10
- animated,
11
- nearThreshold
12
- });
13
- const contextValue = {
14
- ...scrollAreaValue,
15
- radius,
16
- mantineProps
17
- };
18
- return /*#__PURE__*/ jsx(ScrollAreaProvider, {
19
- value: contextValue,
20
- children: /*#__PURE__*/ jsx(ScrollAreaContent, {
21
- children: children
22
- })
23
- });
24
- };
25
- ScrollAreaRoot.displayName = 'ScrollArea';
26
- const ScrollArea = Object.assign(ScrollAreaRoot, {
27
- ScrollButton: ScrollAreaButton,
28
- Provider: ScrollAreaProvider
29
- });
30
- export { ScrollArea };
@@ -1,5 +0,0 @@
1
- import type { ScrollButtonProps } from './types';
2
- export declare const ScrollAreaButton: {
3
- ({ className }: ScrollButtonProps): import("react/jsx-runtime").JSX.Element | null;
4
- displayName: string;
5
- };
@@ -1,51 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { ActionIcon } from "@mantine/core";
3
- import { useScrollArea } from "./context.js";
4
- const ScrollAreaButton = ({ className })=>{
5
- const { hasScrollableContent, isAboveCenter, scrollToTop, scrollToBottom } = useScrollArea();
6
- if (!hasScrollableContent) return null;
7
- const isScrollingDown = isAboveCenter;
8
- const icon = /*#__PURE__*/ jsxs("svg", {
9
- xmlns: "http://www.w3.org/2000/svg",
10
- width: "24",
11
- height: "24",
12
- viewBox: "0 0 24 24",
13
- fill: "none",
14
- stroke: "currentColor",
15
- strokeWidth: "1.5",
16
- strokeLinecap: "round",
17
- strokeLinejoin: "round",
18
- role: "img",
19
- "aria-label": "Chevron",
20
- style: {
21
- transition: 'transform 0.2s ease-in-out',
22
- transform: isScrollingDown ? 'rotate(-180deg)' : 'rotate(0deg)'
23
- },
24
- children: [
25
- /*#__PURE__*/ jsx("path", {
26
- stroke: "none",
27
- d: "M0 0h24v24H0z",
28
- fill: "none"
29
- }),
30
- /*#__PURE__*/ jsx("path", {
31
- d: "M6 9l6 6l6 -6"
32
- })
33
- ]
34
- });
35
- const handleClick = ()=>{
36
- if (isScrollingDown) scrollToBottom();
37
- else scrollToTop();
38
- };
39
- return /*#__PURE__*/ jsx(ActionIcon, {
40
- pos: "absolute",
41
- bottom: 16,
42
- right: 16,
43
- variant: "light",
44
- onClick: handleClick,
45
- className: className,
46
- "aria-label": isScrollingDown ? 'Scroll to bottom' : 'Scroll to top',
47
- children: icon
48
- });
49
- };
50
- ScrollAreaButton.displayName = 'ScrollArea.ScrollButton';
51
- export { ScrollAreaButton };
@@ -1,6 +0,0 @@
1
- export declare const ScrollAreaContent: {
2
- ({ children, }: {
3
- children: React.ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
5
- displayName: string;
6
- };
@@ -1,29 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Box, ScrollArea, getRadius } from "@mantine/core";
3
- import { useContext } from "react";
4
- import { ScrollAreaContext } from "./context.js";
5
- const ScrollAreaContent = ({ children })=>{
6
- const fullContext = useContext(ScrollAreaContext);
7
- if (!fullContext) throw new Error('ScrollAreaContent must be used within ScrollArea');
8
- const { _callbackRef, mantineProps, radius, _contentResizeRef } = fullContext;
9
- return /*#__PURE__*/ jsx(ScrollArea, {
10
- classNames: {
11
- viewport: 'rolder-scroll-area-viewport',
12
- content: 'rolder-scroll-area-content',
13
- scrollbar: 'rolder-scroll-area-scrollbar'
14
- },
15
- style: {
16
- '--radius': radius ? getRadius(radius) : void 0
17
- },
18
- ...mantineProps,
19
- viewportRef: _callbackRef,
20
- children: /*#__PURE__*/ jsx(Box, {
21
- h: "100%",
22
- w: "100%",
23
- ref: _contentResizeRef,
24
- children: children
25
- })
26
- });
27
- };
28
- ScrollAreaContent.displayName = 'ScrollArea.Content';
29
- export { ScrollAreaContent };
@@ -1,10 +0,0 @@
1
- import { createContext, useContext } from "react";
2
- const ScrollAreaContext = /*#__PURE__*/ createContext(null);
3
- const ScrollAreaProvider = ScrollAreaContext.Provider;
4
- const useScrollArea = ()=>{
5
- const context = useContext(ScrollAreaContext);
6
- if (!context) throw new Error('useScrollArea must be used within ScrollArea');
7
- const { _callbackRef, mantineProps: _, radius: __, ...publicAPI } = context;
8
- return publicAPI;
9
- };
10
- export { ScrollAreaContext, ScrollAreaProvider, useScrollArea };
@@ -1,3 +0,0 @@
1
- export { useScrollArea } from './context';
2
- export { ScrollArea } from './ScrollArea';
3
- export type { ScrollAreaContextValue, ScrollAreaHook, ScrollAreaProps, ScrollAreaState, ScrollButtonProps, ScrollPosition, } from './types';
@@ -1,3 +0,0 @@
1
- import { useScrollArea } from "./context.js";
2
- import { ScrollArea } from "./ScrollArea.js";
3
- export { ScrollArea, useScrollArea };
@@ -1,65 +0,0 @@
1
- import type { MantineRadius, ScrollAreaProps as MantineScrollAreaProps } from '@mantine/core';
2
- import type { ReactNode } from 'react';
3
- export interface ScrollAreaProps extends Omit<MantineScrollAreaProps, 'children'> {
4
- /** Включение автоскролла при добавлении контента (по умолчанию false) */
5
- autoScroll?: boolean;
6
- /** Прокрутить к концу при инициализации компонента (по умолчанию false) */
7
- scrollToBottomOnInit?: boolean;
8
- /** Анимированная прокрутка (по умолчанию true) */
9
- animated?: boolean;
10
- /** Отступ для near-зон в пикселях (по умолчанию 100) */
11
- nearThreshold?: number;
12
- /** Радиус для viewport и scrollbar на тот случай, когда они "торчат" углами*/
13
- radius?: MantineRadius;
14
- /** Дочерние элементы - автоматически оборачиваются в ScrollArea.Content */
15
- children: ReactNode;
16
- }
17
- export interface ScrollAreaHook {
18
- /** Точно в начале (scrollTop === 0) */
19
- isAtTop: boolean;
20
- /** В пределах nearThreshold от начала */
21
- isNearTop: boolean;
22
- /** Точно в конце (scrollTop + clientHeight >= scrollHeight) */
23
- isAtBottom: boolean;
24
- /** В пределах nearThreshold от конца */
25
- isNearBottom: boolean;
26
- /** Выше центральной точки области прокрутки */
27
- isAboveCenter: boolean;
28
- /** Есть контент требующий прокрутки */
29
- hasScrollableContent: boolean;
30
- /** Прокрутить к началу области */
31
- scrollToTop: (animated?: boolean) => void;
32
- /** Прокрутить к концу области */
33
- scrollToBottom: (animated?: boolean) => void;
34
- /** React ref на viewport элемент для прямого доступа к DOM */
35
- viewportRef: React.RefObject<HTMLDivElement | null>;
36
- }
37
- export interface ScrollAreaState extends ScrollAreaHook {
38
- /** Внутренний callback ref для подключения к Mantine ScrollArea */
39
- _callbackRef: (node: HTMLDivElement | null) => void;
40
- /** Внутренний ref для наблюдения за изменениями контента */
41
- _contentResizeRef: (node: HTMLDivElement | null) => void;
42
- }
43
- export interface ScrollAreaContextValue extends ScrollAreaState {
44
- /** Радиус для viewport и scrollbar на тот случай, когда они "торчат" углами*/
45
- radius?: MantineRadius;
46
- /** Пропсы Mantine ScrollArea, переданные в корневой компонент */
47
- mantineProps: Omit<MantineScrollAreaProps, 'children'>;
48
- }
49
- export interface ScrollButtonProps {
50
- /** CSS классы для стилизации кнопки */
51
- className?: string;
52
- /** Иконка для прокрутки вверх (по умолчанию IconChevronUp) */
53
- upIcon?: ReactNode;
54
- /** Иконка для прокрутки вниз (по умолчанию IconChevronDown) */
55
- downIcon?: ReactNode;
56
- }
57
- /** Внутренний тип для отслеживания позиции скролла */
58
- export interface ScrollPosition {
59
- /** Текущая позиция скролла сверху */
60
- scrollTop: number;
61
- /** Высота видимой области */
62
- clientHeight: number;
63
- /** Общая высота прокручиваемого контента */
64
- scrollHeight: number;
65
- }
File without changes
@@ -1,9 +0,0 @@
1
- import type { ScrollAreaState } from './types';
2
- interface UseScrollAreaOptions {
3
- autoScroll?: boolean;
4
- scrollToBottomOnInit?: boolean;
5
- animated?: boolean;
6
- nearThreshold?: number;
7
- }
8
- export declare const useScrollAreaState: (options?: UseScrollAreaOptions) => ScrollAreaState;
9
- export {};