@sonicjs-cms/core 2.0.0 → 2.0.2

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 (75) hide show
  1. package/dist/chunk-3NVJ6W27.cjs +1076 -0
  2. package/dist/chunk-3NVJ6W27.cjs.map +1 -0
  3. package/dist/chunk-4BJGEGX5.cjs +236 -0
  4. package/dist/chunk-4BJGEGX5.cjs.map +1 -0
  5. package/dist/{chunk-QUMBDPNJ.cjs → chunk-7G6XT62S.cjs} +4583 -540
  6. package/dist/chunk-7G6XT62S.cjs.map +1 -0
  7. package/dist/{chunk-ET5I4GBD.cjs → chunk-ALOS2CBJ.cjs} +194 -4
  8. package/dist/chunk-ALOS2CBJ.cjs.map +1 -0
  9. package/dist/{chunk-7N3HK7ZK.js → chunk-CDBVZEWR.js} +7 -904
  10. package/dist/chunk-CDBVZEWR.js.map +1 -0
  11. package/dist/{chunk-BITQ4MFX.js → chunk-EAELJXRV.js} +93 -115
  12. package/dist/chunk-EAELJXRV.js.map +1 -0
  13. package/dist/chunk-EGFHFM4N.cjs +76 -0
  14. package/dist/chunk-EGFHFM4N.cjs.map +1 -0
  15. package/dist/chunk-FICTAGD4.js +59 -0
  16. package/dist/chunk-FICTAGD4.js.map +1 -0
  17. package/dist/{chunk-FVMV5DKA.cjs → chunk-HJZOA2O5.cjs} +93 -115
  18. package/dist/chunk-HJZOA2O5.cjs.map +1 -0
  19. package/dist/{chunk-RNR4HA23.cjs → chunk-LEG4KNFP.cjs} +6 -945
  20. package/dist/chunk-LEG4KNFP.cjs.map +1 -0
  21. package/dist/chunk-LH4Z7QID.js +1030 -0
  22. package/dist/chunk-LH4Z7QID.js.map +1 -0
  23. package/dist/chunk-M6FPVS7E.js +214 -0
  24. package/dist/chunk-M6FPVS7E.js.map +1 -0
  25. package/dist/{chunk-P3VS4DV3.js → chunk-O46XKBFM.js} +193 -5
  26. package/dist/chunk-O46XKBFM.js.map +1 -0
  27. package/dist/chunk-P2PTTBO5.js +74 -0
  28. package/dist/chunk-P2PTTBO5.js.map +1 -0
  29. package/dist/chunk-RCQ2HIQD.cjs +61 -0
  30. package/dist/chunk-RCQ2HIQD.cjs.map +1 -0
  31. package/dist/{chunk-JETM2U2D.js → chunk-SGGHTIWV.js} +4414 -374
  32. package/dist/chunk-SGGHTIWV.js.map +1 -0
  33. package/dist/{chunk-RGCQSFKC.cjs → chunk-UL32L2KV.cjs} +9 -58
  34. package/dist/chunk-UL32L2KV.cjs.map +1 -0
  35. package/dist/{chunk-JIINOD2W.js → chunk-XJETEIRU.js} +8 -58
  36. package/dist/chunk-XJETEIRU.js.map +1 -0
  37. package/dist/index.cjs +241 -218
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.js +20 -15
  40. package/dist/index.js.map +1 -1
  41. package/dist/middleware.cjs +27 -22
  42. package/dist/middleware.js +3 -2
  43. package/dist/plugins.cjs +7 -7
  44. package/dist/plugins.js +1 -1
  45. package/dist/routes.cjs +36 -23
  46. package/dist/routes.js +7 -6
  47. package/dist/services.cjs +28 -28
  48. package/dist/services.js +2 -2
  49. package/dist/templates.cjs +24 -24
  50. package/dist/templates.js +2 -2
  51. package/dist/utils.cjs +20 -11
  52. package/dist/utils.js +2 -1
  53. package/package.json +2 -16
  54. package/dist/chunk-3MNMOLSA.js +0 -133
  55. package/dist/chunk-3MNMOLSA.js.map +0 -1
  56. package/dist/chunk-4XI3YBKU.cjs +0 -266
  57. package/dist/chunk-4XI3YBKU.cjs.map +0 -1
  58. package/dist/chunk-7N3HK7ZK.js.map +0 -1
  59. package/dist/chunk-AGOE25LF.cjs +0 -137
  60. package/dist/chunk-AGOE25LF.cjs.map +0 -1
  61. package/dist/chunk-BITQ4MFX.js.map +0 -1
  62. package/dist/chunk-BUKT6HP5.cjs +0 -776
  63. package/dist/chunk-BUKT6HP5.cjs.map +0 -1
  64. package/dist/chunk-ET5I4GBD.cjs.map +0 -1
  65. package/dist/chunk-FVMV5DKA.cjs.map +0 -1
  66. package/dist/chunk-JETM2U2D.js.map +0 -1
  67. package/dist/chunk-JIINOD2W.js.map +0 -1
  68. package/dist/chunk-LU6J53IX.js +0 -262
  69. package/dist/chunk-LU6J53IX.js.map +0 -1
  70. package/dist/chunk-P3VS4DV3.js.map +0 -1
  71. package/dist/chunk-QUMBDPNJ.cjs.map +0 -1
  72. package/dist/chunk-RGCQSFKC.cjs.map +0 -1
  73. package/dist/chunk-RNR4HA23.cjs.map +0 -1
  74. package/dist/chunk-WESS2U3K.js +0 -755
  75. package/dist/chunk-WESS2U3K.js.map +0 -1
