@lowdefy/docs-content 0.0.0-experimental-20260710073520

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 (304) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +20 -0
  3. package/content/actions/callapi.md +66 -0
  4. package/content/actions/callmethod.md +41 -0
  5. package/content/actions/copytoclipboard.md +32 -0
  6. package/content/actions/displaymessage.md +53 -0
  7. package/content/actions/downloadcsv.md +89 -0
  8. package/content/actions/fetch.md +50 -0
  9. package/content/actions/geolocationcurrentposition.md +56 -0
  10. package/content/actions/link.md +104 -0
  11. package/content/actions/login.md +85 -0
  12. package/content/actions/logout.md +56 -0
  13. package/content/actions/pdfmake.md +304 -0
  14. package/content/actions/request.md +67 -0
  15. package/content/actions/reset.md +27 -0
  16. package/content/actions/resetvalidation.md +85 -0
  17. package/content/actions/scrollto.md +85 -0
  18. package/content/actions/setdarkmode.md +62 -0
  19. package/content/actions/setfocus.md +33 -0
  20. package/content/actions/setglobal.md +63 -0
  21. package/content/actions/setlocale.md +69 -0
  22. package/content/actions/setstate.md +70 -0
  23. package/content/actions/throw.md +72 -0
  24. package/content/actions/validate.md +87 -0
  25. package/content/actions/wait.md +24 -0
  26. package/content/agents/agent-endpoint-tools.md +190 -0
  27. package/content/agents/agent-mcp-tools.md +124 -0
  28. package/content/agents/agent-multi-agent.md +136 -0
  29. package/content/agents/agent-properties.md +174 -0
  30. package/content/agents/agent-server-hooks.md +336 -0
  31. package/content/agents/agentchat.md +515 -0
  32. package/content/agents/agentconversations.md +148 -0
  33. package/content/concepts/ai-agent-docs.md +190 -0
  34. package/content/concepts/cli.md +213 -0
  35. package/content/concepts/connections-and-requests.md +7 -0
  36. package/content/concepts/custom-html.md +3 -0
  37. package/content/concepts/custom-styling.md +161 -0
  38. package/content/concepts/events-and-actions.md +271 -0
  39. package/content/concepts/hosting-files.md +18 -0
  40. package/content/concepts/i18n.md +320 -0
  41. package/content/concepts/keyboard-shortcuts.md +218 -0
  42. package/content/concepts/layout-overview.md +478 -0
  43. package/content/concepts/lists.md +144 -0
  44. package/content/concepts/logger.md +43 -0
  45. package/content/concepts/lowdefy-schema.md +365 -0
  46. package/content/concepts/menus.md +144 -0
  47. package/content/concepts/module-authoring.md +564 -0
  48. package/content/concepts/modules.md +338 -0
  49. package/content/concepts/operators.md +45 -0
  50. package/content/concepts/overview.md +19 -0
  51. package/content/concepts/references-and-templates.md +207 -0
  52. package/content/concepts/secrets.md +24 -0
  53. package/content/concepts/selectors.md +143 -0
  54. package/content/connections/amazonredshift.md +176 -0
  55. package/content/connections/anthropic.md +232 -0
  56. package/content/connections/awss3.md +313 -0
  57. package/content/connections/azureblobstorage.md +133 -0
  58. package/content/connections/elasticsearch.md +371 -0
  59. package/content/connections/google.md +228 -0
  60. package/content/connections/googlecloudstorage.md +139 -0
  61. package/content/connections/googlesheet.md +313 -0
  62. package/content/connections/knex.md +206 -0
  63. package/content/connections/mariadb.md +177 -0
  64. package/content/connections/mcp.md +134 -0
  65. package/content/connections/mongodb.md +739 -0
  66. package/content/connections/mssql.md +191 -0
  67. package/content/connections/mysql.md +192 -0
  68. package/content/connections/openai-connection.md +228 -0
  69. package/content/connections/postgresql.md +200 -0
  70. package/content/connections/redis.md +116 -0
  71. package/content/connections/sendgridmail.md +94 -0
  72. package/content/connections/smtp.md +149 -0
  73. package/content/connections/sqlite.md +187 -0
  74. package/content/connections/stripe.md +115 -0
  75. package/content/container-blocks/affix.md +413 -0
  76. package/content/container-blocks/alert.md +937 -0
  77. package/content/container-blocks/badge.md +1222 -0
  78. package/content/container-blocks/box.md +1453 -0
  79. package/content/container-blocks/card.md +1200 -0
  80. package/content/container-blocks/carousel.md +2247 -0
  81. package/content/container-blocks/collapse.md +1335 -0
  82. package/content/container-blocks/configprovider.md +1070 -0
  83. package/content/container-blocks/confirmmodal.md +1159 -0
  84. package/content/container-blocks/content.md +597 -0
  85. package/content/container-blocks/descriptions.md +870 -0
  86. package/content/container-blocks/drawer.md +1379 -0
  87. package/content/container-blocks/dropdownmenu.md +643 -0
  88. package/content/container-blocks/flex.md +1510 -0
  89. package/content/container-blocks/footer.md +380 -0
  90. package/content/container-blocks/googlemaps.md +546 -0
  91. package/content/container-blocks/googlemapsheatmap.md +607 -0
  92. package/content/container-blocks/googlemapsscript.md +61 -0
  93. package/content/container-blocks/header.md +302 -0
  94. package/content/container-blocks/label.md +739 -0
  95. package/content/container-blocks/layout.md +604 -0
  96. package/content/container-blocks/masonry.md +1090 -0
  97. package/content/container-blocks/mobilemenu.md +1244 -0
  98. package/content/container-blocks/modal.md +1180 -0
  99. package/content/container-blocks/pageheadermenu.md +614 -0
  100. package/content/container-blocks/pagesidebarlayout.md +438 -0
  101. package/content/container-blocks/pagesidermenu.md +651 -0
  102. package/content/container-blocks/popover.md +1421 -0
  103. package/content/container-blocks/result.md +972 -0
  104. package/content/container-blocks/sider.md +1064 -0
  105. package/content/container-blocks/span.md +747 -0
  106. package/content/container-blocks/spinner.md +267 -0
  107. package/content/container-blocks/splitter.md +1735 -0
  108. package/content/container-blocks/tabs.md +1718 -0
  109. package/content/container-blocks/tooltip.md +1274 -0
  110. package/content/container-blocks/watermark.md +515 -0
  111. package/content/controls/for.md +103 -0
  112. package/content/controls/if.md +107 -0
  113. package/content/controls/log.md +50 -0
  114. package/content/controls/parallel.md +71 -0
  115. package/content/controls/parallel_for.md +36 -0
  116. package/content/controls/reject.md +56 -0
  117. package/content/controls/return.md +66 -0
  118. package/content/controls/set_state.md +98 -0
  119. package/content/controls/switch.md +90 -0
  120. package/content/controls/throw.md +79 -0
  121. package/content/controls/try.md +88 -0
  122. package/content/deployment/docker.md +149 -0
  123. package/content/deployment/node-server.md +27 -0
  124. package/content/deployment/vercel.md +101 -0
  125. package/content/display-blocks/aggrid.md +1459 -0
  126. package/content/display-blocks/anchor.md +336 -0
  127. package/content/display-blocks/avatar.md +1154 -0
  128. package/content/display-blocks/breadcrumb.md +517 -0
  129. package/content/display-blocks/button.md +758 -0
  130. package/content/display-blocks/calendar.md +156 -0
  131. package/content/display-blocks/dangeroushtml.md +314 -0
  132. package/content/display-blocks/dangerousmarkdown.md +423 -0
  133. package/content/display-blocks/diffgit.md +44 -0
  134. package/content/display-blocks/difflist.md +225 -0
  135. package/content/display-blocks/diffsidebyside.md +56 -0
  136. package/content/display-blocks/difftimeline.md +94 -0
  137. package/content/display-blocks/divider.md +406 -0
  138. package/content/display-blocks/download.md +60 -0
  139. package/content/display-blocks/dropdownbutton.md +661 -0
  140. package/content/display-blocks/echart.md +418 -0
  141. package/content/display-blocks/floatbutton.md +545 -0
  142. package/content/display-blocks/html.md +311 -0
  143. package/content/display-blocks/icon.md +717 -0
  144. package/content/display-blocks/img.md +479 -0
  145. package/content/display-blocks/markdown.md +520 -0
  146. package/content/display-blocks/markdownwithcode.md +730 -0
  147. package/content/display-blocks/menu.md +1123 -0
  148. package/content/display-blocks/message.md +941 -0
  149. package/content/display-blocks/notification.md +1410 -0
  150. package/content/display-blocks/paragraph.md +643 -0
  151. package/content/display-blocks/progress.md +818 -0
  152. package/content/display-blocks/qrcode.md +519 -0
  153. package/content/display-blocks/s3download.md +240 -0
  154. package/content/display-blocks/search.md +360 -0
  155. package/content/display-blocks/skeleton.md +272 -0
  156. package/content/display-blocks/skeletonavatar.md +222 -0
  157. package/content/display-blocks/skeletonbutton.md +245 -0
  158. package/content/display-blocks/skeletoninput.md +223 -0
  159. package/content/display-blocks/skeletonparagraph.md +201 -0
  160. package/content/display-blocks/statistic.md +485 -0
  161. package/content/display-blocks/steps.md +585 -0
  162. package/content/display-blocks/tag.md +620 -0
  163. package/content/display-blocks/title.md +654 -0
  164. package/content/display-blocks/tour.md +2359 -0
  165. package/content/input-blocks/autocomplete.md +786 -0
  166. package/content/input-blocks/buttonselector.md +964 -0
  167. package/content/input-blocks/checkboxselector.md +765 -0
  168. package/content/input-blocks/checkboxswitch.md +497 -0
  169. package/content/input-blocks/colorselector.md +884 -0
  170. package/content/input-blocks/daterangeselector.md +777 -0
  171. package/content/input-blocks/dateselector.md +693 -0
  172. package/content/input-blocks/datetimeselector.md +791 -0
  173. package/content/input-blocks/inputgallery.md +528 -0
  174. package/content/input-blocks/monthselector.md +717 -0
  175. package/content/input-blocks/multipleselector.md +1337 -0
  176. package/content/input-blocks/numberinput.md +855 -0
  177. package/content/input-blocks/pagination.md +679 -0
  178. package/content/input-blocks/paragraphinput.md +1664 -0
  179. package/content/input-blocks/passwordinput.md +480 -0
  180. package/content/input-blocks/phonenumberinput.md +688 -0
  181. package/content/input-blocks/radioselector.md +820 -0
  182. package/content/input-blocks/ratingslider.md +684 -0
  183. package/content/input-blocks/s3uploadbutton.md +384 -0
  184. package/content/input-blocks/s3uploaddragger.md +305 -0
  185. package/content/input-blocks/s3uploadphoto.md +288 -0
  186. package/content/input-blocks/segmentedselector.md +782 -0
  187. package/content/input-blocks/selector.md +1162 -0
  188. package/content/input-blocks/switch.md +552 -0
  189. package/content/input-blocks/textarea.md +714 -0
  190. package/content/input-blocks/textinput.md +639 -0
  191. package/content/input-blocks/tiptapinput.md +226 -0
  192. package/content/input-blocks/tiptapmentioninput.md +471 -0
  193. package/content/input-blocks/titleinput.md +1094 -0
  194. package/content/input-blocks/treeinput.md +144 -0
  195. package/content/input-blocks/treemultipleselector.md +162 -0
  196. package/content/input-blocks/treeselector.md +185 -0
  197. package/content/input-blocks/upload.md +149 -0
  198. package/content/input-blocks/uploaddragger.md +85 -0
  199. package/content/input-blocks/uploadphoto.md +84 -0
  200. package/content/input-blocks/weekselector.md +630 -0
  201. package/content/list-blocks/controlledlist.md +498 -0
  202. package/content/list-blocks/list.md +529 -0
  203. package/content/list-blocks/listselector.md +301 -0
  204. package/content/list-blocks/masonrylist.md +230 -0
  205. package/content/migration/upgrade-guide.md +106 -0
  206. package/content/migration/v4-to-v5.md +589 -0
  207. package/content/migration/v5-to-v6.md +36 -0
  208. package/content/operators/_actions.md +58 -0
  209. package/content/operators/_and.md +76 -0
  210. package/content/operators/_api.md +254 -0
  211. package/content/operators/_app.md +114 -0
  212. package/content/operators/_args.md +65 -0
  213. package/content/operators/_array.md +331 -0
  214. package/content/operators/_base64.md +49 -0
  215. package/content/operators/_boolean.md +33 -0
  216. package/content/operators/_build.md +166 -0
  217. package/content/operators/_change_case.md +357 -0
  218. package/content/operators/_date.md +415 -0
  219. package/content/operators/_dayjs.md +128 -0
  220. package/content/operators/_diff.md +61 -0
  221. package/content/operators/_divide.md +32 -0
  222. package/content/operators/_eq.md +52 -0
  223. package/content/operators/_event.md +86 -0
  224. package/content/operators/_function.md +52 -0
  225. package/content/operators/_get.md +92 -0
  226. package/content/operators/_global.md +86 -0
  227. package/content/operators/_gt.md +50 -0
  228. package/content/operators/_gte.md +50 -0
  229. package/content/operators/_hash.md +112 -0
  230. package/content/operators/_if.md +30 -0
  231. package/content/operators/_if_none.md +47 -0
  232. package/content/operators/_index.md +48 -0
  233. package/content/operators/_input.md +86 -0
  234. package/content/operators/_intl.md +135 -0
  235. package/content/operators/_item.md +166 -0
  236. package/content/operators/_js.md +113 -0
  237. package/content/operators/_json.md +120 -0
  238. package/content/operators/_jsonata.md +152 -0
  239. package/content/operators/_locale.md +65 -0
  240. package/content/operators/_location.md +40 -0
  241. package/content/operators/_log.md +22 -0
  242. package/content/operators/_lt.md +50 -0
  243. package/content/operators/_lte.md +50 -0
  244. package/content/operators/_math.md +407 -0
  245. package/content/operators/_media.md +83 -0
  246. package/content/operators/_menu.md +62 -0
  247. package/content/operators/_module.md +340 -0
  248. package/content/operators/_mql.md +95 -0
  249. package/content/operators/_ne.md +62 -0
  250. package/content/operators/_not.md +33 -0
  251. package/content/operators/_number.md +159 -0
  252. package/content/operators/_nunjucks.md +117 -0
  253. package/content/operators/_object.md +253 -0
  254. package/content/operators/_operator.md +33 -0
  255. package/content/operators/_or.md +67 -0
  256. package/content/operators/_product.md +45 -0
  257. package/content/operators/_random.md +90 -0
  258. package/content/operators/_ref.md +80 -0
  259. package/content/operators/_regex.md +69 -0
  260. package/content/operators/_request.md +35 -0
  261. package/content/operators/_request_details.md +29 -0
  262. package/content/operators/_secret.md +56 -0
  263. package/content/operators/_state.md +134 -0
  264. package/content/operators/_step.md +98 -0
  265. package/content/operators/_string.md +327 -0
  266. package/content/operators/_subtract.md +24 -0
  267. package/content/operators/_sum.md +45 -0
  268. package/content/operators/_switch.md +37 -0
  269. package/content/operators/_t.md +96 -0
  270. package/content/operators/_theme.md +65 -0
  271. package/content/operators/_type.md +78 -0
  272. package/content/operators/_uri.md +49 -0
  273. package/content/operators/_url_query.md +92 -0
  274. package/content/operators/_user.md +154 -0
  275. package/content/operators/_uuid.md +118 -0
  276. package/content/operators/_var.md +88 -0
  277. package/content/operators/_yaml.md +96 -0
  278. package/content/other/introduction.md +39 -0
  279. package/content/other/next-auth-providers.md +3 -0
  280. package/content/other/updatesession.md +26 -0
  281. package/content/plugins/plugins-actions.md +80 -0
  282. package/content/plugins/plugins-connections.md +98 -0
  283. package/content/plugins/plugins-dev.md +138 -0
  284. package/content/plugins/plugins-introduction.md +29 -0
  285. package/content/plugins/plugins-operators.md +71 -0
  286. package/content/testing/e2e-auth.md +108 -0
  287. package/content/testing/e2e-configuration.md +107 -0
  288. package/content/testing/e2e-getting-started.md +96 -0
  289. package/content/testing/e2e-introduction.md +53 -0
  290. package/content/testing/e2e-mocking.md +155 -0
  291. package/content/testing/e2e-writing-tests.md +214 -0
  292. package/content/tutorial/tutorial-actions-operators.md +222 -0
  293. package/content/tutorial/tutorial-add-blocks.md +86 -0
  294. package/content/tutorial/tutorial-create-page.md +57 -0
  295. package/content/tutorial/tutorial-display-data-page.md +181 -0
  296. package/content/tutorial/tutorial-next-steps.md +53 -0
  297. package/content/tutorial/tutorial-requests-sql.md +22 -0
  298. package/content/tutorial/tutorial-start.md +71 -0
  299. package/content/user-authentication/auth-providers.md +15 -0
  300. package/content/user-authentication/login-and-logout.md +122 -0
  301. package/content/user-authentication/users-introduction.md +31 -0
  302. package/index.json +2281 -0
  303. package/package.json +34 -0
  304. package/scripts/extractAgentDocs.js +130 -0
