@plitzi/sdk-elements 0.37.9 → 0.37.10

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 (233) hide show
  1. package/CHANGELOG.md +594 -0
  2. package/dist/Element/ElementWords.d.ts +16 -0
  3. package/dist/Element/ElementWords.mjs +19 -0
  4. package/dist/Element/RootElement.mjs +15 -12
  5. package/dist/Element/helpers/elementConstants.mjs +27 -0
  6. package/dist/Element/helpers/renderStaticTag.d.ts +3 -1
  7. package/dist/Element/helpers/renderStaticTag.mjs +6 -5
  8. package/dist/Element/hooks/useElementDataSource.mjs +20 -19
  9. package/dist/Element/hooks/useInternalItems.mjs +33 -31
  10. package/dist/Element/hooks/useIntervalTriggers.d.ts +17 -0
  11. package/dist/Element/hooks/useIntervalTriggers.mjs +37 -0
  12. package/dist/Element/hooks/useRootElementInteractions.d.ts +6 -2
  13. package/dist/Element/hooks/useRootElementInteractions.mjs +84 -63
  14. package/dist/Element/hooks/useScrollInteractions.d.ts +20 -0
  15. package/dist/Element/hooks/useScrollInteractions.mjs +58 -0
  16. package/dist/components/IconField/IconField.d.ts +8 -0
  17. package/dist/components/IconField/IconField.mjs +41 -0
  18. package/dist/components/IconField/index.d.ts +2 -0
  19. package/dist/components/IconField/index.mjs +2 -0
  20. package/dist/components/IconPicker/IconPicker.d.ts +11 -0
  21. package/dist/components/IconPicker/IconPicker.mjs +82 -0
  22. package/dist/components/IconPicker/index.d.ts +2 -0
  23. package/dist/components/IconPicker/index.mjs +2 -0
  24. package/dist/dataSource/GlobalSources.mjs +102 -83
  25. package/dist/dataSource/useFlag.d.ts +9 -0
  26. package/dist/dataSource/useFlag.mjs +8 -0
  27. package/dist/elements/advanced/BlockHtml/declaration.d.ts +1 -1
  28. package/dist/elements/advanced/BlockHtml/declaration.mjs +1 -1
  29. package/dist/elements/advanced/BlockHtml/index.d.ts +1 -1
  30. package/dist/elements/advanced/BlockJsx/Settings.mjs +2 -1
  31. package/dist/elements/advanced/BlockJsx/declaration.d.ts +1 -1
  32. package/dist/elements/advanced/BlockJsx/declaration.mjs +1 -1
  33. package/dist/elements/advanced/BlockJsx/index.d.ts +1 -1
  34. package/dist/elements/advanced/Custom/declaration.d.ts +1 -1
  35. package/dist/elements/advanced/Custom/declaration.mjs +1 -1
  36. package/dist/elements/advanced/Custom/index.d.ts +1 -1
  37. package/dist/elements/advanced/NodeHtml/declaration.d.ts +3 -3
  38. package/dist/elements/advanced/NodeHtml/declaration.mjs +1 -1
  39. package/dist/elements/advanced/NodeHtml/index.d.ts +3 -3
  40. package/dist/elements/advanced/Reference/declaration.d.ts +1 -1
  41. package/dist/elements/advanced/Reference/declaration.mjs +1 -1
  42. package/dist/elements/advanced/Reference/index.d.ts +1 -1
  43. package/dist/elements/basic/Button/Button.d.ts +9 -1
  44. package/dist/elements/basic/Button/Button.mjs +31 -19
  45. package/dist/elements/basic/Button/Settings.d.ts +3 -1
  46. package/dist/elements/basic/Button/Settings.mjs +39 -33
  47. package/dist/elements/basic/Button/declaration.d.ts +7 -1
  48. package/dist/elements/basic/Button/declaration.mjs +10 -4
  49. package/dist/elements/basic/Button/index.d.ts +7 -1
  50. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.d.ts +1 -1
  51. package/dist/elements/basic/Dropdown/DropdownPopup/declaration.mjs +1 -1
  52. package/dist/elements/basic/Dropdown/DropdownPopup/index.d.ts +1 -1
  53. package/dist/elements/basic/Dropdown/declaration.d.ts +1 -1
  54. package/dist/elements/basic/Dropdown/declaration.mjs +1 -1
  55. package/dist/elements/basic/Dropdown/index.d.ts +2 -2
  56. package/dist/elements/basic/Heading/declaration.d.ts +1 -1
  57. package/dist/elements/basic/Heading/declaration.mjs +1 -1
  58. package/dist/elements/basic/Heading/index.d.ts +1 -1
  59. package/dist/elements/basic/Link/Link.d.ts +20 -1
  60. package/dist/elements/basic/Link/Link.mjs +67 -47
  61. package/dist/elements/basic/Link/Settings.d.ts +6 -1
  62. package/dist/elements/basic/Link/Settings.mjs +91 -58
  63. package/dist/elements/basic/Link/declaration.d.ts +14 -1
  64. package/dist/elements/basic/Link/declaration.mjs +15 -5
  65. package/dist/elements/basic/Link/index.d.ts +14 -1
  66. package/dist/elements/basic/Link/isCurrentPage.d.ts +5 -0
  67. package/dist/elements/basic/Link/isCurrentPage.mjs +12 -0
  68. package/dist/elements/basic/Markdown/declaration.d.ts +1 -1
  69. package/dist/elements/basic/Markdown/declaration.mjs +1 -1
  70. package/dist/elements/basic/Markdown/index.d.ts +1 -1
  71. package/dist/elements/basic/Paragraph/declaration.d.ts +1 -1
  72. package/dist/elements/basic/Paragraph/declaration.mjs +1 -1
  73. package/dist/elements/basic/Paragraph/index.d.ts +1 -1
  74. package/dist/elements/basic/RichText/declaration.d.ts +1 -1
  75. package/dist/elements/basic/RichText/declaration.mjs +1 -1
  76. package/dist/elements/basic/RichText/index.d.ts +1 -1
  77. package/dist/elements/basic/Text/declaration.d.ts +1 -1
  78. package/dist/elements/basic/Text/declaration.mjs +1 -1
  79. package/dist/elements/basic/Text/index.d.ts +1 -1
  80. package/dist/elements/basic/ThemeToggle/declaration.d.ts +1 -1
  81. package/dist/elements/basic/ThemeToggle/declaration.mjs +1 -1
  82. package/dist/elements/basic/ThemeToggle/index.d.ts +1 -1
  83. package/dist/elements/declarations/index.d.ts +362 -40
  84. package/dist/elements/declarations/index.mjs +40 -32
  85. package/dist/elements/form/Form/declaration.d.ts +1 -1
  86. package/dist/elements/form/Form/declaration.mjs +1 -1
  87. package/dist/elements/form/Form/index.d.ts +1 -1
  88. package/dist/elements/form/FormControl/FormControl.mjs +1 -1
  89. package/dist/elements/form/FormControl/declaration.d.ts +1 -1
  90. package/dist/elements/form/FormControl/declaration.mjs +1 -1
  91. package/dist/elements/form/FormControl/index.d.ts +1 -1
  92. package/dist/elements/index.d.ts +7 -1
  93. package/dist/elements/index.mjs +30 -24
  94. package/dist/elements/internal/LayoutContainer/declaration.d.ts +1 -1
  95. package/dist/elements/internal/LayoutContainer/declaration.mjs +1 -1
  96. package/dist/elements/internal/LayoutContainer/index.d.ts +1 -1
  97. package/dist/elements/internal/Loading/declaration.d.ts +1 -1
  98. package/dist/elements/internal/Loading/declaration.mjs +1 -1
  99. package/dist/elements/internal/Loading/index.d.ts +1 -1
  100. package/dist/elements/internal/NotFound/declaration.d.ts +1 -1
  101. package/dist/elements/internal/NotFound/declaration.mjs +1 -1
  102. package/dist/elements/internal/NotFound/index.d.ts +1 -1
  103. package/dist/elements/internal/Page/declaration.d.ts +1 -1
  104. package/dist/elements/internal/Page/declaration.mjs +1 -1
  105. package/dist/elements/internal/Page/index.d.ts +1 -1
  106. package/dist/elements/media/Embed/Embed.d.ts +22 -0
  107. package/dist/elements/media/Embed/Embed.mjs +29 -0
  108. package/dist/elements/media/Embed/Settings.d.ts +10 -0
  109. package/dist/elements/media/Embed/Settings.mjs +51 -0
  110. package/dist/elements/media/Embed/declaration.d.ts +70 -0
  111. package/dist/elements/media/Embed/declaration.mjs +54 -0
  112. package/dist/elements/media/Embed/embeddableSrc.d.ts +5 -0
  113. package/dist/elements/media/Embed/embeddableSrc.mjs +4 -0
  114. package/dist/elements/media/Embed/index.d.ts +69 -0
  115. package/dist/elements/media/Embed/index.mjs +6 -0
  116. package/dist/elements/media/FontAwesome/Settings.mjs +32 -100
  117. package/dist/elements/media/FontAwesome/declaration.d.ts +1 -1
  118. package/dist/elements/media/FontAwesome/declaration.mjs +1 -1
  119. package/dist/elements/media/FontAwesome/index.d.ts +1 -1
  120. package/dist/elements/media/Image/Image.d.ts +11 -1
  121. package/dist/elements/media/Image/Image.mjs +33 -23
  122. package/dist/elements/media/Image/Settings.d.ts +4 -1
  123. package/dist/elements/media/Image/Settings.mjs +32 -9
  124. package/dist/elements/media/Image/declaration.d.ts +4 -1
  125. package/dist/elements/media/Image/declaration.mjs +1 -1
  126. package/dist/elements/media/Image/index.d.ts +4 -1
  127. package/dist/elements/media/Svg/Settings.d.ts +7 -0
  128. package/dist/elements/media/Svg/Settings.mjs +24 -0
  129. package/dist/elements/media/Svg/Svg.d.ts +16 -0
  130. package/dist/elements/media/Svg/Svg.mjs +31 -0
  131. package/dist/elements/media/Svg/declaration.d.ts +61 -0
  132. package/dist/elements/media/Svg/declaration.mjs +49 -0
  133. package/dist/elements/media/Svg/index.d.ts +60 -0
  134. package/dist/elements/media/Svg/index.mjs +6 -0
  135. package/dist/elements/media/Svg/sanitizeSvg.d.ts +13 -0
  136. package/dist/elements/media/Svg/sanitizeSvg.mjs +5 -0
  137. package/dist/elements/media/Video/declaration.d.ts +1 -1
  138. package/dist/elements/media/Video/declaration.mjs +1 -1
  139. package/dist/elements/media/Video/index.d.ts +1 -1
  140. package/dist/elements/provider/ApiContainer/ApiContainer.d.ts +6 -1
  141. package/dist/elements/provider/ApiContainer/ApiContainer.mjs +118 -112
  142. package/dist/elements/provider/ApiContainer/Settings.d.ts +2 -1
  143. package/dist/elements/provider/ApiContainer/Settings.mjs +45 -37
  144. package/dist/elements/provider/ApiContainer/declaration.d.ts +1 -1
  145. package/dist/elements/provider/ApiContainer/declaration.mjs +1 -1
  146. package/dist/elements/provider/ApiContainer/helpers/loadingSlot.d.ts +6 -0
  147. package/dist/elements/provider/ApiContainer/helpers/loadingSlot.mjs +8 -0
  148. package/dist/elements/provider/ApiContainer/index.d.ts +1 -1
  149. package/dist/elements/provider/Channel/declaration.d.ts +1 -1
  150. package/dist/elements/provider/Channel/declaration.mjs +1 -1
  151. package/dist/elements/provider/Channel/index.d.ts +1 -1
  152. package/dist/elements/settings.mjs +40 -32
  153. package/dist/elements/structure/Carousel/Carousel.d.ts +32 -0
  154. package/dist/elements/structure/Carousel/Carousel.mjs +183 -0
  155. package/dist/elements/structure/Carousel/CarouselContext.d.ts +29 -0
  156. package/dist/elements/structure/Carousel/CarouselContext.mjs +6 -0
  157. package/dist/elements/structure/Carousel/CarouselTrack/CarouselTrack.d.ts +15 -0
  158. package/dist/elements/structure/Carousel/CarouselTrack/CarouselTrack.mjs +51 -0
  159. package/dist/elements/structure/Carousel/CarouselTrack/Settings.d.ts +2 -0
  160. package/dist/elements/structure/Carousel/CarouselTrack/Settings.mjs +8 -0
  161. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.d.ts +15 -0
  162. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/CarouselSlide.mjs +28 -0
  163. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/index.d.ts +2 -0
  164. package/dist/elements/structure/Carousel/CarouselTrack/components/CarouselSlide/index.mjs +2 -0
  165. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.d.ts +18 -0
  166. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/MarqueeTrack.mjs +41 -0
  167. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/index.d.ts +2 -0
  168. package/dist/elements/structure/Carousel/CarouselTrack/components/MarqueeTrack/index.mjs +2 -0
  169. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.d.ts +12 -0
  170. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/ScrollTrack.mjs +27 -0
  171. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/index.d.ts +2 -0
  172. package/dist/elements/structure/Carousel/CarouselTrack/components/ScrollTrack/index.mjs +2 -0
  173. package/dist/elements/structure/Carousel/CarouselTrack/declaration.d.ts +53 -0
  174. package/dist/elements/structure/Carousel/CarouselTrack/declaration.mjs +44 -0
  175. package/dist/elements/structure/Carousel/CarouselTrack/index.d.ts +52 -0
  176. package/dist/elements/structure/Carousel/CarouselTrack/index.mjs +6 -0
  177. package/dist/elements/structure/Carousel/Settings.d.ts +14 -0
  178. package/dist/elements/structure/Carousel/Settings.mjs +97 -0
  179. package/dist/elements/structure/Carousel/carouselIndex.d.ts +13 -0
  180. package/dist/elements/structure/Carousel/carouselIndex.mjs +16 -0
  181. package/dist/elements/structure/Carousel/declaration.d.ts +131 -0
  182. package/dist/elements/structure/Carousel/declaration.mjs +106 -0
  183. package/dist/elements/structure/Carousel/index.d.ts +184 -0
  184. package/dist/elements/structure/Carousel/index.mjs +10 -0
  185. package/dist/elements/structure/Carousel/useAutoplay.d.ts +18 -0
  186. package/dist/elements/structure/Carousel/useAutoplay.mjs +34 -0
  187. package/dist/elements/structure/Container/Container.d.ts +1 -1
  188. package/dist/elements/structure/Container/Settings.d.ts +1 -1
  189. package/dist/elements/structure/Container/Settings.mjs +4 -0
  190. package/dist/elements/structure/Container/declaration.d.ts +2 -2
  191. package/dist/elements/structure/Container/declaration.mjs +3 -2
  192. package/dist/elements/structure/Container/index.d.ts +2 -2
  193. package/dist/elements/structure/DialogContainer/declaration.d.ts +1 -1
  194. package/dist/elements/structure/DialogContainer/declaration.mjs +1 -1
  195. package/dist/elements/structure/DialogContainer/index.d.ts +1 -1
  196. package/dist/elements/structure/List/List.d.ts +6 -1
  197. package/dist/elements/structure/List/List.mjs +2 -1
  198. package/dist/elements/structure/List/ListItem/declaration.d.ts +1 -1
  199. package/dist/elements/structure/List/ListItem/declaration.mjs +1 -1
  200. package/dist/elements/structure/List/ListItem/index.d.ts +1 -1
  201. package/dist/elements/structure/List/Settings.d.ts +2 -1
  202. package/dist/elements/structure/List/Settings.mjs +41 -29
  203. package/dist/elements/structure/List/declaration.d.ts +2 -1
  204. package/dist/elements/structure/List/declaration.mjs +1 -1
  205. package/dist/elements/structure/List/index.d.ts +3 -2
  206. package/dist/elements/structure/List/modes/ListControlled/ListControlled.d.ts +2 -1
  207. package/dist/elements/structure/List/modes/ListControlled/ListControlled.mjs +33 -35
  208. package/dist/elements/structure/List/modes/ListControlled/ListControlledItem.mjs +1 -1
  209. package/dist/elements/structure/List/modes/ListControlled/rowKeys.d.ts +10 -0
  210. package/dist/elements/structure/List/modes/ListControlled/rowKeys.mjs +11 -0
  211. package/dist/elements/structure/ModalContainer/declaration.d.ts +1 -1
  212. package/dist/elements/structure/ModalContainer/declaration.mjs +1 -1
  213. package/dist/elements/structure/ModalContainer/index.d.ts +1 -1
  214. package/dist/elements/structure/ModalContainer/metadataFromText.d.ts +6 -0
  215. package/dist/elements/structure/ModalContainer/metadataFromText.mjs +2 -1
  216. package/dist/elements/structure/Pagination/declaration.d.ts +1 -1
  217. package/dist/elements/structure/Pagination/declaration.mjs +1 -1
  218. package/dist/elements/structure/Pagination/index.d.ts +1 -1
  219. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.d.ts +1 -1
  220. package/dist/elements/structure/TabContainer/TabContainerBody/declaration.mjs +1 -1
  221. package/dist/elements/structure/TabContainer/TabContainerBody/index.d.ts +1 -1
  222. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.d.ts +1 -1
  223. package/dist/elements/structure/TabContainer/TabContainerHeader/declaration.mjs +1 -1
  224. package/dist/elements/structure/TabContainer/TabContainerHeader/index.d.ts +1 -1
  225. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.d.ts +1 -1
  226. package/dist/elements/structure/TabContainer/TabContainerItem/declaration.mjs +1 -1
  227. package/dist/elements/structure/TabContainer/TabContainerItem/index.d.ts +1 -1
  228. package/dist/elements/structure/TabContainer/declaration.d.ts +1 -1
  229. package/dist/elements/structure/TabContainer/declaration.mjs +1 -1
  230. package/dist/elements/structure/TabContainer/index.d.ts +4 -4
  231. package/dist/index.d.ts +373 -39
  232. package/dist/index.mjs +34 -27
  233. package/package.json +197 -9
