Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
e9005ee
feat: edit the whole form as one document
PhilReinking Oct 12, 2026
ef0663e
feat: put grip and delete inside each choice row
PhilReinking Oct 12, 2026
d32b49c
fix: name the text format buttons
PhilReinking Oct 12, 2026
7369274
Merge branch 'feat/bits-275-duplicate-question' into stack/bits-274-p…
PhilReinking Oct 12, 2026
730f369
Merge branch 'fix/bits-281-editor-loading' into stack/bits-274-phase-1
PhilReinking Oct 12, 2026
c744234
Merge branch 'stack/bits-274-phase-1' into feat/bits-282-document-editor
PhilReinking Oct 12, 2026
4bcf889
fix: focus after Try again, and drop a late question load
PhilReinking Oct 12, 2026
c18216f
test: cover the closed question row and opening it
PhilReinking Oct 12, 2026
d32d1cd
docs: add changelog line for #268
PhilReinking Oct 12, 2026
d61a7c2
fix: scroll a question opened by link into view
PhilReinking Oct 12, 2026
3943fa4
feat: add an outline to jump to a question
PhilReinking Oct 12, 2026
1c57ee6
feat: open a question's settings as a bottom sheet on phones
PhilReinking Oct 12, 2026
91186a3
fix: make the editor's controls 44 px on phones
PhilReinking Oct 12, 2026
8644f3d
fix: keep the top of the document in view on load
PhilReinking Oct 12, 2026
efc4407
fix: make a question's answer field without opening Settings
PhilReinking Oct 12, 2026
c00f13e
fix: give the Settings panel the id its button points at
PhilReinking Oct 12, 2026
651590b
fix: let a group be dragged by a grip in its header
PhilReinking Oct 12, 2026
20608c4
fix: keep focus near a deleted choice or policy
PhilReinking Oct 12, 2026
7bdefa3
fix: leave the cursor alone when a new question can't be made
PhilReinking Oct 12, 2026
a7fa8d5
refactor: drop form store state the old storyboard used
PhilReinking Oct 12, 2026
66d0ba1
Merge branch 'fix/bits-276-rule-references' into stack/bits-274-phase-1
PhilReinking Oct 12, 2026
b43958c
Merge branch 'feat/bits-277-preview-mode' into stack/bits-274-phase-1
PhilReinking Oct 12, 2026
e4fc5f5
Merge branch 'stack/bits-274-phase-1' into feat/bits-282-document-editor
PhilReinking Oct 12, 2026
9e58fb5
Merge branch 'feat/bits-282-document-editor' into feat/bits-282b-outl…
PhilReinking Oct 12, 2026
1949324
fix: hide the group grip on phones, like the question grip
PhilReinking Oct 12, 2026
e1fed98
fix: move between visible choices only, with a custom answer on
PhilReinking Oct 12, 2026
359284d
fix: show a question's text flat in its card, without boxes
PhilReinking Oct 12, 2026
6ae1bd8
fix: draw each choice as one row, and name its fields
PhilReinking Oct 12, 2026
a960f5c
fix: say "Add choice", as a dashed row like the concept
PhilReinking Oct 12, 2026
7930924
fix: hide Required on a No Input question
PhilReinking Oct 12, 2026
3938f6b
fix: make a choice row 36 px tall, like the concept
PhilReinking Oct 12, 2026
ffcd480
Merge branch 'feat/bits-282-document-editor' into feat/bits-282b-outl…
PhilReinking Oct 12, 2026
c0d4a20
fix: keep 44 px targets up to 1024 px, and 44 px menu items
PhilReinking Oct 12, 2026
d472078
Merge branch 'feat/bits-278-top-bar' into stack/bits-274-phase-1
PhilReinking Oct 12, 2026
2f7ecf9
Merge branch 'feat/bits-285-preview-app' into stack/bits-274-phase-1
PhilReinking Oct 12, 2026
18c92f9
Merge branch 'stack/bits-274-phase-1' into feat/bits-282-document-editor
PhilReinking Oct 12, 2026
6927dc7
Merge branch 'feat/bits-282-document-editor' into feat/bits-282b-outl…
PhilReinking Oct 12, 2026
ac1aef3
feat: show the end screen as the last block of the document
PhilReinking Oct 13, 2026
819c489
Merge remote-tracking branch 'origin/feat/bits-282-document-editor' i…
PhilReinking Oct 13, 2026
ec80e90
docs: add the end screen block to the changelog
PhilReinking Oct 13, 2026
2c53510
fix: 44 px fields with 16 px text in the question card below 1024 px
PhilReinking Oct 13, 2026
a9368ce
fix: show a blue bar while the question text has focus
PhilReinking Oct 13, 2026
d7d794f
fix: add a policy with a dashed row, like Add choice
PhilReinking Oct 13, 2026
b516020
fix: size the app to the visible screen on iPhone Safari (100dvh)
PhilReinking Oct 13, 2026
bc69718
fix: keep the Outline button 44 px below 1024 px
PhilReinking Oct 13, 2026
ea36e24
style: re-indent FormDocument's template (Prettier)
PhilReinking Oct 13, 2026
62c5024
style: wrap a long line in DocumentQuestion (Prettier)
PhilReinking Oct 13, 2026
3945f4c
docs: add the outline and phone Settings to the changelog line (#272)
PhilReinking Oct 13, 2026
a2f0513
feat: show a live preview beside the document
PhilReinking Oct 13, 2026
bbfa3ed
feat: say in the form's preview that answers aren't saved
PhilReinking Oct 13, 2026
32143ee
fix: load the form again when browser Back returns to Settings
PhilReinking Oct 13, 2026
ab05962
fix: save the end screen when its Settings link or browser Back leave…
PhilReinking Oct 13, 2026
c6a8d88
style: make the open end screen card flat like a question card
PhilReinking Oct 13, 2026
f08f890
fix: show the default end screen headline people see when it's empty
PhilReinking Oct 13, 2026
f750209
feat: put Preview beside the question count on a phone
PhilReinking Oct 13, 2026
cbfd30d
docs: add changelog line for #273
PhilReinking Oct 13, 2026
dd3ac2f
fix: load the form again when browser Back returns to the editor
PhilReinking Oct 13, 2026
4421fce
feat: move a block one step and read out where it went
PhilReinking Oct 13, 2026
51aee37
feat: move a question or group with Alt+Up/Down, close a question wit…
PhilReinking Oct 13, 2026
06bc84b
feat: read and edit logic rules as sentences
PhilReinking Oct 13, 2026
2d8f4ba
feat: show rules where they act in the document
PhilReinking Oct 13, 2026
ecc9d3a
fix: 44 px outline rows and Close below 1024, drop the sheet's drag h…
PhilReinking Oct 13, 2026
054c805
Merge part b's design fix into part c
PhilReinking Oct 13, 2026
652a9ce
feat: Move up and Move down in a question's and a group's menu
PhilReinking Oct 13, 2026
2a4f4c5
feat: the outline scrolls to the open question
PhilReinking Oct 13, 2026
de485c2
fix: open the top bar's Preview links in preview mode
PhilReinking Oct 13, 2026
7f73be2
feat: move a choice with Alt+Up/Down
PhilReinking Oct 13, 2026
711992e
fix: give focus back to Settings when the phone sheet closes
PhilReinking Oct 13, 2026
e75dc55
fix: put focus back on the phone's Preview after the panel closes
PhilReinking Oct 13, 2026
af3b8dd
Merge part b's review fix into part c
PhilReinking Oct 13, 2026
2de3109
feat: name and group the answer types, one icon each
PhilReinking Oct 13, 2026
39d3850
feat: add a type picker grouped as Text, Choice, Rating, Other, Content
PhilReinking Oct 13, 2026
68b2b3f
feat: add a question anywhere through the type picker
PhilReinking Oct 13, 2026
6069071
feat: type / in an empty question to pick its answer type
PhilReinking Oct 13, 2026
986acfb
fix: a tooltip no longer takes the keyboard focus
PhilReinking Oct 13, 2026
b9b36de
fix: Escape in the question text closes the question
PhilReinking Oct 13, 2026
4964034
fix: give the phone's Preview a 44 px tap area
PhilReinking Oct 13, 2026
7baa898
fix: close the preview when the window gets narrower than a desktop
PhilReinking Oct 13, 2026
92367af
fix: rule editor details found in the browser
PhilReinking Oct 13, 2026
98562b3
feat: say "Add a question to see it here." in an empty form's preview
PhilReinking Oct 13, 2026
65b53c0
refactor: remove the old logic panel
PhilReinking Oct 13, 2026
0e89538
fix: reload the form after Back only once the end screen save has landed
PhilReinking Oct 13, 2026
852103e
feat: say which question the preview shows, and when a rule hides the…
PhilReinking Oct 13, 2026
35a9755
Merge remote-tracking branch 'origin/feat/bits-282b-outline-phone' in…
PhilReinking Oct 13, 2026
8bef14d
docs: add changelog line for #274
PhilReinking Oct 13, 2026
c457846
docs: add moving questions to the changelog line (#275)
PhilReinking Oct 13, 2026
682709f
Merge remote-tracking branch 'origin/feat/bits-282b-outline-phone' in…
PhilReinking Oct 13, 2026
e710ffd
docs: add the type picker to the changelog (#276)
PhilReinking Oct 13, 2026
20e5418
fix: fit Outline and Preview in the phone's count row
PhilReinking Oct 13, 2026
7e08a5e
feat: open the editor's preview from the phone's form menu
PhilReinking Oct 13, 2026
876771a
Merge branch 'fix/bits-279-delete-dialogs' into stack/bits-274-phase-1
PhilReinking Oct 13, 2026
d758919
Merge branch 'fix/bits-280-save-status' into stack/bits-274-phase-1
PhilReinking Oct 13, 2026
3ac5e2d
fix: reload the preview after deleting a question, a choice or a rule
PhilReinking Oct 13, 2026
0f2f881
Merge branch 'stack/bits-274-phase-1' into feat/bits-282-document-editor
PhilReinking Oct 13, 2026
c2b787b
fix: reload the form when a page loads while an end screen save is on…
PhilReinking Oct 13, 2026
68235f3
Merge branch 'feat/bits-282-document-editor' into feat/bits-282b-outl…
PhilReinking Oct 13, 2026
794c36a
Merge branch 'feat/bits-282b-outline-phone' into feat/bits-282c-keybo…
PhilReinking Oct 13, 2026
30d05db
feat: duplicate a question from its menu
PhilReinking Oct 13, 2026
fb62de1
Merge remote-tracking branch 'origin/feat/bits-282-document-editor' i…
PhilReinking Oct 13, 2026
4088f2f
fix: ask in the app's dialog before removing a rule
PhilReinking Oct 13, 2026
92c54b5
fix: load the form over the API, so a tab picked meanwhile stays
PhilReinking Oct 13, 2026
2d1b81b
fix: open the end screen card with the form loaded again after Back
PhilReinking Oct 13, 2026
c82d065
fix: end a rule's edit when you leave the editor
PhilReinking Oct 13, 2026
f9037f0
Merge branch 'feat/bits-282c-keyboard-move' into feat/bits-283-type-p…
PhilReinking Oct 13, 2026
bfb6428
docs: say that / picks the empty question's type
PhilReinking Oct 13, 2026
96553ea
feat: ask before deleting a question or group from its menu
PhilReinking Oct 13, 2026
21be850
docs: use the new answer type names and the picker steps
PhilReinking Oct 13, 2026
fef51c5
feat: show the save status in the form's top bar
PhilReinking Oct 13, 2026
da1e249
fix: make every rule control 44 px below 1024, Cancel and Save rule t…
PhilReinking Oct 13, 2026
d35fa56
fix: say "Always hidden" and drop the rule count from a question's meta
PhilReinking Oct 13, 2026
2f9036d
feat: Add question at the end of the document adds at the end
PhilReinking Oct 13, 2026
9b5a38d
fix: an empty form doesn't say 0 questions
PhilReinking Oct 13, 2026
996c41f
Merge remote-tracking branch 'origin/feat/bits-282-document-editor' i…
PhilReinking Oct 13, 2026
5b3693f
docs: describe the editor as one document with an outline
PhilReinking Oct 13, 2026
53de514
fix: the type picker scrolls into view, and a phone keeps its keyboar…
PhilReinking Oct 13, 2026
17d4bd1
fix: the keyboard-picked answer type shows a blue ring
PhilReinking Oct 13, 2026
c00627e
test: expect the save error text part a uses now
PhilReinking Oct 13, 2026
0dc5f5b
feat: mark where the open question jumps with a blue number pill
PhilReinking Oct 13, 2026
a8931ec
fix: give the jump target chip a 44 px tap area below 1024
PhilReinking Oct 13, 2026
8af59b7
fix: show the last of two overlapping saves in the preview
PhilReinking Oct 13, 2026
0514426
fix: start the preview at the open question, without a jump
PhilReinking Oct 13, 2026
4469fb7
fix: return focus to the form menu after its preview closes
PhilReinking Oct 13, 2026
a83d560
Merge remote-tracking branch 'origin/feat/bits-282b-outline-phone' in…
PhilReinking Oct 13, 2026
321841c
Merge remote-tracking branch 'origin/feat/bits-282c-keyboard-move' in…
PhilReinking Oct 13, 2026
fd0536e
fix: leave Retry to the red save bar on phones and tablets
PhilReinking Oct 13, 2026
5a39ee9
fix: line rules up with the question text on phones
PhilReinking Oct 13, 2026
3b5d677
fix: a click outside the / picker leaves the cursor where you clicked
PhilReinking Oct 13, 2026
17d3ccc
docs: answer type names in sentence case, as in the editor
PhilReinking Oct 13, 2026
4c262ff
docs: add duplicating a question to the changelog line (#277)
PhilReinking Oct 13, 2026
12ed786
Merge remote-tracking branch 'origin/feat/bits-282c-keyboard-move' in…
PhilReinking Oct 13, 2026
ad113ff
fix: keep an end screen change when the page reloads or closes
PhilReinking Oct 13, 2026
bcb79eb
Merge remote-tracking branch 'origin/feat/bits-282c-keyboard-move' in…
PhilReinking Oct 13, 2026
e323b14
fix: a click elsewhere leaves the cursor there, also for the end picker
PhilReinking Oct 13, 2026
f0e5ccc
fix: start the preview at once when no question is open
PhilReinking Oct 13, 2026
072884f
fix: say why the preview can't show a hidden question
PhilReinking Oct 13, 2026
a1f2a83
docs: say the other pages' Preview saves no answers either
PhilReinking Oct 13, 2026
089b848
Merge branch 'feat/bits-284-logic-in-place' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
5297939
Merge branch 'feat/bits-282d-wire-phase-1' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
76aee72
fix: keep the save status width so the top bar doesn't move on each save
PhilReinking Oct 13, 2026
936115b
feat: name the save status in a tooltip when only its icon shows
PhilReinking Oct 13, 2026
0cb167f
Merge branch 'feat/bits-283-type-picker' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
7bef7ab
fix: put the cursor at the end of a question's text when it opens
PhilReinking Oct 13, 2026
6969fa0
Merge branch 'feat/bits-286-end-screen' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
70e2ae5
fix: name a question by its number in the delete dialog
PhilReinking Oct 13, 2026
c3a8181
fix: say a question couldn't be duplicated when the copy fails
PhilReinking Oct 13, 2026
d038b7d
Merge branch 'feat/bits-285-preview-panel' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
66ffab3
fix: the end screen test finds the type picker on an empty form after…
PhilReinking Oct 13, 2026
637094a
fix: the preview reloads after a saved rule after merging #274 and #273
PhilReinking Oct 13, 2026
32f854b
fix: an empty form keeps the Preview button on a phone after merging …
PhilReinking Oct 13, 2026
e859a30
fix: say a question couldn't be deleted when the delete fails
PhilReinking Oct 13, 2026
ef472fa
fix: give the open end card the question card's phone sizes and one f…
PhilReinking Oct 13, 2026
aa1c1f4
fix: name the end screen in its save error
PhilReinking Oct 13, 2026
4b54d73
Merge branch 'feat/bits-282d-wire-phase-1' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
4b57119
fix: keep the end screen's hidden label inside the document
PhilReinking Oct 13, 2026
a3a6f5b
fix: use plain words in the answer field, rating, date and file settings
PhilReinking Oct 13, 2026
3d5ca41
fix: say choice and consent in the choice and consent settings
PhilReinking Oct 13, 2026
0e9e6a9
fix: name the settings by answer type and say where the short name shows
PhilReinking Oct 13, 2026
0a5b7a1
fix: show every switch in the editor as on or off
PhilReinking Oct 13, 2026
3170da7
fix: use plain words in the text editor's toolbar, counter and prompts
PhilReinking Oct 13, 2026
3e1e426
fix: name new rules Rule 1 and give the group name an example
PhilReinking Oct 13, 2026
3c9e495
Merge branch 'feat/bits-286-end-screen' into stack/bits-274-phase-2
PhilReinking Oct 13, 2026
50015c0
docs: use the editor's new setting names in the help pages
PhilReinking Oct 13, 2026
26b6454
Merge remote-tracking branch 'origin/stack/bits-274-phase-2' into fea…
PhilReinking Oct 13, 2026
f77efdb
docs: add the editor wording change to the changelog
PhilReinking Oct 13, 2026
b698273
fix: don't say emails use the short name
PhilReinking Oct 13, 2026
4ee7e54
fix: tie "None ticked: all types allowed." to the file type boxes
PhilReinking Oct 13, 2026
2e16cb7
fix: use plain words for the text editor's default placeholder
PhilReinking Oct 13, 2026
84d0bd9
fix: drop the settings heading where a type has no settings of its own
PhilReinking Oct 13, 2026
4798dbf
fix: say "a deleted question" in a rule's sentence
PhilReinking Oct 13, 2026
0af912b
fix: use short example placeholders in the long text and number settings
PhilReinking Oct 13, 2026
b294005
fix: show an example, not "No limit", as the max characters placeholder
PhilReinking Oct 13, 2026
c6354e6
fix: start the Consent and Text only settings at the panel top
PhilReinking Oct 13, 2026
003acf3
fix: show the end screen in the preview while its block is open
PhilReinking Oct 13, 2026
6f6e0b6
fix: call the completion page "End screen" in Settings too
PhilReinking Oct 13, 2026
61b8846
docs: add changelog line for #280
PhilReinking Oct 13, 2026
474f4e7
fix: open the end screen's button in a new tab in the preview
PhilReinking Oct 13, 2026
dd6cfb8
docs: say "End screen" in the #271 changelog line, add the button to …
PhilReinking Oct 13, 2026
d4fc15d
feat: draw a line where each question starts and give the open one room
PhilReinking Oct 13, 2026
61ac0d9
feat: make the question number the anchor under its line
PhilReinking Oct 13, 2026
205ca06
feat: lift the open question and end screen card with a bigger shadow
PhilReinking Oct 13, 2026
d28d4b8
feat: give the document a 16 px side margin on phones and keep a grou…
PhilReinking Oct 13, 2026
be5e3e2
fix: keep the cursor in the editor when the preview moves
PhilReinking Oct 13, 2026
d6949dd
docs: add changelog line for #281
PhilReinking Oct 13, 2026
bb54d3f
fix: say "No end screen" only for a web link, as the form redirects
PhilReinking Oct 13, 2026
83ec4a3
docs: add the preview focus fix to #280's changelog line
PhilReinking Oct 13, 2026
c4f3ac1
Merge remote-tracking branch 'origin/fix/bits-285-preview-end-screen'…
PhilReinking Oct 13, 2026
a945952
fix: start the end screen with a line and give it room when open
PhilReinking Oct 13, 2026
b8154f7
fix: wrap a group's Add rule and menu together, on the right
PhilReinking Oct 13, 2026
aadadae
fix: let the preview move the cursor on once the owner clicks into it
PhilReinking Oct 13, 2026
3ab955b
fix: close the preview panel on Esc inside the preview
PhilReinking Oct 13, 2026
1bb9bf6
docs: add Esc in the preview to #280's changelog line
PhilReinking Oct 13, 2026
ceadf5e
Merge remote-tracking branch 'origin/fix/bits-285-preview-end-screen'…
PhilReinking Oct 13, 2026
cdb443c
Merge remote-tracking branch 'origin/main' into land/bits-274-editor
PhilReinking Oct 13, 2026
48d1d0b
Merge remote-tracking branch 'origin/main' into land/bits-274-editor
PhilReinking Oct 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ export default defineConfig({
text: "Managing Forms",
link: "/workbench/managing-forms",
},
{ text: "Workbench", link: "/workbench/workbench" },
{ text: "Storyboard", link: "/workbench/storyboard" },
{ text: "Form Editor", link: "/workbench/workbench" },
{ text: "Outline", link: "/workbench/storyboard" },
{ text: "Form Blocks", link: "/workbench/form-blocks" },
{
text: "Conditional Logic",
Expand All @@ -43,26 +43,26 @@ export default defineConfig({
collapsed: true,
items: [
{
text: "Information Block 📝",
text: "Text only 📝",
link: "/input-types/no-interaction",
},
{
text: "Multiple Choice 🔘",
text: "Single choice 🔘",
link: "/input-types/multiplechoice",
},
{ text: "Checkboxes ✅", link: "/input-types/checkboxes" },
{ text: "Short Text 💬", link: "/input-types/short-text" },
{ text: "Long Text 📄", link: "/input-types/long-text" },
{ text: "Short text 💬", link: "/input-types/short-text" },
{ text: "Long text 📄", link: "/input-types/long-text" },
{ text: "Number 🔢", link: "/input-types/number" },
{ text: "Email 📧", link: "/input-types/email" },
{ text: "Link 🔗", link: "/input-types/link" },
{ text: "Phone ☎️", link: "/input-types/phone" },
{ text: "Date 📅", link: "/input-types/date" },
{ text: "Secret 🔒", link: "/input-types/secret" },
{ text: "Hidden text 🔒", link: "/input-types/secret" },
{ text: "Rating ⭐", link: "/input-types/rating" },
{ text: "Scale 📊", link: "/input-types/scale" },
{
text: "File Upload 📁",
text: "File upload 📁",
link: "/input-types/file-upload",
},
{ text: "Consent ✓", link: "/input-types/consent" },
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ Lines marked **Upgrade step** need you to act after updating.
- The API can copy a question (`POST /api/blocks/{block}/duplicate`) with its text, settings, answers and Required, but not its rules or its Identifier, so links that fill in answers and webhooks can't mix the two up. The copy goes right after the original. (#262)
- The public form API has a preview mode for the form's team: start a session with `preview: true`, also for a draft. Answers in preview mode are never stored or counted and send no webhooks or emails. (#266)
- Add `?preview=1` to your form's link to try it as a member of its team. Nothing is stored, files aren't uploaded and the form doesn't redirect at the end. (#270)
- Add a question right where you need it: between questions or from a question's menu, and type "/" in an empty question to pick its answer type. A picker groups the answer types as Text, Choice, Rating, Other and Content, and the new question opens ready to type. The answer types have new names, like Single choice, Short text and Text only. (#276)
- The form editor shows the end screen as the last block of your form. You can edit its headline, text and button right there, and the End screen tab in Settings shows the same values. (#271)
- "Preview" in the editor shows your form beside the questions, on tablet and phone as a panel. It follows the question you edit, and the editor follows when you click Next in it. On the other form pages, "Preview" opens your form in a new tab in preview mode. Answers in either preview aren't saved. (#273)

### Changed

Expand All @@ -23,6 +26,11 @@ Lines marked **Upgrade step** need you to act after updating.
- The form list loads faster when a team has many forms. It now needs the same few database queries for one form or a hundred. Before, every form added 3 queries. (#256)
- On screens narrower than 1280 px, a form's editor bar now sits in two rows under the app header: the form with Dashboard and Preview, then Editor, Settings, Integrations and Submissions as tabs. Nothing in it scrolls sideways any more, and the header keeps the logo and your team name. On every screen, keyboard focus in the editor bar and the account menu now shows a blue ring. (#257)
- A form's pages have one top bar instead of two: the form's name with its menu, a Draft or Live label, the pages, Preview, Publish and your account. Publish first checks for questions without text, rules that point to a deleted question and a missing privacy link. Once the form is live, Share has its link, Open form and Unpublish. On a phone the pages sit in a tab bar at the bottom. (#265)
- The form editor shows your whole form as one column. Each question shows its number, answer type, text, and if it is required, has rules or is hidden. The question you work on opens right there, also on a phone, where you couldn't edit questions before. Hiding a question, random order and custom answers are now under the question's Settings. An outline next to the form jumps to any question, and on a phone a question's Settings open from the bottom of the screen. Move a question with Alt+Up/Down, with Move up and Move down in its menu, or by dragging. Duplicate in a question's menu puts a copy right below it. (#268, #272, #275, #277)
- Each rule now shows as a sentence under its question, and a group says when it's hidden. Edit changes a rule right there, and for choices, ratings and scales you pick the answer instead of typing it. A rule whose question was deleted shows in red and can't be saved until you fix it. (#274)
- The form editor uses plain words: a question's settings are headed by its answer type, like Choices or Rating, "Identifier" is now "Short name", and every switch shows on or off. Settings name what they do, like "Lowest value", "Shuffle choices" and "None ticked: all types allowed." on file uploads. (#279)
- The editor's preview shows the end screen while you edit it, with your latest text, and says so when your form sends people to a link instead. Its button opens in a new tab there, so you stay in the editor, and typing in a question you just opened no longer goes into the preview. On a tablet or phone, Esc closes the preview even after you clicked into it. Settings now calls the Completion Page "End screen", like the editor. (#280)
- In the form editor a thin line marks where each question starts, its number stands out more, and the question you edit gets more room around it. On a phone the editor keeps a wider margin at the sides. (#281)
- A logic rule with a missing field now tells you in plain words what to fill in, like "Pick a question for condition 1." (#278)
- Deleting a question, a group, an answer choice, a consent policy or a logic rule in the form editor now asks first in the app's own dialog. It names the question, how many answers will be deleted with it, and the questions whose rules will stop working. A choice nobody picked, or a policy nobody agreed to, is still deleted at once. (#269)

Expand Down
4 changes: 2 additions & 2 deletions docs/embedding-forms.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,13 +115,13 @@ https://app.getinput.co/form-uuid?iframe=1&hideTitle=1&alignLeft=1

## Prefill Questions

You can fill in answers with URL parameters. The parameter name is the question's Identifier (open the question, then "More Settings"). For example, this fills the question with the Identifier `email`:
You can fill in answers with URL parameters. The parameter name is the question's short name (open the question, then **Settings**, then **Short name**). For example, this fills the question with the short name `email`:

```
https://app.getinput.co/form-uuid?email=ada@example.com
```

- Works for short text, long text, email, number, phone and link questions. Parameters for other question types or unknown Identifiers are ignored.
- Works for short text, long text, email, number, phone and link questions. Parameters for other question types or unknown short names are ignored.
- The question still shows, so the visitor can check and change the answer. A question skipped by a jump doesn't send its prefilled answer.
- The value shows as plain text. Encode special characters: `%2B` for `+`, `%20` for a space.
- Number questions take digits with a dot as decimal separator, like `price=12.5`, rounded to the question's decimal places. Anything else is ignored.
Expand Down
2 changes: 1 addition & 1 deletion docs/input-types/checkboxes.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,5 @@ Checkboxes allow users to select multiple options from a list, making them perfe
- When you want to offer comprehensive option coverage

::: warning Note
If you want users to select only one option from a list, use the **Multiple Choice (Radio)** input type instead.
If you want users to select only one option from a list, use the **Single choice** input type instead.
:::
2 changes: 1 addition & 1 deletion docs/input-types/consent.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The Consent input type is designed specifically for gathering agreement from use
1. Choose **Consent** as the input type
2. Enter a clear message explaining what the user is consenting to
3. Configure the consent option with a concise label
4. Toggle "Opt-In Required" if the consent is mandatory to proceed
4. Turn on "Must be ticked" if people must agree to go on

::: tip Best Practice
< Keep consent messages clear and specific. Explain exactly what users are agreeing to, and include links to relevant policies when appropriate.
Expand Down
6 changes: 3 additions & 3 deletions docs/input-types/date.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ The Date input type allows users to select dates from a calendar interface, maki
1. Choose **Date** as the input type
2. Enter the question or prompt asking for a date
3. Configure the date restrictions (optional):
- **Minimum Date**: Earliest date users can select
- **Maximum Date**: Latest date users can select
- **No Past Dates**: Toggle to prevent selection of dates before today
- **Min date**: Earliest date users can select
- **Max date**: Latest date users can select
- **No dates in the past**: Turn on to prevent selection of dates before today

::: tip Best Practice
< Always specify what kind of date you're asking for (appointment date, birth date, event date, etc.) and the expected format in your prompt.
Expand Down
14 changes: 7 additions & 7 deletions docs/input-types/file-upload.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# File Upload 📁
# File upload 📁

The File Upload input type allows users to attach files to their form responses. It supports multiple file types and offers a user-friendly drag-and-drop interface.
The File upload input type allows users to attach files to their form responses. It supports multiple file types and offers a user-friendly drag-and-drop interface.

## How to use:

1. Choose **File Upload** as the input type
1. Choose **File upload** as the input type
2. Enter instructions for what files users should upload
3. Configure the upload settings:
- **Maximum Files**: Set how many files users can upload
- **Maximum File Size**: Limit file size (in MB)
- **Allowed File Types**: Choose which file formats are accepted
- **Most files**: How many files users can upload (1 to 10)
- **Largest file (MB)**: Up to 8 MB per file
- **File types**: Choose which file formats are accepted. None ticked: all types allowed

::: tip Best Practice
< Be specific about what files you're looking for and any requirements (format, size, resolution, etc.) to avoid confusion and unsuccessful uploads.
Expand Down Expand Up @@ -40,7 +40,7 @@ The File Upload input type allows users to attach files to their form responses.
- **Document Collection**: ID verification or signed forms
- **Media Sharing**: Audio or video uploads for feedback

## When to use File Upload:
## When to use File upload:

- When you need users to submit existing files rather than typing information
- For collecting visual or media information that can't be entered as text
Expand Down
16 changes: 8 additions & 8 deletions docs/input-types/long-text.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Long Text 📄
# Long text 📄

The Long Text input type provides a multi-line text area for collecting detailed, open-ended responses from users. It's ideal for comments, feedback, descriptions, and any situation where users need to enter more than a brief phrase.
The Long text input type provides a multi-line text area for collecting detailed, open-ended responses from users. It's ideal for comments, feedback, descriptions, and any situation where users need to enter more than a brief phrase.

## How to use:

1. Select **Long Text** as the input type
1. Select **Long text** as the input type
2. Enter the question or prompt
3. Configure the text area options:
- **Rows**: Number of visible text rows (1-10, default: 5)
- **Maximum Characters**: Limit on response length (default: 500)
- **Height in lines**: How many lines the field shows (1 to 10, default: 5)
- **Max characters**: Limit on response length (default: 500)
- **Placeholder**: Hint text shown when the field is empty
4. Toggle the "Required" option if necessary

Expand All @@ -35,7 +35,7 @@ The Long Text input type provides a multi-line text area for collecting detailed
💡 Set an appropriate character limit based on the expected response length. For short paragraphs, 500 characters is usually sufficient, while detailed feedback might require 1000+ characters. Add clear instructions about the level of detail you're looking for to guide users.
:::

## When to use Long Text:
## When to use Long text:

- When you need more than a single line of text
- For qualitative, open-ended responses
Expand All @@ -45,13 +45,13 @@ The Long Text input type provides a multi-line text area for collecting detailed
- For feedback that requires elaboration

::: warning Note
While Long Text fields are great for detailed responses, very long responses may be difficult for users to type, especially on mobile devices. For extremely detailed information, consider breaking your questions into smaller, more focused parts.
While Long text fields are great for detailed responses, very long responses may be difficult for users to type, especially on mobile devices. For extremely detailed information, consider breaking your questions into smaller, more focused parts.
:::

## Technical Details:

- Text can include line breaks and paragraphs
- The character counter updates in real-time as users type
- Maximum storage capacity is virtually unlimited
- Long Text fields cannot include rich formatting (bold, italics, etc.)
- Long text fields cannot include rich formatting (bold, italics, etc.)

10 changes: 5 additions & 5 deletions docs/input-types/multiplechoice.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Multiple Choice 🔘
# Single choice 🔘

This input type allows users to select one option from a list of choices, perfect for questions with mutually exclusive answers.

## How to use:

1. Choose **Multiple Choice (Radio)** as the input type
1. Choose **Single choice** as the input type
2. Enter the question or prompt
3. Add your answer options, one per line
4. Toggle the "Required" option if necessary
Expand All @@ -14,7 +14,7 @@ This input type allows users to select one option from a list of choices, perfec
- **Single Selection**: Users can select exactly one option
- **Visual Clarity**: Clear indication of which option is selected
- **Option Ordering**: Arrange options in a meaningful sequence
- **Randomization**: Option to randomize choice order to reduce bias (if available)
- **Shuffle choices**: Show the choices in a random order to reduce bias

## Example Uses:

Expand All @@ -28,7 +28,7 @@ This input type allows users to select one option from a list of choices, perfec
🌟 Keep options mutually exclusive and limit the number of choices to prevent overwhelming users. Consider adding an "Other" option for unexpected responses, and arrange options in a logical order (alphabetical, numerical, or by relevance).
:::

## When to use Multiple Choice:
## When to use Single choice:

- When users should select only one option from a list
- For questions with mutually exclusive answers
Expand All @@ -40,4 +40,4 @@ This input type allows users to select one option from a list of choices, perfec
If users might need to select more than one option, use the **Checkboxes** input type instead.
:::

![Multiple Choice Example](/assets/multiplechoice.gif)
![Single choice example](/assets/multiplechoice.gif)
12 changes: 6 additions & 6 deletions docs/input-types/no-interaction.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Information Block 📝
# Text only 📝

The Information Block displays information without requiring any user input. It's perfect for instructions, introductions, explanations, or content that doesn't need a response.
A Text only block displays information without requiring any user input. It's perfect for instructions, introductions, explanations, or content that doesn't need a response.

## How to use:

1. Choose **Information Block** as the block type
1. Choose **Text only** as the block type
2. Enter the content you want to display
3. Format your text using markdown for headings, lists, links, and emphasis
4. Add buttons if you want users to acknowledge the information or make a choice
Expand All @@ -26,10 +26,10 @@ The Information Block displays information without requiring any user input. It'
- **Thank You Messages**: Acknowledgments for participation

::: tip Best Practice
🌟 Keep information blocks concise and visually structured. Use headings, bullet points, and formatting to make content scannable and easy to understand.
🌟 Keep Text only blocks concise and visually structured. Use headings, bullet points, and formatting to make content scannable and easy to understand.
:::

## When to use Information Blocks:
## When to use Text only blocks:

- When you need to provide context before asking questions
- For introductory or concluding information
Expand All @@ -38,5 +38,5 @@ The Information Block displays information without requiring any user input. It'
- For any informational content that doesn't require user input

::: warning Note
Since Information Blocks don't collect any data, they won't appear in your submission results. They're purely for communication with your users.
Since Text only blocks don't collect any data, they won't appear in your submission results. They're purely for communication with your users.
:::
6 changes: 3 additions & 3 deletions docs/input-types/number.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ The Number input type is specifically designed for collecting numerical data wit
1. Choose **Number** as the input type
2. Enter the question or prompt
3. Configure the number options:
- **Decimal Places**: How many decimal digits to allow (0-10)
- **Symbol**: Optional character(s) to display before the number (e.g., $, €, %)
- **Decimal places**: How many decimal digits to allow (0-10). Leave empty for whole numbers only
- **Symbol**: Shown next to the number, e.g. € or kg
- **Placeholder**: Hint text to show when the field is empty
4. Toggle the "Required" option if necessary

Expand Down Expand Up @@ -45,7 +45,7 @@ The Number input type is specifically designed for collecting numerical data wit
- When you want proper numeric formatting (thousands separators)

::: warning Note
Number inputs only accept numeric values. If users might need to add any text or explanations with their numbers, consider using a Short Text input instead.
Number inputs only accept numeric values. If users might need to add any text or explanations with their numbers, consider using a Short text input instead.
:::

## Technical Details:
Expand Down
4 changes: 2 additions & 2 deletions docs/input-types/phone.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This input type is specifically designed for collecting phone numbers with appro

## How to use:

1. Select **Phone Number** as the input type
1. Select **Phone** as the input type
2. Enter the prompt asking for the phone number
3. Optionally, add a placeholder showing the expected format
4. Configure validation requirements if needed
Expand All @@ -28,7 +28,7 @@ This input type is specifically designed for collecting phone numbers with appro
🌟 Always specify what the phone number will be used for and include a privacy statement. For international forms, include example formatting or country code instructions.
:::

## When to use Phone Number input:
## When to use Phone input:

- When you need to contact users by phone or SMS
- For authentication or verification purposes
Expand Down
Loading
Loading