@kandiforge/kandi-office 0.15.148

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 (275) hide show
  1. package/README.md +82 -0
  2. package/dist/RustRenderer.d.ts +10 -0
  3. package/dist/RustRenderer.d.ts.map +1 -0
  4. package/dist/RustRenderer.js +30 -0
  5. package/dist/RustRenderer.js.map +1 -0
  6. package/dist/forms/KandiForm.d.ts +15 -0
  7. package/dist/forms/KandiForm.d.ts.map +1 -0
  8. package/dist/forms/KandiForm.js +577 -0
  9. package/dist/forms/KandiForm.js.map +1 -0
  10. package/dist/forms/KandiFormProvider.d.ts +17 -0
  11. package/dist/forms/KandiFormProvider.d.ts.map +1 -0
  12. package/dist/forms/KandiFormProvider.js +29 -0
  13. package/dist/forms/KandiFormProvider.js.map +1 -0
  14. package/dist/forms/core/FormEngine.d.ts +71 -0
  15. package/dist/forms/core/FormEngine.d.ts.map +1 -0
  16. package/dist/forms/core/FormEngine.js +463 -0
  17. package/dist/forms/core/FormEngine.js.map +1 -0
  18. package/dist/forms/core/index.d.ts +3 -0
  19. package/dist/forms/core/index.d.ts.map +1 -0
  20. package/dist/forms/core/index.js +2 -0
  21. package/dist/forms/core/index.js.map +1 -0
  22. package/dist/forms/hooks/index.d.ts +5 -0
  23. package/dist/forms/hooks/index.d.ts.map +1 -0
  24. package/dist/forms/hooks/index.js +3 -0
  25. package/dist/forms/hooks/index.js.map +1 -0
  26. package/dist/forms/hooks/useFormState.d.ts +32 -0
  27. package/dist/forms/hooks/useFormState.d.ts.map +1 -0
  28. package/dist/forms/hooks/useFormState.js +77 -0
  29. package/dist/forms/hooks/useFormState.js.map +1 -0
  30. package/dist/forms/hooks/useFormStorage.d.ts +28 -0
  31. package/dist/forms/hooks/useFormStorage.d.ts.map +1 -0
  32. package/dist/forms/hooks/useFormStorage.js +40 -0
  33. package/dist/forms/hooks/useFormStorage.js.map +1 -0
  34. package/dist/forms/index.d.ts +13 -0
  35. package/dist/forms/index.d.ts.map +1 -0
  36. package/dist/forms/index.js +7 -0
  37. package/dist/forms/index.js.map +1 -0
  38. package/dist/forms/storage/ApiFormStorage.d.ts +31 -0
  39. package/dist/forms/storage/ApiFormStorage.d.ts.map +1 -0
  40. package/dist/forms/storage/ApiFormStorage.js +112 -0
  41. package/dist/forms/storage/ApiFormStorage.js.map +1 -0
  42. package/dist/forms/storage/TauriFormStorage.d.ts +27 -0
  43. package/dist/forms/storage/TauriFormStorage.d.ts.map +1 -0
  44. package/dist/forms/storage/TauriFormStorage.js +82 -0
  45. package/dist/forms/storage/TauriFormStorage.js.map +1 -0
  46. package/dist/forms/storage/TauriThemeStorage.d.ts +10 -0
  47. package/dist/forms/storage/TauriThemeStorage.d.ts.map +1 -0
  48. package/dist/forms/storage/TauriThemeStorage.js +28 -0
  49. package/dist/forms/storage/TauriThemeStorage.js.map +1 -0
  50. package/dist/forms/storage/index.d.ts +9 -0
  51. package/dist/forms/storage/index.d.ts.map +1 -0
  52. package/dist/forms/storage/index.js +28 -0
  53. package/dist/forms/storage/index.js.map +1 -0
  54. package/dist/forms/storage/types.d.ts +486 -0
  55. package/dist/forms/storage/types.d.ts.map +1 -0
  56. package/dist/forms/storage/types.js +2 -0
  57. package/dist/forms/storage/types.js.map +1 -0
  58. package/dist/forms/vanilla/KandiForm.d.ts +40 -0
  59. package/dist/forms/vanilla/KandiForm.d.ts.map +1 -0
  60. package/dist/forms/vanilla/KandiForm.js +586 -0
  61. package/dist/forms/vanilla/KandiForm.js.map +1 -0
  62. package/dist/forms/vanilla/index.d.ts +7 -0
  63. package/dist/forms/vanilla/index.d.ts.map +1 -0
  64. package/dist/forms/vanilla/index.js +4 -0
  65. package/dist/forms/vanilla/index.js.map +1 -0
  66. package/dist/forms-builder/components/AddFieldForm.d.ts +10 -0
  67. package/dist/forms-builder/components/AddFieldForm.d.ts.map +1 -0
  68. package/dist/forms-builder/components/AddFieldForm.js +69 -0
  69. package/dist/forms-builder/components/AddFieldForm.js.map +1 -0
  70. package/dist/forms-builder/components/FormCard.d.ts +9 -0
  71. package/dist/forms-builder/components/FormCard.d.ts.map +1 -0
  72. package/dist/forms-builder/components/FormCard.js +40 -0
  73. package/dist/forms-builder/components/FormCard.js.map +1 -0
  74. package/dist/forms-builder/components/FormDesigner.d.ts +9 -0
  75. package/dist/forms-builder/components/FormDesigner.d.ts.map +1 -0
  76. package/dist/forms-builder/components/FormDesigner.js +73 -0
  77. package/dist/forms-builder/components/FormDesigner.js.map +1 -0
  78. package/dist/forms-builder/components/FormLibraryDialog.d.ts +11 -0
  79. package/dist/forms-builder/components/FormLibraryDialog.d.ts.map +1 -0
  80. package/dist/forms-builder/components/FormLibraryDialog.js +72 -0
  81. package/dist/forms-builder/components/FormLibraryDialog.js.map +1 -0
  82. package/dist/forms-builder/components/FormTester.d.ts +10 -0
  83. package/dist/forms-builder/components/FormTester.d.ts.map +1 -0
  84. package/dist/forms-builder/components/FormTester.js +147 -0
  85. package/dist/forms-builder/components/FormTester.js.map +1 -0
  86. package/dist/forms-builder/components/NewKandiFormDialog.d.ts +11 -0
  87. package/dist/forms-builder/components/NewKandiFormDialog.d.ts.map +1 -0
  88. package/dist/forms-builder/components/NewKandiFormDialog.js +82 -0
  89. package/dist/forms-builder/components/NewKandiFormDialog.js.map +1 -0
  90. package/dist/forms-builder/components/SchemaBuilder.d.ts +15 -0
  91. package/dist/forms-builder/components/SchemaBuilder.d.ts.map +1 -0
  92. package/dist/forms-builder/components/SchemaBuilder.js +62 -0
  93. package/dist/forms-builder/components/SchemaBuilder.js.map +1 -0
  94. package/dist/forms-builder/components/index.d.ts +8 -0
  95. package/dist/forms-builder/components/index.d.ts.map +1 -0
  96. package/dist/forms-builder/components/index.js +8 -0
  97. package/dist/forms-builder/components/index.js.map +1 -0
  98. package/dist/forms-builder/hooks/index.d.ts +3 -0
  99. package/dist/forms-builder/hooks/index.d.ts.map +1 -0
  100. package/dist/forms-builder/hooks/index.js +2 -0
  101. package/dist/forms-builder/hooks/index.js.map +1 -0
  102. package/dist/forms-builder/hooks/useFormWizard.d.ts +39 -0
  103. package/dist/forms-builder/hooks/useFormWizard.d.ts.map +1 -0
  104. package/dist/forms-builder/hooks/useFormWizard.js +268 -0
  105. package/dist/forms-builder/hooks/useFormWizard.js.map +1 -0
  106. package/dist/forms-builder/index.d.ts +6 -0
  107. package/dist/forms-builder/index.d.ts.map +1 -0
  108. package/dist/forms-builder/index.js +4 -0
  109. package/dist/forms-builder/index.js.map +1 -0
  110. package/dist/forms-builder/types/index.d.ts +88 -0
  111. package/dist/forms-builder/types/index.d.ts.map +1 -0
  112. package/dist/forms-builder/types/index.js +88 -0
  113. package/dist/forms-builder/types/index.js.map +1 -0
  114. package/dist/index.d.ts +16 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +12 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/logger.d.ts +44 -0
  119. package/dist/logger.d.ts.map +1 -0
  120. package/dist/logger.js +111 -0
  121. package/dist/logger.js.map +1 -0
  122. package/dist/services/IDocumentService.d.ts +48 -0
  123. package/dist/services/IDocumentService.d.ts.map +1 -0
  124. package/dist/services/IDocumentService.js +2 -0
  125. package/dist/services/IDocumentService.js.map +1 -0
  126. package/dist/services/TauriDocumentService.d.ts +28 -0
  127. package/dist/services/TauriDocumentService.d.ts.map +1 -0
  128. package/dist/services/TauriDocumentService.js +109 -0
  129. package/dist/services/TauriDocumentService.js.map +1 -0
  130. package/dist/services/WasmDocumentService.d.ts +28 -0
  131. package/dist/services/WasmDocumentService.d.ts.map +1 -0
  132. package/dist/services/WasmDocumentService.js +122 -0
  133. package/dist/services/WasmDocumentService.js.map +1 -0
  134. package/dist/services/documentServiceRegistry.d.ts +4 -0
  135. package/dist/services/documentServiceRegistry.d.ts.map +1 -0
  136. package/dist/services/documentServiceRegistry.js +14 -0
  137. package/dist/services/documentServiceRegistry.js.map +1 -0
  138. package/dist/shared/services/FileLogger.d.ts +101 -0
  139. package/dist/shared/services/FileLogger.d.ts.map +1 -0
  140. package/dist/shared/services/FileLogger.js +483 -0
  141. package/dist/shared/services/FileLogger.js.map +1 -0
  142. package/dist/shared/services/IPlatformService.d.ts +80 -0
  143. package/dist/shared/services/IPlatformService.d.ts.map +1 -0
  144. package/dist/shared/services/IPlatformService.js +36 -0
  145. package/dist/shared/services/IPlatformService.js.map +1 -0
  146. package/dist/shared/services/Logger.d.ts +82 -0
  147. package/dist/shared/services/Logger.d.ts.map +1 -0
  148. package/dist/shared/services/Logger.js +215 -0
  149. package/dist/shared/services/Logger.js.map +1 -0
  150. package/dist/shared/services/LoggerAdapter.d.ts +8 -0
  151. package/dist/shared/services/LoggerAdapter.d.ts.map +1 -0
  152. package/dist/shared/services/LoggerAdapter.js +31 -0
  153. package/dist/shared/services/LoggerAdapter.js.map +1 -0
  154. package/dist/shared/services/platformServiceRegistry.d.ts +6 -0
  155. package/dist/shared/services/platformServiceRegistry.d.ts.map +1 -0
  156. package/dist/shared/services/platformServiceRegistry.js +18 -0
  157. package/dist/shared/services/platformServiceRegistry.js.map +1 -0
  158. package/dist/shared/theme/ThemeContext.d.ts +7 -0
  159. package/dist/shared/theme/ThemeContext.d.ts.map +1 -0
  160. package/dist/shared/theme/ThemeContext.js +134 -0
  161. package/dist/shared/theme/ThemeContext.js.map +1 -0
  162. package/dist/shared/theme/index.d.ts +6 -0
  163. package/dist/shared/theme/index.d.ts.map +1 -0
  164. package/dist/shared/theme/index.js +4 -0
  165. package/dist/shared/theme/index.js.map +1 -0
  166. package/dist/shared/theme/muiTheme.d.ts +3 -0
  167. package/dist/shared/theme/muiTheme.d.ts.map +1 -0
  168. package/dist/shared/theme/muiTheme.js +349 -0
  169. package/dist/shared/theme/muiTheme.js.map +1 -0
  170. package/dist/shared/theme/tokens.d.ts +252 -0
  171. package/dist/shared/theme/tokens.d.ts.map +1 -0
  172. package/dist/shared/theme/tokens.js +180 -0
  173. package/dist/shared/theme/tokens.js.map +1 -0
  174. package/dist/shared/theme/types.d.ts +55 -0
  175. package/dist/shared/theme/types.d.ts.map +1 -0
  176. package/dist/shared/theme/types.js +144 -0
  177. package/dist/shared/theme/types.js.map +1 -0
  178. package/dist/viewers/DocxViewer.d.ts +7 -0
  179. package/dist/viewers/DocxViewer.d.ts.map +1 -0
  180. package/dist/viewers/DocxViewer.js +157 -0
  181. package/dist/viewers/DocxViewer.js.map +1 -0
  182. package/dist/viewers/MarkdownViewer.d.ts +8 -0
  183. package/dist/viewers/MarkdownViewer.d.ts.map +1 -0
  184. package/dist/viewers/MarkdownViewer.js +111 -0
  185. package/dist/viewers/MarkdownViewer.js.map +1 -0
  186. package/dist/viewers/pdf/PdfViewer.d.ts +5 -0
  187. package/dist/viewers/pdf/PdfViewer.d.ts.map +1 -0
  188. package/dist/viewers/pdf/PdfViewer.js +104 -0
  189. package/dist/viewers/pdf/PdfViewer.js.map +1 -0
  190. package/dist/viewers/pdf/components/PdfFilmstrip.d.ts +4 -0
  191. package/dist/viewers/pdf/components/PdfFilmstrip.d.ts.map +1 -0
  192. package/dist/viewers/pdf/components/PdfFilmstrip.js +21 -0
  193. package/dist/viewers/pdf/components/PdfFilmstrip.js.map +1 -0
  194. package/dist/viewers/pdf/components/PdfToolbar.d.ts +4 -0
  195. package/dist/viewers/pdf/components/PdfToolbar.d.ts.map +1 -0
  196. package/dist/viewers/pdf/components/PdfToolbar.js +55 -0
  197. package/dist/viewers/pdf/components/PdfToolbar.js.map +1 -0
  198. package/dist/viewers/pdf/components/index.d.ts +4 -0
  199. package/dist/viewers/pdf/components/index.d.ts.map +1 -0
  200. package/dist/viewers/pdf/components/index.js +4 -0
  201. package/dist/viewers/pdf/components/index.js.map +1 -0
  202. package/dist/viewers/pdf/components/views/BookView.d.ts +4 -0
  203. package/dist/viewers/pdf/components/views/BookView.d.ts.map +1 -0
  204. package/dist/viewers/pdf/components/views/BookView.js +67 -0
  205. package/dist/viewers/pdf/components/views/BookView.js.map +1 -0
  206. package/dist/viewers/pdf/components/views/ContinuousScrollView.d.ts +4 -0
  207. package/dist/viewers/pdf/components/views/ContinuousScrollView.d.ts.map +1 -0
  208. package/dist/viewers/pdf/components/views/ContinuousScrollView.js +98 -0
  209. package/dist/viewers/pdf/components/views/ContinuousScrollView.js.map +1 -0
  210. package/dist/viewers/pdf/components/views/SinglePageView.d.ts +4 -0
  211. package/dist/viewers/pdf/components/views/SinglePageView.d.ts.map +1 -0
  212. package/dist/viewers/pdf/components/views/SinglePageView.js +27 -0
  213. package/dist/viewers/pdf/components/views/SinglePageView.js.map +1 -0
  214. package/dist/viewers/pdf/components/views/ThumbnailGridView.d.ts +8 -0
  215. package/dist/viewers/pdf/components/views/ThumbnailGridView.d.ts.map +1 -0
  216. package/dist/viewers/pdf/components/views/ThumbnailGridView.js +37 -0
  217. package/dist/viewers/pdf/components/views/ThumbnailGridView.js.map +1 -0
  218. package/dist/viewers/pdf/components/views/index.d.ts +5 -0
  219. package/dist/viewers/pdf/components/views/index.d.ts.map +1 -0
  220. package/dist/viewers/pdf/components/views/index.js +5 -0
  221. package/dist/viewers/pdf/components/views/index.js.map +1 -0
  222. package/dist/viewers/pdf/hooks/index.d.ts +5 -0
  223. package/dist/viewers/pdf/hooks/index.d.ts.map +1 -0
  224. package/dist/viewers/pdf/hooks/index.js +5 -0
  225. package/dist/viewers/pdf/hooks/index.js.map +1 -0
  226. package/dist/viewers/pdf/hooks/useFileWatcher.d.ts +15 -0
  227. package/dist/viewers/pdf/hooks/useFileWatcher.d.ts.map +1 -0
  228. package/dist/viewers/pdf/hooks/useFileWatcher.js +75 -0
  229. package/dist/viewers/pdf/hooks/useFileWatcher.js.map +1 -0
  230. package/dist/viewers/pdf/hooks/usePdfDocument.d.ts +24 -0
  231. package/dist/viewers/pdf/hooks/usePdfDocument.d.ts.map +1 -0
  232. package/dist/viewers/pdf/hooks/usePdfDocument.js +176 -0
  233. package/dist/viewers/pdf/hooks/usePdfDocument.js.map +1 -0
  234. package/dist/viewers/pdf/hooks/usePdfNavigation.d.ts +19 -0
  235. package/dist/viewers/pdf/hooks/usePdfNavigation.d.ts.map +1 -0
  236. package/dist/viewers/pdf/hooks/usePdfNavigation.js +92 -0
  237. package/dist/viewers/pdf/hooks/usePdfNavigation.js.map +1 -0
  238. package/dist/viewers/pdf/hooks/useZoom.d.ts +24 -0
  239. package/dist/viewers/pdf/hooks/useZoom.d.ts.map +1 -0
  240. package/dist/viewers/pdf/hooks/useZoom.js +136 -0
  241. package/dist/viewers/pdf/hooks/useZoom.js.map +1 -0
  242. package/dist/viewers/pdf/index.d.ts +5 -0
  243. package/dist/viewers/pdf/index.d.ts.map +1 -0
  244. package/dist/viewers/pdf/index.js +5 -0
  245. package/dist/viewers/pdf/index.js.map +1 -0
  246. package/dist/viewers/pdf/types.d.ts +80 -0
  247. package/dist/viewers/pdf/types.d.ts.map +1 -0
  248. package/dist/viewers/pdf/types.js +2 -0
  249. package/dist/viewers/pdf/types.js.map +1 -0
  250. package/dist/wasm/docx.d.ts +10 -0
  251. package/dist/wasm/docx.d.ts.map +1 -0
  252. package/dist/wasm/docx.js +66 -0
  253. package/dist/wasm/docx.js.map +1 -0
  254. package/dist/wasm/index.d.ts +6 -0
  255. package/dist/wasm/index.d.ts.map +1 -0
  256. package/dist/wasm/index.js +4 -0
  257. package/dist/wasm/index.js.map +1 -0
  258. package/dist/wasm/pptx.d.ts +9 -0
  259. package/dist/wasm/pptx.d.ts.map +1 -0
  260. package/dist/wasm/pptx.js +225 -0
  261. package/dist/wasm/pptx.js.map +1 -0
  262. package/dist/wasm/types.d.ts +266 -0
  263. package/dist/wasm/types.d.ts.map +1 -0
  264. package/dist/wasm/types.js +2 -0
  265. package/dist/wasm/types.js.map +1 -0
  266. package/dist/wasm/wasm-loader.d.ts +17 -0
  267. package/dist/wasm/wasm-loader.d.ts.map +1 -0
  268. package/dist/wasm/wasm-loader.js +23 -0
  269. package/dist/wasm/wasm-loader.js.map +1 -0
  270. package/package.json +81 -0
  271. package/wasm-pkg/LICENSE +37 -0
  272. package/wasm-pkg/kandi_office_wasm.d.ts +168 -0
  273. package/wasm-pkg/kandi_office_wasm.js +1008 -0
  274. package/wasm-pkg/kandi_office_wasm_bg.wasm +0 -0
  275. package/wasm-pkg/kandi_office_wasm_bg.wasm.d.ts +24 -0
