@chaibuilder/sdk 1.2.5 → 1.2.7

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 (96) hide show
  1. package/dist/AddBlocks-MKhgtI8x.cjs +1 -0
  2. package/dist/{AddBlocks-gbfzju1d.js → AddBlocks-pjLrzkvz.js} +52 -53
  3. package/dist/{BrandingOptions-mZXO7thQ.js → BrandingOptions-PXCI0z-H.js} +57 -53
  4. package/dist/BrandingOptions-tZaUILYP.cjs +1 -0
  5. package/dist/CanvasArea-C2ak1ui1.cjs +60 -0
  6. package/dist/{CanvasArea-WS9dnLyS.js → CanvasArea-Fhg-6_nZ.js} +407 -407
  7. package/dist/CurrentPage-4O-iqW3w.cjs +1 -0
  8. package/dist/{CurrentPage-iaGHiR2B.js → CurrentPage-Zz9LEdez.js} +15 -17
  9. package/dist/{Layers-V15IDskJ.js → Layers-cgmxKAP9.js} +173 -152
  10. package/dist/Layers-uo4KpGCs.cjs +1 -0
  11. package/dist/MarkAsGlobalBlock-1kOwPbPm.cjs +1 -0
  12. package/dist/{MarkAsGlobalBlock-SPWd6Flk.js → MarkAsGlobalBlock-htrpRVJM.js} +6 -6
  13. package/dist/{PagesPanel-wfyKhLJ5.js → PagesPanel-TYBKN2Am.js} +8 -10
  14. package/dist/PagesPanel-z5qHpU24.cjs +1 -0
  15. package/dist/{ProjectPanel-aiKhpNvr.js → ProjectPanel-PJ1iPaLY.js} +15 -17
  16. package/dist/ProjectPanel-mEVh8sLb.cjs +1 -0
  17. package/dist/{Settings-JjYbPJrt.js → Settings-Na0NVS-E.js} +334 -334
  18. package/dist/Settings-YNxmjfAl.cjs +1 -0
  19. package/dist/{SidePanels-XABN8kD3.js → SidePanels-bHll6xCt.js} +99 -98
  20. package/dist/SidePanels-jsHvSEtM.cjs +1 -0
  21. package/dist/{Topbar-ks1ckGLz.js → Topbar-JKdXHH8P.js} +4 -4
  22. package/dist/Topbar-jWRuTvxv.cjs +1 -0
  23. package/dist/UnsplashImages-dBdqJNux.cjs +1 -0
  24. package/dist/{UnsplashImages-8vJPuqrF.js → UnsplashImages-jiOES16m.js} +7 -7
  25. package/dist/UploadImages-OD3RPS7j.cjs +1 -0
  26. package/dist/{UploadImages-6N6UrjLo.js → UploadImages-imersU7l.js} +4 -4
  27. package/dist/{add-page-modal-Gwhl6J1F.js → add-page-modal-EQWWxbry.js} +10 -11
  28. package/dist/add-page-modal-nFQ8TUBM.cjs +1 -0
  29. package/dist/{confirm-alert-biqvaLT-.js → confirm-alert-HOs52FKE.js} +4 -4
  30. package/dist/confirm-alert-j6hcFSlG.cjs +1 -0
  31. package/dist/{controls-XPXGHKht.js → controls-QGClapUl.js} +9 -45
  32. package/dist/{controls-Dy1qa8Dc.cjs → controls-hpe3HxsR.cjs} +1 -1
  33. package/dist/core.cjs +1 -1
  34. package/dist/core.js +56 -58
  35. package/dist/{delete-page-modal-xGWX8RHn.js → delete-page-modal-DU388lPm.js} +21 -23
  36. package/dist/delete-page-modal-bkSWhTxz.cjs +1 -0
  37. package/dist/email-blocks.cjs +1 -1
  38. package/dist/email-blocks.js +263 -24
  39. package/dist/{form-Moz_psOw.js → form-7E1GY3U7.js} +1 -1
  40. package/dist/{form-lJhy9DEC.cjs → form-lF5eSfMe.cjs} +1 -1
  41. package/dist/html-to-json-JS8zQjYB.cjs +1 -0
  42. package/dist/{html-to-json-yjzEN9OX.js → html-to-json-lNLC8Y7D.js} +26 -27
  43. package/dist/{index-7mV_OcXd.js → index-7vwIQQ-T.js} +5402 -5366
  44. package/dist/index-98CxilGX.cjs +1 -0
  45. package/dist/{index-mUPP605-.cjs → index-Hf23Fq9m.cjs} +33 -33
  46. package/dist/{index-_OgCuSUz.js → index-WKIG_VPl.js} +1043 -1036
  47. package/dist/index-e0c8PmRQ.js +205 -0
  48. package/dist/index-gi1LIOCw.cjs +1 -0
  49. package/dist/lib.cjs +2 -2
  50. package/dist/lib.js +20 -22
  51. package/dist/mockServiceWorker.js +1 -1
  52. package/dist/page-viewer-6a4GFMUg.cjs +1 -0
  53. package/dist/{page-viewer-Xl1i1V3J.js → page-viewer-fohh_Dwv.js} +9 -11
  54. package/dist/{project-general-setting-8H1Rka2z.js → project-general-setting-Ryf5OhPd.js} +10 -11
  55. package/dist/project-general-setting-j4lKlLUE.cjs +1 -0
  56. package/dist/project-seo-setting-CATo4bEL.cjs +1 -0
  57. package/dist/{project-seo-setting-dXclexQW.js → project-seo-setting-KKOCl416.js} +6 -6
  58. package/dist/{single-page-detail-1hsqXV8c.js → single-page-detail-mJBo7VRe.js} +11 -12
  59. package/dist/single-page-detail-zms-5Fa_.cjs +1 -0
  60. package/dist/studio.cjs +1 -1
  61. package/dist/studio.js +7 -9
  62. package/dist/style.css +1 -1
  63. package/dist/ui.cjs +1 -1
  64. package/dist/ui.js +18 -18
  65. package/dist/{useAddBlockByDrop-uPXvrg4G.js → useAddBlockByDrop-CmSt8dRr.js} +1 -1
  66. package/dist/{useAddBlockByDrop-_nd8yZBa.cjs → useAddBlockByDrop-pVcDjcgp.cjs} +1 -1
  67. package/dist/{utils-AvyFzbPC.js → utils-Jw11nj1S.js} +35 -26
  68. package/dist/utils-j7Kg63NR.cjs +1 -0
  69. package/dist/web-blocks.cjs +1 -9
  70. package/dist/web-blocks.js +3 -1049
  71. package/package.json +5 -5
  72. package/dist/AddBlocks-wuKI1ieB.cjs +0 -1
  73. package/dist/BrandingOptions-arKT1zCy.cjs +0 -1
  74. package/dist/CanvasArea-wpskKN1H.cjs +0 -59
  75. package/dist/CurrentPage-X9fCVXgY.cjs +0 -1
  76. package/dist/Functions-7jnEwJyw.js +0 -15
  77. package/dist/Functions-N3yhPYKY.cjs +0 -1
  78. package/dist/Layers-EGhZWmvD.cjs +0 -1
  79. package/dist/MarkAsGlobalBlock-S2BhHTsK.cjs +0 -1
  80. package/dist/PagesPanel-Vla7HZkm.cjs +0 -1
  81. package/dist/ProjectPanel-YLS4oOuU.cjs +0 -1
  82. package/dist/Settings-rnHnjhZ4.cjs +0 -1
  83. package/dist/SidePanels-vcWHxatg.cjs +0 -1
  84. package/dist/Topbar-u5XKdWgQ.cjs +0 -1
  85. package/dist/UnsplashImages-V8oKEHfi.cjs +0 -1
  86. package/dist/UploadImages-eHYxwWAp.cjs +0 -1
  87. package/dist/add-page-modal-o5dy8nwt.cjs +0 -1
  88. package/dist/confirm-alert-f3DYO5Hj.cjs +0 -1
  89. package/dist/delete-page-modal-IO_9ZCm4.cjs +0 -1
  90. package/dist/html-to-json-5UoswV2Q.cjs +0 -1
  91. package/dist/index-IIJ_o44s.cjs +0 -1
  92. package/dist/page-viewer-pJFW_LaN.cjs +0 -1
  93. package/dist/project-general-setting-lNEoQK1n.cjs +0 -1
  94. package/dist/project-seo-setting-9JGBPzcA.cjs +0 -1
  95. package/dist/single-page-detail-VKqGt-s1.cjs +0 -1
  96. package/dist/utils-PTxFk6qT.cjs +0 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./jsx-runtime-Z_BpKhVy.cjs"),t=require("./index-98CxilGX.cjs"),i=require("lodash-es"),h=require("sonner"),l=require("react"),o=require("./index-Hf23Fq9m.cjs"),j=require("lucide-react");require("./_commonjsHelpers-wDK0ZLPo.cjs");require("@radix-ui/react-toggle");require("class-variance-authority");require("./utils-j7Kg63NR.cjs");require("clsx");require("tailwind-merge");require("./MODIFIERS-2FeVfZQ9.cjs");require("@radix-ui/react-switch");require("@radix-ui/react-slot");require("@radix-ui/react-accordion");require("@radix-ui/react-icons");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-dialog");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-tooltip");require("@radix-ui/react-popover");require("@radix-ui/react-menubar");require("@radix-ui/react-hover-card");require("@radix-ui/react-select");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("cmdk");require("@radix-ui/react-context-menu");require("react-icons-picker");require("react-dom");require("react-quill");require("jotai");require("flat-to-nested");require("redux-undo");require("@chaibuilder/runtime");require("lodash");require("@react-hookz/web");require("react-i18next");require("i18next");require("@floating-ui/react-dom");require("react-textarea-autosize");require("flagged");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("./html-to-json-JS8zQjYB.cjs");require("himalaya");require("./web-blocks.cjs");const p=()=>{const{data:s}=o.useProject(),{data:u,isLoading:x}=o.usePages(),{syncState:d}=t.useSavePage(),q=o.useChangePage(),[n,a]=o.useCurrentPage(),c=i.sortBy(i.filter(u,{type:"STATIC"}),r=>i.get(r,"uuid")===(s==null?void 0:s.homepage)?0:1);l.useEffect(()=>{!i.isEmpty(u)&&s.homepage&&!i.find(u,{uuid:n})&&a(s.homepage)},[n,u,s,a]),l.useEffect(()=>()=>a(null),[a]);const m=r=>{if(d!=="SAVED")h.toast.error("You have unsaved changes. Please save before changing the page.");else{const g=i.find(c,{uuid:r});q(g)}};return x||i.isEmpty(n)?null:e.jsxRuntimeExports.jsx("nav",{className:"flex rounded-lg border border-gray-200 bg-gray-50 px-3 pr-0 py-1 text-gray-700 dark:border-gray-700 dark:bg-gray-800","aria-label":"Breadcrumb",children:e.jsxRuntimeExports.jsxs("ol",{className:"inline-flex items-center space-x-1 md:space-x-3",children:[e.jsxRuntimeExports.jsx("li",{className:"inline-flex items-center",children:e.jsxRuntimeExports.jsxs("div",{className:"inline-flex items-center text-sm font-medium text-gray-500 dark:text-gray-400",children:[e.jsxRuntimeExports.jsx(j.BriefcaseIcon,{className:"w-4 h-4 mr-2"}),i.capitalize(s.name)]})}),e.jsxRuntimeExports.jsx("li",{"aria-current":"page",children:e.jsxRuntimeExports.jsxs("div",{className:"flex items-center",children:[e.jsxRuntimeExports.jsx("svg",{className:"mx-1 h-3 w-3 text-gray-400","aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 6 10",children:e.jsxRuntimeExports.jsx("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"m1 9 4-4-4-4"})}),e.jsxRuntimeExports.jsxs(t.Select,{value:n||"",onValueChange:m,children:[e.jsxRuntimeExports.jsx(t.SelectTrigger,{className:"h-max border-0 py-0 text-sm font-medium text-gray-600 shadow-none outline-none ring-0 focus:ring-0 dark:text-gray-400",children:e.jsxRuntimeExports.jsx(t.SelectValue,{placeholder:"Page"})}),e.jsxRuntimeExports.jsx(t.SelectContent,{className:"z-[999]",children:i.map(c,r=>e.jsxRuntimeExports.jsx(t.SelectItem,{value:r.uuid,children:r==null?void 0:r.name},r.uuid))})]})]})})]})})};exports.default=p;
