@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,1453 @@
1
+ # Box
2
+
3
+ Basic block-level container for layout.
4
+
5
+ ```yaml
6
+ - id: box_basic
7
+ type: Box
8
+ blocks:
9
+ - id: box_basic_text
10
+ type: Html
11
+ properties:
12
+ html: '<p style="margin: 0;">A basic Box renders a div and contains child
13
+ blocks.</p>'
14
+ ```
15
+
16
+ A Box can render a simple string using the content property.
17
+
18
+ <b>Bold</b> and <i>italic</i> text via the content property.
19
+
20
+ This content property overrides the content area below.
21
+
22
+ ```yaml
23
+ - id: box_content_string
24
+ type: Box
25
+ properties:
26
+ content: A Box can render a simple string using the content property.
27
+ - id: box_content_html
28
+ type: Box
29
+ properties:
30
+ content: <b>Bold</b> and <i>italic</i> text via the content property.
31
+ - id: box_content_override
32
+ type: Box
33
+ properties:
34
+ content: This content property overrides the content area below.
35
+ blocks:
36
+ - id: box_content_override_child
37
+ type: Html
38
+ properties:
39
+ html: '<p style="margin: 0;">This child block is hidden because the content
40
+ property takes priority.</p>'
41
+ ```
42
+
43
+ ```yaml
44
+ - id: box_onclick
45
+ type: Box
46
+ style:
47
+ .element:
48
+ background: rgba(22, 119, 255, 0.08)
49
+ border: 1px solid rgba(22, 119, 255, 0.3)
50
+ padding: 16
51
+ borderRadius: 8
52
+ cursor: pointer
53
+ events:
54
+ onClick:
55
+ - id: box_onclick_message
56
+ type: DisplayMessage
57
+ params:
58
+ content: Box clicked!
59
+ status: info
60
+ blocks:
61
+ - id: box_onclick_text
62
+ type: Html
63
+ properties:
64
+ html: '<p style="margin: 0; color: #1677ff;">Click this box to trigger a
65
+ DisplayMessage action.</p>'
66
+ - id: box_onclick_setstate
67
+ type: Box
68
+ style:
69
+ .element:
70
+ background: rgba(82, 196, 26, 0.08)
71
+ border: 1px solid rgba(82, 196, 26, 0.3)
72
+ padding: 16
73
+ borderRadius: 8
74
+ cursor: pointer
75
+ events:
76
+ onClick:
77
+ - id: box_onclick_set
78
+ type: SetState
79
+ params:
80
+ box_click_count:
81
+ _sum:
82
+ - _state: box_click_count
83
+ - 1
84
+ blocks:
85
+ - id: box_onclick_counter_text
86
+ type: Html
87
+ properties:
88
+ html: '<p style="margin: 0; color: #52c41a;">Click this box to increment a
89
+ counter with SetState.</p>'
90
+ - id: box_onclick_link
91
+ type: Box
92
+ style:
93
+ .element:
94
+ background: rgba(250, 140, 22, 0.08)
95
+ border: 1px solid rgba(250, 140, 22, 0.3)
96
+ padding: 16
97
+ borderRadius: 8
98
+ cursor: pointer
99
+ events:
100
+ onClick:
101
+ - id: box_onclick_link_action
102
+ type: Link
103
+ params:
104
+ url: /
105
+ blocks:
106
+ - id: box_onclick_link_text
107
+ type: Html
108
+ properties:
109
+ html: '<p style="margin: 0; color: #fa8c16;">Click this box to navigate using
110
+ the Link action.</p>'
111
+ ```
112
+
113
+ ```yaml
114
+ - id: box_onpaste
115
+ type: Box
116
+ style:
117
+ .element:
118
+ background: rgba(47, 84, 235, 0.08)
119
+ border: 1px dashed rgba(47, 84, 235, 0.3)
120
+ padding: 16
121
+ borderRadius: 8
122
+ events:
123
+ onPaste:
124
+ - id: box_onpaste_message
125
+ type: DisplayMessage
126
+ params:
127
+ content: Content pasted into the box!
128
+ status: success
129
+ blocks:
130
+ - id: box_onpaste_text
131
+ type: Html
132
+ properties:
133
+ html: '<p style="margin: 0; color: #2f54eb;">Focus this box and paste something
134
+ to trigger the onPaste event.</p>'
135
+ ```
136
+
137
+ ```yaml
138
+ - id: box_gap_8
139
+ type: Box
140
+ layout:
141
+ gap: 8
142
+ blocks:
143
+ - id: box_gap_8_a
144
+ type: Button
145
+ layout:
146
+ flex: 0 0 auto
147
+ properties:
148
+ title: Gap 8
149
+ color: primary
150
+ variant: solid
151
+ - id: box_gap_8_b
152
+ type: Button
153
+ layout:
154
+ flex: 0 0 auto
155
+ properties:
156
+ title: Gap 8
157
+ color: primary
158
+ variant: solid
159
+ - id: box_gap_8_c
160
+ type: Button
161
+ layout:
162
+ flex: 0 0 auto
163
+ properties:
164
+ title: Gap 8
165
+ color: primary
166
+ variant: solid
167
+ - id: box_gap_16
168
+ type: Box
169
+ layout:
170
+ gap: 16
171
+ blocks:
172
+ - id: box_gap_16_a
173
+ type: Button
174
+ layout:
175
+ flex: 0 0 auto
176
+ properties:
177
+ title: Gap 16
178
+ color: primary
179
+ variant: outlined
180
+ - id: box_gap_16_b
181
+ type: Button
182
+ layout:
183
+ flex: 0 0 auto
184
+ properties:
185
+ title: Gap 16
186
+ color: primary
187
+ variant: outlined
188
+ - id: box_gap_16_c
189
+ type: Button
190
+ layout:
191
+ flex: 0 0 auto
192
+ properties:
193
+ title: Gap 16
194
+ color: primary
195
+ variant: outlined
196
+ - id: box_gap_32
197
+ type: Box
198
+ layout:
199
+ gap: 32
200
+ blocks:
201
+ - id: box_gap_32_a
202
+ type: Button
203
+ layout:
204
+ flex: 0 0 auto
205
+ properties:
206
+ title: Gap 32
207
+ color: green
208
+ variant: solid
209
+ - id: box_gap_32_b
210
+ type: Button
211
+ layout:
212
+ flex: 0 0 auto
213
+ properties:
214
+ title: Gap 32
215
+ color: green
216
+ variant: solid
217
+ - id: box_gap_32_c
218
+ type: Button
219
+ layout:
220
+ flex: 0 0 auto
221
+ properties:
222
+ title: Gap 32
223
+ color: green
224
+ variant: solid
225
+ ```
226
+
227
+ **justify: flex-start**
228
+
229
+ **justify: center**
230
+
231
+ **justify: flex-end**
232
+
233
+ **justify: space-between**
234
+
235
+ **justify: space-around**
236
+
237
+ ```yaml
238
+ - id: box_justify_start_label
239
+ type: Markdown
240
+ properties:
241
+ content: "**justify: flex-start**"
242
+ - id: box_justify_start
243
+ type: Box
244
+ layout:
245
+ gap: 8
246
+ justify: flex-start
247
+ class: p-3 rounded-lg border border-gray-500/20
248
+ blocks:
249
+ - id: box_js_a
250
+ type: Button
251
+ layout:
252
+ flex: 0 0 auto
253
+ properties:
254
+ title: A
255
+ color: primary
256
+ variant: solid
257
+ - id: box_js_b
258
+ type: Button
259
+ layout:
260
+ flex: 0 0 auto
261
+ properties:
262
+ title: B
263
+ color: primary
264
+ variant: solid
265
+ - id: box_js_c
266
+ type: Button
267
+ layout:
268
+ flex: 0 0 auto
269
+ properties:
270
+ title: C
271
+ color: primary
272
+ variant: solid
273
+ - id: box_justify_center_label
274
+ type: Markdown
275
+ properties:
276
+ content: "**justify: center**"
277
+ - id: box_justify_center
278
+ type: Box
279
+ layout:
280
+ gap: 8
281
+ justify: center
282
+ class: p-3 rounded-lg border border-gray-500/20
283
+ blocks:
284
+ - id: box_jc_a
285
+ type: Button
286
+ layout:
287
+ flex: 0 0 auto
288
+ properties:
289
+ title: A
290
+ color: green
291
+ variant: solid
292
+ - id: box_jc_b
293
+ type: Button
294
+ layout:
295
+ flex: 0 0 auto
296
+ properties:
297
+ title: B
298
+ color: green
299
+ variant: solid
300
+ - id: box_jc_c
301
+ type: Button
302
+ layout:
303
+ flex: 0 0 auto
304
+ properties:
305
+ title: C
306
+ color: green
307
+ variant: solid
308
+ - id: box_justify_end_label
309
+ type: Markdown
310
+ properties:
311
+ content: "**justify: flex-end**"
312
+ - id: box_justify_end
313
+ type: Box
314
+ layout:
315
+ gap: 8
316
+ justify: flex-end
317
+ class: p-3 rounded-lg border border-gray-500/20
318
+ blocks:
319
+ - id: box_je_a
320
+ type: Button
321
+ layout:
322
+ flex: 0 0 auto
323
+ properties:
324
+ title: A
325
+ color: danger
326
+ variant: solid
327
+ - id: box_je_b
328
+ type: Button
329
+ layout:
330
+ flex: 0 0 auto
331
+ properties:
332
+ title: B
333
+ color: danger
334
+ variant: solid
335
+ - id: box_je_c
336
+ type: Button
337
+ layout:
338
+ flex: 0 0 auto
339
+ properties:
340
+ title: C
341
+ color: danger
342
+ variant: solid
343
+ - id: box_justify_between_label
344
+ type: Markdown
345
+ properties:
346
+ content: "**justify: space-between**"
347
+ - id: box_justify_between
348
+ type: Box
349
+ layout:
350
+ gap: 8
351
+ justify: space-between
352
+ class: p-3 rounded-lg border border-gray-500/20
353
+ blocks:
354
+ - id: box_jb_a
355
+ type: Button
356
+ layout:
357
+ flex: 0 0 auto
358
+ properties:
359
+ title: A
360
+ color: purple
361
+ variant: solid
362
+ - id: box_jb_b
363
+ type: Button
364
+ layout:
365
+ flex: 0 0 auto
366
+ properties:
367
+ title: B
368
+ color: purple
369
+ variant: solid
370
+ - id: box_jb_c
371
+ type: Button
372
+ layout:
373
+ flex: 0 0 auto
374
+ properties:
375
+ title: C
376
+ color: purple
377
+ variant: solid
378
+ - id: box_justify_around_label
379
+ type: Markdown
380
+ properties:
381
+ content: "**justify: space-around**"
382
+ - id: box_justify_around
383
+ type: Box
384
+ layout:
385
+ gap: 8
386
+ justify: space-around
387
+ class: p-3 rounded-lg border border-gray-500/20
388
+ blocks:
389
+ - id: box_ja_a
390
+ type: Button
391
+ layout:
392
+ flex: 0 0 auto
393
+ properties:
394
+ title: A
395
+ color: cyan
396
+ variant: solid
397
+ - id: box_ja_b
398
+ type: Button
399
+ layout:
400
+ flex: 0 0 auto
401
+ properties:
402
+ title: B
403
+ color: cyan
404
+ variant: solid
405
+ - id: box_ja_c
406
+ type: Button
407
+ layout:
408
+ flex: 0 0 auto
409
+ properties:
410
+ title: C
411
+ color: cyan
412
+ variant: solid
413
+ ```
414
+
415
+ **align: flex-start**
416
+
417
+ Tall
418
+
419
+ Short
420
+
421
+ **align: center**
422
+
423
+ Tall
424
+
425
+ Short
426
+
427
+ **align: flex-end**
428
+
429
+ Tall
430
+
431
+ Short
432
+
433
+ ```yaml
434
+ - id: box_align_start_label
435
+ type: Markdown
436
+ properties:
437
+ content: "**align: flex-start**"
438
+ - id: box_align_start
439
+ type: Box
440
+ layout:
441
+ gap: 8
442
+ align: flex-start
443
+ class: p-3 rounded-lg border border-gray-500/20
444
+ style:
445
+ .element:
446
+ minHeight: 100
447
+ blocks:
448
+ - id: box_as_tall
449
+ type: Box
450
+ layout:
451
+ flex: 0 0 auto
452
+ class: bg-blue-500 text-white px-4 py-2 rounded-md flex items-center
453
+ style:
454
+ .element:
455
+ height: 80
456
+ properties:
457
+ content: Tall
458
+ - id: box_as_short
459
+ type: Box
460
+ layout:
461
+ flex: 0 0 auto
462
+ class: bg-blue-500 text-white px-4 py-2 rounded-md
463
+ properties:
464
+ content: Short
465
+ - id: box_align_center_label
466
+ type: Markdown
467
+ properties:
468
+ content: "**align: center**"
469
+ - id: box_align_center
470
+ type: Box
471
+ layout:
472
+ gap: 8
473
+ align: center
474
+ class: p-3 rounded-lg border border-gray-500/20
475
+ style:
476
+ .element:
477
+ minHeight: 100
478
+ blocks:
479
+ - id: box_ac_tall
480
+ type: Box
481
+ layout:
482
+ flex: 0 0 auto
483
+ class: bg-green-500 text-white px-4 py-2 rounded-md flex items-center
484
+ style:
485
+ .element:
486
+ height: 80
487
+ properties:
488
+ content: Tall
489
+ - id: box_ac_short
490
+ type: Box
491
+ layout:
492
+ flex: 0 0 auto
493
+ class: bg-green-500 text-white px-4 py-2 rounded-md
494
+ properties:
495
+ content: Short
496
+ - id: box_align_end_label
497
+ type: Markdown
498
+ properties:
499
+ content: "**align: flex-end**"
500
+ - id: box_align_end
501
+ type: Box
502
+ layout:
503
+ gap: 8
504
+ align: flex-end
505
+ class: p-3 rounded-lg border border-gray-500/20
506
+ style:
507
+ .element:
508
+ minHeight: 100
509
+ blocks:
510
+ - id: box_ae_tall
511
+ type: Box
512
+ layout:
513
+ flex: 0 0 auto
514
+ class: bg-red-500 text-white px-4 py-2 rounded-md flex items-center
515
+ style:
516
+ .element:
517
+ height: 80
518
+ properties:
519
+ content: Tall
520
+ - id: box_ae_short
521
+ type: Box
522
+ layout:
523
+ flex: 0 0 auto
524
+ class: bg-red-500 text-white px-4 py-2 rounded-md
525
+ properties:
526
+ content: Short
527
+ ```
528
+
529
+ **Row direction (default):**
530
+
531
+ Item 1
532
+
533
+ Item 2
534
+
535
+ Item 3
536
+
537
+ **Column direction (via style):**
538
+
539
+ Item 1
540
+
541
+ Item 2
542
+
543
+ Item 3
544
+
545
+ ```yaml
546
+ - id: box_dir_row_label
547
+ type: Markdown
548
+ properties:
549
+ content: "**Row direction (default):**"
550
+ - id: box_dir_row
551
+ type: Box
552
+ layout:
553
+ gap: 8
554
+ class: p-3 rounded-lg border border-blue-500/20 bg-blue-500/5
555
+ blocks:
556
+ - id: box_dr_a
557
+ type: Box
558
+ layout:
559
+ flex: 0 0 auto
560
+ class: bg-blue-500 text-white px-4 py-2 rounded-md
561
+ properties:
562
+ content: Item 1
563
+ - id: box_dr_b
564
+ type: Box
565
+ layout:
566
+ flex: 0 0 auto
567
+ class: bg-blue-500 text-white px-4 py-2 rounded-md
568
+ properties:
569
+ content: Item 2
570
+ - id: box_dr_c
571
+ type: Box
572
+ layout:
573
+ flex: 0 0 auto
574
+ class: bg-blue-500 text-white px-4 py-2 rounded-md
575
+ properties:
576
+ content: Item 3
577
+ - id: box_dir_column_label
578
+ type: Markdown
579
+ properties:
580
+ content: "**Column direction (via style):**"
581
+ - id: box_dir_column
582
+ type: Box
583
+ layout:
584
+ gap: 8
585
+ class: p-3 rounded-lg border border-green-500/20 bg-green-500/5
586
+ style:
587
+ .element:
588
+ display: flex
589
+ flexDirection: column
590
+ blocks:
591
+ - id: box_dc_a
592
+ type: Box
593
+ class: bg-green-500 text-white px-4 py-2 rounded-md
594
+ properties:
595
+ content: Item 1
596
+ - id: box_dc_b
597
+ type: Box
598
+ class: bg-green-500 text-white px-4 py-2 rounded-md
599
+ properties:
600
+ content: Item 2
601
+ - id: box_dc_c
602
+ type: Box
603
+ class: bg-green-500 text-white px-4 py-2 rounded-md
604
+ properties:
605
+ content: Item 3
606
+ ```
607
+
608
+ **Boxes wrap to the next line when they overflow:**
609
+
610
+ Item 1
611
+
612
+ Item 2
613
+
614
+ Item 3
615
+
616
+ Item 4
617
+
618
+ Item 5
619
+
620
+ Item 6
621
+
622
+ ```yaml
623
+ - id: box_wrap_label
624
+ type: Markdown
625
+ properties:
626
+ content: "**Boxes wrap to the next line when they overflow:**"
627
+ - id: box_wrap
628
+ type: Box
629
+ layout:
630
+ gap: 8
631
+ wrap: wrap
632
+ class: p-3 rounded-lg border border-gray-500/20
633
+ blocks:
634
+ - id: box_w_a
635
+ type: Box
636
+ layout:
637
+ flex: 0 0 150px
638
+ class: bg-purple-600 text-white px-4 py-2 rounded-md text-center
639
+ properties:
640
+ content: Item 1
641
+ - id: box_w_b
642
+ type: Box
643
+ layout:
644
+ flex: 0 0 150px
645
+ class: bg-purple-600 text-white px-4 py-2 rounded-md text-center
646
+ properties:
647
+ content: Item 2
648
+ - id: box_w_c
649
+ type: Box
650
+ layout:
651
+ flex: 0 0 150px
652
+ class: bg-purple-600 text-white px-4 py-2 rounded-md text-center
653
+ properties:
654
+ content: Item 3
655
+ - id: box_w_d
656
+ type: Box
657
+ layout:
658
+ flex: 0 0 150px
659
+ class: bg-purple-600 text-white px-4 py-2 rounded-md text-center
660
+ properties:
661
+ content: Item 4
662
+ - id: box_w_e
663
+ type: Box
664
+ layout:
665
+ flex: 0 0 150px
666
+ class: bg-purple-600 text-white px-4 py-2 rounded-md text-center
667
+ properties:
668
+ content: Item 5
669
+ - id: box_w_f
670
+ type: Box
671
+ layout:
672
+ flex: 0 0 150px
673
+ class: bg-purple-600 text-white px-4 py-2 rounded-md text-center
674
+ properties:
675
+ content: Item 6
676
+ ```
677
+
678
+ **Children with flex: 1 grow to fill available space:**
679
+
680
+ Fixed 100px
681
+
682
+ Grows to fill
683
+
684
+ Fixed 100px
685
+
686
+ ```yaml
687
+ - id: box_flex_label
688
+ type: Markdown
689
+ properties:
690
+ content: "**Children with flex: 1 grow to fill available space:**"
691
+ - id: box_flex_grow
692
+ type: Box
693
+ layout:
694
+ gap: 8
695
+ class: p-3 rounded-lg border border-gray-500/20
696
+ blocks:
697
+ - id: box_fg_fixed
698
+ type: Box
699
+ layout:
700
+ flex: 0 0 100px
701
+ class: bg-orange-500 text-white px-4 py-2 rounded-md text-center
702
+ properties:
703
+ content: Fixed 100px
704
+ - id: box_fg_grow
705
+ type: Box
706
+ layout:
707
+ flex: 1
708
+ class: bg-blue-500 text-white px-4 py-2 rounded-md text-center
709
+ properties:
710
+ content: Grows to fill
711
+ - id: box_fg_fixed2
712
+ type: Box
713
+ layout:
714
+ flex: 0 0 100px
715
+ class: bg-orange-500 text-white px-4 py-2 rounded-md text-center
716
+ properties:
717
+ content: Fixed 100px
718
+ ```
719
+
720
+ ```yaml
721
+ - id: box_nested_outer
722
+ type: Box
723
+ layout:
724
+ gap: 12
725
+ class: p-4 rounded-lg border border-blue-500/20 bg-blue-500/5
726
+ blocks:
727
+ - id: box_nested_left
728
+ type: Box
729
+ layout:
730
+ flex: 1
731
+ class: p-4 rounded-md border border-gray-500/20
732
+ blocks:
733
+ - id: box_nested_left_title
734
+ type: Html
735
+ properties:
736
+ html: '<h4 style="margin: 0 0 8px 0;">Left Panel</h4>'
737
+ - id: box_nested_left_text
738
+ type: Html
739
+ properties:
740
+ html: '<p style="margin: 0; opacity: 0.65;">This box is nested inside the outer
741
+ box with flex: 1.</p>'
742
+ - id: box_nested_right
743
+ type: Box
744
+ layout:
745
+ flex: 1
746
+ class: p-4 rounded-md border border-gray-500/20
747
+ blocks:
748
+ - id: box_nested_right_title
749
+ type: Html
750
+ properties:
751
+ html: '<h4 style="margin: 0 0 8px 0;">Right Panel</h4>'
752
+ - id: box_nested_right_text
753
+ type: Html
754
+ properties:
755
+ html: '<p style="margin: 0; opacity: 0.65;">Both panels share equal space via
756
+ flex: 1.</p>'
757
+ ```
758
+
759
+ ```yaml
760
+ - id: box_tw_shadow
761
+ type: Box
762
+ layout:
763
+ flex: 0 0 auto
764
+ class: p-5 rounded-xl shadow-lg border border-gray-500/20
765
+ blocks:
766
+ - id: box_tw_shadow_text
767
+ type: Html
768
+ properties:
769
+ html: '<p style="margin: 0;">Elevated box using Tailwind shadow and rounded
770
+ classes on the element cssKey.</p>'
771
+ - id: box_tw_border
772
+ type: Box
773
+ layout:
774
+ flex: 0 0 auto
775
+ class: border-2 border-dashed border-blue-500 p-4 rounded-lg
776
+ blocks:
777
+ - id: box_tw_border_text
778
+ type: Html
779
+ properties:
780
+ html: '<p style="margin: 0; color: #1677ff;">Dashed blue border via Tailwind
781
+ utilities.</p>'
782
+ - id: box_tw_accent
783
+ type: Box
784
+ layout:
785
+ flex: 0 0 auto
786
+ class: border-l-4 border-l-orange-500 pl-4 py-2
787
+ blocks:
788
+ - id: box_tw_accent_text
789
+ type: Html
790
+ properties:
791
+ html: '<p style="margin: 0; color: #fa8c16; font-weight: 500;">Left accent
792
+ border using Tailwind border utilities.</p>'
793
+ - id: box_tw_centered
794
+ type: Box
795
+ class: max-w-sm mx-auto text-center p-4 bg-blue-500/10 rounded-lg
796
+ blocks:
797
+ - id: box_tw_centered_text
798
+ type: Html
799
+ properties:
800
+ html: '<p style="margin: 0; color: #1677ff; font-weight: bold;">Centered and
801
+ constrained width with Tailwind.</p>'
802
+ ```
803
+
804
+ ```yaml
805
+ - id: box_csskey_gradient
806
+ type: Box
807
+ layout:
808
+ flex: 0 0 auto
809
+ class:
810
+ element: bg-gradient-to-br from-indigo-500 to-purple-600 text-white p-5 rounded-xl
811
+ blocks:
812
+ - id: box_csskey_gradient_text
813
+ type: Html
814
+ properties:
815
+ html: '<h4 style="margin: 0 0 8px 0; color: #fff;">Gradient Box</h4><p
816
+ style="margin: 0; color: rgba(255,255,255,0.85);">Using the element
817
+ cssKey with a Tailwind gradient background.</p>'
818
+ - id: box_csskey_hover
819
+ type: Box
820
+ layout:
821
+ flex: 0 0 auto
822
+ class:
823
+ element: p-5 rounded-lg border border-gray-500/20 hover:shadow-lg
824
+ hover:border-blue-400 transition-all duration-200
825
+ blocks:
826
+ - id: box_csskey_hover_text
827
+ type: Html
828
+ properties:
829
+ html: '<p style="margin: 0;">Hover over this box to see a shadow and border
830
+ color transition using Tailwind hover utilities.</p>'
831
+ ```
832
+
833
+ ```yaml
834
+ - id: box_style_shadow
835
+ type: Box
836
+ layout:
837
+ flex: 0 0 auto
838
+ style:
839
+ .element:
840
+ padding: 20
841
+ borderRadius: 12
842
+ boxShadow: 0 4px 12px rgba(0, 0, 0, 0.1)
843
+ background: rgba(255, 255, 255, 0.06)
844
+ blocks:
845
+ - id: box_style_shadow_text
846
+ type: Html
847
+ properties:
848
+ html: '<p style="margin: 0;">Elevated box with box-shadow via inline style on
849
+ the element cssKey.</p>'
850
+ - id: box_style_dark
851
+ type: Box
852
+ layout:
853
+ flex: 0 0 auto
854
+ style:
855
+ .element:
856
+ background: "#1a1a2e"
857
+ color: "#e0e0e0"
858
+ padding: 20
859
+ borderRadius: 8
860
+ blocks:
861
+ - id: box_style_dark_title
862
+ type: Html
863
+ properties:
864
+ html: '<h4 style="margin: 0 0 8px 0; color: #ffffff;">Dark Box</h4>'
865
+ - id: box_style_dark_text
866
+ type: Html
867
+ properties:
868
+ html: '<p style="margin: 0; color: #a0a0a0;">Light text on dark background using
869
+ inline style.</p>'
870
+ - id: box_style_gradient
871
+ type: Box
872
+ layout:
873
+ flex: 0 0 auto
874
+ style:
875
+ .element:
876
+ background: linear-gradient(135deg,
877
+ color: "#ffffff"
878
+ padding: 20
879
+ borderRadius: 8
880
+ blocks:
881
+ - id: box_style_gradient_text
882
+ type: Html
883
+ properties:
884
+ html: '<h4 style="margin: 0 0 8px 0; color: #fff;">Gradient Box</h4><p
885
+ style="margin: 0; color: rgba(255,255,255,0.85);">A gradient
886
+ background using the inline style approach.</p>'
887
+ ```
888
+
889
+ ```yaml
890
+ - id: box_bg_blue
891
+ type: Box
892
+ layout:
893
+ flex: 0 0 auto
894
+ class: bg-blue-500/10 border border-blue-500/30 p-4 rounded-lg
895
+ blocks:
896
+ - id: box_bg_blue_text
897
+ type: Html
898
+ properties:
899
+ html: '<p style="margin: 0; color: #1677ff;">Blue info box</p>'
900
+ - id: box_bg_green
901
+ type: Box
902
+ layout:
903
+ flex: 0 0 auto
904
+ class: bg-green-500/10 border border-green-500/30 p-4 rounded-lg
905
+ blocks:
906
+ - id: box_bg_green_text
907
+ type: Html
908
+ properties:
909
+ html: '<p style="margin: 0; color: #52c41a;">Green success box</p>'
910
+ - id: box_bg_red
911
+ type: Box
912
+ layout:
913
+ flex: 0 0 auto
914
+ class: bg-red-500/10 border border-red-500/30 p-4 rounded-lg
915
+ blocks:
916
+ - id: box_bg_red_text
917
+ type: Html
918
+ properties:
919
+ html: '<p style="margin: 0; color: #ff4d4f;">Red error box</p>'
920
+ - id: box_bg_yellow
921
+ type: Box
922
+ layout:
923
+ flex: 0 0 auto
924
+ class: bg-yellow-500/10 border border-yellow-500/30 p-4 rounded-lg
925
+ blocks:
926
+ - id: box_bg_yellow_text
927
+ type: Html
928
+ properties:
929
+ html: '<p style="margin: 0; color: #faad14;">Yellow warning box</p>'
930
+ ```
931
+
932
+ ```yaml
933
+ - id: box_features_row
934
+ type: Box
935
+ layout:
936
+ gap: 16
937
+ wrap: wrap
938
+ blocks:
939
+ - id: box_feature_a
940
+ type: Box
941
+ layout:
942
+ flex: 1 1 200px
943
+ class: p-5 rounded-xl border border-gray-500/20
944
+ blocks:
945
+ - id: box_feature_a_icon
946
+ type: Icon
947
+ layout:
948
+ flex: 0 0 auto
949
+ properties:
950
+ name: AiOutlineRocket
951
+ size: 32
952
+ color: "#1677ff"
953
+ - id: box_feature_a_title
954
+ type: Html
955
+ properties:
956
+ html: '<h4 style="margin: 4px 0;">Fast</h4>'
957
+ - id: box_feature_a_desc
958
+ type: Html
959
+ properties:
960
+ html: '<p style="margin: 0; opacity: 0.65;">Optimized for performance with lazy
961
+ loading and code splitting.</p>'
962
+ - id: box_feature_b
963
+ type: Box
964
+ layout:
965
+ flex: 1 1 200px
966
+ class: p-5 rounded-xl border border-gray-500/20
967
+ blocks:
968
+ - id: box_feature_b_icon
969
+ type: Icon
970
+ layout:
971
+ flex: 0 0 auto
972
+ properties:
973
+ name: AiOutlineSafety
974
+ size: 32
975
+ color: "#52c41a"
976
+ - id: box_feature_b_title
977
+ type: Html
978
+ properties:
979
+ html: '<h4 style="margin: 4px 0;">Secure</h4>'
980
+ - id: box_feature_b_desc
981
+ type: Html
982
+ properties:
983
+ html: '<p style="margin: 0; opacity: 0.65;">Built-in security features with
984
+ role-based access control.</p>'
985
+ - id: box_feature_c
986
+ type: Box
987
+ layout:
988
+ flex: 1 1 200px
989
+ class: p-5 rounded-xl border border-gray-500/20
990
+ blocks:
991
+ - id: box_feature_c_icon
992
+ type: Icon
993
+ layout:
994
+ flex: 0 0 auto
995
+ properties:
996
+ name: AiOutlineApi
997
+ size: 32
998
+ color: "#722ed1"
999
+ - id: box_feature_c_title
1000
+ type: Html
1001
+ properties:
1002
+ html: '<h4 style="margin: 4px 0;">Extensible</h4>'
1003
+ - id: box_feature_c_desc
1004
+ type: Html
1005
+ properties:
1006
+ html: '<p style="margin: 0; opacity: 0.65;">Plug in your own components and
1007
+ connect to any API.</p>'
1008
+ ```
1009
+
1010
+ ```yaml
1011
+ - id: box_page_layout
1012
+ type: Box
1013
+ style:
1014
+ .element:
1015
+ display: flex
1016
+ flexDirection: column
1017
+ minHeight: 300
1018
+ borderRadius: 8
1019
+ overflow: hidden
1020
+ border: 1px solid rgba(128, 128, 128, 0.3)
1021
+ blocks:
1022
+ - id: box_page_header
1023
+ type: Box
1024
+ layout:
1025
+ justify: space-between
1026
+ align: center
1027
+ class: bg-slate-900 px-5 py-3
1028
+ blocks:
1029
+ - id: box_page_logo
1030
+ type: Html
1031
+ layout:
1032
+ flex: 0 0 auto
1033
+ properties:
1034
+ html: '<span style="color: #ffffff; font-weight: bold; font-size: 16px;">My
1035
+ App</span>'
1036
+ - id: box_page_nav
1037
+ type: Box
1038
+ layout:
1039
+ flex: 0 0 auto
1040
+ gap: 16
1041
+ blocks:
1042
+ - id: box_page_nav_home
1043
+ type: Button
1044
+ layout:
1045
+ flex: 0 0 auto
1046
+ properties:
1047
+ title: Home
1048
+ color: default
1049
+ variant: link
1050
+ events:
1051
+ onClick:
1052
+ - id: box_page_nav_home_link
1053
+ type: Link
1054
+ params:
1055
+ url: /
1056
+ - id: box_page_nav_about
1057
+ type: Button
1058
+ layout:
1059
+ flex: 0 0 auto
1060
+ properties:
1061
+ title: About
1062
+ color: default
1063
+ variant: link
1064
+ events:
1065
+ onClick:
1066
+ - id: box_page_nav_about_link
1067
+ type: Link
1068
+ params:
1069
+ url: /about
1070
+ - id: box_page_nav_contact
1071
+ type: Button
1072
+ layout:
1073
+ flex: 0 0 auto
1074
+ properties:
1075
+ title: Contact
1076
+ color: default
1077
+ variant: link
1078
+ events:
1079
+ onClick:
1080
+ - id: box_page_nav_contact_link
1081
+ type: Link
1082
+ params:
1083
+ url: /contact
1084
+ - id: box_page_body
1085
+ type: Box
1086
+ layout:
1087
+ flex: 1
1088
+ class: p-6
1089
+ blocks:
1090
+ - id: box_page_body_text
1091
+ type: Html
1092
+ properties:
1093
+ html: '<p style="margin: 0; opacity: 0.65;">Main content area grows to fill
1094
+ available space using flex: 1. Place page content blocks
1095
+ here.</p>'
1096
+ - id: box_page_footer
1097
+ type: Box
1098
+ layout:
1099
+ justify: center
1100
+ class: px-5 py-3 border-t border-gray-500/20
1101
+ blocks:
1102
+ - id: box_page_footer_text
1103
+ type: Html
1104
+ layout:
1105
+ flex: 0 0 auto
1106
+ properties:
1107
+ html: '<span style="opacity: 0.5; font-size: 13px;">2026 My App. All rights
1108
+ reserved.</span>'
1109
+ ```
1110
+
1111
+ ```yaml
1112
+ - id: box_inbox_wrapper
1113
+ type: Box
1114
+ class: rounded-lg border border-gray-500/20 overflow-hidden
1115
+ style:
1116
+ .element:
1117
+ display: flex
1118
+ flexDirection: column
1119
+ maxWidth: 480
1120
+ blocks:
1121
+ - id: box_inbox_header
1122
+ type: Box
1123
+ layout:
1124
+ justify: space-between
1125
+ align: center
1126
+ class: px-4 py-3 border-b border-gray-500/20
1127
+ blocks:
1128
+ - id: box_inbox_title
1129
+ type: Html
1130
+ layout:
1131
+ flex: 0 0 auto
1132
+ properties:
1133
+ html: '<span style="font-weight: 600; font-size: 15px;">Notifications</span>'
1134
+ - id: box_inbox_mark_read
1135
+ type: Button
1136
+ layout:
1137
+ flex: 0 0 auto
1138
+ properties:
1139
+ title: Mark all read
1140
+ color: primary
1141
+ variant: link
1142
+ size: small
1143
+ events:
1144
+ onClick:
1145
+ - id: box_inbox_mark_read_action
1146
+ type: DisplayMessage
1147
+ params:
1148
+ content: All notifications marked as read.
1149
+ status: success
1150
+ - id: box_inbox_item_1
1151
+ type: Box
1152
+ layout:
1153
+ gap: 12
1154
+ align: flex-start
1155
+ class: px-4 py-3 border-b border-gray-500/10 bg-blue-500/10 cursor-pointer
1156
+ hover:bg-blue-500/15
1157
+ events:
1158
+ onClick:
1159
+ - id: box_inbox_item_1_click
1160
+ type: DisplayMessage
1161
+ params:
1162
+ content: "Opened: Deployment completed"
1163
+ status: info
1164
+ blocks:
1165
+ - id: box_inbox_item_1_icon
1166
+ type: Icon
1167
+ layout:
1168
+ flex: 0 0 auto
1169
+ properties:
1170
+ name: AiOutlineCheckCircle
1171
+ size: 20
1172
+ color: "#52c41a"
1173
+ - id: box_inbox_item_1_body
1174
+ type: Box
1175
+ layout:
1176
+ flex: 1
1177
+ direction: column
1178
+ gap: 2
1179
+ blocks:
1180
+ - id: box_inbox_item_1_text
1181
+ type: Html
1182
+ properties:
1183
+ html: '<span style="font-weight: 500;">Deployment completed</span>'
1184
+ - id: box_inbox_item_1_time
1185
+ type: Html
1186
+ properties:
1187
+ html: '<span style="font-size: 12px; opacity: 0.5;">Production v2.4.1 deployed
1188
+ successfully - 5 minutes ago</span>'
1189
+ - id: box_inbox_item_2
1190
+ type: Box
1191
+ layout:
1192
+ gap: 12
1193
+ align: flex-start
1194
+ class: px-4 py-3 border-b border-gray-500/10 bg-blue-500/10 cursor-pointer
1195
+ hover:bg-blue-500/15
1196
+ events:
1197
+ onClick:
1198
+ - id: box_inbox_item_2_click
1199
+ type: DisplayMessage
1200
+ params:
1201
+ content: "Opened: New team member"
1202
+ status: info
1203
+ blocks:
1204
+ - id: box_inbox_item_2_icon
1205
+ type: Icon
1206
+ layout:
1207
+ flex: 0 0 auto
1208
+ properties:
1209
+ name: AiOutlineUserAdd
1210
+ size: 20
1211
+ color: "#1677ff"
1212
+ - id: box_inbox_item_2_body
1213
+ type: Box
1214
+ layout:
1215
+ flex: 1
1216
+ direction: column
1217
+ gap: 2
1218
+ blocks:
1219
+ - id: box_inbox_item_2_text
1220
+ type: Html
1221
+ properties:
1222
+ html: '<span style="font-weight: 500;">New team member added</span>'
1223
+ - id: box_inbox_item_2_time
1224
+ type: Html
1225
+ properties:
1226
+ html: '<span style="font-size: 12px; opacity: 0.5;">Sarah joined the Design team
1227
+ - 2 hours ago</span>'
1228
+ - id: box_inbox_item_3
1229
+ type: Box
1230
+ layout:
1231
+ gap: 12
1232
+ align: flex-start
1233
+ class: px-4 py-3 cursor-pointer hover:bg-gray-500/10
1234
+ events:
1235
+ onClick:
1236
+ - id: box_inbox_item_3_click
1237
+ type: DisplayMessage
1238
+ params:
1239
+ content: "Opened: Storage warning"
1240
+ status: info
1241
+ blocks:
1242
+ - id: box_inbox_item_3_icon
1243
+ type: Icon
1244
+ layout:
1245
+ flex: 0 0 auto
1246
+ properties:
1247
+ name: AiOutlineWarning
1248
+ size: 20
1249
+ color: "#faad14"
1250
+ - id: box_inbox_item_3_body
1251
+ type: Box
1252
+ layout:
1253
+ flex: 1
1254
+ direction: column
1255
+ gap: 2
1256
+ blocks:
1257
+ - id: box_inbox_item_3_text
1258
+ type: Html
1259
+ properties:
1260
+ html: '<span style="opacity: 0.65;">Storage limit approaching</span>'
1261
+ - id: box_inbox_item_3_time
1262
+ type: Html
1263
+ properties:
1264
+ html: '<span style="font-size: 12px; opacity: 0.5;">You have used 85% of your
1265
+ storage quota - 1 day ago</span>'
1266
+ ```
1267
+
1268
+ ```yaml
1269
+ - id: box_sidebar_layout
1270
+ type: Box
1271
+ layout:
1272
+ gap: 0
1273
+ class: rounded-lg border border-gray-500/20 overflow-hidden
1274
+ style:
1275
+ .element:
1276
+ minHeight: 320
1277
+ blocks:
1278
+ - id: box_sidebar_nav
1279
+ type: Box
1280
+ layout:
1281
+ flex: 0 0 200px
1282
+ class: border-r border-gray-500/20
1283
+ style:
1284
+ .element:
1285
+ display: flex
1286
+ flexDirection: column
1287
+ blocks:
1288
+ - id: box_sidebar_brand
1289
+ type: Html
1290
+ properties:
1291
+ html: '<div style="padding: 16px; font-weight: 700; font-size: 15px;
1292
+ border-bottom: 1px solid rgba(128,128,128,0.2);">Workspace</div>'
1293
+ - id: box_sidebar_item_dashboard
1294
+ type: Box
1295
+ layout:
1296
+ gap: 8
1297
+ align: center
1298
+ class: px-4 py-2 bg-blue-500/10 cursor-pointer
1299
+ events:
1300
+ onClick:
1301
+ - id: box_sidebar_dashboard_action
1302
+ type: SetState
1303
+ params:
1304
+ sidebar_active: dashboard
1305
+ blocks:
1306
+ - id: box_sidebar_icon_dashboard
1307
+ type: Icon
1308
+ layout:
1309
+ flex: 0 0 auto
1310
+ properties:
1311
+ name: AiOutlineDashboard
1312
+ size: 16
1313
+ color: "#1677ff"
1314
+ - id: box_sidebar_text_dashboard
1315
+ type: Html
1316
+ layout:
1317
+ flex: 0 0 auto
1318
+ properties:
1319
+ html: '<span style="color: #1677ff; font-weight: 500; font-size:
1320
+ 14px;">Dashboard</span>'
1321
+ - id: box_sidebar_item_projects
1322
+ type: Box
1323
+ layout:
1324
+ gap: 8
1325
+ align: center
1326
+ class: px-4 py-2 cursor-pointer hover:bg-gray-500/10
1327
+ events:
1328
+ onClick:
1329
+ - id: box_sidebar_projects_action
1330
+ type: SetState
1331
+ params:
1332
+ sidebar_active: projects
1333
+ blocks:
1334
+ - id: box_sidebar_icon_projects
1335
+ type: Icon
1336
+ layout:
1337
+ flex: 0 0 auto
1338
+ properties:
1339
+ name: AiOutlineProject
1340
+ size: 16
1341
+ color: rgba(128, 128, 128, 0.7)
1342
+ - id: box_sidebar_text_projects
1343
+ type: Html
1344
+ layout:
1345
+ flex: 0 0 auto
1346
+ properties:
1347
+ html: '<span style="opacity: 0.65; font-size: 14px;">Projects</span>'
1348
+ - id: box_sidebar_item_settings
1349
+ type: Box
1350
+ layout:
1351
+ gap: 8
1352
+ align: center
1353
+ class: px-4 py-2 cursor-pointer hover:bg-gray-500/10
1354
+ events:
1355
+ onClick:
1356
+ - id: box_sidebar_settings_action
1357
+ type: SetState
1358
+ params:
1359
+ sidebar_active: settings
1360
+ blocks:
1361
+ - id: box_sidebar_icon_settings
1362
+ type: Icon
1363
+ layout:
1364
+ flex: 0 0 auto
1365
+ properties:
1366
+ name: AiOutlineSetting
1367
+ size: 16
1368
+ color: rgba(128, 128, 128, 0.7)
1369
+ - id: box_sidebar_text_settings
1370
+ type: Html
1371
+ layout:
1372
+ flex: 0 0 auto
1373
+ properties:
1374
+ html: '<span style="opacity: 0.65; font-size: 14px;">Settings</span>'
1375
+ - id: box_sidebar_content
1376
+ type: Box
1377
+ layout:
1378
+ flex: 1
1379
+ class: p-6
1380
+ blocks:
1381
+ - id: box_sidebar_content_title
1382
+ type: Html
1383
+ properties:
1384
+ html: '<h3 style="margin: 0 0 12px 0;">Dashboard</h3>'
1385
+ - id: box_sidebar_stats_row
1386
+ type: Box
1387
+ layout:
1388
+ gap: 12
1389
+ blocks:
1390
+ - id: box_sidebar_stat_users
1391
+ type: Box
1392
+ layout:
1393
+ flex: 1
1394
+ class: p-4 rounded-lg border border-blue-500/20 bg-blue-500/5
1395
+ blocks:
1396
+ - id: box_sidebar_stat_users_label
1397
+ type: Html
1398
+ properties:
1399
+ html: '<span style="font-size: 12px; opacity: 0.5;">Active Users</span>'
1400
+ - id: box_sidebar_stat_users_value
1401
+ type: Html
1402
+ properties:
1403
+ html: '<span style="font-size: 24px; font-weight: 700; color:
1404
+ #1677ff;">1,248</span>'
1405
+ - id: box_sidebar_stat_revenue
1406
+ type: Box
1407
+ layout:
1408
+ flex: 1
1409
+ class: p-4 rounded-lg border border-green-500/20 bg-green-500/5
1410
+ blocks:
1411
+ - id: box_sidebar_stat_revenue_label
1412
+ type: Html
1413
+ properties:
1414
+ html: '<span style="font-size: 12px; opacity: 0.5;">Revenue</span>'
1415
+ - id: box_sidebar_stat_revenue_value
1416
+ type: Html
1417
+ properties:
1418
+ html: '<span style="font-size: 24px; font-weight: 700; color:
1419
+ #52c41a;">$48,650</span>'
1420
+ - id: box_sidebar_stat_tasks
1421
+ type: Box
1422
+ layout:
1423
+ flex: 1
1424
+ class: p-4 rounded-lg border border-orange-500/20 bg-orange-500/5
1425
+ blocks:
1426
+ - id: box_sidebar_stat_tasks_label
1427
+ type: Html
1428
+ properties:
1429
+ html: '<span style="font-size: 12px; opacity: 0.5;">Open Tasks</span>'
1430
+ - id: box_sidebar_stat_tasks_value
1431
+ type: Html
1432
+ properties:
1433
+ html: '<span style="font-size: 24px; font-weight: 700; color:
1434
+ #fa8c16;">37</span>'
1435
+ ```
1436
+
1437
+ | Property | Type | Default | Description |
1438
+ | --- | --- | --- | --- |
1439
+ | `content` | string | - | Box content string. Overrides the "content" content area. |
1440
+
1441
+ | Event | Event Data | Description |
1442
+ | --- | --- | --- |
1443
+ | `onClick` | \- | Trigger actions when the Box is clicked. |
1444
+ | `onPaste` | \- | Trigger actions when the element is focused and a paste event is triggered. |
1445
+
1446
+ | Key | Target |
1447
+ | --- | --- |
1448
+ | `/block` | Outer block wrapper (always available). |
1449
+ | `/element` | The Box element. |
1450
+
1451
+ | Slot | Description |
1452
+ | --- | --- |
1453
+ | `content` | Child blocks in the Box. |