@chaibuilder/sdk 1.0.9 → 1.0.11

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 (167) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +123 -21
  3. package/dist/AddBlocks-7ACJv8LW.cjs +3 -0
  4. package/dist/{AddBlocks-d10b7b87.js → AddBlocks-H7BZYHUC.js} +43 -40
  5. package/dist/BrandingOptions-5j-XszLM.cjs +1 -0
  6. package/dist/{BrandingOptions-f4ab5d9f.js → BrandingOptions-PAgY-kvj.js} +19 -22
  7. package/dist/CanvasArea-Dnm-yeus.cjs +46 -0
  8. package/dist/{CanvasArea-10356200.js → CanvasArea-zn2ox-5h.js} +492 -503
  9. package/dist/ChaiBuilderEditor-BoE-sArB.cjs +163 -0
  10. package/dist/{index-aa42febc.js → ChaiBuilderEditor-hEuUONQ3.js} +11215 -15404
  11. package/dist/Class-_uCzl5v1.cjs +1 -0
  12. package/dist/{html-to-json-45e0e3b5.js → Class-l7qYbuoN.js} +185 -366
  13. package/dist/{CurrentPage-35e14043.js → CurrentPage-6Jp4xAWK.js} +27 -24
  14. package/dist/CurrentPage-YMpqOqx7.cjs +1 -0
  15. package/dist/{ImagesPanel-8b7a989d.cjs → ImagesPanel-6us7hiLN.cjs} +1 -1
  16. package/dist/{ImagesPanel-47ac13c3.js → ImagesPanel-oaHOD-Ex.js} +4 -4
  17. package/dist/Layers-EzOZdWvd.cjs +1 -0
  18. package/dist/{Layers-c3dd4fc8.js → Layers-WkZ48AUm.js} +43 -42
  19. package/dist/{MarkAsGlobalBlock-505ae793.js → MarkAsGlobalBlock-0HubcRkY.js} +18 -21
  20. package/dist/MarkAsGlobalBlock-HmeIyLCP.cjs +1 -0
  21. package/dist/{PagesPanel-bafc506f.js → PagesPanel-6JuwBLFQ.js} +17 -14
  22. package/dist/PagesPanel-zJq8p1ja.cjs +1 -0
  23. package/dist/ProjectPanel-Zml2F8b9.cjs +1 -0
  24. package/dist/{ProjectPanel-6113f394.js → ProjectPanel-cu2QSDW9.js} +23 -20
  25. package/dist/{Settings-1c41c514.js → Settings-fH8fZKpm.js} +266 -264
  26. package/dist/Settings-lc9PfnmG.cjs +1 -0
  27. package/dist/SidePanels-VH72zFE2.cjs +1 -0
  28. package/dist/{SidePanels-c13f87dc.js → SidePanels-w8ZHKJaR.js} +34 -42
  29. package/dist/{Topbar-b38d5d50.js → Topbar-hm1D_5sb.js} +34 -36
  30. package/dist/Topbar-vQPo9xSY.cjs +1 -0
  31. package/dist/UnsplashImages-BoBBSi1a.cjs +1 -0
  32. package/dist/{UnsplashImages-4edb97e7.js → UnsplashImages-gPcBLjgB.js} +13 -14
  33. package/dist/UploadImages-T6kW0s3G.cjs +1 -0
  34. package/dist/{UploadImages-52181c3e.js → UploadImages-_ZyUU66E.js} +11 -12
  35. package/dist/{accordion-c0176dc5.js → accordion-oPUeqPCZ.js} +2 -2
  36. package/dist/{accordion-0afd8143.cjs → accordion-ynvFtV_p.cjs} +1 -1
  37. package/dist/add-page-modal--qZSwJuB.cjs +1 -0
  38. package/dist/{add-page-modal-08a19915.js → add-page-modal-bj7qbZuK.js} +27 -23
  39. package/dist/alert-dialog-GNfnpqFB.js +64 -0
  40. package/dist/alert-dialog-Mv0-wAvS.cjs +1 -0
  41. package/dist/{command-b1103666.cjs → command-ThdTuUxt.cjs} +1 -1
  42. package/dist/{command-6f260f61.js → command-VHca6CcN.js} +3 -3
  43. package/dist/confirm-alert-8EHe0OOd.cjs +1 -0
  44. package/dist/confirm-alert-b0e_BLhF.js +36 -0
  45. package/dist/{context-menu-e1c240ce.js → context-menu-8dC9uGXj.js} +2 -2
  46. package/dist/{context-menu-fec580f2.cjs → context-menu-IgLbIuth.cjs} +1 -1
  47. package/dist/controls-Ni5kEzLz.js +103 -0
  48. package/dist/controls-W97-POR_.cjs +1 -0
  49. package/dist/controls-enQY7NI8.js +118 -0
  50. package/dist/controls-xUKa23ic.cjs +1 -0
  51. package/dist/core.cjs +1 -1
  52. package/dist/core.d.ts +1 -10
  53. package/dist/core.js +117 -70
  54. package/dist/delete-page-modal-2LuDLEiP.cjs +1 -0
  55. package/dist/{delete-page-modal-9b37665b.js → delete-page-modal-cnrR8tWH.js} +26 -23
  56. package/dist/{dialog-170eaad9.cjs → dialog-S_QbL1iq.cjs} +1 -1
  57. package/dist/{dialog-18207bef.js → dialog-jrw9DF1f.js} +2 -2
  58. package/dist/{dropdown-menu-ae3ed09b.js → dropdown-menu-S03K_fNs.js} +2 -2
  59. package/dist/{dropdown-menu-84b2439e.cjs → dropdown-menu-sMXR59cB.cjs} +1 -1
  60. package/dist/{form-25e1af37.js → form-dVpOAyRl.js} +2 -2
  61. package/dist/{form-ea21db6c.cjs → form-nRAvKPQj.cjs} +1 -1
  62. package/dist/{functions-83b1de8d.js → functions-nNTuSTsR.js} +1 -1
  63. package/dist/functions-pcUZhFJM.js +12 -0
  64. package/dist/{functions-f84d5e2a.cjs → functions-sCuB7nvZ.cjs} +1 -1
  65. package/dist/functions-uw7QP2kT.cjs +1 -0
  66. package/dist/html-to-json-P6GpbcQX.cjs +1 -0
  67. package/dist/html-to-json-pdHQfRkN.js +178 -0
  68. package/dist/index-HAue58ea.cjs +1 -0
  69. package/dist/index-T4_wfKl5.js +2256 -0
  70. package/dist/index-X9ZgD09V.cjs +1 -0
  71. package/dist/index-ehKdBRUK.js +18 -0
  72. package/dist/{label-e770a087.js → label-KaP7MRrs.js} +2 -2
  73. package/dist/{label-167415e5.cjs → label-tFm8HZdb.cjs} +1 -1
  74. package/dist/lib.cjs +1 -1
  75. package/dist/lib.d.ts +20 -13
  76. package/dist/lib.js +24 -23
  77. package/dist/{link-57de608a.js → link-6o6n2Tnd.js} +4 -4
  78. package/dist/link-ece8dZGH.cjs +1 -0
  79. package/dist/page-viewer-IARz6OSp.cjs +1 -0
  80. package/dist/{page-viewer-5c733179.js → page-viewer-Y4YiaZ_m.js} +30 -27
  81. package/dist/{popover-f7addcf4.js → popover-a84pbVhQ.js} +2 -2
  82. package/dist/{popover-7cb9079b.cjs → popover-fKjgcRUx.cjs} +1 -1
  83. package/dist/{project-general-setting-d9736056.js → project-general-setting-U4S_KlhU.js} +29 -25
  84. package/dist/project-general-setting-eSl3t-VH.cjs +1 -0
  85. package/dist/{project-seo-setting-d81fc1e3.js → project-seo-setting-Ga9v_ECU.js} +18 -19
  86. package/dist/project-seo-setting-rankm1z3.cjs +1 -0
  87. package/dist/render.cjs +1 -1
  88. package/dist/render.d.ts +7 -7
  89. package/dist/render.js +36 -36
  90. package/dist/{scroll-area-bb343b86.cjs → scroll-area-FiHvy-TZ.cjs} +1 -1
  91. package/dist/{scroll-area-83bd9e8f.js → scroll-area-ewXbxc3n.js} +2 -2
  92. package/dist/{select-0e32300c.cjs → select-7bjg-rr9.cjs} +1 -1
  93. package/dist/{select-7fddd7c3.js → select-POGdEDHT.js} +2 -2
  94. package/dist/{separator-a597dba7.cjs → separator-3Civ-6hb.cjs} +1 -1
  95. package/dist/{separator-a80d065b.js → separator-SctTn0Qi.js} +2 -2
  96. package/dist/server.cjs +1 -1
  97. package/dist/server.d.ts +7 -10
  98. package/dist/server.js +1 -4
  99. package/dist/{single-page-detail-04410e64.js → single-page-detail-pAxCy_Pe.js} +69 -65
  100. package/dist/single-page-detail-yPgnu2AI.cjs +1 -0
  101. package/dist/skeleton-CU_FIbg3.js +239 -0
  102. package/dist/skeleton-JHP9zwL2.cjs +1 -0
  103. package/dist/studio.cjs +1 -0
  104. package/dist/studio.d.ts +13 -0
  105. package/dist/studio.js +39 -0
  106. package/dist/{tabs-85caa1e8.js → tabs-Gb9v5dVb.js} +2 -2
  107. package/dist/{tabs-860e37aa.cjs → tabs-iWeaaVrg.cjs} +1 -1
  108. package/dist/{textarea-a338ede6.cjs → textarea-1kZEh7ki.cjs} +1 -1
  109. package/dist/{textarea-0750bcd2.js → textarea-b2QvVhrK.js} +2 -2
  110. package/dist/{toggle-00c9d11e.js → toggle-ASJRAaGP.js} +2 -2
  111. package/dist/{toggle-b90fed97.cjs → toggle-ehNIPmme.cjs} +1 -1
  112. package/dist/ui.cjs +1 -1
  113. package/dist/ui.d.ts +72 -7
  114. package/dist/ui.js +272 -212
  115. package/dist/useAddBlock-WJc3OgG8.js +86 -0
  116. package/dist/useAddBlock-dCKRFPRU.cjs +1 -0
  117. package/dist/useAllBlocks-6hvuNuyw.cjs +1 -0
  118. package/dist/useAllBlocks-PQKYvs-e.js +20 -0
  119. package/dist/useChaiExternalData-4K9WxANa.js +6 -0
  120. package/dist/useChaiExternalData-DkyBJ81C.cjs +1 -0
  121. package/dist/useDarkMode-ZKCO_gkt.js +23 -0
  122. package/dist/useDarkMode-dV6FM6l-.cjs +1 -0
  123. package/dist/useFeatureSupport-OLwNgEZb.js +16 -0
  124. package/dist/useFeatureSupport-c9IgPW2t.cjs +1 -0
  125. package/dist/useHiddenBlocks-3MsGOJ1s.js +15 -0
  126. package/dist/useHiddenBlocks-oJuQDmTy.cjs +1 -0
  127. package/dist/useLanguage-NKKKaxVM.cjs +1 -0
  128. package/dist/useLanguage-gVC5rxO5.js +216 -0
  129. package/dist/useMarkAsGlobalBlock-X73Vny8u.js +25 -0
  130. package/dist/useMarkAsGlobalBlock-ebBVGHg4.cjs +1 -0
  131. package/dist/useUiLibraries-4hPOi8DI.js +12 -0
  132. package/dist/useUiLibraries-9FhQCpKo.cjs +1 -0
  133. package/package.json +20 -6
  134. package/dist/AddBlocks-76275943.cjs +0 -3
  135. package/dist/BrandingOptions-d3b3309a.cjs +0 -1
  136. package/dist/CanvasArea-9f94cd28.cjs +0 -46
  137. package/dist/CurrentPage-edb509db.cjs +0 -1
  138. package/dist/Layers-ecba52c1.cjs +0 -1
  139. package/dist/MarkAsGlobalBlock-3a06a159.cjs +0 -1
  140. package/dist/PagesPanel-f4329082.cjs +0 -1
  141. package/dist/ProjectPanel-ce3116d3.cjs +0 -1
  142. package/dist/Settings-b6a2bef6.cjs +0 -1
  143. package/dist/SidePanels-2cc72c0b.cjs +0 -1
  144. package/dist/Topbar-3b9db9f3.cjs +0 -1
  145. package/dist/UnsplashImages-98c085c2.cjs +0 -1
  146. package/dist/UploadImages-61ef83ad.cjs +0 -1
  147. package/dist/add-page-modal-7f9ff733.cjs +0 -1
  148. package/dist/confirm-alert-c1fdf1e4.js +0 -35
  149. package/dist/confirm-alert-e1ea5110.cjs +0 -1
  150. package/dist/delete-page-modal-7066b01f.cjs +0 -1
  151. package/dist/html-to-json-aadcbf66.cjs +0 -1
  152. package/dist/index-c535cc95.cjs +0 -164
  153. package/dist/link-24679521.cjs +0 -1
  154. package/dist/page-viewer-da99c71e.cjs +0 -1
  155. package/dist/project-general-setting-90f8416d.cjs +0 -1
  156. package/dist/project-seo-setting-6eef8387.cjs +0 -1
  157. package/dist/single-page-detail-90f49d7a.cjs +0 -1
  158. package/dist/useBuilderProp-21feb2da.js +0 -296
  159. package/dist/useBuilderProp-adacf42f.cjs +0 -1
  160. package/dist/useChaiExternalData-192c7896.js +0 -5
  161. package/dist/useChaiExternalData-a90e8aac.cjs +0 -1
  162. /package/dist/{MODIFIERS-2f19c314.js → MODIFIERS-DsEzQ3aH.js} +0 -0
  163. /package/dist/{MODIFIERS-4716c669.cjs → MODIFIERS-Fx6WAZcw.cjs} +0 -0
  164. /package/dist/{jsx-runtime-5c3ac4f7.cjs → jsx-runtime-JYMCiFoE.cjs} +0 -0
  165. /package/dist/{jsx-runtime-944c88e2.js → jsx-runtime-Sp0orL4X.js} +0 -0
  166. /package/dist/{utils-ac68b2c8.js → utils-dze1SGvB.js} +0 -0
  167. /package/dist/{utils-3c452dd0.cjs → utils-qK_SjzzV.cjs} +0 -0