@@ -1,17 +1,17 @@
1
1
  import { j as e } from "./jsx-runtime-WbnYoNE9.js";
2
- import { ag as x, aq as h, ar as f, as as j, at as y, au as P } from "./index-_OgCuSUz.js";
3
- import { sortBy as v, filter as b, get as w, isEmpty as m, find as n, capitalize as C, map as N } from "lodash-es";
2
+ import { ah as x, ar as h, as as f, at as j, au as y, av as v } from "./index-WKIG_VPl.js";
3
+ import { sortBy as P, filter as b, get as w, isEmpty as m, find as n, capitalize as C, map as N } from "lodash-es";
4
4
  import { toast as S } from "sonner";
5
5
  import { useEffect as p } from "react";
6
- import { b as k, a as B, d as E, e as I } from "./index-7mV_OcXd.js";
6
+ import { b as k, a as B, d as E, e as I } from "./index-7vwIQQ-T.js";
7
7
  import { BriefcaseIcon as L } from "lucide-react";
8
8
  import "./_commonjsHelpers-UyOWmZb0.js";
9
9
  import "@radix-ui/react-toggle";
10
10
  import "class-variance-authority";
11
- import "./utils-AvyFzbPC.js";
12
- import "./MODIFIERS-RiXS5Mn1.js";
11
+ import "./utils-Jw11nj1S.js";
13
12
  import "clsx";
