@esheet/builder 0.0.3 → 0.0.4-1

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 (83) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +16 -143
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +11252 -6751
  5. package/dist/lib/EsheetBuilder.d.ts +46 -0
  6. package/dist/lib/EsheetBuilder.d.ts.map +1 -0
  7. package/dist/lib/EsheetBuilder.js +111 -0
  8. package/dist/lib/builder-tools.d.ts +107 -0
  9. package/dist/lib/builder-tools.d.ts.map +1 -0
  10. package/dist/lib/builder-tools.js +321 -0
  11. package/dist/lib/components/BuilderHeader.d.ts +7 -0
  12. package/dist/lib/components/BuilderHeader.d.ts.map +1 -0
  13. package/dist/lib/components/BuilderHeader.js +390 -0
  14. package/dist/lib/components/Canvas.d.ts +12 -0
  15. package/dist/lib/components/Canvas.d.ts.map +1 -0
  16. package/dist/lib/components/Canvas.js +288 -0
  17. package/dist/lib/components/CodeView.d.ts +12 -0
  18. package/dist/lib/components/CodeView.d.ts.map +1 -0
  19. package/dist/lib/components/CodeView.js +197 -0
  20. package/dist/lib/components/FeedbackModal.d.ts +23 -0
  21. package/dist/lib/components/FeedbackModal.d.ts.map +1 -0
  22. package/dist/lib/components/FeedbackModal.js +22 -0
  23. package/dist/lib/components/FieldWrapper.d.ts +53 -0
  24. package/dist/lib/components/FieldWrapper.d.ts.map +1 -0
  25. package/dist/lib/components/FieldWrapper.js +152 -0
  26. package/dist/lib/components/MobileBottomDrawer.d.ts +9 -0
  27. package/dist/lib/components/MobileBottomDrawer.d.ts.map +1 -0
  28. package/dist/lib/components/MobileBottomDrawer.js +6 -0
  29. package/dist/lib/components/ToolPanel.d.ts +11 -0
  30. package/dist/lib/components/ToolPanel.d.ts.map +1 -0
  31. package/dist/lib/components/ToolPanel.js +117 -0
  32. package/dist/lib/components/edit-panel/CommonEditor.d.ts +16 -0
  33. package/dist/lib/components/edit-panel/CommonEditor.d.ts.map +1 -0
  34. package/dist/lib/components/edit-panel/CommonEditor.js +16 -0
  35. package/dist/lib/components/edit-panel/DraftIdEditor.d.ts +16 -0
  36. package/dist/lib/components/edit-panel/DraftIdEditor.d.ts.map +1 -0
  37. package/dist/lib/components/edit-panel/DraftIdEditor.js +32 -0
  38. package/dist/lib/components/edit-panel/EditPanel.d.ts +10 -0
  39. package/dist/lib/components/edit-panel/EditPanel.d.ts.map +1 -0
  40. package/dist/lib/components/edit-panel/EditPanel.js +156 -0
  41. package/dist/lib/components/edit-panel/InputTypeEditor.d.ts +16 -0
  42. package/dist/lib/components/edit-panel/InputTypeEditor.d.ts.map +1 -0
  43. package/dist/lib/components/edit-panel/InputTypeEditor.js +32 -0
  44. package/dist/lib/components/edit-panel/LogicEditor.d.ts +15 -0
  45. package/dist/lib/components/edit-panel/LogicEditor.d.ts.map +1 -0
  46. package/dist/lib/components/edit-panel/LogicEditor.js +392 -0
  47. package/dist/lib/components/edit-panel/MatrixEditor.d.ts +12 -0
  48. package/dist/lib/components/edit-panel/MatrixEditor.d.ts.map +1 -0
  49. package/dist/lib/components/edit-panel/MatrixEditor.js +32 -0
  50. package/dist/lib/components/edit-panel/OptionListEditor.d.ts +14 -0
  51. package/dist/lib/components/edit-panel/OptionListEditor.d.ts.map +1 -0
  52. package/dist/lib/components/edit-panel/OptionListEditor.js +27 -0
  53. package/dist/lib/hooks/useFormApi.d.ts +55 -0
  54. package/dist/lib/hooks/useFormApi.d.ts.map +1 -0
  55. package/dist/lib/hooks/useFormApi.js +80 -0
  56. package/dist/lib/hooks/useUiApi.d.ts +22 -0
  57. package/dist/lib/hooks/useUiApi.d.ts.map +1 -0
  58. package/dist/lib/hooks/useUiApi.js +37 -0
  59. package/dist/lib/hooks/useVisibleRootIds.d.ts +11 -0
  60. package/dist/lib/hooks/useVisibleRootIds.d.ts.map +1 -0
  61. package/dist/lib/hooks/useVisibleRootIds.js +32 -0
  62. package/dist/lib/icons.d.ts +31 -0
  63. package/dist/lib/icons.d.ts.map +1 -0
  64. package/dist/lib/icons.js +47 -0
  65. package/dist/lib/mcp/index.d.ts +7 -0
  66. package/dist/lib/mcp/index.d.ts.map +1 -0
  67. package/dist/lib/mcp/index.js +4 -0
  68. package/dist/lib/mcp/system-prompt.d.ts +2 -0
  69. package/dist/lib/mcp/system-prompt.d.ts.map +1 -0
  70. package/dist/lib/mcp/system-prompt.js +9 -0
  71. package/dist/lib/mcp/tool-definitions.d.ts +10 -0
  72. package/dist/lib/mcp/tool-definitions.d.ts.map +1 -0
  73. package/dist/lib/mcp/tool-definitions.js +436 -0
  74. package/dist/lib/mcp/tool-executor.d.ts +5 -0
  75. package/dist/lib/mcp/tool-executor.d.ts.map +1 -0
  76. package/dist/lib/mcp/tool-executor.js +482 -0
  77. package/dist/lib/mcp/useBuilderToolBridge.d.ts +31 -0
  78. package/dist/lib/mcp/useBuilderToolBridge.d.ts.map +1 -0
  79. package/dist/lib/mcp/useBuilderToolBridge.js +56 -0
  80. package/dist/lib/register-defaults.d.ts +2 -0
  81. package/dist/lib/register-defaults.d.ts.map +1 -0
  82. package/dist/lib/register-defaults.js +37 -0
  83. package/package.json +7 -5