@@ -1,36 +1,36 @@
1
- import { j as t } from "./jsx-runtime-944c88e2.js";
2
- import y, { useState as I, useEffect as L } from "react";
3
- import { isEqual as P, isEmpty as C, isString as z, omit as j, kebabCase as B } from "lodash";
1
+ import { j as t } from "./jsx-runtime-Sp0orL4X.js";
2
+ import I, { useState as j, useEffect as z } from "react";
3
+ import { isEqual as x, isEmpty as C, isString as L, omit as y, kebabCase as B } from "lodash";
4
4
  import { HomeIcon as G } from "@radix-ui/react-icons";
5
- import { B as Y } from "./useBuilderProp-21feb2da.js";
6
- import { S as q } from "./scroll-area-83bd9e8f.js";
7
- import { SingleLineText as g, Model as Z, MultilineText as $, Image as F, Checkbox as Q } from "@chaibuilder/blocks";
5
+ import { B as Y } from "./skeleton-CU_FIbg3.js";
6
+ import { S as q } from "./scroll-area-ewXbxc3n.js";
7
+ import { u as g, b as Z, g as $, o as F, r as Q } from "./controls-enQY7NI8.js";
8
8
  import { toast as U } from "sonner";
9
- import { F as h } from "./form-25e1af37.js";
10
- import { a2 as V, R as X, a3 as _, S as K } from "./index-aa42febc.js";
11
- import "@radix-ui/react-alert-dialog";
12
- import "./utils-ac68b2c8.js";
13
- import "clsx";
14
- import "tailwind-merge";
9
+ import { F as P } from "./form-dVpOAyRl.js";
10
+ import { f as V, a as X, g as _, b as K } from "./index-T4_wfKl5.js";
11
+ import "jotai";
15
12
  import "@radix-ui/react-slot";
