@webiny/website-builder-sdk 0.0.0-unstable.6f45466a1d → 0.0.0-unstable.7be00a75a9

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 (175) hide show
  1. package/BindingsApi.js +29 -36
  2. package/BindingsApi.js.map +1 -1
  3. package/BindingsProcessor.js +34 -43
  4. package/BindingsProcessor.js.map +1 -1
  5. package/BindingsProcessor.test.js +82 -78
  6. package/BindingsProcessor.test.js.map +1 -1
  7. package/BindingsResolver.js +92 -122
  8. package/BindingsResolver.js.map +1 -1
  9. package/BindingsResolver.test.js +399 -363
  10. package/BindingsResolver.test.js.map +1 -1
  11. package/ComponentInputTraverser.js +28 -49
  12. package/ComponentInputTraverser.js.map +1 -1
  13. package/ComponentManifestToAstConverter.js +20 -21
  14. package/ComponentManifestToAstConverter.js.map +1 -1
  15. package/ComponentRegistry.js +33 -22
  16. package/ComponentRegistry.js.map +1 -1
  17. package/ComponentResolver.js +25 -29
  18. package/ComponentResolver.js.map +1 -1
  19. package/ConstraintEvaluator.d.ts +36 -0
  20. package/ConstraintEvaluator.js +288 -0
  21. package/ConstraintEvaluator.js.map +1 -0
  22. package/ConstraintEvaluator.test.d.ts +1 -0
  23. package/ConstraintEvaluator.test.js +1634 -0
  24. package/ConstraintEvaluator.test.js.map +1 -0
  25. package/ContentSdk.d.ts +3 -3
  26. package/ContentSdk.js +83 -90
  27. package/ContentSdk.js.map +1 -1
  28. package/DocumentStore.js +47 -59
  29. package/DocumentStore.js.map +1 -1
  30. package/DocumentStoreManager.js +17 -16
  31. package/DocumentStoreManager.js.map +1 -1
  32. package/EditingSdk.d.ts +2 -2
  33. package/EditingSdk.js +87 -121
  34. package/EditingSdk.js.map +1 -1
  35. package/ElementFactory.d.ts +2 -3
  36. package/ElementFactory.js +125 -164
  37. package/ElementFactory.js.map +1 -1
  38. package/ElementFactory.test.d.ts +1 -0
  39. package/ElementFactory.test.js +251 -0
  40. package/ElementFactory.test.js.map +1 -0
  41. package/Environment.js +18 -19
  42. package/Environment.js.map +1 -1
  43. package/FunctionConverter.js +8 -7
  44. package/FunctionConverter.js.map +1 -1
  45. package/HashObject.js +11 -12
  46. package/HashObject.js.map +1 -1
  47. package/HotkeyManager.js +41 -48
  48. package/HotkeyManager.js.map +1 -1
  49. package/IBindingsUpdater.js +0 -3
  50. package/IRedirects.js +0 -3
  51. package/InheritanceProcessor.js +99 -139
  52. package/InheritanceProcessor.js.map +1 -1
  53. package/InheritanceProcessor.test.js +178 -179
  54. package/InheritanceProcessor.test.js.map +1 -1
  55. package/InheritedValueResolver.js +15 -20
  56. package/InheritedValueResolver.js.map +1 -1
  57. package/InputBindingsProcessor.js +187 -289
  58. package/InputBindingsProcessor.js.map +1 -1
  59. package/InputsBindingsProcessor.test.js +334 -314
  60. package/InputsBindingsProcessor.test.js.map +1 -1
  61. package/InputsUpdater.d.ts +1 -1
  62. package/InputsUpdater.js +23 -26
  63. package/InputsUpdater.js.map +1 -1
  64. package/LiveSdk.d.ts +2 -2
  65. package/LiveSdk.js +12 -13
  66. package/LiveSdk.js.map +1 -1
  67. package/Logger.js +9 -8
  68. package/Logger.js.map +1 -1
  69. package/MouseTracker.js +77 -83
  70. package/MouseTracker.js.map +1 -1
  71. package/NullSdk.d.ts +4 -3
  72. package/NullSdk.js +22 -14
  73. package/NullSdk.js.map +1 -1
  74. package/PreviewDocument.js +27 -30
  75. package/PreviewDocument.js.map +1 -1
  76. package/PreviewSdk.d.ts +2 -2
  77. package/PreviewSdk.js +16 -17
  78. package/PreviewSdk.js.map +1 -1
  79. package/PreviewViewport.js +51 -63
  80. package/PreviewViewport.js.map +1 -1
  81. package/ResizeObserver.js +24 -31
  82. package/ResizeObserver.js.map +1 -1
  83. package/StylesBindingsProcessor.js +40 -79
  84. package/StylesBindingsProcessor.js.map +1 -1
  85. package/StylesUpdater.d.ts +1 -1
  86. package/StylesUpdater.js +20 -25
  87. package/StylesUpdater.js.map +1 -1
  88. package/Theme.js +29 -25
  89. package/Theme.js.map +1 -1
  90. package/ViewportManager.js +89 -101
  91. package/ViewportManager.js.map +1 -1
  92. package/constants.d.ts +1 -0
  93. package/constants.js +7 -5
  94. package/constants.js.map +1 -1
  95. package/createElement.js +5 -6
  96. package/createElement.js.map +1 -1
  97. package/createInput.js +85 -143
  98. package/createInput.js.map +1 -1
  99. package/createTheme.js +2 -3
  100. package/createTheme.js.map +1 -1
  101. package/dataProviders/ApiClient.js +40 -49
  102. package/dataProviders/ApiClient.js.map +1 -1
  103. package/dataProviders/DefaultDataProvider.d.ts +2 -2
  104. package/dataProviders/DefaultDataProvider.js +55 -44
  105. package/dataProviders/DefaultDataProvider.js.map +1 -1
  106. package/dataProviders/GET_PAGE_BY_ID.d.ts +1 -1
  107. package/dataProviders/GET_PAGE_BY_ID.js +3 -1
  108. package/dataProviders/GET_PAGE_BY_ID.js.map +1 -1
  109. package/dataProviders/GET_PAGE_BY_PATH.d.ts +1 -1
  110. package/dataProviders/GET_PAGE_BY_PATH.js +3 -1
  111. package/dataProviders/GET_PAGE_BY_PATH.js.map +1 -1
  112. package/dataProviders/LIST_PUBLISHED_PAGES.d.ts +1 -1
  113. package/dataProviders/LIST_PUBLISHED_PAGES.js +16 -5
  114. package/dataProviders/LIST_PUBLISHED_PAGES.js.map +1 -1
  115. package/dataProviders/NullDataProvider.d.ts +12 -4
  116. package/dataProviders/NullDataProvider.js +21 -13
  117. package/dataProviders/NullDataProvider.js.map +1 -1
  118. package/dataProviders/RedirectsProvider.js +24 -27
  119. package/dataProviders/RedirectsProvider.js.map +1 -1
  120. package/defaultBreakpoints.js +23 -22
  121. package/defaultBreakpoints.js.map +1 -1
  122. package/documentOperations/$addElementReferenceToParent.d.ts +1 -1
  123. package/documentOperations/$addElementReferenceToParent.js +30 -26
  124. package/documentOperations/$addElementReferenceToParent.js.map +1 -1
  125. package/documentOperations/AddElement.js +8 -7
  126. package/documentOperations/AddElement.js.map +1 -1
  127. package/documentOperations/AddToParent.d.ts +2 -2
  128. package/documentOperations/AddToParent.js +14 -13
  129. package/documentOperations/AddToParent.js.map +1 -1
  130. package/documentOperations/IDocumentOperation.js +0 -3
  131. package/documentOperations/RemoveElement.js +10 -7
  132. package/documentOperations/RemoveElement.js.map +1 -1
  133. package/documentOperations/SetGlobalInputBinding.js +23 -22
  134. package/documentOperations/SetGlobalInputBinding.js.map +1 -1
  135. package/documentOperations/SetGlobalStyleBinding.js +23 -23
  136. package/documentOperations/SetGlobalStyleBinding.js.map +1 -1
  137. package/documentOperations/SetInputBindingOverride.js +30 -29
  138. package/documentOperations/SetInputBindingOverride.js.map +1 -1
  139. package/documentOperations/SetStyleBindingOverride.js +30 -31
  140. package/documentOperations/SetStyleBindingOverride.js.map +1 -1
  141. package/documentOperations/index.js +9 -8
  142. package/documentOperations/index.js.map +1 -1
  143. package/findMatchingAstNode.js +11 -13
  144. package/findMatchingAstNode.js.map +1 -1
  145. package/generateElementId.js +2 -2
  146. package/generateElementId.js.map +1 -1
  147. package/headersProvider.js +4 -3
  148. package/headersProvider.js.map +1 -1
  149. package/index.d.ts +1 -0
  150. package/index.js +1 -2
  151. package/jsonPatch.js +5 -9
  152. package/jsonPatch.js.map +1 -1
  153. package/messages.js +12 -11
  154. package/messages.js.map +1 -1
  155. package/messenger/MessageOrigin.js +12 -11
  156. package/messenger/MessageOrigin.js.map +1 -1
  157. package/messenger/Messenger.js +58 -71
  158. package/messenger/Messenger.js.map +1 -1
  159. package/messenger/index.js +0 -2
  160. package/package.json +16 -16
  161. package/registerComponentGroup.js +5 -6
  162. package/registerComponentGroup.js.map +1 -1
  163. package/types/ShorthandCssProperties.js +0 -3
  164. package/types/WebsiteBuilderTheme.d.ts +7 -0
  165. package/types/WebsiteBuilderTheme.js +0 -3
  166. package/types.d.ts +173 -11
  167. package/types.js +0 -3
  168. package/IBindingsUpdater.js.map +0 -1
  169. package/IRedirects.js.map +0 -1
  170. package/documentOperations/IDocumentOperation.js.map +0 -1
  171. package/index.js.map +0 -1
  172. package/messenger/index.js.map +0 -1
  173. package/types/ShorthandCssProperties.js.map +0 -1
  174. package/types/WebsiteBuilderTheme.js.map +0 -1
  175. package/types.js.map +0 -1
