Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
9425274
chore: use lodash-es over per-function packages (#1112)
sethidden Jun 13, 2022
41d9985
test: add StoresModal unit tests (#1113)
bartoszherba Jun 13, 2022
d1ba192
fix: hide mobile address delete buttons on default addresses (#1116)
sethidden Jun 13, 2022
1b21f10
fix: don't require two characters in profile update form (#1117)
sethidden Jun 13, 2022
4aa6e26
fix: moving back in history after logout shouldn't 404 (#1118)
sethidden Jun 13, 2022
ea4980a
test: useCurrency unit tests (#1119)
bartoszherba Jun 13, 2022
d90a076
build: fixed setup-node action (#1122)
Jun 13, 2022
064ca8d
fix: checkout province state code issue (#1120)
bartoszherba Jun 13, 2022
9b5e81b
feat: add quantity error message on the PDP when adding to the cart (…
bartoszherba Jun 13, 2022
bf0d6bb
fix: m2-593. my account password change toast fix (#1124)
bartoszherba Jun 14, 2022
0ff748a
fix: m2-610. fix pagination on mobile wishlist view (#1125)
bartoszherba Jun 14, 2022
fff7c1d
refactor: added ui notifications to register form (#1127)
Jun 14, 2022
ad971e9
test: add BottomNavigation tests (#1114)
sethidden Jun 15, 2022
3ab5ab8
test: added missing custom queries to composables (#1126)
Jun 15, 2022
8a88da8
fix: mobile category tree parent categories should allow viewing chil…
sethidden Jun 15, 2022
bed6b6e
fix: close search results if close button clicked
sethidden Jun 15, 2022
764c51f
fix: missing required (*) near rating dropdown
sethidden Jun 15, 2022
88b6eab
fix: use same phone number validation as in my account
sethidden Jun 15, 2022
31bc846
fix: show phone number in shipping and billing address picker
sethidden Jun 15, 2022
4d611de
fix: don't make 'show password' button huge
sethidden Jun 15, 2022
8ff2105
fix: m2-705. fixed adding grouped product to cart from catalog (#1136)
Jun 17, 2022
dd778ca
fix: m2-613. fixed order details 500 error (#1134)
Jun 17, 2022
b27f0e5
fix: country SfSelect overlapping with value
sethidden Jun 17, 2022
9f24ddf
fix: m2-709. fixed shipping addresses layout on checkout shipping ste…
Jun 17, 2022
e8cc779
fix: m2-620. wishlist amount of displayed products is changed after v…
bartoszherba Jun 17, 2022
e55e4c7
fix: overlapping homepage app store buttons
sethidden Jun 17, 2022
d45fa8b
fix: pressing home button shouldn't open sidebar
sethidden Jun 17, 2022
74f06ca
fix: m2-619. wishlist show products limit increased (#1128)
bartoszherba Jun 20, 2022
9ca186b
fix: mobile filter controls too close to left edge (#1149)
sethidden Jun 21, 2022
66e0b8f
fix: pagination not visible on order history view (#1148)
sethidden Jun 21, 2022
a24b522
fix: search cancel button narrow when 2-3 search results (#1147)
sethidden Jun 21, 2022
7897787
fix: user addresses - reset region if changing country (#1140)
sethidden Jun 21, 2022
d8a898d
fix: pressing enter should search immediately (#1144)
sethidden Jun 21, 2022
f2279e9
ci: create gh deployment entry as early as possible
sethidden Jun 21, 2022
855cd7a
fix: move user to first page of products after applying filters
sethidden Jun 21, 2022
918cbbb
fix: country sfselect overlapping with default value
sethidden Jun 22, 2022
f50f3e0
fix: sfselect size label overlap
sethidden Jun 22, 2022
e0efd09
Merge pull request #1157 from vuestorefront/chore/main-dev-rc.9
Jun 23, 2022
a65ba17
ci: make deployment 'success' status more accurate
sethidden Jun 22, 2022
ce23cbe
fix(checkout): country codes instead of names
sethidden Jun 22, 2022
d514137
fix: show region name, not region code
sethidden Jun 22, 2022
45b12e0
fix: m2-668. product pricing
Jun 20, 2022
7d7e157
fix: flickering on hover bundle product preview in minicart
sethidden Jun 22, 2022
7683728
fix: m2-668. fixed pricing calculation on pdp
Jun 21, 2022
2530544
fix: move to first page when changing category itemsPerPage
sethidden Jun 23, 2022
fdd25db
fix: cart should be cleared after logout finishes
sethidden Jun 23, 2022
d2c00ac
fix: m2-860. cart, checkout - size and colour values are wrongly disp…
Jun 23, 2022
505c6d8
Merge pull request #1146 from vuestorefront/M2-668-product-page-price…
Jun 23, 2022
4019033
Merge pull request #1161 from vuestorefront/M2-860-cart-checkout-size…
Jun 24, 2022
663486c
fix: my account - display country names, not codes
sethidden Jun 23, 2022
32411b4
ci: remove assign-pr-to-author-action
sethidden Jun 24, 2022
e4f438b
ci: don't fetch all npm pkgs just to commitlint
sethidden Jun 24, 2022
61d2c2e
fix(checkout): find addresses with numeric id
sethidden Jun 24, 2022
fe7898c
fix(useUser): don't login after register if register errors present
sethidden Jun 24, 2022
d2a9afd
fix(checkout): show detailed login/register error
sethidden Jun 24, 2022
4bc3849
fix(checkout): handle to login errors aswell
sethidden Jun 24, 2022
dbd15f0
refactor: remove negation
sethidden Jun 24, 2022
a16f78a
fix(category): prevent containers wider than viewport on mobile
sethidden Jun 24, 2022
ff64873
fix(category): last card in first row larger than rest of cards
sethidden Jun 24, 2022
3052516
fix(category): filters btn offscreen on 320px wide viewport
sethidden Jun 24, 2022
c56d15d
fix: shipping methods not being returned due to wrong param
sethidden Jun 27, 2022
63ade40
refactor: m2-709. user addresses styling
Jun 27, 2022
a4d78fb
fix: m2-861 - merging catr doesn't work for bundled products
Jun 28, 2022
7591a92
fix: mobile category add to cart button is missin on mobile view
bartoszherba Jun 27, 2022
b8bfba4
Merge pull request #1173 from vuestorefront/M2-709-shipping-billing-p…
Jun 28, 2022
96d328e
fix: when changing itemsPerPage, also reset page to 0
sethidden Jun 27, 2022
87feab4
fix: unify login/register notifications and error handling
sethidden Jun 27, 2022
63af67a
Merge pull request #1176 from vuestorefront/M2-861-cart-merging-carts…
Jun 29, 2022
581181c
fix: m2-860. fixed wrong values of selected configurable product vari…
Jun 29, 2022
b570f14
refactor(checkout): simplify billing/checkout logic
sethidden Jun 28, 2022
89a6658
fix(checkout): use country name instead of code in "same as shipping"
sethidden Jun 28, 2022
112bd08
Update packages/theme/modules/checkout/composables/useCart/commands/a…
Jun 29, 2022
256f0dd
Merge pull request #1178 from vuestorefront/M2-860-cart-checkout-size…
Jun 29, 2022
0453037
fix: m2-618. fixed mega menu z-index in safari
Jun 29, 2022
a065bc2
fix: error during recaptcha verification
bartoszherba Jun 28, 2022
0520d53
fix: mobile category add to cart button is missin on mobile view
bartoszherba Jun 28, 2022
3c0a879
Merge pull request #1181 from vuestorefront/M2-618-my-account-content…
Jun 30, 2022
1a249b6
docs: add Getting started section
filipsobol Jun 13, 2022
187d899
docs: update based on feedback
filipsobol Jun 15, 2022
f16785e
docs: add Getting started section
filipsobol Jun 13, 2022
f7d2b57
docs: remove outdated information
filipsobol Jun 23, 2022
0a282fd
docs: added information about folders structure
Jun 30, 2022
0a8e3f4
perf: category page CLS improvement
bartoszherba Jun 29, 2022
a56410d
perf: category page CLS improvement
bartoszherba Jun 29, 2022
2f2e86c
Merge pull request #1179 from vuestorefront/M2-836-category-page-cumu…
Jun 30, 2022
5b9d8e8
fix: checkout discounted price is wrongly displayed
bartoszherba Jun 29, 2022
07e3521
fix: recaptcha dockerfile invalid env name
bartoszherba Jun 30, 2022
79c87ce
fix: temporary disable reCaptcha
bartoszherba Jun 30, 2022
54ff69e
test(load): add K6 load test workflow with example test
sethidden Jun 29, 2022
1321511
fix: enable recaptcha
bartoszherba Jun 30, 2022
3ef83b7
fix: m2-839. product names with special signs are wrongly encoded
bartoszherba Jul 1, 2022
ee6404b
fix: m2.703. cart three dots icon on mobile view
bartoszherba Jul 1, 2022
c516720
fix: m2-697. category page filters translation
bartoszherba Jul 1, 2022
e3f41b0
fix: empty list of currencies while trying to change currency
bartoszherba Jun 30, 2022
29a6a89
Merge pull request #1197 from vuestorefront/M2-697-category-page-not-…
Jul 1, 2022
8c00b27
Merge pull request #1196 from vuestorefront/M2-703-cart-three-dots-ic…
Jul 1, 2022
6742930
Merge pull request #1195 from vuestorefront/M2-839-my-account-product…
Jul 1, 2022
54bf43f
Merge pull request #1121 from vuestorefront/20220613-add-getting-star…
Jul 1, 2022
f6a4926
fix: m2-668. fixed price recalculation for configurable products
Jul 1, 2022
e358430
fix: m2-743. incorrect add-to-cart label on mobile menu
bartoszherba Jul 4, 2022
482d6d9
Merge pull request #1201 from vuestorefront/M2-743-incorrect-label-ad…
Jul 4, 2022
37ae8cf
Merge pull request #1199 from vuestorefront/M2-668-product-page-price…
Jul 4, 2022
f643226
chore: release 1.0.0-rc.10
web-flow Jul 4, 2022
e566bdc
fix: m2-596. my account province state value displayed as a code
bartoszherba Jul 4, 2022
04d05f7
Merge branch 'main' into release/1.0.0-rc.10
Jul 4, 2022
68ad959
build: changed recaptcha config
Jul 4, 2022
84f6279
Merge pull request #1204 from vuestorefront/build/captcha
Jul 4, 2022
7cd0935
fix: m2-917. login registration does not work with recaptcha
bartoszherba Jul 4, 2022
05111ff
Merge pull request #1203 from vuestorefront/M2-596-my-account-provinc…
Jul 4, 2022
73d065a
Merge pull request #1205 from vuestorefront/M2-917-login-registration…
Jul 4, 2022
3135b30
Merge branch 'develop' into release/1.0.0-rc.10
Jul 4, 2022
5824837
fix: m2-723 - button add to cart doesn't work for configurable products
Jul 5, 2022
664454e
Merge pull request #1208 from vuestorefront/M2-920-product-detail-pag…
Jul 6, 2022
55a59e8
fix: currency cookie breaks the application
bartoszherba Jul 6, 2022
3361878
Merge pull request #1210 from vuestorefront/M2-918-currency-cookie-br…
Jul 6, 2022
dfc5412
Merge branch 'develop' into release/1.0.0-rc.10
Jul 6, 2022
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
9 changes: 4 additions & 5 deletions .github/workflows/conventional-pr-name.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,13 @@ jobs:
name: Validate PR Title (conventional-commit)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1

- uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: "16"

- name: Install Dependencies
run: yarn
run: rm package.json && npm i @commitlint/config-conventional

- uses: JulienKode/pull-request-name-linter-action@v0.2.0
- uses: JulienKode/pull-request-name-linter-action@v0.5.0
121 changes: 73 additions & 48 deletions .github/workflows/deploy-vue-storefront-cloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,62 @@ on:
- release/*

jobs:
create-deployment:
runs-on: ubuntu-latest
outputs:
environment-name: ${{ steps.determine-environment.outputs.name }}
environment-code: ${{ steps.determine-environment.outputs.code }}
deployment_id: ${{ steps.deployment.outputs.deployment_id }}
steps:
- name: Determine environment name
id: determine-environment
shell: bash
run: |
REF=${{ github.ref }}

if [ $REF = 'refs/heads/main' ]; then
ENVNAME='production'
ENVCODE='demo-magento2'

elif [ $REF = 'refs/heads/develop' ]; then
ENVNAME='dev'
ENVCODE='demo-magento2-dev'

elif [[ $REF = refs/heads/release* ]]; then
ENVNAME='canary'
ENVCODE='demo-magento2-canary'

elif [ $REF = 'refs/heads/enterprise' ]; then
ENVNAME='enterprise'
ENVCODE='demo-magento2-enterprise'

else
echo 'unrecognized branch name'
exit 1
fi

echo ::set-output name=name::$ENVNAME
echo ::set-output name=code::$ENVCODE

- name: Create GitHub deployment
id: deployment
uses: chrnorm/deployment-action@v2
with:
token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}
environment: ${{ steps.determine-environment.outputs.name }}
initial-status: in_progress
build:
needs: create-deployment
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v1

- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 16.x

- name: Build and publish docker image
uses: elgohr/Publish-Docker-Github-Action@master
with:
Expand Down Expand Up @@ -53,66 +100,44 @@ jobs:
VSF_REDIS_CACHE_INVALIDATE_KEY: magento2vsf2
VSF_REDIS_CACHE_INVALIDATE_URL: /cache-invalidate

VSF_RECAPTCHA_ENABLED: false
VSF_RECAPTCHA_HIDE_BADGE: false
VSF_RECAPTCHA_ENABLED: true
VSF_RECAPTCHA_VERSION: 3
VSF_RECAPTCHA_SIZE: invisible
VSF_RECAPTCHA_MIN_SCORE: 0.5
VSF_RECAPTCHA_MIN_SCORE: 1.0
VSF_RECAPTCHA_SITE_KEY: 6Ldce0EeAAAAAAGGtGWG-e-SygXiFub6PXHT5fKd
VSF_RECAPTCHA_SECRET_KEY: ${{ secrets.RECAPTCHA_SECRET_KEY }}

VSF_SENTRY_DSN: ${{ secrets.SENTRY_DSN }}

LAST_COMMIT: ${{ github.sha }}

deploy-main:
deploy:
needs: [create-deployment, build]
uses: ./.github/workflows/deployment-template.yml
needs: build
if: github.ref == 'refs/heads/main'
with:
github_environment_name: production
environment_code: demo-magento2
target_url: https://demo-magento2.europe-west1.gcp.storefrontcloud.io
environment-code: ${{ needs.create-deployment.outputs.environment-code }}
secrets:
cloud_username: ${{ secrets.CLOUD_USERNAME }}
cloud_password: ${{ secrets.CLOUD_PASSWORD }}
deployment_status_token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}
cloud-username: ${{ secrets.CLOUD_USERNAME }}
cloud-password: ${{ secrets.CLOUD_PASSWORD }}

deploy-develop:
uses: ./.github/workflows/deployment-template.yml
needs: build
if: github.ref == 'refs/heads/develop'
with:
github_environment_name: dev
environment_code: demo-magento2-dev
target_url: https://demo-magento2-dev.europe-west1.gcp.storefrontcloud.io
secrets:
cloud_username: ${{ secrets.CLOUD_USERNAME }}
cloud_password: ${{ secrets.CLOUD_PASSWORD }}
deployment_status_token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}

deploy-release:
uses: ./.github/workflows/deployment-template.yml
needs: build
if: startsWith(github.ref, 'refs/heads/release')
with:
github_environment_name: canary
environment_code: demo-magento2-canary
target_url: https://demo-magento2-canary.europe-west1.gcp.storefrontcloud.io
secrets:
cloud_username: ${{ secrets.CLOUD_USERNAME }}
cloud_password: ${{ secrets.CLOUD_PASSWORD }}
deployment_status_token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}
finalize-deployment:
runs-on: ubuntu-latest
needs: [create-deployment, build, deploy]
if: always()
steps:
- name: Update deployment status (success)
if: ${{ !(contains(join(needs.*.result, ','), 'failure') || contains(join(needs.*.result, ','), 'cancelled')) }}
uses: chrnorm/deployment-status@v2
with:
token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}
deployment-id: ${{ needs.create-deployment.outputs.deployment_id }}
state: success

deploy-enterprise:
uses: ./.github/workflows/deployment-template.yml
needs: build
if: github.ref == 'refs/heads/enterprise'
with:
github_environment_name: enterprise
environment_code: demo-magento2-enterprise
target_url: https://demo-magento2-enterprise.europe-west1.gcp.storefrontcloud.io
secrets:
cloud_username: ${{ secrets.CLOUD_USERNAME }}
cloud_password: ${{ secrets.CLOUD_PASSWORD }}
deployment_status_token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}
- name: Update deployment status (failure)
if: ${{ contains(join(needs.*.result, ','), 'failure') || contains(join(needs.*.result, ','), 'cancelled') }}
uses: chrnorm/deployment-status@v2
with:
token: ${{ secrets.DEPLOYMENT_PERSONAL_ACCESS_TOKEN }}
deployment-id: ${{ needs.create-deployment.outputs.deployment_id }}
state: failure
57 changes: 12 additions & 45 deletions .github/workflows/deployment-template.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,23 @@
on:
workflow_call:
inputs:
github_environment_name:
environment-code:
required: true
type: string

environment_code:
required: true
type: string

target_url:
required: true
type: string
secrets:
cloud_username:
cloud-username:
required: true
cloud_password:
cloud-password:
required: true
deployment_status_token: # can be ${{ github.token }}
required: true


jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: chrnorm/deployment-action@releases/v1
name: Create GitHub deployment
id: deployment
with:
token: ${{ secrets.deployment_status_token }}
environment: ${{ inputs.github_environment_name }}
initial_status: in_progress
target_url: ${{ inputs.target_url }}
- name: Deploy on ${{ inputs.target_url }}
run: |
if curl -s -H 'X-User-Id: ${{ secrets.cloud_username }}' -H 'X-Api-Key: ${{ secrets.cloud_password }}' -H 'Content-Type: application/json' -X POST -d '{
"code":"${{ inputs.environment_code }}",
- run: |
if curl -s -H 'X-User-Id: ${{ secrets.cloud-username }}' -H 'X-Api-Key: ${{ secrets.cloud-password }}' -H 'Content-Type: application/json' -X POST -d '{
"code":"${{ inputs.environment-code }}",
"region":"europe-west1.gcp",
"frontContainerVersion":"${{ github.sha }}"
}' https://farmer.storefrontcloud.io/instances | grep -q '{"code":200,"result":"Instance updated!"}'; then
Expand All @@ -47,23 +28,9 @@ jobs:
exit 1
fi

- name: Update deployment status (success)
if: success()
uses: chrnorm/deployment-status@releases/v1
with:
token: ${{ secrets.deployment_status_token }}
target_url: ${{ inputs.target_url }}
state: success
description: Congratulations! The deploy is done.
deployment_id: ${{ steps.deployment.outputs.deployment_id }}

- name: Update deployment status (failure)
if: failure()
uses: chrnorm/deployment-status@releases/v1
with:
token: ${{ secrets.deployment_status_token }}
target_url: ${{ inputs.target_url }}
description: Unfortunately, the instance hasn't been updated.
state: failure
deployment_id: ${{ steps.deployment.outputs.deployment_id }}

# the above curl only *asks* for the container to be deployed
# we don't know when the newly built Docker image replaces the old one
# but it takes less than 5 minutes
- name: 'Wait for container deployed on VSF Cloud to come online'
run: 'sleep 300'
shell: 'bash'
2 changes: 1 addition & 1 deletion .github/workflows/publish-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
uses: actions/checkout@v2

- name: Setup node
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: "16"
registry-url: "https://registry.npmjs.org/"
Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/speedcurve.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@ jobs:
if: github.event.deployment_status.state == 'success' && github.event.deployment.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
steps:
- name: 'Wait for container deployed on VSF Cloud to come online'
run: 'sleep 300'
shell: 'bash'

- name: Shorten deployment commit SHA
id: vars
shell: bash
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,9 @@ jobs:
uses: actions/checkout@v2

- name: Setup node
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: '16.13.0'
cache: 'yarn'

- name: Install dependencies
run: yarn install
Expand Down
2 changes: 1 addition & 1 deletion .vuestorefrontcloud/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ ENV VSF_RECAPTCHA_VERSION=${VSF_RECAPTCHA_VERSION}
ENV VSF_RECAPTCHA_SIZE=${VSF_RECAPTCHA_SIZE}
ENV VSF_RECAPTCHA_MIN_SCORE=${VSF_RECAPTCHA_MIN_SCORE}
ENV VSF_RECAPTCHA_SITE_KEY=${VSF_RECAPTCHA_SITE_KEY}
ENV VSF_RECAPTCHA_SECRET_KEY=${VSF_RECAPTCHA_SITE_KEY}
ENV VSF_RECAPTCHA_SECRET_KEY=${VSF_RECAPTCHA_SECRET_KEY}

RUN npm config set @vsf-enterprise:registry=https://registrynpm.storefrontcloud.io

Expand Down
2 changes: 1 addition & 1 deletion .vuestorefrontcloud/docker/nuxt.config.additional.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default () => {
...baseDefaults,
modules: [
...baseDefaults.modules,
'@nuxtjs/sentry'
'@nuxtjs/sentry',
],
sentry: {
dsn: process.env.VSF_SENTRY_DSN,
Expand Down
32 changes: 28 additions & 4 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,18 @@ module.exports = {
'@vuepress/active-header-links',
'@vuepress/search',
],

/**
* Ref: https://v1.vuepress.vuejs.org/config/#markdown
*/
markdown: {
extendMarkdown: md => {
md.use(require('markdown-it-video'), {
youtube: { width: 740, height: 416.25 }, // 16:9 ratio, where 740px is the width of the page content
});
}
},

themeConfig: {
GTM_TAG,
sidebarDepth: 0,
Expand Down Expand Up @@ -91,14 +103,26 @@ module.exports = {
],
},
{
title: 'Getting started',
title: 'Installation & Setup',
collapsable: false,
children: [
['/getting-started/installation', 'Installation'],
['/getting-started/configure-magento', 'Configuring Magento'],
['/getting-started/configure-integration', 'Configuring Vue Storefront'],
['/installation-setup/installation', 'Installation'],
['/installation-setup/configure-magento', 'Configuring Magento'],
['/installation-setup/configure-integration', 'Configuring Vue Storefront'],
],
},
{
title: 'Getting started',
collapsable: false,
children: [
['/getting-started/introduction', 'Introduction'],
['/getting-started/project-structure', 'Project structure'],
['/getting-started/configuration', 'Configuration'],
['/getting-started/layouts-and-routing', 'Layouts and Routing'],
['/getting-started/theme', 'Theme'],
['/getting-started/internationalization', 'Internationalization']
]
},
{
title: 'Composition',
collapsable: false,
Expand Down
Loading