16
13
  import "class-variance-authority";
14
+ import "./utils-dze1SGvB.js";
15
+ import "clsx";
16
+ import "tailwind-merge";
17
17
  import "@radix-ui/react-tooltip";
18
18
  import "@radix-ui/react-toast";
19
- import "jotai";
20
19
  import "@radix-ui/react-scroll-area";
21
20
  import "@rjsf/core";
22
21
  import "@rjsf/validator-ajv8";
23
- import "./link-57de608a.js";
22
+ import "./link-6o6n2Tnd.js";
24
23
  import "react-icons-picker";
25
24
  import "react-dom";
26
- import "./dialog-18207bef.js";
25
+ import "./dialog-jrw9DF1f.js";
27
26
  import "@radix-ui/react-dialog";
28
- import "./ImagesPanel-47ac13c3.js";
29
- import "./tabs-85caa1e8.js";
27
+ import "./ImagesPanel-oaHOD-Ex.js";
28
+ import "./tabs-Gb9v5dVb.js";
30
29
  import "@radix-ui/react-tabs";
31
30
  import "react-quill";
32
31
  import "react-i18next";
33
- import "./MODIFIERS-2f19c314.js";
32
+ import "./ChaiBuilderEditor-hEuUONQ3.js";
33
+ import "./MODIFIERS-DsEzQ3aH.js";
34
34
  import "@floating-ui/react-dom";
35
35
  import "i18next";
36
36
  import "flagged";
@@ -38,40 +38,44 @@ import "react-dnd";
38
38
  import "@minoru/react-dnd-treeview";
39
39
  import "react-hotkeys-hook";
40
40
  import "flat-to-nested";
41
- import "./html-to-json-45e0e3b5.js";
42
- import "himalaya";
41
+ import "./functions-pcUZhFJM.js";
43
42
  import "redux-undo";
44
43
  import "@react-hookz/web";
44
+ import "./index-ehKdBRUK.js";
45
+ import "./html-to-json-pdHQfRkN.js";
46
+ import "himalaya";
45
47
  import "lucide-react";
