@teleporthq/teleport-shared 0.43.71 → 0.43.75

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 (114) hide show
  1. package/__tests__/_fixtures/rich-text/README.md +6 -0
  2. package/__tests__/_fixtures/rich-text/help-accept-an-invitation.html +50 -0
  3. package/__tests__/_fixtures/rich-text/help-activate-an-appsumo-license.html +44 -0
  4. package/__tests__/_fixtures/rich-text/help-add-custom-code-to-your-site.html +61 -0
  5. package/__tests__/_fixtures/rich-text/help-connect-a-custom-domain.html +106 -0
  6. package/__tests__/_fixtures/rich-text/help-custom-animations-with-code.html +69 -0
  7. package/__tests__/_fixtures/rich-text/help-generate-a-store.html +78 -0
  8. package/__tests__/_fixtures/rich-text/help-keyboard-shortcuts.html +417 -0
  9. package/__tests__/_fixtures/rich-text/help-prompting-tips.html +82 -0
  10. package/__tests__/_fixtures/rich-text/help-sitemap-robots-and-llms-txt.html +82 -0
  11. package/__tests__/_fixtures/rich-text/help-use-a-csv-file-or-static-data.html +61 -0
  12. package/__tests__/_helpers/rich-text-content-runtime-emitter.ts +117 -0
  13. package/__tests__/function-sources.ts +30 -0
  14. package/__tests__/utils/content-tables.ts +69 -0
  15. package/__tests__/utils/rich-text-content-runtime-module.ts +115 -0
  16. package/__tests__/utils/rich-text-content.ts +131 -0
  17. package/dist/cjs/index.d.ts +4 -1
  18. package/dist/cjs/index.d.ts.map +1 -1
  19. package/dist/cjs/index.js +7 -1
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/page-transition/index.d.ts +1 -0
  22. package/dist/cjs/page-transition/index.d.ts.map +1 -1
  23. package/dist/cjs/page-transition/index.js +1 -0
  24. package/dist/cjs/page-transition/index.js.map +1 -1
  25. package/dist/cjs/page-transition/variant-sources.generated.d.ts +7 -0
  26. package/dist/cjs/page-transition/variant-sources.generated.d.ts.map +1 -0
  27. package/dist/cjs/page-transition/variant-sources.generated.js +14 -0
  28. package/dist/cjs/page-transition/variant-sources.generated.js.map +1 -0
  29. package/dist/cjs/scroll-scene/engine-source.d.ts.map +1 -1
  30. package/dist/cjs/scroll-scene/engine-source.js +2 -5
  31. package/dist/cjs/scroll-scene/engine-source.js.map +1 -1
  32. package/dist/cjs/scroll-scene/helper-sources.generated.d.ts +9 -0
  33. package/dist/cjs/scroll-scene/helper-sources.generated.d.ts.map +1 -0
  34. package/dist/cjs/scroll-scene/helper-sources.generated.js +16 -0
  35. package/dist/cjs/scroll-scene/helper-sources.generated.js.map +1 -0
  36. package/dist/cjs/scroll-scene/index.d.ts +1 -0
  37. package/dist/cjs/scroll-scene/index.d.ts.map +1 -1
  38. package/dist/cjs/scroll-scene/index.js +3 -1
  39. package/dist/cjs/scroll-scene/index.js.map +1 -1
  40. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  41. package/dist/cjs/utils/content-tables.d.ts +78 -0
  42. package/dist/cjs/utils/content-tables.d.ts.map +1 -0
  43. package/dist/cjs/utils/content-tables.js +123 -0
  44. package/dist/cjs/utils/content-tables.js.map +1 -0
  45. package/dist/cjs/utils/rich-text-content-codegen.d.ts +20 -0
  46. package/dist/cjs/utils/rich-text-content-codegen.d.ts.map +1 -0
  47. package/dist/cjs/utils/rich-text-content-codegen.js +55 -0
  48. package/dist/cjs/utils/rich-text-content-codegen.js.map +1 -0
  49. package/dist/cjs/utils/rich-text-content-runtime-source.d.ts +2 -0
  50. package/dist/cjs/utils/rich-text-content-runtime-source.d.ts.map +1 -0
  51. package/dist/cjs/utils/rich-text-content-runtime-source.js +591 -0
  52. package/dist/cjs/utils/rich-text-content-runtime-source.js.map +1 -0
  53. package/dist/cjs/utils/rich-text-content.d.ts +150 -0
  54. package/dist/cjs/utils/rich-text-content.d.ts.map +1 -0
  55. package/dist/cjs/utils/rich-text-content.js +649 -0
  56. package/dist/cjs/utils/rich-text-content.js.map +1 -0
  57. package/dist/cjs/utils/table-access.d.ts.map +1 -1
  58. package/dist/cjs/utils/table-access.js +5 -7
  59. package/dist/cjs/utils/table-access.js.map +1 -1
  60. package/dist/esm/index.d.ts +4 -1
  61. package/dist/esm/index.d.ts.map +1 -1
  62. package/dist/esm/index.js +4 -1
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/page-transition/index.d.ts +1 -0
  65. package/dist/esm/page-transition/index.d.ts.map +1 -1
  66. package/dist/esm/page-transition/index.js +1 -0
  67. package/dist/esm/page-transition/index.js.map +1 -1
  68. package/dist/esm/page-transition/variant-sources.generated.d.ts +7 -0
  69. package/dist/esm/page-transition/variant-sources.generated.d.ts.map +1 -0
  70. package/dist/esm/page-transition/variant-sources.generated.js +11 -0
  71. package/dist/esm/page-transition/variant-sources.generated.js.map +1 -0
  72. package/dist/esm/scroll-scene/engine-source.d.ts.map +1 -1
  73. package/dist/esm/scroll-scene/engine-source.js +2 -5
  74. package/dist/esm/scroll-scene/engine-source.js.map +1 -1
  75. package/dist/esm/scroll-scene/helper-sources.generated.d.ts +9 -0
  76. package/dist/esm/scroll-scene/helper-sources.generated.d.ts.map +1 -0
  77. package/dist/esm/scroll-scene/helper-sources.generated.js +13 -0
  78. package/dist/esm/scroll-scene/helper-sources.generated.js.map +1 -0
  79. package/dist/esm/scroll-scene/index.d.ts +1 -0
  80. package/dist/esm/scroll-scene/index.d.ts.map +1 -1
  81. package/dist/esm/scroll-scene/index.js +1 -0
  82. package/dist/esm/scroll-scene/index.js.map +1 -1
  83. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  84. package/dist/esm/utils/content-tables.d.ts +78 -0
  85. package/dist/esm/utils/content-tables.d.ts.map +1 -0
  86. package/dist/esm/utils/content-tables.js +114 -0
  87. package/dist/esm/utils/content-tables.js.map +1 -0
  88. package/dist/esm/utils/rich-text-content-codegen.d.ts +20 -0
  89. package/dist/esm/utils/rich-text-content-codegen.d.ts.map +1 -0
  90. package/dist/esm/utils/rich-text-content-codegen.js +50 -0
  91. package/dist/esm/utils/rich-text-content-codegen.js.map +1 -0
  92. package/dist/esm/utils/rich-text-content-runtime-source.d.ts +2 -0
  93. package/dist/esm/utils/rich-text-content-runtime-source.d.ts.map +1 -0
  94. package/dist/esm/utils/rich-text-content-runtime-source.js +588 -0
  95. package/dist/esm/utils/rich-text-content-runtime-source.js.map +1 -0
  96. package/dist/esm/utils/rich-text-content.d.ts +150 -0
  97. package/dist/esm/utils/rich-text-content.d.ts.map +1 -0
  98. package/dist/esm/utils/rich-text-content.js +613 -0
  99. package/dist/esm/utils/rich-text-content.js.map +1 -0
  100. package/dist/esm/utils/table-access.d.ts.map +1 -1
  101. package/dist/esm/utils/table-access.js +5 -7
  102. package/dist/esm/utils/table-access.js.map +1 -1
  103. package/package.json +3 -3
  104. package/src/index.ts +6 -0
  105. package/src/page-transition/index.ts +1 -0
  106. package/src/page-transition/variant-sources.generated.ts +14 -0
  107. package/src/scroll-scene/engine-source.ts +7 -10
  108. package/src/scroll-scene/helper-sources.generated.ts +18 -0
  109. package/src/scroll-scene/index.ts +1 -0
  110. package/src/utils/content-tables.ts +151 -0
  111. package/src/utils/rich-text-content-codegen.ts +52 -0
  112. package/src/utils/rich-text-content-runtime-source.ts +587 -0
  113. package/src/utils/rich-text-content.ts +677 -0
  114. package/src/utils/table-access.ts +4 -2