package/Theme.js CHANGED
@@ -1,29 +1,33 @@
1
- import deepMerge from "deepmerge";
1
+ import deepmerge from "deepmerge";
2
2
  import { defaultBreakpoints } from "./defaultBreakpoints.js";
3
- export class Theme {
4
- static from(input) {
5
- const {
6
- custom = {},
7
- ...builtInOverrides
8
- } = input?.breakpoints ?? {};
9
- const mergedBreakpoints = deepMerge.all([{}, defaultBreakpoints, builtInOverrides, custom]);
10
- const breakpoints = [];
11
- Object.entries(mergedBreakpoints ?? {}).forEach(([name, breakpoint]) => {
12
- breakpoints.push({
13
- name,
14
- ...breakpoint
15
- });
16
- });
17
- return {
18
- css: input.css,
19
- fonts: input.fonts,
20
- breakpoints: breakpoints.sort((a, b) => b.maxWidth - a.maxWidth),
21
- colors: input?.colors ?? [],
22
- typography: {
23
- ...input?.typography
24
- }
25
- };
26
- }
3
+ class Theme {
4
+ static from(input) {
5
+ const { custom = {}, ...builtInOverrides } = input?.breakpoints ?? {};
6
+ const mergedBreakpoints = deepmerge.all([
7
+ {},
8
+ defaultBreakpoints,
9
+ builtInOverrides,
10
+ custom
11
+ ]);
12
+ const breakpoints = [];
13
+ Object.entries(mergedBreakpoints ?? {}).forEach(([name, breakpoint])=>{
14
+ breakpoints.push({
15
+ name,
16
+ ...breakpoint
17
+ });
18
+ });
19
+ return {
20
+ css: input.css,
21
+ fonts: input.fonts,
22
+ fontSizes: input.fontSizes,
23
+ breakpoints: breakpoints.sort((a, b)=>b.maxWidth - a.maxWidth),
24
+ colors: input?.colors ?? [],
25
+ typography: {
26
+ ...input?.typography
27
+ }
28
+ };
29
+ }
27
30
  }
31
+ export { Theme };
28
32
 
29
33
  //# sourceMappingURL=Theme.js.map
package/Theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["deepMerge","defaultBreakpoints","Theme","from","input","custom","builtInOverrides","breakpoints","mergedBreakpoints","all","Object","entries","forEach","name","breakpoint","push","css","fonts","sort","a","b","maxWidth","colors","typography"],"sources":["Theme.ts"],"sourcesContent":["import deepMerge from \"deepmerge\";\nimport type {\n Breakpoint,\n WebsiteBuilderTheme,\n WebsiteBuilderThemeInput\n} from \"~/types/WebsiteBuilderTheme.js\";\nimport { defaultBreakpoints } from \"~/defaultBreakpoints.js\";\n\nexport class Theme {\n static from(input: WebsiteBuilderThemeInput): WebsiteBuilderTheme {\n const { custom = {}, ...builtInOverrides } = input?.breakpoints ?? {};\n\n const mergedBreakpoints = deepMerge.all([\n {},\n defaultBreakpoints,\n builtInOverrides,\n custom\n ]) as WebsiteBuilderThemeInput[\"breakpoints\"];\n\n const breakpoints: Breakpoint[] = [];\n Object.entries(mergedBreakpoints ?? {}).forEach(([name, breakpoint]) => {\n breakpoints.push({\n name,\n ...(breakpoint as Omit<Breakpoint, \"name\">)\n });\n });\n\n return {\n css: input.css,\n fonts: input.fonts,\n breakpoints: breakpoints.sort((a, b) => b.maxWidth - a.maxWidth),\n colors: input?.colors ?? [],\n typography: {\n ...input?.typography\n }\n };\n }\n}\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,WAAW;AAMjC,SAASC,kBAAkB;AAE3B,OAAO,MAAMC,KAAK,CAAC;EACf,OAAOC,IAAIA,CAACC,KAA+B,EAAuB;IAC9D,MAAM;MAAEC,MAAM,GAAG,CAAC,CAAC;MAAE,GAAGC;IAAiB,CAAC,GAAGF,KAAK,EAAEG,WAAW,IAAI,CAAC,CAAC;IAErE,MAAMC,iBAAiB,GAAGR,SAAS,CAACS,GAAG,CAAC,CACpC,CAAC,CAAC,EACFR,kBAAkB,EAClBK,gBAAgB,EAChBD,MAAM,CACT,CAA4C;IAE7C,MAAME,WAAyB,GAAG,EAAE;IACpCG,MAAM,CAACC,OAAO,CAACH,iBAAiB,IAAI,CAAC,CAAC,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,IAAI,EAAEC,UAAU,CAAC,KAAK;MACpEP,WAAW,CAACQ,IAAI,CAAC;QACbF,IAAI;QACJ,GAAIC;MACR,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,OAAO;MACHE,GAAG,EAAEZ,KAAK,CAACY,GAAG;MACdC,KAAK,EAAEb,KAAK,CAACa,KAAK;MAClBV,WAAW,EAAEA,WAAW,CAACW,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACC,QAAQ,GAAGF,CAAC,CAACE,QAAQ,CAAC;MAChEC,MAAM,EAAElB,KAAK,EAAEkB,MAAM,IAAI,EAAE;MAC3BC,UAAU,EAAE;QACR,GAAGnB,KAAK,EAAEmB;MACd;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"Theme.js","sources":["../src/Theme.ts"],"sourcesContent":["import deepMerge from \"deepmerge\";\nimport type {\n Breakpoint,\n WebsiteBuilderTheme,\n WebsiteBuilderThemeInput\n} from \"~/types/WebsiteBuilderTheme.js\";\nimport { defaultBreakpoints } from \"~/defaultBreakpoints.js\";\n\nexport class Theme {\n static from(input: WebsiteBuilderThemeInput): WebsiteBuilderTheme {\n const { custom = {}, ...builtInOverrides } = input?.breakpoints ?? {};\n\n const mergedBreakpoints = deepMerge.all([\n {},\n defaultBreakpoints,\n builtInOverrides,\n custom\n ]) as WebsiteBuilderThemeInput[\"breakpoints\"];\n\n const breakpoints: Breakpoint[] = [];\n Object.entries(mergedBreakpoints ?? {}).forEach(([name, breakpoint]) => {\n breakpoints.push({\n name,\n ...(breakpoint as Omit<Breakpoint, \"name\">)\n });\n });\n\n return {\n css: input.css,\n fonts: input.fonts,\n fontSizes: input.fontSizes,\n breakpoints: breakpoints.sort((a, b) => b.maxWidth - a.maxWidth),\n colors: input?.colors ?? [],\n typography: {\n ...input?.typography\n }\n };\n }\n}\n"],"names":["Theme","input","custom","builtInOverrides","mergedBreakpoints","deepMerge","defaultBreakpoints","breakpoints","Object","name","breakpoint","a","b"],"mappings":";;AAQO,MAAMA;IACT,OAAO,KAAKC,KAA+B,EAAuB;QAC9D,MAAM,EAAEC,SAAS,CAAC,CAAC,EAAE,GAAGC,kBAAkB,GAAGF,OAAO,eAAe,CAAC;QAEpE,MAAMG,oBAAoBC,UAAAA,GAAa,CAAC;YACpC,CAAC;YACDC;YACAH;YACAD;SACH;QAED,MAAMK,cAA4B,EAAE;QACpCC,OAAO,OAAO,CAACJ,qBAAqB,CAAC,GAAG,OAAO,CAAC,CAAC,CAACK,MAAMC,WAAW;YAC/DH,YAAY,IAAI,CAAC;gBACbE;gBACA,GAAIC,UAAU;YAClB;QACJ;QAEA,OAAO;YACH,KAAKT,MAAM,GAAG;YACd,OAAOA,MAAM,KAAK;YAClB,WAAWA,MAAM,SAAS;YAC1B,aAAaM,YAAY,IAAI,CAAC,CAACI,GAAGC,IAAMA,EAAE,QAAQ,GAAGD,EAAE,QAAQ;YAC/D,QAAQV,OAAO,UAAU,EAAE;YAC3B,YAAY;gBACR,GAAGA,OAAO,UAAU;YACxB;QACJ;IACJ;AACJ"}
@@ -1,110 +1,98 @@
1
1
  "use client";
