@plitzi/sdk-elements 0.36.1 → 0.36.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/Element/ElementParentContext.d.ts +13 -0
  3. package/dist/Element/ElementParentContext.mjs +6 -0
  4. package/dist/Element/LayoutBody.d.ts +21 -0
  5. package/dist/Element/LayoutBody.mjs +24 -0
  6. package/dist/Element/hocs/withElement.mjs +104 -87
  7. package/dist/Element/hooks/useElementInternal.mjs +24 -24
  8. package/dist/Element/hooks/useInternalItems.mjs +42 -39
  9. package/dist/Element/hooks/useLayoutChain.d.ts +10 -0
  10. package/dist/Element/hooks/useLayoutChain.mjs +20 -0
  11. package/dist/Element/hooks/useRootElementInteractions.mjs +45 -44
  12. package/dist/dataSource/GlobalSources.mjs +60 -59
  13. package/dist/dataSource/pathFields.d.ts +7 -0
  14. package/dist/dataSource/pathFields.mjs +8 -0
  15. package/dist/elements/advanced/Reference/Reference.mjs +93 -89
  16. package/dist/elements/advanced/Reference/declaration.d.ts +1 -1
  17. package/dist/elements/advanced/Reference/index.d.ts +1 -1
  18. package/dist/elements/declarations/index.d.ts +3 -1
  19. package/dist/elements/internal/LayoutContainer/LayoutContainer.d.ts +6 -0
  20. package/dist/elements/internal/LayoutContainer/LayoutContainer.mjs +31 -23
  21. package/dist/elements/internal/LayoutContainer/Settings.d.ts +4 -1
  22. package/dist/elements/internal/LayoutContainer/Settings.mjs +78 -64
  23. package/dist/elements/internal/LayoutContainer/declaration.d.ts +2 -0
  24. package/dist/elements/internal/LayoutContainer/index.d.ts +2 -0
  25. package/dist/elements/internal/LayoutPicker/LayoutPicker.d.ts +10 -0
  26. package/dist/elements/internal/LayoutPicker/LayoutPicker.mjs +35 -0
  27. package/dist/elements/internal/LayoutPicker/index.d.ts +3 -0
  28. package/dist/elements/internal/LayoutPicker/index.mjs +5 -0
  29. package/dist/elements/internal/Page/Page.mjs +49 -48
  30. package/dist/elements/internal/Page/Settings.mjs +101 -119
  31. package/dist/elements/provider/ApiContainer/ApiContainer.mjs +58 -66
  32. package/dist/elements/provider/ApiContainer/declaration.mjs +1 -1
  33. package/dist/elements/provider/ApiContainer/hooks/useApi.d.ts +8 -0
  34. package/dist/elements/provider/ApiContainer/hooks/useApi.mjs +52 -48
  35. package/dist/elements/structure/DialogContainer/DialogContainer.mjs +17 -25
  36. package/dist/elements/structure/ModalContainer/ModalContainer.mjs +15 -23
  37. package/dist/index.d.ts +3 -1
  38. package/package.json +38 -10
@@ -6,64 +6,65 @@ import c, { SPACE_THEME_AREA as l } from "@plitzi/sdk-shared/theme/useTheme";
6
6
  import u from "@plitzi/sdk-shared/dataSource/hooks/useRegisterSource";
7
7
  import d from "@plitzi/sdk-auth/AuthContext";
8
8
  import { resolveVariables as f } from "@plitzi/sdk-shared/dataSource";
9
+ import p from "@plitzi/sdk-shared/hooks/useStableValue";
9
10
  //#region src/dataSource/GlobalSources.tsx