package/README.md CHANGED
@@ -45,7 +45,7 @@ function App() {
45
45
  import { EsheetBuilder } from '@esheet/builder';
46
46
 
47
47
  const initialForm: FormDefinition = {
48
- schemaType: 'mieforms-v1.0',
48
+ id: 'patient-intake',
49
49
  title: 'Patient Intake',
50
50
  fields: [
51
51
  { id: 'name', fieldType: 'text', question: 'Full Name', required: true },
package/dist/index.d.ts CHANGED
@@ -1,143 +1,16 @@
1
- import { BuilderMode } from '@esheet/core';
2
- import { createUIStore } from '@esheet/core';
3
- import { default as default_2 } from 'react';
4
- import { EditTab } from '@esheet/core';
5
- import { FieldComponentProps } from '@esheet/core';
6
- import { FormDefinition } from '@esheet/core';
7
- import { FormStore } from '@esheet/core';
8
- import { FormStoreContext } from '@esheet/fields';
9
- import { getFieldComponent } from '@esheet/fields';
10
- import { getRegisteredComponentKeys } from '@esheet/fields';
11
- import { JSX } from 'react/jsx-runtime';
12
- import { registerCustomFieldTypes } from '@esheet/fields';
13
- import { resetComponentRegistry } from '@esheet/fields';
14
- import { UIContext } from '@esheet/fields';
15
- import { UIState } from '@esheet/core';
16
- import { UIStore } from '@esheet/core';
17
- import { useFormStore } from '@esheet/fields';
18
- import { useUI } from '@esheet/fields';
19
-
20
- /**
21
- * BuilderHeader — top bar with Build/Code/Preview mode toggle and Import/Export actions.
22
- */
23
- export declare function BuilderHeader({ form, ui }: BuilderHeaderProps): JSX.Element;
24
-
25
- export declare interface BuilderHeaderProps {
26
- form: FormStore;
27
- ui: UIStore;
28
- }
29
-
30
- export { BuilderMode }
31
-
32
- /**
33
- * CodeView — Monaco-based JSON/YAML editor for the form definition.
34
- *
35
- * Serialize on mount, live-validate on edit, auto-save on unmount.
36
- */
37
- export declare function CodeView({ form, ui }: CodeViewProps): JSX.Element;
38
-
39
- export declare interface CodeViewProps {
40
- form: FormStore;
41
- ui: UIStore;
42
- }
43
-
44
- export { createUIStore }
45
-
46
- export { EditTab }
47
-
48
- export declare function EsheetBuilder({ definition, onChange, dragEnabled, className, children, }: EsheetBuilderProps): JSX.Element;
49
-
50
- export declare interface EsheetBuilderProps {
51
- /** Initial form definition to load. */
52
- definition?: FormDefinition;
53
- /** Callback fired when the form definition changes. */
54
- onChange?: (definition: FormDefinition) => void;
55
- /** Whether drag-and-drop reordering is enabled (default: true). Disable for better performance on slow devices. */
56
- dragEnabled?: boolean;
57
- /** Additional CSS class name. */
58
- className?: string;
59
- /** Optional content rendered below the header (e.g. custom status/debug panels). */
60
- children?: default_2.ReactNode;
61
- }
62
-
63
- export { FieldComponentProps }
64
-
65
- /**
66
- * FieldWrapper - Extensibility API for custom field components.
67
- *
68
- * Wraps a field with collapsible header, selection highlighting, edit/delete buttons, and drag handles.
69
- * Exposes field data and tools to the render function, allowing users to create
70
- * custom field types while getting all the built-in editor functionality.
71
- *
72
- * @example
73
- * ```tsx
74
- * <FieldWrapper fieldId={id} form={form} ui={ui}>
75
- * {({ field, onUpdate, onRemove }) => (
76
- * <div>
77
- * <input
78
- * value={field.question}
79
- * onChange={(e) => onUpdate({ question: e.target.value })}
80
- * />
81
- * </div>
82
- * )}
83
- * </FieldWrapper>
84
- * ```
85
- */
86
- export declare function FieldWrapper({ fieldId, form, ui, dragHandleRef, isSelectedOverride, onSelectOverride, selectedVariant: _selectedVariant, forceExpandVersion, forceCollapseVersion, children, }: FieldWrapperProps): JSX.Element | null;
87
-
88
- export declare interface FieldWrapperProps {
89
- /** The field ID */
90
- fieldId: string;
91
- /** The form store */
92
- form: FormStore;
93
- /** The UI store */
94
- ui: UIStore;
95
- /** Ref attached to the drag-handle element. */
96
- dragHandleRef?: default_2.RefObject<HTMLDivElement | null>;
97
- /** Optional override for selection state (used by nested section child interaction). */
98
- isSelectedOverride?: boolean;
99
- /** Optional override for click selection behavior. */
100
- onSelectOverride?: (e: default_2.MouseEvent) => void;
101
- /** Optional selected styling variant. */
102
- selectedVariant?: 'default' | 'nested';
103
- /** Optional signal used to force expand a field wrapper (used for section drop UX). */
104
- forceExpandVersion?: number;
105
- /** Optional signal used to force collapse a field wrapper. */
106
- forceCollapseVersion?: number;
107
- /** Render function that receives field data and tools */
108
- children: (props: FieldWrapperRenderProps) => default_2.ReactNode;
109
- }
110
-
111
- /**
112
- * Props exposed to the render function for custom field components.
113
- * Identical to `FieldComponentProps` from core — kept as a named alias for
114
- * backward-compatibility with existing builder consumers.
115
- */
116
- export declare type FieldWrapperRenderProps = FieldComponentProps;
117
-
118
- export { FormStoreContext }
119
-
120
- export { getFieldComponent }
121
-
122
- export { getRegisteredComponentKeys }
123
-
124
- export declare const InstanceIdContext: default_2.Context<string>;
125
-
126
- export { registerCustomFieldTypes }
127
-
128
- export { resetComponentRegistry }
129
-
130
- export { UIContext }
131
-
132
- export { UIState }
133
-
134
- export { UIStore }
135
-
136
- export { useFormStore }
137
-
138
- /** Hook to access the per-instance ID for unique DOM element IDs. */
139
- export declare function useInstanceId(): string;
140
-
141
- export { useUI }
142
-
143
- export { }
1
+ import './index.output.css';
2
+ export { createUIStore, type UIState, type UIStore, type BuilderMode, type EditTab, type FieldComponentProps, } from '@esheet/core';
3
+ export { EsheetBuilder, FormStoreContext, UIContext, InstanceIdContext, useFormStore, useUI, useInstanceId, type EsheetBuilderProps, type BuilderTools, type FieldSummary, } from './lib/EsheetBuilder.js';
4
+ export { FieldWrapper, type FieldWrapperProps, type FieldWrapperRenderProps, } from './lib/components/FieldWrapper.js';
5
+ export { registerCustomFieldTypes, getFieldComponent, getRegisteredComponentKeys, } from '@esheet/fields';
6
+ export { BuilderHeader, type BuilderHeaderProps, } from './lib/components/BuilderHeader.js';
7
+ export { CodeView, type CodeViewProps } from './lib/components/CodeView.js';
8
+ export { useFormApi } from './lib/hooks/useFormApi.js';
9
+ export type { FormApi, FieldResponseMap } from './lib/hooks/useFormApi.js';
10
+ export { useUiApi } from './lib/hooks/useUiApi.js';
11
+ export type { UiApi } from './lib/hooks/useUiApi.js';
12
+ export { useVisibleRootIds } from './lib/hooks/useVisibleRootIds.js';
13
+ export { executeToolCall, BUILDER_TOOL_DEFINITIONS, BUILDER_SYSTEM_PROMPT, useBuilderMcpToolHandler, } from './lib/mcp/index.js';
14
+ export type { ToolDefinition, UseBuilderMcpToolHandlerOptions, } from './lib/mcp/index.js';
15
+ export type { FormDefinition, FieldDefinition } from '@esheet/core';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,+BAA+B,GAChC,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}