2
-
3
2
  import { environment } from "./Environment.js";
4
- export class ViewportManager {
5
- /**
6
- * We need this fallback breakpoint for server environments.
7
- */
8
- breakpoints = [{
9
- name: "desktop",
10
- title: "",
11
- description: "",
12
- icon: "",
13
- minWidth: 0,
14
- maxWidth: 4000
15
- }];
16
- constructor(timeout = 150) {
17
- this.changeTimeout = timeout;
18
- this.changeStartSubscribers = new Set();
19
- this.changeEndSubscribers = new Set();
20
- this.isChanging = false;
21
- this.changeTimer = null;
22
- this.handleViewportChange = this.handleViewportChange.bind(this);
23
- this.handleResize = this.handleResize.bind(this);
24
- if (environment.isClient()) {
25
- window.addEventListener("resize", this.handleResize, {
26
- passive: true
27
- });
3
+ class ViewportManager {
4
+ constructor(timeout = 150){
5
+ this.breakpoints = [
6
+ {
7
+ name: "desktop",
8
+ title: "",
9
+ description: "",
10
+ icon: "",
11
+ minWidth: 0,
12
+ maxWidth: 4000
13
+ }
14
+ ];
15
+ this.changeTimeout = timeout;
16
+ this.changeStartSubscribers = new Set();
17
+ this.changeEndSubscribers = new Set();
18
+ this.isChanging = false;
19
+ this.changeTimer = null;
20
+ this.handleViewportChange = this.handleViewportChange.bind(this);
21
+ this.handleResize = this.handleResize.bind(this);
22
+ if (environment.isClient()) window.addEventListener("resize", this.handleResize, {
23
+ passive: true
24
+ });
28
25
  }
29
- }
30
- setBreakpoints(breakpoints) {
31
- this.breakpoints = breakpoints;
32
- }
33
- onViewportChangeStart(callback) {
34
- this.changeStartSubscribers.add(callback);
35
- return () => this.changeStartSubscribers.delete(callback);
36
- }
37
- onViewportChangeEnd(callback) {
38
- this.changeEndSubscribers.add(callback);
39
- return () => this.changeEndSubscribers.delete(callback);
40
- }
41
-
42
- /**
43
- * Get the current viewport information
44
- */
45
- getViewport() {
46
- return this.getViewportInfo();
47
- }
48
- destroy() {
49
- if (environment.isClient()) {
50
- window.removeEventListener("resize", this.handleResize);
51
- if (this.changeTimer !== null) {
52
- clearTimeout(this.changeTimer);
53
- }
54
- this.changeStartSubscribers.clear();
55
- this.changeEndSubscribers.clear();
26
+ setBreakpoints(breakpoints) {
27
+ this.breakpoints = breakpoints;
28
+ }
29
+ onViewportChangeStart(callback) {
30
+ this.changeStartSubscribers.add(callback);
31
+ return ()=>this.changeStartSubscribers.delete(callback);
32
+ }
33
+ onViewportChangeEnd(callback) {
34
+ this.changeEndSubscribers.add(callback);
35
+ return ()=>this.changeEndSubscribers.delete(callback);
36
+ }
37
+ getViewport() {
38
+ return this.getViewportInfo();
39
+ }
40
+ destroy() {
41
+ if (environment.isClient()) {
42
+ window.removeEventListener("resize", this.handleResize);
43
+ if (null !== this.changeTimer) clearTimeout(this.changeTimer);
44
+ this.changeStartSubscribers.clear();
45
+ this.changeEndSubscribers.clear();
46
+ }
47
+ }
48
+ handleResize() {
49
+ this.handleViewportChange();
50
+ }
51
+ handleViewportChange() {
52
+ const viewportInfo = this.getViewportInfo();
53
+ if (!this.isChanging) {
54
+ this.isChanging = true;
55
+ this.notifySubscribers(this.changeStartSubscribers, viewportInfo);
56
+ }
57
+ if (null !== this.changeTimer) clearTimeout(this.changeTimer);
58
+ this.changeTimer = window.setTimeout(()=>{
59
+ this.isChanging = false;
60
+ this.notifySubscribers(this.changeEndSubscribers, viewportInfo);
61
+ }, this.changeTimeout);
56
62
  }
57
- }
58
- handleResize() {
59
- this.handleViewportChange();
60
- }
61
- handleViewportChange() {
62
- const viewportInfo = this.getViewportInfo();
63
- if (!this.isChanging) {
64
- this.isChanging = true;
65
- this.notifySubscribers(this.changeStartSubscribers, viewportInfo);
63
+ getViewportInfo() {
64
+ const modes = [
65
+ ...this.breakpoints
66
+ ].reverse();
67
+ const viewport = environment.isClient() ? {
68
+ width: window.innerWidth,
69
+ height: window.innerHeight,
70
+ scrollWidth: window.document.body.scrollWidth,
71
+ scrollHeight: window.document.body.scrollHeight,
72
+ scrollX: window.scrollX,
73
+ scrollY: window.scrollY
74
+ } : {
75
+ height: 0,
76
+ width: 2000,
77
+ scrollHeight: 0,
78
+ scrollWidth: 2000,
79
+ scrollX: 0,
80
+ scrollY: 0
81
+ };
82
+ const [breakpoint] = modes.filter((mode)=>mode.maxWidth >= viewport.width);
83
+ return {
84
+ ...viewport,
85
+ breakpoint: breakpoint.name,
86
+ breakpoints: this.breakpoints
87
+ };
66
88
  }
67
- if (this.changeTimer !== null) {
68
- clearTimeout(this.changeTimer);
89
+ notifySubscribers(subscribers, viewportInfo) {
90
+ subscribers.forEach((callback)=>{
91
+ if ("function" == typeof callback) callback(viewportInfo);
92
+ });
69
93
  }
70
- this.changeTimer = window.setTimeout(() => {
71
- this.isChanging = false;
72
- this.notifySubscribers(this.changeEndSubscribers, viewportInfo);
73
- }, this.changeTimeout);
74
- }
75
- getViewportInfo() {
76
- const modes = [...this.breakpoints].reverse();
77
- const viewport = environment.isClient() ? {
78
- width: window.innerWidth,
79
- height: window.innerHeight,
80
- scrollWidth: window.document.body.scrollWidth,
81
- scrollHeight: window.document.body.scrollHeight,
82
- scrollX: window.scrollX,
83
- scrollY: window.scrollY
84
- } : {
85
- // During SSR or Next.js build, viewport is not available.
86
- height: 0,
87
- width: 2000,
88
- scrollHeight: 0,
89
- scrollWidth: 2000,
90
- scrollX: 0,
91
- scrollY: 0
92
- };
93
- const [breakpoint] = modes.filter(mode => mode.maxWidth >= viewport.width);
94
- return {
95
- ...viewport,
96
- breakpoint: breakpoint.name,
97
- breakpoints: this.breakpoints
98
- };
99
- }
100
- notifySubscribers(subscribers, viewportInfo) {
101
- subscribers.forEach(callback => {
102
- if (typeof callback === "function") {
103
- callback(viewportInfo);
104
- }
105
- });
106
- }
107
94
  }
108
- export const viewportManager = new ViewportManager();
95
+ const viewportManager = new ViewportManager();
96
+ export { ViewportManager, viewportManager };
109
97
 
110
98
  //# sourceMappingURL=ViewportManager.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["environment","ViewportManager","breakpoints","name","title","description","icon","minWidth","maxWidth","constructor","timeout","changeTimeout","changeStartSubscribers","Set","changeEndSubscribers","isChanging","changeTimer","handleViewportChange","bind","handleResize","isClient","window","addEventListener","passive","setBreakpoints","onViewportChangeStart","callback","add","delete","onViewportChangeEnd","getViewport","getViewportInfo","destroy","removeEventListener","clearTimeout","clear","viewportInfo","notifySubscribers","setTimeout","modes","reverse","viewport","width","innerWidth","height","innerHeight","scrollWidth","document","body","scrollHeight","scrollX","scrollY","breakpoint","filter","mode","subscribers","forEach","viewportManager"],"sources":["ViewportManager.ts"],"sourcesContent":["\"use client\";\nimport type { Breakpoint } from \"~/types.js\";\nimport { environment } from \"~/Environment.js\";\n\nexport interface ViewportInfo {\n width: number;\n height: number;\n scrollWidth: number;\n scrollHeight: number;\n scrollX: number;\n scrollY: number;\n breakpoint: string;\n breakpoints: Breakpoint[];\n}\n\nexport class ViewportManager {\n private readonly changeTimeout: number;\n private readonly changeStartSubscribers: Set<(info: ViewportInfo) => void>;\n private readonly changeEndSubscribers: Set<(info: ViewportInfo) => void>;\n private isChanging: boolean;\n private changeTimer: number | null;\n\n /**\n * We need this fallback breakpoint for server environments.\n */\n private breakpoints: Breakpoint[] = [\n {\n name: \"desktop\",\n title: \"\",\n description: \"\",\n icon: \"\",\n minWidth: 0,\n maxWidth: 4000\n }\n ];\n\n constructor(timeout: number = 150) {\n this.changeTimeout = timeout;\n this.changeStartSubscribers = new Set();\n this.changeEndSubscribers = new Set();\n this.isChanging = false;\n this.changeTimer = null;\n\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleResize = this.handleResize.bind(this);\n\n if (environment.isClient()) {\n window.addEventListener(\"resize\", this.handleResize, { passive: true });\n }\n }\n\n public setBreakpoints(breakpoints: Breakpoint[]) {\n this.breakpoints = breakpoints;\n }\n\n public onViewportChangeStart(callback: (info: ViewportInfo) => void): () => void {\n this.changeStartSubscribers.add(callback);\n return () => this.changeStartSubscribers.delete(callback);\n }\n\n public onViewportChangeEnd(callback: (info: ViewportInfo) => void): () => void {\n this.changeEndSubscribers.add(callback);\n return () => this.changeEndSubscribers.delete(callback);\n }\n\n /**\n * Get the current viewport information\n */\n public getViewport(): ViewportInfo {\n return this.getViewportInfo();\n }\n\n public destroy(): void {\n if (environment.isClient()) {\n window.removeEventListener(\"resize\", this.handleResize);\n if (this.changeTimer !== null) {\n clearTimeout(this.changeTimer);\n }\n this.changeStartSubscribers.clear();\n this.changeEndSubscribers.clear();\n }\n }\n\n private handleResize(): void {\n this.handleViewportChange();\n }\n\n private handleViewportChange(): void {\n const viewportInfo = this.getViewportInfo();\n\n if (!this.isChanging) {\n this.isChanging = true;\n this.notifySubscribers(this.changeStartSubscribers, viewportInfo);\n }\n\n if (this.changeTimer !== null) {\n clearTimeout(this.changeTimer);\n }\n\n this.changeTimer = window.setTimeout(() => {\n this.isChanging = false;\n this.notifySubscribers(this.changeEndSubscribers, viewportInfo);\n }, this.changeTimeout);\n }\n\n private getViewportInfo(): ViewportInfo {\n const modes = [...this.breakpoints].reverse();\n const viewport = environment.isClient()\n ? {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollWidth: window.document.body.scrollWidth,\n scrollHeight: window.document.body.scrollHeight,\n scrollX: window.scrollX,\n scrollY: window.scrollY\n }\n : {\n // During SSR or Next.js build, viewport is not available.\n height: 0,\n width: 2000,\n scrollHeight: 0,\n scrollWidth: 2000,\n scrollX: 0,\n scrollY: 0\n };\n\n const [breakpoint] = modes.filter(mode => mode.maxWidth >= viewport.width);\n\n return { ...viewport, breakpoint: breakpoint.name, breakpoints: this.breakpoints };\n }\n\n private notifySubscribers(\n subscribers: Set<(info: ViewportInfo) => void>,\n viewportInfo: ViewportInfo\n ): void {\n subscribers.forEach(callback => {\n if (typeof callback === \"function\") {\n callback(viewportInfo);\n }\n });\n }\n}\n\nexport const viewportManager = new ViewportManager();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ViewportManager.js","sources":["../src/ViewportManager.ts"],"sourcesContent":["\"use client\";\nimport type { Breakpoint } from \"~/types.js\";\nimport { environment } from \"~/Environment.js\";\n\nexport interface ViewportInfo {\n width: number;\n height: number;\n scrollWidth: number;\n scrollHeight: number;\n scrollX: number;\n scrollY: number;\n breakpoint: string;\n breakpoints: Breakpoint[];\n}\n\nexport class ViewportManager {\n private readonly changeTimeout: number;\n private readonly changeStartSubscribers: Set<(info: ViewportInfo) => void>;\n private readonly changeEndSubscribers: Set<(info: ViewportInfo) => void>;\n private isChanging: boolean;\n private changeTimer: number | null;\n\n /**\n * We need this fallback breakpoint for server environments.\n */\n private breakpoints: Breakpoint[] = [\n {\n name: \"desktop\",\n title: \"\",\n description: \"\",\n icon: \"\",\n minWidth: 0,\n maxWidth: 4000\n }\n ];\n\n constructor(timeout: number = 150) {\n this.changeTimeout = timeout;\n this.changeStartSubscribers = new Set();\n this.changeEndSubscribers = new Set();\n this.isChanging = false;\n this.changeTimer = null;\n\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleResize = this.handleResize.bind(this);\n\n if (environment.isClient()) {\n window.addEventListener(\"resize\", this.handleResize, { passive: true });\n }\n }\n\n public setBreakpoints(breakpoints: Breakpoint[]) {\n this.breakpoints = breakpoints;\n }\n\n public onViewportChangeStart(callback: (info: ViewportInfo) => void): () => void {\n this.changeStartSubscribers.add(callback);\n return () => this.changeStartSubscribers.delete(callback);\n }\n\n public onViewportChangeEnd(callback: (info: ViewportInfo) => void): () => void {\n this.changeEndSubscribers.add(callback);\n return () => this.changeEndSubscribers.delete(callback);\n }\n\n /**\n * Get the current viewport information\n */\n public getViewport(): ViewportInfo {\n return this.getViewportInfo();\n }\n\n public destroy(): void {\n if (environment.isClient()) {\n window.removeEventListener(\"resize\", this.handleResize);\n if (this.changeTimer !== null) {\n clearTimeout(this.changeTimer);\n }\n this.changeStartSubscribers.clear();\n this.changeEndSubscribers.clear();\n }\n }\n\n private handleResize(): void {\n this.handleViewportChange();\n }\n\n private handleViewportChange(): void {\n const viewportInfo = this.getViewportInfo();\n\n if (!this.isChanging) {\n this.isChanging = true;\n this.notifySubscribers(this.changeStartSubscribers, viewportInfo);\n }\n\n if (this.changeTimer !== null) {\n clearTimeout(this.changeTimer);\n }\n\n this.changeTimer = window.setTimeout(() => {\n this.isChanging = false;\n this.notifySubscribers(this.changeEndSubscribers, viewportInfo);\n }, this.changeTimeout);\n }\n\n private getViewportInfo(): ViewportInfo {\n const modes = [...this.breakpoints].reverse();\n const viewport = environment.isClient()\n ? {\n width: window.innerWidth,\n height: window.innerHeight,\n scrollWidth: window.document.body.scrollWidth,\n scrollHeight: window.document.body.scrollHeight,\n scrollX: window.scrollX,\n scrollY: window.scrollY\n }\n : {\n // During SSR or Next.js build, viewport is not available.\n height: 0,\n width: 2000,\n scrollHeight: 0,\n scrollWidth: 2000,\n scrollX: 0,\n scrollY: 0\n };\n\n const [breakpoint] = modes.filter(mode => mode.maxWidth >= viewport.width);\n\n return { ...viewport, breakpoint: breakpoint.name, breakpoints: this.breakpoints };\n }\n\n private notifySubscribers(\n subscribers: Set<(info: ViewportInfo) => void>,\n viewportInfo: ViewportInfo\n ): void {\n subscribers.forEach(callback => {\n if (typeof callback === \"function\") {\n callback(viewportInfo);\n }\n });\n }\n}\n\nexport const viewportManager = new ViewportManager();\n"],"names":["ViewportManager","timeout","Set","environment","window","breakpoints","callback","clearTimeout","viewportInfo","modes","viewport","breakpoint","mode","subscribers","viewportManager"],"mappings":";;AAeO,MAAMA;IAqBT,YAAYC,UAAkB,GAAG,CAAE;QAZlC,KACO,WAAW,GAAiB;YAChC;gBACI,MAAM;gBACN,OAAO;gBACP,aAAa;gBACb,MAAM;gBACN,UAAU;gBACV,UAAU;YACd;SACH;QAGG,IAAI,CAAC,aAAa,GAAGA;QACrB,IAAI,CAAC,sBAAsB,GAAG,IAAIC;QAClC,IAAI,CAAC,oBAAoB,GAAG,IAAIA;QAChC,IAAI,CAAC,UAAU,GAAG;QAClB,IAAI,CAAC,WAAW,GAAG;QAEnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI;QAC/D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI;QAE/C,IAAIC,YAAY,QAAQ,IACpBC,OAAO,gBAAgB,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE;YAAE,SAAS;QAAK;IAE7E;IAEO,eAAeC,WAAyB,EAAE;QAC7C,IAAI,CAAC,WAAW,GAAGA;IACvB;IAEO,sBAAsBC,QAAsC,EAAc;QAC7E,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAACA;QAChC,OAAO,IAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAACA;IACpD;IAEO,oBAAoBA,QAAsC,EAAc;QAC3E,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAACA;QAC9B,OAAO,IAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAACA;IAClD;IAKO,cAA4B;QAC/B,OAAO,IAAI,CAAC,eAAe;IAC/B;IAEO,UAAgB;QACnB,IAAIH,YAAY,QAAQ,IAAI;YACxBC,OAAO,mBAAmB,CAAC,UAAU,IAAI,CAAC,YAAY;YACtD,IAAI,AAAqB,SAArB,IAAI,CAAC,WAAW,EAChBG,aAAa,IAAI,CAAC,WAAW;YAEjC,IAAI,CAAC,sBAAsB,CAAC,KAAK;YACjC,IAAI,CAAC,oBAAoB,CAAC,KAAK;QACnC;IACJ;IAEQ,eAAqB;QACzB,IAAI,CAAC,oBAAoB;IAC7B;IAEQ,uBAA6B;QACjC,MAAMC,eAAe,IAAI,CAAC,eAAe;QAEzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,sBAAsB,EAAEA;QACxD;QAEA,IAAI,AAAqB,SAArB,IAAI,CAAC,WAAW,EAChBD,aAAa,IAAI,CAAC,WAAW;QAGjC,IAAI,CAAC,WAAW,GAAGH,OAAO,UAAU,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG;YAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,EAAEI;QACtD,GAAG,IAAI,CAAC,aAAa;IACzB;IAEQ,kBAAgC;QACpC,MAAMC,QAAQ;eAAI,IAAI,CAAC,WAAW;SAAC,CAAC,OAAO;QAC3C,MAAMC,WAAWP,YAAY,QAAQ,KAC/B;YACI,OAAOC,OAAO,UAAU;YACxB,QAAQA,OAAO,WAAW;YAC1B,aAAaA,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW;YAC7C,cAAcA,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY;YAC/C,SAASA,OAAO,OAAO;YACvB,SAASA,OAAO,OAAO;QAC3B,IACA;YAEI,QAAQ;YACR,OAAO;YACP,cAAc;YACd,aAAa;YACb,SAAS;YACT,SAAS;QACb;QAEN,MAAM,CAACO,WAAW,GAAGF,MAAM,MAAM,CAACG,CAAAA,OAAQA,KAAK,QAAQ,IAAIF,SAAS,KAAK;QAEzE,OAAO;YAAE,GAAGA,QAAQ;YAAE,YAAYC,WAAW,IAAI;YAAE,aAAa,IAAI,CAAC,WAAW;QAAC;IACrF;IAEQ,kBACJE,WAA8C,EAC9CL,YAA0B,EACtB;QACJK,YAAY,OAAO,CAACP,CAAAA;YAChB,IAAI,AAAoB,cAApB,OAAOA,UACPA,SAASE;QAEjB;IACJ;AACJ;AAEO,MAAMM,kBAAkB,IAAId"}
package/constants.d.ts CHANGED
@@ -3,4 +3,5 @@ export declare const StyleSettings: {
3
3
  Visibility: string;
4
4
  Background: string;
5
5
  MarginPadding: string;
6
+ Border: string;
6
7
  };
package/constants.js CHANGED
@@ -1,8 +1,10 @@
1
- export const StyleSettings = {
2
- Layout: "layout",
3
- Visibility: "visibility",
4
- Background: "background",
5
- MarginPadding: "marginPadding"
1
+ const StyleSettings = {
2
+ Layout: "layout",
3
+ Visibility: "visibility",
4
+ Background: "background",
5
+ MarginPadding: "marginPadding",
6
+ Border: "border"
6
7
  };
8
+ export { StyleSettings };
7
9
 
8
10
  //# sourceMappingURL=constants.js.map
package/constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSettings","Layout","Visibility","Background","MarginPadding"],"sources":["constants.ts"],"sourcesContent":["export const StyleSettings = {\n Layout: \"layout\",\n Visibility: \"visibility\",\n Background: \"background\",\n MarginPadding: \"marginPadding\"\n};\n"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG;EACzBC,MAAM,EAAE,QAAQ;EAChBC,UAAU,EAAE,YAAY;EACxBC,UAAU,EAAE,YAAY;EACxBC,aAAa,EAAE;AACnB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"constants.js","sources":["../src/constants.ts"],"sourcesContent":["export const StyleSettings = {\n Layout: \"layout\",\n Visibility: \"visibility\",\n Background: \"background\",\n MarginPadding: \"marginPadding\",\n Border: \"border\"\n};\n"],"names":["StyleSettings"],"mappings":"AAAO,MAAMA,gBAAgB;IACzB,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,eAAe;IACf,QAAQ;AACZ"}
package/createElement.js CHANGED
@@ -1,8 +1,7 @@
1
- export const createElement = params => {
2
- return {
3
- action: "CreateElement",
4
- params
5
- };
6
- };
1
+ const createElement = (params)=>({
2
+ action: "CreateElement",
3
+ params
4
+ });
5
+ export { createElement };
7
6
 
8
7
  //# sourceMappingURL=createElement.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["createElement","params","action"],"sources":["createElement.ts"],"sourcesContent":["import type { ResponsiveStyles } from \"~/types.js\";\n\nexport interface CreateElementParams {\n component: string;\n inputs?: Record<string, any>;\n styles?: ResponsiveStyles;\n}\n\nexport const createElement = (params: CreateElementParams) => {\n return {\n action: \"CreateElement\",\n params\n };\n};\n"],"mappings":"AAQA,OAAO,MAAMA,aAAa,GAAIC,MAA2B,IAAK;EAC1D,OAAO;IACHC,MAAM,EAAE,eAAe;IACvBD;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"createElement.js","sources":["../src/createElement.ts"],"sourcesContent":["import type { ResponsiveStyles } from \"~/types.js\";\n\nexport interface CreateElementParams {\n component: string;\n inputs?: Record<string, any>;\n styles?: ResponsiveStyles;\n}\n\nexport const createElement = (params: CreateElementParams) => {\n return {\n action: \"CreateElement\",\n params\n };\n};\n"],"names":["createElement","params"],"mappings":"AAQO,MAAMA,gBAAgB,CAACC,SACnB;QACH,QAAQ;QACRA;IACJ"}
package/createInput.js CHANGED
@@ -1,160 +1,102 @@
1
1
  import { functionConverter } from "./FunctionConverter.js";
2
-
3
- /**
4
- * TypeScript Overload Resolution and Input Factory Design
5
- *
6
- * Each input factory (e.g., createTextInput) is defined with two TypeScript overload signatures:
7
- * 1. One overload requires a `name` property in the input (used for array-based APIs, where inference is needed).
8
- * 2. The other overload omits the `name` property (used for object-based APIs, where the key provides the name).
9
- *
10
- * TypeScript resolves overloads by scanning from top to bottom and picking the first matching signature.
11
- * The implementation signature uses `any` for the argument, and the return type is unified to match all overloads.
12
- *
13
- * In array mode, the `name` must be explicitly provided in the input object, so inference for `TName` works.
14
- * In object mode, the input does not require a `name` property; instead, the key in the object (e.g., `{ foo: createTextInput({ ... }) }`)
15
- * provides the name via contextual typing from the consuming function (such as `createComponent`). TypeScript uses this context
16
- * to resolve the correct type for `TName` even when `name` is omitted from the input.
17
- *
18
- * This pattern ensures that all returned input objects are typed as `{ name: TName }`, whether `name` is provided explicitly or inferred,
19
- * so consumers of these factories do not need to worry about the presence of the `name` property in the result.
20
- */
21
- // Text
22
-
23
- export function createTextInput(input) {
24
- return createInput({
25
- type: "text",
26
- renderer: "Webiny/Input",
27
- ...input
28
- });
2
+ function createTextInput(input) {
3
+ return createInput({
4
+ type: "text",
5
+ renderer: "Webiny/Input",
6
+ ...input
7
+ });
29
8
  }
30
-
31
- // Long Text
32
-
33
- export function createLongTextInput(input) {
34
- return createInput({
35
- type: "longText",
36
- renderer: "Webiny/Textarea",
37
- ...input
38
- });
9
+ function createLongTextInput(input) {
10
+ return createInput({
11
+ type: "longText",
12
+ renderer: "Webiny/Textarea",
13
+ ...input
14
+ });
39
15
  }
40
-
41
- // Number
42
-
43
- export function createNumberInput(input) {
44
- return createInput({
45
- type: "number",
46
- renderer: "Webiny/Number",
47
- ...input
48
- });
16
+ function createNumberInput(input) {
17
+ return createInput({
18
+ type: "number",
19
+ renderer: "Webiny/Number",
20
+ ...input
21
+ });
49
22
  }
50
-
51
- // Boolean
52
-
53
- export function createBooleanInput(input) {
54
- return createInput({
55
- type: "boolean",
56
- renderer: "Webiny/Switch",
57
- ...input
58
- });
23
+ function createBooleanInput(input) {
24
+ return createInput({
25
+ type: "boolean",
26
+ renderer: "Webiny/Switch",
27
+ ...input
28
+ });
59
29
  }
60
-
61
- // Color
62
-
63
- export function createColorInput(input) {
64
- return createInput({
65
- type: "color",
66
- renderer: "Webiny/ColorPicker",
67
- ...input
68
- });
30
+ function createColorInput(input) {
31
+ return createInput({
32
+ type: "color",
33
+ renderer: "Webiny/ColorPicker",
34
+ ...input
35
+ });
69
36
  }
70
-
71
- // File
72
-
73
- export function createFileInput(input) {
74
- return createInput({
75
- type: "file",
76
- renderer: "Webiny/FileManager",
77
- ...input
78
- });
37
+ function createFileInput(input) {
38
+ return createInput({
39
+ type: "file",
40
+ renderer: "Webiny/FileManager",
41
+ ...input
42
+ });
79
43
  }
80
-
81
- // Date
82
-
83
- export function createDateInput(input) {
84
- return createInput({
85
- type: "datetime",
86
- renderer: "Webiny/DateTime",
87
- ...input
88
- });
44
+ function createDateInput(input) {
45
+ return createInput({
46
+ type: "datetime",
47
+ renderer: "Webiny/DateTime",
48
+ ...input
49
+ });
89
50
  }
90
-
91
- // Rich Text
92
-
93
- export function createLexicalInput(input) {
94
- return createInput({
95
- type: "lexical",
96
- renderer: "Webiny/Lexical",
97
- ...input
98
- });
51
+ function createLexicalInput(input) {
52
+ return createInput({
53
+ type: "lexical",
54
+ renderer: "Webiny/Lexical",
55
+ ...input
56
+ });
99
57
  }
100
-
101
- // Select
102
-
103
- export function createSelectInput(input) {
104
- return createInput({
105
- type: "select",
106
- renderer: "Webiny/Select",
107
- ...input
108
- });
58
+ function createSelectInput(input) {
59
+ return createInput({
60
+ type: "select",
61
+ renderer: "Webiny/Select",
62
+ ...input
63
+ });
109
64
  }
110
-
111
- // Radio
112
-
113
- export function createRadioInput(input) {
114
- return createInput({
115
- type: "radio",
116
- renderer: "Webiny/RadioGroup",
117
- ...input
118
- });
65
+ function createRadioInput(input) {
66
+ return createInput({
67
+ type: "radio",
68
+ renderer: "Webiny/RadioGroup",
69
+ ...input
70
+ });
119
71
  }
120
-
121
- // Object
122
-
123
- export function createObjectInput(input) {
124
- return createInput({
125
- type: "object",
126
- renderer: "Webiny/Object",
127
- ...input
128
- });
72
+ function createObjectInput(input) {
73
+ return createInput({
74
+ type: "object",
75
+ renderer: "Webiny/Object",
76
+ ...input
77
+ });
129
78
  }
130
-
131
- // Tags
132
-
133
- export function createTagsInput(input) {
134
- return createInput({
135
- type: "text",
136
- list: true,
137
- renderer: "Webiny/Tags",
138
- ...input
139
- });
79
+ function createTagsInput(input) {
80
+ return createInput({
81
+ type: "text",
82
+ list: true,
83
+ renderer: "Webiny/Tags",
84
+ ...input
85
+ });
140
86
  }
141
- export function createSlotInput(input) {
142
- return createInput({
143
- type: "slot",
144
- list: true,
145
- renderer: "Webiny/Slot",
146
- defaultValue: [],
147
- ...input
148
- });
87
+ function createSlotInput(input) {
88
+ return createInput({
89
+ type: "slot",
90
+ list: true,
91
+ renderer: "Webiny/Slot",
92
+ defaultValue: [],
93
+ ...input
94
+ });
149
95
  }
150
-
151
- // Implementation
152
- export function createInput(input) {
153
- if (input.onChange) {
154
- // @ts-expect-error We don't use this function on the frontend, so this is ok.
155
- input.onChange = functionConverter.serialize(input.onChange);
156
- }
157
- return input;
96
+ function createInput(input) {
97
+ if (input.onChange) input.onChange = functionConverter.serialize(input.onChange);
98
+ return input;
158
99
  }
100
+ export { createBooleanInput, createColorInput, createDateInput, createFileInput, createInput, createLexicalInput, createLongTextInput, createNumberInput, createObjectInput, createRadioInput, createSelectInput, createSlotInput, createTagsInput, createTextInput };
159
101
 
160
102
  //# sourceMappingURL=createInput.js.map