@@ -0,0 +1,417 @@
1
+ <p>The TeleportHQ editor has keyboard shortcuts for editing, selecting, adding elements, zooming and opening panels. On Windows, use Ctrl and Alt; on a Mac, use Cmd (⌘) and Option (⌥). To see a shortcut sheet inside the editor, press Ctrl+Shift+/ (Cmd+Shift+/ on a Mac), or open <strong>Project Menu → Help → Keyboard Shortcuts</strong>.</p>
2
+ <h2>How TeleportHQ shortcuts work</h2>
3
+ <ul>
4
+ <li><strong>Focus matters.</strong> Most shortcuts work when the canvas or the layers tree is active. Click an empty part of the canvas first. While you're typing in a text element or a settings field, the keys type text instead.</li>
5
+ <li><strong>Mac and Windows.</strong> Every &quot;Ctrl&quot; shortcut below uses Cmd on a Mac, and every &quot;Alt&quot; uses Option.</li>
6
+ <li><strong>The in-app sheet.</strong> The keyboard icon at the bottom of the left sidebar also opens the <strong>Keyboard Shortcuts</strong> sheet, with tabs <strong>Control</strong>, <strong>View</strong>, <strong>Elements</strong> and <strong>Others</strong>. This article lists the shortcuts that work in the editor today, including some that aren't on the sheet.</li>
7
+ <li><strong>No save shortcut needed.</strong> TeleportHQ saves your work automatically, so Ctrl+S does nothing.</li>
8
+ </ul>
9
+ <h2>Editing</h2>
10
+ <table>
11
+ <thead>
12
+ <tr>
13
+ <th>Action</th>
14
+ <th>Windows</th>
15
+ <th>Mac</th>
16
+ </tr>
17
+ </thead>
18
+ <tbody>
19
+ <tr>
20
+ <td>Copy</td>
21
+ <td>Ctrl+C</td>
22
+ <td>⌘C</td>
23
+ </tr>
24
+ <tr>
25
+ <td>Cut</td>
26
+ <td>Ctrl+X</td>
27
+ <td>⌘X</td>
28
+ </tr>
29
+ <tr>
30
+ <td>Paste</td>
31
+ <td>Ctrl+V</td>
32
+ <td>⌘V</td>
33
+ </tr>
34
+ <tr>
35
+ <td>Paste style (copy the look of the copied element)</td>
36
+ <td>Ctrl+Alt+V</td>
37
+ <td>⌘⌥V</td>
38
+ </tr>
39
+ <tr>
40
+ <td>Duplicate</td>
41
+ <td>Ctrl+D</td>
42
+ <td>⌘D</td>
43
+ </tr>
44
+ <tr>
45
+ <td>Group selected elements into a container</td>
46
+ <td>Ctrl+G</td>
47
+ <td>⌘G</td>
48
+ </tr>
49
+ <tr>
50
+ <td>Ungroup</td>
51
+ <td>Ctrl+Shift+G</td>
52
+ <td>⌘⇧G</td>
53
+ </tr>
54
+ <tr>
55
+ <td>Delete</td>
56
+ <td>Delete or Backspace</td>
57
+ <td>⌫</td>
58
+ </tr>
59
+ <tr>
60
+ <td>Add or edit a link</td>
61
+ <td>Ctrl+K</td>
62
+ <td>⌘K</td>
63
+ </tr>
64
+ <tr>
65
+ <td>Start editing the selected element (for example, its text)</td>
66
+ <td>E</td>
67
+ <td>E</td>
68
+ </tr>
69
+ <tr>
70
+ <td>Move the element before or after its neighbor</td>
71
+ <td>Arrow keys</td>
72
+ <td>Arrow keys</td>
73
+ </tr>
74
+ </tbody>
75
+ </table>
76
+ <p>Arrow keys move the element left or right in a row, and up or down in a column. See <a href="copy-and-paste-elements.md">How to copy, paste and duplicate elements</a>.</p>
77
+ <h2>Text</h2>
78
+ <p>These work while you're editing text on the canvas:</p>
79
+ <table>
80
+ <thead>
81
+ <tr>
82
+ <th>Action</th>
83
+ <th>Windows</th>
84
+ <th>Mac</th>
85
+ </tr>
86
+ </thead>
87
+ <tbody>
88
+ <tr>
89
+ <td>Bold</td>
90
+ <td>Ctrl+B</td>
91
+ <td>⌘B</td>
92
+ </tr>
93
+ <tr>
94
+ <td>Italic</td>
95
+ <td>Ctrl+I</td>
96
+ <td>⌘I</td>
97
+ </tr>
98
+ <tr>
99
+ <td>Underline</td>
100
+ <td>Ctrl+U</td>
101
+ <td>⌘U</td>
102
+ </tr>
103
+ </tbody>
104
+ </table>
105
+ <h2>Selecting</h2>
106
+ <table>
107
+ <thead>
108
+ <tr>
109
+ <th>Action</th>
110
+ <th>Windows</th>
111
+ <th>Mac</th>
112
+ </tr>
113
+ </thead>
114
+ <tbody>
115
+ <tr>
116
+ <td>Select the parent element</td>
117
+ <td>Esc</td>
118
+ <td>Esc</td>
119
+ </tr>
120
+ <tr>
121
+ <td>Select the first element inside (or start editing)</td>
122
+ <td>Enter</td>
123
+ <td>Return</td>
124
+ </tr>
125
+ <tr>
126
+ <td>Select the next element at the same level</td>
127
+ <td>Tab</td>
128
+ <td>Tab</td>
129
+ </tr>
130
+ <tr>
131
+ <td>Select the previous element at the same level</td>
132
+ <td>Shift+Tab</td>
133
+ <td>⇧Tab</td>
134
+ </tr>
135
+ <tr>
136
+ <td>Select all elements at the same level</td>
137
+ <td>Ctrl+A</td>
138
+ <td>⌘A</td>
139
+ </tr>
140
+ <tr>
141
+ <td>Add or remove an element from the selection</td>
142
+ <td>Ctrl+click</td>
143
+ <td>⌘-click</td>
144
+ </tr>
145
+ <tr>
146
+ <td>Select a range of elements next to each other</td>
147
+ <td>Shift+click</td>
148
+ <td>⇧-click</td>
149
+ </tr>
150
+ <tr>
151
+ <td>Open the next page (or component)</td>
152
+ <td>Ctrl+↓</td>
153
+ <td>⌘↓</td>
154
+ </tr>
155
+ <tr>
156
+ <td>Open the previous page (or component)</td>
157
+ <td>Ctrl+↑</td>
158
+ <td>⌘↑</td>
159
+ </tr>
160
+ </tbody>
161
+ </table>
162
+ <p>Esc also cancels a drag in progress. See <a href="../elements/select-elements.md">How to select one or several elements</a>.</p>
163
+ <h2>History</h2>
164
+ <table>
165
+ <thead>
166
+ <tr>
167
+ <th>Action</th>
168
+ <th>Windows</th>
169
+ <th>Mac</th>
170
+ </tr>
171
+ </thead>
172
+ <tbody>
173
+ <tr>
174
+ <td>Undo</td>
175
+ <td>Ctrl+Z</td>
176
+ <td>⌘Z</td>
177
+ </tr>
178
+ <tr>
179
+ <td>Redo</td>
180
+ <td>Ctrl+Shift+Z</td>
181
+ <td>⌘⇧Z</td>
182
+ </tr>
183
+ </tbody>
184
+ </table>
185
+ <p>See <a href="undo-and-redo.md">How to undo and redo changes</a>.</p>
186
+ <h2>Adding elements</h2>
187
+ <p>Select a container on the canvas, then press a letter. The element is added inside the selected element. These keys don't work inside a component copy (instance) on a page.</p>
188
+ <table>
189
+ <thead>
190
+ <tr>
191
+ <th>Key</th>
192
+ <th>Adds</th>
193
+ </tr>
194
+ </thead>
195
+ <tbody>
196
+ <tr>
197
+ <td>R</td>
198
+ <td>Row</td>
199
+ </tr>
200
+ <tr>
201
+ <td>C</td>
202
+ <td>Column</td>
203
+ </tr>
204
+ <tr>
205
+ <td>T</td>
206
+ <td>Text</td>
207
+ </tr>
208
+ <tr>
209
+ <td>H</td>
210
+ <td>Heading</td>
211
+ </tr>
212
+ <tr>
213
+ <td>L or K</td>
214
+ <td>Link</td>
215
+ </tr>
216
+ <tr>
217
+ <td>B</td>
218
+ <td>Button</td>
219
+ </tr>
220
+ <tr>
221
+ <td>I</td>
222
+ <td>Image</td>
223
+ </tr>
224
+ <tr>
225
+ <td>V</td>
226
+ <td>Video</td>
227
+ </tr>
228
+ <tr>
229
+ <td>D</td>
230
+ <td>Date</td>
231
+ </tr>
232
+ <tr>
233
+ <td>S</td>
234
+ <td>Slot (only while editing a component)</td>
235
+ </tr>
236
+ </tbody>
237
+ </table>
238
+ <h2>Zoom and view</h2>
239
+ <table>
240
+ <thead>
241
+ <tr>
242
+ <th>Action</th>
243
+ <th>Windows</th>
244
+ <th>Mac</th>
245
+ </tr>
246
+ </thead>
247
+ <tbody>
248
+ <tr>
249
+ <td>Zoom in</td>
250
+ <td>Ctrl + <code>+</code></td>
251
+ <td>⌘ + <code>+</code></td>
252
+ </tr>
253
+ <tr>
254
+ <td>Zoom out</td>
255
+ <td>Ctrl + <code>−</code></td>
256
+ <td>⌘ + <code>−</code></td>
257
+ </tr>
258
+ <tr>
259
+ <td>Zoom to 100%</td>
260
+ <td>Ctrl+0</td>
261
+ <td>⌘0</td>
262
+ </tr>
263
+ <tr>
264
+ <td>Zoom smoothly</td>
265
+ <td>Ctrl + scroll</td>
266
+ <td>Ctrl + scroll, or pinch</td>
267
+ </tr>
268
+ <tr>
269
+ <td>Move around the canvas</td>
270
+ <td>Hold Space and drag</td>
271
+ <td>Hold Space and drag</td>
272
+ </tr>
273
+ <tr>
274
+ <td>Scroll sideways</td>
275
+ <td>Shift + scroll</td>
276
+ <td>⇧ + scroll</td>
277
+ </tr>
278
+ <tr>
279
+ <td>Show or hide margin and padding highlights</td>
280
+ <td>Ctrl+Shift+H</td>
281
+ <td>⌘⇧H</td>
282
+ </tr>
283
+ <tr>
284
+ <td>Turn Grayscale Structure Mode on or off</td>
285
+ <td>Ctrl+Shift+S</td>
286
+ <td>⌘⇧S</td>
287
+ </tr>
288
+ <tr>
289
+ <td>Switch the right panel between <strong>Visual</strong> and <strong>Advanced</strong></td>
290
+ <td>Ctrl+Shift+I</td>
291
+ <td>⌘⇧I</td>
292
+ </tr>
293
+ </tbody>
294
+ </table>
295
+ <p>See <a href="zoom-and-move-around-the-canvas.md">How to zoom and move around the canvas</a> and <a href="grayscale-structure-mode.md">How to see your page structure</a>.</p>
296
+ <h2>Panels</h2>
297
+ <table>
298
+ <thead>
299
+ <tr>
300
+ <th>Action</th>
301
+ <th>Windows</th>
302
+ <th>Mac</th>
303
+ </tr>
304
+ </thead>
305
+ <tbody>
306
+ <tr>
307
+ <td>Open or close <strong>Elements</strong></td>
308
+ <td>Ctrl+1</td>
309
+ <td>⌘1</td>
310
+ </tr>
311
+ <tr>
312
+ <td>Open or close <strong>Pages, Components &amp; Treeview</strong></td>
313
+ <td>Ctrl+2</td>
314
+ <td>⌘2</td>
315
+ </tr>
316
+ <tr>
317
+ <td>Open or close <strong>Assets Manager</strong></td>
318
+ <td>Ctrl+4</td>
319
+ <td>⌘4</td>
320
+ </tr>
321
+ <tr>
322
+ <td>Open or close <strong>Forms</strong></td>
323
+ <td>Ctrl+5</td>
324
+ <td>⌘5</td>
325
+ </tr>
326
+ <tr>
327
+ <td>Move a focused sidebar icon up or down</td>
328
+ <td>Alt+↑ / Alt+↓</td>
329
+ <td>⌥↑ / ⌥↓</td>
330
+ </tr>
331
+ </tbody>
332
+ </table>
333
+ <h2>Pages and components list</h2>
334
+ <p>These work when a page or component is selected in the <strong>Pages, Components &amp; Treeview</strong> panel:</p>
335
+ <table>
336
+ <thead>
337
+ <tr>
338
+ <th>Action</th>
339
+ <th>Windows</th>
340
+ <th>Mac</th>
341
+ </tr>
342
+ </thead>
343
+ <tbody>
344
+ <tr>
345
+ <td>Rename</td>
346
+ <td>F2</td>
347
+ <td>F2</td>
348
+ </tr>
349
+ <tr>
350
+ <td>Duplicate</td>
351
+ <td>Ctrl+D</td>
352
+ <td>⌘D</td>
353
+ </tr>
354
+ <tr>
355
+ <td>Delete</td>
356
+ <td>Delete or Backspace</td>
357
+ <td>⌫</td>
358
+ </tr>
359
+ <tr>
360
+ <td>Copy a component (for example, to paste into another project)</td>
361
+ <td>Ctrl+C</td>
362
+ <td>⌘C</td>
363
+ </tr>
364
+ <tr>
365
+ <td>Paste copied content into the selected page or component</td>
366
+ <td>Ctrl+V</td>
367
+ <td>⌘V</td>
368
+ </tr>
369
+ <tr>
370
+ <td>Create a new component</td>
371
+ <td>Ctrl+Alt+K</td>
372
+ <td>⌘⌥K</td>
373
+ </tr>
374
+ </tbody>
375
+ </table>
376
+ <h2>Other</h2>
377
+ <table>
378
+ <thead>
379
+ <tr>
380
+ <th>Action</th>
381
+ <th>Windows</th>
382
+ <th>Mac</th>
383
+ </tr>
384
+ </thead>
385
+ <tbody>
386
+ <tr>
387
+ <td>Open the command palette</td>
388
+ <td>Ctrl+P</td>
389
+ <td>⌘P</td>
390
+ </tr>
391
+ <tr>
392
+ <td>Open the command palette with commands</td>
393
+ <td>Ctrl+Shift+P (Firefox: Ctrl+Alt+P)</td>
394
+ <td>⌘⇧P (Firefox: ⌘⌥P)</td>
395
+ </tr>
396
+ <tr>
397
+ <td>Open the <strong>Keyboard Shortcuts</strong> sheet</td>
398
+ <td>Ctrl+Shift+/</td>
399
+ <td>⌘⇧/</td>
400
+ </tr>
401
+ <tr>
402
+ <td>Duplicate while dragging</td>
403
+ <td>Hold Alt while you drop</td>
404
+ <td>Hold ⌥ while you drop</td>
405
+ </tr>
406
+ </tbody>
407
+ </table>
408
+ <p>See <a href="use-the-command-palette.md">How to use the command palette</a>.</p>
409
+ <h2>Related articles</h2>
410
+ <ul>
411
+ <li><a href="use-the-command-palette.md">How to use the command palette</a></li>
412
+ <li><a href="undo-and-redo.md">How to undo and redo changes</a></li>
413
+ <li><a href="copy-and-paste-elements.md">How to copy, paste and duplicate elements</a></li>
414
+ <li><a href="zoom-and-move-around-the-canvas.md">How to zoom and move around the canvas</a></li>
415
+ <li><a href="../elements/select-elements.md">How to select one or several elements</a></li>
416
+ <li><a href="../pages/use-the-layers-panel.md">How to use the layers tree to find and select elements</a></li>
417
+ </ul>
@@ -0,0 +1,82 @@
1
+ <p>TeleportHQ's AI works best when you guide it like a design partner: describe your business in detail, name the exact colors, fonts and layout you want, and change one section at a time. Select the element you want changed before you ask, start a new AI Assistant chat for each task, and save rules you always want followed in <strong>AI Settings</strong>.</p>
2
+ <h2>1. Start with a detailed business description</h2>
3
+ <p>The business description you give the TeleportHQ AI Website Builder shapes everything: the page plan, the design direction, the text and the images. Include:</p>
4
+ <ul>
5
+ <li><strong>What you do and where</strong>: &quot;An organic coffee shop in Cluj.&quot;</li>
6
+ <li><strong>Who your customers are</strong>: &quot;Students and remote workers who stay for hours.&quot;</li>
7
+ <li><strong>How the site should feel</strong>: &quot;Warm, cozy, handmade, not corporate.&quot;</li>
8
+ <li><strong>What visitors should do</strong>: &quot;See the menu, find opening hours, pre-order online.&quot;</li>
9
+ <li><strong>Style details you already know</strong>: brand colors, fonts, how much animation, rounded or sharp corners.</li>
10
+ </ul>
11
+ <p>A good example: <code>We're an organic coffee shop in Cluj for students and remote workers. The site should feel warm and handmade. Visitors should see our menu, opening hours and location, and pre-order drinks. Use our brand colors #6b3e26 and #f2e3c6, rounded buttons and soft shadows.</code></p>
12
+ <p>Short on words? Use <strong>Generate from URL</strong> with your current site (or a site you like) or <strong>Upload Documents</strong> with a brochure, then edit the result. See <a href="describe-your-business-from-a-url-or-document.md">How to describe your business from a website link or a document</a>.</p>
13
+ <h2>2. Get the design system right before the build</h2>
14
+ <p>The colors, fonts and spacing chosen during setup become your project's design system. Every page and section the AI makes later reuses it, so fix it early:</p>
15
+ <ul>
16
+ <li>On <strong>Colors &amp; Fonts</strong>, click <strong>Regenerate</strong> and give exact values: <code>Use #8b45f2, #ffc928 and #1fcc76</code> or <code>Headings in Playfair Display, body text in Inter</code>.</li>
17
+ <li>Mention spacing, corner radius, shadows and animation in your description. For example: <code>Tight layout spacing, 16px rounded buttons, subtle animations.</code></li>
18
+ </ul>
19
+ <h2>3. Save standing instructions in AI Settings</h2>
20
+ <p>Rules you'd otherwise repeat in every prompt belong in <strong>AI Settings → Custom Requirements</strong>. For example: <code>Always use British English. Keep headings under 8 words. Never use stock photos of people.</code> They apply to every future AI run in the project. See <a href="../ai-tools/ai-settings.md">How to give the AI your business details and instructions (AI Settings)</a>.</p>
21
+ <h2>4. Structure your prompts: context, content, style</h2>
22
+ <p>A strong prompt says what to make, for whom, what goes in it and how it should look:</p>
23
+ <blockquote>
24
+ <p>Create a <strong>[section type]</strong> for a <strong>[business]</strong> with <strong>[specific elements]</strong> that looks <strong>[visual style]</strong>.</p>
25
+ </blockquote>
26
+ <table>
27
+ <thead>
28
+ <tr>
29
+ <th>Weak prompt</th>
30
+ <th>Strong prompt</th>
31
+ </tr>
32
+ </thead>
33
+ <tbody>
34
+ <tr>
35
+ <td>&quot;Make a hero section.&quot;</td>
36
+ <td>&quot;Create a hero section for a SaaS startup with a dark background, a large bold headline on the left, a signup form, and an illustration on the right.&quot;</td>
37
+ </tr>
38
+ <tr>
39
+ <td>&quot;Change the text.&quot;</td>
40
+ <td>&quot;Change the headline to 'Build Faster with AI' and make it larger and bold.&quot;</td>
41
+ </tr>
42
+ <tr>
43
+ <td>&quot;Make it look better.&quot;</td>
44
+ <td>&quot;Add more space between the cards, round their corners and add a soft shadow on hover.&quot;</td>
45
+ </tr>
46
+ </tbody>
47
+ </table>
48
+ <p>Words that help the AI understand what you mean:</p>
49
+ <ul>
50
+ <li><strong>Layout</strong>: 3-column grid, split screen, centered content, sticky header.</li>
51
+ <li><strong>Style</strong>: minimalist, corporate, playful, dark mode, glassmorphism.</li>
52
+ <li><strong>Elements</strong>: call-to-action button, accordion, testimonial slider, pricing cards, social icons.</li>
53
+ </ul>
54
+ <h2>5. Work one section at a time</h2>
55
+ <p>Instead of asking for a whole complex page at once, build and refine it section by section: the hero, then the features, then the testimonials. You keep more control, and each result is easier to check. Create the basic structure first, then ask for details, for example: generate a pricing table, then &quot;make the middle card highlighted&quot;.</p>
56
+ <h2>6. Point at what you want changed</h2>
57
+ <ul>
58
+ <li><strong>Select the element first.</strong> In the AI Assistant, the selected element is added to the chat as context, so &quot;make this rounder&quot; is clear. See <a href="../ai-assistant/give-the-ai-assistant-context.md">How to point the AI Assistant at a specific element or page</a>.</li>
59
+ <li><strong>Use the quick prompt for small changes.</strong> Select one element and type in <strong>Quick AI prompt...</strong> above it. Use <strong>Fast</strong> mode for small text, style and layout changes, and <strong>Complex</strong> mode for multi-step changes. See <a href="../ai-tools/quick-ai-prompt.md">How to change one element with a quick AI prompt</a>.</li>
60
+ <li><strong>Show a picture.</strong> Attach a screenshot to the AI Assistant and ask it to recreate that layout with your design system. See <a href="../ai-assistant/create-a-layout-from-a-screenshot.md">How to create a layout from a screenshot or image</a>.</li>
61
+ </ul>
62
+ <h2>7. Start a new chat for each task</h2>
63
+ <p>In the AI Assistant, click <strong>New</strong> to start a fresh chat whenever you switch tasks, for example one chat for the homepage redesign and another for the contact form. The AI then doesn't mix up instructions, and each message costs fewer tokens, because long chats use more tokens per message. See <a href="../ai-assistant/edit-your-site-with-the-ai-assistant.md">How to edit your website by chatting with the AI Assistant</a>.</p>
64
+ <h2>8. Use the right tool for the job</h2>
65
+ <p>TeleportHQ has a dedicated AI tool for many common jobs. They're often faster than a chat:</p>
66
+ <ul>
67
+ <li>New page: <a href="../ai-tools/generate-a-page-with-ai.md">How to generate a new page with AI</a></li>
68
+ <li>New section: <a href="../ai-tools/generate-a-section-with-ai.md">How to generate a new section with AI</a></li>
69
+ <li>One text: <a href="../ai-tools/rewrite-text-with-ai.md">How to rewrite text with AI</a></li>
70
+ <li>All images or texts on a page, or a translation: <a href="../ai-tools/replace-images-and-text-in-bulk-with-ai.md">How to replace all images or texts on a page with AI</a></li>
71
+ <li>Original images: <a href="../ai-tools/generate-images-with-ai.md">How to generate images with AI</a></li>
72
+ </ul>
73
+ <p>Some changes don't need AI at all. Editing the design system by hand changes every page at once and uses no tokens. See <a href="../ai-tools/edit-an-ai-site-without-ai.md">How to edit an AI-generated website by hand</a>.</p>
74
+ <h2>Related articles</h2>
75
+ <ul>
76
+ <li><a href="generate-a-website-with-ai.md">How to generate a website with AI</a></li>
77
+ <li><a href="../ai-assistant/edit-your-site-with-the-ai-assistant.md">How to edit your website by chatting with the AI Assistant</a></li>
78
+ <li><a href="../ai-assistant/give-the-ai-assistant-context.md">How to point the AI Assistant at a specific element or page</a></li>
79
+ <li><a href="../ai-tools/ai-settings.md">How to give the AI your business details and instructions (AI Settings)</a></li>
80
+ <li><a href="../ai-tools/quick-ai-prompt.md">How to change one element with a quick AI prompt</a></li>
81
+ <li><a href="../ai-assistant/create-a-layout-from-a-screenshot.md">How to create a layout from a screenshot or image</a></li>
82
+ </ul>
@@ -0,0 +1,82 @@
1
+ <p>TeleportHQ creates three files for search engines and AI tools each time you publish: <strong>sitemap.xml</strong> (a list of your pages), <strong>robots.txt</strong> (rules for search engine crawlers) and <strong>llms.txt</strong> (a summary of your site for AI assistants). You don't need to upload anything. To change them, open <strong>Global SEO Settings</strong>, edit the settings, click <strong>Save Changes</strong> and publish.</p>
2
+ <h2>Before you start</h2>
3
+ <ul>
4
+ <li>
5
+ <p>The sitemap and robots.txt are available on every TeleportHQ plan.</p>
6
+ </li>
7
+ <li>
8
+ <p><strong>LLMS.txt</strong> needs a trial or a paid plan. On other plans it shows a <strong>PRO</strong> label and no llms.txt file is published.</p>
9
+ </li>
10
+ <li>
11
+ <p>The files only exist on your published site, at <code>yoursite.com/sitemap.xml</code>, <code>yoursite.com/robots.txt</code> and <code>yoursite.com/llms.txt</code>.</p>
12
+ </li>
13
+ </ul>
14
+ <h2>Open the settings</h2>
15
+ <ol>
16
+ <li>In the <strong>left sidebar</strong>, click the layers icon (tooltip <strong>Pages, Components &amp; Treeview</strong>).</li>
17
+ <li>In the <strong>Pages</strong> list, right-click any page. You can also hover over it and click <strong>…</strong>.</li>
18
+ <li>Click <strong>Global SEO Settings</strong>. The <strong>Global SEO Settings</strong> window opens.</li>
19
+ </ol>
20
+ <p>You'll find the same settings in <strong>Project Settings → SEO</strong>.</p>
21
+ <p><img src="screenshots/sitemap-robots-and-llms-txt-1.png" alt="The Global SEO Settings window showing the Automatically Generate Sitemap switch, the Robots.txt editor and the LLMS.txt Auto, Edit and Off options"></p>
22
+ <h2>Sitemap</h2>
23
+ <p>The TeleportHQ sitemap lists every page search engines should find, so they discover new pages faster.</p>
24
+ <ol>
25
+ <li>Check that <strong>Automatically Generate Sitemap</strong> is switched on. It's on by default.</li>
26
+ <li>Click <strong>Save Changes</strong>.</li>
27
+ <li>Publish your site.</li>
28
+ </ol>
29
+ <p>The sitemap lists your pages and one address per item on details pages, for example one per product or blog post. It leaves out pages with <strong>No Index</strong> turned on, your 404 page and admin panel pages. On a multilingual site, it lists each language version.</p>
30
+ <h2>Robots.txt</h2>
31
+ <p>The TeleportHQ robots.txt tells search engines which parts of your site they may visit. The default allows everything and points to your sitemap:</p>
32
+ <pre><code>User-agent: Googlebot
33
+ Disallow: /nogooglebot/
34
+
35
+ User-agent: *
36
+ Allow: /
37
+
38
+ Sitemap: {{domain_url}}/sitemap.xml
39
+ </code></pre>
40
+ <p>When you publish, <code>{{domain_url}}</code> is replaced with your site's address.</p>
41
+ <ol>
42
+ <li>Click inside the <strong>Robots.txt</strong> editor.</li>
43
+ <li>Edit the rules. For example, to keep crawlers out of a <code>/drafts</code> folder, add <code>Disallow: /drafts/</code> under <code>User-agent: *</code>.</li>
44
+ <li>Click <strong>Save Changes</strong>.</li>
45
+ <li>Publish your site.</li>
46
+ </ol>
47
+ <blockquote>
48
+ <p><strong>Important:</strong> A wrong rule, like <code>Disallow: /</code> under <code>User-agent: *</code>, hides your whole site from Google. To hide single pages, use <strong>No Index</strong> instead. See <a href="noindex-canonical-and-redirects.md">How to hide a page from Google, set a canonical URL or redirect a page</a>.</p>
49
+ </blockquote>
50
+ <h2>LLMS.txt</h2>
51
+ <p>The TeleportHQ llms.txt file helps AI assistants like ChatGPT and Claude understand what your site offers. Pick one of three modes next to <strong>LLMS.txt</strong>:</p>
52
+ <ul>
53
+ <li><strong>Auto</strong> (default): TeleportHQ writes the file from your pages and updates it on every publish. You can read it, but not edit it.</li>
54
+ <li><strong>Edit</strong>: you write the file yourself. Click <strong>Generate</strong> to start from TeleportHQ's version, then change the text.</li>
55
+ <li><strong>Off</strong>: no llms.txt file is published.</li>
56
+ </ul>
57
+ <p>Then click <strong>Save Changes</strong> and publish.</p>
58
+ <h2>Check that it worked</h2>
59
+ <p>After publishing, open your live site and add <code>/sitemap.xml</code>, <code>/robots.txt</code> or <code>/llms.txt</code> to the address, for example <code>https://sweet-crumbs.teleporthq.app/robots.txt</code>. You see the file's content. To help Google find your pages sooner, submit the sitemap address in Google Search Console.</p>
60
+ <h2>Troubleshooting</h2>
61
+ <p><strong>My changes don't show in the file</strong>
62
+ Check that you clicked <strong>Save Changes</strong> and then published. The files are only rebuilt when you publish.</p>
63
+ <p><strong>The file shows old content I uploaded before</strong>
64
+ If your project has a file named <code>robots.txt</code>, <code>sitemap.xml</code> or <code>llms.txt</code> in its uploaded files, TeleportHQ publishes that file and doesn't create its own. Delete the uploaded file from the Assets Manager, then publish. See <a href="../../media/rename-or-delete-assets.md">How to rename or delete files</a>.</p>
65
+ <p><strong>A page is missing from the sitemap</strong>
66
+ Check whether <strong>No Index</strong> is on for that page in <strong>Page SEO Settings</strong>. Pages with &quot;404&quot; or &quot;not-found&quot; in their name are also left out.</p>
67
+ <p><strong>LLMS.txt shows a PRO label</strong>
68
+ llms.txt needs a trial or paid plan. See <a href="../../plans-and-billing/plans/plans-compared.md">What's the difference between Trial, Pro and Premium?</a>.</p>
69
+ <h2>Good to know</h2>
70
+ <ul>
71
+ <li><strong>Turning off the sitemap</strong> stops TeleportHQ from publishing sitemap.xml. The robots.txt default still points to it, so update the <code>Sitemap:</code> line too.</li>
72
+ <li><strong>The robots.txt editor can't be empty.</strong> If you delete everything, the default rules come back.</li>
73
+ <li><strong>Site Health audits check these files.</strong> A missing robots.txt or sitemap.xml shows up as an issue. See <a href="run-a-site-health-audit.md">How to check your site's SEO health</a>.</li>
74
+ </ul>
75
+ <h2>Related articles</h2>
76
+ <ul>
77
+ <li><a href="seo-explained.md">How SEO works in TeleportHQ</a></li>
78
+ <li><a href="noindex-canonical-and-redirects.md">How to hide a page from Google, set a canonical URL or redirect a page</a></li>
79
+ <li><a href="connect-google-search-console.md">How to connect Google Search Console and see your keywords</a></li>
80
+ <li><a href="run-a-site-health-audit.md">How to check your site's SEO health</a></li>
81
+ <li><a href="../../languages/multilingual-urls-and-seo.md">How URLs and SEO work on a multilingual site</a></li>
82
+ </ul>
@@ -0,0 +1,61 @@
1
+ <p>TeleportHQ has two data sources for fixed lists that don't come from a database: <strong>CSV File</strong>, where you upload a spreadsheet export once, and <strong>JavaScript</strong>, where you type the list yourself as an array of items. Both are added from <strong>Data Sources → Add Data Source</strong>, and both can fill lists, tables and details pages on your site.</p>
2
+ <h2>Before you start</h2>
3
+ <ul>
4
+ <li><strong>Choose the right option.</strong> Use <strong>CSV File</strong> for a list exported from another tool, like a product catalog. Use <strong>JavaScript</strong> for a short list you type, like 5 team members.</li>
5
+ <li><strong>Neither updates by itself.</strong> To change the data later, upload a new file or edit the code. For data that changes often, use a <a href="connect-google-sheets.md">Google Sheet</a> or the <a href="../teleporthq-database/set-up-the-teleporthq-database.md">TeleportHQ database</a>.</li>
6
+ </ul>
7
+ <h2>Upload a CSV file to TeleportHQ</h2>
8
+ <p>To use a CSV file as a TeleportHQ data source:</p>
9
+ <ol>
10
+ <li>In the <strong>left sidebar</strong>, click <strong>Data Sources Integration</strong> (the database icon).</li>
11
+ <li>In the <strong>Data Sources</strong> panel, click <strong>+</strong> (tooltip <strong>Add Data Source</strong>).</li>
12
+ <li>Click the <strong>CSV File</strong> card.</li>
13
+ <li>In <strong>Data Source Name</strong>, type a name, for example <code>Product catalog</code>.</li>
14
+ <li>Under <strong>Upload CSV File</strong>, click <strong>Click to select a CSV file</strong> and choose your <code>.csv</code> file.</li>
15
+ <li>Click <strong>Extract data from CSV</strong>. The <strong>View Data</strong> section shows the first rows.</li>
16
+ <li>Check that the columns look right.</li>
17
+ <li>Click <strong>Save Data Source</strong>. If this is the project's first data source, a window titled <strong>IMPORTANT</strong> appears; click <strong>I understand</strong>.</li>
18
+ </ol>
19
+ <p><img src="screenshots/use-a-csv-file-or-static-data-1.png" alt="The CSV File setup form in TeleportHQ with the Upload CSV File area and the View Data preview"></p>
20
+ <p>If the first row is read as an item instead of column names, turn off <strong>Automatically detect header row</strong>, turn on <strong>First row is header row</strong>, and click <strong>Extract data from CSV</strong> again.</p>
21
+ <h2>Type static data with the JavaScript data source</h2>
22
+ <p>To type a fixed list as a TeleportHQ data source:</p>
23
+ <ol>
24
+ <li>In the <strong>Data Sources</strong> panel, click <strong>+</strong> (tooltip <strong>Add Data Source</strong>).</li>
25
+ <li>Click the <strong>JavaScript</strong> card.</li>
26
+ <li>In <strong>Data Source Name</strong>, type a name, for example <code>Team members</code>.</li>
27
+ <li>In <strong>JavaScript Code</strong>, replace the example with your list. The code must be a valid JavaScript array: a pair of square brackets holding one <code>{ … }</code> block per item.</li>
28
+ <li>Click <strong>Save Data Source</strong>.</li>
29
+ </ol>
30
+ <p>For example, a team list with three people:</p>
31
+ <pre><code class="language-javascript">[
32
+ { id: 1, name: &quot;Ana Pop&quot;, role: &quot;Head baker&quot;, photo: &quot;https://example.com/ana.jpg&quot; },
33
+ { id: 2, name: &quot;Mihai Ionescu&quot;, role: &quot;Pastry chef&quot;, photo: &quot;https://example.com/mihai.jpg&quot; },
34
+ { id: 3, name: &quot;Ioana Radu&quot;, role: &quot;Front of house&quot;, photo: &quot;https://example.com/ioana.jpg&quot; }
35
+ ]
36
+ </code></pre>
37
+ <p>The <strong>Save Data Source</strong> button stays disabled while the code has errors. When you edit an existing JavaScript source, it also stays disabled until you change something.</p>
38
+ <h2>Check that it worked</h2>
39
+ <p>The new data source appears as a card in the <strong>Data Sources</strong> panel. Add an Array Mapper to a page and bind it to the source to see the items. See <a href="../dynamic-content/repeat-items-with-a-list.md">How to show a list of items</a>.</p>
40
+ <h2>Troubleshooting</h2>
41
+ <p><strong>&quot;Failed to parse CSV&quot;</strong>
42
+ The file isn't a valid CSV. Export it again from your spreadsheet app as &quot;CSV (comma-separated values)&quot; and upload the new file.</p>
43
+ <p><strong>&quot;Please load preview data before saving&quot;</strong>
44
+ Click <strong>Extract data from CSV</strong> before <strong>Save Data Source</strong>.</p>
45
+ <p><strong>Save Data Source is greyed out (JavaScript)</strong>
46
+ The code has an error, such as a missing comma, bracket or quote. Fix the highlighted line. The whole code must be one array that starts with <code>[</code> and ends with <code>]</code>.</p>
47
+ <h2>Good to know</h2>
48
+ <ul>
49
+ <li><strong>The CSV contents are saved inside your project.</strong> Changing the original file on your computer doesn't change the site. To update, open the data source, click <strong>Click to select a different file</strong>, extract and save again.</li>
50
+ <li><strong>You can't edit CSV rows in TeleportHQ.</strong> To edit rows, sort them or add new ones in the editor, import the file into the TeleportHQ database instead: see <a href="../teleporthq-database/import-data-into-a-table.md">Import data from a spreadsheet file</a>.</li>
51
+ <li><strong>The JavaScript source has no preview step.</strong> Check the result on the canvas after binding a list to it.</li>
52
+ <li>Both sources can power details pages, one page per item. See <a href="../dynamic-content/create-a-details-page-for-each-item.md">Create a page for each item</a>.</li>
53
+ </ul>
54
+ <h2>Related articles</h2>
55
+ <ul>
56
+ <li><a href="what-are-data-sources.md">What are data sources, and which ones can I connect?</a></li>
57
+ <li><a href="connect-google-sheets.md">How to use a Google Sheet as data</a></li>
58
+ <li><a href="../teleporthq-database/import-data-into-a-table.md">How to import data from a spreadsheet file</a></li>
59
+ <li><a href="../dynamic-content/repeat-items-with-a-list.md">How to show a list of items (List / Array Mapper)</a></li>
60
+ <li><a href="../dynamic-content/create-a-details-page-for-each-item.md">How to create a page for each item (details pages)</a></li>
61
+ </ul>