46
- const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(() => import("./confirm-alert-c1fdf1e4.js")), x = (n) => {
47
- if (!z(n) || !(n.includes("/[") && n.includes("]")))
48
+ import "./alert-dialog-GNfnpqFB.js";
49
+ import "@radix-ui/react-alert-dialog";
50
+ const O = I.lazy(() => import("./delete-page-modal-cnrR8tWH.js")), J = I.lazy(() => import("./confirm-alert-b0e_BLhF.js")), h = (r) => {
51
+ if (!L(r) || !(r.includes("/[") && r.includes("]")))
48
52
  return !1;
49
53
  const s = /^\[((?:\.{3})?[a-zA-Z0-9_-]+)\]$/, u = /^[a-zA-Z0-9_-]+$/;
50
54
  let e = !0;
51
- return n.split("/").forEach((r) => {
52
- e && (r.includes("[[") && r.includes("]]") ? e = /^\[\[\.{3}[a-zA-Z0-9_-]+\]\]$/.test(r) : r.includes("[") && r.includes("]") ? e = s.test(r) : e = u.test(r));
55
+ return r.split("/").forEach((n) => {
56
+ e && (n.includes("[[") && n.includes("]]") ? e = /^\[\[\.{3}[a-zA-Z0-9_-]+\]\]$/.test(n) : n.includes("[") && n.includes("]") ? e = s.test(n) : e = u.test(n));
53
57
  }), e;
54
- }, f = (n) => n && C(n.seoData) ? {
55
- ...n,
58
+ }, f = (r) => r && C(r.seoData) ? {
59
+ ...r,
56
60
  seoData: { title: "", description: "", image: "" }
57
- } : n, W = (n, l) => {
58
- const s = !P(j(n, ["seoData"]), j(l, ["seoData"])), u = !P(f(l).seoData, f(n).seoData);
61
+ } : r, W = (r, l) => {
62
+ const s = !x(y(r, ["seoData"]), y(l, ["seoData"])), u = !x(f(l).seoData, f(r).seoData);
59
63
  return s || u;
60
- }, Qe = ({ open: n, setOpen: l, pageData: s }) => {
61
- const u = V(), { data: e } = X(), r = _(), c = K("Homepage updated successfully."), [i, T] = I(f(s)), [d, M] = I({
64
+ }, _e = ({ open: r, setOpen: l, pageData: s }) => {
65
+ const u = V(), { data: e } = X(), n = _(), c = K("Homepage updated successfully."), [i, T] = j(f(s)), [d, v] = j({
62
66
  isHomePage: (e == null ? void 0 : e.homepage) === s.uuid
63
- }), S = W(i, s);
64
- L(() => {
65
- const m = !P(f(s), i), o = (e == null ? void 0 : e.homepage) !== s.uuid && d.isHomePage;
67
+ }), N = W(i, s);
68
+ z(() => {
69
+ const m = !x(f(s), i), o = (e == null ? void 0 : e.homepage) !== s.uuid && d.isHomePage;
66
70
  l(m || o ? "PENDING" : "OPEN");
67
71
  }, [e, s, i, d, l]);
68
- const N = () => {
69
- if (S) {
70
- if (s.type === "DYNAMIC" && !x((i == null ? void 0 : i.slug) || "")) {
71
- n === "ALERT" && l("PENDING");
72
+ const S = () => {
73
+ if (N) {
74
+ if (s.type === "DYNAMIC" && !h((i == null ? void 0 : i.slug) || "")) {
75
+ r === "ALERT" && l("PENDING");
72
76
  return;
73
77
  }
74
- r.mutate(i, {
78
+ n.mutate(i, {
75
79
  onSuccess: () => {
76
80
  u.invalidateQueries({
77
81
  refetchType: "active",
@@ -81,13 +85,13 @@ const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(()
81
85
  });
82
86
  }
83
87
  d.isHomePage && (e == null ? void 0 : e.homepage) !== s.uuid && c.mutate({ ...e, homepage: s == null ? void 0 : s.uuid }, { onSuccess: () => l("CLOSE") });
84
- }, E = ({ formData: m }, o) => {
88
+ }, b = ({ formData: m }, o) => {
85
89
  T((p) => {
86
- var b, A;
90
+ var E, A;
87
91
  if (!o)
88
92
  return p;
89
93
  const a = { [o]: m[o] };
90
- return o === "name" ? a.slug = B((b = m[o]) == null ? void 0 : b.replace(/\d/g, "")) : o === "slug" ? a.slug = (A = m[o]) == null ? void 0 : A.replace(/\d/g, "").replace(/\s+/g, "").replace("--", "-").replace("__", "_") : o === "seoData" && (a.seoData = {
94
+ return o === "name" ? a.slug = B((E = m[o]) == null ? void 0 : E.replace(/\d/g, "")) : o === "slug" ? a.slug = (A = m[o]) == null ? void 0 : A.replace(/\d/g, "").replace(/\s+/g, "").replace("--", "-").replace("__", "_") : o === "seoData" && (a.seoData = {
91
95
  title: m[o].title || "",
92
96
  description: m[o].description || "",
93
97
  image: m[o].image || ""
@@ -96,21 +100,21 @@ const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(()
96
100
  ...a
97
101
  };
98
102
  });
99
- }, v = ({ formData: m }, o) => {
100
- M((p) => {
103
+ }, H = ({ formData: m }, o) => {
104
+ v((p) => {
101
105
  const a = { [o]: m[o] };
102
106
  return {
103
107
  ...p,
104
108
  ...a
105
109
  };
106
110
  });
107
- }, H = {
111
+ }, M = {
108
112
  name: g({
109
113
  title: "Page Name",
110
114
  default: i.name
111
115
  }),
112
116
  slug: g({ title: "Page Slug", default: i.slug })
113
- }, R = {
117
+ }, w = {
114
118
  seoData: Z({
115
119
  title: "",
116
120
  description: "",
@@ -131,7 +135,7 @@ const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(()
131
135
  image: F({ title: "Social Media Image", default: "" })
132
136
  }
133
137
  })
134
- }, w = {
138
+ }, R = {
135
139
  isHomePage: Q({
136
140
  title: "Set as homepage",
137
141
  default: d.isHomePage
@@ -141,50 +145,50 @@ const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(()
141
145
  /* @__PURE__ */ t.jsx(
142
146
  J,
143
147
  {
144
- open: n === "ALERT",
148
+ open: r === "ALERT",
145
149
  title: "Do yo want to save changes?",
146
150
  onCancel: () => l("CLOSE"),
147
- onConfirm: N,
148
- disabled: c.isPending || r.isPending
151
+ onConfirm: S,
152
+ disabled: c.isPending || n.isPending
149
153
  }
150
154
  ),
151
155
  /* @__PURE__ */ t.jsx("div", { className: "rounded-md bg-background/30 px-2.5 py-1", children: /* @__PURE__ */ t.jsx("h1", { className: "px-1 font-semibold", children: "Page Details" }) }),
152
156
  /* @__PURE__ */ t.jsx("div", { className: "px-2.5 pt-2", children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col space-y-2", children: [
153
157
  /* @__PURE__ */ t.jsx(
154
- h,
158
+ P,
155
159
  {
156
160
  title: "Basic Details",
157
161
  formData: i,
158
- properties: H,
159
- onChange: E,
160
- disabled: r.isPending || c.isPending
162
+ properties: M,
163
+ onChange: b,
164
+ disabled: n.isPending || c.isPending
161
165
  }
162
166
  ),
163
167
  /* @__PURE__ */ t.jsx("div", { className: "h-2 w-full" }),
164
168
  /* @__PURE__ */ t.jsx(
165
- h,
169
+ P,
166
170
  {
167
171
  title: "SEO Details",
168
172
  formData: i,
169
- properties: R,
170
- onChange: E,
171
- disabled: r.isPending || c.isPending
173
+ properties: w,
174
+ onChange: b,
175
+ disabled: n.isPending || c.isPending
172
176
  }
173
177
  ),
174
178
  (e == null ? void 0 : e.homepage) !== s.uuid && s.type === "STATIC" ? /* @__PURE__ */ t.jsx(
175
- h,
179
+ P,
176
180
  {
177
181
  formData: d,
178
- properties: w,
179
- onChange: v,
180
- disabled: r.isPending || c.isPending
182
+ properties: R,
183
+ onChange: H,
184
+ disabled: n.isPending || c.isPending
181
185
  }
182
186
  ) : s.type === "STATIC" && /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-x-1 px-1 pt-2 text-xs font-medium text-gray-500", children: [
183
187
  /* @__PURE__ */ t.jsx(G, {}),
184
188
  " This is homepage",
185
189
  " "
186
190
  ] }),
187
- i.type === "DYNAMIC" && !x((i == null ? void 0 : i.slug) || "") && /* @__PURE__ */ t.jsxs("small", { className: "px-1 text-red-400", children: [
191
+ i.type === "DYNAMIC" && !h((i == null ? void 0 : i.slug) || "") && /* @__PURE__ */ t.jsxs("small", { className: "px-1 text-red-400", children: [
188
192
  "Add dynamic ID in page slug Eg: ",
189
193
  /* @__PURE__ */ t.jsx("i", { className: "underline", children: "some-url/[some-id]" })
190
194
  ] }),
@@ -194,8 +198,8 @@ const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(()
194
198
  {
195
199
  className: "w-full",
196
200
  type: "submit",
197
- onClick: N,
198
- disabled: (e == null ? void 0 : e.homepage) !== s.uuid && d.isHomePage ? !1 : C(i.name) || C(i.slug) || !S || r.isPending || c.isPending || i.type === "DYNAMIC" && !x((i == null ? void 0 : i.slug) || ""),
201
+ onClick: S,
202
+ disabled: (e == null ? void 0 : e.homepage) !== s.uuid && d.isHomePage ? !1 : C(i.name) || C(i.slug) || !N || n.isPending || c.isPending || i.type === "DYNAMIC" && !h((i == null ? void 0 : i.slug) || ""),
199
203
  children: "Save"
200
204
  }
201
205
  ),
@@ -205,5 +209,5 @@ const O = y.lazy(() => import("./delete-page-modal-9b37665b.js")), J = y.lazy(()
205
209
  ] });
206
210
  };
207
211
  export {
208
- Qe as default
212
+ _e as default
209
213
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./jsx-runtime-JYMCiFoE.cjs"),f=require("react"),c=require("lodash"),M=require("@radix-ui/react-icons"),H=require("./skeleton-JHP9zwL2.cjs"),w=require("./scroll-area-FiHvy-TZ.cjs"),d=require("./controls-W97-POR_.cjs"),z=require("sonner"),p=require("./form-nRAvKPQj.cjs"),P=require("./index-X9ZgD09V.cjs");require("jotai");require("@radix-ui/react-slot");require("class-variance-authority");require("./utils-qK_SjzzV.cjs");require("clsx");require("tailwind-merge");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("@radix-ui/react-scroll-area");require("@rjsf/core");require("@rjsf/validator-ajv8");require("./link-ece8dZGH.cjs");require("react-icons-picker");require("react-dom");require("./dialog-S_QbL1iq.cjs");require("@radix-ui/react-dialog");require("./ImagesPanel-6us7hiLN.cjs");require("./tabs-iWeaaVrg.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./ChaiBuilderEditor-BoE-sArB.cjs");require("./MODIFIERS-Fx6WAZcw.cjs");require("@floating-ui/react-dom");require("i18next");require("flagged");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("flat-to-nested");require("./functions-uw7QP2kT.cjs");require("redux-undo");require("@react-hookz/web");require("./index-HAue58ea.cjs");require("./html-to-json-P6GpbcQX.cjs");require("himalaya");require("lucide-react");require("./alert-dialog-Mv0-wAvS.cjs");require("@radix-ui/react-alert-dialog");const L=f.lazy(()=>Promise.resolve().then(()=>require("./delete-page-modal-2LuDLEiP.cjs"))),G=f.lazy(()=>Promise.resolve().then(()=>require("./confirm-alert-8EHe0OOd.cjs"))),E=n=>{if(!c.isString(n)||!(n.includes("/[")&&n.includes("]")))return!1;const i=/^\[((?:\.{3})?[a-zA-Z0-9_-]+)\]$/,q=/^[a-zA-Z0-9_-]+$/;let e=!0;return n.split("/").forEach(u=>{e&&(u.includes("[[")&&u.includes("]]")?e=/^\[\[\.{3}[a-zA-Z0-9_-]+\]\]$/.test(u):u.includes("[")&&u.includes("]")?e=i.test(u):e=q.test(u))}),e},h=n=>n&&c.isEmpty(n.seoData)?{...n,seoData:{title:"",description:"",image:""}}:n,Y=(n,o)=>{const i=!c.isEqual(c.omit(n,["seoData"]),c.omit(o,["seoData"])),q=!c.isEqual(h(o).seoData,h(n).seoData);return i||q},B=({open:n,setOpen:o,pageData:i})=>{const q=P.useQueryClient(),{data:e}=P.useProject(),u=P.useUpdatePage(),m=P.useUpdateProject("Homepage updated successfully."),[s,y]=f.useState(h(i)),[a,b]=f.useState({isHomePage:(e==null?void 0:e.homepage)===i.uuid}),j=Y(s,i);f.useEffect(()=>{const l=!c.isEqual(h(i),s),t=(e==null?void 0:e.homepage)!==i.uuid&&a.isHomePage;o(l||t?"PENDING":"OPEN")},[e,i,s,a,o]);const C=()=>{if(j){if(i.type==="DYNAMIC"&&!E((s==null?void 0:s.slug)||"")){n==="ALERT"&&o("PENDING");return}u.mutate(s,{onSuccess:()=>{q.invalidateQueries({refetchType:"active",queryKey:["pages",e==null?void 0:e.uuid]}),o("CLOSE"),z.toast.success("Page updated successfully.")}})}a.isHomePage&&(e==null?void 0:e.homepage)!==i.uuid&&m.mutate({...e,homepage:i==null?void 0:i.uuid},{onSuccess:()=>o("CLOSE")})},R=({formData:l},t)=>{y(g=>{var S,N;if(!t)return g;const x={[t]:l[t]};return t==="name"?x.slug=c.kebabCase((S=l[t])==null?void 0:S.replace(/\d/g,"")):t==="slug"?x.slug=(N=l[t])==null?void 0:N.replace(/\d/g,"").replace(/\s+/g,"").replace("--","-").replace("__","_"):t==="seoData"&&(x.seoData={title:l[t].title||"",description:l[t].description||"",image:l[t].image||""}),{...g,...x}})},A=({formData:l},t)=>{b(g=>{const x={[t]:l[t]};return{...g,...x}})},I={name:d.u({title:"Page Name",default:s.name}),slug:d.u({title:"Page Slug",default:s.slug})},v={seoData:d.b({title:"",description:"",default:{title:"",description:"",image:""},properties:{title:d.u({title:"Meta Title",default:s.name}),description:d.g({title:"Meta Description",default:s.slug}),image:d.o({title:"Social Media Image",default:""})}})},T={isHomePage:d.r({title:"Set as homepage",default:a.isHomePage})};return r.jsxRuntimeExports.jsxs(w.ScrollArea,{className:"flex h-full select-none flex-col",children:[r.jsxRuntimeExports.jsx(G,{open:n==="ALERT",title:"Do yo want to save changes?",onCancel:()=>o("CLOSE"),onConfirm:C,disabled:m.isPending||u.isPending}),r.jsxRuntimeExports.jsx("div",{className:"rounded-md bg-background/30 px-2.5 py-1",children:r.jsxRuntimeExports.jsx("h1",{className:"px-1 font-semibold",children:"Page Details"})}),r.jsxRuntimeExports.jsx("div",{className:"px-2.5 pt-2",children:r.jsxRuntimeExports.jsxs("div",{className:"flex flex-col space-y-2",children:[r.jsxRuntimeExports.jsx(p.Form,{title:"Basic Details",formData:s,properties:I,onChange:R,disabled:u.isPending||m.isPending}),r.jsxRuntimeExports.jsx("div",{className:"h-2 w-full"}),r.jsxRuntimeExports.jsx(p.Form,{title:"SEO Details",formData:s,properties:v,onChange:R,disabled:u.isPending||m.isPending}),(e==null?void 0:e.homepage)!==i.uuid&&i.type==="STATIC"?r.jsxRuntimeExports.jsx(p.Form,{formData:a,properties:T,onChange:A,disabled:u.isPending||m.isPending}):i.type==="STATIC"&&r.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-1 px-1 pt-2 text-xs font-medium text-gray-500",children:[r.jsxRuntimeExports.jsx(M.HomeIcon,{})," This is homepage"," "]}),s.type==="DYNAMIC"&&!E((s==null?void 0:s.slug)||"")&&r.jsxRuntimeExports.jsxs("small",{className:"px-1 text-red-400",children:["Add dynamic ID in page slug Eg: ",r.jsxRuntimeExports.jsx("i",{className:"underline",children:"some-url/[some-id]"})]}),r.jsxRuntimeExports.jsxs("div",{className:"my-2 flex w-full items-center justify-between gap-x-2 px-1",children:[r.jsxRuntimeExports.jsx(H.Button,{className:"w-full",type:"submit",onClick:C,disabled:(e==null?void 0:e.homepage)!==i.uuid&&a.isHomePage?!1:c.isEmpty(s.name)||c.isEmpty(s.slug)||!j||u.isPending||m.isPending||s.type==="DYNAMIC"&&!E((s==null?void 0:s.slug)||""),children:"Save"}),r.jsxRuntimeExports.jsx(L,{pageData:i,projectData:e})]})]})})]})};exports.default=B;
@@ -0,0 +1,239 @@
1
+ import { atom as x, useAtomValue as j } from "jotai";
2
+ import { get as R } from "lodash";
3
+ import { j as r } from "./jsx-runtime-Sp0orL4X.js";
4
+ import { Slot as E } from "@radix-ui/react-slot";
5
+ import { cva as h } from "class-variance-authority";
6
+ import * as i from "react";
7
+ import { c as n } from "./utils-dze1SGvB.js";
8
+ import * as c from "@radix-ui/react-tooltip";
9
+ import { Cross2Icon as O } from "@radix-ui/react-icons";
10
+ import * as a from "@radix-ui/react-toast";
11
+ const T = x(null);
12
+ T.debugLabel = "chaiBuilderPropsAtom";
13
+ const D = x({});
14
+ D.debugLabel = "chaiExternalDataAtom";
15
+ const K = (t, e = void 0) => {
16
+ const o = j(T);
17
+ return R(o, t, e);
18
+ }, P = h(
19
+ "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
20
+ {
21
+ variants: {
22
+ variant: {
23
+ default: "bg-primary text-primary-foreground shadow hover:bg-primary/90",
24
+ destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
25
+ outline: "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
26
+ secondary: "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
27
+ ghost: "hover:bg-accent hover:text-accent-foreground",
28
+ link: "text-primary underline-offset-4 hover:underline"
29
+ },
30
+ size: {
31
+ default: "h-9 px-4 py-2",
32
+ sm: "h-8 rounded-md px-3 text-xs",
33
+ lg: "h-10 rounded-md px-8",
34
+ icon: "h-9 w-9"
35
+ }
36
+ },
37
+ defaultVariants: {
38
+ variant: "default",
39
+ size: "default"
40
+ }
41
+ }
42
+ ), _ = i.forwardRef(
43
+ ({ className: t, variant: e, size: o, asChild: s = !1, ...d }, p) => {
44
+ const A = s ? E : "button";
45
+ return /* @__PURE__ */ r.jsx(A, { className: n(P({ variant: e, size: o, className: t })), ref: p, ...d });
46
+ }
47
+ );
48
+ _.displayName = "Button";
49
+ const W = c.Portal, Z = c.Provider, $ = c.Root, tt = c.Trigger, V = i.forwardRef(({ className: t, sideOffset: e = 4, ...o }, s) => /* @__PURE__ */ r.jsx(
50
+ c.Content,
51
+ {
52
+ ref: s,
53
+ sideOffset: e,
54
+ className: n(
55
+ "z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
56
+ t
57
+ ),
58
+ ...o
59
+ }
60
+ ));
61
+ V.displayName = c.Content.displayName;
62
+ const I = 1, C = 1e6;
63
+ let f = 0;
64
+ function M() {
65
+ return f = (f + 1) % Number.MAX_VALUE, f.toString();
66
+ }
67
+ const v = /* @__PURE__ */ new Map(), g = (t) => {
68
+ if (v.has(t))
69
+ return;
70
+ const e = setTimeout(() => {
71
+ v.delete(t), u({
72
+ type: "REMOVE_TOAST",
73
+ toastId: t
74
+ });
75
+ }, C);
76
+ v.set(t, e);
77
+ }, z = (t, e) => {
78
+ switch (e.type) {
79
+ case "ADD_TOAST":
80
+ return {
81
+ ...t,
82
+ toasts: [e.toast, ...t.toasts].slice(0, I)
83
+ };
84
+ case "UPDATE_TOAST":
85
+ return {
86
+ ...t,
87
+ toasts: t.toasts.map((o) => o.id === e.toast.id ? { ...o, ...e.toast } : o)
88
+ };
89
+ case "DISMISS_TOAST": {
90
+ const { toastId: o } = e;
91
+ return o ? g(o) : t.toasts.forEach((s) => {
92
+ g(s.id);
93
+ }), {
94
+ ...t,
95
+ toasts: t.toasts.map(
96
+ (s) => s.id === o || o === void 0 ? {
97
+ ...s,
98
+ open: !1
99
+ } : s
100
+ )
101
+ };
102
+ }
103
+ case "REMOVE_TOAST":
104
+ return e.toastId === void 0 ? {
105
+ ...t,
106
+ toasts: []
107
+ } : {
108
+ ...t,
109
+ toasts: t.toasts.filter((o) => o.id !== e.toastId)
110
+ };
111
+ }
112
+ }, l = [];
113
+ let m = { toasts: [] };
114
+ function u(t) {
115
+ m = z(m, t), l.forEach((e) => {
116
+ e(m);
117
+ });
118
+ }
119
+ function B({ ...t }) {
120
+ const e = M(), o = (d) => u({
121
+ type: "UPDATE_TOAST",
122
+ toast: { ...d, id: e }
123
+ }), s = () => u({ type: "DISMISS_TOAST", toastId: e });
124
+ return u({
125
+ type: "ADD_TOAST",
126
+ toast: {
127
+ ...t,
128
+ id: e,
129
+ open: !0,
130
+ onOpenChange: (d) => {
131
+ d || s();
132
+ }
133
+ }
134
+ }), {
135
+ id: e,
136
+ dismiss: s,
137
+ update: o
138
+ };
139
+ }
140
+ function k() {
141
+ const [t, e] = i.useState(m);
142
+ return i.useEffect(() => (l.push(e), () => {
143
+ const o = l.indexOf(e);
144
+ o > -1 && l.splice(o, 1);
145
+ }), [t]), {
146
+ ...t,
147
+ toast: B,
148
+ dismiss: (o) => u({ type: "DISMISS_TOAST", toastId: o })
149
+ };
150
+ }
151
+ const L = a.Provider, b = i.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r.jsx(
152
+ a.Viewport,
153
+ {
154
+ ref: o,
155
+ className: n(
156
+ "fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
157
+ t
158
+ ),
159
+ ...e
160
+ }
161
+ ));
162
+ b.displayName = a.Viewport.displayName;
163
+ const U = h(
164
+ "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
165
+ {
166
+ variants: {
167
+ variant: {
168
+ default: "border bg-background",
169
+ destructive: "destructive group border-destructive bg-destructive text-destructive-foreground"
170
+ }
171
+ },
172
+ defaultVariants: {
173
+ variant: "default"
174
+ }
175
+ }
176
+ ), y = i.forwardRef(({ className: t, variant: e, ...o }, s) => /* @__PURE__ */ r.jsx(a.Root, { ref: s, className: n(U({ variant: e }), t), ...o }));
177
+ y.displayName = a.Root.displayName;
178
+ const Q = i.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r.jsx(
179
+ a.Action,
180
+ {
181
+ ref: o,
182
+ className: n(
183
+ "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
184
+ t
185
+ ),
186
+ ...e
187
+ }
188
+ ));
189
+ Q.displayName = a.Action.displayName;
190
+ const w = i.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r.jsx(
191
+ a.Close,
192
+ {
193
+ ref: o,
194
+ className: n(
195
+ "absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
196
+ t
197
+ ),
198
+ "toast-close": "",
199
+ ...e,
200
+ children: /* @__PURE__ */ r.jsx(O, { className: "h-4 w-4" })
201
+ }
202
+ ));
203
+ w.displayName = a.Close.displayName;
204
+ const N = i.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r.jsx(a.Title, { ref: o, className: n("text-sm font-semibold [&+div]:text-xs", t), ...e }));
205
+ N.displayName = a.Title.displayName;
206
+ const S = i.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r.jsx(a.Description, { ref: o, className: n("text-sm opacity-90", t), ...e }));
207
+ S.displayName = a.Description.displayName;
208
+ function et() {
209
+ const { toasts: t } = k();
210
+ return /* @__PURE__ */ r.jsxs(L, { children: [
211
+ t.map(({ id: e, title: o, description: s, action: d, ...p }) => /* @__PURE__ */ r.jsxs(y, { ...p, children: [
212
+ /* @__PURE__ */ r.jsxs("div", { className: "grid gap-1", children: [
213
+ o && /* @__PURE__ */ r.jsx(N, { children: o }),
214
+ s && /* @__PURE__ */ r.jsx(S, { children: s })
215
+ ] }),
216
+ d,
217
+ /* @__PURE__ */ r.jsx(w, {})
218
+ ] }, e)),
219
+ /* @__PURE__ */ r.jsx(b, {})
220
+ ] });
221
+ }
222
+ const ot = ({ className: t, ...e }) => /* @__PURE__ */ r.jsx("div", { className: n("animate-pulse rounded-md bg-primary/10", t), ...e });
223
+ export {
224
+ _ as B,
225
+ ot as S,
226
+ $ as T,
227
+ tt as a,
228
+ P as b,
229
+ V as c,
230
+ Z as d,
231
+ W as e,
232
+ k as f,
233
+ et as g,
234
+ T as h,
235
+ D as i,
236
+ z as r,
237
+ B as t,
238
+ K as u
239
+ };
@@ -0,0 +1 @@
1
+ "use strict";const g=require("jotai"),I=require("lodash"),r=require("./jsx-runtime-JYMCiFoE.cjs"),q=require("@radix-ui/react-slot"),b=require("class-variance-authority"),C=require("react"),n=require("./utils-qK_SjzzV.cjs"),M=require("@radix-ui/react-tooltip"),B=require("@radix-ui/react-icons"),k=require("@radix-ui/react-toast");function v(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(e,o,s.get?s:{enumerable:!0,get:()=>t[o]})}}return e.default=t,Object.freeze(e)}const i=v(C),c=v(M),a=v(k),T=g.atom(null);T.debugLabel="chaiBuilderPropsAtom";const y=g.atom({});y.debugLabel="chaiExternalDataAtom";const z=(t,e=void 0)=>{const o=g.useAtomValue(T);return I.get(o,t,e)},j=b.cva("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),R=i.forwardRef(({className:t,variant:e,size:o,asChild:s=!1,...d},m)=>{const V=s?q.Slot:"button";return r.jsxRuntimeExports.jsx(V,{className:n.cn(j({variant:e,size:o,className:t})),ref:m,...d})});R.displayName="Button";const L=c.Portal,U=c.Provider,Q=c.Root,X=c.Trigger,w=i.forwardRef(({className:t,sideOffset:e=4,...o},s)=>r.jsxRuntimeExports.jsx(c.Content,{ref:s,sideOffset:e,className:n.cn("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...o}));w.displayName=c.Content.displayName;const Y=1,F=1e6;let f=0;function G(){return f=(f+1)%Number.MAX_VALUE,f.toString()}const x=new Map,h=t=>{if(x.has(t))return;const e=setTimeout(()=>{x.delete(t),u({type:"REMOVE_TOAST",toastId:t})},F);x.set(t,e)},E=(t,e)=>{switch(e.type){case"ADD_TOAST":return{...t,toasts:[e.toast,...t.toasts].slice(0,Y)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(o=>o.id===e.toast.id?{...o,...e.toast}:o)};case"DISMISS_TOAST":{const{toastId:o}=e;return o?h(o):t.toasts.forEach(s=>{h(s.id)}),{...t,toasts:t.toasts.map(s=>s.id===o||o===void 0?{...s,open:!1}:s)}}case"REMOVE_TOAST":return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(o=>o.id!==e.toastId)}}},l=[];let p={toasts:[]};function u(t){p=E(p,t),l.forEach(e=>{e(p)})}function S({...t}){const e=G(),o=d=>u({type:"UPDATE_TOAST",toast:{...d,id:e}}),s=()=>u({type:"DISMISS_TOAST",toastId:e});return u({type:"ADD_TOAST",toast:{...t,id:e,open:!0,onOpenChange:d=>{d||s()}}}),{id:e,dismiss:s,update:o}}function A(){const[t,e]=i.useState(p);return i.useEffect(()=>(l.push(e),()=>{const o=l.indexOf(e);o>-1&&l.splice(o,1)}),[t]),{...t,toast:S,dismiss:o=>u({type:"DISMISS_TOAST",toastId:o})}}const H=a.Provider,N=i.forwardRef(({className:t,...e},o)=>r.jsxRuntimeExports.jsx(a.Viewport,{ref:o,className:n.cn("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",t),...e}));N.displayName=a.Viewport.displayName;const J=b.cva("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),P=i.forwardRef(({className:t,variant:e,...o},s)=>r.jsxRuntimeExports.jsx(a.Root,{ref:s,className:n.cn(J({variant:e}),t),...o}));P.displayName=a.Root.displayName;const K=i.forwardRef(({className:t,...e},o)=>r.jsxRuntimeExports.jsx(a.Action,{ref:o,className:n.cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",t),...e}));K.displayName=a.Action.displayName;const O=i.forwardRef(({className:t,...e},o)=>r.jsxRuntimeExports.jsx(a.Close,{ref:o,className:n.cn("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",t),"toast-close":"",...e,children:r.jsxRuntimeExports.jsx(B.Cross2Icon,{className:"h-4 w-4"})}));O.displayName=a.Close.displayName;const _=i.forwardRef(({className:t,...e},o)=>r.jsxRuntimeExports.jsx(a.Title,{ref:o,className:n.cn("text-sm font-semibold [&+div]:text-xs",t),...e}));_.displayName=a.Title.displayName;const D=i.forwardRef(({className:t,...e},o)=>r.jsxRuntimeExports.jsx(a.Description,{ref:o,className:n.cn("text-sm opacity-90",t),...e}));D.displayName=a.Description.displayName;function W(){const{toasts:t}=A();return r.jsxRuntimeExports.jsxs(H,{children:[t.map(({id:e,title:o,description:s,action:d,...m})=>r.jsxRuntimeExports.jsxs(P,{...m,children:[r.jsxRuntimeExports.jsxs("div",{className:"grid gap-1",children:[o&&r.jsxRuntimeExports.jsx(_,{children:o}),s&&r.jsxRuntimeExports.jsx(D,{children:s})]}),d,r.jsxRuntimeExports.jsx(O,{})]},e)),r.jsxRuntimeExports.jsx(N,{})]})}const Z=({className:t,...e})=>r.jsxRuntimeExports.jsx("div",{className:n.cn("animate-pulse rounded-md bg-primary/10",t),...e});exports.Button=R;exports.Skeleton=Z;exports.Toaster=W;exports.Tooltip=Q;exports.TooltipContent=w;exports.TooltipPortal=L;exports.TooltipProvider=U;exports.TooltipTrigger=X;exports.buttonVariants=j;exports.chaiBuilderPropsAtom=T;exports.chaiExternalDataAtom=y;exports.reducer=E;exports.toast=S;exports.useBuilderProp=z;exports.useToast=A;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./jsx-runtime-JYMCiFoE.cjs");const e=require("./index-X9ZgD09V.cjs");require("react");require("sonner");require("./ChaiBuilderEditor-BoE-sArB.cjs");require("./MODIFIERS-Fx6WAZcw.cjs");require("clsx");require("@radix-ui/react-scroll-area");require("react-dom");require("@floating-ui/react-dom");require("jotai");require("i18next");require("react-i18next");require("flagged");require("react-dnd");require("lodash");require("@minoru/react-dnd-treeview");require("./skeleton-JHP9zwL2.cjs");require("@radix-ui/react-slot");require("class-variance-authority");require("./utils-qK_SjzzV.cjs");require("tailwind-merge");require("@radix-ui/react-tooltip");require("@radix-ui/react-icons");require("@radix-ui/react-toast");require("react-hotkeys-hook");require("flat-to-nested");require("./functions-uw7QP2kT.cjs");require("redux-undo");require("@react-hookz/web");require("./index-HAue58ea.cjs");require("./html-to-json-P6GpbcQX.cjs");require("himalaya");require("lucide-react");require("./alert-dialog-Mv0-wAvS.cjs");require("@radix-ui/react-alert-dialog");exports.ChaiBuilderStudio=e.ChaiBuilderStudio;
@@ -0,0 +1,13 @@
1
+ import { JSX as JSX_2 } from 'react/jsx-runtime';
2
+ import { default as React_2 } from 'react';
3
+
4
+ export declare const ChaiBuilderStudio: (props: ChaiBuilderStudioProps) => JSX_2.Element;
5
+
6
+ export declare type ChaiBuilderStudioProps = {
7
+ apiBaseUrl?: string;
8
+ logo?: React_2.FC<any> | React_2.LazyExoticComponent<any>;
9
+ darkMode?: boolean;
10
+ unsplashAccessKey?: string;
11
+ };
12
+
13
+ export { }
package/dist/studio.js ADDED
@@ -0,0 +1,39 @@
1
+ import "./jsx-runtime-Sp0orL4X.js";
2
+ import { C as K } from "./index-T4_wfKl5.js";
3
+ import "react";
4
+ import "sonner";
5
+ import "./ChaiBuilderEditor-hEuUONQ3.js";
6
+ import "./MODIFIERS-DsEzQ3aH.js";
7
+ import "clsx";
8
+ import "@radix-ui/react-scroll-area";
9
+ import "react-dom";
10
+ import "@floating-ui/react-dom";
11
+ import "jotai";
12
+ import "i18next";
13
+ import "react-i18next";
14
+ import "flagged";
15
+ import "react-dnd";
16
+ import "lodash";
17
+ import "@minoru/react-dnd-treeview";
18
+ import "./skeleton-CU_FIbg3.js";
19
+ import "@radix-ui/react-slot";
20
+ import "class-variance-authority";
21
+ import "./utils-dze1SGvB.js";
22
+ import "tailwind-merge";
23
+ import "@radix-ui/react-tooltip";
24
+ import "@radix-ui/react-icons";
25
+ import "@radix-ui/react-toast";
26
+ import "react-hotkeys-hook";
27
+ import "flat-to-nested";
28
+ import "./functions-pcUZhFJM.js";
29
+ import "redux-undo";
30
+ import "@react-hookz/web";
31
+ import "./index-ehKdBRUK.js";
32
+ import "./html-to-json-pdHQfRkN.js";
33
+ import "himalaya";
34
+ import "lucide-react";
35
+ import "./alert-dialog-GNfnpqFB.js";
36
+ import "@radix-ui/react-alert-dialog";
37
+ export {
38
+ K as ChaiBuilderStudio
39
+ };
@@ -1,7 +1,7 @@
1
- import { j as a } from "./jsx-runtime-944c88e2.js";
1
+ import { j as a } from "./jsx-runtime-Sp0orL4X.js";
2
2
  import * as o from "react";
3
3
  import * as e from "@radix-ui/react-tabs";
4
- import { c as n } from "./utils-ac68b2c8.js";
4
+ import { c as n } from "./utils-dze1SGvB.js";
5
5
  const m = e.Root, r = o.forwardRef(({ className: s, ...i }, t) => /* @__PURE__ */ a.jsx(
6
6
  e.List,
7
7
  {
@@ -1 +1 @@
1
- "use strict";const n=require("./jsx-runtime-5c3ac4f7.cjs"),d=require("react"),b=require("@radix-ui/react-tabs"),a=require("./utils-3c452dd0.cjs");function c(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const r=c(d),i=c(b),g=i.Root,u=r.forwardRef(({className:e,...s},t)=>n.jsxRuntimeExports.jsx(i.List,{ref:t,className:a.cn("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...s}));u.displayName=i.List.displayName;const f=r.forwardRef(({className:e,...s},t)=>n.jsxRuntimeExports.jsx(i.Trigger,{ref:t,className:a.cn("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...s}));f.displayName=i.Trigger.displayName;const l=r.forwardRef(({className:e,...s},t)=>n.jsxRuntimeExports.jsx(i.Content,{ref:t,className:a.cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));l.displayName=i.Content.displayName;exports.Tabs=g;exports.TabsContent=l;exports.TabsList=u;exports.TabsTrigger=f;
1
+ "use strict";const n=require("./jsx-runtime-JYMCiFoE.cjs"),d=require("react"),b=require("@radix-ui/react-tabs"),a=require("./utils-qK_SjzzV.cjs");function c(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const r=c(d),i=c(b),g=i.Root,u=r.forwardRef(({className:e,...s},t)=>n.jsxRuntimeExports.jsx(i.List,{ref:t,className:a.cn("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...s}));u.displayName=i.List.displayName;const f=r.forwardRef(({className:e,...s},t)=>n.jsxRuntimeExports.jsx(i.Trigger,{ref:t,className:a.cn("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...s}));f.displayName=i.Trigger.displayName;const l=r.forwardRef(({className:e,...s},t)=>n.jsxRuntimeExports.jsx(i.Content,{ref:t,className:a.cn("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));l.displayName=i.Content.displayName;exports.Tabs=g;exports.TabsContent=l;exports.TabsList=u;exports.TabsTrigger=f;
@@ -1 +1 @@
1
- "use strict";const a=require("./jsx-runtime-5c3ac4f7.cjs"),v=require("react"),j=require("class-variance-authority"),s=require("./utils-3c452dd0.cjs");function b(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=b(v),R=j.cva("relative w-full rounded-lg border px-4 py-3 text-sm [&:has(svg)]:pl-11 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),d=o.forwardRef(({className:e,variant:r,...t},n)=>a.jsxRuntimeExports.jsx("div",{ref:n,role:"alert",className:s.cn(R({variant:r}),e),...t}));d.displayName="Alert";const i=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("h5",{ref:t,className:s.cn("mb-1 font-medium leading-none tracking-tight",e),...r}));i.displayName="AlertTitle";const l=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("text-sm [&_p]:leading-relaxed",e),...r}));l.displayName="AlertDescription";const c=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("rounded-xl border bg-card text-card-foreground shadow",e),...r}));c.displayName="Card";const u=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("flex flex-col space-y-1.5 p-6",e),...r}));u.displayName="CardHeader";const x=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("h3",{ref:t,className:s.cn("font-semibold leading-none tracking-tight",e),...r}));x.displayName="CardTitle";const p=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("p",{ref:t,className:s.cn("text-sm text-muted-foreground",e),...r}));p.displayName="CardDescription";const f=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("p-6 pt-0",e),...r}));f.displayName="CardContent";const m=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn(" flex items-center p-6 pt-0",e),...r}));m.displayName="CardFooter";const g=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("textarea",{className:s.cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:t,...r}));g.displayName="Textarea";exports.Alert=d;exports.AlertDescription=l;exports.AlertTitle=i;exports.Card=c;exports.CardContent=f;exports.CardDescription=p;exports.CardFooter=m;exports.CardHeader=u;exports.CardTitle=x;exports.Textarea=g;
1
+ "use strict";const a=require("./jsx-runtime-JYMCiFoE.cjs"),v=require("react"),j=require("class-variance-authority"),s=require("./utils-qK_SjzzV.cjs");function b(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const o=b(v),R=j.cva("relative w-full rounded-lg border px-4 py-3 text-sm [&:has(svg)]:pl-11 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),d=o.forwardRef(({className:e,variant:r,...t},n)=>a.jsxRuntimeExports.jsx("div",{ref:n,role:"alert",className:s.cn(R({variant:r}),e),...t}));d.displayName="Alert";const i=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("h5",{ref:t,className:s.cn("mb-1 font-medium leading-none tracking-tight",e),...r}));i.displayName="AlertTitle";const l=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("text-sm [&_p]:leading-relaxed",e),...r}));l.displayName="AlertDescription";const c=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("rounded-xl border bg-card text-card-foreground shadow",e),...r}));c.displayName="Card";const u=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("flex flex-col space-y-1.5 p-6",e),...r}));u.displayName="CardHeader";const x=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("h3",{ref:t,className:s.cn("font-semibold leading-none tracking-tight",e),...r}));x.displayName="CardTitle";const p=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("p",{ref:t,className:s.cn("text-sm text-muted-foreground",e),...r}));p.displayName="CardDescription";const f=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn("p-6 pt-0",e),...r}));f.displayName="CardContent";const m=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("div",{ref:t,className:s.cn(" flex items-center p-6 pt-0",e),...r}));m.displayName="CardFooter";const g=o.forwardRef(({className:e,...r},t)=>a.jsxRuntimeExports.jsx("textarea",{className:s.cn("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),ref:t,...r}));g.displayName="Textarea";exports.Alert=d;exports.AlertDescription=l;exports.AlertTitle=i;exports.Card=c;exports.CardContent=f;exports.CardDescription=p;exports.CardFooter=m;exports.CardHeader=u;exports.CardTitle=x;exports.Textarea=g;
@@ -1,7 +1,7 @@
1
- import { j as t } from "./jsx-runtime-944c88e2.js";
1
+ import { j as t } from "./jsx-runtime-Sp0orL4X.js";
2
2
  import * as s from "react";
3
3
  import { cva as i } from "class-variance-authority";
4
- import { c as d } from "./utils-ac68b2c8.js";
4
+ import { c as d } from "./utils-dze1SGvB.js";
5
5
  const l = i(
6
6
  "relative w-full rounded-lg border px-4 py-3 text-sm [&:has(svg)]:pl-11 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
7
7
  {