@plitzi/sdk-elements 0.33.2 → 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 +42 -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 +8 -8
  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,283 +1,320 @@
1
1
  import e from "./components/FiltersInput/index.mjs";
2
- import { use as t, useCallback as n, useMemo as r, useState as i } from "react";
3
- import { useBuilderStore as a, useSdkStore as o } from "@plitzi/sdk-shared/store";
4
- import { get as s } from "@plitzi/plitzi-ui/helpers";
5
- import { emptyObject as ee } from "@plitzi/sdk-shared/helpers/utils";
6
- import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
7
- import d from "@plitzi/plitzi-ui/QueryBuilder";
8
- import f from "@plitzi/plitzi-ui/CodeMirror";
9
- import { ThemeContext as te } from "@plitzi/sdk-shared/theme/ThemeProvider";
10
- import p from "@plitzi/plitzi-ui/Input";
11
- import m from "@plitzi/plitzi-ui/Select";
12
- import h from "@plitzi/plitzi-ui/KVInput";
13
- import g from "@plitzi/plitzi-ui/Switch";
2
+ import { useCallback as t, useMemo as n, useState as ee } from "react";
3
+ import { useBuilderStore as r, useCommonStore as te, useSdkStore as i } from "@plitzi/sdk-shared/store";
4
+ import { get as a } from "@plitzi/plitzi-ui/helpers";
5
+ import { emptyObject as ne } from "@plitzi/sdk-shared/helpers/utils";
6
+ import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ import l from "@plitzi/sdk-shared/theme/useTheme";
8
+ import u from "@plitzi/plitzi-ui/QueryBuilder";
9
+ import d from "@plitzi/plitzi-ui/CodeMirror";
10
+ import f from "@plitzi/plitzi-ui/Input";
11
+ import p from "@plitzi/plitzi-ui/Select";
12
+ import re from "@plitzi/plitzi-ui/KVInput";
13
+ import m from "@plitzi/plitzi-ui/Switch";
14
14
  //#region src/elements/provider/ApiContainer/Settings.tsx
