@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,586 @@
1
+ import { FormEngine } from '../core/FormEngine';
2
+ import { createFormStorage } from '../storage';
3
+ const widgetRenderers = {
4
+ textInput: (field, state, handlers) => {
5
+ const input = document.createElement('input');
6
+ input.type = 'text';
7
+ input.id = field.id;
8
+ input.value = state.value ?? '';
9
+ input.placeholder = field.placeholder ?? '';
10
+ input.disabled = handlers.disabled || field.disabled;
11
+ input.readOnly = handlers.readOnly || field.readonly;
12
+ if (field.widget.type === 'textInput' && field.widget.maxLength) {
13
+ input.maxLength = field.widget.maxLength;
14
+ }
15
+ input.addEventListener('input', () => handlers.onChange(input.value));
16
+ input.addEventListener('blur', handlers.onBlur);
17
+ return input;
18
+ },
19
+ textArea: (field, state, handlers) => {
20
+ const textarea = document.createElement('textarea');
21
+ textarea.id = field.id;
22
+ textarea.value = state.value ?? '';
23
+ textarea.placeholder = field.placeholder ?? '';
24
+ textarea.disabled = handlers.disabled || field.disabled;
25
+ textarea.readOnly = handlers.readOnly || field.readonly;
26
+ if (field.widget.type === 'textArea') {
27
+ textarea.rows = field.widget.rows ?? 3;
28
+ if (field.widget.maxLength)
29
+ textarea.maxLength = field.widget.maxLength;
30
+ }
31
+ textarea.addEventListener('input', () => handlers.onChange(textarea.value));
32
+ textarea.addEventListener('blur', handlers.onBlur);
33
+ return textarea;
34
+ },
35
+ email: (field, state, handlers) => {
36
+ const input = document.createElement('input');
37
+ input.type = 'email';
38
+ input.id = field.id;
39
+ input.value = state.value ?? '';
40
+ input.placeholder = field.placeholder ?? '';
41
+ input.disabled = handlers.disabled || field.disabled;
42
+ input.readOnly = handlers.readOnly || field.readonly;
43
+ input.addEventListener('input', () => handlers.onChange(input.value));
44
+ input.addEventListener('blur', handlers.onBlur);
45
+ return input;
46
+ },
47
+ phone: (field, state, handlers) => {
48
+ const input = document.createElement('input');
49
+ input.type = 'tel';
50
+ input.id = field.id;
51
+ input.value = state.value ?? '';
52
+ input.placeholder = field.placeholder ?? '';
53
+ input.disabled = handlers.disabled || field.disabled;
54
+ input.readOnly = handlers.readOnly || field.readonly;
55
+ input.addEventListener('input', () => handlers.onChange(input.value));
56
+ input.addEventListener('blur', handlers.onBlur);
57
+ return input;
58
+ },
59
+ url: (field, state, handlers) => {
60
+ const input = document.createElement('input');
61
+ input.type = 'url';
62
+ input.id = field.id;
63
+ input.value = state.value ?? '';
64
+ input.placeholder = field.placeholder ?? '';
65
+ input.disabled = handlers.disabled || field.disabled;
66
+ input.readOnly = handlers.readOnly || field.readonly;
67
+ input.addEventListener('input', () => handlers.onChange(input.value));
68
+ input.addEventListener('blur', handlers.onBlur);
69
+ return input;
70
+ },
71
+ password: (field, state, handlers) => {
72
+ const wrapper = document.createElement('div');
73
+ wrapper.className = 'kandi-password-wrapper';
74
+ const input = document.createElement('input');
75
+ input.type = 'password';
76
+ input.id = field.id;
77
+ input.value = state.value ?? '';
78
+ input.placeholder = field.placeholder ?? '';
79
+ input.disabled = handlers.disabled || field.disabled;
80
+ input.readOnly = handlers.readOnly || field.readonly;
81
+ input.addEventListener('input', () => handlers.onChange(input.value));
82
+ input.addEventListener('blur', handlers.onBlur);
83
+ wrapper.appendChild(input);
84
+ if (field.widget.type === 'password' && field.widget.showToggle) {
85
+ const toggle = document.createElement('button');
86
+ toggle.type = 'button';
87
+ toggle.className = 'kandi-password-toggle';
88
+ toggle.textContent = '👁';
89
+ toggle.addEventListener('click', () => {
90
+ input.type = input.type === 'password' ? 'text' : 'password';
91
+ });
92
+ wrapper.appendChild(toggle);
93
+ }
94
+ return wrapper;
95
+ },
96
+ number: (field, state, handlers) => {
97
+ const input = document.createElement('input');
98
+ input.type = 'number';
99
+ input.id = field.id;
100
+ input.value = state.value != null ? String(state.value) : '';
101
+ input.placeholder = field.placeholder ?? '';
102
+ input.disabled = handlers.disabled || field.disabled;
103
+ input.readOnly = handlers.readOnly || field.readonly;
104
+ if (field.widget.type === 'number') {
105
+ if (field.widget.min != null)
106
+ input.min = String(field.widget.min);
107
+ if (field.widget.max != null)
108
+ input.max = String(field.widget.max);
109
+ if (field.widget.step != null)
110
+ input.step = String(field.widget.step);
111
+ }
112
+ input.addEventListener('input', () => {
113
+ handlers.onChange(input.valueAsNumber || null);
114
+ });
115
+ input.addEventListener('blur', handlers.onBlur);
116
+ return input;
117
+ },
118
+ dropdown: (field, state, handlers) => {
119
+ const select = document.createElement('select');
120
+ select.id = field.id;
121
+ select.disabled = handlers.disabled || field.disabled;
122
+ const placeholder = document.createElement('option');
123
+ placeholder.value = '';
124
+ placeholder.textContent = field.placeholder ?? 'Select...';
125
+ select.appendChild(placeholder);
126
+ if (field.widget.type === 'dropdown') {
127
+ for (const opt of field.widget.options) {
128
+ const option = document.createElement('option');
129
+ option.value = opt.value;
130
+ option.textContent = opt.label;
131
+ option.disabled = opt.disabled ?? false;
132
+ select.appendChild(option);
133
+ }
134
+ }
135
+ select.value = state.value ?? '';
136
+ select.addEventListener('change', () => handlers.onChange(select.value || null));
137
+ select.addEventListener('blur', handlers.onBlur);
138
+ return select;
139
+ },
140
+ radio: (field, state, handlers) => {
141
+ const group = document.createElement('div');
142
+ group.className = 'kandi-radio-group';
143
+ if (field.widget.type === 'radio') {
144
+ group.classList.add(`layout-${field.widget.layout}`);
145
+ for (const opt of field.widget.options) {
146
+ const item = document.createElement('label');
147
+ item.className = 'kandi-radio-item';
148
+ const input = document.createElement('input');
149
+ input.type = 'radio';
150
+ input.name = field.id;
151
+ input.value = opt.value;
152
+ input.checked = state.value === opt.value;
153
+ input.disabled = !!(handlers.disabled || field.disabled || opt.disabled);
154
+ input.addEventListener('change', () => handlers.onChange(opt.value));
155
+ const label = document.createElement('span');
156
+ label.textContent = opt.label;
157
+ item.appendChild(input);
158
+ item.appendChild(label);
159
+ group.appendChild(item);
160
+ }
161
+ }
162
+ return group;
163
+ },
164
+ checkbox: (field, state, handlers) => {
165
+ const group = document.createElement('div');
166
+ group.className = 'kandi-checkbox-group';
167
+ if (field.widget.type === 'checkbox') {
168
+ group.classList.add(`layout-${field.widget.layout}`);
169
+ const currentValues = state.value ?? [];
170
+ for (const opt of field.widget.options) {
171
+ const item = document.createElement('label');
172
+ item.className = 'kandi-checkbox-item';
173
+ const input = document.createElement('input');
174
+ input.type = 'checkbox';
175
+ input.value = opt.value;
176
+ input.checked = currentValues.includes(opt.value);
177
+ input.disabled = !!(handlers.disabled || field.disabled || opt.disabled);
178
+ input.addEventListener('change', () => {
179
+ const newValues = input.checked
180
+ ? [...currentValues, opt.value]
181
+ : currentValues.filter(v => v !== opt.value);
182
+ handlers.onChange(newValues);
183
+ });
184
+ const label = document.createElement('span');
185
+ label.textContent = opt.label;
186
+ item.appendChild(input);
187
+ item.appendChild(label);
188
+ group.appendChild(item);
189
+ }
190
+ }
191
+ return group;
192
+ },
193
+ toggle: (field, state, handlers) => {
194
+ const label = document.createElement('label');
195
+ label.className = 'kandi-toggle';
196
+ const input = document.createElement('input');
197
+ input.type = 'checkbox';
198
+ input.id = field.id;
199
+ input.checked = state.value ?? false;
200
+ input.disabled = handlers.disabled || field.disabled;
201
+ input.addEventListener('change', () => handlers.onChange(input.checked));
202
+ input.addEventListener('blur', handlers.onBlur);
203
+ const slider = document.createElement('span');
204
+ slider.className = 'kandi-toggle-slider';
205
+ label.appendChild(input);
206
+ label.appendChild(slider);
207
+ if (field.widget.type === 'toggle' && field.widget.onLabel && field.widget.offLabel) {
208
+ const text = document.createElement('span');
209
+ text.className = 'kandi-toggle-label';
210
+ text.textContent = state.value ? field.widget.onLabel : field.widget.offLabel;
211
+ label.appendChild(text);
212
+ }
213
+ return label;
214
+ },
215
+ date: (field, state, handlers) => {
216
+ const input = document.createElement('input');
217
+ input.type = 'date';
218
+ input.id = field.id;
219
+ input.value = state.value ?? '';
220
+ input.disabled = handlers.disabled || field.disabled;
221
+ input.readOnly = handlers.readOnly || field.readonly;
222
+ if (field.widget.type === 'date') {
223
+ if (field.widget.minDate)
224
+ input.min = field.widget.minDate;
225
+ if (field.widget.maxDate)
226
+ input.max = field.widget.maxDate;
227
+ }
228
+ input.addEventListener('input', () => handlers.onChange(input.value));
229
+ input.addEventListener('blur', handlers.onBlur);
230
+ return input;
231
+ },
232
+ time: (field, state, handlers) => {
233
+ const input = document.createElement('input');
234
+ input.type = 'time';
235
+ input.id = field.id;
236
+ input.value = state.value ?? '';
237
+ input.disabled = handlers.disabled || field.disabled;
238
+ input.readOnly = handlers.readOnly || field.readonly;
239
+ input.addEventListener('input', () => handlers.onChange(input.value));
240
+ input.addEventListener('blur', handlers.onBlur);
241
+ return input;
242
+ },
243
+ heading: (field) => {
244
+ if (field.widget.type !== 'heading')
245
+ return document.createElement('div');
246
+ const heading = document.createElement(`h${field.widget.level}`);
247
+ heading.className = 'kandi-heading';
248
+ heading.textContent = field.widget.text;
249
+ return heading;
250
+ },
251
+ paragraph: (field) => {
252
+ if (field.widget.type !== 'paragraph')
253
+ return document.createElement('div');
254
+ const p = document.createElement('p');
255
+ p.className = 'kandi-paragraph';
256
+ p.textContent = field.widget.text;
257
+ return p;
258
+ },
259
+ divider: () => {
260
+ const hr = document.createElement('hr');
261
+ hr.className = 'kandi-divider';
262
+ return hr;
263
+ },
264
+ spacer: (field) => {
265
+ const div = document.createElement('div');
266
+ div.className = 'kandi-spacer';
267
+ if (field.widget.type === 'spacer') {
268
+ div.style.height = `${field.widget.height}px`;
269
+ }
270
+ return div;
271
+ },
272
+ };
273
+ const layoutWidgets = ['heading', 'paragraph', 'divider', 'spacer', 'image'];
274
+ function clearElement(el) {
275
+ while (el.firstChild) {
276
+ el.removeChild(el.firstChild);
277
+ }
278
+ }
279
+ export class KandiForm {
280
+ constructor(options) {
281
+ this.engine = null;
282
+ this.form = null;
283
+ this.theme = null;
284
+ this.fieldElements = new Map();
285
+ this.options = options;
286
+ if (typeof options.container === 'string') {
287
+ const el = document.querySelector(options.container);
288
+ if (!el)
289
+ throw new Error(`Container not found: ${options.container}`);
290
+ this.container = el;
291
+ }
292
+ else {
293
+ this.container = options.container;
294
+ }
295
+ this.storage = createFormStorage(options.apiConfig);
296
+ this.init();
297
+ }
298
+ async init() {
299
+ try {
300
+ if (this.options.form) {
301
+ this.form = this.options.form;
302
+ }
303
+ else if (this.options.formId) {
304
+ this.renderLoading();
305
+ const result = await this.storage.preview(this.options.formId);
306
+ this.form = result.form;
307
+ this.theme = result.theme;
308
+ }
309
+ else {
310
+ throw new Error('Either form or formId is required');
311
+ }
312
+ this.engine = new FormEngine({
313
+ form: this.form,
314
+ initialValues: this.options.initialValues,
315
+ onSubmit: this.options.onSubmit,
316
+ onChange: (state) => {
317
+ this.updateFields(state);
318
+ this.options.onChange?.(state.values);
319
+ },
320
+ });
321
+ this.render();
322
+ }
323
+ catch (error) {
324
+ const err = error instanceof Error ? error : new Error(String(error));
325
+ this.options.onError?.(err);
326
+ this.renderError(err);
327
+ }
328
+ }
329
+ renderLoading() {
330
+ clearElement(this.container);
331
+ const loading = document.createElement('div');
332
+ loading.className = 'kandi-form-loading';
333
+ const spinner = document.createElement('div');
334
+ spinner.className = 'kandi-form-spinner';
335
+ const text = document.createElement('p');
336
+ text.textContent = 'Loading form...';
337
+ loading.appendChild(spinner);
338
+ loading.appendChild(text);
339
+ this.container.appendChild(loading);
340
+ }
341
+ renderError(error) {
342
+ clearElement(this.container);
343
+ const errorDiv = document.createElement('div');
344
+ errorDiv.className = 'kandi-form-error';
345
+ const title = document.createElement('h3');
346
+ title.textContent = 'Failed to load form';
347
+ const message = document.createElement('p');
348
+ message.textContent = error.message;
349
+ errorDiv.appendChild(title);
350
+ errorDiv.appendChild(message);
351
+ this.container.appendChild(errorDiv);
352
+ }
353
+ render() {
354
+ if (!this.form || !this.engine)
355
+ return;
356
+ const state = this.engine.getState();
357
+ const formEl = document.createElement('form');
358
+ formEl.className = `kandi-form theme-${this.form.theme}`;
359
+ formEl.noValidate = true;
360
+ formEl.addEventListener('submit', (e) => this.handleSubmit(e));
361
+ if (this.theme) {
362
+ this.applyTheme(formEl, this.theme);
363
+ }
364
+ if (this.form.name || this.form.description) {
365
+ const header = document.createElement('header');
366
+ header.className = 'kandi-form-header';
367
+ if (this.form.name) {
368
+ const title = document.createElement('h1');
369
+ title.className = 'kandi-form-title';
370
+ title.textContent = this.form.name;
371
+ header.appendChild(title);
372
+ }
373
+ if (this.form.description) {
374
+ const desc = document.createElement('p');
375
+ desc.className = 'kandi-form-description';
376
+ desc.textContent = this.form.description;
377
+ header.appendChild(desc);
378
+ }
379
+ formEl.appendChild(header);
380
+ }
381
+ const pages = document.createElement('div');
382
+ pages.className = 'kandi-pages';
383
+ for (const page of this.form.pages) {
384
+ pages.appendChild(this.renderPage(page, state));
385
+ }
386
+ formEl.appendChild(pages);
387
+ if (!this.options.readOnly) {
388
+ const footer = document.createElement('footer');
389
+ footer.className = 'kandi-form-footer';
390
+ const submitBtn = document.createElement('button');
391
+ submitBtn.type = 'submit';
392
+ submitBtn.className = 'kandi-submit-btn';
393
+ submitBtn.textContent = this.form.settings?.submitButtonText ?? 'Submit';
394
+ submitBtn.disabled = this.options.disabled ?? false;
395
+ footer.appendChild(submitBtn);
396
+ formEl.appendChild(footer);
397
+ }
398
+ clearElement(this.container);
399
+ this.container.appendChild(formEl);
400
+ }
401
+ renderPage(page, state) {
402
+ const pageEl = document.createElement('div');
403
+ pageEl.className = 'kandi-page';
404
+ if (page.title) {
405
+ const title = document.createElement('h2');
406
+ title.className = 'kandi-page-title';
407
+ title.textContent = page.title;
408
+ pageEl.appendChild(title);
409
+ }
410
+ if (page.description) {
411
+ const desc = document.createElement('p');
412
+ desc.className = 'kandi-page-description';
413
+ desc.textContent = page.description;
414
+ pageEl.appendChild(desc);
415
+ }
416
+ const fields = document.createElement('div');
417
+ fields.className = 'kandi-fields';
418
+ for (const field of page.fields) {
419
+ const fieldEl = this.renderField(field, state);
420
+ fields.appendChild(fieldEl);
421
+ this.fieldElements.set(field.id, fieldEl);
422
+ }
423
+ pageEl.appendChild(fields);
424
+ return pageEl;
425
+ }
426
+ renderField(field, state) {
427
+ const fieldState = this.engine.getFieldState(field.id);
428
+ const isLayout = layoutWidgets.includes(field.widget.type);
429
+ const fieldEl = document.createElement('div');
430
+ fieldEl.className = `kandi-field ${isLayout ? 'kandi-field-layout' : ''}`;
431
+ fieldEl.dataset.fieldId = field.id;
432
+ if (!state.visibility[field.id]) {
433
+ fieldEl.classList.add('kandi-field-hidden');
434
+ }
435
+ if (fieldState.touched && fieldState.errors.length > 0) {
436
+ fieldEl.classList.add('kandi-field-error');
437
+ }
438
+ if (field.style?.columnSpan) {
439
+ fieldEl.style.gridColumn = `span ${field.style.columnSpan}`;
440
+ }
441
+ if (field.style?.rowSpan) {
442
+ fieldEl.style.gridRow = `span ${field.style.rowSpan}`;
443
+ }
444
+ if (field.style?.order != null) {
445
+ fieldEl.style.order = String(field.style.order);
446
+ }
447
+ if (!isLayout && !field.style?.hideLabel) {
448
+ const label = document.createElement('label');
449
+ label.htmlFor = field.id;
450
+ label.className = 'kandi-field-label';
451
+ label.textContent = field.label;
452
+ if (field.required) {
453
+ const req = document.createElement('span');
454
+ req.className = 'kandi-required';
455
+ req.textContent = '*';
456
+ label.appendChild(req);
457
+ }
458
+ fieldEl.appendChild(label);
459
+ }
460
+ if (field.description) {
461
+ const desc = document.createElement('p');
462
+ desc.className = 'kandi-field-description';
463
+ desc.textContent = field.description;
464
+ fieldEl.appendChild(desc);
465
+ }
466
+ const renderer = widgetRenderers[field.widget.type];
467
+ if (renderer) {
468
+ const widget = renderer(field, fieldState, {
469
+ onChange: (value) => this.engine.setValue(field.id, value),
470
+ onBlur: () => this.engine.setTouched(field.id),
471
+ disabled: this.options.disabled || !state.enabled[field.id],
472
+ readOnly: this.options.readOnly ?? false,
473
+ });
474
+ fieldEl.appendChild(widget);
475
+ }
476
+ else {
477
+ const placeholder = document.createElement('div');
478
+ placeholder.className = 'kandi-widget-placeholder';
479
+ placeholder.textContent = `Widget "${field.widget.type}" not implemented`;
480
+ fieldEl.appendChild(placeholder);
481
+ }
482
+ if (fieldState.touched && fieldState.errors.length > 0) {
483
+ const errors = document.createElement('div');
484
+ errors.className = 'kandi-field-errors';
485
+ errors.setAttribute('role', 'alert');
486
+ for (const msg of fieldState.errors) {
487
+ const p = document.createElement('p');
488
+ p.textContent = msg;
489
+ errors.appendChild(p);
490
+ }
491
+ fieldEl.appendChild(errors);
492
+ }
493
+ return fieldEl;
494
+ }
495
+ updateFields(state) {
496
+ for (const [fieldId, fieldEl] of this.fieldElements) {
497
+ const fieldState = this.engine.getFieldState(fieldId);
498
+ if (state.visibility[fieldId]) {
499
+ fieldEl.classList.remove('kandi-field-hidden');
500
+ }
501
+ else {
502
+ fieldEl.classList.add('kandi-field-hidden');
503
+ }
504
+ const hasError = fieldState.touched && fieldState.errors.length > 0;
505
+ if (hasError) {
506
+ fieldEl.classList.add('kandi-field-error');
507
+ }
508
+ else {
509
+ fieldEl.classList.remove('kandi-field-error');
510
+ }
511
+ let errorsEl = fieldEl.querySelector('.kandi-field-errors');
512
+ if (hasError) {
513
+ if (!errorsEl) {
514
+ errorsEl = document.createElement('div');
515
+ errorsEl.className = 'kandi-field-errors';
516
+ errorsEl.setAttribute('role', 'alert');
517
+ fieldEl.appendChild(errorsEl);
518
+ }
519
+ clearElement(errorsEl);
520
+ for (const msg of fieldState.errors) {
521
+ const p = document.createElement('p');
522
+ p.textContent = msg;
523
+ errorsEl.appendChild(p);
524
+ }
525
+ }
526
+ else if (errorsEl) {
527
+ errorsEl.remove();
528
+ }
529
+ }
530
+ }
531
+ applyTheme(el, theme) {
532
+ el.style.setProperty('--kf-primary', theme.colors.primary);
533
+ el.style.setProperty('--kf-secondary', theme.colors.secondary);
534
+ el.style.setProperty('--kf-accent', theme.colors.accent);
535
+ el.style.setProperty('--kf-background', theme.colors.background);
536
+ el.style.setProperty('--kf-surface', theme.colors.surface);
537
+ el.style.setProperty('--kf-text', theme.colors.text);
538
+ el.style.setProperty('--kf-text-secondary', theme.colors.textSecondary);
539
+ el.style.setProperty('--kf-error', theme.colors.error);
540
+ el.style.setProperty('--kf-success', theme.colors.success);
541
+ el.style.setProperty('--kf-warning', theme.colors.warning);
542
+ el.style.setProperty('--kf-border', theme.colors.border);
543
+ el.style.setProperty('--kf-font-family', theme.typography.fontFamily);
544
+ el.style.setProperty('--kf-heading-font', theme.typography.headingFontFamily ?? theme.typography.fontFamily);
545
+ el.style.setProperty('--kf-font-size', theme.typography.baseFontSize);
546
+ el.style.setProperty('--kf-line-height', String(theme.typography.lineHeight));
547
+ el.style.setProperty('--kf-border-radius', theme.borders.radius);
548
+ el.style.setProperty('--kf-spacing-xs', theme.spacing.xs);
549
+ el.style.setProperty('--kf-spacing-sm', theme.spacing.sm);
550
+ el.style.setProperty('--kf-spacing-md', theme.spacing.md);
551
+ el.style.setProperty('--kf-spacing-lg', theme.spacing.lg);
552
+ el.style.setProperty('--kf-spacing-xl', theme.spacing.xl);
553
+ }
554
+ async handleSubmit(e) {
555
+ e.preventDefault();
556
+ if (!this.engine)
557
+ return;
558
+ const success = await this.engine.submit();
559
+ if (!success) {
560
+ const firstError = this.container.querySelector('.kandi-field-error');
561
+ firstError?.scrollIntoView({ behavior: 'smooth', block: 'center' });
562
+ }
563
+ }
564
+ getValues() {
565
+ return this.engine?.getState().values ?? {};
566
+ }
567
+ setValue(fieldId, value) {
568
+ this.engine?.setValue(fieldId, value);
569
+ }
570
+ reset() {
571
+ this.engine?.reset();
572
+ }
573
+ validate() {
574
+ return this.engine?.validateAll().valid ?? false;
575
+ }
576
+ async submit() {
577
+ return this.engine?.submit() ?? false;
578
+ }
579
+ destroy() {
580
+ clearElement(this.container);
581
+ this.fieldElements.clear();
582
+ this.engine = null;
583
+ this.form = null;
584
+ }
585
+ }
586
+ //# sourceMappingURL=KandiForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KandiForm.js","sourceRoot":"","sources":["../../../src/forms/vanilla/KandiForm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { KandiForm } from './KandiForm';
2
+ export type { KandiFormOptions } from './KandiForm';
3
+ export { FormEngine } from '../core';
4
+ export type { FieldState, FormEngineState, FormEngineOptions, FormEngineListener, } from '../core';
5
+ export { createFormStorage, TauriFormStorage, ApiFormStorage, isTauri, } from '../storage';
6
+ export type { IFormStorage, ApiConfig, Form, FormId, Field, FieldValue, Theme, ThemeId, } from '../storage';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/vanilla/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,YAAY,EACZ,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,EACL,UAAU,EACV,KAAK,EACL,OAAO,GACR,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { KandiForm } from './KandiForm';
2
+ export { FormEngine } from '../core';
3
+ export { createFormStorage, TauriFormStorage, ApiFormStorage, isTauri, } from '../storage';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/forms/vanilla/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AASrC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAC"}