@@ -0,0 +1,16 @@
1
+ import { RefObject } from 'react';
2
+ export type SvgProps = {
3
+ ref?: RefObject<HTMLElement>;
4
+ /** The drawing: one `<svg>…</svg>`, filling the box its class sizes; with `currentColor`, it takes the class's colour. */
5
+ content?: string;
6
+ /** What the drawing means, for one that means something; without it the drawing is decoration, hidden from readers. */
7
+ label?: string;
8
+ className?: string;
9
+ };
10
+ declare const Svg: ({ ref, content, label, className }: SvgProps) => import('react').JSX.Element;
11
+ declare const _default: {
12
+ (props: import('../../../Element/hocs/withElement').WithElementProps<SvgProps>): import('react').JSX.Element;
13
+ displayName: string;
14
+ };
15
+ export default _default;
16
+ export { Svg };
@@ -0,0 +1,31 @@
1
+ import e from "../../../Element/hocs/withElement.mjs";
2
+ import { RootElement as t } from "../../../Element/RootElement.mjs";
3
+ import { fitSvg as n, isSvgMarkup as r, sanitizeSvg as i } from "./sanitizeSvg.mjs";
4
+ import { useMemo as a } from "react";
5
+ import o from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ import l from "clsx";
8
+ //#region src/elements/media/Svg/Svg.tsx
9
+ var u = ({ ref: e, content: u = "", label: d = "", className: f = "" }) => {
10
+ let { settings: { previewMode: p } } = o(), m = a(() => r(u) ? n(i(u)) : "", [u]), h = d ? {
11
+ role: "img",
12
+ "aria-label": d
13
+ } : { "aria-hidden": !0 };
14
+ return !m && !p ? /* @__PURE__ */ c(t, {
15
+ ref: e,
16
+ className: l("plitzi-component__svg svg--empty", f),
17
+ children: [
18
+ "Paste one ",
19
+ "<svg>…</svg>",
20
+ " here"
21
+ ]
22
+ }) : /* @__PURE__ */ s(t, {
23
+ tag: "span",
24
+ ref: e,
25
+ className: l("plitzi-component__svg", f),
26
+ ...h,
27
+ dangerouslySetInnerHTML: { __html: m }
28
+ });
29
+ }, d = e(u);
30
+ //#endregion
31
+ export { u as Svg, d as default };
@@ -0,0 +1,61 @@
1
+ import { SvgProps } from './Svg';
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 SvgAttributes = AuthorableAttributes<SvgProps>;
5
+ declare const declaration: {
6
+ readonly type: "svg";
7
+ readonly content: {
8
+ readonly attributes: {
9
+ readonly content: "";
10
+ readonly label: "";
11
+ };
12
+ readonly definition: {
13
+ readonly label: "SVG";
14
+ readonly type: "svg";
15
+ readonly description: "A drawing written as SVG markup, coloured by its class.";
16
+ readonly bindings: {};
17
+ readonly styleSelectors: {
18
+ readonly base: "";
19
+ };
20
+ readonly initialState: {
21
+ readonly visibility: true;
22
+ };
23
+ };
24
+ readonly builder: {
25
+ readonly canDelete: true;
26
+ readonly canSelect: true;
27
+ readonly canDragDrop: true;
28
+ readonly canMove: true;
29
+ readonly canSnippet: true;
30
+ readonly itemsAllowed: readonly [];
31
+ readonly itemsNotAllowed: readonly [];
32
+ };
33
+ readonly market: {
34
+ readonly category: "media";
35
+ readonly owner: "Plitzi";
36
+ readonly verified: true;
37
+ readonly license: "MIT";
38
+ readonly website: "https://plitzi.com";
39
+ readonly backgroundColor: "#4422ee";
40
+ readonly icon: "fa-solid fa-bezier-curve";
41
+ };
42
+ readonly defaultStyle: {
43
+ readonly name: "Svg";
44
+ readonly displayMode: "desktop";
45
+ readonly style: {
46
+ readonly base: {
47
+ readonly default: {
48
+ readonly display: "inline-flex";
49
+ readonly width: "24px";
50
+ readonly height: "24px";
51
+ };
52
+ };
53
+ };
54
+ };
55
+ readonly settings: {};
56
+ };
57
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
58
+ label?: string | undefined;
59
+ content?: string | undefined;
60
+ }>>;
61
+ export default declaration;
@@ -0,0 +1,49 @@
1
+ import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
2
+ //#region src/elements/media/Svg/declaration.ts
3
+ var t = e()({
4
+ type: "svg",
5
+ content: {
6
+ attributes: {
7
+ content: "",
8
+ label: ""
9
+ },
10
+ definition: {
11
+ label: "SVG",
12
+ type: "svg",
13
+ description: "A drawing written as SVG markup, coloured by its class.",
14
+ bindings: {},
15
+ styleSelectors: { base: "" },
16
+ initialState: { visibility: !0 }
17
+ },
18
+ builder: {
19
+ canDelete: !0,
20
+ canSelect: !0,
21
+ canDragDrop: !0,
22
+ canMove: !0,
23
+ canSnippet: !0,
24
+ itemsAllowed: [],
25
+ itemsNotAllowed: []
26
+ },
27
+ market: {
28
+ category: "media",
29
+ owner: "Plitzi",
30
+ verified: !0,
31
+ license: "MIT",
32
+ website: "https://plitzi.com",
33
+ backgroundColor: "#4422ee",
34
+ icon: "fa-solid fa-bezier-curve"
35
+ },
36
+ defaultStyle: {
37
+ name: "Svg",
38
+ displayMode: "desktop",
39
+ style: { base: { default: {
40
+ display: "inline-flex",
41
+ width: "24px",
42
+ height: "24px"
43
+ } } }
44
+ },
45
+ settings: {}
46
+ }
47
+ });
48
+ //#endregion
49
+ export { t as default };
@@ -0,0 +1,60 @@
1
+ declare const Svg: {
2
+ (props: import('../../../Element/hocs/withElement').WithElementProps<import('./Svg').SvgProps>): import('react').JSX.Element;
3
+ displayName: string;
4
+ } & {
5
+ readonly type: "svg";
6
+ readonly content: {
7
+ readonly attributes: {
8
+ readonly content: "";
9
+ readonly label: "";
10
+ };
11
+ readonly definition: {
12
+ readonly label: "SVG";
13
+ readonly type: "svg";
14
+ readonly description: "A drawing written as SVG markup, coloured by its class.";
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 canSnippet: true;
29
+ readonly itemsAllowed: readonly [];
30
+ readonly itemsNotAllowed: readonly [];
31
+ };
32
+ readonly market: {
33
+ readonly category: "media";
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-solid fa-bezier-curve";
40
+ };
41
+ readonly defaultStyle: {
42
+ readonly name: "Svg";
43
+ readonly displayMode: "desktop";
44
+ readonly style: {
45
+ readonly base: {
46
+ readonly default: {
47
+ readonly display: "inline-flex";
48
+ readonly width: "24px";
49
+ readonly height: "24px";
50
+ };
51
+ };
52
+ };
53
+ };
54
+ readonly settings: {};
55
+ };
56
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
57
+ label?: string | undefined;
58
+ content?: string | undefined;
59
+ }>>;
60
+ export default Svg;
@@ -0,0 +1,6 @@
1
+ import e from "./declaration.mjs";
2
+ import t from "./Svg.mjs";
3
+ //#region src/elements/media/Svg/index.ts
4
+ var n = Object.assign(t, e);
5
+ //#endregion
6
+ export { n as default };
@@ -0,0 +1,13 @@
1
+ /** Whether the markup is an SVG at all — what the element refuses to draw otherwise. */
2
+ export declare const isSvgMarkup: (markup: string) => boolean;
3
+ /**
4
+ * The SVG with everything that runs taken out: what `sanitizeHtml` takes out of rich text — scripts, handlers,
5
+ * `javascript:` and `data:` URLs — and what only SVG has, HTML inside a `foreignObject` and animations that write a
6
+ * script into a link. An SVG is drawing; nothing in one needs to run.
7
+ */
8
+ export declare const sanitizeSvg: (markup: string) => string;
9
+ /**
10
+ * The drawing sized by its box: the root fills the element, so the element's class says how big it is. A `width` or
11
+ * `height` on the root would say otherwise — or, absent with only a `viewBox`, let it grow to the whole line.
12
+ */
13
+ export declare const fitSvg: (markup: string) => string;
@@ -0,0 +1,5 @@
1
+ import { sanitizeHtml as e } from "../../basic/RichText/sanitizeHtml.mjs";
2
+ //#region src/elements/media/Svg/sanitizeSvg.ts
3
+ var t = /<\s*foreignObject\b[\s\S]*?<\s*\/\s*foreignObject\s*>|<\s*\/?\s*foreignObject\b[^>]*>/gi, n = /\s(to|from|values|by)\s*=\s*(?:"[^"]*javascript\s*:[^"]*"|'[^']*javascript\s*:[^']*')/gi, r = /^\s*(?:<!--[\s\S]*?-->\s*)*<svg\b[\s\S]*<\/svg>\s*$/i, i = (e) => r.test(e), a = (r) => e(r).replace(t, "").replace(n, ""), o = /<svg\b[^>]*>/i, s = (e) => e.replace(o, (e) => e.replace(/\s(width|height)\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi, "").replace(/^<svg\b/i, "<svg width=\"100%\" height=\"100%\""));
4
+ //#endregion
5
+ export { s as fitSvg, i as isSvgMarkup, a as sanitizeSvg };
@@ -29,7 +29,7 @@ declare const declaration: {
29
29
  readonly canSelect: true;
30
30
  readonly canDragDrop: true;
31
31
  readonly canMove: true;
32
- readonly canTemplate: true;
32
+ readonly canSnippet: true;
33
33
  readonly itemsAllowed: readonly [];
34
34
  readonly itemsNotAllowed: readonly [];
35
35
  };