10
- var p = ({ children: p }) => {
11
- let { environment: m } = a(), [[h, g, _, v, y, b]] = r([
11
+ var m = ({ children: m }) => {
12
+ let { environment: h } = a(), [[g, _, v, y, b, x]] = r([
12
13
  "schema.variables",
13
14
  "navigation.routeParams",
14
15
  "navigation.queryParams",
15
16
  "navigation.hostname",
16
17
  "navigation.origin",
17
18
  "navigation.currentPageId"
18
- ]), x = n(() => f(h, {
19
- routeParams: g,
20
- queryParams: _,
21
- hostname: v,
22
- environment: m
19
+ ]), S = p(n(() => f(g, {
20
+ routeParams: _,
21
+ queryParams: v,
22
+ hostname: y,
23
+ environment: h
23
24
  }), [
24
- m,
25
+ h,
26
+ y,
25
27
  v,
26
28
  _,
27
- g,
28
- h
29
- ]), S = t(() => s(x).map((e) => ({
29
+ g
30
+ ])), C = t(() => s(S).map((e) => ({
30
31
  path: e,
31
32
  name: `variables.${e}`
32
- })), [x]);
33
+ })), [S]);
33
34
  u({
34
35
  id: "global",
35
36
  source: "variables",
36
37
  name: "Variables",
37
- fields: S
38
- }), i("runtime.sources.variables", x);
39
- let [C = {}] = r("pageDefinitions"), w = n(() => Object.values(C).map((e) => ({
38
+ fields: C
39
+ }), i("runtime.sources.variables", S);
40
+ let [w = {}] = r("pageDefinitions"), T = n(() => Object.values(w).map((e) => ({
40
41
  value: e.id,
41
42
  label: o(e, "attributes.name", e.id)
42
- })), [C]), T = n(() => ({
43
- routeParams: g,
44
- queryParams: _,
45
- origin: y,
46
- currentPageId: b
43
+ })), [w]), E = n(() => ({
44
+ routeParams: _,
45
+ queryParams: v,
46
+ origin: b,
47
+ currentPageId: x
47
48
  }), [
48
- g,
49
49
  _,
50
- y,
51
- b
52
- ]), E = t(() => {
50
+ v,
51
+ b,
52
+ x
53
+ ]), D = t(() => {
53
54
  let e = s({
54
- routeParams: g,
55
- queryParams: _
55
+ routeParams: _,
56
+ queryParams: v
56
57
  }).map((e) => ({
57
58
  path: e,
58
59
  name: `navigation.${e}`
59
60
  })), t = {
60
61
  path: "origin",
61
62
  name: "Origin"
62
- }, n = w.length > 0 ? {
63
+ }, n = T.length > 0 ? {
63
64
  path: "currentPageId",
64
65
  name: "Current Page",
65
66
  inputType: "select",
66
- values: w
67
+ values: T
67
68
  } : {
68
69
  path: "currentPageId",
69
70
  name: "Current Page"
@@ -74,74 +75,74 @@ var p = ({ children: p }) => {
74
75
  n
75
76
  ];
76
77
  }, [
77
- g,
78
78
  _,
79
- w
79
+ v,
80
+ T
80
81
  ]);
81
82
  u({
82
83
  id: "global",
83
84
  source: "navigation",
84
85
  name: "Navigation",
85
- fields: E
86
- }), i("runtime.sources.navigation", T);
87
- let { user: D, authenticated: O } = e(d), [k = "basic"] = r("schema.settings.userProvider"), A = n(() => k === "" ? {} : {
88
- isAuthenticated: O,
89
- accessToken: D?.accessToken ?? "",
86
+ fields: D
87
+ }), i("runtime.sources.navigation", E);
88
+ let { user: O, authenticated: k } = e(d), [A = "basic"] = r("schema.settings.userProvider"), j = n(() => A === "" ? {} : {
89
+ isAuthenticated: k,
90
+ accessToken: O?.accessToken ?? "",
90
91
  details: {
91
92
  username: "",
92
93
  email: "",
93
94
  roles: "",
94
95
  permissions: "",
95
96
  verified: "",
96
- ...D?.details ?? {}
97
+ ...O?.details ?? {}
97
98
  }
98
99
  }, [
99
- k,
100
- D,
101
- O
102
- ]), j = t(() => s(A).map((e) => ({
100
+ A,
101
+ O,
102
+ k
103
+ ]), M = t(() => s(j).map((e) => ({
103
104
  path: e,
104
105
  name: `user.${e}`
105
- })), [A]);
106
+ })), [j]);
106
107
  u({
107
108
  id: "global",
108
109
  source: "auth",
109
110
  name: "Auth State",
110
- fields: j
111
- }), i("runtime.sources.auth", A);
112
- let [M] = r("runtime.state"), N = t(() => s(M).map((e) => ({
111
+ fields: M
112
+ }), i("runtime.sources.auth", j);
113
+ let [N] = r("runtime.state"), P = t(() => s(N).map((e) => ({
113
114
  path: e,
114
115
  name: `state.${e}`
115
- })), [M]);
116
+ })), [N]);
116
117
  u({
117
118
  id: "global",
118
119
  source: "state",
119
120
  name: "State",
120
- fields: N
121
- }), i("runtime.sources.state", M);
122
- let [P] = r("runtime.host"), F = t(() => s(P).map((e) => ({
121
+ fields: P
122
+ }), i("runtime.sources.state", N);
123
+ let [F] = r("runtime.host"), I = t(() => s(F).map((e) => ({
123
124
  path: e,
124
125
  name: `host.${e}`
125
- })), [P]);
126
+ })), [F]);
126
127
  u({
127
128
  id: "global",
128
129
  source: "host",
129
130
  name: "Host",
130
- fields: F
131
- }), i("runtime.sources.host", P);
132
- let { theme: I, resolvedTheme: L } = c(l), R = n(() => ({
133
- mode: I,
134
- resolved: L
135
- }), [I, L]), z = t(() => s(R).map((e) => ({
131
+ fields: I
132
+ }), i("runtime.sources.host", F);
133
+ let { theme: L, resolvedTheme: R } = c(l), z = n(() => ({
134
+ mode: L,
135
+ resolved: R
136
+ }), [L, R]), B = t(() => s(z).map((e) => ({
136
137
  path: e,
137
138
  name: `theme.${e}`
138
- })), [R]);
139
+ })), [z]);
139
140
  return u({
140
141
  id: "global",
141
142
  source: "theme",
142
143
  name: "Theme",
143
- fields: z
144
- }), i("runtime.sources.theme", R), p;
144
+ fields: B
145
+ }), i("runtime.sources.theme", z), m;
145
146
  };
