@dipusevilla/componentes-iu 1.0.44 → 1.0.45

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 (31) hide show
  1. package/dist/index.cjs.js +35 -14
  2. package/dist/index.css +1 -1
  3. package/dist/index.es.js +12265 -4107
  4. package/dist/index.umd.js +36 -15
  5. package/dist/types/components/Button.d.ts +3 -3
  6. package/dist/types/components/InfoButton.d.ts +2 -0
  7. package/dist/types/components/NodeToolbar.d.ts +8 -0
  8. package/dist/types/editor/SchemaEditorHost.d.ts +21 -0
  9. package/dist/types/editor/SchemaEditorPage.d.ts +1 -0
  10. package/dist/types/editor/adapters/types.d.ts +17 -0
  11. package/dist/types/editor/components/Canvas.d.ts +1 -0
  12. package/dist/types/editor/components/ColumnDropZone.d.ts +26 -0
  13. package/dist/types/editor/components/DesignerCanvas.d.ts +1 -0
  14. package/dist/types/editor/components/FieldChip.d.ts +16 -0
  15. package/dist/types/editor/components/Inspector.d.ts +10 -0
  16. package/dist/types/editor/components/Palette.d.ts +4 -0
  17. package/dist/types/editor/components/RuleBuilder.d.ts +11 -0
  18. package/dist/types/editor/components/Toolbar.d.ts +2 -0
  19. package/dist/types/editor/context/adaptersProvider.d.ts +7 -0
  20. package/dist/types/editor/dnd/DraggableField.d.ts +18 -0
  21. package/dist/types/editor/dnd/DraggableSection.d.ts +8 -0
  22. package/dist/types/editor/dnd/DraggableTabChip.d.ts +10 -0
  23. package/dist/types/editor/dnd/DraggableTabSection.d.ts +10 -0
  24. package/dist/types/editor/dnd/DropColumn.d.ts +26 -0
  25. package/dist/types/editor/dnd/EditorDndProvider.d.ts +2 -0
  26. package/dist/types/editor/dnd/GlobalDropTarget.d.ts +7 -0
  27. package/dist/types/editor/dnd/InlineDropSlot.d.ts +19 -0
  28. package/dist/types/editor/dnd/types.d.ts +62 -0
  29. package/dist/types/editor/store.d.ts +125 -0
  30. package/dist/types/index.d.ts +5 -0
  31. package/package.json +4 -1
@@ -1,8 +1,8 @@
1
1
  import React, { type ButtonHTMLAttributes } from "react";
2
2
  export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
3
3
  type?: "button" | "submit" | "reset";
4
- variant?: "primary" | "outline" | "ghost";
5
- size?: "sm" | "md" | "lg";
4
+ variant?: "primary" | "outline" | "ghost" | "subtle" | "danger";
5
+ size?: "xs" | "sm" | "md" | "lg";
6
6
  width?: string;
7
7
  disabled?: boolean;
8
8
  /** Componente de icono (pasa un React component desde @heroicons/react) */
@@ -13,4 +13,4 @@ export type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
13
13
  children?: React.ReactNode;
14
14
  onClick?: () => void;
15
15
  };
