@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.
- package/LICENSE +201 -0
- package/README.md +20 -0
- package/content/actions/callapi.md +66 -0
- package/content/actions/callmethod.md +41 -0
- package/content/actions/copytoclipboard.md +32 -0
- package/content/actions/displaymessage.md +53 -0
- package/content/actions/downloadcsv.md +89 -0
- package/content/actions/fetch.md +50 -0
- package/content/actions/geolocationcurrentposition.md +56 -0
- package/content/actions/link.md +104 -0
- package/content/actions/login.md +85 -0
- package/content/actions/logout.md +56 -0
- package/content/actions/pdfmake.md +304 -0
- package/content/actions/request.md +67 -0
- package/content/actions/reset.md +27 -0
- package/content/actions/resetvalidation.md +85 -0
- package/content/actions/scrollto.md +85 -0
- package/content/actions/setdarkmode.md +62 -0
- package/content/actions/setfocus.md +33 -0
- package/content/actions/setglobal.md +63 -0
- package/content/actions/setlocale.md +69 -0
- package/content/actions/setstate.md +70 -0
- package/content/actions/throw.md +72 -0
- package/content/actions/validate.md +87 -0
- package/content/actions/wait.md +24 -0
- package/content/agents/agent-endpoint-tools.md +190 -0
- package/content/agents/agent-mcp-tools.md +124 -0
- package/content/agents/agent-multi-agent.md +136 -0
- package/content/agents/agent-properties.md +174 -0
- package/content/agents/agent-server-hooks.md +336 -0
- package/content/agents/agentchat.md +515 -0
- package/content/agents/agentconversations.md +148 -0
- package/content/concepts/ai-agent-docs.md +190 -0
- package/content/concepts/cli.md +213 -0
- package/content/concepts/connections-and-requests.md +7 -0
- package/content/concepts/custom-html.md +3 -0
- package/content/concepts/custom-styling.md +161 -0
- package/content/concepts/events-and-actions.md +271 -0
- package/content/concepts/hosting-files.md +18 -0
- package/content/concepts/i18n.md +320 -0
- package/content/concepts/keyboard-shortcuts.md +218 -0
- package/content/concepts/layout-overview.md +478 -0
- package/content/concepts/lists.md +144 -0
- package/content/concepts/logger.md +43 -0
- package/content/concepts/lowdefy-schema.md +365 -0
- package/content/concepts/menus.md +144 -0
- package/content/concepts/module-authoring.md +564 -0
- package/content/concepts/modules.md +338 -0
- package/content/concepts/operators.md +45 -0
- package/content/concepts/overview.md +19 -0
- package/content/concepts/references-and-templates.md +207 -0
- package/content/concepts/secrets.md +24 -0
- package/content/concepts/selectors.md +143 -0
- package/content/connections/amazonredshift.md +176 -0
- package/content/connections/anthropic.md +232 -0
- package/content/connections/awss3.md +313 -0
- package/content/connections/azureblobstorage.md +133 -0
- package/content/connections/elasticsearch.md +371 -0
- package/content/connections/google.md +228 -0
- package/content/connections/googlecloudstorage.md +139 -0
- package/content/connections/googlesheet.md +313 -0
- package/content/connections/knex.md +206 -0
- package/content/connections/mariadb.md +177 -0
- package/content/connections/mcp.md +134 -0
- package/content/connections/mongodb.md +739 -0
- package/content/connections/mssql.md +191 -0
- package/content/connections/mysql.md +192 -0
- package/content/connections/openai-connection.md +228 -0
- package/content/connections/postgresql.md +200 -0
- package/content/connections/redis.md +116 -0
- package/content/connections/sendgridmail.md +94 -0
- package/content/connections/smtp.md +149 -0
- package/content/connections/sqlite.md +187 -0
- package/content/connections/stripe.md +115 -0
- package/content/container-blocks/affix.md +413 -0
- package/content/container-blocks/alert.md +937 -0
- package/content/container-blocks/badge.md +1222 -0
- package/content/container-blocks/box.md +1453 -0
- package/content/container-blocks/card.md +1200 -0
- package/content/container-blocks/carousel.md +2247 -0
- package/content/container-blocks/collapse.md +1335 -0
- package/content/container-blocks/configprovider.md +1070 -0
- package/content/container-blocks/confirmmodal.md +1159 -0
- package/content/container-blocks/content.md +597 -0
- package/content/container-blocks/descriptions.md +870 -0
- package/content/container-blocks/drawer.md +1379 -0
- package/content/container-blocks/dropdownmenu.md +643 -0
- package/content/container-blocks/flex.md +1510 -0
- package/content/container-blocks/footer.md +380 -0
- package/content/container-blocks/googlemaps.md +546 -0
- package/content/container-blocks/googlemapsheatmap.md +607 -0
- package/content/container-blocks/googlemapsscript.md +61 -0
- package/content/container-blocks/header.md +302 -0
- package/content/container-blocks/label.md +739 -0
- package/content/container-blocks/layout.md +604 -0
- package/content/container-blocks/masonry.md +1090 -0
- package/content/container-blocks/mobilemenu.md +1244 -0
- package/content/container-blocks/modal.md +1180 -0
- package/content/container-blocks/pageheadermenu.md +614 -0
- package/content/container-blocks/pagesidebarlayout.md +438 -0
- package/content/container-blocks/pagesidermenu.md +651 -0
- package/content/container-blocks/popover.md +1421 -0
- package/content/container-blocks/result.md +972 -0
- package/content/container-blocks/sider.md +1064 -0
- package/content/container-blocks/span.md +747 -0
- package/content/container-blocks/spinner.md +267 -0
- package/content/container-blocks/splitter.md +1735 -0
- package/content/container-blocks/tabs.md +1718 -0
- package/content/container-blocks/tooltip.md +1274 -0
- package/content/container-blocks/watermark.md +515 -0
- package/content/controls/for.md +103 -0
- package/content/controls/if.md +107 -0
- package/content/controls/log.md +50 -0
- package/content/controls/parallel.md +71 -0
- package/content/controls/parallel_for.md +36 -0
- package/content/controls/reject.md +56 -0
- package/content/controls/return.md +66 -0
- package/content/controls/set_state.md +98 -0
- package/content/controls/switch.md +90 -0
- package/content/controls/throw.md +79 -0
- package/content/controls/try.md +88 -0
- package/content/deployment/docker.md +149 -0
- package/content/deployment/node-server.md +27 -0
- package/content/deployment/vercel.md +101 -0
- package/content/display-blocks/aggrid.md +1459 -0
- package/content/display-blocks/anchor.md +336 -0
- package/content/display-blocks/avatar.md +1154 -0
- package/content/display-blocks/breadcrumb.md +517 -0
- package/content/display-blocks/button.md +758 -0
- package/content/display-blocks/calendar.md +156 -0
- package/content/display-blocks/dangeroushtml.md +314 -0
- package/content/display-blocks/dangerousmarkdown.md +423 -0
- package/content/display-blocks/diffgit.md +44 -0
- package/content/display-blocks/difflist.md +225 -0
- package/content/display-blocks/diffsidebyside.md +56 -0
- package/content/display-blocks/difftimeline.md +94 -0
- package/content/display-blocks/divider.md +406 -0
- package/content/display-blocks/download.md +60 -0
- package/content/display-blocks/dropdownbutton.md +661 -0
- package/content/display-blocks/echart.md +418 -0
- package/content/display-blocks/floatbutton.md +545 -0
- package/content/display-blocks/html.md +311 -0
- package/content/display-blocks/icon.md +717 -0
- package/content/display-blocks/img.md +479 -0
- package/content/display-blocks/markdown.md +520 -0
- package/content/display-blocks/markdownwithcode.md +730 -0
- package/content/display-blocks/menu.md +1123 -0
- package/content/display-blocks/message.md +941 -0
- package/content/display-blocks/notification.md +1410 -0
- package/content/display-blocks/paragraph.md +643 -0
- package/content/display-blocks/progress.md +818 -0
- package/content/display-blocks/qrcode.md +519 -0
- package/content/display-blocks/s3download.md +240 -0
- package/content/display-blocks/search.md +360 -0
- package/content/display-blocks/skeleton.md +272 -0
- package/content/display-blocks/skeletonavatar.md +222 -0
- package/content/display-blocks/skeletonbutton.md +245 -0
- package/content/display-blocks/skeletoninput.md +223 -0
- package/content/display-blocks/skeletonparagraph.md +201 -0
- package/content/display-blocks/statistic.md +485 -0
- package/content/display-blocks/steps.md +585 -0
- package/content/display-blocks/tag.md +620 -0
- package/content/display-blocks/title.md +654 -0
- package/content/display-blocks/tour.md +2359 -0
- package/content/input-blocks/autocomplete.md +786 -0
- package/content/input-blocks/buttonselector.md +964 -0
- package/content/input-blocks/checkboxselector.md +765 -0
- package/content/input-blocks/checkboxswitch.md +497 -0
- package/content/input-blocks/colorselector.md +884 -0
- package/content/input-blocks/daterangeselector.md +777 -0
- package/content/input-blocks/dateselector.md +693 -0
- package/content/input-blocks/datetimeselector.md +791 -0
- package/content/input-blocks/inputgallery.md +528 -0
- package/content/input-blocks/monthselector.md +717 -0
- package/content/input-blocks/multipleselector.md +1337 -0
- package/content/input-blocks/numberinput.md +855 -0
- package/content/input-blocks/pagination.md +679 -0
- package/content/input-blocks/paragraphinput.md +1664 -0
- package/content/input-blocks/passwordinput.md +480 -0
- package/content/input-blocks/phonenumberinput.md +688 -0
- package/content/input-blocks/radioselector.md +820 -0
- package/content/input-blocks/ratingslider.md +684 -0
- package/content/input-blocks/s3uploadbutton.md +384 -0
- package/content/input-blocks/s3uploaddragger.md +305 -0
- package/content/input-blocks/s3uploadphoto.md +288 -0
- package/content/input-blocks/segmentedselector.md +782 -0
- package/content/input-blocks/selector.md +1162 -0
- package/content/input-blocks/switch.md +552 -0
- package/content/input-blocks/textarea.md +714 -0
- package/content/input-blocks/textinput.md +639 -0
- package/content/input-blocks/tiptapinput.md +226 -0
- package/content/input-blocks/tiptapmentioninput.md +471 -0
- package/content/input-blocks/titleinput.md +1094 -0
- package/content/input-blocks/treeinput.md +144 -0
- package/content/input-blocks/treemultipleselector.md +162 -0
- package/content/input-blocks/treeselector.md +185 -0
- package/content/input-blocks/upload.md +149 -0
- package/content/input-blocks/uploaddragger.md +85 -0
- package/content/input-blocks/uploadphoto.md +84 -0
- package/content/input-blocks/weekselector.md +630 -0
- package/content/list-blocks/controlledlist.md +498 -0
- package/content/list-blocks/list.md +529 -0
- package/content/list-blocks/listselector.md +301 -0
- package/content/list-blocks/masonrylist.md +230 -0
- package/content/migration/upgrade-guide.md +106 -0
- package/content/migration/v4-to-v5.md +589 -0
- package/content/migration/v5-to-v6.md +36 -0
- package/content/operators/_actions.md +58 -0
- package/content/operators/_and.md +76 -0
- package/content/operators/_api.md +254 -0
- package/content/operators/_app.md +114 -0
- package/content/operators/_args.md +65 -0
- package/content/operators/_array.md +331 -0
- package/content/operators/_base64.md +49 -0
- package/content/operators/_boolean.md +33 -0
- package/content/operators/_build.md +166 -0
- package/content/operators/_change_case.md +357 -0
- package/content/operators/_date.md +415 -0
- package/content/operators/_dayjs.md +128 -0
- package/content/operators/_diff.md +61 -0
- package/content/operators/_divide.md +32 -0
- package/content/operators/_eq.md +52 -0
- package/content/operators/_event.md +86 -0
- package/content/operators/_function.md +52 -0
- package/content/operators/_get.md +92 -0
- package/content/operators/_global.md +86 -0
- package/content/operators/_gt.md +50 -0
- package/content/operators/_gte.md +50 -0
- package/content/operators/_hash.md +112 -0
- package/content/operators/_if.md +30 -0
- package/content/operators/_if_none.md +47 -0
- package/content/operators/_index.md +48 -0
- package/content/operators/_input.md +86 -0
- package/content/operators/_intl.md +135 -0
- package/content/operators/_item.md +166 -0
- package/content/operators/_js.md +113 -0
- package/content/operators/_json.md +120 -0
- package/content/operators/_jsonata.md +152 -0
- package/content/operators/_locale.md +65 -0
- package/content/operators/_location.md +40 -0
- package/content/operators/_log.md +22 -0
- package/content/operators/_lt.md +50 -0
- package/content/operators/_lte.md +50 -0
- package/content/operators/_math.md +407 -0
- package/content/operators/_media.md +83 -0
- package/content/operators/_menu.md +62 -0
- package/content/operators/_module.md +340 -0
- package/content/operators/_mql.md +95 -0
- package/content/operators/_ne.md +62 -0
- package/content/operators/_not.md +33 -0
- package/content/operators/_number.md +159 -0
- package/content/operators/_nunjucks.md +117 -0
- package/content/operators/_object.md +253 -0
- package/content/operators/_operator.md +33 -0
- package/content/operators/_or.md +67 -0
- package/content/operators/_product.md +45 -0
- package/content/operators/_random.md +90 -0
- package/content/operators/_ref.md +80 -0
- package/content/operators/_regex.md +69 -0
- package/content/operators/_request.md +35 -0
- package/content/operators/_request_details.md +29 -0
- package/content/operators/_secret.md +56 -0
- package/content/operators/_state.md +134 -0
- package/content/operators/_step.md +98 -0
- package/content/operators/_string.md +327 -0
- package/content/operators/_subtract.md +24 -0
- package/content/operators/_sum.md +45 -0
- package/content/operators/_switch.md +37 -0
- package/content/operators/_t.md +96 -0
- package/content/operators/_theme.md +65 -0
- package/content/operators/_type.md +78 -0
- package/content/operators/_uri.md +49 -0
- package/content/operators/_url_query.md +92 -0
- package/content/operators/_user.md +154 -0
- package/content/operators/_uuid.md +118 -0
- package/content/operators/_var.md +88 -0
- package/content/operators/_yaml.md +96 -0
- package/content/other/introduction.md +39 -0
- package/content/other/next-auth-providers.md +3 -0
- package/content/other/updatesession.md +26 -0
- package/content/plugins/plugins-actions.md +80 -0
- package/content/plugins/plugins-connections.md +98 -0
- package/content/plugins/plugins-dev.md +138 -0
- package/content/plugins/plugins-introduction.md +29 -0
- package/content/plugins/plugins-operators.md +71 -0
- package/content/testing/e2e-auth.md +108 -0
- package/content/testing/e2e-configuration.md +107 -0
- package/content/testing/e2e-getting-started.md +96 -0
- package/content/testing/e2e-introduction.md +53 -0
- package/content/testing/e2e-mocking.md +155 -0
- package/content/testing/e2e-writing-tests.md +214 -0
- package/content/tutorial/tutorial-actions-operators.md +222 -0
- package/content/tutorial/tutorial-add-blocks.md +86 -0
- package/content/tutorial/tutorial-create-page.md +57 -0
- package/content/tutorial/tutorial-display-data-page.md +181 -0
- package/content/tutorial/tutorial-next-steps.md +53 -0
- package/content/tutorial/tutorial-requests-sql.md +22 -0
- package/content/tutorial/tutorial-start.md +71 -0
- package/content/user-authentication/auth-providers.md +15 -0
- package/content/user-authentication/login-and-logout.md +122 -0
- package/content/user-authentication/users-introduction.md +31 -0
- package/index.json +2281 -0
- package/package.json +34 -0
- package/scripts/extractAgentDocs.js +130 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# TiptapInput
|
|
2
|
+
|
|
3
|
+
Rich-text editor built on TipTap. Supports bold, italic, strike-through, highlights, headings, lists, tables, links, and drag/drop or paste image uploads via a configurable upload-policy request (`uploadPolicyRequestId`) — any storage provider (S3, GCS, Azure). Configure `downloadPolicyRequestId` to resolve inserted image URLs through a download request.
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
- id: tiptap_default
|
|
7
|
+
type: TiptapInput
|
|
8
|
+
properties:
|
|
9
|
+
title: Notes
|
|
10
|
+
placeholder: Start typing here. Try **bold**, *italic*, or headings.
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```yaml
|
|
14
|
+
- id: tiptap_prepopulated
|
|
15
|
+
type: TiptapInput
|
|
16
|
+
events:
|
|
17
|
+
onMount:
|
|
18
|
+
- id: tiptap_prepopulated_set
|
|
19
|
+
type: SetState
|
|
20
|
+
params:
|
|
21
|
+
tiptap_prepopulated:
|
|
22
|
+
html: >
|
|
23
|
+
<h2>What's new</h2> <p>Highlights from this release:</p> <ul>
|
|
24
|
+
<li>Rich-text editor built on <a href="https://tiptap.dev">TipTap</a></li>
|
|
25
|
+
<li>Drag-and-drop image uploads</li>
|
|
26
|
+
<li>Inline <strong>bold</strong>, <em>italic</em>, and <mark>highlights</mark></li>
|
|
27
|
+
</ul> <blockquote><p>Pair it with a TextArea when you need a
|
|
28
|
+
simple fallback.</p></blockquote>
|
|
29
|
+
properties:
|
|
30
|
+
title: Release notes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
- id: tiptap_disabled
|
|
35
|
+
type: TiptapInput
|
|
36
|
+
events:
|
|
37
|
+
onMount:
|
|
38
|
+
- id: tiptap_disabled_set
|
|
39
|
+
type: SetState
|
|
40
|
+
params:
|
|
41
|
+
tiptap_disabled:
|
|
42
|
+
html: <p>This editor is disabled and cannot be edited.</p>
|
|
43
|
+
properties:
|
|
44
|
+
title: Read only
|
|
45
|
+
disabled: true
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
- id: tiptap_borderless
|
|
50
|
+
type: TiptapInput
|
|
51
|
+
properties:
|
|
52
|
+
title: Borderless editor
|
|
53
|
+
bordered: false
|
|
54
|
+
placeholder: No border, just content.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```yaml
|
|
58
|
+
- id: tiptap_rows_2
|
|
59
|
+
type: TiptapInput
|
|
60
|
+
properties:
|
|
61
|
+
title: Short note
|
|
62
|
+
placeholder: Exactly 2 rows tall.
|
|
63
|
+
rows: 2
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```yaml
|
|
67
|
+
- id: tiptap_autosize_range
|
|
68
|
+
type: TiptapInput
|
|
69
|
+
properties:
|
|
70
|
+
title: Grows between 2 and 5 rows
|
|
71
|
+
placeholder: Keep typing — scrolls past 5 rows.
|
|
72
|
+
autoSize:
|
|
73
|
+
minRows: 2
|
|
74
|
+
maxRows: 5
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
- id: tiptap_validation
|
|
79
|
+
type: TiptapInput
|
|
80
|
+
required: true
|
|
81
|
+
properties:
|
|
82
|
+
title: Release notes (required)
|
|
83
|
+
placeholder: Type at least 10 characters, then click Validate.
|
|
84
|
+
rows: 3
|
|
85
|
+
validate:
|
|
86
|
+
- status: error
|
|
87
|
+
message: Release notes must be at least 10 characters.
|
|
88
|
+
pass:
|
|
89
|
+
_gte:
|
|
90
|
+
- _string.length:
|
|
91
|
+
_state: tiptap_validation.text
|
|
92
|
+
- 10
|
|
93
|
+
- id: tiptap_validation_button
|
|
94
|
+
type: Button
|
|
95
|
+
properties:
|
|
96
|
+
title: Validate
|
|
97
|
+
events:
|
|
98
|
+
onClick:
|
|
99
|
+
- id: tiptap_validation_run
|
|
100
|
+
type: Validate
|
|
101
|
+
params:
|
|
102
|
+
- tiptap_validation
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```yaml
|
|
106
|
+
- id: tiptap_autosize_true
|
|
107
|
+
type: TiptapInput
|
|
108
|
+
properties:
|
|
109
|
+
title: Unconstrained
|
|
110
|
+
placeholder: No height cap.
|
|
111
|
+
autoSize: true
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
- id: tiptap_minimal
|
|
116
|
+
type: TiptapInput
|
|
117
|
+
properties:
|
|
118
|
+
title: Plain note
|
|
119
|
+
placeholder: Bold/italic/lists only.
|
|
120
|
+
image:
|
|
121
|
+
disabled: true
|
|
122
|
+
table:
|
|
123
|
+
disabled: true
|
|
124
|
+
highlight:
|
|
125
|
+
disabled: true
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```yaml
|
|
129
|
+
- id: tiptap_starterkit
|
|
130
|
+
type: TiptapInput
|
|
131
|
+
properties:
|
|
132
|
+
title: Short-form
|
|
133
|
+
placeholder: No code block or blockquote.
|
|
134
|
+
starterKit:
|
|
135
|
+
codeBlock: false
|
|
136
|
+
blockquote: false
|
|
137
|
+
horizontalRule: false
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
- id: tiptap_with_table
|
|
142
|
+
type: TiptapInput
|
|
143
|
+
events:
|
|
144
|
+
onMount:
|
|
145
|
+
- id: tiptap_with_table_set
|
|
146
|
+
type: SetState
|
|
147
|
+
params:
|
|
148
|
+
tiptap_with_table:
|
|
149
|
+
html: |
|
|
150
|
+
<h3>Weekly sync</h3> <p>Schedule for today's meeting:</p> <table>
|
|
151
|
+
<thead>
|
|
152
|
+
<tr><th>Time</th><th>Topic</th><th>Owner</th></tr>
|
|
153
|
+
</thead>
|
|
154
|
+
<tbody>
|
|
155
|
+
<tr><td>09:00</td><td>Kickoff</td><td>Alice</td></tr>
|
|
156
|
+
<tr><td>09:15</td><td>Review last week</td><td>Bob</td></tr>
|
|
157
|
+
<tr><td>09:45</td><td>This week's plan</td><td>Carol</td></tr>
|
|
158
|
+
<tr><td>10:00</td><td>Wrap-up</td><td>Alice</td></tr>
|
|
159
|
+
</tbody>
|
|
160
|
+
</table> <p>Notes:</p> <ul>
|
|
161
|
+
<li>Bring the latest metrics</li>
|
|
162
|
+
<li>Send follow-ups within 24h</li>
|
|
163
|
+
</ul>
|
|
164
|
+
properties:
|
|
165
|
+
title: Agenda
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
- id: tiptap_links
|
|
170
|
+
type: TiptapInput
|
|
171
|
+
events:
|
|
172
|
+
onMount:
|
|
173
|
+
- id: tiptap_links_set
|
|
174
|
+
type: SetState
|
|
175
|
+
params:
|
|
176
|
+
tiptap_links:
|
|
177
|
+
html: <p>Visit <a href="https://lowdefy.com">lowdefy.com</a> or type a URL and
|
|
178
|
+
press space.</p>
|
|
179
|
+
properties:
|
|
180
|
+
title: Open links in place
|
|
181
|
+
link:
|
|
182
|
+
openOnClick: false
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
| Property | Type | Default | Description |
|
|
186
|
+
| --- | --- | --- | --- |
|
|
187
|
+
| `allowedMimeTypes` | array | - | Mime-types accepted by the drag/drop and paste file handler. Defaults to common image types (jpeg, png, gif, webp). Only used when uploadPolicyRequestId is set. |
|
|
188
|
+
| `autoSize` | boolean \| object | - | Either a boolean (true to auto-grow without a cap) or an object with minRows/maxRows. Ignored when `rows` is set. |
|
|
189
|
+
| `autoSize.minRows` | integer | - | Minimum visible rows before content overflows. |
|
|
190
|
+
| `autoSize.maxRows` | integer | - | Maximum visible rows; beyond this the editor scrolls vertically. |
|
|
191
|
+
| `bordered` | boolean | `true` | Whether the editor renders with a border. |
|
|
192
|
+
| `disabled` | boolean | `false` | Render the editor as read-only. |
|
|
193
|
+
| `highlight` | object | - | Text highlight extension settings. |
|
|
194
|
+
| `highlight.disabled` | boolean | `false` | Disable the Highlight extension and its bubble-menu color swatches. |
|
|
195
|
+
| `highlight.multicolor` | boolean | `true` | Allow highlights to carry a color value. Disable for single-color. |
|
|
196
|
+
| `image` | object | - | Image extension settings. |
|
|
197
|
+
| `image.disabled` | boolean | `false` | Disable the Image extension. |
|
|
198
|
+
| `image.maxWidth` | string | `"80%"` | Inline CSS max-width applied to inserted images. |
|
|
199
|
+
| `image.zoom` | number | `0.5` | Inline CSS zoom factor applied to inserted images. |
|
|
200
|
+
| `inputStyle` | object | - | Inline style applied to the editable area of the editor. |
|
|
201
|
+
| `label` | object | - | Label configuration forwarded to the Lowdefy Label block. |
|
|
202
|
+
| `link` | object | - | Link extension settings. |
|
|
203
|
+
| `link.disabled` | boolean | `false` | Disable the Link extension. |
|
|
204
|
+
| `link.autolink` | boolean | `true` | Auto-convert URLs typed in the editor to links. |
|
|
205
|
+
| `link.linkOnPaste` | boolean | `true` | Convert pasted URLs to links. |
|
|
206
|
+
| `link.openOnClick` | boolean | `true` | Open links in a new tab when clicked in view mode. |
|
|
207
|
+
| `link.defaultProtocol` | string | `"https"` | Protocol prefixed to URLs that omit one (e.g. "https"). |
|
|
208
|
+
| `placeholder` | string | - | Placeholder shown when the editor is empty. |
|
|
209
|
+
| `rows` | integer | - | Fix the editor height to exactly this many rows. Takes precedence over autoSize. |
|
|
210
|
+
| `downloadPolicyRequestId` | string | - | Id of a download request (e.g. AwsS3PresignedGetObject) used to resolve the inserted image URL after upload. Inline images persist in saved content, so the request should set public: true (and the upload request the provider public-read acl) to return a stable, non-expiring URL. When unset, a legacy unsigned object URL is constructed from the upload response (S3-shaped, deprecated). |
|
|
211
|
+
| `s3PostPolicyRequestId` | string | - | Deprecated — use uploadPolicyRequestId instead. |
|
|
212
|
+
| `uploadPolicyRequestId` | string | - | Id of an upload-policy request (e.g. AwsS3PresignedPostPolicy, GcsSignedPostPolicy, AzureBlobUploadSas). When set, images dragged or pasted into the editor are uploaded via that request and inserted as nodes. Leave unset to disable image uploads. |
|
|
213
|
+
| `size` | string | - | Label size forwarded to the Label block. Enum: `small`, `middle`, `large`. |
|
|
214
|
+
| `starterKit` | object | - | Options forwarded to TipTap StarterKit (https://tiptap.dev/docs/editor/extensions/functionality/starterkit). Use this to disable bundled extensions (e.g. {heading: false, codeBlock: false}). |
|
|
215
|
+
| `table` | object | - | Table extension settings. |
|
|
216
|
+
| `table.disabled` | boolean | `false` | Disable the Table extension and its row/header/cell nodes. |
|
|
217
|
+
| `table.resizable` | boolean | `true` | Allow column resizing with a drag handle. |
|
|
218
|
+
| `title` | string | - | Label title shown above the editor. |
|
|
219
|
+
|
|
220
|
+
| Event | Event Data | Description |
|
|
221
|
+
| --- | --- | --- |
|
|
222
|
+
| `onChange` | \- | Trigger action when the editor content is changed. |
|
|
223
|
+
|
|
224
|
+
No CSS keys defined.
|
|
225
|
+
|
|
226
|
+
No slots defined.
|
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
# TiptapMentionInput
|
|
2
|
+
|
|
3
|
+
Rich-text editor with @-mention support. Same feature set as TiptapInput, plus a mention dropdown populated from a static options list or a request. Mention options can be marked as groups (roles, teams, queues) to render under their own menu section, as distinctly coloured chips, and with a hover popover listing the group's current members. See the guide below.
|
|
4
|
+
|
|
5
|
+
## Group mentions
|
|
6
|
+
|
|
7
|
+
Beyond the flat mention list, `TiptapMentionInput` can treat some mention options as **groups** — an app-defined kind such as a role, a team, a queue, or a saved segment. A group mention:
|
|
8
|
+
|
|
9
|
+
- sits under its own heading in the suggestion menu (`tag.section`),
|
|
10
|
+
- renders as a distinctly coloured chip (`tag.color`), and
|
|
11
|
+
- shows the group's current members in a hover popover in the live editor (`mentions.groupMembers`).
|
|
12
|
+
|
|
13
|
+
The block hardcodes no group. Your app decides which groups exist, what they are called, how they are coloured, and who belongs to them — the block only reflects that data onto the chip and the menu.
|
|
14
|
+
|
|
15
|
+
### Presentation lives on `tag`, storage lives on `value`
|
|
16
|
+
|
|
17
|
+
Each mention option is an object of the form `{ label, value, tag }`:
|
|
18
|
+
|
|
19
|
+
- `label` — the text matched against what the author types (unchanged).
|
|
20
|
+
- `value` — the **opaque payload** stored on the mention node and emitted in the block's `mentions` value. Its shape is entirely yours; the block never reads it for presentation.
|
|
21
|
+
- `tag` — the presentation fields the block reads to render the chip and menu.
|
|
22
|
+
|
|
23
|
+
All group behaviour is driven from `tag`, never from `value`. This keeps `value` free to hold whatever your app needs to expand the mention later (a role slug, a queue id, a segment query), while the block stays a pure presentation layer.
|
|
24
|
+
|
|
25
|
+
The `tag` fields are not listed in the properties table above, because `options` has no per-item schema. They are:
|
|
26
|
+
|
|
27
|
+
| Field | Purpose |
|
|
28
|
+
| ------------- | ------------------------------------------------------------------------------------------------------------------- |
|
|
29
|
+
| `tag.title` | Chip text — `@Finance` renders from `tag.title: Finance`. Falls back to `label`. |
|
|
30
|
+
| `tag.section` | Menu heading this option sits under. Options without a section render flat, with no heading. |
|
|
31
|
+
| `tag.group` | Marks this option a **group** chip. An opaque, app-defined string — it becomes the chip class, the `data-mention-group` attribute, and the hover lookup key. |
|
|
32
|
+
| `tag.color` | Chip colour for this option (any CSS colour). Inlined on the chip, so it travels with the saved HTML. |
|
|
33
|
+
|
|
34
|
+
An individual-person option simply omits `section`, `group`, and `color`, and renders exactly as before.
|
|
35
|
+
|
|
36
|
+
Sections and groups are **orthogonal**: a section is a menu heading, a group is a chip identity. You may put several group options under one "Roles" section, give each group its own section, or use sections purely to group people with no group chips at all.
|
|
37
|
+
|
|
38
|
+
### `mentions.limit`
|
|
39
|
+
|
|
40
|
+
`limit` (integer, default `5`) caps how many suggestions the menu shows. When at least one visible option declares a `tag.section`, the cap is applied **per section**, so a large "People" section can't crowd every "Roles" option out of the list. When no option declares a section, the same limit caps the flat list, matching the pre-group behaviour.
|
|
41
|
+
|
|
42
|
+
### Group chip colour
|
|
43
|
+
|
|
44
|
+
A group chip's colour comes from `tag.color` on the option — any CSS colour string:
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
options:
|
|
48
|
+
- label: Finance
|
|
49
|
+
value: { role: finance-admin }
|
|
50
|
+
tag: { section: Roles, group: finance, color: '#722ed1' }
|
|
51
|
+
- label: Developers
|
|
52
|
+
value: { role: developer }
|
|
53
|
+
tag: { section: Roles, group: devs, color: '#13c2c2' }
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The colour is written as an inline `style` on the chip, so it travels with the saved HTML — a group chip looks right anywhere the stored content is rendered, with no per-app stylesheet. Because `tag.color` rides on the selected option, it is always current even when options load from a request. If you prefer to control colour from CSS instead, omit `tag.color` and target `.tiptap-mention-group[data-mention-group="finance"]` in your own stylesheet.
|
|
57
|
+
|
|
58
|
+
### `mentions.groupMembers` — may be async
|
|
59
|
+
|
|
60
|
+
`groupMembers` is a `{ '<group>': [{ name, email }] }` map. Hovering a group chip in the **live editor** shows a popover listing that group's current members:
|
|
61
|
+
|
|
62
|
+
```yaml
|
|
63
|
+
mentions:
|
|
64
|
+
groupMembers:
|
|
65
|
+
finance:
|
|
66
|
+
- { name: Jane Doe, email: jane@example.com }
|
|
67
|
+
devs:
|
|
68
|
+
- { name: Ada Lovelace, email: ada@example.com }
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`groupMembers` **may be loaded from a request** — it is read live, at hover time, so it does not need to be present when the block mounts. (This is the one piece of group data read on each hover rather than captured up front.)
|
|
72
|
+
|
|
73
|
+
Hover is scoped to the live editor only. If the group has no entry in `groupMembers`, no popover shows.
|
|
74
|
+
|
|
75
|
+
### `getHref` — nullish renders a `<span>`
|
|
76
|
+
|
|
77
|
+
`getHref` is an optional `_function` that receives the selected option and returns an href. Its **return value** decides the element:
|
|
78
|
+
|
|
79
|
+
- a non-nullish return renders the mention as an `<a>`;
|
|
80
|
+
- a nullish return (`null`/`undefined`) renders a plain `<span>`.
|
|
81
|
+
|
|
82
|
+
Return `null` for group options — a group has no profile page — and a URL for people.
|
|
83
|
+
|
|
84
|
+
> Return `null` or `undefined`, **not** an empty string. `''` is not nullish, so `getHref` returning `''` still renders `<a href="">`.
|
|
85
|
+
|
|
86
|
+
### Emitted chip markup
|
|
87
|
+
|
|
88
|
+
A group chip renders as:
|
|
89
|
+
|
|
90
|
+
```html
|
|
91
|
+
<span class="tiptap-mention tiptap-mention-group" data-mention-group="finance" style="color: #722ed1">@Finance</span>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
(or an `<a>` with the same classes and attributes when `getHref` returns a link). The colour is inlined via `style`, and the group key is exposed as `data-mention-group`. An app that renders saved comment HTML elsewhere — a comment timeline, a notification email — can style these chips or attach its own hover behaviour by targeting the `data-mention-group` attribute. The block's own hover popover is live-editor-only, so any hover on saved content is the app's to build against the same attribute.
|
|
95
|
+
|
|
96
|
+
### Worked example
|
|
97
|
+
|
|
98
|
+
A mixed `options` array — people alongside group options carrying `tag.section`, `tag.group`, and `tag.color` — a `groupMembers` map, and a `getHref` that returns a link for people and nothing for groups:
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
- id: comment
|
|
102
|
+
type: TiptapMentionInput
|
|
103
|
+
properties:
|
|
104
|
+
mentions:
|
|
105
|
+
char: '@'
|
|
106
|
+
limit: 8 # per-section result cap
|
|
107
|
+
# people carry value.href → <a>; groups omit it → nullish → <span>
|
|
108
|
+
getHref:
|
|
109
|
+
_function:
|
|
110
|
+
__args: 0.value.href
|
|
111
|
+
options:
|
|
112
|
+
- label: Jane Doe # person — no tag.group, links to a profile
|
|
113
|
+
value:
|
|
114
|
+
contact_id: c_001
|
|
115
|
+
href: '/contacts?_id=c_001'
|
|
116
|
+
tag:
|
|
117
|
+
section: People
|
|
118
|
+
- label: Ada Lovelace
|
|
119
|
+
value:
|
|
120
|
+
contact_id: c_002
|
|
121
|
+
href: '/contacts?_id=c_002'
|
|
122
|
+
tag:
|
|
123
|
+
section: People
|
|
124
|
+
- label: Finance # group — no href, coloured chip, hover members
|
|
125
|
+
value:
|
|
126
|
+
type: role
|
|
127
|
+
role: finance-admin
|
|
128
|
+
tag:
|
|
129
|
+
section: Roles
|
|
130
|
+
group: finance
|
|
131
|
+
color: '#722ed1'
|
|
132
|
+
- label: Developers
|
|
133
|
+
value:
|
|
134
|
+
type: role
|
|
135
|
+
role: developers
|
|
136
|
+
tag:
|
|
137
|
+
section: Roles
|
|
138
|
+
group: devs
|
|
139
|
+
color: '#13c2c2'
|
|
140
|
+
groupMembers: # shown on chip hover in the live editor; may come from a request
|
|
141
|
+
finance:
|
|
142
|
+
- { name: Jane Doe, email: jane@example.com }
|
|
143
|
+
devs:
|
|
144
|
+
- { name: Ada Lovelace, email: ada@example.com }
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
`options` and `groupMembers` are typically populated from requests (`_request: mention_options`, `_request: group_members`). How that data is built, and how the stored `value` is later expanded to notification recipients, are entirely app-side — the block only records the mention. If a group's colour is itself dynamic, it rides safely on `tag.color` because that value is stored on the selected option.
|
|
148
|
+
|
|
149
|
+
```yaml
|
|
150
|
+
- id: tiptap_mention_default
|
|
151
|
+
type: TiptapMentionInput
|
|
152
|
+
properties:
|
|
153
|
+
title: Ticket note
|
|
154
|
+
placeholder: Type @ to mention someone.
|
|
155
|
+
mentions:
|
|
156
|
+
options:
|
|
157
|
+
- label: Alice
|
|
158
|
+
value:
|
|
159
|
+
_id: user_1
|
|
160
|
+
name: Alice
|
|
161
|
+
- label: Bob
|
|
162
|
+
value:
|
|
163
|
+
_id: user_2
|
|
164
|
+
name: Bob
|
|
165
|
+
- label: Carol
|
|
166
|
+
value:
|
|
167
|
+
_id: user_3
|
|
168
|
+
name: Carol
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
```yaml
|
|
172
|
+
- id: tiptap_mention_prepopulated
|
|
173
|
+
type: TiptapMentionInput
|
|
174
|
+
events:
|
|
175
|
+
onMount:
|
|
176
|
+
- id: tiptap_mention_prepopulated_set
|
|
177
|
+
type: SetState
|
|
178
|
+
params:
|
|
179
|
+
tiptap_mention_prepopulated:
|
|
180
|
+
html: >
|
|
181
|
+
<p>Thanks <span class="tiptap-mention">@Alice</span> for the
|
|
182
|
+
review. Assigning follow-up to <span
|
|
183
|
+
class="tiptap-mention">@Bob</span>.</p>
|
|
184
|
+
properties:
|
|
185
|
+
title: Ticket summary
|
|
186
|
+
mentions:
|
|
187
|
+
options:
|
|
188
|
+
- label: Alice
|
|
189
|
+
value:
|
|
190
|
+
_id: user_1
|
|
191
|
+
- label: Bob
|
|
192
|
+
value:
|
|
193
|
+
_id: user_2
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```yaml
|
|
197
|
+
- id: tiptap_mention_hashtags
|
|
198
|
+
type: TiptapMentionInput
|
|
199
|
+
properties:
|
|
200
|
+
title: Tag the ticket
|
|
201
|
+
placeholder: "Type # to add a tag."
|
|
202
|
+
mentions:
|
|
203
|
+
char: "#"
|
|
204
|
+
allowSpaces: false
|
|
205
|
+
options:
|
|
206
|
+
- label: bug
|
|
207
|
+
value:
|
|
208
|
+
_id: tag_bug
|
|
209
|
+
- label: feature
|
|
210
|
+
value:
|
|
211
|
+
_id: tag_feature
|
|
212
|
+
- label: needs-triage
|
|
213
|
+
value:
|
|
214
|
+
_id: tag_triage
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
```yaml
|
|
218
|
+
- id: tiptap_mention_links
|
|
219
|
+
type: TiptapMentionInput
|
|
220
|
+
properties:
|
|
221
|
+
title: Link mentions to profile pages
|
|
222
|
+
placeholder: Type @ — selections render as <a>.
|
|
223
|
+
mentions:
|
|
224
|
+
options:
|
|
225
|
+
- label: Alice
|
|
226
|
+
value:
|
|
227
|
+
_id: user_1
|
|
228
|
+
- label: Bob
|
|
229
|
+
value:
|
|
230
|
+
_id: user_2
|
|
231
|
+
getHref:
|
|
232
|
+
_function:
|
|
233
|
+
__string.concat:
|
|
234
|
+
- /users/
|
|
235
|
+
- __args: 0.value._id
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
- id: tiptap_mention_autosize
|
|
240
|
+
type: TiptapMentionInput
|
|
241
|
+
properties:
|
|
242
|
+
title: Grows between 2 and 5 rows
|
|
243
|
+
placeholder: Type @ to mention. Scrolls past 5 rows.
|
|
244
|
+
autoSize:
|
|
245
|
+
minRows: 2
|
|
246
|
+
maxRows: 5
|
|
247
|
+
mentions:
|
|
248
|
+
options:
|
|
249
|
+
- label: Alice
|
|
250
|
+
value:
|
|
251
|
+
_id: user_1
|
|
252
|
+
- label: Bob
|
|
253
|
+
value:
|
|
254
|
+
_id: user_2
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
```yaml
|
|
258
|
+
- id: tiptap_mention_validation
|
|
259
|
+
type: TiptapMentionInput
|
|
260
|
+
required: true
|
|
261
|
+
properties:
|
|
262
|
+
title: Mention a teammate (required)
|
|
263
|
+
placeholder: Type @ and pick someone, then click Validate.
|
|
264
|
+
rows: 3
|
|
265
|
+
mentions:
|
|
266
|
+
options:
|
|
267
|
+
- label: Alice
|
|
268
|
+
value:
|
|
269
|
+
_id: user_1
|
|
270
|
+
- label: Bob
|
|
271
|
+
value:
|
|
272
|
+
_id: user_2
|
|
273
|
+
validate:
|
|
274
|
+
- status: error
|
|
275
|
+
message: Please mention at least one teammate.
|
|
276
|
+
pass:
|
|
277
|
+
_gt:
|
|
278
|
+
- _string.length:
|
|
279
|
+
_state: tiptap_mention_validation.text
|
|
280
|
+
- 0
|
|
281
|
+
- id: tiptap_mention_validation_button
|
|
282
|
+
type: Button
|
|
283
|
+
properties:
|
|
284
|
+
title: Validate
|
|
285
|
+
events:
|
|
286
|
+
onClick:
|
|
287
|
+
- id: tiptap_mention_validation_run
|
|
288
|
+
type: Validate
|
|
289
|
+
params:
|
|
290
|
+
- tiptap_mention_validation
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
```yaml
|
|
294
|
+
- id: tiptap_mention_disabled
|
|
295
|
+
type: TiptapMentionInput
|
|
296
|
+
events:
|
|
297
|
+
onMount:
|
|
298
|
+
- id: tiptap_mention_disabled_set
|
|
299
|
+
type: SetState
|
|
300
|
+
params:
|
|
301
|
+
tiptap_mention_disabled:
|
|
302
|
+
html: '<p>Mentions render inline: <span
|
|
303
|
+
class="tiptap-mention">@Alice</span>.</p>'
|
|
304
|
+
properties:
|
|
305
|
+
title: Read only
|
|
306
|
+
disabled: true
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
```yaml
|
|
310
|
+
- id: tiptap_mention_sectioned
|
|
311
|
+
type: TiptapMentionInput
|
|
312
|
+
properties:
|
|
313
|
+
title: Mention people or roles
|
|
314
|
+
placeholder: Type @ — options are grouped, each section capped at 3.
|
|
315
|
+
mentions:
|
|
316
|
+
limit: 3
|
|
317
|
+
options:
|
|
318
|
+
- label: Alice
|
|
319
|
+
value:
|
|
320
|
+
_id: user_1
|
|
321
|
+
tag:
|
|
322
|
+
section: People
|
|
323
|
+
- label: Bob
|
|
324
|
+
value:
|
|
325
|
+
_id: user_2
|
|
326
|
+
tag:
|
|
327
|
+
section: People
|
|
328
|
+
- label: Carol
|
|
329
|
+
value:
|
|
330
|
+
_id: user_3
|
|
331
|
+
tag:
|
|
332
|
+
section: People
|
|
333
|
+
- label: Dave
|
|
334
|
+
value:
|
|
335
|
+
_id: user_4
|
|
336
|
+
tag:
|
|
337
|
+
section: People
|
|
338
|
+
- label: Finance
|
|
339
|
+
value:
|
|
340
|
+
_id: role_finance
|
|
341
|
+
tag:
|
|
342
|
+
section: Roles
|
|
343
|
+
- label: Developers
|
|
344
|
+
value:
|
|
345
|
+
_id: role_devs
|
|
346
|
+
tag:
|
|
347
|
+
section: Roles
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
```yaml
|
|
351
|
+
- id: tiptap_mention_groups
|
|
352
|
+
type: TiptapMentionInput
|
|
353
|
+
properties:
|
|
354
|
+
title: Mention people or groups
|
|
355
|
+
placeholder: Type @ — groups render as coloured chips, people as links.
|
|
356
|
+
mentions:
|
|
357
|
+
groupMembers:
|
|
358
|
+
finance:
|
|
359
|
+
- name: Jane Doe
|
|
360
|
+
email: jane@example.com
|
|
361
|
+
- name: John Smith
|
|
362
|
+
email: john@example.com
|
|
363
|
+
devs:
|
|
364
|
+
- name: Ada Lovelace
|
|
365
|
+
email: ada@example.com
|
|
366
|
+
- name: Alan Turing
|
|
367
|
+
email: alan@example.com
|
|
368
|
+
getHref:
|
|
369
|
+
_function:
|
|
370
|
+
__args: 0.value.href
|
|
371
|
+
options:
|
|
372
|
+
- label: Alice
|
|
373
|
+
value:
|
|
374
|
+
name: Alice
|
|
375
|
+
href: /contacts?_id=user_1
|
|
376
|
+
tag:
|
|
377
|
+
section: People
|
|
378
|
+
- label: Bob
|
|
379
|
+
value:
|
|
380
|
+
name: Bob
|
|
381
|
+
href: /contacts?_id=user_2
|
|
382
|
+
tag:
|
|
383
|
+
section: People
|
|
384
|
+
- label: Finance
|
|
385
|
+
value:
|
|
386
|
+
role: finance-admin
|
|
387
|
+
tag:
|
|
388
|
+
section: Roles
|
|
389
|
+
group: finance
|
|
390
|
+
color: "#722ed1"
|
|
391
|
+
- label: Developers
|
|
392
|
+
value:
|
|
393
|
+
role: developer
|
|
394
|
+
tag:
|
|
395
|
+
section: Roles
|
|
396
|
+
group: devs
|
|
397
|
+
color: "#13c2c2"
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
```yaml
|
|
401
|
+
- id: tiptap_mention_minimal
|
|
402
|
+
type: TiptapMentionInput
|
|
403
|
+
properties:
|
|
404
|
+
title: Chat-style
|
|
405
|
+
placeholder: Type @ to mention.
|
|
406
|
+
image:
|
|
407
|
+
disabled: true
|
|
408
|
+
table:
|
|
409
|
+
disabled: true
|
|
410
|
+
highlight:
|
|
411
|
+
disabled: true
|
|
412
|
+
mentions:
|
|
413
|
+
options:
|
|
414
|
+
- label: Alice
|
|
415
|
+
value:
|
|
416
|
+
_id: user_1
|
|
417
|
+
- label: Bob
|
|
418
|
+
value:
|
|
419
|
+
_id: user_2
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
| Property | Type | Default | Description |
|
|
423
|
+
| --- | --- | --- | --- |
|
|
424
|
+
| `allowedMimeTypes` | array | - | Mime-types accepted by the drag/drop and paste file handler. Defaults to common image types. Only used when uploadPolicyRequestId is set. |
|
|
425
|
+
| `autoSize` | boolean \| object | - | Either a boolean (true to auto-grow without a cap) or an object with minRows/maxRows. Ignored when `rows` is set. |
|
|
426
|
+
| `autoSize.minRows` | integer | - | |
|
|
427
|
+
| `autoSize.maxRows` | integer | - | |
|
|
428
|
+
| `bordered` | boolean | `true` | Whether the editor renders with a border. |
|
|
429
|
+
| `disabled` | boolean | `false` | Render the editor as read-only. |
|
|
430
|
+
| `highlight` | object | - | Text highlight extension settings. |
|
|
431
|
+
| `highlight.disabled` | boolean | `false` | |
|
|
432
|
+
| `highlight.multicolor` | boolean | `true` | |
|
|
433
|
+
| `image` | object | - | Image extension settings. |
|
|
434
|
+
| `image.disabled` | boolean | `false` | |
|
|
435
|
+
| `image.maxWidth` | string | `"80%"` | |
|
|
436
|
+
| `image.zoom` | number | `0.6` | |
|
|
437
|
+
| `inputStyle` | object | - | Inline style applied to the editable area of the editor. |
|
|
438
|
+
| `label` | object | - | Label configuration forwarded to the Lowdefy Label block. |
|
|
439
|
+
| `link` | object | - | Link extension settings. |
|
|
440
|
+
| `link.disabled` | boolean | `false` | |
|
|
441
|
+
| `link.autolink` | boolean | `true` | |
|
|
442
|
+
| `link.linkOnPaste` | boolean | `true` | |
|
|
443
|
+
| `link.openOnClick` | boolean | `true` | |
|
|
444
|
+
| `link.defaultProtocol` | string | `"https"` | |
|
|
445
|
+
| `mentions` | object | - | Configure the set of mention targets and how they render. |
|
|
446
|
+
| `mentions.char` | string | `"@"` | Trigger character that opens the mention dropdown. Change to "#" for hashtags, etc. |
|
|
447
|
+
| `mentions.allowSpaces` | boolean | `true` | Allow spaces inside a mention query before it is committed. |
|
|
448
|
+
| `mentions.options` | array | - | Array of mention items. Each item may be a string, or an object with a "label" (matched against user input) and a "value" (stored on the node). |
|
|
449
|
+
| `mentions.getHref` | object | - | Optional _function that receives the selected mention option and returns an href. A non-nullish return renders the mention as an ; a nullish return renders a plain (use this for options with no link, e.g. group mentions). |
|
|
450
|
+
| `mentions.limit` | integer | `5` | Maximum suggestions shown — per section when options declare sections, otherwise across the flat list. |
|
|
451
|
+
| `mentions.groupMembers` | object | - | Map of group key → array of { name, email } shown in a hover popover on that group's chips (live editor only). |
|
|
452
|
+
| `mentionsRequestId` | string | - | Id of a request used to populate mention options. When set, the block registers a __getTipTapMentions event that calls that request. |
|
|
453
|
+
| `placeholder` | string | - | Placeholder shown when the editor is empty. |
|
|
454
|
+
| `rows` | integer | - | Fix the editor height to exactly this many rows. Takes precedence over autoSize. |
|
|
455
|
+
| `downloadPolicyRequestId` | string | - | Id of a download request (e.g. AwsS3PresignedGetObject) used to resolve the inserted image URL after upload. Inline images persist in saved content, so the request should set public: true (and the upload request the provider public-read acl) to return a stable, non-expiring URL. When unset, a legacy unsigned object URL is constructed from the upload response (S3-shaped, deprecated). |
|
|
456
|
+
| `s3PostPolicyRequestId` | string | - | Deprecated — use uploadPolicyRequestId instead. |
|
|
457
|
+
| `uploadPolicyRequestId` | string | - | Id of an upload-policy request (e.g. AwsS3PresignedPostPolicy, GcsSignedPostPolicy, AzureBlobUploadSas). When set, images dragged or pasted into the editor are uploaded via that request. |
|
|
458
|
+
| `size` | string | - | Label size forwarded to the Label block. Enum: `small`, `middle`, `large`. |
|
|
459
|
+
| `starterKit` | object | - | Options forwarded to TipTap StarterKit. Use to disable bundled extensions (e.g. {heading: false}). |
|
|
460
|
+
| `table` | object | - | Table extension settings. |
|
|
461
|
+
| `table.disabled` | boolean | `false` | |
|
|
462
|
+
| `table.resizable` | boolean | `true` | |
|
|
463
|
+
| `title` | string | - | Label title shown above the editor. |
|
|
464
|
+
|
|
465
|
+
| Event | Event Data | Description |
|
|
466
|
+
| --- | --- | --- |
|
|
467
|
+
| `onChange` | \- | Trigger action when the editor content is changed. |
|
|
468
|
+
|
|
469
|
+
No CSS keys defined.
|
|
470
|
+
|
|
471
|
+
No slots defined.
|