14
13
  import "tailwind-merge";
14
+ import "./MODIFIERS-RiXS5Mn1.js";
15
15
  import "@radix-ui/react-switch";
16
16
  import "@radix-ui/react-slot";
17
17
  import "@radix-ui/react-accordion";
@@ -36,9 +36,9 @@ import "react-dom";
36
36
  import "react-quill";
37
37
  import "jotai";
38
38
  import "flat-to-nested";
39
- import "./Functions-7jnEwJyw.js";
40
39
  import "redux-undo";
41
40
  import "@chaibuilder/runtime";
41
+ import "lodash";
42
42
  import "@react-hookz/web";
43
43
  import "react-i18next";
44
44
  import "i18next";
@@ -48,16 +48,14 @@ import "flagged";
48
48
  import "react-dnd";
49
49
  import "@minoru/react-dnd-treeview";
50
50
  import "react-hotkeys-hook";
51
- import "./html-to-json-yjzEN9OX.js";
51
+ import "./html-to-json-lNLC8Y7D.js";
52
52
  import "himalaya";
53
- import "lodash";
54
53
  import "./web-blocks.js";
55
- import "./controls-XPXGHKht.js";
56
- const Ve = () => {
57
- const { data: t } = k(), { data: i, isLoading: l } = B(), { syncState: c } = x(), d = E(), [o, a] = I(), s = v(b(i, { type: "STATIC" }), (r) => w(r, "uuid") === (t == null ? void 0 : t.homepage) ? 0 : 1);
54
+ const Le = () => {
55
+ const { data: t } = k(), { data: i, isLoading: l } = B(), { syncState: c } = x(), d = E(), [a, o] = I(), s = P(b(i, { type: "STATIC" }), (r) => w(r, "uuid") === (t == null ? void 0 : t.homepage) ? 0 : 1);
58
56
  p(() => {
59
- !m(i) && t.homepage && !n(i, { uuid: o }) && a(t.homepage);
60
- }, [o, i, t, a]), p(() => () => a(null), [a]);
57
+ !m(i) && t.homepage && !n(i, { uuid: a }) && o(t.homepage);
58
+ }, [a, i, t, o]), p(() => () => o(null), [o]);
61
59
  const u = (r) => {
62
60
  if (c !== "SAVED")
63
61
  S.error("You have unsaved changes. Please save before changing the page.");
@@ -66,7 +64,7 @@ const Ve = () => {
66
64
  d(g);
67
65
  }
68
66
  };
69
- return l || m(o) ? null : /* @__PURE__ */ e.jsx(
67
+ return l || m(a) ? null : /* @__PURE__ */ e.jsx(
70
68
  "nav",
71
69
  {
72
70
  className: "flex rounded-lg border border-gray-200 bg-gray-50 px-3 pr-0 py-1 text-gray-700 dark:border-gray-700 dark:bg-gray-800",
@@ -97,9 +95,9 @@ const Ve = () => {
97
95
  )
98
96
  }
99
97
  ),
100
- /* @__PURE__ */ e.jsxs(h, { value: o || "", onValueChange: u, children: [
98
+ /* @__PURE__ */ e.jsxs(h, { value: a || "", onValueChange: u, children: [
101
99
  /* @__PURE__ */ e.jsx(f, { className: "h-max border-0 py-0 text-sm font-medium text-gray-600 shadow-none outline-none ring-0 focus:ring-0 dark:text-gray-400", children: /* @__PURE__ */ e.jsx(j, { placeholder: "Page" }) }),
102
- /* @__PURE__ */ e.jsx(y, { className: "z-[999]", children: N(s, (r) => /* @__PURE__ */ e.jsx(P, { value: r.uuid, children: r == null ? void 0 : r.name }, r.uuid)) })
100
+ /* @__PURE__ */ e.jsx(y, { className: "z-[999]", children: N(s, (r) => /* @__PURE__ */ e.jsx(v, { value: r.uuid, children: r == null ? void 0 : r.name }, r.uuid)) })
103
101
  ] })
104
102
  ] }) })
105
103
  ] })
@@ -107,5 +105,5 @@ const Ve = () => {
107
105
  );
108
106
  };
109
107
  export {
110
- Ve as default
108
+ Le as default
111
109
  };
@@ -1,22 +1,19 @@
1
1
  import { j as e } from "./jsx-runtime-WbnYoNE9.js";
