@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,1735 @@
1
+ # Splitter
2
+
3
+ Resizable split panels with configurable sizes and collapsible.
4
+
5
+ Left Panel
6
+
7
+ Right Panel
8
+
9
+ ```yaml
10
+ - id: basic_h
11
+ type: Splitter
12
+ style:
13
+ height: 200px
14
+ border: 1px solid
15
+ borderRadius: 8px
16
+ properties:
17
+ layout: horizontal
18
+ panels:
19
+ - key: left
20
+ defaultSize: 50
21
+ - key: right
22
+ defaultSize: 50
23
+ slots:
24
+ left:
25
+ blocks:
26
+ - id: basic_h_left
27
+ type: Box
28
+ class: bg-bg-layout h-full flex items-center justify-center
29
+ blocks:
30
+ - id: basic_h_left_text
31
+ type: Paragraph
32
+ properties:
33
+ content: Left Panel
34
+ right:
35
+ blocks:
36
+ - id: basic_h_right
37
+ type: Box
38
+ class: bg-bg-layout h-full flex items-center justify-center
39
+ blocks:
40
+ - id: basic_h_right_text
41
+ type: Paragraph
42
+ properties:
43
+ content: Right Panel
44
+ ```
45
+
46
+ Top Panel
47
+
48
+ Bottom Panel
49
+
50
+ ```yaml
51
+ - id: basic_v
52
+ type: Splitter
53
+ style:
54
+ height: 300px
55
+ border: 1px solid
56
+ borderRadius: 8px
57
+ properties:
58
+ layout: vertical
59
+ panels:
60
+ - key: top
61
+ defaultSize: 50
62
+ - key: bottom
63
+ defaultSize: 50
64
+ slots:
65
+ top:
66
+ blocks:
67
+ - id: basic_v_top
68
+ type: Box
69
+ class: bg-bg-layout h-full flex items-center justify-center
70
+ blocks:
71
+ - id: basic_v_top_text
72
+ type: Paragraph
73
+ properties:
74
+ content: Top Panel
75
+ bottom:
76
+ blocks:
77
+ - id: basic_v_bottom
78
+ type: Box
79
+ class: bg-bg-layout h-full flex items-center justify-center
80
+ blocks:
81
+ - id: basic_v_bottom_text
82
+ type: Paragraph
83
+ properties:
84
+ content: Bottom Panel
85
+ ```
86
+
87
+ 25%
88
+
89
+ 50%
90
+
91
+ 25%
92
+
93
+ Fixed 200px
94
+
95
+ Flexible remainder
96
+
97
+ ```yaml
98
+ - id: three_h
99
+ type: Splitter
100
+ style:
101
+ height: 200px
102
+ border: 1px solid
103
+ borderRadius: 8px
104
+ properties:
105
+ layout: horizontal
106
+ panels:
107
+ - key: first
108
+ defaultSize: 25
109
+ - key: second
110
+ defaultSize: 50
111
+ - key: third
112
+ defaultSize: 25
113
+ slots:
114
+ first:
115
+ blocks:
116
+ - id: three_h_first
117
+ type: Box
118
+ class: bg-bg-layout h-full flex items-center justify-center
119
+ blocks:
120
+ - id: three_h_first_text
121
+ type: Paragraph
122
+ properties:
123
+ content: 25%
124
+ second:
125
+ blocks:
126
+ - id: three_h_second
127
+ type: Box
128
+ class: bg-bg-layout h-full flex items-center justify-center
129
+ blocks:
130
+ - id: three_h_second_text
131
+ type: Paragraph
132
+ properties:
133
+ content: 50%
134
+ third:
135
+ blocks:
136
+ - id: three_h_third
137
+ type: Box
138
+ class: bg-bg-layout h-full flex items-center justify-center
139
+ blocks:
140
+ - id: three_h_third_text
141
+ type: Paragraph
142
+ properties:
143
+ content: 25%
144
+ - id: pixel_sizes
145
+ type: Splitter
146
+ style:
147
+ height: 180px
148
+ border: 1px solid
149
+ borderRadius: 8px
150
+ properties:
151
+ layout: horizontal
152
+ panels:
153
+ - key: px_fixed
154
+ defaultSize: 200px
155
+ - key: px_flex
156
+ slots:
157
+ px_fixed:
158
+ blocks:
159
+ - id: pixel_sizes_fixed
160
+ type: Box
161
+ class: bg-bg-layout h-full flex items-center justify-center
162
+ blocks:
163
+ - id: pixel_sizes_fixed_text
164
+ type: Paragraph
165
+ properties:
166
+ content: Fixed 200px
167
+ px_flex:
168
+ blocks:
169
+ - id: pixel_sizes_flex
170
+ type: Box
171
+ class: bg-bg-layout h-full flex items-center justify-center
172
+ blocks:
173
+ - id: pixel_sizes_flex_text
174
+ type: Paragraph
175
+ properties:
176
+ content: Flexible remainder
177
+ ```
178
+
179
+ <b>Navigation</b>
180
+
181
+ Min: 20% / Max: 40%
182
+
183
+ <b>Main Content</b>
184
+
185
+ The left panel cannot be resized smaller than 20% or larger than 40%.
186
+
187
+ Min: 100px / Max: 400px
188
+
189
+ Flexible Center
190
+
191
+ Min: 100px / Max: 300px
192
+
193
+ ```yaml
194
+ - id: constrained
195
+ type: Splitter
196
+ style:
197
+ height: 200px
198
+ border: 1px solid
199
+ borderRadius: 8px
200
+ properties:
201
+ layout: horizontal
202
+ panels:
203
+ - key: nav
204
+ defaultSize: 30
205
+ min: 20
206
+ max: 40
207
+ - key: main
208
+ defaultSize: 70
209
+ slots:
210
+ nav:
211
+ blocks:
212
+ - id: constrained_nav
213
+ type: Box
214
+ class: bg-bg-layout h-full p-4
215
+ blocks:
216
+ - id: constrained_nav_title
217
+ type: Paragraph
218
+ properties:
219
+ content: <b>Navigation</b>
220
+ - id: constrained_nav_desc
221
+ type: Paragraph
222
+ properties:
223
+ content: "Min: 20% / Max: 40%"
224
+ main:
225
+ blocks:
226
+ - id: constrained_main
227
+ type: Box
228
+ class: bg-bg-layout h-full p-4
229
+ blocks:
230
+ - id: constrained_main_title
231
+ type: Paragraph
232
+ properties:
233
+ content: <b>Main Content</b>
234
+ - id: constrained_main_desc
235
+ type: Paragraph
236
+ properties:
237
+ content: The left panel cannot be resized smaller than 20% or larger than 40%.
238
+ - id: constrained_px
239
+ type: Splitter
240
+ style:
241
+ height: 200px
242
+ border: 1px solid
243
+ borderRadius: 8px
244
+ properties:
245
+ layout: horizontal
246
+ panels:
247
+ - key: cpx_left
248
+ defaultSize: 30
249
+ min: 100px
250
+ max: 400px
251
+ - key: cpx_center
252
+ defaultSize: 40
253
+ - key: cpx_right
254
+ defaultSize: 30
255
+ min: 100px
256
+ max: 300px
257
+ slots:
258
+ cpx_left:
259
+ blocks:
260
+ - id: constrained_px_left
261
+ type: Box
262
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
263
+ blocks:
264
+ - id: constrained_px_left_text
265
+ type: Paragraph
266
+ properties:
267
+ content: "Min: 100px / Max: 400px"
268
+ cpx_center:
269
+ blocks:
270
+ - id: constrained_px_center
271
+ type: Box
272
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
273
+ blocks:
274
+ - id: constrained_px_center_text
275
+ type: Paragraph
276
+ properties:
277
+ content: Flexible Center
278
+ cpx_right:
279
+ blocks:
280
+ - id: constrained_px_right
281
+ type: Box
282
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
283
+ blocks:
284
+ - id: constrained_px_right_text
285
+ type: Paragraph
286
+ properties:
287
+ content: "Min: 100px / Max: 300px"
288
+ ```
289
+
290
+ <b>Collapsible Sidebar</b>
291
+
292
+ Click the arrow on the divider to collapse this panel.
293
+
294
+ Main body content remains visible when the sidebar is collapsed.
295
+
296
+ Left (collapsible)
297
+
298
+ Center (fixed)
299
+
300
+ Right (collapsible)
301
+
302
+ ```yaml
303
+ - id: collapsible_simple
304
+ type: Splitter
305
+ style:
306
+ height: 200px
307
+ border: 1px solid
308
+ borderRadius: 8px
309
+ properties:
310
+ layout: horizontal
311
+ panels:
312
+ - key: col_sidebar
313
+ defaultSize: 30
314
+ collapsible: true
315
+ - key: col_body
316
+ defaultSize: 70
317
+ slots:
318
+ col_sidebar:
319
+ blocks:
320
+ - id: collapsible_simple_sidebar
321
+ type: Box
322
+ class: bg-bg-layout h-full p-4
323
+ blocks:
324
+ - id: collapsible_simple_sidebar_text
325
+ type: Paragraph
326
+ properties:
327
+ content: <b>Collapsible Sidebar</b>
328
+ - id: collapsible_simple_sidebar_desc
329
+ type: Paragraph
330
+ properties:
331
+ content: Click the arrow on the divider to collapse this panel.
332
+ col_body:
333
+ blocks:
334
+ - id: collapsible_simple_body
335
+ type: Box
336
+ class: bg-bg-container h-full p-4
337
+ blocks:
338
+ - id: collapsible_simple_body_text
339
+ type: Paragraph
340
+ properties:
341
+ content: Main body content remains visible when the sidebar is collapsed.
342
+ - id: collapsible_both
343
+ type: Splitter
344
+ style:
345
+ height: 200px
346
+ border: 1px solid
347
+ borderRadius: 8px
348
+ properties:
349
+ layout: horizontal
350
+ panels:
351
+ - key: cb_left
352
+ defaultSize: 25
353
+ collapsible: true
354
+ - key: cb_center
355
+ defaultSize: 50
356
+ - key: cb_right
357
+ defaultSize: 25
358
+ collapsible: true
359
+ slots:
360
+ cb_left:
361
+ blocks:
362
+ - id: collapsible_both_left
363
+ type: Box
364
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
365
+ blocks:
366
+ - id: collapsible_both_left_text
367
+ type: Paragraph
368
+ properties:
369
+ content: Left (collapsible)
370
+ cb_center:
371
+ blocks:
372
+ - id: collapsible_both_center
373
+ type: Box
374
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
375
+ blocks:
376
+ - id: collapsible_both_center_text
377
+ type: Paragraph
378
+ properties:
379
+ content: Center (fixed)
380
+ cb_right:
381
+ blocks:
382
+ - id: collapsible_both_right
383
+ type: Box
384
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
385
+ blocks:
386
+ - id: collapsible_both_right_text
387
+ type: Paragraph
388
+ properties:
389
+ content: Right (collapsible)
390
+ ```
391
+
392
+ Collapse left only
393
+
394
+ Collapse both directions
395
+
396
+ Collapse right only
397
+
398
+ ```yaml
399
+ - id: col_start_end
400
+ type: Splitter
401
+ style:
402
+ height: 200px
403
+ border: 1px solid
404
+ borderRadius: 8px
405
+ properties:
406
+ layout: horizontal
407
+ panels:
408
+ - key: cse_left
409
+ defaultSize: 30
410
+ collapsible:
411
+ start: true
412
+ end: false
413
+ - key: cse_center
414
+ defaultSize: 40
415
+ collapsible:
416
+ start: true
417
+ end: true
418
+ - key: cse_right
419
+ defaultSize: 30
420
+ collapsible:
421
+ start: false
422
+ end: true
423
+ slots:
424
+ cse_left:
425
+ blocks:
426
+ - id: col_se_left
427
+ type: Box
428
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
429
+ blocks:
430
+ - id: col_se_left_text
431
+ type: Paragraph
432
+ properties:
433
+ content: Collapse left only
434
+ cse_center:
435
+ blocks:
436
+ - id: col_se_center
437
+ type: Box
438
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
439
+ blocks:
440
+ - id: col_se_center_text
441
+ type: Paragraph
442
+ properties:
443
+ content: Collapse both directions
444
+ cse_right:
445
+ blocks:
446
+ - id: col_se_right
447
+ type: Box
448
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
449
+ blocks:
450
+ - id: col_se_right_text
451
+ type: Paragraph
452
+ properties:
453
+ content: Collapse right only
454
+ ```
455
+
456
+ Fixed (resizable: false)
457
+
458
+ Resizable
459
+
460
+ Resizable
461
+
462
+ ```yaml
463
+ - id: nonresizable
464
+ type: Splitter
465
+ style:
466
+ height: 200px
467
+ border: 1px solid
468
+ borderRadius: 8px
469
+ properties:
470
+ layout: horizontal
471
+ panels:
472
+ - key: nr_fixed
473
+ defaultSize: 30
474
+ resizable: false
475
+ - key: nr_flex_a
476
+ defaultSize: 40
477
+ - key: nr_flex_b
478
+ defaultSize: 30
479
+ slots:
480
+ nr_fixed:
481
+ blocks:
482
+ - id: nonresizable_fixed
483
+ type: Box
484
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
485
+ blocks:
486
+ - id: nonresizable_fixed_text
487
+ type: Paragraph
488
+ properties:
489
+ content: "Fixed (resizable: false)"
490
+ nr_flex_a:
491
+ blocks:
492
+ - id: nonresizable_flex_a
493
+ type: Box
494
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
495
+ blocks:
496
+ - id: nonresizable_flex_a_text
497
+ type: Paragraph
498
+ properties:
499
+ content: Resizable
500
+ nr_flex_b:
501
+ blocks:
502
+ - id: nonresizable_flex_b
503
+ type: Box
504
+ class: bg-bg-layout h-full p-3 flex items-center justify-center
505
+ blocks:
506
+ - id: nonresizable_flex_b_text
507
+ type: Paragraph
508
+ properties:
509
+ content: Resizable
510
+ ```
511
+
512
+ Lazy rendering defers content until the panel is visible. Collapse and expand to see the effect.
513
+
514
+ This panel content is also lazily rendered.
515
+
516
+ ```yaml
517
+ - id: lazy_splitter
518
+ type: Splitter
519
+ style:
520
+ height: 200px
521
+ border: 1px solid
522
+ borderRadius: 8px
523
+ properties:
524
+ layout: horizontal
525
+ lazy: true
526
+ panels:
527
+ - key: lazy_left
528
+ defaultSize: 50
529
+ collapsible: true
530
+ - key: lazy_right
531
+ defaultSize: 50
532
+ slots:
533
+ lazy_left:
534
+ blocks:
535
+ - id: lazy_left_box
536
+ type: Box
537
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
538
+ blocks:
539
+ - id: lazy_left_text
540
+ type: Paragraph
541
+ properties:
542
+ content: Lazy rendering defers content until the panel is visible. Collapse and
543
+ expand to see the effect.
544
+ lazy_right:
545
+ blocks:
546
+ - id: lazy_right_box
547
+ type: Box
548
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
549
+ blocks:
550
+ - id: lazy_right_text
551
+ type: Paragraph
552
+ properties:
553
+ content: This panel content is also lazily rendered.
554
+ ```
555
+
556
+ <b>Collapsible Panel</b>
557
+
558
+ Collapse this panel or resize the divider to see event messages.
559
+
560
+ The onResizeEnd and onCollapse events fire DisplayMessage actions to show the current panel state.
561
+
562
+ <b>State Tracking</b>
563
+
564
+ Resize the panels. The onResizeStart fires a message and onResizeEnd saves panel sizes to state.
565
+
566
+ <b>Current sizes:</b>
567
+
568
+ ```yaml
569
+ - id: event_splitter
570
+ type: Splitter
571
+ style:
572
+ height: 200px
573
+ border: 1px solid
574
+ borderRadius: 8px
575
+ properties:
576
+ layout: horizontal
577
+ panels:
578
+ - key: evt_left
579
+ defaultSize: 50
580
+ collapsible: true
581
+ - key: evt_right
582
+ defaultSize: 50
583
+ events:
584
+ onResizeEnd:
585
+ - id: event_resize_msg
586
+ type: DisplayMessage
587
+ params:
588
+ content:
589
+ _string.concat:
590
+ - "Resize complete. Panel sizes: "
591
+ - _json.stringify:
592
+ on:
593
+ _event: sizes
594
+ duration: 2
595
+ onCollapse:
596
+ - id: event_collapse_msg
597
+ type: DisplayMessage
598
+ params:
599
+ content:
600
+ _if:
601
+ test:
602
+ _event: collapsed
603
+ then: Panel collapsed.
604
+ else: Panel expanded.
605
+ duration: 2
606
+ slots:
607
+ evt_left:
608
+ blocks:
609
+ - id: event_left_box
610
+ type: Box
611
+ class: bg-bg-layout h-full p-4
612
+ blocks:
613
+ - id: event_left_title
614
+ type: Paragraph
615
+ properties:
616
+ content: <b>Collapsible Panel</b>
617
+ - id: event_left_desc
618
+ type: Paragraph
619
+ properties:
620
+ content: Collapse this panel or resize the divider to see event messages.
621
+ evt_right:
622
+ blocks:
623
+ - id: event_right_box
624
+ type: Box
625
+ class: bg-bg-container h-full p-4
626
+ blocks:
627
+ - id: event_right_desc
628
+ type: Paragraph
629
+ properties:
630
+ content: The onResizeEnd and onCollapse events fire DisplayMessage actions to
631
+ show the current panel state.
632
+ - id: event_state_splitter
633
+ type: Splitter
634
+ style:
635
+ height: 220px
636
+ border: 1px solid
637
+ borderRadius: 8px
638
+ properties:
639
+ layout: horizontal
640
+ panels:
641
+ - key: es_left
642
+ defaultSize: 40
643
+ - key: es_right
644
+ defaultSize: 60
645
+ events:
646
+ onResizeEnd:
647
+ - id: event_set_state
648
+ type: SetState
649
+ params:
650
+ splitter_sizes:
651
+ _event: sizes
652
+ onResizeStart:
653
+ - id: event_resize_start_msg
654
+ type: DisplayMessage
655
+ params:
656
+ content: Resizing started...
657
+ duration: 1
658
+ slots:
659
+ es_left:
660
+ blocks:
661
+ - id: es_left_box
662
+ type: Box
663
+ class: bg-bg-layout h-full p-4
664
+ blocks:
665
+ - id: es_left_title
666
+ type: Paragraph
667
+ properties:
668
+ content: <b>State Tracking</b>
669
+ - id: es_left_desc
670
+ type: Paragraph
671
+ properties:
672
+ content: Resize the panels. The onResizeStart fires a message and onResizeEnd
673
+ saves panel sizes to state.
674
+ es_right:
675
+ blocks:
676
+ - id: es_right_box
677
+ type: Box
678
+ class: bg-bg-container h-full p-4
679
+ blocks:
680
+ - id: es_right_title
681
+ type: Paragraph
682
+ properties:
683
+ content: <b>Current sizes:</b>
684
+ - id: es_right_sizes
685
+ type: Paragraph
686
+ properties:
687
+ content:
688
+ _if:
689
+ test:
690
+ _not:
691
+ _not:
692
+ _state: splitter_sizes
693
+ then:
694
+ _json.stringify:
695
+ on:
696
+ _state: splitter_sizes
697
+ else: Resize panels to see sizes here.
698
+ ```
699
+
700
+ <b>Sidebar</b>
701
+
702
+ Dashboard
703
+
704
+ Analytics
705
+
706
+ Settings
707
+
708
+ <b>Main Content Area</b>
709
+
710
+ A horizontal splitter with a nested vertical splitter. The sidebar splits horizontally, while the main area is split vertically into content and a bottom panel.
711
+
712
+ <b>Bottom Panel</b>
713
+
714
+ Collapsible bottom panel inside the nested vertical splitter.
715
+
716
+ ```yaml
717
+ - id: nested_outer
718
+ type: Splitter
719
+ style:
720
+ height: 350px
721
+ border: 1px solid
722
+ borderRadius: 8px
723
+ properties:
724
+ layout: horizontal
725
+ panels:
726
+ - key: n_sidebar
727
+ defaultSize: 25
728
+ min: 15
729
+ collapsible: true
730
+ - key: n_main
731
+ defaultSize: 75
732
+ slots:
733
+ n_sidebar:
734
+ blocks:
735
+ - id: nested_sidebar
736
+ type: Box
737
+ class: bg-bg-layout h-full p-4
738
+ blocks:
739
+ - id: nested_sidebar_title
740
+ type: Paragraph
741
+ properties:
742
+ content: <b>Sidebar</b>
743
+ - id: nested_sidebar_item_1
744
+ type: Paragraph
745
+ properties:
746
+ content: Dashboard
747
+ - id: nested_sidebar_item_2
748
+ type: Paragraph
749
+ properties:
750
+ content: Analytics
751
+ - id: nested_sidebar_item_3
752
+ type: Paragraph
753
+ properties:
754
+ content: Settings
755
+ n_main:
756
+ blocks:
757
+ - id: nested_inner
758
+ type: Splitter
759
+ style:
760
+ height: 100%
761
+ properties:
762
+ layout: vertical
763
+ panels:
764
+ - key: n_content
765
+ defaultSize: 70
766
+ - key: n_footer
767
+ defaultSize: 30
768
+ min: 15
769
+ collapsible: true
770
+ slots:
771
+ n_content:
772
+ blocks:
773
+ - id: nested_content
774
+ type: Box
775
+ class: bg-bg-container h-full p-4
776
+ blocks:
777
+ - id: nested_content_title
778
+ type: Paragraph
779
+ properties:
780
+ content: <b>Main Content Area</b>
781
+ - id: nested_content_desc
782
+ type: Paragraph
783
+ properties:
784
+ content: A horizontal splitter with a nested vertical splitter. The sidebar
785
+ splits horizontally, while the main area is split
786
+ vertically into content and a bottom panel.
787
+ n_footer:
788
+ blocks:
789
+ - id: nested_footer
790
+ type: Box
791
+ class: bg-bg-layout h-full p-4
792
+ blocks:
793
+ - id: nested_footer_title
794
+ type: Paragraph
795
+ properties:
796
+ content: <b>Bottom Panel</b>
797
+ - id: nested_footer_desc
798
+ type: Paragraph
799
+ properties:
800
+ content: Collapsible bottom panel inside the nested vertical splitter.
801
+ ```
802
+
803
+ splitBarSize: 4, splitTriggerSize: 24
804
+
805
+ Thicker blue splitter bar with larger trigger area
806
+
807
+ Green themed divider, arrows, and resize dots
808
+
809
+ colorFill, colorPrimary, colorText overridden
810
+
811
+ Minimal divider with no visible trigger handle
812
+
813
+ resizeSpinnerSize: 0, splitTriggerSize: 0
814
+
815
+ Custom drag handle with blue tones
816
+
817
+ splitBarDraggableSize: 40, borderRadius: 12
818
+
819
+ ```yaml
820
+ - id: theme_thick_bar
821
+ type: Splitter
822
+ style:
823
+ height: 200px
824
+ border: 1px solid
825
+ borderRadius: 8px
826
+ properties:
827
+ layout: horizontal
828
+ panels:
829
+ - key: ttb_left
830
+ defaultSize: 50
831
+ - key: ttb_right
832
+ defaultSize: 50
833
+ theme:
834
+ splitBarSize: 4
835
+ splitTriggerSize: 24
836
+ colorFill: "#1677ff"
837
+ slots:
838
+ ttb_left:
839
+ blocks:
840
+ - id: theme_thick_left
841
+ type: Box
842
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
843
+ blocks:
844
+ - id: theme_thick_left_text
845
+ type: Paragraph
846
+ properties:
847
+ content: "splitBarSize: 4, splitTriggerSize: 24"
848
+ ttb_right:
849
+ blocks:
850
+ - id: theme_thick_right
851
+ type: Box
852
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
853
+ blocks:
854
+ - id: theme_thick_right_text
855
+ type: Paragraph
856
+ properties:
857
+ content: Thicker blue splitter bar with larger trigger area
858
+ - id: theme_green
859
+ type: Splitter
860
+ style:
861
+ height: 200px
862
+ border: 1px solid
863
+ borderRadius: 8px
864
+ properties:
865
+ layout: horizontal
866
+ panels:
867
+ - key: tg_left
868
+ defaultSize: 50
869
+ collapsible: true
870
+ - key: tg_right
871
+ defaultSize: 50
872
+ theme:
873
+ splitBarSize: 3
874
+ colorFill: "#52c41a"
875
+ colorPrimary: "#52c41a"
876
+ colorText: "#52c41a"
877
+ splitTriggerSize: 20
878
+ slots:
879
+ tg_left:
880
+ blocks:
881
+ - id: theme_green_left
882
+ type: Box
883
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
884
+ blocks:
885
+ - id: theme_green_left_text
886
+ type: Paragraph
887
+ properties:
888
+ content: Green themed divider, arrows, and resize dots
889
+ tg_right:
890
+ blocks:
891
+ - id: theme_green_right
892
+ type: Box
893
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
894
+ blocks:
895
+ - id: theme_green_right_text
896
+ type: Paragraph
897
+ properties:
898
+ content: colorFill, colorPrimary, colorText overridden
899
+ - id: theme_minimal
900
+ type: Splitter
901
+ style:
902
+ height: 200px
903
+ border: 1px solid
904
+ borderRadius: 8px
905
+ properties:
906
+ layout: horizontal
907
+ panels:
908
+ - key: tm_left
909
+ defaultSize: 50
910
+ - key: tm_right
911
+ defaultSize: 50
912
+ theme:
913
+ splitBarSize: 1
914
+ splitTriggerSize: 0
915
+ resizeSpinnerSize: 0
916
+ slots:
917
+ tm_left:
918
+ blocks:
919
+ - id: theme_minimal_left
920
+ type: Box
921
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
922
+ blocks:
923
+ - id: theme_minimal_left_text
924
+ type: Paragraph
925
+ properties:
926
+ content: Minimal divider with no visible trigger handle
927
+ tm_right:
928
+ blocks:
929
+ - id: theme_minimal_right
930
+ type: Box
931
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
932
+ blocks:
933
+ - id: theme_minimal_right_text
934
+ type: Paragraph
935
+ properties:
936
+ content: "resizeSpinnerSize: 0, splitTriggerSize: 0"
937
+ - id: theme_custom_handle
938
+ type: Splitter
939
+ style:
940
+ height: 200px
941
+ border: 1px solid
942
+ borderRadius: 8px
943
+ properties:
944
+ layout: horizontal
945
+ panels:
946
+ - key: tch_left
947
+ defaultSize: 50
948
+ - key: tch_right
949
+ defaultSize: 50
950
+ theme:
951
+ splitBarDraggableSize: 40
952
+ colorFillTertiary: "#e6f4ff"
953
+ colorFillSecondary: "#91caff"
954
+ borderRadius: 12
955
+ slots:
956
+ tch_left:
957
+ blocks:
958
+ - id: theme_handle_left
959
+ type: Box
960
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
961
+ blocks:
962
+ - id: theme_handle_left_text
963
+ type: Paragraph
964
+ properties:
965
+ content: Custom drag handle with blue tones
966
+ tch_right:
967
+ blocks:
968
+ - id: theme_handle_right
969
+ type: Box
970
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
971
+ blocks:
972
+ - id: theme_handle_right_text
973
+ type: Paragraph
974
+ properties:
975
+ content: "splitBarDraggableSize: 40, borderRadius: 12"
976
+ ```
977
+
978
+ The element CSS key applies Tailwind classes to the outer Splitter wrapper.
979
+
980
+ class.element: rounded-2xl shadow-lg overflow-hidden
981
+
982
+ Dashed blue border via Tailwind
983
+
984
+ class.element: border-2 border-dashed border-blue-300 rounded-xl
985
+
986
+ ```yaml
987
+ - id: css_rounded
988
+ type: Splitter
989
+ class:
990
+ element: rounded-2xl shadow-lg overflow-hidden
991
+ style:
992
+ height: 200px
993
+ properties:
994
+ layout: horizontal
995
+ panels:
996
+ - key: css_r_left
997
+ defaultSize: 50
998
+ - key: css_r_right
999
+ defaultSize: 50
1000
+ slots:
1001
+ css_r_left:
1002
+ blocks:
1003
+ - id: css_rounded_left
1004
+ type: Box
1005
+ class: bg-gradient-to-br from-primary/10 to-primary/10 h-full p-4 flex
1006
+ items-center justify-center
1007
+ blocks:
1008
+ - id: css_rounded_left_text
1009
+ type: Paragraph
1010
+ properties:
1011
+ content: The element CSS key applies Tailwind classes to the outer Splitter
1012
+ wrapper.
1013
+ css_r_right:
1014
+ blocks:
1015
+ - id: css_rounded_right
1016
+ type: Box
1017
+ class: bg-gradient-to-br from-primary/15 to-primary/10 h-full p-4 flex
1018
+ items-center justify-center
1019
+ blocks:
1020
+ - id: css_rounded_right_text
1021
+ type: Paragraph
1022
+ properties:
1023
+ content: "class.element: rounded-2xl shadow-lg overflow-hidden"
1024
+ - id: css_border
1025
+ type: Splitter
1026
+ class:
1027
+ element: border-2 border-dashed border-blue-300 rounded-xl
1028
+ style:
1029
+ height: 180px
1030
+ properties:
1031
+ layout: horizontal
1032
+ panels:
1033
+ - key: css_b_left
1034
+ defaultSize: 40
1035
+ - key: css_b_right
1036
+ defaultSize: 60
1037
+ slots:
1038
+ css_b_left:
1039
+ blocks:
1040
+ - id: css_border_left
1041
+ type: Box
1042
+ class: bg-bg-layout h-full p-4 flex items-center justify-center
1043
+ blocks:
1044
+ - id: css_border_left_text
1045
+ type: Paragraph
1046
+ properties:
1047
+ content: Dashed blue border via Tailwind
1048
+ css_b_right:
1049
+ blocks:
1050
+ - id: css_border_right
1051
+ type: Box
1052
+ class: bg-bg-container h-full p-4 flex items-center justify-center
1053
+ blocks:
1054
+ - id: css_border_right_text
1055
+ type: Paragraph
1056
+ properties:
1057
+ content: "class.element: border-2 border-dashed border-blue-300 rounded-xl"
1058
+ ```
1059
+
1060
+ Explorer
1061
+
1062
+ src/
1063
+
1064
+ index.js
1065
+
1066
+ App.js
1067
+
1068
+ styles.css
1069
+
1070
+ package.json
1071
+
1072
+ App.js
1073
+
1074
+ <span style="color:#c084fc">import</span> React <span style="color:#c084fc">from</span> <span style="color:#a5d6ff">"react"</span>;<br><br><span style="color:#c084fc">function</span> <span style="color:#67e8f9">App</span>() {<br>&nbsp;&nbsp;<span style="color:#c084fc">return</span> (<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;<span style="color:#67e8f9">div</span> <span style="color:#79c0ff">className</span>=<span style="color:#a5d6ff">"app"</span>&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<span style="color:#67e8f9">h1</span>&gt;Hello World&lt;/<span style="color:#67e8f9">h1</span>&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/<span style="color:#67e8f9">div</span>&gt;<br>&nbsp;&nbsp;);<br>}
1075
+
1076
+ Terminal
1077
+
1078
+ $ npm start
1079
+
1080
+ Compiled successfully!
1081
+
1082
+ ```yaml
1083
+ - id: editor_outer
1084
+ type: Splitter
1085
+ style:
1086
+ height: 420px
1087
+ border: 1px solid
1088
+ borderRadius: 8px
1089
+ properties:
1090
+ layout: horizontal
1091
+ panels:
1092
+ - key: editor_files
1093
+ defaultSize: 18
1094
+ min: 12
1095
+ collapsible: true
1096
+ - key: editor_main
1097
+ defaultSize: 82
1098
+ events:
1099
+ onCollapse:
1100
+ - id: editor_collapse_msg
1101
+ type: DisplayMessage
1102
+ params:
1103
+ content:
1104
+ _if:
1105
+ test:
1106
+ _event: collapsed
1107
+ then: File explorer collapsed.
1108
+ else: File explorer expanded.
1109
+ duration: 2
1110
+ slots:
1111
+ editor_files:
1112
+ blocks:
1113
+ - id: editor_files_box
1114
+ type: Box
1115
+ class: bg-bg-layout h-full p-3
1116
+ blocks:
1117
+ - id: editor_files_title
1118
+ type: Paragraph
1119
+ style:
1120
+ color: "#9ca3af"
1121
+ fontSize: 11px
1122
+ textTransform: uppercase
1123
+ letterSpacing: 1px
1124
+ properties:
1125
+ content: Explorer
1126
+ - id: editor_files_f1
1127
+ type: Paragraph
1128
+ style:
1129
+ color: "#e2e8f0"
1130
+ fontSize: 13px
1131
+ properties:
1132
+ content: src/
1133
+ - id: editor_files_f2
1134
+ type: Paragraph
1135
+ style:
1136
+ color: "#94a3b8"
1137
+ fontSize: 13px
1138
+ paddingLeft: 12px
1139
+ properties:
1140
+ content: index.js
1141
+ - id: editor_files_f3
1142
+ type: Paragraph
1143
+ style:
1144
+ color: "#94a3b8"
1145
+ fontSize: 13px
1146
+ paddingLeft: 12px
1147
+ properties:
1148
+ content: App.js
1149
+ - id: editor_files_f4
1150
+ type: Paragraph
1151
+ style:
1152
+ color: "#94a3b8"
1153
+ fontSize: 13px
1154
+ paddingLeft: 12px
1155
+ properties:
1156
+ content: styles.css
1157
+ - id: editor_files_f5
1158
+ type: Paragraph
1159
+ style:
1160
+ color: "#e2e8f0"
1161
+ fontSize: 13px
1162
+ properties:
1163
+ content: package.json
1164
+ editor_main:
1165
+ blocks:
1166
+ - id: editor_inner
1167
+ type: Splitter
1168
+ style:
1169
+ height: 100%
1170
+ properties:
1171
+ layout: vertical
1172
+ panels:
1173
+ - key: editor_code
1174
+ defaultSize: 65
1175
+ - key: editor_terminal
1176
+ defaultSize: 35
1177
+ min: 15
1178
+ collapsible: true
1179
+ slots:
1180
+ editor_code:
1181
+ blocks:
1182
+ - id: editor_code_box
1183
+ type: Box
1184
+ class: bg-bg-layout h-full p-4
1185
+ blocks:
1186
+ - id: editor_code_tab
1187
+ type: Paragraph
1188
+ style:
1189
+ color: "#64748b"
1190
+ fontSize: 12px
1191
+ borderBottom: 1px solid
1192
+ paddingBottom: 8px
1193
+ properties:
1194
+ content: App.js
1195
+ - id: editor_code_content
1196
+ type: Paragraph
1197
+ style:
1198
+ color: "#e2e8f0"
1199
+ fontFamily: monospace
1200
+ fontSize: 13px
1201
+ lineHeight: 1.6
1202
+ properties:
1203
+ content: <span style="color:#c084fc">import</span> React <span
1204
+ style="color:#c084fc">from</span> <span
1205
+ style="color:#a5d6ff">"react"</span>;<br><br><span
1206
+ style="color:#c084fc">function</span> <span
1207
+ style="color:#67e8f9">App</span>()
1208
+ {<br>&nbsp;&nbsp;<span
1209
+ style="color:#c084fc">return</span>
1210
+ (<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;<span
1211
+ style="color:#67e8f9">div</span> <span
1212
+ style="color:#79c0ff">className</span>=<span
1213
+ style="color:#a5d6ff">"app"</span>&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;<span
1214
+ style="color:#67e8f9">h1</span>&gt;Hello
1215
+ World&lt;/<span
1216
+ style="color:#67e8f9">h1</span>&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/<span
1217
+ style="color:#67e8f9">div</span>&gt;<br>&nbsp;&nbsp;);<br>}
1218
+ editor_terminal:
1219
+ blocks:
1220
+ - id: editor_terminal_box
1221
+ type: Box
1222
+ class: bg-bg-layout h-full p-3
1223
+ blocks:
1224
+ - id: editor_terminal_title
1225
+ type: Paragraph
1226
+ style:
1227
+ color: "#64748b"
1228
+ fontSize: 11px
1229
+ textTransform: uppercase
1230
+ letterSpacing: 1px
1231
+ borderBottom: 1px solid
1232
+ paddingBottom: 6px
1233
+ properties:
1234
+ content: Terminal
1235
+ - id: editor_terminal_line
1236
+ type: Paragraph
1237
+ style:
1238
+ color: "#22c55e"
1239
+ fontFamily: monospace
1240
+ fontSize: 13px
1241
+ properties:
1242
+ content: $ npm start
1243
+ - id: editor_terminal_output
1244
+ type: Paragraph
1245
+ style:
1246
+ color: "#94a3b8"
1247
+ fontFamily: monospace
1248
+ fontSize: 13px
1249
+ properties:
1250
+ content: Compiled successfully!
1251
+ ```
1252
+
1253
+ Overview
1254
+
1255
+ <b>Sarah</b> updated the project plan <i>2 min ago</i>
1256
+
1257
+ <b>James</b> added 3 team members <i>15 min ago</i>
1258
+
1259
+ <b>System</b> completed deployment <i>1 hour ago</i>
1260
+
1261
+ <b>Alex</b> resolved 5 support tickets <i>3 hours ago</i>
1262
+
1263
+ ```yaml
1264
+ - id: dashboard_outer
1265
+ type: Splitter
1266
+ style:
1267
+ height: 400px
1268
+ border: 1px solid
1269
+ borderRadius: 8px
1270
+ properties:
1271
+ layout: horizontal
1272
+ panels:
1273
+ - key: dash_nav
1274
+ defaultSize: 22
1275
+ min: 15
1276
+ max: 35
1277
+ collapsible: true
1278
+ - key: dash_content
1279
+ defaultSize: 50
1280
+ - key: dash_detail
1281
+ defaultSize: 28
1282
+ min: 20
1283
+ collapsible: true
1284
+ events:
1285
+ onResizeEnd:
1286
+ - id: dash_resize_state
1287
+ type: SetState
1288
+ params:
1289
+ dashboard_layout:
1290
+ _event: sizes
1291
+ slots:
1292
+ dash_nav:
1293
+ blocks:
1294
+ - id: dash_nav_box
1295
+ type: Box
1296
+ class: bg-bg-layout h-full p-0
1297
+ blocks:
1298
+ - id: dash_nav_card
1299
+ type: Card
1300
+ properties:
1301
+ title: Navigation
1302
+ size: small
1303
+ bordered: false
1304
+ blocks:
1305
+ - id: dash_nav_item1
1306
+ type: Button
1307
+ properties:
1308
+ title: Overview
1309
+ icon: AiOutlineDashboard
1310
+ variant: text
1311
+ block: true
1312
+ - id: dash_nav_item2
1313
+ type: Button
1314
+ properties:
1315
+ title: Analytics
1316
+ icon: AiOutlineBarChart
1317
+ variant: text
1318
+ block: true
1319
+ - id: dash_nav_item3
1320
+ type: Button
1321
+ properties:
1322
+ title: Users
1323
+ icon: AiOutlineTeam
1324
+ variant: text
1325
+ block: true
1326
+ - id: dash_nav_item4
1327
+ type: Button
1328
+ properties:
1329
+ title: Settings
1330
+ icon: AiOutlineSetting
1331
+ variant: text
1332
+ block: true
1333
+ dash_content:
1334
+ blocks:
1335
+ - id: dash_content_box
1336
+ type: Box
1337
+ class: h-full p-4
1338
+ blocks:
1339
+ - id: dash_content_title
1340
+ type: Title
1341
+ properties:
1342
+ content: Overview
1343
+ level: 4
1344
+ - id: dash_stats_row
1345
+ type: Box
1346
+ layout:
1347
+ gap: 16
1348
+ blocks:
1349
+ - id: dash_stat_users
1350
+ type: Card
1351
+ layout:
1352
+ flex: 1 1 0
1353
+ properties:
1354
+ size: small
1355
+ blocks:
1356
+ - id: dash_stat_users_val
1357
+ type: Statistic
1358
+ properties:
1359
+ title: Total Users
1360
+ value: 2846
1361
+ - id: dash_stat_revenue
1362
+ type: Card
1363
+ layout:
1364
+ flex: 1 1 0
1365
+ properties:
1366
+ size: small
1367
+ blocks:
1368
+ - id: dash_stat_revenue_val
1369
+ type: Statistic
1370
+ properties:
1371
+ title: Revenue
1372
+ value: 48200
1373
+ prefix: $
1374
+ - id: dash_progress_card
1375
+ type: Card
1376
+ properties:
1377
+ title: Monthly Target
1378
+ size: small
1379
+ blocks:
1380
+ - id: dash_progress_bar
1381
+ type: Progress
1382
+ properties:
1383
+ percent: 72
1384
+ dash_detail:
1385
+ blocks:
1386
+ - id: dash_detail_box
1387
+ type: Box
1388
+ class: bg-bg-layout h-full p-0
1389
+ blocks:
1390
+ - id: dash_detail_card
1391
+ type: Card
1392
+ properties:
1393
+ title: Recent Activity
1394
+ size: small
1395
+ bordered: false
1396
+ blocks:
1397
+ - id: dash_detail_item1
1398
+ type: Paragraph
1399
+ properties:
1400
+ content: <b>Sarah</b> updated the project plan <i>2 min ago</i>
1401
+ - id: dash_detail_divider1
1402
+ type: Divider
1403
+ - id: dash_detail_item2
1404
+ type: Paragraph
1405
+ properties:
1406
+ content: <b>James</b> added 3 team members <i>15 min ago</i>
1407
+ - id: dash_detail_divider2
1408
+ type: Divider
1409
+ - id: dash_detail_item3
1410
+ type: Paragraph
1411
+ properties:
1412
+ content: <b>System</b> completed deployment <i>1 hour ago</i>
1413
+ - id: dash_detail_divider3
1414
+ type: Divider
1415
+ - id: dash_detail_item4
1416
+ type: Paragraph
1417
+ properties:
1418
+ content: <b>Alex</b> resolved 5 support tickets <i>3 hours ago</i>
1419
+ ```
1420
+
1421
+ Folders
1422
+
1423
+ Inbox - 12 messages
1424
+
1425
+ Alice Johnson
1426
+
1427
+ Q4 Planning Meeting Notes
1428
+
1429
+ 10:30 AM
1430
+
1431
+ Bob Williams
1432
+
1433
+ Design review feedback
1434
+
1435
+ 9:15 AM
1436
+
1437
+ Carol Davis
1438
+
1439
+ Updated project timeline
1440
+
1441
+ Yesterday
1442
+
1443
+ Q4 Planning Meeting Notes
1444
+
1445
+ Alice Johnson
1446
+
1447
+ March 13, 2026 at 10:30 AM
1448
+
1449
+ Hi team, here are the key takeaways from our Q4 planning meeting yesterday. We agreed on the following priorities: launching the new dashboard feature, improving API performance by 30%, and completing the migration to the new design system.
1450
+
1451
+ Please review the attached document and share any feedback by end of week. Our next sync is scheduled for Monday at 2 PM.
1452
+
1453
+ ```yaml
1454
+ - id: email_outer
1455
+ type: Splitter
1456
+ class:
1457
+ element: rounded-lg shadow-md overflow-hidden
1458
+ style:
1459
+ height: 420px
1460
+ properties:
1461
+ layout: horizontal
1462
+ panels:
1463
+ - key: email_folders
1464
+ defaultSize: 20
1465
+ min: 15
1466
+ collapsible: true
1467
+ - key: email_list
1468
+ defaultSize: 35
1469
+ min: 25
1470
+ - key: email_preview
1471
+ defaultSize: 45
1472
+ events:
1473
+ onCollapse:
1474
+ - id: email_collapse_action
1475
+ type: DisplayMessage
1476
+ params:
1477
+ content:
1478
+ _if:
1479
+ test:
1480
+ _event: collapsed
1481
+ then: Folder panel collapsed. Click the arrow to expand.
1482
+ else: Folder panel expanded.
1483
+ duration: 2
1484
+ slots:
1485
+ email_folders:
1486
+ blocks:
1487
+ - id: email_folders_box
1488
+ type: Box
1489
+ class: bg-bg-layout h-full p-3
1490
+ blocks:
1491
+ - id: email_folders_title
1492
+ type: Paragraph
1493
+ style:
1494
+ fontWeight: 600
1495
+ fontSize: 13px
1496
+ color: "#64748b"
1497
+ textTransform: uppercase
1498
+ letterSpacing: 0.5px
1499
+ properties:
1500
+ content: Folders
1501
+ - id: email_folder_inbox
1502
+ type: Button
1503
+ properties:
1504
+ title: Inbox (12)
1505
+ icon: AiOutlineInbox
1506
+ variant: text
1507
+ block: true
1508
+ size: small
1509
+ - id: email_folder_sent
1510
+ type: Button
1511
+ properties:
1512
+ title: Sent
1513
+ icon: AiOutlineSend
1514
+ variant: text
1515
+ block: true
1516
+ size: small
1517
+ - id: email_folder_drafts
1518
+ type: Button
1519
+ properties:
1520
+ title: Drafts (3)
1521
+ icon: AiOutlineEdit
1522
+ variant: text
1523
+ block: true
1524
+ size: small
1525
+ - id: email_folder_trash
1526
+ type: Button
1527
+ properties:
1528
+ title: Trash
1529
+ icon: AiOutlineDelete
1530
+ variant: text
1531
+ block: true
1532
+ size: small
1533
+ email_list:
1534
+ blocks:
1535
+ - id: email_list_box
1536
+ type: Box
1537
+ class: h-full p-0
1538
+ blocks:
1539
+ - id: email_list_header
1540
+ type: Box
1541
+ class: px-3 py-2 border-b border-border
1542
+ blocks:
1543
+ - id: email_list_search
1544
+ type: Paragraph
1545
+ style:
1546
+ color: "#94a3b8"
1547
+ fontSize: 13px
1548
+ properties:
1549
+ content: Inbox - 12 messages
1550
+ - id: email_msg1
1551
+ type: Box
1552
+ class: px-3 py-2 border-b border-border bg-bg-layout
1553
+ blocks:
1554
+ - id: email_msg1_from
1555
+ type: Paragraph
1556
+ style:
1557
+ fontWeight: 600
1558
+ fontSize: 13px
1559
+ properties:
1560
+ content: Alice Johnson
1561
+ - id: email_msg1_subject
1562
+ type: Paragraph
1563
+ style:
1564
+ fontSize: 13px
1565
+ properties:
1566
+ content: Q4 Planning Meeting Notes
1567
+ - id: email_msg1_time
1568
+ type: Paragraph
1569
+ style:
1570
+ fontSize: 11px
1571
+ color: "#94a3b8"
1572
+ properties:
1573
+ content: 10:30 AM
1574
+ - id: email_msg2
1575
+ type: Box
1576
+ class: px-3 py-2 border-b border-border
1577
+ blocks:
1578
+ - id: email_msg2_from
1579
+ type: Paragraph
1580
+ style:
1581
+ fontWeight: 600
1582
+ fontSize: 13px
1583
+ properties:
1584
+ content: Bob Williams
1585
+ - id: email_msg2_subject
1586
+ type: Paragraph
1587
+ style:
1588
+ fontSize: 13px
1589
+ properties:
1590
+ content: Design review feedback
1591
+ - id: email_msg2_time
1592
+ type: Paragraph
1593
+ style:
1594
+ fontSize: 11px
1595
+ color: "#94a3b8"
1596
+ properties:
1597
+ content: 9:15 AM
1598
+ - id: email_msg3
1599
+ type: Box
1600
+ class: px-3 py-2 border-b border-border
1601
+ blocks:
1602
+ - id: email_msg3_from
1603
+ type: Paragraph
1604
+ style:
1605
+ fontSize: 13px
1606
+ properties:
1607
+ content: Carol Davis
1608
+ - id: email_msg3_subject
1609
+ type: Paragraph
1610
+ style:
1611
+ fontSize: 13px
1612
+ properties:
1613
+ content: Updated project timeline
1614
+ - id: email_msg3_time
1615
+ type: Paragraph
1616
+ style:
1617
+ fontSize: 11px
1618
+ color: "#94a3b8"
1619
+ properties:
1620
+ content: Yesterday
1621
+ email_preview:
1622
+ blocks:
1623
+ - id: email_preview_box
1624
+ type: Box
1625
+ class: h-full p-4
1626
+ blocks:
1627
+ - id: email_preview_subject
1628
+ type: Title
1629
+ properties:
1630
+ content: Q4 Planning Meeting Notes
1631
+ level: 4
1632
+ - id: email_preview_meta
1633
+ type: Box
1634
+ layout:
1635
+ gap: 8
1636
+ align: center
1637
+ blocks:
1638
+ - id: email_preview_avatar
1639
+ type: Avatar
1640
+ layout:
1641
+ flex: 0 0 auto
1642
+ properties:
1643
+ icon: AiOutlineUser
1644
+ size: 32
1645
+ color: "#fff"
1646
+ backgroundColor: "#1677ff"
1647
+ - id: email_preview_sender
1648
+ type: Box
1649
+ layout:
1650
+ flex: 1 1 0
1651
+ blocks:
1652
+ - id: email_preview_from
1653
+ type: Paragraph
1654
+ style:
1655
+ fontWeight: 600
1656
+ fontSize: 14px
1657
+ properties:
1658
+ content: Alice Johnson
1659
+ - id: email_preview_date
1660
+ type: Paragraph
1661
+ style:
1662
+ fontSize: 12px
1663
+ color: "#94a3b8"
1664
+ properties:
1665
+ content: March 13, 2026 at 10:30 AM
1666
+ - id: email_preview_divider
1667
+ type: Divider
1668
+ - id: email_preview_body
1669
+ type: Paragraph
1670
+ properties:
1671
+ content: "Hi team, here are the key takeaways from our Q4 planning meeting
1672
+ yesterday. We agreed on the following priorities: launching
1673
+ the new dashboard feature, improving API performance by 30%,
1674
+ and completing the migration to the new design system."
1675
+ - id: email_preview_body2
1676
+ type: Paragraph
1677
+ properties:
1678
+ content: Please review the attached document and share any feedback by end of
1679
+ week. Our next sync is scheduled for Monday at 2 PM.
1680
+ - id: email_preview_tags
1681
+ type: Box
1682
+ layout:
1683
+ gap: 8
1684
+ blocks:
1685
+ - id: email_preview_tag1
1686
+ type: Tag
1687
+ properties:
1688
+ title: Planning
1689
+ color: blue
1690
+ - id: email_preview_tag2
1691
+ type: Tag
1692
+ properties:
1693
+ title: Q4
1694
+ color: purple
1695
+ ```
1696
+
1697
+ | Property | Type | Default | Description |
1698
+ | --- | --- | --- | --- |
1699
+ | `lazy` | boolean | `false` | Lazy render panel content. |
1700
+ | `layout` | string | `"horizontal"` | Layout direction of the splitter. Enum: `horizontal`, `vertical`. |
1701
+ | `orientation` | string | - | Layout direction of the splitter. Alias for layout, takes precedence if both are set. Enum: `horizontal`, `vertical`. |
1702
+ | `panels` | array | - | Panel configuration array. Each panel has key, size, min, max, defaultSize, collapsible, resizable. |
1703
+ | `panels.$.key` | string | - | Unique panel key, used to match content slots. |
1704
+ | `panels.$.size` | number \| string | - | Controlled panel size. |
1705
+ | `panels.$.min` | number \| string | - | Minimum size threshold. |
1706
+ | `panels.$.max` | number \| string | - | Maximum size threshold. |
1707
+ | `panels.$.defaultSize` | number \| string | - | Default panel size. |
1708
+ | `panels.$.collapsible` | boolean \| object | - | Whether the panel is collapsible. |
1709
+ | `panels.$.resizable` | boolean | `true` | Whether the panel is resizable. |
1710
+ | `theme` | object | - | Antd design token overrides for this block. See [antd design tokens](https://ant.design/components/overview#design-token). See [Ant Design splitter tokens](https://ant.design/components/splitter#design-token). |
1711
+ | `theme.splitBarSize` | number | `1` | Thickness of the divider bar between panels in pixels. |
1712
+ | `theme.splitTriggerSize` | number | `6` | Size of the interactive trigger area for resizing in pixels. |
1713
+ | `theme.splitBarDraggableSize` | number | `20` | Size of the draggable handle area in pixels. |
1714
+ | `theme.resizeSpinnerSize` | number | `20` | Size of the resize indicator dots in pixels. |
1715
+ | `theme.colorFill` | string | - | Color of the splitter bar. |
1716
+ | `theme.colorFillTertiary` | string | - | Background color of the drag trigger area. |
1717
+ | `theme.colorFillSecondary` | string | - | Background color of the drag trigger area on hover. |
1718
+ | `theme.colorPrimary` | string | - | Color used for the collapse arrows. |
1719
+ | `theme.colorText` | string | - | Color of the resize dots indicator. |
1720
+ | `theme.colorBgElevated` | string | - | Background color of the drag trigger handle. |
1721
+ | `theme.borderRadius` | number | `6` | Border radius of the drag trigger handle. |
1722
+
1723
+ | Event | Event Data | Description |
1724
+ | --- | --- | --- |
1725
+ | `onCollapse` | `{ collapsed, sizes }` | Trigger action when a panel is collapsed or expanded. |
1726
+ | `onResize` | `{ sizes }` | Trigger action when panel sizes change during resize. |
1727
+ | `onResizeEnd` | `{ sizes }` | Trigger action when resize ends. |
1728
+ | `onResizeStart` | `{ sizes }` | Trigger action when resize starts. |
1729
+
1730
+ | Key | Target |
1731
+ | --- | --- |
1732
+ | `/block` | Outer block wrapper (always available). |
1733
+ | `/element` | The Splitter element. |
1734
+
1735
+ Slot keys are user-defined in your config and resolved at build time — not generated at runtime. The block typically pairs slots with an array property (`tabs`, `panels`, `slides`) listed in the Properties table; see the examples above for the expected shape.