146
147
  //#endregion
147
- export { p as default };
148
+ export { m as default };
@@ -0,0 +1,7 @@
1
+ import { SourceField } from '@plitzi/sdk-shared';
2
+ /**
3
+ * Every path of a source's data, named by its last two segments — what the binding picker lists for a provider, a
4
+ * modal or a dialog. Only ever run when the picker asks: see `useRegisterSource`.
5
+ */
6
+ declare const pathFields: (data: Record<string, unknown>) => SourceField[];
7
+ export default pathFields;
@@ -0,0 +1,8 @@
1
+ import { getPathsFromObeject as e } from "@plitzi/sdk-shared/helpers/utils";
2
+ //#region src/dataSource/pathFields.ts
3
+ var t = (t) => e(t).map((e) => ({
4
+ path: e,
5
+ name: e.split(".").slice(-2).join(" ")
6
+ }));
7
+ //#endregion
8
+ export { t as default };
@@ -1,143 +1,147 @@
1
- import e from "../../../Element/hocs/withElement.mjs";
2
- import t from "../../../Element/hooks/useElement.mjs";
3
- import { RootElement as n } from "../../../Element/RootElement.mjs";
4
- import r from "../../../Element/PluginManager.mjs";
5
- import { use as i, useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
6
- import u from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
7
- import { useCommonStore as d } from "@plitzi/sdk-shared/store";
8
- import { get as f } from "@plitzi/plitzi-ui/helpers";
9
- import { StoreProvider as p } from "@plitzi/nexus/react";
10
- import { jsx as m, jsxs as h } from "react/jsx-runtime";
11
- import g from "clsx";
1
+ import e from "../../../Element/LayoutBody.mjs";
2
+ import t from "../../../Element/hocs/withElement.mjs";
3
+ import n from "../../../Element/hooks/useElement.mjs";
4
+ import { RootElement as r } from "../../../Element/RootElement.mjs";
5
+ import i from "../../../Element/PluginManager.mjs";
6
+ import { use as a, useCallback as o, useEffect as s, useMemo as c, useRef as l, useState as u } from "react";
7
+ import d from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
8
+ import { useCommonStore as f } from "@plitzi/sdk-shared/store";
9
+ import { get as p } from "@plitzi/plitzi-ui/helpers";
10
+ import { StoreProvider as m } from "@plitzi/nexus/react";
11
+ import { jsx as h, jsxs as g } from "react/jsx-runtime";
12
+ import _ from "clsx";
12
13
  //#region src/elements/advanced/Reference/Reference.tsx
13
- var _ = ({ ref: e, children: _, className: v = "", referenceType: y = "element", referenceId: b = "", referenceContainer: x = "" }) => {
14
- let { id: S, definition: { rootId: C, styleSelectors: w } } = t(), { settings: { previewMode: T, environment: E }, contexts: { SegmentsContext: D } } = u(), [[O, k]] = d(["schema", "segments"]), { segmentGet: A } = i(D), j = c(O);
15
- j.current = O;
16
- let M = c(k);
14
+ var v = ({ ref: t, children: v, className: y = "", referenceType: b = "element", referenceId: x = "", referenceContainer: S = "" }) => {
15
+ let { id: C, definition: { rootId: w, styleSelectors: T } } = n(), { settings: { previewMode: E, environment: D }, contexts: { SegmentsContext: O } } = d(), [[k, A]] = f(["schema", "segments"]), { segmentGet: j } = a(O), M = l(k);
17
16
  M.current = k;
18
- let N = a((e, t) => {
17
+ let N = l(A);
18
+ N.current = A;
19
+ let P = o((e, t) => {
19
20
  let n, r;
20
21
  switch (t) {
21
22
  case "segment": {
22
- let t = f(M.current, e);
23
+ let t = p(N.current, e);
23
24
  if (!t) return;
24
- let i = f(t, "definition.baseElementId");
25
- r = f(t, "schema"), n = f(t, `schema.flat.${i}`);
25
+ let i = p(t, "definition.baseElementId");
26
+ r = p(t, "schema"), n = p(t, `schema.flat.${i}`);
26
27
  break;
27
28
  }
28
- default: n = f(j.current, `flat.${e}`), r = j.current;
29
+ default: n = p(M.current, `flat.${e}`), r = M.current;
29
30
  }
30
31
  if (n) return {
31
32
  element: n,
32
- elementType: f(n, "definition.type"),
33
+ elementType: p(n, "definition.type"),
33
34
  referenceContextData: {
34
35
  schema: r,
35
- prevSchema: j.current
36
+ prevSchema: M.current
36
37
  }
37
38
  };
38
- }, []), [P, F] = l(N(b, y)), I = a(async (e, t) => {
39
- let n = N(e, t);
39
+ }, []), [F, I] = u(P(x, b)), L = o(async (e, t) => {
40
+ let n = P(e, t);
40
41
  if (n) {
41
- F(n);
42
+ I(n);
42
43
  return;
43
44
  }
44
45
  let r, i;
45
46
  switch (t) {
46
47
  case "segment": {
47
48
  let t;
48
- if (e && (t = await A(e)), !t) return;
49
- let n = f(t, "definition.baseElementId");
50
- i = f(t, "schema"), r = f(t, `schema.flat.${n}`);
49
+ if (e && (t = await j(e)), !t) return;
50
+ let n = p(t, "definition.baseElementId");
51
+ i = p(t, "schema"), r = p(t, `schema.flat.${n}`);
51
52
  break;
52
53
  }
53
- default: r = f(j.current, `flat.${e}`), i = j.current;
54
+ default: r = p(M.current, `flat.${e}`), i = M.current;
54
55
  }
55
56
  if (!r) {
56
- F(void 0);
57
+ I(void 0);
57
58
  return;
58
59
  }
59
- F({
60
+ I({
60
61
  element: r,
61
- elementType: f(r, "definition.type"),
62
+ elementType: p(r, "definition.type"),
62
63
  referenceContextData: {
63
64
  schema: i,
64
- prevSchema: j.current
65
+ prevSchema: M.current
65
66
  }
66
67
  });
67
- }, [N, A]);
68
- o(() => {
69
- I(b, y);
68
+ }, [P, j]);
69
+ s(() => {
70
+ L(x, b);
70
71
  }, [
71
- I,
72
- b,
73
- y
72
+ L,
73
+ x,
74
+ b
74
75
  ]);
75
- let L = s(() => ({
76
- bodyChildren: _,
77
- containerId: x,
78
- type: y,
79
- referenceId: S,
80
- rootId: S
76
+ let R = c(() => ({
77
+ containerId: S,
78
+ type: b,
79
+ rootId: C
81
80
  }), [
82
- x,
83
- _,
84
- y,
85
- S
86
- ]), R = s(() => ({
87
- id: P?.element?.id ?? "",
88
- rootId: C,
89
- className: w.base
81
+ S,
82
+ b,
83
+ C
84
+ ]), z = c(() => ({
85
+ id: F?.element?.id ?? "",
86
+ rootId: w,
87
+ className: T.base
90
88
  }), [
91
- P?.element?.id,
92
- C,
93
- w.base
89
+ F?.element?.id,
90
+ w,
91
+ T.base
94
92
  ]);
95
- if (!P) return /* @__PURE__ */ m(n, {
96
- ref: e,
97
- className: g("plitzi-component__reference", v, { "reference--build-mode": !T }),
98
- children: !T && /* @__PURE__ */ h("div", {
93
+ if (!F) return /* @__PURE__ */ h(r, {
94
+ ref: t,
95
+ className: _("plitzi-component__reference", y, { "reference--build-mode": !E }),
96
+ children: !E && /* @__PURE__ */ g("div", {
99
97
  className: "reference__label",
100
- children: ["Element Reference ", /* @__PURE__ */ m("b", {
98
+ children: ["Element Reference ", /* @__PURE__ */ h("b", {
101
99
  className: "capitalize",
102
- children: y
100
+ children: b
103
101
  })]
104
102
  })
105
103
  });
106
- let { element: z, elementType: B, referenceContextData: V } = P;
107
- return T && z && y === "element" ? /* @__PURE__ */ m(p, {
108
- name: `Reference:${S}`,
109
- value: V,
110
- children: /* @__PURE__ */ m(r, {
111
- type: B,
112
- internalProps: R,
113
- plitziElementLayout: L
114
- }, `${S}_${b}`)
115
- }) : /* @__PURE__ */ h(n, {
116
- ref: e,
117
- className: g("plitzi-component__reference", v, { "reference--build-mode": !T }),
104
+ let { element: B, elementType: V, referenceContextData: H } = F;
105
+ return E && B && b === "element" ? /* @__PURE__ */ h(m, {
106
+ name: `Reference:${C}`,
107
+ value: H,
108
+ children: /* @__PURE__ */ h(e, {
109
+ body: v,
110
+ children: /* @__PURE__ */ h(i, {
111
+ type: V,
112
+ internalProps: z,
113
+ plitziElementLayout: R
114
+ }, `${C}_${x}`)
115
+ })
116
+ }) : /* @__PURE__ */ g(r, {
117
+ ref: t,
118
+ className: _("plitzi-component__reference", y, { "reference--build-mode": !E }),
118
119
  children: [
119
- /* @__PURE__ */ m(p, {
120
- name: `Reference:${S}`,
121
- value: V,
122
- children: z && /* @__PURE__ */ m(r, {
123
- type: B,
124
- internalProps: R,
125
- plitziElementLayout: L
126
- }, `${S}_${b}`)
120
+ /* @__PURE__ */ h(m, {
121
+ name: `Reference:${C}`,
122
+ value: H,
123
+ children: B && /* @__PURE__ */ h(e, {
124
+ body: v,
125
+ children: /* @__PURE__ */ h(i, {
126
+ type: V,
127
+ internalProps: z,
128
+ plitziElementLayout: R
129
+ }, `${C}_${x}`)
130
+ })
127
131
  }),
128
- !T && !z && /* @__PURE__ */ h("div", {
132
+ !E && !B && /* @__PURE__ */ g("div", {
129
133
  className: "reference__label",
130
- children: ["Element Reference ", y]
134
+ children: ["Element Reference ", b]
131
135
  }),
132
- T && !z && y === "segment" && /* @__PURE__ */ h("div", { children: [
136
+ E && !B && b === "segment" && /* @__PURE__ */ g("div", { children: [
133
137
  "Segment ",
134
- /* @__PURE__ */ m("b", { children: b }),
138
+ /* @__PURE__ */ h("b", { children: x }),
135
139
  " not found, publish to ",
136
- /* @__PURE__ */ m("b", { children: E }),
140
+ /* @__PURE__ */ h("b", { children: D }),
137
141
  " environment"
138
142
  ] })
139
143
  ]
140
144
  });
141
- }, v = e(_);
145
+ }, y = t(v);
142
146
  //#endregion
143
- export { _ as Reference, v as default };
147
+ export { v as Reference, y as default };
@@ -53,8 +53,8 @@ declare const declaration: {
53
53
  readonly settings: {};
54
54
  };
55
55
  } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
56
- referenceId: string;
57
56
  referenceType: import('@plitzi/sdk-shared').ElementLayoutType;
57
+ referenceId: string;
58
58
  referenceContainer: string;
59
59
  }>>;
60
60
  export default declaration;
@@ -52,8 +52,8 @@ declare const Reference: {
52
52
  readonly settings: {};
53
53
  };
54
54
  } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
55
- referenceId: string;
56
55
  referenceType: import('@plitzi/sdk-shared').ElementLayoutType;
56
+ referenceId: string;
57
57
  referenceContainer: string;
58
58
  }>>;
59
59
  export default Reference;
@@ -1595,7 +1595,9 @@ export declare const elementDeclarations: {
1595
1595
  readonly settings: {};
1596
1596
  };
1597
1597
  } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
1598
+ layout?: string | undefined;
1598
1599
  subType?: "div" | "header" | "footer" | "nav" | "main" | "section" | "article" | "aside" | "address" | "figure" | undefined;
1600
+ layoutContainer?: string | undefined;
1599
1601
  }>>;
1600
1602
  readonly Link: {
1601
1603
  readonly type: "link";
@@ -2667,8 +2669,8 @@ export declare const elementDeclarations: {
2667
2669
  readonly settings: {};
2668
2670
  };
2669
2671
  } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
2670
- referenceId: string;
2671
2672
  referenceType: import('@plitzi/sdk-shared').ElementLayoutType;
2673
+ referenceId: string;
2672
2674
  referenceContainer: string;
2673
2675
  }>>;
2674
2676
  readonly RichText: {
@@ -1,6 +1,12 @@
1
1
  import { ReactNode, RefObject } from 'react';
2
2
  export type LayoutContainerProps = {
3
3
  ref?: RefObject<HTMLElement>;
4
+ /**
5
+ * The layout this one is shown inside, and the container in it that takes this one — the same pair a page names.
6
+ * Read by the page that renders the chain (`useLayoutChain`), not here.
7
+ */
8
+ layout?: string;
9
+ layoutContainer?: string;
4
10
  className?: string;
5
11
  children?: ReactNode;
6
12
  subType?: 'div' | 'header' | 'footer' | 'nav' | 'main' | 'section' | 'article' | 'aside' | 'address' | 'figure';
@@ -7,41 +7,49 @@ import { throttle as o } from "@plitzi/plitzi-ui/helpers";
7
7
  import { jsx as s } from "react/jsx-runtime";
8
8
  import c from "clsx";
9
9
  //#region src/elements/internal/LayoutContainer/LayoutContainer.tsx
10
- var l = ({ ref: e, className: l = "", children: u, subType: d = "div" }) => {
11
- let { plitziElementLayout: f } = t(), { settings: { previewMode: p } } = a(), m = r((e, t) => {
12
- if (!e || !t) return;
13
- let n = t.getBoundingClientRect(), r = n.top - 0, i = n.left - 0, a = i + n.width + 0, o = r + n.height + 0, s = `
10
+ var l = ".plitzi-component__layout-container", u = ".plitzi-component--layout-body", d = (e) => [...e.querySelectorAll(u)].find((e) => !e.querySelector(u)) ?? null, f = ({ ref: e, className: u = "", children: f, subType: p = "div" }) => {
11
+ let { plitziElementLayout: m } = t(), { settings: { previewMode: h } } = a(), g = r((e, t) => {
12
+ if (!e) return;
13
+ if (!t) {
14
+ e.style.removeProperty("--child-clip");
15
+ return;
16
+ }
17
+ let n = e.getBoundingClientRect(), r = t.getBoundingClientRect(), i = e.offsetWidth > 0 ? n.width / e.offsetWidth : 1, a = (r.top - n.top) / i, o = (r.left - n.left) / i, s = o + r.width / i, c = a + r.height / i, l = `
14
18
  polygon(
15
19
  evenodd,
16
20
  /* outer rect */
17
21
  0 0, 100% 0, 100% 100%, 0% 100%, 0 0,
18
22
  /* inner rect */
19
- ${i}px ${r}px, ${a}px ${r}px, ${a}px ${o}px, ${i}px ${o}px, ${i}px ${r}px
23
+ ${o}px ${a}px, ${s}px ${a}px, ${s}px ${c}px, ${o}px ${c}px, ${o}px ${a}px
20
24
  )`;
21
- e.style.setProperty("--child-clip", s);
25
+ e.style.setProperty("--child-clip", l);
22
26
  }, []);
23
27
  return i(() => {
24
- if (!f || !e?.current || p) return;
25
- let t = o(() => {
26
- let t = e.current, n = t.querySelector(".plitzi-component--layout-body");
27
- m(t, n);
28
- }, 150), n = new ResizeObserver(t);
29
- n.observe(e.current);
30
- let r = e.current.querySelector(".plitzi-component--layout-body");
31
- return r && n.observe(r), () => {
32
- t.cancel(), n.disconnect();
28
+ let t = e?.current;
29
+ if (!m || !t || h || t.parentElement?.closest(l)) return;
30
+ let n = null, r = o(() => {
31
+ let e = d(t);
32
+ e !== n && (n && i.unobserve(n), e && i.observe(e), n = e), g(t, e);
33
+ }, 50), i = new ResizeObserver(r);
34
+ i.observe(t);
35
+ let a = new MutationObserver(r);
36
+ return a.observe(t, {
37
+ childList: !0,
38
+ subtree: !0
39
+ }), t.addEventListener("scroll", r, !0), r(), () => {
40
+ r.cancel(), i.disconnect(), a.disconnect(), t.removeEventListener("scroll", r, !0);
33
41
  };
34
42
  }, [
35
- f,
36
- p,
43
+ m,
44
+ h,
37
45
  e,
38
- m
46
+ g
39
47
  ]), /* @__PURE__ */ s(n, {
40
48
  ref: e,
41
- tag: d,
42
- className: c("plitzi-component__layout-container", l),
43
- children: u
49
+ tag: p,
50
+ className: c("plitzi-component__layout-container", u),
51
+ children: f
44
52
  });
45
- }, u = e(l);
53
+ }, p = e(f);
46
54
  //#endregion
47
- export { l as LayoutContainer, u as default };
55
+ export { f as LayoutContainer, p as default };
@@ -1,7 +1,10 @@
1
1
  type SettingsProps = {
2
+ id?: string;
3
+ layout?: string;
4
+ layoutContainer?: string;
2
5
  subType?: 'div' | 'header' | 'footer' | 'nav' | 'main' | 'section' | 'article' | 'aside' | 'address' | 'figure';
3
6
  folder?: string;
4
7
  onUpdate?: (key: string, value: string | boolean | number) => void;
5
8
  };
6
- declare const Settings: ({ subType, folder, onUpdate }: SettingsProps) => import("react").JSX.Element;
9
+ declare const Settings: ({ id, layout, layoutContainer, subType, folder, onUpdate }: SettingsProps) => import("react").JSX.Element;
7
10
  export default Settings;