@plitzi/sdk-elements 0.33.1 → 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/Component/ComponentProvider.mjs +20 -20
  3. package/dist/Component/index.mjs +3 -3
  4. package/dist/Element/ElementContext.d.ts +16 -4
  5. package/dist/Element/JsxManager.mjs +6 -7
  6. package/dist/Element/PluginRemote.d.ts +1 -2
  7. package/dist/Element/PluginRemote.mjs +14 -12
  8. package/dist/Element/RootElement.d.ts +1 -1
  9. package/dist/Element/RootElement.mjs +8 -6
  10. package/dist/Element/ServerStaticShell.d.ts +10 -10
  11. package/dist/Element/ServerStaticShell.mjs +8 -8
  12. package/dist/Element/helpers/elementConstants.mjs +35 -0
  13. package/dist/Element/helpers/elementUtils.d.ts +8 -1
  14. package/dist/Element/helpers/elementUtils.mjs +7 -34
  15. package/dist/Element/helpers/getInteractions.d.ts +1 -1
  16. package/dist/Element/helpers/getInteractions.mjs +61 -64
  17. package/dist/Element/helpers/loadComponent.d.ts +1 -1
  18. package/dist/Element/helpers/loadComponent.mjs +19 -19
  19. package/dist/Element/helpers/pluginSelector.d.ts +0 -1
  20. package/dist/Element/helpers/pluginSelector.mjs +2 -6
  21. package/dist/Element/helpers/renderStaticTag.d.ts +6 -2
  22. package/dist/Element/helpers/renderStaticTag.mjs +5 -4
  23. package/dist/Element/hocs/withElement.mjs +80 -77
  24. package/dist/Element/hooks/useElementInteractions.mjs +29 -18
  25. package/dist/Element/hooks/useElementInternal.d.ts +3 -1
  26. package/dist/Element/hooks/useElementInternal.mjs +82 -58
  27. package/dist/Element/hooks/useElementState.mjs +3 -2
  28. package/dist/Element/hooks/useInternalItems.d.ts +3 -1
  29. package/dist/Element/hooks/useInternalItems.mjs +47 -44
  30. package/dist/Element/hooks/useRootElementInteractions.mjs +30 -30
  31. package/dist/Element/hooks/useRscData.d.ts +10 -0
  32. package/dist/Element/hooks/useRscData.mjs +9 -5
  33. package/dist/components/ElementAdvancedEditor.mjs +19 -19
  34. package/dist/dataSource/GlobalSources.mjs +60 -51
  35. package/dist/elements/advanced/BlockHtml/BlockHtml.mjs +9 -9
  36. package/dist/elements/advanced/BlockHtml/declaration.d.ts +55 -0
  37. package/dist/elements/advanced/BlockHtml/declaration.mjs +42 -0
  38. package/dist/elements/advanced/BlockHtml/index.d.ts +39 -36
  39. package/dist/elements/advanced/BlockHtml/index.mjs +3 -38
  40. package/dist/elements/advanced/BlockJsx/BlockJsx.mjs +9 -9
  41. package/dist/elements/advanced/BlockJsx/Settings.mjs +8 -8
  42. package/dist/elements/advanced/BlockJsx/declaration.d.ts +59 -0
  43. package/dist/elements/advanced/BlockJsx/declaration.mjs +47 -0
  44. package/dist/elements/advanced/BlockJsx/index.d.ts +40 -39
  45. package/dist/elements/advanced/BlockJsx/index.mjs +3 -43
  46. package/dist/elements/advanced/Custom/Custom.d.ts +1 -2
  47. package/dist/elements/advanced/Custom/Custom.mjs +32 -33
  48. package/dist/elements/advanced/Custom/Settings.d.ts +1 -2
  49. package/dist/elements/advanced/Custom/Settings.mjs +44 -53
  50. package/dist/elements/advanced/Custom/declaration.d.ts +63 -0
  51. package/dist/elements/advanced/Custom/declaration.mjs +48 -0
  52. package/dist/elements/advanced/Custom/index.d.ts +47 -45
  53. package/dist/elements/advanced/Custom/index.mjs +3 -49
  54. package/dist/elements/advanced/NodeHtml/NodeHtml.mjs +6 -6
  55. package/dist/elements/advanced/NodeHtml/declaration.d.ts +353 -0
  56. package/dist/elements/advanced/NodeHtml/declaration.mjs +48 -0
  57. package/dist/elements/advanced/NodeHtml/index.d.ts +325 -49
  58. package/dist/elements/advanced/NodeHtml/index.mjs +4 -49
  59. package/dist/elements/advanced/Reference/Reference.mjs +13 -13
  60. package/dist/elements/advanced/Reference/declaration.d.ts +60 -0
  61. package/dist/elements/advanced/Reference/declaration.mjs +47 -0
  62. package/dist/elements/advanced/Reference/index.d.ts +44 -43
  63. package/dist/elements/advanced/Reference/index.mjs +4 -48
  64. package/dist/elements/basic/Button/Button.mjs +8 -8
  65. package/dist/elements/basic/Button/declaration.d.ts +127 -0
  66. package/dist/elements/basic/Button/declaration.mjs +101 -0
  67. package/dist/elements/basic/Button/index.d.ts +98 -98
  68. package/dist/elements/basic/Button/index.mjs +3 -103
  69. package/dist/elements/basic/Dropdown/Dropdown.mjs +13 -13
  70. package/dist/elements/basic/Dropdown/DropdownPopup/DropdownPopup.mjs +7 -7
  71. package/dist/elements/basic/Dropdown/DropdownPopup/Settings.mjs +5 -0
  72. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.d.ts +67 -0
  73. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.mjs +60 -0
  74. package/dist/elements/basic/Dropdown/DropdownPopup/index.d.ts +52 -54
  75. package/dist/elements/basic/Dropdown/DropdownPopup/index.mjs +4 -60
  76. package/dist/elements/basic/Dropdown/declaration.d.ts +86 -0
  77. package/dist/elements/basic/Dropdown/declaration.mjs +70 -0
  78. package/dist/elements/basic/Dropdown/index.d.ts +131 -124
  79. package/dist/elements/basic/Dropdown/index.mjs +7 -70
  80. package/dist/elements/basic/Dropdown/useDropdown.mjs +1 -1
  81. package/dist/elements/basic/Heading/Heading.mjs +8 -8
  82. package/dist/elements/basic/Heading/declaration.d.ts +149 -0
  83. package/dist/elements/basic/Heading/declaration.mjs +113 -0
  84. package/dist/elements/basic/Heading/index.d.ts +108 -104
  85. package/dist/elements/basic/Heading/index.mjs +4 -110
  86. package/dist/elements/basic/Link/Link.d.ts +8 -1
  87. package/dist/elements/basic/Link/Link.mjs +33 -31
  88. package/dist/elements/basic/Link/declaration.d.ts +66 -0
  89. package/dist/elements/basic/Link/declaration.mjs +52 -0
  90. package/dist/elements/basic/Link/index.d.ts +49 -45
  91. package/dist/elements/basic/Link/index.mjs +4 -51
  92. package/dist/elements/basic/Markdown/Markdown.mjs +6 -6
  93. package/dist/elements/basic/Markdown/declaration.d.ts +58 -0
  94. package/dist/elements/basic/Markdown/declaration.mjs +45 -0
  95. package/dist/elements/basic/Markdown/index.d.ts +41 -38
  96. package/dist/elements/basic/Markdown/index.mjs +4 -42
  97. package/dist/elements/basic/Paragraph/Paragraph.mjs +8 -8
  98. package/dist/elements/basic/Paragraph/declaration.d.ts +58 -0
  99. package/dist/elements/basic/Paragraph/declaration.mjs +45 -0
  100. package/dist/elements/basic/Paragraph/index.d.ts +41 -38
  101. package/dist/elements/basic/Paragraph/index.mjs +4 -42
  102. package/dist/elements/basic/RichText/RichText.mjs +8 -8
  103. package/dist/elements/basic/RichText/declaration.d.ts +61 -0
  104. package/dist/elements/basic/RichText/declaration.mjs +48 -0
  105. package/dist/elements/basic/RichText/index.d.ts +45 -44
  106. package/dist/elements/basic/RichText/index.mjs +4 -49
  107. package/dist/elements/basic/Text/Text.mjs +8 -8
  108. package/dist/elements/basic/Text/declaration.d.ts +59 -0
  109. package/dist/elements/basic/Text/declaration.mjs +46 -0
  110. package/dist/elements/basic/Text/index.d.ts +42 -39
  111. package/dist/elements/basic/Text/index.mjs +4 -43
  112. package/dist/elements/basic/ThemeToggle/ThemeToggle.d.ts +31 -0
  113. package/dist/elements/basic/ThemeToggle/ThemeToggle.mjs +114 -0
  114. package/dist/elements/basic/ThemeToggle/declaration.d.ts +71 -0
  115. package/dist/elements/basic/ThemeToggle/declaration.mjs +58 -0
  116. package/dist/elements/basic/ThemeToggle/index.d.ts +70 -0
  117. package/dist/elements/basic/ThemeToggle/index.mjs +6 -0
  118. package/dist/elements/declarations/index.d.ts +3098 -0
  119. package/dist/elements/declarations/index.mjs +75 -0
  120. package/dist/elements/form/Form/Form.d.ts +4 -0
  121. package/dist/elements/form/Form/Form.mjs +131 -100
  122. package/dist/elements/form/Form/declaration.d.ts +64 -0
  123. package/dist/elements/form/Form/declaration.mjs +49 -0
  124. package/dist/elements/form/Form/index.d.ts +44 -39
  125. package/dist/elements/form/Form/index.mjs +11 -48
  126. package/dist/elements/form/FormControl/FormControl.d.ts +21 -3
  127. package/dist/elements/form/FormControl/FormControl.mjs +142 -116
  128. package/dist/elements/form/FormControl/Settings.d.ts +7 -1
  129. package/dist/elements/form/FormControl/Settings.mjs +78 -33
  130. package/dist/elements/form/FormControl/declaration.d.ts +497 -0
  131. package/dist/elements/form/FormControl/declaration.mjs +197 -0
  132. package/dist/elements/form/FormControl/helpers/validateField.d.ts +27 -0
  133. package/dist/elements/form/FormControl/helpers/validateField.mjs +16 -0
  134. package/dist/elements/form/FormControl/hocs/withFieldValue.d.ts +6 -0
  135. package/dist/elements/form/FormControl/hocs/withFieldValue.mjs +73 -50
  136. package/dist/elements/form/FormControl/index.d.ts +186 -180
  137. package/dist/elements/form/FormControl/index.mjs +10 -186
  138. package/dist/elements/form/FormControl/inputs/Input.d.ts +3 -1
  139. package/dist/elements/form/FormControl/inputs/Input.mjs +16 -15
  140. package/dist/elements/form/FormControl/inputs/Select.mjs +16 -9
  141. package/dist/elements/form/FormControl/inputs/Textarea.d.ts +3 -1
  142. package/dist/elements/form/FormControl/inputs/Textarea.mjs +10 -9
  143. package/dist/elements/index.d.ts +3 -1
  144. package/dist/elements/index.mjs +36 -34
  145. package/dist/elements/internal/LayoutContainer/LayoutContainer.mjs +18 -18
  146. package/dist/elements/internal/LayoutContainer/declaration.d.ts +57 -0
  147. package/dist/elements/internal/LayoutContainer/declaration.mjs +44 -0
  148. package/dist/elements/internal/LayoutContainer/index.d.ts +41 -39
  149. package/dist/elements/internal/LayoutContainer/index.mjs +4 -42
  150. package/dist/elements/internal/Loading/Loading.mjs +8 -8
  151. package/dist/elements/internal/Loading/declaration.d.ts +51 -0
  152. package/dist/elements/internal/Loading/declaration.mjs +42 -0
  153. package/dist/elements/internal/Loading/index.d.ts +36 -36
  154. package/dist/elements/internal/Loading/index.mjs +4 -40
  155. package/dist/elements/internal/NotFound/NotFound.mjs +8 -8
  156. package/dist/elements/internal/NotFound/declaration.d.ts +51 -0
  157. package/dist/elements/internal/NotFound/declaration.mjs +42 -0
  158. package/dist/elements/internal/NotFound/index.d.ts +36 -36
  159. package/dist/elements/internal/NotFound/index.mjs +3 -39
  160. package/dist/elements/internal/Page/Page.mjs +26 -22
  161. package/dist/elements/internal/Page/declaration.d.ts +80 -0
  162. package/dist/elements/internal/Page/declaration.mjs +65 -0
  163. package/dist/elements/internal/Page/index.d.ts +63 -57
  164. package/dist/elements/internal/Page/index.mjs +4 -63
  165. package/dist/elements/media/FontAwesome/FontAwesome.mjs +10 -18
  166. package/dist/elements/media/FontAwesome/declaration.d.ts +62 -0
  167. package/dist/elements/media/FontAwesome/declaration.mjs +49 -0
  168. package/dist/elements/media/FontAwesome/index.d.ts +45 -40
  169. package/dist/elements/media/FontAwesome/index.mjs +4 -46
  170. package/dist/elements/media/Image/Image.d.ts +1 -1
  171. package/dist/elements/media/Image/Image.mjs +21 -21
  172. package/dist/elements/media/Image/declaration.d.ts +65 -0
  173. package/dist/elements/media/Image/declaration.mjs +51 -0
  174. package/dist/elements/media/Image/index.d.ts +48 -43
  175. package/dist/elements/media/Image/index.mjs +4 -49
  176. package/dist/elements/media/Video/Video.mjs +8 -8
  177. package/dist/elements/media/Video/declaration.d.ts +67 -0
  178. package/dist/elements/media/Video/declaration.mjs +52 -0
  179. package/dist/elements/media/Video/index.d.ts +50 -44
  180. package/dist/elements/media/Video/index.mjs +4 -50
  181. package/dist/elements/provider/ApiContainer/ApiContainer.d.ts +10 -1
  182. package/dist/elements/provider/ApiContainer/ApiContainer.mjs +95 -114
  183. package/dist/elements/provider/ApiContainer/Settings.d.ts +3 -2
  184. package/dist/elements/provider/ApiContainer/Settings.mjs +156 -119
  185. package/dist/elements/provider/ApiContainer/declaration.d.ts +77 -0
  186. package/dist/elements/provider/ApiContainer/declaration.mjs +60 -0
  187. package/dist/elements/provider/ApiContainer/hooks/useApi.d.ts +10 -0
  188. package/dist/elements/provider/ApiContainer/hooks/useApi.mjs +35 -30
  189. package/dist/elements/provider/ApiContainer/hooks/useProviderWrite.mjs +22 -15
  190. package/dist/elements/provider/ApiContainer/index.d.ts +53 -55
  191. package/dist/elements/provider/ApiContainer/index.mjs +4 -60
  192. package/dist/elements/structure/Container/Container.mjs +5 -5
  193. package/dist/elements/structure/Container/declaration.d.ts +57 -0
  194. package/dist/elements/structure/Container/declaration.mjs +44 -0
  195. package/dist/elements/structure/Container/index.d.ts +41 -42
  196. package/dist/elements/structure/Container/index.mjs +3 -44
  197. package/dist/elements/structure/DialogContainer/DialogContainer.mjs +65 -66
  198. package/dist/elements/structure/DialogContainer/declaration.d.ts +155 -0
  199. package/dist/elements/structure/DialogContainer/declaration.mjs +130 -0
  200. package/dist/elements/structure/DialogContainer/index.d.ts +124 -116
  201. package/dist/elements/structure/DialogContainer/index.mjs +4 -126
  202. package/dist/elements/structure/List/List.mjs +9 -9
  203. package/dist/elements/structure/List/ListItem/ListItem.mjs +5 -5
  204. package/dist/elements/structure/List/ListItem/declaration.d.ts +52 -0
  205. package/dist/elements/structure/List/ListItem/declaration.mjs +43 -0
  206. package/dist/elements/structure/List/ListItem/index.d.ts +37 -40
  207. package/dist/elements/structure/List/ListItem/index.mjs +4 -44
  208. package/dist/elements/structure/List/declaration.d.ts +90 -0
  209. package/dist/elements/structure/List/declaration.mjs +73 -0
  210. package/dist/elements/structure/List/index.d.ts +116 -117
  211. package/dist/elements/structure/List/index.mjs +7 -75
  212. package/dist/elements/structure/List/modes/ListControlled/ListControlled.mjs +30 -29
  213. package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.d.ts +3 -2
  214. package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.mjs +2 -2
  215. package/dist/elements/structure/ModalContainer/ModalContainer.mjs +47 -46
  216. package/dist/elements/structure/ModalContainer/declaration.d.ts +151 -0
  217. package/dist/elements/structure/ModalContainer/declaration.mjs +128 -0
  218. package/dist/elements/structure/ModalContainer/index.d.ts +117 -112
  219. package/dist/elements/structure/ModalContainer/index.mjs +4 -124
  220. package/dist/elements/structure/Pagination/Pagination.mjs +9 -9
  221. package/dist/elements/structure/Pagination/declaration.d.ts +76 -0
  222. package/dist/elements/structure/Pagination/declaration.mjs +58 -0
  223. package/dist/elements/structure/Pagination/index.d.ts +59 -51
  224. package/dist/elements/structure/Pagination/index.mjs +4 -57
  225. package/dist/elements/structure/TabContainer/TabContainer.mjs +8 -8
  226. package/dist/elements/structure/TabContainer/TabContainerBody/TabContainerBody.mjs +8 -8
  227. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.d.ts +54 -0
  228. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.mjs +49 -0
  229. package/dist/elements/structure/TabContainer/TabContainerBody/index.d.ts +39 -42
  230. package/dist/elements/structure/TabContainer/TabContainerBody/index.mjs +4 -50
  231. package/dist/elements/structure/TabContainer/TabContainerHeader/TabContainerHeader.mjs +8 -8
  232. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.d.ts +54 -0
  233. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.mjs +49 -0
  234. package/dist/elements/structure/TabContainer/TabContainerHeader/index.d.ts +39 -42
  235. package/dist/elements/structure/TabContainer/TabContainerHeader/index.mjs +4 -50
  236. package/dist/elements/structure/TabContainer/TabContainerItem/TabContainerItem.mjs +7 -7
  237. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +53 -0
  238. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.mjs +48 -0
  239. package/dist/elements/structure/TabContainer/TabContainerItem/index.d.ts +38 -41
  240. package/dist/elements/structure/TabContainer/TabContainerItem/index.mjs +4 -49
  241. package/dist/elements/structure/TabContainer/declaration.d.ts +54 -0
  242. package/dist/elements/structure/TabContainer/declaration.mjs +45 -0
  243. package/dist/elements/structure/TabContainer/index.d.ts +163 -174
  244. package/dist/elements/structure/TabContainer/index.mjs +11 -51
  245. package/dist/index.d.ts +2618 -2200
  246. package/dist/index.mjs +38 -36
  247. package/package.json +182 -14