@@ -0,0 +1,10 @@
1
+ import type { FieldSchema } from '../types';
2
+ interface AddFieldFormProps {
3
+ initialField?: FieldSchema | null;
4
+ onSave: (field: FieldSchema) => void;
5
+ onCancel: () => void;
6
+ isEditing?: boolean;
7
+ }
8
+ export declare function AddFieldForm({ initialField, onSave, onCancel, isEditing, }: AddFieldFormProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=AddFieldForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddFieldForm.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/AddFieldForm.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAI5D,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6BD,wBAAgB,YAAY,CAAC,EAC3B,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,SAAiB,GAClB,EAAE,iBAAiB,2CAiLnB"}
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useMemo } from 'react';
3
+ import { Box, TextField, Button, FormControl, InputLabel, Select, MenuItem, FormControlLabel, Checkbox, Stack, Typography, Divider, ListSubheader, } from '@mui/material';
4
+ import { WIDGET_TYPES, generateFieldId, getWidgetsByCategory } from '../types';
5
+ const CATEGORY_LABELS = {
6
+ text: 'Text',
7
+ number: 'Number',
8
+ selection: 'Selection',
9
+ datetime: 'Date & Time',
10
+ file: 'File Upload',
11
+ layout: 'Layout',
12
+ advanced: 'Advanced',
13
+ };
14
+ const CATEGORY_ORDER = [
15
+ 'text',
16
+ 'number',
17
+ 'selection',
18
+ 'datetime',
19
+ 'file',
20
+ 'layout',
21
+ 'advanced',
22
+ ];
23
+ export function AddFieldForm({ initialField, onSave, onCancel, isEditing = false, }) {
24
+ const [label, setLabel] = useState(initialField?.label || '');
25
+ const [widgetType, setWidgetType] = useState(initialField?.widgetType || 'textInput');
26
+ const [required, setRequired] = useState(initialField?.required ?? false);
27
+ const [description, setDescription] = useState(initialField?.description || '');
28
+ const [placeholder, setPlaceholder] = useState(initialField?.placeholder || '');
29
+ const [options, setOptions] = useState(initialField?.widgetConfig?.options || []);
30
+ const [optionsText, setOptionsText] = useState(options.map(o => o.label).join('\n'));
31
+ const widgetInfo = useMemo(() => WIDGET_TYPES.find(w => w.type === widgetType), [widgetType]);
32
+ const needsOptions = ['dropdown', 'radio', 'checkbox', 'buttonGroup'].includes(widgetType);
33
+ const handleOptionsChange = (text) => {
34
+ setOptionsText(text);
35
+ const lines = text.split('\n').filter(line => line.trim());
36
+ setOptions(lines.map((line, index) => ({
37
+ value: `option_${index}`,
38
+ label: line.trim(),
39
+ })));
40
+ };
41
+ const handleSave = () => {
42
+ if (!label.trim())
43
+ return;
44
+ const widgetConfig = { ...widgetInfo?.defaultConfig };
45
+ if (needsOptions) {
46
+ widgetConfig.options = options;
47
+ }
48
+ const field = {
49
+ id: initialField?.id || generateFieldId(),
50
+ label: label.trim(),
51
+ widgetType,
52
+ widgetConfig,
53
+ required,
54
+ description: description.trim() || undefined,
55
+ placeholder: placeholder.trim() || undefined,
56
+ };
57
+ onSave(field);
58
+ };
59
+ return (_jsxs(Box, { children: [_jsx(Typography, { variant: "subtitle1", gutterBottom: true, fontWeight: "medium", children: isEditing ? 'Edit Field' : 'Add New Field' }), _jsxs(Stack, { spacing: 2, children: [_jsx(TextField, { label: "Field Label", value: label, onChange: (e) => setLabel(e.target.value), fullWidth: true, required: true, size: "small", placeholder: "e.g., Email Address, Full Name", autoFocus: true }), _jsxs(FormControl, { fullWidth: true, size: "small", children: [_jsx(InputLabel, { children: "Field Type" }), _jsx(Select, { value: widgetType, label: "Field Type", onChange: (e) => setWidgetType(e.target.value), children: CATEGORY_ORDER.map((category) => {
60
+ const widgets = getWidgetsByCategory(category);
61
+ if (widgets.length === 0)
62
+ return null;
63
+ return [
64
+ _jsx(ListSubheader, { children: CATEGORY_LABELS[category] }, category),
65
+ ...widgets.map((widget) => (_jsx(MenuItem, { value: widget.type, children: _jsxs(Box, { children: [_jsx(Typography, { variant: "body2", children: widget.label }), _jsx(Typography, { variant: "caption", color: "text.secondary", children: widget.description })] }) }, widget.type))),
66
+ ];
67
+ }) })] }), needsOptions && (_jsx(TextField, { label: "Options (one per line)", value: optionsText, onChange: (e) => handleOptionsChange(e.target.value), fullWidth: true, multiline: true, rows: 4, size: "small", placeholder: "Option 1\nOption 2\nOption 3", helperText: `${options.length} option${options.length !== 1 ? 's' : ''}` })), widgetInfo?.isInput && (_jsx(FormControlLabel, { control: _jsx(Checkbox, { checked: required, onChange: (e) => setRequired(e.target.checked) }), label: "Required field" })), _jsx(Divider, {}), _jsx(Typography, { variant: "body2", color: "text.secondary", children: "Optional Settings" }), _jsx(TextField, { label: "Description", value: description, onChange: (e) => setDescription(e.target.value), fullWidth: true, size: "small", placeholder: "Help text shown below the field" }), widgetInfo?.isInput && (_jsx(TextField, { label: "Placeholder", value: placeholder, onChange: (e) => setPlaceholder(e.target.value), fullWidth: true, size: "small", placeholder: "Placeholder text inside the field" })), _jsxs(Stack, { direction: "row", spacing: 1, justifyContent: "flex-end", children: [_jsx(Button, { onClick: onCancel, color: "inherit", children: "Cancel" }), _jsx(Button, { variant: "contained", onClick: handleSave, disabled: !label.trim(), children: isEditing ? 'Update' : 'Add Field' })] })] })] }));
68
+ }
69
+ //# sourceMappingURL=AddFieldForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddFieldForm.js","sourceRoot":"","sources":["../../../src/forms-builder/components/AddFieldForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FormMetadata } from '../../forms/storage/types';
2
+ interface FormCardProps {
3
+ form: FormMetadata;
4
+ onOpen: (formId: string, formName: string) => void;
5
+ onDelete: (formId: string) => void;
6
+ }
7
+ export declare function FormCard({ form, onOpen, onDelete }: FormCardProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=FormCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCard.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormCard.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAOD,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAuFjE"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Card, CardContent, CardActions, Typography, Button, IconButton, Box, Chip, } from '@mui/material';
3
+ import DeleteIcon from '@mui/icons-material/Delete';
4
+ import EditIcon from '@mui/icons-material/Edit';
5
+ export function FormCard({ form, onOpen, onDelete }) {
6
+ const formatDate = (dateStr) => {
7
+ try {
8
+ return new Date(dateStr).toLocaleDateString(undefined, {
9
+ year: 'numeric',
10
+ month: 'short',
11
+ day: 'numeric',
12
+ });
13
+ }
14
+ catch {
15
+ return 'Unknown date';
16
+ }
17
+ };
18
+ return (_jsxs(Card, { sx: {
19
+ height: '100%',
20
+ display: 'flex',
21
+ flexDirection: 'column',
22
+ transition: 'box-shadow 0.2s',
23
+ '&:hover': {
24
+ boxShadow: 4,
25
+ },
26
+ }, children: [_jsxs(CardContent, { sx: { flex: 1 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'flex-start', mb: 1 }, children: [_jsx(Typography, { variant: "h6", component: "h3", sx: {
27
+ flex: 1,
28
+ overflow: 'hidden',
29
+ textOverflow: 'ellipsis',
30
+ whiteSpace: 'nowrap',
31
+ }, children: form.name }), _jsx(Chip, { label: form.theme, size: "small", variant: "outlined", sx: { ml: 1, textTransform: 'capitalize' } })] }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: {
32
+ mb: 2,
33
+ minHeight: 40,
34
+ overflow: 'hidden',
35
+ display: '-webkit-box',
36
+ WebkitLineClamp: 2,
37
+ WebkitBoxOrient: 'vertical',
38
+ }, children: form.description || 'No description' }), _jsxs(Typography, { variant: "caption", color: "text.secondary", display: "block", children: ["Updated: ", formatDate(form.updated_at)] })] }), _jsxs(CardActions, { sx: { justifyContent: 'space-between', px: 2, pb: 2 }, children: [_jsx(Button, { size: "small", variant: "contained", startIcon: _jsx(EditIcon, {}), onClick: () => onOpen(form.id, form.name), children: "Open" }), _jsx(IconButton, { size: "small", color: "error", onClick: () => onDelete(form.id), "aria-label": "Delete form", children: _jsx(DeleteIcon, {}) })] })] }));
39
+ }
40
+ //# sourceMappingURL=FormCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCard.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FormSchema, FieldSchema } from '../types';
2
+ interface FormDesignerProps {
3
+ formSchema: FormSchema;
4
+ onUpdateField: (field: FieldSchema) => void;
5
+ onReorderFields: (fieldIds: string[]) => void;
6
+ }
7
+ export declare function FormDesigner({ formSchema, onUpdateField, onReorderFields, }: FormDesignerProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=FormDesigner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormDesigner.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormDesigner.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGxD,UAAU,iBAAiB;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC/C;AAOD,wBAAgB,YAAY,CAAC,EAC3B,UAAU,EACV,aAAa,EACb,eAAe,GAChB,EAAE,iBAAiB,2CAyQnB"}
@@ -0,0 +1,73 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { Box, Paper, Typography, List, ListItem, ListItemText, IconButton, Stack, TextField, FormControl, InputLabel, Select, MenuItem, Collapse, Divider, Chip, } from '@mui/material';
4
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
5
+ import ExpandLessIcon from '@mui/icons-material/ExpandLess';
6
+ import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';
7
+ import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
8
+ import DragIndicatorIcon from '@mui/icons-material/DragIndicator';
9
+ import { getWidgetTypeInfo } from '../types';
10
+ export function FormDesigner({ formSchema, onUpdateField, onReorderFields, }) {
11
+ const [expandedField, setExpandedField] = useState(null);
12
+ const handleToggleExpand = (fieldId) => {
13
+ setExpandedField(expandedField === fieldId ? null : fieldId);
14
+ };
15
+ const handleMoveUp = (index) => {
16
+ if (index === 0)
17
+ return;
18
+ const newOrder = [...formSchema.fields.map(f => f.id)];
19
+ [newOrder[index - 1], newOrder[index]] = [newOrder[index], newOrder[index - 1]];
20
+ onReorderFields(newOrder);
21
+ };
22
+ const handleMoveDown = (index) => {
23
+ if (index === formSchema.fields.length - 1)
24
+ return;
25
+ const newOrder = [...formSchema.fields.map(f => f.id)];
26
+ [newOrder[index], newOrder[index + 1]] = [newOrder[index + 1], newOrder[index]];
27
+ onReorderFields(newOrder);
28
+ };
29
+ const handleUpdateStyle = (field, key, value) => {
30
+ onUpdateField({
31
+ ...field,
32
+ style: {
33
+ ...field.style,
34
+ [key]: value,
35
+ },
36
+ });
37
+ };
38
+ const handleUpdateLabel = (field, label) => {
39
+ onUpdateField({ ...field, label });
40
+ };
41
+ const handleUpdatePlaceholder = (field, placeholder) => {
42
+ onUpdateField({ ...field, placeholder: placeholder || undefined });
43
+ };
44
+ const handleUpdateDescription = (field, description) => {
45
+ onUpdateField({ ...field, description: description || undefined });
46
+ };
47
+ return (_jsxs(Box, { sx: { display: 'flex', gap: 3 }, children: [_jsx(Box, { sx: { flex: 1 }, children: _jsxs(Paper, { sx: { p: 2 }, children: [_jsx(Typography, { variant: "h6", gutterBottom: true, children: "Field Layout & Styling" }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: "Drag to reorder fields and customize their appearance." }), _jsx(List, { disablePadding: true, children: formSchema.fields.map((field, index) => {
48
+ const widgetInfo = getWidgetTypeInfo(field.widgetType);
49
+ const isExpanded = expandedField === field.id;
50
+ return (_jsxs(Paper, { variant: "outlined", sx: { mb: 1 }, children: [_jsxs(ListItem, { sx: {
51
+ '&:hover': { bgcolor: 'action.hover' },
52
+ }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mr: 1 }, children: [_jsx(DragIndicatorIcon, { sx: { color: 'text.disabled', mr: 1 } }), _jsxs(Stack, { spacing: 0, children: [_jsx(IconButton, { size: "small", onClick: () => handleMoveUp(index), disabled: index === 0, children: _jsx(KeyboardArrowUpIcon, { fontSize: "small" }) }), _jsx(IconButton, { size: "small", onClick: () => handleMoveDown(index), disabled: index === formSchema.fields.length - 1, children: _jsx(KeyboardArrowDownIcon, { fontSize: "small" }) })] })] }), _jsx(ListItemText, { primary: _jsxs(Box, { sx: { display: 'flex', alignItems: 'center', gap: 1 }, children: [_jsx(Typography, { variant: "body1", children: field.label }), _jsx(Chip, { label: widgetInfo?.label || field.widgetType, size: "small", variant: "outlined" })] }), secondary: `Column span: ${field.style?.columnSpan || 'Auto'}` }), _jsx(IconButton, { onClick: () => handleToggleExpand(field.id), children: isExpanded ? _jsx(ExpandLessIcon, {}) : _jsx(ExpandMoreIcon, {}) })] }), _jsx(Collapse, { in: isExpanded, children: _jsxs(Box, { sx: { p: 2, pt: 0 }, children: [_jsx(Divider, { sx: { mb: 2 } }), _jsxs(Stack, { spacing: 2, children: [_jsx(TextField, { label: "Label Text", value: field.label, onChange: (e) => handleUpdateLabel(field, e.target.value), fullWidth: true, size: "small" }), widgetInfo?.isInput && (_jsx(TextField, { label: "Placeholder", value: field.placeholder || '', onChange: (e) => handleUpdatePlaceholder(field, e.target.value), fullWidth: true, size: "small" })), _jsx(TextField, { label: "Help Text", value: field.description || '', onChange: (e) => handleUpdateDescription(field, e.target.value), fullWidth: true, size: "small" }), _jsxs(FormControl, { fullWidth: true, size: "small", children: [_jsx(InputLabel, { children: "Column Span" }), _jsxs(Select, { value: field.style?.columnSpan || 0, label: "Column Span", onChange: (e) => handleUpdateStyle(field, 'columnSpan', e.target.value), children: [_jsx(MenuItem, { value: 0, children: "Auto (Full Width)" }), _jsx(MenuItem, { value: 1, children: "1 Column (25%)" }), _jsx(MenuItem, { value: 2, children: "2 Columns (50%)" }), _jsx(MenuItem, { value: 3, children: "3 Columns (75%)" }), _jsx(MenuItem, { value: 4, children: "4 Columns (100%)" })] })] }), _jsxs(FormControl, { fullWidth: true, size: "small", children: [_jsx(InputLabel, { children: "Label Position" }), _jsxs(Select, { value: field.style?.labelPosition || 'top', label: "Label Position", onChange: (e) => handleUpdateStyle(field, 'labelPosition', e.target.value), children: [_jsx(MenuItem, { value: "top", children: "Top" }), _jsx(MenuItem, { value: "left", children: "Left" }), _jsx(MenuItem, { value: "floating", children: "Floating" })] })] })] })] }) })] }, field.id));
53
+ }) })] }) }), _jsx(Box, { sx: { width: 400 }, children: _jsxs(Paper, { sx: { p: 2, position: 'sticky', top: 16 }, children: [_jsx(Typography, { variant: "h6", gutterBottom: true, children: "Preview" }), _jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: "Live preview of your form layout." }), _jsxs(Box, { sx: {
54
+ p: 2,
55
+ border: 1,
56
+ borderColor: 'divider',
57
+ borderRadius: 1,
58
+ bgcolor: 'grey.50',
59
+ minHeight: 300,
60
+ }, children: [_jsx(Typography, { variant: "h6", gutterBottom: true, children: formSchema.name || 'Untitled Form' }), formSchema.description && (_jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mb: 2 }, children: formSchema.description })), _jsx(Stack, { spacing: 2, children: formSchema.fields.map((field) => {
61
+ const widgetInfo = getWidgetTypeInfo(field.widgetType);
62
+ return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", children: [field.label, field.required && (_jsx(Typography, { component: "span", color: "error.main", children: ' *' }))] }), _jsx(Box, { sx: {
63
+ mt: 0.5,
64
+ p: 1.5,
65
+ border: 1,
66
+ borderColor: 'divider',
67
+ borderRadius: 1,
68
+ bgcolor: 'background.paper',
69
+ color: 'text.secondary',
70
+ }, children: _jsxs(Typography, { variant: "caption", children: ["[", widgetInfo?.label || field.widgetType, "]", field.placeholder && ` - "${field.placeholder}"`] }) }), field.description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: field.description }))] }, field.id));
71
+ }) })] })] }) })] }));
72
+ }
73
+ //# sourceMappingURL=FormDesigner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormDesigner.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormDesigner.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { IFormStorage } from '../../forms/storage/types';
2
+ interface FormLibraryDialogProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ onOpenForm: (formId: string, formName: string) => void;
6
+ onCreateNew: () => void;
7
+ storage: IFormStorage;
8
+ }
9
+ export declare function FormLibraryDialog({ open, onClose, onOpenForm, onCreateNew, storage, }: FormLibraryDialogProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=FormLibraryDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormLibraryDialog.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormLibraryDialog.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,2BAA2B,CAAC;AAE5E,UAAU,sBAAsB;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;CACvB;AAOD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,GACR,EAAE,sBAAsB,2CA4LxB"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { Dialog, DialogTitle, DialogContent, DialogActions, Button, TextField, Typography, IconButton, Box, CircularProgress, Alert, InputAdornment, Grid, } from '@mui/material';
4
+ import CloseIcon from '@mui/icons-material/Close';
5
+ import SearchIcon from '@mui/icons-material/Search';
6
+ import RefreshIcon from '@mui/icons-material/Refresh';
7
+ import AddIcon from '@mui/icons-material/Add';
8
+ import { FormCard } from './FormCard';
9
+ export function FormLibraryDialog({ open, onClose, onOpenForm, onCreateNew, storage, }) {
10
+ const [forms, setForms] = useState([]);
11
+ const [searchQuery, setSearchQuery] = useState('');
12
+ const [loading, setLoading] = useState(true);
13
+ const [error, setError] = useState(null);
14
+ const [deleteConfirm, setDeleteConfirm] = useState(null);
15
+ const loadForms = useCallback(async () => {
16
+ setLoading(true);
17
+ setError(null);
18
+ try {
19
+ const list = await storage.list();
20
+ list.sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime());
21
+ setForms(list);
22
+ }
23
+ catch (err) {
24
+ setError(err instanceof Error ? err.message : 'Failed to load forms');
25
+ }
26
+ finally {
27
+ setLoading(false);
28
+ }
29
+ }, [storage]);
30
+ useEffect(() => {
31
+ if (open) {
32
+ loadForms();
33
+ setSearchQuery('');
34
+ setDeleteConfirm(null);
35
+ }
36
+ }, [open, loadForms]);
37
+ const handleDelete = async (formId) => {
38
+ if (deleteConfirm !== formId) {
39
+ setDeleteConfirm(formId);
40
+ return;
41
+ }
42
+ try {
43
+ await storage.delete(formId);
44
+ setDeleteConfirm(null);
45
+ loadForms();
46
+ }
47
+ catch (err) {
48
+ setError(err instanceof Error ? err.message : 'Failed to delete form');
49
+ }
50
+ };
51
+ const handleOpen = (formId, formName) => {
52
+ onOpenForm(formId, formName);
53
+ onClose();
54
+ };
55
+ const handleCreateNew = () => {
56
+ onCreateNew();
57
+ onClose();
58
+ };
59
+ const filteredForms = forms.filter((f) => f.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
60
+ (f.description?.toLowerCase().includes(searchQuery.toLowerCase()) ?? false));
61
+ return (_jsxs(Dialog, { open: open, onClose: onClose, maxWidth: "md", fullWidth: true, PaperProps: {
62
+ sx: {
63
+ height: '80vh',
64
+ maxHeight: 700,
65
+ },
66
+ }, children: [_jsxs(DialogTitle, { sx: { m: 0, p: 2, display: 'flex', alignItems: 'center' }, children: [_jsx(Typography, { variant: "h6", component: "span", sx: { flex: 1 }, children: "Form Library" }), _jsx(IconButton, { "aria-label": "refresh", onClick: loadForms, sx: { mr: 1 }, disabled: loading, children: _jsx(RefreshIcon, {}) }), _jsx(IconButton, { "aria-label": "close", onClick: onClose, sx: { color: 'grey.500' }, children: _jsx(CloseIcon, {}) })] }), _jsxs(DialogContent, { dividers: true, sx: { p: 0, display: 'flex', flexDirection: 'column' }, children: [_jsx(Box, { sx: { p: 2, borderBottom: 1, borderColor: 'divider' }, children: _jsx(TextField, { placeholder: "Search forms...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), fullWidth: true, size: "small", slotProps: {
67
+ input: {
68
+ startAdornment: (_jsx(InputAdornment, { position: "start", children: _jsx(SearchIcon, { color: "action" }) })),
69
+ },
70
+ } }) }), error && (_jsx(Alert, { severity: "error", sx: { m: 2 }, onClose: () => setError(null), children: error })), deleteConfirm && (_jsx(Alert, { severity: "warning", sx: { m: 2 }, onClose: () => setDeleteConfirm(null), children: "Click delete again to confirm deletion, or click X to cancel." })), _jsx(Box, { sx: { flex: 1, overflow: 'auto', p: 2 }, children: loading ? (_jsx(Box, { sx: { display: 'flex', justifyContent: 'center', py: 4 }, children: _jsx(CircularProgress, {}) })) : filteredForms.length === 0 ? (_jsxs(Box, { sx: { textAlign: 'center', py: 4 }, children: [_jsx(Typography, { color: "text.secondary", gutterBottom: true, children: searchQuery ? 'No forms match your search' : 'No forms saved yet' }), !searchQuery && (_jsx(Button, { variant: "contained", startIcon: _jsx(AddIcon, {}), onClick: handleCreateNew, sx: { mt: 2 }, children: "Create Your First Form" }))] })) : (_jsx(Grid, { container: true, spacing: 2, children: filteredForms.map((form) => (_jsx(Grid, { size: { xs: 12, sm: 6, md: 4 }, children: _jsx(FormCard, { form: form, onOpen: handleOpen, onDelete: handleDelete }) }, form.id))) })) })] }), _jsxs(DialogActions, { sx: { px: 3, py: 2 }, children: [_jsxs(Typography, { variant: "body2", color: "text.secondary", sx: { flex: 1 }, children: [forms.length, " form", forms.length !== 1 ? 's' : '', " saved"] }), _jsx(Button, { onClick: onClose, color: "inherit", children: "Close" }), _jsx(Button, { variant: "contained", startIcon: _jsx(AddIcon, {}), onClick: handleCreateNew, children: "New Form" })] })] }));
71
+ }
72
+ //# sourceMappingURL=FormLibraryDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormLibraryDialog.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormLibraryDialog.tsx"],"names":[],"mappings":";AAQA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,aAAa,EACb,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,EACV,GAAG,EACH,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,IAAI,GACL,MAAM,eAAe,CAAC;AACvB,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAClD,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,OAAO,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAgBtC,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,GACgB;IACvB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAiB,EAAE,CAAC,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAElC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACjB,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CACpE,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACxE,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtB,MAAM,YAAY,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QAC5C,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAE7B,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAGD,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE;QACtD,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC,CAC5E,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAC,IAAI,EACb,SAAS,QACT,UAAU,EAAE;YACV,EAAE,EAAE;gBACF,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,GAAG;aACf;SACF,aAED,MAAC,WAAW,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,aACpE,KAAC,UAAU,IAAC,OAAO,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,6BAE5C,EACb,KAAC,UAAU,kBACE,SAAS,EACpB,OAAO,EAAE,SAAS,EAClB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EACb,QAAQ,EAAE,OAAO,YAEjB,KAAC,WAAW,KAAG,GACJ,EACb,KAAC,UAAU,kBAAY,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YACxE,KAAC,SAAS,KAAG,GACF,IACD,EAEd,MAAC,aAAa,IAAC,QAAQ,QAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,aAE5E,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,YACxD,KAAC,SAAS,IACR,WAAW,EAAC,iBAAiB,EAC7B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,SAAS,QACT,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE;gCACT,KAAK,EAAE;oCACL,cAAc,EAAE,CACd,KAAC,cAAc,IAAC,QAAQ,EAAC,OAAO,YAC9B,KAAC,UAAU,IAAC,KAAK,EAAC,QAAQ,GAAG,GACd,CAClB;iCACF;6BACF,GACD,GACE,EAGL,KAAK,IAAI,CACR,KAAC,KAAK,IAAC,QAAQ,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAChE,KAAK,GACA,CACT,EAGA,aAAa,IAAI,CAChB,KAAC,KAAK,IACJ,QAAQ,EAAC,SAAS,EAClB,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,8EAG/B,CACT,EAGD,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YACzC,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,YAC3D,KAAC,gBAAgB,KAAG,GAChB,CACP,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC/B,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,aACrC,KAAC,UAAU,IAAC,KAAK,EAAC,gBAAgB,EAAC,YAAY,kBAC5C,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,oBAAoB,GACvD,EACZ,CAAC,WAAW,IAAI,CACf,KAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,KAAC,OAAO,KAAG,EACtB,OAAO,EAAE,eAAe,EACxB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,uCAGN,CACV,IACG,CACP,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,YACvB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC3B,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAClC,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,GACtB,IALuC,IAAI,CAAC,EAAE,CAM3C,CACR,CAAC,GACG,CACR,GACG,IACQ,EAEhB,MAAC,aAAa,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,aACjC,MAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,gBAAgB,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aAC/D,KAAK,CAAC,MAAM,WAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cACtC,EACb,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,SAAS,sBAEhC,EACT,KAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,SAAS,EAAE,KAAC,OAAO,KAAG,EACtB,OAAO,EAAE,eAAe,yBAGjB,IACK,IACT,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { FormSchema } from '../types';
2
+ import type { IFormStorage } from '../../forms/storage/types';
3
+ interface FormTesterProps {
4
+ formId?: string;
5
+ formSchema: FormSchema;
6
+ storage?: IFormStorage;
7
+ }
8
+ export declare function FormTester({ formId, formSchema, storage, }: FormTesterProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=FormTester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormTester.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/FormTester.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,2BAA2B,CAAC;AAEhF,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAOD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,UAAU,EACV,OAAO,GACR,EAAE,eAAe,2CA8KjB"}
@@ -0,0 +1,147 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useState, useEffect } from 'react';
3
+ import { Box, Paper, Typography, Button, Alert, Divider, Stack, CircularProgress, } from '@mui/material';
4
+ import PlayArrowIcon from '@mui/icons-material/PlayArrow';
5
+ import RefreshIcon from '@mui/icons-material/Refresh';
6
+ import CodeIcon from '@mui/icons-material/Code';
7
+ export function FormTester({ formId, formSchema, storage, }) {
8
+ const [form, setForm] = useState(null);
9
+ const [loading, setLoading] = useState(false);
10
+ const [error, setError] = useState(null);
11
+ const [formData, setFormData] = useState({});
12
+ const [submitted, setSubmitted] = useState(false);
13
+ const [showJson, setShowJson] = useState(false);
14
+ useEffect(() => {
15
+ if (formId && storage) {
16
+ setLoading(true);
17
+ setError(null);
18
+ storage
19
+ .get(formId)
20
+ .then(setForm)
21
+ .catch((err) => setError(String(err)))
22
+ .finally(() => setLoading(false));
23
+ }
24
+ }, [formId, storage]);
25
+ const handleReset = () => {
26
+ setFormData({});
27
+ setSubmitted(false);
28
+ };
29
+ const handleSubmit = (e) => {
30
+ e.preventDefault();
31
+ setSubmitted(true);
32
+ };
33
+ const handleFieldChange = (fieldId, value) => {
34
+ setFormData((prev) => ({ ...prev, [fieldId]: value }));
35
+ setSubmitted(false);
36
+ };
37
+ if (loading) {
38
+ return (_jsx(Box, { sx: { display: 'flex', justifyContent: 'center', p: 4 }, children: _jsx(CircularProgress, {}) }));
39
+ }
40
+ if (error) {
41
+ return (_jsxs(Alert, { severity: "error", children: ["Failed to load form: ", error] }));
42
+ }
43
+ return (_jsxs(Box, { sx: { display: 'flex', gap: 3 }, children: [_jsx(Box, { sx: { flex: 1 }, children: _jsxs(Paper, { sx: { p: 3 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mb: 2 }, children: [_jsx(PlayArrowIcon, { sx: { mr: 1, color: 'primary.main' } }), _jsx(Typography, { variant: "h6", children: "Test Your Form" }), _jsx(Box, { sx: { flex: 1 } }), _jsx(Button, { startIcon: _jsx(RefreshIcon, {}), onClick: handleReset, size: "small", children: "Reset" })] }), _jsx(Divider, { sx: { mb: 3 } }), _jsx(Typography, { variant: "h5", gutterBottom: true, children: formSchema.name || 'Untitled Form' }), formSchema.description && (_jsx(Typography, { variant: "body1", color: "text.secondary", sx: { mb: 3 }, children: formSchema.description })), _jsx("form", { onSubmit: handleSubmit, children: _jsxs(Stack, { spacing: 3, children: [formSchema.fields.map((field) => (_jsx(FormField, { field: field, value: formData[field.id], onChange: (value) => handleFieldChange(field.id, value) }, field.id))), _jsx(Button, { type: "submit", variant: "contained", size: "large", sx: { mt: 2 }, children: "Submit Form" })] }) }), submitted && (_jsx(Alert, { severity: "success", sx: { mt: 3 }, children: "Form submitted successfully! See the captured data on the right." }))] }) }), _jsx(Box, { sx: { width: 350 }, children: _jsxs(Paper, { sx: { p: 2, position: 'sticky', top: 16 }, children: [_jsxs(Box, { sx: { display: 'flex', alignItems: 'center', mb: 2 }, children: [_jsx(CodeIcon, { sx: { mr: 1, color: 'text.secondary' } }), _jsx(Typography, { variant: "h6", children: "Captured Data" }), _jsx(Box, { sx: { flex: 1 } }), _jsx(Button, { size: "small", onClick: () => setShowJson(!showJson), children: showJson ? 'Table' : 'JSON' })] }), _jsx(Divider, { sx: { mb: 2 } }), Object.keys(formData).length === 0 ? (_jsx(Typography, { variant: "body2", color: "text.secondary", children: "Fill out the form to see captured data here." })) : showJson ? (_jsx(Box, { component: "pre", sx: {
44
+ p: 2,
45
+ bgcolor: 'grey.100',
46
+ borderRadius: 1,
47
+ overflow: 'auto',
48
+ fontSize: '0.75rem',
49
+ maxHeight: 400,
50
+ }, children: JSON.stringify(formData, null, 2) })) : (_jsx(Stack, { spacing: 1, children: Object.entries(formData).map(([fieldId, value]) => {
51
+ const field = formSchema.fields.find((f) => f.id === fieldId);
52
+ return (_jsxs(Box, { children: [_jsx(Typography, { variant: "caption", color: "text.secondary", children: field?.label || fieldId }), _jsx(Typography, { variant: "body2", children: formatValue(value) })] }, fieldId));
53
+ }) }))] }) })] }));
54
+ }
55
+ function formatValue(value) {
56
+ if (value === null || value === undefined)
57
+ return '(empty)';
58
+ if (typeof value === 'boolean')
59
+ return value ? 'Yes' : 'No';
60
+ if (Array.isArray(value))
61
+ return value.join(', ') || '(empty)';
62
+ return String(value) || '(empty)';
63
+ }
64
+ function FormField({ field, value, onChange }) {
65
+ const { id, label, widgetType, required, description, placeholder, widgetConfig } = field;
66
+ switch (widgetType) {
67
+ case 'textInput':
68
+ case 'email':
69
+ case 'phone':
70
+ case 'url':
71
+ return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("input", { id: id, type: widgetType === 'email' ? 'email' : widgetType === 'url' ? 'url' : 'text', value: value || '', onChange: (e) => onChange(e.target.value), placeholder: placeholder, required: required, style: {
72
+ width: '100%',
73
+ padding: '8px 12px',
74
+ border: '1px solid #ccc',
75
+ borderRadius: 4,
76
+ fontSize: 14,
77
+ } }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
78
+ case 'textArea':
79
+ return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("textarea", { id: id, value: value || '', onChange: (e) => onChange(e.target.value), placeholder: placeholder, required: required, rows: 4, style: {
80
+ width: '100%',
81
+ padding: '8px 12px',
82
+ border: '1px solid #ccc',
83
+ borderRadius: 4,
84
+ fontSize: 14,
85
+ resize: 'vertical',
86
+ } }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
87
+ case 'number':
88
+ return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("input", { id: id, type: "number", value: value ?? '', onChange: (e) => onChange(e.target.value ? Number(e.target.value) : null), placeholder: placeholder, required: required, style: {
89
+ width: '100%',
90
+ padding: '8px 12px',
91
+ border: '1px solid #ccc',
92
+ borderRadius: 4,
93
+ fontSize: 14,
94
+ } }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
95
+ case 'toggle':
96
+ return (_jsxs(Box, { children: [_jsxs("label", { style: { display: 'flex', alignItems: 'center', cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", checked: value || false, onChange: (e) => onChange(e.target.checked), style: { marginRight: 8 } }), _jsxs(Typography, { variant: "body2", fontWeight: "medium", children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] })] }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", sx: { ml: 3 }, children: description }))] }));
97
+ case 'dropdown':
98
+ case 'radio':
99
+ const options = widgetConfig?.options || [];
100
+ return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }), widgetType === 'dropdown' ? (_jsxs("select", { value: value || '', onChange: (e) => onChange(e.target.value), required: required, style: {
101
+ width: '100%',
102
+ padding: '8px 12px',
103
+ border: '1px solid #ccc',
104
+ borderRadius: 4,
105
+ fontSize: 14,
106
+ }, children: [_jsx("option", { value: "", children: placeholder || 'Select an option' }), options.map((opt) => (_jsx("option", { value: opt.value, children: opt.label }, opt.value)))] })) : (_jsx(Stack, { spacing: 0.5, children: options.map((opt) => (_jsxs("label", { style: { display: 'flex', alignItems: 'center', cursor: 'pointer' }, children: [_jsx("input", { type: "radio", name: id, value: opt.value, checked: value === opt.value, onChange: (e) => onChange(e.target.value), required: required, style: { marginRight: 8 } }), opt.label] }, opt.value))) })), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
107
+ case 'checkbox':
108
+ const checkboxOptions = widgetConfig?.options || [];
109
+ const selectedValues = value || [];
110
+ return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }), _jsx(Stack, { spacing: 0.5, children: checkboxOptions.map((opt) => (_jsxs("label", { style: { display: 'flex', alignItems: 'center', cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", value: opt.value, checked: selectedValues.includes(opt.value), onChange: (e) => {
111
+ if (e.target.checked) {
112
+ onChange([...selectedValues, opt.value]);
113
+ }
114
+ else {
115
+ onChange(selectedValues.filter((v) => v !== opt.value));
116
+ }
117
+ }, style: { marginRight: 8 } }), opt.label] }, opt.value))) }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
118
+ case 'date':
119
+ return (_jsxs(Box, { children: [_jsx("label", { htmlFor: id, children: _jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }) }), _jsx("input", { id: id, type: "date", value: value || '', onChange: (e) => onChange(e.target.value), required: required, style: {
120
+ width: '100%',
121
+ padding: '8px 12px',
122
+ border: '1px solid #ccc',
123
+ borderRadius: 4,
124
+ fontSize: 14,
125
+ } }), description && (_jsx(Typography, { variant: "caption", color: "text.secondary", children: description }))] }));
126
+ case 'heading':
127
+ const level = widgetConfig?.level || 2;
128
+ const text = widgetConfig?.text || label;
129
+ const HeadingTag = `h${level}`;
130
+ return React.createElement(HeadingTag, { style: { margin: '16px 0 8px' } }, text);
131
+ case 'paragraph':
132
+ return (_jsx(Typography, { variant: "body1", color: "text.secondary", children: widgetConfig?.text || label }));
133
+ case 'divider':
134
+ return _jsx(Divider, { sx: { my: 2 } });
135
+ case 'spacer':
136
+ return _jsx(Box, { sx: { height: widgetConfig?.height || 24 } });
137
+ default:
138
+ return (_jsxs(Box, { children: [_jsxs(Typography, { variant: "body2", fontWeight: "medium", sx: { mb: 0.5 }, children: [label, required && _jsx("span", { style: { color: 'red' }, children: " *" })] }), _jsxs(Typography, { variant: "caption", color: "text.secondary", children: ["Widget type \"", widgetType, "\" not yet implemented in tester."] }), _jsx("input", { type: "text", value: value || '', onChange: (e) => onChange(e.target.value), placeholder: placeholder || `Enter ${label}`, style: {
139
+ width: '100%',
140
+ padding: '8px 12px',
141
+ border: '1px solid #ccc',
142
+ borderRadius: 4,
143
+ fontSize: 14,
144
+ } })] }));
145
+ }
146
+ }
147
+ //# sourceMappingURL=FormTester.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormTester.js","sourceRoot":"","sources":["../../../src/forms-builder/components/FormTester.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { IFormStorage } from '../../forms/storage/types';
2
+ interface NewKandiFormDialogProps {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ onComplete?: (formId: string) => void;
6
+ storage?: IFormStorage;
7
+ editFormId?: string | null;
8
+ }
9
+ export declare function NewKandiFormDialog({ open, onClose, onComplete, storage, editFormId, }: NewKandiFormDialogProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=NewKandiFormDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewKandiFormDialog.d.ts","sourceRoot":"","sources":["../../../src/forms-builder/components/NewKandiFormDialog.tsx"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAS9D,UAAU,uBAAuB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAQD,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,UAAU,EACV,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,2CAsMzB"}