15
- var _ = [], v = ({ query: v = "", method: y = "get", accessToken: b = "", headers: x = ee, when: S, subType: C = "div", mockData: ne = "{}", credentials: w = "same-origin", runtime: T = "client", connector: E = "", endpoint: re = "", resource: ie = "", limit: D = "10", singleRecord: O = !1, filters: k = _, pagination: A = "none", pageParam: j = "page", renderWhileLoading: M = !1, onUpdate: N }) => {
16
- let { theme: P } = t(te), [F] = a("pageDefinitions"), [I] = a("connectors"), [L] = a("hasServerRendering"), [R, z] = i(!1), B = T === "server", [[V, H, U]] = o([
15
+ var h = [], g = ({ query: g = "", method: _ = "get", accessToken: v = "", headers: y = ne, when: b, subType: x = "", mockData: S = "{}", credentials: C = "same-origin", runtime: w = "client", connector: T = "", action: E = "", endpoint: D = "", resource: ie = "", limit: ae = "10", singleRecord: O = !1, filters: k = h, pagination: A = "none", pageParam: j = "page", renderWhileLoading: M = !1, onUpdate: N }) => {
16
+ let { resolvedTheme: P } = l(), [F] = r("pageDefinitions"), [I] = r("connectors"), [L] = te("actions.catalog"), [R] = r("hasServerRendering"), [z, B] = ee(!1), V = w === "server", H = V ? E && !T ? "action" : "connector" : "client", [[U, W, G]] = i([
17
17
  "navigation.routeParams",
18
18
  "navigation.queryParams",
19
19
  "navigation.currentPageId"
20
- ]), W = n((e) => (t) => N?.(e, t), [N]), G = n((e) => N?.("query", e), [N]), K = n((e) => N?.("when", e), [N]), q = n((e) => N?.("mockData", e), [N]), J = n((e) => z(e.target.checked), []), Y = n((e, t) => N?.("headers", t), [N]), ae = n((e) => N?.("runtime", e, !0), [N]), oe = n((e) => N?.("singleRecord", e.target.checked), [N]), se = n((e) => N?.("renderWhileLoading", e.target.checked), [N]), ce = n((e) => N?.("filters", e), [N]), X = r(() => Object.values(I), [I]), Z = r(() => X.find((e) => e.identifier === E)?.manifest, [X, E]), le = r(() => Object.keys(Z?.operators ?? {}), [Z]), Q = r(() => Object.keys(Z?.endpoints.read ?? {}), [Z]), $ = r(() => [...s(F, `${U}.attributes.slug`, "").matchAll(/:[a-z0-9_-]+/gim)].map((e) => e[0].slice(1)), [F, U]), ue = r(() => [
21
- ...Object.keys(V),
22
- ...Object.keys(H),
20
+ ]), K = t((e) => (t) => N?.(e, t), [N]), q = t((e) => N?.("query", e), [N]), J = t((e) => N?.("when", e), [N]), oe = t((e) => N?.("subType", e), [N]), se = t((e) => N?.("mockData", e), [N]), ce = t((e) => B(e.target.checked), []), le = t((e, t) => N?.("headers", t), [N]), ue = t((e) => {
21
+ if (e === "client") {
22
+ N?.("runtime", "client", !0);
23
+ return;
24
+ }
25
+ N?.("runtime", "server", !0), N?.(e === "action" ? "connector" : "action", "");
26
+ }, [N]), Y = t((e) => N?.("singleRecord", e.target.checked), [N]), de = t((e) => N?.("renderWhileLoading", e.target.checked), [N]), fe = t((e) => N?.("filters", e), [N]), X = n(() => Object.values(I), [I]), Z = n(() => X.find((e) => e.identifier === T)?.manifest, [X, T]), pe = n(() => Object.keys(Z?.operators ?? {}), [Z]), Q = n(() => Object.keys(Z?.endpoints.read ?? {}), [Z]), $ = n(() => [...a(F, `${G}.attributes.slug`, "").matchAll(/:[a-z0-9_-]+/gim)].map((e) => e[0].slice(1)), [F, G]), me = n(() => [
27
+ ...Object.keys(U),
28
+ ...Object.keys(W),
23
29
  ...$
24
30
  ].map((e) => ({
25
31
  type: "token",
26
32
  value: e
27
33
  })), [
28
- V,
29
- H,
34
+ U,
35
+ W,
30
36
  $
31
37
  ]);
32
- return /* @__PURE__ */ u("div", {
38
+ return /* @__PURE__ */ c("div", {
33
39
  className: "flex grow flex-col gap-4 py-2",
34
40
  children: [
35
- /* @__PURE__ */ u(m, {
36
- value: T,
41
+ /* @__PURE__ */ c(p, {
42
+ value: H,
37
43
  label: "Data Source",
38
- onChange: ae,
44
+ onChange: ue,
39
45
  size: "xs",
40
- children: [/* @__PURE__ */ l("option", {
41
- value: "client",
42
- children: "Browser request"
43
- }), /* @__PURE__ */ l("option", {
44
- value: "server",
45
- children: "Connector (server-side)"
46
- })]
46
+ children: [
47
+ /* @__PURE__ */ s("option", {
48
+ value: "client",
49
+ children: "Browser request"
50
+ }),
51
+ /* @__PURE__ */ s("option", {
52
+ value: "connector",
53
+ children: "Connector (server-side)"
54
+ }),
55
+ /* @__PURE__ */ s("option", {
56
+ value: "action",
57
+ children: "Server action (server-side)"
58
+ })
59
+ ]
47
60
  }),
48
- /* @__PURE__ */ l("span", {
61
+ /* @__PURE__ */ c("span", {
49
62
  className: "text-xs text-gray-500 dark:text-zinc-400",
50
- children: B ? "The server calls the API and hands the page its records. The endpoint and the credential never reach the browser, and the content is in the HTML search engines see." : "The browser calls the URL directly. Anything it needs to authenticate with is visible to the visitor, and the content is not in the initial HTML."
63
+ children: [
64
+ H === "connector" && "The server calls the API and hands the page its records. The endpoint and the credential never reach the browser, and the content is in the HTML search engines see.",
65
+ H === "action" && "A flow runs on the server and hands the page whatever its output step returns — for the read a connector cannot express: two calls joined, a computed field, a shape that depends on who is looking. It is fed this page’s route and query params.",
66
+ H === "client" && "The browser calls the URL directly. Anything it needs to authenticate with is visible to the visitor, and the content is not in the initial HTML."
67
+ ]
51
68
  }),
52
- B && /* @__PURE__ */ u(c, { children: [
53
- !L && /* @__PURE__ */ l("div", {
54
- className: "rounded-sm border border-yellow-300 bg-yellow-50 p-2 text-xs text-yellow-800 dark:border-yellow-700 dark:bg-yellow-950 dark:text-yellow-200",
55
- children: "This space has no server-rendered deployment. Connectors resolve here in the builder, but a published page would have no server to resolve them — publish with a Plitzi SSR credential, or read the API from the browser instead."
56
- }),
57
- X.length === 0 && /* @__PURE__ */ l("div", {
69
+ H === "action" && /* @__PURE__ */ c(o, { children: [L?.length === 0 && /* @__PURE__ */ s("div", {
70
+ className: "rounded-sm border border-gray-300 p-2 text-xs text-gray-500 dark:border-zinc-600 dark:text-zinc-400",
71
+ children: "No actions yet. Add one in the Actions panel and give it a “While a page renders” trigger — that is the way in this element uses."
72
+ }), /* @__PURE__ */ c(p, {
73
+ value: E,
74
+ label: "Action",
75
+ onChange: K("action"),
76
+ size: "xs",
77
+ children: [/* @__PURE__ */ s("option", {
78
+ value: "",
79
+ children: "Select an action…"
80
+ }), (L ?? []).map((e) => /* @__PURE__ */ s("option", {
81
+ value: e.identifier,
82
+ children: e.name
83
+ }, e.identifier))]
84
+ })] }),
85
+ V && !R && /* @__PURE__ */ s("div", {
86
+ className: "rounded-sm border border-yellow-300 bg-yellow-50 p-2 text-xs text-yellow-800 dark:border-yellow-700 dark:bg-yellow-950 dark:text-yellow-200",
87
+ children: "This space has no server-rendered deployment. It resolves here in the builder, but a published page would have no server to resolve it — publish with a Plitzi SSR credential, or read the API from the browser instead."
88
+ }),
89
+ H === "connector" && /* @__PURE__ */ c(o, { children: [
90
+ X.length === 0 && /* @__PURE__ */ s("div", {
58
91
  className: "rounded-sm border border-gray-300 p-2 text-xs text-gray-500 dark:border-zinc-600 dark:text-zinc-400",
59
92
  children: "No connectors yet. Add one in the Connectors panel — it holds the API endpoints, and the credential stays on the server."
60
93
  }),
61
- /* @__PURE__ */ u(m, {
62
- value: E,
94
+ /* @__PURE__ */ c(p, {
95
+ value: T,
63
96
  label: "Connector",
64
- onChange: W("connector"),
97
+ onChange: K("connector"),
65
98
  size: "xs",
66
- children: [/* @__PURE__ */ l("option", {
99
+ children: [/* @__PURE__ */ s("option", {
67
100
  value: "",
68
101
  children: "Select a connector…"
69
- }), X.map((e) => /* @__PURE__ */ l("option", {
102
+ }), X.map((e) => /* @__PURE__ */ s("option", {
70
103
  value: e.identifier,
71
104
  children: e.name
72
105
  }, e.identifier))]
73
106
  }),
74
- Q.length > 1 && /* @__PURE__ */ l(m, {
75
- value: re,
107
+ Q.length > 1 && /* @__PURE__ */ s(p, {
108
+ value: D,
76
109
  label: "Endpoint",
77
- onChange: W("endpoint"),
110
+ onChange: K("endpoint"),
78
111
  size: "xs",
79
- children: Q.map((e) => /* @__PURE__ */ l("option", {
112
+ children: Q.map((e) => /* @__PURE__ */ s("option", {
80
113
  value: e,
81
114
  children: e
82
115
  }, e))
83
116
  }),
84
- /* @__PURE__ */ l(p, {
117
+ /* @__PURE__ */ s(f, {
85
118
  value: ie,
86
119
  label: "Resource",
87
120
  placeholder: "posts",
88
121
  title: "The collection read through the connector — what {{resource}} becomes in the endpoint path.",
89
- onChange: W("resource"),
122
+ onChange: K("resource"),
90
123
  size: "xs"
91
124
  }),
92
- /* @__PURE__ */ l(e, {
125
+ /* @__PURE__ */ s(e, {
93
126
  value: k,
94
- operators: le,
95
- onChange: ce
127
+ operators: pe,
128
+ onChange: fe
96
129
  }),
97
- /* @__PURE__ */ l(g, {
130
+ /* @__PURE__ */ s(m, {
98
131
  checked: O,
99
132
  size: "sm",
100
133
  label: "Single record (detail page)",
101
- onChange: oe
134
+ onChange: Y
102
135
  }),
103
- !O && /* @__PURE__ */ u(c, { children: [
104
- /* @__PURE__ */ l(p, {
105
- value: D,
136
+ !O && /* @__PURE__ */ c(o, { children: [
137
+ /* @__PURE__ */ s(f, {
138
+ value: ae,
106
139
  label: "Records per page",
107
- onChange: W("limit"),
140
+ onChange: K("limit"),
108
141
  size: "xs"
109
142
  }),
110
- /* @__PURE__ */ u(m, {
143
+ /* @__PURE__ */ c(p, {
111
144
  value: A,
112
145
  label: "Pagination",
113
- onChange: W("pagination"),
146
+ onChange: K("pagination"),
114
147
  size: "xs",
115
148
  children: [
116
- /* @__PURE__ */ l("option", {
149
+ /* @__PURE__ */ s("option", {
117
150
  value: "none",
118
151
  children: "None"
119
152
  }),
120
- /* @__PURE__ */ l("option", {
153
+ /* @__PURE__ */ s("option", {
121
154
  value: "url",
122
155
  children: "URL (indexable)"
123
156
  }),
124
- /* @__PURE__ */ l("option", {
157
+ /* @__PURE__ */ s("option", {
125
158
  value: "append",
126
159
  children: "Load more"
127
160
  })
128
161
  ]
129
162
  }),
130
- A !== "none" && /* @__PURE__ */ l(p, {
163
+ A !== "none" && /* @__PURE__ */ s(f, {
131
164
  value: j,
132
165
  label: "Page parameter",
133
166
  title: "Query-string key this list pages on. Give each list its own so they page independently.",
134
- onChange: W("pageParam"),
167
+ onChange: K("pageParam"),
135
168
  size: "xs"
136
169
  })
137
170
  ] })
138
171
  ] }),
139
- !B && /* @__PURE__ */ u(c, { children: [
140
- /* @__PURE__ */ u("div", {
172
+ !V && /* @__PURE__ */ c(o, { children: [
173
+ /* @__PURE__ */ c("div", {
141
174
  className: "flex flex-col",
142
- children: [/* @__PURE__ */ l("label", { children: "Query" }), /* @__PURE__ */ l(f, {
175
+ children: [/* @__PURE__ */ s("label", { children: "Query" }), /* @__PURE__ */ s(d, {
143
176
  className: "font-rubik min-h-6.5 basis-auto rounded-sm border border-gray-300 px-1 text-xs",
144
- value: v,
145
- theme: P === "dark" ? "dark" : "light",
177
+ value: g,
178
+ theme: P,
146
179
  mode: "text",
147
- autoComplete: ue,
180
+ autoComplete: me,
148
181
  lineWrapping: !0,
149
182
  multiline: !1,
150
- onChange: G
183
+ onChange: q
151
184
  })]
152
185
  }),
153
- /* @__PURE__ */ u(m, {
154
- value: y,
186
+ /* @__PURE__ */ c(p, {
187
+ value: _,
155
188
  label: "Method",
156
- onChange: W("method"),
189
+ onChange: K("method"),
157
190
  size: "xs",
158
- children: [/* @__PURE__ */ l("option", {
191
+ children: [/* @__PURE__ */ s("option", {
159
192
  value: "get",
160
193
  children: "Get"
161
- }), /* @__PURE__ */ l("option", {
194
+ }), /* @__PURE__ */ s("option", {
162
195
  value: "post",
163
196
  children: "Post"
164
197
  })]
165
198
  }),
166
- /* @__PURE__ */ l(p, {
167
- value: b,
199
+ /* @__PURE__ */ s(f, {
200
+ value: v,
168
201
  label: "Access Token",
169
202
  title: "Bind this to the signed-in visitor's token. A value typed here is saved in the page and served to\n every visitor — put anything secret behind a connector instead.",
170
- onChange: W("accessToken"),
203
+ onChange: K("accessToken"),
171
204
  size: "xs"
172
205
  }),
173
- /* @__PURE__ */ u(m, {
174
- value: w,
206
+ /* @__PURE__ */ c(p, {
207
+ value: C,
175
208
  label: "Include Credentials",
176
- onChange: W("credentials"),
209
+ onChange: K("credentials"),
177
210
  size: "xs",
178
211
  children: [
179
- /* @__PURE__ */ l("option", {
212
+ /* @__PURE__ */ s("option", {
180
213
  value: "include",
181
214
  children: "Include"
182
215
  }),
183
- /* @__PURE__ */ l("option", {
216
+ /* @__PURE__ */ s("option", {
184
217
  value: "omit",
185
218
  children: "Omit"
186
219
  }),
187
- /* @__PURE__ */ l("option", {
220
+ /* @__PURE__ */ s("option", {
188
221
  value: "same-origin",
189
222
  children: "Same Origin"
190
223
  })
191
224
  ]
192
225
  }),
193
- /* @__PURE__ */ l(g, {
226
+ /* @__PURE__ */ s(m, {
194
227
  checked: M,
195
228
  size: "sm",
196
229
  label: "Render children while loading",
197
- onChange: se
230
+ onChange: de
198
231
  })
199
232
  ] }),
200
- /* @__PURE__ */ l(g, {
201
- checked: R,
233
+ /* @__PURE__ */ s(m, {
234
+ checked: z,
202
235
  size: "sm",
203
236
  label: "Advanced Settings",
204
- onChange: J
237
+ onChange: ce
205
238
  }),
206
- R && /* @__PURE__ */ u(c, { children: [
207
- /* @__PURE__ */ l(h, {
208
- value: Object.entries(x),
239
+ z && /* @__PURE__ */ c(o, { children: [
240
+ /* @__PURE__ */ s(re, {
241
+ value: Object.entries(y),
209
242
  label: "Headers",
210
- onChange: Y,
243
+ onChange: le,
211
244
  size: "xs"
212
245
  }),
213
- /* @__PURE__ */ u("div", {
246
+ /* @__PURE__ */ c("div", {
214
247
  className: "flex flex-col",
215
- children: [/* @__PURE__ */ l("label", { children: "When to perform query request" }), /* @__PURE__ */ l(d, {
248
+ children: [/* @__PURE__ */ s("label", { children: "When to perform query request" }), /* @__PURE__ */ s(u, {
216
249
  direction: "vertical",
217
250
  className: "w-full",
218
251
  size: "xs",
219
- query: S,
220
- onChange: K,
252
+ query: b,
253
+ onChange: J,
221
254
  showBranches: !0
222
255
  })]
223
256
  }),
224
- /* @__PURE__ */ u(m, {
225
- value: C,
257
+ /* @__PURE__ */ c(p, {
258
+ value: x,
226
259
  label: "Container Tag",
227
- onChange: W("subType"),
260
+ onChange: oe,
228
261
  size: "xs",
229
262
  children: [
230
- /* @__PURE__ */ l("option", {
263
+ /* @__PURE__ */ s("option", {
264
+ value: "",
265
+ children: "None"
266
+ }),
267
+ /* @__PURE__ */ s("option", {
231
268
  value: "div",
232
269
  children: "Div"
233
270
  }),
234
- /* @__PURE__ */ l("option", {
271
+ /* @__PURE__ */ s("option", {
235
272
  value: "header",
236
273
  children: "Header"
237
274
  }),
238
- /* @__PURE__ */ l("option", {
275
+ /* @__PURE__ */ s("option", {
239
276
  value: "footer",
240
277
  children: "Footer"
241
278
  }),
242
- /* @__PURE__ */ l("option", {
279
+ /* @__PURE__ */ s("option", {
243
280
  value: "nav",
244
281
  children: "Nav"
245
282
  }),
246
- /* @__PURE__ */ l("option", {
283
+ /* @__PURE__ */ s("option", {
247
284
  value: "main",
248
285
  children: "Main"
249
286
  }),
250
- /* @__PURE__ */ l("option", {
287
+ /* @__PURE__ */ s("option", {
251
288
  value: "section",
252
289
  children: "Section"
253
290
  }),
254
- /* @__PURE__ */ l("option", {
291
+ /* @__PURE__ */ s("option", {
255
292
  value: "article",
256
293
  children: "Article"
257
294
  }),
258
- /* @__PURE__ */ l("option", {
295
+ /* @__PURE__ */ s("option", {
259
296
  value: "aside",
260
297
  children: "Aside"
261
298
  }),
262
- /* @__PURE__ */ l("option", {
299
+ /* @__PURE__ */ s("option", {
263
300
  value: "address",
264
301
  children: "Address"
265
302
  }),
266
- /* @__PURE__ */ l("option", {
303
+ /* @__PURE__ */ s("option", {
267
304
  value: "figure",
268
305
  children: "Figure"
269
306
  })
270
307
  ]
271
308
  }),
272
- /* @__PURE__ */ l("div", { className: "my-2 h-px w-full border border-gray-300 bg-gray-300" }),
273
- /* @__PURE__ */ u("div", {
309
+ /* @__PURE__ */ s("div", { className: "my-2 h-px w-full border border-gray-300 bg-gray-300" }),
310
+ /* @__PURE__ */ c("div", {
274
311
  className: "flex min-h-50 grow flex-col",
275
- children: [/* @__PURE__ */ l("label", { children: "Mock Data (Build Mode)" }), /* @__PURE__ */ l(f, {
276
- value: ne,
277
- theme: P === "dark" ? "dark" : "light",
312
+ children: [/* @__PURE__ */ s("label", { children: "Mock Data (Build Mode)" }), /* @__PURE__ */ s(d, {
313
+ value: S,
314
+ theme: P,
278
315
  mode: "json",
279
316
  lineWrapping: !0,
280
- onChange: q
317
+ onChange: se
281
318
  })]
282
319
  })
283
320
  ] })
@@ -285,4 +322,4 @@ var _ = [], v = ({ query: v = "", method: y = "get", accessToken: b = "", header
285
322
  });
286
323
  };
287
324
  //#endregion
288
- export { v as default };
325
+ export { g as default };
@@ -0,0 +1,77 @@
1
+ import { ApiContainerProps } from './ApiContainer';
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 ApiContainerAttributes = AuthorableAttributes<ApiContainerProps> & {
5
+ /**
6
+ * What this element asks of the action it names, on top of the page's own route and query params.
7
+ *
8
+ * Not a component prop, and it never will be: the action runs on the server, so this is read there and the
9
+ * element only ever sees what came back.
10
+ */
11
+ input?: Record<string, unknown>;
12
+ };
13
+ declare const declaration: {
14
+ readonly type: "apiContainer";
15
+ readonly sourceType: "apiContainer";
16
+ readonly content: {
17
+ readonly attributes: {
18
+ readonly query: "";
19
+ readonly method: "get";
20
+ readonly accessToken: "";
21
+ readonly mockData: "{}";
22
+ readonly subType: "";
23
+ readonly credentials: "same-origin";
24
+ readonly connector: "";
25
+ readonly resource: "";
26
+ readonly limit: "10";
27
+ readonly singleRecord: false;
28
+ readonly filters: readonly [];
29
+ readonly pagination: "none";
30
+ readonly pageParam: "page";
31
+ readonly renderWhileLoading: false;
32
+ };
33
+ readonly definition: {
34
+ readonly label: "Api Container";
35
+ readonly type: "apiContainer";
36
+ readonly description: string;
37
+ readonly items: readonly [];
38
+ readonly bindings: {};
39
+ readonly styleSelectors: {
40
+ readonly base: "";
41
+ };
42
+ readonly initialState: {
43
+ readonly visibility: true;
44
+ };
45
+ };
46
+ readonly builder: {
47
+ readonly canDelete: true;
48
+ readonly canSelect: true;
49
+ readonly canDragDrop: true;
50
+ readonly canMove: true;
51
+ readonly canTemplate: true;
52
+ readonly itemsAllowed: readonly [];
53
+ readonly itemsNotAllowed: readonly [];
54
+ };
55
+ readonly market: {
56
+ readonly category: "provider";
57
+ readonly owner: "Plitzi";
58
+ readonly verified: true;
59
+ readonly license: "MIT";
60
+ readonly website: "https://plitzi.com";
61
+ readonly backgroundColor: "#4422ee";
62
+ readonly icon: "fa-solid fa-server";
63
+ };
64
+ readonly defaultStyle: {
65
+ readonly name: "Api Container";
66
+ readonly displayMode: "desktop";
67
+ readonly style: {
68
+ readonly base: {
69
+ readonly default: {};
70
+ };
71
+ };
72
+ readonly subTypes: {};
73
+ };
74
+ readonly settings: {};
75
+ };
76
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<ApiContainerAttributes>;
77
+ export default declaration;
@@ -0,0 +1,60 @@
1
+ import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
2
+ //#region src/elements/provider/ApiContainer/declaration.ts
3
+ var t = e()({
4
+ type: "apiContainer",
5
+ sourceType: "apiContainer",
6
+ content: {
7
+ attributes: {
8
+ query: "",
9
+ method: "get",
10
+ accessToken: "",
11
+ mockData: "{}",
12
+ subType: "",
13
+ credentials: "same-origin",
14
+ connector: "",
15
+ resource: "",
16
+ limit: "10",
17
+ singleRecord: !1,
18
+ filters: [],
19
+ pagination: "none",
20
+ pageParam: "page",
21
+ renderWhileLoading: !1
22
+ },
23
+ definition: {
24
+ label: "Api Container",
25
+ type: "apiContainer",
26
+ description: "Fetches data from a backend HTTP API (its `query`/`method`/`credentials`) and exposes the response as a data source ITS DESCENDANTS bind to (source `apiContainer_<id>.data`; only elements inside it can consume it). This is how you get backend data into the frontend. Its `mockData` prop is builder-only sample data — the published runtime fetches the real `query`, so always set a real query for production.",
27
+ items: [],
28
+ bindings: {},
29
+ styleSelectors: { base: "" },
30
+ initialState: { visibility: !0 }
31
+ },
32
+ builder: {
33
+ canDelete: !0,
34
+ canSelect: !0,
35
+ canDragDrop: !0,
36
+ canMove: !0,
37
+ canTemplate: !0,
38
+ itemsAllowed: [],
39
+ itemsNotAllowed: []
40
+ },
41
+ market: {
42
+ category: "provider",
43
+ owner: "Plitzi",
44
+ verified: !0,
45
+ license: "MIT",
46
+ website: "https://plitzi.com",
47
+ backgroundColor: "#4422ee",
48
+ icon: "fa-solid fa-server"
49
+ },
50
+ defaultStyle: {
51
+ name: "Api Container",
52
+ displayMode: "desktop",
53
+ style: { base: { default: {} } },
54
+ subTypes: {}
55
+ },
56
+ settings: {}
57
+ }
58
+ });
59
+ //#endregion
60
+ export { t as default };
@@ -8,7 +8,17 @@ export type UseApiProps = {
8
8
  credentials?: RequestCredentials;
9
9
  };
10
10
  declare const useApi: ({ url, method, mock, params, customHeaders, enabled, credentials }: UseApiProps) => {
11
+ /**
12
+ * Nothing has been answered yet, so there is nothing truthful to render.
13
+ *
14
+ * Distinct from `isFetching` on purpose: a REFETCH already has an answer on screen and it stays valid until
15
+ * the next one lands. Conflating the two makes every refresh unmount whatever the provider is feeding — the
16
+ * page collapses to nothing, the browser clamps the scroll to the top, and the content reappears a frame
17
+ * later. That reads as a flicker and a lost scroll position, which is not what "reload this list" means.
18
+ */
11
19
  isLoading: boolean;
20
+ /** A request is in flight, first or not. What a spinner binds to. */
21
+ isFetching: boolean;
12
22
  data: {
13
23
  status: number;
14
24
  data: unknown;