* Add extra status properties to tasks
* Convert extra properties to camelcase
* Replace task status usage in client
* Remove task status data store
* Remove task status endpoint
* Remove remaining task status references
* Add has products to appearance task data
* Handle PR feedback
* Fix up additional data for Avalara task
* Add changelog entry
* Move woocommerce tax flow to subdirectory
* Add partner cards
* Use png for logo files
* Add partner card other actions
* Add partner card styling
* Add in mobile styles
* Interpolate links and html elements
* Redirect to tax configuration if Avalara not supported
* Mark task complete if Alavara is installed
* Record events when task partners are shown or selected
* Add changelog entry
* Update task card flow based on visible partners
* Skip plugin step if all plugins installed
* Move reusable components into subdirectory
* Record available partner options
* Fix type reference
* Wrap callback functions in useCallback to avoid rerenders
* Handle PR feedback
* Add key to partner card container
* Add testing instructions
* - Increased `per_page` parameter of API request in `getRecommendedPlugins` from 6 to 9, to accommodate additional MailPoet item.
- Added new `mailpoet.js` with SVG icon for MailPoet, and corresponding entry to list of product icons.
* Changelog for this change.
* Renamed changelog.
* Added PR number to changelog content.
* Fix formatting
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Wrap notes with Card component -- Added header, badge, and cllipsis menu
* CSS changes to adjust padding and margin
* Change buttons to link style
* Render image only when the layout is thumbnail
* Add hover state
* Update text and classname
* Dismiss note immediately without prompting a confirmation (https://github.com/woocommerce/woocommerce-admin/pull/7868)
* use woocommerce-admin-dismiss-notification class to target the dissmiss btn
* Add changelog
* Specify CSS styles so tha they dont get overridden by other plugins
* Update changelog
* Remove message gap
* Remove unwanted changes from package-lock.json
* Update changelog
* Update WCPay in person text
* Remove div wrapping finish setup button
* Add changelog entry
* Add US specific WooCommerce Payment suggestion
* Allow different gateway suggestion IDs for wcpay
* Add older fallback version of WCPay
* Change check to dev version of 2.9.0
* Use 5.10.0-dev for WC checks
* Add wc-admin-update-store-details note
* Add wc-admin-complete-store-details note
* Add notes to daily cron
* Add conditional display of notes if in experiment
* Fix bug preventing control experience being cached in transient
* Add filtering of experiment notes in REST API
* Revert "Add conditional display of notes if in experiment"
This reverts commit 99908b83d7868ae69dd1ccca1b565ee2de4dff0d.
* Add changelog
* Update changelog
* Refactor experiment condition for performance
* Add back in extension list title
* Separate task list and obw plugin lists
* Remove mailpoet from basics list
* Bump extensions REST API to v3
* Add changelog entry
* Add illustration images
* Refactor the way clicking task is handled, tracking clicks should be during CTA
* Refactor task list on select and rendering
* Add WCPay task and update existing tasks to use new API
* Change payments task behaviour to show after wcpay is connected
* Add couple more tasks
* Add marketing and appearance tasks, customize styles
* Refactor to use svg components instead of images, add custom task titles for experiment
* Updated tracking to be like existing task list
* Change default task shown to be the last
* Cleanup css
* Changelog
* Fix ellipsis menu css to be more specific to the respective tasklist
* Render extended task list
* Remove margin-bottom when the extended task list is empty
* Fix typo
* Remove redundant isVisible check
* Remove unallowedTasks and move it to concat
* Remove woocommerce_tasklist_progression experiment
* Remove duplicate array items
* Use isVisible to check the visibility
* Remove redundant logic
* Initial refactor and consolidation of the DataSourcePoller code
* Move transient logic into DataSourcePoller class
* Fix function name
* Fix tests
* Add changelog
* Fix tests and update use of DataSourcePoller
* Make use of ID's in the DataSourcePoller
* Fix parsing error
* Update data_sources filter
* Add two column version of task list with a new design
* Show number in the status circle
* Set background for the active task
* Remove border top
* Changes in single column
* Task list does not render in the left column if two column task list has been rendered already.
* Your store today and activity panel does not render if user is running two column experiment
* Update the circle border color
* Fix lint issue
* Support single column mode
* Add box-shadow transition
* Fix max width
* Set the first card as the default if all tasks are complete
* Adjust font-weight for the complete tasks
* Use experiment
* Remove unnecessary placeholder
* Use two-column placeholder
* Use the new task REST API
* Remove unused code -- these are no longer used as we are using the new task list REST API
* Update logic to use the new fields
* Update css to fit the homescreen card
* Remove unused var
* Sync changelog from 2.8.0-rc.2 (https://github.com/woocommerce/woocommerce-admin/pull/7783)
* Remove changelogs that were picked into 2.8.0-beta.2
* Update changelog for 7690
* Update changelog for 7743
* Update changelog for 7734
* Update changelog for 7763, 7771
* Remove changelog for 7763 from 2.8.0 since it was in 2.7.2
* Update changelog for 7798
* Show keep & dismiss page when tasks are complete (https://github.com/woocommerce/woocommerce-admin/pull/7684)
* Add two column version of task list with a new design
* Changes in single column
* Task list does not render in the left column if two column task list has been rendered already.
* Your store today and activity panel does not render if user is running two column experiment
* Prompt a modal when hiding the task list
* Add completed compoent
* Move completed task to task-list
* Implement hide and keep list buttons
* Fix keep task list button
* Rename hideTaskCard to hideTasks and keepTaskCard to keepTasks
* Add two column version of task list with a new design
* Show number in the status circle
* Set background for the active task
* Remove border top
* Changes in single column
* Task list does not render in the left column if two column task list has been rendered already.
* Your store today and activity panel does not render if user is running two column experiment
* Update the circle border color
* Fix lint issue
* Support single column mode
* Add box-shadow transition
* Fix max width
* Set the first card as the default if all tasks are complete
* Adjust font-weight for the complete tasks
* Use experiment
* Remove unnecessary placeholder
* Use two-column placeholder
* Use the new task REST API
* Remove unused code -- these are no longer used as we are using the new task list REST API
* Update logic to use the new fields
* Update css to fit the homescreen card
* Remove unused var
* Show keep & dismiss page when tasks are complete (https://github.com/woocommerce/woocommerce-admin/pull/7684)
* Add two column version of task list with a new design
* Changes in single column
* Task list does not render in the left column if two column task list has been rendered already.
* Your store today and activity panel does not render if user is running two column experiment
* Prompt a modal when hiding the task list
* Add completed compoent
* Move completed task to task-list
* Implement hide and keep list buttons
* Fix keep task list button
* Rename hideTaskCard to hideTasks and keepTaskCard to keepTasks
* Remove unnecessary feature checking logic
* Separate && operator for Activity Header and Panel since one of them can be empty
* Add changelog
Co-authored-by: Matt Sherman <matt.sherman@automattic.com>
* Remove changelogs that were picked into 2.8.0-beta.2
* Update changelog for 7690
* Update changelog for 7743
* Update changelog for 7734
* Update changelog for 7763, 7771
* Remove changelog for 7763 from 2.8.0 since it was in 2.7.2
* Update changelog for 7798
* Added first set of task-list tests
* Fix event prefix and add two extra task list tests
* Add test for task list item
* Update package to allow tests with slotfill to work
* Add tests for Task component
* Add tasks tests
* Revert package.json changes
* Update prefixEvent function and revert package.json changes
* Remove class additions to body tag
* Add missing styles to tasks container as well
* Add route and layout for unmatched path
* Add NoMatch to catch missing report pages
* Load WooCommerce Admin scripts on all pages
* Move NoMatch inside default page layout
* Add permission checks to tabs
* Allow update_option_extended_task_list to be called on non-admin pages
* Check for task list task count in extended list update function
* Add changelog entry
* Add PR number to changelog entry
* Remove deprecated extended task list filter and tests
* initial push
* Add E2E test for onboarding currency
* Wait for navigation to complete
* Change method for value check
* Fix dropdown selector
* Add more country tests
* Add changelog entry
* Add test to runner
* Change the call order
* Fix country specs
* Fix country specs for UK
* Try changelog again
* Move changelog record to e2e-tests
* Convert string concats to template literals
* Remove spaces
* Fix linter errors
* Add check for WCPay supported countries
* Add an 'onBlur' property to the 'DateInput' component
This allows passing a callback function for the input's onBlur event.
* Close the calendar when an element outside the parent dropdown gets focused
Previously, you had to click on the calendar and then click anywhere else for it to be closed without selecting a date. Now the calendar gets closed when any element outside the parent's dropdown element gets thefocus.
* Remove redundant code for dismissing the calendar when pressing the tab key
Dismissing the calendar this way doesn't seem to be good for accessibility. That aside, the introduced dismissal on blur handles the scenario of when the calendar isn't needed anymore and the user is navigating with the keyboard.
* Add changelog entry
* Use the PR ID instead of the issue ID for the changelog entry
* Separate new declaration on a new line instead of using a comma
* Add an entry to the packages/components/ changelog
* Move some of the deprecated tasks stuff outside of the main components
* Do not add data to request when no depreciated tasks
* Move possiblePruneTaskData function to the deprecated-tasks class
* Make sure the depreciated onClick is triggered and container is used
* Fix the extended tasks condition
* Add sort by support for task list
* Revert extension example changes back
* Move sorting tasks to the API and add asc/desc support
* Revert extension example changes
* Update sort function naming
* Remove background color from marketing tool list header, increasee padding in plugin list, rearrange list borders.
* Changelog entry for 7642.
* Section heading tweaks: bottom padding, force uppercase.
* Move Marketing task plugin list changes into more specific stylesheet.
* Remove feature flag
* Remove unused task status items
* Remove old task list components
* Remove more unused task status items
* Move completion checking to TaskList class
* Move completion checking to Task class
* Add changelog entry
* Fix up old task-list component references
* Remove flag around slotfill area
* Add back missing task stylesheet
* Move task specific styles to respective fills
* Add PR number to changelog entry
* Add checks for actioned task status
* Update completion logic for task
* Add rest route for actioning tasks
* Add action in data store for actioning tasks
* Add test for actioning task
* Only prune isActioned from task data
* Add extended task list support to the new REST api task lists
* Some small refactors
* Small refactors from PR review
* Create extended tasks on the fly if added on the client
* Remove unneeded change
* Add level and additionalInfo support, also adding it to the WooCommerce Payments task
* Fix a mis-type in a comment
* Bumps version to 2.9.0-dev
* Delete changelog files from 2.7.x and 2.8.0
* Update changelog for 2.7.1 and 2.8.0
* Update testing instructions for 2.7.1
* Add changelog and enable promotion in core and plugin configs
* Add PR number
* Make variation name a constant
* Clone spec as we are overwriting the is_visible prop
* Fix unit tests and support array and object
* Revert explat variation name
* Update changelog entry
* Update changelog once more
* Make sure the recommendations show up if marketplace suggestions is not defined defaulting to 'yes'
* Include yoast phpunit polyfills in phpunit tests
* Do a normal composer install
* Use original composer.lock
* Remove the use of composer 1
* Fix asset url
* Fix failed test with file rename
* Make sure plugin_dir_url is pointing at a file
* Fix asset url take 3
* Fix lint error
* Assign parent order status as children order status if refund order
* Handle feedback
* Add changelog entry
* Check order type before calling get_refunds
* Add France to list of countries that get Square as an option if selling venues includes brick-mortar or brick-mortar-other.
* Changelog for 7631_include_square_in_fr.
* Add a command to sort PRs by merge date in asc -- this can be useful when we cherry-pick PRs for the releases
* Check # of arguments
* Convert PHP to shell script
* Fix Marketing tools header: add missing page title for marketing task.
* Add changelog.
* Add PR number to changelog entry for issue woocommerce/woocommerce-admin#7548.
Co-authored-by: Jacob Sewell <jacob.sewell@automattic.com>
* Add woocommerce.com data source poller
* Change data source back to .com
* Fix namespace
* Make use of the sub_title prop to display payment cards
* Fix some styling issue and add TS types
* Rename admin script to keep it more generic
* Add br tag as allowed, and update expected data format
* Update styling
* Address PR feedback
* Render psuedo wc pay payment gateway in payment method table
* Fix lint errors
* Fix lint error
* Add setup event and make use of script_assets file
* Left align payment icons
* Fix feature import and update pageview track
* Fix broken test and add an extra one
* Fix payment method ordering persistance
* Remove the use of psuedo and addressed several PR related feedback
* Fix PHP lint errors
* Make sure track props use underscore
* Fix test
* Update comment
* Add await
* Add optional parameter to `/currency`'s `formatAmount` to display currency code.
To support rendering non-ambiguous results.
* Add the changelog entry.
* Add hide and show task list tests
* The start to adding tests for the activity panel
* Add activity panel tests and WP-API plugin on initialize
* Update task list tests to be more flexible
* Add changelog in package
* Update the re-enable task list logic to be more robust
* Use a more generic selector
* Make sure task list is shown in previous test
* Add test screenshot
* Remove screenshot and update logic
* Address PR feedback
* Add endpoint to hide task lists
* Migrate old setup task list hidden option
* Use option to store all hidden lists
* Add getter for deprecated options
* Migrate old task list options
* Move task lists into separate class
* Add TaskList class for individual task list control
* Update hidden checks to use TaskList api
* Update docs for hidden lists
* Update use of should_show_tasks to check for visible task lists
* Remove hide endpoint to reduce scope on PR
* Fix up failing tests
* Fix up rebase
* Add back in should_show_tasks with deprecation notice
* Add delay between payment tests
* Add initial task list render
* Add task list item render
* Separate task list menu component
* Fix click handling for tasks
* Add task started count data
* Scroll to top after selecting task
* Handle PR feedback
* Handle PR feedback round 2
* Add woocommerce_task_list_visited_tasks option for marketing task completion
* Add changelog
* Use trackedCompletedActions to track completed actions
* Change completed action name
* Check # of installed extension for the completion logic
* Do not update completed action if marketing already exists
Co-authored-by: Moon <moon.kyong@automattic.com>
* Add evaluation logger
* Update readme
* Use simplified log format
* Add a new line at the end
* Move constant checking to consumer level
* Rename constant name
* Check constant before checking the value
* Fix test
* Add changelog
* Move initialization of the logger to RuleEvaluator and use more generic constant name
* Remove the default source value
* Update readme.txt
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Update src/RemoteInboxNotifications/README.md
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Update src/RemoteInboxNotifications/RuleEvaluator.php
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Add soruce -- remote-inbox-notifications
* Move WC_ADMIN_DEBUG_RULE_EVALUATOR check to the logger
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Add a new command to build testing instructions by a given version
* Check - [ ] Include test instructions in the release checkbox
* Fix code format
* Code cleanup
* Fix config error
* Update README.md
* Update README.md
* Update README.md
* Remove js version
* Remove test file
* A minor refactor
* Reuse parse() method from the WCAdminFormatter.php
* Exclude PRs with "no release testing instructions" label
* Remove Requests:multi_request dependency
* Remove wp load script
* show Pinterest for WooCommerce in `Marketing > Installed`
* tweak Pinterest bounding rect so padding is consistent with other icons
* add changelog entry
* add testing instructions
* tweak wording for clarity
* link to correct Pinterest admin settings URL
* detect if Pinterest is set up & link to onboarding if appropriate
* add utm_medium campaign link tracker tag to docs link
* change all the logs 🪵
* Remove redundant changelog entry from readme
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* remove todo for Pinterest onboarded/setup status (now implemented)
Co-authored-by: Rua Haszard <rua@automattic.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Initial set up for the WCAdminSettingsRegistry
* Make use of filter for admin settings
* Add wc/settings package and remove depreciated dropzone wrapper
* Make use of the getSetting function instead of accessing window directly
* Add comments
* Add changelog
* Remove un needed changes
* Update dropzone provider logic and fix styling
* Remove old css
* initial refactor
* Fix auto fill and write tests
* Removed autofill from country/region and added support for abbreviation regions
* Add changelog
* Add changelog for the component package
* Fix clear form for autofill
* Remove dollar sign and space to fix the syntax error.
Remove dollar sign and space
* , separated file list does not work with phpcs. Use space instead
* Set default value for orders var
* Add changelog
* Add PR # to the changelog
* Return default orders in the early return statement
* Adding the default value for the order var
* Revert the early return changes
* Sentence case all the things
* Update a few more things that were missed on the first round
* update documentation titles to use title case
* Add changelog
* Handle PR feedback
* Revert readme changelog changes
* Revert changes to ALT text in dev documentation
* Revert a change to ALT text in dev documentation
* Fix failing tests
Co-authored-by: David Levin <davidlevin@Davids-MacBook-Pro-2.local>
Co-authored-by: Joshua Flowers <joshuatf@gmail.com>
Co-authored-by: Adrian Duffell <9312929+adrianduffell@users.noreply.github.com>
* Fix end date for last periods
* Test February end date for leap year
* Add changelog and testing instructions
* Handle feedback
* Fix merge conflict
* Add changelog
* Split the Extensions page into Marketplace and My Subscriptions.
* Add changelog entry.
Co-authored-by: And Finally <andfinally@users.noreply.github.com>
* Update Table components to align texts and numeric a bit smarter
Text fields are left-aligned and numeric values should be right-aligned.
* Update a snapshot test
npm run test:client -- --updateSnapshot client/analytics/components/leaderboard/test/index.js
* Add tests for property isLeftAligned
* Do not retain values when switching between rules in the DateFilter component
* Add changelog entry
* Remove unnecessary use of the ternary operator
* Fix the changelog entry
* Add tests
* Add changelog entry
Co-authored-by: Chris <chris.aprea@automattic.comchris.aprea@automattic.comchris.aprea@automattic.com>
* Add default free extensions to REST API response
* Use data store to retrieve free extensions
* Add back in product link click tracks
* Handle visibility and evaluation server-side
* Update sprintf to use entire link tag
* Fix up remote free extensions rule evaluation
* Add visibility rules to mailpoet
* Fix fallback to default payment gateways if polling fails
* Add changelog entry
* Fix empty array check
Co-authored-by: Matt Sherman <matt@jam123.com>
* Extract extension list transformation logic
* Check for installed marketing extensions in the task list
* Add tests for marketing extension utils
* Remove use of useMemo in non-component
* Separate installed plugins from plugin lists
* Only show plugin lists when plugins exist
* Use installedExtensions for tracks
* Fix boolean check on list plugin length
* Fix text style changes with Gutenberg Text component
* Update to match new designs for plugin list
* Skip non-allowed lists for installed plugins
* Add changelog entry
* Handle styling feedback
* Add initial plugin list components and marketing task
* Add marketing task styles
* Fix action button alignment
* Only allow specific plugin lists
* Add button to activate already installed plugins
* Record event when marketing plugin is installed
* Update plugin list when plugins are installed or activated
* Disable and set buttons as busy when installing/activating
* Update data source to use v2 controller
* Add changelog entry
By adding a `isReverseTrend` prop we can pass to `SummaryNumber` we can indicate that a negative trend in refunds is a good thing and therefore display a green indicator.
* Match stock status in CSV download to the table
* Add changelog
* Set status value from stockStatuses
* Update stock status for server-side export
* Replace status value in the controller
* Remove unnecessary call to constructor
* Remove changelog from readme
* Add changelog
* Add `hidden` legendPosition to `Chart`.
Sometimes, for example, when there is a single data set, there is no need for rendering the legend. It may even introduce more confusion than value. It seems interactive, but there is nothing you can do with it.
Fixes: https://github.com/woocommerce/google-listings-and-ads/issues/618
* Add `@storybook/addon-knobs` to devDependencies.
It was used but not explicitely stated.
* Add a changelog entry.
* Add tests for legendPosition in Chart component
Co-authored-by: Lourens Schep <lourensschep@gmail.com>
The deprecated (but not removed) `onChangeCallback` and `onSubmitCallback` props were not being called because of an error in the logic that checked for presence of the new callbacks (it was always truthy due to it having a fallback to an empty function).
This reverses the logic so that if the deprecated props are provided they will be called, if the new props (only) are provided they will be called instead.
This also pushes the removal of these back to 9.0.0, because in the past these deprecated version numbers had little thought behind them, but this gives a more realistic time frame for removal and an understanding that a *major* version will break compatibility, not a patch version as the old version number suggested.
* Register a fake wc-admin homepage to for users without permission
* Update removal cap to manage_woocommerce
* Fix WooCommerce menu item position and icon
* Fix up admin user checks
* Handle PR feedback
* Only disable redirection on wc-admin pages
* Remove woocommerce_prevent_admin_access filter
* Add changelog entry
* Using order items endpoint instead of reports and added customer and products support
* Add total_formatted key
* Converted component to functional component and memoized getItems function
* Using orders meta table instead of reports product_lookup table
* Add changelog entry
* Add a new endpoint to get low in stock products.
* Set images and attributes property
* WIP -- set last order date
* Do not join postmeta if store does not have any custom stock threshold
* Combine get_query() and get_query_for_sitewide_threshold() into one method and a few code clean ups
* Support status field
* Use new products/low-in-stock endpoint to count low in stock products.
* Use new products/low-in-stock to get low in stock products data.
* Remove low_in_stock support
* Deprecate low_in_stock
* Use the new ProductsLowInStock when low_in_stock is set
* Set cache-control header for the new endpoint
* Use wc_rest_prepare_date_response to format the response date
* Extract low in stock test to a separate file
* Make is_using_sitewide_stock_threshold_only protected
* Revert Products.php changes
* Add back low in stock test to products test
* Remove unnecessary if
* Make the controller final
* Deprecate low_in_stock
* Bug fix -- last_order_date was not setting correctly for variation post type. This commit fixes it
* Add changelog
* Pre-release for 2.5.0-beta.1
* update changelog
* revert version bump
* revert package.lock
* entry for 2.5.0
* Sync with 2.4 release and removed some duplicates
* add changelog from 7186
Co-authored-by: Rebecca Scott <me@becdetat.com>
Co-authored-by: Ilyas Foo <foo.ilyas@gmail.com>
* Add components-dropdown__content class -- this is for Safari as Safari returns parent element as a related target in this case
* Remove unnecessary style
* Add TableSummaryPlaceholder
* Expose TableSummaryPlaceholder to package @woocommerce/components
* Add test instructions and changelog entries to MD files
* Add tests for TableSummaryPlaceholder
* Add storybook for TableSummaryPlaceholder
* bump E2E package versions to latest
* first pass on E2E test package.json
* move e2e specs to admin-e2e-tests
* add global types, reimplement tests/e2e/specs
* use consistent build dir with other packages
* add documentation, improve test:e2e script
* fix linting issues in admin-e2e-tests
* fix more linting issues
* disable lint on requires
* use e2e in the E2E container names
* move analytics overview test to package
* change extension on analytics-overview test file
* fix linting issues in e2e analytics overview
* remove package scripts from e2e package
* change test specs extensions to .tsx
* remove import from analytics overview test spec
* add .tsx to e2e test spec file extension list
* update e2e business features count expected
* Remove facebook marketing extension from fallback config
* Update changelog and testing instructions
* Update changelog to use the shiny new Jetpack changelogger
* add @slotFill to process
* add types
* committing data
* use filter instead of hook
* changelog
* add action type
* update paths to ignore builds and node_modules
* changelog
* Add action data type
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
Co-authored-by: Joshua T Flowers <joshuatf@gmail.com>
* Make action button optional, and disable VerticalCSSTransition when expandable is false
* Update collapsible list to support nested element transitions
* Add changelog
* Address some small PR feedback, and fix tests
* Add expanded class, and remove cursor when expanded
* Make sure margin is added to container height
* Update broken tests
* Add radix to parseInt method
* on Filter update, keep all queries
* changelog
* package changelog
* instead of keeping everything else, remove advancedFilters when main filter is set to 'all'
* remove all queries associated with filter in question
* dedupe params
* add tests
* Added onDelete prop to `task-item`.
* Added `onDelete` and `Remid me later` options to task example in docs.
* Added changelog
* Fixed lint error
* Fixed another lint error
Co-authored-by: Fernando Marichal <contacto@fernandomarichal.com>
- Use headings in issues templates,
instead of bold paragraphs.
To match with PR template, to improve readability and accessibility.
- Add the "Actual behavior" section.
The reviewer, would not have to get that from the description or test locally.
- Reorder sections,
Screenshots (and actual behavior) describes what you have immediately after you perform "steps to reproduce", so therefore could be stated there. It's hard to make a screenshot of the "expected behavior", which is not happening.
- Move section descriptions to comments.
This way the issuer could still keep them in place while filling the sections, answering those requests.
- Use ellipsis character instead of three dots.
To make it more readable, by fully sighted and visually impaired readers https://tosbourn.com/the-importance-of-using-the-ellipsis-character not to read it as "dot dot dot"