@@ -1,57 +1,60 @@
1
- import e from "../helpers/pluginSelector.mjs";
2
- import t from "../ServerStaticShell.mjs";
3
- import { isValidElement as n, use as r, useMemo as i, useRef as a, useSyncExternalStore as o } from "react";
4
- import { useCommonStore as s } from "@plitzi/sdk-shared/store";
5
- import { get as c } from "@plitzi/plitzi-ui/helpers";
6
- import { usePlitziServiceContext as l } from "@plitzi/sdk-shared";
7
- import u from "@plitzi/sdk-shared/elements/ComponentContext";
8
- import { jsx as d } from "react/jsx-runtime";
1
+ import e, { getRemoteSettings as t } from "../helpers/pluginSelector.mjs";
2
+ import n from "../ServerStaticShell.mjs";
3
+ import { Fragment as r, isValidElement as i, use as a, useMemo as o, useRef as s, useSyncExternalStore as c } from "react";
4
+ import { useCommonStore as l } from "@plitzi/sdk-shared/store";
5
+ import { get as u } from "@plitzi/plitzi-ui/helpers";
6
+ import { usePlitziServiceContext as d } from "@plitzi/sdk-shared";
7
+ import f from "@plitzi/sdk-shared/elements/ComponentContext";
8
+ import { jsx as p } from "react/jsx-runtime";
9
9
  //#region src/Element/hooks/useInternalItems.tsx