16
- export declare function Button({ type, variant, size, width, disabled, icon: IconComponent, iconPosition, ariaLabel, children, onClick, className: buttonClassName, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function Button({ type, variant, size, width, disabled, icon: IconComponent, iconPosition, ariaLabel, children, onClick, className: buttonClassName, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -8,5 +8,7 @@ export interface InfoButtonProps {
8
8
  position?: 'top' | 'right' | 'bottom' | 'left';
9
9
  /** Clases extra para el contenedor padre */
10
10
  className?: string;
11
+ onClick?: () => void;
12
+ ariaLabel?: string;
11
13
  }
12
14
  export declare const InfoButton: FC<InfoButtonProps>;
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ type NodeToolbarProps = {
3
+ anchorEl: HTMLElement | null;
4
+ visible: boolean;
5
+ children?: React.ReactNode;
6
+ };
7
+ export declare function NodeToolbar({ anchorEl, visible, children }: NodeToolbarProps): React.ReactPortal | null;
8
+ export {};
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import type { FileSystemAdapter, ServicesAdapter } from "./adapters/types";
3
+ export type SchemaEditorHostProps = {
4
+ title?: string;
5
+ baseDir?: string;
6
+ fs: FileSystemAdapter;
7
+ services: ServicesAdapter;
8
+ onSchemaChange?: (schema: unknown) => void;
9
+ rightPanel?: React.ReactNode;
10
+ /** ancho del panel derecho cuando está visible (ej: "320px") */
11
+ rightPanelWidth?: string;
12
+ /** si el panel debe arrancar abierto (por defecto: false) */
13
+ rightPanelDefaultOpen?: boolean;
14
+ /** control externo opcional */
15
+ rightPanelOpen?: boolean;
16
+ /** callback al cambiar visibilidad del panel (si lo controlas tú) */
17
+ onRightPanelOpenChange?: (open: boolean) => void;
18
+ className?: string;
19
+ };
20
+ export declare function SchemaEditorHost({ title, baseDir, fs, services, onSchemaChange, rightPanel, rightPanelWidth, rightPanelDefaultOpen, rightPanelOpen, onRightPanelOpenChange, className, }: SchemaEditorHostProps): import("react/jsx-runtime").JSX.Element;
21
+ export default SchemaEditorHost;
@@ -0,0 +1 @@
1
+ export default function SchemaEditorPage(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export type FileSystemAdapter = {
2
+ list(): Promise<Array<{
3
+ name: string;
4
+ path: string;
5
+ }>>;
6
+ read(path: string): Promise<string>;
7
+ write(path: string, content: string): Promise<void>;
8
+ remove(path: string): Promise<void>;
9
+ };
10
+ export type ServicesAdapter = {
11
+ registry: Record<string, unknown>;
12
+ };
13
+ export type EditorAdapters = {
14
+ fs: FileSystemAdapter;
15
+ services: ServicesAdapter;
16
+ baseDir: string;
17
+ };
@@ -0,0 +1 @@
1
+ export declare function Canvas(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,26 @@
1
+ type MovePos = {
2
+ s: number;
3
+ r: number;
4
+ c: number;
5
+ idx: number;
6
+ };
7
+ type Props = {
8
+ widthLabel?: string;
9
+ fields: string[];
10
+ indices: {
11
+ sIdx: number;
12
+ rIdx: number;
13
+ cIdx: number;
14
+ };
15
+ canMoveLeft: boolean;
16
+ canMoveRight: boolean;
17
+ onSelect: (name: string) => void;
18
+ onMove: (from: MovePos, to: Partial<MovePos>) => void;
19
+ onDuplicate: (name: string) => void;
20
+ onRemoveAt: (at: MovePos) => void;
21
+ onPlaceLast: () => void;
22
+ placeDisabled?: boolean;
23
+ readOnly?: boolean;
24
+ };
25
+ export declare function ColumnDropZone({ widthLabel, fields, indices, canMoveLeft, canMoveRight, onSelect, onMove, onDuplicate, onRemoveAt, onPlaceLast, placeDisabled, readOnly }: Props): import("react/jsx-runtime").JSX.Element;
26
+ export {};
@@ -0,0 +1 @@
1
+ export default function DesignerCanvas(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ type Props = {
2
+ name: string;
3
+ canUp?: boolean;
4
+ canDown?: boolean;
5
+ canLeft?: boolean;
6
+ canRight?: boolean;
7
+ onSelect: () => void;
8
+ onUp: () => void;
9
+ onDown: () => void;
10
+ onLeft: () => void;
11
+ onRight: () => void;
12
+ onDuplicate: () => void;
13
+ onRemove: () => void;
14
+ };
15
+ export declare function FieldChip({ name, canUp, canDown, canLeft, canRight, onSelect, onUp, onDown, onLeft, onRight, onDuplicate, onRemove, }: Props): import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { RuleExpr } from "../../rules/RuleDSL";
2
+ type Validation = {
3
+ ok: true;
4
+ } | {
5
+ ok: false;
6
+ reason: string;
7
+ };
8
+ export declare function validateRule(expr: RuleExpr | undefined, fieldNames: string[]): Validation;
9
+ export declare function Inspector(): import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,4 @@
1
+ /** MIME types para DnD con el FormRendererEditable (se conservan por compatibilidad) */
2
+ export declare const DRAG_MIME_FIELD = "application/x-ds-field-template";
3
+ export declare const DRAG_MIME_LAYOUT = "application/x-ds-layout-kind";
4
+ export declare function Palette(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { RuleExpr } from "../../rules/RuleDSL";
2
+ type Props = {
3
+ value?: RuleExpr;
4
+ onChange: (expr: RuleExpr) => void;
5
+ fieldOptions: Array<{
6
+ label: string;
7
+ value: string;
8
+ }>;
9
+ };
10
+ export declare function RuleBuilder({ value, onChange, fieldOptions }: Props): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ export declare function Toolbar(): import("react/jsx-runtime").JSX.Element;
2
+ export default Toolbar;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { EditorAdapters } from "../adapters/types";
3
+ export declare function AdaptersProvider({ children, value, }: {
4
+ value: EditorAdapters;
5
+ children: React.ReactNode;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ export declare function useAdapters(): EditorAdapters;
@@ -0,0 +1,18 @@
1
+ import type { FieldIndexPath } from "./types";
2
+ type RowsProps = {
3
+ kind: "field-in-rows";
4
+ rowsNodeIdx: number;
5
+ name: string;
6
+ path: FieldIndexPath;
7
+ onSelect: () => void;
8
+ };
9
+ type TabsProps = {
10
+ kind: "field-in-tabs";
11
+ tabKey: string;
12
+ name: string;
13
+ path: FieldIndexPath;
14
+ onSelect: () => void;
15
+ };
16
+ type Props = RowsProps | TabsProps;
17
+ export declare function DraggableField(p: Props): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,8 @@
1
+ export declare function SectionDropSlot({ nodeIdx, insertAt }: {
2
+ nodeIdx: number;
3
+ insertAt: number;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export declare function DraggableSectionGrip({ nodeIdx, sIdx }: {
6
+ nodeIdx: number;
7
+ sIdx: number;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export declare function TabDropSlot({ nodeIdx, insertAt }: {
2
+ nodeIdx: number;
3
+ insertAt: number;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export declare function DraggableTabChip({ nodeIdx, index, tabKey, label, }: {
6
+ nodeIdx: number;
7
+ index: number;
8
+ tabKey: string;
9
+ label: string;
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ export declare function TabSectionDropSlot({ nodeIdx, tabKey, insertAt, }: {
2
+ nodeIdx: number;
3
+ tabKey: string;
4
+ insertAt: number;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function DraggableTabSectionGrip({ nodeIdx, tabKey, sIdx, }: {
7
+ nodeIdx: number;
8
+ tabKey: string;
9
+ sIdx: number;
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ type RowsColProps = {
3
+ scope: "rows-column";
4
+ rowsNodeIdx: number;
5
+ s: number;
6
+ r: number;
7
+ c: number;
8
+ children: React.ReactNode;
9
+ };
10
+ type TabsColProps = {
11
+ scope: "tabs-column";
12
+ tabKey: string;
13
+ s: number;
14
+ r: number;
15
+ c: number;
16
+ children: React.ReactNode;
17
+ };
18
+ type Props = RowsColProps | TabsColProps;
19
+ /**
20
+ * DropColumn
21
+ * - Zona droppable que envuelve una columna completa.
22
+ * - Si se suelta aquí (y no en un InlineDropSlot), interpretamos "insertar al final"
23
+ * enviando insertAt=Number.MAX_SAFE_INTEGER (el provider lo clamp-ea).
24
+ */
25
+ export declare function DropColumn(props: Props): import("react/jsx-runtime").JSX.Element;
26
+ export {};
@@ -0,0 +1,2 @@
1
+ import { PropsWithChildren } from "react";
2
+ export default function EditorDndProvider({ children }: PropsWithChildren<object>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ type Props = {
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ };
6
+ export default function GlobalDropTarget({ className, children }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,19 @@
1
+ type RowsColProps = {
2
+ scope: "rows-column";
3
+ rowsNodeIdx: number;
4
+ s: number;
5
+ r: number;
6
+ c: number;
7
+ insertAt: number;
8
+ };
9
+ type TabsColProps = {
10
+ scope: "tabs-column";
11
+ tabKey: string;
12
+ s: number;
13
+ r: number;
14
+ c: number;
15
+ insertAt: number;
16
+ };
17
+ type Props = RowsColProps | TabsColProps;
18
+ export declare function InlineDropSlot(props: Props): import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,62 @@
1
+ export type FieldIndexPath = {
2
+ s: number;
3
+ r: number;
4
+ c: number;
5
+ idx: number;
6
+ };
7
+ export type DragData = {
8
+ kind: "field-in-rows";
9
+ name: string;
10
+ path: FieldIndexPath;
11
+ rowsNodeIdx?: number;
12
+ } | {
13
+ kind: "field-in-tabs";
14
+ tabKey: string;
15
+ name: string;
16
+ path: FieldIndexPath;
17
+ } | {
18
+ kind: "palette-field";
19
+ factoryKind: "text" | "number" | "email" | "password" | "select" | "textarea" | "checkbox" | "date" | "file";
20
+ } | {
21
+ kind: "rows-section";
22
+ nodeIdx: number;
23
+ sIdx: number;
24
+ } | {
25
+ kind: "tabs-tab";
26
+ nodeIdx: number;
27
+ index: number;
28
+ tabKey: string;
29
+ } | {
30
+ kind: "tab-section";
31
+ nodeIdx: number;
32
+ tabKey: string;
33
+ sIdx: number;
34
+ };
35
+ export type DropTarget = {
36
+ scope: "rows-column";
37
+ rowsNodeIdx: number;
38
+ s: number;
39
+ r: number;
40
+ c: number;
41
+ insertAt?: number;
42
+ } | {
43
+ scope: "tabs-column";
44
+ tabKey: string;
45
+ s: number;
46
+ r: number;
47
+ c: number;
48
+ insertAt?: number;
49
+ } | {
50
+ scope: "rows-section";
51
+ nodeIdx: number;
52
+ insertAt: number;
53
+ } | {
54
+ scope: "tabs-tab";
55
+ nodeIdx: number;
56
+ insertAt: number;
57
+ } | {
58
+ scope: "tab-section";
59
+ nodeIdx: number;
60
+ tabKey: string;
61
+ insertAt: number;
62
+ };
@@ -0,0 +1,125 @@
1
+ import type { FormSchema, FieldSchema, FieldEntry } from "../types/FormTypes";
2
+ export declare const getYupFromEditor: () => import("yup").ObjectSchema<Record<string, unknown>, import("yup").AnyObject, any, "">;
3
+ export type Selection = {
4
+ kind: "field";
5
+ name: string;
6
+ } | {
7
+ kind: "column";
8
+ sectionIdx: number;
9
+ rowIdx: number;
10
+ colIdx: number;
11
+ } | {
12
+ kind: "row";
13
+ sectionIdx: number;
14
+ rowIdx: number;
15
+ } | {
16
+ kind: "section";
17
+ sectionIdx: number;
18
+ } | {
19
+ kind: "tab";
20
+ tabKey: string;
21
+ } | {
22
+ kind: "none";
23
+ };
24
+ export type ColumnPreset = "1" | "2" | "3" | "4" | "1/3-2/3" | "2/3-1/3" | "1/4-3/4" | "3/4-1/4";
25
+ type IndexPath = {
26
+ s: number;
27
+ r: number;
28
+ c: number;
29
+ idx: number;
30
+ };
31
+ type EditorState = {
32
+ schema: FormSchema;
33
+ selection: Selection;
34
+ past: FormSchema[];
35
+ future: FormSchema[];
36
+ };
37
+ type EditorActions = {
38
+ changeFieldType: (name: string, newType: "text" | "number" | "email" | "password" | "select" | "textarea" | "checkbox" | "date" | "file") => void;
39
+ setSchema: (updater: (draft: FormSchema) => void) => void;
40
+ setSelection: (sel: Selection) => void;
41
+ undo: () => void;
42
+ redo: () => void;
43
+ resetHistory: () => void;
44
+ addField: (field: FieldEntry) => void;
45
+ removeField: (name: string) => void;
46
+ updateField: (name: string, updater: (f: FieldSchema) => void) => void;
47
+ duplicateField: (name: string, desiredNew?: string) => void;
48
+ renameField: (oldName: string, desiredNew?: string) => void;
49
+ addFieldAt: (field: FieldEntry, atIndex: number) => void;
50
+ addSection: (title?: string) => void;
51
+ renameSection: (sectionIdx: number, title: string) => void;
52
+ moveSection: (nodeIdx: number, from: number, to: number) => void;
53
+ removeSection: (sectionIdx: number) => void;
54
+ duplicateSection: (sectionIdx: number) => void;
55
+ addTabsContainer: () => void;
56
+ addTabAfter: (tabKey: string) => void;
57
+ removeTab: (tabKey: string) => void;
58
+ renameTab: (tabKey: string, newLabel: string) => void;
59
+ moveTab: (nodeIdx: number, from: number, to: number) => void;
60
+ moveTabSection: (nodeIdx: number, tabKey: string, from: number, to: number) => void;
61
+ addSectionToTab: (tabKey: string, title?: string) => void;
62
+ addRowToTabSection: (tabKey: string, sectionIdx: number) => void;
63
+ renameTabSection: (tabKey: string, sectionIdx: number, title: string) => void;
64
+ setTabRowColumns: (tabKey: string, sectionIdx: number, rowIdx: number, nCols: number) => void;
65
+ addColumnToTabRow: (tabKey: string, sectionIdx: number, rowIdx: number) => void;
66
+ removeTabColumn: (tabKey: string, sectionIdx: number, rowIdx: number, colIdx: number) => void;
67
+ placeFieldInTabColumn: (name: string, tabKey: string, sectionIdx: number, rowIdx: number, colIdx: number) => void;
68
+ moveFieldInTab: (from: {
69
+ tabKey: string;
70
+ s: number;
71
+ r: number;
72
+ c: number;
73
+ idx: number;
74
+ }, to: {
75
+ tabKey: string;
76
+ s: number;
77
+ r: number;
78
+ c: number;
79
+ idx?: number;
80
+ }) => void;
81
+ removeFieldFromTabLayout: (at: {
82
+ tabKey: string;
83
+ s: number;
84
+ r: number;
85
+ c: number;
86
+ idx: number;
87
+ }) => void;
88
+ moveTabRow: (tabKey: string, sectionIdx: number, fromRowIdx: number, toRowIdx: number) => void;
89
+ duplicateTabRow: (tabKey: string, sectionIdx: number, rowIdx: number) => void;
90
+ removeTabRow: (tabKey: string, sectionIdx: number, rowIdx: number) => void;
91
+ setTabRowColumnsPreset: (tabKey: string, sectionIdx: number, rowIdx: number, preset: ColumnPreset) => void;
92
+ addRowToSection: (sectionIdx: number) => void;
93
+ addColumnToRow: (sectionIdx: number, rowIdx: number) => void;
94
+ setRowColumns: (sectionIdx: number, rowIdx: number, nCols: number) => void;
95
+ removeColumn: (sectionIdx: number, rowIdx: number, colIdx: number) => void;
96
+ addRowsBlockAt: (layoutIdx: number, title?: string) => void;
97
+ addTabsContainerAt: (layoutIdx: number) => void;
98
+ moveLayoutNode: (fromIdx: number, toIdx: number) => void;
99
+ removeLayoutNode: (layoutIdx: number) => void;
100
+ moveRowInSection: (sectionIdx: number, fromRowIdx: number, toRowIdx: number) => void;
101
+ duplicateRowInSection: (sectionIdx: number, rowIdx: number) => void;
102
+ removeRowFromSection: (sectionIdx: number, rowIdx: number) => void;
103
+ setRowColumnsPreset: (sectionIdx: number, rowIdx: number, preset: ColumnPreset) => void;
104
+ placeFieldInColumn: (name: string, sectionIdx: number, rowIdx: number, colIdx: number) => void;
105
+ moveField: (from: IndexPath, to: Omit<IndexPath, "idx"> & {
106
+ idx?: number;
107
+ }) => void;
108
+ removeFieldFromLayout: (at: IndexPath) => void;
109
+ addFieldAndPlace: (fieldTemplate: Omit<FieldSchema, "name"> & Partial<Pick<FieldSchema, "name">>, sectionIdx: number, rowIdx: number, colIdx: number) => void;
110
+ moveFieldWithinColumn: (sectionIdx: number, rowIdx: number, colIdx: number, fromIdx: number, toIdx: number) => void;
111
+ insertExistingFieldAt: (name: string, sectionIdx: number, rowIdx: number, colIdx: number, atIdx: number) => void;
112
+ addFieldAndPlaceAt: (fieldTemplate: Omit<FieldSchema, "name"> & Partial<Pick<FieldSchema, "name">>, sectionIdx: number, rowIdx: number, colIdx: number, atIdx: number) => void;
113
+ moveFieldWithinTab: (tabKey: string, s: number, r: number, c: number, fromIdx: number, toIdx: number) => void;
114
+ insertExistingFieldInTabAt: (name: string, tabKey: string, s: number, r: number, c: number, atIdx: number) => void;
115
+ addFieldAndPlaceInTabAt: (fieldTemplate: Omit<FieldSchema, "name"> & Partial<Pick<FieldSchema, "name">>, tabKey: string, s: number, r: number, c: number, atIdx: number) => void;
116
+ placeFieldInColumnAt: (rowsNodeIdx: number, name: string, sectionIdx: number, rowIdx: number, colIdx: number, atIdx?: number) => void;
117
+ moveFieldAt: (fromRowsNodeIdx: number, from: IndexPath, toRowsNodeIdx: number, to: Omit<IndexPath, "idx"> & {
118
+ idx?: number;
119
+ }) => void;
120
+ removeFieldFromLayoutAt: (rowsNodeIdx: number, at: IndexPath) => void;
121
+ insertExistingFieldAtAt: (rowsNodeIdx: number, name: string, sectionIdx: number, rowIdx: number, colIdx: number, atIdx: number) => void;
122
+ addFieldAndPlaceAtAt: (rowsNodeIdx: number, fieldTemplate: Omit<FieldSchema, "name"> & Partial<Pick<FieldSchema, "name">>, sectionIdx: number, rowIdx: number, colIdx: number, atIdx: number) => void;
123
+ };
124
+ export declare const useEditorStore: import("zustand").UseBoundStore<import("zustand").StoreApi<EditorState & EditorActions>>;
125
+ export {};
@@ -62,4 +62,9 @@ export { SearchField } from './components/SearchField';
62
62
  export type { SearchFieldProps } from './components/SearchField';
63
63
  export { CompactAccordion } from "./components/CompactAccordion";
64
64
  export type { CompactAccordionItem, CompactAccordionProps } from "./components/CompactAccordion";
65
+ export { SchemaEditorHost } from "./editor/SchemaEditorHost";
66
+ export type { SchemaEditorHostProps } from "./editor/SchemaEditorHost";
67
+ export { Canvas } from "./editor/components/Canvas";
68
+ export { ColumnDropZone } from "./editor/components/ColumnDropZone";
69
+ export type { EditorAdapters, FileSystemAdapter, ServicesAdapter } from "./editor/adapters/types";
65
70
  import './styles/index.css';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dipusevilla/componentes-iu",
3
- "version": "1.0.44",
3
+ "version": "1.0.45",
4
4
  "description": "Librería de componentes React de Dipusevilla",
5
5
  "keywords": [
6
6
  "react",
@@ -30,6 +30,9 @@
30
30
  "react-dom": "^19.1.0"
31
31
  },
32
32
  "dependencies": {
33
+ "@dnd-kit/core": "^6.3.1",
34
+ "@dnd-kit/modifiers": "^9.0.0",
35
+ "@dnd-kit/sortable": "^10.0.0",
33
36
  "@headlessui/react": "^2.2.4",
34
37
  "@heroicons/react": "^2.2.0",
35
38
  "@hookform/resolvers": "^5.0.1",