@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
@@ -2,54 +2,57 @@ declare const Text: {
2
2
  (props: import('../../../Element/hocs/withElement').WithElementProps<import('./Text').TextProps>): import("react").JSX.Element;
3
3
  displayName: string;
4
4
  } & {
5
- type: string;
6
- content: {
7
- attributes: {
8
- content: string;
5
+ readonly type: "text";
6
+ readonly content: {
7
+ readonly attributes: {
8
+ readonly content: "Text";
9
9
  };
10
- definition: {
11
- label: string;
12
- type: string;
13
- bindings: {};
14
- styleSelectors: {
15
- base: string;
10
+ readonly definition: {
11
+ readonly label: "Text";
12
+ readonly type: "text";
13
+ readonly description: "Inline plain-text content. Use for short runs of copy; bind its content to data for dynamic text.";
14
+ readonly bindings: {};
15
+ readonly styleSelectors: {
16
+ readonly base: "";
16
17
  };
17
- initialState: {
18
- visibility: boolean;
18
+ readonly initialState: {
19
+ readonly visibility: true;
19
20
  };
20
21
  };
21
- builder: {
22
- canDelete: boolean;
23
- canSelect: boolean;
24
- canDragDrop: boolean;
25
- canMove: boolean;
26
- canTemplate: boolean;
27
- itemsAllowed: never[];
28
- itemsNotAllowed: never[];
22
+ readonly builder: {
23
+ readonly canDelete: true;
24
+ readonly canSelect: true;
25
+ readonly canDragDrop: true;
26
+ readonly canMove: true;
27
+ readonly canTemplate: true;
28
+ readonly itemsAllowed: readonly [];
29
+ readonly itemsNotAllowed: readonly [];
29
30
  };
30
- market: {
31
- category: string;
32
- owner: string;
33
- verified: boolean;
34
- license: string;
35
- website: string;
36
- backgroundColor: string;
37
- icon: string;
31
+ readonly market: {
32
+ readonly category: "basic";
33
+ readonly owner: "Plitzi";
34
+ readonly verified: true;
35
+ readonly license: "MIT";
36
+ readonly website: "https://plitzi.com";
37
+ readonly backgroundColor: "#4422ee";
38
+ readonly icon: "fa-solid fa-align-left";
38
39
  };
39
- defaultStyle: {
40
- name: string;
41
- displayMode: string;
42
- style: {
43
- base: {
44
- default: {
45
- 'font-size': string;
46
- 'line-height': string;
47
- display: string;
40
+ readonly defaultStyle: {
41
+ readonly name: "Text";
42
+ readonly displayMode: "desktop";
43
+ readonly style: {
44
+ readonly base: {
45
+ readonly default: {
46
+ readonly 'font-size': "14px";
47
+ readonly 'line-height': "24px";
48
+ readonly display: "inline";
48
49
  };
49
50
  };
50
51
  };
51
52
  };
52
- settings: {};
53
+ readonly settings: {};
53
54
  };
54
- };
55
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
56
+ content?: string | number | undefined;
57
+ }>>;
55
58
  export default Text;
@@ -1,45 +1,6 @@
1
- import e from "./Text.mjs";
1
+ import e from "./declaration.mjs";
2
+ import t from "./Text.mjs";
2
3
  //#region src/elements/basic/Text/index.ts
3
- var t = Object.assign(e, {
4
- type: "text",
5
- content: {
6
- attributes: { content: "Text" },
7
- definition: {
8
- label: "Text",
9
- type: "text",
10
- bindings: {},
11
- styleSelectors: { base: "" },
12
- initialState: { visibility: !0 }
13
- },
14
- builder: {
15
- canDelete: !0,
16
- canSelect: !0,
17
- canDragDrop: !0,
18
- canMove: !0,
19
- canTemplate: !0,
20
- itemsAllowed: [],
21
- itemsNotAllowed: []
22
- },
23
- market: {
24
- category: "basic",
25
- owner: "Plitzi",
26
- verified: !0,
27
- license: "MIT",
28
- website: "https://plitzi.com",
29
- backgroundColor: "#4422ee",
30
- icon: "fa-solid fa-align-left"
31
- },
32
- defaultStyle: {
33
- name: "Text",
34
- displayMode: "desktop",
35
- style: { base: { default: {
36
- "font-size": "14px",
37
- "line-height": "24px",
38
- display: "inline"
39
- } } }
40
- },
41
- settings: {}
42
- }
43
- });
4
+ var n = Object.assign(t, e);
44
5
  //#endregion
45
- export { t as default };
6
+ export { n as default };
@@ -0,0 +1,31 @@
1
+ import { RefObject } from 'react';
2
+ export type ThemeToggleProps = {
3
+ ref?: RefObject<HTMLElement>;
4
+ className?: string;
5
+ /** `switch` is one control that flips; `segmented` offers the three answers, including giving the machine its
6
+ * say back. */
7
+ subType?: 'switch' | 'segmented';
8
+ lightLabel?: string;
9
+ darkLabel?: string;
10
+ systemLabel?: string;
11
+ /** Only meaningful for `segmented`: a two-way switch has nowhere to put a third answer. */
12
+ showSystem?: boolean;
13
+ };
14
+ /**
15
+ * Light and dark, as a control a page can carry.
16
+ *
17
+ * A space declares its colours per scheme and the machine decides between them — which is right until somebody
18
+ * wants the other one. This is where that decision is made: it writes the choice on the document root, where the
19
+ * space's own stylesheet is already looking for it, and remembers it for the next visit.
20
+ *
21
+ * **What it renders does not depend on the theme.** Both icons are always in the markup and CSS decides which one
22
+ * shows, so the server and the browser agree byte for byte: a control whose markup changed with the stored theme
23
+ * would either flash the wrong icon on every load or force the page to wait for storage before painting.
24
+ */
25
+ declare const ThemeToggle: ({ ref, className, subType, lightLabel, darkLabel, systemLabel, showSystem }: ThemeToggleProps) => import("react").JSX.Element;
26
+ declare const _default: {
27
+ (props: import('../../../Element/hocs/withElement').WithElementProps<ThemeToggleProps>): import("react").JSX.Element;
28
+ displayName: string;
29
+ };
30
+ export default _default;
31
+ export { ThemeToggle };
@@ -0,0 +1,114 @@
1
+ import e from "../../../Element/hocs/withElement.mjs";
2
+ import t from "../../../Element/hooks/useElement.mjs";
3
+ import { RootElement as n } from "../../../Element/RootElement.mjs";
4
+ import { use as r, useCallback as i, useEffect as a, useMemo as o, useRef as s, useSyncExternalStore as c } from "react";
5
+ import l from "@plitzi/sdk-shared/hooks/usePlitziServiceContext";
6
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
7
+ import f from "clsx";
8
+ import p from "@plitzi/sdk-shared/theme/useTheme";
9
+ //#region src/elements/basic/ThemeToggle/ThemeToggle.tsx
10
+ var m = () => () => {}, h = () => !0, g = () => !1, _ = () => /* @__PURE__ */ d("svg", {
11
+ viewBox: "0 0 24 24",
12
+ width: "1em",
13
+ height: "1em",
14
+ fill: "none",
15
+ stroke: "currentColor",
16
+ strokeWidth: "2",
17
+ "aria-hidden": !0,
18
+ children: [/* @__PURE__ */ u("circle", {
19
+ cx: "12",
20
+ cy: "12",
21
+ r: "4.2"
22
+ }), /* @__PURE__ */ u("path", {
23
+ strokeLinecap: "round",
24
+ d: "M12 2.6v2.2M12 19.2v2.2M4.2 12H2M22 12h-2.2M6.3 6.3 4.8 4.8M19.2 19.2l-1.5-1.5M17.7 6.3l1.5-1.5M4.8 19.2l1.5-1.5"
25
+ })]
26
+ }), v = () => /* @__PURE__ */ u("svg", {
27
+ viewBox: "0 0 24 24",
28
+ width: "1em",
29
+ height: "1em",
30
+ fill: "none",
31
+ stroke: "currentColor",
32
+ strokeWidth: "2",
33
+ "aria-hidden": !0,
34
+ children: /* @__PURE__ */ u("path", {
35
+ strokeLinejoin: "round",
36
+ d: "M20.5 14.3A8.6 8.6 0 0 1 9.7 3.5a8.6 8.6 0 1 0 10.8 10.8Z"
37
+ })
38
+ }), y = ({ ref: e, className: y = "", subType: b = "switch", lightLabel: x = "Light", darkLabel: S = "Dark", systemLabel: C = "System", showSystem: w = !1 }) => {
39
+ let { theme: T, setTheme: E, toggleTheme: D } = p(), { id: O, definition: { styleSelectors: k } } = t(), { settings: { previewMode: A }, contexts: { InteractionsContext: j } } = l(), { interactionsManager: M } = r(j), N = c(m, h, g), P = i((e) => (t) => {
40
+ t.preventDefault(), A && E(e);
41
+ }, [A, E]), F = i((e) => {
42
+ e.preventDefault(), A && D();
43
+ }, [A, D]), I = o(() => [
44
+ ...w ? [{
45
+ value: "system",
46
+ label: C,
47
+ icon: null
48
+ }] : [],
49
+ {
50
+ value: "light",
51
+ label: x,
52
+ icon: /* @__PURE__ */ u(_, {})
53
+ },
54
+ {
55
+ value: "dark",
56
+ label: S,
57
+ icon: /* @__PURE__ */ u(v, {})
58
+ }
59
+ ], [
60
+ w,
61
+ C,
62
+ x,
63
+ S
64
+ ]), L = s(null);
65
+ a(() => {
66
+ let e = L.current;
67
+ L.current = T, e !== null && e !== T && M.interactionTrigger(O, "onThemeChange", { theme: T });
68
+ }, [
69
+ T,
70
+ M,
71
+ O
72
+ ]);
73
+ let R = o(() => ({ onThemeChange: {
74
+ action: "onThemeChange",
75
+ title: "On Theme Change",
76
+ type: "trigger",
77
+ params: {},
78
+ preview: { theme: "dark" }
79
+ } }), []);
80
+ return b === "segmented" ? /* @__PURE__ */ u(n, {
81
+ ref: e,
82
+ tag: "div",
83
+ className: f("plitzi-component__theme-toggle plitzi-component__theme-toggle--segmented", y),
84
+ interactionTriggers: R,
85
+ children: I.map((e) => /* @__PURE__ */ d("button", {
86
+ type: "button",
87
+ className: f("plitzi-component__theme-toggle-option", k.option),
88
+ "data-active": N && T === e.value ? "true" : void 0,
89
+ "data-theme-option": e.value,
90
+ onClick: P(e.value),
91
+ children: [e.icon, /* @__PURE__ */ u("span", { children: e.label })]
92
+ }, e.value))
93
+ }) : /* @__PURE__ */ d(n, {
94
+ ref: e,
95
+ tag: "button",
96
+ className: f("plitzi-component__theme-toggle plitzi-component__theme-toggle--switch", y),
97
+ interactionTriggers: R,
98
+ type: "button",
99
+ onClick: F,
100
+ "aria-label": `${x} / ${S}`,
101
+ title: `${x} / ${S}`,
102
+ children: [/* @__PURE__ */ u("span", {
103
+ className: f("plitzi-component__theme-toggle-icon", k.icon),
104
+ "data-theme-icon": "light",
105
+ children: /* @__PURE__ */ u(_, {})
106
+ }), /* @__PURE__ */ u("span", {
107
+ className: f("plitzi-component__theme-toggle-icon", k.icon),
108
+ "data-theme-icon": "dark",
109
+ children: /* @__PURE__ */ u(v, {})
110
+ })]
111
+ });
112
+ }, b = e(y);
113
+ //#endregion
114
+ export { y as ThemeToggle, b as default };
@@ -0,0 +1,71 @@
1
+ import { ThemeToggleProps } from './ThemeToggle';
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 ThemeToggleAttributes = AuthorableAttributes<ThemeToggleProps>;
5
+ declare const declaration: {
6
+ readonly type: "themeToggle";
7
+ readonly content: {
8
+ readonly attributes: {
9
+ readonly subType: "switch";
10
+ readonly lightLabel: "Light";
11
+ readonly darkLabel: "Dark";
12
+ readonly systemLabel: "System";
13
+ readonly showSystem: false;
14
+ };
15
+ readonly definition: {
16
+ readonly label: "Theme Toggle";
17
+ readonly type: "themeToggle";
18
+ readonly description: "Lets a visitor choose light or dark. It writes the choice on the document root, where a space stylesheet is already looking for it, and remembers it — so the machine decides until somebody says otherwise. It ships no colours of its own: style it with the space own classes, and use `data-theme-icon` to decide which icon each scheme shows.";
19
+ readonly items: readonly [];
20
+ readonly bindings: {};
21
+ readonly styleSelectors: {
22
+ readonly base: "";
23
+ readonly icon: "";
24
+ readonly option: "";
25
+ };
26
+ readonly initialState: {
27
+ readonly visibility: true;
28
+ };
29
+ };
30
+ readonly builder: {
31
+ readonly canDelete: true;
32
+ readonly canSelect: true;
33
+ readonly canDragDrop: true;
34
+ readonly canMove: true;
35
+ readonly canTemplate: true;
36
+ readonly itemsAllowed: readonly [];
37
+ readonly itemsNotAllowed: readonly [];
38
+ };
39
+ readonly market: {
40
+ readonly category: "basic";
41
+ readonly owner: "Plitzi";
42
+ readonly verified: true;
43
+ readonly license: "MIT";
44
+ readonly website: "https://plitzi.com";
45
+ readonly backgroundColor: "#4422ee";
46
+ readonly icon: "fa-solid fa-circle-half-stroke";
47
+ };
48
+ readonly defaultStyle: {
49
+ readonly name: "Theme Toggle";
50
+ readonly displayMode: "desktop";
51
+ readonly style: {
52
+ readonly base: {
53
+ readonly default: {
54
+ readonly display: "inline-flex";
55
+ readonly 'align-items': "center";
56
+ readonly cursor: "pointer";
57
+ };
58
+ };
59
+ };
60
+ readonly subTypes: {};
61
+ };
62
+ readonly settings: {};
63
+ };
64
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
65
+ subType?: "switch" | "segmented" | undefined;
66
+ lightLabel?: string | undefined;
67
+ darkLabel?: string | undefined;
68
+ systemLabel?: string | undefined;
69
+ showSystem?: boolean | undefined;
70
+ }>>;
71
+ export default declaration;
@@ -0,0 +1,58 @@
1
+ import { elementDeclaration as e } from "@plitzi/sdk-shared/authoring/declare";
2
+ //#region src/elements/basic/ThemeToggle/declaration.ts
3
+ var t = e()({
4
+ type: "themeToggle",
5
+ content: {
6
+ attributes: {
7
+ subType: "switch",
8
+ lightLabel: "Light",
9
+ darkLabel: "Dark",
10
+ systemLabel: "System",
11
+ showSystem: !1
12
+ },
13
+ definition: {
14
+ label: "Theme Toggle",
15
+ type: "themeToggle",
16
+ description: "Lets a visitor choose light or dark. It writes the choice on the document root, where a space stylesheet is already looking for it, and remembers it — so the machine decides until somebody says otherwise. It ships no colours of its own: style it with the space own classes, and use `data-theme-icon` to decide which icon each scheme shows.",
17
+ items: [],
18
+ bindings: {},
19
+ styleSelectors: {
20
+ base: "",
21
+ icon: "",
22
+ option: ""
23
+ },
24
+ initialState: { visibility: !0 }
25
+ },
26
+ builder: {
27
+ canDelete: !0,
28
+ canSelect: !0,
29
+ canDragDrop: !0,
30
+ canMove: !0,
31
+ canTemplate: !0,
32
+ itemsAllowed: [],
33
+ itemsNotAllowed: []
34
+ },
35
+ market: {
36
+ category: "basic",
37
+ owner: "Plitzi",
38
+ verified: !0,
39
+ license: "MIT",
40
+ website: "https://plitzi.com",
41
+ backgroundColor: "#4422ee",
42
+ icon: "fa-solid fa-circle-half-stroke"
43
+ },
44
+ defaultStyle: {
45
+ name: "Theme Toggle",
46
+ displayMode: "desktop",
47
+ style: { base: { default: {
48
+ display: "inline-flex",
49
+ "align-items": "center",
50
+ cursor: "pointer"
51
+ } } },
52
+ subTypes: {}
53
+ },
54
+ settings: {}
55
+ }
56
+ });
57
+ //#endregion
58
+ export { t as default };
@@ -0,0 +1,70 @@
1
+ declare const ThemeToggle: {
2
+ (props: import('../../../Element/hocs/withElement').WithElementProps<import('./ThemeToggle').ThemeToggleProps>): import("react").JSX.Element;
3
+ displayName: string;
4
+ } & {
5
+ readonly type: "themeToggle";
6
+ readonly content: {
7
+ readonly attributes: {
8
+ readonly subType: "switch";
9
+ readonly lightLabel: "Light";
10
+ readonly darkLabel: "Dark";
11
+ readonly systemLabel: "System";
12
+ readonly showSystem: false;
13
+ };
14
+ readonly definition: {
15
+ readonly label: "Theme Toggle";
16
+ readonly type: "themeToggle";
17
+ readonly description: "Lets a visitor choose light or dark. It writes the choice on the document root, where a space stylesheet is already looking for it, and remembers it — so the machine decides until somebody says otherwise. It ships no colours of its own: style it with the space own classes, and use `data-theme-icon` to decide which icon each scheme shows.";
18
+ readonly items: readonly [];
19
+ readonly bindings: {};
20
+ readonly styleSelectors: {
21
+ readonly base: "";
22
+ readonly icon: "";
23
+ readonly option: "";
24
+ };
25
+ readonly initialState: {
26
+ readonly visibility: true;
27
+ };
28
+ };
29
+ readonly builder: {
30
+ readonly canDelete: true;
31
+ readonly canSelect: true;
32
+ readonly canDragDrop: true;
33
+ readonly canMove: true;
34
+ readonly canTemplate: true;
35
+ readonly itemsAllowed: readonly [];
36
+ readonly itemsNotAllowed: readonly [];
37
+ };
38
+ readonly market: {
39
+ readonly category: "basic";
40
+ readonly owner: "Plitzi";
41
+ readonly verified: true;
42
+ readonly license: "MIT";
43
+ readonly website: "https://plitzi.com";
44
+ readonly backgroundColor: "#4422ee";
45
+ readonly icon: "fa-solid fa-circle-half-stroke";
46
+ };
47
+ readonly defaultStyle: {
48
+ readonly name: "Theme Toggle";
49
+ readonly displayMode: "desktop";
50
+ readonly style: {
51
+ readonly base: {
52
+ readonly default: {
53
+ readonly display: "inline-flex";
54
+ readonly 'align-items': "center";
55
+ readonly cursor: "pointer";
56
+ };
57
+ };
58
+ };
59
+ readonly subTypes: {};
60
+ };
61
+ readonly settings: {};
62
+ };
63
+ } & import('@plitzi/sdk-shared/authoring/declare').ElementAttributesBrand<Partial<{
64
+ subType?: "switch" | "segmented" | undefined;
65
+ lightLabel?: string | undefined;
66
+ darkLabel?: string | undefined;
67
+ systemLabel?: string | undefined;
68
+ showSystem?: boolean | undefined;
69
+ }>>;
70
+ export default ThemeToggle;
@@ -0,0 +1,6 @@
1
+ import e from "./declaration.mjs";
2
+ import t from "./ThemeToggle.mjs";
3
+ //#region src/elements/basic/ThemeToggle/index.ts
4
+ var n = Object.assign(t, e);
5
+ //#endregion
6
+ export { n as default };