2
- import { nth as y, startsWith as _, map as w, isUndefined as E, find as A, isEmpty as H, includes as P } from "lodash-es";
3
- import { BoxModelIcon as L, BoxIcon as z, DragHandleHorizontalIcon as V, ViewHorizontalIcon as F, BorderAllIcon as G, BorderTopIcon as $, TableIcon as K, DropdownMenuIcon as Q, RadiobuttonIcon as U, InputIcon as Y, ButtonIcon as B, CheckboxIcon as q, GroupIcon as W, SpaceBetweenVerticallyIcon as Z, ColumnsIcon as J, RowsIcon as C, TextIcon as v, SketchLogoIcon as X, DividerHorizontalIcon as ee, CodeIcon as te, CursorTextIcon as se, VideoIcon as oe, Link1Icon as ne, HeadingIcon as re, ImageIcon as ae, TriangleRightIcon as ce, ScissorsIcon as le, ClipboardIcon as ie, TrashIcon as xe, GlobeIcon as de, CopyIcon as me, ClipboardCopyIcon as pe, DoubleArrowDownIcon as ue, StackIcon as ge } from "@radix-ui/react-icons";
4
- import { useDrop as je, useDragLayer as he } from "react-dnd";
5
- import { useDragOver as be, Tree as Ie } from "@minoru/react-dnd-treeview";
6
- import { useTranslation as fe } from "react-i18next";
7
- import { _ as ke, Z as ye, j as u, n as Be, bx as i, k as Ce, l as ve, a6 as we, m as Se, o as Te, i as De, by as Ne, ak as Me, al as Oe, bz as Re, bA as _e, ae as Ee, w as Ae, aj as He, p as Pe, bn as Le, bB as ze } from "./index-_OgCuSUz.js";
8
- import { DatabaseIcon as Ve } from "lucide-react";
9
- import { useMemo as Fe, lazy as Ge, useCallback as $e, useState as Ke, Suspense as Qe } from "react";
10
- import { a as Ue } from "./MODIFIERS-RiXS5Mn1.js";
11
- import { c as S } from "./Functions-7jnEwJyw.js";
12
- import { f as Ye } from "./index-7mV_OcXd.js";
13
- import { u as qe } from "./useAddBlockByDrop-uPXvrg4G.js";
2
+ import { nth as C, startsWith as P, map as S, includes as T, isUndefined as L, find as z, isEmpty as V } from "lodash-es";
3
+ import { BoxModelIcon as F, BoxIcon as D, DragHandleHorizontalIcon as $, ViewHorizontalIcon as G, BorderAllIcon as K, BorderTopIcon as Q, TableIcon as U, DropdownMenuIcon as Y, RadiobuttonIcon as q, InputIcon as W, ButtonIcon as B, CheckboxIcon as J, GroupIcon as X, SpaceBetweenVerticallyIcon as Z, ColumnsIcon as ee, RowsIcon as v, TextIcon as w, SketchLogoIcon as te, DividerHorizontalIcon as se, CodeIcon as oe, CursorTextIcon as ne, VideoIcon as re, Link1Icon as ae, HeadingIcon as ce, ImageIcon as le, TriangleRightIcon as ie, ScissorsIcon as xe, ClipboardIcon as de, TrashIcon as me, GlobeIcon as pe, CopyIcon as ue, ClipboardCopyIcon as ge, DoubleArrowDownIcon as je, StackIcon as he } from "@radix-ui/react-icons";
4
+ import { useDrop as be, useDragLayer as fe } from "react-dnd";
5
+ import { useDragOver as Ie, Tree as ke } from "@minoru/react-dnd-treeview";
6
+ import { useTranslation as ye } from "react-i18next";
7
+ import { $ as Ce, _ as Be, j as x, n as ve, bx as i, k as we, l as Se, a7 as Te, m as De, o as Ne, i as Me, by as Oe, al as Re, am as _e, bz as Ee, bA as Ae, y as N, af as He, w as Pe, ak as Le, p as ze, bn as Ve, bB as Fe } from "./index-WKIG_VPl.js";
8
+ import { DatabaseIcon as $e } from "lucide-react";
9
+ import { useMemo as Ge, lazy as Ke, useCallback as Qe, useState as Ue, Suspense as Ye } from "react";
10
+ import { a as qe } from "./MODIFIERS-RiXS5Mn1.js";
11
+ import { d as k } from "./utils-Jw11nj1S.js";
12
+ import { f as We } from "./index-7vwIQQ-T.js";
13
+ import { u as Je } from "./useAddBlockByDrop-CmSt8dRr.js";
14
14
  import "./_commonjsHelpers-UyOWmZb0.js";
15
15
  import "@radix-ui/react-toggle";
16
16
  import "class-variance-authority";
17
- import "./utils-AvyFzbPC.js";
18
- import "clsx";
19
- import "tailwind-merge";
20
17
  import "@radix-ui/react-switch";
21
18
  import "@radix-ui/react-slot";
22
19
  import "@radix-ui/react-accordion";
@@ -42,82 +39,83 @@ import "jotai";
42
39
  import "flat-to-nested";
43
40
  import "redux-undo";
44
41
  import "@chaibuilder/runtime";
42
+ import "lodash";
45
43
  import "@react-hookz/web";
44
+ import "clsx";
45
+ import "tailwind-merge";
46
46
  import "i18next";
47
47
  import "@floating-ui/react-dom";
48
48
  import "react-textarea-autosize";
49
49
  import "flagged";
50
50
  import "react-hotkeys-hook";
51
51
  import "sonner";
52
- import "./html-to-json-yjzEN9OX.js";
52
+ import "./html-to-json-lNLC8Y7D.js";
53
53
  import "himalaya";
54
- import "lodash";
55
54
  import "./web-blocks.js";