@@ -9,7 +9,7 @@ function renderLogo(data = {}) {
9
9
  variant = "default",
10
10
  showText = true,
11
11
  showVersion = true,
12
- version = "v0.1.0",
12
+ version,
13
13
  className = "",
14
14
  href
15
15
  } = data;
@@ -27,7 +27,7 @@ function renderLogo(data = {}) {
27
27
  <path fill="#06b6d4" d="M854.024,1585.195l20.001-16.028c16.616-13.507,33.04-27.265,50.086-40.251 c1.13-0.861,2.9-1.686,2.003-3.516c-0.843-1.716-2.481-2.302-4.484-2.123c-8.514,0.765-17.016-0.538-25.537-0.353 c-1.124,0.024-2.768,0.221-3.163-1.25c-0.371-1.369,1.088-2.063,1.919-2.894c6.26-6.242,12.574-12.43,18.816-18.691 c9.303-9.327,18.565-18.714,27.851-28.066c1.848-1.859,3.701-3.713,5.549-5.572c2.655-2.661,5.309-5.315,7.958-7.982 c0.574-0.579,1.259-1.141,1.246-1.94c-0.004-0.257-0.078-0.538-0.254-0.853c-0.556-0.981-1.441-1.1-2.469-0.957 c-0.658,0.096-1.315,0.185-1.973,0.275c-3.844,0.538-7.689,1.076-11.533,1.608c-3.641,0.505-7.281,1.02-10.922,1.529 c-4.162,0.582-8.324,1.158-12.486,1.748c-1.142,0.161-2.409,1.662-3.354,0.508c-0.419-0.508-0.431-1.028-0.251-1.531 c0.269-0.741,0.957-1.441,1.387-2.021c3.414-4.58,6.882-9.124,10.356-13.662c1.74-2.272,3.48-4.544,5.214-6.822 c4.682-6.141,9.369-12.281,14.051-18.422c0.09-0.119,0.181-0.237,0.271-0.355c6.848-8.98,13.7-17.958,20.553-26.936 c0.488-0.64,0.977-1.28,1.465-1.92c2.159-2.828,4.315-5.658,6.476-8.486c4.197-5.501,8.454-10.954,12.67-16.442 c0.263-0.347,0.538-0.718,0.717-1.106c0.269-0.586,0.299-1.196-0.335-1.776c-0.825-0.753-1.8-0.15-2.595,0.419 c-0.67,0.472-1.333,0.957-1.955,1.489c-2.206,1.889-4.401,3.797-6.595,5.698c-3.958,3.438-7.922,6.876-11.976,10.194 c-2.443,2.003-4.865,4.028-7.301,6.038c-18.689-10.581-39.53-15.906-62.549-15.906c-35.54,0-65.911,12.607-91.125,37.82 c-25.214,25.215-37.821,55.592-37.821,91.126c0,35.54,12.607,65.91,37.821,91.125c4.146,4.146,8.445,7.916,12.87,11.381 c-9.015,11.14-18.036,22.277-27.034,33.429c-1.208,1.489-3.755,3.151-2.745,4.891c0.078,0.144,0.173,0.281,0.305,0.425 c1.321,1.429,3.492-1.303,4.933-2.457c6.673-5.333,13.333-10.685,19.982-16.042c3.707-2.984,7.417-5.965,11.124-8.952 c1.474-1.188,2.951-2.373,4.425-3.561c6.41-5.164,12.816-10.333,19.238-15.481L854.024,1585.195z M797.552,1498.009 c0-26.243,9.29-48.728,27.868-67.459c18.579-18.723,40.987-28.089,67.238-28.089c12.273,0,23.712,2.075,34.34,6.171 c-3.37,2.905-6.734,5.816-10.069,8.762c-6.075,5.351-12.365,10.469-18.667,15.564c-4.179,3.378-8.371,6.744-12.514,10.164 c-7.54,6.23-15.037,12.52-22.529,18.804c-7.091,5.955-14.182,11.904-21.19,17.949c-1.136,0.974-3.055,1.907-2.135,3.94 c0.831,1.836,2.774,1.417,4.341,1.578l12.145-0.599l14.151-0.698c1.031-0.102,2.192-0.257,2.89,0.632 c0.034,0.044,0.073,0.078,0.106,0.127c1.017,1.561-0.67,2.105-1.387,2.942c-6.308,7.318-12.616,14.637-18.978,21.907 c-8.161,9.339-16.353,18.649-24.544,27.958c-2.146,2.433-4.275,4.879-6.422,7.312c-1.034,1.172-2.129,2.272-1.238,3.922 c0.933,1.728,2.685,1.752,4.323,1.602c4.134-0.367,8.263-0.489,12.396-0.492c0.242,0,0.485-0.005,0.728-0.004 c2.711,0.009,5.422,0.068,8.134,0.145c2.582,0.074,5.166,0.165,7.752,0.249c0.275,1.62-0.879,2.356-1.62,3.259 c-1.333,1.626-2.667,3.247-4,4.867c-4.315,5.252-8.62,10.514-12.928,15.772c-3.562-2.725-7.007-5.733-10.324-9.051 C806.842,1546.667,797.552,1524.26,797.552,1498.009z"></path>
28
28
  </svg>
29
29
  `;
30
- const versionBadge = showVersion ? `
30
+ const versionBadge = showVersion && version ? `
31
31
  <span class="inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset ${variant === "white" ? "bg-white/10 text-white/80 ring-white/20" : "bg-cyan-50 text-cyan-700 ring-cyan-700/10 dark:bg-cyan-500/10 dark:text-cyan-400 dark:ring-cyan-500/20"}">
32
32
  ${version}
33
33
  </span>
@@ -3495,6 +3495,194 @@ function renderCodeExamplesList(data) {
3495
3495
  return renderAdminLayoutCatalyst(layoutData);
3496
3496
  }
3497
3497
 
3498
+ // src/templates/form.template.ts
3499
+ function renderForm(data) {
3500
+ return `
3501
+ <form
3502
+ ${data.id ? `id="${data.id}"` : ""}
3503
+ ${data.hxPost ? `hx-post="${data.hxPost}"` : data.hxPut ? `hx-put="${data.hxPut}"` : data.action ? `action="${data.action}"` : ""}
3504
+ ${data.hxTarget ? `hx-target="${data.hxTarget}"` : ""}
3505
+ method="${data.method || "POST"}"
3506
+ class="${data.className || "space-y-6"}"
3507
+ ${data.fields.some((f) => f.type === "file") ? 'enctype="multipart/form-data"' : ""}
3508
+ >
3509
+ ${data.title ? `
3510
+ <div class="mb-6">
3511
+ <h2 class="text-lg font-medium text-gray-1">${data.title}</h2>
3512
+ ${data.description ? `<p class="mt-1 text-sm text-gray-4">${data.description}</p>` : ""}
3513
+ </div>
3514
+ ` : ""}
3515
+
3516
+ <div id="form-messages"></div>
3517
+
3518
+ ${data.fields.map((field) => renderFormField(field)).join("")}
3519
+
3520
+ <div class="flex justify-between items-center pt-6 border-t border-gray-7">
3521
+ <div class="flex space-x-4">
3522
+ ${data.submitButtons.map((button) => `
3523
+ <button
3524
+ type="${button.type || "submit"}"
3525
+ ${button.name ? `name="${button.name}"` : ""}
3526
+ ${button.value ? `value="${button.value}"` : ""}
3527
+ ${button.onclick ? `onclick="${button.onclick}"` : ""}
3528
+ class="btn ${button.className || "btn-primary"}"
3529
+ >
3530
+ ${button.label}
3531
+ </button>
3532
+ `).join("")}
3533
+ </div>
3534
+ </div>
3535
+ </form>
3536
+ `;
3537
+ }
3538
+ function renderFormField(field) {
3539
+ const fieldId = `field-${field.name}`;
3540
+ const required = field.required ? "required" : "";
3541
+ const readonly = field.readonly ? "readonly" : "";
3542
+ const placeholder = field.placeholder ? `placeholder="${field.placeholder}"` : "";
3543
+ let fieldHTML = "";
3544
+ switch (field.type) {
3545
+ case "text":
3546
+ case "email":
3547
+ case "number":
3548
+ case "date":
3549
+ fieldHTML = `
3550
+ <input
3551
+ type="${field.type === "date" ? "datetime-local" : field.type}"
3552
+ id="${fieldId}"
3553
+ name="${field.name}"
3554
+ value="${field.value || ""}"
3555
+ class="form-input ${field.className || ""}"
3556
+ ${placeholder}
3557
+ ${required}
3558
+ ${readonly}
3559
+ ${field.validation?.min !== void 0 ? `min="${field.validation.min}"` : ""}
3560
+ ${field.validation?.max !== void 0 ? `max="${field.validation.max}"` : ""}
3561
+ ${field.validation?.pattern ? `pattern="${field.validation.pattern}"` : ""}
3562
+ >
3563
+ `;
3564
+ break;
3565
+ case "textarea":
3566
+ fieldHTML = `
3567
+ <textarea
3568
+ id="${fieldId}"
3569
+ name="${field.name}"
3570
+ class="form-textarea ${field.className || ""}"
3571
+ rows="${field.rows || 4}"
3572
+ ${placeholder}
3573
+ ${required}
3574
+ >${field.value || ""}</textarea>
3575
+ `;
3576
+ break;
3577
+ case "rich_text":
3578
+ const uniqueId = `${field.name}-${Date.now()}`;
3579
+ fieldHTML = `
3580
+ <div class="markdown-field">
3581
+ <textarea id="${uniqueId}" name="${field.name}" class="form-textarea" rows="8">${field.value || ""}</textarea>
3582
+ <script>
3583
+ if (typeof EasyMDE !== 'undefined') {
3584
+ new EasyMDE({
3585
+ element: document.getElementById('${uniqueId}'),
3586
+ minHeight: '300px',
3587
+ spellChecker: false,
3588
+ status: ['autosave', 'lines', 'words', 'cursor'],
3589
+ autosave: {
3590
+ enabled: true,
3591
+ uniqueId: '${uniqueId}',
3592
+ delay: 1000
3593
+ },
3594
+ renderingConfig: {
3595
+ singleLineBreaks: false,
3596
+ codeSyntaxHighlighting: true
3597
+ }
3598
+ });
3599
+ }
3600
+ </script>
3601
+ </div>
3602
+ `;
3603
+ break;
3604
+ case "select":
3605
+ fieldHTML = `
3606
+ <select
3607
+ id="${fieldId}"
3608
+ name="${field.name}"
3609
+ class="form-input ${field.className || ""}"
3610
+ ${required}
3611
+ >
3612
+ ${field.options ? field.options.map((option) => `
3613
+ <option value="${option.value}" ${option.selected || field.value === option.value ? "selected" : ""}>
3614
+ ${option.label}
3615
+ </option>
3616
+ `).join("") : ""}
3617
+ </select>
3618
+ `;
3619
+ break;
3620
+ case "multi_select":
3621
+ fieldHTML = `
3622
+ <select
3623
+ id="${fieldId}"
3624
+ name="${field.name}"
3625
+ class="form-input ${field.className || ""}"
3626
+ multiple
3627
+ ${required}
3628
+ >
3629
+ ${field.options ? field.options.map((option) => `
3630
+ <option value="${option.value}" ${option.selected ? "selected" : ""}>
3631
+ ${option.label}
3632
+ </option>
3633
+ `).join("") : ""}
3634
+ </select>
3635
+ `;
3636
+ break;
3637
+ case "checkbox":
3638
+ fieldHTML = `
3639
+ <input
3640
+ type="checkbox"
3641
+ id="${fieldId}"
3642
+ name="${field.name}"
3643
+ value="1"
3644
+ class="size-4 rounded border border-white/15 bg-white/5 checked:border-transparent checked:bg-white disabled:opacity-50 focus:outline-none focus:ring-2 focus:ring-white/20 focus:ring-offset-2 ${field.className || ""}"
3645
+ ${field.value ? "checked" : ""}
3646
+ ${required}
3647
+ >
3648
+ <label for="${fieldId}" class="ml-2 text-sm text-white">${field.label}</label>
3649
+ `;
3650
+ break;
3651
+ default:
3652
+ fieldHTML = `
3653
+ <input
3654
+ type="text"
3655
+ id="${fieldId}"
3656
+ name="${field.name}"
3657
+ value="${field.value || ""}"
3658
+ class="form-input ${field.className || ""}"
3659
+ ${placeholder}
3660
+ ${required}
3661
+ >
3662
+ `;
3663
+ break;
3664
+ }
3665
+ if (field.type === "checkbox") {
3666
+ return `
3667
+ <div class="form-group">
3668
+ <div class="flex items-center">
3669
+ ${fieldHTML}
3670
+ </div>
3671
+ ${field.helpText ? `<p class="text-sm text-zinc-500 dark:text-zinc-400 mt-1 ml-6">${field.helpText}</p>` : ""}
3672
+ </div>
3673
+ `;
3674
+ }
3675
+ return `
3676
+ <div class="form-group">
3677
+ <label for="${fieldId}" class="form-label">
3678
+ ${field.label}${field.required ? " *" : ""}
3679
+ </label>
3680
+ ${fieldHTML}
3681
+ ${field.helpText ? `<p class="text-sm text-zinc-500 dark:text-zinc-400 mt-1">${field.helpText}</p>` : ""}
3682
+ </div>
3683
+ `;
3684
+ }
3685
+
3498
3686
  exports.adminLayoutV2 = adminLayoutV2;
3499
3687
  exports.getConfirmationDialogScript = getConfirmationDialogScript;
3500
3688
  exports.init_admin_layout_catalyst_template = init_admin_layout_catalyst_template;
@@ -3507,9 +3695,11 @@ exports.renderCodeExamplesList = renderCodeExamplesList;
3507
3695
  exports.renderConfirmationDialog = renderConfirmationDialog;
3508
3696
  exports.renderDesignPage = renderDesignPage;
3509
3697
  exports.renderFAQList = renderFAQList;
3698
+ exports.renderForm = renderForm;
3699
+ exports.renderFormField = renderFormField;
3510
3700
  exports.renderLogo = renderLogo;
3511
3701
  exports.renderPagination = renderPagination;
3512
3702
  exports.renderTable = renderTable;
3513
3703
  exports.renderTestimonialsList = renderTestimonialsList;
3514
- //# sourceMappingURL=chunk-ET5I4GBD.cjs.map
3515
- //# sourceMappingURL=chunk-ET5I4GBD.cjs.map
3704
+ //# sourceMappingURL=chunk-ALOS2CBJ.cjs.map
3705
+ //# sourceMappingURL=chunk-ALOS2CBJ.cjs.map