@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,156 @@
1
+ # Calendar
2
+
3
+ Full-size or compact calendar for date display and selection, with support for disabled dates, date cell badges, and panel navigation events.
4
+
5
+ ```yaml
6
+ - id: fullsize_default
7
+ type: Calendar
8
+ ```
9
+
10
+ ```yaml
11
+ - id: compact_default
12
+ type: Calendar
13
+ properties:
14
+ fullscreen: false
15
+ ```
16
+
17
+ ```yaml
18
+ - id: year_mode
19
+ type: Calendar
20
+ properties:
21
+ mode: year
22
+ ```
23
+
24
+ ```yaml
25
+ - id: valid_range
26
+ type: Calendar
27
+ properties:
28
+ validRange:
29
+ - 2026-01-01
30
+ - 2026-12-31
31
+ ```
32
+
33
+ ```yaml
34
+ - id: disabled_min_max
35
+ type: Calendar
36
+ properties:
37
+ disabledDates:
38
+ min: 2026-03-10
39
+ max: 2026-03-25
40
+ - id: disabled_specific
41
+ type: Calendar
42
+ properties:
43
+ fullscreen: false
44
+ disabledDates:
45
+ dates:
46
+ - 2026-03-15
47
+ - 2026-03-20
48
+ - 2026-03-25
49
+ ```
50
+
51
+ ```yaml
52
+ - id: cell_data_badges
53
+ type: Calendar
54
+ properties:
55
+ dateCellData:
56
+ - date: 2026-03-05
57
+ content: Team standup
58
+ status: processing
59
+ - date: 2026-03-05
60
+ content: Code review
61
+ status: success
62
+ - date: 2026-03-12
63
+ content: Sprint planning
64
+ status: warning
65
+ - date: 2026-03-15
66
+ content: Release deadline
67
+ status: error
68
+ - date: 2026-03-20
69
+ content: Demo day
70
+ status: success
71
+ - date: 2026-03-20
72
+ content: Retrospective
73
+ status: default
74
+ - date: 2026-03-25
75
+ content: Team lunch
76
+ color: "#52c41a"
77
+ ```
78
+
79
+ ```yaml
80
+ - id: compact_badges
81
+ type: Calendar
82
+ properties:
83
+ fullscreen: false
84
+ dateCellData:
85
+ - date: 2026-03-10
86
+ content: Meeting
87
+ status: success
88
+ - date: 2026-03-18
89
+ content: Deadline
90
+ status: error
91
+ ```
92
+
93
+ ```yaml
94
+ - id: calendar_events
95
+ type: Calendar
96
+ properties:
97
+ fullscreen: false
98
+ events:
99
+ onSelect:
100
+ - id: show_date
101
+ type: DisplayMessage
102
+ params:
103
+ content:
104
+ _string.concat:
105
+ - "Selected: "
106
+ - _event: date
107
+ duration: 2
108
+ ```
109
+
110
+ ```yaml
111
+ - id: themed_calendar
112
+ type: Calendar
113
+ properties:
114
+ fullscreen: false
115
+ theme:
116
+ itemActiveBg: "#f9f0ff"
117
+ colorPrimary: "#722ed1"
118
+ ```
119
+
120
+ | Property | Type | Default | Description |
121
+ | --- | --- | --- | --- |
122
+ | `fullscreen` | boolean | `true` | Whether to display the calendar in full size. Set to false for a compact card-style calendar. |
123
+ | `mode` | string | `"month"` | The display mode of the calendar panel. Enum: `month`, `year`. |
124
+ | `disabledDates` | object | - | Disable specific dates so that they can not be chosen. |
125
+ | `disabledDates.min` | string \| object | - | Disable all dates less than the minimum date. Can be a date string or a _date object. |
126
+ | `disabledDates.max` | string \| object | - | Disable all dates greater than the maximum date. Can be a date string or a _date object. |
127
+ | `disabledDates.dates` | array | - | Array of specific dates to disable. |
128
+ | `disabledDates.ranges` | array | - | Array of date ranges to disable. |
129
+ | `disabledDates.ranges.$.from` | string \| object | - | Start of the disabled range. |
130
+ | `disabledDates.ranges.$.to` | string \| object | - | End of the disabled range. |
131
+ | `validRange` | array | - | Set the valid date range as [startDate, endDate]. Dates outside this range will be disabled. |
132
+ | `dateCellData` | array | - | Data to display inside calendar date cells. Each item renders as a Badge in the corresponding date cell. |
133
+ | `dateCellData.$.date` | string | - | The date for this cell data (ISO date string). |
134
+ | `dateCellData.$.content` | string | - | Text to display in the date cell. |
135
+ | `dateCellData.$.status` | string | - | Badge status type. Enum: `success`, `processing`, `default`, `error`, `warning`. |
136
+ | `dateCellData.$.color` | string | - | Custom badge color. |
137
+ | `theme` | object | - | Antd design token overrides for this block. See [antd design tokens](https://ant.design/components/overview#design-token). See [Ant Design calendar tokens](https://ant.design/components/calendar#design-token). |
138
+ | `theme.fullBg` | string | - | Background color of the full-size calendar. |
139
+ | `theme.fullPanelBg` | string | - | Background color of the calendar panel in full-size mode. |
140
+ | `theme.itemActiveBg` | string | - | Background color of the active/selected date. |
141
+ | `theme.yearControlWidth` | number | `80` | Width of the year select control in the header. |
142
+ | `theme.monthControlWidth` | number | `70` | Width of the month select control in the header. |
143
+ | `theme.miniContentHeight` | number | `256` | Height of the content area in mini (non-fullscreen) mode. |
144
+
145
+ | Event | Event Data | Description |
146
+ | --- | --- | --- |
147
+ | `onChange` | `{ value, date }` | Trigger actions when the selected date changes. |
148
+ | `onSelect` | `{ value, date, source }` | Trigger actions when a date cell is clicked. |
149
+ | `onPanelChange` | `{ value, date, mode }` | Trigger actions when the calendar panel mode or date changes. |
150
+
151
+ | Key | Target |
152
+ | --- | --- |
153
+ | `/block` | Outer block wrapper (always available). |
154
+ | `/element` | The Calendar element. |
155
+
156
+ No slots defined.
@@ -0,0 +1,314 @@
1
+ # DangerousHtml
2
+
3
+ Render raw HTML content without sanitization.
4
+
5
+ ```yaml
6
+ - id: basic_paragraph
7
+ type: DangerousHtml
8
+ properties:
9
+ html: <p>This is a basic paragraph rendered as HTML.</p>
10
+ - id: basic_heading
11
+ type: DangerousHtml
12
+ properties:
13
+ html: <h3>Heading rendered with DangerousHtml</h3>
14
+ - id: basic_link
15
+ type: DangerousHtml
16
+ properties:
17
+ html: <p>Visit <a href="https://lowdefy.com" target="_blank" rel="noopener
18
+ noreferrer">Lowdefy</a> for more info.</p>
19
+ - id: basic_multiple_headings
20
+ type: DangerousHtml
21
+ properties:
22
+ html: <h4>Section Title</h4><p>Some paragraph text below the
23
+ heading.</p><h5>Sub-section</h5><p>More text in the sub-section.</p>
24
+ ```
25
+
26
+ ```yaml
27
+ - id: styled_colored
28
+ type: DangerousHtml
29
+ properties:
30
+ html: '<p style="color: var(--ant-color-primary); font-weight: bold; font-size:
31
+ 18px;">Blue bold text with inline styles</p>'
32
+ - id: styled_box_success
33
+ type: DangerousHtml
34
+ properties:
35
+ html: '<div style="padding: 16px; background-color: var(--ant-color-success-bg);
36
+ border: 1px solid var(--ant-color-success-border); border-radius:
37
+ 6px;"><strong>Success:</strong> Your changes have been saved.</div>'
38
+ - id: styled_box_warning
39
+ type: DangerousHtml
40
+ properties:
41
+ html: '<div style="padding: 16px; background-color: var(--ant-color-warning-bg);
42
+ border: 1px solid var(--ant-color-warning-border); border-radius:
43
+ 6px;"><strong>Warning:</strong> Please review your settings before
44
+ proceeding.</div>'
45
+ - id: styled_box_error
46
+ type: DangerousHtml
47
+ properties:
48
+ html: '<div style="padding: 16px; background-color: var(--ant-color-error-bg);
49
+ border: 1px solid var(--ant-color-error-border); border-radius:
50
+ 6px;"><strong>Error:</strong> Unable to complete the operation.</div>'
51
+ - id: styled_box_info
52
+ type: DangerousHtml
53
+ properties:
54
+ html: '<div style="padding: 16px; background-color: var(--ant-color-info-bg);
55
+ border: 1px solid var(--ant-color-info-border); border-radius:
56
+ 6px;"><strong>Info:</strong> The system will undergo maintenance at
57
+ midnight.</div>'
58
+ ```
59
+
60
+ ```yaml
61
+ - id: list_unordered
62
+ type: DangerousHtml
63
+ properties:
64
+ html: '<ul style="list-style-type: disc; padding-left: 20px;"><li>First
65
+ item</li><li>Second item</li><li>Third item</li></ul>'
66
+ - id: list_ordered
67
+ type: DangerousHtml
68
+ properties:
69
+ html: '<ol style="padding-left: 20px;"><li>Step one</li><li>Step
70
+ two</li><li>Step three</li></ol>'
71
+ - id: list_colored
72
+ type: DangerousHtml
73
+ properties:
74
+ html: '<ul style="list-style-type: disc; padding-left: 20px;"><li style="color:
75
+ var(--ant-color-success);">Completed</li><li style="color:
76
+ var(--ant-color-warning);">In Progress</li><li style="color:
77
+ var(--ant-color-error);">Overdue</li></ul>'
78
+ - id: list_nested
79
+ type: DangerousHtml
80
+ properties:
81
+ html: '<ul style="padding-left: 20px;"><li>Parent item<ul style="padding-left:
82
+ 20px;"><li>Child item 1</li><li>Child item 2</li></ul></li><li>Another
83
+ parent item</li></ul>'
84
+ - id: list_definition
85
+ type: DangerousHtml
86
+ properties:
87
+ html: '<dl><dt style="font-weight: bold;">Term 1</dt><dd style="margin-left:
88
+ 20px; color: var(--ant-color-text-secondary);">Definition of the first
89
+ term.</dd><dt style="font-weight: bold;">Term 2</dt><dd
90
+ style="margin-left: 20px; color:
91
+ var(--ant-color-text-secondary);">Definition of the second
92
+ term.</dd></dl>'
93
+ ```
94
+
95
+ ```yaml
96
+ - id: table_simple
97
+ type: DangerousHtml
98
+ properties:
99
+ html: '<table style="width: 100%; border-collapse: collapse;"><thead><tr><th
100
+ style="border: 1px solid var(--ant-color-border); padding: 8px;
101
+ background: var(--ant-color-fill-quaternary); text-align:
102
+ left;">Name</th><th style="border: 1px solid var(--ant-color-border);
103
+ padding: 8px; background: var(--ant-color-fill-quaternary); text-align:
104
+ left;">Role</th><th style="border: 1px solid var(--ant-color-border);
105
+ padding: 8px; background: var(--ant-color-fill-quaternary); text-align:
106
+ left;">Status</th></tr></thead><tbody><tr><td style="border: 1px solid
107
+ var(--ant-color-border); padding: 8px;">Alice</td><td style="border: 1px
108
+ solid var(--ant-color-border); padding: 8px;">Developer</td><td
109
+ style="border: 1px solid var(--ant-color-border); padding:
110
+ 8px;">Active</td></tr><tr><td style="border: 1px solid
111
+ var(--ant-color-border); padding: 8px;">Bob</td><td style="border: 1px
112
+ solid var(--ant-color-border); padding: 8px;">Designer</td><td
113
+ style="border: 1px solid var(--ant-color-border); padding:
114
+ 8px;">Active</td></tr><tr><td style="border: 1px solid
115
+ var(--ant-color-border); padding: 8px;">Charlie</td><td style="border: 1px
116
+ solid var(--ant-color-border); padding: 8px;">Manager</td><td
117
+ style="border: 1px solid var(--ant-color-border); padding:
118
+ 8px;">Away</td></tr></tbody></table>'
119
+ - id: table_striped
120
+ type: DangerousHtml
121
+ properties:
122
+ html: '<table style="width: 100%; border-collapse: collapse;"><thead><tr><th
123
+ style="border: 1px solid var(--ant-color-border); padding: 10px;
124
+ background: var(--ant-color-primary); color: white; text-align:
125
+ left;">Product</th><th style="border: 1px solid var(--ant-color-border);
126
+ padding: 10px; background: var(--ant-color-primary); color: white;
127
+ text-align: right;">Price</th><th style="border: 1px solid
128
+ var(--ant-color-border); padding: 10px; background:
129
+ var(--ant-color-primary); color: white; text-align:
130
+ center;">Stock</th></tr></thead><tbody><tr><td style="border: 1px solid
131
+ var(--ant-color-border); padding: 10px;">Widget A</td><td style="border:
132
+ 1px solid var(--ant-color-border); padding: 10px; text-align:
133
+ right;">$29.99</td><td style="border: 1px solid var(--ant-color-border);
134
+ padding: 10px; text-align: center;">150</td></tr><tr style="background:
135
+ var(--ant-color-fill-quaternary);"><td style="border: 1px solid
136
+ var(--ant-color-border); padding: 10px;">Widget B</td><td style="border:
137
+ 1px solid var(--ant-color-border); padding: 10px; text-align:
138
+ right;">$49.99</td><td style="border: 1px solid var(--ant-color-border);
139
+ padding: 10px; text-align: center;">85</td></tr><tr><td style="border: 1px
140
+ solid var(--ant-color-border); padding: 10px;">Widget C</td><td
141
+ style="border: 1px solid var(--ant-color-border); padding: 10px;
142
+ text-align: right;">$19.99</td><td style="border: 1px solid
143
+ var(--ant-color-border); padding: 10px; text-align:
144
+ center;">320</td></tr></tbody></table>'
145
+ ```
146
+
147
+ ```yaml
148
+ - id: media_video_placeholder
149
+ type: DangerousHtml
150
+ properties:
151
+ html: '<div style="width: 100%; max-width: 560px; aspect-ratio: 16/9;
152
+ background: var(--ant-color-fill-tertiary); border: 2px dashed
153
+ var(--ant-color-border); border-radius: 8px; display: flex; align-items:
154
+ center; justify-content: center; color: var(--ant-color-text-tertiary);
155
+ font-size: 16px;">Video Placeholder (16:9)</div>'
156
+ - id: media_iframe_placeholder
157
+ type: DangerousHtml
158
+ properties:
159
+ html: '<div style="width: 100%; max-width: 400px; height: 300px; background:
160
+ var(--ant-color-fill-quaternary); border: 2px dashed
161
+ var(--ant-color-border); border-radius: 8px; display: flex; align-items:
162
+ center; justify-content: center; color:
163
+ var(--ant-color-text-tertiary);">Embedded Content Area</div>'
164
+ ```
165
+
166
+ ```yaml
167
+ - id: layout_card
168
+ type: DangerousHtml
169
+ properties:
170
+ html: '<div style="max-width: 400px; border: 1px solid var(--ant-color-border);
171
+ border-radius: 8px; overflow: hidden;"><div style="padding: 16px;
172
+ background: var(--ant-color-fill-quaternary); border-bottom: 1px solid
173
+ var(--ant-color-border);"><h4 style="margin: 0;">Card Title</h4></div><div
174
+ style="padding: 16px;"><p style="margin: 0 0 12px 0; color:
175
+ var(--ant-color-text-secondary);">This is a card-like layout created
176
+ purely with HTML and inline styles.</p><div style="display: flex; gap:
177
+ 8px;"><span style="background: var(--ant-color-primary-bg); color:
178
+ var(--ant-color-primary); padding: 2px 8px; border-radius: 4px; font-size:
179
+ 12px;">Tag 1</span><span style="background: var(--ant-color-success-bg);
180
+ color: var(--ant-color-success); padding: 2px 8px; border-radius: 4px;
181
+ font-size: 12px;">Tag 2</span></div></div></div>'
182
+ - id: layout_flex_row
183
+ type: DangerousHtml
184
+ properties:
185
+ html: '<div style="display: flex; gap: 16px; flex-wrap: wrap;"><div style="flex:
186
+ 1; min-width: 150px; padding: 16px; background:
187
+ var(--ant-color-primary-bg); border-radius: 8px; text-align: center;"><div
188
+ style="font-size: 24px; font-weight: bold; color:
189
+ var(--ant-color-primary);">42</div><div style="color:
190
+ var(--ant-color-text-secondary); font-size: 12px;">Active
191
+ Users</div></div><div style="flex: 1; min-width: 150px; padding: 16px;
192
+ background: var(--ant-color-success-bg); border-radius: 8px; text-align:
193
+ center;"><div style="font-size: 24px; font-weight: bold; color:
194
+ var(--ant-color-success);">128</div><div style="color:
195
+ var(--ant-color-text-secondary); font-size:
196
+ 12px;">Completed</div></div><div style="flex: 1; min-width: 150px;
197
+ padding: 16px; background: var(--ant-color-warning-bg); border-radius:
198
+ 8px; text-align: center;"><div style="font-size: 24px; font-weight: bold;
199
+ color: var(--ant-color-warning);">7</div><div style="color:
200
+ var(--ant-color-text-secondary); font-size:
201
+ 12px;">Pending</div></div></div>'
202
+ - id: layout_timeline
203
+ type: DangerousHtml
204
+ properties:
205
+ html: '<div style="padding-left: 20px; border-left: 2px solid
206
+ var(--ant-color-primary);"><div style="position: relative; padding-bottom:
207
+ 16px;"><div style="position: absolute; left: -26px; top: 4px; width: 10px;
208
+ height: 10px; border-radius: 50%; background:
209
+ var(--ant-color-primary);"></div><div style="font-weight: bold;">Step 1:
210
+ Setup</div><div style="color: var(--ant-color-text-secondary); font-size:
211
+ 13px;">Configure your project settings.</div></div><div style="position:
212
+ relative; padding-bottom: 16px;"><div style="position: absolute; left:
213
+ -26px; top: 4px; width: 10px; height: 10px; border-radius: 50%;
214
+ background: var(--ant-color-primary);"></div><div style="font-weight:
215
+ bold;">Step 2: Build</div><div style="color:
216
+ var(--ant-color-text-secondary); font-size: 13px;">Run the build
217
+ pipeline.</div></div><div style="position: relative;"><div
218
+ style="position: absolute; left: -26px; top: 4px; width: 10px; height:
219
+ 10px; border-radius: 50%; background: var(--ant-color-border);"></div><div
220
+ style="font-weight: bold; color: var(--ant-color-text-tertiary);">Step 3:
221
+ Deploy</div><div style="color: var(--ant-color-text-quaternary);
222
+ font-size: 13px;">Deploy to production.</div></div></div>'
223
+ ```
224
+
225
+ **Default (scripts and event handlers stripped):**
226
+
227
+ **With ADD_ATTR to allow target attribute:**
228
+
229
+ ```yaml
230
+ - id: purify_default_label
231
+ type: Markdown
232
+ properties:
233
+ content: "**Default (scripts and event handlers stripped):**"
234
+ - id: purify_default
235
+ type: DangerousHtml
236
+ properties:
237
+ html: <p>Safe content rendered. <script>alert("removed")</script></p>
238
+ - id: purify_allow_target_label
239
+ type: Markdown
240
+ properties:
241
+ content: "**With ADD_ATTR to allow target attribute:**"
242
+ - id: purify_allow_target
243
+ type: DangerousHtml
244
+ properties:
245
+ html: <a href="https://lowdefy.com" target="_blank">Link with target=_blank
246
+ allowed</a>
247
+ DOMPurifyOptions:
248
+ ADD_ATTR:
249
+ - target
250
+ ```
251
+
252
+ ```yaml
253
+ - id: style_padded
254
+ type: DangerousHtml
255
+ style:
256
+ .element:
257
+ padding: 20
258
+ background: var(--ant-color-fill-quaternary)
259
+ borderRadius: 8
260
+ border: 1px solid var(--ant-color-border)
261
+ properties:
262
+ html: '<p style="margin: 0;">Content inside a styled DangerousHtml container
263
+ with padding and background.</p>'
264
+ - id: style_max_width
265
+ type: DangerousHtml
266
+ style:
267
+ .element:
268
+ maxWidth: 400
269
+ margin: 0 auto
270
+ padding: 16
271
+ background: var(--ant-color-primary-bg)
272
+ borderRadius: 8
273
+ textAlign: center
274
+ properties:
275
+ html: '<p style="margin: 0; color: var(--ant-color-primary); font-weight:
276
+ bold;">Centered container with max-width constraint.</p>'
277
+ - id: style_shadow
278
+ type: DangerousHtml
279
+ style:
280
+ .element:
281
+ padding: 20
282
+ borderRadius: 12
283
+ boxShadow: var(--ant-box-shadow)
284
+ background: var(--ant-color-bg-container)
285
+ properties:
286
+ html: '<h4 style="margin: 0 0 8px 0;">Elevated Card</h4><p style="margin: 0;
287
+ color: var(--ant-color-text-secondary);">A DangerousHtml block styled with
288
+ a box shadow for an elevated card appearance.</p>'
289
+ - id: style_border_left
290
+ type: DangerousHtml
291
+ style:
292
+ .element:
293
+ borderLeft: 4px solid var(--ant-color-primary)
294
+ paddingLeft: 16
295
+ paddingTop: 8
296
+ paddingBottom: 8
297
+ properties:
298
+ html: '<p style="margin: 0; color: var(--ant-color-primary); font-weight:
299
+ 500;">Highlighted with a primary color left border accent.</p>'
300
+ ```
301
+
302
+ | Property | Type | Default | Description |
303
+ | --- | --- | --- | --- |
304
+ | `html` | string | - | Content to be rendered as Html. |
305
+ | `DOMPurifyOptions` | object | - | Customize DOMPurify options. Options are only applied when the block is mounted, thus any parsed settings is only applied at first render. |
306
+
307
+ No events defined.
308
+
309
+ | Key | Target |
310
+ | --- | --- |
311
+ | `/block` | Outer block wrapper (always available). |
312
+ | `/element` | The DangerousHtml element. |
313
+
314
+ No slots defined.