@@ -0,0 +1,515 @@
1
+ # Watermark
2
+
3
+ Watermark overlay with text, image, and font customization.
4
+
5
+ ```yaml
6
+ - id: basic_single
7
+ type: Watermark
8
+ properties:
9
+ text: Lowdefy
10
+ blocks:
11
+ - id: basic_single_child
12
+ type: Box
13
+ style:
14
+ height: 200px
15
+ - id: basic_multiline
16
+ type: Watermark
17
+ properties:
18
+ text:
19
+ - Lowdefy
20
+ - Confidential
21
+ blocks:
22
+ - id: basic_multiline_child
23
+ type: Box
24
+ style:
25
+ height: 220px
26
+ ```
27
+
28
+ ```yaml
29
+ - id: img_logo
30
+ type: Watermark
31
+ properties:
32
+ image: https://lowdefy.com/favicon-32x32.png
33
+ width: 80
34
+ height: 80
35
+ blocks:
36
+ - id: img_logo_child
37
+ type: Box
38
+ style:
39
+ height: 240px
40
+ - id: img_small
41
+ type: Watermark
42
+ properties:
43
+ image: https://lowdefy.com/favicon-32x32.png
44
+ width: 40
45
+ height: 40
46
+ blocks:
47
+ - id: img_small_child
48
+ type: Box
49
+ style:
50
+ height: 200px
51
+ ```
52
+
53
+ ```yaml
54
+ - id: font_red
55
+ type: Watermark
56
+ properties:
57
+ text: Rejected
58
+ font:
59
+ color: rgba(255, 0, 0, 0.15)
60
+ blocks:
61
+ - id: font_red_child
62
+ type: Box
63
+ style:
64
+ height: 180px
65
+ - id: font_large_bold
66
+ type: Watermark
67
+ properties:
68
+ text: DRAFT
69
+ font:
70
+ fontSize: 28
71
+ fontWeight: bold
72
+ color: rgba(255, 0, 0, 0.08)
73
+ blocks:
74
+ - id: font_large_bold_child
75
+ type: Box
76
+ style:
77
+ height: 220px
78
+ - id: font_serif_italic
79
+ type: Watermark
80
+ properties:
81
+ text: Elegant
82
+ font:
83
+ fontFamily: Georgia, serif
84
+ fontStyle: italic
85
+ fontSize: 20
86
+ color: rgba(139, 92, 246, 0.1)
87
+ blocks:
88
+ - id: font_serif_italic_child
89
+ type: Box
90
+ style:
91
+ height: 200px
92
+ ```
93
+
94
+ ```yaml
95
+ - id: align_left
96
+ type: Watermark
97
+ properties:
98
+ text:
99
+ - Left Aligned
100
+ - Second Line
101
+ font:
102
+ textAlign: left
103
+ color: rgba(0, 0, 0, 0.1)
104
+ blocks:
105
+ - id: align_left_child
106
+ type: Box
107
+ style:
108
+ height: 200px
109
+ - id: align_center
110
+ type: Watermark
111
+ properties:
112
+ text:
113
+ - Center Aligned
114
+ - Second Line
115
+ font:
116
+ textAlign: center
117
+ color: rgba(0, 0, 0, 0.1)
118
+ blocks:
119
+ - id: align_center_child
120
+ type: Box
121
+ style:
122
+ height: 200px
123
+ - id: align_right
124
+ type: Watermark
125
+ properties:
126
+ text:
127
+ - Right Aligned
128
+ - Second Line
129
+ font:
130
+ textAlign: right
131
+ color: rgba(0, 0, 0, 0.1)
132
+ blocks:
133
+ - id: align_right_child
134
+ type: Box
135
+ style:
136
+ height: 200px
137
+ ```
138
+
139
+ ```yaml
140
+ - id: rotate_default
141
+ type: Watermark
142
+ properties:
143
+ text: Default (-22 degrees)
144
+ blocks:
145
+ - id: rotate_default_child
146
+ type: Box
147
+ style:
148
+ height: 180px
149
+ - id: rotate_horizontal
150
+ type: Watermark
151
+ properties:
152
+ text: Horizontal (0 degrees)
153
+ rotate: 0
154
+ blocks:
155
+ - id: rotate_horizontal_child
156
+ type: Box
157
+ style:
158
+ height: 180px
159
+ - id: rotate_steep
160
+ type: Watermark
161
+ properties:
162
+ text: Steep (-45 degrees)
163
+ rotate: -45
164
+ blocks:
165
+ - id: rotate_steep_child
166
+ type: Box
167
+ style:
168
+ height: 200px
169
+ ```
170
+
171
+ ```yaml
172
+ - id: gap_tight
173
+ type: Watermark
174
+ properties:
175
+ text: Tight Gap
176
+ gap:
177
+ - 50
178
+ - 50
179
+ blocks:
180
+ - id: gap_tight_child
181
+ type: Box
182
+ style:
183
+ height: 200px
184
+ - id: gap_wide
185
+ type: Watermark
186
+ properties:
187
+ text: Wide Gap
188
+ gap:
189
+ - 200
190
+ - 200
191
+ blocks:
192
+ - id: gap_wide_child
193
+ type: Box
194
+ style:
195
+ height: 200px
196
+ - id: offset_shifted
197
+ type: Watermark
198
+ properties:
199
+ text: Offset (50, 40)
200
+ offset:
201
+ - 50
202
+ - 40
203
+ blocks:
204
+ - id: offset_shifted_child
205
+ type: Box
206
+ style:
207
+ height: 200px
208
+ ```
209
+
210
+ ```yaml
211
+ - id: zindex_high
212
+ type: Watermark
213
+ properties:
214
+ text: High zIndex (100)
215
+ zIndex: 100
216
+ blocks:
217
+ - id: zindex_high_child
218
+ type: Box
219
+ style:
220
+ height: 180px
221
+ - id: inherit_false
222
+ type: Watermark
223
+ properties:
224
+ text: Inherit disabled
225
+ inherit: false
226
+ blocks:
227
+ - id: inherit_false_child
228
+ type: Box
229
+ style:
230
+ height: 180px
231
+ ```
232
+
233
+ ```yaml
234
+ - id: theme_color_fill
235
+ type: Watermark
236
+ properties:
237
+ text: Custom Fill Color
238
+ theme:
239
+ colorFill: rgba(22, 119, 255, 0.12)
240
+ blocks:
241
+ - id: theme_color_fill_child
242
+ type: Box
243
+ style:
244
+ height: 200px
245
+ - id: theme_font_size
246
+ type: Watermark
247
+ properties:
248
+ text: Large Default Font
249
+ theme:
250
+ fontSizeLG: 24
251
+ blocks:
252
+ - id: theme_font_size_child
253
+ type: Box
254
+ style:
255
+ height: 200px
256
+ - id: theme_font_family
257
+ type: Watermark
258
+ properties:
259
+ text: Serif Theme Font
260
+ theme:
261
+ fontFamily: Georgia, serif
262
+ blocks:
263
+ - id: theme_font_family_child
264
+ type: Box
265
+ style:
266
+ height: 200px
267
+ ```
268
+
269
+ The element CSS key applies Tailwind classes to the Watermark wrapper. Here a gradient background and rounded corners create a styled preview area.
270
+
271
+ Dark Background
272
+
273
+ White watermark text with low opacity stays subtle on a dark surface. Useful for dark-mode interfaces and embedded viewers.
274
+
275
+ Drag and drop files here or click to browse
276
+
277
+ ```yaml
278
+ - id: css_gradient_bg
279
+ type: Watermark
280
+ class:
281
+ element: bg-gradient-to-br from-primary/10 to-primary/5 rounded-lg p-4
282
+ properties:
283
+ text: Preview
284
+ font:
285
+ color: rgba(79, 70, 229, 0.1)
286
+ fontSize: 18
287
+ blocks:
288
+ - id: css_gradient_bg_content
289
+ type: Paragraph
290
+ properties:
291
+ content: >
292
+ The element CSS key applies Tailwind classes to the Watermark wrapper.
293
+ Here a gradient background and rounded corners create a styled preview
294
+ area.
295
+ - id: css_dark_surface
296
+ type: Watermark
297
+ class:
298
+ element: bg-bg-layout rounded-lg p-4
299
+ properties:
300
+ text: Dark Theme
301
+ font:
302
+ color: rgba(255, 255, 255, 0.08)
303
+ fontSize: 16
304
+ blocks:
305
+ - id: css_dark_surface_title
306
+ type: Title
307
+ style:
308
+ color: white
309
+ properties:
310
+ content: Dark Background
311
+ level: 5
312
+ - id: css_dark_surface_content
313
+ type: Paragraph
314
+ style:
315
+ color: rgba(255, 255, 255, 0.7)
316
+ properties:
317
+ content: >
318
+ White watermark text with low opacity stays subtle on a dark surface.
319
+ Useful for dark-mode interfaces and embedded viewers.
320
+ - id: css_bordered_area
321
+ type: Watermark
322
+ class:
323
+ element: border-2 border-dashed border-border rounded-xl p-6
324
+ properties:
325
+ text: Upload Area
326
+ font:
327
+ color: rgba(0, 0, 0, 0.06)
328
+ fontSize: 20
329
+ rotate: 0
330
+ gap:
331
+ - 120
332
+ - 80
333
+ blocks:
334
+ - id: css_bordered_area_text
335
+ type: Paragraph
336
+ style:
337
+ textAlign: center
338
+ color: "#999"
339
+ properties:
340
+ content: Drag and drop files here or click to browse
341
+ ```
342
+
343
+ Quarterly Financial Report
344
+
345
+ Prepared for the Board of Directors — Q1 2026
346
+
347
+ Revenue for the first quarter reached $12.4M, representing a 15% increase year-over-year. Operating margins improved to 23% driven by efficiency gains across all business units.
348
+
349
+ Customer acquisition costs decreased by 8% while customer lifetime value increased by 12%, indicating strong unit economics. The sales pipeline remains robust with $45M in qualified opportunities.
350
+
351
+ ```yaml
352
+ - id: report_wrapper
353
+ type: Box
354
+ class: bg-bg-container rounded-lg shadow-sm
355
+ blocks:
356
+ - id: report_watermark
357
+ type: Watermark
358
+ properties:
359
+ text: DRAFT
360
+ font:
361
+ fontSize: 28
362
+ fontWeight: bold
363
+ color: rgba(255, 0, 0, 0.06)
364
+ gap:
365
+ - 150
366
+ - 150
367
+ rotate: -30
368
+ blocks:
369
+ - id: report_heading
370
+ type: Title
371
+ properties:
372
+ content: Quarterly Financial Report
373
+ level: 4
374
+ - id: report_subtitle
375
+ type: Paragraph
376
+ properties:
377
+ content: Prepared for the Board of Directors — Q1 2026
378
+ - id: report_divider
379
+ type: Divider
380
+ - id: report_body_1
381
+ type: Paragraph
382
+ properties:
383
+ content: >
384
+ Revenue for the first quarter reached $12.4M, representing a 15%
385
+ increase year-over-year. Operating margins improved to 23% driven
386
+ by efficiency gains across all business units.
387
+ - id: report_body_2
388
+ type: Paragraph
389
+ properties:
390
+ content: >
391
+ Customer acquisition costs decreased by 8% while customer lifetime
392
+ value increased by 12%, indicating strong unit economics. The
393
+ sales pipeline remains robust with $45M in qualified
394
+ opportunities.
395
+ ```
396
+
397
+ Project Overview
398
+
399
+ A web application for managing team workflows and project timelines. Currently in active development with scheduled release next quarter.
400
+
401
+ Mobile app for real-time inventory tracking across multiple warehouses. Integrates with existing ERP systems for seamless data sync.
402
+
403
+ ```yaml
404
+ - id: dashboard_watermark
405
+ type: Watermark
406
+ properties:
407
+ text:
408
+ - CONFIDENTIAL
409
+ - Do Not Copy
410
+ font:
411
+ fontSize: 18
412
+ color: rgba(22, 119, 255, 0.06)
413
+ fontWeight: bold
414
+ gap:
415
+ - 120
416
+ - 120
417
+ blocks:
418
+ - id: dashboard_title
419
+ type: Title
420
+ properties:
421
+ content: Project Overview
422
+ level: 4
423
+ - id: dashboard_cards
424
+ type: Box
425
+ layout:
426
+ gap: 16
427
+ blocks:
428
+ - id: dashboard_card_alpha
429
+ type: Card
430
+ layout:
431
+ flex: 1 1 0
432
+ properties:
433
+ title: Project Alpha
434
+ slots:
435
+ extra:
436
+ blocks:
437
+ - id: dashboard_alpha_tag
438
+ type: Tag
439
+ layout:
440
+ flex: 0 0 auto
441
+ properties:
442
+ title: Active
443
+ color: success
444
+ blocks:
445
+ - id: dashboard_alpha_desc
446
+ type: Paragraph
447
+ properties:
448
+ content: A web application for managing team workflows and project timelines.
449
+ Currently in active development with scheduled release next
450
+ quarter.
451
+ - id: dashboard_alpha_progress
452
+ type: Progress
453
+ properties:
454
+ percent: 68
455
+ - id: dashboard_card_beta
456
+ type: Card
457
+ layout:
458
+ flex: 1 1 0
459
+ properties:
460
+ title: Project Beta
461
+ slots:
462
+ extra:
463
+ blocks:
464
+ - id: dashboard_beta_tag
465
+ type: Tag
466
+ layout:
467
+ flex: 0 0 auto
468
+ properties:
469
+ title: Planning
470
+ color: warning
471
+ blocks:
472
+ - id: dashboard_beta_desc
473
+ type: Paragraph
474
+ properties:
475
+ content: Mobile app for real-time inventory tracking across multiple warehouses.
476
+ Integrates with existing ERP systems for seamless data sync.
477
+ - id: dashboard_beta_progress
478
+ type: Progress
479
+ properties:
480
+ percent: 25
481
+ ```
482
+
483
+ | Property | Type | Default | Description |
484
+ | --- | --- | --- | --- |
485
+ | `font` | object | - | Font style configuration with color, fontSize, fontWeight, fontFamily, fontStyle, textAlign. |
486
+ | `font.color` | string | - | Font color of the watermark. |
487
+ | `font.fontFamily` | string | - | Font family of the watermark. |
488
+ | `font.fontSize` | number | - | Font size of the watermark. |
489
+ | `font.fontStyle` | string | - | Font style of the watermark. |
490
+ | `font.fontWeight` | string \| number | - | Font weight of the watermark. |
491
+ | `font.textAlign` | string | - | Text alignment of the watermark. Enum: `start`, `end`, `left`, `right`, `center`. |
492
+ | `gap` | array | - | Gap between watermarks as [horizontal, vertical]. |
493
+ | `height` | number | - | Height of the watermark. |
494
+ | `image` | string | - | Image URL to use as watermark. If set, text content is ignored. |
495
+ | `inherit` | boolean | `true` | Inherit watermark config from parent Watermark block. |
496
+ | `offset` | array | - | Offset of the watermark from the top-left as [x, y]. |
497
+ | `rotate` | number | `-22` | Rotation angle of watermark in degrees. |
498
+ | `text` | string \| array | - | Watermark text content. Maps to antd "content" prop. |
499
+ | `theme` | object | - | Antd design token overrides for this block. See [antd design tokens](https://ant.design/components/overview#design-token). See [Ant Design watermark tokens](https://ant.design/components/watermark#design-token). |
500
+ | `theme.colorFill` | string | - | Default watermark text color when font.color is not set. Maps to the global colorFill token. |
501
+ | `theme.fontSizeLG` | number | `16` | Default watermark font size when font.fontSize is not set. Maps to the global fontSizeLG token. |
502
+ | `theme.fontFamily` | string | `"sans-serif"` | Default font family used when font.fontFamily is not set. |
503
+ | `width` | number | - | Width of the watermark. |
504
+ | `zIndex` | integer | - | Z-index of the watermark. |
505
+
506
+ No events defined.
507
+
508
+ | Key | Target |
509
+ | --- | --- |
510
+ | `/block` | Outer block wrapper (always available). |
511
+ | `/element` | The Watermark element. |
512
+
513
+ | Slot | Description |
514
+ | --- | --- |
515
+ | `content` | Child blocks with a watermark overlay. |
@@ -0,0 +1,103 @@
1
+ # :for
2
+
3
+ ```
4
+ ({:for: string, :in: any[], :do: routine}): void
5
+ ```
6
+
7
+ The `:for` control iterates over an array, executing a routine for each item sequentially.
8
+ The routine defined by the `:do` key is executed for each item within the array defined by the `:in` key. This routine is executed sequentially for each item in the array.
9
+ The value of the current array item can be accessed using the [`_item`](/_item) operator with the item key set by the `:for` key. This operator is only available within the `:for` and [`:parallel_for`](/:parallel_for) controls.
10
+
11
+ #### Keys
12
+
13
+ - `:for: string`: __Required__ - Used to define the key that can be used to access the value of the array item of the current iteration.
14
+ - `:in: array`: __Required__ - Used to define the array of data to iterate over.
15
+ - `:do: routine`: __Required__ - Used to define the routine that will be executed for each array item.
16
+
17
+ #### Examples
18
+
19
+ ###### Simple Example
20
+ ```yaml
21
+ - :for: count
22
+ :in:
23
+ - 1
24
+ - 2
25
+ - 3
26
+ :do:
27
+ :log:
28
+ _item: count
29
+ ```
30
+ Logs:
31
+ ```
32
+ 1
33
+ 2
34
+ 3
35
+ ```
36
+
37
+ ###### Calculate Order Total
38
+ ```yaml
39
+ - :set_state:
40
+ order_total: 0
41
+
42
+ - :for: item
43
+ :in:
44
+ _payload: order_items
45
+ :do:
46
+ - :set_state:
47
+ item_total:
48
+ _math.multiply:
49
+ - _item: item.price
50
+ - _item: item.quantity
51
+
52
+ - :set_state:
53
+ order_total:
54
+ _math.add:
55
+ - _state: order_total
56
+ - _state: item_total
57
+
58
+ - :log:
59
+ _string.concat:
60
+ - _item: item.name
61
+ - ' x '
62
+ - _item: item.quantity
63
+ - ' = $'
64
+ - _state: item_total
65
+
66
+ - :return:
67
+ total:
68
+ _state: order_total
69
+ ```
70
+
71
+ ###### Setting Active Users in MongoDB
72
+ ```yaml
73
+ - id: get_active_users
74
+ type: MongoDBAggregation
75
+ connectionId: activity-log
76
+ properties:
77
+ pipeline:
78
+ - $match:
79
+ $expr:
80
+ $gte:
81
+ - $timestamp
82
+ - $dateTrunc:
83
+ date: $$NOW
84
+ unit: day
85
+ - $group:
86
+ _id: $user_id
87
+ - :for: user
88
+ :in:
89
+ _step: get_active_users
90
+ :do:
91
+ - id: update_user_status
92
+ type: MongoDBUpdateOne
93
+ connectionId: users
94
+ properties:
95
+ filter:
96
+ _id:
97
+ _item: user._id
98
+ update:
99
+ $set:
100
+ last_processed:
101
+ _date: now
102
+ status: 'active'
103
+ ```
@@ -0,0 +1,107 @@
1
+ # :if
2
+
3
+ ```
4
+ ({:if: boolean, :then: routine, :else: routine}): void
5
+ ```
6
+
7
+ The `:if` control executes different routines based on a boolean condition. It evaluates the condition and runs the `:then` branch if true, or the optional `:else` branch if false. Generally other operators are used to evaluate the test.
8
+
9
+ The `:if` control also works in client [event action lists](/events-and-actions) — there each branch is a list of actions, and the same syntax and semantics apply.
10
+
11
+ The condition uses JS truthiness — any truthy value takes the `:then` branch. This differs from an action's `skip` field, which only skips when it evaluates to exactly `true`.
12
+
13
+ #### Keys
14
+
15
+ - `:if: boolean`: __Required__ - The boolean result of a test or value.
16
+ - `:then: routine`: __Required__ - The routine to execute if the test result is true.
17
+ - `:else: routine`: The routine to execute if the test result is false.
18
+
19
+ #### Examples
20
+
21
+ ###### Simple Example
22
+ ```yaml
23
+ routine:
24
+ - :if: true
25
+ :then:
26
+ :log: 'Test was true'
27
+ :else:
28
+ :log: 'Test was false'
29
+ ```
30
+ Logs:
31
+ `Test was true`
32
+
33
+ ###### Set User Features
34
+ ```yaml
35
+ routine:
36
+ - :if:
37
+ _eq:
38
+ - _payload: user_type
39
+ - 'premium'
40
+ :then:
41
+ - :set_state:
42
+ discount: 0.2
43
+ features: ['unlimited', 'priority_support']
44
+ :else:
45
+ - :set_state:
46
+ discount: 0
47
+ features: ['basic']
48
+ ```
49
+
50
+ ###### Optional Fraud Check
51
+
52
+ ```yaml
53
+ routines:
54
+ - :if:
55
+ _gte:
56
+ - _payload: order_amount
57
+ - 1000
58
+ :then:
59
+ - :log: 'High-value order detected, applying fraud checks'
60
+ - id: fraud_check
61
+ type: FraudDetectionAPI
62
+ connectionId: fraud-service
63
+ properties:
64
+ amount:
65
+ _payload: order_amount
66
+ customer_id:
67
+ _payload: customer_id
68
+ - :if:
69
+ _gt:
70
+ - _step: fraud_check.risk_score
71
+ - 0.7
72
+ :then:
73
+ :reject: 'Order flagged for manual review'
74
+ - id: create_payment_intent
75
+ type: StripeRequest
76
+ connectionId: stripe
77
+ properties:
78
+ paymentIntents:
79
+ create:
80
+ - amount: 2000
81
+ currency: eur
82
+ payment_method_types: ['card']
83
+ ```
84
+
85
+ ###### In a client event action list
86
+
87
+ ```yaml
88
+ events:
89
+ onClick:
90
+ - :if:
91
+ _not:
92
+ _state: skip_reopen
93
+ :then:
94
+ - id: reopen_ticket
95
+ type: Request
96
+ params: reopen_ticket
97
+ - id: redirect
98
+ type: Link
99
+ params:
100
+ pageId: ticket-view
101
+ :else:
102
+ - id: show_blocked
103
+ type: DisplayMessage
104
+ params:
105
+ content: Ticket cannot be reopened.
106
+ status: warning
107
+ ```