form-builder-pro 0.0.3 → 0.0.5
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.
- package/dist/index.css +50 -37
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +22 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4053,6 +4053,7 @@ var NEVER = INVALID;
|
|
|
4053
4053
|
var FormSchemaValidation = external_exports.object({
|
|
4054
4054
|
id: external_exports.string(),
|
|
4055
4055
|
title: external_exports.string(),
|
|
4056
|
+
formName: external_exports.string(),
|
|
4056
4057
|
sections: external_exports.array(external_exports.object({
|
|
4057
4058
|
id: external_exports.string(),
|
|
4058
4059
|
title: external_exports.string(),
|
|
@@ -4127,6 +4128,7 @@ var DEFAULT_FIELD_CONFIG = {
|
|
|
4127
4128
|
var INITIAL_SCHEMA = {
|
|
4128
4129
|
id: "form_1",
|
|
4129
4130
|
title: "My New Form",
|
|
4131
|
+
formName: "myNewForm",
|
|
4130
4132
|
sections: [
|
|
4131
4133
|
{
|
|
4132
4134
|
id: generateId(),
|
|
@@ -25181,7 +25183,7 @@ var FormBuilder = class {
|
|
|
25181
25183
|
}
|
|
25182
25184
|
}
|
|
25183
25185
|
this.container.innerHTML = "";
|
|
25184
|
-
const wrapper = createElement("div", { className: "flex flex-col h-screen
|
|
25186
|
+
const wrapper = createElement("div", { className: "flex flex-col h-screen " });
|
|
25185
25187
|
wrapper.appendChild(this.renderToolbar(state));
|
|
25186
25188
|
const main = createElement("div", { className: "flex flex-1 overflow-hidden" });
|
|
25187
25189
|
if (state.isPreviewMode) {
|
|
@@ -25216,7 +25218,7 @@ var FormBuilder = class {
|
|
|
25216
25218
|
renderToolbar(state) {
|
|
25217
25219
|
const toolbar = createElement("div", { className: "flex items-center justify-between p-4 border-b bg-white dark:bg-gray-900 border-gray-200 dark:border-gray-800" });
|
|
25218
25220
|
const left = createElement("div", { className: "flex items-center space-x-2" });
|
|
25219
|
-
left.appendChild(createElement("h1", { className: "text-xl font-
|
|
25221
|
+
left.appendChild(createElement("h1", { className: "text-xl font-semibold mb-2 text-primary mr-4", text: "FormBuilder Pro" }));
|
|
25220
25222
|
const undoBtn = createElement("button", {
|
|
25221
25223
|
className: "p-2 rounded hover:bg-gray-100 dark:hover:bg-gray-800 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
|
|
25222
25224
|
title: "Undo",
|
|
@@ -25237,7 +25239,7 @@ var FormBuilder = class {
|
|
|
25237
25239
|
className: "flex items-center px-3 py-2 text-sm font-medium text-red-600 hover:bg-red-50 rounded-md transition-colors",
|
|
25238
25240
|
onclick: () => {
|
|
25239
25241
|
if (confirm("Are you sure?")) {
|
|
25240
|
-
formStore.getState().setSchema({ id: "new", title: "New Form", sections: [] });
|
|
25242
|
+
formStore.getState().setSchema({ id: "new", title: "New Form", formName: "newForm", sections: [] });
|
|
25241
25243
|
}
|
|
25242
25244
|
}
|
|
25243
25245
|
}, [getIcon("Trash2", 16), createElement("span", { className: "ml-2", text: "Clear" })]);
|
|
@@ -25246,7 +25248,7 @@ var FormBuilder = class {
|
|
|
25246
25248
|
onclick: () => formStore.getState().togglePreview()
|
|
25247
25249
|
}, [getIcon("Eye", 16), createElement("span", { className: "ml-2", text: state.isPreviewMode ? "Edit" : "Preview" })]);
|
|
25248
25250
|
const saveBtn = createElement("button", {
|
|
25249
|
-
className: "flex items-center px-4 py-2 text-sm font-medium text-white bg-
|
|
25251
|
+
className: "flex items-center px-4 py-2 text-sm font-medium text-white bg-[#019FA2] hover:bg-[#3B497E] rounded-md shadow-sm transition-colors",
|
|
25250
25252
|
onclick: () => {
|
|
25251
25253
|
const schema = formStore.getState().schema;
|
|
25252
25254
|
console.log("Schema saved:", schema);
|
|
@@ -25262,16 +25264,16 @@ var FormBuilder = class {
|
|
|
25262
25264
|
return toolbar;
|
|
25263
25265
|
}
|
|
25264
25266
|
renderToolbox() {
|
|
25265
|
-
const toolbox = createElement("div", { className: "w-64 bg-
|
|
25267
|
+
const toolbox = createElement("div", { className: "w-64 bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-800 p-4 overflow-y-auto h-full" });
|
|
25266
25268
|
toolbox.appendChild(createElement("h2", { className: "text-xs font-semibold text-gray-500 uppercase tracking-wider mb-4", text: "Form Fields" }));
|
|
25267
|
-
const list = createElement("div", { className: "
|
|
25269
|
+
const list = createElement("div", { className: " grid grid-cols-2 gap-3", id: "toolbox-list" });
|
|
25268
25270
|
FIELD_TYPES.forEach((field) => {
|
|
25269
25271
|
const item = createElement("div", {
|
|
25270
|
-
className: "
|
|
25272
|
+
className: "grid justify-center items-center p-3 bg-[#f2f3f7] dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-md cursor-move hover:border-secondary hover:shadow-sm transition-all toolbox-item mt-0",
|
|
25271
25273
|
"data-type": field.type
|
|
25272
25274
|
});
|
|
25273
|
-
item.appendChild(createElement("span", { className: "
|
|
25274
|
-
item.appendChild(createElement("span", { className: "text-
|
|
25275
|
+
item.appendChild(createElement("span", { className: " text-gray-500 mb-1 dark:text-gray-400 inline-flex mx-auto bg-[#019FA2] text-white w-9 h-9 rounded-sm p-1 justify-center items-center" }, [getIcon(field.icon, 16)]));
|
|
25276
|
+
item.appendChild(createElement("span", { className: "text-xs font-semibold text-gray-700 dark:text-gray-200", text: field.label }));
|
|
25275
25277
|
list.appendChild(item);
|
|
25276
25278
|
});
|
|
25277
25279
|
toolbox.appendChild(list);
|
|
@@ -25279,29 +25281,29 @@ var FormBuilder = class {
|
|
|
25279
25281
|
}
|
|
25280
25282
|
renderCanvas(state) {
|
|
25281
25283
|
const canvas = createElement("div", {
|
|
25282
|
-
className: "flex-1 bg-
|
|
25284
|
+
className: "flex-1 bg-white dark:bg-gray-950 p-8 overflow-y-auto h-full",
|
|
25283
25285
|
onclick: (e) => {
|
|
25284
25286
|
if (e.target === canvas || e.target === canvas.firstElementChild) {
|
|
25285
25287
|
formStore.getState().selectField(null);
|
|
25286
25288
|
}
|
|
25287
25289
|
}
|
|
25288
25290
|
});
|
|
25289
|
-
const inner = createElement("div", { className: "
|
|
25290
|
-
const
|
|
25291
|
-
className: "text-
|
|
25292
|
-
value: state.schema.
|
|
25293
|
-
placeholder: "
|
|
25294
|
-
"data-focus-id": "form-
|
|
25295
|
-
oninput: (e) => formStore.getState().setSchema({ ...state.schema,
|
|
25291
|
+
const inner = createElement("div", { className: "mx-auto" });
|
|
25292
|
+
const formNameInput = createElement("input", {
|
|
25293
|
+
className: "text-lg border border-gray-200 dark:border-gray-700 rounded-md border-gray-200 p-2 bg-[#f2f3f7] focus:outline-none focus:ring-0 w-full text-gray-600 dark:text-gray-400 mb-8",
|
|
25294
|
+
value: state.schema.formName,
|
|
25295
|
+
placeholder: "formName (e.g., contactForm)",
|
|
25296
|
+
"data-focus-id": "form-name",
|
|
25297
|
+
oninput: (e) => formStore.getState().setSchema({ ...state.schema, formName: e.target.value })
|
|
25296
25298
|
});
|
|
25297
|
-
inner.appendChild(
|
|
25299
|
+
inner.appendChild(formNameInput);
|
|
25298
25300
|
const sectionsContainer = createElement("div", { className: "space-y-6 min-h-[200px]", id: "sections-list" });
|
|
25299
25301
|
state.schema.sections.forEach((section) => {
|
|
25300
25302
|
const sectionEl = createElement("div", {
|
|
25301
25303
|
className: "mb-6 rounded-lg border bg-white dark:bg-gray-900 shadow-sm transition-all border-gray-200 dark:border-gray-800",
|
|
25302
25304
|
"data-id": section.id
|
|
25303
25305
|
});
|
|
25304
|
-
const header = createElement("div", { className: "flex items-center justify-between
|
|
25306
|
+
const header = createElement("div", { className: "flex items-center justify-between p-2 border-b border-gray-100 dark:border-gray-800 bg-gray-50 dark:bg-gray-800/50 rounded-t-lg" });
|
|
25305
25307
|
const headerLeft = createElement("div", { className: "flex items-center flex-1" });
|
|
25306
25308
|
headerLeft.appendChild(createElement("div", { className: "cursor-move mr-3 text-gray-400 hover:text-gray-600 section-handle" }, [getIcon("GripVertical", 20)]));
|
|
25307
25309
|
headerLeft.appendChild(createElement("input", {
|
|
@@ -25312,7 +25314,7 @@ var FormBuilder = class {
|
|
|
25312
25314
|
}));
|
|
25313
25315
|
header.appendChild(headerLeft);
|
|
25314
25316
|
header.appendChild(createElement("button", {
|
|
25315
|
-
className: "text-gray-
|
|
25317
|
+
className: "text-gray-600 hover:text-red-500 transition-colors p-1",
|
|
25316
25318
|
onclick: () => formStore.getState().removeSection(section.id)
|
|
25317
25319
|
}, [getIcon("Trash2", 18)]));
|
|
25318
25320
|
sectionEl.appendChild(header);
|