@@ -23,7 +23,7 @@ var t = e()({
23
23
  canSelect: !0,
24
24
  canDragDrop: !0,
25
25
  canMove: !0,
26
- canTemplate: !0,
26
+ canSnippet: !0,
27
27
  itemsAllowed: [],
28
28
  itemsNotAllowed: []
29
29
  },
@@ -28,7 +28,7 @@ declare const Video: {
28
28
  readonly canSelect: true;
29
29
  readonly canDragDrop: true;
30
30
  readonly canMove: true;
31
- readonly canTemplate: true;
31
+ readonly canSnippet: true;
32
32
  readonly itemsAllowed: readonly [];
33
33
  readonly itemsNotAllowed: readonly [];
34
34
  };
@@ -48,6 +48,11 @@ export type ApiContainerProps = {
48
48
  pageParam?: string;
49
49
  /** Renders children while the first client-side request is still in flight, so a loading state can be bound. */
50
50
  renderWhileLoading?: boolean;
51
+ /**
52
+ * The id of a child shown in place of the others until the first answer arrives — a skeleton of what is coming — and
53
+ * gone after it. In the builder every child shows, so the slot can be edited beside what it stands for.
54
+ */
55
+ loadingSlot?: string;
51
56
  /**
52
57
  * Keep a browser request's answer in the page's query cache, shared with every provider asking the same thing.
53
58
  * Off by default: an author opts in knowing the page may show an answer up to `staleTime` old.
@@ -70,7 +75,7 @@ export type ApiContainerProps = {
70
75
  */
71
76
  refreshSeconds?: number | string;
72
77
  };
73
- declare const ApiContainer: ({ ref, className, children, query, method, accessToken, when, headers, mockData, subType, credentials, singleRecord, pagination, pageParam, renderWhileLoading, cache, staleTime, gcTime, refreshSeconds }: ApiContainerProps) => import('react').JSX.Element;
78
+ declare const ApiContainer: ({ ref, className, children, query, method, accessToken, when, headers, mockData, subType, credentials, singleRecord, pagination, pageParam, renderWhileLoading, loadingSlot, cache, staleTime, gcTime, refreshSeconds }: ApiContainerProps) => import('react').JSX.Element;
74
79
  declare const _default: {
75
80
  (props: import('../../../Element/hocs/withElement').WithElementProps<ApiContainerProps>): import('react').JSX.Element;
76
81
  displayName: string;
@@ -3,61 +3,62 @@ import t from "../../../Element/hooks/useElement.mjs";
3
3
  import ee from "../../../Element/hooks/useRscData.mjs";
4
4
  import { RootElement as te } from "../../../Element/RootElement.mjs";
5
5
  import n from "./declaration.mjs";
6
- import { isEmptyAnswer as r } from "./helpers/isEmptyAnswer.mjs";
7
- import ne from "./helpers/providerOutcome.mjs";
8
- import { queryInputOf as i } from "./helpers/queryInput.mjs";
9
- import re from "./hooks/useApi.mjs";
10
- import ie from "./hooks/useAutoRefresh.mjs";
11
- import ae from "./hooks/useProviderPagination.mjs";
12
- import oe from "./hooks/useProviderWrite.mjs";
13
- import se from "../../../dataSource/pathFields.mjs";
14
- import { use as ce, useCallback as a, useEffect as le, useMemo as o, useRef as ue } from "react";
15
- import de from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
16
- import { useSdkStore as s } from "@plitzi/sdk-shared/store";
17
- import { StoreProvider as fe } from "@plitzi/nexus/react";
6
+ import { isEmptyAnswer as ne } from "./helpers/isEmptyAnswer.mjs";
7
+ import { childrenWhile as re } from "./helpers/loadingSlot.mjs";
8
+ import ie from "./helpers/providerOutcome.mjs";
9
+ import { queryInputOf as ae } from "./helpers/queryInput.mjs";
10
+ import r from "./hooks/useApi.mjs";
11
+ import i from "./hooks/useAutoRefresh.mjs";
12
+ import oe from "./hooks/useProviderPagination.mjs";
13
+ import se from "./hooks/useProviderWrite.mjs";
14
+ import ce from "../../../dataSource/pathFields.mjs";
15
+ import { use as le, useCallback as a, useEffect as ue, useMemo as o, useRef as de } from "react";
16
+ import fe from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
17
+ import { useSdkStore as pe } from "@plitzi/sdk-shared/store";
18
+ import { StoreProvider as s } from "@plitzi/nexus/react";
18
19
  import { emptyObject as c } from "@plitzi/sdk-shared/helpers/utils";
19
20
  import { jsx as l } from "react/jsx-runtime";
20
- import { currentRscLocation as pe } from "@plitzi/sdk-shared/server/rsc/refreshRsc";
21
- import me from "clsx";
22
- import he from "@plitzi/sdk-shared/dataSource/helpers/getSourceName";
23
- import ge from "@plitzi/sdk-shared/dataSource/hooks/useRegisterSource";
24
- import { QueryBuilderEvaluator as _e } from "@plitzi/plitzi-ui/QueryBuilder";
21
+ import { currentRscLocation as me } from "@plitzi/sdk-shared/server/rsc/refreshRsc";
22
+ import he from "clsx";
23
+ import ge from "@plitzi/sdk-shared/dataSource/helpers/getSourceName";
24
+ import _e from "@plitzi/sdk-shared/dataSource/hooks/useRegisterSource";
25
+ import { QueryBuilderEvaluator as ve } from "@plitzi/plitzi-ui/QueryBuilder";
25
26
  //#region src/elements/provider/ApiContainer/ApiContainer.tsx
26
- var u = ({ ref: e, className: u = "", children: d, query: f = "", method: p = "get", accessToken: m = "", when: h = c, headers: g = c, mockData: _ = "{}", subType: v = "", credentials: ve = "same-origin", singleRecord: y = !1, pagination: ye = "none", pageParam: be = "page", renderWhileLoading: xe = !1, cache: b = !1, staleTime: Se = 30, gcTime: Ce = 300, refreshSeconds: we = 0 }) => {
27
- let { id: x, visible: S, definition: { label: C = "Api Container", runtime: Te, items: Ee } } = t(), w = Te === "server", { loaded: T, stale: E, location: D, elementData: O, refresh: k } = ee(), A = he(n.sourceType, x), { settings: { previewMode: j }, contexts: { InteractionsContext: De } } = de(), { interactionsManager: M } = ce(De), [[N, P, Oe]] = s([
27
+ var u = ({ ref: e, className: u = "", children: d, query: f = "", method: p = "get", accessToken: m = "", when: h = c, headers: g = c, mockData: _ = "{}", subType: ye = "", credentials: be = "same-origin", singleRecord: v = !1, pagination: xe = "none", pageParam: Se = "page", renderWhileLoading: Ce = !1, loadingSlot: y = "", cache: we = !1, staleTime: Te = 30, gcTime: Ee = 300, refreshSeconds: De = 0 }) => {
28
+ let { id: b, visible: x, definition: { label: S = "Api Container", runtime: Oe, items: ke } } = t(), C = Oe === "server", { loaded: w, stale: T, location: E, elementData: D, refresh: O } = ee(), k = ge(n.sourceType, b), { settings: { previewMode: A }, contexts: { InteractionsContext: Ae } } = fe(), { interactionsManager: j } = le(Ae), [[M, N, je]] = pe([
28
29
  "navigation.routeParams",
29
30
  "navigation.queryParams",
30
31
  "navigation.navigate"
31
- ]), ke = o(() => m ? {
32
+ ]), Me = o(() => m ? {
32
33
  ...g,
33
34
  Authorization: `Bearer ${m}`
34
- } : g, [g, m]), F = o(() => w || !S ? !1 : !!(j && f && (h === c || _e(h, {
35
- ...N,
36
- ...P
37
- })) || !j && (f || _ && _ !== "{}" && _ !== c)), [
38
- w,
39
- S,
40
- j,
35
+ } : g, [g, m]), P = o(() => C || !x ? !1 : !!(A && f && (h === c || ve(h, {
36
+ ...M,
37
+ ...N
38
+ })) || !A && (f || _ && _ !== "{}" && _ !== c)), [
39
+ C,
40
+ x,
41
+ A,
41
42
  f,
42
43
  h,
44
+ M,
43
45
  N,
44
- P,
45
46
  _
46
- ]), Ae = o(() => [x], [x]), { isLoading: je, isFetching: Me, data: I, refetch: L, isSuccess: Ne, isError: Pe } = re({
47
+ ]), Ne = o(() => [b], [b]), { isLoading: Pe, isFetching: Fe, data: F, refetch: I, isSuccess: Ie, isError: Le } = r({
47
48
  url: f,
48
49
  method: p,
49
- credentials: ve,
50
- mock: j ? void 0 : _,
51
- customHeaders: ke,
52
- enabled: F,
53
- cache: b,
54
- staleTime: Se,
55
- gcTime: Ce,
56
- tags: Ae
57
- }), R = w && !!D && D !== pe(), z = w && T && !R && O === null, B = o(() => {
58
- if (!w) return I ?? c;
59
- if (O) return O;
60
- if (T) return c;
50
+ credentials: be,
51
+ mock: A ? void 0 : _,
52
+ customHeaders: Me,
53
+ enabled: P,
54
+ cache: we,
55
+ staleTime: Te,
56
+ gcTime: Ee,
57
+ tags: Ne
58
+ }), L = C && !!E && E !== me(), R = C && w && !L && D === null, z = o(() => {
59
+ if (!C) return F ?? c;
60
+ if (D) return D;
61
+ if (w) return c;
61
62
  if (typeof _ != "string") return _;
62
63
  try {
63
64
  return JSON.parse(_ || "{}");
@@ -65,137 +66,142 @@ var u = ({ ref: e, className: u = "", children: d, query: f = "", method: p = "g
65
66
  return c;
66
67
  }
67
68
  }, [
69
+ C,
70
+ F,
71
+ D,
68
72
  w,
69
- I,
70
- O,
71
- T,
72
73
  _
73
- ]), V = w ? R : Me, Fe = w ? R : je, H = ue({}), U = a((e, t) => k(e, {
74
+ ]), B = C ? L : Fe, V = C ? L : Pe, H = de({}), U = a((e, t) => O(e, {
74
75
  ...H.current,
75
76
  ...t
76
- }), [k]), W = a(async () => {
77
- if (!w) {
78
- L();
77
+ }), [O]), W = a(async () => {
78
+ if (!C) {
79
+ I();
79
80
  return;
80
81
  }
81
- await U([x]);
82
+ await U([b]);
82
83
  }, [
83
- w,
84
- L,
84
+ C,
85
+ I,
85
86
  U,
86
- x
87
+ b
87
88
  ]), G = a(async ({ input: e } = {}) => {
88
- let t = i(e);
89
+ let t = ae(e);
89
90
  t && (H.current = t), await W();
90
91
  }, [W]);
91
- ie({
92
- seconds: we,
93
- enabled: S && (w ? T && !R : F),
92
+ i({
93
+ seconds: De,
94
+ enabled: x && (C ? w && !L : P),
94
95
  refresh: W
95
96
  });
96
- let K = B, Ie = o(() => Array.isArray(K.records) ? K.records : [], [K.records]), { records: q, isLoadingMore: J, goToPage: Y, loadMore: X } = ae({
97
- elementId: x,
98
- mode: ye,
99
- pageParam: be,
100
- records: Ie,
97
+ let K = z, Re = o(() => Array.isArray(K.records) ? K.records : [], [K.records]), { records: q, isLoadingMore: J, goToPage: Y, loadMore: X } = oe({
98
+ elementId: b,
99
+ mode: xe,
100
+ pageParam: Se,
101
+ records: Re,
101
102
  page: K.pageInfo?.page ?? 1,
102
103
  refresh: U,
103
- navigate: Oe
104
- }), Z = ne({
105
- serverMode: w,
106
- isSuccess: Ne,
107
- isError: Pe,
108
- rscResolved: T,
109
- rscPending: R,
110
- elementData: O
104
+ navigate: je
105
+ }), Z = ie({
106
+ serverMode: C,
107
+ isSuccess: Ie,
108
+ isError: Le,
109
+ rscResolved: w,
110
+ rscPending: L,
111
+ elementData: D
111
112
  });
112
- le(() => {
113
- !V && x && Z && M.interactionTrigger(x, Z === "success" ? "onApiSuccess" : "onApiError", {
113
+ ue(() => {
114
+ !B && b && Z && j.interactionTrigger(b, Z === "success" ? "onApiSuccess" : "onApiError", {
114
115
  url: f,
115
116
  method: p,
116
- ...B
117
+ ...z
117
118
  });
118
119
  }, [
120
+ z,
121
+ b,
122
+ j,
119
123
  B,
120
- x,
121
- M,
122
- V,
123
124
  p,
124
125
  Z,
125
126
  f
126
127
  ]);
127
128
  let Q = o(() => ({
128
- ...B,
129
+ ...z,
129
130
  ...Array.isArray(K.records) ? { records: q } : c,
130
- isLoading: V || J,
131
- isEmpty: r(K, q, y),
132
- hasError: z,
133
- errorMessage: z ? "The data provider could not be reached" : "",
134
- isStale: w && E
131
+ isLoading: B || J,
132
+ isEmpty: ne(K, q, v),
133
+ hasError: R,
134
+ errorMessage: R ? "The data provider could not be reached" : "",
135
+ isStale: C && T
135
136
  }), [
136
- B,
137
+ z,
137
138
  K.records,
138
139
  K.record,
139
140
  q,
140
- V,
141
+ B,
141
142
  J,
142
- y,
143
- z,
144
- w,
145
- E
146
- ]), Le = a(() => se(Q), [Q]);
147
- ge({
148
- id: x,
149
- source: A,
150
- name: C || `API - ${x}`,
151
- fields: Le
143
+ v,
144
+ R,
145
+ C,
146
+ T
147
+ ]), ze = a(() => ce(Q), [Q]);
148
+ _e({
149
+ id: b,
150
+ source: k,
151
+ name: S || `API - ${b}`,
152
+ fields: ze
152
153
  });
153
- let { writeRecord: $ } = oe({
154
- elementId: x,
155
- enabled: w,
154
+ let { writeRecord: $ } = se({
155
+ elementId: b,
156
+ enabled: C,
156
157
  onDone: W
157
- }), Re = o(() => {
158
+ }), Be = o(() => {
158
159
  let e = {
159
160
  performQuery: {
160
161
  ...n.callbacks.performQuery,
161
- title: `Perform Query ${C}`,
162
+ title: `Perform Query ${S}`,
162
163
  callback: G
163
164
  },
164
165
  loadMore: {
165
166
  ...n.callbacks.loadMore,
166
- title: `Load More ${C}`,
167
+ title: `Load More ${S}`,
167
168
  callback: X
168
169
  },
169
170
  goToPage: {
170
171
  ...n.callbacks.goToPage,
171
- title: `Go To Page ${C}`,
172
+ title: `Go To Page ${S}`,
172
173
  callback: ({ page: e }) => Y(Number(e) || 1)
173
174
  }
174
175
  };
175
- return w && (e.writeRecord = {
176
+ return C && (e.writeRecord = {
176
177
  ...n.callbacks.writeRecord,
177
- title: `Write Record ${C}`,
178
+ title: `Write Record ${S}`,
178
179
  callback: $
179
180
  }), e;
180
181
  }, [
181
- C,
182
+ S,
182
183
  G,
183
184
  X,
184
185
  Y,
185
- w,
186
+ C,
186
187
  $
187
- ]), ze = o(() => A ? { runtime: { sources: { [A]: Q } } } : c, [Q, A]);
188
+ ]), Ve = o(() => y && A ? re(d, y, V) : d, [
189
+ d,
190
+ V,
191
+ y,
192
+ A
193
+ ]), He = o(() => k ? { runtime: { sources: { [k]: Q } } } : c, [Q, k]);
188
194
  return /* @__PURE__ */ l(te, {
189
195
  ref: e,
190
- tag: !j && !Ee?.length ? "div" : v,
191
- className: me("plitzi-component__api-container", u),
196
+ tag: !A && !ke?.length ? "div" : ye,
197
+ className: he("plitzi-component__api-container", u),
192
198
  interactionTriggers: n.triggers,
193
- interactionCallbacks: Re,
194
- children: (!Fe || xe) && /* @__PURE__ */ l(fe, {
199
+ interactionCallbacks: Be,
200
+ children: (!V || Ce || y) && /* @__PURE__ */ l(s, {
195
201
  inherit: "live",
196
- name: `Api:${x}`,
197
- value: ze,
198
- children: d
202
+ name: `Api:${b}`,
203
+ value: He,
204
+ children: Ve
199
205
  })
200
206
  });
201
207
  }, d = e(u);
@@ -21,11 +21,12 @@ type SettingsProps = {
21
21
  pagination?: 'none' | 'url' | 'append';
22
22
  pageParam?: string;
23
23
  renderWhileLoading?: boolean;
24
+ loadingSlot?: string;
24
25
  cache?: boolean;
25
26
  staleTime?: number | string;
26
27
  gcTime?: number | string;
27
28
  refreshSeconds?: number | string;
28
29
  onUpdate?: (key: string, value: string | boolean | number | object, isDefinition?: boolean) => void;
29
30
  };
30
- declare const Settings: ({ query, method, accessToken, headers, when, subType, mockData, credentials, runtime, connector, action, endpoint, resource, limit, singleRecord, filters, pagination, pageParam, renderWhileLoading, cache, staleTime, gcTime, refreshSeconds, onUpdate }: SettingsProps) => import('react').JSX.Element;
31
+ declare const Settings: ({ query, method, accessToken, headers, when, subType, mockData, credentials, runtime, connector, action, endpoint, resource, limit, singleRecord, filters, pagination, pageParam, renderWhileLoading, loadingSlot, cache, staleTime, gcTime, refreshSeconds, onUpdate }: SettingsProps) => import('react').JSX.Element;
31
32
  export default Settings;