56
- import "./controls-XPXGHKht.js";
57
- const T = (t) => {
55
+ const M = (t) => {
58
56
  switch (t.type) {
59
57
  case "Image":
60
- return /* @__PURE__ */ e.jsx(ae, {});
58
+ return /* @__PURE__ */ e.jsx(le, {});
61
59
  case "Heading":
62
- return /* @__PURE__ */ e.jsx(re, {});
60
+ return /* @__PURE__ */ e.jsx(ce, {});
63
61
  case "Text":
64
- return /* @__PURE__ */ e.jsx(v, {});
62
+ return /* @__PURE__ */ e.jsx(w, {});
65
63
  case "Link":
66
- return /* @__PURE__ */ e.jsx(ne, {});
64
+ return /* @__PURE__ */ e.jsx(ae, {});
67
65
  case "Video":
68
- return /* @__PURE__ */ e.jsx(oe, {});
66
+ return /* @__PURE__ */ e.jsx(re, {});
69
67
  case "RichText":
70
- return /* @__PURE__ */ e.jsx(se, {});
68
+ return /* @__PURE__ */ e.jsx(ne, {});
71
69
  case "Button":
72
70
  return /* @__PURE__ */ e.jsx(B, {});
73
71
  case "CustomHTML":
74
- return /* @__PURE__ */ e.jsx(te, {});
72
+ return /* @__PURE__ */ e.jsx(oe, {});
75
73
  case "Divider":
76
- return /* @__PURE__ */ e.jsx(ee, {});
74
+ return /* @__PURE__ */ e.jsx(se, {});
77
75
  case "Icon":
78
- return /* @__PURE__ */ e.jsx(X, {});
76
+ return /* @__PURE__ */ e.jsx(te, {});
79
77
  case "List":
80
- return /* @__PURE__ */ e.jsx(C, {});
81
- case "Paragraph":
82
78
  return /* @__PURE__ */ e.jsx(v, {});
79
+ case "Paragraph":
80
+ return /* @__PURE__ */ e.jsx(w, {});
83
81
  case "Row":
84
- return /* @__PURE__ */ e.jsx(C, {});
82
+ return /* @__PURE__ */ e.jsx(v, {});
85
83
  case "ListItem":
86
- return /* @__PURE__ */ e.jsx(J, {});
84
+ return /* @__PURE__ */ e.jsx(ee, {});
87
85
  case "LineBreak":
88
86
  return /* @__PURE__ */ e.jsx(Z, {});
89
87
  case "Form":
90
- return /* @__PURE__ */ e.jsx(W, {});
88
+ return /* @__PURE__ */ e.jsx(X, {});
91
89
  case "Checkbox":
92
- return /* @__PURE__ */ e.jsx(q, {});
90
+ return /* @__PURE__ */ e.jsx(J, {});
93
91
  case "FormButton":
94
92
  return /* @__PURE__ */ e.jsx(B, {});
95
93
  case "Input":
96
94
  case "TextArea":
97
- return /* @__PURE__ */ e.jsx(Y, {});
95
+ return /* @__PURE__ */ e.jsx(W, {});
98
96
  case "Radio":
99
- return /* @__PURE__ */ e.jsx(U, {});
97
+ return /* @__PURE__ */ e.jsx(q, {});
100
98
  case "Select":
101
- return /* @__PURE__ */ e.jsx(Q, {});
99
+ return /* @__PURE__ */ e.jsx(Y, {});
102
100
  case "Table":
103
- return /* @__PURE__ */ e.jsx(K, {});
101
+ return /* @__PURE__ */ e.jsx(U, {});
104
102
  case "TableHead":
105
- return /* @__PURE__ */ e.jsx($, {});
103
+ return /* @__PURE__ */ e.jsx(Q, {});
106
104
  case "TableBody":
107
- return /* @__PURE__ */ e.jsx(G, {});
105
+ return /* @__PURE__ */ e.jsx(K, {});
108
106
  case "TableRow":
109
- return /* @__PURE__ */ e.jsx(F, {});
107
+ return /* @__PURE__ */ e.jsx(G, {});
110
108
  case "TableCell":
111
- return /* @__PURE__ */ e.jsx(V, {});
109
+ return /* @__PURE__ */ e.jsx($, {});
112
110
  case "DataProvider":
113
- return /* @__PURE__ */ e.jsx(Ve, { size: 16 });
111
+ return /* @__PURE__ */ e.jsx($e, { size: 16 });
114
112
  case "Box":
115
- return /* @__PURE__ */ e.jsx(z, {});
113
+ return /* @__PURE__ */ e.jsx(D, {});
116
114
  default:
117
- return /* @__PURE__ */ e.jsx(L, {});
115
+ return /* @__PURE__ */ e.jsx(F, {});
118
116
  }
119
117
  };
120
- function We(t = "") {
118
+ function Xe(t = "") {
121
119
  const s = {
122
120
  xs: "390px",
123
121
  sm: "640px",
@@ -135,23 +133,23 @@ function We(t = "") {
135
133
  // checks if any of the display property is set for any higher media query
136
134
  /\b(sm|md|lg|xl|2xl):(block|grid|flex|inline|inline-grid|inline-flex|inline-block)\b/
137
135
  ), c = t.match(a);
138
- if (y(c, 1))
139
- return `Visible >=${s[y(c, 1)]}`;
136
+ if (C(c, 1))
137
+ return `Visible >=${s[C(c, 1)]}`;
140
138
  }
141
139
  return "";
142
140
  }
143
141
  const Ze = (t) => {
144
142
  let s = "";
145
143
  return Object.keys(t).forEach((o) => {
146
- _(t[o], Ue) && (s = t[o]);
144
+ P(t[o], qe) && (s = t[o]);
147
145
  }), s;
148
- }, Je = (t) => {
146
+ }, et = (t) => {
149
147
  var g;
150
- const [, s] = ke(), [o] = ye(), { isSelected: r } = t, { id: a, data: c } = t.node, x = t.depth * 10, d = (l) => {
148
+ const [, s] = Ce(), [o] = Be(), { isSelected: r } = t, { id: a, data: c } = t.node, d = t.depth * 10, m = (l) => {
151
149
  l.stopPropagation(), t.onToggle(t.node.id);
152
- }, j = be(a, t.isOpen, t.onToggle), m = Fe(() => {
150
+ }, j = Ie(a, t.isOpen, t.onToggle), p = Ge(() => {
153
151
  const l = Ze(t.node.data);
154
- return We(l);
152
+ return Xe(l);
155
153
  }, [t.node.data]);
156
154
  return (
157
155
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
@@ -159,34 +157,34 @@ const Ze = (t) => {
159
157
  "div",
160
158
  {
161
159
  onMouseEnter: () => s(a),
162
- className: S(
163
- "group flex w-full items-center justify-between space-x-px py-px ",
160
+ className: k(
161
+ "group flex w-full items-center justify-between space-x-px py-px",
164
162
  r ? "bg-blue-500 text-white" : "hover:bg-gray-200 dark:hover:bg-gray-800"
165
163
  ),
166
164
  onClick: (l) => {
167
165
  l.stopPropagation(), !o.includes(a) && t.onSelect(a);
168
166
  },
169
167
  onContextMenu: () => t.onSelect(a),
170
- style: { paddingInlineStart: x },
168
+ style: { paddingInlineStart: d },
171
169
  ...j,
172
170
  children: /* @__PURE__ */ e.jsxs("div", { className: "flex items-center", children: [
173
171
  /* @__PURE__ */ e.jsx(
174
172
  "div",
175
173
  {
176
174
  className: `flex h-4 w-4 rotate-0 transform cursor-pointer items-center justify-center text-xs transition-transform duration-100 ${t.isOpen ? "rotate-90" : ""}`,
177
- children: t.node.droppable && /* @__PURE__ */ e.jsx("button", { onClick: d, type: "button", children: /* @__PURE__ */ e.jsx(ce, {}) })
175
+ children: t.node.droppable && /* @__PURE__ */ e.jsx("button", { onClick: m, type: "button", children: /* @__PURE__ */ e.jsx(ie, {}) })
178
176
  }
179
177
  ),
180
178
  /* @__PURE__ */ e.jsxs("button", { type: "button", className: "flex items-center", children: [
181
- /* @__PURE__ */ e.jsx("div", { className: "-mt-1 h-3 w-3", children: /* @__PURE__ */ e.jsx(T, { type: c == null ? void 0 : c._type }) }),
179
+ /* @__PURE__ */ e.jsx("div", { className: "-mt-1 h-3 w-3", children: /* @__PURE__ */ e.jsx(M, { type: c == null ? void 0 : c._type }) }),
182
180
  /* @__PURE__ */ e.jsx("div", { className: "ml-2 truncate text-[11px]", children: ((g = t.node.data) == null ? void 0 : g._name) || t.node.text }),
183
- m ? /* @__PURE__ */ e.jsxs(
181
+ p ? /* @__PURE__ */ e.jsxs(
184
182
  "span",
185
183
  {
186
184
  className: "ml-2 flex items-center text-[10px] italic " + (r ? "text-gray-200" : "text-gray-500"),
187
185
  children: [
188
186
  "(",
189
- m,
187
+ p,
190
188
  ")"
191
189
  ]
192
190
  }
@@ -196,30 +194,30 @@ const Ze = (t) => {
196
194
  }
197
195
  )
198
196
  );
199
- }, Xe = (t) => {
197
+ }, tt = (t) => {
200
198
  var o;
201
199
  const { item: s } = t.monitorProps;
202
200
  return /* @__PURE__ */ e.jsxs("div", { className: "flex w-max items-center bg-blue-200 bg-opacity-30 p-1 font-semibold text-blue-700", children: [
203
- /* @__PURE__ */ e.jsx("div", { className: "", children: /* @__PURE__ */ e.jsx(T, { type: (o = s == null ? void 0 : s.data) == null ? void 0 : o._type }) }),
201
+ /* @__PURE__ */ e.jsx("div", { className: "", children: /* @__PURE__ */ e.jsx(M, { type: (o = s == null ? void 0 : s.data) == null ? void 0 : o._type }) }),
204
202
  /* @__PURE__ */ e.jsx("div", { className: "ml-2 truncate text-[11px]", children: s.text })
205
203
  ] });
206
- }, et = (t) => {
204
+ }, st = (t) => {
207
205
  const s = t.depth * 10 + 16;
208
206
  return /* @__PURE__ */ e.jsx("div", { className: "absolute right-0 top-0 h-0.5 -translate-y-1/2 transform bg-green-500", style: { left: s } });
209
- }, tt = Ge(() => import("./MarkAsGlobalBlock-SPWd6Flk.js")), st = () => {
210
- const [t] = u(), [, s] = Be();
207
+ }, ot = Ke(() => import("./MarkAsGlobalBlock-htrpRVJM.js")), nt = () => {
208
+ const [t] = x(), [, s] = ve();
211
209
  return /* @__PURE__ */ e.jsxs(i, { className: "flex items-center gap-x-4 text-xs", onClick: () => s(t), children: [
212
- /* @__PURE__ */ e.jsx(le, {}),
210
+ /* @__PURE__ */ e.jsx(xe, {}),
213
211
  " Cut"
214
212
  ] });
215
- }, ot = () => {
216
- const [t] = u(), [, s] = Ce();
213
+ }, rt = () => {
214
+ const [t] = x(), [, s] = we();
217
215
  return /* @__PURE__ */ e.jsxs(i, { className: "flex items-center gap-x-4 text-xs", onClick: () => s(t), children: [
218
- /* @__PURE__ */ e.jsx(ie, {}),
216
+ /* @__PURE__ */ e.jsx(de, {}),
219
217
  " Copy"
220
218
  ] });
221
- }, nt = () => {
222
- const [t] = u(), s = ve(), o = we();
219
+ }, at = () => {
220
+ const [t] = x(), s = Se(), o = Te();
223
221
  return /* @__PURE__ */ e.jsxs(
224
222
  i,
225
223
  {
@@ -227,29 +225,29 @@ const Ze = (t) => {
227
225
  className: "flex items-center gap-x-4 text-xs",
228
226
  onClick: () => s(t),
229
227
  children: [
230
- /* @__PURE__ */ e.jsx(xe, {}),
228
+ /* @__PURE__ */ e.jsx(me, {}),
231
229
  " Remove"
232
230
  ]
233
231
  }
234
232
  );
235
- }, rt = ({
233
+ }, ct = ({
236
234
  id: t = null,
237
235
  openMarkAsGlobalModal: s
238
236
  }) => {
239
- const [o] = u(), r = Se(), { pasteBlocks: a, canPaste: c } = Te(), x = De("globalBlocksSupport", !1), d = $e(() => {
237
+ const [o] = x(), r = De(), { pasteBlocks: a, canPaste: c } = Ne(), d = Me("globalBlocksSupport", !1), m = Qe(() => {
240
238
  r(o);
241
239
  }, [o, r]);
242
- return /* @__PURE__ */ e.jsxs(Ne, { className: "text-xs", children: [
243
- x && /* @__PURE__ */ e.jsx(i, { className: "flex items-center gap-x-4 border-b text-xs", onClick: s, children: /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-x-4", children: [
244
- /* @__PURE__ */ e.jsx(de, {}),
240
+ return /* @__PURE__ */ e.jsxs(Oe, { className: "text-xs", children: [
241
+ d && /* @__PURE__ */ e.jsx(i, { className: "flex items-center gap-x-4 border-b text-xs", onClick: s, children: /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-x-4", children: [
242
+ /* @__PURE__ */ e.jsx(pe, {}),
245
243
  " Mark as global"
246
244
  ] }) }),
247
- /* @__PURE__ */ e.jsxs(i, { className: "flex items-center gap-x-4 text-xs", onClick: d, children: [
248
- /* @__PURE__ */ e.jsx(me, {}),
245
+ /* @__PURE__ */ e.jsxs(i, { className: "flex items-center gap-x-4 text-xs", onClick: m, children: [
246
+ /* @__PURE__ */ e.jsx(ue, {}),
249
247
  " Duplicate"
250
248
  ] }),
251
- /* @__PURE__ */ e.jsx(st, {}),
252
- /* @__PURE__ */ e.jsx(ot, {}),
249
+ /* @__PURE__ */ e.jsx(nt, {}),
250
+ /* @__PURE__ */ e.jsx(rt, {}),
253
251
  /* @__PURE__ */ e.jsxs(
254
252
  i,
255
253
  {
@@ -257,25 +255,25 @@ const Ze = (t) => {
257
255
  onClick: () => a(t),
258
256
  disabled: !c,
259
257
  children: [
260
- /* @__PURE__ */ e.jsx(pe, {}),
258
+ /* @__PURE__ */ e.jsx(ge, {}),
261
259
  " Paste"
262
260
  ]
263
261
  }
264
262
  ),
265
- /* @__PURE__ */ e.jsx(nt, {})
263
+ /* @__PURE__ */ e.jsx(at, {})
266
264
  ] });
267
- }, at = ({ children: t, id: s = null }) => {
268
- const [o, r] = Ke(!1);
265
+ }, lt = ({ children: t, id: s = null }) => {
266
+ const [o, r] = Ue(!1);
269
267
  return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
270
- /* @__PURE__ */ e.jsx(Me, { open: o, onOpenChange: r, children: o && /* @__PURE__ */ e.jsx(Oe, { children: /* @__PURE__ */ e.jsx(Qe, { fallback: /* @__PURE__ */ e.jsx("div", { className: "h-96 w-full animate-pulse bg-gray-200" }), children: /* @__PURE__ */ e.jsx(tt, { closeModal: () => r(!1), id: s }) }) }) }),
271
- /* @__PURE__ */ e.jsxs(Re, { children: [
272
- /* @__PURE__ */ e.jsx(_e, { children: t }),
273
- /* @__PURE__ */ e.jsx(rt, { id: s, openMarkAsGlobalModal: () => r(!0) })
268
+ /* @__PURE__ */ e.jsx(Re, { open: o, onOpenChange: r, children: o && /* @__PURE__ */ e.jsx(_e, { children: /* @__PURE__ */ e.jsx(Ye, { fallback: /* @__PURE__ */ e.jsx("div", { className: "h-96 w-full animate-pulse bg-gray-200" }), children: /* @__PURE__ */ e.jsx(ot, { closeModal: () => r(!1), id: s }) }) }) }),
269
+ /* @__PURE__ */ e.jsxs(Ee, { children: [
270
+ /* @__PURE__ */ e.jsx(Ae, { children: t }),
271
+ /* @__PURE__ */ e.jsx(ct, { id: s, openMarkAsGlobalModal: () => r(!0) })
274
272
  ] })
275
273
  ] });
276
274
  };
277
- function ct(t) {
278
- return w(t, (s) => {
275
+ function it(t) {
276
+ return S(t, (s) => {
279
277
  const { data: o } = s;
280
278
  return {
281
279
  ...o,
@@ -283,99 +281,122 @@ function ct(t) {
283
281
  };
284
282
  });
285
283
  }
286
- const xs = () => {
287
- const t = Ee(), [s] = Ae(), [o, r, a] = u(), [, c] = He(), { t: x } = fe(), { createSnapshot: d } = Pe(), j = Ye(), m = qe(), g = async (n, p) => {
288
- const { dragSource: b, relativeIndex: I, dropTargetId: f, monitor: k } = p;
284
+ function xt() {
285
+ const [t] = N(), [s, o] = x();
286
+ return t ? (console.log("container", t), /* @__PURE__ */ e.jsxs(
287
+ "div",
288
+ {
289
+ onClick: (r) => {
290
+ r.stopPropagation(), o(["container"]);
291
+ },
292
+ className: k(
293
+ "flex items-center pl-2 text-xs",
294
+ T(s, "container") ? "bg-blue-500 text-white" : "hover:bg-gray-200 dark:hover:bg-gray-800"
295
+ ),
296
+ children: [
297
+ /* @__PURE__ */ e.jsx(D, {}),
298
+ "  ",
299
+ t._type
300
+ ]
301
+ }
302
+ )) : null;
303
+ }
304
+ const ds = () => {
305
+ const t = He(), [s] = Pe(), [o, r, a] = x(), [, c] = Le(), { t: d } = ye(), { createSnapshot: m } = ze(), j = We(), p = Je(), [g] = N(), l = async (n, u) => {
306
+ const { dragSource: b, relativeIndex: f, dropTargetId: I, monitor: y } = u;
289
307
  if (b) {
290
- d();
291
- const O = ct(n);
292
- s(O);
293
- const R = k.getItem();
294
- r([R.id]);
308
+ m();
309
+ const A = it(n);
310
+ s(A);
311
+ const H = y.getItem();
312
+ r([H.id]);
295
313
  } else
296
- await m({ block: k.getItem(), dropTargetId: f, relativeIndex: I });
297
- }, l = w(t, (n) => ({
314
+ await p({ block: y.getItem(), dropTargetId: I, relativeIndex: f });
315
+ }, O = S(t, (n) => ({
298
316
  id: n._id,
299
317
  text: n._type,
300
318
  parent: n._parent || 0,
301
- droppable: !E(A(t, { _parent: n._id })),
319
+ droppable: !L(z(t, { _parent: n._id })),
302
320
  data: n
303
- })), D = () => {
321
+ })), R = () => {
304
322
  r([]), c([]);
305
- }, [{ isOver: h }, N] = je(() => ({
323
+ }, [{ isOver: h }, _] = be(() => ({
306
324
  accept: ["CHAI_BLOCK"],
307
325
  collect: (n) => ({
308
326
  canDrop: n.canDrop(),
309
327
  isOver: n.isOver()
310
328
  }),
311
329
  drop: (n) => {
312
- (async () => await m({
330
+ (async () => await p({
313
331
  block: n,
314
332
  dropTargetId: "",
315
333
  relativeIndex: 0
316
334
  }))();
317
335
  }
318
- })), { isDragging: M } = he((n) => ({
336
+ })), { isDragging: E } = fe((n) => ({
319
337
  isDragging: n.isDragging()
320
338
  }));
321
339
  return /* @__PURE__ */ e.jsx(e.Fragment, { children: /* @__PURE__ */ e.jsx(
322
340
  "div",
323
341
  {
324
- onClick: () => D(),
325
- className: S(
342
+ onClick: () => R(),
343
+ className: k(
326
344
  "-mx-1 -mt-1 flex h-full select-none flex-col space-y-1",
327
- M ? "bg-green-50/80" : "bg-background"
345
+ E ? "bg-green-50/80" : "bg-background"
328
346
  ),
329
- children: H(t) ? /* @__PURE__ */ e.jsxs(
347
+ children: V(t) ? /* @__PURE__ */ e.jsxs(
330
348
  "div",
331
349
  {
332
- ref: N,
333
- className: `mx-1 mt-4 max-w-full h-full p-6 text-center text-sm text-gray-400 ${h ? "bg-blue-200" : ""}`,
350
+ ref: _,
351
+ className: `mx-1 mt-4 h-full max-w-full p-6 text-center text-sm text-gray-400 ${h ? "bg-blue-200" : ""}`,
334
352
  children: [
335
- h ? /* @__PURE__ */ e.jsx(ue, { className: "mx-auto h-12 w-12 animate-bounce" }) : /* @__PURE__ */ e.jsx(ge, { className: "mx-auto h-10 w-10" }),
336
- /* @__PURE__ */ e.jsx("p", { className: "mt-2", children: x(h ? "drop_here_message" : "tree_view_no_blocks") })
353
+ h ? /* @__PURE__ */ e.jsx(je, { className: "mx-auto h-12 w-12 animate-bounce" }) : /* @__PURE__ */ e.jsx(he, { className: "mx-auto h-10 w-10" }),
354
+ /* @__PURE__ */ e.jsx("p", { className: "mt-2", children: d(h ? "drop_here_message" : "tree_view_no_blocks") })
337
355
  ]
338
356
  }
339
- ) : /* @__PURE__ */ e.jsx(Le, { id: "layers-view", className: "no-scrollbar h-full overflow-y-auto p-1", children: /* @__PURE__ */ e.jsx(
340
- Ie,
341
- {
342
- initialOpen: j,
343
- extraAcceptTypes: ["CHAI_BLOCK"],
344
- tree: l,
345
- rootId: 0,
346
- render: (n, { depth: p, isOpen: b, onToggle: I }) => /* @__PURE__ */ e.jsx(at, { id: n.id, children: /* @__PURE__ */ e.jsx(
347
- Je,
348
- {
349
- onSelect: (f) => {
350
- c([]), r([f]);
351
- },
352
- isSelected: P(o, n.id),
353
- node: n,
354
- depth: p,
355
- isOpen: b,
356
- onToggle: I,
357
- toggleIds: a
358
- }
359
- ) }),
360
- dragPreviewRender: (n) => /* @__PURE__ */ e.jsx(Xe, { monitorProps: n }),
361
- onDrop: g,
362
- classes: {
363
- root: "h-full pt-2",
364
- draggingSource: "opacity-30",
365
- dropTarget: "bg-green-100",
366
- placeholder: "relative"
367
- },
368
- sort: !1,
369
- insertDroppableFirst: !1,
370
- canDrop: ze,
371
- dropTargetOffset: 2,
372
- enableAnimateExpand: !0,
373
- placeholderRender: (n, { depth: p }) => /* @__PURE__ */ e.jsx(et, { node: n, depth: p })
374
- }
375
- ) })
357
+ ) : /* @__PURE__ */ e.jsxs(Ve, { id: "layers-view", className: "no-scrollbar h-full overflow-y-auto p-1", children: [
358
+ /* @__PURE__ */ e.jsx(xt, {}),
359
+ /* @__PURE__ */ e.jsx(
360
+ ke,
361
+ {
362
+ initialOpen: j,
363
+ extraAcceptTypes: ["CHAI_BLOCK"],
364
+ tree: O,
365
+ rootId: 0,
366
+ render: (n, { depth: u, isOpen: b, onToggle: f }) => /* @__PURE__ */ e.jsx(lt, { id: n.id, children: /* @__PURE__ */ e.jsx(
367
+ et,
368
+ {
369
+ onSelect: (I) => {
370
+ c([]), r([I]);
371
+ },
372
+ isSelected: T(o, n.id),
373
+ node: n,
374
+ depth: u,
375
+ isOpen: b,
376
+ onToggle: f,
377
+ toggleIds: a
378
+ }
379
+ ) }),
380
+ dragPreviewRender: (n) => /* @__PURE__ */ e.jsx(tt, { monitorProps: n }),
381
+ onDrop: l,
382
+ classes: {
383
+ root: "h-[90%] " + (g ? "pl-2" : "pt-2"),
384
+ draggingSource: "opacity-30",
385
+ dropTarget: "bg-green-100",
386
+ placeholder: "relative"
387
+ },
388
+ sort: !1,
389
+ insertDroppableFirst: !1,
390
+ canDrop: Fe,
391
+ dropTargetOffset: 2,
392
+ enableAnimateExpand: !0,
393
+ placeholderRender: (n, { depth: u }) => /* @__PURE__ */ e.jsx(st, { node: n, depth: u })
394
+ }
395
+ )
396
+ ] })
376
397
  }
377
398
  ) });
378
399
  };
379
400
  export {
380
- xs as default
401
+ ds as default
381
402
  };