@sonicjs-cms/core 2.13.0 → 2.15.0
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/admin-layout-catalyst.template-HFD37TY5.cjs +17 -0
- package/dist/admin-layout-catalyst.template-HFD37TY5.cjs.map +1 -0
- package/dist/admin-layout-catalyst.template-UMTIN66R.js +7 -0
- package/dist/admin-layout-catalyst.template-UMTIN66R.js.map +1 -0
- package/dist/{chunk-HVTSE2SF.cjs → chunk-26HYU7MX.cjs} +233 -660
- package/dist/chunk-26HYU7MX.cjs.map +1 -0
- package/dist/{chunk-DB2GJJTM.js → chunk-2BL2A62D.js} +4 -4
- package/dist/{chunk-DB2GJJTM.js.map → chunk-2BL2A62D.js.map} +1 -1
- package/dist/{chunk-I6FFGQIT.cjs → chunk-43AB4EH4.cjs} +723 -211
- package/dist/chunk-43AB4EH4.cjs.map +1 -0
- package/dist/{chunk-3QCEYJLK.cjs → chunk-4ZSNJDLS.cjs} +9 -9
- package/dist/{chunk-3QCEYJLK.cjs.map → chunk-4ZSNJDLS.cjs.map} +1 -1
- package/dist/chunk-55RDMDOP.js +684 -0
- package/dist/chunk-55RDMDOP.js.map +1 -0
- package/dist/{chunk-3VAKUFNQ.js → chunk-5SOFMH66.js} +22 -5
- package/dist/chunk-5SOFMH66.js.map +1 -0
- package/dist/{chunk-6FHNRRJ3.cjs → chunk-635JAMSE.cjs} +76 -17
- package/dist/chunk-635JAMSE.cjs.map +1 -0
- package/dist/{chunk-IYFSNRZN.js → chunk-7MMD5WMK.js} +49 -476
- package/dist/chunk-7MMD5WMK.js.map +1 -0
- package/dist/{chunk-56GUBLJE.cjs → chunk-ABB34XUS.cjs} +13 -13
- package/dist/{chunk-56GUBLJE.cjs.map → chunk-ABB34XUS.cjs.map} +1 -1
- package/dist/{chunk-CO4B5EYF.js → chunk-EWXV2KG2.js} +3 -3
- package/dist/{chunk-CO4B5EYF.js.map → chunk-EWXV2KG2.js.map} +1 -1
- package/dist/{chunk-J5WGMRSU.js → chunk-EXNEW5US.js} +76 -17
- package/dist/chunk-EXNEW5US.js.map +1 -0
- package/dist/{chunk-H3XXBAMO.js → chunk-G7XSN72O.js} +722 -212
- package/dist/chunk-G7XSN72O.js.map +1 -0
- package/dist/{chunk-QP3OHHON.cjs → chunk-OHYBNCVL.cjs} +18 -696
- package/dist/chunk-OHYBNCVL.cjs.map +1 -0
- package/dist/{chunk-CB7ONLGB.js → chunk-ON5ZMSU4.js} +3 -3
- package/dist/{chunk-CB7ONLGB.js.map → chunk-ON5ZMSU4.js.map} +1 -1
- package/dist/{chunk-SER23XI4.cjs → chunk-RVD7PLMU.cjs} +22 -5
- package/dist/chunk-RVD7PLMU.cjs.map +1 -0
- package/dist/{chunk-2MXF4RYZ.js → chunk-TFNTM3OA.js} +3 -3
- package/dist/{chunk-2MXF4RYZ.js.map → chunk-TFNTM3OA.js.map} +1 -1
- package/dist/{chunk-EGUDIX6Q.cjs → chunk-UFPT5KCQ.cjs} +8 -8
- package/dist/{chunk-EGUDIX6Q.cjs.map → chunk-UFPT5KCQ.cjs.map} +1 -1
- package/dist/chunk-UYJ6TJHX.cjs +691 -0
- package/dist/chunk-UYJ6TJHX.cjs.map +1 -0
- package/dist/{chunk-XCP5GCBE.cjs → chunk-VUISYUHY.cjs} +3 -3
- package/dist/{chunk-XCP5GCBE.cjs.map → chunk-VUISYUHY.cjs.map} +1 -1
- package/dist/{chunk-JTUCC6WZ.js → chunk-XWIA3HVX.js} +9 -683
- package/dist/chunk-XWIA3HVX.js.map +1 -0
- package/dist/index.cjs +1604 -173
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1461 -30
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +29 -29
- package/dist/middleware.js +3 -3
- package/dist/migrations-APFGYCB6.cjs +13 -0
- package/dist/{migrations-GMHTJI7D.cjs.map → migrations-APFGYCB6.cjs.map} +1 -1
- package/dist/migrations-YB52SLW7.js +4 -0
- package/dist/{migrations-IVFIDOSO.js.map → migrations-YB52SLW7.js.map} +1 -1
- package/dist/{plugin-bootstrap-DVGLQrcO.d.cts → plugin-bootstrap-DfVerYV4.d.cts} +3 -1
- package/dist/{plugin-bootstrap-CZ1GDum7.d.ts → plugin-bootstrap-P_ciLp_C.d.ts} +3 -1
- package/dist/plugins.cjs +11 -11
- package/dist/plugins.js +2 -2
- package/dist/routes.cjs +31 -30
- package/dist/routes.js +8 -7
- package/dist/services.cjs +23 -23
- package/dist/services.d.cts +1 -1
- package/dist/services.d.ts +1 -1
- package/dist/services.js +2 -2
- package/dist/templates.cjs +26 -25
- package/dist/templates.js +3 -2
- package/dist/utils.cjs +11 -11
- package/dist/utils.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-3VAKUFNQ.js.map +0 -1
- package/dist/chunk-6FHNRRJ3.cjs.map +0 -1
- package/dist/chunk-H3XXBAMO.js.map +0 -1
- package/dist/chunk-HVTSE2SF.cjs.map +0 -1
- package/dist/chunk-I6FFGQIT.cjs.map +0 -1
- package/dist/chunk-IYFSNRZN.js.map +0 -1
- package/dist/chunk-J5WGMRSU.js.map +0 -1
- package/dist/chunk-JTUCC6WZ.js.map +0 -1
- package/dist/chunk-QP3OHHON.cjs.map +0 -1
- package/dist/chunk-SER23XI4.cjs.map +0 -1
- package/dist/migrations-GMHTJI7D.cjs +0 -13
- package/dist/migrations-IVFIDOSO.js +0 -4
|
@@ -1,687 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkUYJ6TJHX_cjs = require('./chunk-UYJ6TJHX.cjs');
|
|
3
4
|
var chunkMNWKYY5E_cjs = require('./chunk-MNWKYY5E.cjs');
|
|
4
5
|
var chunkIGJUBJBW_cjs = require('./chunk-IGJUBJBW.cjs');
|
|
5
6
|
|
|
6
|
-
// src/templates/components/logo.template.ts
|
|
7
|
-
function renderLogo(data = {}) {
|
|
8
|
-
const {
|
|
9
|
-
size = "md",
|
|
10
|
-
variant = "default",
|
|
11
|
-
showText = true,
|
|
12
|
-
showVersion = true,
|
|
13
|
-
version,
|
|
14
|
-
className = "",
|
|
15
|
-
href
|
|
16
|
-
} = data;
|
|
17
|
-
const sizeClass = sizeClasses[size];
|
|
18
|
-
const logoSvg = `
|
|
19
|
-
<svg class="${sizeClass} ${className}" viewBox="380 1300 2250 400" aria-hidden="true">
|
|
20
|
-
<path fill="${variant === "white" ? "#ffffff" : variant === "dark" ? "#1f2937" : "#F1F2F2"}" d="M476.851,1404.673h168.536c4.714,0,8.695-1.618,11.944-4.866c3.241-3.241,4.866-7.222,4.866-11.943 c0-2.357-0.443-4.569-1.327-6.636c-0.885-2.06-2.067-3.829-3.539-5.308c-1.479-1.472-3.249-2.654-5.308-3.538 c-2.067-0.885-4.279-1.327-6.635-1.327H476.851c-20.057,0-37.158,7.154-51.313,21.454c-14.155,14.308-21.233,31.483-21.233,51.534 c0,20.058,7.078,37.234,21.233,51.534c14.155,14.308,31.255,21.454,51.313,21.454h112.357c10.907,0,20.196,3.837,27.868,11.502 c7.666,7.672,11.502,16.885,11.502,27.646c0,10.769-3.836,19.982-11.502,27.647c-7.672,7.673-16.961,11.502-27.868,11.502H421.115 c-4.721,0-8.702,1.624-11.944,4.865c-3.248,3.249-4.866,7.23-4.866,11.944c0,3.248,0.733,6.123,2.212,8.626 c1.472,2.509,3.462,4.499,5.971,5.972c2.502,1.472,5.378,2.212,8.626,2.212h168.094c20.052,0,37.227-7.078,51.534-21.234 c14.3-14.155,21.454-31.331,21.454-51.534c0-20.196-7.154-37.379-21.454-51.534c-14.308-14.156-31.483-21.234-51.534-21.234 H476.851c-10.616,0-19.76-3.905-27.426-11.721c-7.672-7.811-11.501-17.101-11.501-27.87c0-10.761,3.829-19.975,11.501-27.647 C457.091,1408.508,466.235,1404.673,476.851,1404.673z"></path>
|
|
21
|
-
<path fill="${variant === "white" ? "#ffffff" : variant === "dark" ? "#1f2937" : "#F1F2F2"}" d="M974.78,1398.211c-5.016,6.574-10.034,13.146-15.048,19.721c-1.828,2.398-3.657,4.796-5.487,7.194 c1.994,1.719,3.958,3.51,5.873,5.424c18.724,18.731,28.089,41.216,28.089,67.459c0,26.251-9.366,48.658-28.089,67.237 c-18.731,18.579-41.215,27.868-67.459,27.868c-9.848,0-19.156-1.308-27.923-3.923l-4.185,3.354 c-8.587,6.885-17.154,13.796-25.725,20.702c17.52,8.967,36.86,13.487,58.054,13.487c35.533,0,65.91-12.608,91.124-37.821 c25.214-25.215,37.821-55.584,37.821-91.125c0-35.534-12.607-65.911-37.821-91.126 C981.004,1403.663,977.926,1400.854,974.78,1398.211z"></path>
|
|
22
|
-
<path fill="${variant === "white" ? "#ffffff" : variant === "dark" ? "#1f2937" : "#F1F2F2"}" d="M1364.644,1439.619c-4.72,0-8.702,1.624-11.943,4.865c-3.249,3.249-4.866,7.23-4.866,11.944v138.014 l-167.651-211.003c-0.297-0.586-0.74-1.03-1.327-1.326c-4.721-4.714-10.249-7.742-16.588-9.069 c-6.346-1.326-12.608-0.732-18.801,1.77c-6.192,2.509-11.059,6.49-14.598,11.944c-3.539,5.46-5.308,11.577-5.308,18.357v208.348 c0,4.721,1.618,8.703,4.866,11.944c3.241,3.241,7.222,4.865,11.943,4.865c2.945,0,5.751-0.738,8.405-2.211 c2.654-1.472,4.713-3.463,6.193-5.971c1.473-2.503,2.212-5.378,2.212-8.627v-205.251l166.325,209.675 c2.06,2.654,4.423,4.865,7.078,6.635c5.308,3.829,11.349,5.75,18.137,5.75c5.308,0,10.464-1.182,15.482-3.538 c3.539-1.769,6.56-4.127,9.069-7.078c2.502-2.945,4.491-6.338,5.971-10.175c1.473-3.829,2.212-7.664,2.212-11.501v-141.552 c0-4.714-1.624-8.695-4.865-11.944C1373.339,1441.243,1369.359,1439.619,1364.644,1439.619z"></path>
|
|
23
|
-
<path fill="${variant === "white" ? "#ffffff" : variant === "dark" ? "#1f2937" : "#F1F2F2"}" d="M1508.406,1432.983c-2.654-1.472-5.46-2.212-8.404-2.212c-4.721,0-8.703,1.7-11.944,5.087 c-3.249,3.395-4.865,7.3-4.865,11.723v163.228c0,4.721,1.616,8.702,4.865,11.943c3.241,3.249,7.223,4.866,11.944,4.866 c2.944,0,5.751-0.732,8.404-2.212c2.655-1.472,4.714-3.539,6.193-6.194c1.473-2.654,2.213-5.453,2.213-8.404V1447.58 c0-2.945-0.74-5.75-2.213-8.405C1513.12,1436.522,1511.06,1434.462,1508.406,1432.983z"></path>
|
|
24
|
-
<path fill="${variant === "white" ? "#ffffff" : variant === "dark" ? "#1f2937" : "#F1F2F2"}" d="M1499.78,1367.957c-4.575,0-8.481,1.625-11.722,4.866c-3.249,3.249-4.865,7.23-4.865,11.943 c0,2.951,0.732,5.75,2.212,8.405c1.472,2.654,3.463,4.721,5.971,6.193c2.503,1.479,5.378,2.212,8.627,2.212 c4.423,0,8.328-1.618,11.721-4.865c3.387-3.243,5.088-7.224,5.088-11.944c0-4.713-1.701-8.694-5.088-11.943 C1508.33,1369.582,1504.349,1367.957,1499.78,1367.957z"></path>
|
|
25
|
-
<path fill="${variant === "white" ? "#ffffff" : variant === "dark" ? "#1f2937" : "#F1F2F2"}" d="M1859.627,1369.727H1747.27c-35.388,0-65.69,12.607-90.904,37.821 c-25.213,25.215-37.82,55.591-37.82,91.125c0,35.54,12.607,65.911,37.82,91.125c25.215,25.215,55.516,37.821,90.904,37.821h56.178 c4.714,0,8.695-1.618,11.944-4.866c3.241-3.241,4.865-7.222,4.865-11.943c0-4.714-1.624-8.695-4.865-11.943 c-3.249-3.243-7.23-4.866-11.944-4.866h-56.178c-26.251,0-48.659-9.359-67.237-28.09c-18.579-18.723-27.868-41.207-27.868-67.459 c0-26.243,9.29-48.659,27.868-67.237c18.579-18.579,40.987-27.868,67.237-27.868h112.357c4.714,0,8.696-1.693,11.944-5.087 c3.241-3.387,4.865-7.368,4.865-11.943c0-4.569-1.624-8.475-4.865-11.723C1868.322,1371.351,1864.341,1369.727,1859.627,1369.727z "></path>
|
|
26
|
-
<path fill="#06b6d4" d="M2219.256,1371.054h-112.357c-4.423,0-8.336,1.624-11.723,4.865c-3.393,3.249-5.087,7.23-5.087,11.944 c0,4.721,1.694,8.702,5.087,11.943c3.387,3.249,7.3,4.866,11.723,4.866h95.547v95.105c0,26.251-9.365,48.659-28.088,67.237 c-18.731,18.579-41.215,27.868-67.459,27.868c-26.251,0-48.659-9.289-67.237-27.868c-18.579-18.579-27.868-40.987-27.868-67.237 c0-4.713-1.701-8.771-5.088-12.165c-3.393-3.387-7.374-5.087-11.943-5.087c-4.575,0-8.481,1.7-11.722,5.087 c-3.249,3.393-4.865,7.451-4.865,12.165c0,35.388,12.607,65.69,37.82,90.904c25.215,25.213,55.584,37.82,91.126,37.82 c35.532,0,65.91-12.607,91.125-37.82c25.214-25.215,37.82-55.516,37.82-90.904v-111.915c0-4.714-1.624-8.695-4.865-11.944 C2227.951,1372.678,2223.971,1371.054,2219.256,1371.054z"></path>
|
|
27
|
-
<path fill="#06b6d4" d="M2574.24,1502.875c-14.306-14.156-31.483-21.234-51.533-21.234H2410.35 c-10.617,0-19.762-3.829-27.426-11.501c-7.672-7.664-11.501-16.954-11.501-27.868c0-10.907,3.829-20.196,11.501-27.868 c7.664-7.664,16.809-11.501,27.426-11.501h112.357c4.714,0,8.695-1.617,11.944-4.866c3.241-3.241,4.865-7.222,4.865-11.943 c0-4.714-1.624-8.695-4.865-11.944c-3.249-3.241-7.23-4.865-11.944-4.865H2410.35c-20.058,0-37.158,7.154-51.313,21.454 c-14.156,14.308-21.232,31.483-21.232,51.534c0,20.058,7.077,37.234,21.232,51.534c14.156,14.308,31.255,21.454,51.313,21.454 h112.357c7.078,0,13.637,1.77,19.684,5.308c6.042,3.539,10.838,8.336,14.377,14.377c3.538,6.047,5.307,12.607,5.307,19.685 c0,10.616-3.835,19.76-11.501,27.425c-7.672,7.673-16.961,11.502-27.868,11.502h-168.094c-4.721,0-8.703,1.7-11.944,5.087 c-3.249,3.393-4.865,7.374-4.865,11.943c0,4.576,1.616,8.481,4.865,11.723c3.241,3.249,7.223,4.866,11.944,4.866h168.094 c20.051,0,37.227-7.078,51.533-21.234c14.302-14.155,21.454-31.331,21.454-51.534 C2595.695,1534.213,2588.542,1517.03,2574.24,1502.875z"></path>
|
|
28
|
-
<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>
|
|
29
|
-
</svg>
|
|
30
|
-
`;
|
|
31
|
-
const versionBadge = showVersion && version ? `
|
|
32
|
-
<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"}">
|
|
33
|
-
${version}
|
|
34
|
-
</span>
|
|
35
|
-
` : "";
|
|
36
|
-
const logoContent = showText ? `
|
|
37
|
-
<div class="flex items-center gap-2 ${className}">
|
|
38
|
-
${logoSvg}
|
|
39
|
-
${versionBadge}
|
|
40
|
-
</div>
|
|
41
|
-
` : logoSvg;
|
|
42
|
-
if (href) {
|
|
43
|
-
return `<a href="${href}" class="inline-block hover:opacity-80 transition-opacity">${logoContent}</a>`;
|
|
44
|
-
}
|
|
45
|
-
return logoContent;
|
|
46
|
-
}
|
|
47
|
-
var sizeClasses;
|
|
48
|
-
var init_logo_template = chunkIGJUBJBW_cjs.__esm({
|
|
49
|
-
"src/templates/components/logo.template.ts"() {
|
|
50
|
-
sizeClasses = {
|
|
51
|
-
sm: "h-6 w-auto",
|
|
52
|
-
md: "h-8 w-auto",
|
|
53
|
-
lg: "h-12 w-auto",
|
|
54
|
-
xl: "h-16 w-auto"
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// src/templates/layouts/admin-layout-catalyst.template.ts
|
|
60
|
-
var admin_layout_catalyst_template_exports = {};
|
|
61
|
-
chunkIGJUBJBW_cjs.__export(admin_layout_catalyst_template_exports, {
|
|
62
|
-
renderAdminLayoutCatalyst: () => renderAdminLayoutCatalyst,
|
|
63
|
-
renderCatalystCheckbox: () => renderCatalystCheckbox
|
|
64
|
-
});
|
|
65
|
-
function renderCatalystCheckbox(props) {
|
|
66
|
-
const {
|
|
67
|
-
id,
|
|
68
|
-
name,
|
|
69
|
-
checked = false,
|
|
70
|
-
disabled = false,
|
|
71
|
-
label,
|
|
72
|
-
description,
|
|
73
|
-
color = "dark/zinc",
|
|
74
|
-
className = ""
|
|
75
|
-
} = props;
|
|
76
|
-
const colorClasses = {
|
|
77
|
-
"dark/zinc": "peer-checked:bg-zinc-900 peer-checked:before:bg-zinc-900 dark:peer-checked:bg-zinc-600",
|
|
78
|
-
"dark/white": "peer-checked:bg-zinc-900 peer-checked:before:bg-zinc-900 dark:peer-checked:bg-white",
|
|
79
|
-
white: "peer-checked:bg-white peer-checked:before:bg-white",
|
|
80
|
-
dark: "peer-checked:bg-zinc-900 peer-checked:before:bg-zinc-900",
|
|
81
|
-
zinc: "peer-checked:bg-zinc-600 peer-checked:before:bg-zinc-600",
|
|
82
|
-
blue: "peer-checked:bg-blue-600 peer-checked:before:bg-blue-600",
|
|
83
|
-
green: "peer-checked:bg-green-600 peer-checked:before:bg-green-600",
|
|
84
|
-
red: "peer-checked:bg-red-600 peer-checked:before:bg-red-600"
|
|
85
|
-
};
|
|
86
|
-
const checkColor = color === "dark/white" ? "dark:text-zinc-900" : "text-white";
|
|
87
|
-
const baseClasses = `
|
|
88
|
-
relative isolate flex w-4 h-4 items-center justify-center rounded-[0.3125rem]
|
|
89
|
-
before:absolute before:inset-0 before:-z-10 before:rounded-[calc(0.3125rem-1px)] before:bg-white before:shadow-sm
|
|
90
|
-
dark:before:hidden
|
|
91
|
-
dark:bg-white/5
|
|
92
|
-
border border-zinc-950/15 peer-checked:border-transparent
|
|
93
|
-
dark:border-white/15 dark:peer-checked:border-white/5
|
|
94
|
-
peer-focus:outline peer-focus:outline-2 peer-focus:outline-offset-2 peer-focus:outline-blue-500
|
|
95
|
-
peer-disabled:opacity-50
|
|
96
|
-
peer-disabled:border-zinc-950/25 peer-disabled:bg-zinc-950/5
|
|
97
|
-
dark:peer-disabled:border-white/20 dark:peer-disabled:bg-white/2.5
|
|
98
|
-
`.trim().replace(/\s+/g, " ");
|
|
99
|
-
const checkIconClasses = `
|
|
100
|
-
w-4 h-4 opacity-0 peer-checked:opacity-100 pointer-events-none
|
|
101
|
-
`.trim().replace(/\s+/g, " ");
|
|
102
|
-
if (description) {
|
|
103
|
-
return `
|
|
104
|
-
<div class="grid grid-cols-[1.125rem_1fr] gap-x-4 gap-y-1 sm:grid-cols-[1rem_1fr] ${className}">
|
|
105
|
-
<div class="col-start-1 row-start-1 mt-0.75 sm:mt-1">
|
|
106
|
-
<input
|
|
107
|
-
type="checkbox"
|
|
108
|
-
id="${id}"
|
|
109
|
-
name="${name}"
|
|
110
|
-
${checked ? "checked" : ""}
|
|
111
|
-
${disabled ? "disabled" : ""}
|
|
112
|
-
class="peer sr-only"
|
|
113
|
-
/>
|
|
114
|
-
<label for="${id}" class="inline-flex cursor-pointer">
|
|
115
|
-
<span class="${baseClasses} ${colorClasses[color] || colorClasses["dark/zinc"]}">
|
|
116
|
-
<svg class="${checkIconClasses} ${checkColor}" viewBox="0 0 14 14" fill="none" stroke="currentColor">
|
|
117
|
-
<path d="M3 8L6 11L11 3.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
118
|
-
</svg>
|
|
119
|
-
</span>
|
|
120
|
-
</label>
|
|
121
|
-
</div>
|
|
122
|
-
${label ? `<label for="${id}" class="col-start-2 row-start-1 text-sm/6 font-medium text-zinc-950 dark:text-white cursor-pointer">${label}</label>` : ""}
|
|
123
|
-
${description ? `<p class="col-start-2 row-start-2 text-sm/6 text-zinc-500 dark:text-zinc-400">${description}</p>` : ""}
|
|
124
|
-
</div>
|
|
125
|
-
`;
|
|
126
|
-
} else {
|
|
127
|
-
return `
|
|
128
|
-
<label class="inline-flex items-center gap-3 cursor-pointer ${className}">
|
|
129
|
-
<input
|
|
130
|
-
type="checkbox"
|
|
131
|
-
id="${id}"
|
|
132
|
-
name="${name}"
|
|
133
|
-
${checked ? "checked" : ""}
|
|
134
|
-
${disabled ? "disabled" : ""}
|
|
135
|
-
class="peer sr-only"
|
|
136
|
-
/>
|
|
137
|
-
<span class="${baseClasses} ${colorClasses[color] || colorClasses["dark/zinc"]}">
|
|
138
|
-
<svg class="${checkIconClasses} ${checkColor}" viewBox="0 0 14 14" fill="none" stroke="currentColor">
|
|
139
|
-
<path d="M3 8L6 11L11 3.5" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
|
140
|
-
</svg>
|
|
141
|
-
</span>
|
|
142
|
-
${label ? `<span class="text-sm/6 font-medium text-zinc-950 dark:text-white">${label}</span>` : ""}
|
|
143
|
-
</label>
|
|
144
|
-
`;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
function renderAdminLayoutCatalyst(data) {
|
|
148
|
-
return `<!DOCTYPE html>
|
|
149
|
-
<html lang="en" class="dark">
|
|
150
|
-
<head>
|
|
151
|
-
<meta charset="UTF-8">
|
|
152
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
153
|
-
<title>${data.title} - SonicJS AI Admin</title>
|
|
154
|
-
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
|
155
|
-
|
|
156
|
-
<!-- Tailwind CSS -->
|
|
157
|
-
<script src="https://cdn.tailwindcss.com"></script>
|
|
158
|
-
<script>
|
|
159
|
-
tailwind.config = {
|
|
160
|
-
darkMode: 'class',
|
|
161
|
-
theme: {
|
|
162
|
-
extend: {
|
|
163
|
-
colors: {
|
|
164
|
-
zinc: {
|
|
165
|
-
50: '#fafafa',
|
|
166
|
-
100: '#f4f4f5',
|
|
167
|
-
200: '#e4e4e7',
|
|
168
|
-
300: '#d4d4d8',
|
|
169
|
-
400: '#a1a1aa',
|
|
170
|
-
500: '#71717a',
|
|
171
|
-
600: '#52525b',
|
|
172
|
-
700: '#3f3f46',
|
|
173
|
-
800: '#27272a',
|
|
174
|
-
900: '#18181b',
|
|
175
|
-
950: '#09090b'
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
</script>
|
|
182
|
-
|
|
183
|
-
<!-- Additional Styles -->
|
|
184
|
-
<style>
|
|
185
|
-
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
|
|
186
|
-
|
|
187
|
-
* {
|
|
188
|
-
margin: 0;
|
|
189
|
-
padding: 0;
|
|
190
|
-
box-sizing: border-box;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
body {
|
|
194
|
-
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
|
195
|
-
-webkit-font-smoothing: antialiased;
|
|
196
|
-
-moz-osx-font-smoothing: grayscale;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/* Custom scrollbar */
|
|
200
|
-
::-webkit-scrollbar {
|
|
201
|
-
width: 8px;
|
|
202
|
-
height: 8px;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
::-webkit-scrollbar-track {
|
|
206
|
-
background: #27272a;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
::-webkit-scrollbar-thumb {
|
|
210
|
-
background: #52525b;
|
|
211
|
-
border-radius: 4px;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
::-webkit-scrollbar-thumb:hover {
|
|
215
|
-
background: #71717a;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/* Smooth transitions */
|
|
219
|
-
* {
|
|
220
|
-
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
|
221
|
-
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
222
|
-
transition-duration: 150ms;
|
|
223
|
-
}
|
|
224
|
-
</style>
|
|
225
|
-
|
|
226
|
-
<!-- Scripts -->
|
|
227
|
-
<script src="https://unpkg.com/htmx.org@2.0.3"></script>
|
|
228
|
-
<script src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js" defer></script>
|
|
229
|
-
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
|
230
|
-
|
|
231
|
-
<!-- CSRF: Auto-attach token to all HTMX and fetch requests -->
|
|
232
|
-
<script>
|
|
233
|
-
function getCsrfToken() {
|
|
234
|
-
var cookie = document.cookie.split('; ')
|
|
235
|
-
.find(function(row) { return row.startsWith('csrf_token='); });
|
|
236
|
-
return cookie ? cookie.substring(cookie.indexOf('=') + 1) : '';
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
document.addEventListener('htmx:configRequest', function(event) {
|
|
240
|
-
var token = getCsrfToken();
|
|
241
|
-
if (token) {
|
|
242
|
-
event.detail.headers['X-CSRF-Token'] = token;
|
|
243
|
-
}
|
|
244
|
-
});
|
|
245
|
-
|
|
246
|
-
(function() {
|
|
247
|
-
var originalFetch = window.fetch;
|
|
248
|
-
window.fetch = function(url, options) {
|
|
249
|
-
options = options || {};
|
|
250
|
-
var method = (options.method || 'GET').toUpperCase();
|
|
251
|
-
if (method !== 'GET' && method !== 'HEAD' && method !== 'OPTIONS') {
|
|
252
|
-
options.headers = options.headers || {};
|
|
253
|
-
if (options.headers instanceof Headers) {
|
|
254
|
-
if (!options.headers.has('X-CSRF-Token')) {
|
|
255
|
-
options.headers.set('X-CSRF-Token', getCsrfToken());
|
|
256
|
-
}
|
|
257
|
-
} else if (!Array.isArray(options.headers) && !options.headers['X-CSRF-Token']) {
|
|
258
|
-
options.headers['X-CSRF-Token'] = getCsrfToken();
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return originalFetch.call(this, url, options);
|
|
262
|
-
};
|
|
263
|
-
})();
|
|
264
|
-
|
|
265
|
-
// Inject _csrf hidden field into regular form submissions (non-HTMX)
|
|
266
|
-
document.addEventListener('submit', function(event) {
|
|
267
|
-
var form = event.target;
|
|
268
|
-
if (!form || !form.tagName || form.tagName !== 'FORM') return;
|
|
269
|
-
var method = (form.method || 'GET').toUpperCase();
|
|
270
|
-
if (method === 'GET') return;
|
|
271
|
-
if (form.hasAttribute('hx-post') || form.hasAttribute('hx-put') ||
|
|
272
|
-
form.hasAttribute('hx-delete') || form.hasAttribute('hx-patch')) return;
|
|
273
|
-
if (!form.querySelector('input[name="_csrf"]')) {
|
|
274
|
-
var input = document.createElement('input');
|
|
275
|
-
input.type = 'hidden';
|
|
276
|
-
input.name = '_csrf';
|
|
277
|
-
input.value = getCsrfToken();
|
|
278
|
-
form.appendChild(input);
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
</script>
|
|
282
|
-
|
|
283
|
-
${data.styles ? data.styles.map((style) => `<link rel="stylesheet" href="${style}">`).join("\n ") : ""}
|
|
284
|
-
${data.scripts ? data.scripts.map((script) => `<script src="${script}"></script>`).join("\n ") : ""}
|
|
285
|
-
</head>
|
|
286
|
-
<body class="min-h-screen bg-white dark:bg-zinc-900">
|
|
287
|
-
<div class="relative isolate flex min-h-svh w-full max-lg:flex-col lg:bg-zinc-100 dark:lg:bg-zinc-950">
|
|
288
|
-
<!-- Sidebar on desktop -->
|
|
289
|
-
<div class="fixed inset-y-0 left-0 w-64 max-lg:hidden">
|
|
290
|
-
${renderCatalystSidebar(
|
|
291
|
-
data.currentPath,
|
|
292
|
-
data.user,
|
|
293
|
-
data.dynamicMenuItems,
|
|
294
|
-
false,
|
|
295
|
-
data.version,
|
|
296
|
-
data.enableExperimentalFeatures
|
|
297
|
-
)}
|
|
298
|
-
</div>
|
|
299
|
-
|
|
300
|
-
<!-- Mobile sidebar (hidden by default) -->
|
|
301
|
-
<div id="mobile-sidebar-overlay" class="fixed inset-0 bg-black/30 lg:hidden hidden z-40" onclick="closeMobileSidebar()"></div>
|
|
302
|
-
<div id="mobile-sidebar" class="fixed inset-y-0 left-0 w-80 transform -translate-x-full transition-transform duration-300 ease-in-out lg:hidden z-50">
|
|
303
|
-
${renderCatalystSidebar(
|
|
304
|
-
data.currentPath,
|
|
305
|
-
data.user,
|
|
306
|
-
data.dynamicMenuItems,
|
|
307
|
-
true,
|
|
308
|
-
data.version,
|
|
309
|
-
data.enableExperimentalFeatures
|
|
310
|
-
)}
|
|
311
|
-
</div>
|
|
312
|
-
|
|
313
|
-
<!-- Main content area -->
|
|
314
|
-
<main class="flex flex-1 flex-col pb-2 lg:min-w-0 lg:pr-2 lg:pl-64">
|
|
315
|
-
<!-- Mobile header with menu toggle -->
|
|
316
|
-
<header class="flex items-center px-4 py-2.5 lg:hidden border-b border-zinc-950/5 dark:border-white/5">
|
|
317
|
-
<button onclick="openMobileSidebar()" class="relative flex items-center justify-center rounded-lg p-2 text-zinc-950 hover:bg-zinc-950/5 dark:text-white dark:hover:bg-white/5" aria-label="Open navigation">
|
|
318
|
-
<svg class="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
|
|
319
|
-
<path d="M2 6.75C2 6.33579 2.33579 6 2.75 6H17.25C17.6642 6 18 6.33579 18 6.75C18 7.16421 17.6642 7.5 17.25 7.5H2.75C2.33579 7.5 2 7.16421 2 6.75ZM2 13.25C2 12.8358 2.33579 12.5 2.75 12.5H17.25C17.6642 12.5 18 12.8358 18 13.25C18 13.6642 17.6642 14 17.25 14H2.75C2.33579 14 2 13.6642 2 13.25Z" />
|
|
320
|
-
</svg>
|
|
321
|
-
</button>
|
|
322
|
-
<div class="ml-4 flex-1">
|
|
323
|
-
${renderLogo({ size: "sm", showText: true, variant: "white", version: data.version, href: "/admin" })}
|
|
324
|
-
</div>
|
|
325
|
-
</header>
|
|
326
|
-
|
|
327
|
-
<!-- Content -->
|
|
328
|
-
<div class="grow p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-sm lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10">
|
|
329
|
-
${data.content}
|
|
330
|
-
</div>
|
|
331
|
-
</main>
|
|
332
|
-
</div>
|
|
333
|
-
|
|
334
|
-
<!-- Notification Container -->
|
|
335
|
-
<div id="notification-container" class="fixed top-4 right-4 z-50 space-y-2"></div>
|
|
336
|
-
|
|
337
|
-
<!-- Migration Warning Banner (hidden by default) -->
|
|
338
|
-
<div id="migration-banner" class="hidden fixed top-0 left-0 right-0 z-50 bg-amber-500 dark:bg-amber-600 shadow-lg">
|
|
339
|
-
<div class="max-w-7xl mx-auto px-4 py-3 sm:px-6 lg:px-8">
|
|
340
|
-
<div class="flex items-center justify-between flex-wrap">
|
|
341
|
-
<div class="flex items-center flex-1">
|
|
342
|
-
<span class="flex p-2 rounded-lg bg-amber-600 dark:bg-amber-700">
|
|
343
|
-
<svg class="h-5 w-5 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
344
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/>
|
|
345
|
-
</svg>
|
|
346
|
-
</span>
|
|
347
|
-
<div class="ml-3">
|
|
348
|
-
<p class="text-sm font-medium text-white">
|
|
349
|
-
<span id="migration-count"></span> pending database migration(s) detected
|
|
350
|
-
</p>
|
|
351
|
-
<p class="text-xs text-amber-100 dark:text-amber-200 mt-1">
|
|
352
|
-
Run: <code class="bg-amber-700 dark:bg-amber-800 px-2 py-0.5 rounded font-mono text-white">wrangler d1 migrations apply DB --local</code>
|
|
353
|
-
</p>
|
|
354
|
-
</div>
|
|
355
|
-
</div>
|
|
356
|
-
<div class="flex items-center gap-2">
|
|
357
|
-
<a href="/admin/settings/migrations" class="text-xs font-semibold text-white hover:text-amber-100 underline">
|
|
358
|
-
View Details
|
|
359
|
-
</a>
|
|
360
|
-
<button onclick="closeMigrationBanner()" class="p-1 rounded-md text-white hover:bg-amber-600 dark:hover:bg-amber-700 focus:outline-none focus:ring-2 focus:ring-white">
|
|
361
|
-
<svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
362
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
|
|
363
|
-
</svg>
|
|
364
|
-
</button>
|
|
365
|
-
</div>
|
|
366
|
-
</div>
|
|
367
|
-
</div>
|
|
368
|
-
</div>
|
|
369
|
-
|
|
370
|
-
<script>
|
|
371
|
-
// Mobile sidebar toggle
|
|
372
|
-
function openMobileSidebar() {
|
|
373
|
-
const sidebar = document.getElementById('mobile-sidebar');
|
|
374
|
-
const overlay = document.getElementById('mobile-sidebar-overlay');
|
|
375
|
-
sidebar.classList.remove('-translate-x-full');
|
|
376
|
-
overlay.classList.remove('hidden');
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
function closeMobileSidebar() {
|
|
380
|
-
const sidebar = document.getElementById('mobile-sidebar');
|
|
381
|
-
const overlay = document.getElementById('mobile-sidebar-overlay');
|
|
382
|
-
sidebar.classList.add('-translate-x-full');
|
|
383
|
-
overlay.classList.add('hidden');
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// User dropdown toggle
|
|
387
|
-
function toggleUserDropdown() {
|
|
388
|
-
const dropDowns = document.querySelectorAll('.userDropdown');
|
|
389
|
-
dropDowns.forEach(dropdown => {
|
|
390
|
-
dropdown.classList.toggle('hidden');
|
|
391
|
-
});
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
// Close dropdown when clicking outside
|
|
395
|
-
document.addEventListener('click', function(event) {
|
|
396
|
-
const dropdowns = document.querySelectorAll('.userDropdown');
|
|
397
|
-
const button = event.target.closest('[data-user-menu]');
|
|
398
|
-
if (!button) {
|
|
399
|
-
dropdowns.forEach(function(dropdown) {
|
|
400
|
-
if (!dropdown.contains(event.target)) {
|
|
401
|
-
dropdown.classList.add('hidden');
|
|
402
|
-
}
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
});
|
|
406
|
-
|
|
407
|
-
// Show notification
|
|
408
|
-
function showNotification(message, type = 'info') {
|
|
409
|
-
const container = document.getElementById('notification-container');
|
|
410
|
-
const notification = document.createElement('div');
|
|
411
|
-
const colors = {
|
|
412
|
-
success: 'bg-green-50 dark:bg-green-500/10 text-green-700 dark:text-green-400 ring-green-600/20 dark:ring-green-500/20',
|
|
413
|
-
error: 'bg-red-50 dark:bg-red-500/10 text-red-700 dark:text-red-400 ring-red-600/20 dark:ring-red-500/20',
|
|
414
|
-
warning: 'bg-amber-50 dark:bg-amber-500/10 text-amber-700 dark:text-amber-400 ring-amber-600/20 dark:ring-amber-500/20',
|
|
415
|
-
info: 'bg-blue-50 dark:bg-blue-500/10 text-blue-700 dark:text-blue-400 ring-blue-600/20 dark:ring-blue-500/20'
|
|
416
|
-
};
|
|
417
|
-
|
|
418
|
-
notification.className = \`rounded-lg p-4 ring-1 \${colors[type] || colors.info} max-w-sm shadow-lg\`;
|
|
419
|
-
notification.innerHTML = \`
|
|
420
|
-
<div class="flex items-center justify-between">
|
|
421
|
-
<span class="text-sm">\${message}</span>
|
|
422
|
-
<button onclick="this.parentElement.parentElement.remove()" class="ml-4 hover:opacity-70">
|
|
423
|
-
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
424
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
|
|
425
|
-
</svg>
|
|
426
|
-
</button>
|
|
427
|
-
</div>
|
|
428
|
-
\`;
|
|
429
|
-
|
|
430
|
-
container.appendChild(notification);
|
|
431
|
-
|
|
432
|
-
// Auto remove after 5 seconds
|
|
433
|
-
setTimeout(() => {
|
|
434
|
-
if (notification.parentElement) {
|
|
435
|
-
notification.remove();
|
|
436
|
-
}
|
|
437
|
-
}, 5000);
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
// Initialize dark mode
|
|
441
|
-
if (localStorage.getItem('darkMode') === 'false') {
|
|
442
|
-
document.documentElement.classList.remove('dark');
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
// Migration banner functions
|
|
446
|
-
function closeMigrationBanner() {
|
|
447
|
-
const banner = document.getElementById('migration-banner');
|
|
448
|
-
if (banner) {
|
|
449
|
-
banner.classList.add('hidden');
|
|
450
|
-
// Store in session storage so it doesn't show again during this session
|
|
451
|
-
sessionStorage.setItem('migrationBannerDismissed', 'true');
|
|
452
|
-
}
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
// Check for pending migrations on page load
|
|
456
|
-
async function checkPendingMigrations() {
|
|
457
|
-
// Don't check if user dismissed the banner in this session
|
|
458
|
-
if (sessionStorage.getItem('migrationBannerDismissed') === 'true') {
|
|
459
|
-
return;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
try {
|
|
463
|
-
const response = await fetch('/admin/api/migrations/status');
|
|
464
|
-
if (response.ok) {
|
|
465
|
-
const data = await response.json();
|
|
466
|
-
if (data.success && data.data && data.data.pendingMigrations > 0) {
|
|
467
|
-
const banner = document.getElementById('migration-banner');
|
|
468
|
-
const countElement = document.getElementById('migration-count');
|
|
469
|
-
if (banner && countElement) {
|
|
470
|
-
countElement.textContent = data.data.pendingMigrations;
|
|
471
|
-
banner.classList.remove('hidden');
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
} catch (error) {
|
|
476
|
-
console.error('Failed to check migration status:', error);
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
// Check for pending migrations when the page loads
|
|
481
|
-
document.addEventListener('DOMContentLoaded', checkPendingMigrations);
|
|
482
|
-
</script>
|
|
483
|
-
</body>
|
|
484
|
-
</html>`;
|
|
485
|
-
}
|
|
486
|
-
function renderCatalystSidebar(currentPath = "", user, dynamicMenuItems, isMobile = false, version, enableExperimentalFeatures) {
|
|
487
|
-
let baseMenuItems = [
|
|
488
|
-
{
|
|
489
|
-
label: "Dashboard",
|
|
490
|
-
path: "/admin",
|
|
491
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
492
|
-
<path d="M3 4a1 1 0 011-1h12a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V4zM3 10a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H4a1 1 0 01-1-1v-6zM14 9a1 1 0 00-1 1v6a1 1 0 001 1h2a1 1 0 001-1v-6a1 1 0 00-1-1h-2z"/>
|
|
493
|
-
</svg>`
|
|
494
|
-
},
|
|
495
|
-
{
|
|
496
|
-
label: "Collections",
|
|
497
|
-
path: "/admin/collections",
|
|
498
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
499
|
-
<path d="M7 3a1 1 0 000 2h6a1 1 0 100-2H7zM4 7a1 1 0 011-1h10a1 1 0 110 2H5a1 1 0 01-1-1zM2 11a2 2 0 012-2h12a2 2 0 012 2v4a2 2 0 01-2 2H4a2 2 0 01-2-2v-4z"/>
|
|
500
|
-
</svg>`
|
|
501
|
-
},
|
|
502
|
-
{
|
|
503
|
-
label: "Forms",
|
|
504
|
-
path: "/admin/forms",
|
|
505
|
-
icon: `<svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
506
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
|
|
507
|
-
</svg>`
|
|
508
|
-
},
|
|
509
|
-
{
|
|
510
|
-
label: "Content",
|
|
511
|
-
path: "/admin/content",
|
|
512
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
513
|
-
<path fill-rule="evenodd" d="M4 4a2 2 0 012-2h4.586A2 2 0 0112 2.586L15.414 6A2 2 0 0116 7.414V16a2 2 0 01-2 2H6a2 2 0 01-2-2V4zm2 6a1 1 0 011-1h6a1 1 0 110 2H7a1 1 0 01-1-1zm1 3a1 1 0 100 2h6a1 1 0 100-2H7z" clip-rule="evenodd"/>
|
|
514
|
-
</svg>`
|
|
515
|
-
},
|
|
516
|
-
{
|
|
517
|
-
label: "Media",
|
|
518
|
-
path: "/admin/media",
|
|
519
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
520
|
-
<path fill-rule="evenodd" d="M4 3a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V5a2 2 0 00-2-2H4zm12 12H4l4-8 3 6 2-4 3 6z" clip-rule="evenodd"/>
|
|
521
|
-
</svg>`
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
label: "Users",
|
|
525
|
-
path: "/admin/users",
|
|
526
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
527
|
-
<path d="M9 6a3 3 0 11-6 0 3 3 0 016 0zM17 6a3 3 0 11-6 0 3 3 0 016 0zM12.93 17c.046-.327.07-.66.07-1a6.97 6.97 0 00-1.5-4.33A5 5 0 0119 16v1h-6.07zM6 11a5 5 0 015 5v1H1v-1a5 5 0 015-5z"/>
|
|
528
|
-
</svg>`
|
|
529
|
-
},
|
|
530
|
-
{
|
|
531
|
-
label: "Plugins",
|
|
532
|
-
path: "/admin/plugins",
|
|
533
|
-
icon: `<svg class="h-5 w-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
534
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"/>
|
|
535
|
-
</svg>`
|
|
536
|
-
},
|
|
537
|
-
{
|
|
538
|
-
label: "Cache",
|
|
539
|
-
path: "/admin/cache",
|
|
540
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
541
|
-
<path fill-rule="evenodd" d="M2 5a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2V5zm14 1a1 1 0 11-2 0 1 1 0 012 0zM2 13a2 2 0 012-2h12a2 2 0 012 2v2a2 2 0 01-2 2H4a2 2 0 01-2-2v-2zm14 1a1 1 0 11-2 0 1 1 0 012 0z" clip-rule="evenodd"/>
|
|
542
|
-
</svg>`
|
|
543
|
-
}
|
|
544
|
-
];
|
|
545
|
-
const settingsMenuItem = {
|
|
546
|
-
label: "Settings",
|
|
547
|
-
path: "/admin/settings",
|
|
548
|
-
icon: `<svg class="h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
|
|
549
|
-
<path fill-rule="evenodd" d="M11.49 3.17c-.38-1.56-2.6-1.56-2.98 0a1.532 1.532 0 01-2.286.948c-1.372-.836-2.942.734-2.106 2.106.54.886.061 2.042-.947 2.287-1.561.379-1.561 2.6 0 2.978a1.532 1.532 0 01.947 2.287c-.836 1.372.734 2.942 2.106 2.106a1.532 1.532 0 012.287.947c.379 1.561 2.6 1.561 2.978 0a1.533 1.533 0 012.287-.947c1.372.836 2.942-.734 2.106-2.106a1.533 1.533 0 01.947-2.287c1.561-.379 1.561-2.6 0-2.978a1.532 1.532 0 01-.947-2.287c.836-1.372-.734-2.942-2.106-2.106a1.532 1.532 0 01-2.287-.947zM10 13a3 3 0 100-6 3 3 0 000 6z" clip-rule="evenodd"/>
|
|
550
|
-
</svg>`
|
|
551
|
-
};
|
|
552
|
-
const allMenuItems = [...baseMenuItems];
|
|
553
|
-
if (dynamicMenuItems && dynamicMenuItems.length > 0) {
|
|
554
|
-
const usersIndex = allMenuItems.findIndex(
|
|
555
|
-
(item) => item.path === "/admin/users"
|
|
556
|
-
);
|
|
557
|
-
if (usersIndex !== -1) {
|
|
558
|
-
allMenuItems.splice(usersIndex + 1, 0, ...dynamicMenuItems);
|
|
559
|
-
} else {
|
|
560
|
-
allMenuItems.push(...dynamicMenuItems);
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
const pluginMenuMarker = !dynamicMenuItems || dynamicMenuItems.length === 0 ? "<!-- DYNAMIC_PLUGIN_MENU -->" : "";
|
|
564
|
-
const closeButton = isMobile ? `
|
|
565
|
-
<div class="-mb-3 px-4 pt-3">
|
|
566
|
-
<button onclick="closeMobileSidebar()" class="relative flex w-full items-center gap-3 rounded-lg p-2 text-left text-base/6 font-medium text-zinc-950 hover:bg-zinc-950/5 dark:text-white dark:hover:bg-white/5 sm:text-sm/5" aria-label="Close navigation">
|
|
567
|
-
<svg class="h-5 w-5 shrink-0 fill-zinc-500 dark:fill-zinc-400" viewBox="0 0 20 20">
|
|
568
|
-
<path d="M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" />
|
|
569
|
-
</svg>
|
|
570
|
-
<span>Close menu</span>
|
|
571
|
-
</button>
|
|
572
|
-
</div>
|
|
573
|
-
` : "";
|
|
574
|
-
return `
|
|
575
|
-
<nav class="flex h-full min-h-0 flex-col bg-white shadow-sm ring-1 ring-zinc-950/5 dark:bg-zinc-900 dark:ring-white/10 ${isMobile ? "is-mobile rounded-lg p-2 m-2" : ""}">
|
|
576
|
-
${closeButton}
|
|
577
|
-
|
|
578
|
-
<!-- Sidebar Header -->
|
|
579
|
-
<div class="flex flex-col border-b border-zinc-950/5 p-4 dark:border-white/5">
|
|
580
|
-
${renderLogo({ size: "md", showText: true, variant: "white", version, href: "/admin" })}
|
|
581
|
-
</div>
|
|
582
|
-
|
|
583
|
-
<!-- Sidebar Body -->
|
|
584
|
-
<div class="flex flex-1 flex-col overflow-y-auto p-4">
|
|
585
|
-
<div class="flex flex-col gap-0.5">
|
|
586
|
-
${allMenuItems.map((item) => {
|
|
587
|
-
const isActive = currentPath === item.path || item.path !== "/admin" && currentPath?.startsWith(item.path);
|
|
588
|
-
return `
|
|
589
|
-
<span class="relative">
|
|
590
|
-
${isActive ? `
|
|
591
|
-
<span class="absolute inset-y-2 -left-4 w-0.5 rounded-full bg-cyan-500 dark:bg-cyan-400"></span>
|
|
592
|
-
` : ""}
|
|
593
|
-
<a
|
|
594
|
-
href="${item.path}"
|
|
595
|
-
class="flex w-full items-center gap-3 rounded-lg px-2 py-2.5 text-left text-sm/5 font-medium ${isActive ? "text-zinc-950 dark:text-white" : "text-zinc-950 hover:bg-zinc-950/5 dark:text-white dark:hover:bg-white/5"}"
|
|
596
|
-
${isActive ? 'data-current="true"' : ""}
|
|
597
|
-
>
|
|
598
|
-
<span class="shrink-0 ${isActive ? "fill-zinc-950 dark:fill-white" : "fill-zinc-500 dark:fill-zinc-400"}">
|
|
599
|
-
${item.icon}
|
|
600
|
-
</span>
|
|
601
|
-
<span class="truncate">${item.label}</span>
|
|
602
|
-
</a>
|
|
603
|
-
</span>
|
|
604
|
-
`;
|
|
605
|
-
}).join("")}
|
|
606
|
-
${pluginMenuMarker}
|
|
607
|
-
</div>
|
|
608
|
-
</div>
|
|
609
|
-
|
|
610
|
-
<!-- Settings Menu Item (Bottom) -->
|
|
611
|
-
<div class="border-t border-zinc-950/5 p-4 dark:border-white/5">
|
|
612
|
-
${(() => {
|
|
613
|
-
const isActive = currentPath === settingsMenuItem.path || currentPath?.startsWith(settingsMenuItem.path);
|
|
614
|
-
return `
|
|
615
|
-
<span class="relative">
|
|
616
|
-
${isActive ? `
|
|
617
|
-
<span class="absolute inset-y-2 -left-4 w-0.5 rounded-full bg-cyan-500 dark:bg-cyan-400"></span>
|
|
618
|
-
` : ""}
|
|
619
|
-
<a
|
|
620
|
-
href="${settingsMenuItem.path}"
|
|
621
|
-
class="flex w-full items-center gap-3 rounded-lg px-2 py-2.5 text-left text-sm/5 font-medium ${isActive ? "text-zinc-950 dark:text-white" : "text-zinc-950 hover:bg-zinc-950/5 dark:text-white dark:hover:bg-white/5"}"
|
|
622
|
-
${isActive ? 'data-current="true"' : ""}
|
|
623
|
-
>
|
|
624
|
-
<span class="shrink-0 ${isActive ? "fill-zinc-950 dark:fill-white" : "fill-zinc-500 dark:fill-zinc-400"}">
|
|
625
|
-
${settingsMenuItem.icon}
|
|
626
|
-
</span>
|
|
627
|
-
<span class="truncate">${settingsMenuItem.label}</span>
|
|
628
|
-
</a>
|
|
629
|
-
</span>
|
|
630
|
-
`;
|
|
631
|
-
})()}
|
|
632
|
-
</div>
|
|
633
|
-
|
|
634
|
-
<!-- Sidebar Footer (User) -->
|
|
635
|
-
${user ? `
|
|
636
|
-
<div class="flex flex-col border-t border-zinc-950/5 p-4 dark:border-white/5">
|
|
637
|
-
<div class="relative">
|
|
638
|
-
<button
|
|
639
|
-
data-user-menu
|
|
640
|
-
onclick="toggleUserDropdown()"
|
|
641
|
-
class="flex w-full items-center gap-3 rounded-lg px-2 py-2.5 text-left text-sm/5 font-medium text-zinc-950 hover:bg-zinc-950/5 dark:text-white dark:hover:bg-white/5"
|
|
642
|
-
>
|
|
643
|
-
<div class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-zinc-950 text-white dark:bg-white dark:text-zinc-950">
|
|
644
|
-
<span class="text-xs font-semibold">${(user.name || user.email || "U").charAt(0).toUpperCase()}</span>
|
|
645
|
-
</div>
|
|
646
|
-
<span class="flex-1 truncate">${user.name || user.email || "User"}</span>
|
|
647
|
-
<svg class="h-4 w-4 shrink-0 fill-zinc-500 dark:fill-zinc-400" viewBox="0 0 20 20">
|
|
648
|
-
<path d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" />
|
|
649
|
-
</svg>
|
|
650
|
-
</button>
|
|
651
|
-
|
|
652
|
-
<!-- User Dropdown -->
|
|
653
|
-
<div class="userDropdown hidden absolute bottom-full mb-2 left-0 right-0 mx-2 rounded-xl bg-white shadow-lg ring-1 ring-zinc-950/10 dark:bg-zinc-800 dark:ring-white/10 z-50">
|
|
654
|
-
<div class="p-2">
|
|
655
|
-
<div class="px-3 py-2 border-b border-zinc-950/5 dark:border-white/5">
|
|
656
|
-
<p class="text-sm font-medium text-zinc-950 dark:text-white">${user.name || user.email || "User"}</p>
|
|
657
|
-
<p class="text-xs text-zinc-500 dark:text-zinc-400">${user.email || ""}</p>
|
|
658
|
-
</div>
|
|
659
|
-
<a href="/admin/profile" class="flex items-center gap-2 rounded-lg px-3 py-2 text-sm text-zinc-950 hover:bg-zinc-950/5 dark:text-white dark:hover:bg-white/5">
|
|
660
|
-
<svg class="h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
661
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"/>
|
|
662
|
-
</svg>
|
|
663
|
-
My Profile
|
|
664
|
-
</a>
|
|
665
|
-
<a href="/auth/logout" class="flex items-center gap-2 rounded-lg px-3 py-2 text-sm text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-500/10">
|
|
666
|
-
<svg class="h-4 w-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
667
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 16l4-4m0 0l-4-4m4 4H7m6 4v1a3 3 0 01-3 3H6a3 3 0 01-3-3V7a3 3 0 013-3h4a3 3 0 013 3v1"/>
|
|
668
|
-
</svg>
|
|
669
|
-
Sign Out
|
|
670
|
-
</a>
|
|
671
|
-
</div>
|
|
672
|
-
</div>
|
|
673
|
-
</div>
|
|
674
|
-
</div>
|
|
675
|
-
` : ""}
|
|
676
|
-
</nav>
|
|
677
|
-
`;
|
|
678
|
-
}
|
|
679
|
-
var init_admin_layout_catalyst_template = chunkIGJUBJBW_cjs.__esm({
|
|
680
|
-
"src/templates/layouts/admin-layout-catalyst.template.ts"() {
|
|
681
|
-
init_logo_template();
|
|
682
|
-
}
|
|
683
|
-
});
|
|
684
|
-
|
|
685
7
|
// src/templates/alert.template.ts
|
|
686
8
|
function renderAlert(data) {
|
|
687
9
|
const typeClasses = {
|
|
@@ -1210,11 +532,11 @@ function renderTable(data) {
|
|
|
1210
532
|
}
|
|
1211
533
|
|
|
1212
534
|
// src/templates/layouts/admin-layout-v2.template.ts
|
|
1213
|
-
init_logo_template();
|
|
535
|
+
chunkUYJ6TJHX_cjs.init_logo_template();
|
|
1214
536
|
function renderAdminLayout(data) {
|
|
1215
537
|
const {
|
|
1216
538
|
renderAdminLayoutCatalyst: renderAdminLayoutCatalyst2
|
|
1217
|
-
} = (init_admin_layout_catalyst_template(), chunkIGJUBJBW_cjs.__toCommonJS(admin_layout_catalyst_template_exports));
|
|
539
|
+
} = (chunkUYJ6TJHX_cjs.init_admin_layout_catalyst_template(), chunkIGJUBJBW_cjs.__toCommonJS(chunkUYJ6TJHX_cjs.admin_layout_catalyst_template_exports));
|
|
1218
540
|
return renderAdminLayoutCatalyst2(data);
|
|
1219
541
|
}
|
|
1220
542
|
function adminLayoutV2(data) {
|
|
@@ -1814,7 +1136,7 @@ function renderTopBar(pageTitle, user) {
|
|
|
1814
1136
|
<div class="px-4 sm:px-6 lg:px-8">
|
|
1815
1137
|
<div class="flex justify-between items-center py-4">
|
|
1816
1138
|
<div class="flex items-center space-x-4">
|
|
1817
|
-
${renderLogo({ size: "md", showText: true, variant: "white" })}
|
|
1139
|
+
${chunkUYJ6TJHX_cjs.renderLogo({ size: "md", showText: true, variant: "white" })}
|
|
1818
1140
|
</div>
|
|
1819
1141
|
|
|
1820
1142
|
<div class="flex items-center space-x-4">
|
|
@@ -2002,7 +1324,7 @@ function renderTopBar(pageTitle, user) {
|
|
|
2002
1324
|
}
|
|
2003
1325
|
|
|
2004
1326
|
// src/templates/pages/admin-design.template.ts
|
|
2005
|
-
init_admin_layout_catalyst_template();
|
|
1327
|
+
chunkUYJ6TJHX_cjs.init_admin_layout_catalyst_template();
|
|
2006
1328
|
function renderDesignPage(data) {
|
|
2007
1329
|
const pageContent = `
|
|
2008
1330
|
<div class="space-y-8">
|
|
@@ -2828,16 +2150,17 @@ function renderDesignPage(data) {
|
|
|
2828
2150
|
`;
|
|
2829
2151
|
const layoutData = {
|
|
2830
2152
|
title: "Catalyst Design System",
|
|
2153
|
+
pageTitle: "Design System",
|
|
2831
2154
|
currentPath: "/admin/design",
|
|
2832
2155
|
user: data.user,
|
|
2833
2156
|
version: data.version,
|
|
2834
2157
|
content: pageContent
|
|
2835
2158
|
};
|
|
2836
|
-
return renderAdminLayoutCatalyst(layoutData);
|
|
2159
|
+
return chunkUYJ6TJHX_cjs.renderAdminLayoutCatalyst(layoutData);
|
|
2837
2160
|
}
|
|
2838
2161
|
|
|
2839
2162
|
// src/templates/pages/admin-checkboxes.template.ts
|
|
2840
|
-
init_admin_layout_catalyst_template();
|
|
2163
|
+
chunkUYJ6TJHX_cjs.init_admin_layout_catalyst_template();
|
|
2841
2164
|
function renderCheckboxPage(data) {
|
|
2842
2165
|
const pageContent = `
|
|
2843
2166
|
<div class="space-y-8">
|
|
@@ -3021,15 +2344,16 @@ function renderCheckboxPage(data) {
|
|
|
3021
2344
|
`;
|
|
3022
2345
|
const layoutData = {
|
|
3023
2346
|
title: "Catalyst Checkboxes",
|
|
2347
|
+
pageTitle: "Catalyst Checkboxes",
|
|
3024
2348
|
currentPath: "/admin/checkboxes",
|
|
3025
2349
|
user: data.user,
|
|
3026
2350
|
content: pageContent
|
|
3027
2351
|
};
|
|
3028
|
-
return renderAdminLayoutCatalyst(layoutData);
|
|
2352
|
+
return chunkUYJ6TJHX_cjs.renderAdminLayoutCatalyst(layoutData);
|
|
3029
2353
|
}
|
|
3030
2354
|
|
|
3031
2355
|
// src/templates/pages/admin-testimonials-list.template.ts
|
|
3032
|
-
init_admin_layout_catalyst_template();
|
|
2356
|
+
chunkUYJ6TJHX_cjs.init_admin_layout_catalyst_template();
|
|
3033
2357
|
function renderTestimonialsList(data) {
|
|
3034
2358
|
const { testimonials, totalCount, currentPage, totalPages, message, messageType } = data;
|
|
3035
2359
|
const pageContent = `
|
|
@@ -3212,15 +2536,16 @@ function renderTestimonialsList(data) {
|
|
|
3212
2536
|
`;
|
|
3213
2537
|
const layoutData = {
|
|
3214
2538
|
title: "Testimonials",
|
|
2539
|
+
pageTitle: "Testimonials",
|
|
3215
2540
|
currentPath: "/admin/testimonials",
|
|
3216
2541
|
user: data.user,
|
|
3217
2542
|
content: pageContent
|
|
3218
2543
|
};
|
|
3219
|
-
return renderAdminLayoutCatalyst(layoutData);
|
|
2544
|
+
return chunkUYJ6TJHX_cjs.renderAdminLayoutCatalyst(layoutData);
|
|
3220
2545
|
}
|
|
3221
2546
|
|
|
3222
2547
|
// src/templates/pages/admin-code-examples-list.template.ts
|
|
3223
|
-
init_admin_layout_catalyst_template();
|
|
2548
|
+
chunkUYJ6TJHX_cjs.init_admin_layout_catalyst_template();
|
|
3224
2549
|
function renderCodeExamplesList(data) {
|
|
3225
2550
|
const { codeExamples, totalCount, currentPage, totalPages, message, messageType } = data;
|
|
3226
2551
|
const pageContent = `
|
|
@@ -3412,11 +2737,12 @@ function renderCodeExamplesList(data) {
|
|
|
3412
2737
|
`;
|
|
3413
2738
|
const layoutData = {
|
|
3414
2739
|
title: "Code Examples",
|
|
2740
|
+
pageTitle: "Code Examples",
|
|
3415
2741
|
currentPath: "/admin/code-examples",
|
|
3416
2742
|
user: data.user,
|
|
3417
2743
|
content: pageContent
|
|
3418
2744
|
};
|
|
3419
|
-
return renderAdminLayoutCatalyst(layoutData);
|
|
2745
|
+
return chunkUYJ6TJHX_cjs.renderAdminLayoutCatalyst(layoutData);
|
|
3420
2746
|
}
|
|
3421
2747
|
|
|
3422
2748
|
// src/templates/form.template.ts
|
|
@@ -3610,10 +2936,7 @@ function renderFormField(field) {
|
|
|
3610
2936
|
|
|
3611
2937
|
exports.adminLayoutV2 = adminLayoutV2;
|
|
3612
2938
|
exports.getConfirmationDialogScript = getConfirmationDialogScript;
|
|
3613
|
-
exports.init_admin_layout_catalyst_template = init_admin_layout_catalyst_template;
|
|
3614
|
-
exports.init_logo_template = init_logo_template;
|
|
3615
2939
|
exports.renderAdminLayout = renderAdminLayout;
|
|
3616
|
-
exports.renderAdminLayoutCatalyst = renderAdminLayoutCatalyst;
|
|
3617
2940
|
exports.renderAlert = renderAlert;
|
|
3618
2941
|
exports.renderCheckboxPage = renderCheckboxPage;
|
|
3619
2942
|
exports.renderCodeExamplesList = renderCodeExamplesList;
|
|
@@ -3621,9 +2944,8 @@ exports.renderConfirmationDialog = renderConfirmationDialog;
|
|
|
3621
2944
|
exports.renderDesignPage = renderDesignPage;
|
|
3622
2945
|
exports.renderForm = renderForm;
|
|
3623
2946
|
exports.renderFormField = renderFormField;
|
|
3624
|
-
exports.renderLogo = renderLogo;
|
|
3625
2947
|
exports.renderPagination = renderPagination;
|
|
3626
2948
|
exports.renderTable = renderTable;
|
|
3627
2949
|
exports.renderTestimonialsList = renderTestimonialsList;
|
|
3628
|
-
//# sourceMappingURL=chunk-
|
|
3629
|
-
//# sourceMappingURL=chunk-
|
|
2950
|
+
//# sourceMappingURL=chunk-OHYBNCVL.cjs.map
|
|
2951
|
+
//# sourceMappingURL=chunk-OHYBNCVL.cjs.map
|