10
- var f = typeof window > "u", p = () => () => {}, m = () => !0, h = () => !1, g = ({ id: g, definition: _, plitziElementLayout: v, children: y, previewMode: b }) => {
11
- let [[x, S]] = s(["schema.flat", "rsc.enabled"], { mode: "mount" }), { components: C } = r(u), { contexts: { PluginsContext: w } } = l(), { plugins: T } = r(w), { items: E } = _, D = v || y || E?.length, O = a(v), k = a(0);
12
- O.current !== v && (O.current = v, k.current += 1);
13
- let A = k.current, j = o(p, m, h);
14
- return i(() => {
15
- if (!D) return;
16
- let r = (E ?? []).filter((e) => {
17
- let t = x[e];
10
+ var m = typeof window > "u", h = "#layout-body", g = "#children", _ = () => () => {}, v = () => !0, y = () => !1, b = ({ id: b, definition: x, plitziElementLayout: S, children: C, previewMode: w, visible: T = !0 }) => {
11
+ let [[E, D]] = l(["schema.flat", "rsc.enabled"], { mode: "mount" }), { components: O, componentDefinitions: k } = a(f), { contexts: { PluginsContext: A } } = d(), { plugins: j } = a(A), { items: M } = x, N = k.current[x.type], P = x.loadStrategy ?? N?.definition.loadStrategy ?? "eager", F = S || C || M?.length, I = s(!1);
12
+ T && (I.current = !0);
13
+ let L = !w || P === "eager" || T || P === "lazy" && I.current, R = S ? `${S.type}:${S.rootId}:${S.containerId}` : "", z = c(_, v, y);
14
+ return o(() => {
15
+ if (!F || !L) return;
16
+ let a = (M ?? []).filter((e) => {
17
+ let t = E[e];
18
18
  if (!t) return !1;
19
- if (!b || !S) return !0;
19
+ if (!w || !D) return !0;
20
20
  let n = t.definition.runtime ?? "shared";
21
- return !(!j && n === "client");
22
- }).map((n) => {
23
- let { rootId: r, type: i, runtime: a } = c(x, `${n}.definition`, {}), o = c(v, "rootId", r);
24
- return S && a === "server" && !f && b ? /* @__PURE__ */ d(t, { id: n }, n) : e({
25
- key: !b && v ? `${n}_${A}` : n,
26
- plitziElementLayout: v,
27
- type: i,
21
+ return !(!z && n === "client");
22
+ }).map((r) => {
23
+ let { rootId: i, type: a, runtime: o } = u(E, `${r}.definition`, {}), s = u(S, "rootId", i), c = a in O.current || !!t({
24
+ type: a,
25
+ plugins: j
26
+ }), l = e({
27
+ key: !w && S ? `${r}_${R}` : r,
28
+ plitziElementLayout: S,
29
+ type: a,
28
30
  internalProps: {
29
- id: n,
30
- rootId: o
31
+ id: r,
32
+ rootId: s
31
33
  },
32
- components: C.current,
33
- plugins: T
34
+ components: O.current,
35
+ plugins: j
34
36
  });
37
+ return D && o === "server" && !m && w && !(z && c) ? /* @__PURE__ */ p(n, {
38
+ id: r,
39
+ children: l
40
+ }, r) : l;
35
41
  });
36
- if (v) {
37
- let { containerId: e, bodyChildren: t } = v;
38
- e === g && r.push(t);
39
- }
40
- if (Array.isArray(y) ? r.push(...y.filter(n)) : n(y) && r.push(y), E) return r.length === 1 ? r[0] : r;
42
+ if (S?.containerId === b && a.push(/* @__PURE__ */ p(r, { children: S.bodyChildren }, h)), Array.isArray(C) ? a.push(...C.filter(i)) : i(C) && a.push(/* @__PURE__ */ p(r, { children: C }, g)), M) return a.length === 1 ? a[0] : a;
41
43
  }, [
42
- D,
43
- E,
44
- v,
45
- y,
46
- x,
47
- b,
44
+ F,
45
+ L,
46
+ M,
48
47
  S,
49
- j,
50
- A,
51
48
  C,
52
- T,
53
- g
49
+ E,
50
+ w,
51
+ D,
52
+ z,
53
+ R,
54
+ O,
55
+ j,
56
+ b
54
57
  ]);
55
58
  };
56
59
  //#endregion
57
- export { g as default };
60
+ export { b as default };
@@ -9,62 +9,62 @@ import f from "clsx";
9
9
  import { pConsole as p } from "@plitzi/sdk-shared/devTools/utils/PlitziConsole";
10
10
  //#region src/Element/hooks/useRootElementInteractions.ts
11
11
  var m = ({ elementContext: m, InteractionsContext: h, previewMode: g, debugMode: _, baseElementId: v, className: y, interactionTriggers: b, interactionCallbacks: x, otherProps: S }) => {
12
- let { id: C, idRef: w, className: T, attributes: E, definition: D, definition: { interactions: O }, plitziElementLayout: k, elementState: A, setElementState: j } = m, { interactionsManager: M, useInteractions: N } = i(h), P = a((e, t, n, r, i = !1) => {
13
- i || e.preventDefault(), r && r(e), M.interactionTrigger(t, n, { event: e });
14
- }, [M]), F = s(() => !g || !O || !w ? {} : Object.values(O).filter((e) => e.type === "trigger" && e.action && r.includes(e.action) && e.enabled).reduce((e, t) => {
12
+ let { id: C, className: w, attributes: T, definition: E, definition: { interactions: D }, plitziElementLayout: O, elementState: k, setElementState: A } = m, { interactionsManager: j, useInteractions: M } = i(h), N = a((e, t, n, r, i = !1) => {
13
+ i || e.preventDefault(), r && r(e), j.interactionTrigger(t, n, { event: e });
14
+ }, [j]), P = s(() => !g || !D ? {} : Object.values(D).filter((e) => e.type === "trigger" && e.action && r.includes(e.action) && e.enabled).reduce((e, t) => {
15
15
  let n = u(t, "params.propagateEvent", !1);
16
16
  return {
17
17
  ...e,
18
- [t.action]: (e) => P(e, w, t.action, S[t.action], n)
18
+ [t.action]: (e) => N(e, C, t.action, S[t.action], n)
19
19
  };
20
20
  }, {}), [
21
- w,
22
- O,
21
+ C,
22
+ D,
23
23
  S,
24
24
  g,
25
- P
26
- ]), I = _ || !!(O && Object.keys(O).length), [L = d] = l("runtime.sources", { enabled: I }), R = c({});
27
- R.current = L;
28
- let z = a(() => ({ dataSource: R.current }), [R]), B = s(() => ({
25
+ N
26
+ ]), F = _ || !!(D && Object.keys(D).length), [I = d] = l("runtime.sources", { enabled: F }), L = c({});
27
+ L.current = I;
28
+ let R = a(() => ({ dataSource: L.current }), [L]), z = s(() => ({
29
29
  ...n,
30
30
  ...b
31
- }), [b]), V = e({
32
- attributes: E,
33
- definition: D,
34
- setElementState: j
31
+ }), [b]), B = e({
32
+ attributes: T,
33
+ definition: E,
34
+ setElementState: A
35
35
  });
36
- N({
37
- id: w,
38
- interactions: O,
39
- triggers: B,
36
+ M({
37
+ id: C,
38
+ interactions: D,
39
+ triggers: z,
40
40
  callbacks: s(() => ({
41
41
  ...x,
42
- ...V
43
- }), [x, V]),
44
- getAdditionalParams: z
42
+ ...B
43
+ }), [x, B]),
44
+ getAdditionalParams: R
45
45
  }), o(() => {
46
- !g || !w || !O || !Object.keys(O).length || M.interactionTrigger(w, "onLoad", {});
46
+ g && D && Object.keys(D).length && j.interactionTrigger(C, "onLoad", {});
47
47
  }, []), o(() => {
48
- if (_) return p.addProviderMethod(`getElementDataSource-${C}`, () => R.current), () => {
48
+ if (_) return p.addProviderMethod(`getElementDataSource-${C}`, () => L.current), () => {
49
49
  p.removeProviderMethod(`getElementDataSource-${C}`);
50
50
  };
51
51
  }, [
52
52
  _,
53
- R,
53
+ L,
54
54
  C
55
55
  ]);
56
- let H = t({
56
+ let V = t({
57
57
  id: C,
58
58
  className: y,
59
59
  previewMode: g,
60
60
  baseElementId: v,
61
- definition: D,
62
- elementState: A,
63
- plitziElementLayout: k
61
+ definition: E,
62
+ elementState: k,
63
+ plitziElementLayout: O
64
64
  });
65
65
  return {
66
- className: f(T, H),
67
- events: F
66
+ className: f(w, V),
67
+ events: P
68
68
  };
69
69
  };
70
70
  //#endregion
@@ -2,6 +2,16 @@ declare const useRscData: <T>() => {
2
2
  enabled: boolean;
3
3
  /** Whether a payload has arrived at all — the builder and client-only renders never see one. */
4
4
  loaded: boolean;
5
+ /** True when the last refresh could not reach the server: what is on screen is from before that. */
6
+ stale: boolean;
7
+ /**
8
+ * The location the payload in the store was resolved for.
9
+ *
10
+ * A caller compares it with where the visitor is now: a route change renders the new page long before its
11
+ * data can arrive, and an element that cannot tell "nobody has asked for me yet" from "there is nothing here"
12
+ * paints the second one. Compared by whoever already re-renders on navigation, which this hook does not.
13
+ */
14
+ location: string | undefined;
5
15
  elementData: NonNullable<T> | null;
6
16
  isServerElement: boolean;
7
17
  refresh: (ids?: string[], params?: Record<string, string>) => Promise<void>;
@@ -4,17 +4,21 @@ import { rscDataPath as n } from "@plitzi/sdk-shared/server/rsc/refreshRsc";
4
4
  import r from "@plitzi/sdk-shared/server/rsc/useRscRefresh";
5
5
  //#region src/Element/hooks/useRscData.ts
6
6
  var i = () => {
7
- let { id: i } = e(), [[a = !1, o = !1, s]] = t([
7
+ let { id: i } = e(), [[a = !1, o = !1, s = !1, c, l]] = t([
8
8
  "rsc.enabled",
9
9
  "rsc.loaded",
10
+ "rsc.stale",
11
+ "rsc.location",
10
12
  n(i)
11
- ]), c = r();
13
+ ]), u = r();
12
14
  return {
13
15
  enabled: a,
14
16
  loaded: o,
15
- elementData: s ?? null,
16
- isServerElement: s !== void 0,
17
- refresh: c
17
+ stale: s,
18
+ location: c,
19
+ elementData: l ?? null,
20
+ isServerElement: l !== void 0,
21
+ refresh: u
18
22
  };
19
23
  };
20
24
  //#endregion
@@ -3,15 +3,15 @@ import { get as r } from "@plitzi/plitzi-ui/helpers";
3
3
  import i from "@plitzi/sdk-shared/elements/ComponentContext";
4
4
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
5
  import s from "clsx";
6
- import c from "@plitzi/plitzi-ui/Button";
7
- import l from "@plitzi/plitzi-ui/CodeMirror";
8
- import u from "@plitzi/plitzi-ui/ContainerFloating";
9
- import d from "@plitzi/sdk-shared/hooks/useNetwork";
10
- import f from "@plitzi/sdk-shared/network/NetworkContext";
11
- import { ThemeContext as p } from "@plitzi/sdk-shared/theme/ThemeProvider";
6
+ import c from "@plitzi/sdk-shared/theme/useTheme";
7
+ import l from "@plitzi/plitzi-ui/Button";
8
+ import u from "@plitzi/plitzi-ui/CodeMirror";
9
+ import d from "@plitzi/plitzi-ui/ContainerFloating";
10
+ import f from "@plitzi/sdk-shared/hooks/useNetwork";
11
+ import p from "@plitzi/sdk-shared/network/NetworkContext";
12
12
  //#region src/components/ElementAdvancedEditor.tsx
13
13
  var m = ({ className: m = "", value: h = "", mode: g = "js", onChange: _ }) => {
14
- let { theme: v } = e(p), { componentDefinitions: y } = e(i), { server: b, webKey: x } = e(f), { networkQuery: S, networkLoading: C } = d({
14
+ let { resolvedTheme: v } = c(), { componentDefinitions: y } = e(i), { server: b, webKey: x } = e(p), { networkQuery: S, networkLoading: C } = f({
15
15
  initLoading: !1,
16
16
  server: b,
17
17
  webKey: x
@@ -38,9 +38,9 @@ var m = ({ className: m = "", value: h = "", mode: g = "js", onChange: _ }) => {
38
38
  ]), D = t((e) => () => _?.(`${h}<${e}></${e}>`), [_, h]);
39
39
  return /* @__PURE__ */ o("div", {
40
40
  className: s("relative flex h-full flex-col", m),
41
- children: [/* @__PURE__ */ a(l, {
41
+ children: [/* @__PURE__ */ a(u, {
42
42
  value: h,
43
- theme: v === "dark" ? "dark" : "light",
43
+ theme: v,
44
44
  size: "sm",
45
45
  className: "h-full",
46
46
  lineWrapping: !0,
@@ -49,24 +49,24 @@ var m = ({ className: m = "", value: h = "", mode: g = "js", onChange: _ }) => {
49
49
  }), /* @__PURE__ */ o("div", {
50
50
  className: "absolute top-3 right-3 flex",
51
51
  children: [
52
- /* @__PURE__ */ a(c, {
52
+ /* @__PURE__ */ a(l, {
53
53
  intent: "custom",
54
54
  size: "sm",
55
55
  className: "mr-2 rounded-sm bg-white p-2",
56
56
  onClick: E,
57
57
  title: "Auto format",
58
58
  disabled: C,
59
- children: /* @__PURE__ */ a(c.Icon, { icon: "fa-solid fa-wand-magic-sparkles" })
59
+ children: /* @__PURE__ */ a(l.Icon, { icon: "fa-solid fa-wand-magic-sparkles" })
60
60
  }),
61
- /* @__PURE__ */ o(u, {
61
+ /* @__PURE__ */ o(d, {
62
62
  containerTopOffset: 8,
63
- children: [/* @__PURE__ */ a(u.Trigger, { children: /* @__PURE__ */ a(c, {
63
+ children: [/* @__PURE__ */ a(d.Trigger, { children: /* @__PURE__ */ a(l, {
64
64
  intent: "custom",
65
65
  size: "sm",
66
66
  className: "mr-2 rounded-sm bg-white p-2",
67
67
  title: "Plugins",
68
- children: /* @__PURE__ */ a(c.Icon, { icon: "fa-solid fa-puzzle-piece" })
69
- }) }), /* @__PURE__ */ a(u.Content, { children: /* @__PURE__ */ a("ul", {
68
+ children: /* @__PURE__ */ a(l.Icon, { icon: "fa-solid fa-puzzle-piece" })
69
+ }) }), /* @__PURE__ */ a(d.Content, { children: /* @__PURE__ */ a("ul", {
70
70
  className: "max-h-75 overflow-y-auto",
71
71
  children: w.map((e) => /* @__PURE__ */ a("li", {
72
72
  className: "border-gray-300 px-4 py-1 text-sm capitalize not-first:border-t",
@@ -75,14 +75,14 @@ var m = ({ className: m = "", value: h = "", mode: g = "js", onChange: _ }) => {
75
75
  }, e))
76
76
  }) })]
77
77
  }),
78
- /* @__PURE__ */ o(u, {
78
+ /* @__PURE__ */ o(d, {
79
79
  containerTopOffset: 8,
80
- children: [/* @__PURE__ */ a(u.Trigger, { children: /* @__PURE__ */ a(c, {
80
+ children: [/* @__PURE__ */ a(d.Trigger, { children: /* @__PURE__ */ a(l, {
81
81
  intent: "custom",
82
82
  size: "sm",
83
83
  className: "rounded-sm bg-white p-2",
84
- children: /* @__PURE__ */ a(c.Icon, { icon: "fa-solid fa-circle-info" })
85
- }) }), /* @__PURE__ */ a(u.Content, { children: /* @__PURE__ */ o("div", {
84
+ children: /* @__PURE__ */ a(l.Icon, { icon: "fa-solid fa-circle-info" })
85
+ }) }), /* @__PURE__ */ a(d.Content, { children: /* @__PURE__ */ o("div", {
86
86
  className: "flex w-60 flex-col items-center justify-center gap-2 p-2 text-center text-sm",
87
87
  children: [/* @__PURE__ */ o("p", { children: [
88
88
  "Add your own ",
@@ -3,122 +3,131 @@ import { useCommonStore as r, useCommonStoreSync as i, useRenderSettings as a }
3
3
  import { get as o } from "@plitzi/plitzi-ui/helpers";
4
4
  import { getPathsFromObeject as s } from "@plitzi/sdk-shared/helpers/utils";
5
5
  import c from "@plitzi/sdk-shared/dataSource/hooks/useRegisterSource";
6
- import { QueryBuilderEvaluator as l } from "@plitzi/plitzi-ui/QueryBuilder";
7
- import u from "@plitzi/sdk-auth/AuthContext";
6
+ import l from "@plitzi/sdk-auth/AuthContext";
7
+ import { resolveVariables as u } from "@plitzi/sdk-shared/dataSource";
8
8
  //#region src/dataSource/GlobalSources.tsx
9
9
  var d = ({ children: d }) => {
10
- let { environment: f } = a(), [[p, m, h, g, _]] = r([
10
+ let { environment: f } = a(), [[p, m, h, g, _, v]] = r([
11
11
  "schema.variables",
12
12
  "navigation.routeParams",
13
13
  "navigation.queryParams",
14
14
  "navigation.hostname",
15
+ "navigation.origin",
15
16
  "navigation.currentPageId"
16
- ]), v = n(() => p ? p.reduce((e, t) => {
17
- let { name: n, value: r, subValues: i } = t;
18
- if (!Array.isArray(i) || i.length === 0) return {
19
- ...e,
20
- [n]: r
21
- };
22
- let a = {
23
- routeParams: m,
24
- queryParams: h,
25
- hostname: g,
26
- environment: f
27
- }, o = i.find((e) => l(e.when, a));
28
- return {
29
- ...e,
30
- [n]: o ? o.value : r
31
- };
32
- }, {}) : {}, [
17
+ ]), y = n(() => u(p, {
18
+ routeParams: m,
19
+ queryParams: h,
20
+ hostname: g,
21
+ environment: f
22
+ }), [
33
23
  f,
34
24
  g,
35
25
  h,
36
26
  m,
37
27
  p
38
- ]), y = t(() => s(v).map((e) => ({
28
+ ]), b = t(() => s(y).map((e) => ({
39
29
  path: e,
40
30
  name: `variables.${e}`
41
- })), [v]);
31
+ })), [y]);
42
32
  c({
43
33
  id: "global",
44
34
  source: "variables",
45
35
  name: "Variables",
46
- fields: y
47
- }), i("runtime.sources.variables", v);
48
- let [b = {}] = r("pageDefinitions"), x = n(() => Object.values(b).map((e) => ({
36
+ fields: b
37
+ }), i("runtime.sources.variables", y);
38
+ let [x = {}] = r("pageDefinitions"), S = n(() => Object.values(x).map((e) => ({
49
39
  value: e.id,
50
40
  label: o(e, "attributes.name", e.id)
51
- })), [b]), S = n(() => ({
41
+ })), [x]), C = n(() => ({
52
42
  routeParams: m,
53
43
  queryParams: h,
54
- currentPageId: _
44
+ origin: _,
45
+ currentPageId: v
55
46
  }), [
56
47
  m,
57
48
  h,
58
- _
59
- ]), C = t(() => {
49
+ _,
50
+ v
51
+ ]), w = t(() => {
60
52
  let e = s({
61
53
  routeParams: m,
62
54
  queryParams: h
63
55
  }).map((e) => ({
64
56
  path: e,
65
57
  name: `navigation.${e}`
66
- })), t = x.length > 0 ? {
58
+ })), t = {
59
+ path: "origin",
60
+ name: "Origin"
61
+ }, n = S.length > 0 ? {
67
62
  path: "currentPageId",
68
63
  name: "Current Page",
69
64
  inputType: "select",
70
- values: x
65
+ values: S
71
66
  } : {
72
67
  path: "currentPageId",
73
68
  name: "Current Page"
74
69
  };
75
- return [...e, t];
70
+ return [
71
+ ...e,
72
+ t,
73
+ n
74
+ ];
76
75
  }, [
77
76
  m,
78
77
  h,
79
- x
78
+ S
80
79
  ]);
81
80
  c({
82
81
  id: "global",
83
82
  source: "navigation",
84
83
  name: "Navigation",
85
- fields: C
86
- }), i("runtime.sources.navigation", S);
87
- let { user: w, authenticated: T } = e(u), [E = "basic"] = r("schema.settings.userProvider"), D = n(() => E === "" ? {} : {
88
- isAuthenticated: T,
89
- accessToken: w?.accessToken ?? "",
84
+ fields: w
85
+ }), i("runtime.sources.navigation", C);
86
+ let { user: T, authenticated: E } = e(l), [D = "basic"] = r("schema.settings.userProvider"), O = n(() => D === "" ? {} : {
87
+ isAuthenticated: E,
88
+ accessToken: T?.accessToken ?? "",
90
89
  details: {
91
90
  username: "",
92
91
  email: "",
93
92
  roles: "",
94
93
  permissions: "",
95
94
  verified: "",
96
- ...w?.details ?? {}
95
+ ...T?.details ?? {}
97
96
  }
98
97
  }, [
99
- E,
100
- w,
101
- T
102
- ]), O = t(() => s(D).map((e) => ({
98
+ D,
99
+ T,
100
+ E
101
+ ]), k = t(() => s(O).map((e) => ({
103
102
  path: e,
104
103
  name: `user.${e}`
105
- })), [D]);
104
+ })), [O]);
106
105
  c({
107
106
  id: "global",
108
107
  source: "auth",
109
108
  name: "Auth State",
110
- fields: O
111
- }), i("runtime.sources.auth", D);
112
- let [k] = r("runtime.state"), A = t(() => s(k).map((e) => ({
109
+ fields: k
110
+ }), i("runtime.sources.auth", O);
111
+ let [A] = r("runtime.state"), j = t(() => s(A).map((e) => ({
113
112
  path: e,
114
113
  name: `state.${e}`
115
- })), [k]);
116
- return c({
114
+ })), [A]);
115
+ c({
117
116
  id: "global",
118
117
  source: "state",
119
118
  name: "State",
120
- fields: A
121
- }), i("runtime.sources.state", k), d;
119
+ fields: j
120
+ }), i("runtime.sources.state", A);
121
+ let [M] = r("runtime.host"), N = t(() => s(M).map((e) => ({
122
+ path: e,
123
+ name: `host.${e}`
124
+ })), [M]);
125
+ return c({
126
+ id: "global",
127
+ source: "host",
128
+ name: "Host",
129
+ fields: N
130
+ }), i("runtime.sources.host", M), d;
122
131
  };
123
132
  //#endregion
124
133
  export { d as default };
@@ -1,11 +1,11 @@
1
- import { RootElement as e } from "../../../Element/RootElement.mjs";
2
- import t from "../../../Element/hocs/withElement.mjs";
1
+ import e from "../../../Element/hocs/withElement.mjs";
2
+ import { RootElement as t } from "../../../Element/RootElement.mjs";
3
3
  import { useCallback as n, useEffect as r } from "react";
4
4
  import i from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
5
5
  import { jsx as a } from "react/jsx-runtime";
6
6
  import o from "clsx";
7
7
  //#region src/elements/advanced/BlockHtml/BlockHtml.tsx
8
- var s = ({ ref: t, content: s = "", className: c = "" }) => {
8
+ var s = ({ ref: e, content: s = "", className: c = "" }) => {
9
9
  let { settings: { previewMode: l } } = i(), u = n((e) => new Promise((t, n) => {
10
10
  if (typeof document > "u") {
11
11
  n(/* @__PURE__ */ Error("Document is not available"));
@@ -25,17 +25,17 @@ var s = ({ ref: t, content: s = "", className: c = "" }) => {
25
25
  }
26
26
  }, [u]);
27
27
  return r(() => {
28
- let e = t?.current;
29
- e && l && typeof window < "u" && typeof document < "u" && d(e);
28
+ let t = e?.current;
29
+ t && l && typeof window < "u" && typeof document < "u" && d(t);
30
30
  }, [
31
31
  d,
32
32
  l,
33
- t
34
- ]), /* @__PURE__ */ a(e, {
35
- ref: t,
33
+ e
34
+ ]), /* @__PURE__ */ a(t, {
35
+ ref: e,
36
36
  className: o("plitzi-component__block-html", c, { "block-html--empty": s === "" || !s }),
37
37
  dangerouslySetInnerHTML: { __html: s }
38
38
  });
39
- }, c = t(s);
39
+ }, c = e(s);
40
40
  //#endregion
41
41
  export { s as BlockHtml, c as default };
@@ -0,0 +1,55 @@
1
+ import { BlockHtmlProps } from './BlockHtml';
2
+ import { AuthorableAttributes } from '@plitzi/sdk-shared/authoring/declare';
3
+ /** What this element can be authored with — its component's own props, minus what the runtime supplies. */
4
+ export type BlockHtmlAttributes = AuthorableAttributes<BlockHtmlProps>;
5
+ declare const declaration: {
6
+ readonly type: "blockHtml";
7
+ readonly content: {
8
+ readonly attributes: {
9
+ readonly content: "";
10
+ };
11
+ readonly definition: {
12
+ readonly label: "HTML Block";
13
+ readonly type: "blockHtml";
14
+ readonly description: "Renders an arbitrary raw HTML string as a block. Escape hatch when no structured element fits.";
15
+ readonly bindings: {};
16
+ readonly styleSelectors: {
17
+ readonly base: "";
18
+ };
19
+ readonly initialState: {
20
+ readonly visibility: true;
21
+ };
22
+ };
23
+ readonly builder: {
24
+ readonly canDelete: true;
25
+ readonly canSelect: true;
26
+ readonly canDragDrop: true;
27
+ readonly canMove: true;
28
+ readonly canTemplate: true;
29
+ readonly itemsAllowed: readonly [];
30
+ readonly itemsNotAllowed: readonly [];
31
+ };
32
+ readonly market: {
33
+ readonly category: "advanced";
34
+ readonly owner: "Plitzi";
35
+ readonly verified: true;
36
+ readonly license: "MIT";
37
+ readonly website: "https://plitzi.com";
38
+ readonly backgroundColor: "#4422ee";
39
+ readonly icon: "fa-brands fa-html5";
40
+ };
41
+ readonly defaultStyle: {
42
+ readonly name: "HTML Block";
43
+ readonly displayMode: "desktop";
44
+ readonly style: {
45
+ readonly base: {
46
+ readonly default: {};
47
+ };
48
+ };
49
+ };
50
+ readonly settings: {};
51
+ };
52
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
53
+ content?: string | undefined;
54
+ }>>;
55
+ export default declaration;
@@ -0,0 +1,42 @@
1
+ import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
2
+ //#region src/elements/advanced/BlockHtml/declaration.ts
3
+ var t = e()({
4
+ type: "blockHtml",
5
+ content: {
6
+ attributes: { content: "" },
7
+ definition: {
8
+ label: "HTML Block",
9
+ type: "blockHtml",
10
+ description: "Renders an arbitrary raw HTML string as a block. Escape hatch when no structured element fits.",
11
+ bindings: {},
12
+ styleSelectors: { base: "" },
13
+ initialState: { visibility: !0 }
14
+ },
15
+ builder: {
16
+ canDelete: !0,
17
+ canSelect: !0,
18
+ canDragDrop: !0,
19
+ canMove: !0,
20
+ canTemplate: !0,
21
+ itemsAllowed: [],
22
+ itemsNotAllowed: []
23
+ },
24
+ market: {
25
+ category: "advanced",
26
+ owner: "Plitzi",
27
+ verified: !0,
28
+ license: "MIT",
29
+ website: "https://plitzi.com",
30
+ backgroundColor: "#4422ee",
31
+ icon: "fa-brands fa-html5"
32
+ },
33
+ defaultStyle: {
34
+ name: "HTML Block",
35
+ displayMode: "desktop",
36
+ style: { base: { default: {} } }
37
+ },
38
+ settings: {}
39
+ }
40
+ });
41
+ //#endregion
42
+ export { t as default };