diff --git a/.config/.eslintrc.js b/.config/.eslintrc.js index 06092164..c1b3f8f4 100644 --- a/.config/.eslintrc.js +++ b/.config/.eslintrc.js @@ -3,10 +3,6 @@ const isDevelopment = process.env.NODE_ENV === 'development' module.exports = { extends: [ 'eslint:recommended', - 'plugin:vue/vue3-recommended' // use 'plugin:vue/vue3-essential' for less strict linting rules - https://eslint.vuejs.org/rules - ], - plugins: [ - 'vue' ], parserOptions: { ecmaVersion: 2021, diff --git a/.config/postcss.config.js b/.config/postcss.config.js index eea6ccfa..68a77603 100644 --- a/.config/postcss.config.js +++ b/.config/postcss.config.js @@ -3,8 +3,6 @@ const path = require('path') module.exports = { plugins: [ require('postcss-import'), - require('tailwindcss/nesting'), - require('tailwindcss')(path.resolve(__dirname, '../src/tailwind.config.js')), require('autoprefixer') ] } \ No newline at end of file diff --git a/.config/webpack/webpack.common.js b/.config/webpack/webpack.common.js index 6bf6da9d..7999394b 100644 --- a/.config/webpack/webpack.common.js +++ b/.config/webpack/webpack.common.js @@ -2,7 +2,6 @@ const path = require('path') const webpack = require('webpack') const { CleanWebpackPlugin } = require('clean-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') -const { VueLoaderPlugin } = require('vue-loader') module.exports = { stats: 'minimal', @@ -21,10 +20,6 @@ module.exports = { }, module: { rules: [ - { - test: /\.vue$/, - loader: 'vue-loader' - }, { test: /\.(png|svg|jpg|gif)$/, use: [ @@ -74,7 +69,7 @@ module.exports = { * docs: https://github.com/johnagan/clean-webpack-plugin */ new CleanWebpackPlugin({ - cleanOnceBeforeBuildPatterns: ['**/*', '!*static*'] + cleanOnceBeforeBuildPatterns: ['**/*', '!*static*', '!*FoundersGrotesk*'] }), /** * docs: https://webpack.js.org/plugins/mini-css-extract-plugin @@ -82,11 +77,6 @@ module.exports = { new MiniCssExtractPlugin({ filename: './bundle.css', chunkFilename: '[id].css' - }), - new VueLoaderPlugin(), - new webpack.DefinePlugin({ - __VUE_OPTIONS_API__: 'true', - __VUE_PROD_DEVTOOLS__: 'false' }) ] } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..35c412e5 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9001 @@ +{ + "name": "shopify-theme-lab", + "version": "4.4.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "shopify-theme-lab", + "version": "4.4.1", + "license": "MIT", + "dependencies": { + "@savchukoleksii/gulp-shopify-theme-translations-tool": "^0.0.2", + "@savchukoleksii/shopify-template-checker": "^1.0.4", + "@savchukoleksii/shopify-theme-settings-tool": "^0.0.1", + "@savchukoleksii/shopify-theme-translations-tool": "^0.0.9", + "@shopify/theme-currency": "^4.1.1", + "@shopify/theme-images": "^4.1.1", + "@shopify/theme-product-form": "^4.1.1", + "@shopify/theme-sections": "^4.1.1", + "axios": "^1.6.7", + "body-scroll-lock": "^4.0.0-beta.0", + "es6-promise": "^4.2.8", + "form-serialize": "^0.7.2", + "jquery": "^3.7.1", + "qs": "^6.11.2", + "swiper": "^11.0.6" + }, + "devDependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "autoprefixer": "^10.4.0", + "babel-loader": "^8.2.3", + "clean-webpack-plugin": "^4.0.0", + "cross-env": "^7.0.3", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "eslint": "^8.4.1", + "eslint-plugin-vue": "^8.2.0", + "eslint-webpack-plugin": "^3.1.1", + "mini-css-extract-plugin": "^2.4.5", + "npm-run-all": "^4.1.5", + "postcss": "^8.4.5", + "postcss-html": "^1.3.0", + "postcss-import": "^14.0.2", + "postcss-loader": "^6.2.1", + "sass": "^1.71.1", + "sass-loader": "^14.1.1", + "stylelint": "^14.1.0", + "stylelint-config-recommended": "^6.0.0", + "stylelint-webpack-plugin": "^3.1.0", + "url-loader": "^4.1.1", + "webpack": "^5.65.0", + "webpack-cli": "^4.9.1", + "webpack-merge": "^5.8.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "dependencies": { + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", + "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.8", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "dev": true, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.4.tgz", + "integrity": "sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.23.tgz", + "integrity": "sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@savchukoleksii/gulp-shopify-theme-translations-tool": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@savchukoleksii/gulp-shopify-theme-translations-tool/-/gulp-shopify-theme-translations-tool-0.0.2.tgz", + "integrity": "sha512-Eg+RkczdLa89vjgyhbTbXdsGJ5jA0kGryTSKNH+YmfQFCPy8RR9ytESnH75clIi7a+eY/eEhuYSAf6FTb0cAZg==", + "dependencies": { + "through2": "^4.0.2" + } + }, + "node_modules/@savchukoleksii/shopify-template-checker": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@savchukoleksii/shopify-template-checker/-/shopify-template-checker-1.0.4.tgz", + "integrity": "sha512-aEWhMCM8pKU4iK36hDkh/yHLgEvPn7WXnILD5SjHqzvRKmIFO8lx2kcufY5dsyF7q3ebL7+/ynbPick6C+u64g==", + "dependencies": { + "core-js": "^3.15.0" + } + }, + "node_modules/@savchukoleksii/shopify-theme-settings-tool": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@savchukoleksii/shopify-theme-settings-tool/-/shopify-theme-settings-tool-0.0.1.tgz", + "integrity": "sha512-/x1WcFs4mqifzRbUKbaZXS4kpTvvik4bXnd+iaLOZY1PpLSu6BV9AkBizOIGOp6Le8mmN1lOOpToU1ZLGbwwbw==", + "dependencies": { + "axios": "^0.21.1", + "webpack": "^5.42.0" + } + }, + "node_modules/@savchukoleksii/shopify-theme-settings-tool/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@savchukoleksii/shopify-theme-translations-tool": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@savchukoleksii/shopify-theme-translations-tool/-/shopify-theme-translations-tool-0.0.9.tgz", + "integrity": "sha512-amjTEELq+gaSsxzbjcTRm/aojmp8zH1a0kBC6YKVNK2jPB9Gvcisuggyyu8YYOprIwK3NnQToUwxuR+J/P0osg==", + "dependencies": { + "@babel/core": "^7.14.6", + "@babel/preset-env": "^7.14.7", + "axios": "^0.21.1", + "babel-loader": "^8.2.2", + "webpack": "^5.41.1", + "webpack-cli": "^4.7.2" + } + }, + "node_modules/@savchukoleksii/shopify-theme-translations-tool/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@shopify/theme-currency": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@shopify/theme-currency/-/theme-currency-4.1.1.tgz", + "integrity": "sha512-m7eMeI4B7R8e8tMeI1dI0CQP+JkM7fMVN1+qKwkUll+MqbHtF/6iuiyDxTGiOJxvDMOpGtS5vRIoly7fsD4CTQ==" + }, + "node_modules/@shopify/theme-images": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@shopify/theme-images/-/theme-images-4.1.1.tgz", + "integrity": "sha512-eMkMvr1CQufsOtfcr9vMW8WWgRZMsY+qTqrLovzyww9lk4y1X7v6pSaCPvUMHS4EjHlMKQ4TNsMBHinZ/3N1lQ==" + }, + "node_modules/@shopify/theme-product": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@shopify/theme-product/-/theme-product-4.1.1.tgz", + "integrity": "sha512-p3Ab3wajRAPArvhmWcy03r0+vTGlpKjja9AY9t/MHMqnjDe/mgAAIQ4c/NKW+DkPrdw7OUDIQ/So6xTPVKx2KA==", + "peer": true + }, + "node_modules/@shopify/theme-product-form": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@shopify/theme-product-form/-/theme-product-form-4.1.1.tgz", + "integrity": "sha512-jRIfVR7upFhgu9eULtD/IXpIkGCpl+acK5MRGDfl0doPtkFMTZhDqlnSNne3MukezMMVnzYycUbgxm/5EuaPhA==", + "peerDependencies": { + "@shopify/theme-product": "^4.1.0" + } + }, + "node_modules/@shopify/theme-sections": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@shopify/theme-sections/-/theme-sections-4.1.1.tgz", + "integrity": "sha512-iPBzAifyqFxJIVRpvsB8TYB1RPNN870gV4c1r/Opb4flKxMmy11pExxAbenmYAGSJumQIwcdGaCH+vRXSRTo9Q==" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.3.tgz", + "integrity": "sha512-PvSf1wfv2wJpVIFUMSb+i4PvqNYkB9Rkp9ZDO3oaWzq4SKhsQk4mrMBr3ZH06I0hKrVGLBacmgl8JM4WVjb9dg==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.11.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz", + "integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "dev": true + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001589", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz", + "integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-webpack-plugin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "dev": true, + "dependencies": { + "del": "^4.1.1" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.0 <6.0.0" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/core-js": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.0.tgz", + "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", + "dependencies": { + "browserslist": "^4.22.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.1.tgz", + "integrity": "sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==", + "dev": true, + "engines": { + "node": ">=12 || >=16" + } + }, + "node_modules/css-loader": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dev": true, + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dev": true, + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.681", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.681.tgz", + "integrity": "sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", + "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz", + "integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.2", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.1", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", + "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vue/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-serialize": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/form-serialize/-/form-serialize-0.7.2.tgz", + "integrity": "sha512-ohEA4Crzd/+hSREjGf4kSsy73WhAtQ7H+blGEz2DVd+JCi0TV5nZBSn9PaPlvrl9m29fa6xclAfpRkqZ57b1bw==" + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/known-css-properties": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz", + "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz", + "integrity": "sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-html": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-1.6.0.tgz", + "integrity": "sha512-OWgQ9/Pe23MnNJC0PL4uZp8k0EDaUvqpJFSiwFxOLClAhmD7UEisyhO3x5hVsD4xFrjReVTXydlrMes45dJ71w==", + "dev": true, + "dependencies": { + "htmlparser2": "^8.0.0", + "js-tokens": "^8.0.0", + "postcss": "^8.4.0", + "postcss-safe-parser": "^6.0.0" + }, + "engines": { + "node": "^12 || >=14" + } + }, + "node_modules/postcss-html/node_modules/js-tokens": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-8.0.3.tgz", + "integrity": "sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==", + "dev": true + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dev": true, + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dev": true, + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dev": true, + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.1.tgz", + "integrity": "sha512-QX8AasDg75monlybel38BZ49JP5Z+uSKfKwF2rO7S74BywaRmGQMUBw9dtkS+ekyM/QnP+NOrRYq8ABMZ9G8jw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", + "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylelint": { + "version": "14.16.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz", + "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^7.1.0", + "css-functions-list": "^3.1.0", + "debug": "^4.3.4", + "fast-glob": "^3.2.12", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^6.0.1", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.1", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.26.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.19", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.3.0", + "svg-tags": "^1.0.0", + "table": "^6.8.1", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.2" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-6.0.0.tgz", + "integrity": "sha512-ZorSSdyMcxWpROYUvLEMm0vSZud2uB7tX1hzBZwvVY9SV/uly4AvvJPPhCcymZL3fcQhEQG5AELmrxWqtmzacw==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint-webpack-plugin": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stylelint-webpack-plugin/-/stylelint-webpack-plugin-3.3.0.tgz", + "integrity": "sha512-F53bapIZ9zI16ero8IWm6TrUE6SSibZBphJE9b5rR2FxtvmGmm1YmS+a5xjQzn63+cv71GVSCu4byX66fBLpEw==", + "dev": true, + "dependencies": { + "globby": "^11.1.0", + "jest-worker": "^28.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylelint": "^13.0.0 || ^14.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/stylelint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/stylelint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/stylelint/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/swiper": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.6.tgz", + "integrity": "sha512-W/Me7MQl5rNgdM5x9i3Gll76WsyVpnHn91GhBOyL7RCFUeg62aVnflzlVfIpXzZ/87FtJOfAoDH79ZH2Yq76zA==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", + "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-eslint-parser/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "cross-spawn": "^7.0.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 11b6cc84..3584cb7f 100644 --- a/package.json +++ b/package.json @@ -6,12 +6,12 @@ "license": "MIT", "scripts": { "start": "run-p -sr shopify:serve webpack:watch", - "deploy": "run-s webpack:build && cd shopify && shopify theme push", - "deploy:new": "run-s webpack:build && cd shopify && shopify theme push --unpublished", + "deploy": "run-s webpack:build && shopify theme push --path shopify --store $npm_package_config_shop", + "deploy:new": "run-s webpack:build && shopify theme push --path shopify --store $npm_package_config_shop --unpublished", "webpack:watch": "cross-env NODE_ENV=development BROWSERSLIST_ENV=development BROWSERSLIST_CONFIG=.config/.browserslistrc webpack --config .config/webpack/webpack.dev.js --watch --progress", "webpack:build": "cross-env NODE_ENV=production BROWSERSLIST_ENV=production BROWSERSLIST_CONFIG=.config/.browserslistrc webpack --config .config/webpack/webpack.prod.js --progress", - "shopify:serve": "cd shopify && shopify theme serve", - "shopify:pull": "cd shopify && shopify theme pull", + "shopify:serve": "shopify theme dev --path shopify --store $npm_package_config_shop", + "shopify:pull": "shopify theme pull --path shopify --store $npm_package_config_shop", "lint": "run-s -c lint:*", "lint:js": "eslint src/**/*.{js,vue} --config .config/.eslintrc.js", "lint:css": "stylelint src/**/*.{vue,css,sass,scss} --config .config/.stylelintrc.js", @@ -21,16 +21,30 @@ "fix:css": "stylelint src/**/*.{vue,css,sass,scss} --config .config/.stylelintrc.js --fix", "fix:shopify": "cd shopify && shopify theme check -a" }, + "config": { + "shop": "treatfuls.myshopify.com" + }, "dependencies": { - "tailwindcss": "^3.0.2", - "vue": "^3.2.26", - "vuex": "^4.0.2" + "@savchukoleksii/gulp-shopify-theme-translations-tool": "^0.0.2", + "@savchukoleksii/shopify-template-checker": "^1.0.4", + "@savchukoleksii/shopify-theme-settings-tool": "^0.0.1", + "@savchukoleksii/shopify-theme-translations-tool": "^0.0.9", + "@shopify/theme-currency": "^4.1.1", + "@shopify/theme-images": "^4.1.1", + "@shopify/theme-product-form": "^4.1.1", + "@shopify/theme-sections": "^4.1.1", + "axios": "^1.6.7", + "body-scroll-lock": "^4.0.0-beta.0", + "es6-promise": "^4.2.8", + "form-serialize": "^0.7.2", + "jquery": "^3.7.1", + "qs": "^6.11.2", + "swiper": "^11.0.6" }, "devDependencies": { "@babel/core": "^7.16.0", "@babel/plugin-transform-runtime": "^7.16.4", "@babel/preset-env": "^7.16.4", - "@vue/compiler-sfc": "^3.2.26", "autoprefixer": "^10.4.0", "babel-loader": "^8.2.3", "clean-webpack-plugin": "^4.0.0", @@ -46,11 +60,12 @@ "postcss-html": "^1.3.0", "postcss-import": "^14.0.2", "postcss-loader": "^6.2.1", + "sass": "^1.71.1", + "sass-loader": "^14.1.1", "stylelint": "^14.1.0", "stylelint-config-recommended": "^6.0.0", "stylelint-webpack-plugin": "^3.1.0", "url-loader": "^4.1.1", - "vue-loader": "^16.8.3", "webpack": "^5.65.0", "webpack-cli": "^4.9.1", "webpack-merge": "^5.8.0" diff --git a/shopify/assets/ajax-loader.static.gif b/shopify/assets/ajax-loader.static.gif new file mode 100644 index 00000000..5573911d Binary files /dev/null and b/shopify/assets/ajax-loader.static.gif differ diff --git a/shopify/assets/custom.static.css b/shopify/assets/custom.static.css new file mode 100644 index 00000000..ebb193c1 --- /dev/null +++ b/shopify/assets/custom.static.css @@ -0,0 +1,823 @@ + +.popup.popup--open { + visibility: visible; + opacity: 1; +} +.popup { + position: fixed; + top: 0; + left: 0; + z-index: 999999; + display: flex; + visibility: hidden; + opacity: 0; + width: 100%; + height: 100%; + padding: 0 20px; + overflow-y: auto; +/* -webkit-overflow-scrolling: touch; */ + transition-property: opacity,visibility; + transition-duration: .3s; +} +.popup:before { + content: ""; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: calc(100% + 200px); + background-color: #00000080; + transform: translateY(-60px); +} +.popup.popup--open { + visibility: visible; + opacity: 1; +} +.newsletter-popup__container { + max-width: 740px; +} +.popup__container { + width: 100%; + margin: auto; + padding: 30px 0; +/* max-width: 750px; */ +} +.popup.popup--open .popup__content-wrapper { + transform: translateY(0); +} +.newsletter-popup .popup__content-wrapper { + background: none; +} +.newsletter-popup__content-wrapper { + position: relative; + display: flex; + flex-wrap: wrap; + padding: 0; +} +.popup__content-wrapper { +/* padding: 20px; + background-color: #fff; + transform: translateY(-20px); */ + transition-property: transform; + transition-duration: .3s; +} +.newsletter-popup__close { + top: 22px; + right: 19px; +} +.newsletter-popup__close { + position: absolute; + width: 24px; + height: 24px; + display: flex; + justify-content: center; + align-items: center; + z-index: 3; + top: 27px; + right: 24px; + border-radius: 4px; + margin: 0; + padding: 1px; + background-color: #fff; +} +.popup__close-button { +/* margin: 10px 0; + padding: 5px 10px; + background-color: #dadada; */ + font-weight: 700; + text-transform: uppercase; +} +.newsletter-popup__image-wrapper { + display: block; + position: relative; + overflow: hidden; + flex: 0 0 41.22%; + max-width: 360px; +} +.popup__content { + flex: 0 0 58.78%; + max-width: 58.78%; + padding: 40px 57px 31px; + text-align: center; +} +.popup__content { +/* flex: 0 0 100%; + max-width: 100%; + padding: 30px 17px 60px; + text-align: center; */ + background: #fff; +} +.newsletter-popup__title { + padding-left: 0; + padding-right: 0; + font-family: "Founders Grotesk",sans-serif; + font-size: 24px; + line-height: 1.1; +} +.newsletter-popup__title+.newsletter-popup__description { + margin-top: 18px; +} +.newsletter-popup__description { + padding-left: 0; + padding-right: 0; +} +.newsletter-popup__description { +/* padding-left: 20px; + padding-right: 20px; */ + font-family: "Founders Grotesk",sans-serif; + font-size: 16px; + line-height: 1.5; + letter-spacing: 0; +} +.newsletter-popup__description+.newsletter-popup__form { + margin-top: 34px; +} +.newsletter-popup__form { + display: flex; + flex-direction: column; + align-items: flex-start; + text-align: left; + width: 100%; +} +.newsletter-popup__field { + width: 100%; +} +.newsletter-popup__label { + display: none; + margin-bottom: 0; + position: relative; +} +.newsletter-popup__input { + border-bottom-color: #b3b3b3; + color: #000; + width: 100%; + padding: 11px 10px 11px 0; + min-height: 42px; +} +.newsletter-popup__field+.newsletter-popup__field { + margin-top: 4px; +} +.newsletter-popup__button { + margin-top: 40px; +} +.newsletter-popup__button { + width: 100%; +/* margin-top: 28px; */ + padding: 17px 30px; + background-color: #dbaaeb; +} +.newsletter-popup__description+.newsletter-popup__form { + margin-top: 34px; +} +.newsletter-popup__footer-text { + font-size: 12px; + line-height: 1.7; + color: #000; + text-align: center; + margin-top: 16px; + padding: 0 10px; +} +.newsletter-popup__border-border { + position: absolute; + bottom: 0; + height: 100%; + left: auto; + right: 0; + transform: rotate(0) translate(15px); + color: #fff; + width: 16px; +} + + + + +/******************* PERFORMCE PAGE CSS *******************/ + +.main-product .product_main { + width: 100%; + display: inline-block; + float: left; +} +.main-product .product_main .container { + width: 100%; + display: block; + max-width: 1400px; + margin: 0 auto; + float: none; +} +.main-product .product_main .container .product_main_wraper { + width: 100%; + display: inline-block; + float: left; + padding: 50px 0 140px 0 +} +.main-product .product_main .container .product_main_wraper .image_side { + width: 50%; + display: inline-block; + float: left; + padding: 0px 20px; +} +.main-product .product_main .container .product_main_wraper .content_side { + width: 50%; + display: inline-block; + float: left; + padding: 0px 20px; +} + +.main-product .product_main h2.main_ptoduct_title { + font-style: normal; + font-weight: 700; + font-size: 40px; + color: #fff; + position: relative; +} +.main-product .product_main p.sub_ttile { + font-style: normal; + font-weight: 400; + font-size: 24px; + line-height: 32px; + color: #FFFFFF; + padding-top: 18px; +} + +.main-product .product_main h2.main_ptoduct_title span { + position: relative; + z-index: 9999; +} +.main-product .product_main .review_variant_pr { + width: 100%; + display: inline-block; + float: left; + padding-top: 15px; +} +.main-product .product_main .review_variant_pr .product_review { + width: 50%; + display: inline-block; + float: left; +} +.main-product .product_main .review_variant_pr .prodcut_price { + width: 50%; + display: inline-block; + float: left; + text-align: right; +} +.main-product .product_main .review_variant_pr .product_review p.star_rationg { + color: #ffff; +} +.main-product .product_main .review_variant_pr .prodcut_price p.custom_varint { + color: #fff; + font-weight: 400; + font-size: 16px; + line-height: 24px; +} +.main-product .product_main .review_variant_pr .prodcut_price p.main_price { + font-weight: 700; + font-size: 19px; + line-height: 24px; + color: #ffffff; +} +.main-product .product_main .container .product_main_wraper .content_side_cont { + width: 100%; + display: inline-block; + padding-top: 35px; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .content_side_wwrp { + width: 100%; + display: flex; + float: left; + gap: 10px; + margin-bottom: 35px; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping { + width: 33.33%; + display: inline-block; + float: left; + border: 1px solid #bbbbbb; + border-radius: 4px; + position: relative; + cursor: pointer; +} +.product_main_wraper .product_wraping.Active { + background: rgba(170, 62, 89, 0.8); + border: 1px solid #AA3E59!important; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label { + position: absolute; + top: -20px; + left: 0; + right: 0; + width: 100%; + font-weight: 700; + font-size: 26px; + color: #FFFFFF; + text-align: center; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label:after { + content: ''; + height: 22px; + background: #2ac2bd; + position: absolute; + left: 0; + right: 0; + width: 100%; + max-width: 155px; + display: block; + margin: 0 auto; + float: none; + bottom: 0px; + z-index: 1; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label span { + z-index: 999; + position: relative; +} +.product_main_wraper .content_side_wwrp .product_wraping .selected_pro_title{ + padding-top: 25px; + font-weight: 600; + font-size: 24px; + line-height: 29px; + text-align: center; + letter-spacing: 0.02em; + color: #FFFFFF; +} +.product_main_wraper .content_side_wwrp .product_wraping p.custom_varint { + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + text-align: center; + letter-spacing: 0.02em; + color: #FFFFFF; + padding-top: 5px; + margin-bottom: 20px; +} + +.product_main_wraper .content_side_wwrp .product_wraping div.sle_price_pro { + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + font-style: normal; + font-weight: 600; + font-size: 24px; + line-height: 29px; + text-align: center; + letter-spacing: 0.02em; + color: #FFFFFF; + margin: 15px 0 30px; +} + +.sle_price_pro-unit-price { + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 18px; + text-align: center; + letter-spacing: .02em; + color: #fff; +} + +.product_main_wraper .content_side_wwrp .product_wraping_inner { + width: 100%; + display: inline-block; + padding: 10px; + min-height: 300px; +} +.product_main_wraper .content_side_wwrp .discount_label { +font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + text-align: center; + letter-spacing: .02em; + color: #fff; + background: rgba(170,62,89,.3); + border-radius: 3px; + padding: 7px 0; + position: absolute; + bottom: 0; + width: 100%; + left: 0; + right: 0; +} +.product_main_wraper .content_side_wwrp .product_wraping_inner .wrap_img { + width: 100%; + display: inline-block; + float: left; +} + +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment { + width: 100%; + display: inline-block; + float: left; + margin-top: 55px; + position: relative; + padding: 40px 10px 20px 10px; + border: 1px solid #cdcdcd; + border-radius: 4px; +} + +@media screen and (max-width: 768px) { + .main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment { + margin-bottom: 55px; + } +} +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment p.tit_label { + font-style: normal; + font-weight: 700; + font-size: 28px; + text-align: center; + color: #FFFFFF; + position: absolute; + top: -19px; + left: 0; + right: 0; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment .delevery_section { +width: 50%; + display: inline-block; + float: left; + padding: 10px 15px; + font-style: normal; + font-weight: 600; + font-size: 24px; + line-height: 30px; + text-align: center; + letter-spacing: 0.02em; + color: #FFFFFF; + border-right: 1px solid; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment .payment_section { + width: 50%; + display: flex; + float: left; + padding: 10px 55px; + text-align: center; +} + +.payment_section-image { + object-fit: contain; +} + +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment p.tit_label:after { + content: ''; + width: 180px; + height: 23px; + background: #2AC2BD; + position: absolute; + left: 0; + right: 0; + text-align: center; + margin: 0 auto; + bottom: -2px; + z-index: 1; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment p.tit_label span { + position: relative; + z-index: 999; +} +.main-product .product_main .main-product__bg-line { + width: 100%; + color: #2ac2bd; +} +.content_wrapper { + width: 100%; + display: inline-block; +} +.content_wrapper .content_inner_wrapper { + font-style: normal; + font-weight: 700; + font-size: 64px; + line-height: 70px; + text-align: center; + color: #FFFFFF; + padding: 140px 0; +} +.content_wrapper .container { + max-width: 53vw; +} + + + +.delevery_payment .delivery_payment-wrapper { + width: 100%; + height: 100%; + display: flex; +} + +@media (max-width: 1024px){ + .product_main_wraper .content_side_wwrp .product_wraping_inner { + min-height: 230px; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label { + position: absolute; + top: -5px; + left: 0; + right: 0; + font-weight: 700; + font-size: 16px; + color: #fff; + text-align: center; + width: 100%; + max-width: 80%; + margin: 0 auto; +} +.product_main_wraper .content_side_wwrp .product_wraping .selected_pro_title { + padding-top: 12px; + font-size: 16px; + line-height: 24px; +} +.product_main_wraper .content_side_wwrp .product_wraping p.custom_varint { + font-size: 14px; + line-height: 20px; + padding-top: 5px; + margin-bottom: 15px; +} + .product_main_wraper .content_side_wwrp .product_wraping div.sle_price_pro { + font-size: 17px; + line-height: 25px; + margin: 10px 0; +} + .product_main_wraper .content_side_wwrp .discount_label { + font-size: 14px; + } + +.main-product .product_main h2.main_ptoduct_title:after { + width: 46%; +} + + +} + +@media (max-width: 768px){ + +.main-product .product_main .container .product_main_wraper .image_side, .main-product .product_main .container .product_main_wraper .content_side { + width: 100%; + display: inline-block; + float: left; + padding: 0 0px; +} + .main-product .product_main h2.main_ptoduct_title { + font-size: 22px; + padding-top: 45px; +} +.main-product .product_main p.sub_ttile { + font-size: 17px; + line-height: 24px; + color: #fff; + padding-top: 17px; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .content_side_wwrp { + gap: 5px; + margin-bottom: 25px; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label { + top: -15px; + font-size: 24px; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label:after { +height: 22px; + max-width: 80%; +} +.product_main_wraper .content_side_wwrp .product_wraping .selected_pro_title { + padding-top: 25px; + font-weight: 600; + font-size: 20px; + line-height: 15px; +} +.product_main_wraper .content_side_wwrp .product_wraping div.sle_price_pro { + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + font-style: normal; + font-weight: 600; + font-size: 17px; + line-height: 22px; + text-align: center; + letter-spacing: .02em; + color: #fff; + margin: 15px 0 30px; +} +.product_main_wraper .content_side_wwrp .discount_label { + font-style: normal; + font-weight: 400; + font-size: 12px; + line-height: 16px; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment .delevery_section { + padding: 0px 5px; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 18px; +} +.main-product .product_main .container .product_main_wraper .content_side_cont .delevery_payment .payment_section { + padding: 3px 35px; + text-align: center; +} +.main-product .product_main .container .product_main_wraper { + padding: 50px 0 90px; +} + +.content_wrapper .container { + max-width: 100%; +} +.content_wrapper .content_inner_wrapper { + font-style: normal; + font-weight: 700; + font-size: 34px; + line-height: 41px; + text-align: center; + color: #fff; + padding: 110px 0; +} + +.product_main_wraper .content_side_wwrp .product_wraping_inner { + min-height: 310px; +} + +} + + +@media (max-width: 640px) { +.jdgm-carousel__left-arrow { + left: -6px!important; + +} + .jdgm-carousel__right-arrow { + right: -7px!important; + } +.product_main_wraper .content_side_wwrp .product_wraping_inner { + min-height: 210px; +} + +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label { + top: -6px; + font-size: 14px; + max-width: 93%; +} + .product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label:after { + height: 19px; + max-width: 100%; +} + .product_main_wraper .content_side_wwrp .product_wraping .selected_pro_title { + padding-top: 20px; + font-weight: 600; + font-size: 14px; + line-height: 14px; +} +.product_main_wraper .content_side_cont .content_side_wwrp .product_wraping p.prodduct_label span { + top: -2px; +} + + +} + + + + + + +/******************* PERFORMCE PAGE CSS *******************/ + +.slick-dots li button { + font-size: 0; + line-height: 0; + display: block; + width: 13px !important; + height: 13px !important; + padding: 5px; + cursor: pointer; + color: white; + border: 0; + outline: none; + background: #F78AA5 !important; + border-radius: 30px; +} +.slick-dots { + bottom: -40px !important; +} +li.slick-active button { + background: #DBAAEB!important; + width: 13px !important; + height: 13px !important; + border-radius: 30px; +} + +.content-wrapper.new { + position: relative; + margin: 0 auto; + padding-top: 80px; + padding-bottom: 0; +} +.custom_compare_temp .about-us .main-product__bg-line { + color: #F3587F; +} + + +.product-form__meta-price { + display: flex; + flex-direction: column; + text-align: right; +} + +.product-form__unit-price { + color: #ffffff; + font-size: 0.5em; +} + +/* TODO Had to be done fast for Black Friday so should be done more clean */ + +.product_select select { + width: 100%; + height: 40px; + max-width: 100%; + cursor: pointer; +} + +bundle-picker { + overflow: hidden; +} + +bundle-picker .product_wraping_inner { + height: 100%; + display: flex !important; + flex-direction: column; + justify-content: space-between; +} + +bundle-picker .product_wraping { + cursor: auto !important; +} + +bundle-picker .sle_price_pro { + height: auto !important; +} + +bundle-picker .selected_pro_title { + padding-top: 15px !important; + height: 100%; +} + +bundle-picker .prodduct_label { + font-size: 24px !important +} + +bundle-picker .prodduct_label::after { + max-width: 180px !important; +} + +bundle-picker .product-quantity-content { + width: 100%; + display: inline-block; + padding: 10px 15px; + font-style: normal; + font-weight: normal; + font-size: 22px; + line-height: 30px; + text-align: center; + letter-spacing: 0.02em; + color: #FFFFFF; + margin-bottom: 20px; +} + +bundle-picker .main_price { + font-size: 24px !important; +} + +bundle-picker .review_variant_pr { + margin-bottom: 20px; +} + +bundle-picker .main_ptoduct_title--underline:after { + background-color: #9c4054 !important; +} + +bundle-picker .image_side_wwrp { + margin-bottom: 20px !important; +} + +@media (max-width: 640px) { + bundle-picker .main_ptoduct_title { + padding-top: 20px !important; + } + + bundle-picker .prodduct_label { + font-size: 12px !important + } + + bundle-picker .selected_pro_title { + font-size: 16px !important; + } + + bundle-picker .image_side_wwrp { + margin-bottom: 0px !important; + } + + bundle-picker .product-quantity-content { + font-size: 14px; + margin-bottom: 10px; + padding: 0 15px; + } +} diff --git a/shopify/assets/file.static.md b/shopify/assets/file.static.md deleted file mode 100644 index a8f50457..00000000 --- a/shopify/assets/file.static.md +++ /dev/null @@ -1,3 +0,0 @@ -## Static files - -Add the `static` keyword to the filename of any file you place manually in this directory. \ No newline at end of file diff --git a/shopify/assets/gift-card.static.css b/shopify/assets/gift-card.static.css new file mode 100644 index 00000000..e2efddab --- /dev/null +++ b/shopify/assets/gift-card.static.css @@ -0,0 +1,254 @@ +/*================ Variable ================*/ +/*============================================================================ + Grid Breakpoints and Class Names + - Do not change the variable names + - Breakpoint pixel values are used in the window.theme.breakpoints object +==============================================================================*/ +/*============================================================================ + Generate breakpoint-specific column widths and push classes + - Default column widths: $grid-breakpoint-has-widths: ($small, $medium-up); + - Default is no push classes +==============================================================================*/ +/*================ Color Variables ================*/ +/*================ Sizing Variables ================*/ +/*================ Footer Variables ================*/ +/*================ Z-Index ================*/ +/*================ SVG ================*/ +/*================ Drawers ================*/ +/*================ Hero Slider ================*/ +/*================ Typography ================*/ +/*================ Gift Cards ================*/ +/*================ Z-index ================*/ +/*================ Product video ================*/ +/*================ Image placeholder ================*/ +/*================ #Giftcard Template ================*/ +.giftcard__apple-wallet-image { + display: block; + margin: 0 auto; } + +/*================ Print Giftcard Styles ================*/ +@media print { + @page { + margin: 0.5cm; } + p { + orphans: 3; + widows: 3; } + html, + body { + background-color: #fff; + color: #000; } + .giftcard__print-link, + .giftcard__apple-wallet { + display: none; } } + +/*================ Custom Giftcard Styles ================*/ +.template-giftcard { + background: var(--color-body); + padding: 0 11px; } + .template-giftcard .site-header__logo { + padding-left: 0; } + .template-giftcard .site-header__logo-image { + max-width: 200px; } + .template-giftcard .wrapper { + max-width: 588px; } + .template-giftcard .wrapper img, + .template-giftcard .wrapper object, + .template-giftcard .wrapper iframe { + max-width: 100%; } + +.giftcard-wrapper { + max-width: 31rem; + margin: 0 auto; } + +.giftcard__header { + margin-top: 110px; } + +.giftcard__tag--active { + opacity: 0.6; } + +/*================ Gift Card image ================*/ +.giftcard__wrap { + position: relative; + margin: 27.5px 27.5px 55px; + background-color: #e95e61; + border-radius: 10px; } + .giftcard__wrap img { + position: relative; + display: block; + border-radius: 10px; + z-index: 2; } + .giftcard__wrap::before, .giftcard__wrap::after { + content: ''; + position: absolute; + width: 47px; + height: 47px; + z-index: 3; } + .giftcard__wrap::before { + background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0N3B4IiB2aWV3Qm94PSIwIDAgNDcgNDciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQ3IDQ3IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBvcGFjaXR5PSIwLjEiPgoJCTxwYXRoIGQ9Ik00NC41ODYsMUwxLDQ0LjU4NlYxMGMwLTQuOTYzLDQuMDM3LTksOS05SDQ0LjU4NiBNNDcsMEgxMEM0LjQ3NywwLDAsNC40NzcsMCwxMHYzN0w0NywwTDQ3LDB6Ii8+Cgk8L2c+CjwvZz4KPGc+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNDQuNTg2LDFMMSw0NC41ODZWMTBjMC00Ljk2Myw0LjAzNy05LDktOUg0NC41ODYiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K") 0 0 no-repeat; + top: -1px; + left: -1px; } + .giftcard__wrap::after { + background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iNDdweCIgaGVpZ2h0PSI0N3B4IiB2aWV3Qm94PSIwIDAgNDcgNDciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDQ3IDQ3IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGc+Cgk8ZyBvcGFjaXR5PSIwLjEiPgoJCTxwYXRoIGQ9Ik0yLjQxNCw0Nkw0NiwyLjQxNFYzN2MwLDQuOTYzLTQuMDM3LDktOSw5SDIuNDE0IE0wLDQ3aDM3YzUuNTIzLDAsMTAtNC40NzcsMTAtMTBWMEwwLDQ3TDAsNDd6Ii8+Cgk8L2c+CjwvZz4KPGc+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMi40MTQsNDZMNDYsMi40MTRWMzdjMCw0Ljk2My00LjAzNyw5LTksOUgyLjQxNCIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgo=") 0 0 no-repeat; + bottom: -1px; + right: -1px; } + +/*================ Gift card code ================*/ +.giftcard__code { + position: absolute; + text-align: center; + width: 90%; + z-index: 5; + bottom: 8%; + left: 50%; + transform: translateX(-50%); } + +.giftcard__code--medium { + font-size: 0.875em; } + +.giftcard__code--small { + font-size: 0.75em; } + +.giftcard__code__inner { + width: 100%; + display: inline-block; + vertical-align: baseline; + background-color: #fff; + padding: 0.5em; + border-radius: 4px; + -webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); } + +.giftcard__code__text { + font-size: 4vw; + text-transform: uppercase; + border: 1px dashed var(--color-border-form); + padding: 0.4em 0.5em; + display: inline-block; + vertical-align: baseline; + line-height: 1; + text-align: center; + width: 100%; } + .giftcard__code__text.disabled { + color: #999; + text-decoration: line-through; } + @media screen and (min-width: 600px) { + .giftcard__code__text { + font-size: 24px; } } + +/*================ Gift card amount ================*/ +.giftcard__amount { + position: absolute; + top: 0; + right: 0; + color: #fff; + font-size: 8vw; + line-height: 1.2; + padding: 10px; + z-index: 5; } + .giftcard__amount strong { + display: block; + text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.1); } + @media screen and (min-width: 600px) { + .giftcard__amount { + font-size: 48px; } } + +.giftcard__amount--medium { + font-size: 2em; } + +/*================ Tooltip ================*/ +.giftcard__tooltip { + display: block; + position: absolute; + top: -50%; + right: 50%; + margin-top: 16px; + z-index: 4; + color: #fff; + text-align: center; + white-space: nowrap; } + .giftcard__tooltip::before { + content: ''; + display: block; + position: absolute; + left: 100%; + bottom: 0; + width: 0; + height: 0; + margin-left: -5px; + margin-bottom: -5px; + border-left: 8px solid transparent; + border-right: 8px solid transparent; + border-top: 5px solid #333; + border-top: 5px solid rgba(0, 0, 0, 0.9); } + +.giftcard__tooltip-label { + display: block; + position: relative; + right: -50%; + border: 0; + border-radius: 4px; + background-color: #333; + background-color: rgba(0, 0, 0, 0.9); + min-height: 14px; + font-size: 12px; + text-decoration: none; + line-height: 16px; + text-shadow: none; + padding: 0.5em 0.75em; + margin-left: 0.25em; } + .giftcard__tooltip-label small { + text-transform: uppercase; + letter-spacing: 0.1em; + color: #b3b3b3; + font-size: 0.875em; } + +.giftcard-action-list { + text-align: center; } + +.giftcard-action-list__item { + margin: 0 0 19.44444px; } + +/*================ QR code (print only) ================*/ +.giftcard__qr-code img { + padding: 0; + border: 1px solid var(--color-border); + border-radius: 4px; + margin: 0 auto 55px; } + +/*================ Medium-down width ================*/ +@media screen and (max-width: 580px) { + .giftcard { + padding-top: 27.5px; } + .print-link { + display: none; } } + +/*================ Small width ================*/ +@media screen and (max-width: 400px) { + .giftcard__wrap::before, + .giftcard__wrap::after { + display: none; } + .giftcard__code { + font-size: 0.75em; } + .giftcard__code--medium { + font-size: 0.65em; } + .giftcard__code--small { + font-size: 0.55em; } } + +/*============================================================================ + #Print Styles +==============================================================================*/ +@media print { + .giftcard__actions, + .giftcard__wrap::before, + .giftcard__wrap::after, + .giftcard__tooltip { + display: none; } + .shop-url { + display: block; + text-align: center; } + .qr-code { + display: block; } + .print-link { + display: none; } + .giftcard__code { + margin-top: -90px; } } diff --git a/shopify/assets/gift-card.static.js b/shopify/assets/gift-card.static.js new file mode 100644 index 00000000..00832e13 --- /dev/null +++ b/shopify/assets/gift-card.static.js @@ -0,0 +1,16 @@ +window.addEventListener('DOMContentLoaded', function() { + var qrCode = document.getElementById('QrCode'); + + new QRCode(qrCode, { + text: qrCode.dataset.identifier, + width: 120, + height: 120, + imageAltText: theme.strings.qrImageAlt + }); + + document + .getElementById('GiftCardDigits') + .addEventListener('focus', function(event) { + event.target.select(); + }); +}); diff --git a/shopify/assets/ico-select.static.svg.liquid b/shopify/assets/ico-select.static.svg.liquid new file mode 100644 index 00000000..902430b6 --- /dev/null +++ b/shopify/assets/ico-select.static.svg.liquid @@ -0,0 +1,3 @@ + + + diff --git a/shopify/assets/lazysizes.static.js b/shopify/assets/lazysizes.static.js new file mode 100644 index 00000000..487b5e3b --- /dev/null +++ b/shopify/assets/lazysizes.static.js @@ -0,0 +1,13 @@ +/*! lazysizes - v4.1.8 */ +!function (a, b) { var c = function (d) { b(a.lazySizes, d), a.removeEventListener("lazyunveilread", c, !0) }; b = b.bind(null, a, a.document), "object" == typeof module && module.exports ? b(require("lazysizes")) : a.lazySizes ? c() : a.addEventListener("lazyunveilread", c, !0) }(window, function (a, b, c, d) { "use strict"; function e(a) { var b = getComputedStyle(a, null) || {}, c = b.fontFamily || "", d = c.match(j) || "", e = d && c.match(k) || ""; return e && (e = e[1]), { fit: d && d[1] || "", position: n[e] || e || "center" } } function f(a, b) { var d, e, f = c.cfg, g = a.cloneNode(!1), h = g.style, i = function () { var b = a.currentSrc || a.src; b && e !== b && (e = b, h.backgroundImage = "url(" + (m.test(b) ? JSON.stringify(b) : b) + ")", d || (d = !0, c.rC(g, f.loadingClass), c.aC(g, f.loadedClass))) }, j = function () { c.rAF(i) }; a._lazysizesParentFit = b.fit, a.addEventListener("lazyloaded", j, !0), a.addEventListener("load", j, !0), g.addEventListener("load", function () { var a = g.currentSrc || g.src; a && a != l && (g.src = l, g.srcset = "") }), c.rAF(function () { var d = a, e = a.parentNode; "PICTURE" == e.nodeName.toUpperCase() && (d = e, e = e.parentNode), c.rC(g, f.loadedClass), c.rC(g, f.lazyClass), c.aC(g, f.loadingClass), c.aC(g, f.objectFitClass || "lazysizes-display-clone"), g.getAttribute(f.srcsetAttr) && g.setAttribute(f.srcsetAttr, ""), g.getAttribute(f.srcAttr) && g.setAttribute(f.srcAttr, ""), g.src = l, g.srcset = "", h.backgroundRepeat = "no-repeat", h.backgroundPosition = b.position, h.backgroundSize = b.fit, d.style.display = "none", a.setAttribute("data-parent-fit", b.fit), a.setAttribute("data-parent-container", "prev"), e.insertBefore(g, d), a._lazysizesParentFit && delete a._lazysizesParentFit, a.complete && i() }) } var g = b.createElement("a").style, h = "objectFit" in g, i = h && "objectPosition" in g, j = /object-fit["']*\s*:\s*["']*(contain|cover)/, k = /object-position["']*\s*:\s*["']*(.+?)(?=($|,|'|"|;))/, l = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", m = /\(|\)|'/, n = { center: "center", "50% 50%": "center" }; if (!h || !i) { var o = function (a) { if (a.detail.instance == c) { var b = a.target, d = e(b); !d.fit || h && "center" == d.position || f(b, d) } }; a.addEventListener("lazyunveilread", o, !0), d && d.detail && o(d) } }); +/*! lazysizes - v4.1.8 */ +!function (a, b) { var c = function () { b(a.lazySizes), a.removeEventListener("lazyunveilread", c, !0) }; b = b.bind(null, a, a.document), "object" == typeof module && module.exports ? b(require("lazysizes")) : a.lazySizes ? c() : a.addEventListener("lazyunveilread", c, !0) }(window, function (a, b, c) { "use strict"; function d(b, c) { var d, e, f, g, h = a.getComputedStyle(b); e = b.parentNode, g = { isPicture: !(!e || !m.test(e.nodeName || "")) }, f = function (a, c) { var d = b.getAttribute("data-" + a); if (!d) { var e = h.getPropertyValue("--ls-" + a); e && (d = e.trim()) } if (d) { if ("true" == d) d = !0; else if ("false" == d) d = !1; else if (l.test(d)) d = parseFloat(d); else if ("function" == typeof j[a]) d = j[a](b, d); else if (q.test(d)) try { d = JSON.parse(d) } catch (a) { } g[a] = d } else a in j && "function" != typeof j[a] ? g[a] = j[a] : c && "function" == typeof j[a] && (g[a] = j[a](b, d)) }; for (d in j) f(d); return c.replace(p, function (a, b) { b in g || f(b, !0) }), g } function e(a, b) { var c = [], d = function (a, c) { return k[typeof b[c]] ? b[c] : a }; return c.srcset = [], b.absUrl && (s.setAttribute("href", a), a = s.href), a = ((b.prefix || "") + a + (b.postfix || "")).replace(p, d), b.widths.forEach(function (d) { var e = b.widthmap[d] || d, f = b.aspectratio || b.ratio, g = !b.aspectratio && j.traditionalRatio, h = { u: a.replace(n, e).replace(o, f ? g ? Math.round(d * f) : Math.round(d / f) : ""), w: d }; c.push(h), c.srcset.push(h.c = h.u + " " + d + "w") }), c } function f(a, c, d) { var f = 0, g = 0, h = d; if (a) { if ("container" === c.ratio) { for (f = h.scrollWidth, g = h.scrollHeight; !(f && g || h === b);)h = h.parentNode, f = h.scrollWidth, g = h.scrollHeight; f && g && (c.ratio = g / f) } a = e(a, c), a.isPicture = c.isPicture, u && "IMG" == d.nodeName.toUpperCase() ? d.removeAttribute(i.srcsetAttr) : d.setAttribute(i.srcsetAttr, a.srcset.join(", ")), Object.defineProperty(d, "_lazyrias", { value: a, writable: !0 }) } } function g(a, b) { var e = d(a, b); return j.modifyOptions.call(a, { target: a, details: e, detail: e }), c.fire(a, "lazyriasmodifyoptions", e), e } function h(a) { return a.getAttribute(a.getAttribute("data-srcattr") || j.srcAttr) || a.getAttribute(i.srcsetAttr) || a.getAttribute(i.srcAttr) || a.getAttribute("data-pfsrcset") || "" } var i, j, k = { string: 1, number: 1 }, l = /^\-*\+*\d+\.*\d*$/, m = /^picture$/i, n = /\s*\{\s*width\s*\}\s*/i, o = /\s*\{\s*height\s*\}\s*/i, p = /\s*\{\s*([a-z0-9]+)\s*\}\s*/gi, q = /^\[.*\]|\{.*\}$/, r = /^(?:auto|\d+(px)?)$/, s = b.createElement("a"), t = b.createElement("img"), u = "srcset" in t && !("sizes" in t), v = !!a.HTMLPictureElement && !u; !function () { var b, d = function () { }, e = { prefix: "", postfix: "", srcAttr: "data-src", absUrl: !1, modifyOptions: d, widthmap: {}, ratio: !1, traditionalRatio: !1, aspectratio: !1 }; i = c && c.cfg || a.lazySizesConfig, i || (i = {}, a.lazySizesConfig = i), i.supportsType || (i.supportsType = function (a) { return !a }), i.rias || (i.rias = {}), "widths" in (j = i.rias) || (j.widths = [], function (a) { for (var b, c = 0; !b || b < 3e3;)c += 5, c > 30 && (c += 1), b = 36 * c, a.push(b) }(j.widths)); for (b in e) b in j || (j[b] = e[b]) }(), addEventListener("lazybeforesizes", function (a) { if (a.detail.instance == c) { var b, d, e, k, l, m, o, p, q, s, t, u, x; if (b = a.target, a.detail.dataAttr && !a.defaultPrevented && !j.disabled && (q = b.getAttribute(i.sizesAttr) || b.getAttribute("sizes")) && r.test(q)) { if (d = h(b), e = g(b, d), t = n.test(e.prefix) || n.test(e.postfix), e.isPicture && (k = b.parentNode)) for (l = k.getElementsByTagName("source"), m = 0, o = l.length; m < o; m++)(t || n.test(p = h(l[m]))) && (f(p, e, l[m]), u = !0); t || n.test(d) ? (f(d, e, b), u = !0) : u && (x = [], x.srcset = [], x.isPicture = !0, Object.defineProperty(b, "_lazyrias", { value: x, writable: !0 })), u && (v ? b.removeAttribute(i.srcAttr) : "auto" != q && (s = { width: parseInt(q, 10) }, w({ target: b, detail: s }))) } } }, !0); var w = function () { var d = function (a, b) { return a.w - b.w }, e = function (a) { var b, c, d = a.length, e = a[d - 1], f = 0; for (f; f < d; f++)if (e = a[f], e.d = e.w / a.w, e.d >= a.d) { !e.cached && (b = a[f - 1]) && b.d > a.d - .13 * Math.pow(a.d, 2.2) && (c = Math.pow(b.d - .6, 1.6), b.cached && (b.d += .15 * c), b.d + (e.d - a.d) * c > a.d && (e = b)); break } return e }, f = function (a, b) { var d; return !a._lazyrias && c.pWS && (d = c.pWS(a.getAttribute(i.srcsetAttr || ""))).length && (Object.defineProperty(a, "_lazyrias", { value: d, writable: !0 }), b && a.parentNode && (d.isPicture = "PICTURE" == a.parentNode.nodeName.toUpperCase())), a._lazyrias }, g = function (b) { var d = a.devicePixelRatio || 1, e = c.getX && c.getX(b); return Math.min(e || d, 2.4, d) }, h = function (b, c) { var h, i, j, k, l, m; if (l = b._lazyrias, l.isPicture && a.matchMedia) for (i = 0, h = b.parentNode.getElementsByTagName("source"), j = h.length; i < j; i++)if (f(h[i]) && !h[i].getAttribute("type") && (!(k = h[i].getAttribute("media")) || (matchMedia(k) || {}).matches)) { l = h[i]._lazyrias; break } return (!l.w || l.w < c) && (l.w = c, l.d = g(b), m = e(l.sort(d))), m }, j = function (d) { if (d.detail.instance == c) { var e, g = d.target; if (!u && (a.respimage || a.picturefill || lazySizesConfig.pf)) return void b.removeEventListener("lazybeforesizes", j); ("_lazyrias" in g || d.detail.dataAttr && f(g, !0)) && (e = h(g, d.detail.width)) && e.u && g._lazyrias.cur != e.u && (g._lazyrias.cur = e.u, e.cached = !0, c.rAF(function () { g.setAttribute(i.srcAttr, e.u), g.setAttribute("src", e.u) })) } }; return v ? j = function () { } : addEventListener("lazybeforesizes", j), j }() }); +/*! lazysizes - v4.1.8 */ +!function (a, b) { var c = b(a, a.document); a.lazySizes = c, "object" == typeof module && module.exports && (module.exports = c) }(window, function (a, b) { "use strict"; if (b.getElementsByClassName) { var c, d, e = b.documentElement, f = a.Date, g = a.HTMLPictureElement, h = "addEventListener", i = "getAttribute", j = a[h], k = a.setTimeout, l = a.requestAnimationFrame || k, m = a.requestIdleCallback, n = /^picture$/i, o = ["load", "error", "lazyincluded", "_lazyloaded"], p = {}, q = Array.prototype.forEach, r = function (a, b) { return p[b] || (p[b] = new RegExp("(\\s|^)" + b + "(\\s|$)")), p[b].test(a[i]("class") || "") && p[b] }, s = function (a, b) { r(a, b) || a.setAttribute("class", (a[i]("class") || "").trim() + " " + b) }, t = function (a, b) { var c; (c = r(a, b)) && a.setAttribute("class", (a[i]("class") || "").replace(c, " ")) }, u = function (a, b, c) { var d = c ? h : "removeEventListener"; c && u(a, b), o.forEach(function (c) { a[d](c, b) }) }, v = function (a, d, e, f, g) { var h = b.createEvent("Event"); return e || (e = {}), e.instance = c, h.initEvent(d, !f, !g), h.detail = e, a.dispatchEvent(h), h }, w = function (b, c) { var e; !g && (e = a.picturefill || d.pf) ? (c && c.src && !b[i]("srcset") && b.setAttribute("srcset", c.src), e({ reevaluate: !0, elements: [b] })) : c && c.src && (b.src = c.src) }, x = function (a, b) { return (getComputedStyle(a, null) || {})[b] }, y = function (a, b, c) { for (c = c || a.offsetWidth; c < d.minSize && b && !a._lazysizesWidth;)c = b.offsetWidth, b = b.parentNode; return c }, z = function () { var a, c, d = [], e = [], f = d, g = function () { var b = f; for (f = d.length ? e : d, a = !0, c = !1; b.length;)b.shift()(); a = !1 }, h = function (d, e) { a && !e ? d.apply(this, arguments) : (f.push(d), c || (c = !0, (b.hidden ? k : l)(g))) }; return h._lsFlush = g, h }(), A = function (a, b) { return b ? function () { z(a) } : function () { var b = this, c = arguments; z(function () { a.apply(b, c) }) } }, B = function (a) { var b, c = 0, e = d.throttleDelay, g = d.ricTimeout, h = function () { b = !1, c = f.now(), a() }, i = m && g > 49 ? function () { m(h, { timeout: g }), g !== d.ricTimeout && (g = d.ricTimeout) } : A(function () { k(h) }, !0); return function (a) { var d; (a = !0 === a) && (g = 33), b || (b = !0, d = e - (f.now() - c), d < 0 && (d = 0), a || d < 9 ? i() : k(i, d)) } }, C = function (a) { var b, c, d = 99, e = function () { b = null, a() }, g = function () { var a = f.now() - c; a < d ? k(g, d - a) : (m || e)(e) }; return function () { c = f.now(), b || (b = k(g, d)) } }; !function () { var b, c = { lazyClass: "lazyload", loadedClass: "lazyloaded", loadingClass: "lazyloading", preloadClass: "lazypreload", errorClass: "lazyerror", autosizesClass: "lazyautosizes", srcAttr: "data-src", srcsetAttr: "data-srcset", sizesAttr: "data-sizes", minSize: 40, customMedia: {}, init: !0, expFactor: 1.5, hFac: .8, loadMode: 2, loadHidden: !0, ricTimeout: 0, throttleDelay: 125 }; d = a.lazySizesConfig || a.lazysizesConfig || {}; for (b in c) b in d || (d[b] = c[b]); a.lazySizesConfig = d, k(function () { d.init && F() }) }(); var D = function () { var g, l, m, o, p, y, D, F, G, H, I, J, K = /^img$/i, L = /^iframe$/i, M = "onscroll" in a && !/(gle|ing)bot/.test(navigator.userAgent), N = 0, O = 0, P = 0, Q = -1, R = function (a) { P-- , (!a || P < 0 || !a.target) && (P = 0) }, S = function (a) { return null == J && (J = "hidden" == x(b.body, "visibility")), J || "hidden" != x(a.parentNode, "visibility") && "hidden" != x(a, "visibility") }, T = function (a, c) { var d, f = a, g = S(a); for (F -= c, I += c, G -= c, H += c; g && (f = f.offsetParent) && f != b.body && f != e;)(g = (x(f, "opacity") || 1) > 0) && "visible" != x(f, "overflow") && (d = f.getBoundingClientRect(), g = H > d.left && G < d.right && I > d.top - 1 && F < d.bottom + 1); return g }, U = function () { var a, f, h, j, k, m, n, p, q, r, s, t, u = c.elements; if ((o = d.loadMode) && P < 8 && (a = u.length)) { for (f = 0, Q++; f < a; f++)if (u[f] && !u[f]._lazyRace) if (!M || c.prematureUnveil && c.prematureUnveil(u[f])) aa(u[f]); else if ((p = u[f][i]("data-expand")) && (m = 1 * p) || (m = O), r || (r = !d.expand || d.expand < 1 ? e.clientHeight > 500 && e.clientWidth > 500 ? 500 : 370 : d.expand, c._defEx = r, s = r * d.expFactor, t = d.hFac, J = null, O < s && P < 1 && Q > 2 && o > 2 && !b.hidden ? (O = s, Q = 0) : O = o > 1 && Q > 1 && P < 6 ? r : N), q !== m && (y = innerWidth + m * t, D = innerHeight + m, n = -1 * m, q = m), h = u[f].getBoundingClientRect(), (I = h.bottom) >= n && (F = h.top) <= D && (H = h.right) >= n * t && (G = h.left) <= y && (I || H || G || F) && (d.loadHidden || S(u[f])) && (l && P < 3 && !p && (o < 3 || Q < 4) || T(u[f], m))) { if (aa(u[f]), k = !0, P > 9) break } else !k && l && !j && P < 4 && Q < 4 && o > 2 && (g[0] || d.preloadAfterLoad) && (g[0] || !p && (I || H || G || F || "auto" != u[f][i](d.sizesAttr))) && (j = g[0] || u[f]); j && !k && aa(j) } }, V = B(U), W = function (a) { var b = a.target; if (b._lazyCache) return void delete b._lazyCache; R(a), s(b, d.loadedClass), t(b, d.loadingClass), u(b, Y), v(b, "lazyloaded") }, X = A(W), Y = function (a) { X({ target: a.target }) }, Z = function (a, b) { try { a.contentWindow.location.replace(b) } catch (c) { a.src = b } }, $ = function (a) { var b, c = a[i](d.srcsetAttr); (b = d.customMedia[a[i]("data-media") || a[i]("media")]) && a.setAttribute("media", b), c && a.setAttribute("srcset", c) }, _ = A(function (a, b, c, e, f) { var g, h, j, l, o, p; (o = v(a, "lazybeforeunveil", b)).defaultPrevented || (e && (c ? s(a, d.autosizesClass) : a.setAttribute("sizes", e)), h = a[i](d.srcsetAttr), g = a[i](d.srcAttr), f && (j = a.parentNode, l = j && n.test(j.nodeName || "")), p = b.firesLoad || "src" in a && (h || g || l), o = { target: a }, s(a, d.loadingClass), p && (clearTimeout(m), m = k(R, 2500), u(a, Y, !0)), l && q.call(j.getElementsByTagName("source"), $), h ? a.setAttribute("srcset", h) : g && !l && (L.test(a.nodeName) ? Z(a, g) : a.src = g), f && (h || l) && w(a, { src: g })), a._lazyRace && delete a._lazyRace, t(a, d.lazyClass), z(function () { var b = a.complete && a.naturalWidth > 1; p && !b || (b && s(a, "ls-is-cached"), W(o), a._lazyCache = !0, k(function () { "_lazyCache" in a && delete a._lazyCache }, 9)), "lazy" == a.loading && P-- }, !0) }), aa = function (a) { if (!a._lazyRace) { var b, c = K.test(a.nodeName), e = c && (a[i](d.sizesAttr) || a[i]("sizes")), f = "auto" == e; (!f && l || !c || !a[i]("src") && !a.srcset || a.complete || r(a, d.errorClass) || !r(a, d.lazyClass)) && (b = v(a, "lazyunveilread").detail, f && E.updateElem(a, !0, a.offsetWidth), a._lazyRace = !0, P++ , _(a, b, f, e, c)) } }, ba = C(function () { d.loadMode = 3, V() }), ca = function () { 3 == d.loadMode && (d.loadMode = 2), ba() }, da = function () { if (!l) { if (f.now() - p < 999) return void k(da, 999); l = !0, d.loadMode = 3, V(), j("scroll", ca, !0) } }; return { _: function () { p = f.now(), c.elements = b.getElementsByClassName(d.lazyClass), g = b.getElementsByClassName(d.lazyClass + " " + d.preloadClass), j("scroll", V, !0), j("resize", V, !0), a.MutationObserver ? new MutationObserver(V).observe(e, { childList: !0, subtree: !0, attributes: !0 }) : (e[h]("DOMNodeInserted", V, !0), e[h]("DOMAttrModified", V, !0), setInterval(V, 999)), j("hashchange", V, !0), ["focus", "mouseover", "click", "load", "transitionend", "animationend", "webkitAnimationEnd"].forEach(function (a) { b[h](a, V, !0) }), /d$|^c/.test(b.readyState) ? da() : (j("load", da), b[h]("DOMContentLoaded", V), k(da, 2e4)), c.elements.length ? (U(), z._lsFlush()) : V() }, checkElems: V, unveil: aa, _aLSL: ca } }(), E = function () { var a, c = A(function (a, b, c, d) { var e, f, g; if (a._lazysizesWidth = d, d += "px", a.setAttribute("sizes", d), n.test(b.nodeName || "")) for (e = b.getElementsByTagName("source"), f = 0, g = e.length; f < g; f++)e[f].setAttribute("sizes", d); c.detail.dataAttr || w(a, c.detail) }), e = function (a, b, d) { var e, f = a.parentNode; f && (d = y(a, f, d), e = v(a, "lazybeforesizes", { width: d, dataAttr: !!b }), e.defaultPrevented || (d = e.detail.width) && d !== a._lazysizesWidth && c(a, f, e, d)) }, f = function () { var b, c = a.length; if (c) for (b = 0; b < c; b++)e(a[b]) }, g = C(f); return { _: function () { a = b.getElementsByClassName(d.autosizesClass), j("resize", g) }, checkElems: g, updateElem: e } }(), F = function () { F.i || (F.i = !0, E._(), D._()) }; return c = { cfg: d, autoSizer: E, loader: D, init: F, uP: w, aC: s, rC: t, hC: r, fire: v, gW: y, rAF: z } } }); + +/*! lazysizes - v4.1.8 */ +!function (a, b) { var c = function () { b(a.lazySizes), a.removeEventListener("lazyunveilread", c, !0) }; b = b.bind(null, a, a.document), "object" == typeof module && module.exports ? b(require("lazysizes")) : a.lazySizes ? c() : a.addEventListener("lazyunveilread", c, !0) }(window, function (a, b, c) { "use strict"; if (a.addEventListener) { var d = /\s+(\d+)(w|h)\s+(\d+)(w|h)/, e = /parent-fit["']*\s*:\s*["']*(contain|cover|width)/, f = /parent-container["']*\s*:\s*["']*(.+?)(?=(\s|$|,|'|"|;))/, g = /^picture$/i, h = function (a) { return getComputedStyle(a, null) || {} }, i = { getParent: function (b, c) { var d = b, e = b.parentNode; return c && "prev" != c || !e || !g.test(e.nodeName || "") || (e = e.parentNode), "self" != c && (d = "prev" == c ? b.previousElementSibling : c && (e.closest || a.jQuery) ? (e.closest ? e.closest(c) : jQuery(e).closest(c)[0]) || e : e), d }, getFit: function (a) { var b, c, d = h(a), g = d.content || d.fontFamily, j = { fit: a._lazysizesParentFit || a.getAttribute("data-parent-fit") }; return !j.fit && g && (b = g.match(e)) && (j.fit = b[1]), j.fit ? (c = a._lazysizesParentContainer || a.getAttribute("data-parent-container"), !c && g && (b = g.match(f)) && (c = b[1]), j.parent = i.getParent(a, c)) : j.fit = d.objectFit, j }, getImageRatio: function (b) { var c, e, f, h, i, j, k, l = b.parentNode, m = l && g.test(l.nodeName || "") ? l.querySelectorAll("source, img") : [b]; for (c = 0; c < m.length; c++)if (b = m[c], e = b.getAttribute(lazySizesConfig.srcsetAttr) || b.getAttribute("srcset") || b.getAttribute("data-pfsrcset") || b.getAttribute("data-risrcset") || "", f = b._lsMedia || b.getAttribute("media"), f = lazySizesConfig.customMedia[b.getAttribute("data-media") || f] || f, e && (!f || (a.matchMedia && matchMedia(f) || {}).matches)) { h = parseFloat(b.getAttribute("data-aspectratio")), h || (i = e.match(d), i ? "w" == i[2] ? (j = i[1], k = i[3]) : (j = i[3], k = i[1]) : (j = b.getAttribute("width"), k = b.getAttribute("height")), h = j / k); break } return h }, calculateSize: function (a, b) { var c, d, e, f, g = this.getFit(a), h = g.fit, i = g.parent; return "width" == h || ("contain" == h || "cover" == h) && (e = this.getImageRatio(a)) ? (i ? b = i.clientWidth : i = a, f = b, "width" == h ? f = b : (d = i.clientHeight) > 40 && (c = b / d) && ("cover" == h && c < e || "contain" == h && c > e) && (f = b * (e / c)), f) : b } }; c.parentFit = i, b.addEventListener("lazybeforesizes", function (a) { if (!a.defaultPrevented && a.detail.instance == c) { var b = a.target; a.detail.width = i.calculateSize(b, a.detail.width) } }) } }); +/*! lazysizes - v4.1.8 */ +!function (a, b) { var c = function () { b(a.lazySizes), a.removeEventListener("lazyunveilread", c, !0) }; b = b.bind(null, a, a.document), "object" == typeof module && module.exports ? b(require("lazysizes")) : a.lazySizes ? c() : a.addEventListener("lazyunveilread", c, !0) }(window, function (a, b, c) { "use strict"; var d, e = c && c.cfg, f = b.createElement("img"), g = "sizes" in f && "srcset" in f, h = /\s+\d+h/g, i = function () { var a = /\s+(\d+)(w|h)\s+(\d+)(w|h)/, d = Array.prototype.forEach; return function () { var e = b.createElement("img"), f = function (b) { var c, d, e = b.getAttribute(lazySizesConfig.srcsetAttr); e && (d = e.match(a)) && (c = "w" == d[2] ? d[1] / d[3] : d[3] / d[1], c && b.setAttribute("data-aspectratio", c), b.setAttribute(lazySizesConfig.srcsetAttr, e.replace(h, ""))) }, g = function (a) { if (a.detail.instance == c) { var b = a.target.parentNode; b && "PICTURE" == b.nodeName && d.call(b.getElementsByTagName("source"), f), f(a.target) } }, i = function () { e.currentSrc && b.removeEventListener("lazybeforeunveil", g) }; b.addEventListener("lazybeforeunveil", g), e.onload = i, e.onerror = i, e.srcset = "data:,a 1w 1h", e.complete && i() } }(); if (e.supportsType || (e.supportsType = function (a) { return !a }), a.HTMLPictureElement && g) return void (!c.hasHDescriptorFix && b.msElementsFromPoint && (c.hasHDescriptorFix = !0, i())); a.picturefill || e.pf || (e.pf = function (b) { var c, e; if (!a.picturefill) for (c = 0, e = b.elements.length; c < e; c++)d(b.elements[c]) }, d = function () { var f = function (a, b) { return a.w - b.w }, i = /^\s*\d+\.*\d*px\s*$/, j = function (a) { var b, c, d = a.length, e = a[d - 1], f = 0; for (f; f < d; f++)if (e = a[f], e.d = e.w / a.w, e.d >= a.d) { !e.cached && (b = a[f - 1]) && b.d > a.d - .13 * Math.pow(a.d, 2.2) && (c = Math.pow(b.d - .6, 1.6), b.cached && (b.d += .15 * c), b.d + (e.d - a.d) * c > a.d && (e = b)); break } return e }, k = function () { var a, b = /(([^,\s].[^\s]+)\s+(\d+)w)/g, c = /\s/, d = function (b, c, d, e) { a.push({ c: c, u: d, w: 1 * e }) }; return function (e) { return a = [], e = e.trim(), e.replace(h, "").replace(b, d), a.length || !e || c.test(e) || a.push({ c: e, u: e, w: 99 }), a } }(), l = function () { l.init || (l.init = !0, addEventListener("resize", function () { var a, c = b.getElementsByClassName("lazymatchmedia"), e = function () { var a, b; for (a = 0, b = c.length; a < b; a++)d(c[a]) }; return function () { clearTimeout(a), a = setTimeout(e, 66) } }())) }, m = function (b, d) { var f, g = b.getAttribute("srcset") || b.getAttribute(e.srcsetAttr); !g && d && (g = b._lazypolyfill ? b._lazypolyfill._set : b.getAttribute(e.srcAttr) || b.getAttribute("src")), b._lazypolyfill && b._lazypolyfill._set == g || (f = k(g || ""), d && b.parentNode && (f.isPicture = "PICTURE" == b.parentNode.nodeName.toUpperCase(), f.isPicture && a.matchMedia && (c.aC(b, "lazymatchmedia"), l())), f._set = g, Object.defineProperty(b, "_lazypolyfill", { value: f, writable: !0 })) }, n = function (b) { var d = a.devicePixelRatio || 1, e = c.getX && c.getX(b); return Math.min(e || d, 2.5, d) }, o = function (b) { return a.matchMedia ? (o = function (a) { return !a || (matchMedia(a) || {}).matches })(b) : !b }, p = function (a) { var b, d, g, h, k, l, p; if (h = a, m(h, !0), k = h._lazypolyfill, k.isPicture) for (d = 0, b = a.parentNode.getElementsByTagName("source"), g = b.length; d < g; d++)if (e.supportsType(b[d].getAttribute("type"), a) && o(b[d].getAttribute("media"))) { h = b[d], m(h), k = h._lazypolyfill; break } return k.length > 1 ? (p = h.getAttribute("sizes") || "", p = i.test(p) && parseInt(p, 10) || c.gW(a, a.parentNode), k.d = n(a), !k.src || !k.w || k.w < p ? (k.w = p, l = j(k.sort(f)), k.src = l) : l = k.src) : l = k[0], l }, q = function (a) { if (!g || !a.parentNode || "PICTURE" == a.parentNode.nodeName.toUpperCase()) { var b = p(a); b && b.u && a._lazypolyfill.cur != b.u && (a._lazypolyfill.cur = b.u, b.cached = !0, a.setAttribute(e.srcAttr, b.u), a.setAttribute("src", b.u)) } }; return q.parse = k, q }(), e.loadedClass && e.loadingClass && function () { var a = [];['img[sizes$="px"][srcset].', "picture > img:not([srcset])."].forEach(function (b) { a.push(b + e.loadedClass), a.push(b + e.loadingClass) }), e.pf({ elements: b.querySelectorAll(a.join(", ")) }) }()) }); +/*! lazysizes - v4.1.8 */ +!function (a, b) { var c = function () { b(a.lazySizes), a.removeEventListener("lazyunveilread", c, !0) }; b = b.bind(null, a, a.document), "object" == typeof module && module.exports ? b(require("lazysizes")) : a.lazySizes ? c() : a.addEventListener("lazyunveilread", c, !0) }(window, function (a, b, c) { "use strict"; if (a.addEventListener) { var d = /\s+/g, e = /\s*\|\s+|\s+\|\s*/g, f = /^(.+?)(?:\s+\[\s*(.+?)\s*\])(?:\s+\[\s*(.+?)\s*\])?$/, g = /^\s*\(*\s*type\s*:\s*(.+?)\s*\)*\s*$/, h = /\(|\)|'/, i = { contain: 1, cover: 1 }, j = function (a) { var b = c.gW(a, a.parentNode); return (!a._lazysizesWidth || b > a._lazysizesWidth) && (a._lazysizesWidth = b), a._lazysizesWidth }, k = function (a) { var b; return b = (getComputedStyle(a) || { getPropertyValue: function () { } }).getPropertyValue("background-size"), !i[b] && i[a.style.backgroundSize] && (b = a.style.backgroundSize), b }, l = function (a, b) { if (b) { var c = b.match(g); c && c[1] ? a.setAttribute("type", c[1]) : a.setAttribute("media", lazySizesConfig.customMedia[b] || b) } }, m = function (a, c, g) { var h = b.createElement("picture"), i = c.getAttribute(lazySizesConfig.sizesAttr), j = c.getAttribute("data-ratio"), k = c.getAttribute("data-optimumx"); c._lazybgset && c._lazybgset.parentNode == c && c.removeChild(c._lazybgset), Object.defineProperty(g, "_lazybgset", { value: c, writable: !0 }), Object.defineProperty(c, "_lazybgset", { value: h, writable: !0 }), a = a.replace(d, " ").split(e), h.style.display = "none", g.className = lazySizesConfig.lazyClass, 1 != a.length || i || (i = "auto"), a.forEach(function (a) { var c, d = b.createElement("source"); i && "auto" != i && d.setAttribute("sizes", i), (c = a.match(f)) ? (d.setAttribute(lazySizesConfig.srcsetAttr, c[1]), l(d, c[2]), l(d, c[3])) : d.setAttribute(lazySizesConfig.srcsetAttr, a), h.appendChild(d) }), i && (g.setAttribute(lazySizesConfig.sizesAttr, i), c.removeAttribute(lazySizesConfig.sizesAttr), c.removeAttribute("sizes")), k && g.setAttribute("data-optimumx", k), j && g.setAttribute("data-ratio", j), h.appendChild(g), c.appendChild(h) }, n = function (a) { if (a.target._lazybgset) { var b = a.target, d = b._lazybgset, e = b.currentSrc || b.src; if (e) { var f = c.fire(d, "bgsetproxy", { src: e, useSrc: h.test(e) ? JSON.stringify(e) : e }); f.defaultPrevented || (d.style.backgroundImage = "url(" + f.detail.useSrc + ")") } b._lazybgsetLoading && (c.fire(d, "_lazyloaded", {}, !1, !0), delete b._lazybgsetLoading) } }; addEventListener("lazybeforeunveil", function (a) { var d, e, f; !a.defaultPrevented && (d = a.target.getAttribute("data-bgset")) && (f = a.target, e = b.createElement("img"), e.alt = "", e._lazybgsetLoading = !0, a.detail.firesLoad = !0, m(d, f, e), setTimeout(function () { c.loader.unveil(e), c.rAF(function () { c.fire(e, "_lazyloaded", {}, !0, !0), e.complete && n({ target: e }) }) })) }), b.addEventListener("load", n, !0), a.addEventListener("lazybeforesizes", function (a) { if (a.detail.instance == c && a.target._lazybgset && a.detail.dataAttr) { var b = a.target._lazybgset, d = k(b); i[d] && (a.target._lazysizesParentFit = d, c.rAF(function () { a.target.setAttribute("data-parent-fit", d), a.target._lazysizesParentFit && delete a.target._lazysizesParentFit })) } }, !0), b.documentElement.addEventListener("lazybeforesizes", function (a) { !a.defaultPrevented && a.target._lazybgset && a.detail.instance == c && (a.detail.width = j(a.target._lazybgset)) }) } }); diff --git a/shopify/assets/password.static.js b/shopify/assets/password.static.js new file mode 100644 index 00000000..7c22f8e2 --- /dev/null +++ b/shopify/assets/password.static.js @@ -0,0 +1,26 @@ +(function() { + var selectors = { + loginModal: '#LoginModal', + loginField: '[data-login-field]' + }; + + var data = { + formError: 'data-error' + }; + + var loginModal = document.querySelector(selectors.loginModal); + var loginField = document.querySelector(selectors.loginField); + + if (!loginModal) { + return; + } + + var passwordModal = new window.Modals('LoginModal', 'login-modal', { + focusOnOpen: 'Password' + }); + + // Open modal if errors exist + if (loginField.hasAttribute(data.formError)) { + passwordModal.open(); + } +})(); diff --git a/shopify/assets/product-bundle.static.js b/shopify/assets/product-bundle.static.js new file mode 100644 index 00000000..81474ee4 --- /dev/null +++ b/shopify/assets/product-bundle.static.js @@ -0,0 +1,154 @@ +class BundlePicker extends HTMLElement { + constructor() { + super(); + + this.bundleSelectors = Array.from( + this.querySelectorAll(".bundle-selector") + ); + this.bundleInputs = Array.from( + this.querySelector(".add_to_cart_section").querySelectorAll("input") + ); + this.mainPriceContainer = document.querySelector(".prodcut_price"); + this.productsJson = document.querySelector("[data-products-json]") + ? document.querySelector("[data-products-json]") + : null; + this.productsData = JSON.parse(this.productsJson.innerHTML); + + this.load(); + } + + load() { + this.addChangeEvent(); + } + + addChangeEvent() { + this.bundleSelectors.forEach((bundleSelector) => { + const selectorElement = bundleSelector.querySelector( + ".product_select_selector" + ); + + selectorElement.addEventListener("change", () => { + this.updateInputs(selectorElement, bundleSelector); + this.updateMainPrice(); + this.updateSelectorImage(selectorElement, bundleSelector); + this.updateSelectorTitle(selectorElement, bundleSelector); + this.updateSelectorPrice(selectorElement, bundleSelector); + this.updateSelectorQuantityContent(selectorElement, bundleSelector); + this.updateSelectorUnitPrice(selectorElement, bundleSelector); + }); + }); + } + + updateSelectorUnitPrice(selectorElement, bundleSelector) { + const unitPriceContentElement = bundleSelector.querySelector( + ".sle_price_pro-unit-price" + ); + const changedItem = this.allInputProducts.find((inputProduct) => { + return inputProduct.id === Number(selectorElement.value); + }); + + unitPriceContentElement.textContent = + "€" + + (changedItem.unitPrice / 100).toFixed(2).replace(".", ",") + + " / " + + changedItem.unitPriceMeasurement; + } + + updateSelectorQuantityContent(selectorElement, bundleSelector) { + const quantityContentElement = bundleSelector.querySelector( + ".product-quantity-content" + ); + const changedItem = this.allInputProducts.find((inputProduct) => { + return inputProduct.id === Number(selectorElement.value); + }); + + quantityContentElement.textContent = + changedItem.quantityContent + " Riegel"; + } + + updateSelectorPrice(selectorElement, bundleSelector) { + const priceElement = bundleSelector.querySelector(".sle_price_pro-price"); + const changedItem = this.allInputProducts.find((inputProduct) => { + return inputProduct.id === Number(selectorElement.value); + }); + + priceElement.textContent = + "€" + (changedItem.price / 100).toFixed(2).replace(".", ","); + } + + updateSelectorTitle(selectorElement, bundleSelector) { + const titleElement = bundleSelector.querySelector(".selected_pro_title"); + const changedItem = this.allInputProducts.find((inputProduct) => { + return inputProduct.id === Number(selectorElement.value); + }); + + titleElement.textContent = changedItem.title; + } + + updateSelectorImage(selectorElement, bundleSelector) { + const imageThumbnail = bundleSelector.querySelector(".image_thumbnail"); + const changedItem = this.allInputProducts.find((inputProduct) => { + return inputProduct.id === Number(selectorElement.value); + }); + + let imageSource; + + if (typeof changedItem.bundleCustomProductImage === "object") { + imageSource = changedItem.bundleCustomProductImage.src; + } else { + imageSource = changedItem.bundleCustomProductImage; + } + + imageThumbnail.src = imageSource; + } + + updateInputs(selectorElement, bundleSelector) { + const selectorInput = this.bundleInputs.find((input) => { + return input.id === bundleSelector.dataset.inputId; + }); + selectorInput.value = selectorElement.value; + + this.allInputs = this.bundleInputs.map((input) => { + return Number(input.value); + }); + + this.allInputProducts = this.allInputs.map((inputId) => { + return this.productsData.products.find( + (product) => product.id === inputId + ); + }); + } + + updateMainPrice() { + const combinedQuantityContents = this.allInputProducts.reduce( + (accumulator, currentProduct) => { + return accumulator + currentProduct.quantityContent; + }, + 0 + ); + + const combinedPrice = this.allInputProducts.reduce( + (accumulator, currentProduct) => { + if (currentProduct.isFreeProduct === false) { + return accumulator + currentProduct.price; + } + return accumulator; + }, + 0 + ); + + const mainQuantity = + this.mainPriceContainer.querySelector(".custom_varint"); + const mainPrice = this.mainPriceContainer.querySelector(".main_price"); + + mainQuantity.textContent = combinedQuantityContents + " Riegel"; + mainPrice.textContent = + "€" + + (combinedPrice / 100 / combinedQuantityContents) + .toFixed(2) + .replace(".", ",") + + " pro Riegel"; + } +} + +customElements.define("bundle-picker", BundlePicker); diff --git a/shopify/assets/product-compare.static.css b/shopify/assets/product-compare.static.css new file mode 100644 index 00000000..9d0d6796 --- /dev/null +++ b/shopify/assets/product-compare.static.css @@ -0,0 +1,29 @@ +.main-product .product_main .main_ptoduct_title--underline:after { + content: ""; + background: #dbaaeb; + width: 104%; + height: 70%; + position: absolute; + left: -2%; + bottom: -1px; + z-index: -1; +} + +.main-product .product_main .container .product_main_wraper .image_side .image_side_wwrp { + width: 100%; + display: inline-block; + margin-bottom: 100px; +} + +.delevery_section-info { + line-height: 20px; + margin-bottom: 10px; +} + +.delevery_section-time { + font-weight: normal; +} + +.hidden { + display: none !important; +} \ No newline at end of file diff --git a/shopify/assets/product-compare.static.js b/shopify/assets/product-compare.static.js new file mode 100644 index 00000000..83d736b3 --- /dev/null +++ b/shopify/assets/product-compare.static.js @@ -0,0 +1,56 @@ +const productIngredients = document.querySelector(".product-ingredients"); +const selectedProduct = document.querySelector( + ".product_wraping.selectest_product1.Active" +); +const initialIngredients = selectedProduct.getAttribute("ingredients"); + +productIngredients.innerHTML = initialIngredients; + +const reviews = Array.from(document.querySelector(".product_review").children); + +document.addEventListener("click", (event) => { + if ( + event.target.closest( + ".product_main_wraper .content_side_wwrp .product_wraping" + ) + ) { + const productWraping = event.target.closest(".product_wraping"); + const productMain = document.querySelector(".main-product .product_main"); + const productDescriptions = Array.from( + productMain.querySelectorAll(".product-info__description") + ); + const shippingInfo = productMain.querySelector(".delevery_section-info"); + const shippingTime = productMain.querySelector(".delevery_section-time"); + + const product_id = productWraping.getAttribute("product_id"); + const description = productWraping.getAttribute("description"); + const shipping_info = productWraping.getAttribute("shipping_info"); + const shipping_time = productWraping.getAttribute("shipping_time"); + const ingredients = productWraping.getAttribute("ingredients"); + + productDescriptions.forEach((productDescription) => { + productDescription.innerHTML = description; + }); + shippingInfo.textContent = shipping_info; + shippingTime.textContent = shipping_time; + productIngredients.innerHTML = ingredients; + + reviews.forEach((review) => { + review.classList.add("hidden"); + if (product_id === review.dataset.id) { + review.classList.remove("hidden"); + } + }); + + $(".accordian_tabber_content div:first").css("display", "block"); + + // + $(".accordian_tabber_content h3").click(function () { + $(this).next().slideToggle(500); + $(".accordian_tabber_content div").not($(this).next()).slideUp(500); + + // how to rotate the icon JUST h3>i + // $("i").css({'transform':'rotate(180deg)'}); + }); + } +}); diff --git a/shopify/assets/slick-theme.static.css b/shopify/assets/slick-theme.static.css new file mode 100644 index 00000000..513c213a --- /dev/null +++ b/shopify/assets/slick-theme.static.css @@ -0,0 +1,204 @@ +@charset 'UTF-8'; +/* Slider */ +.slick-loading .slick-list +{ + background: #fff url('./ajax-loader.static.gif') center center no-repeat; +} + +/* Icons */ +@font-face +{ + font-family: 'slick'; + font-weight: normal; + font-style: normal; + + src: url('./fonts/slick.eot'); + src: url('./fonts/slick.eot?#iefix') format('embedded-opentype'), url('./fonts/slick.woff') format('woff'), url('./fonts/slick.ttf') format('truetype'), url('./fonts/slick.svg#slick') format('svg'); +} +/* Arrows */ +.slick-prev, +.slick-next +{ + font-size: 0; + line-height: 0; + + position: absolute; + top: 50%; + + display: block; + + width: 20px; + height: 20px; + padding: 0; + -webkit-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); + + cursor: pointer; + + color: transparent; + border: none; + outline: none; + background: transparent; +} +.slick-prev:hover, +.slick-prev:focus, +.slick-next:hover, +.slick-next:focus +{ + color: transparent; + outline: none; + background: transparent; +} +.slick-prev:hover:before, +.slick-prev:focus:before, +.slick-next:hover:before, +.slick-next:focus:before +{ + opacity: 1; +} +.slick-prev.slick-disabled:before, +.slick-next.slick-disabled:before +{ + opacity: .25; +} + +.slick-prev:before, +.slick-next:before +{ + font-family: 'slick'; + font-size: 20px; + line-height: 1; + + opacity: .75; + color: white; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.slick-prev +{ + left: -25px; +} +[dir='rtl'] .slick-prev +{ + right: -25px; + left: auto; +} +.slick-prev:before +{ + content: '←'; +} +[dir='rtl'] .slick-prev:before +{ + content: '→'; +} + +.slick-next +{ + right: -25px; +} +[dir='rtl'] .slick-next +{ + right: auto; + left: -25px; +} +.slick-next:before +{ + content: '→'; +} +[dir='rtl'] .slick-next:before +{ + content: '←'; +} + +/* Dots */ +.slick-dotted.slick-slider +{ + margin-bottom: 30px; +} + +.slick-dots +{ + position: absolute; + bottom: -25px; + + display: block; + + width: 100%; + padding: 0; + margin: 0; + + list-style: none; + + text-align: center; +} +.slick-dots li +{ + position: relative; + + display: inline-block; + + width: 20px; + height: 20px; + margin: 0 5px; + padding: 0; + + cursor: pointer; +} +.slick-dots li button +{ + font-size: 0; + line-height: 0; + + display: block; + + width: 20px; + height: 20px; + padding: 5px; + + cursor: pointer; + + color: transparent; + border: 0; + outline: none; + background: transparent; +} +.slick-dots li button:hover, +.slick-dots li button:focus +{ + outline: none; +} +.slick-dots li button:hover:before, +.slick-dots li button:focus:before +{ + opacity: 1; +} +.slick-dots li button:before +{ + font-family: 'slick'; + font-size: 6px; + line-height: 20px; + + position: absolute; + top: 0; + left: 0; + + width: 20px; + height: 20px; + + content: '•'; + text-align: center; + + opacity: .25; + color: black; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.slick-dots li.slick-active button:before +{ + opacity: .75; + color: black; +} diff --git a/shopify/assets/slick.min.static.js b/shopify/assets/slick.min.static.js new file mode 100644 index 00000000..42172c2f --- /dev/null +++ b/shopify/assets/slick.min.static.js @@ -0,0 +1 @@ +!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'',nextArrow:'',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('', + nextArrow: '', + autoplay: false, + autoplaySpeed: 3000, + centerMode: false, + centerPadding: '50px', + cssEase: 'ease', + customPaging: function(slider, i) { + return $('' + ].join(''); + } + + function renderProducts(products, searchQuery) { + var resultsCount = products.length; + + return [ + '' + ].join(''); + } + + function renderProduct(product, index, resultsCount) { + return [ + '
  • ', + '', + '
    ', + renderProductImage(product), + '
    ', + '
    ', + '', + '' + + product.title + + '', + '' + (getDetailsCount() ? renderProductDetails(product) : ''), + ', ', + '' + + getNumberOfResultsString(index + 1, resultsCount) + + '', + '
    ', + '
    ', + '
  • ' + ].join(''); + } + + function renderProductImage(product) { + if (product.image === null) { + return ''; + } + + return ( + '' +
+      product.image.alt +
+      '' + ); + } + + function renderProductDetails(product) { + return [ + '
    ', + '
    ', + renderVendor(product), + '
    ', + '
    ' + + renderProductPrice(product), + '
    ', + '
    ' + ].join(''); + } + function renderProductPrice(product) { + if (!theme.settings.predictiveSearchShowPrice) { + return ''; + } + + var accessibilityAnnounceComma = ', '; + + var priceMarkup = + '
    ' + renderPrice(product) + '
    '; + + var salePriceMarkup = + '
    ' + renderSalePrice(product) + '
    '; + + return ( + accessibilityAnnounceComma + + '
    ' + + (product.isOnSale ? salePriceMarkup : priceMarkup) + + '
    ' + ); + } + + function renderSalePrice(product) { + return [ + '
    ', + '' + theme.strings.salePrice + '', + '
    ', + '
    ', + '' + + (product.isPriceVaries + ? theme.strings.fromLowestPrice.replace('[price]', product.price) + : product.price) + + '', + '
    ', + '
    ' + renderCompareAtPrice(product) + '
    ' + ].join(''); + } + + function renderCompareAtPrice(product) { + return [ + '
    ', + '' + + theme.strings.regularPrice + + ' ', + '
    ', + '
    ', + '' + + product.compareAtPrice + + '', + '
    ' + ].join(''); + } + + function renderPrice(product) { + return [ + '
    ', + '' + theme.strings.regularPrice + '', + '
    ', + '
    ', + '' + + (product.isPriceVaries + ? theme.strings.fromLowestPrice.replace('[price]', product.price) + : product.price) + + '', + '
    ' + ].join(''); + } + + function renderVendor(product) { + if (!theme.settings.predictiveSearchShowVendor || product.vendor === '') { + return ''; + } + + return [ + '
    ', + '' + theme.strings.vendor + '', + '
    ', + '
    ' + product.vendor + '
    ' + ].join(''); + } + + function normalizeProduct(product) { + var productOrVariant = + product.variants.length > 0 ? product.variants[0] : product; + + return { + url: productOrVariant.url, + image: getProductImage(product), + title: product.title, + vendor: product.vendor || '', + price: theme.Currency.formatMoney(product.price_min, theme.moneyFormat), + compareAtPrice: theme.Currency.formatMoney( + product.compare_at_price_min, + theme.moneyFormat + ), + available: product.available, + isOnSale: isOnSale(product), + isPriceVaries: isPriceVaries(product), + isCompareVaries: isCompareVaries(product) + }; + } + + function getProductImage(product) { + var image; + var featuredImage; + + if (product.variants.length > 0 && product.variants[0].image !== null) { + featuredImage = product.variants[0].featured_image; + } else if (product.image) { + featuredImage = product.featured_image; + } else { + image = null; + } + + if (image !== null) { + image = { + url: theme.Images.getSizedImageUrl(featuredImage.url, '100x'), + alt: featuredImage.alt + }; + } + + return image; + } + + function isOnSale(product) { + return ( + product.compare_at_price_min !== null && + parseInt(product.compare_at_price_min, 10) > + parseInt(product.price_min, 10) + ); + } + + function isPriceVaries(product) { + return product.price_max !== product.price_min; + } + + function isCompareVaries(product) { + return product.compare_at_price_max !== product.compare_at_price_min; + } + + // Returns the number of optional product details to be shown, + // values of the detailsList need to be boolean. + function getDetailsCount() { + var detailsList = [ + theme.settings.predictiveSearchShowPrice, + theme.settings.predictiveSearchShowVendor + ]; + + var detailsCount = detailsList.reduce(function(acc, detail) { + return acc + (detail ? 1 : 0); + }, 0); + + return detailsCount; + } + + function getNumberOfResultsString(resultNumber, resultsCount) { + return theme.strings.number_of_results + .replace('[result_number]', resultNumber) + .replace('[results_count]', resultsCount); + } + + function _htmlEscape(input) { + return input + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + } + + return function(data) { + var products = data.products || []; + var isLoading = data.isLoading; + var searchQuery = data.searchQuery || ''; + + if (isLoading && products.length === 0) { + return loadingState(); + } + + return renderResults(products, isLoading, searchQuery); + }; +})(); + +window.theme = window.theme || {}; + +(function() { + // (a11y) This function will be used by the Predictive Search Component + // to announce the number of search results + function numberOfResultsTemplateFct(data) { + if (data.products.length === 1) { + return theme.strings.one_result_found; + } else { + return theme.strings.number_of_results_found.replace( + '[results_count]', + data.products.length + ); + } + } + + // (a11y) This function will be used by the Predictive Search Component + // to announce that it's loading results + function loadingResultsMessageTemplateFct() { + return theme.strings.loading; + } + + function isPredictiveSearchSupported() { + var shopifyFeatures = JSON.parse( + document.getElementById('shopify-features').textContent + ); + + return shopifyFeatures.predictiveSearch; + } + + function isPredictiveSearchEnabled() { + return window.theme.settings.predictiveSearchEnabled; + } + + function canInitializePredictiveSearch() { + return isPredictiveSearchSupported() && isPredictiveSearchEnabled(); + } + + // listen for search submits and validate query + function validateSearchHandler(searchEl, submitEl) { + submitEl.addEventListener( + 'click', + validateSearchInput.bind(this, searchEl) + ); + } + + // if there is nothing in the search field, prevent submit + function validateSearchInput(searchEl, evt) { + var isInputValueEmpty = searchEl.value.trim().length === 0; + if (!isInputValueEmpty) { + return; + } + + if (typeof evt !== 'undefined') { + evt.preventDefault(); + } + + searchEl.focus(); + } + + window.theme.SearchPage = (function() { + var selectors = { + searchReset: '[data-search-page-predictive-search-clear]', + searchInput: '[data-search-page-predictive-search-input]', + searchSubmit: '[data-search-page-predictive-search-submit]', + searchResults: '[data-predictive-search-mount="default"]' + }; + + var componentInstance; + + function init(config) { + var searchInput = document.querySelector(selectors.searchInput); + var searchSubmit = document.querySelector(selectors.searchSubmit); + var searchUrl = searchInput.dataset.baseUrl; + + componentInstance = new window.Shopify.theme.PredictiveSearchComponent({ + selectors: { + input: selectors.searchInput, + reset: selectors.searchReset, + result: selectors.searchResults + }, + searchUrl: searchUrl, + resultTemplateFct: window.theme.SearchResultsTemplate, + numberOfResultsTemplateFct: numberOfResultsTemplateFct, + loadingResultsMessageTemplateFct: loadingResultsMessageTemplateFct, + onOpen: function(nodes) { + if (config.isTabletAndUp) { + return; + } + + var searchInputBoundingRect = searchInput.getBoundingClientRect(); + var bodyHeight = document.body.offsetHeight; + var offset = 50; + var resultsMaxHeight = + bodyHeight - searchInputBoundingRect.bottom - offset; + + nodes.result.style.maxHeight = resultsMaxHeight + 'px'; + }, + onBeforeDestroy: function(nodes) { + // If the viewport width changes from mobile to tablet + // reset the top position of the results + nodes.result.style.maxHeight = ''; + } + }); + + validateSearchHandler(searchInput, searchSubmit); + } + + function unload() { + if (!componentInstance) { + return; + } + componentInstance.destroy(); + componentInstance = null; + } + + return { + init: init, + unload: unload + }; + })(); + + window.theme.SearchHeader = (function() { + var selectors = { + searchInput: '[data-predictive-search-drawer-input]', + searchResults: '[data-predictive-search-mount="drawer"]', + searchFormContainer: '[data-search-form-container]', + searchSubmit: '[data-search-form-submit]' + }; + + var componentInstance; + + function init(config) { + var searchInput = document.querySelector(selectors.searchInput); + var searchSubmit = document.querySelector(selectors.searchSubmit); + var searchUrl = searchInput.dataset.baseUrl; + + componentInstance = new window.Shopify.theme.PredictiveSearchComponent({ + selectors: { + input: selectors.searchInput, + result: selectors.searchResults + }, + searchUrl: searchUrl, + resultTemplateFct: window.theme.SearchResultsTemplate, + numberOfResultsTemplateFct: numberOfResultsTemplateFct, + numberOfResults: config.numberOfResults, + loadingResultsMessageTemplateFct: loadingResultsMessageTemplateFct, + onInputBlur: function() { + return false; + }, + onOpen: function(nodes) { + var searchInputBoundingRect = searchInput.getBoundingClientRect(); + + // For tablet screens and up, stop the scroll area from extending past + // the bottom of the screen because we're locking the body scroll + var maxHeight = + window.innerHeight - + searchInputBoundingRect.bottom - + (config.isTabletAndUp ? 20 : 0); + + nodes.result.style.top = config.isTabletAndUp + ? '' + : searchInputBoundingRect.bottom + 'px'; + nodes.result.style.maxHeight = maxHeight + 'px'; + }, + onClose: function(nodes) { + nodes.result.style.maxHeight = ''; + }, + onBeforeDestroy: function(nodes) { + // If the viewport width changes from mobile to tablet + // reset the top position of the results + nodes.result.style.top = ''; + } + }); + + validateSearchHandler(searchInput, searchSubmit); + } + + function unload() { + if (!componentInstance) { + return; + } + + componentInstance.destroy(); + componentInstance = null; + } + + function clearAndClose() { + if (!componentInstance) { + return; + } + + componentInstance.clearAndClose(); + } + + return { + init: init, + unload: unload, + clearAndClose: clearAndClose + }; + })(); + + window.theme.Search = (function() { + var classes = { + searchTemplate: 'template-search' + }; + var selectors = { + siteHeader: '.site-header' + }; + var mediaQueryList = { + mobile: window.matchMedia('(max-width: 749px)'), + tabletAndUp: window.matchMedia('(min-width: 750px)') + }; + + function init() { + if (!document.querySelector(selectors.siteHeader)) { + return; + } + + if (!canInitializePredictiveSearch()) { + return; + } + + Object.keys(mediaQueryList).forEach(function(device) { + mediaQueryList[device].addListener(initSearchAccordingToViewport); + }); + + initSearchAccordingToViewport(); + } + + function initSearchAccordingToViewport() { + theme.SearchDrawer.close(); + theme.SearchHeader.unload(); + theme.SearchPage.unload(); + + if (mediaQueryList.mobile.matches) { + theme.SearchHeader.init({ + numberOfResults: 4, + isTabletAndUp: false + }); + + if (isSearchPage()) { + theme.SearchPage.init({ isTabletAndUp: false }); + } + } else { + // Tablet and up + theme.SearchHeader.init({ + numberOfResults: 4, + isTabletAndUp: true + }); + + if (isSearchPage()) { + theme.SearchPage.init({ isTabletAndUp: true }); + } + } + } + + function isSearchPage() { + return document.body.classList.contains(classes.searchTemplate); + } + + function unload() { + theme.SearchHeader.unload(); + theme.SearchPage.unload(); + } + + return { + init: init, + unload: unload + }; + })(); +})(); + +window.theme = window.theme || {}; + +theme.SearchDrawer = (function() { + var selectors = { + headerSection: '[data-header-section]', + drawer: '[data-predictive-search-drawer]', + drawerOpenButton: '[data-predictive-search-open-drawer]', + headerSearchInput: '[data-predictive-search-drawer-input]', + predictiveSearchWrapper: '[data-predictive-search-mount="drawer"]' + }; + + var drawerInstance; + + function init() { + setAccessibilityProps(); + + drawerInstance = new theme.Drawers('SearchDrawer', 'top', { + onDrawerOpen: function() { + setHeight(); + theme.MobileNav.closeMobileNav(); + lockBodyScroll(); + }, + onDrawerClose: function() { + theme.SearchHeader.clearAndClose(); + var drawerOpenButton = document.querySelector( + selectors.drawerOpenButton + ); + + if (drawerOpenButton) drawerOpenButton.focus(); + + unlockBodyScroll(); + }, + withPredictiveSearch: true, + elementToFocusOnOpen: document.querySelector(selectors.headerSearchInput) + }); + } + + function setAccessibilityProps() { + var drawerOpenButton = document.querySelector(selectors.drawerOpenButton); + + if (drawerOpenButton) { + drawerOpenButton.setAttribute('aria-controls', 'SearchDrawer'); + drawerOpenButton.setAttribute('aria-expanded', 'false'); + drawerOpenButton.setAttribute('aria-controls', 'dialog'); + } + } + + function setHeight() { + var searchDrawer = document.querySelector(selectors.drawer); + var headerHeight = document.querySelector(selectors.headerSection) + .offsetHeight; + + searchDrawer.style.height = headerHeight + 'px'; + } + + function close() { + drawerInstance.close(); + } + + function lockBodyScroll() { + theme.Helpers.enableScrollLock(); + } + + function unlockBodyScroll() { + theme.Helpers.disableScrollLock(); + } + + return { + init: init, + close: close + }; +})(); + +theme.Disclosure = (function() { + var selectors = { + disclosureForm: '[data-disclosure-form]', + disclosureList: '[data-disclosure-list]', + disclosureToggle: '[data-disclosure-toggle]', + disclosureInput: '[data-disclosure-input]', + disclosureOptions: '[data-disclosure-option]' + }; + + var classes = { + listVisible: 'disclosure-list--visible' + }; + + function Disclosure(disclosure) { + this.container = disclosure; + this._cacheSelectors(); + this._setupListeners(); + } + + Disclosure.prototype = Object.assign({}, Disclosure.prototype, { + _cacheSelectors: function() { + this.cache = { + disclosureForm: this.container.closest(selectors.disclosureForm), + disclosureList: this.container.querySelector(selectors.disclosureList), + disclosureToggle: this.container.querySelector( + selectors.disclosureToggle + ), + disclosureInput: this.container.querySelector( + selectors.disclosureInput + ), + disclosureOptions: this.container.querySelectorAll( + selectors.disclosureOptions + ) + }; + }, + + _setupListeners: function() { + this.eventHandlers = this._setupEventHandlers(); + + this.cache.disclosureToggle.addEventListener( + 'click', + this.eventHandlers.toggleList + ); + + this.cache.disclosureOptions.forEach(function(disclosureOption) { + disclosureOption.addEventListener( + 'click', + this.eventHandlers.connectOptions + ); + }, this); + + this.container.addEventListener( + 'keyup', + this.eventHandlers.onDisclosureKeyUp + ); + + this.cache.disclosureList.addEventListener( + 'focusout', + this.eventHandlers.onDisclosureListFocusOut + ); + + this.cache.disclosureToggle.addEventListener( + 'focusout', + this.eventHandlers.onDisclosureToggleFocusOut + ); + + document.body.addEventListener('click', this.eventHandlers.onBodyClick); + }, + + _setupEventHandlers: function() { + return { + connectOptions: this._connectOptions.bind(this), + toggleList: this._toggleList.bind(this), + onBodyClick: this._onBodyClick.bind(this), + onDisclosureKeyUp: this._onDisclosureKeyUp.bind(this), + onDisclosureListFocusOut: this._onDisclosureListFocusOut.bind(this), + onDisclosureToggleFocusOut: this._onDisclosureToggleFocusOut.bind(this) + }; + }, + + _connectOptions: function(event) { + event.preventDefault(); + + this._submitForm(event.currentTarget.dataset.value); + }, + + _onDisclosureToggleFocusOut: function(event) { + var disclosureLostFocus = + this.container.contains(event.relatedTarget) === false; + + if (disclosureLostFocus) { + this._hideList(); + } + }, + + _onDisclosureListFocusOut: function(event) { + var childInFocus = event.currentTarget.contains(event.relatedTarget); + + var isVisible = this.cache.disclosureList.classList.contains( + classes.listVisible + ); + + if (isVisible && !childInFocus) { + this._hideList(); + } + }, + + _onDisclosureKeyUp: function(event) { + if (event.which !== slate.utils.keyboardKeys.ESCAPE) return; + this._hideList(); + this.cache.disclosureToggle.focus(); + }, + + _onBodyClick: function(event) { + var isOption = this.container.contains(event.target); + var isVisible = this.cache.disclosureList.classList.contains( + classes.listVisible + ); + + if (isVisible && !isOption) { + this._hideList(); + } + }, + + _submitForm: function(value) { + this.cache.disclosureInput.value = value; + this.cache.disclosureForm.submit(); + }, + + _hideList: function() { + this.cache.disclosureList.classList.remove(classes.listVisible); + this.cache.disclosureToggle.setAttribute('aria-expanded', false); + }, + + _toggleList: function() { + var ariaExpanded = + this.cache.disclosureToggle.getAttribute('aria-expanded') === 'true'; + this.cache.disclosureList.classList.toggle(classes.listVisible); + this.cache.disclosureToggle.setAttribute('aria-expanded', !ariaExpanded); + }, + + destroy: function() { + this.cache.disclosureToggle.removeEventListener( + 'click', + this.eventHandlers.toggleList + ); + + this.cache.disclosureOptions.forEach(function(disclosureOption) { + disclosureOption.removeEventListener( + 'click', + this.eventHandlers.connectOptions + ); + }, this); + + this.container.removeEventListener( + 'keyup', + this.eventHandlers.onDisclosureKeyUp + ); + + this.cache.disclosureList.removeEventListener( + 'focusout', + this.eventHandlers.onDisclosureListFocusOut + ); + + this.cache.disclosureToggle.removeEventListener( + 'focusout', + this.eventHandlers.onDisclosureToggleFocusOut + ); + + document.body.removeEventListener( + 'click', + this.eventHandlers.onBodyClick + ); + } + }); + + return Disclosure; +})(); + +theme.Zoom = (function() { + var selectors = { + imageZoom: '[data-image-zoom]' + }; + + var classes = { + zoomImg: 'zoomImg' + }; + + var attributes = { + imageZoomTarget: 'data-image-zoom-target' + }; + + function Zoom(container) { + this.container = container; + this.cache = {}; + this.url = container.dataset.zoom; + + this._cacheSelectors(); + + if (!this.cache.sourceImage) return; + + this._duplicateImage(); + } + + Zoom.prototype = Object.assign({}, Zoom.prototype, { + _cacheSelectors: function() { + this.cache = { + sourceImage: this.container.querySelector(selectors.imageZoom) + }; + }, + + _init: function() { + var targetWidth = this.cache.targetImage.width; + var targetHeight = this.cache.targetImage.height; + + if (this.cache.sourceImage === this.cache.targetImage) { + this.sourceWidth = targetWidth; + this.sourceHeight = targetHeight; + } else { + this.sourceWidth = this.cache.sourceImage.width; + this.sourceHeight = this.cache.sourceImage.height; + } + + this.xRatio = + (this.cache.sourceImage.width - targetWidth) / this.sourceWidth; + this.yRatio = + (this.cache.sourceImage.height - targetHeight) / this.sourceHeight; + }, + + _start: function(e) { + this._init(); + this._move(e); + }, + + _stop: function() { + this.cache.targetImage.style.opacity = 0; + }, + + /** + * Sets the correct coordinates top and left position in px + * It sets a limit within between 0 and the max height of the image + * So when the mouse leaves the target image, it could + * never go above or beyond the target image zone + */ + _setTopLeftMaxValues: function(top, left) { + return { + left: Math.max(Math.min(left, this.sourceWidth), 0), + top: Math.max(Math.min(top, this.sourceHeight), 0) + }; + }, + + _move: function(e) { + // get left and top position within the "source image" zone + var left = + e.pageX - + (this.cache.sourceImage.getBoundingClientRect().left + window.scrollX); + var top = + e.pageY - + (this.cache.sourceImage.getBoundingClientRect().top + window.scrollY); + // make sure the left and top position don't go + // above or beyond the target image zone + var position = this._setTopLeftMaxValues(top, left); + + top = position.top; + left = position.left; + + this.cache.targetImage.style.left = -(left * -this.xRatio) + 'px'; + this.cache.targetImage.style.top = -(top * -this.yRatio) + 'px'; + this.cache.targetImage.style.opacity = 1; + }, + + /** + * This loads a high resolution image + * via the data attributes url + * It adds all necessary CSS styles and adds to the container + */ + _duplicateImage: function() { + this._loadImage() + .then( + function(image) { + this.cache.targetImage = image; + image.style.width = image.width + 'px'; + image.style.height = image.height + 'px'; + image.style.position = 'absolute'; + image.style.maxWidth = 'none'; + image.style.maxHeight = 'none'; + image.style.opacity = 0; + image.style.border = 'none'; + image.style.left = 0; + image.style.top = 0; + + this.container.appendChild(image); + + this._init(); + + this._start = this._start.bind(this); + this._stop = this._stop.bind(this); + this._move = this._move.bind(this); + + this.container.addEventListener('mouseenter', this._start); + this.container.addEventListener('mouseleave', this._stop); + this.container.addEventListener('mousemove', this._move); + + this.container.style.position = 'relative'; + this.container.style.overflow = 'hidden'; + }.bind(this) + ) + .catch(function(error) { + // eslint-disable-next-line no-console + console.warn('Error fetching image', error); + }); + }, + + _loadImage: function() { + // eslint-disable-next-line + return new Promise(function(resolve, reject) { + var image = new Image(); + image.setAttribute('role', 'presentation'); + image.setAttribute(attributes.imageZoomTarget, true); + image.classList.add(classes.zoomImg); + image.src = this.url; + + image.addEventListener('load', function() { + resolve(image); + }); + + image.addEventListener('error', function(error) { + reject(error); + }); + }.bind(this) + ); + }, + + unload: function() { + var targetImage = this.container.querySelector( + '[' + attributes.imageZoomTarget + ']' + ); + if (targetImage) { + targetImage.remove(); + } + + this.container.removeEventListener('mouseenter', this._start); + this.container.removeEventListener('mouseleave', this._stop); + this.container.removeEventListener('mousemove', this._move); + } + }); + + return Zoom; +})(); + + +/* ================ TEMPLATES ================ */ +(function() { + var filterBys = document.querySelectorAll('[data-blog-tag-filter]'); + + if (!filterBys.length) return; + + slate.utils.resizeSelects(filterBys); + + filterBys.forEach(function(filterBy) { + filterBy.addEventListener('change', function(evt) { + location.href = evt.target.value; + }); + }); +})(); + +window.theme = theme || {}; + +theme.customerTemplates = (function() { + var selectors = { + RecoverHeading: '#RecoverHeading', + RecoverEmail: '#RecoverEmail', + LoginHeading: '#LoginHeading' + }; + + function initEventListeners() { + this.recoverHeading = document.querySelector(selectors.RecoverHeading); + this.recoverEmail = document.querySelector(selectors.RecoverEmail); + this.loginHeading = document.querySelector(selectors.LoginHeading); + var recoverPassword = document.getElementById('RecoverPassword'); + var hideRecoverPasswordLink = document.getElementById( + 'HideRecoverPasswordLink' + ); + + // Show reset password form + if (recoverPassword) { + recoverPassword.addEventListener( + 'click', + function(evt) { + evt.preventDefault(); + showRecoverPasswordForm(); + this.recoverHeading.setAttribute('tabindex', '-1'); + this.recoverHeading.focus(); + }.bind(this) + ); + } + + // Hide reset password form + if (hideRecoverPasswordLink) { + hideRecoverPasswordLink.addEventListener( + 'click', + function(evt) { + evt.preventDefault(); + hideRecoverPasswordForm(); + this.loginHeading.setAttribute('tabindex', '-1'); + this.loginHeading.focus(); + }.bind(this) + ); + } + + if (this.recoverHeading) { + this.recoverHeading.addEventListener('blur', function(evt) { + evt.target.removeAttribute('tabindex'); + }); + } + + if (this.loginHeading) { + this.loginHeading.addEventListener('blur', function(evt) { + evt.target.removeAttribute('tabindex'); + }); + } + } + + /** + * + * Show/Hide recover password form + * + */ + + function showRecoverPasswordForm() { + document.getElementById('RecoverPasswordForm').classList.remove('hide'); + document.getElementById('CustomerLoginForm').classList.add('hide'); + + if (this.recoverEmail.getAttribute('aria-invalid') === 'true') { + this.recoverEmail.focus(); + } + } + + function hideRecoverPasswordForm() { + document.getElementById('RecoverPasswordForm').classList.add('hide'); + document.getElementById('CustomerLoginForm').classList.remove('hide'); + } + + /** + * + * Show reset password success message + * + */ + function resetPasswordSuccess() { + var formState = document.querySelector('.reset-password-success'); + + // check if reset password form was successfully submited. + if (!formState) { + return; + } + + // show success message + var resetSuccess = document.getElementById('ResetSuccess'); + resetSuccess.classList.remove('hide'); + resetSuccess.focus(); + } + + /** + * + * Show/hide customer address forms + * + */ + function customerAddressForm() { + var newAddressForm = document.getElementById('AddressNewForm'); + var newAddressFormButton = document.getElementById('AddressNewButton'); + + if (!newAddressForm) { + return; + } + + // Initialize observers on address selectors, defined in shopify_common.js + if (Shopify) { + // eslint-disable-next-line no-new + new Shopify.CountryProvinceSelector( + 'AddressCountryNew', + 'AddressProvinceNew', + { + hideElement: 'AddressProvinceContainerNew' + } + ); + } + + // Initialize each edit form's country/province selector + document + .querySelectorAll('.address-country-option') + .forEach(function(option) { + var formId = option.dataset.formId; + var countrySelector = 'AddressCountry_' + formId; + var provinceSelector = 'AddressProvince_' + formId; + var containerSelector = 'AddressProvinceContainer_' + formId; + + // eslint-disable-next-line no-new + new Shopify.CountryProvinceSelector(countrySelector, provinceSelector, { + hideElement: containerSelector + }); + }); + + // Toggle new/edit address forms + document.querySelectorAll('.address-new-toggle').forEach(function(button) { + button.addEventListener('click', function() { + var isExpanded = + newAddressFormButton.getAttribute('aria-expanded') === 'true'; + + newAddressForm.classList.toggle('hide'); + newAddressFormButton.setAttribute('aria-expanded', !isExpanded); + newAddressFormButton.focus(); + }); + }); + + document.querySelectorAll('.address-edit-toggle').forEach(function(button) { + button.addEventListener('click', function(evt) { + var formId = evt.target.dataset.formId; + var editButton = document.getElementById('EditFormButton_' + formId); + var editAddress = document.getElementById('EditAddress_' + formId); + var isExpanded = editButton.getAttribute('aria-expanded') === 'true'; + + editAddress.classList.toggle('hide'); + editButton.setAttribute('aria-expanded', !isExpanded); + editButton.focus(); + }); + }); + + document.querySelectorAll('.address-delete').forEach(function(button) { + button.addEventListener('click', function(evt) { + var target = evt.target.dataset.target; + var confirmMessage = evt.target.dataset.confirmMessage; + + // eslint-disable-next-line no-alert + if ( + confirm( + confirmMessage || 'Are you sure you wish to delete this address?' + ) + ) { + Shopify.postLink(target, { + parameters: { _method: 'delete' } + }); + } + }); + }); + } + + /** + * + * Check URL for reset password hash + * + */ + function checkUrlHash() { + var hash = window.location.hash; + + // Allow deep linking to recover password form + if (hash === '#recover') { + showRecoverPasswordForm.bind(this)(); + } + } + + return { + init: function() { + initEventListeners(); + checkUrlHash(); + resetPasswordSuccess(); + customerAddressForm(); + } + }; +})(); + + +/*================ SECTIONS ================*/ +window.theme = window.theme || {}; + +theme.Cart = (function() { + var selectors = { + cartCount: '[data-cart-count]', + cartCountBubble: '[data-cart-count-bubble]', + cartDiscount: '[data-cart-discount]', + cartDiscountTitle: '[data-cart-discount-title]', + cartDiscountAmount: '[data-cart-discount-amount]', + cartDiscountWrapper: '[data-cart-discount-wrapper]', + cartErrorMessage: '[data-cart-error-message]', + cartErrorMessageWrapper: '[data-cart-error-message-wrapper]', + cartItem: '[data-cart-item]', + cartItemDetails: '[data-cart-item-details]', + cartItemDiscount: '[data-cart-item-discount]', + cartItemDiscountedPriceGroup: '[data-cart-item-discounted-price-group]', + cartItemDiscountTitle: '[data-cart-item-discount-title]', + cartItemDiscountAmount: '[data-cart-item-discount-amount]', + cartItemDiscountList: '[data-cart-item-discount-list]', + cartItemFinalPrice: '[data-cart-item-final-price]', + cartItemImage: '[data-cart-item-image]', + cartItemLinePrice: '[data-cart-item-line-price]', + cartItemOriginalPrice: '[data-cart-item-original-price]', + cartItemPrice: '[data-cart-item-price]', + cartItemPriceList: '[data-cart-item-price-list]', + cartItemProperty: '[data-cart-item-property]', + cartItemPropertyName: '[data-cart-item-property-name]', + cartItemPropertyValue: '[data-cart-item-property-value]', + cartItemRegularPriceGroup: '[data-cart-item-regular-price-group]', + cartItemRegularPrice: '[data-cart-item-regular-price]', + cartItemTitle: '[data-cart-item-title]', + cartItemOption: '[data-cart-item-option]', + cartItemSellingPlanName: '[data-cart-item-selling-plan-name]', + cartLineItems: '[data-cart-line-items]', + cartNote: '[data-cart-notes]', + cartQuantityErrorMessage: '[data-cart-quantity-error-message]', + cartQuantityErrorMessageWrapper: + '[data-cart-quantity-error-message-wrapper]', + cartRemove: '[data-cart-remove]', + cartStatus: '[data-cart-status]', + cartSubtotal: '[data-cart-subtotal]', + cartTableCell: '[data-cart-table-cell]', + cartWrapper: '[data-cart-wrapper]', + emptyPageContent: '[data-empty-page-content]', + quantityInput: '[data-quantity-input]', + quantityInputMobile: '[data-quantity-input-mobile]', + quantityInputDesktop: '[data-quantity-input-desktop]', + quantityLabelMobile: '[data-quantity-label-mobile]', + quantityLabelDesktop: '[data-quantity-label-desktop]', + inputQty: '[data-quantity-input]', + thumbnails: '.cart__image', + unitPrice: '[data-unit-price]', + unitPriceBaseUnit: '[data-unit-price-base-unit]', + unitPriceGroup: '[data-unit-price-group]' + }; + + var classes = { + cartNoCookies: 'cart--no-cookies', + cartRemovedProduct: 'cart__removed-product', + thumbnails: 'cart__image', + hide: 'hide', + inputError: 'input--error' + }; + + var attributes = { + cartItemIndex: 'data-cart-item-index', + cartItemKey: 'data-cart-item-key', + cartItemQuantity: 'data-cart-item-quantity', + cartItemTitle: 'data-cart-item-title', + cartItemUrl: 'data-cart-item-url', + quantityItem: 'data-quantity-item' + }; + + var mediumUpQuery = '(min-width: ' + theme.breakpoints.medium + 'px)'; + + function Cart(container) { + this.container = container; + this.thumbnails = this.container.querySelectorAll(selectors.thumbnails); + this.quantityInputs = this.container.querySelectorAll(selectors.inputQty); + this.ajaxEnabled = + this.container.getAttribute('data-ajax-enabled') === 'true'; + + this.cartRoutes = JSON.parse( + document.querySelector('[data-cart-routes]').innerHTML + ); + + this._handleInputQty = theme.Helpers.debounce( + this._handleInputQty.bind(this), + 500 + ); + this.setQuantityFormControllers = this.setQuantityFormControllers.bind( + this + ); + this._onNoteChange = this._onNoteChange.bind(this); + this._onRemoveItem = this._onRemoveItem.bind(this); + + if (!theme.Helpers.cookiesEnabled()) { + this.container.classList.add(classes.cartNoCookies); + } + + this.thumbnails.forEach(function(element) { + element.style.cursor = 'pointer'; + }); + + this.container.addEventListener('click', this._handleThumbnailClick); + this.container.addEventListener('change', this._handleInputQty); + + this.mql = window.matchMedia(mediumUpQuery); + this.mql.addListener(this.setQuantityFormControllers); + + this.setQuantityFormControllers(); + + if (this.ajaxEnabled) { + /** + * Because the entire cart is recreated when a cart item is updated, + * we cannot cache the elements in the cart. Instead, we add the event + * listeners on the cart's container to allow us to retain the event + * listeners after rebuilding the cart when an item is updated. + */ + this.container.addEventListener('click', this._onRemoveItem); + this.container.addEventListener('change', this._onNoteChange); + + this._setupCartTemplates(); + } + } + + Cart.prototype = Object.assign({}, Cart.prototype, { + _setupCartTemplates: function() { + var cartItem = this.container.querySelector(selectors.cartItem); + if (!cartItem) return; + + this.itemTemplate = this.container + .querySelector(selectors.cartItem) + .cloneNode(true); + + this.itemDiscountTemplate = this.itemTemplate + .querySelector(selectors.cartItemDiscount) + .cloneNode(true); + + this.cartDiscountTemplate = this.container + .querySelector(selectors.cartDiscount) + .cloneNode(true); + + this.itemPriceListTemplate = this.itemTemplate + .querySelector(selectors.cartItemPriceList) + .cloneNode(true); + + this.itemOptionTemplate = this.itemTemplate + .querySelector(selectors.cartItemOption) + .cloneNode(true); + + this.itemPropertyTemplate = this.itemTemplate + .querySelector(selectors.cartItemProperty) + .cloneNode(true); + + this.itemSellingPlanNameTemplate = this.itemTemplate + .querySelector(selectors.cartItemSellingPlanName) + .cloneNode(true); + }, + + _handleInputQty: function(evt) { + if (!evt.target.hasAttribute('data-quantity-input')) return; + + var input = evt.target; + var itemElement = input.closest(selectors.cartItem); + + var itemIndex = Number(input.getAttribute('data-quantity-item')); + + var itemQtyInputs = this.container.querySelectorAll( + "[data-quantity-item='" + itemIndex + "']" + ); + + var value = parseInt(input.value); + + var isValidValue = !(value < 0 || isNaN(value)); + + itemQtyInputs.forEach(function(element) { + element.value = value; + }); + + this._hideCartError(); + this._hideQuantityErrorMessage(); + + if (!isValidValue) { + this._showQuantityErrorMessages(itemElement); + return; + } + + if (isValidValue && this.ajaxEnabled) { + this._updateItemQuantity(itemIndex, itemElement, itemQtyInputs, value); + } + }, + + _updateItemQuantity: function( + itemIndex, + itemElement, + itemQtyInputs, + value + ) { + var key = itemElement.getAttribute(attributes.cartItemKey); + var index = Number(itemElement.getAttribute(attributes.cartItemIndex)); + + var request = { + method: 'POST', + headers: { + 'Content-Type': 'application/json;' + }, + body: JSON.stringify({ + line: index, + quantity: value + }) + }; + + fetch(this.cartRoutes.cartChangeUrl + '.js', request) + .then(function(response) { + return response.json(); + }) + .then( + function(state) { + this._setCartCountBubble(state.item_count); + + if (!state.item_count) { + this._emptyCart(); + return; + } + + // Cache current in-focus element, used later to restore focus + var inFocus = document.activeElement; + + this._createCart(state); + + if (!value) { + this._showRemoveMessage(itemElement.cloneNode(true)); + return; + } + + var item = this.getItem(key, state); + + this._updateLiveRegion(item); + + // Restore focus to the "equivalent" element after the DOM has been updated + if (!inFocus) return; + var row = inFocus.closest('[' + attributes.cartItemIndex + ']'); + if (!row) return; + var target = this.container.querySelector( + '[' + + attributes.cartItemIndex + + '="' + + row.getAttribute(attributes.cartItemIndex) + + '"] [data-role="' + + inFocus.getAttribute('data-role') + + '"]' + ); + if (!target) return; + target.focus(); + }.bind(this) + ) + .catch( + function() { + this._showCartError(null); + }.bind(this) + ); + }, + + getItem: function(key, state) { + return state.items.find(function(item) { + return item.key === key; + }); + }, + + _liveRegionText: function(item) { + // Dummy content for live region + var liveRegionText = + theme.strings.update + + ': [QuantityLabel]: [Quantity], [Regular] [$$] [DiscountedPrice] [$]. [PriceInformation]'; + + // Update Quantity + liveRegionText = liveRegionText + .replace('[QuantityLabel]', theme.strings.quantity) + .replace('[Quantity]', item.quantity); + + // Update pricing information + var regularLabel = ''; + var regularPrice = theme.Currency.formatMoney( + item.original_line_price, + theme.moneyFormat + ); + var discountLabel = ''; + var discountPrice = ''; + var discountInformation = ''; + + if (item.original_line_price > item.final_line_price) { + regularLabel = theme.strings.regularTotal; + + discountLabel = theme.strings.discountedTotal; + discountPrice = theme.Currency.formatMoney( + item.final_line_price, + theme.moneyFormat + ); + + discountInformation = theme.strings.priceColumn; + } + + liveRegionText = liveRegionText + .replace('[Regular]', regularLabel) + .replace('[$$]', regularPrice) + .replace('[DiscountedPrice]', discountLabel) + .replace('[$]', discountPrice) + .replace('[PriceInformation]', discountInformation) + .trim(); + + return liveRegionText; + }, + + _updateLiveRegion: function(item) { + if (!item) return; + + var liveRegion = this.container.querySelector(selectors.cartStatus); + + liveRegion.textContent = this._liveRegionText(item); + liveRegion.setAttribute('aria-hidden', false); + + setTimeout(function() { + liveRegion.setAttribute('aria-hidden', true); + }, 1000); + }, + + _createCart: function(state) { + var cartDiscountList = this._createCartDiscountList(state); + + var cartTable = this.container.querySelector(selectors.cartLineItems); + cartTable.innerHTML = ''; + + this._createLineItemList(state).forEach(function(lineItem) { + cartTable.appendChild(lineItem); + }); + + this.setQuantityFormControllers(); + + this.cartNotes = + this.cartNotes || this.container.querySelector(selectors.cartNote); + + if (this.cartNotes) { + this.cartNotes.value = state.note; + } + + var discountWrapper = this.container.querySelector( + selectors.cartDiscountWrapper + ); + + if (cartDiscountList.length === 0) { + discountWrapper.innerHTML = ''; + discountWrapper.classList.add(classes.hide); + } else { + discountWrapper.innerHTML = ''; + + cartDiscountList.forEach(function(discountItem) { + discountWrapper.appendChild(discountItem); + }); + + discountWrapper.classList.remove(classes.hide); + } + + this.container.querySelector( + selectors.cartSubtotal + ).innerHTML = theme.Currency.formatMoney( + state.total_price, + theme.moneyFormatWithCurrency + ); + }, + + _createCartDiscountList: function(cart) { + return cart.cart_level_discount_applications.map( + function(discount) { + var discountNode = this.cartDiscountTemplate.cloneNode(true); + + discountNode.querySelector(selectors.cartDiscountTitle).textContent = + discount.title; + + discountNode.querySelector( + selectors.cartDiscountAmount + ).innerHTML = theme.Currency.formatMoney( + discount.total_allocated_amount, + theme.moneyFormat + ); + + return discountNode; + }.bind(this) + ); + }, + + _createLineItemList: function(state) { + return state.items.map( + function(item, index) { + var itemNode = this.itemTemplate.cloneNode(true); + + var itemPriceList = this.itemPriceListTemplate.cloneNode(true); + + this._setLineItemAttributes(itemNode, item, index); + this._setLineItemImage(itemNode, item.featured_image); + + var cartItemTitle = itemNode.querySelector(selectors.cartItemTitle); + cartItemTitle.textContent = item.product_title; + cartItemTitle.setAttribute('href', item.url); + + var selling_plan_name = item.selling_plan_allocation + ? item.selling_plan_allocation.selling_plan.name + : null; + + var productDetailsList = this._createProductDetailsList( + item.product_has_only_default_variant, + item.options_with_values, + item.properties, + selling_plan_name + ); + + this._setProductDetailsList(itemNode, productDetailsList); + + this._setItemRemove(itemNode, item.title); + + itemPriceList.innerHTML = this._createItemPrice( + item.original_price, + item.final_price + ).outerHTML; + + if (item.unit_price_measurement) { + itemPriceList.appendChild( + this._createUnitPrice( + item.unit_price, + item.unit_price_measurement + ) + ); + } + + this._setItemPrice(itemNode, itemPriceList); + + var itemDiscountList = this._createItemDiscountList(item); + this._setItemDiscountList(itemNode, itemDiscountList); + this._setQuantityInputs(itemNode, item, index); + + var itemLinePrice = this._createItemPrice( + item.original_line_price, + item.final_line_price + ); + + this._setItemLinePrice(itemNode, itemLinePrice); + + return itemNode; + }.bind(this) + ); + }, + + _setLineItemAttributes: function(itemNode, item, index) { + itemNode.setAttribute(attributes.cartItemKey, item.key); + itemNode.setAttribute(attributes.cartItemUrl, item.url); + itemNode.setAttribute(attributes.cartItemTitle, item.title); + itemNode.setAttribute(attributes.cartItemIndex, index + 1); + itemNode.setAttribute(attributes.cartItemQuantity, item.quantity); + }, + + _setLineItemImage: function(itemNode, featuredImage) { + var image = itemNode.querySelector(selectors.cartItemImage); + + var sizedImageUrl = + featuredImage.url !== null + ? theme.Images.getSizedImageUrl(featuredImage.url, 'x190') + : null; + + if (sizedImageUrl) { + image.setAttribute('alt', featuredImage.alt); + image.setAttribute('src', sizedImageUrl); + image.classList.remove(classes.hide); + } else { + image.parentNode.removeChild(image); + } + }, + + _setProductDetailsList: function(item, productDetailsList) { + var itemDetails = item.querySelector(selectors.cartItemDetails); + + if (productDetailsList.length) { + itemDetails.classList.remove(classes.hide); + itemDetails.innerHTML = productDetailsList.reduce(function( + result, + element + ) { + return result + element.outerHTML; + }, + ''); + + return; + } + + itemDetails.classList.add(classes.hide); + itemDetails.textContent = ''; + }, + + _setItemPrice: function(item, price) { + item.querySelector(selectors.cartItemPrice).innerHTML = price.outerHTML; + }, + + _setItemDiscountList: function(item, discountList) { + var itemDiscountList = item.querySelector(selectors.cartItemDiscountList); + + if (discountList.length === 0) { + itemDiscountList.innerHTML = ''; + itemDiscountList.classList.add(classes.hide); + } else { + itemDiscountList.innerHTML = discountList.reduce(function( + result, + element + ) { + return result + element.outerHTML; + }, + ''); + + itemDiscountList.classList.remove(classes.hide); + } + }, + + _setItemRemove: function(item, title) { + item + .querySelector(selectors.cartRemove) + .setAttribute( + 'aria-label', + theme.strings.removeLabel.replace('[product]', title) + ); + }, + + _setQuantityInputs: function(itemNode, item, index) { + var mobileInput = itemNode.querySelector(selectors.quantityInputMobile); + var desktopInput = itemNode.querySelector(selectors.quantityInputDesktop); + + mobileInput.setAttribute('id', 'updates_' + item.key); + desktopInput.setAttribute('id', 'updates_large_' + item.key); + + [mobileInput, desktopInput].forEach(function(element) { + element.setAttribute(attributes.quantityItem, index + 1); + element.value = item.quantity; + }); + + itemNode + .querySelector(selectors.quantityLabelMobile) + .setAttribute('for', 'updates_' + item.key); + + itemNode + .querySelector(selectors.quantityLabelDesktop) + .setAttribute('for', 'updates_large_' + item.key); + }, + + setQuantityFormControllers: function() { + var desktopQuantityInputs = document.querySelectorAll( + selectors.quantityInputDesktop + ); + + var mobileQuantityInputs = document.querySelectorAll( + selectors.quantityInputMobile + ); + + if (this.mql.matches) { + addNameAttribute(desktopQuantityInputs); + removeNameAttribute(mobileQuantityInputs); + } else { + addNameAttribute(mobileQuantityInputs); + removeNameAttribute(desktopQuantityInputs); + } + + function addNameAttribute(inputs) { + inputs.forEach(function(element) { + element.setAttribute('name', 'updates[]'); + }); + } + + function removeNameAttribute(inputs) { + inputs.forEach(function(element) { + element.removeAttribute('name'); + }); + } + }, + + _setItemLinePrice: function(item, price) { + item.querySelector(selectors.cartItemLinePrice).innerHTML = + price.outerHTML; + }, + + _createProductDetailsList: function( + product_has_only_default_variant, + options, + properties, + selling_plan_name + ) { + var optionsPropertiesHTML = []; + + if (!product_has_only_default_variant) { + optionsPropertiesHTML = optionsPropertiesHTML.concat( + this._getOptionList(options) + ); + } + + if (selling_plan_name) { + optionsPropertiesHTML = optionsPropertiesHTML.concat( + this._getSellingPlanName(selling_plan_name) + ); + } + + if (properties !== null && Object.keys(properties).length !== 0) { + optionsPropertiesHTML = optionsPropertiesHTML.concat( + this._getPropertyList(properties) + ); + } + + return optionsPropertiesHTML; + }, + + _getOptionList: function(options) { + return options.map( + function(option) { + var optionElement = this.itemOptionTemplate.cloneNode(true); + + optionElement.textContent = option.name + ': ' + option.value; + optionElement.classList.remove(classes.hide); + + return optionElement; + }.bind(this) + ); + }, + + _getPropertyList: function(properties) { + var propertiesArray = + properties !== null ? Object.entries(properties) : []; + + var filteredPropertiesArray = propertiesArray.filter(function(property) { + // Line item properties prefixed with an underscore are not to be displayed + // if the property value has a length of 0 (empty), don't display it + if (property[0].charAt(0) === '_' || property[1].length === 0) { + return false; + } else { + return true; + } + }); + + return filteredPropertiesArray.map( + function(property) { + var propertyElement = this.itemPropertyTemplate.cloneNode(true); + + propertyElement.querySelector( + selectors.cartItemPropertyName + ).textContent = property[0] + ': '; + + if (property[0].indexOf('/uploads/') === -1) { + propertyElement.querySelector( + selectors.cartItemPropertyValue + ).textContent = property[1]; + } else { + propertyElement.querySelector( + selectors.cartItemPropertyValue + ).innerHTML = + ' ' + + property[1].split('/').pop() + + ''; + } + + propertyElement.classList.remove(classes.hide); + + return propertyElement; + }.bind(this) + ); + }, + + _getSellingPlanName: function(selling_plan_name) { + var sellingPlanNameElement = this.itemSellingPlanNameTemplate.cloneNode( + true + ); + + sellingPlanNameElement.textContent = selling_plan_name; + sellingPlanNameElement.classList.remove(classes.hide); + + return sellingPlanNameElement; + }, + + _createItemPrice: function(original_price, final_price) { + var originalPriceHTML = theme.Currency.formatMoney( + original_price, + theme.moneyFormat + ); + + var resultHTML; + + if (original_price !== final_price) { + resultHTML = this.itemPriceListTemplate + .querySelector(selectors.cartItemDiscountedPriceGroup) + .cloneNode(true); + + resultHTML.querySelector( + selectors.cartItemOriginalPrice + ).innerHTML = originalPriceHTML; + + resultHTML.querySelector( + selectors.cartItemFinalPrice + ).innerHTML = theme.Currency.formatMoney( + final_price, + theme.moneyFormat + ); + } else { + resultHTML = this.itemPriceListTemplate + .querySelector(selectors.cartItemRegularPriceGroup) + .cloneNode(true); + + resultHTML.querySelector( + selectors.cartItemRegularPrice + ).innerHTML = originalPriceHTML; + } + + resultHTML.classList.remove(classes.hide); + return resultHTML; + }, + + _createUnitPrice: function(unitPrice, unitPriceMeasurement) { + var unitPriceGroup = this.itemPriceListTemplate + .querySelector(selectors.unitPriceGroup) + .cloneNode(true); + + var unitPriceBaseUnit = + (unitPriceMeasurement.reference_value !== 1 + ? unitPriceMeasurement.reference_value + : '') + unitPriceMeasurement.reference_unit; + + unitPriceGroup.querySelector( + selectors.unitPriceBaseUnit + ).textContent = unitPriceBaseUnit; + + unitPriceGroup.querySelector( + selectors.unitPrice + ).innerHTML = theme.Currency.formatMoney(unitPrice, theme.moneyFormat); + + unitPriceGroup.classList.remove(classes.hide); + + return unitPriceGroup; + }, + + _createItemDiscountList: function(item) { + return item.line_level_discount_allocations.map( + function(discount) { + var discountNode = this.itemDiscountTemplate.cloneNode(true); + + discountNode.querySelector( + selectors.cartItemDiscountTitle + ).textContent = discount.discount_application.title; + + discountNode.querySelector( + selectors.cartItemDiscountAmount + ).innerHTML = theme.Currency.formatMoney( + discount.amount, + theme.moneyFormat + ); + + return discountNode; + }.bind(this) + ); + }, + + _showQuantityErrorMessages: function(itemElement) { + itemElement + .querySelectorAll(selectors.cartQuantityErrorMessage) + .forEach(function(element) { + element.textContent = theme.strings.quantityMinimumMessage; + }); + + itemElement + .querySelectorAll(selectors.cartQuantityErrorMessageWrapper) + .forEach(function(element) { + element.classList.remove(classes.hide); + }); + + itemElement + .querySelectorAll(selectors.inputQty) + .forEach(function(element) { + element.classList.add(classes.inputError); + element.focus(); + }); + }, + + _hideQuantityErrorMessage: function() { + var errorMessages = document.querySelectorAll( + selectors.cartQuantityErrorMessageWrapper + ); + + errorMessages.forEach(function(element) { + element.classList.add(classes.hide); + + element.querySelector(selectors.cartQuantityErrorMessage).textContent = + ''; + }); + + this.container + .querySelectorAll(selectors.inputQty) + .forEach(function(element) { + element.classList.remove(classes.inputError); + }); + }, + + _handleThumbnailClick: function(evt) { + if (!evt.target.classList.contains(classes.thumbnails)) return; + + window.location.href = evt.target + .closest(selectors.cartItem) + .getAttribute('data-cart-item-url'); + }, + + _onNoteChange: function(evt) { + if (!evt.target.hasAttribute('data-cart-notes')) return; + + var note = evt.target.value; + this._hideCartError(); + this._hideQuantityErrorMessage(); + + var headers = new Headers({ 'Content-Type': 'application/json' }); + + var request = { + method: 'POST', + headers: headers, + body: JSON.stringify({ note: note }) + }; + + fetch('/cart/update.js', request).catch( + function() { + this._showCartError(evt.target); + }.bind(this) + ); + }, + + _showCartError: function(elementToFocus) { + document.querySelector(selectors.cartErrorMessage).textContent = + theme.strings.cartError; + + document + .querySelector(selectors.cartErrorMessageWrapper) + .classList.remove(classes.hide); + + if (!elementToFocus) return; + elementToFocus.focus(); + }, + + _hideCartError: function() { + document + .querySelector(selectors.cartErrorMessageWrapper) + .classList.add(classes.hide); + document.querySelector(selectors.cartErrorMessage).textContent = ''; + }, + + _onRemoveItem: function(evt) { + if (!evt.target.hasAttribute('data-cart-remove')) return; + + evt.preventDefault(); + var lineItem = evt.target.closest(selectors.cartItem); + var index = Number(lineItem.getAttribute(attributes.cartItemIndex)); + + this._hideCartError(); + + var request = { + method: 'POST', + headers: { + 'Content-Type': 'application/json;' + }, + body: JSON.stringify({ + line: index, + quantity: 0 + }) + }; + + fetch(this.cartRoutes.cartChangeUrl + '.js', request) + .then(function(response) { + return response.json(); + }) + .then( + function(state) { + if (state.item_count === 0) { + this._emptyCart(); + } else { + this._createCart(state); + this._showRemoveMessage(lineItem.cloneNode(true)); + } + + this._setCartCountBubble(state.item_count); + }.bind(this) + ) + .catch( + function() { + this._showCartError(null); + }.bind(this) + ); + }, + + _showRemoveMessage: function(lineItem) { + var index = lineItem.getAttribute('data-cart-item-index'); + var removeMessage = this._getRemoveMessage(lineItem); + + if (index - 1 === 0) { + this.container + .querySelector('[data-cart-item-index="1"]') + .insertAdjacentHTML('beforebegin', removeMessage.outerHTML); + } else { + this.container + .querySelector("[data-cart-item-index='" + (index - 1) + "']") + .insertAdjacentHTML('afterend', removeMessage.outerHTML); + } + + this.container.querySelector('[data-removed-item-row]').focus(); + }, + + _getRemoveMessage: function(lineItem) { + var formattedMessage = this._formatRemoveMessage(lineItem); + + var tableCell = lineItem + .querySelector(selectors.cartTableCell) + .cloneNode(true); + + tableCell.removeAttribute('class'); + tableCell.classList.add(classes.cartRemovedProduct); + tableCell.setAttribute('colspan', '4'); + tableCell.innerHTML = formattedMessage; + + lineItem.setAttribute('role', 'alert'); + lineItem.setAttribute('tabindex', '-1'); + lineItem.setAttribute('data-removed-item-row', true); + lineItem.innerHTML = tableCell.outerHTML; + + return lineItem; + }, + + _formatRemoveMessage: function(lineItem) { + var quantity = lineItem.getAttribute('data-cart-item-quantity'); + var url = lineItem.getAttribute(attributes.cartItemUrl); + var title = lineItem.getAttribute(attributes.cartItemTitle); + + return theme.strings.removedItemMessage + .replace('[quantity]', quantity) + .replace( + '[link]', + '' + + title + + '' + ); + }, + + _setCartCountBubble: function(quantity) { + this.cartCountBubble = + this.cartCountBubble || + document.querySelector(selectors.cartCountBubble); + + this.cartCount = + this.cartCount || document.querySelector(selectors.cartCount); + + if (quantity > 0) { + this.cartCountBubble.classList.remove(classes.hide); + this.cartCount.textContent = quantity; + } else { + this.cartCountBubble.classList.add(classes.hide); + this.cartCount.textContent = ''; + } + }, + + _emptyCart: function() { + this.emptyPageContent = + this.emptyPageContent || + this.container.querySelector(selectors.emptyPageContent); + + this.cartWrapper = + this.cartWrapper || this.container.querySelector(selectors.cartWrapper); + + this.emptyPageContent.classList.remove(classes.hide); + this.cartWrapper.classList.add(classes.hide); + } + }); + + return Cart; +})(); + +window.theme = window.theme || {}; + +theme.Filters = (function() { + var settings = { + mediaQueryMediumUp: '(min-width: ' + theme.breakpoints.medium + 'px)' + }; + + var selectors = { + filterSelection: '#FilterTags', + sortSelection: '#SortBy', + selectInput: '[data-select-input]' + }; + + function Filters(container) { + this.filterSelect = container.querySelector(selectors.filterSelection); + this.sortSelect = container.querySelector(selectors.sortSelection); + + this.selects = document.querySelectorAll(selectors.selectInput); + + if (this.sortSelect) { + this.defaultSort = this._getDefaultSortValue(); + } + + if (this.selects.length) { + this.selects.forEach(function(select) { + select.classList.remove('hidden'); + }); + } + + this.initBreakpoints = this._initBreakpoints.bind(this); + + this.mql = window.matchMedia(settings.mediaQueryMediumUp); + this.mql.addListener(this.initBreakpoints); + + if (this.filterSelect) { + this.filterSelect.addEventListener( + 'change', + this._onFilterChange.bind(this) + ); + } + + if (this.sortSelect) { + this.sortSelect.addEventListener('change', this._onSortChange.bind(this)); + } + + theme.Helpers.promiseStylesheet().then( + function() { + this._initBreakpoints(); + }.bind(this) + ); + this._initParams(); + } + + Filters.prototype = Object.assign({}, Filters.prototype, { + _initBreakpoints: function() { + if (this.mql.matches) { + slate.utils.resizeSelects(this.selects); + } + }, + + _initParams: function() { + this.queryParams = {}; + if (location.search.length) { + var aKeyValue; + var aCouples = location.search.substr(1).split('&'); + for (var i = 0; i < aCouples.length; i++) { + aKeyValue = aCouples[i].split('='); + if (aKeyValue.length > 1) { + this.queryParams[ + decodeURIComponent(aKeyValue[0]) + ] = decodeURIComponent(aKeyValue[1]); + } + } + } + }, + + _onSortChange: function() { + this.queryParams.sort_by = this._getSortValue(); + + if (this.queryParams.page) { + delete this.queryParams.page; + } + + window.location.search = decodeURIComponent( + new URLSearchParams(Object.entries(this.queryParams)).toString() + ); + }, + + _onFilterChange: function() { + document.location.href = this._getFilterValue(); + }, + + _getFilterValue: function() { + return this.filterSelect.value; + }, + + _getSortValue: function() { + return this.sortSelect.value || this.defaultSort; + }, + + _getDefaultSortValue: function() { + return this.sortSelect.dataset.defaultSortby; + }, + + onUnload: function() { + if (this.filterSelect) { + this.filterSelect.removeEventListener('change', this._onFilterChange); + } + + if (this.sortSelect) { + this.sortSelect.removeEventListener('change', this._onSortChange); + } + + this.mql.removeListener(this.initBreakpoints); + } + }); + + return Filters; +})(); + +window.theme = window.theme || {}; + +theme.HeaderSection = (function() { + function Header() { + theme.Header.init(); + theme.MobileNav.init(); + theme.SearchDrawer.init(); + theme.Search.init(); + } + + Header.prototype = Object.assign({}, Header.prototype, { + onUnload: function() { + theme.Header.unload(); + theme.Search.unload(); + theme.MobileNav.unload(); + } + }); + + return Header; +})(); + +theme.Maps = (function() { + var config = { + zoom: 14 + }; + var apiStatus = null; + var mapsToLoad = []; + + var errors = { + addressNoResults: theme.strings.addressNoResults, + addressQueryLimit: theme.strings.addressQueryLimit, + addressError: theme.strings.addressError, + authError: theme.strings.authError + }; + + var selectors = { + section: '[data-section-type="map"]', + map: '[data-map]', + mapOverlay: '[data-map-overlay]' + }; + + var classes = { + mapError: 'map-section--load-error', + errorMsg: 'map-section__error errors text-center' + }; + + // Global function called by Google on auth errors. + // Show an auto error message on all map instances. + // eslint-disable-next-line camelcase, no-unused-vars + window.gm_authFailure = function() { + if (!Shopify.designMode) { + return; + } + + document.querySelector(selectors.section).classList.add(classes.mapError); + document.querySelector(selectors.map).remove(); + document + .querySelector(selectors.mapOverlay) + .insertAdjacentHTML( + 'afterend', + '
    ' + + theme.strings.authError + + '
    ' + ); + }; + + function Map(container) { + this.map = container.querySelector(selectors.map); + if (!this.map) return; + this.key = this.map.dataset.apiKey; + + if (typeof this.key === 'undefined') { + return; + } + + if (apiStatus === 'loaded') { + this.createMap(); + } else { + mapsToLoad.push(this); + + if (apiStatus !== 'loading') { + apiStatus = 'loading'; + if (typeof window.google === 'undefined') { + theme.Helpers.getScript( + 'https://maps.googleapis.com/maps/api/js?key=' + this.key + ).then(function() { + apiStatus = 'loaded'; + initAllMaps(); + }); + } + } + } + } + + function initAllMaps() { + // API has loaded, load all Map instances in queue + mapsToLoad.forEach(function(map) { + map.createMap(); + }); + } + + function geolocate(map) { + return new Promise(function(resolve, reject) { + var geocoder = new google.maps.Geocoder(); + var address = map.dataset.addressSetting; + + geocoder.geocode({ address: address }, function(results, status) { + if (status !== google.maps.GeocoderStatus.OK) { + reject(status); + } + + resolve(results); + }); + }); + } + + Map.prototype = Object.assign({}, Map.prototype, { + createMap: function() { + return geolocate(this.map) + .then( + function(results) { + var mapOptions = { + zoom: config.zoom, + center: results[0].geometry.location, + draggable: false, + clickableIcons: false, + scrollwheel: false, + disableDoubleClickZoom: true, + disableDefaultUI: true + }; + + var map = (this.map = new google.maps.Map(this.map, mapOptions)); + var center = (this.center = map.getCenter()); + + //eslint-disable-next-line no-unused-vars + var marker = new google.maps.Marker({ + map: map, + position: map.getCenter() + }); + + google.maps.event.addDomListener( + window, + 'resize', + theme.Helpers.debounce( + function() { + google.maps.event.trigger(map, 'resize'); + map.setCenter(center); + this.map.removeAttribute('style'); + }.bind(this), + 250 + ) + ); + }.bind(this) + ) + .catch( + function() { + var errorMessage; + + switch (status) { + case 'ZERO_RESULTS': + errorMessage = errors.addressNoResults; + break; + case 'OVER_QUERY_LIMIT': + errorMessage = errors.addressQueryLimit; + break; + case 'REQUEST_DENIED': + errorMessage = errors.authError; + break; + default: + errorMessage = errors.addressError; + break; + } + + // Show errors only to merchant in the editor. + if (Shopify.designMode) { + this.map.parentNode.classList.add(classes.mapError); + this.map.parentNode.innerHTML = + '
    ' + + errorMessage + + '
    '; + } + }.bind(this) + ); + }, + + onUnload: function() { + if (this.map) { + google.maps.event.clearListeners(this.map, 'resize'); + } + } + }); + + return Map; +})(); + +/* eslint-disable no-new */ +theme.Product = (function() { + function Product(container) { + this.container = container; + var sectionId = container.getAttribute('data-section-id'); + this.zoomPictures = []; + this.ajaxEnabled = container.getAttribute('data-ajax-enabled') === 'true'; + + this.settings = { + // Breakpoints from src/stylesheets/global/variables.scss.liquid + mediaQueryMediumUp: 'screen and (min-width: 750px)', + mediaQuerySmall: 'screen and (max-width: 749px)', + bpSmall: false, + enableHistoryState: + container.getAttribute('data-enable-history-state') === 'true', + namespace: '.slideshow-' + sectionId, + sectionId: sectionId, + sliderActive: false, + zoomEnabled: false + }; + + this.selectors = { + addToCart: '[data-add-to-cart]', + addToCartText: '[data-add-to-cart-text]', + cartCount: '[data-cart-count]', + cartCountBubble: '[data-cart-count-bubble]', + cartPopup: '[data-cart-popup]', + cartPopupCartQuantity: '[data-cart-popup-cart-quantity]', + cartPopupClose: '[data-cart-popup-close]', + cartPopupDismiss: '[data-cart-popup-dismiss]', + cartPopupImage: '[data-cart-popup-image]', + cartPopupImageWrapper: '[data-cart-popup-image-wrapper]', + cartPopupImagePlaceholder: '[data-image-loading-animation]', + cartPopupProductDetails: '[data-cart-popup-product-details]', + cartPopupQuantity: '[data-cart-popup-quantity]', + cartPopupQuantityLabel: '[data-cart-popup-quantity-label]', + cartPopupTitle: '[data-cart-popup-title]', + cartPopupWrapper: '[data-cart-popup-wrapper]', + loader: '[data-loader]', + loaderStatus: '[data-loader-status]', + quantity: '[data-quantity-input]', + SKU: '.variant-sku', + productStatus: '[data-product-status]', + originalSelectorId: '#ProductSelect-' + sectionId, + productForm: '[data-product-form]', + errorMessage: '[data-error-message]', + errorMessageWrapper: '[data-error-message-wrapper]', + imageZoomWrapper: '[data-image-zoom-wrapper]', + productMediaWrapper: '[data-product-single-media-wrapper]', + productThumbImages: '.product-single__thumbnail--' + sectionId, + productThumbs: '.product-single__thumbnails-' + sectionId, + productThumbListItem: '.product-single__thumbnails-item', + productThumbsWrapper: '.thumbnails-wrapper', + saleLabel: '.product-price__sale-label-' + sectionId, + singleOptionSelector: '.single-option-selector-' + sectionId, + shopifyPaymentButton: '.shopify-payment-button', + productMediaTypeVideo: '[data-product-media-type-video]', + productMediaTypeModel: '[data-product-media-type-model]', + priceContainer: '[data-price]', + regularPrice: '[data-regular-price]', + salePrice: '[data-sale-price]', + unitPrice: '[data-unit-price]', + unitPriceBaseUnit: '[data-unit-price-base-unit]', + productPolicies: '[data-product-policies]', + storeAvailabilityContainer: '[data-store-availability-container]' + }; + + this.classes = { + cartPopupWrapperHidden: 'cart-popup-wrapper--hidden', + hidden: 'hide', + visibilityHidden: 'visibility-hidden', + inputError: 'input--error', + jsZoomEnabled: 'js-zoom-enabled', + productOnSale: 'price--on-sale', + productUnitAvailable: 'price--unit-available', + productUnavailable: 'price--unavailable', + productSoldOut: 'price--sold-out', + cartImage: 'cart-popup-item__image', + productFormErrorMessageWrapperHidden: + 'product-form__error-message-wrapper--hidden', + activeClass: 'active-thumb', + variantSoldOut: 'product-form--variant-sold-out' + }; + + this.eventHandlers = {}; + + this.quantityInput = container.querySelector(this.selectors.quantity); + this.errorMessageWrapper = container.querySelector( + this.selectors.errorMessageWrapper + ); + this.productForm = container.querySelector(this.selectors.productForm); + this.addToCart = container.querySelector(this.selectors.addToCart); + this.addToCartText = this.addToCart.querySelector( + this.selectors.addToCartText + ); + this.shopifyPaymentButton = container.querySelector( + this.selectors.shopifyPaymentButton + ); + this.priceContainer = container.querySelector( + this.selectors.priceContainer + ); + this.productPolicies = container.querySelector( + this.selectors.productPolicies + ); + this.storeAvailabilityContainer = container.querySelector( + this.selectors.storeAvailabilityContainer + ); + if (this.storeAvailabilityContainer) { + this._initStoreAvailability(); + } + + this.loader = this.addToCart.querySelector(this.selectors.loader); + this.loaderStatus = container.querySelector(this.selectors.loaderStatus); + + this.imageZoomWrapper = container.querySelectorAll( + this.selectors.imageZoomWrapper + ); + + // Stop parsing if we don't have the product json script tag when loading + // section in the Theme Editor + var productJson = document.getElementById('ProductJson-' + sectionId); + if (!productJson || !productJson.innerHTML.length) { + return; + } + + this.productSingleObject = JSON.parse(productJson.innerHTML); + + // Initial state for global productState object + this.productState = { + available: true, + soldOut: false, + onSale: false, + showUnitPrice: false + }; + + this.settings.zoomEnabled = + this.imageZoomWrapper.length > 0 + ? this.imageZoomWrapper[0].classList.contains( + this.classes.jsZoomEnabled + ) + : false; + + this.cartRoutes = JSON.parse( + document.querySelector('[data-cart-routes]').innerHTML + ); + + this.initMobileBreakpoint = this._initMobileBreakpoint.bind(this); + this.initDesktopBreakpoint = this._initDesktopBreakpoint.bind(this); + + this.mqlSmall = window.matchMedia(this.settings.mediaQuerySmall); + this.mqlSmall.addListener(this.initMobileBreakpoint); + + this.mqlMediumUp = window.matchMedia(this.settings.mediaQueryMediumUp); + this.mqlMediumUp.addListener(this.initDesktopBreakpoint); + + this.initMobileBreakpoint(); + this.initDesktopBreakpoint(); + this._stringOverrides(); + this._initVariants(); + this._initMediaSwitch(); + this._initAddToCart(); + this._setActiveThumbnail(); + this._initProductVideo(); + this._initModelViewerLibraries(); + this._initShopifyXrLaunch(); + } + + Product.prototype = Object.assign({}, Product.prototype, { + _stringOverrides: function() { + theme.productStrings = theme.productStrings || {}; + theme.strings = Object.assign({}, theme.strings, theme.productStrings); + }, + + _initStoreAvailability: function() { + this.storeAvailability = new theme.StoreAvailability( + this.storeAvailabilityContainer + ); + + var storeAvailabilityModalOpenedCallback = function(event) { + if ( + this.cartPopupWrapper && + !this.cartPopupWrapper.classList.contains( + this.classes.cartPopupWrapperHidden + ) + ) { + this._hideCartPopup(event); + } + }; + + // hide cart popup modal if the store availability modal is also opened + this.storeAvailabilityContainer.addEventListener( + 'storeAvailabilityModalOpened', + storeAvailabilityModalOpenedCallback.bind(this) + ); + }, + + _initMobileBreakpoint: function() { + if (this.mqlSmall.matches) { + // initialize thumbnail slider on mobile if more than four thumbnails + if ( + this.container.querySelectorAll(this.selectors.productThumbImages) + .length > 4 + ) { + this._initThumbnailSlider(); + } + + // destroy image zooming if enabled + if (this.settings.zoomEnabled) { + this.imageZoomWrapper.forEach( + function(element, index) { + this._destroyZoom(index); + }.bind(this) + ); + } + + this.settings.bpSmall = true; + } else { + if (this.settings.sliderActive) { + this._destroyThumbnailSlider(); + } + + this.settings.bpSmall = false; + } + }, + + _initDesktopBreakpoint: function() { + if (this.mqlMediumUp.matches && this.settings.zoomEnabled) { + this.imageZoomWrapper.forEach( + function(element, index) { + this._enableZoom(element, index); + }.bind(this) + ); + } + }, + + _initVariants: function() { + var options = { + container: this.container, + enableHistoryState: + this.container.getAttribute('data-enable-history-state') === 'true', + singleOptionSelector: this.selectors.singleOptionSelector, + originalSelectorId: this.selectors.originalSelectorId, + product: this.productSingleObject + }; + + this.variants = new slate.Variants(options); + if (this.storeAvailability && this.variants.currentVariant.available) { + this.storeAvailability.updateContent(this.variants.currentVariant.id); + } + + this.eventHandlers.updateAvailability = this._updateAvailability.bind( + this + ); + this.eventHandlers.updateMedia = this._updateMedia.bind(this); + this.eventHandlers.updatePrice = this._updatePrice.bind(this); + this.eventHandlers.updateSKU = this._updateSKU.bind(this); + + this.container.addEventListener( + 'variantChange', + this.eventHandlers.updateAvailability + ); + this.container.addEventListener( + 'variantImageChange', + this.eventHandlers.updateMedia + ); + this.container.addEventListener( + 'variantPriceChange', + this.eventHandlers.updatePrice + ); + this.container.addEventListener( + 'variantSKUChange', + this.eventHandlers.updateSKU + ); + }, + + _initMediaSwitch: function() { + if (!document.querySelector(this.selectors.productThumbImages)) { + return; + } + + var self = this; + + var productThumbImages = document.querySelectorAll( + this.selectors.productThumbImages + ); + + this.eventHandlers.handleMediaFocus = this._handleMediaFocus.bind(this); + + productThumbImages.forEach(function(el) { + el.addEventListener('click', function(evt) { + evt.preventDefault(); + var mediaId = el.getAttribute('data-thumbnail-id'); + + self._switchMedia(mediaId); + self._setActiveThumbnail(mediaId); + }); + el.addEventListener('keyup', self.eventHandlers.handleMediaFocus); + }); + }, + + _initAddToCart: function() { + this.productForm.addEventListener( + 'submit', + function(evt) { + if (this.addToCart.getAttribute('aria-disabled') === 'true') { + evt.preventDefault(); + return; + } + + if (!this.ajaxEnabled) return; + + evt.preventDefault(); + + this.previouslyFocusedElement = document.activeElement; + + var isInvalidQuantity = + !!this.quantityInput && this.quantityInput.value <= 0; + + if (isInvalidQuantity) { + this._showErrorMessage(theme.strings.quantityMinimumMessage); + return; + } + + if (!isInvalidQuantity && this.ajaxEnabled) { + // disable the addToCart and dynamic checkout button while + // request/cart popup is loading and handle loading state + this._handleButtonLoadingState(true); + this._addItemToCart(this.productForm); + return; + } + }.bind(this) + ); + }, + + _initProductVideo: function() { + var sectionId = this.settings.sectionId; + + var productMediaTypeVideo = this.container.querySelectorAll( + this.selectors.productMediaTypeVideo + ); + productMediaTypeVideo.forEach(function(el) { + theme.ProductVideo.init(el, sectionId); + }); + }, + + _initModelViewerLibraries: function() { + var modelViewerElements = this.container.querySelectorAll( + this.selectors.productMediaTypeModel + ); + if (modelViewerElements.length < 1) return; + theme.ProductModel.init(modelViewerElements, this.settings.sectionId); + }, + + _initShopifyXrLaunch: function() { + this.eventHandlers.initShopifyXrLaunchHandler = this._initShopifyXrLaunchHandler.bind( + this + ); + document.addEventListener( + 'shopify_xr_launch', + this.eventHandlers.initShopifyXrLaunchHandler + ); + }, + + _initShopifyXrLaunchHandler: function() { + var currentMedia = this.container.querySelector( + this.selectors.productMediaWrapper + + ':not(.' + + self.classes.hidden + + ')' + ); + currentMedia.dispatchEvent( + new CustomEvent('xrLaunch', { + bubbles: true, + cancelable: true + }) + ); + }, + + _addItemToCart: function(form) { + var self = this; + + fetch(this.cartRoutes.cartAddUrl + '.js', { + method: 'POST', + credentials: 'same-origin', + headers: { + 'Content-Type': 'application/x-www-form-urlencoded', + 'X-Requested-With': 'XMLHttpRequest' + }, + body: theme.Helpers.serialize(form) + }) + .then(function(response) { + return response.json(); + }) + .then(function(json) { + if (json.status && json.status !== 200) { + var error = new Error(json.description); + error.isFromServer = true; + throw error; + } + self._hideErrorMessage(); + self._setupCartPopup(json); + }) + .catch(function(error) { + self.previouslyFocusedElement.focus(); + self._showErrorMessage( + error.isFromServer && error.message.length + ? error.message + : theme.strings.cartError + ); + self._handleButtonLoadingState(false); + // eslint-disable-next-line no-console + console.log(error); + }); + }, + + _handleButtonLoadingState: function(isLoading) { + if (isLoading) { + this.addToCart.setAttribute('aria-disabled', true); + this.addToCartText.classList.add(this.classes.hidden); + this.loader.classList.remove(this.classes.hidden); + + if (this.shopifyPaymentButton) { + this.shopifyPaymentButton.setAttribute('disabled', true); + } + + this.loaderStatus.setAttribute('aria-hidden', false); + } else { + this.addToCart.removeAttribute('aria-disabled'); + this.addToCartText.classList.remove(this.classes.hidden); + this.loader.classList.add(this.classes.hidden); + + if (this.shopifyPaymentButton) { + this.shopifyPaymentButton.removeAttribute('disabled'); + } + + this.loaderStatus.setAttribute('aria-hidden', true); + } + }, + + _showErrorMessage: function(errorMessage) { + var errorMessageContainer = this.container.querySelector( + this.selectors.errorMessage + ); + errorMessageContainer.innerHTML = errorMessage; + + if (this.quantityInput) { + this.quantityInput.classList.add(this.classes.inputError); + } + + this.errorMessageWrapper.classList.remove( + this.classes.productFormErrorMessageWrapperHidden + ); + this.errorMessageWrapper.setAttribute('aria-hidden', true); + this.errorMessageWrapper.removeAttribute('aria-hidden'); + }, + + _hideErrorMessage: function() { + this.errorMessageWrapper.classList.add( + this.classes.productFormErrorMessageWrapperHidden + ); + + if (this.quantityInput) { + this.quantityInput.classList.remove(this.classes.inputError); + } + }, + + _setupCartPopup: function(item) { + this.cartPopup = + this.cartPopup || document.querySelector(this.selectors.cartPopup); + this.cartPopupWrapper = + this.cartPopupWrapper || + document.querySelector(this.selectors.cartPopupWrapper); + this.cartPopupTitle = + this.cartPopupTitle || + document.querySelector(this.selectors.cartPopupTitle); + this.cartPopupQuantity = + this.cartPopupQuantity || + document.querySelector(this.selectors.cartPopupQuantity); + this.cartPopupQuantityLabel = + this.cartPopupQuantityLabel || + document.querySelector(this.selectors.cartPopupQuantityLabel); + this.cartPopupClose = + this.cartPopupClose || + document.querySelector(this.selectors.cartPopupClose); + this.cartPopupDismiss = + this.cartPopupDismiss || + document.querySelector(this.selectors.cartPopupDismiss); + this.cartPopupImagePlaceholder = + this.cartPopupImagePlaceholder || + document.querySelector(this.selectors.cartPopupImagePlaceholder); + + this._setupCartPopupEventListeners(); + + this._updateCartPopupContent(item); + }, + + _updateCartPopupContent: function(item) { + var self = this; + + var quantity = this.quantityInput ? this.quantityInput.value : 1; + + var selling_plan_name = item.selling_plan_allocation + ? item.selling_plan_allocation.selling_plan.name + : null; + + this.cartPopupTitle.textContent = item.product_title; + this.cartPopupQuantity.textContent = quantity; + this.cartPopupQuantityLabel.textContent = theme.strings.quantityLabel.replace( + '[count]', + quantity + ); + + this._setCartPopupPlaceholder(item.featured_image.url); + this._setCartPopupImage(item.featured_image.url, item.featured_image.alt); + this._setCartPopupProductDetails( + item.product_has_only_default_variant, + item.options_with_values, + item.properties, + selling_plan_name + ); + + fetch(this.cartRoutes.cartUrl + '.js', { credentials: 'same-origin' }) + .then(function(response) { + return response.json(); + }) + .then(function(cart) { + self._setCartQuantity(cart.item_count); + self._setCartCountBubble(cart.item_count); + self._showCartPopup(); + }) + .catch(function(error) { + // eslint-disable-next-line no-console + console.log(error); + }); + }, + + _setupCartPopupEventListeners: function() { + this.eventHandlers.cartPopupWrapperKeyupHandler = this._cartPopupWrapperKeyupHandler.bind( + this + ); + this.eventHandlers.hideCartPopup = this._hideCartPopup.bind(this); + this.eventHandlers.onBodyClick = this._onBodyClick.bind(this); + + this.cartPopupWrapper.addEventListener( + 'keyup', + this.eventHandlers.cartPopupWrapperKeyupHandler + ); + this.cartPopupClose.addEventListener( + 'click', + this.eventHandlers.hideCartPopup + ); + this.cartPopupDismiss.addEventListener( + 'click', + this.eventHandlers.hideCartPopup + ); + document.body.addEventListener('click', this.eventHandlers.onBodyClick); + }, + + _cartPopupWrapperKeyupHandler: function(event) { + if (event.keyCode === slate.utils.keyboardKeys.ESCAPE) { + this._hideCartPopup(event); + } + }, + + _setCartPopupPlaceholder: function(imageUrl) { + this.cartPopupImageWrapper = + this.cartPopupImageWrapper || + document.querySelector(this.selectors.cartPopupImageWrapper); + + if (imageUrl === null) { + this.cartPopupImageWrapper.classList.add(this.classes.hidden); + return; + } + }, + + _setCartPopupImage: function(imageUrl, imageAlt) { + if (imageUrl === null) return; + + this.cartPopupImageWrapper.classList.remove(this.classes.hidden); + var sizedImageUrl = theme.Images.getSizedImageUrl(imageUrl, '200x'); + var image = document.createElement('img'); + image.src = sizedImageUrl; + image.alt = imageAlt; + image.classList.add(this.classes.cartImage); + image.setAttribute('data-cart-popup-image', ''); + + image.onload = function() { + this.cartPopupImagePlaceholder.removeAttribute( + 'data-image-loading-animation' + ); + this.cartPopupImageWrapper.append(image); + }.bind(this); + }, + + _setCartPopupProductDetails: function( + product_has_only_default_variant, + options, + properties, + selling_plan_name + ) { + this.cartPopupProductDetails = + this.cartPopupProductDetails || + document.querySelector(this.selectors.cartPopupProductDetails); + var variantPropertiesHTML = ''; + + if (!product_has_only_default_variant) { + variantPropertiesHTML = + variantPropertiesHTML + this._getVariantOptionList(options); + } + + if (selling_plan_name) { + variantPropertiesHTML = + variantPropertiesHTML + this._getSellingPlanHTML(selling_plan_name); + } + + if (properties !== null && Object.keys(properties).length !== 0) { + variantPropertiesHTML = + variantPropertiesHTML + this._getPropertyList(properties); + } + + if (variantPropertiesHTML.length === 0) { + this.cartPopupProductDetails.innerHTML = ''; + this.cartPopupProductDetails.setAttribute('hidden', ''); + } else { + this.cartPopupProductDetails.innerHTML = variantPropertiesHTML; + this.cartPopupProductDetails.removeAttribute('hidden'); + } + }, + + _getVariantOptionList: function(variantOptions) { + var variantOptionListHTML = ''; + + variantOptions.forEach(function(variantOption) { + variantOptionListHTML = + variantOptionListHTML + + '
  • ' + + variantOption.name + + ': ' + + variantOption.value + + '
  • '; + }); + + return variantOptionListHTML; + }, + + _getPropertyList: function(properties) { + var propertyListHTML = ''; + var propertiesArray = Object.entries(properties); + + propertiesArray.forEach(function(property) { + // Line item properties prefixed with an underscore are not to be displayed + if (property[0].charAt(0) === '_') return; + + // if the property value has a length of 0 (empty), don't display it + if (property[1].length === 0) return; + + propertyListHTML = + propertyListHTML + + '
  • ' + + '' + + property[0] + + ': ' + + property[1]; + ': ' + '
  • '; + }); + + return propertyListHTML; + }, + + _getSellingPlanHTML: function(selling_plan_name) { + var sellingPlanHTML = + '
  • ' + + selling_plan_name + + '
  • '; + + return sellingPlanHTML; + }, + + _setCartQuantity: function(quantity) { + this.cartPopupCartQuantity = + this.cartPopupCartQuantity || + document.querySelector(this.selectors.cartPopupCartQuantity); + var ariaLabel; + + if (quantity === 1) { + ariaLabel = theme.strings.oneCartCount; + } else if (quantity > 1) { + ariaLabel = theme.strings.otherCartCount.replace('[count]', quantity); + } + + this.cartPopupCartQuantity.textContent = quantity; + this.cartPopupCartQuantity.setAttribute('aria-label', ariaLabel); + }, + + _setCartCountBubble: function(quantity) { + this.cartCountBubble = + this.cartCountBubble || + document.querySelector(this.selectors.cartCountBubble); + this.cartCount = + this.cartCount || document.querySelector(this.selectors.cartCount); + + this.cartCountBubble.classList.remove(this.classes.hidden); + this.cartCount.textContent = quantity; + }, + + _showCartPopup: function() { + theme.Helpers.prepareTransition(this.cartPopupWrapper); + + this.cartPopupWrapper.classList.remove( + this.classes.cartPopupWrapperHidden + ); + this._handleButtonLoadingState(false); + + slate.a11y.trapFocus({ + container: this.cartPopupWrapper, + elementToFocus: this.cartPopup, + namespace: 'cartPopupFocus' + }); + }, + + _hideCartPopup: function(event) { + var setFocus = event.detail === 0 ? true : false; + theme.Helpers.prepareTransition(this.cartPopupWrapper); + this.cartPopupWrapper.classList.add(this.classes.cartPopupWrapperHidden); + + var cartPopupImage = document.querySelector( + this.selectors.cartPopupImage + ); + if (cartPopupImage) { + cartPopupImage.remove(); + } + this.cartPopupImagePlaceholder.setAttribute( + 'data-image-loading-animation', + '' + ); + + slate.a11y.removeTrapFocus({ + container: this.cartPopupWrapper, + namespace: 'cartPopupFocus' + }); + + if (setFocus) this.previouslyFocusedElement.focus(); + + this.cartPopupWrapper.removeEventListener( + 'keyup', + this.eventHandlers.cartPopupWrapperKeyupHandler + ); + this.cartPopupClose.removeEventListener( + 'click', + this.eventHandlers.hideCartPopup + ); + this.cartPopupDismiss.removeEventListener( + 'click', + this.eventHandlers.hideCartPopup + ); + document.body.removeEventListener( + 'click', + this.eventHandlers.onBodyClick + ); + }, + + _onBodyClick: function(event) { + var target = event.target; + + if ( + target !== this.cartPopupWrapper && + !target.closest(this.selectors.cartPopup) + ) { + this._hideCartPopup(event); + } + }, + + _setActiveThumbnail: function(mediaId) { + // If there is no element passed, find it by the current product image + if (typeof mediaId === 'undefined') { + var productMediaWrapper = this.container.querySelector( + this.selectors.productMediaWrapper + ':not(.hide)' + ); + + if (!productMediaWrapper) return; + mediaId = productMediaWrapper.getAttribute('data-media-id'); + } + + var thumbnailWrappers = this.container.querySelectorAll( + this.selectors.productThumbListItem + ':not(.slick-cloned)' + ); + + var activeThumbnail; + thumbnailWrappers.forEach( + function(el) { + var current = el.querySelector( + this.selectors.productThumbImages + + "[data-thumbnail-id='" + + mediaId + + "']" + ); + if (current) { + activeThumbnail = current; + } + }.bind(this) + ); + + var productThumbImages = document.querySelectorAll( + this.selectors.productThumbImages + ); + productThumbImages.forEach( + function(el) { + el.classList.remove(this.classes.activeClass); + el.removeAttribute('aria-current'); + }.bind(this) + ); + + if (activeThumbnail) { + activeThumbnail.classList.add(this.classes.activeClass); + activeThumbnail.setAttribute('aria-current', true); + this._adjustThumbnailSlider(activeThumbnail); + } + }, + + _adjustThumbnailSlider: function(activeThumbnail) { + var sliderItem = activeThumbnail.closest('[data-slider-item]'); + if (!sliderItem) return; + + var slideGroupLeaderIndex = + Math.floor( + Number(sliderItem.getAttribute('data-slider-slide-index')) / 3 + ) * 3; + + window.setTimeout( + function() { + if (!this.slideshow) return; + this.slideshow.goToSlideByIndex(slideGroupLeaderIndex); + }.bind(this), + 251 + ); + }, + + _switchMedia: function(mediaId) { + var currentMedia = this.container.querySelector( + this.selectors.productMediaWrapper + + ':not(.' + + this.classes.hidden + + ')' + ); + + var newMedia = this.container.querySelector( + this.selectors.productMediaWrapper + "[data-media-id='" + mediaId + "']" + ); + + var otherMedia = this.container.querySelectorAll( + this.selectors.productMediaWrapper + + ":not([data-media-id='" + + mediaId + + "'])" + ); + + currentMedia.dispatchEvent( + new CustomEvent('mediaHidden', { + bubbles: true, + cancelable: true + }) + ); + newMedia.classList.remove(this.classes.hidden); + newMedia.dispatchEvent( + new CustomEvent('mediaVisible', { + bubbles: true, + cancelable: true + }) + ); + otherMedia.forEach( + function(el) { + el.classList.add(this.classes.hidden); + }.bind(this) + ); + }, + + _handleMediaFocus: function(evt) { + if (evt.keyCode !== slate.utils.keyboardKeys.ENTER) return; + + var mediaId = evt.currentTarget.getAttribute('data-thumbnail-id'); + + var productMediaWrapper = this.container.querySelector( + this.selectors.productMediaWrapper + "[data-media-id='" + mediaId + "']" + ); + productMediaWrapper.focus(); + }, + + _initThumbnailSlider: function() { + setTimeout( + function() { + this.slideshow = new theme.Slideshow( + this.container.querySelector('[data-thumbnail-slider]'), + { + canUseTouchEvents: true, + type: 'slide', + slideActiveClass: 'slick-active', + slidesToShow: 3, + slidesToScroll: 3 + } + ); + + this.settings.sliderActive = true; + }.bind(this), + 250 + ); + }, + + _destroyThumbnailSlider: function() { + var sliderButtons = this.container.querySelectorAll( + '[data-slider-button]' + ); + var sliderTrack = this.container.querySelector('[data-slider-track]'); + var sliderItems = sliderTrack.querySelectorAll('[data-slider-item'); + this.settings.sliderActive = false; + + if (sliderTrack) { + sliderTrack.removeAttribute('style'); + sliderItems.forEach(function(sliderItem) { + var sliderItemLink = sliderItem.querySelector( + '[data-slider-item-link]' + ); + sliderItem.classList.remove('slick-active'); + sliderItem.removeAttribute('style'); + sliderItem.removeAttribute('tabindex'); + sliderItem.removeAttribute('aria-hidden'); + sliderItemLink.removeAttribute('tabindex'); + }); + } + + sliderButtons.forEach(function(sliderButton) { + sliderButton.removeAttribute('aria-disabled'); + }); + + this.slideshow.destroy(); + this.slideshow = null; + }, + + _liveRegionText: function(variant) { + // Dummy content for live region + var liveRegionText = + '[Availability] [Regular] [$$] [Sale] [$]. [UnitPrice] [$$$]'; + + if (!this.productState.available) { + liveRegionText = theme.strings.unavailable; + return liveRegionText; + } + + // Update availability + var availability = this.productState.soldOut + ? theme.strings.soldOut + ',' + : ''; + liveRegionText = liveRegionText.replace('[Availability]', availability); + + // Update pricing information + var regularLabel = ''; + var regularPrice = theme.Currency.formatMoney( + variant.price, + theme.moneyFormat + ); + var saleLabel = ''; + var salePrice = ''; + var unitLabel = ''; + var unitPrice = ''; + + if (this.productState.onSale) { + regularLabel = theme.strings.regularPrice; + regularPrice = + theme.Currency.formatMoney( + variant.compare_at_price, + theme.moneyFormat + ) + ','; + saleLabel = theme.strings.sale; + salePrice = theme.Currency.formatMoney( + variant.price, + theme.moneyFormat + ); + } + + if (this.productState.showUnitPrice) { + unitLabel = theme.strings.unitPrice; + unitPrice = + theme.Currency.formatMoney(variant.unit_price, theme.moneyFormat) + + ' ' + + theme.strings.unitPriceSeparator + + ' ' + + this._getBaseUnit(variant); + } + + liveRegionText = liveRegionText + .replace('[Regular]', regularLabel) + .replace('[$$]', regularPrice) + .replace('[Sale]', saleLabel) + .replace('[$]', salePrice) + .replace('[UnitPrice]', unitLabel) + .replace('[$$$]', unitPrice) + .trim(); + + return liveRegionText; + }, + + _updateLiveRegion: function(evt) { + var variant = evt.detail.variant; + var liveRegion = this.container.querySelector( + this.selectors.productStatus + ); + liveRegion.innerHTML = this._liveRegionText(variant); + liveRegion.setAttribute('aria-hidden', false); + // hide content from accessibility tree after announcement + setTimeout(function() { + liveRegion.setAttribute('aria-hidden', true); + }, 1000); + }, + + _enableAddToCart: function(message) { + this.addToCart.removeAttribute('aria-disabled'); + this.addToCart.setAttribute('aria-label', message); + this.addToCartText.innerHTML = message; + this.productForm.classList.remove(this.classes.variantSoldOut); + }, + + _disableAddToCart: function(message) { + message = message || theme.strings.unavailable; + this.addToCart.setAttribute('aria-disabled', true); + this.addToCart.setAttribute('aria-label', message); + this.addToCartText.innerHTML = message; + this.productForm.classList.add(this.classes.variantSoldOut); + }, + + _updateAddToCart: function() { + if (!this.productState.available) { + this._disableAddToCart(theme.strings.unavailable); + return; + } + if (this.productState.soldOut) { + this._disableAddToCart(theme.strings.soldOut); + return; + } + + this._enableAddToCart(theme.strings.addToCart); + }, + + /** + * The returned productState object keeps track of a number of properties about the current variant and product + * Multiple functions within product.js leverage the productState object to determine how to update the page's UI + * @param {object} evt - object returned from variant change event + * @return {object} productState - current product variant's state + * productState.available - true if current product options result in valid variant + * productState.soldOut - true if variant is sold out + * productState.onSale - true if variant is on sale + * productState.showUnitPrice - true if variant has unit price value + */ + _setProductState: function(evt) { + var variant = evt.detail.variant; + + if (!variant) { + this.productState.available = false; + return; + } + + this.productState.available = true; + this.productState.soldOut = !variant.available; + this.productState.onSale = variant.compare_at_price > variant.price; + this.productState.showUnitPrice = !!variant.unit_price; + }, + + _updateAvailability: function(evt) { + // remove error message if one is showing + this._hideErrorMessage(); + + // set product state + this._setProductState(evt); + + // update store availabilities info + this._updateStoreAvailabilityContent(evt); + // update form submit + this._updateAddToCart(); + // update live region + this._updateLiveRegion(evt); + + this._updatePriceComponentStyles(evt); + }, + + _updateStoreAvailabilityContent: function(evt) { + if (!this.storeAvailability) { + return; + } + + if (this.productState.available && !this.productState.soldOut) { + this.storeAvailability.updateContent(evt.detail.variant.id); + } else { + this.storeAvailability.clearContent(); + } + }, + + _updateMedia: function(evt) { + var variant = evt.detail.variant; + var mediaId = variant.featured_media.id; + var sectionMediaId = this.settings.sectionId + '-' + mediaId; + + this._switchMedia(sectionMediaId); + this._setActiveThumbnail(sectionMediaId); + }, + + _hidePriceComponent: function() { + this.priceContainer.classList.add(this.classes.productUnavailable); + this.priceContainer.setAttribute('aria-hidden', true); + if (this.productPolicies) { + this.productPolicies.classList.add(this.classes.visibilityHidden); + } + }, + + _updatePriceComponentStyles: function(evt) { + var variant = evt.detail.variant; + + var unitPriceBaseUnit = this.priceContainer.querySelector( + this.selectors.unitPriceBaseUnit + ); + + if (!this.productState.available) { + this._hidePriceComponent(); + return; + } + + if (this.productState.soldOut) { + this.priceContainer.classList.add(this.classes.productSoldOut); + } else { + this.priceContainer.classList.remove(this.classes.productSoldOut); + } + + if (this.productState.showUnitPrice) { + unitPriceBaseUnit.innerHTML = this._getBaseUnit(variant); + this.priceContainer.classList.add(this.classes.productUnitAvailable); + } else { + this.priceContainer.classList.remove(this.classes.productUnitAvailable); + } + + if (this.productState.onSale) { + this.priceContainer.classList.add(this.classes.productOnSale); + } else { + this.priceContainer.classList.remove(this.classes.productOnSale); + } + + this.priceContainer.classList.remove(this.classes.productUnavailable); + this.priceContainer.removeAttribute('aria-hidden'); + if (this.productPolicies) { + this.productPolicies.classList.remove(this.classes.visibilityHidden); + } + }, + + _updatePrice: function(evt) { + var variant = evt.detail.variant; + + var regularPrices = this.priceContainer.querySelectorAll( + this.selectors.regularPrice + ); + var salePrice = this.priceContainer.querySelector( + this.selectors.salePrice + ); + var unitPrice = this.priceContainer.querySelector( + this.selectors.unitPrice + ); + + var formatRegularPrice = function(regularPriceElement, price) { + regularPriceElement.innerHTML = theme.Currency.formatMoney( + price, + theme.moneyFormat + ); + }; + + // On sale + if (this.productState.onSale) { + regularPrices.forEach(function(regularPrice) { + formatRegularPrice(regularPrice, variant.compare_at_price); + }); + salePrice.innerHTML = theme.Currency.formatMoney( + variant.price, + theme.moneyFormat + ); + } else { + // Regular price + regularPrices.forEach(function(regularPrice) { + formatRegularPrice(regularPrice, variant.price); + }); + } + + // Unit price + if (this.productState.showUnitPrice) { + unitPrice.innerHTML = theme.Currency.formatMoney( + variant.unit_price, + theme.moneyFormat + ); + } + }, + + _getBaseUnit: function(variant) { + return variant.unit_price_measurement.reference_value === 1 + ? variant.unit_price_measurement.reference_unit + : variant.unit_price_measurement.reference_value + + variant.unit_price_measurement.reference_unit; + }, + + _updateSKU: function(evt) { + var variant = evt.detail.variant; + + // Update the sku + var sku = document.querySelector(this.selectors.SKU); + if (!sku) return; + sku.innerHTML = variant.sku; + }, + + _enableZoom: function(el, index) { + this.zoomPictures[index] = new theme.Zoom(el); + }, + + _destroyZoom: function(index) { + if (this.zoomPictures.length === 0) return; + this.zoomPictures[index].unload(); + }, + + onUnload: function() { + this.container.removeEventListener( + 'variantChange', + this.eventHandlers.updateAvailability + ); + this.container.removeEventListener( + 'variantImageChange', + this.eventHandlers.updateMedia + ); + this.container.removeEventListener( + 'variantPriceChange', + this.eventHandlers.updatePrice + ); + this.container.removeEventListener( + 'variantSKUChange', + this.eventHandlers.updateSKU + ); + theme.ProductVideo.removeSectionVideos(this.settings.sectionId); + theme.ProductModel.removeSectionModels(this.settings.sectionId); + + if (this.mqlSmall) { + this.mqlSmall.removeListener(this.initMobileBreakpoint); + } + + if (this.mqlMediumUp) { + this.mqlMediumUp.removeListener(this.initDesktopBreakpoint); + } + } + }); + + return Product; +})(); + +theme.ProductRecommendations = (function() { + function ProductRecommendations(container) { + var baseUrl = container.dataset.baseUrl; + var productId = container.dataset.productId; + var recommendationsSectionUrl = + baseUrl + + '?section_id=product-recommendations&product_id=' + + productId + + '&limit=4'; + + window.performance.mark( + 'debut:product:fetch_product_recommendations.start' + ); + + fetch(recommendationsSectionUrl) + .then(function(response) { + return response.text(); + }) + .then(function(productHtml) { + if (productHtml.trim() === '') return; + + container.innerHTML = productHtml; + container.innerHTML = container.firstElementChild.innerHTML; + + window.performance.mark( + 'debut:product:fetch_product_recommendations.end' + ); + + performance.measure( + 'debut:product:fetch_product_recommendations', + 'debut:product:fetch_product_recommendations.start', + 'debut:product:fetch_product_recommendations.end' + ); + }); + } + + return ProductRecommendations; +})(); + +theme.Quotes = (function() { + var config = { + mediaQuerySmall: 'screen and (max-width: 749px)', + mediaQueryMediumUp: 'screen and (min-width: 750px)', + slideCount: 0 + }; + + var defaults = { + canUseKeyboardArrows: false, + type: 'slide', + slidesToShow: 3 + }; + + function Quotes(container) { + this.container = container; + var sectionId = container.getAttribute('data-section-id'); + this.slider = document.getElementById('Quotes-' + sectionId); + + this.sliderActive = false; + + this.mobileOptions = Object.assign({}, defaults, { + canUseTouchEvents: true, + slidesToShow: 1 + }); + + this.desktopOptions = Object.assign({}, defaults, { + slidesToShow: Math.min( + defaults.slidesToShow, + this.slider.getAttribute('data-count') + ) + }); + + this.initMobileSlider = this._initMobileSlider.bind(this); + this.initDesktopSlider = this._initDesktopSlider.bind(this); + + this.mqlSmall = window.matchMedia(config.mediaQuerySmall); + this.mqlSmall.addListener(this.initMobileSlider); + + this.mqlMediumUp = window.matchMedia(config.mediaQueryMediumUp); + this.mqlMediumUp.addListener(this.initDesktopSlider); + + this.initMobileSlider(); + this.initDesktopSlider(); + } + + Quotes.prototype = Object.assign({}, Quotes.prototype, { + onUnload: function() { + this.mqlSmall.removeListener(this.initMobileSlider); + this.mqlMediumUp.removeListener(this.initDesktopSlider); + this.slideshow.destroy(); + }, + + // eslint-disable-next-line no-unused-vars + onBlockSelect: function(evt) { + var slide = document.querySelector( + '.quotes-slide--' + evt.detail.blockId + ); + var slideIndex = Number(slide.getAttribute('data-slider-slide-index')); + + if (this.mqlMediumUp.matches) { + slideIndex = Math.max( + 0, + Math.min(slideIndex, this.slideshow.slides.length - 3) + ); + } + + this.slideshow.goToSlideByIndex(slideIndex); + }, + + _initMobileSlider: function() { + if (this.mqlSmall.matches) { + this._initSlider(this.mobileOptions); + } + }, + + _initDesktopSlider: function() { + if (this.mqlMediumUp.matches) { + this._initSlider(this.desktopOptions); + } + }, + + // eslint-disable-next-line no-unused-vars + _initSlider: function(args) { + if (this.sliderActive) { + this.slideshow.destroy(); + this.sliderActive = false; + } + + this.slideshow = new theme.Slideshow(this.container, args); + this.sliderActive = true; + } + }); + + return Quotes; +})(); + +theme.SlideshowSection = (function() { + var selectors = { + sliderMobileContentIndex: '[data-slider-mobile-content-index]' + }; + + function SlideshowSection(container) { + var sectionId = container.dataset.sectionId; + + this.container = container; + this.eventHandlers = {}; + this.slideshowDom = container.querySelector('#Slideshow-' + sectionId); + this.sliderMobileContentIndex = container.querySelectorAll( + selectors.sliderMobileContentIndex + ); + + this.slideshow = new theme.Slideshow(container, { + autoplay: this.slideshowDom.getAttribute('data-autorotate') === 'true', + slideInterval: this.slideshowDom.getAttribute('data-speed') + }); + this._setupEventListeners(); + } + + return SlideshowSection; +})(); + +theme.SlideshowSection.prototype = Object.assign( + {}, + theme.SlideshowSection.prototype, + { + _setupEventListeners: function() { + this.eventHandlers.onSliderSlideChanged = function(event) { + this._onSliderSlideChanged(event.detail); + }.bind(this); + + this.container.addEventListener( + 'slider_slide_changed', + this.eventHandlers.onSliderSlideChanged + ); + }, + + _onSliderSlideChanged: function(slideIndex) { + var activeClass = 'slideshow__text-content--mobile-active'; + + this.sliderMobileContentIndex.forEach(function(element) { + if ( + Number(element.getAttribute('data-slider-mobile-content-index')) === + slideIndex + ) { + element.classList.add(activeClass); + } else { + element.classList.remove(activeClass); + } + }); + }, + + onUnload: function() { + this.slideshow.destroy(); + }, + + onBlockSelect: function(evt) { + if (this.slideshow.adaptHeight) { + this.slideshow.setSlideshowHeight(); + } + + // Get slide's index using theme editor's id + var slide = this.container.querySelector( + '.slideshow__slide--' + evt.detail.blockId + ); + var slideIndex = slide.getAttribute('data-slider-slide-index'); + + // Go to selected slide, pause auto-rotate + this.slideshow.setSlide(slideIndex); + this.slideshow.stopAutoplay(); + }, + + onBlockDeselect: function() { + // Resume auto-rotate + this.slideshow.startAutoplay(); + } + } +); + +window.theme = window.theme || {}; + +theme.StoreAvailability = (function() { + var selectors = { + storeAvailabilityModalOpen: '[data-store-availability-modal-open]', + storeAvailabilityModalProductTitle: + '[data-store-availability-modal-product-title]', + storeAvailabilityModalVariantTitle: + '[data-store-availability-modal-variant-title]' + }; + + var classes = { + hidden: 'hide' + }; + + function StoreAvailability(container) { + this.container = container; + this.productTitle = this.container.dataset.productTitle; + this.hasOnlyDefaultVariant = + this.container.dataset.hasOnlyDefaultVariant === 'true'; + } + + StoreAvailability.prototype = Object.assign({}, StoreAvailability.prototype, { + updateContent: function(variantId) { + var variantSectionUrl = + this.container.dataset.baseUrl + + '/variants/' + + variantId + + '/?section_id=store-availability'; + var self = this; + + var storeAvailabilityModalOpen = self.container.querySelector( + selectors.storeAvailabilityModalOpen + ); + + this.container.style.opacity = 0.5; + if (storeAvailabilityModalOpen) { + storeAvailabilityModalOpen.disabled = true; + storeAvailabilityModalOpen.setAttribute('aria-busy', true); + } + + fetch(variantSectionUrl) + .then(function(response) { + return response.text(); + }) + .then(function(storeAvailabilityHTML) { + if (storeAvailabilityHTML.trim() === '') { + return; + } + self.container.innerHTML = storeAvailabilityHTML; + self.container.innerHTML = self.container.firstElementChild.innerHTML; + self.container.style.opacity = 1; + + // Need to query this again because we updated the DOM + storeAvailabilityModalOpen = self.container.querySelector( + selectors.storeAvailabilityModalOpen + ); + + if (!storeAvailabilityModalOpen) { + return; + } + + storeAvailabilityModalOpen.addEventListener( + 'click', + self._onClickModalOpen.bind(self) + ); + + self.modal = self._initModal(); + self._updateProductTitle(); + if (self.hasOnlyDefaultVariant) { + self._hideVariantTitle(); + } + }); + }, + + clearContent: function() { + this.container.innerHTML = ''; + }, + + _onClickModalOpen: function() { + this.container.dispatchEvent( + new CustomEvent('storeAvailabilityModalOpened', { + bubbles: true, + cancelable: true + }) + ); + }, + + _initModal: function() { + return new window.Modals( + 'StoreAvailabilityModal', + 'store-availability-modal', + { + close: '.js-modal-close-store-availability-modal', + closeModalOnClick: true, + openClass: 'store-availabilities-modal--active' + } + ); + }, + + _updateProductTitle: function() { + var storeAvailabilityModalProductTitle = this.container.querySelector( + selectors.storeAvailabilityModalProductTitle + ); + storeAvailabilityModalProductTitle.textContent = this.productTitle; + }, + + _hideVariantTitle: function() { + var storeAvailabilityModalVariantTitle = this.container.querySelector( + selectors.storeAvailabilityModalVariantTitle + ); + storeAvailabilityModalVariantTitle.classList.add(classes.hidden); + } + }); + + return StoreAvailability; +})(); + +theme.VideoSection = (function() { + function VideoSection(container) { + container.querySelectorAll('.video').forEach(function(el) { + theme.Video.init(el); + theme.Video.editorLoadVideo(el.id); + }); + } + + return VideoSection; +})(); + +theme.VideoSection.prototype = Object.assign({}, theme.VideoSection.prototype, { + onUnload: function() { + theme.Video.removeEvents(); + } +}); + +theme.heros = {}; + +theme.HeroSection = (function() { + function HeroSection(container) { + var sectionId = container.getAttribute('data-section-id'); + var hero = '#Hero-' + sectionId; + theme.heros[hero] = new theme.Hero(hero, sectionId); + } + + return HeroSection; +})(); + +window.theme = window.theme || {}; + +var selectors = { + disclosureLocale: '[data-disclosure-locale]', + disclosureCountry: '[data-disclosure-country]' +}; + +theme.FooterSection = (function() { + function Footer(container) { + this.container = container; + this.cache = {}; + this.cacheSelectors(); + + if (this.cache.localeDisclosure) { + this.localeDisclosure = new theme.Disclosure(this.cache.localeDisclosure); + } + + if (this.cache.countryDisclosure) { + this.countryDisclosure = new theme.Disclosure( + this.cache.countryDisclosure + ); + } + } + + Footer.prototype = Object.assign({}, Footer.prototype, { + cacheSelectors: function() { + this.cache = { + localeDisclosure: this.container.querySelector( + selectors.disclosureLocale + ), + countryDisclosure: this.container.querySelector( + selectors.disclosureCountry + ) + }; + }, + + onUnload: function() { + if (this.cache.localeDisclosure) { + this.localeDisclosure.destroy(); + } + + if (this.cache.countryDisclosure) { + this.countryDisclosure.destroy(); + } + } + }); + + return Footer; +})(); + + +document.addEventListener('DOMContentLoaded', function() { + var sections = new theme.Sections(); + + sections.register('cart-template', theme.Cart); + sections.register('product', theme.Product); + sections.register('collection-template', theme.Filters); + sections.register('product-template', theme.Product); + sections.register('header-section', theme.HeaderSection); + sections.register('map', theme.Maps); + sections.register('slideshow-section', theme.SlideshowSection); + sections.register('store-availability', theme.StoreAvailability); + sections.register('video-section', theme.VideoSection); + sections.register('quotes', theme.Quotes); + sections.register('hero-section', theme.HeroSection); + sections.register('product-recommendations', theme.ProductRecommendations); + sections.register('footer-section', theme.FooterSection); + + theme.customerTemplates.init(); + + // Theme-specific selectors to make tables scrollable + var tableSelectors = '.rte table,' + '.custom__item-inner--html table'; + + slate.rte.wrapTable({ + tables: document.querySelectorAll(tableSelectors), + tableWrapperClass: 'scrollable-wrapper' + }); + + // Theme-specific selectors to make iframes responsive + var iframeSelectors = + '.rte iframe[src*="youtube.com/embed"],' + + '.rte iframe[src*="player.vimeo"],' + + '.custom__item-inner--html iframe[src*="youtube.com/embed"],' + + '.custom__item-inner--html iframe[src*="player.vimeo"]'; + + slate.rte.wrapIframe({ + iframes: document.querySelectorAll(iframeSelectors), + iframeWrapperClass: 'video-wrapper' + }); + + // Common a11y fixes + slate.a11y.pageLinkFocus( + document.getElementById(window.location.hash.substr(1)) + ); + + var inPageLink = document.querySelector('.in-page-link'); + if (inPageLink) { + inPageLink.addEventListener('click', function(evt) { + slate.a11y.pageLinkFocus( + document.getElementById(evt.currentTarget.hash.substr(1)) + ); + }); + } + + document.querySelectorAll('a[href="#"]').forEach(function(anchor) { + anchor.addEventListener('click', function(evt) { + evt.preventDefault(); + }); + }); + + slate.a11y.accessibleLinks({ + messages: { + newWindow: theme.strings.newWindow, + external: theme.strings.external, + newWindowExternal: theme.strings.newWindowExternal + }, + links: document.querySelectorAll( + 'a[href]:not([aria-describedby]), .product-single__thumbnail' + ) + }); + + theme.FormStatus.init(); + + var selectors = { + image: '[data-image]', + lazyloaded: '.lazyloaded' + }; + + document.addEventListener('lazyloaded', function(evt) { + var image = evt.target; + + removeImageLoadingAnimation(image); + + if (document.body.classList.contains('template-index')) { + var mainContent = document.getElementById('MainContent'); + + if (mainContent && mainContent.children && mainContent.children.length) { + var firstSection = document.getElementsByClassName('index-section')[0]; + + if (!firstSection.contains(image)) return; + + window.performance.mark('debut:index:first_image_visible'); + } + } + + if (image.hasAttribute('data-bgset')) { + var innerImage = image.querySelector(selectors.lazyloaded); + + if (innerImage) { + var alt = image.getAttribute('data-alt'); + var src = innerImage.hasAttribute('data-src') + ? innerImage.getAttribute('data-src') + : image.getAttribute('data-bg'); + + image.setAttribute('alt', alt ? alt : ''); + image.setAttribute('src', src ? src : ''); + } + } + + if (!image.hasAttribute('data-image')) { + return; + } + }); + + // When the theme loads, lazysizes might load images before the "lazyloaded" + // event listener has been attached. When this happens, the following function + // hides the loading placeholders. + function onLoadHideLazysizesAnimation() { + var alreadyLazyloaded = document.querySelectorAll('.lazyloaded'); + alreadyLazyloaded.forEach(function(image) { + removeImageLoadingAnimation(image); + }); + } + + onLoadHideLazysizesAnimation(); + + document.addEventListener( + 'touchstart', + function() { + theme.Helpers.setTouch(); + }, + { once: true } + ); + + if (document.fonts) { + document.fonts.ready.then(function() { + window.performance.mark('debut:fonts_loaded'); + }); + } +}); + +// Youtube API callback +// eslint-disable-next-line no-unused-vars +function onYouTubeIframeAPIReady() { + theme.Video.loadVideos(); +} + +function removeImageLoadingAnimation(image) { + // Remove loading animation + var imageWrapper = image.hasAttribute('data-image-loading-animation') + ? image + : image.closest('[data-image-loading-animation]'); + + if (imageWrapper) { + imageWrapper.removeAttribute('data-image-loading-animation'); + } +} diff --git a/shopify/blocks/_option.liquid b/shopify/blocks/_option.liquid new file mode 100644 index 00000000..860f6af5 --- /dev/null +++ b/shopify/blocks/_option.liquid @@ -0,0 +1,20 @@ + + +{% schema %} +{ + "name": "Option", + "tag": null, + "settings": [ + { + "type": "text", + "id": "label", + "label": "Label" + } + ], + "presets": [ + { + "name": "Option" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/button.liquid b/shopify/blocks/button.liquid new file mode 100644 index 00000000..ec57d838 --- /dev/null +++ b/shopify/blocks/button.liquid @@ -0,0 +1,45 @@ +{% if block.settings.signup_button %} + +{% else%} + {% if block.settings.url != blank %} + {{ block.settings.text }} + {% else %} + + {% endif %} +{% endif %} + +{% schema %} +{ + "name": "Button", + "tag": null, + "settings": [ + { + "type": "text", + "id": "text", + "label": "Text" + }, + { + "type": "url", + "id": "url", + "label": "URL" + }, + { + "type": "checkbox", + "id": "signup_button", + "label": "Signup button", + "default": false + }, + { + "type": "text", + "id": "klaviyo_form", + "label": "Klaviyo form", + "visible_if": "{{ block.settings.signup_button }}" + } + ], + "presets": [ + { + "name": "Button" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/dropdown.liquid b/shopify/blocks/dropdown.liquid new file mode 100644 index 00000000..3303ee57 --- /dev/null +++ b/shopify/blocks/dropdown.liquid @@ -0,0 +1,51 @@ +{% stylesheet %} + .select-box { + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + } +{% endstylesheet %} + + + +{% schema %} +{ + "name": "Dropdown", + "settings": [ + { + "type": "text", + "id": "label", + "label": "Label" + }, + { + "type": "checkbox", + "id": "required", + "label": "Required", + "default": false + } + ], + "blocks": [ + { + "type": "_option" + } + ], + "presets": [ + { + "name": "Dropdown" + } + ] +} +{% endschema %} diff --git a/shopify/blocks/form-input.liquid b/shopify/blocks/form-input.liquid new file mode 100644 index 00000000..d0e38836 --- /dev/null +++ b/shopify/blocks/form-input.liquid @@ -0,0 +1,109 @@ +{% case block.settings.type %} + {% when 'email' %} + + + {% when 'date' %} + + + {% when 'custom' %} + +{% endcase %} + +{% schema %} +{ + "name": "Form input", + "settings": [ + { + "type": "select", + "id": "type", + "label": "Type", + "options": [ + { + "value": "email", + "label": "Email" + }, + { + "value": "date", + "label": "Date" + }, + { + "value": "custom", + "label": "Custom" + } + ] + }, + { + "type": "text", + "id": "label", + "label": "Label" + }, + { + "type": "text", + "id": "placeholder", + "label": "Placeholder" + }, + { + "type": "checkbox", + "id": "required", + "label": "Required", + "default": false + } + ], + "presets": [ + { + "name": "Form input" + } + ] +} +{% endschema %} diff --git a/shopify/blocks/group.liquid b/shopify/blocks/group.liquid new file mode 100644 index 00000000..135b0036 --- /dev/null +++ b/shopify/blocks/group.liquid @@ -0,0 +1,186 @@ +{% stylesheet %} + .group { + display: flex; + } +{% endstylesheet %} + + + +
    + {% content_for 'blocks' %} +
    + +{% schema %} +{ + "name": "Group", + "settings": [ + { + "type": "select", + "id": "display_type", + "label": "Display type", + "options": [ + { + "value": "flex", + "label": "Flex" + }, + { + "value": "grid", + "label": "Grid" + } + ] + }, + { + "type": "select", + "id": "direction", + "label": "Direction", + "options": [ + { + "value": "row", + "label": "Row" + }, + { + "value": "column", + "label": "Column" + } + ], + "default": "row" + }, + { + "type": "select", + "id": "alignment", + "label": "Alignment", + "options": [ + { + "value": "flex-start", + "label": "Start" + }, + { + "value": "center", + "label": "Center" + }, + { + "value": "space-between", + "label": "Space between" + }, + { + "value": "flex-end", + "label": "Center" + }, + { + "value": "end", + "label": "End" + } + ], + "default": "center" + }, + { + "type": "range", + "id": "gap", + "label": "Gap", + "min": 0, + "max": 100, + "step": 1, + "default": 16, + "unit": "px" + }, + { + "type": "select", + "id": "child_width", + "label": "Child width", + "options": [ + { + "value": "auto", + "label": "Auto" + }, + { + "value": "100%", + "label": "100%" + }, + { + "value": "50%", + "label": "50%" + }, + { + "value": "33.33%", + "label": "33.33%" + }, + { + "value": "25%", + "label": "25%" + }, + { + "value": "20%", + "label": "20%" + } + ] + }, + { + "type": "checkbox", + "id": "max_width_enabled", + "label": "Max width enabled", + "default": false + }, + { + "type": "range", + "id": "max_width", + "label": "Max width", + "min": 0, + "max": 1500, + "step": 50, + "default": 1200, + "unit": "px", + "visible_if": "{{ block.settings.max_width_enabled }}" + }, + { + "type": "range", + "id": "margin_top", + "label": "Margin top", + "min": 0, + "max": 100, + "step": 1, + "default": 0, + "unit": "px" + }, + { + "type": "range", + "id": "margin_bottom", + "label": "Margin bottom", + "min": 0, + "max": 100, + "step": 1, + "default": 0, + "unit": "px" + } + ], + "blocks": [ + { + "type": "@theme" + }, + { + "type": "@app" + } + ], + "presets": [ + { + "name": "Group" + } + ] +} +{% endschema %} diff --git a/shopify/blocks/heading.liquid b/shopify/blocks/heading.liquid new file mode 100644 index 00000000..50467014 --- /dev/null +++ b/shopify/blocks/heading.liquid @@ -0,0 +1,63 @@ + + +
    + {%- if block.settings.heading_text -%} +

    {{ block.settings.heading_text }}

    + {%- endif -%} + + {%- if block.settings.subtitle_text -%} +

    {{ block.settings.subtitle_text }}

    + {%- endif -%} +
    + +{% schema %} +{ + "name": "Heading", + "settings": [ + { + "type": "text", + "id": "heading_text", + "label": "Heading Text" + }, + { + "type": "text", + "id": "subtitle_text", + "label": "Subtitle Text" + }, + { + "type": "range", + "id": "margin_top", + "label": "Margin top", + "min": 16, + "max": 48, + "step": 1, + "default": 24, + "unit": "px" + }, + { + "type": "range", + "id": "margin_bottom", + "label": "Margin bottom", + "min": 16, + "max": 48, + "step": 1, + "default": 24, + "unit": "px" + } + ], + "presets": [ + { + "name": "Heading", + "settings": { + "heading_text": "Heading", + "subtitle_text": "Subtitle" + } + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/product-card.liquid b/shopify/blocks/product-card.liquid new file mode 100644 index 00000000..9de702ad --- /dev/null +++ b/shopify/blocks/product-card.liquid @@ -0,0 +1,206 @@ + + +{%- assign card_product = block.settings.card_product -%} +{%- assign short_title = card_product.metafields.custom.short_title -%} + +
    +
    + {% if card_product.featured_image != blank %} + {{ card_product.featured_image | image_url: width: 800 | image_tag }} + {% else %} + {{ 'product-1' | placeholder_svg_tag: 'product-card__image-placeholder' }} + {% endif %} +
    +
    +

    + {%- if short_title != blank -%} + {{ short_title }} + {%- else -%} + {{ card_product.title }} + {%- endif -%} +

    + + +
    +
    Information
    +
    Ingredients
    +
    Directions
    +
    +
    + {% if card_product.metafields.custom.bullet_points.value != blank %} +
    + {% for bullet_point in card_product.metafields.custom.bullet_points.value %} +
    + {% render 'icon-check' %} + {{ bullet_point }} +
    + {% endfor %} +
    + {% endif %} +
    + {% if card_product != blank %} + {% assign current_variant = card_product.selected_or_first_available_variant %} + + + {%- unless card_product.compare_at_price_max > card_product.price -%} + {% assign hidden_class = 'hide' %} + {%- endunless -%} + + {%- if current_variant.compare_at_price > current_variant.price -%} + {% assign sale_class = 'product-form__price--new' %} + {{- current_variant.compare_at_price | money -}} + {%- endif -%} + + + {{- current_variant.price | money -}} + + {%- if current_variant.unit_price_measurement -%} + {%- capture unit_price_base_unit -%} + + {%- if current_variant.available and current_variant.unit_price_measurement -%} + {%- if current_variant.unit_price_measurement.reference_value != 1 -%} + {{- current_variant.unit_price_measurement.reference_value -}} + {%- endif -%} + {{ current_variant.unit_price_measurement.reference_unit }} + {%- endif -%} + + {%- endcapture -%} + + {{- current_variant.unit_price | money -}} + / {{ unit_price_base_unit }} + + {%- endif -%} + + {% else %} + $100.00 + {% endif %} +
    +
    + {% if card_product != blank %} + + {% form 'product', card_product, class: 'product-form' %} + + + + {% endform %} + + {% endif %} + {% if card_product != blank %} + View Product + {% endif %} +
    +
    +
    +
    + {{ card_product.metafields.custom.ingredients }} +
    +
    +
    +
    + {%- assign nutrition_values = card_product.metafields.custom.nutrition_values.value -%} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ 'products.product.nutrition_grams' | t }}{{ 'products.product.nutrition_portion_html' | t }}
    {{ 'products.product.energy' | t }}{{ nutrition_values.energie_100_gr }}{{ nutrition_values.energie_portion }}
    {{ 'products.product.fat' | t }}{{ nutrition_values.fett_100_gr }}{{ nutrition_values.fett_portion }}
    {{ 'products.product.sat_fat' | t }}{{ nutrition_values.gesattigte_fettsauren_100_gr }}{{ nutrition_values.gesattigte_fettsauren_portion }}
    {{ 'products.product.carbs' | t }}{{ nutrition_values.kohlenhydrate_100_gr }}{{ nutrition_values.kohlenhydrate_portion }}
    {{ 'products.product.sugar' | t }}{{ nutrition_values.zucker_100_gr }}{{ nutrition_values.zucker_portion }}
    {{ 'products.product.fibre' | t }}{{ nutrition_values.ballaststoffe_100_gr }}{{ nutrition_values.ballaststoffe_portion }}
    {{ 'products.product.protein' | t }}{{ nutrition_values.eiweiss_100_gr }}{{ nutrition_values.eiweiss_portion }}
    {{ 'products.product.salt' | t }}{{ nutrition_values.salz_100_gr }}{{ nutrition_values.salz_portion }}
    +
    +
    +
    +
    +
    + +{% schema %} +{ + "name": "Product Card", + "tag": null, + "settings": [ + { + "type": "product", + "id": "card_product", + "label": "Product" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "rgba(0,0,0,0)" + }, + { + "type": "color", + "id": "text_color", + "label": "Text Color", + "default": "rgba(0,0,0,0)" + } + ], + "presets": [ + { + "name": "Product Card" + } + ] +} +{% endschema %} diff --git a/shopify/blocks/slide.liquid b/shopify/blocks/slide.liquid new file mode 100644 index 00000000..9216c24d --- /dev/null +++ b/shopify/blocks/slide.liquid @@ -0,0 +1,23 @@ +{% content_for 'blocks' %} + +{% schema %} +{ + "name": "Slide", + "class": "swiper-slide", + "settings": [ + ], + "blocks": [ + { + "type": "@theme" + }, + { + "type": "@app" + } + ], + "presets": [ + { + "name": "Slide" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/slider.liquid b/shopify/blocks/slider.liquid new file mode 100644 index 00000000..af395224 --- /dev/null +++ b/shopify/blocks/slider.liquid @@ -0,0 +1,93 @@ +{% assign desktop_slides_per_view = block.settings.slides_per_view_desktop %} +{% assign mobile_slides_per_view = block.settings.slides_per_view_mobile %} + +{% if block.settings.show_next_slide %} + {% assign desktop_slides_per_view = desktop_slides_per_view | plus: 0.15 %} + {% assign mobile_slides_per_view = mobile_slides_per_view | plus: 0.15 %} +{% endif %} + +{%- capture swiper_config -%} + { + "loop": {{ block.settings.loop }}, + "slidesPerView": {{ mobile_slides_per_view }}, + "breakpoints": { + "768": { + "slidesPerView": {% if block.settings.hide_desktop %}{{ block.blocks.size }}{% else %}{{ desktop_slides_per_view }}{% endif %} + } + }, + "spaceBetween": {{ block.settings.gap }} + } +{%- endcapture -%} + + +
    + {% content_for 'blocks' %} +
    +
    + +{% schema %} +{ + "name": "Slider", + "settings": [ + { + "type": "checkbox", + "id": "hide_desktop", + "label": "Hide on desktop", + "default": false + }, + { + "type": "checkbox", + "id": "hide_mobile", + "label": "Hide on mobile", + "default": false + }, + { + "type": "header", + "content": "Slider settings" + }, + { + "type": "checkbox", + "id": "loop", + "label": "Loop", + "default": true + }, + { + "type": "number", + "id": "slides_per_view_desktop", + "label": "Slides per view desktop", + "default": 1 + }, + { + "type": "number", + "id": "slides_per_view_mobile", + "label": "Slides per view mobile", + "default": 1 + }, + { + "type": "checkbox", + "id": "show_next_slide", + "label": "Show next slide", + "default": false + }, + { + "type": "range", + "id": "gap", + "label": "Gap", + "default": 20, + "min": 0, + "max": 100, + "step": 1 + } + ], + "blocks": [ + { + "type": "slide" + } + ], + "presets": [ + { + "name": "Slider" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/table-cell.liquid b/shopify/blocks/table-cell.liquid new file mode 100644 index 00000000..d71022e0 --- /dev/null +++ b/shopify/blocks/table-cell.liquid @@ -0,0 +1,81 @@ +{% if block.settings.background_color != 'rgba(0,0,0,0)' %} + +{% endif %} + +<{{ block.settings.cell_type }} {% if block.settings.sticky %}class="sticky-cell"{% endif %} id="shopify-block-{{ block.id }}"> +
    + {% if block.settings.image %} + {{ block.settings.image | image_url: width: 100 | image_tag }} + {% endif %} + {% if block.settings.text %} + {{ block.settings.text }} + {% endif %} + {% if block.settings.liquid %} + {{ block.settings.liquid }} + {% endif %} +
    + + +{% schema %} +{ + "name": "Table Cell", + "tag": null, + "settings": [ + { + "type": "select", + "id": "cell_type", + "label": "Cell Type", + "options": [ + { + "value": "th", + "label": "Header" + }, + { + "value": "td", + "label": "Body" + } + ], + "default": "td" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "rgba(0,0,0,0)" + }, + { + "type": "checkbox", + "id": "sticky", + "label": "Sticky", + "default": false + }, + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "text", + "label": "Text", + "default": "Text" + }, + { + "type": "liquid", + "id": "liquid", + "label": "Liquid" + } + ], + "blocks": [ + ], + "presets": [ + { + "name": "Table Cell" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/table-row.liquid b/shopify/blocks/table-row.liquid new file mode 100644 index 00000000..3870ba71 --- /dev/null +++ b/shopify/blocks/table-row.liquid @@ -0,0 +1,22 @@ + + {% content_for 'blocks' %} + + +{% schema %} +{ + "name": "Table Row", + "tag": null, + "settings": [ + ], + "blocks": [ + { + "type": "table-cell" + } + ], + "presets": [ + { + "name": "Table Row" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/blocks/table.liquid b/shopify/blocks/table.liquid new file mode 100644 index 00000000..4bc3c8d2 --- /dev/null +++ b/shopify/blocks/table.liquid @@ -0,0 +1,23 @@ +
    + + {% content_for 'blocks' %} +
    +
    +{% schema %} +{ + "name": "Table", + "tag": null, + "settings": [ + ], + "blocks": [ + { + "type": "table-row" + } + ], + "presets": [ + { + "name": "Table" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/config/settings_data.json b/shopify/config/settings_data.json index 9e26dfee..f0f72376 100644 --- a/shopify/config/settings_data.json +++ b/shopify/config/settings_data.json @@ -1 +1,147 @@ -{} \ No newline at end of file +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "current": { + "color_error": "#f3587f", + "header_background": "#f3587f", + "header_accent": "#2ac2bd", + "favicon": "shopify://shop_images/fav_ico.png", + "cart_show_free_shipping_threshold": true, + "cart_free_shipping_threshold": 60, + "checkout_logo_image": "shopify://shop_images/logo-checkout.png", + "checkout_logo_position": "center", + "checkout_accent_color": "#2ac2bd", + "checkout_button_color": "#2ac2bd", + "sections": { + "header": { + "type": "header", + "settings": { + "main_linklist": "header-menu", + "mobile_left_img": "shopify://shop_images/mobile-menu-img-left.png", + "mobile_right_img": "shopify://shop_images/mobile-menu-img-bottom.png" + } + }, + "footer": { + "type": "footer", + "blocks": { + "d8fc1508-2c53-4e35-b284-7ab31c7e2547": { + "type": "footer_menu", + "settings": { + "menu": "footer-menu" + } + }, + "6a756ef9-9ca3-4fc4-8527-8f900d1ab93d": { + "type": "footer_menu", + "settings": { + "menu": "footer-social-menu" + } + }, + "ea18fcdc-4902-4650-81d8-20ffc18479bf": { + "type": "footer_menu", + "settings": { + "menu": "footer-information-menu" + } + } + }, + "block_order": [ + "d8fc1508-2c53-4e35-b284-7ab31c7e2547", + "6a756ef9-9ca3-4fc4-8527-8f900d1ab93d", + "ea18fcdc-4902-4650-81d8-20ffc18479bf" + ], + "settings": { + "copyright_text": "_app:soluts/* is presenting this 😋 snackable website 🌐

    \n© 2025, snacks with benefits GmbH. Alle Rechte vorbehalten." + } + }, + "main-cart-mini": { + "type": "main-cart-mini", + "settings": { + "empty_button_text": "Weiter Shoppen", + "empty_button_url": "", + "show_upsell": true, + "upsell_heading": "Das könnte dir ebenfalls gefallen", + "upsell_collection": "upsell-collection", + "upsell_collection_background_desktop": "#9977a5", + "background_color": "#dbaaeb", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + }, + "customer-login": { + "type": "customer-login", + "settings": { + "login_title": "Melde dich an oder registriere dich", + "login_subtitle": "Du kannst dich mit einem Account anmelden oder einen neuen erstellen.", + "login_form_title": "Anmelden", + "login_column_title": "Registrieren", + "login_column_subtitle": "Erstelle jetzt ein Konto, um Bestellungen zu verfolgen, dein Profil zu verwalten, deine Lieferadresse hinzuzufügen und den Bezahlvorgang zum optimieren.", + "recover_title": "Setze hier dein Passwort zurück", + "recover_subtitle": "Du hast dein Passwort vergessen? Gar kein Problem, setze es einfach zurück.", + "recover_form_title": "Passwort zurücksetzen", + "recover_form_footer_text": "Wir senden Ihnen eine E-Mail, um Ihr Passwort zurückzusetzen.", + "recover_success_title": "Check doch mal deine Mails!", + "recover_success_subtitle": "Wir haben dir eine E-Mail geschickt, in der du dein Passwort zurücksetzen kannst.", + "recover_success_link_text": "Zurück zur Login-Seite" + } + }, + "customer-register": { + "type": "customer-register", + "settings": { + "title": "Erstelle jetzt einen Account", + "subtitle": "Erstelle ein Konto, um deine Bestellungen zu verfolgen", + "link_text": "Du hast einen Account? Anmelden" + } + }, + "global-newsletter-popup": { + "type": "global-newsletter-popup", + "settings": { + "enable_popup": true, + "title": "Gewinne ein Probierpaket im Wert von 46€!", + "description": "

    Jetzt zum Newsletter anmelden und deinem Glück auf die Sprünge helfen! ⏱️

    ", + "button_text": "Jetzt Probierpaket gewinnen!", + "under_button_text": "

    Die Teilnahmebedingungen für dieses Gewinnspiel findest du auf www.naughtynuts.de/pages/teilnahmebedingungen

    ", + "thank_you_message": "Thank your for signing up to our newsletter!" + } + }, + "klaviyo-popups": { + "type": "klaviyo-popups", + "blocks": { + "klaviyo_popup_kcrLGa": { + "type": "klaviyo_popup", + "settings": { + "klaviyo_form": "X3H7FL" + } + } + }, + "block_order": [ + "klaviyo_popup_kcrLGa" + ], + "settings": {} + } + }, + "content_for_index": [], + "blocks": { + "319724205969189013": { + "type": "shopify://apps/form-builder-with-file-upload/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3", + "disabled": false, + "settings": {} + }, + "14060646107696862457": { + "type": "shopify://apps/judge-me-product-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8", + "disabled": false, + "settings": {} + }, + "855628211100114053": { + "type": "shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507", + "disabled": false, + "settings": {} + } + } + } +} diff --git a/shopify/config/settings_schema.json b/shopify/config/settings_schema.json index 5bdf5266..a9cb4dab 100644 --- a/shopify/config/settings_schema.json +++ b/shopify/config/settings_schema.json @@ -1,34 +1,209 @@ [ { "name": "theme_info", - "theme_name": "Shopify Theme Lab", + "theme_name": "Buildify", + "theme_author": "UTD", "theme_version": "1.0.0", - "theme_author": "THEME_AUTHOR", - "theme_documentation_url": "https://THEME_DOCUMENTATION_URL.com", - "theme_support_url": "https://THEME_SUPPORT_URL.com" + "theme_support_url": "https:\/\/www.google.com\/", + "theme_documentation_url": "https:\/\/www.google.com\/" }, { - "name": "t:settings_schema.custom_settings.name", + "name": "Colors", "settings": [ { "type": "header", - "content": "t:settings_schema.custom_settings.settings.header" + "content": "Theme" }, { - "type": "paragraph", - "content": "t:settings_schema.custom_settings.settings.paragraph" + "type": "color", + "id": "color_text", + "label": "Text Color", + "default": "#ffffff" + }, + { + "type": "color", + "id": "background", + "label": "Background", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent", + "label": "Accent", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover", + "label": "Button Hover", + "default": "#f3587f" + }, + { + "type": "color", + "id": "color_error", + "label": "Error Color", + "default": "#f3587f" + }, + { + "type": "header", + "content": "Header", + "info": "This colors are used when there is no alternative set in the color scheme of that page" + }, + { + "type": "color", + "id": "header_background", + "label": "Header Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "header_accent", + "label": "Header Accent Color", + "default": "#2ac2bd" + }, + { + "type": "header", + "content": "Footer", + "info": "This colors are used when there is no alternative set in the color scheme of that page" + }, + { + "type": "color", + "id": "footer_background", + "label": "Footer Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "footer_accent", + "label": "Footer Accent Color", + "default": "#2ac2bd" + }, + { + "type": "header", + "content": "Navigation" + }, + { + "type": "color", + "id": "nav_background", + "label": "Nav Background Color", + "default": "#5359e5" + } + ] + }, + { + "name": "Layout", + "settings": [ + { + "type": "range", + "id": "border_radius", + "label": "Border Radius", + "info": "Here you can set the border radius for all images and other stuff, that should have rounded or straight edges", + "min": 0, + "max": 20, + "default": 8, + "step": 1, + "unit": "px" + } + ] + }, + { + "name": "Search", + "settings": [ + { + "type": "checkbox", + "id": "active_search", + "label": "Active Search", + "default": true + }, + { + "type": "collection", + "id": "recommendation_collection", + "label": "Recommendation Collection", + "info": "This collection will be used to show the recommendation products in the search page" + }, + { + "type": "product_list", + "id": "recommendation_products", + "label": "Recommendation Products", + "info": "This products will be used to show the recommendation products in the search page (Only applies when there is no collection set)" } ] }, { - "name": "t:settings_schema.favicon.name", + "name": "Social media", + "settings": [ + { + "type": "header", + "content": "Social accounts" + }, + { + "type": "text", + "id": "social_twitter_link", + "label": "Twitter" + }, + { + "type": "text", + "id": "social_facebook_link", + "label": "Facebook" + }, + { + "type": "text", + "id": "social_pinterest_link", + "label": "Pinterest" + }, + { + "type": "text", + "id": "social_instagram_link", + "label": "Instagram" + }, + { + "type": "text", + "id": "social_tumblr_link", + "label": "Tumblr" + }, + { + "type": "text", + "id": "social_youtube_link", + "label": "YouTube" + } + ] + }, + { + "name": "Favicon", "settings": [ { "type": "image_picker", "id": "favicon", - "label": "t:settings_schema.favicon.settings.label", - "info": "t:settings_schema.favicon.settings.info" + "label": "Favicon image", + "info": "Will be scaled down to 32 x 32px" + } + ] + }, + { + "name": "Free Shipping", + "settings": [ + { + "type": "checkbox", + "id": "cart_show_free_shipping_threshold", + "label": "Show free shipping bar in cart" + }, + { + "type": "number", + "id": "cart_free_shipping_threshold", + "label": "Free shipping threshold" + }, + { + "type": "color", + "id": "free_shipping_success_color", + "label": "Free shipping success color", + "default": "#2AC2BD" + }, + { + "type": "color", + "id": "free_shipping_remaining_color", + "label": "Free shipping remaining color", + "default": "#F3587F" } ] } -] \ No newline at end of file +] diff --git a/shopify/layout/gift_card.liquid b/shopify/layout/gift_card.liquid new file mode 100644 index 00000000..cee1a976 --- /dev/null +++ b/shopify/layout/gift_card.liquid @@ -0,0 +1,36 @@ + + + + + + + + + + {% if settings.favicon != blank %} + + {% endif %} + + {%- assign formatted_initial_value = gift_card.initial_value | money_without_trailing_zeros: gift_card.currency -%} + {%- assign formatted_initial_value_stripped = formatted_initial_value | strip_html -%} + + + {{- 'gift_cards.issued.title_html' | t: value: formatted_initial_value_stripped, shop: shop.name -}} + + + + + {%- render 'head-theme-meta' with layout: 'gift_cart' -%} + + + + {{ content_for_header }} + + + + {{ content_for_layout }} + + + + + diff --git a/shopify/layout/password.liquid b/shopify/layout/password.liquid new file mode 100644 index 00000000..edc55737 --- /dev/null +++ b/shopify/layout/password.liquid @@ -0,0 +1,93 @@ + + + + + + + + + + {% if settings.favicon != blank %} + + {% endif %} + + + {{ shop.name }} – {{ 'general.password_page.opening_soon' | t }} + + + {%- if page_description -%} + + {%- endif -%} + + {%- render 'social-meta-tags' -%} + {%- render 'head-theme-meta' with layout: 'password' -%} + + + + {{ content_for_header }} + + {%- assign formId = 'login_form' -%} + {%- assign modalId = 'LoginModal' -%} + {%- assign form_with_errors = '' -%} + + {%- form 'storefront_password', id: formId -%} + {%- if form.errors -%} + {%- assign form_with_errors = 'true' -%} + {%- endif -%} + {%- endform -%} + + + +
    + + +
    +
    + {{ content_for_layout }} +
    +
    +
    + + + + + + diff --git a/shopify/layout/theme.liquid b/shopify/layout/theme.liquid index 96868b2e..5887c2d4 100644 --- a/shopify/layout/theme.liquid +++ b/shopify/layout/theme.liquid @@ -1,42 +1,159 @@ - - - - - - - - - - - - {% if settings.favicon %} - + + + +{% render "load-metafields" %} + + + + + + {% if product.metafields.custom.hide_product %} + {% endif %} + + + + - {{ page_title | escape }} +{% render 'ultimate-datalayer' %} - {% if page_description %} - - {% endif %} + + {%- if settings.favicon != blank -%} + + {%- endif -%} + + {%- capture seo_title -%} + {%- if template == 'search' and search.performed == true -%} + {{ 'general.search.heading' | t: count: search.results_count }}: {{ 'general.search.results_with_count' | t: terms: search.terms, count: search.results_count }} + {%- else -%} + {{ page_title }} + {%- endif -%} + + {%- if current_tags -%} + {%- assign meta_tags = current_tags | join: ', ' -%} – {{ 'general.meta.tags' | t: tags: meta_tags -}} + {%- endif -%} + + {%- if current_page != 1 -%} + – {{ 'general.meta.page' | t: page: current_page }} + {%- endif -%} + + {%- assign escaped_page_title = page_title | escape -%} + {%- unless escaped_page_title contains shop.name -%} + – {{ shop.name }} + {%- endunless -%} + {%- endcapture -%} + + + {{- seo_title | strip -}} + + + {%- if page_description -%} + + {%- endif -%} + + {%- render 'social-meta-tags' -%} + {%- render 'head-theme-meta' with layout: 'theme' -%} + + {%- render 'custom-variables.css' -%} + {%- render 'css-variables' -%} + + {% render 'social-meta-tags' %} + + {{ 'FoundersGrotesk-Regular.woff2' | asset_url | preload_tag: as: 'font', crossorigin: 'anonymous' }} + {{ 'FoundersGrotesk-Bold.woff2' | asset_url | preload_tag: as: 'font', crossorigin: 'anonymous' }} + {{ 'FoundersGroteskMono-Medium.woff2' | asset_url | preload_tag: as: 'font', crossorigin: 'anonymous' }} + {% render 'fonts' %} + + {{ 'bundle.css' | asset_url | stylesheet_tag: preload: true }} + {{ 'custom.static.css' | asset_url | stylesheet_tag: preload: true }} + + {%- if template.directory == 'customers' -%} + + {%- endif -%} + + + + +{{ content_for_header }} + + + {% render 'judgeme_core' %} + {% render 'translations' %} + + + {%- assign body_classes = "template " -%} + {%- capture template_class -%} + {%- if request.path contains 'challenge' -%}template-challenge {%- else -%}template-{{ template.name | handle }} {%- endif -%} + {% if template.suffix != blank %}template-{{ template.name | handle }}--{{ template.suffix | handle }}{% endif %} + {%- endcapture -%} + + {%- assign body_classes = body_classes | append: template_class -%} + {%- assign ressource = '' -%} + + {% if template.name == 'product' %} + {% assign resource = product %} + {% elsif template.name == 'collection' %} + {% assign resource = collection %} + {% elsif template.name == 'page' %} + {% assign resource = page %} + {% endif %} + + {%- render 'color-scheme', resource: resource -%} + + + + + + {% sections 'header-group' %} + + {{ content_for_layout }} + + {%- section 'footer' -%} + + {%- section 'main-cart-mini' -%} + + {%- if template.directory == 'customers' -%} + + {%- endif -%} + {%- section 'global-newsletter-popup' -%} + {%- section 'klaviyo-popups' -%} + {% include "bc_banner" %} + + + +{%- if product.metafields.custom.redirect != blank -%} + +{%- endif -%} + + + - - - - \ No newline at end of file diff --git a/shopify/locales/bg-BG.json b/shopify/locales/bg-BG.json new file mode 100644 index 00000000..11ee5770 --- /dev/null +++ b/shopify/locales/bg-BG.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "products": { + "product": { + "from_lowest_price_html": "от {{ lowest_price }}", + "regular_price": "Обичайна цена", + "sold_out": "Изчерпано", + "unavailable": "Неналично", + "availability": "Наличност", + "on_sale": "Разпродажба", + "sale_price": "Цена при разпродажба", + "quantity": "Количество", + "add_to_cart": "Добавяне към количката", + "loader_label": "Добавяне на продукт към количката ви", + "back_to_collection": "Назад към", + "vendor": "Доставчик", + "quantity_minimum_message": "Количеството трябва да бъде 1 или повече", + "include_taxes": "С включени данъци.", + "shipping_policy_html": "Доставката се изчислява при плащане.", + "unit_price_label": "Единична цена", + "view_cart": "Покажи количката", + "view_in_space": "Преглед във вашето пространство", + "view_in_space_label": "При „Преглед във вашето пространство“ елементът се зарежда в прозорец с добавена реалност." + } + }, + "general": { + "accessibility": { + "skip_to_content": "Преминаване към съдържанието", + "close_modal": "Затваряне", + "link_messages": { + "new_window": "Отваря се в нов прозорец.", + "external": "Отваря външен уебсайт.", + "new_window_and_external": "Отваря външен уебсайт в нов прозорец." + }, + "refresh_page": "При задаване на избор се опреснява цялата страница.", + "selection_help": "Натиснете клавиша за интервал и след това използвайте стрелките, за да изберете.", + "unit_price_separator": "за", + "error": "Грешка" + }, + "meta": { + "tags": "С етикет „{{ tags }}“", + "page": "Страница {{ page }}" + }, + "404": { + "title": "404 Страницата не е открита", + "subtext": "Заявената страница не съществува.", + "link": "Продължете да пазарувате" + }, + "pagination": { + "previous": "Предишна страница", + "next": "Следваща страница", + "current_page": "Страница {{ current }} от {{ total }}" + }, + "password_page": { + "opening_soon": "Отваря скоро", + "login_form_heading": "Влизане в магазина с парола", + "login_form_password_label": "Парола", + "login_form_password_placeholder": "Вашата парола", + "login_form_submit": "Въведете", + "signup_form_email_label": "Имейл", + "signup_form_success": "Ще ви изпратим имейл точно преди да отворим.", + "admin_link_html": "Вие ли сте собственикът на магазина? Влезте тук", + "password_link": "Влизане с парола" + }, + "social": { + "share_on_facebook": "Споделяне", + "share_on_twitter": "Споделяне чрез Twitter", + "share_on_pinterest": "Споделяне чрез Pinterest", + "alt_text": { + "share_on_facebook": "Споделяне чрез Facebook", + "share_on_twitter": "Изпращане на туит в Twitter", + "share_on_pinterest": "Отбелязване в Pinterest" + } + }, + "search": { + "no_results": "Проверете начина на изписване или опитайте с други думи.", + "empty_search_message": "Полето за търсене не може да бъде празно", + "results_with_count": { + "one": "{{ count }} резултат за „{{ terms }}“", + "other": "{{ count }} резултата за „{{ terms }}“" + }, + "title": "Търсене в сайта ни", + "placeholder": "Търсене", + "submit": "Изпрати", + "close": "Затваряне на търсенето", + "heading": { + "one": "Резултат от търсенето", + "other": "Резултати от търсенето" + }, + "search_for": "Търсене за", + "products": "Продукти", + "loading": "Зареждане", + "clear_search_term": "Изчисти думата за търсене", + "number_of_results": "{{ result_number }} от {{ results_count }}", + "number_of_results_found": "Открити са {{ results_count }} резултата", + "one_result_found": "Открит е 1 резултат" + }, + "newsletter_form": { + "newsletter_email": "Абонирайте се за нашия пощенски списък", + "email_placeholder": "Имейл адрес", + "confirmation": "Благодарим, че се абонирахте.", + "submit": "Абониране" + }, + "filters": { + "show_more": "Покажи повече", + "show_less": "Покажи по-малко" + }, + "payment": { + "method": "Начини за плащане" + }, + "language": { + "dropdown_label": "Език" + }, + "country": { + "dropdown_label": "Държава/регион" + } + }, + "sections": { + "slideshow": { + "next_slide": "Следващ слайд", + "previous_slide": "Предишен слайд", + "pause_slideshow": "Пауза на слайдшоуто", + "rotate_slideshow": "Възпроизвеждане на слайдшоу", + "load_slide": "Зареждане на слайд {{ slide_number }}", + "navigation_instructions": "Използвайте стрелките за наляво/надясно, за да навигирате в слайдшоуто, или плъзнете с пръст наляво/надясно, ако използвате мобилно устройство" + }, + "featured_product": { + "title": "Препоръчан продукт", + "gallery_thumbnail_alt": "Заредете изображение във визуализатора на галерията – {{ imageAlt }}", + "video_thumbnail_alt": "Зареждане и възпроизвеждане на видеото във визуализатора на галерията – {{ imageAlt }}", + "model_thumbnail_alt": "Зареждане на 3D модела във визуализатора на галерията – {{ imageAlt }}" + }, + "map": { + "address_error": "Грешка при търсенето на този адрес", + "address_no_results": "За този адрес няма резултати", + "address_query_limit_html": "Превишихте ограничението за използване на Google API. Помислете за надграждане до план Premium.", + "auth_error_html": "Възникна проблем при удостоверяването на профила ви в Google Карти.", + "section_heading": "Местоположение" + }, + "video": { + "play": "Възпроизвеждане на видеоклип {{ video_title }}", + "pause": "Пауза на видеоклип {{ video_title }}", + "resume": "Възобновяване на видеоклип {{ video_title }}", + "close": "Затваряне на видеоклип {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Известие" + } + }, + "blogs": { + "article": { + "view_all": "Покажи всички", + "view_all_blogs": "Покажи всички блогове", + "all_topics": "Всички теми", + "by_author": "от {{ author }}", + "posted_in": "Публикувано в/ъв", + "read_more": "Прочетете още", + "read_more_title": "Прочетете още: {{ title }}", + "back_to_blog": "Назад към {{ title }}", + "tags": "Етикети", + "article_with_count": { + "one": "{{ count }} артикул", + "other": "{{ count }} артикула" + } + }, + "comments": { + "title": "Оставяне на коментар", + "name": "Име", + "email": "Имейл", + "message": "Съобщение", + "post": "Публикуване на коментар", + "moderated": "Имайте предвид, че коментарите трябва да бъдат одобрени, преди да се публикуват", + "success_moderated": "Коментарът ви е изпратен успешно. Ще бъде публикуван след малко, тъй като блогът има модератор.", + "success": "Коментарът ви е публикуван успешно. Благодарим.", + "unapproved": "Предоставеният имейл адрес няма одобрение за публикуване на коментари.", + "comments_with_count": { + "one": "{{ count }} коментар", + "other": "{{ count }} коментара" + } + } + }, + "cart": { + "general": { + "title": "Вашата количка", + "note": "Добавяне на бележка към поръчката ви", + "removed_item_html": "Премахнато от количката ви: ({{ quantity }}) {{ link }}.", + "remove": "Премахване", + "subtotal": "Междинна сума", + "savings": "Спестявате", + "taxes_and_shipping_at_checkout": "Данъците и доставката се изчисляват при плащане", + "taxes_and_shipping_policy_at_checkout_html": "Данъците и доставката се изчисляват при плащане", + "taxes_included_but_shipping_at_checkout": "Данъците са включени, а доставката се изчислява при плащане", + "taxes_included_and_shipping_policy_html": "С включени данъци. Доставката се изчислява при плащане.", + "update": "Актуализиране", + "checkout": "Преминаване към плащане", + "empty": "Количката ви в момента е празна.", + "cookies_required": "Активирайте бисквитките, за да използвате количката за пазаруване", + "continue_shopping": "Продължете да пазарувате", + "cart_error": "При актуализирането на количката ви възникна грешка. Опитайте отново." + }, + "label": { + "discounted_total": "Обща сума с отстъпка", + "product": "Продукт", + "price": "Цена", + "price_column": "Вижте колоната с цени за подробности относно отстъпките.", + "product_details": "Информация за продукта", + "quantity": "Количество", + "qty": "К-во", + "regular_total": "Обща цена без отстъпка", + "remove": "Премахване на {{ product }}", + "total": "Обща сума", + "update": "Актуализиране" + }, + "popup": { + "added_to_cart": "Току-що добавено в количката ви", + "cart_count": { + "one": "{{ count }} артикул", + "other": "{{ count }} артикула" + }, + "product_details": "Информация за продукта", + "quantity": "К-во", + "quantity_label": "Количество: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Покажи всички", + "view_all_label": "Покажи всички продукти в колекция {{ collection_name }}", + "no_matches": "За съжаление, в тази колекция няма продукти", + "items_with_count": { + "one": "{{ count }} продукт", + "other": "{{ count }} продукта" + }, + "collection_label": "Колекция" + }, + "catalog": { + "title": "Каталог" + }, + "sorting": { + "title": "Сортиране по" + }, + "filters": { + "title_tags": "Филтриране по", + "all_tags": "Всички продукти" + } + }, + "contact": { + "form": { + "name": "Име", + "email": "Имейл", + "phone": "Телефонен номер", + "message": "Съобщение", + "submit": "Изпрати", + "post_success": "Благодарим, че се свързахте с нас. Ще се свържем с вас възможно най-скоро.", + "error_heading": "Коригирайте следното:" + } + }, + "customer": { + "account": { + "title": "Моят профил", + "details": "Информация за профила", + "view_addresses": "Покажи адресите", + "return": "Назад към информацията за профила" + }, + "activate_account": { + "title": "Активиране на профил", + "subtext": "Създайте парола, за да активирате профила си.", + "password": "Парола", + "password_confirm": "Потвърждаване на паролата", + "submit": "Активиране на профил", + "cancel": "Отхвърляне на поканата" + }, + "addresses": { + "title": "Вашите адреси", + "default": "По подразбиране", + "add_new": "Добавяне на нов адрес", + "edit_address": "Редактиране на адрес", + "first_name": "Собствено име", + "last_name": "Фамилно име", + "company": "Компания", + "address1": "Адрес", + "address2": "Етаж, апартамент и т.н.", + "city": "Град", + "country": "Държава/регион", + "province": "Провинция", + "zip": "Пощенски код", + "phone": "Телефон", + "set_default": "Задаване като адрес по подразбиране", + "add": "Добавяне на адрес", + "update": "Актуализиране на адрес", + "cancel": "Отказ", + "edit": "Редактиране", + "delete": "Изтриване", + "delete_confirm": "Наистина ли искате да изтриете този адрес?" + }, + "login": { + "title": "Влизане", + "email": "Имейл", + "password": "Парола", + "forgot_password": "Забравена парола?", + "sign_in": "Влизане", + "guest_title": "Продължаване като гост", + "guest_continue": "Продължи" + }, + "orders": { + "title": "Хронология на поръчките", + "order_number": "Поръчка", + "order_number_link": "Номер на поръчка: {{ number }}", + "date": "Дата", + "payment_status": "Статус на плащане", + "fulfillment_status": "Статус на изпълнение", + "total": "Обща сума", + "none": "Все още не сте поръчвали." + }, + "order": { + "title": "Поръчка {{ name }}", + "date_html": "Направена на {{ date }}", + "cancelled_html": "Поръчката е анулирана на {{ date }}", + "cancelled_reason": "Причина: {{ reason }}", + "billing_address": "Адрес за фактуриране", + "payment_status": "Статус на плащане", + "shipping_address": "Адрес за доставка", + "fulfillment_status": "Статус на изпълнение", + "discount": "Отстъпка", + "shipping": "Доставка", + "tax": "Данъци", + "product": "Продукт", + "sku": "SKU", + "price": "Цена", + "quantity": "Количество", + "total": "Обща сума", + "fulfilled_at_html": "Изпълнено на: {{ date }}", + "subtotal": "Междинна сума", + "track_shipment": "Проследяване на пратката" + }, + "recover_password": { + "title": "Подновяване на паролата", + "email": "Имейл", + "submit": "Изпрати", + "cancel": "Отказ", + "subtext": "Ще ви изпратим имейл, за да подновите паролата си.", + "success": "Изпратихме ви имейл с връзка, чрез която да актуализирате паролата си." + }, + "reset_password": { + "title": "Подновяване на паролата за профила", + "subtext": "Въведете нова парола за {{ email }}", + "password": "Парола", + "password_confirm": "Потвърждаване на паролата", + "submit": "Подновяване на паролата" + }, + "register": { + "title": "Създаване на профил", + "first_name": "Собствено име", + "last_name": "Фамилно име", + "email": "Имейл", + "password": "Парола", + "submit": "Създаване" + } + }, + "homepage": { + "general": { + "title": "Начална страница" + }, + "onboarding": { + "product_title": "Името на продукта ви", + "product_description": "Тази зона се използва за подробно описание на вашия продукт. Разкажете на клиентите за външния вид, усещането и стила на продукта. Добавете подробности за цвета, използваните материали, размерите и мястото, където е произведен.", + "collection_title": "Име на вашата колекция", + "blog_title": "Заглавие на публикацията ви", + "blog_excerpt": "Вашият магазин все още не е публикувал публикации в блога. Блоговете могат да се използват за информация относно представянето на нови продукти, съвети или други новини, които искате да споделите с клиентите си. Можете да разгледате блога за електронна търговия на Shopify за идеи и съвети за вашите собствени магазин и блог.", + "blog_author": "Име на автора", + "no_content": "Понастоящем в този раздел няма съдържание. Добавете съдържание в този раздел чрез страничната лента." + } + }, + "layout": { + "navigation": { + "search": "Търсене", + "expand": "разгъни", + "collapse": "свий", + "menu": "Меню" + }, + "cart": { + "title": "Количка", + "items_count": { + "one": "артикул", + "other": "артикула" + } + }, + "customer": { + "account": "Профил", + "log_out": "Излизане", + "log_in": "Влизане", + "create_account": "Създаване на профил" + }, + "footer": { + "social_platform": "{{ name }} на {{ platform }}" + } + }, + "gift_cards": { + "issued": { + "title_html": "Получавате ваучер за подарък на стойност {{ value }} за {{ shop }}!", + "subtext": "Вашият ваучер за подарък", + "gift_card_code": "Код на ваучер за подарък", + "disabled": "Деактивиран", + "expired": "Изтекъл на {{ expiry }}", + "active": "Изтича на {{ expiry }}", + "redeem_html": "Използвайте този код при плащане, за да приложите своя ваучер за подарък на стойност{{ value }}", + "shop_link": "Започнете да пазарувате", + "print": "Отпечатване на този ваучер за подарък", + "remaining_html": "Оставаща стойност: {{ balance }}", + "add_to_apple_wallet": "Добавяне към Apple Wallet", + "qr_image_alt": "QR код – сканирайте го, зада използвате ваучера за подарък" + } + }, + "store_availability": { + "general": { + "view_store_info": "Вижте информация за магазина", + "check_other_stores": "Проверка за наличност в други магазини", + "pick_up_available": "Възможност за взимане", + "pick_up_currently_unavailable": "В момента няма възможност за взимане", + "pick_up_available_at_html": "Възможност за взимане от {{ location_name }}", + "pick_up_unavailable_at_html": "В момента няма възможност за взимане от {{ location_name }}" + } + } +} diff --git a/shopify/locales/cs.json b/shopify/locales/cs.json new file mode 100644 index 00000000..1ee18b52 --- /dev/null +++ b/shopify/locales/cs.json @@ -0,0 +1,446 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Přeskočit na obsah", + "close_modal": "Zavřít", + "refresh_page": "Po výběru volby se provede obnovení celé stránky.", + "selection_help": "Výběr provedete mezerníkem a potom šipkami.", + "unit_price_separator": "za", + "error": "Chyba", + "link_messages": { + "new_window": "Otevře se v novém okně.", + "external": "Otevře externí webovou stránku.", + "new_window_and_external": "Otevře externí webovou stránku v novém okně." + } + }, + "meta": { + "tags": "Označeno „{{ tags }}“", + "page": "Strana {{ page }}" + }, + "404": { + "title": "404 Stránka nenalezena", + "subtext": "Stránka, o kterou žádáte, neexistuje.", + "link": "Pokračovat v nákupu" + }, + "pagination": { + "previous": "Předchozí stránka", + "next": "Další stránka", + "current_page": "Strana {{ current }}/{{ total }}" + }, + "password_page": { + "opening_soon": "Brzy se otevře", + "login_form_heading": "Vstup do obchodu pomocí hesla", + "login_form_password_label": "Heslo", + "login_form_password_placeholder": "Vaše heslo", + "login_form_submit": "Zadat", + "signup_form_email_label": "E-mail", + "signup_form_success": "Těsně než otevřeme, pošleme vám e-mail!", + "admin_link_html": "Jste majitelem obchodu? Přihlaste se zde", + "password_link": "Vstoupit pomocí hesla" + }, + "social": { + "share_on_facebook": "Sdílet", + "share_on_twitter": "Tweetnout", + "share_on_pinterest": "Připnout", + "alt_text": { + "share_on_facebook": "Sdílet na Facebooku", + "share_on_twitter": "Tweetnout na Twitteru", + "share_on_pinterest": "Připnout na Pinterestu" + } + }, + "search": { + "empty_search_message": "Pole hledání nemůže být prázdné", + "title": "Hledat na našem webu", + "placeholder": "Hledat", + "submit": "Odeslat", + "close": "Zavřít hledání", + "search_for": "Vyhledat:", + "loading": "Načítání", + "clear_search_term": "Vymazat hledaný termín", + "number_of_results": "{{ result_number }}/{{ results_count }}", + "products": "Produkty", + "number_of_results_found": "Počet nalezených výsledků: {{ results_count }}", + "one_result_found": "Počet nalezených výsledků: 1", + "no_results": "Zkuste zkontrolovat pravopis nebo použít jiná slova.", + "heading": { + "one": "Výsledek hledání", + "other": "Výsledky hledání", + "few": "Výsledky hledání", + "many": "Výsledky hledání" + }, + "results_with_count": { + "one": "{{ count }} výsledek pro hledání {{ terms }}", + "other": "Počet výsledků pro hledání {{ terms }}: {{ count }}", + "few": "Počet výsledků pro hledání {{ terms }}: {{ count }}", + "many": "Počet výsledků pro hledání {{ terms }}: {{ count }}" + } + }, + "newsletter_form": { + "newsletter_email": "Přihlásit k odběru e-mailových zpráv", + "email_placeholder": "E-mailová adresa", + "confirmation": "Díky za odběr!", + "submit": "Přihlásit k odběru" + }, + "filters": { + "show_more": "Zobrazit více", + "show_less": "Zobrazit méně" + }, + "payment": { + "method": "Platební metody" + }, + "language": { + "dropdown_label": "Jazyk" + }, + "country": { + "dropdown_label": "Země/oblast" + } + }, + "sections": { + "slideshow": { + "next_slide": "Další snímek", + "previous_slide": "Předchozí snímek", + "pause_slideshow": "Pozastavit prezentaci", + "rotate_slideshow": "Přehrát prezentaci", + "load_slide": "Načíst snímek {{ slide_number }}", + "navigation_instructions": "V prezentaci se můžete pohybovat šipkami doleva a doprava, na mobilním zařízení můžete přejet doleva nebo doprava" + }, + "featured_product": { + "title": "Propagovaný produkt", + "gallery_thumbnail_alt": "Načíst obrázek do prohlížeče Galerie, {{ imageAlt }}", + "video_thumbnail_alt": "Načíst a přehrát video v prohlížeči Galerie, {{ imageAlt }}", + "model_thumbnail_alt": "Načíst 3D model do prohlížeče Galerie, {{ imageAlt }}" + }, + "map": { + "address_error": "Chyba při hledání této adresy", + "address_no_results": "Žádné výsledky pro tuto adresu", + "address_query_limit_html": "Je překročen limit použití API Google. Zvažte upgrade na plán Premium.", + "auth_error_html": "Při ověřování vašeho účtu Map Google došlo k problému.", + "section_heading": "Lokalita" + }, + "video": { + "play": "Přehrát video {{ video_title }}", + "pause": "Pozastavit video {{ video_title }}", + "resume": "Pokračovat v přehrávání videa {{ video_title }}", + "close": "Zavřít video {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Oznámení" + } + }, + "blogs": { + "article": { + "view_all": "Zobrazit vše", + "view_all_blogs": "Zobrazit všechny blogy", + "all_topics": "Všechna témata", + "by_author": "od {{ author }}", + "posted_in": "Zveřejněno v", + "read_more": "Číst dál", + "read_more_title": "Přečíst více: {{ title }}", + "back_to_blog": "Zpět do {{ title }}", + "tags": "Štítky", + "article_with_count": { + "one": "{{ count }} článek", + "other": "Počet článků: {{ count }}", + "few": "Počet článků: {{ count }}", + "many": "Počet článků: {{ count }}" + } + }, + "comments": { + "title": "Zanechat komentář", + "name": "Název", + "email": "E-mail", + "message": "Zpráva", + "post": "Zveřejnit komentář", + "moderated": "Pamatujte, komentáře musí být před zveřejněním schváleny", + "success_moderated": "Váš komentář byl úspěšně zveřejněn. Zveřejníme jej až za chvíli, protože náš blog je moderován.", + "success": "Váš komentář byl úspěšně zveřejněn! Děkujeme!", + "unapproved": "Zadaná e-mailová adresa nemá schválení pro zveřejňování komentářů.", + "comments_with_count": { + "one": "{{ count }} komentář", + "other": "Komentáře (celkem {{ count }})", + "few": "Komentáře (celkem {{ count }})", + "many": "Komentáře (celkem {{ count }})" + } + } + }, + "cart": { + "general": { + "title": "Váš košík", + "note": "Přidejte poznámku ke své objednávce", + "removed_item_html": "Odstraněno ({{ quantity }}) {{ link }} z vašeho košíku.", + "remove": "Odstranit", + "subtotal": "Mezisoučet", + "savings": "Ušetříte", + "taxes_and_shipping_at_checkout": "Daně a poštovné se vypočítají v pokladně", + "taxes_and_shipping_policy_at_checkout_html": "Daně a poštovné se vypočítá v pokladně", + "taxes_included_but_shipping_at_checkout": "Daně a poštovné se vypočítají v pokladně", + "taxes_included_and_shipping_policy_html": "Včetně daní. Poštovné se vypočítá v pokladně.", + "update": "Aktualizovat", + "checkout": "Pokladna", + "empty": "Váš košík je momentálně prázdný.", + "cookies_required": "K použití nákupního košíku musíte povolit cookies", + "continue_shopping": "Pokračovat v nákupu", + "cart_error": "Při aktualizaci vašeho košíku došlo k chybě. Zkuste to znovu." + }, + "label": { + "discounted_total": "Celkem po slevě", + "product": "Produkt", + "price": "Cena", + "price_column": "Podrobnosti o slevě najdete ve sloupci Cena.", + "product_details": "Údaje o produktu", + "quantity": "Množství", + "qty": "Množství", + "regular_total": "Běžná cena celkem", + "remove": "Odstranit {{ product }}", + "total": "Celkem", + "update": "Aktualizovat" + }, + "popup": { + "added_to_cart": "Přidáno do košíku", + "product_details": "Údaje o produktu", + "quantity": "Množství", + "quantity_label": "Množství: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} položka", + "other": "{{ count }} položek", + "few": "{{ count }} položek", + "many": "{{ count }} položek" + } + } + }, + "collections": { + "general": { + "view_all": "Zobrazit vše", + "view_all_label": "Zobrazit všechny produkty v kolekci {{ collection_name }}", + "no_matches": "Je nám líto, v této kolekci nejsou žádné produkty", + "collection_label": "Kolekce", + "items_with_count": { + "one": "Produkty: {{ count }}", + "other": "Produkty: {{ count }}", + "few": "Produkty: {{ count }}", + "many": "Produkty: {{ count }}" + } + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Seřadit podle" + }, + "filters": { + "title_tags": "Filtrovat podle", + "all_tags": "Všechny produkty" + } + }, + "contact": { + "form": { + "name": "Název", + "email": "E-mail", + "phone": "Telefonní číslo", + "message": "Zpráva", + "submit": "Odeslat", + "post_success": "Děkujeme za zprávu. Ozveme se vám co možná nejdříve.", + "error_heading": "Upravte následující:" + } + }, + "customer": { + "account": { + "title": "Můj účet", + "details": "Podrobnosti účtu", + "view_addresses": "Zobrazit adresy", + "return": "Vrátit se k podrobnostem účtu" + }, + "activate_account": { + "title": "Aktivovat účet", + "subtext": "K aktivaci účtu si vytvořte heslo.", + "password": "Heslo", + "password_confirm": "Potvrdit heslo", + "submit": "Aktivovat účet", + "cancel": "Odmítnout pozvánku" + }, + "addresses": { + "title": "Vaše adresy", + "default": "Výchozí", + "add_new": "Přidat novou adresu", + "edit_address": "Upravit adresu", + "first_name": "Jméno", + "last_name": "Příjmení", + "company": "Společnost", + "address1": "Adresa", + "address2": "Byt, apartmán atd.", + "city": "Město", + "country": "Země/region", + "province": "Provincie", + "zip": "PSČ", + "phone": "Telefon", + "set_default": "Nastavit jako výchozí adresu", + "add": "Přidat adresu", + "update": "Aktualizovat adresu", + "cancel": "Zrušit", + "edit": "Upravit", + "delete": "Smazat", + "delete_confirm": "Opravdu chcete smazat tuto adresu?" + }, + "login": { + "title": "Přihlásit se", + "email": "E-mail", + "password": "Heslo", + "forgot_password": "Zapomenuté heslo?", + "sign_in": "Přihlásit se", + "guest_title": "Pokračovat jako host", + "guest_continue": "Pokračovat" + }, + "orders": { + "title": "Historie objednávek", + "order_number": "Objednávka", + "order_number_link": "Číslo objednávky: {{ number }}", + "date": "Datum", + "payment_status": "Stav platby", + "fulfillment_status": "Stav plnění", + "total": "Celkem", + "none": "Zatím nemáte vytvořeny žádné objednávky." + }, + "order": { + "title": "Objednávka {{ name }}", + "date_html": "Vytvořeno dne {{ date }}", + "cancelled_html": "Objednávka zrušena dne {{ date }}", + "cancelled_reason": "Důvod: {{ reason }}", + "billing_address": "Fakturační adresa", + "payment_status": "Stav platby", + "shipping_address": "Dodací adresa", + "fulfillment_status": "Stav plnění", + "discount": "Sleva", + "shipping": "Expedice", + "tax": "Daň", + "product": "Produkt", + "sku": "SKU", + "price": "Cena", + "quantity": "Množství", + "total": "Celkem", + "fulfilled_at_html": "Splněno: {{ date }}", + "subtotal": "Mezisoučet", + "track_shipment": "Sledovat zásilku" + }, + "recover_password": { + "title": "Obnovení hesla", + "email": "E-mail", + "submit": "Odeslat", + "cancel": "Zrušit", + "subtext": "Pošleme vám e-mail k resetování hesla.", + "success": "Poslali jsme vám e-mail s odkazem na aktualizaci hesla." + }, + "reset_password": { + "title": "Resetovat heslo účtu", + "subtext": "Zadejte nové heslo pro {{ email }}", + "password": "Heslo", + "password_confirm": "Potvrdit heslo", + "submit": "Resetovat heslo" + }, + "register": { + "title": "Vytvořit účet", + "first_name": "Jméno", + "last_name": "Příjmení", + "email": "E-mail", + "password": "Heslo", + "submit": "Vytvořit" + } + }, + "homepage": { + "general": { + "title": "Domovská stránka" + }, + "onboarding": { + "product_title": "Název vašeho produktu", + "product_description": "Tato oblast slouží k popisu podrobností o vašem produktu. Povězte zákazníkům o vzhledu a stylu svého produktu. Přidejte podrobnosti o barvě, použitých materiálech, velikostech a místě výroby.", + "collection_title": "Název vaší kolekce", + "blog_title": "Nadpis vašeho příspěvku", + "blog_excerpt": "Váš obchod zatím nepublikoval žádné příspěvky na blogu. Blog lze použít k informování o uvedení nových produktů, ke zveřejňování tipů nebo novinek, které chcete sdílet se svými zákazníky. Na blogu e-commerce Shopify najdete inspiraci a rady pro váš vlastní obchod a blog.", + "blog_author": "Jméno autora", + "no_content": "V této sekci teď není žádný obsah. Obsah do této sekce můžete přidat pomocí boční lišty." + } + }, + "layout": { + "navigation": { + "search": "Hledat", + "expand": "rozbalit", + "collapse": "sbalit", + "menu": "Nabídka" + }, + "cart": { + "title": "Košík", + "items_count": { + "one": "položka", + "other": "položek", + "few": "položek", + "many": "položek" + } + }, + "customer": { + "account": "Účet", + "log_out": "Odhlásit se", + "log_in": "Přihlásit se", + "create_account": "Vytvořit účet" + }, + "footer": { + "social_platform": "{{ name }} na zařízení {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Běžná cena", + "sold_out": "Vyprodáno", + "unavailable": "Není k dispozici", + "on_sale": "Prodej", + "sale_price": "Prodejní cena", + "quantity": "Množství", + "add_to_cart": "Přidat do košíku", + "loader_label": "Přidání produktu do košíku", + "back_to_collection": "Zpět na", + "vendor": "Dodavatel", + "quantity_minimum_message": "Množství musí být jedna nebo více", + "include_taxes": "Včetně daní.", + "shipping_policy_html": "Poštovné se vypočítá v pokladně.", + "unit_price_label": "Jednotková cena", + "view_cart": "Zobrazit košík", + "availability": "Dostupnost", + "from_lowest_price_html": "z: {{ lowest_price }}", + "view_in_space": "Zobrazit ve vašem prostoru", + "view_in_space_label": "Zobrazení ve vašem prostoru: Načte položku v okně rozšířené reality" + } + }, + "gift_cards": { + "issued": { + "title_html": "Zde je vaše dárková karta v hodnotě {{ value }} pro {{ shop }}!", + "subtext": "Vaše dárková karta", + "gift_card_code": "Kód dárkové karty", + "disabled": "Vypnuto", + "expired": "Vypršelo dne {{ expiry }}", + "active": "Vyprší dne {{ expiry }}", + "redeem_html": "Tento kód můžete použít na pokladně a uplatnit tak svou dárkovou kartu v hodnotě {{ value }}", + "shop_link": "Začít nakupovat", + "print": "Vytisknout tuto dárkovou kartu", + "remaining_html": "{{ balance }} zbývá", + "add_to_apple_wallet": "Přidat do Apple Wallet", + "qr_image_alt": "QR kód — naskenováním uplatníte svou dárkovou kartu" + } + }, + "store_availability": { + "general": { + "view_store_info": "Zobrazit informace o obchodě", + "check_other_stores": "Zkontrolovat dostupnost v ostatních obchodech", + "pick_up_available": "Vyzvednutí k dispozici", + "pick_up_currently_unavailable": "Vyzvednutí není momentálně k dispozici", + "pick_up_available_at_html": "Vyzvednutí k dispozici v lokalitě {{ location_name }}", + "pick_up_unavailable_at_html": "Vyzvednutí není momentálně v lokalitě {{ location_name }} k dispozici" + } + } +} diff --git a/shopify/locales/da.json b/shopify/locales/da.json new file mode 100644 index 00000000..f0de15f7 --- /dev/null +++ b/shopify/locales/da.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Gå til indhold", + "close_modal": "Luk", + "link_messages": { + "new_window": "Åbner i nyt vindue.", + "external": "Åbner eksternt website.", + "new_window_and_external": "Åbner eksternt website i nyt vindue." + }, + "refresh_page": "Hele siden bliver genindlæst, når du vælger et afsnit.", + "selection_help": "Foretag et valg ved at trykke på mellemrumstasten og derefter på piletasterne.", + "unit_price_separator": "pr.", + "error": "Fejl" + }, + "meta": { + "tags": "Tagget med \"{{ tags }}\"", + "page": "Side {{ page }}" + }, + "404": { + "title": "404 Side ikke fundet", + "subtext": "Den ønskede side findes ikke.", + "link": "Tilbage til butikken" + }, + "pagination": { + "previous": "Forrige side", + "next": "Næste side", + "current_page": "Side {{ current }} af {{ total }}" + }, + "password_page": { + "opening_soon": "Åbner snart", + "login_form_heading": "Brug adgangskode for at få adgang til butikken", + "login_form_password_label": "Adgangskode", + "login_form_password_placeholder": "Din adgangskode", + "login_form_submit": "Tilgå", + "signup_form_email_label": "Mail", + "signup_form_success": "Vi sender en mail til dig, lige inden vi åbner.", + "admin_link_html": "Ejer du butikken? Log ind her", + "password_link": "Brug adgangskode for at få adgang" + }, + "social": { + "share_on_facebook": "Del", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin det", + "alt_text": { + "share_on_facebook": "Del på Facebook", + "share_on_twitter": "Tweet på Twitter", + "share_on_pinterest": "Pin på Pinterest" + } + }, + "search": { + "empty_search_message": "Søgefeltet kan ikke være tomt", + "title": "Søg på vores website", + "placeholder": "Søg", + "submit": "Indsend", + "close": "Luk søgning", + "heading": { + "one": "Søgeresultat", + "other": "Søgeresultater" + }, + "search_for": "Søg efter", + "loading": "Indlæser", + "clear_search_term": "Ryd søgeord", + "number_of_results": "{{ result_number }} ud af {{ results_count }}", + "products": "Produkter", + "number_of_results_found": "{{ results_count }} resultater blev fundet", + "one_result_found": "1 resultat blev fundet", + "no_results": "Kontrollér stavemåden, eller prøv andre ord.", + "results_with_count": { + "one": "{{ count }} resultat for \"{{ terms }}\"", + "other": "{{ count }} resultater for \"{{ terms }}\"" + } + }, + "newsletter_form": { + "newsletter_email": "Tilmeld dig vores adresseliste", + "email_placeholder": "Mailadresse", + "confirmation": "Tak for dit abonnement.", + "submit": "Abonnér" + }, + "filters": { + "show_more": "Vis mere", + "show_less": "Vis mindre" + }, + "payment": { + "method": "Betalingsmetoder" + }, + "language": { + "dropdown_label": "Sprog" + }, + "country": { + "dropdown_label": "Land/område" + } + }, + "sections": { + "slideshow": { + "next_slide": "Næste billede", + "previous_slide": "Forrige billede", + "pause_slideshow": "Sæt diasshow på pause", + "rotate_slideshow": "Afspil diasshow", + "load_slide": "Indlæs dias {{ slide_number }}", + "navigation_instructions": "Brug venstre/højre pile til at navigere i diasshowet eller swipe til venstre/højre, hvis du bruger en mobilenhed" + }, + "featured_product": { + "title": "Fremhævet produkt", + "gallery_thumbnail_alt": "Indlæs billede til gallerivisning {{ imageAlt }}", + "video_thumbnail_alt": "Indlæs og afspil video i gallerivisning {{ imageAlt }}", + "model_thumbnail_alt": "Indlæs 3D-model til gallerivisning {{ imageAlt }}" + }, + "map": { + "address_error": "Der opstod en fejl under forsøg på at finde adressen", + "address_no_results": "Ingen resultater for den adresse", + "address_query_limit_html": "Du har overskredet Googles API-brugerbegrænsning. Overvej at opgradere til et Premium-abonnement.", + "auth_error_html": "Der opstod et problem under forsøg på at bekræfte din Google Maps-konto.", + "section_heading": "Lokation" + }, + "video": { + "play": "Afspil videoen {{ video_title }}", + "pause": "Sæt videoen {{ video_title }} på pause", + "resume": "Genoptag afspilning af videoen {{ video_title }}", + "close": "Luk videoen {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Meddelelse" + } + }, + "blogs": { + "article": { + "view_all": "Se alle", + "view_all_blogs": "Se alle blogs", + "all_topics": "Alle emner", + "by_author": "af {{ author }}", + "posted_in": "Opslået i", + "read_more": "Læs mere", + "read_more_title": "Læs mere: {{ title }}", + "back_to_blog": "Tilbage til {{ title }}", + "tags": "Tags", + "article_with_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artikler" + } + }, + "comments": { + "title": "Indsend en kommentar", + "name": "Navn", + "email": "Mail", + "message": "Besked", + "post": "Opslå kommentar", + "moderated": "Bemærk, at kommentarer skal godkendes, før de bliver offentliggjort", + "success_moderated": "Din kommentar er blevet opslået. Den bliver offentliggjort om lidt, da vores blog er under opsyn.", + "success": "Din kommentar er blevet opslået. Tak!", + "unapproved": "Den angivne mailadresse er ikke godkendt til at opslå kommentarer.", + "comments_with_count": { + "one": "{{ count }} kommentar", + "other": "{{ count }} kommentarer" + } + } + }, + "cart": { + "general": { + "title": "Din indkøbskurv", + "note": "Føj en bemærkning til din ordre", + "removed_item_html": "Der blev fjernet ({{ quantity }}) {{ link }} fra din indkøbskurv.", + "remove": "Fjern", + "subtotal": "Subtotal", + "savings": "Du sparer", + "taxes_and_shipping_at_checkout": "Skatter og levering beregnes ved betaling", + "taxes_and_shipping_policy_at_checkout_html": "Skatter og levering beregnes ved betaling", + "taxes_included_but_shipping_at_checkout": "Inklusive skat. Levering beregnes ved betaling", + "taxes_included_and_shipping_policy_html": "Inklusive skat. Levering beregnes ved betaling.", + "update": "Opdatér", + "checkout": "Gå til betaling", + "empty": "Din indkøbskurv er tom.", + "cookies_required": "Du skal aktivere cookies for at kunne bruge indkøbskurven", + "continue_shopping": "Tilbage til butikken", + "cart_error": "Der opstod en fejl under opdatering af din indkøbskurv. Prøv igen." + }, + "label": { + "discounted_total": "Samled pris med rabat", + "product": "Produkt", + "price": "Pris", + "price_column": "Se kolonnen Pris for at få flere oplysninger om rabatten.", + "product_details": "Produktdetaljer", + "quantity": "Antal", + "qty": "Antal", + "regular_total": "Samlet normalpris", + "remove": "Fjern {{ product }}", + "total": "I alt", + "update": "Opdatér" + }, + "popup": { + "added_to_cart": "Netop føjet til din indkøbskurv", + "cart_count": { + "one": "{{ count }} vare", + "other": "{{ count }} varer" + }, + "product_details": "Produktdetaljer", + "quantity": "Antal", + "quantity_label": "Antal: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Se alle", + "view_all_label": "Se alle produkter i kollektionen {{ collection_name }}", + "no_matches": "Beklager, der er ingen produkter i denne kollektion", + "items_with_count": { + "one": "{{ count }} produkt", + "other": "{{ count }} produkter" + }, + "collection_label": "Kollektion" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Sortér efter" + }, + "filters": { + "title_tags": "Filtrer efter", + "all_tags": "Alle produkter" + } + }, + "contact": { + "form": { + "name": "Navn", + "email": "Mail", + "phone": "Telefonnummer", + "message": "Besked", + "submit": "Send", + "post_success": "Vi takker for din henvendelse. Vi kontakter dig så hurtigt som muligt.", + "error_heading": "Juster venligst efterfølgende:" + } + }, + "customer": { + "account": { + "title": "Min konto", + "details": "Kontodetaljer", + "view_addresses": "Se adresser", + "return": "Tilbage til kontodetaljer" + }, + "activate_account": { + "title": "Aktivér konto", + "subtext": "Lav en adgangskode, så du kan aktivere din konto.", + "password": "Adgangskode", + "password_confirm": "Bekræft adgangskode", + "submit": "Aktivér konto", + "cancel": "Afvis invitation" + }, + "addresses": { + "title": "Din adresse", + "default": "Standard", + "add_new": "Tilføj ny adresse", + "edit_address": "Rediger adresse", + "first_name": "Fornavn", + "last_name": "Efternavn", + "company": "Firma", + "address1": "Adresse", + "address2": "Lejlighed, etage osv.", + "city": "By", + "country": "Land/område", + "province": "Landsdel", + "zip": "Postnummer", + "phone": "Telefon", + "set_default": "Indstil som standardadresse", + "add": "Tilføj adresse", + "update": "Opdatér adresse", + "cancel": "Annuller", + "edit": "Rediger", + "delete": "Slet", + "delete_confirm": "Er du sikker på, at du vil slette denne adresse?" + }, + "login": { + "title": "Log ind", + "email": "Mail", + "password": "Adgangskode", + "forgot_password": "Har du glemt din adgangskode?", + "sign_in": "Log ind", + "guest_title": "Fortsæt som gæst", + "guest_continue": "Fortsæt med at shoppe" + }, + "orders": { + "title": "Ordrehistorik", + "order_number": "Ordre", + "order_number_link": "Ordrenummer {{ number }}", + "date": "Dato", + "payment_status": "Betalingsstatus", + "fulfillment_status": "Klargøringsstatus", + "total": "I alt", + "none": "Du har indnu ikke indgivet nogen ordrer." + }, + "order": { + "title": "Ordre {{ name }}", + "date_html": "Indgivet den {{ date }}", + "cancelled_html": "Ordre annulleret den {{ date }}", + "cancelled_reason": "Begrundelse: {{ reason }}", + "billing_address": "Faktureringsadresse", + "payment_status": "Betalingsstatus", + "shipping_address": "Leveringsadresse", + "fulfillment_status": "Klargøringsstatus", + "discount": "Rabat", + "shipping": "Levering", + "tax": "Moms", + "product": "Produkt", + "sku": "SKU", + "price": "Pris", + "quantity": "Antal", + "total": "I alt", + "fulfilled_at_html": "Klargjort den {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Følg forsendelse" + }, + "recover_password": { + "title": "Forny din adgangskode", + "email": "Mail", + "submit": "Indsend", + "cancel": "Annuller", + "subtext": "Vi sender dig en mail, så du kan forny din adgangskode.", + "success": "Vi har sendt dig en mail med et link, så du kan opdatere din adgangskode." + }, + "reset_password": { + "title": "Forny adgangskode til konto", + "subtext": "Indtast en ny adgangskode for {{ email }}", + "password": "Adgangskode", + "password_confirm": "Bekræft adgangskode", + "submit": "Forny adgangskode" + }, + "register": { + "title": "Opret konto", + "first_name": "Fornavn", + "last_name": "Efternavn", + "email": "Mail", + "password": "Adgangskode", + "submit": "Opret" + } + }, + "homepage": { + "general": { + "title": "Startside" + }, + "onboarding": { + "product_title": "Dit produkts navn", + "product_description": "Dette område bruges til beskrivelse af dit produkts detaljer. Fortæl kunder hvordan dit produkt ser ud, føles og stil. Tilføj detaljer om farve, brugte materialer, størrelser og hvor det er fremstillet.", + "collection_title": "Navnet på din kollektion", + "blog_title": "Titlen på dit opslag", + "blog_excerpt": "Din butik har ikke udgivet nogen blogopslag endnu. En blog kan bruges til at fortælle om nye produktlanceringer, tip eller andre nyheder, som du ønsker at dele med dine kunder. Du kan læse Shopifys e-handelsblog for at få inspiration og gode råd til din egen butik og blog.", + "blog_author": "Forfatters navn", + "no_content": "Dette område har endnu ikke noget indhold. Tilføj indhold til dette område ved brug af sidebjælken." + } + }, + "layout": { + "navigation": { + "search": "Søg", + "expand": "udvid", + "collapse": "skjul", + "menu": "Menu" + }, + "cart": { + "title": "Indkøbskurv", + "items_count": { + "one": "vare", + "other": "varer" + } + }, + "customer": { + "account": "Konto", + "log_out": "Log af", + "log_in": "Log ind", + "create_account": "Opret konto" + }, + "footer": { + "social_platform": "{{ name }} på {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Normalpris", + "sold_out": "Udsolgt", + "unavailable": "Ikke tilgængelig", + "on_sale": "Udsalg", + "sale_price": "Udsalgspris", + "quantity": "Antal", + "add_to_cart": "Læg i indkøbskurv", + "loader_label": "Lægger produkt i din indkøbskurv", + "back_to_collection": "Tilbage til", + "vendor": "Forhandler", + "quantity_minimum_message": "Antal skal være 1 eller mere", + "include_taxes": "Inklusive moms.", + "shipping_policy_html": "Levering beregnes ved betaling.", + "unit_price_label": "Stykpris", + "view_cart": "Se indkøbskurv", + "availability": "Tilgængelighed", + "from_lowest_price_html": "fra {{ lowest_price }}", + "view_in_space": "Se den i dit område", + "view_in_space_label": "Se den i dine omgivelser – indlæser vare i et augmented reality-vindue" + } + }, + "gift_cards": { + "issued": { + "title_html": "Her er dit gavekort på {{ value }} tuil {{ shop }}.", + "subtext": "Dit gavekort", + "gift_card_code": "Gavekortskode", + "disabled": "Slået fra", + "expired": "Udløb den {{ expiry }}", + "active": "Udløber den {{ expiry }}", + "redeem_html": "Brug denne kode ved betaling til at indløse dit gavekort på {{ value }}", + "shop_link": "Begynd at shoppe", + "print": "Udskriv dette gavekort", + "remaining_html": "{{ balance }} tilbage", + "add_to_apple_wallet": "Tilføj til Apple Wallet", + "qr_image_alt": "QR-kode — scan for at indløse gavekort" + } + }, + "store_availability": { + "general": { + "view_store_info": "Se butiksoplysninger", + "check_other_stores": "Kontrollér tilgængelighed i andre butikker", + "pick_up_available": "Afhentning er tilgængeligt", + "pick_up_currently_unavailable": "Afhentning er ikke tilgængeligt i øjeblikket", + "pick_up_available_at_html": "Afhentning er tilgængelig for {{ location_name }}", + "pick_up_unavailable_at_html": "Afhentning er ikke tilgængelig for {{ location_name }} i øjeblikket" + } + } +} diff --git a/shopify/locales/de.json b/shopify/locales/de.json new file mode 100644 index 00000000..827b5575 --- /dev/null +++ b/shopify/locales/de.json @@ -0,0 +1,465 @@ +{ + "general": { + "accessibility": { + "skip_to_content": "Direkt zum Inhalt", + "close_modal": "Schließen", + "link_messages": { + "new_window": "Öffnet ein neues Fenster.", + "external": "Öffnet externe Website.", + "new_window_and_external": "Öffnet externe Website in einem neuen Fenster." + }, + "refresh_page": "Wenn du eine Auswahl auswählst, wird eine vollständige Seite aktualisiert.", + "selection_help": "Drücke die die Leertaste und dann die Pfeiltasten, um eine Auswahl zu treffen.", + "unit_price_separator": "pro", + "error": "Fehler" + }, + "meta": { + "tags": "Getaggt \"{{ tags }}\"", + "page": "Seite {{ page }}" + }, + "404": { + "title": "404 Seite nicht gefunden", + "subtext": "Die von Ihnen angeforderte Seite existiert nicht.", + "link": "Weiter shoppen" + }, + "pagination": { + "previous": "Vorherige Seite", + "next": "Nächste Seite", + "current_page": "Seite {{ current }} von {{ total }}" + }, + "password_page": { + "opening_soon": "Eröffnet demnächst", + "login_form_heading": "Shop mit Passwort betreten", + "login_form_password_label": "Passwort", + "login_form_password_placeholder": "Dein Passwort", + "login_form_submit": "Betreten", + "signup_form_email_label": "E-Mail", + "signup_form_success": "Wir senden dir eine E-Mail, kurz bevor wir eröffnen!", + "admin_link_html": "Bist du der Shop-Inhaber? Logge dich hier ein<\/a>", + "powered_by_shopify_html": "Dieser Shop wird unterstützt von {{ shopify }}", + "password_link": "Mit Passwort betreten" + }, + "social": { + "share_on_facebook": "Teilen", + "share_on_twitter": "Twittern", + "share_on_pinterest": "Pinnen", + "alt_text": { + "share_on_facebook": "Auf Facebook teilen", + "share_on_twitter": "Auf Twitter twittern", + "share_on_pinterest": "Auf Pinterest pinnen" + } + }, + "search": { + "empty_search_message": "Suchfeld darf nicht leer sein", + "title": "Suche", + "placeholder": "Suchen", + "submit": "Suchen", + "close": "Schließen (esc)", + "heading": { + "one": "Suchergebnis", + "other": "Suchergebnisse" + }, + "search_for": "Suchen nach", + "loading": "Wird geladen", + "clear_search_term": "Suchbegriffe zurücksetzen", + "number_of_results": "{{ result_number }} von {{ results_count }}", + "products": "Produkte", + "number_of_results_found": "{{ results_count }} Ergebnisse gefunden", + "one_result_found": "1 Ergebnis gefunden", + "no_results": "Keine Ergebnisse gefunden. Überprüfe die Schreibweise oder versuche es mit anderen Wörtern.", + "results_with_count": { + "one": "{{ count }} Suchergebnis für \"{{ terms }}\"", + "other": "{{ count }} Suchergebnisse für \"{{ terms }}\"" + } + }, + "newsletter_form": { + "newsletter_email": "Abonniere unsere Mailingliste", + "email_placeholder": "E-Mail-Adresse", + "confirmation": "Danke für deine Anmeldung!", + "submit": "Abonnieren", + "newsletter_opt_in": "Ich bin damit einverstanden, den treatfuls Newsletter zu erhalten." + }, + "filters": { + "show_more": "Mehr anzeigen", + "show_less": "Weniger anzeigen" + }, + "payment": { + "method": "Zahlungsmethoden" + }, + "language": { + "dropdown_label": "Sprache" + }, + "country": { + "dropdown_label": "Land\/Region" + } + }, + "sections": { + "slideshow": { + "next_slide": "Nächster Schieber", + "previous_slide": "Vorheriger Schieber", + "pause_slideshow": "Slideshow pausieren", + "rotate_slideshow": "Diashow abspielen", + "load_slide": "Folie {{ slide_number }} laden", + "navigation_instructions": "Nutze die linken\/rechten Pfeile, um durch die Slideshow zu navigieren, oder wische nach links bzw. rechts, wenn du ein mobiles Gerät verwendest" + }, + "featured_product": { + "title": "Vorgestelltes Produkt", + "gallery_thumbnail_alt": "Lade das Bild in den Galerie-Viewer, {{ imageAlt }}", + "video_thumbnail_alt": "Laden und Abspielen von Videos im Galerie-Viewer, {{ imageAlt }}", + "model_thumbnail_alt": "Laden das 3D-Modell in den Galerie-Viewer, {{ imageAlt }}" + }, + "map": { + "address_error": "Kann die Adresse nicht finden", + "address_no_results": "Keine Ergebnisse für diese Adresse", + "address_query_limit_html": "Du hast die Nutzungsgrenze der Google-API überschritten. Du solltest über ein Upgrade auf einen Premium-Plan<\/a> nachdenken.", + "auth_error_html": "Es gab ein Problem bei der Authentifizierung deineses Google Maps-Kontos.", + "section_heading": "Standort" + }, + "video": { + "play": "Video {{ video_title }} abspielen", + "pause": "Video {{ video_title }} pausieren", + "resume": "Video {{ video_title }} fortsetzen", + "close": "Video {{ video_title }} schließen" + }, + "header": { + "announcement_bar_label": "Ankündigung" + } + }, + "blogs": { + "article": { + "view_all": "Alle anzeigen", + "view_all_blogs": "Alle anzeigen Artikel", + "all_topics": "Alle themen", + "by_author": "von {{ author }}", + "posted_in": "Veröffentlicht in", + "read_more": "Weiterlesen", + "read_more_title": "Weiterlesen: {{ title }}", + "back_to_blog": "Zurück zu {{ title }}", + "tags": "Stichworte", + "article_with_count": { + "one": "{{ count }} Artikel", + "other": "{{ count }} Artikel" + } + }, + "comments": { + "title": "Hinterlasse einen Kommentar", + "name": "Name", + "email": "E-Mail", + "message": "Nachricht", + "post": "Kommentar posten", + "moderated": "Bitte beachten Sie, dass Kommentare vor der Veröffentlichung freigegeben werden müssen", + "success_moderated": "Dein Kommentar wurde erfolgreich gepostet. Da unser Blog moderiert wird, werden wir ihn erst kurze Zeit später veröffentlichen.", + "success": "Dein Kommentar wurde erfolgreich gepostet. Danke!", + "unapproved": "Die angegebene E-Mail-Adresse ist nicht zum Posten von Kommentaren freigegeben.", + "comments_with_count": { + "one": "{{ count }} Kommentar", + "other": "{{ count }} Kommentare" + } + } + }, + "cart": { + "general": { + "title": "Warenkorb", + "note": "Einen Hinweis zu Ihrer Bestellung hinzufügen", + "removed_item_html": "({{ quantity }}) {{ link }}<\/span> aus deinem Warenkorb entfernt.", + "remove": "Entfernen", + "subtotal": "Zwischensumme", + "savings": "Du sparst", + "taxes_and_shipping_at_checkout": "Steuern und Versandkosten werden beim Checkout berechnet", + "taxes_and_shipping_policy_at_checkout_html": "zzgl. MwSt. und Versandkosten<\/a>", + "taxes_included_but_shipping_at_checkout": "inkl. MwSt. und zzgl. Versandkosten", + "taxes_included_and_shipping_policy_html": "inkl. MwSt. zzgl. Versandkosten<\/a>", + "update": "Warenkorb aktualisieren", + "checkout": "Zur Kasse - {{ cart_amount }}", + "empty": "Dein Warenkorb ist im Moment leer.", + "cookies_required": "Aktiviere Cookies, um den Warenkorb benutzen zu können", + "continue_shopping": "Weiter shoppen", + "cart_error": "Beim Aktualisieren des Warenkorbs ist ein Fehler aufgetreten. Bitte versuche es erneut.", + "cart_subtotal": "Versandkosten und Rabattcodes werden bei der Bezahlung berechnet.", + "mini_cart_item": "{{ item_count }} Produkte im Warenkorb", + "mini_cart_empty_title": "Dein Warenkorb ist leer", + "mini_cart_empty_subtitle": "Noch nichts gefunden? 🤔", + "free_shipping_amount": "Kostenloser Versand ab einem Warenkorb von {{ free_shipping_amount }}", + "free_shipping_html": "🎉 Dein Versand ist kostenlos!", + "free_shipping_remaining_html": "🚚 Nur noch {{ remaining_amount }} bis zum kostenlosen Versand" + }, + "label": { + "discounted_total": "Gesamtrabatt", + "product": "Artikel", + "price": "Preis", + "price_column": "Rabattdetails findest du in der Preisspalte.", + "product_details": "Produktdetails", + "quantity": "Menge", + "qty": "Menge", + "regular_total": "Normaler Gesamtpreis", + "remove": "{{ product }} entfernen", + "total": "Gesamt", + "update": "Warenkorb aktualisieren" + }, + "popup": { + "added_to_cart": "Zum Warenkorb hinzugefügt", + "cart_count": { + "one": "{{ count }} Artikel", + "other": "{{ count }} Produkte" + }, + "product_details": "Produktdetails", + "quantity": "Menge", + "quantity_label": "Menge: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Alle anzeigen", + "view_all_label": "Sehe alle Produkte in der {{ collection_name }}-Sammlung", + "no_matches": "Es tut uns leid, aber deine Suche nach Produkten hat keine Treffer ergeben.", + "items_with_count": { + "one": "{{ count }} Produkt", + "other": "{{ count }} Produkte" + }, + "collection_label": "Kategorie" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Sortieren nach" + }, + "filters": { + "title_tags": "Filtern nach", + "all_tags": "Alle Produkte" + }, + "product_card": { + "add_to_cart": "In den Warenkorb", + "preorder": "Vorbestellen", + "sold_out": "coming soon", + "vegan_badge": "Vegan", + "bio_badge": "Bio" + } + }, + "contact": { + "form": { + "name": "Dein Name", + "first_name": "Vorname", + "last_name": "Nachname", + "order_number": "Bestellnummer", + "email": "Deine E-Mail", + "phone": "Telefonnummer", + "message": "Deine Nachricht", + "submit": "Nachricht senden", + "b2b_submit": "Anfrage senden", + "post_success_html": "Danke für deine Anfrage, wir prüfen deine Angaben und melden uns innerhalb der nächsten Tage bei dir zurück.", + "back_to_home": "Zurück zur Startseite", + "error_heading": "Bitte passe Folgendes an:" + } + }, + "customer": { + "account": { + "title": "Mein Konto", + "details": "Kontodetails", + "view_addresses": "Lieferadresse verwalten", + "return": "Zurück zu Kontodetails" + }, + "activate_account": { + "title": "Konto aktivieren", + "subtext": "Erstelle ein Passwort, um dein Konto zu aktiveren.", + "password": "Passwort", + "password_confirm": "Passwort bestätigen", + "submit": "Konto aktivieren", + "cancel": "Einladung ablehnen" + }, + "addresses": { + "title": "Deine Adressen", + "default": "Standard", + "add_new": "Neue Adresse erstellen", + "edit_address": "Adresse bearbeiten", + "first_name": "Vorname*", + "last_name": "Nachname*", + "company": "Firma", + "address1": "Adresse*", + "address2": "Wohnung, Zimmer usw.", + "city": "Stadt*", + "country": "Land*", + "province": "Bundesland", + "zip": "Postleitzahl*", + "phone": "Telefonnummer", + "set_default": "Als Standard-Adresse festlegen", + "add": "Adresse hinzufügen", + "update": "Adresse aktualisieren", + "cancel": "Abbrechen", + "edit": "Bearbeiten", + "delete": "Löschen", + "delete_confirm": "Bist du sicher, dass du diese Adresse löschen möchtest?" + }, + "login": { + "title": "Login", + "email": "Deine E-Mail Adresse", + "password": "Passwort", + "forgot_password": "Passwort vergessen?", + "sign_in": "Anmelden", + "guest_title": "Als Gast fortsetzen", + "guest_continue": "Fortsetzen" + }, + "orders": { + "title": "Bestellverlauf", + "order_number": "Bestellung", + "order_number_link": "Bestellnummer {{ number }}", + "date": "Datum", + "payment_status": "Zahlungsstatus", + "fulfillment_status": "Lieferstatus", + "total": "Gesamt", + "none": "Sie haben noch keine Bestellungen aufgegeben." + }, + "order": { + "title": "Bestellung {{ name }}", + "date_html": "Aufgegeben am {{ date }}", + "cancelled_html": "Bestellung storniert am {{ date }}", + "cancelled_reason": "Grund: {{ reason }}", + "billing_address": "Rechnungsadresse", + "payment_status": "Zahlungsstatus", + "shipping_address": "Lieferadresse", + "fulfillment_status": "Lieferstatus", + "discount": "Rabatt", + "shipping": "Versand", + "tax": "Steuern", + "product": "Artikel", + "sku": "SKU", + "price": "Preis", + "quantity": "Menge", + "total": "Gesamt", + "fulfilled_at_html": "Geliefert am {{ date }}", + "subtotal": "Zwischensumme", + "track_shipment": "Sendung verfolgen" + }, + "recover_password": { + "title": "Passwort zurücksetzen", + "email": "E-Mail", + "submit": "Absenden", + "cancel": "Abbrechen", + "subtext": "Wir werden Ihnen eine E-Mail zum Zurücksetzen des Passworts schicken.", + "success": "Wir haben Ihnen eine E-Mail mit einem Link zum Aktualisieren des Passworts geschickt." + }, + "reset_password": { + "title": "Passwort für Konto zurücksetzen", + "subtext": "Gib ein neues Passwort für {{ email }} ein", + "password": "Passwort", + "password_confirm": "Passwort bestätigen", + "submit": "Passwort zurücksetzen" + }, + "register": { + "title": "Konto erstellen", + "first_name": "Vorname", + "last_name": "Nachname", + "email": "Deine E-Mail Adresse", + "password": "Passwort", + "submit": "Account erstellen" + } + }, + "homepage": { + "general": { + "title": "Startseite" + }, + "onboarding": { + "product_title": "Der Name deines Produkts", + "product_description": "Diesen Abschnitt kannst du nutzen, um die Details deines Produkts zu beschreiben. Erzähle den Kunden, wie dein Produkt aussieht, sich anfühlt und designt ist. Füge Einzelheiten zu Farbe, verwendeten Materialien, Größe und Produktionsort hinzu.", + "collection_title": "Name deiner Kategorie", + "blog_title": "Der Titel deines Posts", + "blog_excerpt": "Dein Shop hat noch keine Blogposts veröffentlicht. Ein Blog kann genutzt werden, um über die Einführung neuer Produkte, Tipps oder andere Neuigkeiten, die du mit deinen Kunden teilen möchtest, zu berichten. Für Inspiration und Ratschläge für deinen eigenen Shop und Blog kannst du den E-Commerce-Blog von Shopify besuchen.", + "blog_author": "Name des Autors", + "no_content": "Dieser Bereich hat zur Zeit keinen Inhalt. Füge diesem Bereich über die Seitenleiste Inhalte hinzu." + } + }, + "layout": { + "navigation": { + "search": "Suchen", + "expand": "ausklappen", + "collapse": "einklappen", + "menu": "Menü" + }, + "cart": { + "title": "Warenkorb", + "items_count": { + "one": "Produkt", + "other": "Produkte" + } + }, + "customer": { + "account": "Konto", + "log_out": "Ausloggen", + "log_in": "Einloggen", + "create_account": "Account erstellen" + }, + "footer": { + "copyright": "©", + "all_rights_served": "Alle Rechte vorbehalten.", + "social_platform": "{{ name }} auf {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Normaler Preis", + "sold_out": "coming soon", + "unavailable": "Nicht verfügbar", + "on_sale": "Angebot", + "sale_price": "Sonderpreis", + "quantity": "Menge", + "add_to_cart": "Zum Warenkorb hinzufügen", + "loader_label": "Produkt wird zum Warenkorb hinzugefügt", + "back_to_collection": "Zurück zu", + "vendor": "Verkäufer", + "quantity_minimum_message": "Die Menge muss 1 oder mehr sein", + "include_taxes": "inkl. MwSt.", + "shipping_policy_html": "zzgl. Versandkosten<\/a>", + "unit_price_label": "Einzelpreis", + "view_cart": "Warenkorb einsehen", + "availability": "Verfügbarkeit", + "from_lowest_price_html": "von {{ lowest_price }}", + "view_in_space": "In deinem Bereich ansehen", + "view_in_space_label": "„Ansicht in deinem Raum“ lädt den Artikel im Augmented-Reality-Fenster", + "ingredients": "Inhaltsstoffe", + "nutrition_table": "Nährwerttabelle", + "nutrition_grams": "100gr", + "nutrition_portion_html": "20g
    (Die Packung enthält 2 Portionen.
    1 Portion = 20 g)<\/span>", + "energy": "Energie\/Energy value", + "fat": "Fett\/Fat", + "sat_fat": "- davon gesättigte Fettsäuren \/ Saturates", + "carbs": "Kohlenhydrate\/Carbohydrate", + "sugar": "- davon Zucker \/ Sugar", + "fibre": "Ballaststoffe \/ Fibre", + "protein": "Eiweiß \/ Protein", + "salt": "Salz \/ Salt" + }, + "pre_order": { + "note": "Hinweis", + "shipping": "Lieferzeit", + "pre_order": "Vorbestellung", + "pre_order_atc": "Jetzt vorbestellen", + "shipping_info": "Lieferzeit der Vorbestellung: {{ date }}" + } + }, + "gift_cards": { + "issued": { + "title_html": "Hier ist dein {{ value }} Geschenkgutschein für {{ shop }}!", + "subtext": "Hier ist dein Geschenkgutschein!", + "gift_card_code": "Gutscheincode", + "disabled": "Deaktiviert", + "expired": "Abgelaufen am {{ expiry }}", + "active": "Läuft ab am {{ expiry }}", + "redeem_html": "Nutze beim Checkout diesen Code, um deinen {{ value }} Geschenkgutschein einzulösen", + "shop_link": "Einkauf beginnen", + "print": "Diesen Geschenkgutschein ausdrucken", + "remaining_html": "{{ balance }} übrig", + "add_to_apple_wallet": "Hinzufügen zu Apple Wallet", + "qr_image_alt": "QR-Code — Scannen, um Geschenkgutschein einzulösen" + } + }, + "store_availability": { + "general": { + "view_store_info": "Shop-Informationen anzeigen", + "check_other_stores": "Verfügbarkeit in anderen Shops überprüfen", + "pick_up_available": "Abholung verfügbar", + "pick_up_currently_unavailable": "Abholung derzeit nicht verfügbar", + "pick_up_available_at_html": "Abholung bei {{ location_name }}<\/strong> verfügbar", + "pick_up_unavailable_at_html": "Abholung bei {{ location_name }}<\/strong> derzeit nicht verfügbar" + } + } +} \ No newline at end of file diff --git a/shopify/locales/el.json b/shopify/locales/el.json new file mode 100644 index 00000000..334271e0 --- /dev/null +++ b/shopify/locales/el.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "products": { + "product": { + "from_lowest_price_html": "από {{ lowest_price }}", + "regular_price": "Κανονική τιμή", + "sold_out": "Εξαντλήθηκε", + "unavailable": "Μη διαθέσιμο", + "availability": "Διαθεσιμότητα", + "on_sale": "Έκπτωση", + "sale_price": "Τιμή έκπτωσης", + "quantity": "Ποσότητα", + "add_to_cart": "Προσθήκη στο καλάθι", + "loader_label": "Προσθήκη προϊόντος στο καλάθι σας", + "back_to_collection": "Επιστροφή σε", + "vendor": "Προμηθευτής", + "quantity_minimum_message": "Η ποσότητα πρέπει να είναι 1 ή μεγαλύτερη", + "include_taxes": "Ο φόρος συμπεριλαμβάνεται.", + "shipping_policy_html": "Τα
    έξοδα αποστολής υπολογίζονται κατά την ολοκλήρωση της παραγγελίας.", + "unit_price_label": "Τιμή μονάδας", + "view_cart": "Προβολή καλαθιού", + "view_in_space": "Προβολή στον χώρο σας", + "view_in_space_label": "Η επιλογή \"Προβολή στον χώρο σας\", φορτώνει το αντικείμενο στο παράθυρο επαυξημένης πραγματικότητας" + } + }, + "general": { + "accessibility": { + "skip_to_content": "Απευθείας μετάβαση στο περιεχόμενο", + "close_modal": "Κλείσιμο", + "link_messages": { + "new_window": "Ανοίγει σε νέο παράθυρο.", + "external": "Ανοίγει εξωτερικό ιστότοπο.", + "new_window_and_external": "Ανοίγει εξωτερικό ιστότοπο σε νέο παράθυρο." + }, + "refresh_page": "Ο ορισμός μιας επιλογής έχει ως αποτέλεσμα την πλήρη ανανέωση της σελίδας.", + "selection_help": "Πιέστε το πλήκτρο κενού διαστήματος και μετά τα πλήκτρα με τα βέλη για να κάνετε μια επιλογή.", + "unit_price_separator": "ανά", + "error": "Σφάλμα" + }, + "meta": { + "tags": "Επισημάνθηκε ως \"{{ tags }}\"", + "page": "Σελίδα {{ page }}" + }, + "404": { + "title": "404 Η σελίδα δεν βρέθηκε", + "subtext": "Η σελίδα που ζητήσατε δεν υπάρχει.", + "link": "Συνέχιση αγορών" + }, + "pagination": { + "previous": "Προηγούμενη σελίδα", + "next": "Επόμενη σελίδα", + "current_page": "Σελίδα {{ current }} από {{ total }}" + }, + "password_page": { + "opening_soon": "Ανοίγει σύντομα", + "login_form_heading": "Είσοδος στο κατάστημα με τη χρήση κωδικού πρόσβασης", + "login_form_password_label": "Κωδικός πρόσβασης", + "login_form_password_placeholder": "Ο κωδικός σας πρόσβασης", + "login_form_submit": "Είσοδος", + "signup_form_email_label": "Email", + "signup_form_success": "Θα σας στείλουμε ένα email λίγο πριν ανοίξουμε!", + "admin_link_html": "Είστε ο ιδιοκτήτης του καταστήματος; Συνδεθείτε εδώ", + "password_link": "Είσοδος με τη χρήση κωδικού πρόσβασης" + }, + "social": { + "share_on_facebook": "Κοινοποίηση", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Καρφίτσωμα", + "alt_text": { + "share_on_facebook": "Κοινοποίηση στο Facebook", + "share_on_twitter": "Tweet στο Twitter", + "share_on_pinterest": "Καρφίτσωμα στο Pinterest" + } + }, + "search": { + "no_results": "Ελέγξτε την ορθογραφία ή χρησιμοποιήστε άλλες λέξεις.", + "empty_search_message": "Το πεδίο αναζήτησης δεν μπορεί να είναι κενό", + "results_with_count": { + "one": "{{ count }} αποτέλεσμα για “{{ terms }}”", + "other": "{{ count }} αποτελέσματα για “{{ terms }}”" + }, + "title": "Αναζήτηση στον ιστότοπό μας", + "placeholder": "Αναζήτηση", + "submit": "Υποβολή", + "close": "Κλείσιμο αναζήτησης", + "heading": { + "one": "Αποτέλεσμα αναζήτησης", + "other": "Αποτελέσματα αναζήτησης" + }, + "search_for": "Αναζήτηση για", + "products": "Προϊόντα", + "loading": "Φόρτωση", + "clear_search_term": "Διαγραφή όρου αναζήτησης", + "number_of_results": "{{ result_number }} από {{ results_count }}", + "number_of_results_found": "Βρέθηκαν {{ results_count }} αποτελέσματα", + "one_result_found": "Βρέθηκε 1 αποτέλεσμα" + }, + "newsletter_form": { + "newsletter_email": "Εγγραφείτε στη λίστα αλληλογραφίας", + "email_placeholder": "Διεύθυνση email", + "confirmation": "Ευχαριστούμε για την εγγραφή!", + "submit": "Εγγραφή" + }, + "filters": { + "show_more": "Εμφάνιση περισσότερων", + "show_less": "Εμφάνιση λιγότερων" + }, + "payment": { + "method": "Μέθοδοι πληρωμής" + }, + "language": { + "dropdown_label": "Γλώσσα" + }, + "country": { + "dropdown_label": "Χώρα/περιοχή" + } + }, + "sections": { + "slideshow": { + "next_slide": "Επόμενη διαφάνεια", + "previous_slide": "Προηγούμενη διαφάνεια", + "pause_slideshow": "Παύση παρουσίασης", + "rotate_slideshow": "Αναπαραγωγή παρουσίασης", + "load_slide": "Φόρτωση διαφάνειας {{ slide_number }}", + "navigation_instructions": "Χρησιμοποιήστε το αριστερό και το δεξί βέλος για να περιηγηθείτε στην παρουσίαση ή σύρετε αριστερά/δεξιά, αν χρησιμοποιείτε κινητή συσκευή" + }, + "featured_product": { + "title": "Επιλεγμένο προϊόν", + "gallery_thumbnail_alt": "Φόρτωση εικόνας στο εργαλείο προβολής Συλλογής, {{ imageAlt }}", + "video_thumbnail_alt": "Φόρτωση και αναπαραγωγή βίντεο στο εργαλείο προβολής Συλλογής, {{ imageAlt }}", + "model_thumbnail_alt": "Φόρτωση μοντέλου 3D στο εργαλείο προβολής Συλλογής, {{ imageAlt }}" + }, + "map": { + "address_error": "Σφάλμα κατά την αναζήτηση της συγκεκριμένης διεύθυνσης", + "address_no_results": "Δεν υπάρχουν αποτελέσματα για αυτήν τη διεύθυνση", + "address_query_limit_html": "Ξεπεράσατε το όριο χρήσης του Google API. Σκεφτείτε το ενδεχόμενο να κάνετε αναβάθμιση σε ένα Πρόγραμμα Premium.", + "auth_error_html": "Παρουσιάστηκε πρόβλημα κατά τον έλεγχο ταυτότητας του λογαριασμού σας στους Χάρτες Google.", + "section_heading": "Τοποθεσία" + }, + "video": { + "play": "Αναπαραγωγή του βίντεο {{ video_title }}", + "pause": "Παύση του βίντεο {{ video_title }}", + "resume": "Συνέχιση του βίντεο {{ video_title }}", + "close": "Κλείσιμο του βίντεο {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Ανακοίνωση" + } + }, + "blogs": { + "article": { + "view_all": "Προβολή όλων", + "view_all_blogs": "Προβολή όλων των ιστολογίων", + "all_topics": "Όλα τα θέματα", + "by_author": "από {{ author }}", + "posted_in": "Αναρτήθηκε στο", + "read_more": "Διαβάστε περισσότερα", + "read_more_title": "Διαβάστε περισσότερα: {{ title }}", + "back_to_blog": "Επιστροφή σε {{ title }}", + "tags": "Ετικέτες", + "article_with_count": { + "one": "{{ count }} άρθρο", + "other": "{{ count }} άρθρα" + } + }, + "comments": { + "title": "Υποβάλετε ένα σχόλιο", + "name": "Όνομα", + "email": "Email", + "message": "Μήνυμα", + "post": "Ανάρτηση σχολίου", + "moderated": "Έχετε υπόψη ότι τα σχόλια πρέπει να λάβουν έγκριση προτού δημοσιευτούν", + "success_moderated": "Το σχόλιό σας αναρτήθηκε επιτυχώς. Θα το δημοσιεύσουμε σε λίγο γιατί το ιστολόγιό μας είναι εποπτευόμενο.", + "success": "Το σχόλιό σας αναρτήθηκε επιτυχώς! Ευχαριστούμε!", + "unapproved": "Η διεύθυνση email που παρείχατε δεν έχει εγκριθεί για την ανάρτηση σχολίων.", + "comments_with_count": { + "one": "{{ count }} σχόλιο", + "other": "{{ count }} σχόλια" + } + } + }, + "cart": { + "general": { + "title": "Το καλάθι σας", + "note": "Προσθέστε μια σημείωση στην παραγγελία σας", + "removed_item_html": "Κατάργηση ({{ quantity }}) {{ link }} από το καλάθι σας.", + "remove": "Κατάργηση", + "subtotal": "Υποσύνολο", + "savings": "Εξοικονομείτε", + "taxes_and_shipping_at_checkout": "Οι φόροι και τα έξοδα αποστολής υπολογίζονται κατά την ολοκλήρωση της παραγγελίας", + "taxes_and_shipping_policy_at_checkout_html": "Οι φόροι και τα έξοδα αποστολής υπολογίζονται κατά την ολοκλήρωση της παραγγελίας", + "taxes_included_but_shipping_at_checkout": "Ο φόρος συμπεριλαμβάνεται και τα έξοδα αποστολής υπολογίζονται κατά την ολοκλήρωση της παραγγελίας", + "taxes_included_and_shipping_policy_html": "Ο φόρος συμπεριλαμβάνεται. Τα έξοδα αποστολής υπολογίζονται κατά την ολοκλήρωση της παραγγελίας.", + "update": "Ενημέρωση", + "checkout": "Ολοκλήρωση παραγγελίας", + "empty": "Το καλάθι σας είναι κενό.", + "cookies_required": "Ενεργοποιήστε τα cookie για να χρησιμοποιήσετε το καλάθι αγορών", + "continue_shopping": "Συνέχιση αγορών", + "cart_error": "Παρουσιάστηκε σφάλμα κατά την ενημέρωση του καλαθιού. Δοκιμάστε ξανά." + }, + "label": { + "discounted_total": "Σύνολο μετά την έκπτωση", + "product": "Προϊόν", + "price": "Τιμή", + "price_column": "Ανατρέξτε στη στήλη Τιμή για λεπτομέρειες σχετικά με την έκπτωση.", + "product_details": "Λεπτομέρειες προϊόντος", + "quantity": "Ποσότητα", + "qty": "Ποσότητα", + "regular_total": "Κανονικό σύνολο", + "remove": "Κατάργηση {{ product }}", + "total": "Σύνολο", + "update": "Ενημέρωση" + }, + "popup": { + "added_to_cart": "Μόλις προστέθηκε στο καλάθι σας", + "cart_count": { + "one": "{{ count }} στοιχείο", + "other": "{{ count }} στοιχεία" + }, + "product_details": "Λεπτομέρειες προϊόντος", + "quantity": "Ποσότητα", + "quantity_label": "Ποσότητα: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Προβολή όλων", + "view_all_label": "Προβολή όλων των προϊόντων στη συλλογή {{ collection_name }}", + "no_matches": "Δυστυχώς δεν υπάρχουν προϊόντα σε αυτήν τη συλλογή", + "items_with_count": { + "one": "{{ count }} προϊόν", + "other": "{{ count }} προϊόντα" + }, + "collection_label": "Συλλογή" + }, + "catalog": { + "title": "Κατάλογος" + }, + "sorting": { + "title": "Ταξινόμηση κατά" + }, + "filters": { + "title_tags": "Φιλτράρισμα κατά", + "all_tags": "Όλα τα προϊόντα" + } + }, + "contact": { + "form": { + "name": "Όνομα", + "email": "Email", + "phone": "Αριθμός τηλεφώνου", + "message": "Μήνυμα", + "submit": "Αποστολή", + "post_success": "Ευχαριστούμε που επικοινωνήσατε μαζί μας. Θα σας απαντήσουμε το συντομότερο δυνατόν.", + "error_heading": "Προσαρμόστε τα παρακάτω:" + } + }, + "customer": { + "account": { + "title": "Ο λογαριασμός μου", + "details": "Στοιχεία λογαριασμού", + "view_addresses": "Προβολή διευθύνσεων", + "return": "Επιστροφή στα στοιχεία λογαριασμού" + }, + "activate_account": { + "title": "Ενεργοποίηση λογαριασμού", + "subtext": "Δημιουργήστε τον κωδικό πρόσβασης για να ενεργοποιήσετε τον λογαριασμό σας.", + "password": "Κωδικός πρόσβασης", + "password_confirm": "Επιβεβαίωση κωδικού πρόσβασης", + "submit": "Ενεργοποίηση λογαριασμού", + "cancel": "Απόρριψη πρόσκλησης" + }, + "addresses": { + "title": "Οι διευθύνσεις σας", + "default": "Προεπιλογή", + "add_new": "Προσθήκη νέας διεύθυνσης", + "edit_address": "Επεξεργασία διεύθυνσης", + "first_name": "Όνομα", + "last_name": "Επίθετο", + "company": "Εταιρεία", + "address1": "Διεύθυνση", + "address2": "Διαμέρισμα, σουίτα, κ.λπ.", + "city": "Πόλη", + "country": "Χώρα/Περιοχή", + "province": "Νομός", + "zip": "Ταχυδρομικός κώδικας", + "phone": "Τηλέφωνο", + "set_default": "Ορισμός ως προεπιλεγμένης διεύθυνσης", + "add": "Προσθήκη διεύθυνσης", + "update": "Ενημέρωση διεύθυνσης", + "cancel": "Ακύρωση", + "edit": "Επεξεργασία", + "delete": "Διαγραφή", + "delete_confirm": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήν τη διεύθυνση;" + }, + "login": { + "title": "Σύνδεση", + "email": "Email", + "password": "Κωδικός πρόσβασης", + "forgot_password": "Ξεχάσατε τον κωδικό πρόσβασης;", + "sign_in": "Σύνδεση", + "guest_title": "Συνέχεια ως επισκέπτης", + "guest_continue": "Συνέχεια" + }, + "orders": { + "title": "Ιστορικό παραγγελιών", + "order_number": "Παραγγελία", + "order_number_link": "Αριθμός παραγγελίας {{ number }}", + "date": "Ημερομηνία", + "payment_status": "Κατάσταση πληρωμής", + "fulfillment_status": "Κατάσταση ολοκλήρωσης", + "total": "Σύνολο", + "none": "Δεν έχετε κάνει κάποια παραγγελία ακόμη." + }, + "order": { + "title": "Παραγγελία {{ name }}", + "date_html": "Πραγματοποιήθηκε στις {{ date }}", + "cancelled_html": "Η παραγγελία ακυρώθηκε στις {{ date }}", + "cancelled_reason": "Αιτία: {{ reason }}", + "billing_address": "Διεύθυνση χρέωσης", + "payment_status": "Κατάσταση πληρωμής", + "shipping_address": "Διεύθυνση αποστολής", + "fulfillment_status": "Κατάσταση ολοκλήρωσης", + "discount": "Έκπτωση", + "shipping": "Έξοδα αποστολής", + "tax": "Φόρος", + "product": "Προϊόν", + "sku": "SKU", + "price": "Τιμή", + "quantity": "Ποσότητα", + "total": "Σύνολο", + "fulfilled_at_html": "Ολοκληρώθηκε στις {{ date }}", + "subtotal": "Υποσύνολο", + "track_shipment": "Παρακολούθηση αποστολής" + }, + "recover_password": { + "title": "Επαναφορά του κωδικού σας πρόσβασης", + "email": "Email", + "submit": "Υποβολή", + "cancel": "Ακύρωση", + "subtext": "Θα σας στείλουμε ένα email για την επαναφορά του κωδικού πρόσβασης.", + "success": "Σας στείλαμε ένα email το οποίο περιέχει έναν σύνδεσμο για την ενημέρωση του κωδικού πρόσβασης." + }, + "reset_password": { + "title": "Επαναφορά κωδικού πρόσβασης λογαριασμού", + "subtext": "Εισαγάγετε νέο κωδικό πρόσβασης για το {{ email }}", + "password": "Κωδικός πρόσβασης", + "password_confirm": "Επιβεβαίωση κωδικού πρόσβασης", + "submit": "Επαναφορά κωδικού πρόσβασης" + }, + "register": { + "title": "Δημιουργία λογαριασμού", + "first_name": "Όνομα", + "last_name": "Επίθετο", + "email": "Email", + "password": "Κωδικός πρόσβασης", + "submit": "Δημιουργία" + } + }, + "homepage": { + "general": { + "title": "Αρχική σελίδα" + }, + "onboarding": { + "product_title": "Το όνομα του προϊόντος σας", + "product_description": "Αυτή η περιοχή χρησιμοποιείται για την περιγραφή των λεπτομερειών του προϊόντος σας. Ενημερώστε τους πελάτες σας σχετικά με την εμφάνιση, την αίσθηση και το στιλ του προϊόντος σας. Προσθέστε λεπτομέρειες όπως είναι το χρώμα, τα υλικά που χρησιμοποιήθηκαν, το μέγεθος και το πού κατασκευάστηκε.", + "collection_title": "Το όνομα της συλλογής σας", + "blog_title": "Ο τίτλος της ανάρτησής σας", + "blog_excerpt": "Το κατάστημά σας δεν έχει δημοσιεύσει αναρτήσεις ιστολογίου ακόμη. Μπορείτε να χρησιμοποιείτε ένα ιστολόγιο για να μιλάτε για κυκλοφορίες νέων προϊόντων, να δίνετε συμβουλές ή για να δημοσιεύετε άλλες ειδήσεις που θέλετε να μοιραστείτε με τους πελάτες σας. Μπορείτε να ρίξετε μια ματιά στο ιστολόγιο ηλεκτρονικού εμπορίου του Shopify για να εμπνευστείτε και να δείτε συμβουλές για το δικό σας κατάστημα και ιστολόγιο.", + "blog_author": "Όνομα συντάκτη", + "no_content": "Αυτή η ενότητα δεν διαθέτει προς το παρόν περιεχόμενο. Προσθέστε περιεχόμενο σε αυτήν την ενότητα, χρησιμοποιώντας την πλευρική γραμμή." + } + }, + "layout": { + "navigation": { + "search": "Αναζήτηση", + "expand": "ανάπτυξη", + "collapse": "σύμπτυξη", + "menu": "Μενού" + }, + "cart": { + "title": "Καλάθι", + "items_count": { + "one": "στοιχείο", + "other": "στοιχεία" + } + }, + "customer": { + "account": "Λογαριασμός", + "log_out": "Αποσύνδεση", + "log_in": "Σύνδεση", + "create_account": "Δημιουργία λογαριασμού" + }, + "footer": { + "social_platform": "{{ name }} στο {{ platform }}" + } + }, + "gift_cards": { + "issued": { + "title_html": "Αυτή είναι η δωροκάρτα σας αξίας {{ value }} για το {{ shop }}!", + "subtext": "Η δωροκάρτα σας", + "gift_card_code": "Κωδικός δωροκάρτας", + "disabled": "Απενεργοποιήθηκε", + "expired": "Έληξε στις {{ expiry }}", + "active": "Λήγει στις {{ expiry }}", + "redeem_html": "Χρησιμοποιήστε αυτόν τον κωδικό κατά την ολοκλήρωση της αγοράς για να εξαργυρώσετε τη δωροκάρτα αξίας {{ value }}", + "shop_link": "Έναρξη αγορών", + "print": "Εκτύπωση δωροκάρτας", + "remaining_html": "{{ balance }} ακόμη", + "add_to_apple_wallet": "Προσθήκη στο Apple Wallet", + "qr_image_alt": "Κωδικός QR — σαρώστε για να εξαργυρώσετε τη δωροκάρτα" + } + }, + "store_availability": { + "general": { + "view_store_info": "Προβολή πληροφοριών καταστήματος", + "check_other_stores": "Έλεγχος διαθεσιμότητας σε άλλα καταστήματα", + "pick_up_available": "Υπάρχει δυνατότητα παραλαβής", + "pick_up_currently_unavailable": "Δεν υπάρχει δυνατότητα παραλαβής", + "pick_up_available_at_html": "Υπάρχει δυνατότητα παραλαβής από {{ location_name }}", + "pick_up_unavailable_at_html": "Δεν υπάρχει δυνατότητα παραλαβής από {{ location_name }}" + } + } +} diff --git a/shopify/locales/en.default.json b/shopify/locales/en.default.json index 2316277a..3fa90fd6 100644 --- a/shopify/locales/en.default.json +++ b/shopify/locales/en.default.json @@ -1,13 +1,462 @@ { - "action": { - "log_in": "Log in", - "log_out": "Log out", - "register": "Register", - "account": "Account", - "cart": "Cart" - }, - "404": { - "title": "404 Page Not Found", - "text": "The page you requested does not exist." + "general": { + "accessibility": { + "skip_to_content": "Skip to content", + "close_modal": "Close", + "link_messages": { + "new_window": "Opens in a new window.", + "external": "Opens external website.", + "new_window_and_external": "Opens external website in a new window." + }, + "refresh_page": "Choosing a selection results in a full page refresh.", + "selection_help": "Press the space key then arrow keys to make a selection.", + "unit_price_separator": "per", + "error": "Error" + }, + "meta": { + "tags": "Tagged \"{{ tags }}\"", + "page": "Page {{ page }}" + }, + "404": { + "title": "404 Page Not Found", + "subtext": "The page you requested does not exist.", + "link": "Continue shopping" + }, + "pagination": { + "previous": "Previous page", + "next": "Next page", + "current_page": "Page {{ current }} of {{ total }}" + }, + "password_page": { + "opening_soon": "Opening Soon", + "login_form_heading": "Enter store using password", + "login_form_password_label": "Password", + "login_form_password_placeholder": "Your password", + "login_form_submit": "Enter", + "signup_form_email_label": "Email", + "signup_form_success": "We will send you an email right before we open!", + "admin_link_html": "Are you the store owner? Log in here<\/a>", + "powered_by_shopify_html": "This shop will be powered by {{ shopify }}", + "password_link": "Enter using password" + }, + "social": { + "share_on_facebook": "Share", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin it", + "alt_text": { + "share_on_facebook": "Share on Facebook", + "share_on_twitter": "Tweet on Twitter", + "share_on_pinterest": "Pin on Pinterest" + } + }, + "search": { + "no_results": "Try checking your spelling or using different words.", + "empty_search_message": "Search field cannot be empty", + "results_with_count": { + "one": "{{ count }} result for “{{ terms }}”", + "other": "{{ count }} results for “{{ terms }}”" + }, + "title": "Search our site", + "placeholder": "Search", + "submit": "Submit", + "close": "Close search", + "heading": { + "one": "Search result", + "other": "Search results" + }, + "search_for": "Search for", + "products": "Products", + "loading": "Loading", + "clear_search_term": "Clear search term", + "number_of_results": "{{ result_number }} of {{ results_count }}", + "number_of_results_found": "{{ results_count }} results found", + "one_result_found": "1 result found" + }, + "newsletter_form": { + "newsletter_email": "Subscribe to our mailing list", + "email_placeholder": "Email address", + "confirmation": "Thanks for subscribing!", + "submit": "Subscribe", + "newsletter_opt_in": "Ich bin damit einverstanden, den treatfuls Newsletter zu erhalten." + }, + "filters": { + "show_more": "Show More", + "show_less": "Show Less" + }, + "payment": { + "method": "Payment methods" + }, + "country": { + "dropdown_label": "Country\/region" + }, + "language": { + "dropdown_label": "Language" + } + }, + "sections": { + "header": { + "announcement_bar_label": "Announcement" + }, + "slideshow": { + "next_slide": "Next slide", + "previous_slide": "Previous slide", + "pause_slideshow": "Pause slideshow", + "rotate_slideshow": "Play slideshow", + "load_slide": "Load slide {{ slide_number }}", + "navigation_instructions": "Use left\/right arrows to navigate the slideshow or swipe left\/right if using a mobile device" + }, + "featured_product": { + "title": "Featured product", + "gallery_thumbnail_alt": "Load image into Gallery viewer, {{ imageAlt }}", + "video_thumbnail_alt": "Load and play video in Gallery viewer, {{ imageAlt }}", + "model_thumbnail_alt": "Load 3D model into Gallery viewer, {{ imageAlt }}" + }, + "map": { + "address_error": "Error looking up that address", + "address_no_results": "No results for that address", + "address_query_limit_html": "You have exceeded the Google API usage limit. Consider upgrading to a Premium Plan<\/a>.", + "auth_error_html": "There was a problem authenticating your Google Maps account.", + "section_heading": "Location" + }, + "video": { + "play": "Play {{ video_title }} video", + "pause": "Pause {{ video_title }} video", + "resume": "Resume {{ video_title }} video", + "close": "Close {{ video_title }} video" + } + }, + "blogs": { + "article": { + "view_all": "View all", + "view_all_blogs": "View all blogs", + "all_topics": "All topics", + "by_author": "by {{ author }}", + "posted_in": "Posted in", + "read_more": "Read more", + "read_more_title": "Read more: {{ title }}", + "back_to_blog": "Back to {{ title }}", + "tags": "Tags", + "article_with_count": { + "one": "{{ count }} article", + "other": "{{ count }} articles" + } + }, + "comments": { + "title": "Leave a comment", + "name": "Name", + "email": "Email", + "message": "Message", + "post": "Post comment", + "moderated": "Please note, comments must be approved before they are published", + "success_moderated": "Your comment was posted successfully. We will publish it in a little while, as our blog is moderated.", + "success": "Your comment was posted successfully! Thank you!", + "unapproved": "The email address provided is not approved for posting comments.", + "comments_with_count": { + "one": "{{ count }} comment", + "other": "{{ count }} comments" + } + } + }, + "cart": { + "general": { + "title": "Your cart", + "note": "Add a note to your order", + "removed_item_html": "Removed ({{ quantity }}) {{ link }}<\/span> from your cart.", + "remove": "Remove", + "subtotal": "Subtotal", + "savings": "You're saving", + "taxes_and_shipping_at_checkout": "Taxes and shipping calculated at checkout", + "taxes_and_shipping_policy_at_checkout_html": "Taxes and shipping<\/a> calculated at checkout", + "taxes_included_but_shipping_at_checkout": "Tax included and shipping calculated at checkout", + "taxes_included_and_shipping_policy_html": "Tax included. Shipping<\/a> calculated at checkout.", + "update": "Update", + "checkout": "Check out", + "empty": "Your cart is currently empty.", + "cookies_required": "Enable cookies to use the shopping cart", + "continue_shopping": "Continue shopping", + "cart_error": "There was an error while updating your cart. Please try again.", + "cart_subtotal": "Subtotal", + "mini_cart_item": "Item", + "mini_cart_empty_title": "Your Cart is Empty", + "mini_cart_empty_subtitle": "You’re missing out is all we’re saying." + }, + "label": { + "discounted_total": "Discounted total", + "product": "Product", + "price": "Price", + "price_column": "See Price column for discount details.", + "product_details": "Product details", + "quantity": "Quantity", + "qty": "Qty", + "regular_total": "Regular total", + "remove": "Remove {{ product }}", + "total": "Total", + "update": "Update" + }, + "popup": { + "added_to_cart": "Just added to your cart", + "cart_count": { + "one": "{{ count }} item", + "other": "{{ count }} items" + }, + "product_details": "Product details", + "quantity": "Qty", + "quantity_label": "Quantity: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "View all", + "view_all_label": "View all products in the {{ collection_name }} collection", + "no_matches": "Sorry, there are no products in this collection", + "items_with_count": { + "one": "{{ count }} product", + "other": "{{ count }} products" + }, + "collection_label": "Collection" + }, + "catalog": { + "title": "Catalog" + }, + "sorting": { + "title": "Sort by" + }, + "filters": { + "title_tags": "Filter by", + "all_tags": "All products" + }, + "product_card": { + "add_to_cart": "Add to cart", + "preorder": "Preorder now", + "sold_out": "coming soon", + "vegan_badge": "Vegan", + "bio_badge": "Bio" + } + }, + "contact": { + "form": { + "name": "Name", + "first_name": "First Name", + "last_name": "Last Name", + "order_number": "Order Number", + "email": "Email", + "phone": "Phone Number", + "message": "Message", + "submit": "Send", + "b2b_submit": "Submit request", + "post_success_html": "Thank you for your request, we will check your details and get back to you within the next few days.", + "back_to_home": "Back to home", + "error_heading": "Please adjust the following:" + } + }, + "customer": { + "account": { + "title": "My Account", + "details": "Account Details", + "view_addresses": "View Addresses", + "return": "Return to Account Details" + }, + "activate_account": { + "title": "Activate Account", + "subtext": "Create your password to activate your account.", + "password": "Password", + "password_confirm": "Confirm Password", + "submit": "Activate Account", + "cancel": "Decline Invitation" + }, + "addresses": { + "title": "Your Addresses", + "default": "Default", + "add_new": "Add a New Address", + "edit_address": "Edit address", + "first_name": "First Name", + "last_name": "Last Name", + "company": "Company", + "address1": "Address", + "address2": "Apartment, suite, etc.", + "city": "City", + "country": "Country\/Region", + "province": "Province", + "zip": "Postal\/Zip Code", + "phone": "Phone", + "set_default": "Set as default address", + "add": "Add Address", + "update": "Update Address", + "cancel": "Cancel", + "edit": "Edit", + "delete": "Delete", + "delete_confirm": "Are you sure you wish to delete this address?" + }, + "login": { + "title": "Login", + "email": "Email", + "password": "Password", + "forgot_password": "Forgot your password?", + "sign_in": "Sign In", + "guest_title": "Continue as a guest", + "guest_continue": "Continue" + }, + "orders": { + "title": "Order History", + "order_number": "Order", + "order_number_link": "Order number {{ number }}", + "date": "Date", + "payment_status": "Payment Status", + "fulfillment_status": "Fulfillment Status", + "total": "Total", + "none": "You haven't placed any orders yet." + }, + "order": { + "title": "Order {{ name }}", + "date_html": "Placed on {{ date }}", + "cancelled_html": "Order Cancelled on {{ date }}", + "cancelled_reason": "Reason: {{ reason }}", + "billing_address": "Billing Address", + "payment_status": "Payment Status", + "shipping_address": "Shipping Address", + "fulfillment_status": "Fulfillment Status", + "discount": "Discount", + "shipping": "Shipping", + "tax": "Tax", + "product": "Product", + "sku": "SKU", + "price": "Price", + "quantity": "Quantity", + "total": "Total", + "fulfilled_at_html": "Fulfilled {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Track shipment" + }, + "recover_password": { + "title": "Reset your password", + "email": "Email", + "submit": "Submit", + "cancel": "Cancel", + "subtext": "We will send you an email to reset your password.", + "success": "We've sent you an email with a link to update your password." + }, + "reset_password": { + "title": "Reset account password", + "subtext": "Enter a new password for {{ email }}", + "password": "Password", + "password_confirm": "Confirm Password", + "submit": "Reset Password" + }, + "register": { + "title": "Create Account", + "first_name": "First Name", + "last_name": "Last Name", + "email": "Email", + "password": "Password", + "submit": "Create" + } + }, + "homepage": { + "general": { + "title": "Homepage" + }, + "onboarding": { + "product_title": "Your product's name", + "product_description": "This area is used to describe your product’s details. Tell customers about the look, feel, and style of your product. Add details on color, materials used, sizing, and where it was made.", + "collection_title": "Your collection's name", + "blog_title": "Your post's title", + "blog_excerpt": "Your store hasn’t published any blog posts yet. A blog can be used to talk about new product launches, tips, or other news you want to share with your customers. You can check out Shopify’s ecommerce blog for inspiration and advice for your own store and blog.", + "blog_author": "Author name", + "no_content": "This section doesn’t currently include any content. Add content to this section using the sidebar." + } + }, + "layout": { + "navigation": { + "search": "Search", + "expand": "expand", + "collapse": "collapse", + "menu": "Menu" + }, + "cart": { + "title": "Cart", + "items_count": { + "one": "item", + "other": "items" + } + }, + "customer": { + "account": "Account", + "log_out": "Log out", + "log_in": "Log in", + "create_account": "Create account" + }, + "footer": { + "copyright": "©", + "all_rights_served": "All rights served.", + "social_platform": "{{ name }} on {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Regular price", + "sold_out": "Sold out", + "unavailable": "Unavailable", + "availability": "Availability", + "on_sale": "Sale", + "from_lowest_price_html": "from {{ lowest_price }}", + "sale_price": "Sale price", + "quantity": "Quantity", + "add_to_cart": "Add to cart", + "loader_label": "Adding product to your cart", + "back_to_collection": "Back to", + "vendor": "Vendor", + "quantity_minimum_message": "Quantity must be 1 or more", + "include_taxes": "Tax included.", + "shipping_policy_html": "Shipping<\/a> calculated at checkout.", + "unit_price_label": "Unit price", + "view_cart": "View cart", + "view_in_space": "View in your space", + "view_in_space_label": "View in your space, loads item in augmented reality window", + "ingredients": "Inhaltsstoffe", + "nutrition_table": "Nährwerttabelle", + "nutrition_grams": "100gr", + "nutrition_portion_html": "20g
    (Die Packung enthält 2 Portionen.
    1 Portion = 20 g)<\/span>", + "energy": "Energie\/Energy value", + "fat": "Fett\/Fat", + "sat_fat": "- davon gesättigte Fettsäuren \/ Saturates", + "carbs": "Kohlenhydrate\/Carbohydrate", + "sugar": "- davon Zucker \/ Sugar", + "fibre": "Ballaststoffe \/ Fibre", + "protein": "Eiweiß \/ Protein", + "salt": "Salz \/ Salt" + }, + "pre_order": { + "note": "Note", + "shipping": "Shipping", + "pre_order": "Preorder", + "pre_order_atc": "Preorder now", + "shipping_info": "Shipping date of preorder: {{ date }}" + } + }, + "store_availability": { + "general": { + "view_store_info": "View store information", + "check_other_stores": "Check availability at other stores", + "pick_up_available": "Pickup available", + "pick_up_currently_unavailable": "Pickup currently unavailable", + "pick_up_available_at_html": "Pickup available at {{ location_name }}<\/strong>", + "pick_up_unavailable_at_html": "Pickup currently unavailable at {{ location_name }}<\/strong>" + } + }, + "gift_cards": { + "issued": { + "title_html": "Here's your {{ value }} gift card for {{ shop }}!", + "subtext": "Your gift card", + "gift_card_code": "Gift card code", + "disabled": "Disabled", + "expired": "Expired on {{ expiry }}", + "active": "Expires on {{ expiry }}", + "redeem_html": "Use this code at checkout to redeem your {{ value }} gift card", + "shop_link": "Start shopping", + "print": "Print this gift card", + "remaining_html": "{{ balance }} left", + "add_to_apple_wallet": "Add to Apple Wallet", + "qr_image_alt": "QR code — scan to redeem gift card" + } } } \ No newline at end of file diff --git a/shopify/locales/en.default.schema.json b/shopify/locales/en.default.schema.json deleted file mode 100644 index 6ca7c3ec..00000000 --- a/shopify/locales/en.default.schema.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "settings_schema": { - "custom_settings": { - "name": "Custom settings", - "settings": { - "header": "About JSON settings", - "paragraph": "The settings_schema.json file controls the content of the Theme settings area of the theme editor. Settings in this file translate to global theme settings, which can be accessed through the Liquid settings object. [Learn more](https://shopify.dev/themes/architecture/settings)" - } - }, - "favicon": { - "name": "Favicon", - "settings": { - "label": "Image", - "info": "32 x 32px .png recommended" - } - } - }, - "sections": { - "header": { - "name": "Header", - "settings": { - "paragraph": "Add custom settings for this section. [Learn more](https://shopify.dev/themes/architecture/settings)" - } - }, - "footer": { - "name": "Footer", - "settings": { - "paragraph": "Add custom settings for this section. [Learn more](https://shopify.dev/themes/architecture/settings)" - } - } - } -} \ No newline at end of file diff --git a/shopify/locales/es.json b/shopify/locales/es.json new file mode 100644 index 00000000..a3155ecf --- /dev/null +++ b/shopify/locales/es.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Ir directamente al contenido", + "close_modal": "Cerrar", + "link_messages": { + "new_window": "Abre en una nueva ventana.", + "external": "Abre sitio externo.", + "new_window_and_external": "Abre sitio externo externo en una nueva ventana." + }, + "refresh_page": "Al seleccionar una opción se actualiza toda la página.", + "selection_help": "Presiona la tecla de espacio y luego las teclas de flecha para seleccionar una opción.", + "unit_price_separator": "por", + "error": "Error" + }, + "meta": { + "tags": "Etiquetado \"{{ tags }}\"", + "page": "Página {{ page }}" + }, + "404": { + "title": "404 Página no encontrada", + "subtext": "La página que ha solicitado no existe.", + "link": "Continuar la compra" + }, + "pagination": { + "previous": "Pagina anterior", + "next": "Siguiente página", + "current_page": "Página {{ current }} de {{ total }}" + }, + "password_page": { + "opening_soon": "Apertura Próximamente", + "login_form_heading": "Entrar a la tienda usando contraseña", + "login_form_password_label": "Contraseña", + "login_form_password_placeholder": "Tu contraseña", + "login_form_submit": "Ingresar", + "signup_form_email_label": "Correo Electrónico", + "signup_form_success": "¡Te enviaremos un correo electrónico antes de inaugurar!", + "admin_link_html": "¿Eres el dueño de la tienda?
    Regístrate aquí", + "password_link": "Entrar usando contraseña" + }, + "social": { + "share_on_facebook": "Compartir", + "share_on_twitter": "Tuitear", + "share_on_pinterest": "Hacer pin", + "alt_text": { + "share_on_facebook": "Compartir en Facebook", + "share_on_twitter": "Tuitear en Twitter", + "share_on_pinterest": "Pinear en Pinterest" + } + }, + "search": { + "empty_search_message": "El campo de búsqueda no puede estar vacío", + "title": "Buscar nuestro sitio", + "placeholder": "Buscar", + "submit": "Buscar", + "close": "Cerrar", + "heading": { + "one": "Resultado de búsqueda", + "other": "Resultados de la búsqueda" + }, + "search_for": "Buscar", + "loading": "Cargando", + "clear_search_term": "Borrar término de búsqueda", + "number_of_results": "{{ result_number }} de {{ results_count }}", + "products": "Productos", + "number_of_results_found": "{{ results_count }} resultados encontrados", + "one_result_found": "1 resultado encontrado", + "no_results": "Intenta revisar la ortografía o usar palabras diferentes.", + "results_with_count": { + "one": "{{ count }} resultado para \"{{ terms }}\"", + "other": "{{ count }} resultados para \"{{ terms }}\"" + } + }, + "newsletter_form": { + "newsletter_email": "Suscríbete a nuestra lista de distribución", + "email_placeholder": "Dirección de correo electrónico", + "confirmation": "¡Gracias por suscribirte!", + "submit": "Suscribirse" + }, + "filters": { + "show_more": "Ver más", + "show_less": "Mostrar menos" + }, + "payment": { + "method": "Métodos de pago" + }, + "language": { + "dropdown_label": "Idioma" + }, + "country": { + "dropdown_label": "País/región" + } + }, + "sections": { + "slideshow": { + "next_slide": "Siguiente diapositiva", + "previous_slide": "Anterior diapositiva", + "pause_slideshow": "Pausar la presentación", + "rotate_slideshow": "Reproducir la presentación", + "load_slide": "Cargar diapositiva {{ slide_number }}", + "navigation_instructions": "Utiliza las flechas izquierda/derecha para navegar por la presentación o deslízate hacia la izquierda/derecha si usas un dispositivo móvil" + }, + "featured_product": { + "title": "Producto destacado", + "gallery_thumbnail_alt": "Cargar imagen en el visor de la galería, {{ imageAlt }}", + "video_thumbnail_alt": "Cargar y reproducir el video en el visor de la galería, {{ imageAlt }}", + "model_thumbnail_alt": "Cargar modelo 3D en el visor de la galería, {{ imageAlt }}" + }, + "map": { + "address_error": "No se puede encontrar esa dirección", + "address_no_results": "No results for that address", + "address_query_limit_html": "Se ha excedido el límite de uso de la API de Google . Considere la posibilidad de actualizar a un Plan Premium.", + "auth_error_html": "Hubo un problema de autenticación con su cuenta de Google Maps.", + "section_heading": "Ubicación" + }, + "video": { + "play": "Reproducir el video {{ video_title }}", + "pause": "Pausar el video {{ video_title }}", + "resume": "Reanudar el video {{ video_title }}", + "close": "Cerrar el vídeo {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Anuncio" + } + }, + "blogs": { + "article": { + "view_all": "Ver todo", + "view_all_blogs": "Ver todo los artículos", + "all_topics": "Todos los temas", + "by_author": "por {{ author }}", + "posted_in": "Publicado en", + "read_more": "Leer más", + "read_more_title": "Leer más: {{ title }}", + "back_to_blog": "Volver a {{ title }}", + "tags": "Etiquetas", + "article_with_count": { + "one": "{{ count }} artículo", + "other": "{{ count }} artículos" + } + }, + "comments": { + "title": "Dejar un comentario", + "name": "Nombre", + "email": "Correo electrónico", + "message": "Mensaje", + "post": "Publicar comentario", + "moderated": "Por favor tenga en cuenta que los comentarios deben ser aprobados antes de ser publicados", + "success_moderated": "Su comentario se ha compartido con éxito. Lo publicaremos en un momento, en tanto nuestro blog sea moderado.", + "success": "¡Su comentario se ha compartido con éxito! ¡Gracias!", + "unapproved": "La dirección de correo electrónico proporcionada no está aprobada para publicar comentarios.", + "comments_with_count": { + "one": "{{ count }} comentario", + "other": "{{ count }} comentarios" + } + } + }, + "cart": { + "general": { + "title": "Carrito", + "note": "Agregue una nota a su pedido", + "removed_item_html": "Eliminó ({{ quantity }}) {{ link }} de tu carrito.", + "remove": "Quitar", + "subtotal": "Subtotal", + "savings": "Está ahorrando", + "taxes_and_shipping_at_checkout": "Los impuestos y gastos de envío se calculan en la pantalla de pagos", + "taxes_and_shipping_policy_at_checkout_html": "Los impuestos y gastos de envío se calculan en la pantalla de pagos", + "taxes_included_but_shipping_at_checkout": "En la pantalla de pagos se incluye el impuesto y se calculan los gastos de envío", + "taxes_included_and_shipping_policy_html": "Impuesto incluido. Los gastos de envío se calculan en la pantalla de pagos.", + "update": "Actualizar carrito", + "checkout": "Finalizar pedido", + "empty": "Su carrito actualmente está vacío.", + "cookies_required": "Habilite las cookies para usar el carrito", + "continue_shopping": "Seguir comprando", + "cart_error": "Se ha producido un error al actualizar tu carrito. Vuelve a intentarlo." + }, + "label": { + "discounted_total": "Descuento total", + "product": "Producto", + "price": "Precio", + "price_column": "Ver la columna de Precio para detalles del descuento.", + "product_details": "Detalles del producto", + "quantity": "Cantidad", + "qty": "Cantidad", + "regular_total": "Precio regular total", + "remove": "Eliminar {{ product }}", + "total": "Total", + "update": "Actualizar carrito" + }, + "popup": { + "added_to_cart": "Recién agregado a tu carrito", + "cart_count": { + "one": "{{ count }} artículo", + "other": "{{ count }} artículos" + }, + "product_details": "Detalles del producto", + "quantity": "Cantidad", + "quantity_label": "Cantidad: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Ver todo", + "view_all_label": "Ver todos los productos de la colección {{ collection_name }}", + "no_matches": "Lo sentimos, no hay productos que coincidan con su búsqueda.", + "items_with_count": { + "one": "{{ count }} artículo", + "other": "{{ count }} artículos" + }, + "collection_label": "Colección" + }, + "catalog": { + "title": "Catálogo" + }, + "sorting": { + "title": "Ordenar por" + }, + "filters": { + "title_tags": "Filtrar por", + "all_tags": "Todos los productos" + } + }, + "contact": { + "form": { + "name": "Nombre", + "email": "Correo electrónico", + "phone": "Número de teléfono", + "message": "Mensaje", + "submit": "Enviar", + "post_success": "Gracias por contactarnos. Le responderemos lo antes posible.", + "error_heading": "Por favor, ajuste lo siguiente:" + } + }, + "customer": { + "account": { + "title": "Mi cuenta", + "details": "Detalles de la cuenta", + "view_addresses": "Ver direcciones", + "return": "Volver a detalles de la cuenta" + }, + "activate_account": { + "title": "Activar cuenta", + "subtext": "Cree su contraseña para activar su cuenta.", + "password": "Contraseña", + "password_confirm": "Confirmar contraseña", + "submit": "Activar cuenta", + "cancel": "Rechazar invitación" + }, + "addresses": { + "title": "Sus direcciones", + "default": "Por defecto", + "add_new": "Agregar una nueva dirección", + "edit_address": "Editar dirección", + "first_name": "Nombre", + "last_name": "Apellido", + "company": "Empresa", + "address1": "Dirección", + "address2": "Apartamento, suite, etc.", + "city": "Ciudad", + "country": "País / Región", + "province": "Provincia", + "zip": "Código postal", + "phone": "Teléfono", + "set_default": "Fijar como dirección por defecto", + "add": "Agregar dirección", + "update": "Actualizar dirección", + "cancel": "Cancelar", + "edit": "Editar", + "delete": "Eliminar", + "delete_confirm": "¿Está seguro de que desea eliminar esta dirección?" + }, + "login": { + "title": "Ingresar", + "email": "Correo electrónico", + "password": "Contraseña", + "forgot_password": "¿Olvidó su contraseña?", + "sign_in": "Registrarse", + "guest_title": "Continuar como invitado", + "guest_continue": "Continuar" + }, + "orders": { + "title": "Historial de pedidos", + "order_number": "Pedido", + "order_number_link": "Número de pedido {{ number }}", + "date": "Fecha", + "payment_status": "Estado del pago", + "fulfillment_status": "Estado de la preparación", + "total": "Total", + "none": "No ha realizado algún pedido aún." + }, + "order": { + "title": "Pedido {{ name }}", + "date_html": "Realizado en {{ date }}", + "cancelled_html": "Pedido cancelado en {{ date }}", + "cancelled_reason": "Motivo: {{ reason }}", + "billing_address": "Dirección de facturación", + "payment_status": "Estado del pago", + "shipping_address": "Dirección de envío", + "fulfillment_status": "Estado de la preparación", + "discount": "Descuento", + "shipping": "Envíos", + "tax": "Impuesto", + "product": "Producto", + "sku": "SKU", + "price": "Precio", + "quantity": "Cantidad", + "total": "Total", + "fulfilled_at_html": "Finalizado {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Rastrear envío" + }, + "recover_password": { + "title": "Restablecer su contraseña", + "email": "Correo electrónico", + "submit": "Enviar", + "cancel": "Cancelar", + "subtext": "Le enviaremos un correo electrónico para restablecer su contraseña.", + "success": "Hemos enviado un correo electrónico con un enlace para actualizar su contraseña." + }, + "reset_password": { + "title": "Restablecer contraseña de cuenta", + "subtext": "Ingresa una nueva contraseña para {{ email }}", + "password": "Contraseña", + "password_confirm": "Confirmar contraseña", + "submit": "Restablecer contraseña" + }, + "register": { + "title": "Crear cuenta", + "first_name": "Nombre", + "last_name": "Apellido", + "email": "Correo electrónico", + "password": "Contraseña", + "submit": "Crear" + } + }, + "homepage": { + "general": { + "title": "Página de inicio" + }, + "onboarding": { + "product_title": "Nombre de tu producto", + "product_description": "Este campo se utiliza para describir los detalles de tu producto. Informa a los clientes acerca de la apariencia, percepción y estilo de tu producto. Incluye detalles sobre el color, los materiales utilizados, el tamaño y donde se hizo.", + "collection_title": "Nombre de tu colección", + "blog_title": "Título de tu publicación", + "blog_excerpt": "Tu tienda no ha publicado ninguna entrada en el blog. Un blog puede ser utilizado para hablar sobre los nuevos lanzamientos del producto, consejos u otras noticias que deseas compartir con tus clientes. Puedes verificar el blog de ecommerce Shopify para la inspiración y consejos para tu propia tienda y blog.", + "blog_author": "Nombre del autor", + "no_content": "Esta sección no tiene ningún contenido en este momento. Agrega contenido a esta sección utilizando la barra lateral." + } + }, + "layout": { + "navigation": { + "search": "Buscar", + "expand": "expandir", + "collapse": "contraer", + "menu": "Menú" + }, + "cart": { + "title": "Carrito", + "items_count": { + "one": "artículo", + "other": "artículos" + } + }, + "customer": { + "account": "Cuenta", + "log_out": "Cerrar sesión", + "log_in": "Ingresar", + "create_account": "Crear cuenta" + }, + "footer": { + "social_platform": "{{ name }} en {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Precio habitual", + "sold_out": "Agotado", + "unavailable": "No disponible", + "on_sale": "Oferta", + "sale_price": "Precio de venta", + "quantity": "Cantidad", + "add_to_cart": "Agregar al carrito", + "loader_label": "Agregando el producto a tu carrito", + "back_to_collection": "Volver a", + "vendor": "Proveedor", + "quantity_minimum_message": "La cantidad debe ser 1 o más", + "include_taxes": "Impuesto incluido.", + "shipping_policy_html": "Los gastos de envío se calculan en la pantalla de pagos.", + "unit_price_label": "Precio unitario", + "view_cart": "Ver carrito", + "availability": "Disponibilidad", + "from_lowest_price_html": "de {{ lowest_price }}", + "view_in_space": "Ver en tu espacio", + "view_in_space_label": "Ver en tu espacio, carga el artículo en la ventana de realidad aumentada" + } + }, + "gift_cards": { + "issued": { + "title_html": "¡Aquí está su tarjeta de regalo de {{ value }} para {{ shop }}!", + "subtext": "¡Aquí está tu tarjeta de regalo!", + "gift_card_code": "código de tarjeta de regalo", + "disabled": "Inhabilitada", + "expired": "Expiró en {{ expiry }}", + "active": "Expira en {{ expiry }}", + "redeem_html": "Use este código al terminar la comprar para canjear su {{ value }} tarjeta de regalo", + "shop_link": "Empezar a comprar", + "print": "Imprima esta tarjeta regalo", + "remaining_html": "{{ balance }} restante", + "add_to_apple_wallet": "Añadir a Apple Wallet", + "qr_image_alt": "Código QR - escanear para canjear la tarjeta de regalo" + } + }, + "store_availability": { + "general": { + "view_store_info": "Ver información de la tienda", + "check_other_stores": "Verificar disponibilidad en otras tiendas", + "pick_up_available": "Retiro disponible", + "pick_up_currently_unavailable": "Retiro no disponible actualmente", + "pick_up_available_at_html": "Retiro disponible en {{ location_name }}", + "pick_up_unavailable_at_html": "Retiro no disponible actualmente en {{ location_name }}" + } + } +} diff --git a/shopify/locales/fi.json b/shopify/locales/fi.json new file mode 100644 index 00000000..c6131d3d --- /dev/null +++ b/shopify/locales/fi.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Ohita ja siirry sisältöön", + "close_modal": "Sulje", + "link_messages": { + "new_window": "Avaa uuden ikkunan.", + "external": "Avaa ulkoisen verkkosivuston.", + "new_window_and_external": "Avaa ulkoisen verkkosivuston uudessa ikkunassa." + }, + "refresh_page": "Vaihtoehdon valinta päivittää koko sivun.", + "selection_help": "Paina välilyöntinäppäintä ja tee sitten valinta nuolinäppäimillä.", + "unit_price_separator": "kohti", + "error": "Virhe" + }, + "meta": { + "tags": "Merkitty tunnisteella \"{{ tags }}\"", + "page": "Sivu {{ page }}" + }, + "404": { + "title": "404 Sivua ei löytynyt", + "subtext": "Pyytämääsi sivua ei ole olemassa.", + "link": "Jatka ostoksia" + }, + "pagination": { + "previous": "Edellinen sivu", + "next": "Seuraava sivu", + "current_page": "Sivu {{ current }}/{{ total }}" + }, + "password_page": { + "opening_soon": "Avataan pian", + "login_form_heading": "Siirry kauppaan salasanalla", + "login_form_password_label": "Salasana", + "login_form_password_placeholder": "Salasanasi", + "login_form_submit": "Siirry", + "signup_form_email_label": "Sähköposti", + "signup_form_success": "Lähetämme sinulle sähköpostiviestin juuri ennen avaamista!", + "admin_link_html": "Oletko kaupan omistaja? Kirjaudu sisään tästä", + "password_link": "Siirry sisään käyttämällä salasanaa" + }, + "social": { + "share_on_facebook": "Jaa", + "share_on_twitter": "Twiittaa", + "share_on_pinterest": "Pinnaa", + "alt_text": { + "share_on_facebook": "Jaa Facebookissa", + "share_on_twitter": "Twiittaa Twitterissä", + "share_on_pinterest": "Pinnaa Pinterestissä" + } + }, + "search": { + "empty_search_message": "Hakukenttä ei voi olla tyhjä", + "title": "Hae sivustoltamme", + "placeholder": "Hae", + "submit": "Lähetä", + "close": "Sulje haku", + "heading": { + "one": "Hakutulos", + "other": "Hakutulokset" + }, + "search_for": "Hae", + "loading": "Ladataan", + "clear_search_term": "Tyhjennä hakutermi", + "number_of_results": "{{ result_number }} / {{ results_count }}", + "products": "Tuotteet", + "number_of_results_found": "{{ results_count }} tulosta löytyi", + "one_result_found": "1 tulos löytyi", + "no_results": "Tarkista oikeinkirjoitus tai käytä muita sanoja.", + "results_with_count": { + "one": "{{ count }} tulosta “{{ terms }}” -termihaulla", + "other": "{{ count }} tulosta “{{ terms }}” -termihaulla" + } + }, + "newsletter_form": { + "newsletter_email": "Liity postituslistallemme", + "email_placeholder": "Sähköpostiosoite", + "confirmation": "Kiitos tilauksesta!", + "submit": "Tilaa" + }, + "filters": { + "show_more": "Näytä enemmän", + "show_less": "Näytä vähemmän" + }, + "payment": { + "method": "Maksutavat" + }, + "language": { + "dropdown_label": "Kieli" + }, + "country": { + "dropdown_label": "Maa/alue" + } + }, + "sections": { + "slideshow": { + "next_slide": "Seuraava dia", + "previous_slide": "Edellinen dia", + "pause_slideshow": "Keskeytä diaesitys", + "rotate_slideshow": "Toista diaesitys", + "load_slide": "Lataa dia {{ slide_number }}", + "navigation_instructions": "Siirry diaesitykseen vasemmalla/oikealla nuolella tai pyyhkäise vasemmalle/oikealle, jos käytät mobiililaitetta" + }, + "featured_product": { + "title": "Esittelyssä oleva tuote", + "gallery_thumbnail_alt": "Lataa kuva Galleria-katseluun, {{ imageAlt }}", + "video_thumbnail_alt": "Lataa video gallerian katseluohjelmaan {{ imageAlt }}", + "model_thumbnail_alt": "Lataa 3D-malli gallerian katseluohjelmaan, {{ imageAlt }}" + }, + "map": { + "address_error": "Virhe etsittäessä tätä osoitetta", + "address_no_results": "Tälle osoitteelle ei löytynyt tuloksia", + "address_query_limit_html": "Olet ylittänyt Google API: n käyttörajan. Harkitse päivitystä Premium-sopimukseen.", + "auth_error_html": "Google Maps -tilisi todentamisessa oli ongelma.", + "section_heading": "Sijainti" + }, + "video": { + "play": "Toista video {{ video_title }}", + "pause": "Keskeytä video {{ video_title }}", + "resume": "Jatka videota {{ video_title }}", + "close": "Sulje video {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Ilmoitus" + } + }, + "blogs": { + "article": { + "view_all": "Näytä kaikki", + "view_all_blogs": "Näytä kaikki blogit", + "all_topics": "Kaikki aiheet", + "by_author": "/ {{ author }}", + "posted_in": "Julkaistu", + "read_more": "Lue lisää", + "read_more_title": "Lue lisää: {{ title }}", + "back_to_blog": "Takaisin kohteeseen {{ title }}", + "tags": "Tunnisteet", + "article_with_count": { + "one": "{{ count }} artikkeli", + "other": "{{ count }} artikkelia" + } + }, + "comments": { + "title": "Jätä kommentti", + "name": "Nimi", + "email": "Sähköposti", + "message": "Viesti", + "post": "Lähetä kommentti", + "moderated": "Huomaa, että kommentit on hyväksyttävä ennen niiden julkaisemista", + "success_moderated": "Kommenttisi lähetettiin onnistuneesti. Julkaisemme sen jonkin ajan kuluttua, sillä blogimme on moderoitu.", + "success": "Kommenttisi lähetettiin onnistuneesti! Kiitos!", + "unapproved": "Annettua sähköpostiosoitetta ei ole hyväksytty kommenttien julkaisuun.", + "comments_with_count": { + "one": "{{ count }} kommentti", + "other": "{{ count }} kommenttia" + } + } + }, + "cart": { + "general": { + "title": "Ostoskorisi", + "note": "Lisää kommentti tilaukseesi", + "removed_item_html": "({{ quantity }}) {{ link }} on poistettu ostoskorista.", + "remove": "Poista", + "subtotal": "Välisumma", + "savings": "Säästät", + "taxes_and_shipping_at_checkout": "Verot ja toimituskulut lasketaan kassalla", + "taxes_and_shipping_policy_at_checkout_html": "Verot ja toimituskulutlasketaan kassalla", + "taxes_included_but_shipping_at_checkout": "Sisältää veron, toimituskulut lasketaan kassalla", + "taxes_included_and_shipping_policy_html": "Sisältää veron. Toimituskulut lasketaan kassalla.", + "update": "Päivitä", + "checkout": "Maksu kassalle", + "empty": "Ostoskorisi on tyhjä.", + "cookies_required": "Ota evästeet käyttöön ostoskorin käyttämiseksi", + "continue_shopping": "Jatka ostoksia", + "cart_error": "Ostoskorisi päivityksessä tapahtui virhe. Yritä uudelleen." + }, + "label": { + "discounted_total": "Alennettu kokonaissumma", + "product": "Tuote", + "price": "Hinta", + "price_column": "Alennustiedot näet hintasarakkeesta.", + "product_details": "Tuotteen tiedot", + "quantity": "Määrä", + "qty": "Määrä", + "regular_total": "Normaali kokonaissumma", + "remove": "Poista {{ product }}", + "total": "Yhteensä", + "update": "Päivitä" + }, + "popup": { + "added_to_cart": "Juuri lisätty ostoskoriisi", + "cart_count": { + "one": "{{ count }} tuote", + "other": "{{ count }} tuotteet" + }, + "product_details": "Tuotteen tiedot", + "quantity": "Määrä", + "quantity_label": "Määrä: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Näytä kaikki", + "view_all_label": "Näytä kaikki tuotteet kokoelmassa {{ collection_name }}", + "no_matches": "Valitettavasti tässä kokoelmassa ei ole tuotteita", + "items_with_count": { + "one": "{{ count }} tuote", + "other": "{{ count }} tuotteet" + }, + "collection_label": "Kokoelma" + }, + "catalog": { + "title": "Luettelo" + }, + "sorting": { + "title": "Lajittele:" + }, + "filters": { + "title_tags": "Suodata ehdolla", + "all_tags": "Kaikki tuotteet" + } + }, + "contact": { + "form": { + "name": "Nimi", + "email": "Sähköposti", + "phone": "Puhelinnumero", + "message": "Viesti", + "submit": "Lähetä", + "post_success": "Kiitos, että otit yhteyttä. Palaamme asiaan mahdollisimman pian.", + "error_heading": "Mukauta seuraavat:" + } + }, + "customer": { + "account": { + "title": "Oma tili", + "details": "Tilin tiedot", + "view_addresses": "Näytä osoitteet", + "return": "Palaa tilin tietoihin" + }, + "activate_account": { + "title": "Aktivoi tili", + "subtext": "Aktivoi tili luomalla salasana.", + "password": "Salasana", + "password_confirm": "Vahvista salasana", + "submit": "Aktivoi tili", + "cancel": "Hylkää kutsu" + }, + "addresses": { + "title": "Osoitteesi", + "default": "Oletus", + "add_new": "Lisää uusi osoite", + "edit_address": "Muokkaa osoitetta", + "first_name": "Etunimi", + "last_name": "Sukunimi", + "company": "Yritys", + "address1": "Osoite", + "address2": "Huoneisto jne.", + "city": "Kaupunki", + "country": "Maa/alue", + "province": "Provinssi", + "zip": "Postinumero", + "phone": "Puhelin", + "set_default": "Aseta oletusosoitteeksi", + "add": "Lisää osoite", + "update": "Päivitä osoite", + "cancel": "Peruuta", + "edit": "Muokkaa", + "delete": "Poista", + "delete_confirm": "Haluatko varmasti poistaa tämän osoitteen?" + }, + "login": { + "title": "Kirjaudu sisään", + "email": "Sähköposti", + "password": "Salasana", + "forgot_password": "Unohditko salasanasi?", + "sign_in": "Kirjaudu sisään", + "guest_title": "Jatka vieraana", + "guest_continue": "Jatka" + }, + "orders": { + "title": "Tilaushistoria", + "order_number": "Tilaus", + "order_number_link": "Tilausnumero {{ number }}", + "date": "Päivämäärä", + "payment_status": "Maksun tila", + "fulfillment_status": "Jakelun tila", + "total": "Yhteensä", + "none": "Et ole vielä tehnyt tilauksia." + }, + "order": { + "title": "Tilaus {{ name }}", + "date_html": "Tehty {{ date }}", + "cancelled_html": "Tilaus peruutettu {{ date }}", + "cancelled_reason": "Syy: {{ reason }}", + "billing_address": "Laskutusosoite", + "payment_status": "Maksun tila", + "shipping_address": "Toimitusosoite", + "fulfillment_status": "Jakelun tila", + "discount": "Alennus", + "shipping": "Toimitus", + "tax": "Vero", + "product": "Tuote", + "sku": "SKU-koodi", + "price": "Hinta", + "quantity": "Määrä", + "total": "Yhteensä", + "fulfilled_at_html": "Jaeltu {{ date }}", + "subtotal": "Välisumma", + "track_shipment": "Seuraa lähetystä" + }, + "recover_password": { + "title": "Nollaa salasanasi", + "email": "Sähköposti", + "submit": "Lähetä", + "cancel": "Peruuta", + "subtext": "Lähetämme sinulle sähköpostiviestin salasanan palauttamiseksi.", + "success": "Olemme lähettäneet sinulle sähköpostiviestin, jossa on salasanan päivityslinkki." + }, + "reset_password": { + "title": "Palauta tilin salasana", + "subtext": "Anna uusi salasana tilille {{ email }}", + "password": "Salasana", + "password_confirm": "Vahvista salasana", + "submit": "Palauta salasana" + }, + "register": { + "title": "Luo tili", + "first_name": "Etunimi", + "last_name": "Sukunimi", + "email": "Sähköposti", + "password": "Salasana", + "submit": "Luo" + } + }, + "homepage": { + "general": { + "title": "Kotisivu" + }, + "onboarding": { + "product_title": "Tuotteen nimi", + "product_description": "Tällä alueella voit kuvata tuotteen tiedot. Kerro asiakkaille tuotteen ulkonäöstä, tuntumasta ja tyylistä. Lisää tiedot väristä, materiaaleista, mitoista ja valmistuspaikasta.", + "collection_title": "Kokoelmasi nimi", + "blog_title": "Merkintäsi otsikko", + "blog_excerpt": "Kauppasi ei ole vielä julkaissut blogimerkintöjä. Blogissa voidaan kertoa uusista tuotteista, vinkeistä ja muista uutisista, joita haluat jakaa asiakkaiden kanssa. Shopifyn verkkokauppablogista voit saada inspiraatiota ja neuvoja omaa kauppaasi ja blogiasi varten.", + "blog_author": "Kirjoittajan nimi", + "no_content": "Tässä osassa ei ole tällä hetkellä sisältöä. Lisää sisältöä tähän osaan sivupalkin avulla." + } + }, + "layout": { + "navigation": { + "search": "Hae", + "expand": "suurenna", + "collapse": "pienennä", + "menu": "Valikko" + }, + "cart": { + "title": "Ostoskori", + "items_count": { + "one": "tuote", + "other": "tuotteet" + } + }, + "customer": { + "account": "Tili", + "log_out": "Kirjaudu ulos", + "log_in": "Kirjaudu sisään", + "create_account": "Luo tili" + }, + "footer": { + "social_platform": "{{ name }} laitteella {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Normaalihinta", + "sold_out": "Loppuunmyyty", + "unavailable": "Ei käytettävissä", + "on_sale": "Alennusmyynti", + "sale_price": "Myyntihinta", + "quantity": "Määrä", + "add_to_cart": "Lisää ostoskoriin", + "loader_label": "Tuotteen lisääminen ostoskoriin", + "back_to_collection": "Takaisin", + "vendor": "Myyjä", + "quantity_minimum_message": "Määrän on oltava vähintään 1", + "include_taxes": "Sisältää veron.", + "shipping_policy_html": "Toimituskulut lasketaan kassalla.", + "unit_price_label": "Yksikköhinta", + "view_cart": "Katso ostoskori", + "availability": "Saatavuus", + "from_lowest_price_html": "alkaen {{ lowest_price }}", + "view_in_space": "Näytä omassa tilassasi", + "view_in_space_label": "Näkymä omassa tilassasi, lataa kohteen lisätyn todellisuuden ikkunaan" + } + }, + "gift_cards": { + "issued": { + "title_html": "Tässä on lahjakorttisi ({{ value }}) kauppaan {{ shop }}!", + "subtext": "Lahjakorttisi", + "gift_card_code": "Lahjakortin koodi", + "disabled": "Poistettu käytöstä", + "expired": "Vanhentunut {{ expiry }}", + "active": "Vanhenee {{ expiry }}", + "redeem_html": "Lunasta lahjakortti {{ value }} antamalla tämä koodi kassalla", + "shop_link": "Aloita ostaminen", + "print": "Tulosta tämä lahjakortti", + "remaining_html": "{{ balance }} vasen", + "add_to_apple_wallet": "Lisää Apple Walletiin", + "qr_image_alt": "QR-koodi – lunasta lahjakortti skannaamalla" + } + }, + "store_availability": { + "general": { + "view_store_info": "Näytä kaupan tiedot", + "check_other_stores": "Tarkista saatavuus muista kaupoista", + "pick_up_available": "Nouto saatavilla", + "pick_up_currently_unavailable": "Nouto ei ole tällä hetkellä saatavilla", + "pick_up_available_at_html": "Nouto saatavilla paikassa {{ location_name }}", + "pick_up_unavailable_at_html": "Nouto ei ole tällä hekellä saatavilla paikassa {{ location_name }}" + } + } +} diff --git a/shopify/locales/fr.json b/shopify/locales/fr.json new file mode 100644 index 00000000..f855a316 --- /dev/null +++ b/shopify/locales/fr.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Passer au contenu", + "close_modal": "Fermer", + "link_messages": { + "new_window": "S'ouvre dans une nouvelle fenêtre.", + "external": "Ouvre un site externe.", + "new_window_and_external": "Ouvre un site externe dans une nouvelle fenêtre." + }, + "refresh_page": "Le choix d'une sélection entraîne l'actualisation d'une page entière.", + "selection_help": "Appuyez sur la touche espace puis sur les touches fléchées pour faire une sélection.", + "unit_price_separator": "par", + "error": "Erreur" + }, + "meta": { + "tags": "Balises \"{{ tags }}\"", + "page": "Page {{ page }}" + }, + "404": { + "title": "404 - Page non trouvée", + "subtext": "Cette page n'est pas disponible.", + "link": "Poursuivre vos achats" + }, + "pagination": { + "previous": "Page précédente", + "next": "Page suivante", + "current_page": "Page {{ current }} sur {{ total }}" + }, + "password_page": { + "opening_soon": "Ouverture prochaine", + "login_form_heading": "Accéder à la boutique avec un mot de passe", + "login_form_password_label": "Mot de passe", + "login_form_password_placeholder": "Votre mot de passe", + "login_form_submit": "Entrer", + "signup_form_email_label": "E-mail", + "signup_form_success": "Nous vous enverrons un e-mail juste avant l'ouverture !", + "admin_link_html": "Vous êtes le propriétaire de la boutique ? Connectez-vous ici.", + "password_link": "Entrer avec un mot de passe" + }, + "social": { + "share_on_facebook": "Partager", + "share_on_twitter": "Tweeter", + "share_on_pinterest": "Épingler", + "alt_text": { + "share_on_facebook": "Partager sur Facebook", + "share_on_twitter": "Tweeter sur Twitter", + "share_on_pinterest": "Épingler sur Pinterest" + } + }, + "search": { + "empty_search_message": "Le champ de recherche ne peut pas être vide", + "title": "Effectuer une recherche", + "placeholder": "Rechercher", + "submit": "Soumettre", + "close": "Fermer", + "heading": { + "one": "Résultat de la recherche", + "other": "Résultats de la recherche" + }, + "search_for": "Rechercher", + "loading": "Chargement", + "clear_search_term": "Effacer le terme de recherche", + "number_of_results": "{{ result_number }} sur {{ results_count }}", + "products": "Produits", + "number_of_results_found": "{{ results_count }} résultats trouvés", + "one_result_found": "1 résultat trouvé", + "no_results": "Essayez de vérifier votre orthographe ou d'utiliser des mots différents.", + "results_with_count": { + "one": "{{ count }} résultat pour « {{ terms }} »", + "other": "{{ count }} résultats pour « {{ terms }} »" + } + }, + "newsletter_form": { + "newsletter_email": "Inscrivez-vous à notre newsletter", + "email_placeholder": "Adresse e-mail", + "confirmation": "Merci de vous être abonné(e) !", + "submit": "S'inscrire" + }, + "filters": { + "show_more": "Afficher plus", + "show_less": "Afficher moins" + }, + "payment": { + "method": "Moyens de paiement" + }, + "language": { + "dropdown_label": "Langue" + }, + "country": { + "dropdown_label": "Pays/région" + } + }, + "sections": { + "slideshow": { + "next_slide": "Diapositive suivante", + "previous_slide": "Diapositive précédente", + "pause_slideshow": "Mettre le diaporama en pause", + "rotate_slideshow": "Lire le diaporama", + "load_slide": "Charger la diapositive {{ slide_number }}", + "navigation_instructions": "Utilisez les flèches gauche/droite pour naviguer dans le diaporama ou glissez vers la gauche/droite sur un appareil mobile" + }, + "featured_product": { + "title": "Produit en vedette", + "gallery_thumbnail_alt": "Charger l'image dans la galerie, {{ imageAlt }}", + "video_thumbnail_alt": "Charger et lire la vidéo dans la visionneuse de la Galerie, {{ imageAlt }}", + "model_thumbnail_alt": "Charger le modèle 3D dans la Galerie, {{ imageAlt }}" + }, + "map": { + "address_error": "Une erreur s'est produite dans la recherche de cette adresse", + "address_no_results": "Aucun résultat pour cette adresse", + "address_query_limit_html": "Vous avez dépassé la limite d'utilisation de l'API de Google. Pensez à mettre à niveau vers un forfait premium.", + "auth_error_html": "Une erreur s'est produite lors de l'authentification de votre compte Google Maps.", + "section_heading": "Emplacement" + }, + "video": { + "play": "Lire la vidéo {{ video_title }}", + "pause": "Suspendre la vidéo {{ video_title }}", + "resume": "Reprendre la vidéo {{ video_title }}", + "close": "Fermer la vidéo {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Annonce" + } + }, + "blogs": { + "article": { + "view_all": "Tous", + "view_all_blogs": "Afficher tous les articles", + "all_topics": "Tous les sujets", + "by_author": "par {{ author }}", + "posted_in": "Publié dans", + "read_more": "En savoir plus", + "read_more_title": "En savoir plus sur : {{ title }}", + "back_to_blog": "Retour à {{ title }}", + "tags": "Balises", + "article_with_count": { + "one": "{{ count }} article", + "other": "{{ count }} articles" + } + }, + "comments": { + "title": "Laisser un commentaire", + "name": "Nom", + "email": "E-mail", + "message": "Message", + "post": "Publier le commentaire", + "moderated": "Veuillez noter que les commentaires doivent être approuvés avant d'être publiés", + "success_moderated": "Votre commentaire a bien été soumis. Notre blog étant modéré, il sera publié sous peu.", + "success": "Votre commentaire bien été publié !", + "unapproved": "L'adresse e-mail fournie n'est pas approuvée pour la publication de commentaires.", + "comments_with_count": { + "one": "{{ count }} commentaire", + "other": "{{ count }} commentaires" + } + } + }, + "cart": { + "general": { + "title": "Votre panier", + "note": "Ajouter une note à votre commande", + "removed_item_html": "({{ quantity }}) {{ link }} supprimé(s) de votre panier.", + "remove": "Supprimer", + "subtotal": "Sous-total", + "savings": "Vous économisez", + "taxes_and_shipping_at_checkout": "Taxes et frais de port calculés à l'étape de paiement", + "taxes_and_shipping_policy_at_checkout_html": "Taxes et frais de port calculés à l'étape de paiement", + "taxes_included_but_shipping_at_checkout": "Taxes incluses et frais de port calculés à l'étape de paiement", + "taxes_included_and_shipping_policy_html": "Taxes incluses. Frais de port calculés à l'étape de paiement.", + "update": "Mettre à jour", + "checkout": "Passer à la caisse", + "empty": "Votre panier est vide.", + "cookies_required": "Activer les cookies pour pouvoir utiliser le panier", + "continue_shopping": "Poursuivre vos achats", + "cart_error": "Une erreur est survenue lors de l’actualisation de votre panier. Essayez de nouveau s’il vous plaît." + }, + "label": { + "discounted_total": "Total après réduction", + "product": "Produit", + "price": "Prix", + "price_column": "Voir les détails de la réduction dans la colonne Prix.", + "product_details": "Détails des produits", + "quantity": "Quantité", + "qty": "Qté", + "regular_total": "Total avant réduction", + "remove": "Supprimer {{ product }}", + "total": "Total", + "update": "Mettre à jour" + }, + "popup": { + "added_to_cart": "Ajouté au panier à l'instant", + "cart_count": { + "one": "{{ count }} article", + "other": "{{ count }} articles" + }, + "product_details": "Détails des produits", + "quantity": "Qté", + "quantity_label": "Quantité : {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Tous", + "view_all_label": "Afficher tous les produits de la collection {{ collection_name }}", + "no_matches": "Cette collection ne comporte aucun produit", + "items_with_count": { + "one": "{{ count }} produit", + "other": "{{ count }} produits" + }, + "collection_label": "Collection" + }, + "catalog": { + "title": "Catalogue" + }, + "sorting": { + "title": "Trier par" + }, + "filters": { + "title_tags": "Filtrer par", + "all_tags": "Tous les produits" + } + }, + "contact": { + "form": { + "name": "Nom", + "email": "E-mail", + "phone": "Numéro de téléphone", + "message": "Message", + "submit": "Envoyer", + "post_success": "Merci pour votre message. Nous vous répondrons dès que possible.", + "error_heading": "Merci de bien vouloir ajuster les éléments suivants :" + } + }, + "customer": { + "account": { + "title": "Mon compte", + "details": "Détails du compte", + "view_addresses": "Voir les adresses", + "return": "Retour aux détails du compte" + }, + "activate_account": { + "title": "Activer le compte", + "subtext": "Créez votre mot de passe pour activer votre compte.", + "password": "Mot de passe", + "password_confirm": "Confirmer le mot de passe", + "submit": "Activer le compte", + "cancel": "Refuser l'invitation" + }, + "addresses": { + "title": "Votre adresse", + "default": "Par défaut", + "add_new": "Ajouter une nouvelle adresse", + "edit_address": "Modifier l'adresse", + "first_name": "Prénom", + "last_name": "Nom de famille", + "company": "Entreprise", + "address1": "Adresse", + "address2": "Appt, suite, etc.", + "city": "Ville", + "country": "Pays/région", + "province": "Province", + "zip": "Code postal", + "phone": "Téléphone", + "set_default": "Définir comme adresse par défaut", + "add": "Ajouter l'adresse", + "update": "Mettre à jour l'adresse", + "cancel": "Annuler", + "edit": "Modifier", + "delete": "Supprimer", + "delete_confirm": "Souhaitez-vous vraiment supprimer cette adresse ?" + }, + "login": { + "title": "Connexion", + "email": "E-mail", + "password": "Mot de passe", + "forgot_password": "Mot de passe oublié ?", + "sign_in": "Se connecter", + "guest_title": "Continuer en tant qu'invité(e)", + "guest_continue": "Continuer" + }, + "orders": { + "title": "Historique des commandes", + "order_number": "Commande", + "order_number_link": "Numéro de commande {{ number }}", + "date": "Date", + "payment_status": "Statut du paiement", + "fulfillment_status": "Statut du traitement", + "total": "Total", + "none": "Vous n'avez placé aucune commande." + }, + "order": { + "title": "Commande {{ name }}", + "date_html": "Placée le {{ date }}", + "cancelled_html": "Commande annulée le {{ date }}", + "cancelled_reason": "Motif : {{ reason }}", + "billing_address": "Adresse de facturation", + "payment_status": "Statut du paiement", + "shipping_address": "Adresse de livraison", + "fulfillment_status": "Statut du traitement", + "discount": "Réduction", + "shipping": "Expédition", + "tax": "Taxes", + "product": "Produit", + "sku": "SKU", + "price": "Prix", + "quantity": "Quantité", + "total": "Total", + "fulfilled_at_html": "Traitée le {{ date }}", + "subtotal": "Sous-total", + "track_shipment": "Suivre l'envoi" + }, + "recover_password": { + "title": "Réinitialiser votre mot de passe", + "email": "E-mail", + "submit": "Soumettre", + "cancel": "Annuler", + "subtext": "Nous vous enverrons un e-mail pour réinitialiser votre mot de passe.", + "success": "Nous vous avons envoyé un e-mail avec un lien pour réinitialiser votre mot de passe." + }, + "reset_password": { + "title": "Réinitialiser le mot de passe du compte", + "subtext": "Entrer un nouveau mot de passe pour {{ email }}", + "password": "Mot de passe", + "password_confirm": "Confirmer le mot de passe", + "submit": "Réinitialiser le mot de passe" + }, + "register": { + "title": "Créer un compte", + "first_name": "Prénom", + "last_name": "Nom de famille", + "email": "Adresse e-mail", + "password": "Mot de passe", + "submit": "Créer" + } + }, + "homepage": { + "general": { + "title": "Page d’accueil" + }, + "onboarding": { + "product_title": "Le nom de votre produit", + "product_description": "Ce champ est utilisé pour décrire les détails de votre produit. Décrivez l'apparence, la présentation et le style de votre produit à vos clients. Ajoutez des détails sur la couleur, les matériaux utilisés, la taille et la provenance.", + "collection_title": "Le nom de votre collection", + "blog_title": "Le titre de votre article", + "blog_excerpt": "Votre boutique n'a pas encore publié d'articles de blog. Vous pouvez utiliser votre blog pour annoncer le lancement d'un nouveau produit, partager des astuces ou des nouvelles avec vos clients. Consultez le blog e-commerce de Shopify pour puiser de l'inspiration et des conseils pour votre boutique et votre blog.", + "blog_author": "Nom de l'auteur(e)", + "no_content": "Il n'y a aucun contenu dans cette section pour l'instant. Ajoutez du contenu à cette section en utilisant la barra latérale." + } + }, + "layout": { + "navigation": { + "search": "Rechercher", + "expand": "agrandir", + "collapse": "réduire", + "menu": "Menu" + }, + "cart": { + "title": "Panier", + "items_count": { + "one": "article", + "other": "articles" + } + }, + "customer": { + "account": "Compte", + "log_out": "Se déconnecter", + "log_in": "Se connecter", + "create_account": "Créer un compte" + }, + "footer": { + "social_platform": "{{ name }} sur {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Prix normal", + "sold_out": "Épuisé", + "unavailable": "Non disponible", + "on_sale": "Solde", + "sale_price": "Prix réduit", + "quantity": "Quantité", + "add_to_cart": "Ajouter au panier", + "loader_label": "Ajout d'un produit à votre panier", + "back_to_collection": "Retour à", + "vendor": "Distributeur", + "quantity_minimum_message": "La quantité doit être supérieure ou égale à 1", + "include_taxes": "Taxes incluses.", + "shipping_policy_html": "Frais d'expédition calculés lors du paiement.", + "unit_price_label": "Prix unitaire", + "view_cart": "Voir le panier", + "availability": "Disponibilité", + "from_lowest_price_html": "de {{ lowest_price }}", + "view_in_space": "Afficher dans votre espace", + "view_in_space_label": "Affichage dans votre espace, charge l'article dans une fenêtre de réalité augmentée" + } + }, + "gift_cards": { + "issued": { + "title_html": "Voici votre carte-cadeau {{ shop }} d'une valeur de {{ value }} !", + "subtext": "Votre carte-cadeau", + "gift_card_code": "Code de la carte-cadeau", + "disabled": "Désactivée", + "expired": "A expiré le {{ expiry }}", + "active": "Expire le {{ expiry }}", + "redeem_html": "Veuillez saisir ce code lors du paiement pour utiliser votre carte-cadeau de {{ value }}", + "shop_link": "Commencer vos achats", + "print": "Imprimer cette carte-cadeau", + "remaining_html": "{{ balance }} restants", + "add_to_apple_wallet": "Ajouter à Apple Wallet", + "qr_image_alt": "code QR - scannez pour réclamer votre carte-cadeau" + } + }, + "store_availability": { + "general": { + "view_store_info": "Afficher les informations de la boutique", + "check_other_stores": "Vérifier la disponibilité dans d'autres boutiques", + "pick_up_available": "Ramassage disponible", + "pick_up_currently_unavailable": "Ramassage actuellement indisponible", + "pick_up_available_at_html": "Ramassage disponible à {{ location_name }}", + "pick_up_unavailable_at_html": "Ramassage actuellement indisponible à {{ location_name }}" + } + } +} diff --git a/shopify/locales/hi.json b/shopify/locales/hi.json new file mode 100644 index 00000000..cb1cad07 --- /dev/null +++ b/shopify/locales/hi.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "सामग्री को छोड़ें", + "close_modal": "बंद करे", + "link_messages": { + "new_window": "नए विंडो में खोलें.", + "external": "बाहरी वेबसाइट खोलें.", + "new_window_and_external": "बाहरी वेबसाइट को एक नई विंडो में खोलें." + }, + "refresh_page": "चुननेे पर पूरा पेज रीफ़्रेश हो जाएगा.", + "selection_help": "चुनने के लिए स्पेस कुंजी दबाएं, फिर तीर कुंजी दबाएं.", + "unit_price_separator": "प्रति", + "error": "त्रुटि" + }, + "meta": { + "tags": "\"{{ tags }}\" टैग किया गया", + "page": "{{ page }} पेज" + }, + "404": { + "title": "404 पेज नहीं मिला", + "subtext": "आपके द्वारा जिस पेज का अनुरोध किया गया हैं वह मौजूद नहीं है.", + "link": "शॉपिंग जारी रखें" + }, + "pagination": { + "previous": "पिछला पेज", + "next": "अगला पेज", + "current_page": "{{ total }} में से {{ current }} पेज" + }, + "password_page": { + "opening_soon": "जल्द ही खुल रहा है", + "login_form_heading": "पासवर्ड का उपयोग करके स्टोर में प्रवेश करें", + "login_form_password_label": "पासवर्ड", + "login_form_password_placeholder": "आपका पासवर्ड", + "login_form_submit": "दर्ज करें", + "signup_form_email_label": "ईमेल", + "signup_form_success": "खुलने से ठीक पहले हम आपको एक ईमेल भेजेंगे!", + "admin_link_html": "क्या आप स्टोर के मालिक हैं? यहां लॉगिन करें", + "password_link": "पासवर्ड का उपयोग करके प्रवेश करें" + }, + "social": { + "share_on_facebook": "साझा करें", + "share_on_twitter": "ट्वीट", + "share_on_pinterest": "इसे पिन करें", + "alt_text": { + "share_on_facebook": "Facebook पर साझा करें", + "share_on_twitter": "Twitter पर ट्वीट करें", + "share_on_pinterest": "Pinterest पर पिन करें" + } + }, + "search": { + "empty_search_message": "खोज फ़ील्ड खाली नहीं हो सकती है", + "title": "हमारी साइट खोजें", + "placeholder": "खोजें", + "submit": "सबमिट करें", + "close": "खोज बंद करें", + "heading": { + "one": "खोज परिणाम", + "other": "खोज परिणाम" + }, + "search_for": "खोजें", + "loading": "लोड हो रहा है", + "clear_search_term": "खोज शर्त को साफ़ करें", + "number_of_results": "{{ results_count }} का {{ result_number }}", + "products": "उत्पाद", + "number_of_results_found": "{{ results_count }} परिणाम मिले", + "one_result_found": "1 परिणाम मिला", + "no_results": "अपनी वर्तनी जांचकर देखें या किन्हीं दूसरे शब्दों का उपयोग करें.", + "results_with_count": { + "one": "{{ count }} “{{ terms }}” के लिए परिणाम", + "other": "{{ count }} “{{ terms }}” के लिए परिणाम" + } + }, + "newsletter_form": { + "newsletter_email": "हमारी मेलिंग लिस्ट की सदस्यता लें", + "email_placeholder": "ईमेल पता", + "confirmation": "सदस्यता लेने के लिए धन्यवाद!", + "submit": "सदस्यता लें" + }, + "filters": { + "show_more": "अधिक दिखाएं", + "show_less": "कम दिखाएं" + }, + "payment": { + "method": "भुगतान की विधियां" + }, + "language": { + "dropdown_label": "भाषा" + }, + "country": { + "dropdown_label": "देश/क्षेत्र" + } + }, + "sections": { + "slideshow": { + "next_slide": "अगली स्लाइड", + "previous_slide": "पिछली स्लाइड", + "pause_slideshow": "स्लाइडशो रोकें", + "rotate_slideshow": "स्लाइडशो चलाएं", + "load_slide": "{{ slide_number }} स्लाइड लोड करें", + "navigation_instructions": "यदि मोबाइल डिवाइस का उपयोग करते है तो स्लाइड शो या बाएं / दाएं स्वाइप करने के लिए बाएं / दाएं तीर का उपयोग करें" + }, + "featured_product": { + "title": "विशेष रुप से प्रदर्शित उत्पाद", + "gallery_thumbnail_alt": "गैलरी व्यूवर में इमेज लोड करें, {{ imageAlt }}", + "video_thumbnail_alt": "गैलरी व्यूवर में वीडियो लोड करें और चलाएं, {{ imageAlt }}", + "model_thumbnail_alt": "गैलरी दर्शक में 3D मॉडल लोड करें, {{ imageAlt }}" + }, + "map": { + "address_error": "उस पते को देखने में त्रुटि हुई", + "address_no_results": "उस पते का कोई परिणाम नहीं है", + "address_query_limit_html": "आपने Google API उपयोग की सीमा पार कर ली है. प्रीमियम योजना में अपग्रेड करने पर विचार करें.", + "auth_error_html": "आपके Google मैप खाते को प्रमाणति करने में समस्या हुई.", + "section_heading": "स्थान" + }, + "video": { + "play": "{{ video_title }} वीडियो चलाएं", + "pause": "{{ video_title }} वीडियो रोकें", + "resume": "{{ video_title }} वीडियो फिर से शुरू करें", + "close": "{{ video_title }} वीडियो बंद करें" + }, + "header": { + "announcement_bar_label": "घोषणा" + } + }, + "blogs": { + "article": { + "view_all": "सभी देखें", + "view_all_blogs": "सभी ब्लॉग देखें", + "all_topics": "सभी विषय", + "by_author": "{{ author }} के द्वारा", + "posted_in": "इसमें पोस्ट किया गया", + "read_more": "और अधिक पढ़ें", + "read_more_title": "अधिक पढ़ें: {{ title }}", + "back_to_blog": "{{ title }} पर वापस जाएं", + "tags": "टैग", + "article_with_count": { + "one": "{{ count }} लेख", + "other": "{{ count }} लेख" + } + }, + "comments": { + "title": "टिप्पणी छोड़ें", + "name": "नाम", + "email": "ईमेल", + "message": "संदेश", + "post": "टिप्पणी पोस्ट करें", + "moderated": "कृपया ध्यान दें, टिप्पणियों को प्रकाशित होने से पहले मंजूरी ली जानी चाहिए", + "success_moderated": "आपकी टिप्पणी सफलतापूर्वक पोस्ट की गई थी. हम इसे थोड़ी देर में प्रकाशित करेंगे, क्योंकि हमारा ब्लॉग मॉडरेट है.", + "success": "आपकी टिप्पणी सफलतापूर्वक पोस्ट की गई थी! धन्यवाद!", + "unapproved": "दिया गया ईमेल पता पोस्ट की गई टिप्पणियों के लिए स्वीकृत नहीं है.", + "comments_with_count": { + "one": "{{ count }} टिप्पणी", + "other": "{{ count }} टिप्पणियां" + } + } + }, + "cart": { + "general": { + "title": "आपका कार्ट", + "note": "अपने ऑर्डर में एक नोट जोड़ें", + "removed_item_html": "({{ quantity }}) {{ link }} अपनी कार्ट से निकाल दिया.", + "remove": "निकालें", + "subtotal": "कुल", + "savings": "आप सहेज रहे है", + "taxes_and_shipping_at_checkout": "चेकआउट के दौरान कर और शिपिंग गणना की गई", + "taxes_and_shipping_policy_at_checkout_html": "चेकआउट के दौरान कर और शिपिंग गणना की गई", + "taxes_included_but_shipping_at_checkout": "चेकआउट के दौरान कर शामिल किया और शिपिंग की गणना की गई", + "taxes_included_and_shipping_policy_html": "कर शामिल है. चेकआउट के दौरान शिपिंग की गणना की गई", + "update": "अपडेट", + "checkout": "चेक आउट करें", + "empty": "आपका कार्ट वर्तमान में रिक्त है.", + "cookies_required": "शॉपिंग कार्ट का उपयोग करने के लिए कुकीज़ सक्षम करें", + "continue_shopping": "शॉपिंग जारी रखें", + "cart_error": "आपका कार्ट अपडेट करते समय कोई त्रुटि हुई थी. कृपया फिर से कोशिश करें." + }, + "label": { + "discounted_total": "कुल छूट", + "product": "उत्पाद", + "price": "कीमत", + "price_column": "डिस्काउंट विवरण के लिए कीमत कॉलम देखें.", + "product_details": "उत्पाद विवरण", + "quantity": "मात्रा", + "qty": "मात्रा", + "regular_total": "सामान्य कुल", + "remove": "{{ product }} को निकालें", + "total": "कुल", + "update": "अपडेट" + }, + "popup": { + "added_to_cart": "अभी आपके कार्ट में जोड़ा गया", + "cart_count": { + "one": "{{ count }} आइटम", + "other": "{{ count }} आइटम" + }, + "product_details": "उत्पाद विवरण", + "quantity": "मात्रा", + "quantity_label": "मात्रा: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "सभी देखें", + "view_all_label": "{{ collection_name }} कलेक्शन में सभी उत्पाद देखें", + "no_matches": "क्षमा करें, इस कलेक्शन में कोई उत्पाद नहीं हैं", + "items_with_count": { + "one": "{{ count }} उत्पाद", + "other": "{{ count }} उत्पाद" + }, + "collection_label": "कलेक्शन" + }, + "catalog": { + "title": "कैटलॉग" + }, + "sorting": { + "title": "द्वारा क्रमबद्ध करें" + }, + "filters": { + "title_tags": "इस द्वारा फ़िल्टर करें", + "all_tags": "सभी उत्पाद" + } + }, + "contact": { + "form": { + "name": "नाम", + "email": "ईमेल", + "phone": "फ़ोन नंबर", + "message": "संदेश", + "submit": "भेजें", + "post_success": "हमे संपर्क करने के लिए धन्यवाद. हम जल्द से जल्द आपके पास वापस आएंगे.", + "error_heading": "कृपया निम्न को एडजस्ट करें:" + } + }, + "customer": { + "account": { + "title": "मेरा खाता", + "details": "खाता विवरण", + "view_addresses": "पतें देखें", + "return": "खाता विवरण पर लौटें" + }, + "activate_account": { + "title": "खाता सक्रिय करें", + "subtext": "अपना खाता सक्रिय करने के लिए अपना पासवर्ड बनाएं.", + "password": "पासवर्ड", + "password_confirm": "पासवर्ड की पुष्टि करें", + "submit": "खाता सक्रिय करें", + "cancel": "निमंत्रण अस्वीकार करें" + }, + "addresses": { + "title": "आपके पतें", + "default": "डिफॉल्ट", + "add_new": "नया पता जोड़ें", + "edit_address": "पता संपादित करें", + "first_name": "नाम", + "last_name": "उपनाम", + "company": "कंपनी", + "address1": "पता", + "address2": "अपार्टमेंट, सुइट, आदि.", + "city": "शहर", + "country": "देश / क्षेत्र", + "province": "प्रांत", + "zip": "डाक/पिन कोड", + "phone": "फ़ोन", + "set_default": "डिफ़ॉल्ट पता के रूप में सेट करें", + "add": "पता जोड़ें", + "update": "पता अपडेट करें", + "cancel": "रद्द करें", + "edit": "संपादित करें", + "delete": "हटाएं", + "delete_confirm": "क्या आप वाकई इस पते को हटाना चाहते हैं?" + }, + "login": { + "title": "लॉगिन", + "email": "ईमेल", + "password": "पासवर्ड", + "forgot_password": "क्या अपना पासवर्ड भूल गए?", + "sign_in": "साइन इन", + "guest_title": "अतिथि के रूप में जारी रखें", + "guest_continue": "जारी रखें" + }, + "orders": { + "title": "ऑर्डर का इतिहास", + "order_number": "ऑर्डर", + "order_number_link": "ऑर्डर संख्या {{ number }}", + "date": "दिनांक", + "payment_status": "भुगतान की स्थिति", + "fulfillment_status": "पूर्ति की स्थिति", + "total": "कुल", + "none": "आपने अभी तक कोई ऑर्डर नहीं दिया है." + }, + "order": { + "title": "ऑर्डर {{ name }}", + "date_html": "{{ date }} पर रखा गया", + "cancelled_html": "{{ date }} पर ऑर्डर रद्द किया गया", + "cancelled_reason": "कारण: {{ reason }}", + "billing_address": "बिलिंग पता", + "payment_status": "भुगतान की स्थिति", + "shipping_address": "शिपिंग पता", + "fulfillment_status": "पूर्ति की स्थिति", + "discount": "छूट", + "shipping": "शिपिंग", + "tax": "कर", + "product": "उत्पाद", + "sku": "SKU", + "price": "कीमत", + "quantity": "मात्रा", + "total": "कुल", + "fulfilled_at_html": "{{ date }} पर पूरा किया गया", + "subtotal": "कुल", + "track_shipment": "शिपमेंट ट्रैक करें" + }, + "recover_password": { + "title": "अपना पासवर्ड रीसेट करें", + "email": "ईमेल", + "submit": "सबमिट करें", + "cancel": "रद्द करें", + "subtext": "हम आपको अपना पासवर्ड रीसेट करने के लिए एक ईमेल भेजेंगे.", + "success": "हमने आपको अपना पासवर्ड अपडेट करने के लिए लिंक के साथ एक ईमेल भेजा है." + }, + "reset_password": { + "title": "खाता पासवर्ड रीसेट करें", + "subtext": "{{ email }} के लिए एक नया पासवर्ड दर्ज करें", + "password": "पासवर्ड", + "password_confirm": "पासवर्ड की पुष्टि करें", + "submit": "पासवर्ड रीसेट करें" + }, + "register": { + "title": "खाता बनाएं", + "first_name": "नाम", + "last_name": "उपनाम", + "email": "ईमेल", + "password": "पासवर्ड", + "submit": "बनाएं" + } + }, + "homepage": { + "general": { + "title": "होमपेज" + }, + "onboarding": { + "product_title": "अपने उत्पाद का नाम", + "product_description": "इस क्षेत्र का उपयोग आपके उत्पाद की जानकारी का वर्णन करने के लिए किया जाता है. अपने ग्राहकों के अपने उत्पाद के लुक, फील और स्टाइल के बारे में बताएं. रंग, उपयोग की गई सामग्री, आकार और जिस स्थान पर बनाया गया उसकी जानकारी जोड़ें.", + "collection_title": "आपके कलेक्शन का नाम", + "blog_title": "आपकी पोस्ट का शीर्षक", + "blog_excerpt": "आपके स्टोर ने अभी तक कोई ब्लॉग पोस्ट प्रकाशित नहीं की है. ब्लॉग का उपयोग लॉन्च किए गए नए उत्पाद , युक्तियां या अन्य समाचारों के बारे में बताने के लिए किया जा सकता है जिन्हें आप अपने ग्राहकों के साथ शेयर करना चाहते हैं. आप अपने स्वयं के स्टोर और ब्लॉग के लिए प्रेरणा और सलाह के लिए Shopify का ई-कॉमर्स ब्लॉग चेक आउट कर सकते हैं.", + "blog_author": "लेखक का नाम", + "no_content": "इस सेक्शन में वर्तमान में कोई सामग्री शामिल नहीं है. साइडबार का उपयोग करके इस सेक्शन में सामग्री जोड़ें." + } + }, + "layout": { + "navigation": { + "search": "खोजें", + "expand": "विस्तार करें", + "collapse": "संक्षिप्त करें", + "menu": "मेनू" + }, + "cart": { + "title": "कार्ट", + "items_count": { + "one": "आइटम", + "other": "आइटम" + } + }, + "customer": { + "account": "खाता", + "log_out": "लॉग आउट", + "log_in": "लॉग इन करें", + "create_account": "खाता बनाएं" + }, + "footer": { + "social_platform": "{{ platform }} पर {{ name }}" + } + }, + "products": { + "product": { + "regular_price": "सामान्य कीमत", + "sold_out": "बिक गया", + "unavailable": "अनुपलब्ध", + "on_sale": "बिक्री", + "sale_price": "सेल की कीमत", + "quantity": "मात्रा", + "add_to_cart": "कार्ट में जोड़ें", + "loader_label": "अपने कार्ट में उत्पाद जोड़ना", + "back_to_collection": "इस पर वापस जाएं", + "vendor": "विक्रेता", + "quantity_minimum_message": "मात्रा 1 या इससे अधिक होनी चाहिए", + "include_taxes": "कर शामिल है.", + "shipping_policy_html": "चेकआउट के दौरान शिपिंग की गणना की गई", + "unit_price_label": "यूनिट मूल्य", + "view_cart": "कार्ट देखें", + "availability": "उपलब्धता", + "from_lowest_price_html": "{{ lowest_price }} द्वारा", + "view_in_space": "अपनी जगह पर चलाएं", + "view_in_space_label": "अपने स्थान में देखें, संवर्धित वास्तविकता विंडो में आइटम लोड करता है" + } + }, + "gift_cards": { + "issued": { + "title_html": "यहां {{ shop }} के लिए आपका {{ value }} गिफ़्ट कार्ड है!", + "subtext": "आपका गिफ़्ट कार्ड", + "gift_card_code": "गिफ़्ट कार्ड का कोड", + "disabled": "अक्षम किया गया", + "expired": "{{ expiry }} पर समय सीमा समाप्त हुई", + "active": "{{ expiry }} पर समय सीमा समाप्त होती है", + "redeem_html": "अपने {{ value }} गिफ़्ट कार्ड को रिडीम करने के लिए चेकआउट पर इस कोड का उपयोग करें", + "shop_link": "शॉपिंग प्रारंभ करें", + "print": "इस गिफ़्ट कार्ड को प्रिंट करें", + "remaining_html": "{{ balance }} बचा हैं", + "add_to_apple_wallet": "Apple Wallet में जोड़ें", + "qr_image_alt": "QR कोड — गिफ़्ट कार्ड रिडिम करने के लिए स्कैन करें" + } + }, + "store_availability": { + "general": { + "view_store_info": "स्टोर की जानकारी देखें", + "check_other_stores": "अन्य स्टोर पर उपलब्धता की जांच करें", + "pick_up_available": "पिकअप उपलब्ध", + "pick_up_currently_unavailable": "वर्तमान में पिकअप अनुपलब्ध है", + "pick_up_available_at_html": "{{ location_name }} पर उपलब्ध पिकअप", + "pick_up_unavailable_at_html": "पिकअप वर्तमान में {{ location_name }} पर अनुपलब्ध" + } + } +} diff --git a/shopify/locales/hr-HR.json b/shopify/locales/hr-HR.json new file mode 100644 index 00000000..bdb1760c --- /dev/null +++ b/shopify/locales/hr-HR.json @@ -0,0 +1,439 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "products": { + "product": { + "from_lowest_price_html": "od {{ lowest_price }}", + "regular_price": "Redovna cijena", + "sold_out": "Rasprodano", + "unavailable": "Nije dostupno", + "availability": "Dostupnost", + "on_sale": "Rasprodaja", + "sale_price": "Prodajna cijena", + "quantity": "Količina", + "add_to_cart": "Dodaj u košaricu", + "loader_label": "Dodavanje proizvoda u košaricu", + "back_to_collection": "Natrag na", + "vendor": "Prodavač", + "quantity_minimum_message": "Količina mora biti 1 ili više", + "include_taxes": "Porez je uključen.", + "shipping_policy_html": "Poštarina se obračunava prilikom završetka kupnje.", + "unit_price_label": "Jedinična cijena", + "view_cart": "Prikaži košaricu", + "view_in_space": "Pogledajte u svojem prostoru", + "view_in_space_label": "Pogledajte u svojem prostoru, učitajte stavku u prozoru proširene stvarnosti" + } + }, + "general": { + "accessibility": { + "skip_to_content": "Preskoči na sadržaj", + "close_modal": "Zatvori", + "refresh_page": "Ako odaberete izbor, osvježit će se cijela stranica.", + "selection_help": "Da biste odabrali, pritisnite razmaknicu, a zatim tipke sa strelicama.", + "unit_price_separator": "po", + "error": "Greška", + "link_messages": { + "new_window": "Otvara se u novom prozoru.", + "external": "Otvara vanjsko web-mjesto.", + "new_window_and_external": "Otvara vanjsko web-mjesto u novom prozoru." + } + }, + "meta": { + "tags": "Označeno s \"{{ tags }}\"", + "page": "Stranica {{ page }}" + }, + "404": { + "title": "404 Stranica nije pronađena", + "subtext": "Stranica koju ste zatražili ne postoji.", + "link": "Nastavi s kupnjom" + }, + "pagination": { + "previous": "Prethodna stranica", + "next": "Sljedeća stranica", + "current_page": "Stranica {{ current }} od {{ total }}" + }, + "password_page": { + "opening_soon": "Uskoro se otvara", + "login_form_heading": "Uđite u trgovinu pomoću lozinke", + "login_form_password_label": "Lozinka", + "login_form_password_placeholder": "Vaša lozinka", + "login_form_submit": "Unesi", + "signup_form_email_label": "Pošalji e-poruku", + "signup_form_success": "Poslat ćemo vam poruku e-pošte neposredno prije nego što otvorimo!", + "admin_link_html": "Jeste li vlasnik trgovine? Prijavite se ovdje", + "password_link": "Uđite pomoću lozinke" + }, + "social": { + "share_on_facebook": "Podijelite", + "share_on_twitter": "Tweetajte", + "share_on_pinterest": "Prikvačite ga", + "alt_text": { + "share_on_facebook": "Podijelite na Facebooku", + "share_on_twitter": "Tweetajte na Twitteru", + "share_on_pinterest": "Prikvačite na Pinterest" + } + }, + "search": { + "no_results": "Pokušajte provjeriti pravopis ili koristiti druge riječi.", + "empty_search_message": "Polje za pretraživanje ne može biti prazno", + "title": "Pretraži naše web-mjesto", + "placeholder": "Traži", + "submit": "Podnesi", + "close": "Zatvori pretraživanje", + "search_for": "Traži", + "products": "Proizvodi", + "loading": "Učitavanje", + "clear_search_term": "Očisti pojam za pretraživanje", + "number_of_results": "{{ result_number }} od {{ results_count }}", + "number_of_results_found": "Pronađeno rezultata: {{ results_count }}", + "one_result_found": "Pronađen je 1 rezultat", + "results_with_count": { + "one": "{{ count }} rezultat za \"{{ terms }}\"", + "other": "{{ count }} rezultata za \"{{ terms }}\"", + "few": "{{ count }} rezultata za \"{{ terms }}\"" + }, + "heading": { + "one": "Rezultat pretraživanja", + "other": "Rezultati pretraživanja", + "few": "Rezultati pretraživanja" + } + }, + "newsletter_form": { + "newsletter_email": "Pretplatite se na naš popis za slanje poruka e-pošte", + "email_placeholder": "Adresa e-pošte", + "confirmation": "Hvala što ste se pretplatili!", + "submit": "Pretplati se" + }, + "filters": { + "show_more": "Pokaži više", + "show_less": "Pokaži manje" + }, + "payment": { + "method": "Načini plaćanja" + }, + "language": { + "dropdown_label": "Jezik" + }, + "country": { + "dropdown_label": "Država/regija" + } + }, + "sections": { + "slideshow": { + "next_slide": "Sljedeći slajd", + "previous_slide": "Prethodni slajd", + "pause_slideshow": "Pauziraj prezentaciju", + "rotate_slideshow": "Reproduciraj prezentaciju", + "load_slide": "Učitaj slajd {{ slide_number }}", + "navigation_instructions": "Pomičite se po prezentaciji pomoću strelica lijevo/desno ili prijeđite prstom ulijevo/udesno ako koristite mobilni uređaj" + }, + "featured_product": { + "title": "Istaknuti proizvod", + "gallery_thumbnail_alt": "Učitajte sliku u preglednik galerije, {{ imageAlt }}", + "video_thumbnail_alt": "Učitajte i reproducirajte videozapise i pregledniku galerije, {{ imageAlt }}", + "model_thumbnail_alt": "Učitajte 3D model u preglednik galerije, {{ imageAlt }}" + }, + "map": { + "address_error": "Pogreška prilikom traženja te adrese", + "address_no_results": "Nema rezultata za tu adresu", + "address_query_limit_html": "Premašili ste ograničenje upotrebe Google API-ja. Razmislite o nadogradnji na tarifu Premium .", + "auth_error_html": "Došlo je do problema s provjerom autentičnosti računa za Google karte.", + "section_heading": "Lokacija" + }, + "video": { + "play": "Reproduciraj videozapis {{ video_title }}", + "pause": "Pauziraj videozapis {{ video_title }}", + "resume": "Nastavi videozapis {{ video_title }}", + "close": "Zatvori videozapis {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Objava" + } + }, + "blogs": { + "article": { + "view_all": "Prikaži sve", + "view_all_blogs": "Prikaži sve blogove", + "all_topics": "Sve teme", + "by_author": "autora {{ author }}", + "posted_in": "Objavljeno u", + "read_more": "Pročitajte više", + "read_more_title": "Pročitajte više: {{ title }}", + "back_to_blog": "Natrag na {{ title }}", + "tags": "Oznake", + "article_with_count": { + "one": "Broj artikala: {{ count }}", + "other": "Broj artikala: {{ count }}", + "few": "Broj artikala: {{ count }}" + } + }, + "comments": { + "title": "Ostavite komentar", + "name": "Ime", + "email": "E-pošta", + "message": "Poruka", + "post": "Objavi komentar", + "moderated": "Napominjemo da komentari moraju biti odobreni prije objave", + "success_moderated": "Vaš je komentar uspješno objavljen. Uskoro ćemo ga objaviti jer se naš blog moderira.", + "success": "Vaš je komentar uspješno objavljen! Hvala vam!", + "unapproved": "Navedena adresa e-pošte nema odobrenje za objavu komentara.", + "comments_with_count": { + "one": "{{ count }} komentar", + "other": "{{ count }} komentara", + "few": "{{ count }} komentara" + } + } + }, + "cart": { + "general": { + "title": "Vaša košarica", + "note": "Dodajte napomenu svojoj narudžbi", + "removed_item_html": "Iz košarice je uklonjen ({{ quantity }}) {{ link }} .", + "remove": "Ukloni", + "subtotal": "Podzbroj", + "savings": "Štedite", + "taxes_and_shipping_at_checkout": "Porezi i poštarina obračunavaju se prilikom završetka kupnje", + "taxes_and_shipping_policy_at_checkout_html": "Porezi i poštarina obračunavaju se prilikom završetka kupnje", + "taxes_included_but_shipping_at_checkout": "Uključeni porezi i poštarina obračunavaju se prilikom završetka kupnje", + "taxes_included_and_shipping_policy_html": "Porez je uključen. Poštarina se obračunava prilikom završetka kupnje.", + "update": "Ažuriraj", + "checkout": "Završi kupnju", + "empty": "Vaša je košarica trenutno prazna.", + "cookies_required": "Omogućite kolačiće da biste koristili košaricu", + "continue_shopping": "Nastavi s kupnjom", + "cart_error": "Došlo je do pogreške prilikom ažuriranja vaše košarice. Pokušajte ponovno." + }, + "label": { + "discounted_total": "Ukupno uz popust", + "product": "Proizvod", + "price": "Cijena", + "price_column": "Pojedinosti o popustima pogledajte u stupcu Cijena.", + "product_details": "Detalji o proizvodu", + "quantity": "Količina", + "qty": "Kol.", + "regular_total": "Ukupno redovno", + "remove": "Ukloni {{ product }}", + "total": "Ukupno", + "update": "Ažuriraj" + }, + "popup": { + "added_to_cart": "Upravo je dodano u vašu košaricu", + "product_details": "Detalji o proizvodu", + "quantity": "Kol.", + "quantity_label": "Količina: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} artikl", + "other": "Broj artikala: {{ count }}", + "few": "Broj artikala: {{ count }}" + } + } + }, + "collections": { + "general": { + "view_all": "Prikaži sve", + "view_all_label": "Prikaži sve proizvode u kolekciji {{ collection_name }}", + "no_matches": "Nažalost, u ovoj kolekciji nema proizvoda", + "collection_label": "Kolekcija", + "items_with_count": { + "one": "{{ count }} proizvod", + "other": "{{ count }} proizvoda", + "few": "{{ count }} proizvoda" + } + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Poredaj po" + }, + "filters": { + "title_tags": "Filtriraj po", + "all_tags": "Svi proizvodi" + } + }, + "contact": { + "form": { + "name": "Ime", + "email": "E-pošta", + "phone": "Broj telefona", + "message": "Poruka", + "submit": "Pošalji", + "post_success": "Hvala vam što ste nas kontaktirali. Uskoro ćemo vam se javiti.", + "error_heading": "Prilagodite sljedeće:" + } + }, + "customer": { + "account": { + "title": "Moj račun", + "details": "Pojedinosti o računu", + "view_addresses": "Prikaži adrese", + "return": "Povratak na pojedinosti o računu" + }, + "activate_account": { + "title": "Aktiviranje računa", + "subtext": "Izradite svoju lozinku da biste aktivirali račun.", + "password": "Lozinka", + "password_confirm": "Potvrdite lozinku", + "submit": "Aktivirajte račun", + "cancel": "Odbij pozivnicu" + }, + "addresses": { + "title": "Vaše adrese", + "default": "Zadano", + "add_new": "Dodajte novu adresu", + "edit_address": "Uredi adresu", + "first_name": "Ime", + "last_name": "Prezime", + "company": "Tvrtka", + "address1": "Adresa", + "address2": "Broj stan, kata itd.", + "city": "Grad", + "country": "Država / regija", + "province": "Županija / pokrajina", + "zip": "Poštanski broj", + "phone": "Telefon", + "set_default": "Postavi kao zadanu adresu", + "add": "Dodaj adresu", + "update": "Ažuriraj adresu", + "cancel": "Odustani", + "edit": "Uredi", + "delete": "Izbriši", + "delete_confirm": "Želite li sigurno izbrisati ovu adresu?" + }, + "login": { + "title": "Prijava", + "email": "E-pošta", + "password": "Lozinka", + "forgot_password": "Zaboravili ste lozinku?", + "sign_in": "Registracija", + "guest_title": "Nastavi kao gost", + "guest_continue": "Nastavi" + }, + "orders": { + "title": "Povijest narudžbi", + "order_number": "Narudžba", + "order_number_link": "Broj narudžbe {{ number }}", + "date": "Datum", + "payment_status": "Status plaćanja", + "fulfillment_status": "Status izvršenja", + "total": "Ukupno", + "none": "Još niste ništa naručili." + }, + "order": { + "title": "Narudžba {{ name }}", + "date_html": "Zaprimljena {{ date }}", + "cancelled_html": "Narudžba otkazana {{ date }}", + "cancelled_reason": "Razlog: {{ reason }}", + "billing_address": "Adresa za naplatu", + "payment_status": "Status plaćanja", + "shipping_address": "Adresa za dostavu", + "fulfillment_status": "Status izvršenja", + "discount": "Popust", + "shipping": "Poštarina", + "tax": "Porez", + "product": "Proizvod", + "sku": "Inventarna šifra proizvoda (SKU)", + "price": "Cijena", + "quantity": "Količina", + "total": "Ukupno", + "fulfilled_at_html": "Izvršeno {{ date }}", + "subtotal": "Podzbroj", + "track_shipment": "Praćenje pošiljke" + }, + "recover_password": { + "title": "Ponovno postavljanje lozinke", + "email": "Pošalji e-poruku", + "submit": "Podnesi", + "cancel": "Odustani", + "subtext": "Poslat ćemo vam poruku e-pošte da biste ponovno postavili lozinku.", + "success": "Poslali smo vam poruku e-pošte s vezom za ažuriranje lozinke." + }, + "reset_password": { + "title": "Ponovno postavljanje lozinke računa", + "subtext": "Unesite novu lozinku za {{ email }}", + "password": "Lozinka", + "password_confirm": "Potvrdite lozinku", + "submit": "Ponovno postavite lozinku" + }, + "register": { + "title": "Izrada računa", + "first_name": "Ime", + "last_name": "Prezime", + "email": "E-pošta", + "password": "Lozinka", + "submit": "Izradi" + } + }, + "homepage": { + "general": { + "title": "Početna stranica" + }, + "onboarding": { + "product_title": "Naziv vašeg proizvoda", + "product_description": "U ovom području možete navesti pojedinosti o vašem proizvodu. Opišite kupcima izgled, dojam i stil vašeg proizvoda. Navedite detalje o boji, korištenim materijalima, veličini i mjestu izrade.", + "collection_title": "Naziv vaše kolekcije", + "blog_title": "Naslov vaše objave", + "blog_excerpt": "Vaša trgovina još nije objavila nijedan post na blogu. Blog možete koristiti za razgovore o pokretanju novih proizvoda, savjetima ili drugim vijestima koje želite podijeliti sa svojim kupcima. Ako tražite inspiraciju i savjet za svoju trgovinu i blog, pogledajte Shopifyjev blog o e-trgovini.", + "blog_author": "Ime autora", + "no_content": "Ovaj odjeljak trenutno nema nikakvog sadržaja. Dodajte sadržaj u odjeljak pomoću bočne trake." + } + }, + "layout": { + "navigation": { + "search": "Traži", + "expand": "proširi", + "collapse": "sažmi", + "menu": "Izbornik" + }, + "cart": { + "title": "Košarica", + "items_count": { + "one": "artikl", + "other": "artikli", + "few": "artikli" + } + }, + "customer": { + "account": "Račun", + "log_out": "Odjava", + "log_in": "Prijava", + "create_account": "Izradi račun" + }, + "footer": { + "social_platform": "{{ name }} na {{ platform }}" + } + }, + "gift_cards": { + "issued": { + "title_html": "Na dar dobivate poklon karticu od {{ value }} za {{ shop }}!", + "subtext": "Vaša poklon kartica", + "gift_card_code": "Kôd poklon kartice", + "disabled": "Onemogućeno", + "expired": "Isteklo {{ expiry }}", + "active": "Istječe {{ expiry }}", + "redeem_html": "Upišite ovaj kôd prilikom završetka kupnje da biste iskoristili svoju poklon karticu od {{ value }}", + "shop_link": "Počnite s kupnjom", + "print": "Ispišite ovu poklon karticu", + "remaining_html": "preostalo: {{ balance }}", + "add_to_apple_wallet": "Dodajte u novčanik Apple Wallet", + "qr_image_alt": "QR kôd – skenirajte da biste iskoristili poklon karticu" + } + }, + "store_availability": { + "general": { + "view_store_info": "Pogledaj informacije o trgovini", + "check_other_stores": "Provjeri dostupnost u drugim trgovinama", + "pick_up_available": "Dostupno je preuzimanje", + "pick_up_currently_unavailable": "Preuzimanje trenutno nije dostupno", + "pick_up_available_at_html": "Preuzimanje je dostupno na lokaciji {{ location_name }}", + "pick_up_unavailable_at_html": "Preuzimanje trenutno nije dostupno na lokaciji {{ location_name }}" + } + } +} diff --git a/shopify/locales/hu.json b/shopify/locales/hu.json new file mode 100644 index 00000000..73b9ac99 --- /dev/null +++ b/shopify/locales/hu.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Ugrás a tartalomhoz", + "close_modal": "Bezárás", + "link_messages": { + "new_window": "Új ablakban nyílik meg.", + "external": "Külső weboldalt nyit meg.", + "new_window_and_external": "Új ablakban nyitja meg a külső weboldalt." + }, + "refresh_page": "Ha kiválasztasz egy lehetőséget, a teljes oldal frissül.", + "selection_help": "A kívánt lehetőséget a szóköz lenyomásával, majd a nyílbillentyűkkel választhatod ki.", + "unit_price_separator": "per", + "error": "Hiba" + }, + "meta": { + "tags": "Megcímkézve: „{{ tags }}”", + "page": "{{ page }}. oldal" + }, + "404": { + "title": "404 Az oldal nem található", + "subtext": "A kért oldal nem létezik.", + "link": "A vásárlás folytatása" + }, + "pagination": { + "previous": "Előző oldal", + "next": "Következő oldal", + "current_page": "{{ current }}./{{ total }} oldal" + }, + "password_page": { + "opening_soon": "Nyitás hamarosan", + "login_form_heading": "Belépés a boltba jelszó használatával", + "login_form_password_label": "Jelszó", + "login_form_password_placeholder": "Saját jelszó", + "login_form_submit": "Belépés", + "signup_form_email_label": "E-mail-cím", + "signup_form_success": "E-mailben értesítünk a nyitás előtt!", + "admin_link_html": "Te vagy a bolt tulajdonosa? Jelentkezz be itt", + "password_link": "Belépés jelszóval" + }, + "social": { + "share_on_facebook": "Megosztás", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin létrehozása", + "alt_text": { + "share_on_facebook": "Oszd meg a Facebookon", + "share_on_twitter": "Tweetelj a Twitteren", + "share_on_pinterest": "Készíts pint a Pinteresten" + } + }, + "search": { + "empty_search_message": "A keresőmező nem lehet üres", + "results_with_count": { + "one": "{{ count }} találat erre: „{{ terms }}”", + "other": "{{ count }} találat erre: „{{ terms }}”" + }, + "title": "Keresés a weboldalon", + "placeholder": "Keresés", + "submit": "Beküldés", + "close": "Keresés bezárása", + "heading": { + "one": "Találat", + "other": "Találatok" + }, + "no_results": "Ellenőrizd a helyesírást, vagy használj más szavakat.", + "search_for": "Keresés", + "products": "Termékek", + "loading": "Betöltés", + "clear_search_term": "Keresőszó törlése", + "number_of_results": "{{ result_number }} / {{ results_count }}", + "number_of_results_found": "{{ results_count }} találat", + "one_result_found": "1 találat" + }, + "newsletter_form": { + "newsletter_email": "Feliratkozás a levelezőlistára", + "email_placeholder": "E-mail-cím", + "confirmation": "Köszönjük feliratkozást!", + "submit": "Feliratkozás" + }, + "filters": { + "show_more": "Több megjelenítése", + "show_less": "Kevesebb megjelenítése" + }, + "payment": { + "method": "Fizetési módok" + }, + "language": { + "dropdown_label": "Nyelv" + }, + "country": { + "dropdown_label": "Ország/régió" + } + }, + "sections": { + "slideshow": { + "next_slide": "Következő dia", + "previous_slide": "Előző dia", + "pause_slideshow": "Diavetítés szüneteltetése", + "rotate_slideshow": "Diavetítés lejátszása", + "load_slide": "{{ slide_number }}. dia betöltése", + "navigation_instructions": "A diavetítésben a jobb és a bal nyílbillentyűvel, illetve mobileszközön jobbra és balra pöccintve navigálhatsz" + }, + "featured_product": { + "title": "Kiemelt termék", + "gallery_thumbnail_alt": "Kép betöltése a galériamegjelenítőbe: {{ imageAlt }}", + "video_thumbnail_alt": "Videó betöltése és lejátszása a galériamegjelenítőben: {{ imageAlt }}", + "model_thumbnail_alt": "Térhatású modell betöltése a galériamegjelenítőbe: {{ imageAlt }}" + }, + "map": { + "address_error": "Hiba történt a cím keresésekor", + "address_no_results": "Nincs eredmény erre a címre", + "address_query_limit_html": "Túllépted a felhasználható Google API-k számát. Érdemes lehet prémium csomagra váltanod.", + "auth_error_html": "Hiba történt a Google Térkép-fiók hitelesítésekor.", + "section_heading": "Tartózkodási hely" + }, + "video": { + "play": "{{ video_title }} lejátszása", + "pause": "{{ video_title }} szüneteltetése", + "resume": "{{ video_title }} folytatása", + "close": "{{ video_title }} bezárása" + }, + "header": { + "announcement_bar_label": "Közlemény" + } + }, + "blogs": { + "article": { + "view_all": "Összes megtekintése", + "view_all_blogs": "Az összes blog megtekintése", + "all_topics": "Minden téma", + "by_author": "szerző: {{ author }}", + "posted_in": "Elküldve:", + "read_more": "Olvass tovább", + "read_more_title": "Olvass tovább: {{ title }}", + "back_to_blog": "Vissza ide: {{ title }}", + "tags": "Címkék", + "article_with_count": { + "one": "{{ count }} termék", + "other": "{{ count }} cikk" + } + }, + "comments": { + "title": "Szólj hozzá", + "name": "Név", + "email": "E-mail-cím", + "message": "Üzenet", + "post": "Hozzászólás elküldése", + "moderated": "Felhívjuk a figyelmedet, hogy a megjegyzéseket közzétételük előtt jóvá kell hagyni", + "success_moderated": "A hozzászólásodat sikeresen elküldted. Moderáljuk a blogunkat, ezért egy kis idő múlva tesszük közzé a hozzászólást.", + "success": "A hozzászólásodat sikeresen elküldted. Köszönjük!", + "unapproved": "A megadott e-mail-cím nem használható hozzászólások elküldéséhez.", + "comments_with_count": { + "one": "{{ count }} hozzászólás", + "other": "{{ count }} hozzászólás" + } + } + }, + "cart": { + "general": { + "title": "Kosár", + "note": "Fűzz megjegyzést a megrendelésedhez", + "removed_item_html": "({{ quantity }}) {{ link }} eltávolítva a kosárból.", + "remove": "Eltávolítás", + "subtotal": "Részösszeg:", + "savings": "Megtakarítás:", + "taxes_and_shipping_at_checkout": "Az adókat és a szállítási költséget a megrendeléskor számítjuk ki", + "taxes_and_shipping_policy_at_checkout_html": "Az adókat és a szállítási költséget a megrendeléskor számítjuk ki", + "taxes_included_but_shipping_at_checkout": "Tartalmazza a megrendeléskor kiszámított adót és szállítási költséget", + "taxes_included_and_shipping_policy_html": "Tartalmazza az adót. A megrendeléskor kiszámított szállítási költség.", + "update": "Frissítés", + "checkout": "Megrendelés", + "empty": "A kosarad jelenleg üres.", + "cookies_required": "A kosár használatához engedélyezned kell a sütiket", + "continue_shopping": "A vásárlás folytatása", + "cart_error": "Hiba történt a kosár frissítése közben. Kérjük, próbálkozz újra." + }, + "label": { + "discounted_total": "Kedvezményes végösszeg", + "product": "Termék", + "price": "Ár", + "price_column": "A kedvezményre vonatkozó részleteket az Ár oszlopban találod.", + "product_details": "Termékleírás", + "quantity": "Mennyiség", + "qty": "Mennyiség", + "regular_total": "Normál végösszeg", + "remove": "{{ product }} eltávolítása", + "total": "Végösszeg", + "update": "Frissítés" + }, + "popup": { + "added_to_cart": "Kosárba helyezve", + "cart_count": { + "one": "{{ count }} elem", + "other": "{{ count }} elem" + }, + "product_details": "Termékleírás", + "quantity": "Mennyiség", + "quantity_label": "Mennyiség: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Összes megtekintése", + "view_all_label": "Az ebben a kollekcióban szereplő összes termék megtekintése: {{ collection_name }}", + "no_matches": "Sajnáljuk, ebben a kollekcióban nincsenek termékek", + "items_with_count": { + "one": "{{ count }} termék", + "other": "{{ count }} termék" + }, + "collection_label": "Kollekció" + }, + "catalog": { + "title": "Katalógus" + }, + "sorting": { + "title": "Rendezés:" + }, + "filters": { + "title_tags": "Szűrés:", + "all_tags": "Minden termék" + } + }, + "contact": { + "form": { + "name": "Név", + "email": "E-mail-cím", + "phone": "Telefonszám", + "message": "Üzenet", + "submit": "Küldés", + "post_success": "Köszönjük, hogy megkerestél minket. A lehető legrövidebb időn belül válaszolni fogunk.", + "error_heading": "Kérjük, helyesbítsd a következőket:" + } + }, + "customer": { + "account": { + "title": "Saját fiók", + "details": "Fiókadatok", + "view_addresses": "Címek megtekintése", + "return": "Vissza a fiókadatokhoz" + }, + "activate_account": { + "title": "Fiók aktiválása", + "subtext": "A fiók aktiválásához hozz létre egy jelszót.", + "password": "Jelszó", + "password_confirm": "Jelszó megerősítése", + "submit": "Fiók aktiválása", + "cancel": "A meghívás elutasítása" + }, + "addresses": { + "title": "Saját címek", + "default": "Alapértelmezett", + "add_new": "Új cím hozzáadása", + "edit_address": "Cím szerkesztése", + "first_name": "Utónév", + "last_name": "Vezetéknév", + "company": "Vállalat", + "address1": "Cím", + "address2": "Lakás, lakosztály, stb.", + "city": "Település", + "country": "Ország/régió", + "province": "Megye", + "zip": "Irányítószám", + "phone": "Telefonszám", + "set_default": "Beállítás alapértelmezett címként", + "add": "Cím hozzáadása", + "update": "Cím frissítése", + "cancel": "Mégsem", + "edit": "Szerkesztés", + "delete": "Törlés", + "delete_confirm": "Biztosan törölni szeretnéd ezt a címet?" + }, + "login": { + "title": "Bejelentkezés", + "email": "E-mail-cím", + "password": "Jelszó", + "forgot_password": "Elfelejtetted a jelszavadat?", + "sign_in": "Bejelentkezés", + "guest_title": "Folytatás vendégként", + "guest_continue": "Folytatás" + }, + "orders": { + "title": "Rendelési előzmények", + "order_number": "Megrendelés", + "order_number_link": "Rendelésszám: {{ number }}", + "date": "Dátum", + "payment_status": "Fizetési állapot", + "fulfillment_status": "Teljesítési állapot", + "total": "Végösszeg", + "none": "Még nem rendeltél semmit." + }, + "order": { + "title": "Megrendelés: {{ name }}", + "date_html": "Megrendelés dátuma: {{ date }}", + "cancelled_html": "Megrendelés visszavonva: {{ date }}", + "cancelled_reason": "Ok: {{ reason }}", + "billing_address": "Számlázási cím", + "payment_status": "Fizetési állapot", + "shipping_address": "Szállítási cím", + "fulfillment_status": "Teljesítési állapot", + "discount": "Kedvezmény", + "shipping": "Szállítás", + "tax": "Adó", + "product": "Termék", + "sku": "SKU", + "price": "Ár", + "quantity": "Mennyiség", + "total": "Végösszeg", + "fulfilled_at_html": "Teljesítés dátuma: {{ date }}", + "subtotal": "Részösszeg:", + "track_shipment": "Szállítás nyomon követése" + }, + "recover_password": { + "title": "Jelszó átállítása", + "email": "E-mail-cím", + "submit": "Beküldés", + "cancel": "Mégsem", + "subtext": "Küldünk egy e-mailt, amellyel átállíthatod a jelszavadat.", + "success": "E-mailben elküldtük a jelszó módosításához szükséges hivatkozást." + }, + "reset_password": { + "title": "Fiók jelszavának átállítása", + "subtext": "Add meg a következő e-mail-címhez tartozó új jelszót: {{ email }}", + "password": "Jelszó", + "password_confirm": "Jelszó megerősítése", + "submit": "Jelszó átállítása" + }, + "register": { + "title": "Fiók létrehozása", + "first_name": "Utónév", + "last_name": "Vezetéknév", + "email": "E-mail-cím", + "password": "Jelszó", + "submit": "Létrehozás" + } + }, + "homepage": { + "general": { + "title": "Kezdőlap" + }, + "onboarding": { + "product_title": "A terméked neve", + "product_description": "Ezen a területen adhatod meg a termék részleteit. Mutasd be a vásárlóknak a termék kialakítását, hangulatát és stílusát. Adj meg részleteket a színéről, a felhasznált anyagokról, a méretéről és a gyártási helyéről.", + "collection_title": "A kollekció neve", + "blog_title": "A bejegyzés címe", + "blog_excerpt": "A bolt még nem tett közzé blogbejegyzéseket. Egy blogban beszámolhatsz az új termékekről, illetve tippeket és egyéb híreket oszthatsz meg a vásárlóiddal. Ha ihletet keresel, vagy tanácsra van szükséged a saját boltodhoz vagy blogodhoz, szívesen látunk a Shopify kereskedelmi blogján.", + "blog_author": "Szerző neve", + "no_content": "Ebben a szakaszban még nincs tartalom. Ha tartalmat szeretnél hozzáadni, használd az oldalsávot." + } + }, + "layout": { + "navigation": { + "search": "Keresés", + "expand": "kibontás", + "collapse": "összecsukás", + "menu": "Menü" + }, + "cart": { + "title": "Kosár", + "items_count": { + "one": "elem", + "other": "elem" + } + }, + "customer": { + "account": "Fiók", + "log_out": "Kijelentkezés", + "log_in": "Bejelentkezés", + "create_account": "Fiók létrehozása" + }, + "footer": { + "social_platform": "{{ name }} itt: {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Normál ár", + "sold_out": "Elfogyott", + "unavailable": "Nincs készleten", + "availability": "Elérhetőség", + "on_sale": "Akciós", + "sale_price": "Akciós ár", + "from_lowest_price_html": "{{ lowest_price }}-tól", + "quantity": "Mennyiség", + "add_to_cart": "Hozzáadás a kosárhoz", + "loader_label": "A termék felvéve a kosárba", + "back_to_collection": "Vissza ide:", + "vendor": "Forgalmazó", + "quantity_minimum_message": "1-nél kisebb mennyiség nem adható meg", + "include_taxes": "Tartalmazza az adót.", + "shipping_policy_html": "A megrendeléskor kiszámított szállítási költség.", + "unit_price_label": "Egységár", + "view_cart": "Kosár megtekintése", + "view_in_space": "Megtekintés a saját környezetben", + "view_in_space_label": "Megtekintés a saját környezetben: az elemet egy kiterjesztett valóság alapú ablakban tölti be" + } + }, + "gift_cards": { + "issued": { + "title_html": "Íme a(z) {{ shop }} boltban levásárolható, {{ value }} értékű ajándékkártyád!", + "subtext": "Ajándékkártya", + "gift_card_code": "Ajándékkártya kódja", + "disabled": "Letiltva", + "expired": "Lejárat dátuma: {{ expiry }}", + "active": "Lejárat dátuma: {{ expiry }}", + "redeem_html": "Megrendeléskor ezzel a kóddal válthatod be a(z) {{ value }} értékű ajándékkártyádat", + "shop_link": "Vásárlás", + "print": "Ajándékkártya kinyomtatása", + "remaining_html": "Elérhető összeg: {{ balance }}", + "add_to_apple_wallet": "Hozzáadás az Apple Wallethoz", + "qr_image_alt": "QR-kód – olvasd be az ajándékkártya beváltásához" + } + }, + "store_availability": { + "general": { + "view_store_info": "Webáruház adatai", + "check_other_stores": "Kapható más webáruházakban?", + "pick_up_available": "Személyesen átvehető", + "pick_up_currently_unavailable": "Személyesen egyelőre nem vehető át", + "pick_up_available_at_html": "Személyesen átvehető itt: {{ location_name }}", + "pick_up_unavailable_at_html": "Személyesen egyelőre nem vehető át itt: {{ location_name }}" + } + } +} diff --git a/shopify/locales/id.json b/shopify/locales/id.json new file mode 100644 index 00000000..a1333de9 --- /dev/null +++ b/shopify/locales/id.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Langsung ke konten", + "close_modal": "Tutup", + "link_messages": { + "new_window": "Membuka di jendela baru.", + "external": "Membuka situs web eksternal.", + "new_window_and_external": "Membuka situs web eksternal di jendela baru." + }, + "refresh_page": "Jika memilih salah satu, seluruh halaman akan direfresh.", + "selection_help": "Tekan tombol spasi kemudian tombol panah untuk memilih.", + "unit_price_separator": "per", + "error": "Kesalahan" + }, + "meta": { + "tags": "Bertanda \"{{ tags }}\"", + "page": "Halaman {{ page }}" + }, + "404": { + "title": "404 Page Not Found", + "subtext": "Halaman yang kamu minta tidak ditemukan.", + "link": "Lanjutkan belanja" + }, + "pagination": { + "previous": "Halaman sebelumnya", + "next": "Halaman berikutnya", + "current_page": "Halaman {{ current }} dari {{ total }}" + }, + "password_page": { + "opening_soon": "Segera Dibuka", + "login_form_heading": "Masuki toko dengan sandi", + "login_form_password_label": "Sandi", + "login_form_password_placeholder": "Sandimu", + "login_form_submit": "Masuk", + "signup_form_email_label": "Email", + "signup_form_success": "Kami akan mengirimimu email tepat sebelum kami akan buka!", + "admin_link_html": "Anda pemilik toko? Login di sini", + "password_link": "Masuk dengan sandi" + }, + "social": { + "share_on_facebook": "Bagikan", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin", + "alt_text": { + "share_on_facebook": "Bagikan di Facebook", + "share_on_twitter": "Tweet di Twitter", + "share_on_pinterest": "Pin di Pinterest" + } + }, + "search": { + "empty_search_message": "Kolom pencarian harus diisi", + "results_with_count": { + "one": "{{ count }} hasil untuk “{{ terms }}”", + "other": "{{ count }} hasil untuk “{{ terms }}”" + }, + "title": "Cari di situs kami", + "placeholder": "Cari", + "submit": "Kirim", + "close": "Tutup pencarian", + "heading": { + "one": "Hasil pencarian", + "other": "Hasil pencarian" + }, + "no_results": "Periksa ejaan Anda atau gunakan kata yang berbeda.", + "search_for": "Pencarian untuk", + "products": "Produk", + "loading": "Memuat", + "clear_search_term": "Hapus istilah pencarian", + "number_of_results": "{{ result_number }} dari {{ results_count }}", + "number_of_results_found": "{{ results_count }} hasil ditemukan", + "one_result_found": "1 hasil ditemukan" + }, + "newsletter_form": { + "newsletter_email": "Silakan berlangganan milis kami", + "email_placeholder": "Alamat email", + "confirmation": "Terima kasih sudah berlangganan!", + "submit": "Berlangganan" + }, + "filters": { + "show_more": "Selengkapnya", + "show_less": "Sembunyikan Lainnya" + }, + "payment": { + "method": "Metode pembayaran" + }, + "language": { + "dropdown_label": "Bahasa" + }, + "country": { + "dropdown_label": "Negara/wilayah" + } + }, + "sections": { + "slideshow": { + "next_slide": "Slide berikutnya", + "previous_slide": "Slide sebelumnya", + "pause_slideshow": "Jeda slideshow", + "rotate_slideshow": "Putar slideshow", + "load_slide": "Muat slide {{ slide_number }}", + "navigation_instructions": "Gunakan panah kiri/kanan untuk beralih dari satu slide ke yang lainnya, atau usap ke kiri/kanan jika kamu menggunakan perangkat seluler" + }, + "featured_product": { + "title": "Produk unggulan", + "gallery_thumbnail_alt": "Muat gambar ke penampil Galeri, {{ imageAlt }}", + "video_thumbnail_alt": "Muat dan putar video di penampil Galeri, {{ imageAlt }}", + "model_thumbnail_alt": "Muat model 3D ke dalam penampil Galeri, {{ imageAlt }}" + }, + "map": { + "address_error": "Kesalahan saat mencari alamat", + "address_no_results": "Tidak ada hasil untuk alamat tersebut", + "address_query_limit_html": "Kamu sudah melampaui batas penggunaan Google API. Silakan upgrade ke Paket Premium.", + "auth_error_html": "Ada masalah saat mengautentikasi akun Google Map-mu.", + "section_heading": "Lokasi" + }, + "video": { + "play": "Putar video {{ video_title }}", + "pause": "Jeda video {{ video_title }}", + "resume": "Lanjutkan video {{ video_title }}", + "close": "Tutup video {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Pengumuman" + } + }, + "blogs": { + "article": { + "view_all": "Lihat semua", + "view_all_blogs": "Lihat semua blog", + "all_topics": "Semua topik", + "by_author": "oleh {{ author }}", + "posted_in": "Diposting pada", + "read_more": "Baca selengkapnya", + "read_more_title": "Baca selengkapnya: {{ title }}", + "back_to_blog": "Kembali ke {{ title }}", + "tags": "Tanda", + "article_with_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artikel" + } + }, + "comments": { + "title": "Tulis komentar", + "name": "Nama", + "email": "Email", + "message": "Pesan", + "post": "Posting komentar", + "moderated": "Ingat, komentar harus sudah disetujui sebelum dipublikasikan", + "success_moderated": "Komentarmu berhasil diposting. Kami akan memublikasikannya sebentar lagi, blog kami sedang dimoderasi.", + "success": "Komentar Anda berhasil diposting! Terima kasih!", + "unapproved": "Alamat email yang diberikan tidak diizinkan memposting komentar.", + "comments_with_count": { + "one": "{{ count }} komentar", + "other": "{{ count }} komentar" + } + } + }, + "cart": { + "general": { + "title": "Keranjangmu", + "note": "Tambahkan catatan untuk pesananmu", + "removed_item_html": "({{ quantity }}) {{ link }} dihapus dari keranjang.", + "remove": "Hapus", + "subtotal": "Subtotal", + "savings": "Kamu hemat", + "taxes_and_shipping_at_checkout": "Pajak dan biaya pengiriman dihitung saat checkout", + "taxes_and_shipping_policy_at_checkout_html": "Pajak dan biaya pengiriman dihitung saat checkout", + "taxes_included_but_shipping_at_checkout": "Pajak yang berlaku dan biaya pengiriman dihitung saat checkout", + "taxes_included_and_shipping_policy_html": "Termasuk pajak. Biaya pengiriman dihitung saat checkout.", + "update": "Perbarui", + "checkout": "Check out", + "empty": "Keranjangmu kosong.", + "cookies_required": "Aktifkan cookie untuk menggunakan keranjang belanja", + "continue_shopping": "Lanjutkan belanja", + "cart_error": "Terjadi kesalahan saat memperbarui keranjangmu. Silakan coba lagi." + }, + "label": { + "discounted_total": "Total setelah diskon", + "product": "Produk", + "price": "Harga", + "price_column": "Lihat kolom Harga untuk detail diskon.", + "product_details": "Detail produk", + "quantity": "Jumlah", + "qty": "Jml.", + "regular_total": "Total reguler", + "remove": "Hapus {{ product }}", + "total": "Total", + "update": "Perbarui" + }, + "popup": { + "added_to_cart": "Baru ditambahkan ke keranjang", + "cart_count": { + "one": "{{ count }} item", + "other": "{{ count }} item" + }, + "product_details": "Detail produk", + "quantity": "Jml.", + "quantity_label": "Jumlah: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Lihat semua", + "view_all_label": "Lihat semua produk dalam koleksi {{ collection_name }}", + "no_matches": "Maaf, tidak ada produk dalam koleksi ini", + "items_with_count": { + "one": "{{ count }} produk", + "other": "{{ count }} produk" + }, + "collection_label": "Koleksi" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Urutkan berdasarkan" + }, + "filters": { + "title_tags": "Filter berdasarkan", + "all_tags": "Semua produk" + } + }, + "contact": { + "form": { + "name": "Nama", + "email": "Email", + "phone": "Nomor Telepon", + "message": "Pesan", + "submit": "Kirim", + "post_success": "Terima kasih sudah menghubungi kami. Kami akan segera menghubungimu.", + "error_heading": "Mohon sesuaikan:" + } + }, + "customer": { + "account": { + "title": "Akun Saya", + "details": "Detail Akun", + "view_addresses": "Lihat Alamat", + "return": "Kembali ke Detail Akun" + }, + "activate_account": { + "title": "Aktifkan Akun", + "subtext": "Buat sandi untuk mengaktifkan akunmu.", + "password": "Sandi", + "password_confirm": "Konfirmasi Sandi", + "submit": "Aktifkan Akun", + "cancel": "Tolak Undangan" + }, + "addresses": { + "title": "Alamatmu", + "default": "Default", + "add_new": "Tambahkan Alamat Baru", + "edit_address": "Edit alamat", + "first_name": "Nama Depan", + "last_name": "Nama Belakang", + "company": "Perusahaan", + "address1": "Alamat", + "address2": "Apartemen, suite, dsb.", + "city": "Kota", + "country": "Negara/Wilayah", + "province": "Provinsi", + "zip": "Kode Pos", + "phone": "Telepon", + "set_default": "Atur sebagai alamat default", + "add": "Tambahkan Alamat", + "update": "Perbarui Alamat", + "cancel": "Batal", + "edit": "Edit", + "delete": "Hapus", + "delete_confirm": "Yakin ingin menghapus alamat ini?" + }, + "login": { + "title": "Login", + "email": "Email", + "password": "Sandi", + "forgot_password": "Lupa sandi?", + "sign_in": "Masuk", + "guest_title": "Lanjutkan sebagai tamu", + "guest_continue": "Lanjutkan" + }, + "orders": { + "title": "Riwayat Pesanan", + "order_number": "Pesanan", + "order_number_link": "Nomor pesanan {{ number }}", + "date": "Tanggal", + "payment_status": "Status Pembayaran", + "fulfillment_status": "Status Pesanan", + "total": "Total", + "none": "Kamu belum membuat pesanan." + }, + "order": { + "title": "Pesanan {{ name }}", + "date_html": "Dibuat pada {{ date }}", + "cancelled_html": "Pesanan Dibatalkan pada {{ date }}", + "cancelled_reason": "Alasan: {{ reason }}", + "billing_address": "Alamat Penagihan", + "payment_status": "Status Pembayaran", + "shipping_address": "Alamat Pengiriman", + "fulfillment_status": "Status Pesanan", + "discount": "Diskon", + "shipping": "Pengiriman", + "tax": "Pajak", + "product": "Produk", + "sku": "SKU", + "price": "Harga", + "quantity": "Jumlah", + "total": "Total", + "fulfilled_at_html": "Selesai pada {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Lacak pengiriman" + }, + "recover_password": { + "title": "Reset sandimu", + "email": "Email", + "submit": "Kirim", + "cancel": "Batal", + "subtext": "Kami akan mengirimimu email untuk mereset sandi.", + "success": "Kami telah mengirimimu email berisi tautan untuk memperbarui sandi." + }, + "reset_password": { + "title": "Reset sandi akun", + "subtext": "Masukkan sandi untuk {{ email }}", + "password": "Sandi", + "password_confirm": "Konfirmasi Sandi", + "submit": "Reset Sandi" + }, + "register": { + "title": "Buat Akun", + "first_name": "Nama Depan", + "last_name": "Nama Belakang", + "email": "Email", + "password": "Sandi", + "submit": "Buat" + } + }, + "homepage": { + "general": { + "title": "Beranda" + }, + "onboarding": { + "product_title": "Nama produkmu", + "product_description": "Kolom ini dipakai untuk menjabarkan detail produkmu. Gambarkan tampilan, tekstur, dan model produk Anda kepada pelanggan. Tambahkan detail seperti warna, bahan yang digunakan, ukuran, serta tempat produksinya.", + "collection_title": "Nama koleksimu", + "blog_title": "Judul postinganmu", + "blog_excerpt": "Tokomu belum memublikasikan postingan blog. Blog bisa dimanfaatkan untuk membahas peluncuran produk baru, kiat jitu, atau berita lain yang ingin kamu sampaikan kepada pelanggan. Kamu dapat membaca blog Ecommerce Shopify untuk mencari inspirasi dan saran untuk toko dan blogmu sendiri.", + "blog_author": "Nama penyusun", + "no_content": "Bagian ini belum mencakup konten apa pun. Tambahkan konten di bagian ini menggunakan bilah sisi." + } + }, + "layout": { + "navigation": { + "search": "Cari", + "expand": "buka", + "collapse": "tutup", + "menu": "Menu" + }, + "cart": { + "title": "Keranjang", + "items_count": { + "one": "item", + "other": "item" + } + }, + "customer": { + "account": "Akun", + "log_out": "Logout", + "log_in": "Login", + "create_account": "Buat Akun" + }, + "footer": { + "social_platform": "{{ name }} di {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Harga reguler", + "sold_out": "Habis", + "unavailable": "Tidak Tersedia", + "availability": "Ketersediaan", + "on_sale": "Obral", + "from_lowest_price_html": "dari {{ lowest_price }}", + "sale_price": "Harga obral", + "quantity": "Jumlah", + "add_to_cart": "Tambahkan ke keranjang", + "loader_label": "Menambahkan produk ke keranjang", + "back_to_collection": "Kembali ke", + "vendor": "Vendor", + "quantity_minimum_message": "Jumlah minimalnya adalah 1", + "include_taxes": "Termasuk pajak.", + "shipping_policy_html": "Biaya pengiriman dihitung saat checkout.", + "unit_price_label": "Harga satuan", + "view_cart": "Lihat keranjang", + "view_in_space": "Lihat di lokasimu", + "view_in_space_label": "Lihat di lokasimu, muat item di jendela realitas tertambah" + } + }, + "gift_cards": { + "issued": { + "title_html": "Voucher senilai {{ value }} untuk {{ shop }} khusus untukmu!", + "subtext": "Vouchermu", + "gift_card_code": "Kode voucher", + "disabled": "Dinonaktifkan", + "expired": "Kedaluwarsa pada {{ expiry }}", + "active": "Kedaluwarsa pada {{ expiry }}", + "redeem_html": "Gunakan kode ini saat checkout untuk menukarkan voucher milikmu senilai {{ value }}", + "shop_link": "Mulai belanja", + "print": "Cetak kartu hadiah ini", + "remaining_html": "Tersisa {{ balance }}", + "add_to_apple_wallet": "Tambahkan ke Apple Wallet", + "qr_image_alt": "Kode QR — pindai untuk menukarkan voucher" + } + }, + "store_availability": { + "general": { + "view_store_info": "Lihat informasi toko", + "check_other_stores": "Periksa ketersediaan di toko lainnya", + "pick_up_available": "Pengambilan tersedia", + "pick_up_currently_unavailable": "Pengambilan saat ini tersedia", + "pick_up_available_at_html": "Dapat diambil di {{ location_name }}", + "pick_up_unavailable_at_html": "Tidak dapat diambil di {{ location_name }}" + } + } +} diff --git a/shopify/locales/it.json b/shopify/locales/it.json new file mode 100644 index 00000000..50e336fe --- /dev/null +++ b/shopify/locales/it.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Vai direttamente ai contenuti", + "close_modal": "Chiudi", + "link_messages": { + "new_window": "Apre in una nuova finestra.", + "external": "Apre un sito esterno.", + "new_window_and_external": "Apre un sito esterno in una nuova finestra." + }, + "refresh_page": "Scegliendo una selezione si ottiene un aggiornamento completo della pagina.", + "selection_help": "Premi la barra spaziatrice e i tasti freccia per effettuare una selezione.", + "unit_price_separator": "per", + "error": "Errore" + }, + "meta": { + "tags": "Tagged \"{{ tags }}\"", + "page": "Pagina {{ page }}" + }, + "404": { + "title": "404 Pagina non trovata", + "subtext": "La pagina che hai richiesto non esiste.", + "link": "Continua lo shopping" + }, + "pagination": { + "previous": "Pagina precedente", + "next": "Pagina successiva", + "current_page": "Pagina {{ current }} di {{ total }}" + }, + "password_page": { + "opening_soon": "Prossima apertura", + "login_form_heading": "Accedi al negozio usando la password", + "login_form_password_label": "Password", + "login_form_password_placeholder": "La tua password", + "login_form_submit": "Accedi", + "signup_form_email_label": "Email", + "signup_form_success": "Ti invieremo un'email appena prima di aprire!", + "admin_link_html": "Sei il proprietario del negozio? Accedi qui", + "password_link": "Accedi usando la password" + }, + "social": { + "share_on_facebook": "Condividi", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin", + "alt_text": { + "share_on_facebook": "Condividi su Facebook", + "share_on_twitter": "Twitta su Twitter", + "share_on_pinterest": "Pinna su Pinterest" + } + }, + "search": { + "empty_search_message": "Il campo di ricerca non può essere vuoto", + "title": "Cerca nel nostro sito", + "placeholder": "Cerca", + "submit": "Invia", + "close": "Chiudi ricerca", + "heading": { + "one": "Risultato della ricerca", + "other": "Risultati della ricerca" + }, + "search_for": "Cerca", + "loading": "Caricamento", + "clear_search_term": "Cancella termine ricerca", + "number_of_results": "{{ result_number }} di {{ results_count }}", + "products": "Prodotti", + "number_of_results_found": "{{ results_count }} risultati trovati", + "one_result_found": "1 risultato trovato", + "no_results": "Controlla l'ortografia o prova una parola diversa.", + "results_with_count": { + "one": "{{ count }} risultato per “{{ terms }}”", + "other": "{{ count }} risultati per “{{ terms }}”" + } + }, + "newsletter_form": { + "newsletter_email": "Iscriviti alla nostra mailing list", + "email_placeholder": "Indirizzo email", + "confirmation": "Grazie per l'iscrizione!", + "submit": "Iscriviti" + }, + "filters": { + "show_more": "Mostra di più", + "show_less": "Mostra di meno" + }, + "payment": { + "method": "Metodi di pagamento" + }, + "language": { + "dropdown_label": "Lingua" + }, + "country": { + "dropdown_label": "Paese/Area geografica" + } + }, + "sections": { + "slideshow": { + "next_slide": "Slide successiva", + "previous_slide": "Slide Precedente", + "pause_slideshow": "Metti in pausa", + "rotate_slideshow": "Avvia slideshow", + "load_slide": "Carica slide {{ slide_number }}", + "navigation_instructions": "Usa le frecce sinistra/destra per navigare nella presentazione o scorri a sinistra/destra se stai utilizzando un dispositivo mobile" + }, + "featured_product": { + "title": "Prodotto presentato", + "gallery_thumbnail_alt": "Carica l'immagine nel visualizzatore di Gallery, {{ imageAlt }}", + "video_thumbnail_alt": "Carica e avvia il video nel visualizzatore di galleria, {{ imageAlt }}", + "model_thumbnail_alt": "Carica il modello 3D nel visualizzatore di Gallery, {{ imageAlt }}" + }, + "map": { + "address_error": "Errore durante la ricerca dell'indirizzo", + "address_no_results": "La ricerca non ha prodotto alcun risultato per quell’indirizzo", + "address_query_limit_html": "Hai superato il limite di utilizzo dell'API di Google. Considera l’aggiornamento a un Piano Premium.", + "auth_error_html": "Si è verificato un problema di autenticazione con il tuo account di Google Maps.", + "section_heading": "Posizione" + }, + "video": { + "play": "Riproduci il video {{ video_title }}", + "pause": "Metti in pausa il video {{ video_title }}", + "resume": "Riprendi il video {{ video_title }}", + "close": "Chiudi il video {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Annuncio" + } + }, + "blogs": { + "article": { + "view_all": "Visualizza tutto", + "view_all_blogs": "Visualizza tutti gli articoli", + "all_topics": "Tutti gli argomenti", + "by_author": "di {{ author }}", + "posted_in": "Pubblicato in", + "read_more": "Leggi di più", + "read_more_title": "Leggi di più: {{ title }}", + "back_to_blog": "Torna a {{ title }}", + "tags": "Tag", + "article_with_count": { + "one": "{{ count }} articolo", + "other": "{{ count }} articoli" + } + }, + "comments": { + "title": "Lascia un commento", + "name": "Nome", + "email": "Email", + "message": "Messaggio", + "post": "Pubblica commento", + "moderated": "Si prega di notare che i commenti sono soggetti ad approvazione prima di essere pubblicati", + "success_moderated": "Il tuo commento è stato pubblicato. Lo pubblicheremo fra poco, il nostro blog è soggetto a moderazione.", + "success": "Il tuo commento è stato pubblicato! Grazie!", + "unapproved": "L'indirizzo email fornito non è approvato per la pubblicazione di commenti.", + "comments_with_count": { + "one": "{{ count }} commento", + "other": "{{ count }} commenti" + } + } + }, + "cart": { + "general": { + "title": "Il tuo carrello", + "note": "Aggiungi una nota al tuo ordine", + "removed_item_html": "({{ quantity }}) {{ link }} sono stati rimossi dal carrello.", + "remove": "Rimuovi", + "subtotal": "Subtotale", + "savings": "Stai risparmiando", + "taxes_and_shipping_at_checkout": "Imposte e spese di spedizione calcolate al momento del pagamento", + "taxes_and_shipping_policy_at_checkout_html": "Imposte e spese di spedizione calcolate al momento del pagamento", + "taxes_included_but_shipping_at_checkout": "Imposte incluse e spese di spedizione calcolate al momento del pagamento", + "taxes_included_and_shipping_policy_html": "Imposte incluse. Spedizione calcolata al momento del pagamento.", + "update": "Aggiornamento", + "checkout": "Check-out", + "empty": "Il tuo carrello è attualmente vuoto.", + "cookies_required": "Abilita i cookie per utilizzare il carrello", + "continue_shopping": "Continua lo shopping", + "cart_error": "Si è verificato un errore durante l'aggiornamento del carrello. Riprova più tardi." + }, + "label": { + "discounted_total": "Totale scontato", + "product": "Prodotto", + "price": "Prezzo", + "price_column": "Vedi la colonna Prezzo per i dettagli dello sconto.", + "product_details": "Dettagli prodotto", + "quantity": "Quantità", + "qty": "Quantità", + "regular_total": "Totale di listino", + "remove": "Rimuovi {{ product }}", + "total": "Totale", + "update": "Aggiornamento" + }, + "popup": { + "added_to_cart": "Appena aggiunto al carrello", + "cart_count": { + "one": "{{ count }} articolo", + "other": "{{ count }} articoli" + }, + "product_details": "Dettagli prodotto", + "quantity": "Quantità", + "quantity_label": "Quantità: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Visualizza tutto", + "view_all_label": "Visualizza tutti i prodotti della collezione {{ collection_name }}", + "no_matches": "Spiacenti, non ci sono prodotti in questa collezione", + "items_with_count": { + "one": "{{ count }} prodotto", + "other": "{{ count }} prodotti" + }, + "collection_label": "Collezione" + }, + "catalog": { + "title": "Catalogo" + }, + "sorting": { + "title": "Ordina per" + }, + "filters": { + "title_tags": "Filtra per", + "all_tags": "Tutte i prodotti" + } + }, + "contact": { + "form": { + "name": "Nome", + "email": "Email", + "phone": "Numero di telefono", + "message": "Messaggio", + "submit": "Invia", + "post_success": "Grazie per averci contattato. Risponderemo al più presto possibile.", + "error_heading": "Si prega di regolare il seguente:" + } + }, + "customer": { + "account": { + "title": "Il mio account", + "details": "Dettagli account", + "view_addresses": "Visualizza indirizzi", + "return": "Ritorna ai dettagli dell'account" + }, + "activate_account": { + "title": "Attiva il tuo account", + "subtext": "Crea una password per attivare il tuo account.", + "password": "Password", + "password_confirm": "Conferma Password", + "submit": "Attiva il tuo account", + "cancel": "Rifiuta invito" + }, + "addresses": { + "title": "I tuoi indirizzi", + "default": "Predefinito", + "add_new": "Aggiungi un nuovo indirizzo", + "edit_address": "Modifica indirizzo", + "first_name": "Nome", + "last_name": "Cognome", + "company": "Azienda", + "address1": "Indirizzo", + "address2": "Interno, scala, ecc.", + "city": "Città", + "country": "Paese/Area geografica", + "province": "Provincia", + "zip": "CAP", + "phone": "Numero di telefono", + "set_default": "Imposta come indirizzo predefinito", + "add": "Aggiungi indirizzo", + "update": "Aggiorna indirizzo", + "cancel": "Annulla", + "edit": "Modifica", + "delete": "Elimina", + "delete_confirm": "Sei sicuro di voler eliminare questo indirizzo?" + }, + "login": { + "title": "Accesso", + "email": "Email", + "password": "Password", + "forgot_password": "Hai dimenticato la password?", + "sign_in": "Accedi", + "guest_title": "Continua senza registrarti", + "guest_continue": "Continua" + }, + "orders": { + "title": "Cronologia degli ordini", + "order_number": "Ordine", + "order_number_link": "Numero ordine {{ number }}", + "date": "Data", + "payment_status": "Stato del pagamento", + "fulfillment_status": "Stato di evasione", + "total": "Totale", + "none": "Non hai ancora effettuato ordini." + }, + "order": { + "title": "Ordine {{ name }}", + "date_html": "Piazzato il {{ date }}", + "cancelled_html": "Ordine annullato il {{ date }}", + "cancelled_reason": "Motivo: {{ reason }}", + "billing_address": "Indirizzo di fatturazione", + "payment_status": "Stato del pagamento", + "shipping_address": "Indirizzo Spedizione", + "fulfillment_status": "Stato di evasione", + "discount": "Sconto", + "shipping": "Spedizione", + "tax": "Imposta", + "product": "Prodotto", + "sku": "SKU", + "price": "Prezzo", + "quantity": "Quantità", + "total": "Totale", + "fulfilled_at_html": "Evaso il {{ date }}", + "subtotal": "Subtotale", + "track_shipment": "Controlla lo status della spedizione" + }, + "recover_password": { + "title": "Ripristina la tua password", + "email": "Email", + "submit": "Invia", + "cancel": "Annulla", + "subtext": "Riceverai un'email per ripristinare la tua password.", + "success": "Ti abbiamo inviato un'email con un link per aggiornare la tua password." + }, + "reset_password": { + "title": "Ripristina la tua password", + "subtext": "Inserisci una nuova password per {{ email }}", + "password": "Password", + "password_confirm": "Conferma Password", + "submit": "Ripristina la password" + }, + "register": { + "title": "Crea account", + "first_name": "Nome", + "last_name": "Cognome", + "email": "Email", + "password": "Password", + "submit": "Crea" + } + }, + "homepage": { + "general": { + "title": "Homepage" + }, + "onboarding": { + "product_title": "Nome del tuo prodotto", + "product_description": "Quest’area è per descrivere i dettagli del tuo prodotto. Qui puoi descrivere l'aspetto, il look e lo stile del prodotto ai tuoi clienti. Aggiungi dettagli sul colore, sui materiali utilizzati, sulle misure e su dove è stato creato.", + "collection_title": "Nome della tua collezione", + "blog_title": "Titolo del tuo post", + "blog_excerpt": "Il tuo negozio non ha ancora pubblicato nessun post sul blog. Un blog può essere utilizzato per parlare del lancio di nuovi prodotti, dare suggerimenti o altre notizie che desideri condividere con i tuoi clienti. Dai un’occhiata al blog di ecommerce di Shopify per farti ispirare e per trovare idee e consigli relativi al tuo negozio e blog.", + "blog_author": "Nome dell'autore", + "no_content": "Attualmente questa sezione non contiene nessun contenuto. Aggiungi contenuto a questa sezione utilizzando la barra laterale." + } + }, + "layout": { + "navigation": { + "search": "Cerca", + "expand": "espandi", + "collapse": "comprimi", + "menu": "Menu" + }, + "cart": { + "title": "Carrello", + "items_count": { + "one": "articolo", + "other": "articoli" + } + }, + "customer": { + "account": "Account", + "log_out": "Esci", + "log_in": "Accedi", + "create_account": "Crea account" + }, + "footer": { + "social_platform": "{{ name }} su {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Prezzo di listino", + "sold_out": "Esaurito", + "unavailable": "Non disponibile", + "on_sale": "In Offerta", + "sale_price": "Prezzo scontato", + "quantity": "Quantità", + "add_to_cart": "Aggiungi al carrello", + "loader_label": "Inserimento del prodotto nel carrello", + "back_to_collection": "Torna a", + "vendor": "Venditore", + "quantity_minimum_message": "La quantità deve essere 1 o più", + "include_taxes": "Imposte incluse.", + "shipping_policy_html": "Spedizione calcolata al momento del pagamento.", + "unit_price_label": "Prezzo unitario", + "view_cart": "Visualizza carrello", + "availability": "Disponibilità", + "from_lowest_price_html": "da {{ lowest_price }}", + "view_in_space": "Visualizza nel tuo spazio", + "view_in_space_label": "Visualizzazione nel tuo spazio, carica l'elemento nella finestra di realtà aumentata" + } + }, + "gift_cards": { + "issued": { + "title_html": "Ecco il tuo {{ value }} buono regalo per {{ shop }}!", + "subtext": "Il tuo buono regalo", + "gift_card_code": "codice della carta regalo", + "disabled": "Disabilitati", + "expired": "Scaduto il {{ expiry }}", + "active": "Scade il {{ expiry }}", + "redeem_html": "Utilizza questo codice alla cassa per riscattare la tua carta regalo di {{ value }}", + "shop_link": "Inizia a fare shopping", + "print": "Stampa questo buono regalo", + "remaining_html": "{{ balance }} rimasti", + "add_to_apple_wallet": "Aggiungi a Apple Wallet", + "qr_image_alt": "Codice QR: scansiona per riscattare la carta regalo" + } + }, + "store_availability": { + "general": { + "view_store_info": "Visualizza i dettagli del negozio", + "check_other_stores": "Verifica la disponibilità in altri negozi", + "pick_up_available": "Ritiro disponibile", + "pick_up_currently_unavailable": "Ritiro attualmente non disponibile", + "pick_up_available_at_html": "Ritiro disponibile presso {{ location_name }}", + "pick_up_unavailable_at_html": "Ritiro presso {{ location_name }} attualmente non disponibile" + } + } +} diff --git a/shopify/locales/ja.json b/shopify/locales/ja.json new file mode 100644 index 00000000..7bc0f144 --- /dev/null +++ b/shopify/locales/ja.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "コンテンツにスキップする", + "close_modal": "閉じる", + "link_messages": { + "new_window": "新しいウィンドウで開く", + "external": "外部のウェブサイトに移動します。", + "new_window_and_external": "外部のウェブサイトを新しいウィンドウで開く" + }, + "refresh_page": "選択結果を選ぶと、ページが全面的に更新されます。", + "selection_help": "スペースキーを押してから矢印キーを押して選択します。", + "unit_price_separator": "あたり", + "error": "エラー" + }, + "meta": { + "tags": "タグ \"{{ tags }}\"", + "page": "ページ {{ page }}" + }, + "404": { + "title": "ページが見つかりません", + "subtext": "お探しのページは存在しません。", + "link": "買い物を続ける" + }, + "pagination": { + "previous": "前のページ", + "next": "次のページ", + "current_page": "ページ: {{ current }} / {{ total }}" + }, + "password_page": { + "opening_soon": "まもなくオープンします", + "login_form_heading": "ストアのパスワードを入力してください", + "login_form_password_label": "パスワード", + "login_form_password_placeholder": "あなたのパスワード", + "login_form_submit": "入力する", + "signup_form_email_label": "メール", + "signup_form_success": "ストアがオープンする直前にメールでお知らせします!", + "admin_link_html": "あなたはストアのオーナーですか?こちらからログインする", + "password_link": "パスワードを入力してください" + }, + "social": { + "share_on_facebook": "シェア", + "share_on_twitter": "ツイート", + "share_on_pinterest": "ピンする", + "alt_text": { + "share_on_facebook": "Facebookでシェアする", + "share_on_twitter": "Twitterに投稿する", + "share_on_pinterest": "Pinterestでピンする" + } + }, + "search": { + "empty_search_message": "検索フィールドを空にすることはできません", + "title": "サイトを検索する", + "placeholder": "検索する", + "submit": "送信", + "close": "検索を閉じる", + "heading": { + "one": "検索結果", + "other": "の検索結果" + }, + "search_for": "検索する", + "loading": "読み込んでいます", + "clear_search_term": "検索語をクリアする", + "number_of_results": "{{ result_number }}/{{ results_count }}", + "products": "商品", + "number_of_results_found": "{{ results_count }}件の結果が見つかりました", + "one_result_found": "1件の結果が見つかりました", + "no_results": "スペルを確認するか、別の単語を試してください。", + "results_with_count": { + "one": "{{ count }}件 - 結果 ”{{ terms }}”", + "other": "{{ count }}件 - 結果 ”{{ terms }}”" + } + }, + "newsletter_form": { + "newsletter_email": "私たちのメーリングリストに登録する", + "email_placeholder": "メールアドレス", + "confirmation": "ご登録ありがとうございます!", + "submit": "登録する" + }, + "filters": { + "show_more": "さらに表示する", + "show_less": "表示を減らす" + }, + "payment": { + "method": "決済方法" + }, + "language": { + "dropdown_label": "言語" + }, + "country": { + "dropdown_label": "国/地域" + } + }, + "sections": { + "slideshow": { + "next_slide": "次のスライド", + "previous_slide": "前のスライド", + "pause_slideshow": "スライドショーを止める", + "rotate_slideshow": "スライドショーを再生する", + "load_slide": "スライド{{ slide_number }}を読み込む", + "navigation_instructions": "右と左の矢印を使ってスライドショーをナビゲートするか、モバイルデバイスを使用している場合は左右にスワイプします" + }, + "featured_product": { + "title": "おすすめ商品", + "gallery_thumbnail_alt": "画像をギャラリービューアに読み込む, {{ imageAlt }}", + "video_thumbnail_alt": "ギャラリービューア{{ imageAlt }}に読み込んでビデオを見る", + "model_thumbnail_alt": "3Dモデルをギャラリービューア{{ imageAlt }}に読み込む" + }, + "map": { + "address_error": "住所を調べる際にエラーが発生しました", + "address_no_results": "その住所は見つかりませんでした", + "address_query_limit_html": "Google APIの使用量の制限を超えました。プレミアムプランへのアップグレードをご検討ください。", + "auth_error_html": "あなたのGoogle Mapsのアカウント認証で問題が発生しました。", + "section_heading": "アクセス" + }, + "video": { + "play": "{{ video_title }}ビデオを見る", + "pause": "{{ video_title }}ビデオを一時停止する", + "resume": "{{ video_title }}ビデオを再開する", + "close": "{{ video_title }}ビデオを閉じる" + }, + "header": { + "announcement_bar_label": "告知" + } + }, + "blogs": { + "article": { + "view_all": "すべてを見る", + "view_all_blogs": "すべての記事を見る", + "all_topics": "すべてのトピック", + "by_author": "by {{ author }}", + "posted_in": "カテゴリー :", + "read_more": "続きを読む", + "read_more_title": "続きを読む: {{ title }}", + "back_to_blog": "{{ title }}に戻る", + "tags": "タグ", + "article_with_count": { + "one": "記事{{ count }}件", + "other": "記事{{ count }}件" + } + }, + "comments": { + "title": "コメントを残す", + "name": "名前", + "email": "メールアドレス", + "message": "メッセージ", + "post": "コメントを投稿する", + "moderated": "コメントは表示される前に承認される必要があります。", + "success_moderated": "コメントが投稿されました。コメントはすぐに表示されるようになります。", + "success": "コメントが投稿されました!ありがとうございます!", + "unapproved": "提供された電子メールアドレスは、コメントの投稿が承認されていません。", + "comments_with_count": { + "one": "{{ count }}件のコメント", + "other": "{{ count }}件のコメント" + } + } + }, + "cart": { + "general": { + "title": "ショッピングカート", + "note": "注文にメモを追加する", + "removed_item_html": "カートから ({{ quantity }}) 個の{{ link }}が消去されました。", + "remove": "削除", + "subtotal": "小計", + "savings": "節約", + "taxes_and_shipping_at_checkout": "税と配送料は購入手続き時に計算されます", + "taxes_and_shipping_policy_at_checkout_html": "税と配送料は購入手続き時に計算されます", + "taxes_included_but_shipping_at_checkout": "税込みで配送料は購入手続き時に計算されます。", + "taxes_included_and_shipping_policy_html": "税込価格。配送料は購入手続き時に計算されます。", + "update": "アップデート", + "checkout": "ご購入手続きへ", + "empty": "カート内に商品がありません。", + "cookies_required": "カートを使うためにCookieを有効にする", + "continue_shopping": "買い物を続ける", + "cart_error": "お客様のカートをアップデートするときにエラーが発生しました。再度お試しください。" + }, + "label": { + "discounted_total": "ディスカウント合計", + "product": "商品名", + "price": "価格", + "price_column": "ディスカウントの詳細については価格列を参照してください。", + "product_details": "商品の詳細", + "quantity": "数量", + "qty": "数量", + "regular_total": "通常合計", + "remove": "{{ product }} を削除する", + "total": "合計", + "update": "アップデート" + }, + "popup": { + "added_to_cart": "カートに追加済み", + "cart_count": { + "one": "{{ count }}個のアイテム", + "other": "{{ count }}個のアイテム" + }, + "product_details": "商品の詳細", + "quantity": "数量", + "quantity_label": "数量: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "すべてを見る", + "view_all_label": "{{ collection_name }}コレクションの全製品を見る", + "no_matches": "申し訳ございません。検索に一致する商品が見つかりませんでした。", + "items_with_count": { + "one": "{{ count }}個の商品", + "other": "{{ count }}個の商品" + }, + "collection_label": "コレクション" + }, + "catalog": { + "title": "カタログ" + }, + "sorting": { + "title": "並び替え" + }, + "filters": { + "title_tags": "絞り込み方法", + "all_tags": "すべての商品" + } + }, + "contact": { + "form": { + "name": "名前", + "email": "Eメール", + "phone": "電話番号", + "message": "メッセージ", + "submit": "送信", + "post_success": "お問い合わせをいただき、ありがとうございます。内容を確認後、早急にご返信させて頂きます。", + "error_heading": "以下を確認してください:" + } + }, + "customer": { + "account": { + "title": "私のアカウント", + "details": "アカウントの詳細", + "view_addresses": "住所を確認する", + "return": "アカウントの詳細に戻る" + }, + "activate_account": { + "title": "アカウントを有効にする", + "subtext": "アカウントを有効にするためにパスワードを作成してください。", + "password": "パスワード", + "password_confirm": "パスワードを確認する", + "submit": "アカウントを有効にする", + "cancel": "招待を断る" + }, + "addresses": { + "title": "あなたの住所", + "default": "標準設定", + "add_new": "新しい住所を追加する", + "edit_address": "住所を編集する", + "first_name": "名", + "last_name": "姓", + "company": "会社名", + "address1": "住所", + "address2": "建物名、部屋番号など", + "city": "市区町村", + "country": "国 / 地域", + "province": "都道府県", + "zip": "郵便番号", + "phone": "電話番号", + "set_default": "この住所をデフォルトとして設定する", + "add": "住所を追加する", + "update": "住所をアップデートする", + "cancel": "キャンセル", + "edit": "編集", + "delete": "削除", + "delete_confirm": "この住所を削除してもよろしいですか?" + }, + "login": { + "title": "ログイン", + "email": "メールアドレス", + "password": "パスワード", + "forgot_password": "パスワードをお忘れですか?", + "sign_in": "ログイン", + "guest_title": "ゲストとして購入", + "guest_continue": "続ける" + }, + "orders": { + "title": "注文履歴", + "order_number": "注文", + "order_number_link": "注文番号 {{ number }}", + "date": "日付", + "payment_status": "お支払い状況", + "fulfillment_status": "配送状況", + "total": "合計", + "none": "まだ注文を確定していません。" + }, + "order": { + "title": "注文 {{ name }}", + "date_html": "注文の日付 {{ date }}", + "cancelled_html": "注文がキャンセルされた日付 {{ date }}", + "cancelled_reason": "キャンセルの理由: {{ reason }}", + "billing_address": "請求先住所", + "payment_status": "お支払いの状況", + "shipping_address": "配送先住所", + "fulfillment_status": "配送状況", + "discount": "ディスカウント", + "shipping": "送料", + "tax": "税", + "product": "商品", + "sku": "SKU", + "price": "価格", + "quantity": "個数", + "total": "合計", + "fulfilled_at_html": "発送日 {{ date }}", + "subtotal": "小計", + "track_shipment": "荷物を追跡" + }, + "recover_password": { + "title": "パスワードをリセットする", + "email": "メールアドレス", + "submit": "送信する", + "cancel": "キャンセル", + "subtext": "パスワードをリセットするためのメールを送ります。", + "success": "パスワードを更新するためのメールを送信しました。" + }, + "reset_password": { + "title": "アカウントのパスワードをリセットする", + "subtext": "{{ email }}の新しいパスワードを入力してください", + "password": "パスワード", + "password_confirm": "パスワードの確認", + "submit": "パスワードをリセットする" + }, + "register": { + "title": "アカウントを作成する", + "first_name": "名", + "last_name": "姓", + "email": "メールアドレス", + "password": "パスワード", + "submit": "作成する" + } + }, + "homepage": { + "general": { + "title": "ホームページ" + }, + "onboarding": { + "product_title": "あなたの商品の名前", + "product_description": "このエリアはあなたの商品の詳細を記載するために使うことができます。お客様に商品についての情報を伝えましょう。色や材料、サイズ、どこで作られたのかなどの情報も追加しましょう。", + "collection_title": "コレクションの名前", + "blog_title": "記事のタイトル", + "blog_excerpt": "あなたはまだブログ記事を投稿していません。ブログは新商品情報やヒント、ニュースなどの情報発信に使用することができます。Shopifyのブログを確認して、ストアとブログについてのインスピレーションとアドバイスをゲットしましょう。", + "blog_author": "筆者", + "no_content": "このセクションには現在コンテンツがございません。サイドバーを使ってコンテンツを追加しましょう。" + } + }, + "layout": { + "navigation": { + "search": "検索", + "expand": "拡大", + "collapse": "折りたたむ", + "menu": "メニュー" + }, + "cart": { + "title": "カート", + "items_count": { + "one": "個", + "other": "個" + } + }, + "customer": { + "account": "アカウント", + "log_out": "ログアウト", + "log_in": "ログイン", + "create_account": "アカウントを作成する" + }, + "footer": { + "social_platform": "{{ name }} on {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "通常価格", + "sold_out": "売り切れ", + "unavailable": "お取り扱いできません", + "on_sale": "セール", + "sale_price": "販売価格", + "quantity": "個数", + "add_to_cart": "カートに追加する", + "loader_label": "カートに商品を追加する", + "back_to_collection": "以下に戻る", + "vendor": "販売元", + "quantity_minimum_message": "数量は1以上でなければなりません", + "include_taxes": "税込", + "shipping_policy_html": "配送料は購入手続き時に計算されます。", + "unit_price_label": "単価", + "view_cart": "カートを見る", + "availability": "公開状況", + "from_lowest_price_html": "{{ lowest_price }}から", + "view_in_space": "スペースに表示する", + "view_in_space_label": "スペースに表示し、拡張現実ウィンドウにアイテムを読み込む" + } + }, + "gift_cards": { + "issued": { + "title_html": "{{ shop }}で利用可能な{{ value }}のギフトカードです!", + "subtext": "あなたのギフトカード", + "gift_card_code": "ギフトカードコード", + "disabled": "無効", + "expired": "{{ expiry }}で有効期限が切れました", + "active": "{{ expiry }}で有効期限が切れます", + "redeem_html": "この{{ value }}のギフトカードを使うためには、このコードを決済時に入力してください。", + "shop_link": "買い物を始める", + "print": "このギフトカードを印刷する", + "remaining_html": "残り{{ balance }}使用可能です", + "add_to_apple_wallet": "Apple Walletに追加する", + "qr_image_alt": "QRコード - スキャンしてギフトカードにクーポンを使う" + } + }, + "store_availability": { + "general": { + "view_store_info": "ストア情報を表示する", + "check_other_stores": "別のストアでの出品状況を確認する", + "pick_up_available": "受取が可能です", + "pick_up_currently_unavailable": "受取は現在できません", + "pick_up_available_at_html": "{{ location_name }}での受取が可能です", + "pick_up_unavailable_at_html": "{{ location_name }}での受取は現在できません" + } + } +} diff --git a/shopify/locales/ko.json b/shopify/locales/ko.json new file mode 100644 index 00000000..1353f175 --- /dev/null +++ b/shopify/locales/ko.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "콘텐츠로 건너뛰기", + "close_modal": "닫기", + "link_messages": { + "new_window": "새 창에서 열기", + "external": "외부 웹사이트 열기", + "new_window_and_external": "새 창에서 외부 웹사이트 열기" + }, + "refresh_page": "선택을 누르면 전체 페이지가 새로 고쳐집니다.", + "selection_help": "스페이스 키를 누른 다음 화살표 키를 눌러 선택하십시오.", + "unit_price_separator": "당", + "error": "오류" + }, + "meta": { + "tags": "태그 \"{{ tags }}\"", + "page": "{{ page }}페이지" + }, + "404": { + "title": "404 페이지를 찾을 없음", + "subtext": "요청하신 페이지가 존재하지 않습니다.", + "link": "쇼핑 계속하기" + }, + "pagination": { + "previous": "이전 페이지", + "next": "다음 페이지", + "current_page": "{{ current }}/{{ total }}페이지" + }, + "password_page": { + "opening_soon": "곧 개장", + "login_form_heading": "비밀번호 사용하여 스토어 열기", + "login_form_password_label": "비밀번호", + "login_form_password_placeholder": "비밀번호", + "login_form_submit": "입력", + "signup_form_email_label": "이메일", + "signup_form_success": "개장 직전에 이메일을 송신해드립니다!", + "admin_link_html": "스토어 소유주입니까? 여기에 로그인 하기", + "password_link": "비밀번호를 사용하여 입력하십시오." + }, + "social": { + "share_on_facebook": "공유", + "share_on_twitter": "Tweet", + "share_on_pinterest": "고정하기", + "alt_text": { + "share_on_facebook": "Facebook에서 공유", + "share_on_twitter": "Twitter에서 트윗 작성", + "share_on_pinterest": "Pinterest에 고정하기" + } + }, + "search": { + "empty_search_message": "검색 필드를 비워 둘 수 없습니다.", + "title": "사이트 검색", + "placeholder": "검색", + "submit": "제출", + "close": "검색 닫기", + "heading": { + "one": "결과 검색", + "other": "검색 결과" + }, + "search_for": "검색", + "loading": "로드 중", + "clear_search_term": "검색어 지우기", + "number_of_results": "{{ result_number }}/{{ results_count }}", + "products": "제품", + "number_of_results_found": "{{ results_count }}개의 결과를 찾음", + "one_result_found": "1개의 결과를 찾음", + "no_results": "철자를 확인하거나 다른 단어를 사용해 보십시오.", + "results_with_count": { + "one": "'{{ terms }}'용 {{ count }} 결과", + "other": "'{{ terms }}'용 {{ count }} 결과" + } + }, + "newsletter_form": { + "newsletter_email": "메일 목록을 구독해주세요", + "email_placeholder": "이메일 주소", + "confirmation": "구독해주셔서 감사드립니다.", + "submit": "가입하기" + }, + "filters": { + "show_more": "자세히 표시", + "show_less": "간단히 표시" + }, + "payment": { + "method": "결제 방법" + }, + "language": { + "dropdown_label": "언어" + }, + "country": { + "dropdown_label": "국가/지역" + } + }, + "sections": { + "slideshow": { + "next_slide": "다음 슬라이드", + "previous_slide": "이전 슬라이드", + "pause_slideshow": "슬라이드 멈춤", + "rotate_slideshow": "슬라이드 쇼 재상", + "load_slide": "{{ slide_number }} 슬라이드 로드", + "navigation_instructions": "왼쪽 / 오른쪽 화살표를 사용하여 슬라이드 쇼를 탐색하거나 모바일 장치를 사용하는 경우 왼쪽 / 오른쪽으로 스와이프합니다." + }, + "featured_product": { + "title": "특별 상품", + "gallery_thumbnail_alt": "이미지를 갤러리 뷰어에 로드 , {{ imageAlt }}", + "video_thumbnail_alt": "비디오를 갤러리 뷰어 {{ imageAlt }}에 로드 및 재생", + "model_thumbnail_alt": "3D 모델을 갤러리 뷰어에 로드, {{ imageAlt }}" + }, + "map": { + "address_error": "주소 찾기 오류", + "address_no_results": "주소 검색 결과 없음", + "address_query_limit_html": "Google API 사용 제한을 초과하였습니다. 프리미엄 플랜 으로 업그레이드를 고려하십시오.", + "auth_error_html": "Google 지도 계정을 인증하는 중에 문제가 발생했습니다.", + "section_heading": "위치" + }, + "video": { + "play": "{{ video_title }} 동영상 재생", + "pause": "{{ video_title }} 동영상 일시 중지", + "resume": "{{ video_title }} 동영상 다시 재생", + "close": "{{ video_title }} 동영상 닫기" + }, + "header": { + "announcement_bar_label": "공지" + } + }, + "blogs": { + "article": { + "view_all": "모두 보기", + "view_all_blogs": "모든 블로그 보기", + "all_topics": "모든 주제", + "by_author": "{{ author }}", + "posted_in": "게시 완료", + "read_more": "자세한 내용 확인", + "read_more_title": "자세히 읽기 : {{ title }}", + "back_to_blog": "{{ title }} 로 돌아가기", + "tags": "태그", + "article_with_count": { + "one": "문서 {{ count }}개", + "other": "{{ count }} 기사" + } + }, + "comments": { + "title": "댓글 남기기", + "name": "이름", + "email": "이메일", + "message": "메시지", + "post": "댓글 달기", + "moderated": "댓글 게시 전에는 반드시 승인이 필요합니다.", + "success_moderated": "댓글이 성공적으로 게시되었습니다. 블로그 조정 중이므로 잠시 후에 게시됩니다.", + "success": "댓글이 성공적으로 게시되었습니다. 감사합니다!", + "unapproved": "제공된 이메일 주소가 댓글 게시를 위해 승인되지 않았습니다.", + "comments_with_count": { + "one": "댓글 {{ count }}개", + "other": "댓글 {{ count }}개" + } + } + }, + "cart": { + "general": { + "title": "장바구니", + "note": "주문에 메모 추가", + "removed_item_html": "({{ quantity }}) {{ link }}이 카드에서 제거되었습니다.", + "remove": "제거", + "subtotal": "소계", + "savings": "저장 중입니다.", + "taxes_and_shipping_at_checkout": "결제 시 세금 및 배송료가 계산됨", + "taxes_and_shipping_policy_at_checkout_html": "결제 시 세금 및 배송료 가 계산됨", + "taxes_included_but_shipping_at_checkout": "결제 시 세금이 포함되며 배송료가 계산됨", + "taxes_included_and_shipping_policy_html": "세금이 포함됨 결제 시 배송료 가 계산됨", + "update": "업데이트", + "checkout": "결제", + "empty": "현재 카트가 비어 있습니다.", + "cookies_required": "쿠키를 사용하여 쇼핑 카드 사용", + "continue_shopping": "쇼핑 계속하기", + "cart_error": "카트를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오." + }, + "label": { + "discounted_total": "총 할인", + "product": "제품", + "price": "가격", + "price_column": "할인 세부 정보를 가격 컬럼에서 확인합니다.", + "product_details": "제품 세부 정보", + "quantity": "수량", + "qty": "수량", + "regular_total": "총 정가", + "remove": "{{ product }} 제거", + "total": "총계", + "update": "업데이트" + }, + "popup": { + "added_to_cart": "카트에 추가한 품목", + "cart_count": { + "one": "{{ count }}개 품목", + "other": "{{ count }}개 품목" + }, + "product_details": "제품 세부 정보", + "quantity": "수량", + "quantity_label": "수량: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "모두 보기", + "view_all_label": "{{ collection_name }} 컬렉션의 모든 제품 보기", + "no_matches": "죄송합니다, 이 컬렉션에 제품이 없습니다.", + "items_with_count": { + "one": "{{ count }}개 제품", + "other": "{{ count }}개 제품" + }, + "collection_label": "컬렉션" + }, + "catalog": { + "title": "카탈로그" + }, + "sorting": { + "title": "정렬 기준" + }, + "filters": { + "title_tags": "필터 기준", + "all_tags": "모든 제품" + } + }, + "contact": { + "form": { + "name": "이름", + "email": "이메일", + "phone": "전화 번호", + "message": "메시지", + "submit": "보내기", + "post_success": "문의해 주셔서 감사드립니다. 최대한 빨리 답변드리겠습니다.", + "error_heading": "다음을 조정하십시오." + } + }, + "customer": { + "account": { + "title": "내 계정", + "details": "계정 세부 정보", + "view_addresses": "주소 보기", + "return": "계정 세부 정보로 돌아가기" + }, + "activate_account": { + "title": "계정 활성화하기", + "subtext": "계정을 활성화하려면 비밀번호를 생성하십시오.", + "password": "비밀번호", + "password_confirm": "비밀번호 확인", + "submit": "계정 활성화", + "cancel": "초대 거절하기" + }, + "addresses": { + "title": "주소", + "default": "기본값", + "add_new": "새 주소 추가", + "edit_address": "주소 편집", + "first_name": "이름", + "last_name": "성", + "company": "회사", + "address1": "주소", + "address2": "아파트, 동/호수 등", + "city": "구/군/시", + "country": "국가/지역", + "province": "시/도", + "zip": "우편 번호", + "phone": "전화", + "set_default": "기본 주소로 설정", + "add": "주소 추가", + "update": "주소 업데이트", + "cancel": "취소", + "edit": "편집", + "delete": "삭제", + "delete_confirm": "이 주소를 삭제하시겠습니까?" + }, + "login": { + "title": "로그인", + "email": "이메일", + "password": "비밀번호", + "forgot_password": "비밀번호를 잊으셨나요?", + "sign_in": "로그인합니다.", + "guest_title": "게스트로 계속하기", + "guest_continue": "계속" + }, + "orders": { + "title": "주문 기록", + "order_number": "주문", + "order_number_link": "주문 번호 {{ number }}", + "date": "일", + "payment_status": "결제 상태", + "fulfillment_status": "주문 처리 상태", + "total": "총계", + "none": "아직 주문하지 않았습니다." + }, + "order": { + "title": "{{ name }} 주문", + "date_html": "주문 일자 : {{ date }}", + "cancelled_html": "주문 취소 일자 : {{ date }}", + "cancelled_reason": "이유: {{ reason }}", + "billing_address": "청구 주소", + "payment_status": "결제 상태", + "shipping_address": "배송 주소", + "fulfillment_status": "주문 처리 상태", + "discount": "할인", + "shipping": "배송", + "tax": "세금", + "product": "제품", + "sku": "SKU", + "price": "가격", + "quantity": "수량", + "total": "총계", + "fulfilled_at_html": "주문 처리 : {{ date }}", + "subtotal": "소계", + "track_shipment": "배송 추적" + }, + "recover_password": { + "title": "비밀번호 재설정", + "email": "이메일", + "submit": "제출", + "cancel": "취소", + "subtext": "비밀번호를 재설정하기 위해 이메일을 송신합니다.", + "success": "비밀번호를 엄데이트 할 링크가 포함된 이메일을 송신합니다." + }, + "reset_password": { + "title": "계정 비밀번호 재설정", + "subtext": "{{ email }}의 새 비밀번호 입력", + "password": "비밀번호", + "password_confirm": "비밀번호 확인", + "submit": "비밀번호 재설정" + }, + "register": { + "title": "계정 생성", + "first_name": "이름", + "last_name": "성", + "email": "이메일", + "password": "비밀번호", + "submit": "생성" + } + }, + "homepage": { + "general": { + "title": "홈페이지" + }, + "onboarding": { + "product_title": "제품명", + "product_description": "제품 세부 정보를 설명하는데 사용되는 영역입니다. 고객에게 제품의 외형, 촉감, 스타일에 대해 설명하십시오. 색상, 사용된 재료, 사이즈 및 제조 장소에 대한 세부 정보를 추가하십시오.", + "collection_title": "컬렉션 이름", + "blog_title": "게시물 제목", + "blog_excerpt": "스토어에 아직 블로그를 게시하지 않았습니다. 신제품 출시, 팁 및 고객과 공유를 원하는 기타 뉴스를 소개하기 위해 블로그를 사용할 수 있습니다. 스토어 및 블로그에 대한 아이디어 및 개선이 필요하시면 Shopify의 상거래 블로그를 확인하십시오.", + "blog_author": "작성자 이름", + "no_content": "이 섹션에는 현재 게시물이 없습니다. 사이드 바를 이용하여 이 섹션에 게시물을 추가하십시오." + } + }, + "layout": { + "navigation": { + "search": "검색", + "expand": "확장", + "collapse": "폭락", + "menu": "메뉴" + }, + "cart": { + "title": "카트", + "items_count": { + "one": "품목", + "other": "품목" + } + }, + "customer": { + "account": "계정", + "log_out": "로그아웃", + "log_in": "로그인", + "create_account": "계정 생성" + }, + "footer": { + "social_platform": "{{ name }}({{ platform }})" + } + }, + "products": { + "product": { + "regular_price": "정가", + "sold_out": "품절", + "unavailable": "사용할 수 없음", + "on_sale": "판매", + "sale_price": "판매 가격", + "quantity": "수량", + "add_to_cart": "카트에 추가", + "loader_label": "카트에 제품 추가", + "back_to_collection": "돌아가기", + "vendor": "공급업체", + "quantity_minimum_message": "수량이 1개 이상이어야 합니다.", + "include_taxes": "세금이 포함됨", + "shipping_policy_html": "결제 시 배송료 가 계산됨", + "unit_price_label": "단가", + "view_cart": "카트 보기", + "availability": "사용 가능성", + "from_lowest_price_html": "{{ lowest_price }}에서", + "view_in_space": "사용자 공간에서 보기", + "view_in_space_label": "사용자 공간에서 보기, 증강 현실 창에서 항목 로드하기" + } + }, + "gift_cards": { + "issued": { + "title_html": "여기에 {{ shop }} 의 {{ value }} 기프트 카드가 있습니다.", + "subtext": "기프트 카드", + "gift_card_code": "기프트 카드 코드", + "disabled": "사용 안 함", + "expired": "만료일 : {{ expiry }}", + "active": "만료일 : {{ expiry }}", + "redeem_html": "결제 시 이 코드를 사용하여 {{ value }} 기프트 카드 현금화", + "shop_link": "쇼핑 시작", + "print": "이 기프트 카드 인쇄", + "remaining_html": "{{ balance }} 왼쪽", + "add_to_apple_wallet": "Apple Wallet에 추가", + "qr_image_alt": "QR 코드 — 스캔하여 기프트 카드 현금화" + } + }, + "store_availability": { + "general": { + "view_store_info": "스토어 정보 보기", + "check_other_stores": "다른 스토어 사용 가능 여부 확인", + "pick_up_available": "픽업을 사용할 수 있습니다.", + "pick_up_currently_unavailable": "현재 픽업을 사용할 수 없습니다.", + "pick_up_available_at_html": "{{ location_name }}에서 픽업을 사용할 수 있습니다.", + "pick_up_unavailable_at_html": "{{ location_name }}에서는 현재 픽업을 사용할 수 없습니다." + } + } +} diff --git a/shopify/locales/lt-LT.json b/shopify/locales/lt-LT.json new file mode 100644 index 00000000..37e10b51 --- /dev/null +++ b/shopify/locales/lt-LT.json @@ -0,0 +1,446 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "products": { + "product": { + "from_lowest_price_html": "от {{ lowest_price }}", + "regular_price": "Įprasta kaina", + "sold_out": "Išparduota", + "unavailable": "Nėra", + "availability": "Pasiekiamumas", + "on_sale": "Išpardavimas", + "sale_price": "Kaina su nuolaida", + "quantity": "Kiekis", + "add_to_cart": "Pridėti prie krepšelio", + "loader_label": "Gaminys pridedamas prie krepšelio", + "back_to_collection": "Grįžti į", + "vendor": "Tiekėjas", + "quantity_minimum_message": "Kiekis turi būti 1 arba daugiau", + "include_taxes": "Mokesčiai įtraukti.", + "shipping_policy_html": "Siuntimo išlaidos apskaičiuojamos atsiskaitant.", + "unit_price_label": "Vieneto kaina", + "view_cart": "Žr. krepšelį", + "view_in_space": "Peržiūra savo erdvėje", + "view_in_space_label": "Funkcija „Peržiūra savo erdvėje“ elementą įkelia į išplėstinės realybės langą" + } + }, + "general": { + "accessibility": { + "skip_to_content": "Eiti į turinį", + "close_modal": "Uždaryti", + "refresh_page": "Pasirenkami atrankos rezultatai atnaujinant visą puslapį.", + "selection_help": "Kad pasirinktumėte, paspauskite tarpo klavišą, tada – rodyklių klavišus.", + "unit_price_separator": "per", + "error": "Klaida", + "link_messages": { + "new_window": "Atidaroma naujame lange.", + "external": "Atidaroma išorinė svetainė.", + "new_window_and_external": "Atidaroma išorinė svetainė naujame lange." + } + }, + "meta": { + "tags": "Pažymėta „{{ tags }}“", + "page": "{{ page }} psl." + }, + "404": { + "title": "404: puslapis nerastas", + "subtext": "Puslapis, dėl kurio pateikėte užklausą, neegzistuoja.", + "link": "Tęsti apsipirkimą" + }, + "pagination": { + "previous": "Ankstesnis puslapis", + "next": "Kitas puslapis", + "current_page": "{{ current }} iš {{ total }} psl." + }, + "password_page": { + "opening_soon": "Netrukus bus atidaryta", + "login_form_heading": "Apsilankyti parduotuvėje naudojant slaptažodį", + "login_form_password_label": "Slaptažodis", + "login_form_password_placeholder": "Jūsų slaptažodis", + "login_form_submit": "Įvesti", + "signup_form_email_label": "El. paštas", + "signup_form_success": "Prieš pat atsidarydami atsiųsime jums el. laišką!", + "admin_link_html": "Ar esate parduotuvės savininkas? Prisijunkite čia", + "password_link": "Apsilankyti naudojant slaptažodį" + }, + "social": { + "share_on_facebook": "Bendrinti", + "share_on_twitter": "Skelbti „Twitter“", + "share_on_pinterest": "Skelbti", + "alt_text": { + "share_on_facebook": "Bendrinti „Facebook“", + "share_on_twitter": "Skelbti „Twitter“", + "share_on_pinterest": "Skelbti „Pinterest“" + } + }, + "search": { + "no_results": "Patikrinkite rašybą arba vartokite kitus žodžius.", + "empty_search_message": "Paieškos laukas negali būti tuščias", + "title": "Ieškoti svetainėje", + "placeholder": "Ieškoti", + "submit": "Pateikti", + "close": "Uždaryti paiešką", + "search_for": "Ieškoti", + "products": "Gaminiai", + "loading": "Įkeliama", + "clear_search_term": "Išvalyti paieškos terminą", + "number_of_results": "{{ result_number }} iš {{ results_count }}", + "number_of_results_found": "Rasta rezultatų: {{ results_count }}", + "one_result_found": "Rastas 1 rezultatas", + "results_with_count": { + "one": "{{ count }} rezultatas pagal užklausą „{{ terms }}“", + "other": "{{ count }} rezultatai (-ų) pagal užklausą „{{ terms }}“", + "few": "{{ count }} rezultatai (-ų) pagal užklausą „{{ terms }}“", + "many": "{{ count }} rezultatai (-ų) pagal užklausą „{{ terms }}“" + }, + "heading": { + "one": "Paieškos rezultatas", + "other": "Paieškos rezultatai", + "few": "Paieškos rezultatai", + "many": "Paieškos rezultatai" + } + }, + "newsletter_form": { + "newsletter_email": "Prenumeruokite mūsų adresų sąrašą", + "email_placeholder": "El. pašto adresas", + "confirmation": "Dėkojame, kad prenumeruojate!", + "submit": "Prenumeruoti" + }, + "filters": { + "show_more": "Rodyti daugiau", + "show_less": "Rodyti mažiau" + }, + "payment": { + "method": "Mokėjimo būdai" + }, + "language": { + "dropdown_label": "Kalba" + }, + "country": { + "dropdown_label": "Šalis / regionas" + } + }, + "sections": { + "slideshow": { + "next_slide": "Kita skaidrė", + "previous_slide": "Ankstesnė skaidrė", + "pause_slideshow": "Pristabdyti skaidrių peržiūrą", + "rotate_slideshow": "Leisti skaidrių peržiūrą", + "load_slide": "Įkelti {{ slide_number }} skaidrę", + "navigation_instructions": "Valdykite skaidrių peržiūrą naudodami rodyklių kairėn ir dešinėn klavišus arba, jei naudojate mobilųjį įrenginį, perbraukite kairėn ar dešinėn" + }, + "featured_product": { + "title": "Siūlomas gaminys", + "gallery_thumbnail_alt": "Įkelti vaizdą į galerijos rodinį, {{ imageAlt }}", + "video_thumbnail_alt": "Įkelti vaizdo įrašą ir jį paleisti galerijos rodinyje, {{ imageAlt }}", + "model_thumbnail_alt": "Įkelti trimatį modelį į galerijos rodinį, {{ imageAlt }}" + }, + "map": { + "address_error": "Ieškant šio adreso įvyko klaida", + "address_no_results": "Nerasta šio adreso rezultatų", + "address_query_limit_html": "Viršijote „Google“ API naudojimo apribojimą. Apsvarstykite galimybę naujovinti į planą „Premium“.", + "auth_error_html": "Patvirtinant „Google“ žemėlapių paskyrą įvyko klaida.", + "section_heading": "Vieta" + }, + "video": { + "play": "Leisti vaizdo įrašą „{{ video_title }}“", + "pause": "Pristabdyti vaizdo įrašą „{{ video_title }}“", + "resume": "Tęsti vaizdo įrašą „{{ video_title }}“", + "close": "Uždaryti vaizdo įrašą „{{ video_title }}“" + }, + "header": { + "announcement_bar_label": "Skelbimas" + } + }, + "blogs": { + "article": { + "view_all": "Žr. viską", + "view_all_blogs": "Žr. visus tinklaraščius", + "all_topics": "Visos temos", + "by_author": "pateikė {{ author }}", + "posted_in": "Paskelbta", + "read_more": "Skaityti daugiau", + "read_more_title": "Skaityti daugiau: „{{ title }}“", + "back_to_blog": "Grįžti į „{{ title }}“", + "tags": "Žymės", + "article_with_count": { + "one": "Straipsnių: {{ count }}", + "other": "{{ count }} straipsniai (-ių)", + "few": "{{ count }} straipsniai (-ių)", + "many": "{{ count }} straipsniai (-ių)" + } + }, + "comments": { + "title": "Rašyti komentarą", + "name": "Vardas", + "email": "El. paštas", + "message": "Pranešimas", + "post": "Skelbti komentarą", + "moderated": "Turėkite omenyje, kad prieš paskelbiant komentarus, jie turi būti patvirtinti", + "success_moderated": "Komentaras sėkmingai pateiktas. Paskelbsime jį netrukus, nes mūsų tinklaraštis prižiūrimas.", + "success": "Komentaras sėkmingai pateiktas! Dėkojame!", + "unapproved": "Pateiktas el. pašto adresas nėra patvirtintas, kad iš jo būtų galima skelbti komentarus.", + "comments_with_count": { + "one": "{{ count }} komentaras", + "other": "{{ count }} komentarai (-ų)", + "few": "{{ count }} komentarai (-ų)", + "many": "{{ count }} komentarai (-ų)" + } + } + }, + "cart": { + "general": { + "title": "Jūsų krepšelis", + "note": "Pridėkite prie užsakymo pastabą", + "removed_item_html": "Iš krepšelio pašalinta ({{ quantity }}) {{ link }}.", + "remove": "Pašalinti", + "subtotal": "Tarpinė suma", + "savings": "Sutaupote", + "taxes_and_shipping_at_checkout": "Mokesčiai ir siuntimo išlaidos apskaičiuojami atsiskaitant", + "taxes_and_shipping_policy_at_checkout_html": "Mokesčiai ir siuntimo išlaidos apskaičiuojami atsiskaitant", + "taxes_included_but_shipping_at_checkout": "Mokesčiai įtraukti, o siuntimo išlaidos apskaičiuojamos atsiskaitant", + "taxes_included_and_shipping_policy_html": "Mokesčiai įtraukti. Siuntimo išlaidos apskaičiuojamos atsiskaitant.", + "update": "Atnaujinti", + "checkout": "Atsiskaityti", + "empty": "Šiuo metu jūsų krepšelis tuščias.", + "cookies_required": "Kad galėtumėte naudoti pirkinių krepšelį, įgalinkite slapukus", + "continue_shopping": "Tęsti apsipirkimą", + "cart_error": "Atnaujinant krepšelį įvyko klaida. Bandykite dar kartą." + }, + "label": { + "discounted_total": "Visa suma su nuolaida", + "product": "Gaminys", + "price": "Kaina", + "price_column": "Informaciją apie nuolaidą rasite stulpelyje „Kaina“.", + "product_details": "Gaminio informacija", + "quantity": "Kiekis", + "qty": "Kiekis", + "regular_total": "Visa suma be nuolaidos", + "remove": "Pašalinti {{ product }}", + "total": "Visa suma", + "update": "Atnaujinti" + }, + "popup": { + "added_to_cart": "Ką tik pridėta prie krepšelio", + "product_details": "Gaminio informacija", + "quantity": "Kiekis", + "quantity_label": "Kiekis: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} prekė", + "other": "{{ count }} prekės (-ių)", + "few": "{{ count }} prekės (-ių)", + "many": "{{ count }} prekės (-ių)" + } + } + }, + "collections": { + "general": { + "view_all": "Žr. viską", + "view_all_label": "Žr. visus kolekcijos „{{ collection_name }}“ gaminius", + "no_matches": "Deja, šioje kolekcijoje gaminių nėra", + "collection_label": "Kolekcija", + "items_with_count": { + "one": "{{ count }} gaminys", + "other": "{{ count }} gaminiai (-ių)", + "few": "{{ count }} gaminiai (-ių)", + "many": "{{ count }} gaminiai (-ių)" + } + }, + "catalog": { + "title": "Katalogas" + }, + "sorting": { + "title": "Rūšiuoti pagal" + }, + "filters": { + "title_tags": "Filtruoti pagal", + "all_tags": "Visi gaminiai" + } + }, + "contact": { + "form": { + "name": "Vardas", + "email": "El. paštas", + "phone": "Telefono numeris", + "message": "Pranešimas", + "submit": "Siųsti", + "post_success": "Dėkojame, kad su mumis susisiekėte. Atsakysime kaip galėdami greičiau.", + "error_heading": "Pakoreguokite toliau pateiktą informaciją." + } + }, + "customer": { + "account": { + "title": "Mano paskyra", + "details": "Paskyros informacija", + "view_addresses": "Žr. adresus", + "return": "Grįžti į paskyros informaciją" + }, + "activate_account": { + "title": "Aktyvinti paskyrą", + "subtext": "Sukurkite slaptažodį, kad galėtumėte aktyvinti paskyrą.", + "password": "Slaptažodis", + "password_confirm": "Patvirtinti slaptažodį", + "submit": "Aktyvinti paskyrą", + "cancel": "Atmesti kvietimą" + }, + "addresses": { + "title": "Jūsų adresai", + "default": "Numatytasis", + "add_new": "Pridėti naują adresą", + "edit_address": "Redaguoti adresą", + "first_name": "Vardas", + "last_name": "Pavardė", + "company": "Įmonė", + "address1": "Adresas", + "address2": "Butas, apartamentai ar kt.", + "city": "Miestas", + "country": "Šalis / regionas", + "province": "Sritis", + "zip": "Pašto kodas", + "phone": "Telefonas", + "set_default": "Nustatyti kaip numatytąjį adresą", + "add": "Pridėti adresą", + "update": "Atnaujinti adresą", + "cancel": "Atšaukti", + "edit": "Redaguoti", + "delete": "Ištrinti", + "delete_confirm": "Ar tikrai norite ištrinti šį adresą?" + }, + "login": { + "title": "Prisijungimo vardas", + "email": "El. paštas", + "password": "Slaptažodis", + "forgot_password": "Pamiršote slaptažodį?", + "sign_in": "Prisijungti", + "guest_title": "Tęsti kaip svečias", + "guest_continue": "Tęsti" + }, + "orders": { + "title": "Užsakymų istorija", + "order_number": "Užsakymas", + "order_number_link": "Užsakymo numeris {{ number }}", + "date": "Data", + "payment_status": "Mokėjimo būsena", + "fulfillment_status": "Įvykdymo būsena", + "total": "Visa suma", + "none": "Dar nepateikėte užsakymų." + }, + "order": { + "title": "Užsakymas {{ name }}", + "date_html": "Pateiktas {{ date }}", + "cancelled_html": "Užsakymas atšauktas {{ date }}", + "cancelled_reason": "Priežastis: {{ reason }}", + "billing_address": "Sąskaitos pateikimo adresas", + "payment_status": "Mokėjimo būsena", + "shipping_address": "Pristatymo adresas", + "fulfillment_status": "Įvykdymo būsena", + "discount": "Nuolaida", + "shipping": "Siuntimas", + "tax": "Mokesčiai", + "product": "Gaminys", + "sku": "SKU kodas", + "price": "Kaina", + "quantity": "Kiekis", + "total": "Visa suma", + "fulfilled_at_html": "Įvykdyta {{ date }}", + "subtotal": "Tarpinė suma", + "track_shipment": "Stebėti siuntą" + }, + "recover_password": { + "title": "Nustatyti slaptažodį iš naujo", + "email": "El. paštas", + "submit": "Pateikti", + "cancel": "Atšaukti", + "subtext": "Atsiųsime jums el. laišką, kad galėtumėte nustatyti slaptažodį iš naujo.", + "success": "Išsiuntėme jums el. laišką su nuoroda atnaujinti slaptažodį." + }, + "reset_password": { + "title": "Nustatyti paskyros slaptažodį iš naujo", + "subtext": "Įveskite naują paskyros {{ email }} slaptažodį", + "password": "Slaptažodis", + "password_confirm": "Patvirtinti slaptažodį", + "submit": "Nustatyti slaptažodį iš naujo" + }, + "register": { + "title": "Kurti paskyrą", + "first_name": "Vardas", + "last_name": "Pavardė", + "email": "El. paštas", + "password": "Slaptažodis", + "submit": "Kurti" + } + }, + "homepage": { + "general": { + "title": "Pagrindinis puslapis" + }, + "onboarding": { + "product_title": "Jūsų gaminio pavadinimas", + "product_description": "Šioje srityje pateikite informacijos apie gaminį. Papasakokite klientams apie gaminio išvaizdą ir stilių. Pridėkite informacijos apie spalvą, naudotas medžiagas, dydį ir kur gaminys pagamintas.", + "collection_title": "Jūsų kolekcijos pavadinimas", + "blog_title": "Jūsų įrašo pavadinimas", + "blog_excerpt": "Jūsų parduotuvė dar nepaskelbė tinklaraščio įrašų. Tinklaraštyje galite pateikti informacijos apie naujus gaminius, duoti patarimų ar paskelbti kitų naujienų, kuriomis norite pasidalyti su klientais. Galite peržiūrėti „Shopify“ el. prekybos tinklaraštį ir pasisemti idėjų savo parduotuvei bei tinklaraščiui.", + "blog_author": "Autoriaus vardas", + "no_content": "Šioje skiltyje šiuo metu nėra turinio. Pridėkite turinio į šią skiltį naudodami šoninę juostą." + } + }, + "layout": { + "navigation": { + "search": "Ieškoti", + "expand": "išplėsti", + "collapse": "sutraukti", + "menu": "Meniu" + }, + "cart": { + "title": "Krepšelis", + "items_count": { + "one": "prekė", + "other": "prekės", + "few": "prekės", + "many": "prekės" + } + }, + "customer": { + "account": "Paskyra", + "log_out": "Atsijungti", + "log_in": "Prisijungti", + "create_account": "Sukurti paskyrą" + }, + "footer": { + "social_platform": "„{{ name }}“ platformoje „{{ platform }}“" + } + }, + "gift_cards": { + "issued": { + "title_html": "Štai jūsų {{ value }} vertės parduotuvės „{{ shop }}“ dovanų kortelė!", + "subtext": "Jūsų dovanų kortelė", + "gift_card_code": "Dovanų kortelės kodas", + "disabled": "Išjungta", + "expired": "Baigė galioti {{ expiry }}", + "active": "Baigs galioti {{ expiry }}", + "redeem_html": "Naudokite šį kodą atsiskaitydami ir panaudokite {{ value }} vertės dovanų kortelę", + "shop_link": "Pradėti apsipirkimą", + "print": "Spausdinti šią dovanų kortelę", + "remaining_html": "Liko {{ balance }}", + "add_to_apple_wallet": "Pridėti prie „Apple Wallet“", + "qr_image_alt": "QR kodas — nuskaitykite ir panaudokite dovanų kortelę" + } + }, + "store_availability": { + "general": { + "view_store_info": "Žiūrėti parduotuvės informaciją", + "check_other_stores": "Pažiūrėti ar yra kitose parduotuvėse", + "pick_up_available": "Galimas paėmimas", + "pick_up_currently_unavailable": "Paėmimas šiuo metu negalimas", + "pick_up_available_at_html": "Paėmimas galimas {{ location_name }}", + "pick_up_unavailable_at_html": "Paėmimas {{ location_name }} šiuo metu negalimas" + } + } +} diff --git a/shopify/locales/ms.json b/shopify/locales/ms.json new file mode 100644 index 00000000..401b6712 --- /dev/null +++ b/shopify/locales/ms.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Langkau ke kandungan", + "close_modal": "Tutup", + "link_messages": { + "new_window": "Membuka dalam tetingkap baharu.", + "external": "Membuka laman web luaran.", + "new_window_and_external": "Membuka laman web luaran dalam tetingkap baharu." + }, + "refresh_page": "Memilih satu pilihan akan mengakibatkan segar semula halaman penuh.", + "selection_help": "Tekan kekunci ruang, kemudian kekunci anak panah untuk membuat pemilihan.", + "unit_price_separator": "per", + "error": "Ralat" + }, + "meta": { + "tags": "Tag \"{{ tags }}\"", + "page": "Halaman {{ page }}" + }, + "404": { + "title": "404 Halaman Tidak Dijumpai", + "subtext": "Halaman yang anda minta tidak wujud.", + "link": "Teruskan membeli-belah" + }, + "pagination": { + "previous": "Halaman sebelumnya", + "next": "Muka surat seterusnya", + "current_page": "Halaman {{ current }} daripada {{ total }}" + }, + "password_page": { + "opening_soon": "Akan Dibuka Tidak Lama Lagi", + "login_form_heading": "Masuk kedai menggunakan kata laluan", + "login_form_password_label": "Kata laluan", + "login_form_password_placeholder": "Kata laluan anda", + "login_form_submit": "Masukkan", + "signup_form_email_label": "E-mel", + "signup_form_success": "Kami akan menghantar e-mel kepada anda sebelum kami buka!", + "admin_link_html": "Adakah anda pemilik kedai? Log masuk di sini", + "password_link": "Masuk menggunakan kata laluan" + }, + "social": { + "share_on_facebook": "Kongsi", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin ia", + "alt_text": { + "share_on_facebook": "Kongsi di Facebook", + "share_on_twitter": "Tweet di Twitter", + "share_on_pinterest": "Pin di Pinterest" + } + }, + "search": { + "empty_search_message": "Medan carian tidak boleh kosong", + "title": "Cari laman web kami", + "placeholder": "Carian", + "submit": "Kemukakan", + "close": "Tutup carian", + "heading": { + "one": "Hasil carian", + "other": "Hasil carian" + }, + "search_for": "Cari untuk", + "loading": "Memuatkan", + "clear_search_term": "Kosongkan istilah carian", + "number_of_results": "{{ result_number }} daripada {{ results_count }}", + "products": "Produk", + "number_of_results_found": "{{ results_count }} hasil dijumpai", + "one_result_found": "1 hasil dijumpai", + "no_results": "Cuba semak ejaan anda atau gunakan perkataan yang berbeza.", + "results_with_count": { + "one": "{{ count }} hasil untuk \"{{ terms }}\"", + "other": "{{ count }} hasil untuk \"{{ terms }}\"" + } + }, + "newsletter_form": { + "newsletter_email": "Langgan kepada senarai mel kami", + "email_placeholder": "Alamat e-mel", + "confirmation": "Terima kasih kerana melanggan!", + "submit": "Langgan" + }, + "filters": { + "show_more": "Tunjuk Lebih Banyak", + "show_less": "Tunjukkan Kurang" + }, + "payment": { + "method": "Kaedah bayaran" + }, + "language": { + "dropdown_label": "Bahasa" + }, + "country": { + "dropdown_label": "Negara/wilayah" + } + }, + "sections": { + "slideshow": { + "next_slide": "Slaid seterusnya", + "previous_slide": "Slaid sebelumnya", + "pause_slideshow": "Jeda tayangan slaid", + "rotate_slideshow": "Main tayangan slaid", + "load_slide": "Muatkan slaid {{ slide_number }}", + "navigation_instructions": "Gunakan anak panah kiri/kanan untuk menavigasi tayangan slaid atau leret ke kiri/kanan jika menggunakan peranti mudah alih" + }, + "featured_product": { + "title": "Produk yang ditampilkan", + "gallery_thumbnail_alt": "Muatkan imej ke dalam penonton Galeri, {{ imageAlt }}", + "video_thumbnail_alt": "Muatkan dan mainkan video dalam penonton Galeri, {{ imageAlt }}", + "model_thumbnail_alt": "Muatkan model 3D ke dalam penonton Galeri, {{ imageAlt }}" + }, + "map": { + "address_error": "Ralat mencari alamat itu", + "address_no_results": "Tiada hasil untuk alamat itu", + "address_query_limit_html": "Anda telah melebihi had penggunaan API Google. Pertimbangkan untuk menaik taraf ke Pelan Premium.", + "auth_error_html": "Terdapat masalah mengesahkan akaun Peta Google anda.", + "section_heading": "Lokasi" + }, + "video": { + "play": "Mainkan video {{ video_title }}", + "pause": "Jeda video {{ video_title }}", + "resume": "Sambungkan semula video {{ video_title }}", + "close": "Tutup video {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Pengumuman" + } + }, + "blogs": { + "article": { + "view_all": "Lihat semua", + "view_all_blogs": "Lihat semua blog", + "all_topics": "Semua topik", + "by_author": "oleh {{ author }}", + "posted_in": "Disiarkan dalam", + "read_more": "Baca lebih lanjut", + "read_more_title": "Baca lebih lanjut: {{ title }}", + "back_to_blog": "Kembali kepada {{ title }}", + "tags": "Tag", + "article_with_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artikel" + } + }, + "comments": { + "title": "Tinggalkan komen", + "name": "Nama", + "email": "E-mel", + "message": "Mesej", + "post": "Siar komen", + "moderated": "Sila ambil perhatian, komen mesti diluluskan sebelum ia diterbitkan", + "success_moderated": "Komen anda telah berjaya disiarkan. Kami akan menerbitkannya dalam sedikit masa lagi, kerana blog kami disederhanakan.", + "success": "Komen anda telah berjaya disiarkan! Terima kasih!", + "unapproved": "Alamat e-mel yang diberikan tidak diluluskan untuk menyiarkan komen.", + "comments_with_count": { + "one": "{{ count }} komen", + "other": "{{ count }} komen" + } + } + }, + "cart": { + "general": { + "title": "Troli anda", + "note": "Tambah nota kepada pesanan anda", + "removed_item_html": "({{ quantity }}) {{ link }} dialih keluar dari troli anda.", + "remove": "Alih keluar", + "subtotal": "Subjumlah", + "savings": "Anda jimat", + "taxes_and_shipping_at_checkout": "Cukai dan penghantaran dikira semasa daftar keluar", + "taxes_and_shipping_policy_at_checkout_html": "Cukai dan penghantaran dikira semasa daftar keluar", + "taxes_included_but_shipping_at_checkout": "Termasuk cukai dan penghantaran dikira semasa daftar keluar", + "taxes_included_and_shipping_policy_html": "Termasuk cukai. Penghantaran dikira semasa daftar keluar.", + "update": "Kemas kini", + "checkout": "Daftar keluar", + "empty": "Troli anda kosong pada masa ini.", + "cookies_required": "Dayakan kuki untuk menggunakan troli beli-belah", + "continue_shopping": "Teruskan membeli-belah", + "cart_error": "Terdapat ralat semasa mengemas kini troli anda Sila cuba lagi." + }, + "label": { + "discounted_total": "Jumlah berdiskaun", + "product": "Produk", + "price": "Harga", + "price_column": "Lihat ruangan Harga untuk butiran diskaun.", + "product_details": "Butiran produk", + "quantity": "Kuantiti", + "qty": "Kuantiti", + "regular_total": "Jumlah biasa", + "remove": "Alih keluar {{ product }}", + "total": "Jumlah", + "update": "Kemas kini" + }, + "popup": { + "added_to_cart": "Baharu ditambahkan ke troli anda", + "cart_count": { + "one": "{{ count }} item", + "other": "{{ count }} item" + }, + "product_details": "Butiran produk", + "quantity": "Kuantiti", + "quantity_label": "Kuantiti: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Lihat semua", + "view_all_label": "Lihat semua produk dalam koleksi {{ collection_name }}", + "no_matches": "Maaf, tiada produk dalam koleksi ini", + "items_with_count": { + "one": "{{ count }} produk", + "other": "{{ count }} produk" + }, + "collection_label": "Koleksi" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Isih mengikut" + }, + "filters": { + "title_tags": "Tapis mengikut", + "all_tags": "Semua produk" + } + }, + "contact": { + "form": { + "name": "Nama", + "email": "E-mel", + "phone": "Nombor Telefon", + "message": "Mesej", + "submit": "Hantar", + "post_success": "Terima kasih kerana menghubungi kami. Kami akan menghubungi anda secepat mungkin.", + "error_heading": "Sila laraskan yang berikut:" + } + }, + "customer": { + "account": { + "title": "Akaun saya", + "details": "Butiran Akaun", + "view_addresses": "Lihat Alamat", + "return": "Kembali ke Butiran Akaun" + }, + "activate_account": { + "title": "Aktifkan Akaun", + "subtext": "Cipta kata laluan anda untuk mengaktifkan akaun anda.", + "password": "Kata laluan", + "password_confirm": "Sahkan Kata Laluan", + "submit": "Aktifkan Akaun", + "cancel": "Tolak Jemputan" + }, + "addresses": { + "title": "Alamat Anda", + "default": "Lalai", + "add_new": "Tambah Alamat Baharu", + "edit_address": "Edit alamat", + "first_name": "Nama Pertama", + "last_name": "Nama Terakhir", + "company": "Syarikat", + "address1": "Alamat", + "address2": "Pangsapuri, suite, dll.", + "city": "Bandar", + "country": "Negara/Wilayah", + "province": "Wilayah", + "zip": "Poskod/Kod Zip", + "phone": "Telefon", + "set_default": "Tetapkan sebagai alamat lalai", + "add": "Tambah Alamat", + "update": "Kemas Kini Alamat", + "cancel": "Batalkan", + "edit": "Edit", + "delete": "Padam", + "delete_confirm": "Adakah anda pasti ingin memadamkan alamat ini?" + }, + "login": { + "title": "Log masuk", + "email": "E-mel", + "password": "Kata laluan", + "forgot_password": "Lupa kata laluan anda?", + "sign_in": "Daftar Masuk", + "guest_title": "Teruskan sebagai tetamu", + "guest_continue": "Teruskan" + }, + "orders": { + "title": "Sejarah Pesanan", + "order_number": "Pesanan", + "order_number_link": "Nombor pesanan {{ number }}", + "date": "Tarikh", + "payment_status": "Status Pembayaran", + "fulfillment_status": "Status Pemenuhan", + "total": "Jumlah", + "none": "Anda belum membuat sebarang pesanan." + }, + "order": { + "title": "Pesanan {{ name }}", + "date_html": "Dibuat pada {{ date }}", + "cancelled_html": "Pesanan Dibatalkan pada {{ date }}", + "cancelled_reason": "Sebab: {{ reason }}", + "billing_address": "Alamat Pengebilan", + "payment_status": "Status Pembayaran", + "shipping_address": "Alamat Penghantaran", + "fulfillment_status": "Status Pemenuhan", + "discount": "Diskaun", + "shipping": "Penghantaran", + "tax": "Cukai", + "product": "Produk", + "sku": "SKU", + "price": "Harga", + "quantity": "Kuantiti", + "total": "Jumlah", + "fulfilled_at_html": "Dipenuhi {{ date }}", + "subtotal": "Subjumlah", + "track_shipment": "Jejak penghantaran" + }, + "recover_password": { + "title": "Menetapkan semula kata laluan anda", + "email": "E-mel", + "submit": "Kemukakan", + "cancel": "Batalkan", + "subtext": "Kami akan menghantar e-mel kepada anda untuk menetapkan semula kata laluan anda.", + "success": "Kami telah menghantar e-mel kepada anda dengan pautan untuk mengemas kini kata laluan anda." + }, + "reset_password": { + "title": "Tetapkan semula kata laluan akaun", + "subtext": "Masukkan kata laluan baharu untuk {{ email }}", + "password": "Kata laluan", + "password_confirm": "Sahkan Kata Laluan", + "submit": "Tetap Semula Kata Laluan" + }, + "register": { + "title": "Cipta Akaun", + "first_name": "Nama Pertama", + "last_name": "Nama Terakhir", + "email": "E-mel", + "password": "Kata laluan", + "submit": "Cipta" + } + }, + "homepage": { + "general": { + "title": "Laman Utama" + }, + "onboarding": { + "product_title": "Nama produk anda", + "product_description": "Medan ini digunakan untuk menerangkan butiran produk anda. Beritahu pelanggan tentang rupa, rasa dan gaya produk anda. Tambah butiran tentang warna, bahan yang digunakan, saiz dan di mana ia dibuat.", + "collection_title": "Nama koleksi anda", + "blog_title": "Tajuk siaran anda", + "blog_excerpt": "Kedai anda belum lagi menerbitkan sebarang siaran blog. Blog boleh digunakan untuk bercakap tentang pelancaran produk baharu, petua, atau berita lain yang anda ingin kongsi dengan pelanggan anda. Anda boleh menyemak blog e-dagang Shopify untuk inspirasi dan nasihat untuk kedai dan blog anda sendiri.", + "blog_author": "Nama penulis", + "no_content": "Bahagian ini tidak menyertakan sebarang kandungan pada masa ini. Tambahkan kandungan ke bahagian ini menggunakan bar sisi." + } + }, + "layout": { + "navigation": { + "search": "Carian", + "expand": "kembangkan", + "collapse": "runtuh", + "menu": "Menu" + }, + "cart": { + "title": "Troli", + "items_count": { + "one": "item", + "other": "item" + } + }, + "customer": { + "account": "Akaun", + "log_out": "Log keluar", + "log_in": "Log masuk", + "create_account": "Cipta akaun" + }, + "footer": { + "social_platform": "{{ name }} pada {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Harga biasa", + "sold_out": "Habis dijual", + "unavailable": "Tidak tersedia", + "on_sale": "Jualan", + "sale_price": "Harga jualan", + "quantity": "Kuantiti", + "add_to_cart": "Tambah ke troli", + "loader_label": "Menambah produk ke troli anda", + "back_to_collection": "Kembali ke", + "vendor": "Vendor", + "quantity_minimum_message": "Kuantiti mestilah 1 atau lebih", + "include_taxes": "Termasuk cukai.", + "shipping_policy_html": "Penghantaran dikira semasa daftar keluar.", + "unit_price_label": "Harga seunit", + "view_cart": "Lihat troli", + "availability": "Ketersediaan", + "from_lowest_price_html": "daripada {{ lowest_price }}", + "view_in_space": "Lihat di dalam ruang anda", + "view_in_space_label": "Lihat di ruang anda, memuatkan item di dalam tetingkap realiti terimbuh" + } + }, + "gift_cards": { + "issued": { + "title_html": "Inilah kad hadiah {{ value }} anda untuk {{ shop }}!", + "subtext": "Kad hadiah anda", + "gift_card_code": "Kod kad hadiah", + "disabled": "Dinyahdayakan", + "expired": "Tamat tempoh pada {{ expiry }}", + "active": "Tamat tempoh pada {{ expiry }}", + "redeem_html": "Gunakan kod ini di daftar keluar untuk menebus {{ value }} kad hadiah anda", + "shop_link": "Mulakan membeli-belah", + "print": "Cetak kad hadiah ini", + "remaining_html": "{{ balance }} berbaki", + "add_to_apple_wallet": "Tambah ke Apple Wallet", + "qr_image_alt": "Kod QR — imbas untuk menebus kad hadiah" + } + }, + "store_availability": { + "general": { + "view_store_info": "Lihat maklumat kedai", + "check_other_stores": "Periksa ketersediaan di kedai lain", + "pick_up_available": "Kutipan tersedia", + "pick_up_currently_unavailable": "Kutipan tidak tersedia pada masa ini", + "pick_up_available_at_html": "Kutipan tersedia di {{ location_name }}", + "pick_up_unavailable_at_html": "Kutipan tidak tersedia pada masa ini di {{ location_name }}" + } + } +} diff --git a/shopify/locales/nb.json b/shopify/locales/nb.json new file mode 100644 index 00000000..efa03241 --- /dev/null +++ b/shopify/locales/nb.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Gå videre til innholdet", + "close_modal": "Lukk", + "link_messages": { + "new_window": "Åpner i et nytt vindu.", + "external": "Åpner eksternt nettsted.", + "new_window_and_external": "Åpner eksternt nettsted i et nytt vindu." + }, + "refresh_page": "Valg av et utvalg fører til en full oppdatering av siden.", + "selection_help": "Trykk på mellomromstasten og deretter på piltastene for å gjøre et valg.", + "unit_price_separator": "per", + "error": "Feil" + }, + "meta": { + "tags": "Tagget «{{ tags }}»", + "page": "Side {{ page }}" + }, + "404": { + "title": "404 Side Ikke Funnet", + "subtext": "Siden du forespurte eksisterer ikke.", + "link": "Fortsette å handle" + }, + "pagination": { + "previous": "Forrige side", + "next": "Neste side", + "current_page": "Side {{ current }} av {{ total }}" + }, + "password_page": { + "opening_soon": "Åpner snart", + "login_form_heading": "Gå inn i butikken ved hjelp av passord", + "login_form_password_label": "Passord", + "login_form_password_placeholder": "Passordet ditt", + "login_form_submit": "Gå inn", + "signup_form_email_label": "E-postadresse", + "signup_form_success": "Vi sender deg en e-post rett før vi åpner!", + "admin_link_html": "Er du butikkeieren? Logg inn her", + "password_link": "Gå inn ved hjelp av passord" + }, + "social": { + "share_on_facebook": "Del", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Pin den", + "alt_text": { + "share_on_facebook": "Del på Facebook", + "share_on_twitter": "Tweet på Twitter", + "share_on_pinterest": "Pin på Pinterest" + } + }, + "search": { + "empty_search_message": "Søkefeltet kan ikke være tomt", + "title": "Søk på nettstedet vårt", + "placeholder": "Søk", + "submit": "Send", + "close": "Lukk søket", + "heading": { + "one": "Søkeresultat", + "other": "Søkeresultater" + }, + "search_for": "Søk etter", + "loading": "Laster inn", + "clear_search_term": "Tøm søket", + "number_of_results": "{{ result_number }} av {{ results_count }}", + "products": "Produkter", + "number_of_results_found": "{{ results_count }} resultater funnet", + "one_result_found": "1 resultat funnet", + "no_results": "PRøv å kontrollere stavingen eller bruke andre ord.", + "results_with_count": { + "one": "{{ count }} resultat for «{{ terms }}»", + "other": "{{ count }} resultater for «{{ terms }}»" + } + }, + "newsletter_form": { + "newsletter_email": "Abonner på nyhetsbrevet vårt", + "email_placeholder": "E-postadresse", + "confirmation": "Takk for at du abonnerer!", + "submit": "Abonner" + }, + "filters": { + "show_more": "Vis mer", + "show_less": "Vis mindre" + }, + "payment": { + "method": "Betalingsmetoder" + }, + "language": { + "dropdown_label": "Språk" + }, + "country": { + "dropdown_label": "Land/region" + } + }, + "sections": { + "slideshow": { + "next_slide": "Neste lysbilde", + "previous_slide": "Forrige lysbilde", + "pause_slideshow": "Sett lysbildefremvisningen på pause", + "rotate_slideshow": "Spill av lysbildefremvisningen", + "load_slide": "Last inn lysbilde {{ slide_number }}", + "navigation_instructions": "Bruk venstre-/høyrepil for å navigere i lysbildefremvisningen eller sveip til venstre/høyre hvis du bruker en mobilenhet" + }, + "featured_product": { + "title": "Utvalgt produkt", + "gallery_thumbnail_alt": "Last inn bildet i Galleri-visningsprogrammet, {{ imageAlt }}", + "video_thumbnail_alt": "Last inn og spill av video i Gallerivisningen, {{ imageAlt }}", + "model_thumbnail_alt": "Last inn 3D-modellen i Galleri-visningsprogrammet, {{ imageAlt }}" + }, + "map": { + "address_error": "Feil under oppslag av den adressen", + "address_no_results": "Ingen resultater for den adressen", + "address_query_limit_html": "Du har overskredet bruksgrensen for Google API. Vurder å oppgradere til et Premiumsabonnement.", + "auth_error_html": "Det oppsto et problem under godkjenning av Google Maps-kontoen.", + "section_heading": "Steder" + }, + "video": { + "play": "Spill av {{ video_title }} video", + "pause": "Pause {{ video_title }} video", + "resume": "Fortsett {{ video_title }} video", + "close": "Lukk {{ video_title }} video" + }, + "header": { + "announcement_bar_label": "Kunngjøring" + } + }, + "blogs": { + "article": { + "view_all": "Vis alle", + "view_all_blogs": "Vis alle bloggene", + "all_topics": "Alle emner", + "by_author": "av {{ author }}", + "posted_in": "Publisert i", + "read_more": "Les mer", + "read_more_title": "Les mer: {{ title }}", + "back_to_blog": "Tilbake til {{ title }}", + "tags": "Merker", + "article_with_count": { + "one": "{{ count }} artikkel", + "other": "{{ count }} artikler" + } + }, + "comments": { + "title": "Legg igjen en kommentar", + "name": "Navn", + "email": "E-postadresse", + "message": "Melding", + "post": "Del en kommentar", + "moderated": "Merk, kommentarer må godkjennes før de publiseres", + "success_moderated": "Kommentaren din ble delt. Vi publiserer den om en liten stund, siden bloggen din er moderert.", + "success": "Kommentaren din ble delt! Takk!", + "unapproved": "E-postadressen oppgitt er ikke godkjent til å legge ut kommentarer.", + "comments_with_count": { + "one": "{{ count }} kommentar", + "other": "{{ count }} kommentarer" + } + } + }, + "cart": { + "general": { + "title": "Handlekurven din", + "note": "Legg til et notat til bestillingen din", + "removed_item_html": "Fjernet ({{ quantity }}) {{ link }} fra handlekurven din.", + "remove": "Fjern", + "subtotal": "Delsum", + "savings": "Du sparer", + "taxes_and_shipping_at_checkout": "Avgifter og frakt beregnes ved kassen", + "taxes_and_shipping_policy_at_checkout_html": "Avgifter og frakt beregnes ved kassen", + "taxes_included_but_shipping_at_checkout": "Avgift inkludert og frakt beregnet ved kassen", + "taxes_included_and_shipping_policy_html": "Avgift inkludert. Frakt beregnes ved kassen.", + "update": "Oppdater", + "checkout": "Utsjekking", + "empty": "Handlekurven din er tom.", + "cookies_required": "Aktiver informasjonskapsler for å bruke handlekurven", + "continue_shopping": "Fortsette å handle", + "cart_error": "Det oppstod en feil under oppdateringen av handlekurven din. Prøv på nytt." + }, + "label": { + "discounted_total": "Rabattert totalsum", + "product": "Produkt", + "price": "Pris", + "price_column": "Se priskolonnen for detaljer om rabatten.", + "product_details": "Produktinformasjon", + "quantity": "Antall", + "qty": "Antall", + "regular_total": "Vanlig totalsum", + "remove": "Fjern {{ product }}", + "total": "Totalt", + "update": "Oppdater" + }, + "popup": { + "added_to_cart": "Ble akkurat lagt til handlekurven din", + "cart_count": { + "one": "{{ count }} gjenstand", + "other": "{{ count }} gjenstander" + }, + "product_details": "Produktinformasjon", + "quantity": "Antall", + "quantity_label": "Mengde: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Vis alle", + "view_all_label": "Vis alle produktene i {{ collection_name }}-samlingen", + "no_matches": "Beklager, det er ingen produkter i denne samlingen", + "items_with_count": { + "one": "{{ count }} produkt", + "other": "{{ count }} produkter" + }, + "collection_label": "Samling" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Sorter etter" + }, + "filters": { + "title_tags": "Filtrer etter", + "all_tags": "Alle produkter" + } + }, + "contact": { + "form": { + "name": "Navn", + "email": "E-postadresse", + "phone": "Telefonnummer", + "message": "Melding", + "submit": "Send", + "post_success": "Takk for at du kontaktet oss. Vi vil svare deg så snart som mulig.", + "error_heading": "Juster følgende:" + } + }, + "customer": { + "account": { + "title": "Kontoen min", + "details": "Kontodetaljer", + "view_addresses": "Vis adresser", + "return": "Gå tilbake til kontodetaljer" + }, + "activate_account": { + "title": "Aktiver konto", + "subtext": "Opprett passordet ditt for å aktivere kontoen.", + "password": "Passord", + "password_confirm": "Bekreft passord", + "submit": "Aktiver konto", + "cancel": "Avslå invitasjon" + }, + "addresses": { + "title": "Adressene dine", + "default": "Standard", + "add_new": "Legg til en ny adresse", + "edit_address": "Endre adresse", + "first_name": "Fornavn", + "last_name": "Etternavn", + "company": "Bedrift", + "address1": "Adresse", + "address2": "Leilighet, etasje osv.", + "city": "By", + "country": "Land/region", + "province": "Provins", + "zip": "Postnummer", + "phone": "Telefon", + "set_default": "Angi som standardadresse", + "add": "Legg til adresse", + "update": "Oppdater adresse", + "cancel": "Avbryt", + "edit": "Endre", + "delete": "Slett", + "delete_confirm": "Er du sikker på at du vil slette denne adressen?" + }, + "login": { + "title": "Logg på", + "email": "E-postadresse", + "password": "Passord", + "forgot_password": "Har du glemt passordet ditt?", + "sign_in": "Logg inn", + "guest_title": "Fortsett som gjest", + "guest_continue": "Fortsett" + }, + "orders": { + "title": "Bestillingshistorikk", + "order_number": "Bestilling", + "order_number_link": "Bestillingsnummer {{ number }}", + "date": "Dato", + "payment_status": "Betalingsstatus", + "fulfillment_status": "Fyllbyrdelsestatus", + "total": "Totalt", + "none": "Du har ikke lagt inn noen bestillinger enda." + }, + "order": { + "title": "Bestilling {{ name }}", + "date_html": "Lagt inn den {{ date }}", + "cancelled_html": "Bestilling kansellert den {{ date }}", + "cancelled_reason": "Grunn: {{ reason }}", + "billing_address": "Faktureringsadresse", + "payment_status": "Betalingsstatus", + "shipping_address": "Leveringsadresse", + "fulfillment_status": "Fyllbyrdelsestatus", + "discount": "Rabatt", + "shipping": "Frakt", + "tax": "Avgift", + "product": "Produkt", + "sku": "SKU", + "price": "Pris", + "quantity": "Antall", + "total": "Totalt", + "fulfilled_at_html": "Fullbyrdet {{ date }}", + "subtotal": "Delsum", + "track_shipment": "Spor forsendelse" + }, + "recover_password": { + "title": "Tilbakestill passordet ditt", + "email": "E-postadresse", + "submit": "Send inn", + "cancel": "Avbryt", + "subtext": "Vi vil sende deg en e-post for tilbakestilling av passordet.", + "success": "Vi har sendt deg en e-post med en kobling for å oppdatere passordet ditt." + }, + "reset_password": { + "title": "Tilbakestill kontopassord", + "subtext": "Skriv inn et nytt passord for {{ email }}", + "password": "Passord", + "password_confirm": "Bekreft passord", + "submit": "Tilbakestill passord" + }, + "register": { + "title": "Opprett konto", + "first_name": "Fornavn", + "last_name": "Etternavn", + "email": "E-postadresse", + "password": "Passord", + "submit": "Opprett" + } + }, + "homepage": { + "general": { + "title": "Startside" + }, + "onboarding": { + "product_title": "Navnet på produktet ditt", + "product_description": "Dette området brukes til å beskrive produktets detaljer. Fortell kundene om hvordan produktet ser ut, føles og stilen. Legg til detaljer om farge, materialer brukt, størrelser og hvor det ble laget.", + "collection_title": "Navnet på samlingen", + "blog_title": "Tittel på innlegget ditt", + "blog_excerpt": "Butikken din har ikke publisert noen blogginnlegg enda. En blogg kan brukes til å snakke om nye produktlanseringer, tips eller andre nyheter du ønsker å dele med kundene dine. Du kan sjekke ut Shopifys e-handelsblogg for inspirasjon og råd til din egen butikk og blogg.", + "blog_author": "Forfatternavn", + "no_content": "Denne delen inneholder for øyeblikket ikke noe innhold. Legg til innhold i denne delen ved hjelp av sidepanelet." + } + }, + "layout": { + "navigation": { + "search": "Søk", + "expand": "utvid", + "collapse": "skjul", + "menu": "Meny" + }, + "cart": { + "title": "Handlekurv", + "items_count": { + "one": "gjenstand", + "other": "gjenstander" + } + }, + "customer": { + "account": "Konto", + "log_out": "Logg av", + "log_in": "Logg på", + "create_account": "Opprett konto" + }, + "footer": { + "social_platform": "{{ name }} på {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Vanlig pris", + "sold_out": "Utsolgt", + "unavailable": "Utilgjengelig", + "on_sale": "Salg", + "sale_price": "Salgspris", + "quantity": "Antall", + "add_to_cart": "Legg i handlekurv", + "loader_label": "Legger til produkter i handlekurven", + "back_to_collection": "Tilbake til", + "vendor": "Selger", + "quantity_minimum_message": "Antallet må være 1 eller mer", + "include_taxes": "Avgift inkludert.", + "shipping_policy_html": "Frakt beregnes ved kassen.", + "unit_price_label": "Enhetspris", + "view_cart": "Vis handlekurv", + "availability": "Tilgjengelighet", + "from_lowest_price_html": "fra {{ lowest_price }}", + "view_in_space": "Se på din plass", + "view_in_space_label": "Vis i ditt område, laster element i AR-vindu (utvidet virkelighet)" + } + }, + "gift_cards": { + "issued": { + "title_html": "Her er {{ value }} gavekortet ditt for {{ shop }}!", + "subtext": "Gavekortet ditt", + "gift_card_code": "Gavekortkode", + "disabled": "Deaktivert", + "expired": "Utløpte den {{ expiry }}", + "active": "Utløper den {{ expiry }}", + "redeem_html": "Bruk denne koden i kassen til å løse inn {{ value }} gavekortet", + "shop_link": "Begynn å handle", + "print": "Skriv ut dette gavekortet", + "remaining_html": "{{ balance }} igjen", + "add_to_apple_wallet": "Legg til i Apple Wallet", + "qr_image_alt": "QR-kode – skann for å løse inn gavekortet" + } + }, + "store_availability": { + "general": { + "view_store_info": "Vis butikkinformasjon", + "check_other_stores": "Sjekk tilgjengelighet i andre butikker", + "pick_up_available": "Henting tilgjengelig", + "pick_up_currently_unavailable": "Henting er ikke tilgjengelig for øyeblikket", + "pick_up_available_at_html": "Henting tilgjengelig hos {{ location_name }}", + "pick_up_unavailable_at_html": "Henting er ikke tilgjengelig for øyeblikket hos {{ location_name }}" + } + } +} diff --git a/shopify/locales/nl.json b/shopify/locales/nl.json new file mode 100644 index 00000000..6390d4a8 --- /dev/null +++ b/shopify/locales/nl.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Meteen naar de content", + "close_modal": "Sluiten", + "link_messages": { + "new_window": "Opent in een nieuw venster.", + "external": "Opent externe website.", + "new_window_and_external": "Opent externe website in een nieuw venster." + }, + "refresh_page": "Een selectie kiezen resulteert in het geheel verversen van de pagina.", + "selection_help": "Druk op de spatiebalk en vervolgens op de pijltoetsen om een selectie te maken.", + "unit_price_separator": "per", + "error": "Fout" + }, + "meta": { + "tags": "Getagged \"{{ tags }}\"", + "page": "Pagina {{ page }}" + }, + "404": { + "title": "404 pagina niet gevonden", + "subtext": "De pagina die je hebt opgevraagd bestaat niet.", + "link": "Terugkeren naar winkel" + }, + "pagination": { + "previous": "Vorige pagina", + "next": "Volgende pagina", + "current_page": "Pagina {{ current }} van {{ total }}" + }, + "password_page": { + "opening_soon": "Binnenkort geopend", + "login_form_heading": "Ga winkel binnen met wachtwoord", + "login_form_password_label": "Wachtwoord", + "login_form_password_placeholder": "Je wachtwoord", + "login_form_submit": "Naar binnen", + "signup_form_email_label": "E-mail", + "signup_form_success": "Wij sturen je een e-mail nog voordat we opengaan!", + "admin_link_html": "Ben je de winkeleigenaar? Log hier in", + "password_link": "Ga naar binnen met wachtwoord" + }, + "social": { + "share_on_facebook": "Delen", + "share_on_twitter": "Twitter", + "share_on_pinterest": "Pin het", + "alt_text": { + "share_on_facebook": "Delen op Facebook", + "share_on_twitter": "Twitteren op Twitter", + "share_on_pinterest": "Pinnen op Pinterest" + } + }, + "search": { + "empty_search_message": "Zoekveld mag niet leeg zijn", + "title": "Op onze site zoeken", + "placeholder": "Zoeken", + "submit": "Indienen", + "close": "Zoeken sluiten", + "heading": { + "one": "Zoekresultaat", + "other": "Zoekresultaten" + }, + "search_for": "Zoeken naar", + "loading": "Laden", + "clear_search_term": "Zoekterm wissen", + "number_of_results": "{{ result_number }} van {{ results_count }}", + "products": "Producten", + "number_of_results_found": "{{ results_count }} resultaten gevonden", + "one_result_found": "1 resultaat gevonden", + "no_results": "Controleer je spelling of gebruik andere woorden.", + "results_with_count": { + "one": "{{ count }} resultaat voor '{{ terms }}'", + "other": "{{ count }} resultaten voor '{{ terms }}'" + } + }, + "newsletter_form": { + "newsletter_email": "Abonneer je op onze mailinglijst", + "email_placeholder": "E-mailadres", + "confirmation": "Bedankt voor het abonneren!", + "submit": "Abonneren" + }, + "filters": { + "show_more": "Laat meer zien", + "show_less": "Laat minder zien" + }, + "payment": { + "method": "Betaalmethoden" + }, + "language": { + "dropdown_label": "Taal" + }, + "country": { + "dropdown_label": "Land/regio" + } + }, + "sections": { + "slideshow": { + "next_slide": "Volgende dia", + "previous_slide": "Vorige dia", + "pause_slideshow": "Diavoorstelling pauzeren", + "rotate_slideshow": "Diavoorstelling afspelen", + "load_slide": "Laad dia {{ slide_number }}", + "navigation_instructions": "Gebruik de pijlen links/rechts om door de diavoorstelling te navigeren, of veeg links/rechts op een mobiel apparaat" + }, + "featured_product": { + "title": "Uitgelicht product", + "gallery_thumbnail_alt": "Afbeelding in Gallery-weergave laden, {{ imageAlt }}", + "video_thumbnail_alt": "Video laden en afspelen in Gallery-weergave, {{ imageAlt }}", + "model_thumbnail_alt": "3D-model in Gallery-weergave laden, {{ imageAlt }}" + }, + "map": { + "address_error": "Fout bij het opzoeken van dat adres", + "address_no_results": "Geen resultaten voor dat adres", + "address_query_limit_html": "Je hebt de gebruikslimiet van de Google API overschreden. Overweeg een upgrade naar een Premium-pakket.", + "auth_error_html": "Er is een probleem opgetreden bij het verifiëren van je Google Maps-account.", + "section_heading": "Locatie" + }, + "video": { + "play": "Video {{ video_title }} afspelen", + "pause": "Video {{ video_title }} pauzeren", + "resume": "Video {{ video_title }} hervatten", + "close": "Video {{ video_title }} sluiten" + }, + "header": { + "announcement_bar_label": "Aankondiging" + } + }, + "blogs": { + "article": { + "view_all": "Alles bekijken", + "view_all_blogs": "Alle blogs bekijken", + "all_topics": "Alle onderwerpen", + "by_author": "door {{ author }}", + "posted_in": "Geplaatst in", + "read_more": "Meer lezen", + "read_more_title": "Lees verder: {{ title }}", + "back_to_blog": "Terug naar {{ title }}", + "tags": "Tags", + "article_with_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artikelen" + } + }, + "comments": { + "title": "Laat een reactie achter", + "name": "Naam", + "email": "E-mail", + "message": "Bericht", + "post": "Plaats een reactie", + "moderated": "Opmerkingen moeten worden goedgekeurd voordat ze worden gepubliceerd", + "success_moderated": "Je reactie is geplaatst. Wij publiceren het zo; onze blog wordt gemodereerd.", + "success": "Je reactie is geplaatst! Bedankt!", + "unapproved": "Het opgegeven e-mailadres is niet goedgekeurd voor het plaatsen van opmerkingen.", + "comments_with_count": { + "one": "{{ count }} reactie", + "other": "{{ count }} reacties" + } + } + }, + "cart": { + "general": { + "title": "Je winkelwagen", + "note": "Voeg een opmerking aan je bestelling toe", + "removed_item_html": "({{ quantity }}) {{ link }} uit je winkelwagen verwijderd.", + "remove": "Verwijderen", + "subtotal": "Subtotaal", + "savings": "Je bespaart", + "taxes_and_shipping_at_checkout": "Belastingen en verzendkosten worden berekend bij de checkout", + "taxes_and_shipping_policy_at_checkout_html": "Belastingen en verzendkosten worden berekend bij de checkout", + "taxes_included_but_shipping_at_checkout": "Belasting inbegrepen en verzendkosten worden berekend bij de checkout", + "taxes_included_and_shipping_policy_html": "Inclusief belasting. Verzendkosten worden berekend bij de checkout.", + "update": "Bijwerken", + "checkout": "Afrekenen", + "empty": "Je winkelwagen is leeg.", + "cookies_required": "Schakel cookies in om de winkelwagen te gebruiken", + "continue_shopping": "Terugkeren naar winkel", + "cart_error": "Er is een fout opgetreden bij het bijwerken van je winkelwagen. Probeer het opnieuw." + }, + "label": { + "discounted_total": "Totale korting", + "product": "Product", + "price": "Prijs", + "price_column": "Zie kolom Prijs voor kortingsdetails.", + "product_details": "Productdetails", + "quantity": "Aantal", + "qty": "Aantal", + "regular_total": "Totaal normaal", + "remove": "{{ product }} verwijderen", + "total": "Totaal", + "update": "Bijwerken" + }, + "popup": { + "added_to_cart": "Zojuist toegevoegd aan je winkelwagen", + "cart_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artikelen" + }, + "product_details": "Productdetails", + "quantity": "Aantal", + "quantity_label": "Aantal: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Alles bekijken", + "view_all_label": "Bekijk alle producten in de collectie {{ collection_name }}", + "no_matches": "Er zijn geen producten in deze collectie", + "items_with_count": { + "one": "{{ count }} product", + "other": "{{ count }} producten" + }, + "collection_label": "Collectie" + }, + "catalog": { + "title": "Assortiment" + }, + "sorting": { + "title": "Sorteer op" + }, + "filters": { + "title_tags": "Filter op", + "all_tags": "Alle producten" + } + }, + "contact": { + "form": { + "name": "Naam", + "email": "E-mail", + "phone": "Telefoonnummer", + "message": "Bericht", + "submit": "Sturen", + "post_success": "Bedankt dat je contact met ons hebt opgenomen. We nemen zo snel mogelijk contact met je op.", + "error_heading": "Pas het volgende aan:" + } + }, + "customer": { + "account": { + "title": "Mijn account", + "details": "Accountgegevens", + "view_addresses": "Adressen bekijken", + "return": "Terug naar Accountgegevens" + }, + "activate_account": { + "title": "Account activeren", + "subtext": "Maak je wachtwoord aan om je account te activeren.", + "password": "Wachtwoord", + "password_confirm": "Wachtwoord bevestigen", + "submit": "Account activeren", + "cancel": "Uitnodiging afwijzen" + }, + "addresses": { + "title": "Je adressen", + "default": "Standaard", + "add_new": "Voeg een nieuw adres toe", + "edit_address": "Adres bewerken", + "first_name": "Voornaam", + "last_name": "Achternaam", + "company": "Bedrijf", + "address1": "Adres", + "address2": "Appartementnr. etc.", + "city": "Stad", + "country": "Land/regio", + "province": "Provincie", + "zip": "Postcode", + "phone": "Telefoon", + "set_default": "Als standaard adres instellen", + "add": "Adres toevoegen", + "update": "Adres bijwerken", + "cancel": "Annuleren", + "edit": "Wijzigen", + "delete": "Verwijderen", + "delete_confirm": "Weet je zeker dat je dit adres wilt verwijderen?" + }, + "login": { + "title": "Inloggegevens", + "email": "E-mail", + "password": "Wachtwoord", + "forgot_password": "Wachtwoord vergeten?", + "sign_in": "Inloggen", + "guest_title": "Doorgaan als gast", + "guest_continue": "Verdergaan" + }, + "orders": { + "title": "Besteloverzicht", + "order_number": "Bestelling", + "order_number_link": "Bestelnummer {{ number }}", + "date": "Datum", + "payment_status": "Betaalstatus", + "fulfillment_status": "Fulfillmentstatus", + "total": "Totaal", + "none": "Je hebt nog geen bestellingen geplaatst." + }, + "order": { + "title": "Bestelling {{ name }}", + "date_html": "Geplaatst op {{ date }}", + "cancelled_html": "Bestelling geannuleerd op {{ date }}", + "cancelled_reason": "Reden: {{ reason }}", + "billing_address": "Factuuradres", + "payment_status": "Betaalstatus", + "shipping_address": "Bezorgadres", + "fulfillment_status": "Fulfillmentstatus", + "discount": "Korting", + "shipping": "Verzending", + "tax": "Belasting", + "product": "Product", + "sku": "SKU", + "price": "Prijs", + "quantity": "Aantal", + "total": "Totaal", + "fulfilled_at_html": "Voldaan {{ date }}", + "subtotal": "Subtotaal", + "track_shipment": "Volg verzending" + }, + "recover_password": { + "title": "Wachtwoord opnieuw instellen", + "email": "E-mail", + "submit": "Indienen", + "cancel": "Annuleren", + "subtext": "Wij sturen je een e-mail om je wachtwoord opnieuw in te stellen.", + "success": "We hebben je een e-mail gestuurd met een link om je wachtwoord opnieuw in te stellen." + }, + "reset_password": { + "title": "Account-wachtwoord opnieuw instellen", + "subtext": "Voer een nieuw wachtwoord in voor {{ email }}", + "password": "Wachtwoord", + "password_confirm": "Wachtwoord bevestigen", + "submit": "Wachtwoord opnieuw instellen" + }, + "register": { + "title": "Account aanmaken", + "first_name": "Voornaam", + "last_name": "Achternaam", + "email": "E-mail", + "password": "Wachtwoord", + "submit": "Aanmaken" + } + }, + "homepage": { + "general": { + "title": "Homepage" + }, + "onboarding": { + "product_title": "Naam van je product", + "product_description": "Dit gebied wordt gebruikt om de gegevens van je product te beschrijven. Vertel je klanten over de stijl en hoe je product eruit ziet en hoe het aanvoelt. Voeg details toe over de kleur, de gebruikte materialen en waar het is gemaakt.", + "collection_title": "De naam van je collectie", + "blog_title": "De titel van je bericht", + "blog_excerpt": "Je winkel heeft nog geen blogberichten geplaatst. Je kunt een blog gebruiken om nieuwe producten te lanceren, tips te geven of andere nieuwtjes te delen met je klanten. Raadpleeg de e-commerceblog van Shopify voor inspiratie en advies voor je eigen winkel en blog.", + "blog_author": "Naam auteur", + "no_content": "Dit gedeelte heeft momenteel geen content. Voeg met de zijbalk content toe aan dit deel." + } + }, + "layout": { + "navigation": { + "search": "Zoeken", + "expand": "uitbreiden", + "collapse": "inklappen", + "menu": "Menu" + }, + "cart": { + "title": "Winkelwagen", + "items_count": { + "one": "artikel", + "other": "artikelen" + } + }, + "customer": { + "account": "Account", + "log_out": "Uitloggen", + "log_in": "Inloggen", + "create_account": "Account aanmaken" + }, + "footer": { + "social_platform": "{{ name }} op {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Normale prijs", + "sold_out": "Uitverkocht", + "unavailable": "Niet beschikbaar", + "on_sale": "Aanbieding", + "sale_price": "Aanbiedingsprijs", + "quantity": "Aantal", + "add_to_cart": "Aan winkelwagen toevoegen", + "loader_label": "Product toegevoegen aan je winkelwagen", + "back_to_collection": "Terug naar", + "vendor": "Verkoper", + "quantity_minimum_message": "Hoeveelheid moet 1 of meer zijn", + "include_taxes": "Inclusief belasting", + "shipping_policy_html": "Verzendkosten worden berekend bij de checkout.", + "unit_price_label": "Eenheidsprijs", + "view_cart": "Winkelwagen bekijken", + "availability": "Beschikbaarheid", + "from_lowest_price_html": "van {{ lowest_price }}", + "view_in_space": "Bekijk in je ruimte", + "view_in_space_label": "Bekijk in je ruimte, laadt artikel in augmented reality-venster" + } + }, + "gift_cards": { + "issued": { + "title_html": "Hier is je cadeaubon ter waarde van {{ value }} voor {{ shop }}!", + "subtext": "Je cadeaubon", + "gift_card_code": "Cadeaubon code", + "disabled": "Uitgeschakeld", + "expired": "Verlopen op {{ expiry }}", + "active": "Verloopt op {{ expiry }}", + "redeem_html": "Gebruik deze code bij de checkout om je cadeaubon van {{ value }} te verzilveren", + "shop_link": "Ga winkelen", + "print": "Deze cadeaubon afdrukken", + "remaining_html": "{{ balance }} over", + "add_to_apple_wallet": "Aan Apple Wallet toevoegen", + "qr_image_alt": "QR-code — scannen om cadeaubon te verzilveren" + } + }, + "store_availability": { + "general": { + "view_store_info": "Winkelgegevens bekijken", + "check_other_stores": "Controleer de beschikbaarheid van andere winkels", + "pick_up_available": "Afhaling is beschikbaar", + "pick_up_currently_unavailable": "Afhaling is momenteel niet beschikbaar", + "pick_up_available_at_html": "Afhaling is beschikbaar bij {{ location_name }}", + "pick_up_unavailable_at_html": "Afhaling is momenteel niet beschikbaar bij {{ location_name }}" + } + } +} diff --git a/shopify/locales/pl.json b/shopify/locales/pl.json new file mode 100644 index 00000000..a0750214 --- /dev/null +++ b/shopify/locales/pl.json @@ -0,0 +1,446 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Przejdź do treści", + "close_modal": "Zamknij", + "refresh_page": "Zaznaczenie wyboru powoduje pełne odświeżenie strony.", + "selection_help": "Naciśnij klawisz spacji, a następnie klawisze strzałek, aby dokonać wyboru.", + "unit_price_separator": "za", + "error": "Błąd", + "link_messages": { + "new_window": "Otwiera się w nowym oknie.", + "external": "Otwiera zewnętrzną stronę internetową.", + "new_window_and_external": "Otwiera zewnętrzną stronę internetową w nowym oknie." + } + }, + "meta": { + "tags": "Oznaczone tagiem \"{{ tags }}\"", + "page": "Strona {{ page }}" + }, + "404": { + "title": "404 Nie znaleziono strony", + "subtext": "Żądana strona nie istnieje.", + "link": "Kontynuuj zakupy" + }, + "pagination": { + "previous": "Poprzednia strona", + "next": "Następna strona", + "current_page": "Strona {{ current }} z {{ total }}" + }, + "password_page": { + "opening_soon": "Wkrótce otwarcie", + "login_form_heading": "Wejdź do sklepu, wpisując hasło", + "login_form_password_label": "Hasło", + "login_form_password_placeholder": "Twoje hasło", + "login_form_submit": "Enter", + "signup_form_email_label": "E-mail", + "signup_form_success": "Wyślemy Ci wiadomość e-mail tuż przed otwarciem!", + "admin_link_html": "Czy jesteś właścicielem sklepu? Zaloguj się tutaj", + "password_link": "Wejdź, wpisując hasło" + }, + "social": { + "share_on_facebook": "Udostępnij", + "share_on_twitter": "Utwórz tweet", + "share_on_pinterest": "Przypnij to", + "alt_text": { + "share_on_facebook": "Udostępnij na Facebooku", + "share_on_twitter": "Tweetuj na Twitterze", + "share_on_pinterest": "Przypnij do tablicy Pinterest" + } + }, + "search": { + "empty_search_message": "Pole wyszukiwania nie może być puste", + "title": "Przeszukaj naszą stronę", + "placeholder": "Szukaj", + "submit": "Zatwierdź", + "close": "Zamknij wyszukiwanie", + "search_for": "Szukaj", + "loading": "Ładowanie", + "clear_search_term": "Wyczyść szukany termin", + "number_of_results": "{{ result_number }} z {{ results_count }}", + "products": "Produkty", + "number_of_results_found": "Liczba znalezionych wyników: {{ results_count }}", + "one_result_found": "Znaleziono 1 wynik", + "no_results": "Spróbuj sprawdzić pisownię lub użyj innych słów.", + "heading": { + "one": "Wynik wyszukiwania", + "other": "Wyniki wyszukiwania", + "few": "Wyniki wyszukiwania", + "many": "Wyniki wyszukiwania" + }, + "results_with_count": { + "one": "{{ count }} wynik dla \"{{ terms }}\"", + "other": "{{ count }} wyniki(-ów) dla \"{{ terms }}\"", + "few": "{{ count }} wyniki(-ów) dla \"{{ terms }}\"", + "many": "{{ count }} wyniki(-ów) dla \"{{ terms }}\"" + } + }, + "newsletter_form": { + "newsletter_email": "Zapisz się do naszej listy mailingowej", + "email_placeholder": "Adres e-mail", + "confirmation": "Dziękujemy za subskrypcję!", + "submit": "Subskrybuj" + }, + "filters": { + "show_more": "Pokaż więcej", + "show_less": "Pokaż mniej" + }, + "payment": { + "method": "Metody płatności" + }, + "language": { + "dropdown_label": "Język" + }, + "country": { + "dropdown_label": "Kraj/region" + } + }, + "sections": { + "slideshow": { + "next_slide": "Następny slajd", + "previous_slide": "Poprzedni slajd", + "pause_slideshow": "Wstrzymaj pokaz slajdów", + "rotate_slideshow": "Odtwórz pokaz slajdów", + "load_slide": "Załaduj slajd {{ slide_number }}", + "navigation_instructions": "Użyj strzałek w lewo/w prawo, aby poruszać się po pokazie slajdów lub przesuń palcem w lewo/w prawo, jeśli używasz urządzenia mobilnego" + }, + "featured_product": { + "title": "Polecany produkt", + "gallery_thumbnail_alt": "Załaduj obraz do przeglądarki galerii, {{ imageAlt }}", + "video_thumbnail_alt": "Załaduj i odtwarzaj film w przeglądarce Gallery, {{ imageAlt }}", + "model_thumbnail_alt": "Załaduj model 3D do przeglądarki Gallery {{ imageAlt }}" + }, + "map": { + "address_error": "Błąd podczas wyszukiwania tego adresu", + "address_no_results": "Brak wyników dla tego adresu", + "address_query_limit_html": "Przekroczono limit używania interfejsu API Google. Rozważ przejście do Planu Premium.", + "auth_error_html": "Wystąpił problem z uwierzytelnianiem Twojego konta Google Maps.", + "section_heading": "Lokalizacja" + }, + "video": { + "play": "Odtwórz film {{ video_title }}", + "pause": "Zatrzymaj film {{ video_title }}", + "resume": "Wznów film {{ video_title }}", + "close": "Zamknij film {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Ogłoszenie" + } + }, + "blogs": { + "article": { + "view_all": "Wyświetl wszystkie", + "view_all_blogs": "Wyświetl wszystkie blogi", + "all_topics": "Wszystkie tematy", + "by_author": "przez {{ author }}", + "posted_in": "Opublikowane w", + "read_more": "Dowiedz się więcej", + "read_more_title": "Czytaj więcej: {{ title }}", + "back_to_blog": "Powrót do {{ title }}", + "tags": "Tagi", + "article_with_count": { + "one": "{{ count }} artykuł", + "other": "{{ count }} artykuły(-ów)", + "few": "{{ count }} artykuły(-ów)", + "many": "{{ count }} artykuły(-ów)" + } + }, + "comments": { + "title": "Zostaw komentarz", + "name": "Nazwa", + "email": "E-mail", + "message": "Wiadomość", + "post": "Opublikuj komentarz", + "moderated": "Pamiętaj, że komentarze muszą zostać zatwierdzone przed ich opublikowaniem", + "success_moderated": "Twój komentarz został zamieszczony pomyślnie. Opublikujemy go za chwilę, ponieważ nasz blog jest moderowany.", + "success": "Twój komentarz został opublikowany pomyślnie! Dziękujemy!", + "unapproved": "Podany adres e-mail nie jest zatwierdzony do publikowania komentarzy.", + "comments_with_count": { + "one": "{{ count }} komentarz", + "other": "Liczba komentarzy: {{ count }}", + "few": "Liczba komentarzy: {{ count }}", + "many": "Liczba komentarzy: {{ count }}" + } + } + }, + "cart": { + "general": { + "title": "Twój koszyk", + "note": "Dodaj notatkę do swojego zamówienia", + "removed_item_html": "Usunięto ({{ quantity }}) {{ link }} z Twojego koszyka.", + "remove": "Usuń", + "subtotal": "Suma częściowa", + "savings": "Oszczędzasz", + "taxes_and_shipping_at_checkout": "Podatki i koszty wysyłki obliczane przy kasie", + "taxes_and_shipping_policy_at_checkout_html": "Podatki i koszyt wysyłki obliczane przy kasie", + "taxes_included_but_shipping_at_checkout": "Podatek wliczony w cenę i wysyłka obliczona przy kasie", + "taxes_included_and_shipping_policy_html": "Z wliczonym podatkiem. Koszt wysyłki obliczony przy kasie.", + "update": "Aktualizuj", + "checkout": "Realizacja zakupu", + "empty": "Twój koszyk jest obecnie pusty.", + "cookies_required": "Włącz pliki cookie, aby korzystać z koszyka", + "continue_shopping": "Kontynuuj zakupy", + "cart_error": "Wystąpił błąd podczas aktualizowania Twojego koszyka. Spróbuj ponownie." + }, + "label": { + "discounted_total": "Łączny rabat", + "product": "Produkt", + "price": "Cena", + "price_column": "Szczegółowe informacje na temat rabatu można znaleźć w kolumnie Cena.", + "product_details": "Szczegóły produktu", + "quantity": "Ilość", + "qty": "Ilość", + "regular_total": "Suma regularna", + "remove": "Usuń {{ product }}", + "total": "Suma", + "update": "Aktualizuj" + }, + "popup": { + "added_to_cart": "Dodano już do Twojego koszyka", + "product_details": "Szczegóły produktu", + "quantity": "Ilość", + "quantity_label": "Ilość: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} pozycja", + "other": "{{ count }} pozycji(-e)", + "few": "{{ count }} pozycji(-e)", + "many": "{{ count }} pozycji(-e)" + } + } + }, + "collections": { + "general": { + "view_all": "Wyświetl wszystkie", + "view_all_label": "Wyświetl wszystkie produkty w kolekcji {{ collection_name }}", + "no_matches": "Niestety, w tej kolekcji nie ma produktów", + "collection_label": "Kolekcja", + "items_with_count": { + "one": "Produkt: {{ count }}", + "other": "Liczba produktów: {{ count }}", + "few": "Liczba produktów: {{ count }}", + "many": "Liczba produktów: {{ count }}" + } + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Sortuj wg" + }, + "filters": { + "title_tags": "Filtruj według", + "all_tags": "Wszystkie produkty" + } + }, + "contact": { + "form": { + "name": "Nazwa", + "email": "E-mail", + "phone": "Numer telefonu", + "message": "Wiadomość", + "submit": "Wyślij", + "post_success": "Dziękujemy za skontaktowanie się z nami. Skontaktujemy się z Tobą tak szybko, jak to możliwe.", + "error_heading": "Dostosuj następujące dane:" + } + }, + "customer": { + "account": { + "title": "Moje konto", + "details": "Szczegóły konta", + "view_addresses": "Wyświetl adresy", + "return": "Wróć do szczegółów konta" + }, + "activate_account": { + "title": "Aktywuj konto", + "subtext": "Utwórz hasło, aby aktywować konto.", + "password": "Hasło", + "password_confirm": "Potwierdź hasło", + "submit": "Aktywuj konto", + "cancel": "Odrzuć zaproszenie" + }, + "addresses": { + "title": "Twoje adresy", + "default": "Domyślne", + "add_new": "Dodaj nowy adres", + "edit_address": "Edytuj adres", + "first_name": "Imię", + "last_name": "Nazwisko", + "company": "Firma", + "address1": "Adres", + "address2": "Mieszkanie, apartament, itp.", + "city": "Miasto", + "country": "Kraj/region", + "province": "Prowincja", + "zip": "Kod pocztowy", + "phone": "Telefon", + "set_default": "Ustaw jako adres domyślny", + "add": "Dodaj adres", + "update": "Zaktualizuj adres", + "cancel": "Anuluj", + "edit": "Edytuj", + "delete": "Usuń", + "delete_confirm": "Czy na pewno chcesz usunąć ten adres?" + }, + "login": { + "title": "Zaloguj się", + "email": "E-mail", + "password": "Hasło", + "forgot_password": "Nie pamiętasz hasła?", + "sign_in": "Zaloguj się", + "guest_title": "Kontynuuj jako gość", + "guest_continue": "Kontynuuj" + }, + "orders": { + "title": "Historia zamówień", + "order_number": "Zamówienie", + "order_number_link": "Numer zamówienia {{ number }}", + "date": "Data", + "payment_status": "Status płatności", + "fulfillment_status": "Status realizacji", + "total": "Suma", + "none": "Nie złożyłeś(-aś) jeszcze żadnych zamówień." + }, + "order": { + "title": "Zamówienie {{ name }}", + "date_html": "Umieszczone dnia {{ date }}", + "cancelled_html": "Zamówienie anulowane {{ date }}", + "cancelled_reason": "Powód: {{ reason }}", + "billing_address": "Adres rozliczeniowy", + "payment_status": "Status płatności", + "shipping_address": "Adres wysyłki", + "fulfillment_status": "Status realizacji", + "discount": "Rabat", + "shipping": "Wysyłka", + "tax": "Podatek", + "product": "Produkt", + "sku": "SKU", + "price": "Cena", + "quantity": "Ilość", + "total": "Suma", + "fulfilled_at_html": "Zrealizowano {{ date }}", + "subtotal": "Suma częściowa", + "track_shipment": "Śledź przesyłkę" + }, + "recover_password": { + "title": "Zresetuj swoje hasło", + "email": "E-mail", + "submit": "Zatwierdź", + "cancel": "Anuluj", + "subtext": "Wyślemy Ci e-mail, aby zresetować hasło.", + "success": "Wysłaliśmy do Ciebie e-mail z linkiem do aktualizacji hasła." + }, + "reset_password": { + "title": "Zresetuj hasło do konta", + "subtext": "Wprowadź nowe hasło do {{ email }}", + "password": "Hasło", + "password_confirm": "Potwierdź hasło", + "submit": "Zresetuj hasło" + }, + "register": { + "title": "Utwórz konto", + "first_name": "Imię", + "last_name": "Nazwisko", + "email": "E-mail", + "password": "Hasło", + "submit": "Utwórz" + } + }, + "homepage": { + "general": { + "title": "Strona główna" + }, + "onboarding": { + "product_title": "Nazwa Twojego produktu", + "product_description": "Ten obszar służy do opisu szczegółów produktu. Powiedz klientom o wyglądzie i stylu Twojego produktu. Dodaj szczegóły dotyczące koloru, użytych materiałów, rozmiaru i miejscu produkcji.", + "collection_title": "Nazwa Twojej kolekcji", + "blog_title": "Tytuł Twojego posta", + "blog_excerpt": "Twój sklep nie opublikował jeszcze żadnych postów na blogu. Blog może być używany do informowania o wprowadzaniu nowych produktów do sprzedaży, udostępniania porad lub innych wiadomości, które chcesz przekazać swoim klientom. Możesz sprawdzić blog e-commerce Shopify, aby uzyskać inspiracje i porady dla własnego sklepu i bloga.", + "blog_author": "Nazwisko autora", + "no_content": "Ta sekcja nie zawiera obecnie żadnych treści. Dodaj zawartość do tej sekcji za pomocą paska bocznego." + } + }, + "layout": { + "navigation": { + "search": "Szukaj", + "expand": "rozszerz", + "collapse": "zwiń", + "menu": "Menu" + }, + "cart": { + "title": "Koszyk", + "items_count": { + "one": "pozycję", + "other": "pozycje", + "few": "pozycje", + "many": "pozycje" + } + }, + "customer": { + "account": "Konto", + "log_out": "Wyloguj", + "log_in": "Zaloguj się", + "create_account": "Utwórz konto" + }, + "footer": { + "social_platform": "{{ name }} na {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Cena regularna", + "sold_out": "Wyprzedane", + "unavailable": "Niedostępne", + "on_sale": "Sprzedaż", + "sale_price": "Cena sprzedaży", + "quantity": "Ilość", + "add_to_cart": "Dodaj do koszyka", + "loader_label": "Dodawanie produktu do koszyka", + "back_to_collection": "Powrót do", + "vendor": "Dostawca", + "quantity_minimum_message": "Ilość musi wynosić 1 lub więcej", + "include_taxes": "Z wliczonym podatkiem.", + "shipping_policy_html": "Koszt wysyłki obliczony przy realizacji zakupu.", + "unit_price_label": "Cena jednostkowa", + "view_cart": "Zobacz koszyk", + "availability": "Dostępność", + "from_lowest_price_html": "z {{ lowest_price }}", + "view_in_space": "Zobacz w swojej przestrzeni", + "view_in_space_label": "Widok w Twojej przestrzeni, wczytuje przedmiot do okna rzeczywistości rozszerzonej" + } + }, + "gift_cards": { + "issued": { + "title_html": "Oto Twoja karta prezentowa o wartości {{ value }} do {{ shop }}!", + "subtext": "Twoja karta prezentowa", + "gift_card_code": "Kod karty prezentowej", + "disabled": "Wyłączone", + "expired": "Wygasła dnia {{ expiry }}", + "active": "Wygasa dnia {{ expiry }}", + "redeem_html": "Użyj tego kodu przy kasie, aby wykorzystać swoją kartę prezentową na {{ value }}", + "shop_link": "Rozpocznij zakupy", + "print": "Wydrukuj tę kartę prezentową", + "remaining_html": "{{ balance }} lewo", + "add_to_apple_wallet": "Dodaj do Apple Wallet", + "qr_image_alt": "Kod QR — zeskanuj, aby wykorzystać kartę prezentową" + } + }, + "store_availability": { + "general": { + "view_store_info": "Pokaż informacje o sklepie", + "check_other_stores": "Sprawdź dostępność w innych sklepach", + "pick_up_available": "Odbiór jest możliwy", + "pick_up_currently_unavailable": "Odbiór jest obecnie niemożliwy", + "pick_up_available_at_html": "Odbiór możliwy w {{ location_name }}", + "pick_up_unavailable_at_html": "Odbiór w {{ location_name }} jest obecnie niemożliwy" + } + } +} diff --git a/shopify/locales/pt-BR.json b/shopify/locales/pt-BR.json new file mode 100644 index 00000000..fef329c0 --- /dev/null +++ b/shopify/locales/pt-BR.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Pular para o conteúdo", + "close_modal": "Fechar", + "link_messages": { + "new_window": "Abrirá numa nova janela.", + "external": "Abrirá uma página externa.", + "new_window_and_external": "Abrirá uma página externa numa nova janela." + }, + "refresh_page": "Escolher uma seleção resulta em uma atualização de página inteira.", + "selection_help": "Pressione a tecla de espaço e as teclas de seta para fazer uma seleção.", + "unit_price_separator": "por", + "error": "Erro" + }, + "meta": { + "tags": "Marcado \"{{ tags }}\"", + "page": "Página {{ page }}" + }, + "404": { + "title": "404 Página não encontrada", + "subtext": "A página solicitada não existe.", + "link": "Voltar à loja" + }, + "pagination": { + "previous": "Página anterior", + "next": "Próxima página", + "current_page": "Página {{ current }} de {{ total }}" + }, + "password_page": { + "opening_soon": "Abertura em breve", + "login_form_heading": "Entre na loja usando a senha", + "login_form_password_label": "Senha", + "login_form_password_placeholder": "Sua senha", + "login_form_submit": "Entrar", + "signup_form_email_label": "E-mail", + "signup_form_success": "Nós lhe enviaremos um e-mail logo antes de lançar a loja!", + "admin_link_html": "Você é o titular da loja? Entre aqui", + "password_link": "Entre usando a senha" + }, + "social": { + "share_on_facebook": "Compartilhar", + "share_on_twitter": "Tuitar", + "share_on_pinterest": "Pinterest", + "alt_text": { + "share_on_facebook": "Compartilhar no Facebook", + "share_on_twitter": "Tuitar", + "share_on_pinterest": "Incluir como pin no Pinterest" + } + }, + "search": { + "empty_search_message": "O campo de pesquisa não pode ficar em branco", + "title": "Pesquise no nosso site", + "placeholder": "Pesquisar", + "submit": "Enviar", + "close": "Fechar pesquisa", + "heading": { + "one": "Resultado da pesquisa", + "other": "Procurar Resultados" + }, + "search_for": "Pesquisar", + "loading": "Carregando", + "clear_search_term": "Limpar termo de pesquisa", + "number_of_results": "{{ result_number }} de {{ results_count }}", + "products": "Produtos", + "number_of_results_found": "{{ results_count }} resultados encontrados", + "one_result_found": "1 resultado encontrado", + "no_results": "Tente verificar a ortografia ou usar palavras diferentes.", + "results_with_count": { + "one": "{{ count }} resultado para “{{ terms }}”", + "other": "{{ count }} resultados para “{{ terms }}”" + } + }, + "newsletter_form": { + "newsletter_email": "Assine nossa newsletter", + "email_placeholder": "E-mail", + "confirmation": "Obrigado por se inscrever!", + "submit": "Me inscrever" + }, + "filters": { + "show_more": "Exibir mais", + "show_less": "Exibir menos" + }, + "payment": { + "method": "Formas de pagamento" + }, + "language": { + "dropdown_label": "Idioma" + }, + "country": { + "dropdown_label": "País/região" + } + }, + "sections": { + "slideshow": { + "next_slide": "Próximo slide", + "previous_slide": "Slide anterior", + "pause_slideshow": "Pausar apresentação de slides", + "rotate_slideshow": "Reproduzir apresentação de slides", + "load_slide": "Abrir slide {{ slide_number }}", + "navigation_instructions": "Utilize as setas esquerda/direita para navegar pela apresentação de slides, ou deslize para a esquerda/direita se estiver usando um dispositivo móvel" + }, + "featured_product": { + "title": "Produto em destaque", + "gallery_thumbnail_alt": "Carregar imagem no visualizador da galeria, {{ imageAlt }}", + "video_thumbnail_alt": "Carregar e reproduzir vídeo no visualizador da galeria, {{ imageAlt }}", + "model_thumbnail_alt": "Carregar modelo 3D no visualizador da galeria, {{ imageAlt }}" + }, + "map": { + "address_error": "Não é possível localizar o endereço", + "address_no_results": "Nenhum resultado para este endereço", + "address_query_limit_html": "Você excedeu a cota de uso da API do Google. Considere a atualização para um Plano Premium.", + "auth_error_html": "Houve um problema ao autenticar sua conta do Google Maps.", + "section_heading": "Localização" + }, + "video": { + "play": "Reproduzir o vídeo {{ video_title }}", + "pause": "Pausar o vídeo {{ video_title }}", + "resume": "Continuar o vídeo {{ video_title }}", + "close": "Fechar vídeo {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Comunicado" + } + }, + "blogs": { + "article": { + "view_all": "Ver tudo", + "view_all_blogs": "Ver todos os artigos", + "all_topics": "Todos os tópicos", + "by_author": "por {{ author }}", + "posted_in": "Postado em", + "read_more": "Saiba mais", + "read_more_title": "Saiba mais: {{ title }}", + "back_to_blog": "Voltar para {{ title }}", + "tags": "Tag", + "article_with_count": { + "one": "{{ count }} artigo", + "other": "{{ count }} artigos" + } + }, + "comments": { + "title": "Deixe um comentário", + "name": "Nome", + "email": "E-mail", + "message": "Mensagem", + "post": "Postar comentário", + "moderated": "Os comentários precisam ser aprovados antes de serem publicados", + "success_moderated": "Seu comentário foi publicado. Nós o publicaremos em alguns instantes, já que o nosso blog é moderado.", + "success": "Seu comentário foi publicado.", + "unapproved": "O e-mail fornecido não está aprovado para postar comentários.", + "comments_with_count": { + "one": "{{ count }} comentário", + "other": "{{ count }} comentários" + } + } + }, + "cart": { + "general": { + "title": "Seu carrinho", + "note": "Adicione uma observação ao seu pedido", + "removed_item_html": "({{ quantity }}) {{ link }} removido(s) do seu carrinho.", + "remove": "Remover", + "subtotal": "Subtotal", + "savings": "Você está economizando", + "taxes_and_shipping_at_checkout": "Tributos e frete calculados no checkout", + "taxes_and_shipping_policy_at_checkout_html": "Tributos e frete calculados no checkout", + "taxes_included_but_shipping_at_checkout": "Tributos incluídos e frete calculado no checkout", + "taxes_included_and_shipping_policy_html": "Tributos incluídos. Frete calculado no checkout.", + "update": "Atualizar", + "checkout": "Finalizar compra", + "empty": "Seu carrinho está vazio no momento.", + "cookies_required": "Habilite os cookies para usar o carrinho de compras", + "continue_shopping": "Voltar à loja", + "cart_error": "Houve um erro ao atualizar o seu carrinho. Tente novamente." + }, + "label": { + "discounted_total": "Desconto total", + "product": "Produto", + "price": "Preço", + "price_column": "Veja as informações do desconto na coluna Preço.", + "product_details": "Informações do produto", + "quantity": "Quantidade", + "qty": "Qtde", + "regular_total": "Total regular", + "remove": "Remover {{ product }}", + "total": "Total", + "update": "Atualizar" + }, + "popup": { + "added_to_cart": "Acaba de ser adicionado ao seu carrinho", + "cart_count": { + "one": "{{ count }} item", + "other": "{{ count }} itens" + }, + "product_details": "Informações do produto", + "quantity": "Qtde", + "quantity_label": "Quantidade: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Ver tudo", + "view_all_label": "Ver todos os produtos da coleção {{ collection_name }}", + "no_matches": "Desculpe, não há produtos nesta coleção", + "items_with_count": { + "one": "{{ count }} produto", + "other": "{{ count }} produtos" + }, + "collection_label": "Coleção" + }, + "catalog": { + "title": "Catálogo" + }, + "sorting": { + "title": "Organizar por" + }, + "filters": { + "title_tags": "Filtrar por", + "all_tags": "Todos os produtos" + } + }, + "contact": { + "form": { + "name": "Nome", + "email": "E-mail", + "phone": "Número de telefone", + "message": "Mensagem", + "submit": "Enviar", + "post_success": "Obrigado por entrar em contato conosco. Retornaremos o mais rápido possível.", + "error_heading": "Por favor, ajuste o seguinte:" + } + }, + "customer": { + "account": { + "title": "Minha conta", + "details": "Informações da conta", + "view_addresses": "Ver endereços", + "return": "Retornar às informações da conta" + }, + "activate_account": { + "title": "Ativar conta", + "subtext": "Crie sua senha para ativar sua conta.", + "password": "Senha", + "password_confirm": "Confirmar senha", + "submit": "Ativar conta", + "cancel": "Recusar convite" + }, + "addresses": { + "title": "Seus endereços", + "default": "Padrão", + "add_new": "Adicionar um novo endereço", + "edit_address": "Editar endereço", + "first_name": "Nome", + "last_name": "Sobrenome", + "company": "Empresa", + "address1": "Endereço", + "address2": "Casa, apto. etc.", + "city": "Cidade", + "country": "País/região", + "province": "Província/Estado", + "zip": "CEP", + "phone": "Telefone", + "set_default": "Definir como endereço padrão", + "add": "Adicionar endereço", + "update": "Atualizar endereço", + "cancel": "Cancelar", + "edit": "Editar", + "delete": "Excluir", + "delete_confirm": "Tem certeza de que deseja excluir este endereço?" + }, + "login": { + "title": "Entrar", + "email": "E-mail", + "password": "Senha", + "forgot_password": "Esqueceu sua senha?", + "sign_in": "Fazer login", + "guest_title": "Continuar como convidado", + "guest_continue": "Continuar" + }, + "orders": { + "title": "Histórico de pedidos", + "order_number": "Pedido", + "order_number_link": "Pedido número {{ number }}", + "date": "Data", + "payment_status": "Status do pagamento", + "fulfillment_status": "Status de processamento do pedido", + "total": "Total", + "none": "Você ainda não fez nenhum pedido." + }, + "order": { + "title": "Pedido {{ name }}", + "date_html": "Efetuado em {{ date }}", + "cancelled_html": "Pedido cancelado em {{ date }}", + "cancelled_reason": "Motivo: {{ reason }}", + "billing_address": "Endereço de faturamento", + "payment_status": "Status do pagamento", + "shipping_address": "Endereço de entrega", + "fulfillment_status": "Status de processamento do pedido", + "discount": "Desconto", + "shipping": "Frete", + "tax": "Tributos", + "product": "Produto", + "sku": "SKU", + "price": "Preço", + "quantity": "Quantidade", + "total": "Total", + "fulfilled_at_html": "Processado em {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Rastrear o pacote" + }, + "recover_password": { + "title": "Redefinir sua senha", + "email": "E-mail", + "submit": "Enviar", + "cancel": "Cancelar", + "subtext": "Nós lhe enviaremos um e-mail para redefinir sua senha.", + "success": "Nós lhe enviamos um e-mail com um link para atualizar sua senha." + }, + "reset_password": { + "title": "Redefinir senha da conta", + "subtext": "Digite uma nova senha para {{ email }}", + "password": "Senha", + "password_confirm": "Confirmar senha", + "submit": "Redefinir senha" + }, + "register": { + "title": "Criar conta", + "first_name": "Nome", + "last_name": "Sobrenome", + "email": "E-mail", + "password": "Senha", + "submit": "Criar" + } + }, + "homepage": { + "general": { + "title": "Página inicial" + }, + "onboarding": { + "product_title": "Nome do seu produto", + "product_description": "Essa área é usada para descrever as informações do seu produto. Conte aos clientes sobre a aparência, textura e estilo de seu produto. Adicione detalhes como cores, materiais utilizados, tamanhos e lugar de fabricação.", + "collection_title": "Nome da sua coleção", + "blog_title": "Título de seu post", + "blog_excerpt": "Sua loja ainda não publicou nenhum post no blog. Um blog pode ser usado para falar sobre lançamentos de novos produtos, dicas ou outras novidades que você quer compartilhar com seus clientes. Confira o blog de e-commerce da Shopify para se inspirar e ver dicas para sua própria loja e blog.", + "blog_author": "Nome do autor", + "no_content": "Atualmente, esta seção não possui nenhum conteúdo. Adicione conteúdo a esta seção usando a barra lateral." + } + }, + "layout": { + "navigation": { + "search": "Pesquisar", + "expand": "expandir", + "collapse": "recolher", + "menu": "Menu" + }, + "cart": { + "title": "Carrinho", + "items_count": { + "one": "item", + "other": "itens" + } + }, + "customer": { + "account": "Conta", + "log_out": "Sair", + "log_in": "Fazer login", + "create_account": "Criar conta" + }, + "footer": { + "social_platform": "{{ name }} em {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Preço normal", + "sold_out": "Esgotado", + "unavailable": "Indisponível", + "on_sale": "Em promoção", + "sale_price": "Preço promocional", + "quantity": "Quantidade", + "add_to_cart": "Adicionar ao carrinho", + "loader_label": "Adicionando o produto ao seu carrinho", + "back_to_collection": "Voltar a", + "vendor": "Fornecedor", + "quantity_minimum_message": "Quantidade precisa ser 1 ou mais", + "include_taxes": "Taxas incluídas.", + "shipping_policy_html": "Frete calculado no checkout.", + "unit_price_label": "Preço unitário", + "view_cart": "Ver carrinho", + "availability": "Disponibilidade", + "from_lowest_price_html": "de {{ lowest_price }}", + "view_in_space": "Ver no seu espaço", + "view_in_space_label": "Ver em seu espaço, carregar item na janela de realidade aumentada" + } + }, + "gift_cards": { + "issued": { + "title_html": "Aqui está o seu cartão-presente de {{ value }} para {{ shop }}!", + "subtext": "Seu cartão-presente", + "gift_card_code": "Código do cartão-presente", + "disabled": "Desabilitado", + "expired": "Expirado em {{ expiry }}", + "active": "Expira em {{ expiry }}", + "redeem_html": "Para resgatar o seu cartão-presente de {{ value }}, utilize este código no fechamento do pedido", + "shop_link": "Comece a comprar", + "print": "Imprimir este cartão-presente", + "remaining_html": "{{ balance }} restante(s)", + "add_to_apple_wallet": "Adicionar ao app Wallet da Apple", + "qr_image_alt": "código QR - digitalizar para resgatar cartão de presente" + } + }, + "store_availability": { + "general": { + "view_store_info": "Ver as informações da loja", + "check_other_stores": "Verificar a disponibilidade em outras lojas", + "pick_up_available": "Retirada disponível", + "pick_up_currently_unavailable": "Retirada indisponível no momento", + "pick_up_available_at_html": "Retirada disponível em {{ location_name }}", + "pick_up_unavailable_at_html": "Retirada em {{ location_name }} indisponível no momento" + } + } +} diff --git a/shopify/locales/pt-PT.json b/shopify/locales/pt-PT.json new file mode 100644 index 00000000..05d41627 --- /dev/null +++ b/shopify/locales/pt-PT.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Pular para o Conteúdo", + "close_modal": "Fechar", + "link_messages": { + "new_window": "Abrirá numa nova janela.", + "external": "Abrirá uma página externa.", + "new_window_and_external": "Abrirá uma página externa numa nova janela." + }, + "refresh_page": "Escolher uma seleção resulta numa atualização de página completa.", + "selection_help": "Pressione a barra de espaço e, em seguida, as teclas de seta para efetuar uma seleção.", + "unit_price_separator": "por", + "error": "Erro" + }, + "meta": { + "tags": "Etiquetado como \"{{ tags }}\"", + "page": "Página {{ page }}" + }, + "404": { + "title": "404 Página Não Encontrada", + "subtext": "A página que solicitou não existe.", + "link": "Continue comprando" + }, + "pagination": { + "previous": "Página anterior", + "next": "Próxima página", + "current_page": "Página {{ current }} de {{ total }}" + }, + "password_page": { + "opening_soon": "Abre Brevemente", + "login_form_heading": "Entre na loja usando a palavra-passe", + "login_form_password_label": "Palavra-passe", + "login_form_password_placeholder": "A sua palavra-passe", + "login_form_submit": "Entrar", + "signup_form_email_label": "Email", + "signup_form_success": "Iremos enviar-lhe um e-mail imediatamente antes de abrirmos!", + "admin_link_html": "É o dono da loja? Inicie sessão aqui", + "password_link": "Entre usando a palavra-passe" + }, + "social": { + "share_on_facebook": "Partilhar", + "share_on_twitter": "Twittar", + "share_on_pinterest": "Pin it", + "alt_text": { + "share_on_facebook": "Partilhe no Facebook", + "share_on_twitter": "Twittar no Twitter", + "share_on_pinterest": "Adicione no Pinterest" + } + }, + "search": { + "empty_search_message": "O campo de pesquisa não pode estar vazio", + "title": "Pesquisar nosso site", + "placeholder": "Pesquisar", + "submit": "Pesquisar", + "close": "Encerrar (esc)", + "heading": { + "one": "Resultado da pesquisa", + "other": "Procurar Resultados" + }, + "search_for": "Pesquisar por", + "loading": "Carregar", + "clear_search_term": "Limpar termo de pesquisa", + "number_of_results": "{{ result_number }} de {{ results_count }}", + "products": "Produtos", + "number_of_results_found": "{{ results_count }} resultados encontrados", + "one_result_found": "1 resultado encontrado", + "no_results": "Experimente verificar a ortografia ou utilizar palavras diferentes.", + "results_with_count": { + "one": "{{ count }} resultado para \"{{ terms }}\"", + "other": "{{ count }} resultado para \"{{ terms }}\"" + } + }, + "newsletter_form": { + "newsletter_email": "Subscreva a nossa lista de correio", + "email_placeholder": "Endereço de correio eletrónico", + "confirmation": "Agradecemos a sua subscrição!", + "submit": "Subscrever" + }, + "filters": { + "show_more": "Ver mais", + "show_less": "Mostrar Menos" + }, + "payment": { + "method": "Métodos de pagamento" + }, + "language": { + "dropdown_label": "Idioma" + }, + "country": { + "dropdown_label": "País/região" + } + }, + "sections": { + "slideshow": { + "next_slide": "Slide seguinte", + "previous_slide": "Slide anterior", + "pause_slideshow": "Pausa na apresentação de diapositivos", + "rotate_slideshow": "Reproduzir apresentação de diapositivos", + "load_slide": "Carregar slide {{ slide_number }}", + "navigation_instructions": "Utilize as setas esquerda/direita para navegar pela apresentação, ou deslize para a esquerda/direita se estiver a utilizar um dispositivo móvel" + }, + "featured_product": { + "title": "Produto em destaque", + "gallery_thumbnail_alt": "Carregar imagem no visualizador da galeria, {{ imageAlt }}", + "video_thumbnail_alt": "Carregar e reproduzir vídeo no visualizador da Galeria, {{ imageAlt }}", + "model_thumbnail_alt": "Carregar modelo 3D no visualizador da galeria, {{ imageAlt }}" + }, + "map": { + "address_error": "Não é possível localizar o endereço", + "address_no_results": "Nenhum resultado para este endereço", + "address_query_limit_html": "Você excedeu a cota de uso da API do Google. Considere a atualização para um Plano Premium.", + "auth_error_html": "Houve um problema autenticação de sua conta do Google Maps.", + "section_heading": "Localização" + }, + "video": { + "play": "Reproduzir vídeo {{ video_title }}", + "pause": "Pausar vídeo {{ video_title }}", + "resume": "Retomar vídeo {{ video_title }}", + "close": "Fechar vídeo {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Comunicado" + } + }, + "blogs": { + "article": { + "view_all": "Ver todo", + "view_all_blogs": "Ver todos os artigos", + "all_topics": "Todos os tópicos", + "by_author": "por {{ author }}", + "posted_in": "Postado em", + "read_more": "Ler mais", + "read_more_title": "Ler mais: {{ title }}", + "back_to_blog": "Regressar a {{ title }}", + "tags": "Tags", + "article_with_count": { + "one": "{{ count }} artigo", + "other": "{{ count }} artigos" + } + }, + "comments": { + "title": "Deixe um comentário", + "name": "Nome", + "email": "Email", + "message": "Mensagem", + "post": "Publicar comentário", + "moderated": "Tenha em atenção que os comentários precisam de ser aprovados antes de serem exibidos", + "success_moderated": "O seu comentário foi publicado com sucesso! Obrigado!", + "success": "Seu comentário foi postado! Obrigado!", + "unapproved": "O endereço de e-mail fornecido não está aprovado para postar comentários.", + "comments_with_count": { + "one": "{{ count }} comentário", + "other": "{{ count }} comentários" + } + } + }, + "cart": { + "general": { + "title": "O seu carrinho", + "note": "Adicione um comentário à sua encomenda", + "removed_item_html": "({{ quantity }}) {{ link }} removido do seu carrinho.", + "remove": "Eliminar", + "subtotal": "Subtotal", + "savings": "Está a poupar", + "taxes_and_shipping_at_checkout": "Impostos e envio calculados na finalização da compra", + "taxes_and_shipping_policy_at_checkout_html": "Impostos e envio calculados na finalização da compra", + "taxes_included_but_shipping_at_checkout": "Imposto incluído e envio calculado na finalização da compra", + "taxes_included_and_shipping_policy_html": "Imposto incluído. Envio calculado na finalização da compra.", + "update": "Atualizar Carrinho de Compras", + "checkout": "Finalizar a compra", + "empty": "De momento, o seu carrinho está vazio.", + "cookies_required": "Ative cookies para poder usar o carrinho de compras", + "continue_shopping": "Continuar a Comprar", + "cart_error": "Ocorreu um erro ao atualizar o seu carrinho. Tente novamente." + }, + "label": { + "discounted_total": "Total de desconto", + "product": "Produto", + "price": "Preço", + "price_column": "Veja a coluna Preço para detalhes sobre o desconto", + "product_details": "Detalhes do produto", + "quantity": "Quantidade", + "qty": "Qtd.", + "regular_total": "Total normal", + "remove": "Remover {{ product }}", + "total": "Total", + "update": "Atualizar Carrinho de Compras" + }, + "popup": { + "added_to_cart": "Acabado de adicionar ao seu carrinho", + "cart_count": { + "one": "Item de {{ count }}", + "other": "{{ count }} itens" + }, + "product_details": "Detalhes do produto", + "quantity": "Qtd.", + "quantity_label": "Quantidade: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Ver todo", + "view_all_label": "Ver todos os produtos da coleção {{ collection_name }}", + "no_matches": "Lamentamos, mas nenhum produto corresponde à sua pesquisa.", + "items_with_count": { + "one": "{{ count }} item", + "other": "{{ count }} itens" + }, + "collection_label": "Coleção" + }, + "catalog": { + "title": "Catálogo" + }, + "sorting": { + "title": "Ordenar" + }, + "filters": { + "title_tags": "Filtrar", + "all_tags": "Todos os Produtos" + } + }, + "contact": { + "form": { + "name": "Nome", + "email": "Email", + "phone": "Número de Telefone", + "message": "Mensagem", + "submit": "Enviar", + "post_success": "Obrigado por entrar em contacto connosco. Responder-lhe-emos logo que possível.", + "error_heading": "Por favor, ajuste o seguinte:" + } + }, + "customer": { + "account": { + "title": "A Minha Conta", + "details": "Detalhes da Conta", + "view_addresses": "Ver Endereços", + "return": "Regressar aos Detalhes da Conta" + }, + "activate_account": { + "title": "Ativar Conta", + "subtext": "Crie a sua palavra-passe para ativar a sua conta.", + "password": "Palavra-passe", + "password_confirm": "Confirmar palavra-passe", + "submit": "Ativar Conta", + "cancel": "Recusar Convite" + }, + "addresses": { + "title": "Os Seus Endereços", + "default": "Predefinição", + "add_new": "Adicionar um Novo Endereço", + "edit_address": "Editar Endereço", + "first_name": "Nome Próprio", + "last_name": "Sobrenome", + "company": "Empresa", + "address1": "Endereço", + "address2": "Andar, fração, etc.", + "city": "Localidade", + "country": "País/região", + "province": "Província", + "zip": "Código Postal", + "phone": "Telefone", + "set_default": "Selecionar como endereço predefinido", + "add": "Adicionar Endereço", + "update": "Atualizar Endereço", + "cancel": "Cancelar", + "edit": "Editar", + "delete": "Eliminar", + "delete_confirm": "Tem a certeza de que quer eliminar este endereço?" + }, + "login": { + "title": "Início de sessão", + "email": "Email", + "password": "Palavra-passe", + "forgot_password": "Esqueceu-se da sua palavra-passe?", + "sign_in": "Iniciar Sessão", + "guest_title": "Continuar como visitante", + "guest_continue": "Continuar" + }, + "orders": { + "title": "Histórico de encomendas", + "order_number": "Encomenda", + "order_number_link": "Número da encomenda: {{ number }}", + "date": "Data", + "payment_status": "Estado do pagamento", + "fulfillment_status": "Estado de processamento", + "total": "Total", + "none": "Ainda não efetuou nenhum pedido." + }, + "order": { + "title": "Encomenda {{ name }}", + "date_html": "Efetuado em{{ date }}", + "cancelled_html": "Encomenda cancelada em {{ date }}", + "cancelled_reason": "Motivo: {{ reason }}", + "billing_address": "Endereço de faturação", + "payment_status": "Estado do pagamento", + "shipping_address": "Endereço de Envio", + "fulfillment_status": "Estado de processamento", + "discount": "Desconto", + "shipping": "Envio", + "tax": "Taxa", + "product": "Produto", + "sku": "SKU", + "price": "Preço", + "quantity": "Quantidade", + "total": "Total", + "fulfilled_at_html": "Concluído em {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Acompanhar envio" + }, + "recover_password": { + "title": "Repor a sua palavra-passe", + "email": "Email", + "submit": "Enviar", + "cancel": "Cancelar", + "subtext": "Vamos enviar-lhe um e-mail para repor a sua palavra-passe.", + "success": "Enviámos-lhe um e-mail com uma ligação para atualizar a sua palavra-passe." + }, + "reset_password": { + "title": "Repor palavra-passe da conta", + "subtext": "Introduza uma nova palavra-passe para {{ email }}", + "password": "Palavra-passe", + "password_confirm": "Confirmar palavra-passe", + "submit": "Repor palavra-passe" + }, + "register": { + "title": "Criar Conta", + "first_name": "Nome Próprio", + "last_name": "Sobrenome", + "email": "Email", + "password": "Palavra-passe", + "submit": "Criar" + } + }, + "homepage": { + "general": { + "title": "Página inicial" + }, + "onboarding": { + "product_title": "O nome do seu produto", + "product_description": "Esta área é usada para descrever o seu produto detalhadamente. Informe o cliente do aspeto, toque e estilo do seu produto. Adicione detalhes sobre a cor, materiais usados, tamanhos e onde foi fabricado.", + "collection_title": "O nome da sua coleção", + "blog_title": "O título do seu post", + "blog_excerpt": "A sua loja não publicou ainda qualquer post no blogue. Um blogue pode ser usado para falar de lançamentos de novos produtos, sugestões e outras notícias que deseje partilhar com os seus clientes. Veja o blogue de comércio eletrónico da Shopify para se inspirar e obter alguns conselhos para a sua própria loja e blogue.", + "blog_author": "Nome do autor", + "no_content": "Esta sección actualmente no incluye ningún contenido. Añade un contenido a esta sección utilizando la barra lateral." + } + }, + "layout": { + "navigation": { + "search": "Pesquisar", + "expand": "expandir", + "collapse": "fechar", + "menu": "Menu" + }, + "cart": { + "title": "Carrinho", + "items_count": { + "one": "item", + "other": "itens" + } + }, + "customer": { + "account": "Conta", + "log_out": "Terminar sessão", + "log_in": "Iniciar sessão", + "create_account": "Criar conta" + }, + "footer": { + "social_platform": "{{ name }} na {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Preço normal", + "sold_out": "Esgotado", + "unavailable": "Indisponível", + "on_sale": "Promoção", + "sale_price": "Preço de saldo", + "quantity": "Quantidade", + "add_to_cart": "Adicionar ao carrinho", + "loader_label": "A adicionar produto ao seu carrinho", + "back_to_collection": "Voltar a", + "vendor": "Fornecedor", + "quantity_minimum_message": "Quantidade deve ser 1 ou mais", + "include_taxes": "Imposto incluído.", + "shipping_policy_html": "Envio calculado na finalização da compra.", + "unit_price_label": "Preço unitário", + "view_cart": "Ver carrinho", + "availability": "Disponibilidade", + "from_lowest_price_html": "de {{ lowest_price }}", + "view_in_space": "Ver no seu espaço", + "view_in_space_label": "Ver no seu espaço, carrega item na janela de realidade aumentada" + } + }, + "gift_cards": { + "issued": { + "title_html": "Aqui está o seu cartão de oferta de {{ value }} para {{ shop }}!", + "subtext": "O seu cartão de oferta!", + "gift_card_code": "Código do cartão de oferta", + "disabled": "Inválido", + "expired": "Expirou em {{ expiry }}", + "active": "Expira em {{ expiry }}", + "redeem_html": "Utilize este código na finalização da compra para resgatar o seu {{ value }} cartão de oferta", + "shop_link": "Começar a fazer compras", + "print": "Imprimir este cartão de oferta", + "remaining_html": "{{ balance }} restante", + "add_to_apple_wallet": "Adicionar ao Apple Wallet", + "qr_image_alt": "QR code - digitalizar para resgatar cartão de oferta" + } + }, + "store_availability": { + "general": { + "view_store_info": "Ver informações da loja", + "check_other_stores": "Verificar a disponibilidade noutras lojas", + "pick_up_available": "Recolha disponível", + "pick_up_currently_unavailable": "Recolha atualmente indisponível", + "pick_up_available_at_html": "Recolha disponível em {{ location_name }}", + "pick_up_unavailable_at_html": "Recolha atualmente indisponível em {{ location_name }}" + } + } +} diff --git a/shopify/locales/ro-RO.json b/shopify/locales/ro-RO.json new file mode 100644 index 00000000..263e3621 --- /dev/null +++ b/shopify/locales/ro-RO.json @@ -0,0 +1,439 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "products": { + "product": { + "from_lowest_price_html": "de la {{ lowest_price }}", + "regular_price": "Preț obișnuit", + "sold_out": "Stoc epuizat", + "unavailable": "Indisponibil", + "availability": "Disponibilitate", + "on_sale": "Vânzare", + "sale_price": "Preț la ofertă", + "quantity": "Cantitate", + "add_to_cart": "Adaugă în coș", + "loader_label": "Se adaugă produsul în coș", + "back_to_collection": "Înapoi la", + "vendor": "Vânzător", + "quantity_minimum_message": "Cantitatea trebuie să fie de 1 sau mai mult", + "include_taxes": "Taxe incluse.", + "shipping_policy_html": "Transportul este calculat la finalizarea comenzii.", + "unit_price_label": "Preț unitar", + "view_cart": "Vezi coșul", + "view_in_space": "Vezi în spațiul tău", + "view_in_space_label": "Vezi în spațiul tău, încarcă elementul în fereastra de realitate augmentată" + } + }, + "general": { + "accessibility": { + "skip_to_content": "Sari la conținut", + "close_modal": "Închide", + "refresh_page": "Alegerea unei selecții are ca rezultat o reîmprospătare completă a paginii.", + "selection_help": "Apasă tasta spațiu, apoi tastele săgeată pentru a face o selecție.", + "unit_price_separator": "pe", + "error": "Eroare", + "link_messages": { + "new_window": "Se deschide într-o fereastră nouă.", + "external": "Deschide un site extern.", + "new_window_and_external": "Deschide site-ul extern într-o fereastră nouă." + } + }, + "meta": { + "tags": "Etichetat „{{ tags }}”", + "page": "Pagina {{ page }}" + }, + "404": { + "title": "404 Pagina nu a fost găsită", + "subtext": "Pagina solicitată nu există.", + "link": "Continuă cumpărăturile" + }, + "pagination": { + "previous": "Pagina precedentă", + "next": "Pagina următoare", + "current_page": "Pagina {{ current }} din {{ total }}" + }, + "password_page": { + "opening_soon": "Se deschide în curând", + "login_form_heading": "Intră în magazin folosind parola", + "login_form_password_label": "Parolă", + "login_form_password_placeholder": "Parola ta", + "login_form_submit": "Intră", + "signup_form_email_label": "E-mail", + "signup_form_success": "Îți vom trimite un e-mail chiar înainte de deschidere!", + "admin_link_html": "Ești proprietarul magazinului? Conectează-te aici", + "password_link": "Intră folosind parola" + }, + "social": { + "share_on_facebook": "Distribuie", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Distribuie pe Pinterest", + "alt_text": { + "share_on_facebook": "Distribuie pe Facebook", + "share_on_twitter": "Trimite Tweet pe Twitter", + "share_on_pinterest": "Pin pe Pinterest" + } + }, + "search": { + "no_results": "Încearcă să verifici ortografia sau să folosești cuvinte diferite.", + "empty_search_message": "Câmpul de căutare nu poate fi gol", + "title": "Caută pe site-ul nostru", + "placeholder": "Caută", + "submit": "Trimite", + "close": "Închide căutarea", + "search_for": "Caută", + "products": "Produse", + "loading": "Se încarcă", + "clear_search_term": "Golește termenul de căutare", + "number_of_results": "{{ result_number }} din {{ results_count }}", + "number_of_results_found": "{{ results_count }} rezultate găsite", + "one_result_found": "1 rezultat găsit", + "results_with_count": { + "one": "{{ count }} rezultat pentru „{{ terms }}”", + "other": "{{ count }} rezultate pentru „{{ terms }}”", + "few": "{{ count }} rezultate pentru „{{ terms }}”" + }, + "heading": { + "one": "Rezultatul căutării", + "other": "Rezultatele căutării", + "few": "Rezultatele căutării" + } + }, + "newsletter_form": { + "newsletter_email": "Abonează-te-la lista noastră de corespondență", + "email_placeholder": "Adresă de e-mail", + "confirmation": "Mulțumim pentru că te-ai abonat!", + "submit": "Abonează-te" + }, + "filters": { + "show_more": "Afișează mai mult", + "show_less": "Afișează mai puțin" + }, + "payment": { + "method": "Metode de plată" + }, + "language": { + "dropdown_label": "Limbă" + }, + "country": { + "dropdown_label": "Țară/Regiune" + } + }, + "sections": { + "slideshow": { + "next_slide": "Diapozitivul următor", + "previous_slide": "Diapozitivul anterior", + "pause_slideshow": "Întrerupe prezentarea de diapozitive", + "rotate_slideshow": "Redă prezentarea de diapozitive", + "load_slide": "Încarcă diapozitivul {{ slide_number }}", + "navigation_instructions": "Utilizează săgețile stânga/dreapta pentru a naviga în prezentare sau glisează stânga/dreapta dacă folosești un dispozitiv mobil" + }, + "featured_product": { + "title": "Produs recomandat", + "gallery_thumbnail_alt": "Încarcă imaginea în vizualizatorul Galerie, {{ imageAlt }}", + "video_thumbnail_alt": "Încarcă și redă videoclipul în vizualizatorul Galerie, {{ imageAlt }}", + "model_thumbnail_alt": "Încarcă modelul 3D în vizualizatorul Galerie, {{ imageAlt }}" + }, + "map": { + "address_error": "Eroare la căutarea adresei respective", + "address_no_results": "Nu există rezultate pentru adresa respectivă", + "address_query_limit_html": "Ai depășit limita de utilizare a API-ului Google. Ia în considerare trecerea la un Plan Premium.", + "auth_error_html": "A apărut o problemă la autentificarea contului tău Google Maps.", + "section_heading": "Locație" + }, + "video": { + "play": "Redă videoclipul {{ video_title }}", + "pause": "Pune în pauză videoclipul {{ video_title }}", + "resume": "Reia videoclipul {{ video_title }}", + "close": "Închide videoclipul {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Anunț" + } + }, + "blogs": { + "article": { + "view_all": "Vezi tot", + "view_all_blogs": "Vezi toate blogurile", + "all_topics": "Toate subiectele", + "by_author": "de {{ author }}", + "posted_in": "Postat în", + "read_more": "Citește mai mult", + "read_more_title": "Citește mai mult: {{ title }}", + "back_to_blog": "Înapoi la {{ title }}", + "tags": "Etichete", + "article_with_count": { + "one": "{{ count }} articol", + "other": "{{ count }} articole", + "few": "{{ count }} articole" + } + }, + "comments": { + "title": "Lasă un comentariu", + "name": "Nume", + "email": "E-mail", + "message": "Mesaj", + "post": "Postează comentariul", + "moderated": "Nu uita, comentariile trebuie aprobate înainte de publicare", + "success_moderated": "Comentariul tău a fost postat cu succes. Îl vom publica peste puțin timp, deoarece blogul nostru este moderat.", + "success": "Comentariul tău a fost postat cu succes! Mulțumesc!", + "unapproved": "Adresa de e-mail furnizată nu este aprobată pentru postarea de comentarii.", + "comments_with_count": { + "one": "{{ count }} comentariu", + "other": "{{ count }} comentarii", + "few": "{{ count }} comentarii" + } + } + }, + "cart": { + "general": { + "title": "Coșul tău", + "note": "Adaugă o notă la comanda ta", + "removed_item_html": "S-a eliminat ({{ quantity }}) {{ link }} din coșul tău.", + "remove": "Elimină", + "subtotal": "Subtotal", + "savings": "Economisești", + "taxes_and_shipping_at_checkout": "Taxele și transportul sunt calculate la finalizarea comenzii", + "taxes_and_shipping_policy_at_checkout_html": "Taxele și transportul sunt calculate la finalizarea comenzii", + "taxes_included_but_shipping_at_checkout": "Taxele sunt incluse și transportul este calculat la finalizarea comenzii", + "taxes_included_and_shipping_policy_html": "Taxe incluse. Transportul este calculat la finalizarea comenzii.", + "update": "Actualizează", + "checkout": "Finalizează comanda", + "empty": "Coșul tău este momentan gol.", + "cookies_required": "Permite modulele cookie ca să utilizezi coșul de cumpărături", + "continue_shopping": "Continuă cumpărăturile", + "cart_error": "A apărut o eroare la actualizarea coșului. Încearcă din nou." + }, + "label": { + "discounted_total": "Total redus", + "product": "Produs", + "price": "Preț", + "price_column": "Vezi coloana Preț pentru detalii despre reduceri.", + "product_details": "Detalii produs", + "quantity": "Cantitate", + "qty": "Cantitate", + "regular_total": "Total obișnuit", + "remove": "Elimină {{ product }}", + "total": "Total", + "update": "Actualizează" + }, + "popup": { + "added_to_cart": "Tocmai adăugat la coș", + "product_details": "Detalii produs", + "quantity": "Cantitate", + "quantity_label": "Cantitate: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} articol", + "other": "{{ count }} articole", + "few": "{{ count }} articole" + } + } + }, + "collections": { + "general": { + "view_all": "Vezi tot", + "view_all_label": "Vezi toate produsele din colecția {{ collection_name }}", + "no_matches": "Ne pare rău, nu există produse în această colecție", + "collection_label": "Colecție", + "items_with_count": { + "one": "{{ count }} produs", + "other": "{{ count }} produse", + "few": "{{ count }} produse" + } + }, + "catalog": { + "title": "Catalog" + }, + "sorting": { + "title": "Sortează după" + }, + "filters": { + "title_tags": "Filtrează după", + "all_tags": "Toate produsele" + } + }, + "contact": { + "form": { + "name": "Nume", + "email": "E-mail", + "phone": "Număr de telefon", + "message": "Mesaj", + "submit": "Trimite", + "post_success": "Mulțumim pentru că ne-ai contactat. Vom reveni cât mai curând posibil.", + "error_heading": "Te rugăm să ajustezi următoarele:" + } + }, + "customer": { + "account": { + "title": "Contul meu", + "details": "Detalii cont", + "view_addresses": "Vezi adresele", + "return": "Revino la detaliile contului" + }, + "activate_account": { + "title": "Activează contul", + "subtext": "Creează o parolă pentru a-ți activa contul.", + "password": "Parolă", + "password_confirm": "Confirmă parola", + "submit": "Activează contul", + "cancel": "Refuză invitația" + }, + "addresses": { + "title": "Adresele tale", + "default": "Implicit", + "add_new": "Adaugă o adresă nouă", + "edit_address": "Editează adresa", + "first_name": "Prenume", + "last_name": "Nume de familie", + "company": "Companie", + "address1": "Adresă", + "address2": "Apartament, cameră etc.", + "city": "Localitate", + "country": "Țară/Regiune", + "province": "Județ/provincie", + "zip": "Cod poștal", + "phone": "Telefon", + "set_default": "Setează ca adresă implicită", + "add": "Adaugă o adresă", + "update": "Actualizează adresa", + "cancel": "Anulează", + "edit": "Editează", + "delete": "Șterge", + "delete_confirm": "Sigur ștergi această adresă?" + }, + "login": { + "title": "Autentificare", + "email": "E-mail", + "password": "Parolă", + "forgot_password": "Ți-ai uitat parola?", + "sign_in": "Autentifică-te", + "guest_title": "Continuă ca oaspete", + "guest_continue": "Continuă" + }, + "orders": { + "title": "Istoric comenzi", + "order_number": "Comandă", + "order_number_link": "Comanda cu numărul {{ number }}", + "date": "Dată", + "payment_status": "Starea plății", + "fulfillment_status": "Starea comenzii", + "total": "Total", + "none": "Încă nu ai plasat comenzi." + }, + "order": { + "title": "Comanda {{ name }}", + "date_html": "Plasată pe {{ date }}", + "cancelled_html": "Comandă anulată pe {{ date }}", + "cancelled_reason": "Motiv: {{ reason }}", + "billing_address": "Adresă de facturare", + "payment_status": "Starea plății", + "shipping_address": "Adresă de expediere", + "fulfillment_status": "Starea comenzii", + "discount": "Reducere", + "shipping": "Transport", + "tax": "Taxe", + "product": "Produs", + "sku": "SKU", + "price": "Preț", + "quantity": "Cantitate", + "total": "Total", + "fulfilled_at_html": "Comandă îndeplinită la {{ date }}", + "subtotal": "Subtotal", + "track_shipment": "Urmărește expedierea" + }, + "recover_password": { + "title": "Resetează parola", + "email": "E-mail", + "submit": "Trimite", + "cancel": "Anulează", + "subtext": "Îți vom trimite un e-mail pentru a reseta parola.", + "success": "Ți-am trimis un e-mail cu un link pentru a actualiza parola." + }, + "reset_password": { + "title": "Resetează parola contului", + "subtext": "Introdu o nouă parolă pentru {{ email }}", + "password": "Parolă", + "password_confirm": "Confirmă parola", + "submit": "Resetează parola" + }, + "register": { + "title": "Creează un cont", + "first_name": "Prenume", + "last_name": "Nume de familie", + "email": "E-mail", + "password": "Parolă", + "submit": "Creează" + } + }, + "homepage": { + "general": { + "title": "Pagina principala" + }, + "onboarding": { + "product_title": "Numele produsului", + "product_description": "Această zonă este utilizată pentru a descrie detaliile produsului. Descrie clienților aspectul și stilul produsului. Adaugă detalii despre culoare, materialele utilizate, dimensiunea și locul în care a fost realizat.", + "collection_title": "Numele colecției tale", + "blog_title": "Titlul postării tale", + "blog_excerpt": "Magazinul tău nu a publicat încă niciun mesaj pe blog. Un blog poate fi folosit pentru a vorbi despre lansări de noi produse, sfaturi sau alte noutăți pe care să le transmiți clienților. Poți consulta blogul de comerț electronic al Shopify pentru inspirație și sfaturi pentru propriul magazin și blog.", + "blog_author": "Numele autorului", + "no_content": "Această secțiune nu include în prezent conținut. Adaugă conținut la această secțiune utilizând bara laterală." + } + }, + "layout": { + "navigation": { + "search": "Caută", + "expand": "extinde", + "collapse": "restrânge", + "menu": "Meniu" + }, + "cart": { + "title": "Coș", + "items_count": { + "one": "articol", + "other": "articole", + "few": "articole" + } + }, + "customer": { + "account": "Cont", + "log_out": "Deconectează-te", + "log_in": "Conectează-te", + "create_account": "Creează un cont" + }, + "footer": { + "social_platform": "{{ name }} pe {{ platform }}" + } + }, + "gift_cards": { + "issued": { + "title_html": "Iată cardul tău cadou de {{ value }} pentru {{ shop }}!", + "subtext": "Cardul tău cadou", + "gift_card_code": "Codul cardului cadou", + "disabled": "Dezactivat", + "expired": "A expirat la {{ expiry }}", + "active": "Expiră la {{ expiry }}", + "redeem_html": "Folosește acest cod la finalizarea comenzii pentru valorificarea cardului cadou de {{ value }}", + "shop_link": "Începe cumpărăturile", + "print": "Imprimă acest card cadou", + "remaining_html": "{{ balance }} rămas", + "add_to_apple_wallet": "Adaugă la Apple Wallet", + "qr_image_alt": "Cod QR – scanează pentru valorificarea cardului cadou" + } + }, + "store_availability": { + "general": { + "view_store_info": "Vezi informațiile despre magazin", + "check_other_stores": "Vezi disponibilitatea la alte magazine", + "pick_up_available": "Ridicare disponibilă", + "pick_up_currently_unavailable": "Ridicare indisponibilă momentan", + "pick_up_available_at_html": "Ridicare disponibilă la {{ location_name }}", + "pick_up_unavailable_at_html": "Ridicare indisponibilă momentan la {{ location_name }}" + } + } +} diff --git a/shopify/locales/ru.json b/shopify/locales/ru.json new file mode 100644 index 00000000..8990840f --- /dev/null +++ b/shopify/locales/ru.json @@ -0,0 +1,446 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Перейти к контенту", + "close_modal": "Закрыть", + "refresh_page": "Выбор выделенного элемента приводит к полному обновлению страницы.", + "selection_help": "Нажмите клавишу пробела, а затем клавиши со стрелками, чтобы выделить необходимый элемент.", + "unit_price_separator": "за", + "error": "Ошибка", + "link_messages": { + "new_window": "Открывается в новом окне.", + "external": "Открывает внешний сайт.", + "new_window_and_external": "Открывает внешний сайт в новом окне." + } + }, + "meta": { + "tags": "Помечено \"{{ tags }}\"", + "page": "Страница {{ page }}" + }, + "404": { + "title": "404. Страница не найдена", + "subtext": "Запрошенная вами страница не существует.", + "link": "Продолжить покупки" + }, + "pagination": { + "previous": "Предыдущая страница", + "next": "Следующая страница", + "current_page": "Страница {{ current }} из {{ total }}" + }, + "password_page": { + "opening_soon": "Скоро открытие", + "login_form_heading": "Войдите в магазин с помощью пароля", + "login_form_password_label": "Пароль", + "login_form_password_placeholder": "Ваш пароль", + "login_form_submit": "Ввести", + "signup_form_email_label": "Электронный адрес", + "signup_form_success": "Мы отправим вам письмо незадолго до открытия!", + "admin_link_html": "Вы владелец магазина? Войдите здесь", + "password_link": "Войдите с помощью пароля" + }, + "social": { + "share_on_facebook": "Поделиться", + "share_on_twitter": "Твитнуть", + "share_on_pinterest": "Создать пин", + "alt_text": { + "share_on_facebook": "Поделиться в Facebook", + "share_on_twitter": "Опубликовать в Твиттере", + "share_on_pinterest": "Сохранить в Pinterest" + } + }, + "search": { + "empty_search_message": "Поле поиска не может быть пустым", + "title": "Поиск на нашем сайте", + "placeholder": "Поиск", + "submit": "Отправить", + "close": "Закрыть окно поиска", + "no_results": "Проверьте правописание или выберите другие слова.", + "search_for": "Поиск", + "products": "Продукты", + "loading": "Загрузка", + "clear_search_term": "Удалить поисковой запрос", + "number_of_results": "{{ result_number }} из {{ results_count }}", + "number_of_results_found": "Найдено результатов: {{ results_count }}", + "one_result_found": "Найден 1 результат", + "results_with_count": { + "one": "Результатов по запросу \"{{ terms }}\": {{ count }}", + "other": "Результатов по запросу \"{{ terms }}\": {{ count }}", + "few": "Результатов по запросу \"{{ terms }}\": {{ count }}", + "many": "Результатов по запросу \"{{ terms }}\": {{ count }}" + }, + "heading": { + "one": "Результат поиска", + "other": "Результаты поиска", + "few": "Результаты поиска", + "many": "Результаты поиска" + } + }, + "newsletter_form": { + "newsletter_email": "Подпишитесь на нашу почтовую рассылку", + "email_placeholder": "Адрес электронной почты", + "confirmation": "Спасибо, что подписались!", + "submit": "Подписаться" + }, + "filters": { + "show_more": "Показать больше", + "show_less": "Показать меньше" + }, + "payment": { + "method": "Способы оплаты" + }, + "language": { + "dropdown_label": "Язык" + }, + "country": { + "dropdown_label": "Страна/регион" + } + }, + "sections": { + "slideshow": { + "next_slide": "Следующий слайд", + "previous_slide": "Предыдущий слайд", + "pause_slideshow": "Приостановить показ слайд-шоу", + "rotate_slideshow": "Воспроизвести слайд-шоу", + "load_slide": "Загрузить слайд {{ slide_number }}", + "navigation_instructions": "Используйте стрелки влево/вправо для навигации по слайд-шоу или проведите влево/вправо, если вы используете мобильное устройство" + }, + "featured_product": { + "title": "Рекомендуемый продукт", + "gallery_thumbnail_alt": "Загрузить изображение в средство просмотра галереи, {{ imageAlt }}", + "video_thumbnail_alt": "Загружайте и воспроизводите видео в средстве просмотра галереи {{ imageAlt }}", + "model_thumbnail_alt": "Загружайте трехмерные модели в средство просмотра галереи {{ imageAlt }}" + }, + "map": { + "address_error": "Не удалось найти этот адрес", + "address_no_results": "Нет результатов для этого адреса", + "address_query_limit_html": "Вы превысили ограничение использования Google API. Рассмотрите переход на план уровня Премиум.", + "auth_error_html": "При аутентификации вашей учетной записи в Картах Google возникла проблема.", + "section_heading": "Расположение" + }, + "video": { + "play": "Воспроизвести видео \"{{ video_title }}\"", + "pause": "Приостановить видео \"{{ video_title }}\"", + "resume": "Возобновить воспроизведение видео \"{{ video_title }}\"", + "close": "Закрыть видео \"{{ video_title }}\"" + }, + "header": { + "announcement_bar_label": "Объявление" + } + }, + "blogs": { + "article": { + "view_all": "Посмотреть все", + "view_all_blogs": "Посмотреть все блоги", + "all_topics": "Все темы", + "by_author": "по автору: {{ author }}", + "posted_in": "Опубликовано в", + "read_more": "Подробнее", + "read_more_title": "Узнать больше: {{ title }}", + "back_to_blog": "Вернуться к {{ title }}", + "tags": "Теги", + "article_with_count": { + "one": "{{ count }} статья", + "other": "Статей: {{ count }}", + "few": "Статей: {{ count }}", + "many": "Статей: {{ count }}" + } + }, + "comments": { + "title": "Комментировать", + "name": "Имя", + "email": "Электронный адрес", + "message": "Сообщение", + "post": "Добавить комментарий", + "moderated": "Обратите внимание, что комментарии проходят одобрение перед публикацией.", + "success_moderated": "Ваш комментарий отправлен. Мы опубликуем его через некоторое время, так как наш блог модерируется.", + "success": "Ваш комментарий отправлен. Спасибо!", + "unapproved": "Указанный адрес электронной почты не одобрен для размещения комментариев.", + "comments_with_count": { + "one": "{{ count }} комментарий", + "other": "Комментариев: {{ count }}", + "few": "Комментариев: {{ count }}", + "many": "Комментариев: {{ count }}" + } + } + }, + "cart": { + "general": { + "title": "Корзина", + "note": "Добавить примечание к заказу", + "removed_item_html": "Удалено из корзины: ({{ quantity }}) {{ link }} .", + "remove": "Удалить", + "subtotal": "Промежуточный итог", + "savings": "Вы экономите", + "taxes_and_shipping_at_checkout": "Налоги и стоимость доставки, рассчитанные при оформлении заказа", + "taxes_and_shipping_policy_at_checkout_html": "Налоги и стоимость доставки, рассчитанные при оформлении заказа", + "taxes_included_but_shipping_at_checkout": "Сумма налога и стоимость доставки, рассчитанные при оформлении заказа", + "taxes_included_and_shipping_policy_html": "Налоги включены. Стоимость доставки, рассчитанная при оформлении заказа.", + "update": "Обновить", + "checkout": "Оформить заказ", + "empty": "Корзина пуста.", + "cookies_required": "Разрешить использование файлов cookie для корзины", + "continue_shopping": "Продолжить покупки", + "cart_error": "Произошла ошибка при обновлении вашей корзины. Повторите попытку." + }, + "label": { + "discounted_total": "Всего со скидкой", + "product": "Продукт", + "price": "Цена", + "price_column": "Дополнительные сведения о скидках см. в столбце \"Цена\".", + "product_details": "Информация о продукте", + "quantity": "Количество", + "qty": "Кол-во", + "regular_total": "Всего без скидки", + "remove": "Удалить {{ product }}", + "total": "Всего", + "update": "Обновить" + }, + "popup": { + "added_to_cart": "Только что добавлено в корзину", + "product_details": "Информация о продукте", + "quantity": "Кол-во", + "quantity_label": "Количество: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} элемент", + "other": "Элементов: {{ count }}", + "few": "Элементов: {{ count }}", + "many": "Элементов: {{ count }}" + } + } + }, + "collections": { + "general": { + "view_all": "Посмотреть все", + "view_all_label": "Посмотреть все продукты в коллекции \"{{ collection_name }}\"", + "no_matches": "В этой коллекции нет продуктов", + "collection_label": "Коллекция", + "items_with_count": { + "one": "{{ count }} продукт", + "other": "Продуктов: {{ count }}", + "few": "Продуктов: {{ count }}", + "many": "Продуктов: {{ count }}" + } + }, + "catalog": { + "title": "Каталог" + }, + "sorting": { + "title": "Сортировка" + }, + "filters": { + "title_tags": "Фильтр", + "all_tags": "Все продукты" + } + }, + "contact": { + "form": { + "name": "Имя", + "email": "Электронный адрес", + "phone": "Номер телефона", + "message": "Сообщение", + "submit": "Отправить", + "post_success": "Спасибо за обращение. Мы свяжемся с вами как можно скорее.", + "error_heading": "Измените следующие элементы:" + } + }, + "customer": { + "account": { + "title": "Моя учетная запись", + "details": "Детали учетной записи", + "view_addresses": "Посмотреть адреса", + "return": "Вернуться к деталям учетной записи" + }, + "activate_account": { + "title": "Активировать учетную запись", + "subtext": "Создайте пароль для активации учетной записи.", + "password": "Пароль", + "password_confirm": "Подтвердите пароль", + "submit": "Активировать учетную запись", + "cancel": "Отклонить приглашение" + }, + "addresses": { + "title": "Ваши адреса", + "default": "По умолчанию", + "add_new": "Добавить новый адрес", + "edit_address": "Изменить адрес", + "first_name": "Имя", + "last_name": "Фамилия", + "company": "Компания", + "address1": "Адрес", + "address2": "Квартира, апартаменты и т. д.", + "city": "Город", + "country": "Страна/регион", + "province": "Область", + "zip": "Почтовый индекс", + "phone": "Телефон", + "set_default": "Задать в качестве адреса по умолчанию", + "add": "Добавить адрес", + "update": "Обновить адрес", + "cancel": "Отмена", + "edit": "Редактировать", + "delete": "Удалить", + "delete_confirm": "Удалить этот адрес?" + }, + "login": { + "title": "Вход", + "email": "Электронный адрес", + "password": "Пароль", + "forgot_password": "Забыли пароль?", + "sign_in": "Войти в систему", + "guest_title": "Продолжить в качестве гостя", + "guest_continue": "Продолжить" + }, + "orders": { + "title": "История заказов", + "order_number": "Заказ", + "order_number_link": "Номер заказа: {{ number }}", + "date": "Дата", + "payment_status": "Статус оплаты", + "fulfillment_status": "Статус выполнения", + "total": "Всего", + "none": "У вас еще нет заказов." + }, + "order": { + "title": "Заказ: {{ name }}", + "date_html": "Размещен: {{ date }}", + "cancelled_html": "Заказ отменен: {{ date }}", + "cancelled_reason": "Причина: {{ reason }}", + "billing_address": "Адрес выставления счета", + "payment_status": "Статус оплаты", + "shipping_address": "Адрес доставки", + "fulfillment_status": "Статус выполнения", + "discount": "Скидка", + "shipping": "Доставка", + "tax": "Налог", + "product": "Продукт", + "sku": "Артикул", + "price": "Цена", + "quantity": "Количество", + "total": "Всего", + "fulfilled_at_html": "Выполнен: {{ date }}", + "subtotal": "Промежуточный итог", + "track_shipment": "Отследить доставку" + }, + "recover_password": { + "title": "Сбросить пароль", + "email": "Электронный адрес", + "submit": "Отправить", + "cancel": "Отмена", + "subtext": "Мы отправим вам письмо со ссылкой для сброса пароля.", + "success": "Мы отправили вам письмо со ссылкой для обновления пароля." + }, + "reset_password": { + "title": "Сбросить пароль учетной записи", + "subtext": "Введите новый пароль для {{ email }}", + "password": "Пароль", + "password_confirm": "Подтвердите пароль", + "submit": "Сбросить пароль" + }, + "register": { + "title": "Создать учетную запись", + "first_name": "Имя", + "last_name": "Фамилия", + "email": "Электронный адрес", + "password": "Пароль", + "submit": "Создать" + } + }, + "homepage": { + "general": { + "title": "Домашняя страница" + }, + "onboarding": { + "product_title": "Название продукта", + "product_description": "Здесь можно добавить описание продукта. Расскажите покупателям о продукте и его характеристиках. Добавьте сведения о цвете, используемых материалах, размерах и месте изготовления.", + "collection_title": "Название коллекции", + "blog_title": "Заголовок публикации", + "blog_excerpt": "В блоге магазина нет публикаций. Здесь можно сообщать о появлении новых товаров, размещать советы или другие новости, которыми вы хотите поделиться с клиентами. Посетите блог Shopify об электронной коммерции, чтобы найти идеи для своего магазина и блога, а также получить советы по их развитию.", + "blog_author": "Имя автора", + "no_content": "В этом разделе пока нет контента. Добавьте контент в этот раздел, используя боковую панель." + } + }, + "layout": { + "navigation": { + "search": "Поиск", + "expand": "развернуть", + "collapse": "свернуть", + "menu": "Меню" + }, + "cart": { + "title": "Корзина", + "items_count": { + "one": "товар", + "other": "тов.", + "few": "тов.", + "many": "тов." + } + }, + "customer": { + "account": "Учетная запись", + "log_out": "Выйти", + "log_in": "Войти", + "create_account": "Создать учетную запись" + }, + "footer": { + "social_platform": "{{ name }} на {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Обычная цена", + "sold_out": "Продано", + "unavailable": "Недоступно", + "availability": "Доступность", + "on_sale": "Распродажа", + "from_lowest_price_html": "от {{ lowest_price }}", + "sale_price": "Цена со скидкой", + "quantity": "Количество", + "add_to_cart": "Добавить в корзину", + "loader_label": "Добавление товара в корзину", + "back_to_collection": "Вернуться к", + "vendor": "Продавец", + "quantity_minimum_message": "Значение в графе \"Количество\" не может быть меньше 1", + "include_taxes": "Сумма налога включена.", + "shipping_policy_html": "Стоимость доставки рассчитывается при оформлении заказа.", + "unit_price_label": "Цена за единицу", + "view_cart": "Просмотреть корзину", + "view_in_space": "Просматривайте в реальных условиях", + "view_in_space_label": "При просмотре в реальных условиях элемент загружается в окне дополненной реальности" + } + }, + "gift_cards": { + "issued": { + "title_html": "Вот ваша подарочная карта на {{ value }} для магазина {{ shop }}!", + "subtext": "Ваша подарочная карта", + "gift_card_code": "Код подарочной карты", + "disabled": "Отключено", + "expired": "Срок действия истек {{ expiry }}", + "active": "Срок действия истекает {{ expiry }}", + "redeem_html": "Укажите этот код при оформлении заказа, чтобы использовать подарочную карту на {{ value }}", + "shop_link": "Начать покупки", + "print": "Распечатать эту подарочную карту", + "remaining_html": "Осталось: {{ balance }}", + "add_to_apple_wallet": "Добавить в Apple Wallet", + "qr_image_alt": "Отсканируйте QR-код, чтобы использовать подарочную карту" + } + }, + "store_availability": { + "general": { + "view_store_info": "Сведения о магазине", + "check_other_stores": "Проверить наличие в других магазинах", + "pick_up_available": "Самовывоз доступен", + "pick_up_currently_unavailable": "Самовывоз сейчас недоступен", + "pick_up_available_at_html": "Самовывоз доступен: {{ location_name }}", + "pick_up_unavailable_at_html": "Самовывоз сейчас недоступен: {{ location_name }}" + } + } +} diff --git a/shopify/locales/sk-SK.json b/shopify/locales/sk-SK.json new file mode 100644 index 00000000..22aeaeeb --- /dev/null +++ b/shopify/locales/sk-SK.json @@ -0,0 +1,446 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Prejsť na obsah", + "close_modal": "Zavrieť", + "refresh_page": "Výber bude mať za následok obnovenie celej stránky.", + "selection_help": "Ak chcete uskutočniť výber, stlačte medzerník a potom klávesy so šípkami.", + "unit_price_separator": "za", + "error": "Chyba", + "link_messages": { + "new_window": "Otvorí sa v novom okne.", + "external": "Otvorí externú webovú lokalitu.", + "new_window_and_external": "Otvorí externú webovú lokalitu v novom okne." + } + }, + "meta": { + "tags": "Označené ako „{{ tags }}“", + "page": "Stránka {{ page }}" + }, + "404": { + "title": "404 Stránka sa nenašla", + "subtext": "Požadovaná stránka neexistuje.", + "link": "Pokračovať v nákupe" + }, + "pagination": { + "previous": "Predchádzajúca stránka", + "next": "Nasledujúca stránka", + "current_page": "Stránka {{ current }} z {{ total }}" + }, + "password_page": { + "opening_soon": "Otvoríme už čoskoro", + "login_form_heading": "Prejdite do obchodu s použitím hesla", + "login_form_password_label": "Heslo", + "login_form_password_placeholder": "Vaše heslo", + "login_form_submit": "Prejsť", + "signup_form_email_label": "E-mail", + "signup_form_success": "Tesne pred otvorením vám odošleme e-mail!", + "admin_link_html": "Ste vlastníkom obchodu? Prihláste sa tu", + "password_link": "Prejsť s použitím hesla" + }, + "social": { + "share_on_facebook": "Zdieľať", + "share_on_twitter": "Tweetovať", + "share_on_pinterest": "Pripnúť", + "alt_text": { + "share_on_facebook": "Zdielať na Facebooku", + "share_on_twitter": "Tweetovať na Twitteri", + "share_on_pinterest": "Pripnúť na Pintereste" + } + }, + "search": { + "empty_search_message": "Vyhľadávacie pole nemôže byť prázdne", + "title": "Prehľadajte našu lokalitu", + "placeholder": "Vyhľadať", + "submit": "Odoslať", + "close": "Zavrieť vyhľadávanie", + "no_results": "Skúste skontrolovať pravopis alebo použite iné slová.", + "search_for": "Vyhľadajte:", + "products": "Produkty", + "loading": "Načítava sa", + "clear_search_term": "Vymazať hľadaný výraz", + "number_of_results": "{{ result_number }} z {{ results_count }}", + "number_of_results_found": "Našiel sa tento počet výsledkov: {{ results_count }}", + "one_result_found": "Našiel sa 1 výsledok", + "results_with_count": { + "one": "Pre výraz „{{ terms }}“ sa našiel {{ count }} výsledok", + "other": "Pre výraz „{{ terms }}“ sa našiel tento počet výsledkov: {{ count }}", + "few": "Pre výraz „{{ terms }}“ sa našiel tento počet výsledkov: {{ count }}", + "many": "Pre výraz „{{ terms }}“ sa našiel tento počet výsledkov: {{ count }}" + }, + "heading": { + "one": "Výsledok vyhľadávania", + "other": "Výsledky vyhľadávania", + "few": "Výsledky vyhľadávania", + "many": "Výsledky vyhľadávania" + } + }, + "newsletter_form": { + "newsletter_email": "Prihláste sa do nášho poštového zoznamu na odber správ", + "email_placeholder": "E-mailová adresa", + "confirmation": "Ďakujeme, že ste sa prihlásili na odber správ.", + "submit": "Prihlásiť sa na odber" + }, + "filters": { + "show_more": "Zobraziť viac", + "show_less": "Zobraziť menej" + }, + "payment": { + "method": "Spôsob platby" + }, + "language": { + "dropdown_label": "Jazyk" + }, + "country": { + "dropdown_label": "Krajina/oblasť" + } + }, + "sections": { + "slideshow": { + "next_slide": "Nasledujúca snímka", + "previous_slide": "Predchádzajúca snímka", + "pause_slideshow": "Pozastaviť prezentáciu", + "rotate_slideshow": "Prehrať prezentáciu", + "load_slide": "Načítať snímku {{ slide_number }}", + "navigation_instructions": "Na navigáciu v prezentácii použite šípky doľava/doprava alebo ak používate mobilné zariadenie, potiahnite prstom doľava/doprava" + }, + "featured_product": { + "title": "Odporúčaný produkt", + "gallery_thumbnail_alt": "Načítať obrázok do zobrazovača galérie, {{ imageAlt }}", + "video_thumbnail_alt": "Načítať a prehrať video v zobrazovači galérie, {{ imageAlt }}", + "model_thumbnail_alt": "Načítať 3D model do zobrazovača galérie, {{ imageAlt }}" + }, + "map": { + "address_error": "Pri vyhľadávaní tejto adresy sa vyskytla chyba", + "address_no_results": "Pre túto adresu sa nenašli žiadne výsledky", + "address_query_limit_html": "Prekročili ste limit používania rozhrania Google API. Zvážte inováciu na prémiový plán.", + "auth_error_html": "Pri overovaní konta Máp Google sa vyskytol problém.", + "section_heading": "Miesto" + }, + "video": { + "play": "Prehrať video {{ video_title }}", + "pause": "Pozastaviť video {{ video_title }}", + "resume": "Pokračovať vo videu {{ video_title }}", + "close": "Zavrieť video {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Oznámenie" + } + }, + "blogs": { + "article": { + "view_all": "Zobraziť všetko", + "view_all_blogs": "Zobraziť všetky blogy", + "all_topics": "Všetky témy", + "by_author": "autor: {{ author }}", + "posted_in": "Uverejnené tu:", + "read_more": "Prečítať si viac", + "read_more_title": "Prečítajte si viac: {{ title }}", + "back_to_blog": "Späť na {{ title }}", + "tags": "Značky", + "article_with_count": { + "one": "{{ count }} článok", + "other": "Počet článkov: {{ count }}", + "few": "Počet článkov: {{ count }}", + "many": "Počet článkov: {{ count }}" + } + }, + "comments": { + "title": "Pridať komentár", + "name": "Meno", + "email": "E-mail", + "message": "Správa", + "post": "Odoslať komentár", + "moderated": "Upozorňujeme, že komentáre musia byť pred publikovaním schválené", + "success_moderated": "Váš komentár sa úspešne odoslal Publikujeme ho o chvíľu, keďže náš blog je moderovaný.", + "success": "Váš komentár sa úspešne odoslal. Ďakujeme.", + "unapproved": "Zadaná e-mailová adresa nie je schválená na uverejňovanie komentárov.", + "comments_with_count": { + "one": "{{ count }} komentár", + "other": "Počet komentárov: {{ count }}", + "few": "Počet komentárov: {{ count }}", + "many": "Počet komentárov: {{ count }}" + } + } + }, + "cart": { + "general": { + "title": "Váš košík", + "note": "Pridajte k svojej objednávke poznámku", + "removed_item_html": "Odstránené ({{ quantity }}) {{ link }} z košíka.", + "remove": "Odstrániť", + "subtotal": "Medzisúčet", + "savings": "Ušetríte", + "taxes_and_shipping_at_checkout": "Dane a doprava sa vypočítajú v pokladni", + "taxes_and_shipping_policy_at_checkout_html": "Dane a doprava sa vypočítajú v pokladni", + "taxes_included_but_shipping_at_checkout": "Dane sa zahrnú a doprava sa vypočíta v pokladni", + "taxes_included_and_shipping_policy_html": "Vrátane dane. Doprava sa vypočíta v pokladni.", + "update": "Aktualizovať", + "checkout": "Do pokladne", + "empty": "Váš košík je momentálne prázdny.", + "cookies_required": "Povoľte súbory cookie, aby ste mohli používať nákupný košík", + "continue_shopping": "Pokračovať v nákupe", + "cart_error": "Pri aktualizácii košíka sa vyskytla chyba. Skúste to znova." + }, + "label": { + "discounted_total": "Celkove po zľave", + "product": "Produkt", + "price": "Cena", + "price_column": "Podrobnosti o zľave nájdete v stĺpci Cena.", + "product_details": "Podrobnosti o produkte", + "quantity": "Množstvo", + "qty": "Množstvo", + "regular_total": "Normálny súčet", + "remove": "Odstrániť {{ product }}", + "total": "Celkove", + "update": "Aktualizovať" + }, + "popup": { + "added_to_cart": "Práve pridané do košíka", + "product_details": "Podrobnosti o produkte", + "quantity": "Množstvo", + "quantity_label": "Množstvo: {{ quantity_count }}", + "cart_count": { + "one": "{{ count }} položka", + "other": "Počet položiek: {{ count }}", + "few": "Počet položiek: {{ count }}", + "many": "Počet položiek: {{ count }}" + } + } + }, + "collections": { + "general": { + "view_all": "Zobraziť všetko", + "view_all_label": "Pozrite si všetky produkty z kolekcie {{ collection_name }}", + "no_matches": "Ľutujeme, v tejto kolekcii nie sú žiadne produkty", + "collection_label": "Kolekcia", + "items_with_count": { + "one": "{{ count }} produkt", + "other": "Počet produktov: {{ count }}", + "few": "Počet produktov: {{ count }}", + "many": "Počet produktov: {{ count }}" + } + }, + "catalog": { + "title": "Katalóg" + }, + "sorting": { + "title": "Zoradiť podľa" + }, + "filters": { + "title_tags": "Filtrovať podľa", + "all_tags": "Všetky produkty" + } + }, + "contact": { + "form": { + "name": "Meno", + "email": "E-mail", + "phone": "Telefónne číslo", + "message": "Správa", + "submit": "Odoslať", + "post_success": "Ďakujeme, že ste nás kontaktovali. Budeme sa vám venovať čo najskôr.", + "error_heading": "Upravte tieto údaje:" + } + }, + "customer": { + "account": { + "title": "Moje konto", + "details": "Podrobnosti o konte", + "view_addresses": "Zobraziť adresy", + "return": "Späť na podrobnosti o konte" + }, + "activate_account": { + "title": "Aktivovať konto", + "subtext": "Vytvorte si heslo a aktivujte si konto.", + "password": "Heslo", + "password_confirm": "Potvrďte heslo", + "submit": "Aktivovať konto", + "cancel": "Odmietnuť pozvanie" + }, + "addresses": { + "title": "Vaše adresy", + "default": "Predvolené", + "add_new": "Pridať novú adresu", + "edit_address": "Upraviť adresu", + "first_name": "Meno", + "last_name": "Priezvisko", + "company": "Spoločnosť", + "address1": "Adresa", + "address2": "Apartmán, byt atď.", + "city": "Mesto", + "country": "Krajina/oblasť", + "province": "Kraj", + "zip": "Poštové smerovacie číslo", + "phone": "Telefón", + "set_default": "Nastaviť ako predvolenú adresu", + "add": "Pridať adresu", + "update": "Aktualizovať adresu", + "cancel": "Zrušiť", + "edit": "Upraviť", + "delete": "Odstrániť", + "delete_confirm": "Naozaj chcete túto adresu odstrániť?" + }, + "login": { + "title": "Prihlásiť sa", + "email": "E-mail", + "password": "Heslo", + "forgot_password": "Zabudli ste heslo?", + "sign_in": "Prihlásiť sa", + "guest_title": "Pokračovať ako hosť", + "guest_continue": "Pokračovať" + }, + "orders": { + "title": "História objednávok", + "order_number": "Objednávka", + "order_number_link": "Číslo objednávky {{ number }}", + "date": "Dátum", + "payment_status": "Stav platby", + "fulfillment_status": "Stav vybavenia", + "total": "Celkove", + "none": "Zatiaľ ste nezadali žiadne objednávky." + }, + "order": { + "title": "Objednávka {{ name }}", + "date_html": "Zadaná {{ date }}", + "cancelled_html": "Objednávka bola zrušená {{ date }}", + "cancelled_reason": "Dôvod: {{ reason }}", + "billing_address": "Fakturačná adresa", + "payment_status": "Stav platby", + "shipping_address": "Dodacia adresa", + "fulfillment_status": "Stav vybavenia", + "discount": "Zľava", + "shipping": "Doprava", + "tax": "Daň", + "product": "Produkt", + "sku": "Jednotka SKU", + "price": "Cena", + "quantity": "Množstvo", + "total": "Celkove", + "fulfilled_at_html": "Vybavené {{ date }}", + "subtotal": "Medzisúčet", + "track_shipment": "Sledovať zásielku" + }, + "recover_password": { + "title": "Resetovať heslo", + "email": "E-mail", + "submit": "Odoslať", + "cancel": "Zrušiť", + "subtext": "Odošleme vám e-mail, aby ste si mohli resetovať heslo.", + "success": "Odoslali sme vám e-mail s prepojením, aby ste si mohli aktualizovať heslo." + }, + "reset_password": { + "title": "Resetovať heslo konta", + "subtext": "Zadajte nové heslo pre e-mail {{ email }}", + "password": "Heslo", + "password_confirm": "Potvrďte heslo", + "submit": "Resetovať heslo" + }, + "register": { + "title": "Vytvoriť konto", + "first_name": "Meno", + "last_name": "Priezvisko", + "email": "E-mail", + "password": "Heslo", + "submit": "Vytvoriť" + } + }, + "homepage": { + "general": { + "title": "Domovská stránka" + }, + "onboarding": { + "product_title": "Názov vášho produktu", + "product_description": "V tejto oblasti popíšte podrobnosti o svojom produkte. Informujte zákazníkov o vzhľade a štýle produktu. Pridajte podrobnosti o farbe, použitých materiáloch, veľkosti a mieste, kde bol produkt vyrobený.", + "collection_title": "Názov vašej kolekcie", + "blog_title": "Názov vášho príspevku", + "blog_excerpt": "Váš obchod zatiaľ nepublikoval na blogu žiadne príspevky. Na blogu môžete informovať o uvedení nového produktu, poskytnúť tipy alebo iné novinky, o ktoré sa chcete so zákazníkmi podeliť. Inšpirácie a rady pre svoj vlastný obchod a blog si môžete pozrieť na blogu ecommerce spoločnosti Shopify.", + "blog_author": "Meno autora", + "no_content": "Táto sekcia v súčasnosti nemá žiadny obsah. Obsah do tejto sekcie pridáte pomocou bočného panela." + } + }, + "layout": { + "navigation": { + "search": "Vyhľadať", + "expand": "rozbaliť", + "collapse": "zbaliť", + "menu": "Ponuka" + }, + "cart": { + "title": "Košík", + "items_count": { + "one": "položka", + "other": "položky", + "few": "položky", + "many": "položky" + } + }, + "customer": { + "account": "Konto", + "log_out": "Odhlásiť sa", + "log_in": "Prihlásiť sa", + "create_account": "Vytvoriť konto" + }, + "footer": { + "social_platform": "{{ name }} dňa {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Normálna cena", + "sold_out": "Vypredané", + "unavailable": "Nedostupné", + "availability": "Dostupnosť", + "on_sale": "Zľava", + "from_lowest_price_html": "od {{ lowest_price }}", + "sale_price": "Cena po zľave", + "quantity": "Množstvo", + "add_to_cart": "Pridať do košíka", + "loader_label": "Produkt sa pridáva do košíka", + "back_to_collection": "Späť na", + "vendor": "Predajca", + "quantity_minimum_message": "Množstvo musí byť 1 alebo viac", + "include_taxes": "Vrátane dane.", + "shipping_policy_html": "Doprava sa vypočíta v pokladni.", + "unit_price_label": "Jednotková cena", + "view_cart": "Zobraziť košík", + "view_in_space": "Zobraziť vo vašom priestore", + "view_in_space_label": "Zobraziť vo vašom priestore, položka sa načíta do okna rozšírenej reality" + } + }, + "gift_cards": { + "issued": { + "title_html": "Váš darčekový poukaz v hodnote {{ value }} do obchodu {{ shop }}.", + "subtext": "Váš darčekový poukaz", + "gift_card_code": "Kód darčekového poukazu", + "disabled": "Zakázané", + "expired": "Platnosť skončila {{ expiry }}", + "active": "Platnosť skončí {{ expiry }}", + "redeem_html": "Použite tento kód v pokladni a uplatnite si darčekový poukaz v hodnote {{ value }}", + "shop_link": "Začať nakupovať", + "print": "Vytlačiť tento darčekový poukaz", + "remaining_html": "Zostáva {{ balance }}", + "add_to_apple_wallet": "Pridať do aplikácie Apple Wallet", + "qr_image_alt": "QR kód – naskenujte ho a uplatnite si darčekový poukaz" + } + }, + "store_availability": { + "general": { + "view_store_info": "Zobraziť informácie o obchode", + "check_other_stores": "Skontrolovať dostupnosť v iných obchodoch", + "pick_up_available": "K dispozícii na vyzdvihnutie", + "pick_up_currently_unavailable": "Aktuálne dostupné na vyzdvihnutie", + "pick_up_available_at_html": "K dispozícii na vyzdvihnutie na adrese {{ location_name }}", + "pick_up_unavailable_at_html": "Aktuálne dostupné na vyzdvihnutie na adrese {{ location_name }}" + } + } +} diff --git a/shopify/locales/sl-SI.json b/shopify/locales/sl-SI.json new file mode 100644 index 00000000..07ff7afb --- /dev/null +++ b/shopify/locales/sl-SI.json @@ -0,0 +1,446 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "products": { + "product": { + "from_lowest_price_html": "od {{ lowest_price }}", + "regular_price": "Redna cena", + "sold_out": "Razprodano", + "unavailable": "Ni na voljo", + "availability": "Razpoložljivost", + "on_sale": "Znižanje", + "sale_price": "Znižana cena", + "quantity": "Količina", + "add_to_cart": "Dodaj v košarico", + "loader_label": "Izdelek se dodaja v košarico", + "back_to_collection": "Nazaj na", + "vendor": "Prodajalec", + "quantity_minimum_message": "Količina mora biti 1 ali več", + "include_taxes": "Vključno z davkom.", + "shipping_policy_html": "Dostava se obračuna ob zaključku nakupa.", + "unit_price_label": "Cena na enoto", + "view_cart": "Prikaži košarico", + "view_in_space": "Prikaži v prostoru", + "view_in_space_label": "Prikaz v prostoru naloži element v okno z razširjeno resničnostjo" + } + }, + "general": { + "accessibility": { + "skip_to_content": "Preskoči na vsebino", + "close_modal": "Zapri", + "refresh_page": "Ko izberete elemente, se celotna stran osveži.", + "selection_help": "Za izbiro pritisnite preslednico in nato puščične tipke.", + "unit_price_separator": "na", + "error": "Napaka", + "link_messages": { + "new_window": "Odpre se v novem oknu.", + "external": "Odpre zunanje spletno mesto.", + "new_window_and_external": "Odpre zunanje spletno mesto v novem oknu." + } + }, + "meta": { + "tags": "Z oznako »{{ tags }}«", + "page": "Stran {{ page }}" + }, + "404": { + "title": "404 Strani ni mogoče najti", + "subtext": "Stran, ki ste jo zahtevali, ne obstaja.", + "link": "Nadaljuj nakup" + }, + "pagination": { + "previous": "Prejšnja stran", + "next": "Naslednja stran", + "current_page": "Stran {{ current }} od {{ total }}" + }, + "password_page": { + "opening_soon": "Kmalu otvoritev", + "login_form_heading": "Vstopite v trgovino z geslom", + "login_form_password_label": "Geslo", + "login_form_password_placeholder": "Vaše geslo", + "login_form_submit": "Vstop", + "signup_form_email_label": "E-poštni naslov", + "signup_form_success": "Tik pred otvoritvijo vam bomo poslali e-pošto.", + "admin_link_html": "Ali ste lastnik trgovine? Prijavite se tukaj", + "password_link": "Vstop z geslom" + }, + "social": { + "share_on_facebook": "Deli", + "share_on_twitter": "Tvitni", + "share_on_pinterest": "Pripni", + "alt_text": { + "share_on_facebook": "Delite v Facebooku", + "share_on_twitter": "Tvitnite v Twitterju", + "share_on_pinterest": "Pripnite v Pinterestu" + } + }, + "search": { + "no_results": "Preverite črkovanje ali uporabite druge besede.", + "empty_search_message": "Polje za iskanje ne sme biti prazno", + "title": "Iščite po našem spletnem mestu", + "placeholder": "Išči", + "submit": "Pošlji", + "close": "Zapri iskanje", + "search_for": "Iščite", + "products": "Izdelki", + "loading": "Nalaganje", + "clear_search_term": "Počisti iskalni izraz", + "number_of_results": "{{ result_number }} od {{ results_count }}", + "number_of_results_found": "Št. najdenih rezultatov: {{ results_count }}", + "one_result_found": "1 najden rezultat", + "results_with_count": { + "one": "{{ count }} rezultat za »{{ terms }}«", + "other": "Št. rezultatov za »{{ terms }}«: {{ count }}", + "few": "Št. rezultatov za »{{ terms }}«: {{ count }}", + "two": "Št. rezultatov za »{{ terms }}«: {{ count }}" + }, + "heading": { + "one": "Rezultat iskanja", + "other": "Rezultati iskanja", + "few": "Rezultati iskanja", + "two": "Rezultati iskanja" + } + }, + "newsletter_form": { + "newsletter_email": "Prijavite se na naš poštni seznam", + "email_placeholder": "E-poštni naslov", + "confirmation": "Hvala za prijavo!", + "submit": "Naroči" + }, + "filters": { + "show_more": "Prikaži več", + "show_less": "Prikaži manj" + }, + "payment": { + "method": "Načini plačila" + }, + "language": { + "dropdown_label": "Jezik" + }, + "country": { + "dropdown_label": "Država/regija" + } + }, + "sections": { + "slideshow": { + "next_slide": "Naslednji diapozitiv", + "previous_slide": "Prejšnji diapozitiv", + "pause_slideshow": "Zaustavi diaprojekcijo", + "rotate_slideshow": "Predvajaj diaprojekcijo", + "load_slide": "Naloži diapozitiv {{ slide_number }}", + "navigation_instructions": "Za pomikanje po diaprojekciji uporabite tipki levo/desno oz. podrsnite v levo/desno, če uporabljate mobilno napravo" + }, + "featured_product": { + "title": "Izpostavljeni izdelek", + "gallery_thumbnail_alt": "Naložite sliko v pregledovalnik galerije, {{ imageAlt }}", + "video_thumbnail_alt": "Naložite videoposnetek v pregledovalnik galerije in ga predvajajte, {{ imageAlt }}", + "model_thumbnail_alt": "Naložite 3D-model v pregledovalnik galerije, {{ imageAlt }}" + }, + "map": { + "address_error": "Pri iskanju tega naslova je prišlo do napake", + "address_no_results": "Ni rezultatov za ta naslov", + "address_query_limit_html": "Prekoračili ste omejitev uporabe Googlovega API-ja. Razmislite o nadgradnji na paket Premium.", + "auth_error_html": "Pri preverjanju pristnosti vašega računa za storitev Google Zemljevidi je prišlo do težave.", + "section_heading": "Lokacija" + }, + "video": { + "play": "Predvajaj videoposnetek {{ video_title }}", + "pause": "Zaustavi videoposnetek {{ video_title }}", + "resume": "Nadaljuj videoposnetek {{ video_title }}", + "close": "Zapri videoposnetek {{ video_title }}" + }, + "header": { + "announcement_bar_label": "Obvestilo" + } + }, + "blogs": { + "article": { + "view_all": "Prikaži vse", + "view_all_blogs": "Prikaži vse članke", + "all_topics": "Vse teme", + "by_author": "avtorja {{ author }}", + "posted_in": "Objavljeno v", + "read_more": "Več o tem", + "read_more_title": "Več o tem: {{ title }}", + "back_to_blog": "Nazaj na {{ title }}", + "tags": "Oznake", + "article_with_count": { + "one": "{{ count }} članek", + "other": "Toliko člankov: {{ count }}", + "few": "Toliko člankov: {{ count }}", + "two": "Toliko člankov: {{ count }}" + } + }, + "comments": { + "title": "Napišite komentar", + "name": "Ime", + "email": "E-poštni naslov", + "message": "Sporočilo", + "post": "Objavi komentar", + "moderated": "Upoštevajte, da je treba komentarje pred objavo odobriti", + "success_moderated": "Vaš komentar je bil uspešno objavljen. Objavljen bo čez nekaj časa, saj je naš spletni dnevnik moderiran.", + "success": "Vaš komentar je bil uspešno objavljen. Hvala!", + "unapproved": "Naveden e-poštni naslov ni odobren za objavljanje komentarjev.", + "comments_with_count": { + "one": "Št. komentarjev: {{ count }}", + "other": "Št. komentarjev: {{ count }}", + "few": "Št. komentarjev: {{ count }}", + "two": "Št. komentarjev: {{ count }}" + } + } + }, + "cart": { + "general": { + "title": "Vaša košarica", + "note": "Dodajte opombo za naročilo", + "removed_item_html": "Odstranjeno iz košarice: ({{ quantity }}) {{ link }}.", + "remove": "Odstrani", + "subtotal": "Vmesna vsota", + "savings": "Vaš prihranek", + "taxes_and_shipping_at_checkout": "Davki in dostava se obračunajo ob zaključku nakupa", + "taxes_and_shipping_policy_at_checkout_html": "Davki in dostava se obračunajo ob zaključku nakupa", + "taxes_included_but_shipping_at_checkout": "Vključen davek in dostava se obračunata ob zaključku nakupa", + "taxes_included_and_shipping_policy_html": "Vključno z davkom. Dostava se obračuna ob zaključku nakupa.", + "update": "Posodobi", + "checkout": "Zaključi nakup", + "empty": "Vaša košarica je trenutno prazna.", + "cookies_required": "Za uporabo nakupovalne košarice morate omogočiti piškotke", + "continue_shopping": "Nadaljuj nakup", + "cart_error": "Pri posodobitvi vaše košarice je pričo do napake. Poskusite znova." + }, + "label": { + "discounted_total": "Skupaj s popustom", + "product": "Izdelek", + "price": "Cena", + "price_column": "Za podrobnosti o popustu glejte stolpec »Cena«.", + "product_details": "Podatki o izdelku", + "quantity": "Količina", + "qty": "Kol.", + "regular_total": "Skupaj po redni ceni", + "remove": "Odstrani izdelek {{ product }}", + "total": "Skupaj", + "update": "Posodobi" + }, + "popup": { + "added_to_cart": "Pravkar dodano v košarico", + "product_details": "Podatki o izdelku", + "quantity": "Kol.", + "quantity_label": "Količina: {{ quantity_count }}", + "cart_count": { + "one": "Št. elementov: {{ count }}", + "other": "Št. elementov: {{ count }}", + "few": "Št. elementov: {{ count }}", + "two": "Št. elementov: {{ count }}" + } + } + }, + "collections": { + "general": { + "view_all": "Prikaži vse", + "view_all_label": "Prikaži vse izdelke v zbirki {{ collection_name }}", + "no_matches": "V tej zbirki žal ni nobenega izdelka", + "collection_label": "Zbirka", + "items_with_count": { + "one": "Št. izdelkov: {{ count }}", + "other": "Št. izdelkov: {{ count }}", + "few": "Št. izdelkov: {{ count }}", + "two": "Št. izdelkov: {{ count }}" + } + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Razvrsti po" + }, + "filters": { + "title_tags": "Filtriraj po", + "all_tags": "Vsi izdelki" + } + }, + "contact": { + "form": { + "name": "Ime", + "email": "E-poštni naslov", + "phone": "Telefonska številka", + "message": "Sporočilo", + "submit": "Pošlji", + "post_success": "Hvala za vaše sporočilo. Z vami bomo v stiku takoj, ko bo mogoče.", + "error_heading": "Prilagodite naslednje:" + } + }, + "customer": { + "account": { + "title": "Moj račun", + "details": "Podatki o računu", + "view_addresses": "Prikaži naslove", + "return": "Nazaj na podatke o računu" + }, + "activate_account": { + "title": "Aktiviraj račun", + "subtext": "Za aktivacijo računa morate ustvariti geslo.", + "password": "Geslo", + "password_confirm": "Potrdite geslo", + "submit": "Aktiviraj račun", + "cancel": "Zavrni povabilo" + }, + "addresses": { + "title": "Vaši naslovi", + "default": "Privzeto", + "add_new": "Dodaj nov naslov", + "edit_address": "Uredi naslov", + "first_name": "Ime", + "last_name": "Priimek", + "company": "Podjetje", + "address1": "Naslov", + "address2": "Št. stanovanja, apartmaja itd.", + "city": "Kraj", + "country": "Država/regija", + "province": "Območje", + "zip": "Poštna številka", + "phone": "Telefonska številka", + "set_default": "Nastavi kot privzeti naslov", + "add": "Dodaj naslov", + "update": "Posodobi naslov", + "cancel": "Prekliči", + "edit": "Uredi", + "delete": "Izbriši", + "delete_confirm": "Ali ste prepričani, da želite izbrisati ta naslov?" + }, + "login": { + "title": "Prijava", + "email": "E-poštni naslov", + "password": "Geslo", + "forgot_password": "Ali ste pozabili geslo?", + "sign_in": "Vpis", + "guest_title": "Želim nadaljevati kot gost", + "guest_continue": "Nadaljuj" + }, + "orders": { + "title": "Zgodovina naročil", + "order_number": "Naročilo", + "order_number_link": "Številka naročila {{ number }}", + "date": "Datum", + "payment_status": "Stanje plačila", + "fulfillment_status": "Stanje naročila", + "total": "Skupaj", + "none": "Izvedli niste še nobenega naročila." + }, + "order": { + "title": "Naročilo {{ name }}", + "date_html": "Izvedeno dne {{ date }}", + "cancelled_html": "Naročilo preklicano dne {{ date }}", + "cancelled_reason": "Razlog: {{ reason }}", + "billing_address": "Naslov plačnika računa", + "payment_status": "Stanje plačila", + "shipping_address": "Naslov za dostavo", + "fulfillment_status": "Stanje naročila", + "discount": "Popust", + "shipping": "Dostava", + "tax": "Davek", + "product": "Izdelek", + "sku": "Inventarna številka", + "price": "Cena", + "quantity": "Količina", + "total": "Skupaj", + "fulfilled_at_html": "Izpolnjeno dne {{ date }}", + "subtotal": "Vmesna vsota", + "track_shipment": "Sledenje pošiljki" + }, + "recover_password": { + "title": "Ponastavite svoje geslo", + "email": "E-pošta", + "submit": "Pošlji", + "cancel": "Prekliči", + "subtext": "Poslali vam bomo e-poštno sporočilo za ponastavitev gesla.", + "success": "Poslali smo vam e-poštno sporočilo s povezavo za posodobitev gesla." + }, + "reset_password": { + "title": "Ponastavitev gesla za račun", + "subtext": "Vnesite novo geslo za {{ email }}", + "password": "Geslo", + "password_confirm": "Potrdite geslo", + "submit": "Ponastavi geslo" + }, + "register": { + "title": "Ustvari račun", + "first_name": "Ime", + "last_name": "Priimek", + "email": "E-poštni naslov", + "password": "Geslo", + "submit": "Ustvari" + } + }, + "homepage": { + "general": { + "title": "Začetna stran" + }, + "onboarding": { + "product_title": "Ime vašega izdelka", + "product_description": "To območje je namenjeno opisu lastnosti vašega izdelka. Strankam opišite videz, občutek in slog izdelka. Vključite podrobnosti o barvi, uporabljenih materialih in mesto izdelave.", + "collection_title": "Ime vaše zbirke", + "blog_title": "Naslov vaše objave", + "blog_excerpt": "Vaša trgovina ni objavila še nobenega članka. S članki lahko stranke obveščate o predstavitvah izdelkov, nasvetih in drugih novostih. Za nasvete in dodaten navdih za vašo trgovino in besedila preverite Shopifyjevo spletišče s članki o spletni prodaji.", + "blog_author": "Ime avtorja", + "no_content": "Ta razdelek trenutno še nima vsebine. V ta razdelek lahko vsebino dodate prek stranske vrstice." + } + }, + "layout": { + "navigation": { + "search": "Išči", + "expand": "razširi", + "collapse": "strni", + "menu": "Meni" + }, + "cart": { + "title": "Košarica", + "items_count": { + "one": "element", + "other": "elementi", + "few": "elementi", + "two": "elementi" + } + }, + "customer": { + "account": "Račun", + "log_out": "Odjava", + "log_in": "Prijava", + "create_account": "Ustvari račun" + }, + "footer": { + "social_platform": "{{ name }} na platformi {{ platform }}" + } + }, + "gift_cards": { + "issued": { + "title_html": "Tukaj je vaš darilni bon za trgovino {{ shop }} v znesku {{ value }}!", + "subtext": "Vaš darilni bon", + "gift_card_code": "Koda darilnega bona", + "disabled": "Onemogočeno", + "expired": "Poteklo dne {{ expiry }}", + "active": "Poteče dne {{ expiry }}", + "redeem_html": "Ob zaključku nakupa lahko s to kodo unovčite darilni bon v znesku {{ value }}", + "shop_link": "Začetek nakupa", + "print": "Natisni darilni bon", + "remaining_html": "Preostali znesek: {{ balance }}", + "add_to_apple_wallet": "Dodaj v Apple Wallet", + "qr_image_alt": "Koda QR – preberite jo za unovčenje darilnega bona" + } + }, + "store_availability": { + "general": { + "view_store_info": "Prikaži podatke o trgovini", + "check_other_stores": "Preverjanje razpoložljivosti v drugih trgovinah", + "pick_up_available": "Na voljo je osebni prevzem", + "pick_up_currently_unavailable": "Osebni prevzem trenutno ni na voljo", + "pick_up_available_at_html": "Osebni prevzem je mogoč na prevzemnem mestu {{ location_name }}", + "pick_up_unavailable_at_html": "Na prevzemnem mestu {{ location_name }} osebni prevzem trenutno ni mogoč" + } + } +} diff --git a/shopify/locales/sv.json b/shopify/locales/sv.json new file mode 100644 index 00000000..b9e283b1 --- /dev/null +++ b/shopify/locales/sv.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Gå vidare till innehåll", + "close_modal": "Stäng", + "link_messages": { + "new_window": "Öppnas i ett nytt fönster.", + "external": "Öppnar extern webbplats.", + "new_window_and_external": "Öppnar extern webbplats i ett nytt fönster." + }, + "refresh_page": "Vid val av sökresultat uppdateras sidan.", + "selection_help": "Tryck på mellanslagstangenten och piltangenterna för att göra ett val.", + "unit_price_separator": "per", + "error": "Fel" + }, + "meta": { + "tags": "Taggad \"{{ tags }}\"", + "page": "Sida {{ page }}" + }, + "404": { + "title": "404 det gick inte att hitta sidan", + "subtext": "Sidan du begärde finns inte.", + "link": "Fortsätt shoppa" + }, + "pagination": { + "previous": "Föregående sida", + "next": "Nästa sida", + "current_page": "Sida {{ current }} av {{ total }}" + }, + "password_page": { + "opening_soon": "Öppnar snart", + "login_form_heading": "Ange lösenord för att komma till butiken", + "login_form_password_label": "Lösenord", + "login_form_password_placeholder": "Ditt lösenord", + "login_form_submit": "Ange", + "signup_form_email_label": "E-post", + "signup_form_success": "Vi kommer att skicka ett e-postmeddelande precis innan vi öppnar!", + "admin_link_html": "Är det du som är butiksägare? Logga in här", + "password_link": "Ange lösenord för att ta dig in" + }, + "social": { + "share_on_facebook": "Dela", + "share_on_twitter": "Twittra", + "share_on_pinterest": "Spara en pin", + "alt_text": { + "share_on_facebook": "Dela på Facebook", + "share_on_twitter": "Twittra på Twitter", + "share_on_pinterest": "Spara en pin på Pinterest" + } + }, + "search": { + "empty_search_message": "Sökfältet kan inte vara tomt", + "title": "Sök på vår webbplats", + "placeholder": "Sök", + "submit": "Skicka", + "close": "Stäng sökningen", + "heading": { + "one": "Sökresultat", + "other": "Sökresultat" + }, + "search_for": "Sök efter", + "loading": "Laddar", + "clear_search_term": "Rensa sökord", + "number_of_results": "{{ result_number }} av {{ results_count }}", + "products": "Produkter", + "number_of_results_found": "{{ results_count }} resultat hittades", + "one_result_found": "1 resultat hittades", + "no_results": "Försök med att kontrollera din stavning eller använda andra ord.", + "results_with_count": { + "one": "{{ count }} resultat för “{{ terms }}”", + "other": "{{ count }} resultat för “{{ terms }}”" + } + }, + "newsletter_form": { + "newsletter_email": "Prenumerera på vårt nyhetsbrev", + "email_placeholder": "E-postadress", + "confirmation": "Tack för att du prenumererar!", + "submit": "Prenumeranter" + }, + "filters": { + "show_more": "Visa mer", + "show_less": "Visa mindre" + }, + "payment": { + "method": "Betalningsmetoder" + }, + "language": { + "dropdown_label": "Språk" + }, + "country": { + "dropdown_label": "Land/Region" + } + }, + "sections": { + "slideshow": { + "next_slide": "Nästa bild", + "previous_slide": "Föregående bild", + "pause_slideshow": "Pausa bildspelet", + "rotate_slideshow": "Spela bildspel", + "load_slide": "Ladda bild {{ slide_number }}", + "navigation_instructions": "Använd vänster-/högerpil för att navigera i bildspelet eller svep åt vänster/höger om du använder en mobil enhet" + }, + "featured_product": { + "title": "Utvald produkt", + "gallery_thumbnail_alt": "Ladda upp bild till gallerivisning, {{ imageAlt }}", + "video_thumbnail_alt": "Ladda och spela upp video i Gallerivisaren, {{ imageAlt }}", + "model_thumbnail_alt": "Ladda upp 3D-modell till gallerivisning, {{ imageAlt }}" + }, + "map": { + "address_error": "Det gick inte att hitta den adressen", + "address_no_results": "Inga resultat för den adressen", + "address_query_limit_html": "Du har överskridit användningsgränsen för Google API. Överväg att uppgradera till en premiumplan.", + "auth_error_html": "Det gick inte att autentisera ditt Google Maps-konto.", + "section_heading": "Plats" + }, + "video": { + "play": "Spela {{ video_title }} video", + "pause": "Pausa {{ video_title }} video", + "resume": "Återuppta {{ video_title }} video", + "close": "Stäng {{ video_title }} video" + }, + "header": { + "announcement_bar_label": "Meddelande" + } + }, + "blogs": { + "article": { + "view_all": "Visa alla", + "view_all_blogs": "Visa alla bloggar", + "all_topics": "Alla ämnen", + "by_author": "av {{ author }}", + "posted_in": "Inlagd i", + "read_more": "Läs mer", + "read_more_title": "Läs mer: {{ title }}", + "back_to_blog": "Gå tillbaka till {{ title }}", + "tags": "Taggar", + "article_with_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artiklar" + } + }, + "comments": { + "title": "Lämna en kommentar", + "name": "Namn", + "email": "E-post", + "message": "Meddelande", + "post": "Lägg upp kommentar", + "moderated": "Var god observera att kommentarer inte publiceras förrän de har blivit godkända", + "success_moderated": "Din kommentar har lagts upp. Vi kommer att publicera den om ett tag, eftersom att bloggen är modererad.", + "success": "Din kommentar har lagts upp! Tack!", + "unapproved": "Den angivna e-postadressen är inte godkänd för att lämna kommentarer.", + "comments_with_count": { + "one": "{{ count }} kommentar", + "other": "{{ count }} kommentarer" + } + } + }, + "cart": { + "general": { + "title": "Din varukorg", + "note": "Lägg till en anteckning till ordern", + "removed_item_html": "Tog bort ({{ quantity }}) {{ link }} från din kundvagn.", + "remove": "Ta bort", + "subtotal": "Delsumma", + "savings": "Du sparar", + "taxes_and_shipping_at_checkout": "Skatter och frakt beräknas vid utcheckning", + "taxes_and_shipping_policy_at_checkout_html": "Skatter och frakt beräknas vid utcheckning", + "taxes_included_but_shipping_at_checkout": "Skatt ingår och frakt beräknas vid utcheckning", + "taxes_included_and_shipping_policy_html": "Skatt ingår. Frakt beräknas vid utcheckning.", + "update": "Uppdatera", + "checkout": "Utcheckningskassa", + "empty": "Din varukorg är för tillfället tom.", + "cookies_required": "Aktivera cookies för att använda varukorgen", + "continue_shopping": "Fortsätt shoppa", + "cart_error": "Ett fel uppstod när du uppdaterade din varukorg. Var god försök igen." + }, + "label": { + "discounted_total": "Rabatterad summa", + "product": "Produkt", + "price": "Pris", + "price_column": "Se priskolumn för rabatterade detaljer.", + "product_details": "Produktinformation", + "quantity": "Kvantitet", + "qty": "Kvantitet", + "regular_total": "Regelbunden total", + "remove": "Ta bort {{ product }}", + "total": "Totalt", + "update": "Uppdatera" + }, + "popup": { + "added_to_cart": "Nyss tillagd i din varukorg", + "cart_count": { + "one": "{{ count }} artikel", + "other": "{{ count }} artiklar" + }, + "product_details": "Produktinformation", + "quantity": "Kvantitet", + "quantity_label": "Kvantitet: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Visa alla", + "view_all_label": "Visa alla produkter i produktserien {{ collection_name }}", + "no_matches": "Det finns tyvärr inga produkter i denna produktserie", + "items_with_count": { + "one": "{{ count }} produkt", + "other": "{{ count }} produkter" + }, + "collection_label": "Produktserie" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Sortera efter" + }, + "filters": { + "title_tags": "Filtrerad efter", + "all_tags": "Alla produkter" + } + }, + "contact": { + "form": { + "name": "Namn", + "email": "E-post", + "phone": "Telefonnummer", + "message": "Meddelande", + "submit": "Skicka", + "post_success": "Tack för att du kontaktar oss. Vi kontaktar dig så snart som möjligt.", + "error_heading": "Justera följande:" + } + }, + "customer": { + "account": { + "title": "Mitt konto", + "details": "Kontouppgifter", + "view_addresses": "Visa adresser", + "return": "Återgå till kontouppgifter" + }, + "activate_account": { + "title": "Aktivera konto", + "subtext": "Skapa ditt lösenord för att aktivera ditt konto.", + "password": "Lösenord", + "password_confirm": "Bekräfta lösenord", + "submit": "Aktivera konto", + "cancel": "Avvisa inbjudan" + }, + "addresses": { + "title": "Dina adresser", + "default": "Standard", + "add_new": "Lägg till ny adress", + "edit_address": "Redigera adress", + "first_name": "Förnamn", + "last_name": "Efternamn", + "company": "Företag", + "address1": "Adress", + "address2": "Lägenhet, trappa, etc.", + "city": "Stad", + "country": "Land/Region", + "province": "Provins", + "zip": "Postnummer", + "phone": "Telefon", + "set_default": "Ange som standardadress", + "add": "Lägg till adress", + "update": "Uppdatera adress", + "cancel": "Avbryt", + "edit": "Redigera", + "delete": "Radera", + "delete_confirm": "Är du säker på att du vill radera den här adressen?" + }, + "login": { + "title": "Logga in", + "email": "E-post", + "password": "Lösenord", + "forgot_password": "Har du glömt ditt lösenord?", + "sign_in": "Logga in", + "guest_title": "Fortsätt som gäst", + "guest_continue": "Fortsätt" + }, + "orders": { + "title": "Orderhistorik", + "order_number": "Order", + "order_number_link": "Ordernummer {{ number }}", + "date": "Datum", + "payment_status": "Betalningsstatus", + "fulfillment_status": "Distribueringsstatus", + "total": "Totalt", + "none": "Du har inte lagt någon order än." + }, + "order": { + "title": "order {{ name }}", + "date_html": "Gjord den {{ date }}", + "cancelled_html": "Ordern Avbröts den {{ date }}", + "cancelled_reason": "Anledning: {{ reason }}.", + "billing_address": "Faktureringsadress", + "payment_status": "Betalningsstatus", + "shipping_address": "Leveransadress", + "fulfillment_status": "Distribueringsstatus", + "discount": "Rabatt", + "shipping": "Leverans", + "tax": "Skatt", + "product": "Produkt", + "sku": "SKU", + "price": "Pris", + "quantity": "Kvantitet", + "total": "Totalt", + "fulfilled_at_html": "Distribuerad {{ date }}", + "subtotal": "Delsumma", + "track_shipment": "Spåra försändelse" + }, + "recover_password": { + "title": "Återställ ditt lösenord", + "email": "E-post", + "submit": "Skicka in", + "cancel": "Avbryt", + "subtext": "Vi skickar ett e-postmeddelande till dig för att du ska kunna återställa ditt lösenord.", + "success": "Vi har skickat ett e-postmeddelande till dig med en länk för att uppdatera ditt lösenord." + }, + "reset_password": { + "title": "Återställ kontolösenord", + "subtext": "Ange ett nytt lösenord för {{ email }}", + "password": "Lösenord", + "password_confirm": "Bekräfta lösenord", + "submit": "Återställ lösenord" + }, + "register": { + "title": "Skapa konto", + "first_name": "Förnamn", + "last_name": "Efternamn", + "email": "E-post", + "password": "Lösenord", + "submit": "Skapa" + } + }, + "homepage": { + "general": { + "title": "Startsida" + }, + "onboarding": { + "product_title": "Din produkts namn", + "product_description": "Detta område används för att beskriva produktens detaljer. Berätta för kunderna om utseendet, känslan och stilen på din produkt. Lägg till detaljer om färg, material som används och var den tillverkades.", + "collection_title": "Ditt produktserienamn", + "blog_title": "Dina bloggtitlar", + "blog_excerpt": "Din butik har inte publicerat några blogginlägg än. En blogg kan användas till att informera om nya produktlanseringar, tips eller andra nyheter du vill dela med dina kunder. Du kan se Shopifys e-handelsblogg för inspiration till din egen butik och blogg.", + "blog_author": "Författarens namn", + "no_content": "Det här avsnittet innehåller för närvarande inte något innehåll. Lägg till innehåll i det här avsnittet med hjälp av sidofältet." + } + }, + "layout": { + "navigation": { + "search": "Sök", + "expand": "utöka", + "collapse": "fäll ihop", + "menu": "Meny" + }, + "cart": { + "title": "Varukorg", + "items_count": { + "one": "artikel", + "other": "artiklar" + } + }, + "customer": { + "account": "Konto", + "log_out": "Logga ut", + "log_in": "Logga in", + "create_account": "Skapa konto" + }, + "footer": { + "social_platform": "{{ name }} på {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Ordinarie pris", + "sold_out": "Slutsåld", + "unavailable": "Ej tillgänglig", + "on_sale": "Försäljning", + "sale_price": "Försäljningspris", + "quantity": "Kvantitet", + "add_to_cart": "Lägg till i varukorgen", + "loader_label": "Lägger till produkten i din varukorg", + "back_to_collection": "Tillbaka till", + "vendor": "Säljare", + "quantity_minimum_message": "Kvantiteten måste vara 1 eller mer", + "include_taxes": "Skatt ingår.", + "shipping_policy_html": "Fraktberäknas i kassan.", + "unit_price_label": "Enhetspris", + "view_cart": "Visa varukorg", + "availability": "Tillgänglighet", + "from_lowest_price_html": "Från {{ lowest_price }}", + "view_in_space": "Visa i ditt utrymme", + "view_in_space_label": "Visa i ditt utrymme, laddar artiklar i fönster med förstärkt verklighet" + } + }, + "gift_cards": { + "issued": { + "title_html": "Här är ditt presentkort värt {{ value }} för {{ shop }}!", + "subtext": "Ditt presentkort", + "gift_card_code": "Presentkortskod", + "disabled": "Inaktiverat", + "expired": "Gick ut den {{ expiry }}", + "active": "Går ut den {{ expiry }}", + "redeem_html": "Använd denna kod vid kassan för att lösa in ditt presentkort på {{ value }}", + "shop_link": "Börja shoppa", + "print": "Skriv ut detta presentkort", + "remaining_html": "{{ balance }} kvar", + "add_to_apple_wallet": "Lägg till i Apple Wallet", + "qr_image_alt": "QR-kod – skanna för att lösa in presentkort" + } + }, + "store_availability": { + "general": { + "view_store_info": "Visa butiksinformation", + "check_other_stores": "Kontrollerar tillgänglighet i andra butiker", + "pick_up_available": "Hämtning tillgänglig", + "pick_up_currently_unavailable": "Hämtning är för närvarande inte tillgängligt", + "pick_up_available_at_html": "Hämtning tillgänglig på {{ location_name }}", + "pick_up_unavailable_at_html": "Hämtning är för närvarande inte tillgängligt på {{ location_name }}" + } + } +} diff --git a/shopify/locales/th.json b/shopify/locales/th.json new file mode 100644 index 00000000..a7919ce3 --- /dev/null +++ b/shopify/locales/th.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "ข้ามไปที่เนื้อหา", + "close_modal": "ปิด", + "link_messages": { + "new_window": "เปิดในหน้าต่างใหม่", + "external": "เปิดเว็บไซต์ภายนอก", + "new_window_and_external": "เปิดเว็บไซต์ภายนอกในหน้าต่างใหม่" + }, + "refresh_page": "การเลือกตัวเลือกจะส่งผลให้มีการรีเฟรชทั้งหน้า", + "selection_help": "กดปุ่ม Space แล้วกดปุ่มลูกศรเพื่อเลือก", + "unit_price_separator": "ต่อ", + "error": "ผิดพลาด" + }, + "meta": { + "tags": "แท็กด้วย \"{{ tags }}\"", + "page": "หน้า {{ page }}" + }, + "404": { + "title": "404 ไม่พบหน้านี้", + "subtext": "ไม่มีหน้าที่คุณร้องขอ", + "link": "เลือกซื้อต่อ" + }, + "pagination": { + "previous": "หน้าก่อนหน้านี้", + "next": "หน้าถัดไป", + "current_page": "หน้า {{ current }} จาก {{ total }}" + }, + "password_page": { + "opening_soon": "จะเปิดเร็วๆ นี้", + "login_form_heading": "เข้าร้านค้าโดยใช้รหัสผ่าน", + "login_form_password_label": "รหัสผ่าน", + "login_form_password_placeholder": "รหัสผ่านของคุณ", + "login_form_submit": "ป้อน", + "signup_form_email_label": "อีเมล", + "signup_form_success": "เราจะส่งอีเมลแจ้งคุณก่อนที่ร้านจะเปิด!", + "admin_link_html": "คุณเป็นเจ้าของร้านใช่ไหม เข้าสู่ระบบที่นี่", + "password_link": "เข้าโดยใช้รหัสผ่าน" + }, + "social": { + "share_on_facebook": "แชร์", + "share_on_twitter": "ทวีต", + "share_on_pinterest": "ปักหมุด", + "alt_text": { + "share_on_facebook": "แชร์บน Facebook", + "share_on_twitter": "ทวีตบน Twitter", + "share_on_pinterest": "ปักหมุดบน Pinterest" + } + }, + "search": { + "empty_search_message": "ไม่สามารถเว้นว่างในช่องค้นหาได้", + "title": "ค้นหาในเว็บไซต์ของเรา", + "placeholder": "ค้นหา", + "submit": "ส่ง", + "close": "ปิดการค้นหา", + "heading": { + "one": "ผลลัพธ์การค้นหา", + "other": "ผลลัพธ์การค้นหา" + }, + "search_for": "ค้นหา", + "loading": "กำลังโหลด", + "clear_search_term": "ล้างคำค้นหา", + "number_of_results": "{{ result_number }} จาก {{ results_count }}", + "products": "สินค้า", + "number_of_results_found": "พบผลลัพธ์ {{ results_count }} รายการ", + "one_result_found": "พบผลลัพธ์ 1 รายการ", + "no_results": "ลองตรวจสอบการสะกดคำหรือใช้คำอื่น", + "results_with_count": { + "one": "ผลลัพธ์ {{ count }} รายการสำหรับ “{{ terms }}”", + "other": "ผลลัพธ์ {{ count }} รายการสำหรับ “{{ terms }}”" + } + }, + "newsletter_form": { + "newsletter_email": "สมัครรับข้อมูลจากรายชื่ออีเมลของเรา", + "email_placeholder": "อีเมล", + "confirmation": "ขอขอบคุณที่สมัครรับข้อมูล", + "submit": "สมัครรับข้อมูล" + }, + "filters": { + "show_more": "แสดงเพิ่ม", + "show_less": "แสดงน้อยลง" + }, + "payment": { + "method": "วิธีการชำระเงิน" + }, + "language": { + "dropdown_label": "ภาษา" + }, + "country": { + "dropdown_label": "ประเทศ/ภูมิภาค" + } + }, + "sections": { + "slideshow": { + "next_slide": "สไลด์ถัดไป", + "previous_slide": "สไลด์ก่อนหน้า", + "pause_slideshow": "หยุดสไลด์โชว์ชั่วคราว", + "rotate_slideshow": "เล่นสไลด์โชว์", + "load_slide": "โหลดสไลด์ {{ slide_number }}", + "navigation_instructions": "ใช้ลูกศรซ้าย/ขวาเพื่อดูสไลด์โชว์ หรือปัดไปทางซ้าย/ขวาหากคุณกำลังใช้อุปกรณ์มือถือ" + }, + "featured_product": { + "title": "สินค้าที่แนะนำ", + "gallery_thumbnail_alt": "โหลดรูปภาพลงในเครื่องมือใช้ดูของ Gallery {{ imageAlt }}", + "video_thumbnail_alt": "โหลดและเล่นวิดีโอในเครื่องมือดูของแกลเลอรี {{ imageAlt }}", + "model_thumbnail_alt": "โหลดโมเดล 3 มิติลงในเครื่องมือใช้ดูของ Gallery {{ imageAlt }}" + }, + "map": { + "address_error": "เกิดข้อผิดพลาดในการค้นหาที่อยู่ดังกล่าว", + "address_no_results": "ไม่พบผลลัพธ์สำหรับที่อยู่ดังกล่าว", + "address_query_limit_html": "คุณใช้ Google API ของคุณเกินขีดจำกัดการใช้งานแล้ว ลองพิจารณาอัปเกรดเป็นแผนพรีเมียม", + "auth_error_html": "เกิดปัญหาในการยืนยันตัวตนสำหรับบัญชีผู้ใช้ Google Maps ของคุณ", + "section_heading": "ตำแหน่งที่ตั้ง" + }, + "video": { + "play": "เล่นวิดีโอ {{ video_title }}", + "pause": "หยุดวิดีโอ {{ video_title }}", + "resume": "เล่นวิดีโอ {{ video_title }} ต่อ", + "close": "ปิดวิดีโอ {{ video_title }}" + }, + "header": { + "announcement_bar_label": "การประกาศ" + } + }, + "blogs": { + "article": { + "view_all": "ดูทั้งหมด", + "view_all_blogs": "ดูบล็อกทั้งหมด", + "all_topics": "ทุกหัวข้อ", + "by_author": "โดย {{ author }}", + "posted_in": "โพสต์ลงใน", + "read_more": "อ่านเพิ่มเติม", + "read_more_title": "อ่านเพิ่มเติม: {{ title }}", + "back_to_blog": "กลับไปยัง {{ title }}", + "tags": "แท็ก", + "article_with_count": { + "one": "{{ count }} บทความ", + "other": "{{ count }} บทความ" + } + }, + "comments": { + "title": "แสดงความคิดเห็น", + "name": "ชื่อ", + "email": "อีเมล", + "message": "ข้อความ", + "post": "โพสต์ความคิดเห็น", + "moderated": "โปรดทราบว่าความคิดเห็นจะต้องได้รับการอนุมัติก่อนที่จะมีการเผยแพร่", + "success_moderated": "โพสต์ความคิดเห็นของคุณเรียบร้อยแล้ว เราจะเผยแพร่ความคิดเห็นดังกล่าวในอีกไม่ช้า เนื่องจากบล็อกของเราอยู่ในระหว่างการกลั่นกรอง", + "success": "โพสต์ความคิดเห็นของคุณเรียบร้อยแล้ว! ขอขอบคุณ!", + "unapproved": "ที่อยู่อีเมลที่ให้ไว้ไม่ได้รับอนุมัติให้โพสต์ความคิดเห็น", + "comments_with_count": { + "one": "{{ count }} คิดเห็น", + "other": "{{ count }} ความคิดเห็น" + } + } + }, + "cart": { + "general": { + "title": "ตะกร้าสินค้าของคุณ", + "note": "เพิ่มบันทึกไปยังคำสั่งซื้อของคุณ", + "removed_item_html": "ลบ ({{ quantity }}) {{ link }} ออกจากตะกร้าของคุณแล้ว", + "remove": "ลบออก", + "subtotal": "ยอดรวมย่อย", + "savings": "คุณจะประหยัด", + "taxes_and_shipping_at_checkout": "ภาษีและค่าจัดส่งที่คิดคำนวณในระหว่างขั้นตอนการชำระเงิน", + "taxes_and_shipping_policy_at_checkout_html": "ภาษีและค่าจัดส่งที่คิดคำนวณในระหว่างขั้นตอนการชำระเงิน", + "taxes_included_but_shipping_at_checkout": "รวมภาษีและค่าจัดส่งที่คิดคำนวณในระหว่างขั้นตอนการชำระเงิน", + "taxes_included_and_shipping_policy_html": "รวมภาษี ค่าจัดส่งที่คิดคำนวณในระหว่างขั้นตอนการชำระเงิน", + "update": "อัพเดต", + "checkout": "การชำระเงิน", + "empty": "ตะกร้าของคุณว่างอยู่ในขณะนี้", + "cookies_required": "เปิดใช้คุกกี้เพื่อใช้ตะกร้าสินค้า", + "continue_shopping": "เลือกซื้อต่อ", + "cart_error": "เกิดข้อผิดพลาดระหว่างการอัปเดตตะกร้าสินค้าของคุณ โปรดลองอีกครั้ง" + }, + "label": { + "discounted_total": "ยอดรวมที่ใช้ส่วนลดแล้ว", + "product": "สินค้า", + "price": "ราคา", + "price_column": "ดูที่คอลัมน์ราคาสำหรับรายละเอียดของส่วนลด", + "product_details": "รายละเอียดสินค้า", + "quantity": "จำนวน", + "qty": "จำนวน", + "regular_total": "ยอดรวมปกติ", + "remove": "ลบ {{ product }} ออก", + "total": "ยอดรวม", + "update": "อัพเดต" + }, + "popup": { + "added_to_cart": "เพิ่มลงในตะกร้าเมื่อไม่นานมานี้", + "cart_count": { + "one": "{{ count }} รายการ", + "other": "{{ count }} รายการ" + }, + "product_details": "รายละเอียดสินค้า", + "quantity": "จำนวน", + "quantity_label": "ปริมาณ: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "ดูทั้งหมด", + "view_all_label": "ดูสินค้าทั้งหมดในคอลเลกชัน {{ collection_name }}", + "no_matches": "ขออภัย ไม่มีสินค้าในคอลเลกชันนี้", + "items_with_count": { + "one": "สินค้า {{ count }} ราย", + "other": "สินค้า {{ count }} รายการ" + }, + "collection_label": "คอลเลกชัน" + }, + "catalog": { + "title": "แค็ตตาล็อก" + }, + "sorting": { + "title": "เรียงตาม" + }, + "filters": { + "title_tags": "กรองตาม", + "all_tags": "สินค้าทั้งหมด" + } + }, + "contact": { + "form": { + "name": "ชื่อ", + "email": "อีเมล", + "phone": "หมายเลขโทรศัพท์", + "message": "ข้อความ", + "submit": "ส่ง", + "post_success": "ขอขอบคุณที่ติดต่อเรา เราจะติดต่อกลับโดยเร็วที่สุด", + "error_heading": "โปรดปรับแก้ไขข้อมูลดังต่อไปนี้:" + } + }, + "customer": { + "account": { + "title": "บัญชีผู้ใช้ของฉัน", + "details": "รายละเอียดบัญชีผู้ใช้", + "view_addresses": "ดูที่อยู่", + "return": "กลับไปยังรายละเอียดบัญชีผู้ใช้" + }, + "activate_account": { + "title": "เปิดใช้งานบัญชีผู้ใช้", + "subtext": "สร้างรหัสผ่านเพื่อเปิดใช้งานบัญชีผู้ใช้ของคุณ", + "password": "รหัสผ่าน", + "password_confirm": "ยืนยันรหัสผ่าน", + "submit": "เปิดใช้งานบัญชีผู้ใช้", + "cancel": "ปฏิเสธคำเชิญ" + }, + "addresses": { + "title": "ที่อยู่ของคุณ", + "default": "ค่าเริ่มต้น", + "add_new": "เพิ่มที่อยู่ใหม่", + "edit_address": "แก้ไขที่อยู่", + "first_name": "ชื่อ", + "last_name": "นามสกุล", + "company": "บริษัท", + "address1": "ที่อยู่", + "address2": "อพาร์ทเม้นท์ ห้องชุด เป็นต้น", + "city": "เมือง", + "country": "ประเทศ/ภูมิภาค", + "province": "จังหวัด", + "zip": "รหัสไปรษณีย์", + "phone": "โทรศัพท์", + "set_default": "กำหนดให้เป็นที่อยู่เริ่มต้น", + "add": "เพิ่มที่อยู่", + "update": "อัปเดตที่อยู่", + "cancel": "ยกเลิก", + "edit": "แก้ไข", + "delete": "ลบ", + "delete_confirm": "คุณแน่ใจหรือไม่ว่าต้องการลบที่อยู่นี้" + }, + "login": { + "title": "เข้าสู่ระบบ", + "email": "อีเมล", + "password": "รหัสผ่าน", + "forgot_password": "ลืมรหัสผ่านของคุณใช่ไหม", + "sign_in": "ลงชื่อเข้าใช้", + "guest_title": "ดำเนินการต่อในฐานะผู้ใช้ชั่วคราว", + "guest_continue": "ดำเนินการต่อ" + }, + "orders": { + "title": "ประวัติคำสั่งซื้อ", + "order_number": "คำสั่งซื้อ", + "order_number_link": "คำสั่งซื้อหมายเลข {{ number }}", + "date": "วันที่", + "payment_status": "สถานะการชำระเงิน", + "fulfillment_status": "สถานะการจัดการคำสั่งซื้อ", + "total": "ยอดรวม", + "none": "คุณยังไม่ได้ดำเนินการสั่งซื้อใดๆ เลย" + }, + "order": { + "title": "คำสั่งซื้อ {{ name }}", + "date_html": "สั่งซื้อเมื่อ {{ date }}", + "cancelled_html": "ยกเลิกคำสั่งซื้อเมื่อ {{ date }}", + "cancelled_reason": "เหตุผล: {{ reason }}", + "billing_address": "ที่อยู่สำหรับเรียกเก็บเงิน", + "payment_status": "สถานะการชำระเงิน", + "shipping_address": "ที่อยู่สำหรับจัดส่ง", + "fulfillment_status": "สถานะการจัดการคำสั่งซื้อ", + "discount": "ส่วนลด", + "shipping": "การจัดส่ง", + "tax": "ภาษี", + "product": "สินค้า", + "sku": "รหัสสินค้าคงคลัง", + "price": "ราคา", + "quantity": "จำนวน", + "total": "ยอดรวม", + "fulfilled_at_html": "จัดการ {{ date }}", + "subtotal": "ยอดรวมย่อย", + "track_shipment": "ติดตามการจัดส่ง" + }, + "recover_password": { + "title": "รีเซ็ตรหัสผ่านของคุณ", + "email": "อีเมล", + "submit": "ส่ง", + "cancel": "ยกเลิก", + "subtext": "เราจะส่งอีเมลสำหรับใช้รีเซ็ตรหัสผ่านให้แก่คุณ", + "success": "เราได้ส่งอีเมลพร้อมลิงก์สำหรับใช้อัปเดตรหัสผ่านของคุณแล้ว" + }, + "reset_password": { + "title": "รีเซ็ตรหัสผ่านของบัญชีผู้ใช้", + "subtext": "ป้อนรหัสผ่านใหม่สำหรับ {{ email }}", + "password": "รหัสผ่าน", + "password_confirm": "ยืนยันรหัสผ่าน", + "submit": "รีเซ็ตรหัสผ่าน" + }, + "register": { + "title": "สร้างบัญชีผู้ใช้", + "first_name": "ชื่อ", + "last_name": "นามสกุล", + "email": "อีเมล", + "password": "รหัสผ่าน", + "submit": "สร้าง" + } + }, + "homepage": { + "general": { + "title": "หน้าแรก" + }, + "onboarding": { + "product_title": "ชื่อสินค้าของคุณ", + "product_description": "พื้นที่ตรงนี้มีไว้เพื่ออธิบายรายละเอียดสินค้าของคุณ บอกลูกค้าทราบว่าสินค้าของคุณมีรูปลักษณ์ ให้ความรู้สึกและมีสไตล์อย่างไร เพิ่มรายละเอียดเรื่องสี วัสดุที่ใช้ ขนาดและสถานที่ผลิต", + "collection_title": "ชื่อคอลเลกชันของคุณ", + "blog_title": "ชื่อโพสต์ของคุณ", + "blog_excerpt": "ร้านค้าของคุณยังไม่ได้เผยแพร่โพสต์ในบล็อกใดๆ เลย คุณสามารถใช้บล็อกเพื่อพูดคุยเกี่ยวกับการเปิดตัวสินค้าใหม่ๆ เคล็ดลับต่างๆ หรือข่าวสารอื่นใดที่คุณอยากจะแบ่งปันให้ลูกค้าทราบ รวมถึงสามารถเข้าไปดูบล็อกอีคอมเมิร์ซของ Shopify เพื่อหาแรงบันดาลใจและคำแนะนำสำหรับร้านค้าและบล็อกของคุณได้", + "blog_author": "ชื่อผู้เขียน", + "no_content": "ขณะนี้ส่วนนี้ยังไม่มีเนื้อหาใดๆ เลย เพิ่มเนื้อหาลงในส่วนนี้โดยใช้แถบด้านข้าง" + } + }, + "layout": { + "navigation": { + "search": "ค้นหา", + "expand": "ขยาย", + "collapse": "ย่อ", + "menu": "เมนู" + }, + "cart": { + "title": "ตะกร้าสินค้า", + "items_count": { + "one": "รายการ", + "other": "รายการ" + } + }, + "customer": { + "account": "บัญชีผู้ใช้", + "log_out": "ออกจากระบบ", + "log_in": "เข้าสู่ระบบ", + "create_account": "สร้างบัญชีผู้ใช้" + }, + "footer": { + "social_platform": "{{ name }} บน {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "ราคาปกติ", + "sold_out": "ขายหมดแล้ว", + "unavailable": "ไม่พร้อมใช้งาน", + "on_sale": "การขาย", + "sale_price": "ราคาขาย", + "quantity": "จำนวน", + "add_to_cart": "เพิ่มลงในตะกร้าสินค้า", + "loader_label": "กำลังเพิ่มสินค้าไปยังตะกร้าสินค้าของคุณ", + "back_to_collection": "กลับไปยัง", + "vendor": "ผู้ขาย", + "quantity_minimum_message": "ปริมาณต้องมากกว่าหรือเท่ากับ 1", + "include_taxes": "รวมภาษี", + "shipping_policy_html": "ค่าจัดส่งที่คิดคำนวณในระหว่างขั้นตอนการชำระเงิน", + "unit_price_label": "ราคาต่อหน่วย", + "view_cart": "ดูตะกร้าสินค้า", + "availability": "ความพร้อมในการเผยแพร่", + "from_lowest_price_html": "จาก {{ lowest_price }}", + "view_in_space": "ดูในพื้นที่ของคุณ", + "view_in_space_label": "ดูในพื้นที่ของคุณ โหลดรายการในหน้าต่างการสร้างวัตถุเสมือน" + } + }, + "gift_cards": { + "issued": { + "title_html": "นี่คือบัตรของขวัญมูลค่า {{ value }} สำหรับใช้ที่ {{ shop }}!", + "subtext": "บัตรของขวัญของคุณ", + "gift_card_code": "รหัสบัตรของขวัญ", + "disabled": "ปิดใช้งาน", + "expired": "หมดอายุใน {{ expiry }}", + "active": "หมดอายุใน {{ expiry }}", + "redeem_html": "ใช้โค้ดนี้ในระหว่างขั้นตอนการชำระเงินเพื่อแลกใช้บัตรของขวัญมูลค่า {{ value }}", + "shop_link": "เริ่มช้อปปิ้ง", + "print": "พิมพ์บัตรของขวัญนี้", + "remaining_html": "เหลือเงิน {{ balance }}", + "add_to_apple_wallet": "เพิ่มลงใน Apple Wallet", + "qr_image_alt": "คิวอาร์โค้ด — สแกนเพื่อแลกใช้บัตรของขวัญ" + } + }, + "store_availability": { + "general": { + "view_store_info": "ดูข้อมูลร้านค้า", + "check_other_stores": "ตรวจสอบความพร้อมที่ร้านค้าอื่นๆ", + "pick_up_available": "การรับสินค้าด้วยตนเองพร้อมให้บริการ", + "pick_up_currently_unavailable": "การรับสินค้าด้วยตนเองไม่พร้อมให้บริการในขณะนี้", + "pick_up_available_at_html": "การรับสินค้าด้วยตนเองพร้อมให้บริการที่ {{ location_name }}", + "pick_up_unavailable_at_html": "การรับสินค้าด้วยตนเองไม่พร้อมให้บริการที่ {{ location_name }} ในขณะนี้" + } + } +} diff --git a/shopify/locales/tr.json b/shopify/locales/tr.json new file mode 100644 index 00000000..27fb3f7e --- /dev/null +++ b/shopify/locales/tr.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "İçeriğe atla", + "close_modal": "Kapat", + "link_messages": { + "new_window": "Yeni bir pencerede açılır.", + "external": "Harici web sitesini açar.", + "new_window_and_external": "Harici web sitesini yeni bir pencerede açar." + }, + "refresh_page": "Bir seçim yapmanız sayfanın tamamının yenilenmesine neden olur.", + "selection_help": "Bir seçim yapmak için boşluk tuşuna sonra ok tuşlarına basın.", + "unit_price_separator": "/", + "error": "Hata" + }, + "meta": { + "tags": "\"{{ tags }}\" etiketlendi", + "page": "Sayfa {{ page }}" + }, + "404": { + "title": "404 Sayfa Bulunamadı", + "subtext": "Talep ettiğiniz sayfa mevcut değil.", + "link": "Alışverişe devam et" + }, + "pagination": { + "previous": "Önceki sayfa", + "next": "Sonraki sayfa", + "current_page": "Sayfa {{ current }}/{{ total }}" + }, + "password_page": { + "opening_soon": "Yakında Açılıyor", + "login_form_heading": "Parola kullanarak mağazaya girin", + "login_form_password_label": "Parola", + "login_form_password_placeholder": "Parolanız", + "login_form_submit": "Gir", + "signup_form_email_label": "E-posta", + "signup_form_success": "Açılıştan hemen önce size e-posta göndereceğiz!", + "admin_link_html": "Mağaza sahibi misiniz? Buradan oturum açın", + "password_link": "Parola kullanarak girin" + }, + "social": { + "share_on_facebook": "Paylaş", + "share_on_twitter": "Tweet'le", + "share_on_pinterest": "Pin ekle", + "alt_text": { + "share_on_facebook": "Facebook'ta paylaş", + "share_on_twitter": "Twitter'da tweet'le", + "share_on_pinterest": "Pinterest'te pin ekle" + } + }, + "search": { + "empty_search_message": "Arama alanı boş olamaz", + "title": "Sitemizde arayın", + "placeholder": "Ara", + "submit": "Gönder", + "close": "Aramayı kapat", + "heading": { + "one": "Arama sonucu", + "other": "Arama sonuçları" + }, + "search_for": "Şunun için ara:", + "loading": "Yükleniyor", + "clear_search_term": "Arama terimini temizle", + "number_of_results": "{{ result_number }}/{{ results_count }}", + "products": "Ürünler", + "number_of_results_found": "{{ results_count }} sonuç bulundu", + "one_result_found": "1 sonuç bulundu", + "no_results": "Yazımınızı kontrol etmeyi veya farklı kelimeler kullanmayı deneyin.", + "results_with_count": { + "one": "\"{{ terms }}\" için {{ count }} sonuç", + "other": "\"{{ terms }}\" için {{ count }} sonuç" + } + }, + "newsletter_form": { + "newsletter_email": "Posta listemize abone olun", + "email_placeholder": "E-posta adresi", + "confirmation": "Abone olduğunuz için teşekkür ederiz!", + "submit": "Abone ol" + }, + "filters": { + "show_more": "Daha Fazla Göster", + "show_less": "Daha Az Göster" + }, + "payment": { + "method": "Ödeme yöntemleri" + }, + "language": { + "dropdown_label": "Dil" + }, + "country": { + "dropdown_label": "Ülke/Bölge" + } + }, + "sections": { + "slideshow": { + "next_slide": "Sonraki slayt", + "previous_slide": "Önceki slayt", + "pause_slideshow": "Slayt gösterisini duraklat", + "rotate_slideshow": "Slayt gösterisini oynat", + "load_slide": "{{ slide_number }}. slaytı yükle", + "navigation_instructions": "Slayt gösterisinde gezinmek için sol/sağ okları kullanın veya mobil cihaz kullanıyorsanız parmağınızı sola/sağa kaydırın" + }, + "featured_product": { + "title": "Öne çıkan ürün", + "gallery_thumbnail_alt": "Görseli Galeri görüntüleyiciye yükleyin, {{ imageAlt }}", + "video_thumbnail_alt": "Videoyu Galeri görüntüleyiciye yükleyin ve burada izleyin, {{ imageAlt }}", + "model_thumbnail_alt": "3B modeli Galeri görüntüleyiciye yükleyin, {{ imageAlt }}" + }, + "map": { + "address_error": "Bu adres aranırken hata oluştu", + "address_no_results": "Bu adres için sonuç yok", + "address_query_limit_html": "Google API kullanım sınırını aştınız. Premium Plan'a yükseltmeyi düşünün.", + "auth_error_html": "Google Haritalar hesabınızın kimlik doğrulaması yapılırken sorun oluştu.", + "section_heading": "Konum" + }, + "video": { + "play": "{{ video_title }} videosunu oynatın", + "pause": "{{ video_title }} videosunu duraklatın", + "resume": "{{ video_title }} videosunu sürdürün", + "close": "{{ video_title }} videosunu kapatın" + }, + "header": { + "announcement_bar_label": "Duyuru" + } + }, + "blogs": { + "article": { + "view_all": "Tümünü görüntüle", + "view_all_blogs": "Tüm blogları görüntüle", + "all_topics": "Tüm konular", + "by_author": "Geliştiren: {{ author }}", + "posted_in": "Şurada paylaşıldı:", + "read_more": "Devamını okuyun", + "read_more_title": "Devamını okuyun: {{ title }}", + "back_to_blog": "Geri dön: {{ title }}", + "tags": "Etiketler", + "article_with_count": { + "one": "{{ count }} makale", + "other": "{{ count }} makale" + } + }, + "comments": { + "title": "Yorum yapın", + "name": "Ad", + "email": "E-posta", + "message": "Mesaj", + "post": "Yorumu paylaş", + "moderated": "Yorumların yayınlanabilmesi için onaylanması gerektiğini lütfen unutmayın", + "success_moderated": "Yorumunuz başarıyla paylaşıldı. Blogumuz denetlendiğinden yorumunuzu kısa bir süre sonra yayınlayacağız.", + "success": "Yorumunuz başarıyla paylaşıldı! Teşekkürler!", + "unapproved": "Sağlanan e-posta adresi, yorum paylaşmak için onaylı değil.", + "comments_with_count": { + "one": "{{ count }} yorum", + "other": "{{ count }} yorum" + } + } + }, + "cart": { + "general": { + "title": "Sepetiniz", + "note": "Siparişinize not ekleyin", + "removed_item_html": "({{ quantity }}) {{ link }} sepetinizden çıkarıldı.", + "remove": "Kaldır", + "subtotal": "Alt toplam", + "savings": "Tasarruf ediyorsunuz", + "taxes_and_shipping_at_checkout": "Vergiler ve kargo, ödeme sayfasında hesaplanır", + "taxes_and_shipping_policy_at_checkout_html": "Vergiler ve kargo, ödeme sayfasında hesaplanır", + "taxes_included_but_shipping_at_checkout": "Vergi dahildir ve kargo, ödeme sayfasında hesaplanır", + "taxes_included_and_shipping_policy_html": "Vergi dahildir. Kargo, ödeme sayfasında hesaplanır.", + "update": "Güncelle", + "checkout": "Ödeme", + "empty": "Sepetiniz şu anda boş.", + "cookies_required": "Alışveriş sepetini kullanmak için çerezleri etkinleştirin", + "continue_shopping": "Alışverişe devam et", + "cart_error": "Sepetiniz güncellenirken bir hata oluştu. Lütfen tekrar deneyin." + }, + "label": { + "discounted_total": "İndirimli toplam", + "product": "Ürün", + "price": "Fiyat", + "price_column": "İndirim ayrıntıları için Fiyat sütununa bakın.", + "product_details": "Ürün ayrıntıları", + "quantity": "Adet", + "qty": "Adet", + "regular_total": "Normal toplam", + "remove": "{{ product }} ürününü kaldır", + "total": "Toplam", + "update": "Güncelle" + }, + "popup": { + "added_to_cart": "Az önce sepetinize eklendi", + "cart_count": { + "one": "{{ count }} ürün", + "other": "{{ count }} ürün" + }, + "product_details": "Ürün ayrıntıları", + "quantity": "Adet", + "quantity_label": "Adet: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Tümünü görüntüle", + "view_all_label": "{{ collection_name }} koleksiyonundaki tüm ürünleri görüntüle", + "no_matches": "Üzgünüz, bu koleksiyonda ürün yok", + "items_with_count": { + "one": "{{ count }} ürün", + "other": "{{ count }} ürün" + }, + "collection_label": "Koleksiyon" + }, + "catalog": { + "title": "Katalog" + }, + "sorting": { + "title": "Sıralama ölçütü:" + }, + "filters": { + "title_tags": "Filtreleme ölçütü:", + "all_tags": "Tüm ürünler" + } + }, + "contact": { + "form": { + "name": "Ad", + "email": "E-posta", + "phone": "Telefon Numarası", + "message": "Mesaj", + "submit": "Gönder", + "post_success": "Bizimle iletişime geçtiğiniz için teşekkür ederiz. Mümkün olan en kısa sürede size dönüş yapacağız.", + "error_heading": "Lütfen aşağıdakileri düzenleyin:" + } + }, + "customer": { + "account": { + "title": "Hesabım", + "details": "Hesap Bilgileri", + "view_addresses": "Adresleri Görüntüle", + "return": "Hesap Bilgilerine Geri Dön" + }, + "activate_account": { + "title": "Hesabı Etkinleştir", + "subtext": "Hesabınızı etkinleştirmek için parolanızı oluşturun.", + "password": "Parola", + "password_confirm": "Parolayı Onayla", + "submit": "Hesabı Etkinleştir", + "cancel": "Daveti Reddet" + }, + "addresses": { + "title": "Adresleriniz", + "default": "Varsayılan", + "add_new": "Yeni Adres Ekle", + "edit_address": "Adresi düzenle", + "first_name": "Ad", + "last_name": "Soyadı", + "company": "Şirket", + "address1": "Adres", + "address2": "Apartman, daire vb.", + "city": "Şehir", + "country": "Ülke/Bölge", + "province": "İl", + "zip": "Posta Kodu", + "phone": "Telefon", + "set_default": "Varsayılan adres olarak ayarla", + "add": "Adres Ekle", + "update": "Adresi Güncelle", + "cancel": "İptal", + "edit": "Düzenle", + "delete": "Sil", + "delete_confirm": "Bu adresi silmek istediğinizden emin misiniz?" + }, + "login": { + "title": "Oturum aç", + "email": "E-posta", + "password": "Parola", + "forgot_password": "Parolanızı mı unuttunuz?", + "sign_in": "Giriş Yap", + "guest_title": "Misafir olarak devam et", + "guest_continue": "Devam" + }, + "orders": { + "title": "Sipariş Geçmişi", + "order_number": "Sipariş", + "order_number_link": "Sipariş numarası {{ number }}", + "date": "Tarih", + "payment_status": "Ödeme Durumu", + "fulfillment_status": "Gönderim Durumu", + "total": "Toplam", + "none": "Henüz sipariş vermediniz." + }, + "order": { + "title": "{{ name }} siparişi", + "date_html": "Verilme Tarihi: {{ date }}", + "cancelled_html": "Siparişin İptal Edilme Tarihi: {{ date }}", + "cancelled_reason": "Neden: {{ reason }}", + "billing_address": "Fatura Adresi", + "payment_status": "Ödeme Durumu", + "shipping_address": "Kargo Adresi", + "fulfillment_status": "Gönderim Durumu", + "discount": "İndirim", + "shipping": "Kargo", + "tax": "Vergi", + "product": "Ürün", + "sku": "SKU", + "price": "Fiyat", + "quantity": "Adet", + "total": "Toplam", + "fulfilled_at_html": "Gönderilme Tarihi: {{ date }}", + "subtotal": "Alt toplam", + "track_shipment": "Kargoyu takip et" + }, + "recover_password": { + "title": "Parolanızı sıfırlayın", + "email": "E-posta", + "submit": "Gönder", + "cancel": "İptal", + "subtext": "Parolanızı sıfırlamanız için size bir e-posta göndereceğiz.", + "success": "Size parolanızı güncelleme bağlantısının bulunduğu bir e-posta göndereceğiz." + }, + "reset_password": { + "title": "Hesap parolasını sıfırlayın", + "subtext": "{{ email }} için yeni bir parola girin", + "password": "Parola", + "password_confirm": "Parolayı Onayla", + "submit": "Parolayı Sıfırla" + }, + "register": { + "title": "Hesap Oluşturun", + "first_name": "Ad", + "last_name": "Soyadı", + "email": "E-posta", + "password": "Parola", + "submit": "Oluştur" + } + }, + "homepage": { + "general": { + "title": "Ana sayfa" + }, + "onboarding": { + "product_title": "Ürününüzün adı", + "product_description": "Bu alan, ürününüze ilişkin ayrıntıların açıklanması için kullanılır. Müşterilere ürününüzün görünümü ve stili hakkında bilgi verin. Renk, kullanılan malzeme, boyut ve imalat yeri hakkında ayrıntılar ekleyin.", + "collection_title": "Koleksiyonunuzun adı", + "blog_title": "Gönderinizin başlığı", + "blog_excerpt": "Mağazanız henüz blog gönderisi yayınlamadı. Satış sunulan yeni ürünlerden, ipuçlarından veya müşterilerinizle paylaşmak istediğiniz diğer haberlerden bahsetmek için bir blog kullanabilirsiniz. Kendi mağazanız ve blogunuz için fikir ve öneri almak üzere Shopify’ın e-ticaret bloguna göz atabilirsiniz.", + "blog_author": "Yazar adı", + "no_content": "Bu bölümde şu anda içerik yok. Kenar çubuğunu kullanarak bu bölüme içerik ekleyin." + } + }, + "layout": { + "navigation": { + "search": "Ara", + "expand": "genişlet", + "collapse": "daralt", + "menu": "Menü" + }, + "cart": { + "title": "Sepet", + "items_count": { + "one": "ürün", + "other": "ürün" + } + }, + "customer": { + "account": "Hesap", + "log_out": "Oturumu kapat", + "log_in": "Oturum aç", + "create_account": "Hesap oluştur" + }, + "footer": { + "social_platform": "{{ platform }} cihazında {{ name }}" + } + }, + "products": { + "product": { + "regular_price": "Normal fiyat", + "sold_out": "Tükenmiş", + "unavailable": "Kullanım dışı", + "on_sale": "Satış", + "sale_price": "Satış fiyatı", + "quantity": "Adet", + "add_to_cart": "Sepete ekle", + "loader_label": "Ürün, sepetinize ekleniyor", + "back_to_collection": "Şuraya geri dön:", + "vendor": "Satıcı", + "quantity_minimum_message": "Adet 1 veya daha fazla olmalıdır", + "include_taxes": "Vergi dahildir.", + "shipping_policy_html": "Kargo, ödeme sayfasında hesaplanır.", + "unit_price_label": "Birim fiyatı", + "view_cart": "Sepeti görüntüle", + "availability": "Stok durumu", + "from_lowest_price_html": "{{ lowest_price }} yayınından", + "view_in_space": "Kendi alanınızda görüntüleyin", + "view_in_space_label": "Alanınızda görüntüleyin; ürün artırılmış gerçeklik penceresinde yüklenir" + } + }, + "gift_cards": { + "issued": { + "title_html": "İşte {{ shop }} için {{ value }} hediye kartınız!", + "subtext": "Hediye kartınız", + "gift_card_code": "Hediye kartı kodu", + "disabled": "Devre dışı", + "expired": "Sona erdiği tarih: {{ expiry }}", + "active": "Sona ereceği tarih: {{ expiry }}", + "redeem_html": "{{ value }} tutarındaki hediye kartınızı kullanmak için ödeme sayfasında bu kodu girin", + "shop_link": "Alışverişe başla", + "print": "Bu hediye kartını yazdır", + "remaining_html": "{{ balance }} kaldı", + "add_to_apple_wallet": "Apple Wallet'a ekle", + "qr_image_alt": "QR kodu: Hediye kartını kullanmak için tarayın" + } + }, + "store_availability": { + "general": { + "view_store_info": "Mağaza bilgilerini görüntüle", + "check_other_stores": "Diğer mağazalardaki kullanılabilirliği kontrol et", + "pick_up_available": "Teslim alım kullanılabilir", + "pick_up_currently_unavailable": "Teslim alım şu anda kullanılamıyor", + "pick_up_available_at_html": "Teslim alım {{ location_name }} konumunda kullanılabilir", + "pick_up_unavailable_at_html": "Teslim alım {{ location_name }} konumunda şu anda kullanılamıyor" + } + } +} diff --git a/shopify/locales/vi.json b/shopify/locales/vi.json new file mode 100644 index 00000000..79fc54da --- /dev/null +++ b/shopify/locales/vi.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "Chuyển đến nội dung", + "close_modal": "Đóng", + "link_messages": { + "new_window": "Mở trong cửa sổ mới.", + "external": "Mở trang web bên ngoài.", + "new_window_and_external": "Mở trang web bên ngoài trong cửa sổ mới." + }, + "refresh_page": "Khi bạn chọn một mục, toàn bộ trang sẽ được làm mới.", + "selection_help": "Ấn phím Space sau đó ấn phím mũi tên để lựa chọn.", + "unit_price_separator": "trên", + "error": "Lỗi" + }, + "meta": { + "tags": "Gắn thẻ \"{{ tags }}\"", + "page": "Trang {{ page }}" + }, + "404": { + "title": "404 Không tìm thấy trang", + "subtext": "Trang bạn yêu cầu không tồn tại.", + "link": "Tiếp tục mua sắm" + }, + "pagination": { + "previous": "Trang trước", + "next": "Trang sau", + "current_page": "Trang {{ current }}/{{ total }}" + }, + "password_page": { + "opening_soon": "Sắp khai trương", + "login_form_heading": "Vào cửa hàng bằng mật khẩu", + "login_form_password_label": "Mật khẩu", + "login_form_password_placeholder": "Mật khẩu của bạn", + "login_form_submit": "Nhập", + "signup_form_email_label": "Email", + "signup_form_success": "Chúng tôi sẽ gửi email cho bạn ngay trước khi mở cửa!", + "admin_link_html": "Bạn có phải chủ cửa hàng không? Đăng nhập ở đây", + "password_link": "Vào bằng mật khẩu" + }, + "social": { + "share_on_facebook": "Chia sẻ", + "share_on_twitter": "Tweet", + "share_on_pinterest": "Ghim", + "alt_text": { + "share_on_facebook": "Chia sẻ trên Facebook", + "share_on_twitter": "Tweet trên Twitter", + "share_on_pinterest": "Ghim trên Pinterest" + } + }, + "search": { + "no_results": "Thử kiểm tra chính tả hoặc dùng từ khác.", + "empty_search_message": "Không được để trống trường tìm kiếm", + "results_with_count": { + "one": "{{ count }} kết quả cho \"{{ terms }}\"", + "other": "{{ count }} kết quả cho “{{ terms }}”" + }, + "title": "Tìm kiếm trang", + "placeholder": "Tìm kiếm", + "submit": "Gửi", + "close": "Đóng tìm kiếm", + "heading": { + "one": "Kết quả tìm kiếm", + "other": "Kết quả tìm kiếm" + }, + "search_for": "Tìm", + "products": "Sản phẩm", + "loading": "Đang tải", + "clear_search_term": "Xóa cụm từ tìm kiếm", + "number_of_results": "{{ result_number }}/{{ results_count }}", + "number_of_results_found": "Tìm thấy {{ results_count }} kết quả", + "one_result_found": "Tìm thấy 1 kết quả" + }, + "newsletter_form": { + "newsletter_email": "Đăng ký vào danh sách gửi thư của chúng tôi", + "email_placeholder": "Địa chỉ email", + "confirmation": "Cảm ơn bạn đã đăng ký!", + "submit": "Đăng ký" + }, + "filters": { + "show_more": "Hiển thị thêm", + "show_less": "Rút gọn" + }, + "payment": { + "method": "Phương thức thanh toán" + }, + "language": { + "dropdown_label": "Ngôn ngữ" + }, + "country": { + "dropdown_label": "Quốc gia/Vùng" + } + }, + "sections": { + "header": { + "announcement_bar_label": "Thông báo" + }, + "slideshow": { + "next_slide": "Trang chiếu sau", + "previous_slide": "Trang chiếu trước", + "pause_slideshow": "Tạm dừng bản trình chiếu", + "rotate_slideshow": "Phát bản trình chiếu", + "load_slide": "Tải trang chiếu {{ slide_number }}", + "navigation_instructions": "Sử dụng mũi tên trái/phải để điều hướng bản trình chiếu hoặc vuốt sang trái/phải nếu đang dùng thiết bị di động" + }, + "featured_product": { + "title": "Sản phẩm nổi bật", + "gallery_thumbnail_alt": "Tải hình ảnh vào trình xem Thư viện, {{ imageAlt }}", + "video_thumbnail_alt": "Tải và phát video trong trình xem Thư viện, {{ imageAlt }}", + "model_thumbnail_alt": "Tải mô hình 3D vào trình xem Thư viện, {{ imageAlt }}" + }, + "map": { + "address_error": "Lỗi tìm kiếm địa chỉ đó", + "address_no_results": "Không có kết quả cho địa chỉ đó", + "address_query_limit_html": "Bạn đã vượt quá giới hạn sử dụng API của Google. Cân nhắc nâng cấp lên Gói Premium.", + "auth_error_html": "Đã xảy ra sự cố khi xác thực tài khoản Google Maps.", + "section_heading": "Địa điểm" + }, + "video": { + "play": "Phát video {{ video_title }}", + "pause": "Tạm dừng video {{ video_title }}", + "resume": "Tiếp tục video {{ video_title }}", + "close": "Đóng video {{ video_title }}" + } + }, + "blogs": { + "article": { + "view_all": "Xem tất cả", + "view_all_blogs": "Xem tất cả blog", + "all_topics": "Tất cả chủ đề", + "by_author": "của {{ author }}", + "posted_in": "Đăng vào", + "read_more": "Đọc thêm", + "read_more_title": "Đọc thêm: {{ title }}", + "back_to_blog": "Quay lại {{ title }}", + "tags": "Thẻ", + "article_with_count": { + "one": "{{ count }} bài viết", + "other": "{{ count }} bài viết" + } + }, + "comments": { + "title": "Để lại bình luận", + "name": "Tên", + "email": "Email", + "message": "Tin nhắn", + "post": "Đăng bình luận", + "moderated": "Xin lưu ý, bình luận phải được phê duyệt trước khi đăng", + "success_moderated": "Đã đăng bình luận thành công. Chúng tôi sẽ đăng sau chốc lát, khi blog của chúng tôi được kiểm duyệt.", + "success": "Đã đăng bình luận thành công! Cảm ơn bạn!", + "unapproved": "Địa chỉ email đã cung cấp chưa được phê duyệt để đăng bình luận.", + "comments_with_count": { + "one": "{{ count }} bình luận", + "other": "{{ count }} bình luận" + } + } + }, + "cart": { + "general": { + "title": "Giỏ hàng của bạn", + "note": "Thêm ghi chú cho đơn hàng", + "removed_item_html": "Xóa ({{ quantity }}) {{ link }} khỏi giỏ hàng.", + "remove": "Xóa", + "subtotal": "Tổng phụ", + "savings": "Bạn sẽ tiết kiệm", + "taxes_and_shipping_at_checkout": "Thuế và phí vận chuyển được tính khi thanh toán", + "taxes_and_shipping_policy_at_checkout_html": "Thuế và phí vận chuyển được tính khi thanh toán", + "taxes_included_but_shipping_at_checkout": "Đã bao gồm thuế và phí vận chuyển được tính khi thanh toán", + "taxes_included_and_shipping_policy_html": "Đã bao gồm thuế. Phí vận chuyển được tính khi thanh toán.", + "update": "Cập nhật", + "checkout": "Thanh toán", + "empty": "Giỏ hàng hiện đang trống.", + "cookies_required": "Bật cookie để sử dụng giỏ hàng", + "continue_shopping": "Tiếp tục mua sắm", + "cart_error": "Đã xảy ra lỗi khi cập nhật giỏ hàng. Vui lòng thử lại." + }, + "label": { + "discounted_total": "Tổng số tiền sau giảm giá", + "product": "Sản phẩm", + "price": "Giá", + "price_column": "Xem chi tiết giảm giá tại cột Giá.", + "product_details": "Chi tiết sản phẩm", + "quantity": "Số lượng", + "qty": "SL", + "regular_total": "Tổng tiền theo giá thông thường", + "remove": "Xóa {{ product }}", + "total": "Tổng", + "update": "Cập nhật" + }, + "popup": { + "added_to_cart": "Đã thêm vào giỏ hàng của bạn", + "cart_count": { + "one": "{{ count }} mặt hàng", + "other": "{{ count }} mặt hàng" + }, + "product_details": "Chi tiết sản phẩm", + "quantity": "SL", + "quantity_label": "Số lượng: {{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "Xem tất cả", + "view_all_label": "Xem toàn bộ sản phẩm trong bộ sưu tập {{ collection_name }}", + "no_matches": "Rất tiếc, không có sản phẩm trong bộ sưu tập này", + "items_with_count": { + "one": "{{ count }} sản phẩm", + "other": "{{ count }} sản phẩm" + }, + "collection_label": "Bộ sưu tập" + }, + "catalog": { + "title": "Danh mục" + }, + "sorting": { + "title": "Sắp xếp theo" + }, + "filters": { + "title_tags": "Lọc theo", + "all_tags": "Tất cả sản phẩm" + } + }, + "contact": { + "form": { + "name": "Tên", + "email": "Email", + "phone": "Số điện thoại", + "message": "Tin nhắn", + "submit": "Gửi", + "post_success": "Cảm ơn đã liên hệ với chúng tôi. Chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.", + "error_heading": "Vui lòng điều chỉnh các mục sau:" + } + }, + "customer": { + "account": { + "title": "Tài khoản của tôi", + "details": "Chi tiết tài khoản", + "view_addresses": "Xem địa chỉ", + "return": "Quay lại Chi tiết tài khoản" + }, + "activate_account": { + "title": "Kích hoạt tài khoản", + "subtext": "Tạo mật khẩu để kích hoạt tài khoản.", + "password": "Mật khẩu", + "password_confirm": "Xác nhận mật khẩu", + "submit": "Kích hoạt tài khoản", + "cancel": "Từ chối lời mời" + }, + "addresses": { + "title": "Địa chỉ của bạn", + "default": "Mặc định", + "add_new": "Thêm địa chỉ mới", + "edit_address": "Sửa địa chỉ", + "first_name": "Tên", + "last_name": "Họ", + "company": "Công ty", + "address1": "Địa chỉ", + "address2": "Căn hộ, tòa, v.v.", + "city": "Thành phố", + "country": "Quốc gia/Vùng", + "province": "Tỉnh", + "zip": "Mã bưu chính/mã ZIP", + "phone": "Điện thoại", + "set_default": "Đặt làm địa chỉ mặc định", + "add": "Thêm địa chỉ", + "update": "Cập nhật địa chỉ", + "cancel": "Hủy", + "edit": "Sửa", + "delete": "Xóa", + "delete_confirm": "Bạn có chắc chắn muốn xóa địa chỉ này không?" + }, + "login": { + "title": "Thông tin đăng nhập", + "email": "Email", + "password": "Mật khẩu", + "forgot_password": "Bạn quên mật khẩu?", + "sign_in": "Đăng nhập", + "guest_title": "Tiếp tục dưới tư cách khách", + "guest_continue": "Tiếp tục" + }, + "orders": { + "title": "Lịch sử đặt hàng", + "order_number": "Đơn hàng", + "order_number_link": "Đơn hàng số {{ number }}", + "date": "Ngày", + "payment_status": "Trạng thái thanh toán", + "fulfillment_status": "Trạng thái thực hiện", + "total": "Tổng", + "none": "Bạn chưa đặt đơn hàng nào." + }, + "order": { + "title": "Đơn hàng {{ name }}", + "date_html": "Đặt vào {{ date }}", + "cancelled_html": "Đơn hàng đã bị hủy vào {{ date }}", + "cancelled_reason": "Lý do: {{ reason }}", + "billing_address": "Địa chỉ thanh toán", + "payment_status": "Trạng thái thanh toán", + "shipping_address": "Địa chỉ giao hàng", + "fulfillment_status": "Trạng thái thực hiện", + "discount": "Giảm giá", + "shipping": "Vận chuyển", + "tax": "Thuế", + "product": "Sản phẩm", + "sku": "SKU", + "price": "Giá", + "quantity": "Số lượng", + "total": "Tổng", + "fulfilled_at_html": "Đã thực hiện {{ date }}", + "subtotal": "Tổng phụ", + "track_shipment": "Theo dõi lô hàng" + }, + "recover_password": { + "title": "Đặt lại mật khẩu", + "email": "Email", + "submit": "Gửi", + "cancel": "Hủy", + "subtext": "Chúng tôi sẽ gửi email cho bạn để đặt lại mật khẩu.", + "success": "Chúng tôi đã gửi cho bạn email chứa liên kết cập nhật mật khẩu." + }, + "reset_password": { + "title": "Đặt lại mật khẩu tài khoản", + "subtext": "Nhập mật khẩu mới cho {{ email }}", + "password": "Mật khẩu", + "password_confirm": "Xác nhận mật khẩu", + "submit": "Đặt lại mật khẩu" + }, + "register": { + "title": "Tạo tài khoản", + "first_name": "Tên", + "last_name": "Họ", + "email": "Email", + "password": "Mật khẩu", + "submit": "Tạo" + } + }, + "homepage": { + "general": { + "title": "Trang chủ" + }, + "onboarding": { + "product_title": "Tên sản phẩm", + "product_description": "Bạn có thể mô tả chi tiết sản phẩm tại đây. Hãy giới thiệu cho khách hàng về kiểu dáng của sản phẩm. Bổ sung thông tin về màu sắc, chất liệu, kích cỡ và nơi sản xuất.", + "collection_title": "Tên bộ sưu tập của bạn", + "blog_title": "Tiêu đề của bài viết", + "blog_excerpt": "Cửa hàng chưa đăng bài viết blog nào. Bạn có thể sử dụng blog để thông báo ra mắt sản phẩm mới, chai sẻ bí kíp hoặc các tin tức khác với khách hàng. Bạn có thể tìm hiểu blog thương mại điện tử của Shopify để tìm cảm hứng và lời khuyên cho cửa hàng và blog của bạn.", + "blog_author": "Tên tác giả", + "no_content": "Mục này hiện không chứa nội dung nào. Thêm nội dung vào mục này bằng thanh bên." + } + }, + "layout": { + "navigation": { + "search": "Tìm kiếm", + "expand": "mở rộng", + "collapse": "thu nhỏ", + "menu": "Menu" + }, + "cart": { + "title": "Giỏ hàng", + "items_count": { + "one": "mặt hàng", + "other": "các mặt hàng" + } + }, + "customer": { + "account": "Tài khoản", + "log_out": "Đăng xuất", + "log_in": "Đăng nhập", + "create_account": "Tạo tài khoản" + }, + "footer": { + "social_platform": "{{ name }} trên {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "Giá thông thường", + "sold_out": "Hết hàng", + "unavailable": "Không sẵn hàng", + "availability": "Tình trạng còn hàng", + "on_sale": "Giảm giá", + "from_lowest_price_html": "từ {{ lowest_price }}", + "sale_price": "Giá bán", + "quantity": "Số lượng", + "add_to_cart": "Thêm vào giỏ hàng", + "loader_label": "Thêm sản phẩm vào giỏ hàng", + "back_to_collection": "Quay lại", + "vendor": "Nhà cung cấp", + "quantity_minimum_message": "Số lượng phải từ 1 trở lên", + "include_taxes": "Đã bao gồm thuế.", + "shipping_policy_html": "Phí vận chuyển được tính khi thanh toán.", + "unit_price_label": "Đơn giá", + "view_cart": "Xem giỏ hàng", + "view_in_space": "Xem tại không gian của bạn", + "view_in_space_label": "Xem tại không gian của bạn, tải mặt hàng trong cửa số thực tế tăng cường" + } + }, + "gift_cards": { + "issued": { + "title_html": "Đây là thẻ quà tặng {{ value }} của bạn cho {{ shop }}!", + "subtext": "Thẻ quà tặng của bạn", + "gift_card_code": "Mã thẻ quà tặng", + "disabled": "Đã tắt", + "expired": "Đã hết hạn vào ngày {{ expiry }}", + "active": "Hết hạn vào ngày {{ expiry }}", + "redeem_html": "Sử dụng mã này khi thanh toán để đổi thẻ quà tặng {{ value }} của bạn", + "shop_link": "Bắt đầu mua sắm", + "print": "In thẻ quà tặng này", + "remaining_html": "Còn {{ balance }}", + "add_to_apple_wallet": "Thêm vào Apple Wallet", + "qr_image_alt": "Mã QR — quét để đổi thẻ quà tặng" + } + }, + "store_availability": { + "general": { + "view_store_info": "Xem thông tin cửa hàng", + "check_other_stores": "Kiểm tra tình trạng còn hàng tại các cửa hàng khác", + "pick_up_available": "Đã có dịch vụ nhận hàng", + "pick_up_currently_unavailable": "Hiện chưa có dịch vụ nhận hàng", + "pick_up_available_at_html": "Đã có dịch vụ nhận hàng tại {{ location_name }}", + "pick_up_unavailable_at_html": "Hiện chưa có dịch vụ nhận hàng tại {{ location_name }}" + } + } +} diff --git a/shopify/locales/zh-CN.json b/shopify/locales/zh-CN.json new file mode 100644 index 00000000..56948553 --- /dev/null +++ b/shopify/locales/zh-CN.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "跳到内容", + "close_modal": "关闭", + "link_messages": { + "new_window": "在新窗口中打开。", + "external": "打开外部网站。", + "new_window_and_external": "在新窗口中打开外部网站。" + }, + "refresh_page": "选择某一选项会使整个页面刷新。", + "selection_help": "先按空格键,然后使用箭头键来进行选择。", + "unit_price_separator": "单价", + "error": "错误" + }, + "meta": { + "tags": "标记为“{{ tags }}”", + "page": "第 {{ page }} 页" + }, + "404": { + "title": "找不到页面 404", + "subtext": "您请求的页面不存在。", + "link": "继续购物" + }, + "pagination": { + "previous": "上一页", + "next": "下一页", + "current_page": "{{ current }} 页,共 {{ total }} 页" + }, + "password_page": { + "opening_soon": "即将开业", + "login_form_heading": "使用密码进入商店", + "login_form_password_label": "密码", + "login_form_password_placeholder": "您的密码", + "login_form_submit": "输入", + "signup_form_email_label": "电子邮件", + "signup_form_success": "在我们打开之前,我们会向您发送电子邮件!", + "admin_link_html": "您是否是店主?在此处登录", + "password_link": "使用密码进入" + }, + "social": { + "share_on_facebook": "共享", + "share_on_twitter": "发推文", + "share_on_pinterest": "收藏", + "alt_text": { + "share_on_facebook": "在 Facebook 上共享", + "share_on_twitter": "在 Twitter 上发推文", + "share_on_pinterest": "固定在 Pinterest 上" + } + }, + "search": { + "empty_search_message": "搜索字段不能为空", + "title": "搜索我们的网站", + "placeholder": "搜索", + "submit": "提交", + "close": "关闭搜索", + "heading": { + "one": "搜索结果", + "other": "搜索结果" + }, + "search_for": "搜索", + "loading": "正在加载", + "clear_search_term": "清除搜索词", + "number_of_results": "已收到 {{ result_number }} 件,共 {{ results_count }} 件", + "products": "产品", + "number_of_results_found": "找到 {{ results_count }} 个结果", + "one_result_found": "找到 1 个结果", + "no_results": "请尝试检查拼写或使用其他词。", + "results_with_count": { + "one": "“{{ terms }}”有 {{ count }} 条结果", + "other": "“{{ terms }}”有 {{ count }} 条结果" + } + }, + "newsletter_form": { + "newsletter_email": "订阅我们的邮件列表", + "email_placeholder": "电子邮件地址", + "confirmation": "感谢您的订阅!", + "submit": "订阅" + }, + "filters": { + "show_more": "显示详细信息", + "show_less": "隐藏部分内容" + }, + "payment": { + "method": "支付方式" + }, + "language": { + "dropdown_label": "语言" + }, + "country": { + "dropdown_label": "国家/地区" + } + }, + "sections": { + "slideshow": { + "next_slide": "下一张幻灯片", + "previous_slide": "上一张幻灯片", + "pause_slideshow": "暂停幻灯片", + "rotate_slideshow": "播放幻灯片", + "load_slide": "加载幻灯片 {{ slide_number }}", + "navigation_instructions": "使用左/右箭头浏览幻灯片或者在使用移动设备时向左/向右轻扫" + }, + "featured_product": { + "title": "特色产品", + "gallery_thumbnail_alt": "将图片加载到图库查看器,{{ imageAlt }}", + "video_thumbnail_alt": "在图库查看器中加载和播放视频,{{ imageAlt }}", + "model_thumbnail_alt": "将 3D 模型加载到图库查看器,{{ imageAlt }}" + }, + "map": { + "address_error": "查找该地址时出错", + "address_no_results": "未找到该地址的结果", + "address_query_limit_html": "您已超过 Google API 使用限制。考虑升级到高级套餐。", + "auth_error_html": "对您的 Maps 账户进行身份验证时出现问题。", + "section_heading": "地点" + }, + "video": { + "play": "播放 {{ video_title }} 视频", + "pause": "暂停 {{ video_title }} 视频", + "resume": "恢复播放 {{ video_title }} 视频", + "close": "关闭 {{ video_title }} 视频" + }, + "header": { + "announcement_bar_label": "公告" + } + }, + "blogs": { + "article": { + "view_all": "查看全部", + "view_all_blogs": "查看所有博客", + "all_topics": "所有主题", + "by_author": "开发人员:{{ author }}", + "posted_in": "发布于", + "read_more": "阅读详细内容", + "read_more_title": "阅读详细内容:{{ title }}", + "back_to_blog": "返回到 {{ title }}", + "tags": "标签", + "article_with_count": { + "one": "{{ count }} 篇文章", + "other": "{{ count }} 篇文章" + } + }, + "comments": { + "title": "发表评论", + "name": "名称", + "email": "电子邮件", + "message": "消息", + "post": "发布评论", + "moderated": "请注意,评论必须在发布之前获得批准", + "success_moderated": "您的评论已成功发布。由于我们的博客要经过审核,我们会在稍后将其发布。", + "success": "您的评论已成功发布!谢谢!", + "unapproved": "提供的电子邮件地址未获准发布评论。", + "comments_with_count": { + "one": "{{ count }} 条评论", + "other": "{{ count }} 条评论" + } + } + }, + "cart": { + "general": { + "title": "您的购物车", + "note": "为订单添加备注", + "removed_item_html": "已从您的购物车删除了 ({{ quantity }}) {{ link }}。", + "remove": "删除", + "subtotal": "小计", + "savings": "您正在保存", + "taxes_and_shipping_at_checkout": "结账时计算的税金和运费", + "taxes_and_shipping_policy_at_checkout_html": "结账时计算的税金和运费", + "taxes_included_but_shipping_at_checkout": "结账时计算的税金(包含)和运费", + "taxes_included_and_shipping_policy_html": "税金(包含)。结账时计算的运费。", + "update": "更新", + "checkout": "结账", + "empty": "您的购物车当前是空的。", + "cookies_required": "启用 Cookie 以使用购物车", + "continue_shopping": "继续购物", + "cart_error": "更新购物车时出错。请重试。" + }, + "label": { + "discounted_total": "折扣总数", + "product": "产品", + "price": "价格", + "price_column": "有关折扣的详细信息,请参阅价格列。", + "product_details": "产品详细信息", + "quantity": "数量", + "qty": "数量", + "regular_total": "常规总额", + "remove": "删除 {{ product }}", + "total": "总计", + "update": "更新" + }, + "popup": { + "added_to_cart": "已添加到购物车", + "cart_count": { + "one": "{{ count }} 件产品", + "other": "{{ count }} 件商品" + }, + "product_details": "产品详细信息", + "quantity": "数量", + "quantity_label": "数量:{{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "查看全部", + "view_all_label": "查看 {{ collection_name }} 产品系列中的所有产品", + "no_matches": "抱歉,此产品系列中没有产品", + "items_with_count": { + "one": "{{ count }} 个产品", + "other": "{{ count }} 个产品" + }, + "collection_label": "收藏" + }, + "catalog": { + "title": "产品目录" + }, + "sorting": { + "title": "排序方式" + }, + "filters": { + "title_tags": "筛选条件", + "all_tags": "所有产品" + } + }, + "contact": { + "form": { + "name": "名称", + "email": "电子邮件", + "phone": "电话号码", + "message": "消息", + "submit": "发送", + "post_success": "感谢您联系我们。我们会尽快回复您。", + "error_heading": "请调整以下内容:" + } + }, + "customer": { + "account": { + "title": "我的账户", + "details": "账户详细信息", + "view_addresses": "查看地址", + "return": "返回账户详细信息" + }, + "activate_account": { + "title": "激活账户", + "subtext": "创建密码以激活您的账户。", + "password": "密码", + "password_confirm": "确认密码", + "submit": "激活账户", + "cancel": "拒绝邀请" + }, + "addresses": { + "title": "您的地址", + "default": "默认", + "add_new": "添加新地址", + "edit_address": "编辑地址", + "first_name": "名字", + "last_name": "姓", + "company": "公司", + "address1": "地址", + "address2": "公寓、房间号等。", + "city": "城市", + "country": "国家/地区", + "province": "省", + "zip": "邮编/邮政编码", + "phone": "电话", + "set_default": "设为默认地址", + "add": "添加地址", + "update": "更新地址", + "cancel": "取消", + "edit": "编辑", + "delete": "删除", + "delete_confirm": "确定要删除此地址吗?" + }, + "login": { + "title": "登录", + "email": "电子邮件", + "password": "密码", + "forgot_password": "忘记您的密码了?", + "sign_in": "登录", + "guest_title": "以游客身份继续", + "guest_continue": "继续" + }, + "orders": { + "title": "订单历史记录", + "order_number": "订单", + "order_number_link": "订单号 {{ number }}", + "date": "日期", + "payment_status": "付款状态", + "fulfillment_status": "发货状态", + "total": "总计", + "none": "您尚未创建任何订单。" + }, + "order": { + "title": "订单 {{ name }}", + "date_html": "下单日期:{{ date }}", + "cancelled_html": "订单取消日期:{{ date }}", + "cancelled_reason": "原因:{{ reason }}", + "billing_address": "账单地址", + "payment_status": "付款状态", + "shipping_address": "发货地址", + "fulfillment_status": "发货状态", + "discount": "折扣", + "shipping": "发货", + "tax": "税费", + "product": "产品", + "sku": "SKU", + "price": "价格", + "quantity": "数量", + "total": "总计", + "fulfilled_at_html": "已于 {{ date }} 发货", + "subtotal": "小计", + "track_shipment": "跟踪货件" + }, + "recover_password": { + "title": "重置密码", + "email": "电子邮件", + "submit": "提交", + "cancel": "取消", + "subtext": "我们会向您发送电子邮件以重置您的密码。", + "success": "我们已向您发送电子邮件,其中包含更新密码的链接。" + }, + "reset_password": { + "title": "重置账户密码", + "subtext": "输入 {{ email }} 的新密码", + "password": "密码", + "password_confirm": "确认密码", + "submit": "重置密码" + }, + "register": { + "title": "创建账户", + "first_name": "名字", + "last_name": "姓", + "email": "电子邮件", + "password": "密码", + "submit": "创建" + } + }, + "homepage": { + "general": { + "title": "主页" + }, + "onboarding": { + "product_title": "您的产品名称", + "product_description": "此区域用于描述产品的详细信息。向客户介绍产品的外观、体验和风格。添加有关颜色、使用材料、尺寸以及产地的详细信息。", + "collection_title": "您的产品系列的名称", + "blog_title": "您的文章的标题", + "blog_excerpt": "您的商店尚未发布任何博客文章。博客可用于介绍新产品的发布、提示或您想与客户分享的其他消息。您可以查看 Shopify 的电子商务博客,以获得可用于您的商店和博客的灵感以及建议。", + "blog_author": "作者姓名", + "no_content": "此部分目前不包含任何内容。使用侧边栏向此部分添加内容。" + } + }, + "layout": { + "navigation": { + "search": "搜索", + "expand": "展开", + "collapse": "折叠", + "menu": "菜单" + }, + "cart": { + "title": "购物车", + "items_count": { + "one": "件产品", + "other": "件产品" + } + }, + "customer": { + "account": "账户", + "log_out": "登出", + "log_in": "登录", + "create_account": "创建账户" + }, + "footer": { + "social_platform": "{{ platform }} 上的 {{ name }}" + } + }, + "products": { + "product": { + "regular_price": "常规价格", + "sold_out": "售罄", + "unavailable": "不可用", + "on_sale": "销售额", + "sale_price": "销售价格", + "quantity": "数量", + "add_to_cart": "添加到购物车", + "loader_label": "将产品添加到您的购物车", + "back_to_collection": "返回到", + "vendor": "供应商", + "quantity_minimum_message": "数量必须大于或等于 1", + "include_taxes": "税金(包含)。", + "shipping_policy_html": "结账时计算的运费。", + "unit_price_label": "单价", + "view_cart": "查看购物车", + "availability": "供货情况", + "from_lowest_price_html": "来自 {{ lowest_price }}", + "view_in_space": "在您的空间中查看", + "view_in_space_label": "在您的空间中查看,在增强现实窗口中加载产品" + } + }, + "gift_cards": { + "issued": { + "title_html": "这是您获得的 {{ shop }} 的 {{ value }} 礼品卡!", + "subtext": "您的礼品卡", + "gift_card_code": "礼品卡代码", + "disabled": "已禁用", + "expired": "已于 {{ expiry }} 过期", + "active": "过期日期:{{ expiry }}", + "redeem_html": "在结账时使用此代码兑换您的 {{ value }} 礼品卡", + "shop_link": "开始购物", + "print": "打印此礼品卡", + "remaining_html": "剩余 {{ balance }}", + "add_to_apple_wallet": "添加到 Apple Wallet", + "qr_image_alt": "二维码 - 扫描兑换礼品卡" + } + }, + "store_availability": { + "general": { + "view_store_info": "查看商店信息", + "check_other_stores": "查看其他商店的可用服务", + "pick_up_available": "提供取货服务", + "pick_up_currently_unavailable": "目前无法提供取货服务", + "pick_up_available_at_html": "{{ location_name }} 提供取货服务", + "pick_up_unavailable_at_html": "{{ location_name }} 目前无法提供取货服务" + } + } +} diff --git a/shopify/locales/zh-TW.json b/shopify/locales/zh-TW.json new file mode 100644 index 00000000..f500edf0 --- /dev/null +++ b/shopify/locales/zh-TW.json @@ -0,0 +1,432 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin language editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "general": { + "accessibility": { + "skip_to_content": "跳到內容", + "close_modal": "關閉", + "link_messages": { + "new_window": "在新視窗中開啟。", + "external": "開啟外部網站。", + "new_window_and_external": "在新視窗中開啟外部網站。" + }, + "refresh_page": "選擇項目後,整個頁面將重新整理。", + "selection_help": "若要進行選擇,請先按下空白鍵,再按下方向鍵。", + "unit_price_separator": "每", + "error": "錯誤" + }, + "meta": { + "tags": "已套用「{{ tags }}」標籤", + "page": "第 {{ page }} 頁" + }, + "404": { + "title": "404 找不到頁面", + "subtext": "您要求的頁面不存在。", + "link": "繼續購物" + }, + "pagination": { + "previous": "上一頁", + "next": "下一頁", + "current_page": "第 {{ current }} 頁,共 {{ total }} 頁" + }, + "password_page": { + "opening_soon": "即將開張", + "login_form_heading": "以密碼進入商店", + "login_form_password_label": "密碼", + "login_form_password_placeholder": "您的密碼", + "login_form_submit": "進入", + "signup_form_email_label": "電子郵件", + "signup_form_success": "我們會在即將開張前寄電子郵件通知您!", + "admin_link_html": "您是店主嗎?請在此登入", + "password_link": "以密碼進入" + }, + "social": { + "share_on_facebook": "分享", + "share_on_twitter": "發佈 Twitter 推文", + "share_on_pinterest": "加進 Pinterest", + "alt_text": { + "share_on_facebook": "分享至 Facebook", + "share_on_twitter": "在 Twitter 上發佈推文", + "share_on_pinterest": "加入 Pinterest" + } + }, + "search": { + "empty_search_message": "搜尋欄位不可為空白", + "title": "搜尋我們的網站", + "placeholder": "搜尋", + "submit": "提交", + "close": "關閉搜尋", + "heading": { + "one": "搜尋結果", + "other": "搜尋結果" + }, + "search_for": "搜尋", + "loading": "載入中", + "clear_search_term": "清除搜尋詞彙", + "number_of_results": "{{ result_number }} / {{ results_count }}", + "products": "產品", + "number_of_results_found": "找到 {{ results_count }} 項結果", + "one_result_found": "找到 1 項結果", + "no_results": "請嘗試檢查拼字或使用其他字詞。", + "results_with_count": { + "one": "有 {{ count }} 個關於「{{ terms }}」的搜尋結果", + "other": "有 {{ count }} 個關於「{{ terms }}」的搜尋結果" + } + }, + "newsletter_form": { + "newsletter_email": "訂閱我們的電子郵件清單", + "email_placeholder": "電子郵件地址", + "confirmation": "感謝您願意訂閱!", + "submit": "訂閱" + }, + "filters": { + "show_more": "顯示更多", + "show_less": "顯示較少" + }, + "payment": { + "method": "付款方式" + }, + "language": { + "dropdown_label": "語言" + }, + "country": { + "dropdown_label": "國家/地區" + } + }, + "sections": { + "slideshow": { + "next_slide": "下一張投影片", + "previous_slide": "前一張投影片", + "pause_slideshow": "暫停播放投影片", + "rotate_slideshow": "播放投影片", + "load_slide": "載入第 {{ slide_number }} 張投影片", + "navigation_instructions": "使用向左/向右箭頭操作播放投影片。如使用行動裝置,請向左/向右滑動" + }, + "featured_product": { + "title": "精選產品", + "gallery_thumbnail_alt": "將圖片載入圖庫檢視器 {{ imageAlt }}", + "video_thumbnail_alt": "將影片載入圖庫檢視器並播放,{{ imageAlt }}", + "model_thumbnail_alt": "將 3D 模型載入圖庫檢視器 {{ imageAlt }}" + }, + "map": { + "address_error": "尋找此地址時發生錯誤", + "address_no_results": "此地址無結果", + "address_query_limit_html": "您已超出 Google API 使用量限制。請考慮升級為付費方案。", + "auth_error_html": "驗證 Google 地圖帳戶時發生問題。", + "section_heading": "地點" + }, + "video": { + "play": "播放 {{ video_title }} 影片", + "pause": "暫停播放 {{ video_title }} 影片", + "resume": "繼續播放 {{ video_title }} 影片", + "close": "關閉 {{ video_title }} 影片" + }, + "header": { + "announcement_bar_label": "公告" + } + }, + "blogs": { + "article": { + "view_all": "檢視全部", + "view_all_blogs": "檢視所有網誌", + "all_topics": "所有主題", + "by_author": "由 {{ author }}", + "posted_in": "已張貼於", + "read_more": "繼續閱讀", + "read_more_title": "繼續閱讀: {{ title }}", + "back_to_blog": "返回 {{ title }}", + "tags": "標籤", + "article_with_count": { + "one": "{{ count }} 篇文章", + "other": "{{ count }} 篇文章" + } + }, + "comments": { + "title": "發表留言", + "name": "名稱", + "email": "電子郵件", + "message": "訊息", + "post": "貼文留言", + "moderated": "請注意,留言須先通過審核才會發佈", + "success_moderated": "您已成功留言。由於我們的網誌有人管理,因此過一段時間後才會進行發佈。", + "success": "您已成功留言!感謝您!", + "unapproved": "您提供的電子郵件地址尚未獲准使用留言功能。", + "comments_with_count": { + "one": "{{ count }} 則留言", + "other": "{{ count }} 則留言" + } + } + }, + "cart": { + "general": { + "title": "您的購物車", + "note": "新增備註到您的訂單", + "removed_item_html": "已將 ({{ quantity }}) {{ link }} 從您的購物車移除。", + "remove": "移除", + "subtotal": "小計", + "savings": "您將省下", + "taxes_and_shipping_at_checkout": "結帳時計算稅金和運費", + "taxes_and_shipping_policy_at_checkout_html": "結帳時計算稅金和運費", + "taxes_included_but_shipping_at_checkout": "內含稅金,結帳時計算運費", + "taxes_included_and_shipping_policy_html": "內含稅金。結帳時計算運費。", + "update": "更新", + "checkout": "結帳", + "empty": "您的購物車目前沒有商品。", + "cookies_required": "啟用 Cookie 功能即可使用購物車", + "continue_shopping": "繼續購物", + "cart_error": "更新購物車時發生錯誤。請再試一次。" + }, + "label": { + "discounted_total": "折扣後總金額", + "product": "產品", + "price": "價格", + "price_column": "如需折扣詳細資訊,請參見「價格」欄。", + "product_details": "商品詳細資訊", + "quantity": "數量", + "qty": "數量", + "regular_total": "定價總金額", + "remove": "移除 {{ product }}", + "total": "總計", + "update": "更新" + }, + "popup": { + "added_to_cart": "剛剛加入您的購物車", + "cart_count": { + "one": "{{ count }} 件商品", + "other": "{{ count }} 件商品" + }, + "product_details": "商品詳細資訊", + "quantity": "數量", + "quantity_label": "數量:{{ quantity_count }}" + } + }, + "collections": { + "general": { + "view_all": "檢視全部", + "view_all_label": "檢視 {{ collection_name }} 系列的全部產品", + "no_matches": "抱歉,此商品系列中沒有產品", + "items_with_count": { + "one": "{{ count }} 項產品", + "other": "{{ count }} 項產品" + }, + "collection_label": "商品系列" + }, + "catalog": { + "title": "目錄" + }, + "sorting": { + "title": "排序方式" + }, + "filters": { + "title_tags": "篩選條件", + "all_tags": "所有產品" + } + }, + "contact": { + "form": { + "name": "名稱", + "email": "電子郵件", + "phone": "電話號碼", + "message": "訊息", + "submit": "傳送", + "post_success": "感謝您聯絡我們。我們會盡快回覆您。", + "error_heading": "請調整以下內容:" + } + }, + "customer": { + "account": { + "title": "我的帳戶", + "details": "帳戶詳細資訊", + "view_addresses": "檢視地址", + "return": "返回帳戶詳細資訊" + }, + "activate_account": { + "title": "啟用帳戶", + "subtext": "建立密碼以啟用帳戶。", + "password": "密碼", + "password_confirm": "確認密碼", + "submit": "啟用帳戶", + "cancel": "拒絕邀請" + }, + "addresses": { + "title": "您的地址", + "default": "預設", + "add_new": "新增地址", + "edit_address": "編輯地址", + "first_name": "名字", + "last_name": "姓氏", + "company": "公司", + "address1": "地址", + "address2": "公寓、套房等", + "city": "市", + "country": "國家/地區", + "province": "省", + "zip": "郵遞區號", + "phone": "電話", + "set_default": "設為預設地址", + "add": "新增地址", + "update": "更新地址", + "cancel": "取消", + "edit": "編輯", + "delete": "刪除", + "delete_confirm": "是否確定要刪除此地址?" + }, + "login": { + "title": "登入", + "email": "電子郵件", + "password": "密碼", + "forgot_password": "忘記密碼?", + "sign_in": "登入", + "guest_title": "以訪客身分繼續操作", + "guest_continue": "繼續" + }, + "orders": { + "title": "訂單紀錄", + "order_number": "訂單", + "order_number_link": "訂單編號 {{ number }}", + "date": "日期", + "payment_status": "付款狀態", + "fulfillment_status": "訂單出貨狀態", + "total": "總計", + "none": "您尚未下訂任何商品。" + }, + "order": { + "title": "訂單 {{ name }}", + "date_html": "於 {{ date }} 訂購", + "cancelled_html": "已於 {{ date }} 取消訂單", + "cancelled_reason": "原因:{{ reason }}", + "billing_address": "帳單地址", + "payment_status": "付款狀態", + "shipping_address": "運送地址", + "fulfillment_status": "訂單出貨狀態", + "discount": "折扣", + "shipping": "運送", + "tax": "稅金", + "product": "產品", + "sku": "存貨單位 (SKU)", + "price": "價格", + "quantity": "數量", + "total": "總計", + "fulfilled_at_html": "已於 {{ date }} 出貨", + "subtotal": "小計", + "track_shipment": "追蹤貨件" + }, + "recover_password": { + "title": "重設密碼", + "email": "電子郵件", + "submit": "提交", + "cancel": "取消", + "subtext": "我們會寄重設密碼用的電子郵件給您。", + "success": "我們已寄一封電子郵件給您,內有連結,可讓您更新密碼。" + }, + "reset_password": { + "title": "重設帳戶密碼", + "subtext": "輸入 {{ email }} 的新密碼", + "password": "密碼", + "password_confirm": "確認密碼", + "submit": "重設密碼" + }, + "register": { + "title": "建立帳戶", + "first_name": "名字", + "last_name": "姓氏", + "email": "電子郵件", + "password": "密碼", + "submit": "建立" + } + }, + "homepage": { + "general": { + "title": "首頁" + }, + "onboarding": { + "product_title": "產品名稱", + "product_description": "此區域可供您說明產品的詳細資訊。向顧客說明產品的外觀、風格與樣式。新增顏色、用料、尺寸、以及產地等詳細資訊。", + "collection_title": "您的商品系列名稱", + "blog_title": "您的貼文標題", + "blog_excerpt": "您的商店尚未發佈任何部落格貼文。您可以用部落格談談上市的新產品、秘訣或其他想和顧客分享的消息。您可以查看 Shopify 的電子商務部落格,從中獲取靈感和建議,建設您自己的商店和部落格。", + "blog_author": "作者名稱", + "no_content": "此區段目前並無內容。請用側邊欄在此區段新增內容。" + } + }, + "layout": { + "navigation": { + "search": "搜尋", + "expand": "展開", + "collapse": "收合", + "menu": "選單" + }, + "cart": { + "title": "購物車", + "items_count": { + "one": "商品", + "other": "商品" + } + }, + "customer": { + "account": "帳戶", + "log_out": "登出", + "log_in": "登入", + "create_account": "建立帳戶" + }, + "footer": { + "social_platform": "{{ name }} 於 {{ platform }}" + } + }, + "products": { + "product": { + "regular_price": "定價", + "sold_out": "售罄", + "unavailable": "無法供貨", + "on_sale": "銷售額", + "sale_price": "售價", + "quantity": "數量", + "add_to_cart": "加入購物車", + "loader_label": "正在將產品加入您的購物車", + "back_to_collection": "返回", + "vendor": "廠商", + "quantity_minimum_message": "數量必須大於或等於1", + "include_taxes": "內含稅金。", + "shipping_policy_html": "結帳時計算運費。", + "unit_price_label": "單價", + "view_cart": "檢視購物車", + "availability": "供貨情況", + "from_lowest_price_html": "來自 {{ lowest_price }}", + "view_in_space": "在您的空間中檢視", + "view_in_space_label": "在您的空間中檢視,可將商品載入擴增實境視窗" + } + }, + "gift_cards": { + "issued": { + "title_html": "以下是您在 {{ shop }} 的 {{ value }} 禮品卡!", + "subtext": "您的禮品卡", + "gift_card_code": "禮品卡代碼", + "disabled": "已停用", + "expired": "於 {{ expiry }} 到期", + "active": "於 {{ expiry }} 到期", + "redeem_html": "在結帳時使用此代碼,兌換您價值 {{ value }} 元的禮品卡", + "shop_link": "開始購物", + "print": "列印此禮品卡", + "remaining_html": "尚餘 {{ balance }}", + "add_to_apple_wallet": "加入 Apple Wallet", + "qr_image_alt": "QR 條碼 — 掃描以兌換禮品卡" + } + }, + "store_availability": { + "general": { + "view_store_info": "檢視商店資訊", + "check_other_stores": "查看其他商店的可用性", + "pick_up_available": "可提供取貨服務", + "pick_up_currently_unavailable": "目前無法提供取貨服務", + "pick_up_available_at_html": "可提供 {{ location_name }} 的取貨服務", + "pick_up_unavailable_at_html": "目前無法提供 {{ location_name }} 的取貨服務" + } + } +} diff --git a/shopify/sections/404.liquid b/shopify/sections/404.liquid new file mode 100644 index 00000000..ee248a52 --- /dev/null +++ b/shopify/sections/404.liquid @@ -0,0 +1,149 @@ + + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} +{%- assign bg_image = section.settings.image -%} + +{%- capture image -%} +
    +
    + {%- render 'icon-404-pupils' -%} +
    +
    + + + + + + + + + {{- title | default: 'general.404.title' | t -}} + +
    +
    + {%- render 'icon-404-pupils' -%} +
    +
    +{%- endcapture -%} + +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- else -%} +

    {{ 'general.404.title' | t }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- else -%} +

    {{ 'general.404.subtext' | t }}

    + {%- endif -%} +
    + {%- endif -%} + +
    + {{- image -}} +
    + {% comment %}{{ 'general.404.link' | t }}{% endcomment %} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "Not found", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Ups, da ist etwas schief gelaufen" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Hier gibt es nichts zu sehen, gehen Sie bitte weiter" + }, + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#f3587f" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] + } +{% endschema %} diff --git a/shopify/sections/about-us.liquid b/shopify/sections/about-us.liquid new file mode 100644 index 00000000..8a783de6 --- /dev/null +++ b/shopify/sections/about-us.liquid @@ -0,0 +1,145 @@ + + +{%- assign sec_sett = section.settings -%} +{%- assign title = sec_sett.title -%} +{%- assign img_1 = sec_sett.img_on_hover_first -%} +{%- assign img_2 = sec_sett.img_on_hover_second -%} + +
    +
    +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + {%- if img_1.src != blank -%} + + + {{ img_1.alt }} + + {%- endif -%} + {%- if img_2.src != blank -%} + + + {{ img_2.alt }} + + {%- endif -%} +
    + + {%- if section.blocks.size > 0 -%} +
    + {%- for block in section.blocks -%} + {%- assign title = block.settings.title -%} + {%- assign content = block.settings.content -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if content -%} +
    {{ content }}
    + {%- endif -%} +
    + {%- endfor -%} +
    + {%- endif -%} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "About us", + "settings": [ + { + "type": "textarea", + "id": "title", + "label": "Title", + "info": "Need wrap words text or text to see hover image and wrap 🌱", + "default": "Hey, wir sind treatfuls eine unglaublich leckere und vegane 🌱 Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies, die die Snack 🍫 Industrie revolutionieren 💪 wollen." + }, + { + "type": "image_picker", + "id": "img_on_hover_first", + "info": "For text", + "label": "Tooltip Image 1 on link hover" + }, + { + "type": "image_picker", + "id": "img_on_hover_second", + "info": "For text", + "label": "Tooltip Image 2 on link hover" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "article_item", + "name": "Article item", + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title" + }, + { + "type": "textarea", + "id": "content", + "label": "Content" + } + ] + } + ], + "presets": [ + { + "name": "About Us" + } + ] + } +{% endschema %} diff --git a/shopify/sections/advantages.liquid b/shopify/sections/advantages.liquid new file mode 100644 index 00000000..77d17624 --- /dev/null +++ b/shopify/sections/advantages.liquid @@ -0,0 +1,153 @@ + + +{% assign sec_sett = section.settings %} + +{%- capture slider -%} + {%- if section.blocks.size > 0 -%} + + {%- endif -%} +{%- endcapture -%} + + + +
    +
    +
    + {%- if product.metafields.custom.comparison_slider_without_wrap != blank and product.metafields.custom.comparison_slider_with_wrap != blank -%} + {% render 'comparison-slider' %} + {%- endif -%} +
    + {%- if sec_sett.title != blank or sec_sett.subtitle != blank -%} + {%- if sec_sett.title != blank -%} +

    {{- sec_sett.title -}}

    + {%- endif -%} + {%- if sec_sett.subtitle != blank -%} +

    {{- sec_sett.subtitle -}}

    + {%- endif -%} + {%- endif -%} +
    +
    + + {{ slider }} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Advantages", + "settings": [ + { + "type": "checkbox", + "id": "hide_on_mobile", + "label": "Hide on mobile", + "default": false + }, + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Unsere Riegel bieten viele Vorteile" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Hier ist Platz für eine kurze Beschreibung eurer Vorteile." + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "advantage_item", + "name": "Advantage item", + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "text", + "label": "Text" + } + ] + } + ], + "presets": [ + { + "name": "Advantages" + } + ] +} +{% endschema %} diff --git a/shopify/sections/announcement-bar.liquid b/shopify/sections/announcement-bar.liquid new file mode 100644 index 00000000..f466d299 --- /dev/null +++ b/shopify/sections/announcement-bar.liquid @@ -0,0 +1,27 @@ +
    +
    + {{ section.settings.text }} +
    +
    + +{% schema %} +{ + "name": "Announcement Bar", + "enabled_on": { + "groups": ["header"] + }, + "settings": [ + { + "type": "text", + "id": "text", + "label": "Text", + "default": "Announcement Bar" + } + ], + "presets": [ + { + "name": "Announcement Bar" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/sections/article-template.liquid b/shopify/sections/article-template.liquid new file mode 100644 index 00000000..eab2d1dd --- /dev/null +++ b/shopify/sections/article-template.liquid @@ -0,0 +1,17 @@ +
    +

    + {{- article.title -}} +

    + +
    + {{- article.content -}} +
    +
    + + +{% schema %} +{ + "name": "Posts", + "settings": [] +} +{% endschema %} diff --git a/shopify/sections/blog-template.liquid b/shopify/sections/blog-template.liquid new file mode 100644 index 00000000..91234189 --- /dev/null +++ b/shopify/sections/blog-template.liquid @@ -0,0 +1,44 @@ +{% paginate blog.articles by 12 %} +
    +
    +

    + {{- page_title -}} +

    + + {% if blog.tags.size > 0 %} +
    + + + +
    + {% endif %} +
    +
    + + {% for article in blog.articles %} + {{ article.title }} + {% endfor %} + + {% if paginate.pages > 1 %} + {% render 'pagination' %} + {% endif %} +{% endpaginate %} + +{% schema %} +{ + "name": "Blog pages", + "settings": [] +} +{% endschema %} diff --git a/shopify/sections/bundle-product.liquid b/shopify/sections/bundle-product.liquid new file mode 100644 index 00000000..8b561e23 --- /dev/null +++ b/shopify/sections/bundle-product.liquid @@ -0,0 +1,195 @@ +{%- if product.metafields.custom.redirect != blank -%} + +{%- endif -%} + +{%- assign sec_sett = section.settings -%} + +{% comment %} Get product color from Shopify metafields {% endcomment %} +{%- include 'product-field-color' -%} + +{%- style -%} + [data-pdp-bg="primary"], + [data-pdp-bg="primary"] .main-product { + background-color: #dbaaeb; + } + + [data-pdp-bg="secondary"], + [data-pdp-bg="secondary"] .main-product { + background-color: #5359e5; + } + + [data-pdp-bg="tertiary"], + [data-pdp-bg="tertiary"] .main-product, + [data-pdp-bg="tertiary"] .main-product__bg-line { + background-color: #2ac2bd; + } + + [data-pdp-bg="quaternary"], + [data-pdp-bg="quaternary"] .main-product { + background-color: #f3587f; + } + + [data-pdp-bg="quinary"], + [data-pdp-bg="quinary"] .main-product { + background-color: #035d64; + } + + [data-pdp-bg="senary"], + [data-pdp-bg="senary"] .main-product { + background-color: #9c4054; + } + + {% if product.metafields.custom.background_color -%} + .main-product, .header { + background-color: {{ product.metafields.custom.background_color }} !important; + } + + @media screen and (max-width: 991px) { + .product-form { + background-color: {{ product.metafields.custom.background_color }} !important; + } + } + {%- endif -%} + + {%- if product.metafields.custom.accent_color -%} + .main-product .title-bg > span::before, .product-form__button::before{ + background-color: {{ product.metafields.custom.accent_color }} !important; + } + + .header__logo-wrapper { + color: {{ product.metafields.custom.accent_color }} !important; + } + {%- endif -%} +{%- endstyle -%} + +
    + + {%- render 'bundle-product-snippet', underline_word: section.settings.underline_word -%} + + {% comment %} +
    + {%- render 'main-product-images', product: product -%} +
    + +
    + {%- render 'main-product-info', product: product -%} +
    + {% endcomment %} + +
    + {%- render 'icon-triangular-line' -%} +
    + + +
    + +{% unless product == empty %} + +{% endunless %} + + +{% assign current_variant = product.selected_or_first_available_variant %} + + + + +{% schema %} +{ + "name": "Product", + "settings": [ + { + "type": "text", + "id": "background_color", + "label": "Background color", + "info": "[Metafields] Background for products need add one of [ Green, Blue, Purple, Red ]" + }, + { + "type": "text", + "id": "underline_word", + "label": "Word to underline" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle" + }, + { + "type": "text", + "id": "reviews_average_rating", + "label": "Average rating reviews", + "info": "[Metafields] Example - 4.87" + }, + { + "type": "text", + "id": "reviews_quantity_text", + "label": "Quantity of reviews", + "info": "[Metafields] Example - 400 reviews" + }, + { + "type":"collection", + "id":"product_dropdown_1", + "label":"Product Dropdown 1" + }, + { + "type":"collection", + "id":"product_dropdown_2", + "label":"Product Dropdown 2" + }, + { + "type":"product", + "id":"free_product", + "label":"Free Product" + } + ], + "presets": [ + { + "name": "Product", + "category": "Product page" + } + ], + "templates": ["product"] +} +{% endschema %} diff --git a/shopify/sections/cart-count.liquid b/shopify/sections/cart-count.liquid new file mode 100644 index 00000000..98af990d --- /dev/null +++ b/shopify/sections/cart-count.liquid @@ -0,0 +1,7 @@ + + {%- if cart.item_count > 99 -%} + 99+ + {%- else -%} + {{- cart.item_count -}} + {%- endif -%} + \ No newline at end of file diff --git a/shopify/sections/cart-template.liquid b/shopify/sections/cart-template.liquid new file mode 100644 index 00000000..40ae9454 --- /dev/null +++ b/shopify/sections/cart-template.liquid @@ -0,0 +1,219 @@ +
    + {% if cart.item_count > 0 %} +
    +

    {{ 'cart.general.title' | t }}

    +
    + +
    + + + + + + + + + {% for item in cart.items %} + + + + + + + + + + + {% endfor %} + +
    {{ 'cart.label.product' | t }}{{ 'cart.label.price' | t }}{{ 'cart.label.quantity' | t }}{{ 'cart.label.total' | t }}
    +
    + {{ item.title | escape }} +
    +
    + + {% unless item.variant.title contains 'Default' %} +
    + {% for option in item.product.options %} + {{ option }}: {{ item.variant.options[forloop.index0] }}
    + {% endfor %} +
    + {% endunless %} + + {% comment %} + Optional, loop through custom product line items if available + + Line item properties come in as having two parts. The first part will be passed with the default form, + but p.last is the actual custom property and may be blank. If it is, don't show it. + + For more info on line item properties, visit: + - http://docs.shopify.com/support/your-store/products/how-do-I-collect-additional-information-on-the-product-page-Like-for-a-monogram-engraving-or-customization + {% endcomment %} + {%- assign property_size = item.properties | size -%} + {% if property_size > 0 %} +
    + {% for p in item.properties %} + {% unless p.last == blank %} + {{ p.first }}: + + {% comment %} + Check if there was an uploaded file associated + {% endcomment %} + {% if p.last contains '/uploads/' %} + {{ p.last | split: '/' | last }} + {% else %} + {{ p.last }} + {% endif %} + {% endunless %} + {% endfor %} +
    + {% endif %} + +

    + {{ 'cart.general.remove' | t }} +

    +
    + {{ item.price | money }} + + {% for discount in item.discounts %} +
    {{ discount.title }}
    + {% endfor %} + +
    + +
    +
    +
    + + +
    +
    + {% if item.original_line_price != item.line_price %} +
    {{ item.original_line_price | money }} +
    + {% endif %} + +
    + {{ item.line_price | money }} +
    + + {% for discount in item.discounts %} +
    {{ discount.title }}
    + {% endfor %} +
    +
    + + {{ 'cart.general.remove' | t }} + +
    + + +
    + +
    +
    + + +
    + {% else %} +
    +

    {{ 'cart.general.title' | t }}

    +

    {{ 'cart.general.empty' | t }}

    + + {{ 'general.404.link' | t }}{% include 'icon-arrow-right' %} +
    + {% endif %} +
    + +{% schema %} +{ + "name": "Cart page", + "settings": [] +} +{% endschema %} diff --git a/shopify/sections/collection-list.liquid b/shopify/sections/collection-list.liquid new file mode 100644 index 00000000..76949443 --- /dev/null +++ b/shopify/sections/collection-list.liquid @@ -0,0 +1,266 @@ +
    + {% if section.settings.title != blank %} +
    +

    {{ section.settings.title | escape }}

    +
    + {% endif %} + + {% case section.settings.grid %} + {% when 2 %} + {%- assign grid_item_width = 'medium-up--one-half' -%} + {% when 3 %} + {%- assign grid_item_width = 'small--one-half medium-up--one-third' -%} + {% when 4 %} + {%- assign grid_item_width = 'small--one-half medium-up--one-quarter' -%} + {% when 5 %} + {%- assign grid_item_width = 'small--one-half medium-up--one-fifth' -%} + {% endcase %} + +
    +
      + {% for block in section.blocks limit: section.blocks.size %} +
    • + {%- assign collection = collections[block.settings.collection] -%} + {% include 'collection-grid-item', collection: collection %} +
    • + {% endfor %} +
    +
    + + {% if section.blocks.size == 0 %} + {% include 'no-blocks' %} + {% endif %} +
    + + + +{% schema %} +{ + "name": { + "cs": "Seznam kolekcí", + "da": "Kollektionsliste", + "de": "Kategorieliste", + "en": "Collection list", + "es": "Lista de colecciones", + "fi": "Kokoelmaluettelo", + "fr": "Liste des collections", + "it": "Elenco delle collezioni", + "ja": "コレクションリスト", + "ko": "컬렉션 목록", + "nb": "Samlingsliste", + "nl": "Collectielijst", + "pl": "Lista kolekcji", + "pt-BR": "Lista de coleções", + "pt-PT": "Lista de coleções", + "sv": "Kollektionslista", + "th": "รายการคอลเลกชัน", + "tr": "Koleksiyon listesi", + "vi": "Danh sách bộ sưu tập", + "zh-CN": "产品系列列表", + "zh-TW": "商品系列清單" + }, + "class": "index-section", + "max_blocks": 12, + "settings": [ + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Seznam kolekcí", + "da": "Kollektionsliste", + "de": "Kategorieliste", + "en": "Collection list", + "es": "Lista de colecciones", + "fi": "Kokoelmaluettelo", + "fr": "Page de liste des collections", + "it": "Elenco delle collezioni", + "ja": "コレクションリスト", + "ko": "컬렉션 목록", + "nb": "Samlingsliste", + "nl": "Collectielijst", + "pl": "Lista kolekcji", + "pt-BR": "Lista de coleções", + "pt-PT": "Lista de coleções", + "sv": "Kollektionslista", + "th": "รายการคอลเลกชัน", + "tr": "Koleksiyon listesi", + "vi": "Danh sách bộ sưu tập", + "zh-CN": "产品系列列表", + "zh-TW": "商品系列清單" + } + }, + { + "type": "range", + "id": "grid", + "label": { + "cs": "Počet kolekcí na řádek", + "da": "Kollektioner pr. række", + "de": "Kategorien per Reihe", + "en": "Collections per row", + "es": "Colecciones por fila", + "fi": "Kokoelmia per rivi", + "fr": "Collections par rangée", + "it": "Collezioni per riga", + "ja": "行あたりのコレクション数", + "ko": "열 별 컬렉션", + "nb": "Samlinger per rad", + "nl": "Collecties per rij", + "pl": "Liczba kolekcji na wiersz", + "pt-BR": "Coleções por linha", + "pt-PT": "Coleções por linha", + "sv": "Produktserier per rad", + "th": "คอลเลกชันต่อแถว", + "tr": "Satır başına koleksiyon", + "vi": "Số bộ sưu tập trên mỗi hàng", + "zh-CN": "每行产品系列数", + "zh-TW": "每列商品系列數" + }, + "min": 2, + "max": 5, + "step": 1, + "default": 3 + } + ], + "blocks": [ + { + "type": "featured_collection", + "name": { + "cs": "Kolekce", + "da": "Kollektion", + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fi": "Kokoelma", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "ko": "컬렉션", + "nb": "Samling", + "nl": "Collectie", + "pl": "Kolekcja", + "pt-BR": "Coleção", + "pt-PT": "Coleção", + "sv": "Produktserie", + "th": "คอลเลกชัน", + "tr": "Koleksiyon", + "vi": "Bộ sưu tập", + "zh-CN": "收藏", + "zh-TW": "商品系列" + }, + "settings": [ + { + "label": { + "cs": "Kolekce", + "da": "Kollektion", + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fi": "Kokoelma", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "ko": "컬렉션", + "nb": "Samling", + "nl": "Collectie", + "pl": "Kolekcja", + "pt-BR": "Coleção", + "pt-PT": "Coleção", + "sv": "Produktserie", + "th": "คอลเลกชัน", + "tr": "Koleksiyon", + "vi": "Bộ sưu tập", + "zh-CN": "收藏", + "zh-TW": "商品系列" + }, + "id": "collection", + "type": "collection" + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Seznam kolekcí", + "da": "Kollektionsliste", + "de": "Kategorieliste", + "en": "Collection list", + "es": "Lista de colecciones", + "fi": "Kokoelmaluettelo", + "fr": "Page de liste des collections", + "it": "Elenco delle collezioni", + "ja": "コレクションリスト", + "ko": "컬렉션 목록", + "nb": "Samlingsliste", + "nl": "Collectielijst", + "pl": "Lista kolekcji", + "pt-BR": "Lista de coleções", + "pt-PT": "Lista de coleções", + "sv": "Kollektionslista", + "th": "รายการคอลเลกชัน", + "tr": "Koleksiyon listesi", + "vi": "Danh sách bộ sưu tập", + "zh-CN": "产品系列列表", + "zh-TW": "商品系列清單" + }, + "category": { + "cs": "Kolekce", + "da": "Kollektion", + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fi": "Kokoelma", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "ko": "컬렉션", + "nb": "Samling", + "nl": "Collectie", + "pl": "Kolekcja", + "pt-BR": "Coleção", + "pt-PT": "Coleção", + "sv": "Produktserie", + "th": "คอลเลกชัน", + "tr": "Koleksiyon", + "vi": "Bộ sưu tập", + "zh-CN": "收藏", + "zh-TW": "商品系列" + }, + "blocks": [ + { + "type": "featured_collection" + }, + { + "type": "featured_collection" + }, + { + "type": "featured_collection" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/collection.liquid b/shopify/sections/collection.liquid new file mode 100644 index 00000000..5042ad03 --- /dev/null +++ b/shopify/sections/collection.liquid @@ -0,0 +1,171 @@ + + +{% comment %} TODO: Cleanup this section {% endcomment %} +{%- assign collection_sort_by = collection.sort_by | default: collection.default_sort_by -%} +
    +
    +
    + {{ 'collections.sorting.title' | t }} + + + {%- for option in collection.sort_options -%} + {%- if option.value == collection_sort_by -%} + {%- assign collection_sort_by_name = option.name -%} + {%- break -%} + {%- endif -%} + {%- endfor -%} + + + +
    + + +
    + {{- 'collections.sorting.title' | t -}} + + +
    + +
    +
    + {%- for sort_option in collection.sort_options -%} + + {%- endfor -%} +
    +
    +
    +
    +
    + {% if section.settings.title != blank %} +
    +

    {{ section.settings.title | escape }}

    +
    + {% endif %} + + {% case section.settings.grid %} + {% when 2 %} + {%- assign max_height = 530 -%} + {% when 3 %} + {%- assign max_height = 345 -%} + {% when 4 %} + {%- assign max_height = 250 -%} + {% when 5 %} + {%- assign max_height = 195 -%} + {% endcase %} + + {%- assign product_limit = section.settings.items_per_page -%} + +
      + {% for product in collection.products limit: product_limit %} + {%- if product.metafields.custom.hide_product -%} + {%- continue -%} + {%- endif -%} + +
    • + {% render 'product-card-grid', max_height: max_height, product: product, show_vendor: section.settings.show_vendor, index: forloop.index %} +
    • + {% endfor %} +
    + + {% if section.settings.show_view_all %} + + + {% endif %} + +
    +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Collection page", + "class": "index-section", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "default": "Featured collection" + }, + { + "id": "collection", + "type": "collection", + "label": "Collection" + }, + { + "type": "range", + "id": "items_per_page", + "label": "Items per page", + "min": 4, + "max": 48, + "step": 4, + "default": 48 + }, + { + "type": "checkbox", + "id": "show_vendor", + "label": "Show vendor", + "default": false + }, + { + "type": "checkbox", + "id": "show_view_all", + "label": "Show view all", + "default": false + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#f3587f" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#dbaaeb" + } + ], + "presets": [ + { + "name": "Collection page", + } + ] +} +{% endschema %} diff --git a/shopify/sections/compare-big-content.liquid b/shopify/sections/compare-big-content.liquid new file mode 100644 index 00000000..de1c6c6a --- /dev/null +++ b/shopify/sections/compare-big-content.liquid @@ -0,0 +1,105 @@ +{%- assign sec_sett = section.settings -%} +{%- assign title = sec_sett.title -%} +{%- assign img_1 = sec_sett.img_on_hover_first -%} +{%- assign img_2 = sec_sett.img_on_hover_second -%} + +
    +
    +
    +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + {%- if img_1.src != blank -%} + + + {{ img_1.alt }} + + {%- endif -%} + {%- if img_2.src != blank -%} + + + {{ img_2.alt }} + + {%- endif -%} +
    + + {%- if section.blocks.size > 0 -%} +
    + {%- for block in section.blocks -%} + {%- assign title = block.settings.title -%} + {%- assign content = block.settings.content -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if content -%} +
    {{ content }}
    + {%- endif -%} +
    + {%- endfor -%} +
    + {%- endif -%} +
    +
    +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "new-one", + "settings": [ + { + "type": "textarea", + "id": "title", + "label": "Title", + "info": "Need wrap words text or text to see hover image and wrap 🌱", + "default": "Hey, wir sind treatfuls eine unglaublich leckere und vegane 🌱 Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies, die die Snack 🍫 Industrie revolutionieren 💪 wollen." + }, + { + "type": "image_picker", + "id": "img_on_hover_first", + "info": "For text", + "label": "Tooltip Image 1 on link hover" + }, + { + "type": "image_picker", + "id": "img_on_hover_second", + "info": "For text", + "label": "Tooltip Image 2 on link hover" + } + ], + "blocks": [ + { + "type": "article_item", + "name": "Article item", + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title" + }, + { + "type": "textarea", + "id": "content", + "label": "Content" + } + ] + } + ] + } +{% endschema %} diff --git a/shopify/sections/compare-main-product-advantages.liquid b/shopify/sections/compare-main-product-advantages.liquid new file mode 100644 index 00000000..6271e71c --- /dev/null +++ b/shopify/sections/compare-main-product-advantages.liquid @@ -0,0 +1,12 @@ +{% schema %} + { + "name": "Section name", + "settings": [] + } +{% endschema %} + +{% stylesheet %} +{% endstylesheet %} + +{% javascript %} +{% endjavascript %} \ No newline at end of file diff --git a/shopify/sections/compare-main-product-ingredients.liquid b/shopify/sections/compare-main-product-ingredients.liquid new file mode 100644 index 00000000..47b9d752 --- /dev/null +++ b/shopify/sections/compare-main-product-ingredients.liquid @@ -0,0 +1,101 @@ +{%- assign sec_sett = section.settings -%} +{%- assign field_product = product.metafields.my_fields -%} + +{%- assign ingredient_counter = 0 -%} +{%- for number in (1..3) -%} +{%- capture ingredient_image -%}ingredients_image_{{ number }}{%- endcapture -%} +{%- capture ingredient_svg -%}ingredients_circle_{{ number }}{%- endcapture -%} + +{%- if field_product[ingredient_image] and field_product[ingredient_svg] -%} +{%- assign ingredient_counter = ingredient_counter | plus: 1 -%} +{%- break -%} +{%- endif -%} +{%- endfor -%} + +{%- capture slider -%} +{%- if ingredient_counter > 0 -%} + +{%- endif -%} +{%- endcapture -%} + +
    +
    + {%- if field_product.ingredients_title != blank -%} +

    {{- field_product.ingredients_title -}}

    + {%- elsif sec_sett.title != blank -%} +

    {{- sec_sett.title -}}

    + {%- endif -%} + + {{ slider }} + + + +
    + {{ product.metafields.custom.ingredients }} +
    + +
    +
    + {%- render 'icon-triangular-line' -%} +
    +
    + + + + +{% schema %} +{ + "name": "Product ingredients", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Wir verwenden nur beste Zutaten" + } + ] +} +{% endschema %} diff --git a/shopify/sections/compare-main-product.liquid b/shopify/sections/compare-main-product.liquid new file mode 100644 index 00000000..073415eb --- /dev/null +++ b/shopify/sections/compare-main-product.liquid @@ -0,0 +1,240 @@ +{%- if product.metafields.custom.redirect != blank -%} + +{%- endif -%} + +{%- assign sec_sett = section.settings -%} + +{% comment %} Get product color from Shopify metafields {% endcomment %} +{%- include 'product-field-color' -%} + +{%- style -%} + [data-pdp-bg="primary"], + [data-pdp-bg="primary"] .main-product { + background-color: #dbaaeb; + } + + [data-pdp-bg="secondary"], + [data-pdp-bg="secondary"] .main-product { + background-color: #5359e5; + } + + [data-pdp-bg="tertiary"], + [data-pdp-bg="tertiary"] .main-product, + [data-pdp-bg="tertiary"] .main-product__bg-line { + background-color: #2ac2bd; + } + + [data-pdp-bg="quaternary"], + [data-pdp-bg="quaternary"] .main-product { + background-color: #f3587f; + } + + [data-pdp-bg="quinary"], + [data-pdp-bg="quinary"] .main-product { + background-color: #035d64; + } + + [data-pdp-bg="senary"], + [data-pdp-bg="senary"] .main-product { + background-color: #9c4054; + } + + {% if product.metafields.custom.background_color -%} + .main-product, .header { + background-color: {{ product.metafields.custom.background_color }} !important; + } + + @media screen and (max-width: 991px) { + .product-form { + background-color: {{ product.metafields.custom.background_color }} !important; + } + } + {%- endif -%} + + {%- if product.metafields.custom.accent_color -%} + .main-product .title-bg > span::before, .product-form__button::before{ + background-color: {{ product.metafields.custom.accent_color }} !important; + } + + .header__logo-wrapper { + color: {{ product.metafields.custom.accent_color }} !important; + } + {%- endif -%} +{%- endstyle -%} + +
    + + + + {%- render 'product-compare', underline_word: section.settings.underline_word -%} + + + + + {% comment %} +
    + {%- render 'main-product-images', product: product -%} +
    + +
    + {%- render 'main-product-info', product: product -%} +
    + {% endcomment %} + + + +
    + {%- render 'icon-triangular-line' -%} +
    + + +
    + +{% unless product == empty %} + +{% endunless %} + + +{% assign current_variant = product.selected_or_first_available_variant %} + + + + +{% schema %} +{ + "name": "Product", + "settings": [ + { + "type": "text", + "id": "background_color", + "label": "Background color", + "info": "[Metafields] Background for products need add one of [ Green, Blue, Purple, Red ]" + }, + { + "type": "text", + "id": "underline_word", + "label": "Word to underline" + }, + { + "type": "text", + "id": "reviews_average_rating", + "label": "Average rating reviews", + "info": "[Metafields] Example - 4.87" + }, + { + "type": "text", + "id": "reviews_quantity_text", + "label": "Quantity of reviews", + "info": "[Metafields] Example - 400 reviews" + }, + { + "type":"product", + "id":"product0", + "label":"1st Product" + }, + { + "type":"text", + "id":"pro_title0", + "label":"Product Title" + }, + { + "type":"text", + "id":"bar_qty0", + "label":"Product Riegel Quantity" + }, + { + "type":"text", + "id":"discount0", + "label":"Product Discount" + }, + + + { + "type":"product", + "id":"product1", + "label":"2st Product" + }, + { + "type":"text", + "id":"pro_title1", + "label":"Product Title" + }, + { + "type":"text", + "id":"bar_qty1", + "label":"Product Riegel Quantity" + }, + { + "type":"text", + "id":"discount1", + "label":"Product Discount" + }, + + { + "type":"product", + "id":"product2", + "label":"3rd Product" + }, + { + "type":"text", + "id":"pro_title2", + "label":"Product Title" + }, + { + "type":"text", + "id":"bar_qty2", + "label":"Product Riegel Quantity" + } + ], + "presets": [ + { + "name": "Product", + "category": "Product page" + } + ], + "templates": ["product"] +} +{% endschema %} diff --git a/shopify/sections/compare-product-reviews.liquid b/shopify/sections/compare-product-reviews.liquid new file mode 100644 index 00000000..6e0abb8e --- /dev/null +++ b/shopify/sections/compare-product-reviews.liquid @@ -0,0 +1,94 @@ +{% comment %} TODO: Clean this section {% endcomment %} + +
    +
    +
    + {%- if section.settings.underline_word != blank -%} + {%- assign title_without_word = section.settings.title | remove: section.settings.underline_word -%} +

    {{ title_without_word }}{{ section.settings.underline_word }}

    + {%- else -%} +

    {{ section.settings.title }}

    + {%- endif -%} +
    + {% render 'judgeme_widgets', widget_type: 'judgeme_featured_carousel', concierge_install: false %} +
    + {% render 'judgeme_widgets', widget_type: 'judgeme_review_widget', concierge_install: false, product: product %} +
    +
    + + +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "Product Reviews", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title" + }, + { + "type": "text", + "id": "underline_word", + "label": "Word to underline" + }, + { + "id": "text-box", + "type": "text", + "label": "Heading", + "default": "Title" + }, + { + "id": "link", + "type": "url", + "label": "Button link" + }, + { + "id": "linktext", + "type": "text", + "label": "Button text", + "default": "Click Here" + } + ], + "blocks": [ + { + "type": "text", + "name":"Reviews", + "settings": [ + { + "type": "text", + "id": "name", + "label": "Name" + }, + { + "type": "text", + "id": "review_title", + "label": "Review Title" + }, + { + "type": "textarea", + "id": "review_content", + "label": "Review" + } + ] + } + ] + + + } +{% endschema %} + +{% stylesheet %} +{% endstylesheet %} + +{% javascript %} +{% endjavascript %} \ No newline at end of file diff --git a/shopify/sections/comparison-table.liquid b/shopify/sections/comparison-table.liquid new file mode 100644 index 00000000..c76de114 --- /dev/null +++ b/shopify/sections/comparison-table.liquid @@ -0,0 +1,121 @@ + + +
    +
    +
    +
    +

    {{ section.settings.title }}

    +
    + + {% content_for 'blocks', closest.product: section.settings.product %} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Comparison Table", + "max_blocks": 1, + "settings": [ + { + "type": "header", + "content": "Content" + }, + { + "type": "product", + "id": "product", + "label": "Product" + }, + { + "type": "text", + "id": "title", + "label": "Title" + }, + { + "type": "text", + "id": "footer_note", + "label": "Footer Note" + }, + { + "type": "header", + "content": "Layout" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + }, + { + "type": "header", + "content": "Layout" + }, + { + "type": "range", + "id": "padding_top", + "label": "Padding Top", + "default": 80, + "min": 0, + "max": 100, + "step": 5 + }, + { + "type": "range", + "id": "padding_bottom", + "label": "Padding Bottom", + "default": 40, + "min": 0, + "max": 100, + "step": 5 + } + ], + "blocks": [ + { + "type": "table", + } + ], + "presets": [ + { + "name": "Comparison Table" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/sections/contact-form.liquid b/shopify/sections/contact-form.liquid new file mode 100644 index 00000000..dee97a3b --- /dev/null +++ b/shopify/sections/contact-form.liquid @@ -0,0 +1,132 @@ + + +
    +
    +
    + {% form 'contact' %} +
    + {%- if section.settings.title != blank or section.settings.subtitle != blank -%} + {%- if section.settings.title -%} +

    {{ section.settings.title }}

    + {%- endif -%} + + {% if form.posted_successfully? %} +
    +

    {{ 'contact.form.post_success_html' | t }}

    + + + {{ 'contact.form.back_to_home' | t }} + +
    + {% else %} + {%- if section.settings.subtitle -%} +
    {{ section.settings.subtitle }}
    + {%- endif -%} + {% endif %} + {%- endif -%} +
    + +
    +
    + {% unless form.posted_successfully? %} +
    + {%- if form.errors -%} +
    + {{ form.errors | default_errors }} +
    + {%- endif -%} + + {% content_for 'blocks' %} +
    + + + {% endunless %} +
    +
    + {% endform %} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Contact form", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "default": "Contact us" + }, + { + "type": "richtext", + "id": "subtitle", + "label": "Subtitle", + "default": "

    We're here to help you

    " + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "@theme", + }, + { + "type": "group", + }, + { + "type": "form-input", + }, + { + "type": "heading", + } + ], + "presets": [ + { + "name": "Contact form" + } + ] +} +{% endschema %} diff --git a/shopify/sections/custom-content.liquid b/shopify/sections/custom-content.liquid new file mode 100644 index 00000000..d63f030f --- /dev/null +++ b/shopify/sections/custom-content.liquid @@ -0,0 +1,4423 @@ +
    + {% if section.settings.title != blank %} +
    +

    {{ section.settings.title | escape }}

    +
    + {% endif %} + +
    + {%- assign block_width_mobile = '' -%} + + {% for block in section.blocks %} + {% case block.settings.width %} + {% when '25%' %} + {%- assign max_height = 250 -%} + {%- assign block_width = 'medium-up--one-quarter' -%} + {%- assign block_width_mobile = 'small--one-half' -%} + {% when '33%' %} + {%- assign max_height = 345 -%} + {%- assign block_width = 'medium-up--one-third' -%} + {%- assign block_width_mobile = 'small--one-half' -%} + {% when '50%' %} + {%- assign max_height = 530 -%} + {%- assign block_width = 'medium-up--one-half' -%} + {%- assign block_width_mobile = 'small--one-half' -%} + {% when '66%' %} + {%- assign max_height = 720 -%} + {%- assign block_width = 'two-thirds' -%} + {% when '75%' %} + {%- assign max_height = 810 -%} + {%- assign block_width = 'three-quarters' -%} + {% when '100%' %} + {%- assign max_height = 1090 -%} + {%- assign block_width = 'one-whole' -%} + {% endcase %} + + {%- if block.type == 'blog' or block.type == 'article' -%} + {%- assign block_width_mobile = 'small--one-whole' -%} + {%- endif -%} + + {% if block.type == 'image' %} + {% capture img_id %}CustomImage--{{ forloop.index }}-{{ block.settings.image.id }}{% endcapture %} + {% capture img_wrapper_id %}CustomImageWrapper--{{ forloop.index }}-{{ block.settings.image.id }}{% endcapture %} + + {% unless block.settings.image == blank %} + {% include 'image-style', image: block.settings.image, height: max_height, wrapper_id: img_wrapper_id, img_id: img_id %} + {% endunless %} + {% endif %} + +
    +
    + {% case block.type %} + {% when 'image' %} + {% if block.settings.image != blank %} + {%- assign img_url = block.settings.image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} +
    + {{ block.settings.image.alt | escape }} +
    + + {% else %} + {{ 'image' | placeholder_svg_tag: 'placeholder-svg' }} + {% endif %} + {% when 'text' %} +
    + {% if block.settings.title != blank %} +

    {{ block.settings.title | escape }}

    + {% endif %} + {% if block.settings.text != blank %} +
    {{ block.settings.text }}
    + {% endif %} +
    + {% when 'video' %} +
    + {% if block.settings.video_url == blank %} + + {% else %} + {% if block.settings.video_url.type == "youtube" %} + + {% endif %} + {% if block.settings.video_url.type == "vimeo" %} + + {% endif %} + {% endif %} +
    + {% when 'product' %} + {%- assign product = all_products[block.settings.product] -%} + {% if product.title.size > 0 %} + {% include 'product-card-grid', max_height: max_height, product: product %} + {% else %} + {% comment %} + No product yet. Show onboarding one. + {% endcomment %} + + {% endif %} + {% when 'collection' %} + {%- assign collection = collections[block.settings.collection] -%} + {% include 'collection-grid-item', collection: collection %} + {% when 'html' %} + {% if block.settings.code != blank %} + {{ block.settings.code }} + {% endif %} + {%- when 'link_list' -%} + {%- assign custom_linklist = block.settings.menu -%} + + + {%- when 'blog' -%} + {%- assign blog = blogs[block.settings.blog] -%} +
    + {%- if block.settings.cover_image -%} + {%- assign img = block.settings.cover_image -%} + {%- capture img_id -%}ArticleImage-{{ img.id }}{%- endcapture -%} + {%- capture img_wrapper_id -%}ArticleImageWrapper-{{ img.id }}{%- endcapture -%} + {%- assign img_url = img | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} + + {% include 'image-style', image: img, height: 600, wrapper_id: img_wrapper_id, img_id: img_id %} + + + {%- else -%} + + {%- endif -%} + + {%- if block.settings.description != blank -%} +
    {{ block.settings.description }}
    + {%- endif -%} + + {%- if block.settings.show_number_articles -%} + {%- assign number_of_articles = blog.articles_count | default: 0 -%} + {{ 'blogs.article.article_with_count' | t: count: number_of_articles }} + {%- endif -%} +
    + {%- when 'article' -%} + {%- assign article = articles[block.settings.article] -%} + {%- assign cover_image = block.settings.cover_image -%} + + {%- if article != empty -%} +
    + + {%- if article.image and cover_image != 'none' -%} + {%- capture img_id -%}ArticleImage-{{ article.image.id }}{%- endcapture -%} + {%- capture img_wrapper_id -%}ArticleImageWrapper-{{ article.image.id }}{%- endcapture -%} + {%- assign img_url = article.image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} + + {% render 'image-style', image: article.image, height: 600, wrapper_id: img_wrapper_id, img_id: img_id %} + + {%- style -%} + #Article-{{ article.image.id }} .article__link:not([disabled]):hover .article__grid-image-wrapper::before, + #Article-{{ article.image.id }} .article__link:focus .article__grid-image-wrapper::before { + padding-top:{{ 1 | divided_by: article.image.aspect_ratio | times: 100 }}%; + } + {%- endstyle -%} + +
    +
    + +
    +
    + +
    + {%- endif -%} + +

    {{ article.title }}

    + + + {%- if block.settings.show_author or block.settings.show_date -%} + + {%- endif -%} + +
    + {%- if article.excerpt.size > 0 -%} + {{ article.excerpt }} + {%- else -%} + {{ article.content | strip_html | truncate: 150 }} + {%- endif -%} +
    + + {%- if article.tags.size > 0 -%} + + {%- endif -%} + + +
    + {%- else -%} +
    + + {%- if article.image and cover_image != 'none' -%} +
    +
    + {{ 'image' | placeholder_svg_tag: 'placeholder-svg' }} +
    +
    + {%- endif -%} + +

    {{ 'homepage.onboarding.blog_title' | t }}

    +
    + + {%- if block.settings.show_author or block.settings.show_date -%} + + {%- endif -%} + +
    {{ 'homepage.onboarding.blog_excerpt' | t }}
    + + +
    + {%- endif -%} + {% endcase %} +
    +
    + + {% endfor %} +
    + + {% if section.blocks.size == 0 %} + {% include 'no-blocks' %} + {% endif %} +
    + + + +{% schema %} +{ + "name": { + "cs": "Vlastní obsah", + "da": "Tilpasset indhold", + "de": "Personalisierter Content", + "en": "Custom content", + "es": "Contenido personalizado", + "fi": "Mukautettu sisältö", + "fr": "Contenu personnalisé", + "it": "Contenuto personalizzato", + "ja": "コンテンツをカスタムする", + "ko": "사용자 지정 콘텐츠", + "nb": "Tilpasset innhold", + "nl": "Aangepaste content", + "pl": "Zawartość niestandardowa", + "pt-BR": "Conteúdo personalizado", + "pt-PT": "Conteúdo personalizado", + "sv": "Anpassat innehåll", + "th": "เนื้อหาแบบกำหนดเอง", + "tr": "Özel içerik", + "vi": "Nội dung tùy chỉnh", + "zh-CN": "自定义内容", + "zh-TW": "自訂內容" + }, + "class": "index-section", + "settings": [ + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Vlastní obsah", + "da": "Tilpasset indhold", + "de": "Personalisierter Content", + "en": "Custom content", + "es": "Contenido personalizado", + "fi": "Mukautettu sisältö", + "fr": "Contenu personnalisé", + "it": "Contenuto personalizzato", + "ja": "コンテンツをカスタムする", + "ko": "사용자 지정 콘텐츠", + "nb": "Tilpasset innhold", + "nl": "Aangepaste content", + "pl": "Zawartość niestandardowa", + "pt-BR": "Conteúdo personalizado", + "pt-PT": "Conteúdo personalizado", + "sv": "Anpassat innehåll", + "th": "เนื้อหาแบบกำหนดเอง", + "tr": "Özel içerik", + "vi": "Nội dung tùy chỉnh", + "zh-CN": "自定义内容", + "zh-TW": "自訂內容" + } + } + ], + "blocks": [ + { + "type": "text", + "name": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "settings": [ + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Informujte o své značce", + "da": "Fortæl om dit brand", + "de": "Erzähle von deiner Marke", + "en": "Talk about your brand", + "es": "Habla de tu marca", + "fi": "Kerro brändistäsi", + "fr": "Parlez de votre marque", + "it": "Parla del tuo brand", + "ja": "あなたのブランドについて語る", + "ko": "브랜드에 대해 이야기하기", + "nb": "Snakk om merkevaren din", + "nl": "Vertel over je merk", + "pl": "Opowiedz o swojej marce", + "pt-BR": "Fale sobre a sua marca", + "pt-PT": "Fale sobre a sua marca", + "sv": "Prata om ditt varumärke", + "th": "พูดถึงแบรนด์ของคุณ", + "tr": "Markanızdan bahsedin", + "vi": "Chia sẻ về thương hiệu của bạn", + "zh-CN": "介绍您的品牌", + "zh-TW": "描述您的品牌" + } + }, + { + "type": "richtext", + "id": "text", + "label": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "default": { + "cs": "

    Informujte zákazníky prostřednictvím tohoto textu o své značce. Zároveň můžete popsat některý z produktů, oznámit důležité informace nebo přivítat zákazníky ve svém obchodě.

    ", + "da": "

    Brug denne tekst til at dele oplysninger om dit brand med dine kunder. Beskriv et produkt, del meddelelser, eller byd kunder velkommen til din butik.

    ", + "de": "

    Hier kannst du mehr über deine Marke erzählen. Beschreibe ein Produkt, kündige etwas an oder erstelle eine Willkommensnachricht für deine Kunden.

    ", + "en": "

    Use this text to share information about your brand with your customers. Describe a product, share announcements, or welcome customers to your store.

    ", + "es": "

    Usa este texto para compartir información sobre tu marca con tus clientes. Describe un producto, comparte anuncios o recibe clientes en tu tienda.

    ", + "fi": "

    Tämän tekstin avulla voit jakaa brändiäsi koskevia tietoja asiakkaille. Kuvaile tuotetta, jaa ilmoituksia tai toivota asiakkaat tervetulleiksi kauppaasi.

    ", + "fr": "

    Utilisez ce texte pour partager des informations sur votre marque. Décrivez un produit, partagez des annonces, ou souhaitez la bienvenue à vos clients.

    ", + "it": "

    Utilizza questo testo per condividere le informazioni sul tuo brand con i tuoi clienti. Descrivi un prodotto, condividi gli annunci o dai il benvenuto ai clienti nel tuo negozio.

    ", + "ja": "

    このテキストを使用して、あなたのブランドに関する情報をお客様と共有します。商品を説明したり、告知の共有をしたり、あるいはあなたのストアのお客様を歓迎します。

    ", + "ko": "

    이 텍스트를 사용하여 고객과 브랜드에 대한 정보를 공유하십시오. 제품 설명, 공지 사항 공유 또는 고객의 스토어 방문을 환영합니다.

    ", + "nb": "

    Bruk denne teksten for å dele informasjon om merkevaren med kundene dine. Beskriv et produkt, del kunngjøringer eller ønsk kunder velkommen til butikken din.

    ", + "nl": "

    Gebruik deze tekst om informatie over je merk te delen met je klanten. Beschrijf een product, deel aankondigingen of verwelkom klanten in je winkel.

    ", + "pl": "

    Użyj tego tekstu, aby udostępnić klientom informacje o swojej marce. Opisz produkt, udostępnij ogłoszenia lub przywitaj klientów w swoim sklepie.

    ", + "pt-BR": "

    Use este texto para compartilhar informações sobre sua marca com seus clientes. Descreva um produto, compartilhe comunicado ou dê boas-vindas aos clientes em sua loja.

    ", + "pt-PT": "

    Utilize este texto para partilhar informações sobre a sua marca com seus clientes. Descreva um produto, partilhe comunicados ou receba clientes na sua loja.

    ", + "sv": "

    Använd den här texten för att dela information om ditt varumärke med dina kunder. Beskriv en produkt, dela meddelanden eller välkomna kunder till din butik.

    ", + "th": "

    ใช้ข้อความนี้ในการแชร์ข้อมูลเกี่ยวกับแบรนด์ของคุณกับลูกค้าของคุณ อธิบายคุณสมบัติของสินค้า แชร์ประกาศ หรือต้อนรับลูกค้าสู่ร้านค้าของคุณ

    ", + "tr": "

    Müşterilerinizle markanız hakkında bilgi paylaşmak için bu metni kullanın. Ürün açıklaması girin, duyuru paylaşın veya mağazanıza gelen müşterileri karşılayın.

    ", + "vi": "

    Sử dụng văn bản này để chia sẻ thông tin về thương hiệu của bạn với khách hàng. Mô tả sản phẩm, chia sẻ thông báo hoặc chào mừng khách hàng tới cửa hàng của bạn.

    ", + "zh-CN": "

    使用此文本与您的客户分享有关您品牌的信息。描述产品、分享公告或欢迎客户访问您的商店。

    ", + "zh-TW": "

    您可以用這段文字和顧客分享品牌資訊、描述產品、分享公告,或歡迎顧客光臨您的商店。

    " + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "50%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "center", + "options": [ + { + "value": "top-middle", + "label": { + "cs": "Nahoru", + "da": "Top", + "de": "Oben", + "en": "Top", + "es": "Superior", + "fi": "Ylös", + "fr": "Haut", + "it": "In alto", + "ja": "上", + "ko": "위쪽", + "nb": "Topp", + "nl": "Boven", + "pl": "Do góry", + "pt-BR": "Acima", + "pt-PT": "Acima", + "sv": "Högst upp", + "th": "ด้านบน", + "tr": "Üst", + "vi": "Bên trên", + "zh-CN": "顶部", + "zh-TW": "頂部" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Al centro", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dolů", + "da": "Bund", + "de": "Unten", + "en": "Bottom", + "es": "Inferior", + "fi": "Alas", + "fr": "Bas", + "it": "In basso", + "ja": "下", + "ko": "아래쪽", + "nb": "Bunn", + "nl": "Onder", + "pl": "Do dołu", + "pt-BR": "Abaixo", + "pt-PT": "Abaixo", + "sv": "Längst ner", + "th": "ด้านล่าง", + "tr": "Alt", + "vi": "Bên dưới", + "zh-CN": "底部", + "zh-TW": "底部" + } + } + ] + }, + { + "type": "select", + "id": "align_text", + "label": { + "cs": "Vodorovné zarovnání", + "da": "Vandret justering", + "de": "Horizontale Ausrichtung", + "en": "Horizontal alignment", + "es": "Alineación horizontal", + "fi": "Vaakasuora tasaus", + "fr": "Alignement horizontal", + "it": "Allineamento orizzontale", + "ja": "水平アラインメント", + "ko": "가로 정렬", + "nb": "Horisontal justering", + "nl": "Horizontaal uitlijnen", + "pl": "Wyrównanie w poziomie", + "pt-BR": "Alinhamento horizontal", + "pt-PT": "Alinhamento horizontal", + "sv": "Horisontell justering", + "th": "การจัดวางแนวนอน", + "tr": "Yatay hizalama", + "vi": "Căn ngang", + "zh-CN": "水平对齐", + "zh-TW": "水平對齊" + }, + "default": "left", + "options": [ + { + "value": "left", + "label": { + "cs": "Doleva", + "da": "Venstre", + "de": "Links", + "en": "Left", + "es": "Izquierda", + "fi": "Vasen", + "fr": "Gauche", + "it": "Sinistra", + "ja": "左", + "ko": "왼쪽", + "nb": "Venstre", + "nl": "Links", + "pl": "Do lewej", + "pt-BR": "Esquerda", + "pt-PT": "Esquerda", + "sv": "Vänster", + "th": "ด้านซ้าย", + "tr": "Sol", + "vi": "Bên trái", + "zh-CN": "左侧", + "zh-TW": "左方" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "Centreret", + "de": "Mittig", + "en": "Centered", + "es": "Centrada", + "fi": "Keskitetty", + "fr": "Centré", + "it": "Centrato", + "ja": "中央揃え", + "ko": "센터 맞추기", + "nb": "Sentrert", + "nl": "Gecentreerd", + "pl": "Wyśrodkowane", + "pt-BR": "Centralizado", + "pt-PT": "Centrado", + "sv": "Centrera", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Giữa", + "zh-CN": "居中", + "zh-TW": "置中" + } + }, + { + "value": "right", + "label": { + "cs": "Doprava", + "da": "Højre", + "de": "Rechts", + "en": "Right", + "es": "Derecha", + "fi": "Oikea", + "fr": "Droite", + "it": "Destra", + "ja": "右", + "ko": "오른쪽", + "nb": "Høyre", + "nl": "Rechts", + "pl": "Do prawej", + "pt-BR": "Direita", + "pt-PT": "Direita", + "sv": "Höger", + "th": "ด้านขวา", + "tr": "Sağ", + "vi": "Bên phải", + "zh-CN": "右侧", + "zh-TW": "右方" + } + } + ] + } + ] + }, + { + "type": "image", + "name": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + }, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "50%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "center", + "options": [ + { + "value": "top-left", + "label": { + "cs": "Nahoře doleva", + "da": "Øverst til venstre", + "de": "Oben links", + "en": "Top left", + "es": "Superior izquierda", + "fi": "Ylhäällä vasemmalla", + "fr": "En haut à gauche", + "it": "In alto a sinistra", + "ja": "左上", + "ko": "왼쪽 상단", + "nb": "Øverst til venstre", + "nl": "Linksboven", + "pl": "Na górze po lewej", + "pt-BR": "Superior esquerdo", + "pt-PT": "Canto superior esquerdo", + "sv": "Överst till vänster", + "th": "ซ้ายบน", + "tr": "Üst sol", + "vi": "Trên cùng bên trái", + "zh-CN": "左上方", + "zh-TW": "左上角" + } + }, + { + "value": "top-middle", + "label": { + "cs": "Nahoře na střed", + "da": "Øverst i midten", + "de": "Oben mittig", + "en": "Top middle", + "es": "Superior al medio", + "fi": "Ylhäällä keskelle", + "fr": "En haut au centre", + "it": "Al centro in alto", + "ja": "中央上", + "ko": "상단 중간", + "nb": "Øverst i midten", + "nl": "Midden boven", + "pl": "Na górze w środku", + "pt-BR": "Centro da parte superior", + "pt-PT": "Parte superior central", + "sv": "Överst i mitten", + "th": "ตรงกลางด้านบน", + "tr": "Üst orta", + "vi": "Trên cùng ở giữa", + "zh-CN": "顶部中间", + "zh-TW": "中央上方" + } + }, + { + "value": "top-right", + "label": { + "cs": "Nahoře doprava", + "da": "Øverst til højre", + "de": "Oben rechts", + "en": "Top right", + "es": "Superior derecha", + "fi": "Ylhäällä oikealla", + "fr": "En haut à droite", + "it": "In alto a destra", + "ja": "右上", + "ko": "오른쪽 상단", + "nb": "Øverst til høyre", + "nl": "Rechtsboven", + "pl": "Na górze po prawej", + "pt-BR": "Superior direito", + "pt-PT": "Canto superior direito", + "sv": "Överst till höger", + "th": "ขวาบน", + "tr": "Üst sağ", + "vi": "Trên cùng bên phải", + "zh-CN": "右上方", + "zh-TW": "右上角" + } + }, + { + "value": "middle-left", + "label": { + "cs": "Uprostřed doleva", + "da": "Midt på til venstre", + "de": "Mitte links", + "en": "Middle left", + "es": "Al medio a la izquierda", + "fi": "Keskellä vasemmalla", + "fr": "Au milieu à gauche", + "it": "Nel mezzo a sinistra", + "ja": "中央部左側", + "ko": "왼쪽 중간", + "nb": "Midt til venstre", + "nl": "Midden links", + "pl": "Na środku po lewej", + "pt-BR": "Meio esquerdo", + "pt-PT": "Intermédio à esquerda", + "sv": "Mitten till vänster", + "th": "ซ้ายกลาง", + "tr": "Orta sol", + "vi": "Ở giữa bên trái", + "zh-CN": "中间居左", + "zh-TW": "中央左方" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Al centro", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "middle-right", + "label": { + "cs": "Uprostřed doprava", + "da": "Midt på til højre", + "de": "Mitte rechts", + "en": "Middle right", + "es": "Centrado a la derecha", + "fi": "Keskellä oikealla", + "fr": "Au milieu à droite", + "it": "In centro a destra", + "ja": "中央部右側", + "ko": "오른쪽 중간", + "nb": "Midt til høyre", + "nl": "Midden rechts", + "pl": "Na środku po prawej", + "pt-BR": "Meio direito", + "pt-PT": "Intermédio à direita", + "sv": "Mitten till höger", + "th": "ขวากลาง", + "tr": "Orta sağ", + "vi": "Ở giữa bên phải", + "zh-CN": "中间居右", + "zh-TW": "中央右方" + } + }, + { + "value": "bottom-left", + "label": { + "cs": "Dole doleva", + "da": "Nederst til venstre", + "de": "Unten links", + "en": "Bottom left", + "es": "Inferior izquierda", + "fi": "Alhaalla vasemmalla", + "fr": "En bas à gauche", + "it": "In basso a sinistra", + "ja": "左下", + "ko": "왼쪽 하단", + "nb": "Nederst til venstre", + "nl": "Linksonder", + "pl": "Na dole po lewej", + "pt-BR": "Inferior esquerdo", + "pt-PT": "Canto inferior esquerdo", + "sv": "Nere till vänster", + "th": "ซ้ายล่าง", + "tr": "Alt sol", + "vi": "Dưới cùng bên trái", + "zh-CN": "左下方", + "zh-TW": "左下角" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dole na střed", + "da": "Nederst i midten", + "de": "Unten mittig", + "en": "Bottom middle", + "es": "Inferior al medio", + "fi": "Alhaalla keskelle", + "fr": "En bas au centre", + "it": "Al centro in basso", + "ja": "中央下", + "ko": "중간 하단", + "nb": "Nederst i midten", + "nl": "Midden onder", + "pl": "Na dole w środku", + "pt-BR": "Centro da parte inferior", + "pt-PT": "Parte inferior central", + "sv": "Botten mitten", + "th": "ตรงกลางด้านล่าง", + "tr": "Alt orta", + "vi": "Dưới cùng ở giữa", + "zh-CN": "底部中间", + "zh-TW": "中央下方" + } + }, + { + "value": "bottom-right", + "label": { + "cs": "Dole doprava", + "da": "Nederst til højre", + "de": "Unten rechts", + "en": "Bottom right", + "es": "Inferior derecha", + "fi": "Alhaalla oikealla", + "fr": "En bas à droite", + "it": "In basso a destra", + "ja": "右下", + "ko": "오른쪽 아래", + "nb": "Nederst til høyre", + "nl": "Rechtsonder", + "pl": "Na dole po prawej", + "pt-BR": "Inferior direito", + "pt-PT": "Canto inferior direito", + "sv": "Nere till höger", + "th": "ขวาล่าง", + "tr": "Alt sağ", + "vi": "Dưới cùng bên phải", + "zh-CN": "右下方", + "zh-TW": "右下角" + } + } + ] + } + ] + }, + { + "type": "video", + "name": { + "cs": "Video", + "da": "Video", + "de": "Video", + "en": "Video", + "es": "Video", + "fi": "Video", + "fr": "Vidéo", + "it": "Video", + "ja": "ビデオ", + "ko": "동영상", + "nb": "Video", + "nl": "Video", + "pl": "Film", + "pt-BR": "Vídeo", + "pt-PT": "Vídeo", + "sv": "Video", + "th": "วิดีโอ", + "tr": "Video", + "vi": "Video", + "zh-CN": "视频", + "zh-TW": "影片" + }, + "settings": [ + { + "type": "video_url", + "id": "video_url", + "label": { + "cs": "Odkaz na YouTube nebo Vimeo", + "da": "Link til YouTube eller Vimeo", + "de": "YouTube oder Vimeo Link", + "en": "YouTube or Vimeo link", + "es": "Enlace de YouTube o Vimeo", + "fi": "YouTube- tai Vimeo-linkki", + "fr": "Lien YouTube ou Vimeo", + "it": "Link YouTube o Vimeo", + "ja": "YouTubeまたはVimeoのリンク", + "ko": "유투브 또는 비메오 링크", + "nb": "YouTube- eller Vimeo-kobling", + "nl": "YouTube- of Vimeo-link", + "pl": "Link do You Tube lub Vimeo", + "pt-BR": "Link do YouTube ou do Vimeo", + "pt-PT": "Ligação do YouTube ou Vimeo", + "sv": "YouTube eller Vimeo-länk", + "th": "ลิงก์ YouTube หรือ Vimeo", + "tr": "YouTube veya Vimeo bağlantısı", + "vi": "Liên kết Youtube hoặc Vimeo", + "zh-CN": "YouTube 或 Vimeo 链接", + "zh-TW": "YouTube 或 Vimeo 連結" + }, + "accept": [ + "youtube", + "vimeo" + ] + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "100%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "top-middle", + "options": [ + { + "value": "top-middle", + "label": { + "cs": "Nahoru", + "da": "Top", + "de": "Oben", + "en": "Top", + "es": "Superior", + "fi": "Ylös", + "fr": "Haut", + "it": "In alto", + "ja": "上", + "ko": "위쪽", + "nb": "Topp", + "nl": "Boven", + "pl": "Do góry", + "pt-BR": "Acima", + "pt-PT": "Acima", + "sv": "Högst upp", + "th": "ด้านบน", + "tr": "Üst", + "vi": "Bên trên", + "zh-CN": "顶部", + "zh-TW": "頂部" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Centro", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dolů", + "da": "Bund", + "de": "Unten", + "en": "Bottom", + "es": "Inferior", + "fi": "Alas", + "fr": "Bas", + "it": "In basso", + "ja": "下", + "ko": "아래쪽", + "nb": "Bunn", + "nl": "Onder", + "pl": "Do dołu", + "pt-BR": "Abaixo", + "pt-PT": "Abaixo", + "sv": "Längst ner", + "th": "ด้านล่าง", + "tr": "Alt", + "vi": "Bên dưới", + "zh-CN": "底部", + "zh-TW": "底部" + } + } + ] + } + ] + }, + { + "type": "product", + "name": { + "cs": "Produkt", + "da": "Produkt", + "de": "Produkt", + "en": "Product", + "es": "Producto", + "fi": "Tuote", + "fr": "Produit", + "it": "Prodotto", + "ja": "商品", + "ko": "제품", + "nb": "Produkt", + "nl": "Product", + "pl": "Produkt", + "pt-BR": "Produto", + "pt-PT": "Produto", + "sv": "Produkt", + "th": "สินค้า", + "tr": "Ürün", + "vi": "Sản phẩm", + "zh-CN": "产品", + "zh-TW": "產品" + }, + "settings": [ + { + "type": "product", + "id": "product", + "label": { + "cs": "Produkt", + "da": "Produkt", + "de": "Produkt", + "en": "Product", + "es": "Producto", + "fi": "Tuote", + "fr": "Produit", + "it": "Prodotto", + "ja": "商品", + "ko": "제품", + "nb": "Produkt", + "nl": "Product", + "pl": "Produkt", + "pt-BR": "Produto", + "pt-PT": "Produto", + "sv": "Produkt", + "th": "สินค้า", + "tr": "Ürün", + "vi": "Sản phẩm", + "zh-CN": "产品", + "zh-TW": "產品" + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "50%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "center", + "options": [ + { + "value": "top-left", + "label": { + "cs": "Nahoře doleva", + "da": "Øverst til venstre", + "de": "Oben links", + "en": "Top left", + "es": "Superior izquierda", + "fi": "Ylhäällä vasemmalla", + "fr": "En haut à gauche", + "it": "In alto a sinistra", + "ja": "左上", + "ko": "왼쪽 상단", + "nb": "Øverst til venstre", + "nl": "Linksboven", + "pl": "Na górze po lewej", + "pt-BR": "Superior esquerdo", + "pt-PT": "Canto superior esquerdo", + "sv": "Överst till vänster", + "th": "ซ้ายบน", + "tr": "Üst sol", + "vi": "Trên cùng bên trái", + "zh-CN": "左上方", + "zh-TW": "左上角" + } + }, + { + "value": "top-middle", + "label": { + "cs": "Nahoře na střed", + "da": "Øverst i midten", + "de": "Oben mittig", + "en": "Top middle", + "es": "Superior al medio", + "fi": "Ylhäällä keskelle", + "fr": "En haut au centre", + "it": "Al centro in alto", + "ja": "中央上", + "ko": "상단 중간", + "nb": "Øverst i midten", + "nl": "Midden boven", + "pl": "Na górze w środku", + "pt-BR": "Centro da parte superior", + "pt-PT": "Parte superior central", + "sv": "Överst i mitten", + "th": "ตรงกลางด้านบน", + "tr": "Üst orta", + "vi": "Trên cùng ở giữa", + "zh-CN": "顶部中间", + "zh-TW": "中央上方" + } + }, + { + "value": "top-right", + "label": { + "cs": "Nahoře doprava", + "da": "Øverst til højre", + "de": "Oben rechts", + "en": "Top right", + "es": "Superior derecha", + "fi": "Ylhäällä oikealla", + "fr": "En haut à droite", + "it": "In alto a destra", + "ja": "右上", + "ko": "오른쪽 상단", + "nb": "Øverst til høyre", + "nl": "Rechtsboven", + "pl": "Na górze po prawej", + "pt-BR": "Superior direito", + "pt-PT": "Canto superior direito", + "sv": "Överst till höger", + "th": "ขวาบน", + "tr": "Üst sağ", + "vi": "Trên cùng bên phải", + "zh-CN": "右上方", + "zh-TW": "右上角" + } + }, + { + "value": "middle-left", + "label": { + "cs": "Uprostřed doleva", + "da": "Midt på til venstre", + "de": "Mitte links", + "en": "Middle left", + "es": "Al medio a la izquierda", + "fi": "Keskellä vasemmalla", + "fr": "Au milieu à gauche", + "it": "In centro a sinistra", + "ja": "中央部左側", + "ko": "왼쪽 중간", + "nb": "Midt til venstre", + "nl": "Midden links", + "pl": "Na środku po lewej", + "pt-BR": "Meio esquerdo", + "pt-PT": "Intermédio à esquerda", + "sv": "Mitten till vänster", + "th": "ซ้ายกลาง", + "tr": "Orta sol", + "vi": "Ở giữa bên trái", + "zh-CN": "中间居左", + "zh-TW": "中央左方" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Centro", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "middle-right", + "label": { + "cs": "Uprostřed doprava", + "da": "Midt på til højre", + "de": "Mitte rechts", + "en": "Middle right", + "es": "Centrado a la derecha", + "fi": "Keskellä oikealla", + "fr": "Au milieu à droite", + "it": "Nel mezzo a destra", + "ja": "中央部右側", + "ko": "오른쪽 중간", + "nb": "Midt til høyre", + "nl": "Midden rechts", + "pl": "Na środku po prawej", + "pt-BR": "Meio direito", + "pt-PT": "Intermédio à direita", + "sv": "Mitten till höger", + "th": "ขวากลาง", + "tr": "Orta sağ", + "vi": "Ở giữa bên phải", + "zh-CN": "中间居右", + "zh-TW": "中央右方" + } + }, + { + "value": "bottom-left", + "label": { + "cs": "Dole doleva", + "da": "Nederst til venstre", + "de": "Unten links", + "en": "Bottom left", + "es": "Inferior izquierda", + "fi": "Alhaalla vasemmalla", + "fr": "En bas à gauche", + "it": "In basso a sinistra", + "ja": "左下", + "ko": "왼쪽 하단", + "nb": "Nederst til venstre", + "nl": "Linksonder", + "pl": "Na dole po lewej", + "pt-BR": "Inferior esquerdo", + "pt-PT": "Canto inferior esquerdo", + "sv": "Nere till vänster", + "th": "ซ้ายล่าง", + "tr": "Alt sol", + "vi": "Dưới cùng bên trái", + "zh-CN": "左下方", + "zh-TW": "左下角" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dole na střed", + "da": "Nederst i midten", + "de": "Unten mittig", + "en": "Bottom middle", + "es": "Inferior al medio", + "fi": "Alhaalla keskelle", + "fr": "En bas au centre", + "it": "Al centro in basso", + "ja": "中央下", + "ko": "중간 하단", + "nb": "Nederst i midten", + "nl": "Midden onder", + "pl": "Na dole w środku", + "pt-BR": "Centro da parte inferior", + "pt-PT": "Parte inferior central", + "sv": "Botten mitten", + "th": "ตรงกลางด้านล่าง", + "tr": "Alt orta", + "vi": "Dưới cùng ở giữa", + "zh-CN": "底部中间", + "zh-TW": "中央下方" + } + }, + { + "value": "bottom-right", + "label": { + "cs": "Dole doprava", + "da": "Nederst til højre", + "de": "Unten rechts", + "en": "Bottom right", + "es": "Inferior derecha", + "fi": "Alhaalla oikealla", + "fr": "En bas à droite", + "it": "In basso a destra", + "ja": "右下", + "ko": "오른쪽 아래", + "nb": "Nederst til høyre", + "nl": "Rechtsonder", + "pl": "Na dole po prawej", + "pt-BR": "Inferior direito", + "pt-PT": "Canto inferior direito", + "sv": "Nere till höger", + "th": "ขวาล่าง", + "tr": "Alt sağ", + "vi": "Dưới cùng bên phải", + "zh-CN": "右下方", + "zh-TW": "右下角" + } + } + ] + } + ] + }, + { + "type": "collection", + "name": { + "cs": "Kolekce", + "da": "Kollektion", + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fi": "Kokoelma", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "ko": "컬렉션", + "nb": "Samling", + "nl": "Collectie", + "pl": "Kolekcja", + "pt-BR": "Coleção", + "pt-PT": "Coleção", + "sv": "Produktserie", + "th": "คอลเลกชัน", + "tr": "Koleksiyon", + "vi": "Bộ sưu tập", + "zh-CN": "收藏", + "zh-TW": "商品系列" + }, + "settings": [ + { + "type": "collection", + "id": "collection", + "label": { + "cs": "Kolekce", + "da": "Kollektion", + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fi": "Kokoelma", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "ko": "컬렉션", + "nb": "Samling", + "nl": "Collectie", + "pl": "Kolekcja", + "pt-BR": "Coleção", + "pt-PT": "Coleção", + "sv": "Produktserie", + "th": "คอลเลกชัน", + "tr": "Koleksiyon", + "vi": "Bộ sưu tập", + "zh-CN": "收藏", + "zh-TW": "商品系列" + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "50%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + } + ] + }, + { + "type": "link_list", + "name": { + "cs": "Nabídka", + "da": "Menu", + "de": "Menü", + "en": "Menu", + "es": "Menú", + "fi": "Valikko", + "fr": "Menu", + "it": "Menu", + "ja": "メニュー", + "ko": "메뉴", + "nb": "Meny", + "nl": "Menu", + "pl": "Menu", + "pt-BR": "Menu", + "pt-PT": "Menu", + "sv": "Meny", + "th": "เมนู", + "tr": "Menü", + "vi": "Menu", + "zh-CN": "菜单", + "zh-TW": "選單" + }, + "settings": [ + { + "type": "link_list", + "id": "menu", + "label": { + "cs": "Nabídka", + "da": "Menu", + "de": "Menü", + "en": "Menu", + "es": "Menú", + "fi": "Valikko", + "fr": "Menu", + "it": "Menu", + "ja": "メニュー", + "ko": "메뉴", + "nb": "Meny", + "nl": "Menu", + "pl": "Menu", + "pt-BR": "Menu", + "pt-PT": "Menu", + "sv": "Meny", + "th": "เมนู", + "tr": "Menü", + "vi": "Menu", + "zh-CN": "菜单", + "zh-TW": "選單" + }, + "default": "main-menu" + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "25%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "center", + "options": [ + { + "value": "top-left", + "label": { + "cs": "Nahoře doleva", + "da": "Øverst til venstre", + "de": "Oben links", + "en": "Top left", + "es": "Superior izquierda", + "fi": "Ylhäällä vasemmalla", + "fr": "En haut à gauche", + "it": "In alto a sinistra", + "ja": "左上", + "ko": "왼쪽 상단", + "nb": "Øverst til venstre", + "nl": "Linksboven", + "pl": "Na górze po lewej", + "pt-BR": "Superior esquerdo", + "pt-PT": "Canto superior esquerdo", + "sv": "Överst till vänster", + "th": "ซ้ายบน", + "tr": "Üst sol", + "vi": "Trên cùng bên trái", + "zh-CN": "左上方", + "zh-TW": "左上角" + } + }, + { + "value": "top-middle", + "label": { + "cs": "Nahoře na střed", + "da": "Øverst i midten", + "de": "Oben mittig", + "en": "Top middle", + "es": "Superior al medio", + "fi": "Ylhäällä keskelle", + "fr": "En haut au centre", + "it": "Al centro in alto", + "ja": "中央上", + "ko": "상단 중간", + "nb": "Øverst i midten", + "nl": "Midden boven", + "pl": "Na górze w środku", + "pt-BR": "Centro da parte superior", + "pt-PT": "Parte superior central", + "sv": "Överst i mitten", + "th": "ตรงกลางด้านบน", + "tr": "Üst orta", + "vi": "Trên cùng ở giữa", + "zh-CN": "顶部中间", + "zh-TW": "中央上方" + } + }, + { + "value": "top-right", + "label": { + "cs": "Nahoře doprava", + "da": "Øverst til højre", + "de": "Oben rechts", + "en": "Top right", + "es": "Superior derecha", + "fi": "Ylhäällä oikealla", + "fr": "En haut à droite", + "it": "In alto a destra", + "ja": "右上", + "ko": "오른쪽 상단", + "nb": "Øverst til høyre", + "nl": "Rechtsboven", + "pl": "Na górze po prawej", + "pt-BR": "Superior direito", + "pt-PT": "Canto superior direito", + "sv": "Överst till höger", + "th": "ขวาบน", + "tr": "Üst sağ", + "vi": "Trên cùng bên phải", + "zh-CN": "右上方", + "zh-TW": "右上角" + } + }, + { + "value": "middle-left", + "label": { + "cs": "Uprostřed doleva", + "da": "Midt på til venstre", + "de": "Mitte links", + "en": "Middle left", + "es": "Al medio a la izquierda", + "fi": "Keskellä vasemmalla", + "fr": "Au milieu à gauche", + "it": "Nel mezzo a sinistra", + "ja": "中央部左側", + "ko": "왼쪽 중간", + "nb": "Midt til venstre", + "nl": "Midden links", + "pl": "Na środku po lewej", + "pt-BR": "Meio esquerdo", + "pt-PT": "Intermédio à esquerda", + "sv": "Mitten till vänster", + "th": "ซ้ายกลาง", + "tr": "Orta sol", + "vi": "Ở giữa bên trái", + "zh-CN": "中间居左", + "zh-TW": "中央左方" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Centrale", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "middle-right", + "label": { + "cs": "Uprostřed doprava", + "da": "Midt på til højre", + "de": "Mitte rechts", + "en": "Middle right", + "es": "Centrado a la derecha", + "fi": "Keskellä oikealla", + "fr": "Au milieu à droite", + "it": "Nel mezzo a destra", + "ja": "中央部右側", + "ko": "오른쪽 중간", + "nb": "Midt til høyre", + "nl": "Midden rechts", + "pl": "Na środku po prawej", + "pt-BR": "Meio direito", + "pt-PT": "Intermédio à direita", + "sv": "Mitten till höger", + "th": "ขวากลาง", + "tr": "Orta sağ", + "vi": "Ở giữa bên phải", + "zh-CN": "中间居右", + "zh-TW": "中央右方" + } + }, + { + "value": "bottom-left", + "label": { + "cs": "Dole doleva", + "da": "Nederst til venstre", + "de": "Unten links", + "en": "Bottom left", + "es": "Inferior izquierda", + "fi": "Alhaalla vasemmalla", + "fr": "En bas à gauche", + "it": "In basso a sinistra", + "ja": "左下", + "ko": "왼쪽 하단", + "nb": "Nederst til venstre", + "nl": "Linksonder", + "pl": "Na dole po lewej", + "pt-BR": "Inferior esquerdo", + "pt-PT": "Canto inferior esquerdo", + "sv": "Nere till vänster", + "th": "ซ้ายล่าง", + "tr": "Alt sol", + "vi": "Dưới cùng bên trái", + "zh-CN": "左下方", + "zh-TW": "左下角" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dole na střed", + "da": "Nederst i midten", + "de": "Unten mittig", + "en": "Bottom middle", + "es": "Inferior al medio", + "fi": "Alhaalla keskelle", + "fr": "En bas au centre", + "it": "Al centro in basso", + "ja": "中央下", + "ko": "중간 하단", + "nb": "Nederst i midten", + "nl": "Midden onder", + "pl": "Na dole w środku", + "pt-BR": "Centro da parte inferior", + "pt-PT": "Parte inferior central", + "sv": "Botten mitten", + "th": "ตรงกลางด้านล่าง", + "tr": "Alt orta", + "vi": "Dưới cùng ở giữa", + "zh-CN": "底部中间", + "zh-TW": "中央下方" + } + }, + { + "value": "bottom-right", + "label": { + "cs": "Dole doprava", + "da": "Nederst til højre", + "de": "Unten rechts", + "en": "Bottom right", + "es": "Inferior derecha", + "fi": "Alhaalla oikealla", + "fr": "En bas à droite", + "it": "In basso a destra", + "ja": "右下", + "ko": "오른쪽 아래", + "nb": "Nederst til høyre", + "nl": "Rechtsonder", + "pl": "Na dole po prawej", + "pt-BR": "Inferior direito", + "pt-PT": "Canto inferior direito", + "sv": "Nere till höger", + "th": "ขวาล่าง", + "tr": "Alt sağ", + "vi": "Dưới cùng bên phải", + "zh-CN": "右下方", + "zh-TW": "右下角" + } + } + ] + } + ] + }, + { + "type": "blog", + "name": { + "cs": "Blog", + "da": "Blog", + "de": "Blog", + "en": "Blog", + "es": "Blog", + "fi": "Blogi", + "fr": "Blog", + "it": "Blog", + "ja": "ブログ", + "ko": "블로그", + "nb": "Blogg", + "nl": "Blog", + "pl": "Blog", + "pt-BR": "Blog", + "pt-PT": "Blogue", + "sv": "Blogg", + "th": "บล็อก", + "tr": "Blog", + "vi": "Blog", + "zh-CN": "博客", + "zh-TW": "網誌" + }, + "settings": [ + { + "type": "blog", + "id": "blog", + "label": { + "cs": "Blog", + "da": "Blog", + "de": "Blog", + "en": "Blog", + "es": "Blog", + "fi": "Blogi", + "fr": "Blog", + "it": "Blog", + "ja": "ブログ", + "ko": "블로그", + "nb": "Blogg", + "nl": "Blog", + "pl": "Blog", + "pt-BR": "Blog", + "pt-PT": "Blogue", + "sv": "Blogg", + "th": "บล็อก", + "tr": "Blog", + "vi": "Blog", + "zh-CN": "博客", + "zh-TW": "網誌" + } + }, + { + "type": "image_picker", + "id": "cover_image", + "label": { + "cs": "Titulní obrázek", + "da": "Coverbillede", + "de": "Titelbild", + "en": "Cover image", + "es": "Imagen de portada", + "fi": "Kansikuva", + "fr": "Image de couverture", + "it": "Immagine di copertina", + "ja": "表紙画像", + "ko": "커버 이미지", + "nb": "Forsidebilde", + "nl": "Coverafbeelding", + "pl": "Obraz w tle", + "pt-BR": "Imagem de capa", + "pt-PT": "Imagem de capa", + "sv": "Omslagsbild", + "th": "รูปภาพหน้าปก", + "tr": "Kapak görseli", + "vi": "Ảnh bìa", + "zh-CN": "封面图片", + "zh-TW": "封面圖片" + } + }, + { + "type": "select", + "id": "image_size", + "label": { + "cs": "Velikost obrázku", + "da": "Billedets størrelse", + "de": "Foto-Größe", + "en": "Image size", + "es": "Tamaño de la imagen", + "fi": "Kuvan koko", + "fr": "Taille des images", + "it": "Dimensione immagine", + "ja": "画像サイズ", + "ko": "이미지 크기", + "nb": "Bildestørrelse", + "nl": "Afbeeldingsformaat", + "pl": "Rozmiar obrazu", + "pt-BR": "Tamanho da imagem", + "pt-PT": "Tamanho da imagem", + "sv": "Bildstorlek", + "th": "ขนาดรูปภาพ", + "tr": "Görsel boyutu", + "vi": "Kích cỡ hình ảnh", + "zh-CN": "图片尺寸", + "zh-TW": "圖片尺寸" + }, + "default": "medium", + "options": [ + { + "value": "small", + "label": { + "cs": "Malá", + "da": "Lille", + "de": "Klein", + "en": "Small", + "es": "Pequeño", + "fi": "Pieni", + "fr": "Petit", + "it": "Piccolo", + "ja": "スモール", + "ko": "스몰", + "nb": "Liten", + "nl": "Klein", + "pl": "Mały", + "pt-BR": "Pequeno", + "pt-PT": "Pequeno", + "sv": "Liten", + "th": "เล็ก", + "tr": "Küçük", + "vi": "Nhỏ", + "zh-CN": "小", + "zh-TW": "小型" + } + }, + { + "value": "medium", + "label": { + "cs": "Střední", + "da": "Medium", + "de": "Mittel", + "en": "Medium", + "es": "Mediano", + "fi": "Keskisuuri", + "fr": "Moyenne", + "it": "Medio", + "ja": "中", + "ko": "보통", + "nb": "Middels", + "nl": "Gemiddeld", + "pl": "Średnie", + "pt-BR": "Médio", + "pt-PT": "Médio", + "sv": "Medium", + "th": "ปานกลาง", + "tr": "Orta", + "vi": "Trung bình", + "zh-CN": "中等", + "zh-TW": "中等" + } + }, + { + "value": "large", + "label": { + "cs": "Velká", + "da": "Stor", + "de": "Groß", + "en": "Large", + "es": "Grande", + "fi": "Suuri", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "ko": "라지", + "nb": "Stor", + "nl": "Groot", + "pl": "Duży", + "pt-BR": "Grande", + "pt-PT": "Grande", + "sv": "Stor", + "th": "ใหญ่", + "tr": "Büyük", + "vi": "Lớn", + "zh-CN": "大", + "zh-TW": "大型" + } + } + ] + }, + { + "id": "description", + "type": "richtext", + "default": { + "cs": "

    Popište svůj blog.

    ", + "da": "

    Beskrivelse af din blog.

    ", + "de": "

    Beschreibung deines Blogs.

    ", + "en": "

    Description of your blog.

    ", + "es": "

    Descripción de tu blog.

    ", + "fi": "

    Blogisi kuvaus.

    ", + "fr": "

    Description de votre blog.

    ", + "it": "

    Descrizione del blog.

    ", + "ja": "

    ブログの説明。

    ", + "ko": "

    블로그 설명.

    ", + "nb": "

    Beskrivelse av bloggen din.

    ", + "nl": "

    Beschrijving van je blog.

    ", + "pl": "

    Opis Twojego blogu.

    ", + "pt-BR": "

    Descrição do seu blog.

    ", + "pt-PT": "

    Descrição do seu blog.

    ", + "sv": "

    Beskrivning av din blogg.

    ", + "th": "

    คำอธิบายบล็อกของคุณ

    ", + "tr": "

    Blogunuzun açıklaması.

    ", + "vi": "

    Mô tả blog của bạn.

    ", + "zh-CN": "

    您博客的描述。

    ", + "zh-TW": "

    您網誌的描述。

    " + }, + "label": { + "cs": "Popis", + "da": "Beskrivelse", + "de": "Beschreibung", + "en": "Description", + "es": "Descripción", + "fi": "Kuvaus", + "fr": "Description", + "it": "Descrizione", + "ja": "説明", + "ko": "설명", + "nb": "Beskrivelse", + "nl": "Beschrijving", + "pl": "Opis", + "pt-BR": "Descrição", + "pt-PT": "Descrição", + "sv": "Beskrivning", + "th": "คำอธิบาย", + "tr": "Açıklama", + "vi": "Mô tả", + "zh-CN": "描述", + "zh-TW": "說明" + } + }, + { + "id": "show_number_articles", + "type": "checkbox", + "default": true, + "label": { + "cs": "Zobrazit počet článků", + "da": "Vis antallet af artikler", + "de": "Anzahl der Artikel anzeigen", + "en": "Show number of articles", + "es": "Mostrar la cantidad de artículos", + "fi": "Näytä artikkeleiden määrä", + "fr": "Afficher le nombre d'articles", + "it": "Mostra numero di articoli", + "ja": "記事数を表示する", + "ko": "문서의 수 표시", + "nb": "Vis antall artikler", + "nl": "Aantal artikelen weergeven", + "pl": "Pokaż liczbę artykułów", + "pt-BR": "Exibir o número de artigos", + "pt-PT": "Mostrar o número de artigos", + "sv": "Visa antal artiklar", + "th": "แสดงจำนวนบทความ", + "tr": "Makale sayısını göster", + "vi": "Hiển thị số lượng bài viết", + "zh-CN": "显示文章数", + "zh-TW": "顯示文章數量" + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "25%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "center", + "options": [ + { + "value": "top-middle", + "label": { + "cs": "Nahoru", + "da": "Top", + "de": "Oben", + "en": "Top", + "es": "Superior", + "fi": "Ylös", + "fr": "Haut", + "it": "Alto", + "ja": "上", + "ko": "위쪽", + "nb": "Topp", + "nl": "Boven", + "pl": "Do góry", + "pt-BR": "Acima", + "pt-PT": "Acima", + "sv": "Högst upp", + "th": "ด้านบน", + "tr": "Üst", + "vi": "Bên trên", + "zh-CN": "顶部", + "zh-TW": "頂部" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Centrale", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dolů", + "da": "Bund", + "de": "Unten", + "en": "Bottom", + "es": "Inferior", + "fi": "Alas", + "fr": "Bas", + "it": "Basso", + "ja": "下", + "ko": "아래쪽", + "nb": "Bunn", + "nl": "Onder", + "pl": "Do dołu", + "pt-BR": "Abaixo", + "pt-PT": "Abaixo", + "sv": "Längst ner", + "th": "ด้านล่าง", + "tr": "Alt", + "vi": "Bên dưới", + "zh-CN": "底部", + "zh-TW": "底部" + } + } + ] + } + ] + }, + { + "type": "article", + "name": { + "cs": "Článek", + "da": "Artikel", + "de": "Artikel", + "en": "Article", + "es": "Artículo", + "fi": "Artikkeli", + "fr": "Article", + "it": "Articolo", + "ja": "記事", + "ko": "문서", + "nb": "Artikkel", + "nl": "Artikel", + "pl": "Artykuł", + "pt-BR": "Artigo", + "pt-PT": "Artigo", + "sv": "Artikel", + "th": "บทความ", + "tr": "Makale", + "vi": "Bài viết", + "zh-CN": "文章", + "zh-TW": "文章" + }, + "settings": [ + { + "type": "article", + "id": "article", + "label": { + "cs": "Článek", + "da": "Artikel", + "de": "Artikel", + "en": "Article", + "es": "Artículo", + "fi": "Artikkeli", + "fr": "Article", + "it": "Articolo", + "ja": "記事", + "ko": "문서", + "nb": "Artikkel", + "nl": "Artikel", + "pl": "Artykuł", + "pt-BR": "Artigo", + "pt-PT": "Artigo", + "sv": "Artikel", + "th": "บทความ", + "tr": "Makale", + "vi": "Bài viết", + "zh-CN": "文章", + "zh-TW": "文章" + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "50%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Svislé zarovnání", + "da": "Lodret justering", + "de": "Vertikale Ausrichtung", + "en": "Vertical alignment", + "es": "Alineación vertical", + "fi": "Pystysuuntainen tasaus", + "fr": "Alignement vertical", + "it": "Allineamento verticale", + "ja": "垂直アラインメント", + "ko": "수직 정렬", + "nb": "Vertikal justering", + "nl": "Verticaal uitlijnen", + "pl": "Wyrównanie w pionie", + "pt-BR": "Alinhamento vertical", + "pt-PT": "Alinhamento vertical", + "sv": "Vertikal justering", + "th": "การจัดวางแนวตั้ง", + "tr": "Dikey hizalama", + "vi": "Căn dọc", + "zh-CN": "垂直对齐", + "zh-TW": "垂直對齊" + }, + "default": "center", + "options": [ + { + "value": "top-middle", + "label": { + "cs": "Nahoru", + "da": "Top", + "de": "Oben", + "en": "Top", + "es": "Superior", + "fi": "Ylös", + "fr": "Haut", + "it": "Alto", + "ja": "上", + "ko": "위쪽", + "nb": "Topp", + "nl": "Boven", + "pl": "Do góry", + "pt-BR": "Acima", + "pt-PT": "Acima", + "sv": "Högst upp", + "th": "ด้านบน", + "tr": "Üst", + "vi": "Bên trên", + "zh-CN": "顶部", + "zh-TW": "頂部" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Centrale", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "bottom-middle", + "label": { + "cs": "Dolů", + "da": "Bund", + "de": "Unten", + "en": "Bottom", + "es": "Inferior", + "fi": "Alas", + "fr": "Bas", + "it": "Basso", + "ja": "下", + "ko": "아래쪽", + "nb": "Bunn", + "nl": "Onder", + "pl": "Do dołu", + "pt-BR": "Abaixo", + "pt-PT": "Abaixo", + "sv": "Längst ner", + "th": "ด้านล่าง", + "tr": "Alt", + "vi": "Bên dưới", + "zh-CN": "底部", + "zh-TW": "底部" + } + } + ] + }, + { + "type": "select", + "id": "cover_image", + "label": { + "cs": "Titulní obrázek", + "da": "Coverbillede", + "de": "Titelbild", + "en": "Cover image", + "es": "Imagen de portada", + "fi": "Kansikuva", + "fr": "Image de couverture", + "it": "Immagine di copertina", + "ja": "表紙画像", + "ko": "커버 이미지", + "nb": "Forsidebilde", + "nl": "Coverafbeelding", + "pl": "Obraz w tle", + "pt-BR": "Imagem de capa", + "pt-PT": "Imagem de capa", + "sv": "Omslagsbild", + "th": "รูปภาพหน้าปก", + "tr": "Kapak görseli", + "vi": "Ảnh bìa", + "zh-CN": "封面图片", + "zh-TW": "封面圖片" + }, + "default": "large", + "options": [ + { + "value": "small", + "label": { + "cs": "Malý", + "da": "Lille", + "de": "Klein", + "en": "Small", + "es": "Pequeño", + "fi": "Pieni", + "fr": "Petit", + "it": "Piccolo", + "ja": "スモール", + "ko": "스몰", + "nb": "Liten", + "nl": "Klein", + "pl": "Mały", + "pt-BR": "Pequeno", + "pt-PT": "Pequeno", + "sv": "Liten", + "th": "เล็ก", + "tr": "Küçük", + "vi": "Nhỏ", + "zh-CN": "小", + "zh-TW": "小型" + } + }, + { + "value": "large", + "label": { + "cs": "Velký", + "da": "Stor", + "de": "Groß", + "en": "Large", + "es": "Grande", + "fi": "Suuri", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "ko": "라지", + "nb": "Stor", + "nl": "Groot", + "pl": "Duży", + "pt-BR": "Grande", + "pt-PT": "Grande", + "sv": "Stor", + "th": "ใหญ่", + "tr": "Büyük", + "vi": "Lớn", + "zh-CN": "大", + "zh-TW": "大型" + } + }, + { + "value": "none", + "label": { + "cs": "Žádný", + "da": "Ingen", + "de": "Keine", + "en": "None", + "es": "Ninguno", + "fi": "Ei mitään", + "fr": "Aucune", + "it": "Nessuno", + "ja": "なし", + "ko": "없음", + "nb": "Ingen", + "nl": "Geen", + "pl": "Brak", + "pt-BR": "Nenhum", + "pt-PT": "Nenhum", + "sv": "Inga", + "th": "ไม่มี", + "tr": "Yok", + "vi": "Không", + "zh-CN": "无", + "zh-TW": "無" + } + } + ] + }, + { + "type": "checkbox", + "id": "show_author", + "label": { + "cs": "Zobrazit autora", + "da": "Vis forfatter", + "de": "Autor anzeigen", + "en": "Show author", + "es": "Mostrar autor", + "fi": "Näytä tekijä", + "fr": "Afficher l'auteur", + "it": "Mostra autore", + "ja": "執筆者を表示する", + "ko": "작성자 표시", + "nb": "Vis forfatter", + "nl": "Auteur weergeven", + "pl": "Pokaż autora", + "pt-BR": "Exibir autor", + "pt-PT": "Mostrar autor", + "sv": "Visa författare", + "th": "แสดงผู้เขียน", + "tr": "Yazarı göster", + "vi": "Hiển thị tác giả", + "zh-CN": "显示作者", + "zh-TW": "顯示作者" + }, + "default": false + }, + { + "type": "checkbox", + "id": "show_date", + "label": { + "cs": "Zobrazit datum", + "da": "Vis dato", + "de": "Datum anzeigen", + "en": "Show date", + "es": "Mostrar fecha", + "fi": "Näytä päivämäärä", + "fr": "Afficher la date", + "it": "Mostra data", + "ja": "日付を表示する", + "ko": "날짜 표시", + "nb": "Vis dato", + "nl": "Datum weergeven", + "pl": "Pokaż datę", + "pt-BR": "Exibir data", + "pt-PT": "Mostrar data", + "sv": "Visa datum", + "th": "แสดงวันที่", + "tr": "Tarihi göster", + "vi": "Hiển thị ngày", + "zh-CN": "显示日期", + "zh-TW": "顯示日期" + }, + "default": true + } + ] + }, + { + "type": "html", + "name": { + "cs": "Vlastní HTML", + "da": "Tilpasset HTML", + "de": "Personalisierte HTML", + "en": "Custom HTML", + "es": "HTML personalizado", + "fi": "Mukautettu HTML", + "fr": "HTML personnalisé", + "it": "HTML personalizzato", + "ja": "HTMLをカスタムする", + "ko": "사용자 지정 HTML", + "nb": "Tilpasset HTML", + "nl": "Aangepaste HTML", + "pl": "Niestandardowy HTML", + "pt-BR": "HTML personalizado", + "pt-PT": "HTML personalizado", + "sv": "Anpassa HTML", + "th": "HTML แบบกำหนดเอง", + "tr": "Özel HTML", + "vi": "HTML tùy chỉnh", + "zh-CN": "自定义 HTML", + "zh-TW": "自訂 HTML" + }, + "settings": [ + { + "type": "html", + "id": "code", + "label": { + "cs": "HTML", + "da": "HTML", + "de": "HTML", + "en": "HTML", + "es": "HTML", + "fi": "HTML", + "fr": "HTML", + "it": "HTML", + "ja": "HTML", + "ko": "HTML", + "nb": "HTML", + "nl": "HTML", + "pl": "HTML", + "pt-BR": "HTML", + "pt-PT": "HTML", + "sv": "HTML", + "th": "HTML", + "tr": "HTML", + "vi": "HTML", + "zh-CN": "HTML", + "zh-TW": "HTML" + } + }, + { + "type": "select", + "id": "width", + "label": { + "cs": "Šířka kontejneru", + "da": "Containerbredde", + "de": "Breite des Elements", + "en": "Container width", + "es": "Ancho del contenedor", + "fi": "Säiliön leveys", + "fr": "Largeur du conteneur", + "it": "Larghezza contenitore", + "ja": "コンテナーの幅", + "ko": "컨테이너 폭", + "nb": "Beholderbredde", + "nl": "Containerbreedte", + "pl": "Szerokość kontenera", + "pt-BR": "Largura do contêiner", + "pt-PT": "Largura do recipiente", + "sv": "Container-bredd", + "th": "ความกว้างของความจุ", + "tr": "Kapsayıcı genişliği", + "vi": "Chiều rộng khoảng chứa", + "zh-CN": "容器宽度", + "zh-TW": "容器寬度" + }, + "default": "50%", + "options": [ + { + "value": "25%", + "label": { + "cs": "25 %", + "da": "25 %", + "de": "25%", + "en": "25%", + "es": "25%", + "fi": "25 %", + "fr": "25 %", + "it": "25%", + "ja": "25%", + "ko": "25%", + "nb": "25 %", + "nl": "25%", + "pl": "25%", + "pt-BR": "25%", + "pt-PT": "25%", + "sv": "25 %", + "th": "25%", + "tr": "%25", + "vi": "25%", + "zh-CN": "25%", + "zh-TW": "25%" + } + }, + { + "value": "33%", + "label": { + "cs": "33 %", + "da": "33 %", + "de": "33%", + "en": "33%", + "es": "33%", + "fi": "33 %", + "fr": "33 %", + "it": "33%", + "ja": "33%", + "ko": "33%", + "nb": "33 %", + "nl": "33%", + "pl": "33%", + "pt-BR": "33%", + "pt-PT": "33%", + "sv": "33 %", + "th": "33%", + "tr": "%33", + "vi": "33%", + "zh-CN": "33%", + "zh-TW": "33%" + } + }, + { + "value": "50%", + "label": { + "cs": "50 %", + "da": "50 %", + "de": "50%", + "en": "50%", + "es": "50%", + "fi": "50 %", + "fr": "50 %", + "it": "50%", + "ja": "50%", + "ko": "50%", + "nb": "50 %", + "nl": "50%", + "pl": "50%", + "pt-BR": "50%", + "pt-PT": "50%", + "sv": "50 %", + "th": "50%", + "tr": "%50", + "vi": "50%", + "zh-CN": "50%", + "zh-TW": "50%" + } + }, + { + "value": "66%", + "label": { + "cs": "66 %", + "da": "66 %", + "de": "66%", + "en": "66%", + "es": "66%", + "fi": "66 %", + "fr": "66 %", + "it": "66%", + "ja": "66%", + "ko": "66%", + "nb": "66 %", + "nl": "66%", + "pl": "66%", + "pt-BR": "66%", + "pt-PT": "66%", + "sv": "66 %", + "th": "66%", + "tr": "%66", + "vi": "66%", + "zh-CN": "66%", + "zh-TW": "66%" + } + }, + { + "value": "75%", + "label": { + "cs": "75 %", + "da": "75 %", + "de": "75%", + "en": "75%", + "es": "75%", + "fi": "75 %", + "fr": "75 %", + "it": "75%", + "ja": "75%", + "ko": "75%", + "nb": "75 %", + "nl": "75%", + "pl": "75%", + "pt-BR": "75%", + "pt-PT": "75%", + "sv": "75 %", + "th": "75%", + "tr": "%75", + "vi": "75%", + "zh-CN": "75%", + "zh-TW": "75%" + } + }, + { + "value": "100%", + "label": { + "cs": "100 %", + "da": "100 %", + "de": "100%", + "en": "100%", + "es": "100%", + "fi": "100 %", + "fr": "100 %", + "it": "100%", + "ja": "100%", + "ko": "100%", + "nb": "100 %", + "nl": "100%", + "pl": "100%", + "pt-BR": "100%", + "pt-PT": "100%", + "sv": "100 %", + "th": "100%", + "tr": "%100", + "vi": "100%", + "zh-CN": "100%", + "zh-TW": "100%" + } + } + ] + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Vlastní obsah", + "da": "Tilpasset indhold", + "de": "Personalisierter Content", + "en": "Custom content", + "es": "Contenido personalizado", + "fi": "Mukautettu sisältö", + "fr": "Contenu personnalisé", + "it": "Contenuto personalizzato", + "ja": "コンテンツをカスタムする", + "ko": "사용자 지정 콘텐츠", + "nb": "Tilpasset innhold", + "nl": "Aangepaste content", + "pl": "Zawartość niestandardowa", + "pt-BR": "Conteúdo personalizado", + "pt-PT": "Conteúdo personalizado", + "sv": "Anpassat innehåll", + "th": "เนื้อหาแบบกำหนดเอง", + "tr": "Özel içerik", + "vi": "Nội dung tùy chỉnh", + "zh-CN": "自定义内容", + "zh-TW": "自訂內容" + }, + "category": { + "cs": "Pokročilé rozvržení", + "da": "Avanceret layout", + "de": "Erweitertes Layout", + "en": "Advanced layout", + "es": "Diseño avanzado", + "fi": "Monimutkaisempi layout", + "fr": "Mise en page avancée", + "it": "Layout avanzato", + "ja": "高度なレイアウト", + "ko": "고급 레이아웃", + "nb": "Avansert oppsett", + "nl": "Geavanceerde opmaak", + "pl": "Zaawansowany układ", + "pt-BR": "Layout avançado", + "pt-PT": "Esquema avançado", + "sv": "Avancerad layout", + "th": "เลย์เอาท์ขั้นสูง", + "tr": "Gelişmiş düzen", + "vi": "Bố cục nâng cao", + "zh-CN": "高级布局", + "zh-TW": "進階版面配置" + }, + "blocks": [ + { + "type": "text" + }, + { + "type": "image" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/custom-section.liquid b/shopify/sections/custom-section.liquid new file mode 100644 index 00000000..fa62f9ea --- /dev/null +++ b/shopify/sections/custom-section.liquid @@ -0,0 +1,100 @@ + + +
    +
    +
    + {% content_for 'blocks' %} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Custom block section", + "settings": [ + { + "type": "header", + "content": "Layout" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + }, + { + "type": "header", + "content": "Layout" + }, + { + "type": "range", + "id": "padding_top", + "label": "Padding Top", + "default": 80, + "min": 0, + "max": 100, + "step": 5 + }, + { + "type": "range", + "id": "padding_bottom", + "label": "Padding Bottom", + "default": 40, + "min": 0, + "max": 100, + "step": 5 + } + ], + "blocks": [ + { + "type": "@theme" + }, + { + "type": "@app" + } + ], + "presets": [ + { + "name": "Custom block section" + }, + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/sections/customer-account.liquid b/shopify/sections/customer-account.liquid new file mode 100644 index 00000000..5874adab --- /dev/null +++ b/shopify/sections/customer-account.liquid @@ -0,0 +1,163 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} + + + +{% schema %} +{ + "name": "Account", + "class": "jsAccounts", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example, UserName will be replaced as customer name", + "default": "Hallo UserName, willkommen zurück" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Hier kannst du deine Bestellungen einsehen und deinen Account verwalten" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/customer-addresses.liquid b/shopify/sections/customer-addresses.liquid new file mode 100644 index 00000000..a63ace4a --- /dev/null +++ b/shopify/sections/customer-addresses.liquid @@ -0,0 +1,432 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} +{%- assign show_account_link = section.settings.show_account_link -%} + +{%- capture address_new_form -%} + {%- assign formId = 'AddressNewForm' -%} +
    + {% form 'customer_address', customer.new_address %} + {% comment %}

    {{ 'customer.addresses.add_new' | t }}

    {% endcomment %} + + + + + + + + + + + + + + + + + + + + + + + + + + + {% endform %} +
    +{%- endcapture -%} + +{%- capture address_section -%} + {% for address in customer.addresses %} +
    + {% if address == customer.default_address %} +

    {{ 'customer.addresses.default' | t }}

    + {% endif %} + +
    + {{ address | format_address }} +
    + +

    + + +

    +
    + +
    + {% form 'customer_address', address %} +

    +

    {{ 'customer.addresses.edit_address' | t }}

    + + + + + + + + + + + + + + + + + + + + + + {%- if address == customer.default_address -%} + {%- assign is_default_address = 'true' -%} + + {%- endif -%} + + + + + + + {% endform %} + +
    + {% endfor %} +{%- endcapture -%} + +
    +
    +
    +

    {{ title }}

    +

    {{ subtitle }}

    + {%- if show_account_link -%} +
    + {{ 'customer.account.return' | t }} + {%- endif -%} +
    + +
    +

    + +

    + + {% paginate customer.addresses by 5 %} + {% comment %} Add address form, hidden by default {% endcomment %} + {{ address_new_form }} + + {% comment %} + List all customer addresses with a unique edit form. + Also add pagination in case they have a large number of addresses + {% endcomment %} + {{ address_section }} + + {% if paginate.pages > 1 %} + {% render 'pagination' %} + {% endif %} + {% endpaginate %} + +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Addresses", + "class": "jsAccounts", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Lieferadresse verwalten" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Manage deine aktuelle Lieferadresse oder füge weitere hinzu." + }, + { + "type": "checkbox", + "id": "show_account_link", + "label": "Show Account link", + "default": true + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/customer-login.liquid b/shopify/sections/customer-login.liquid new file mode 100644 index 00000000..46ae85fc --- /dev/null +++ b/shopify/sections/customer-login.liquid @@ -0,0 +1,387 @@ + + +{%- assign login_title = section.settings.login_title -%} +{%- assign login_subtitle = section.settings.login_subtitle -%} +{%- assign login_form_title = section.settings.login_form_title -%} +{%- assign login_column_title = section.settings.login_column_title -%} +{%- assign login_column_subtitle = section.settings.login_column_subtitle -%} + +{%- assign recover_title = section.settings.recover_title -%} +{%- assign recover_subtitle = section.settings.recover_subtitle -%} +{%- assign recover_form_title = section.settings.recover_form_title -%} +{%- assign recover_form_footer_text = section.settings.recover_form_footer_text -%} +{%- assign recover_success_title = section.settings.recover_success_title -%} +{%- assign recover_success_subtitle = section.settings.recover_success_subtitle -%} +{%- assign recover_success_link_text = section.settings.recover_success_link_text -%} +{%- assign recover_success_image = section.settings.recover_success_image -%} +{%- assign recover_success_image_mobile = section.settings.recover_success_image_mobile -%} + + +{%- capture login_form -%} + {%- assign formId = 'CustomerLoginForm' -%} + +{%- endcapture -%} + +{%- capture recover_form -%} + {%- assign formId = 'RecoverPasswordForm' -%} +
    + + {%- if recover_title or recover_subtitle -%} +
    + {%- if recover_title -%} +

    {{ recover_title }}

    + {%- endif -%} + + {%- if recover_subtitle -%} +

    {{ recover_subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + +
    + {% form 'recover_customer_password', id: formId %} + + {%- if form.errors -%} +
    + {{ form.errors | default_errors }} +
    + {%- endif -%} + + {% comment %} + Add a hidden span to indicate the form was submitted succesfully. + {% endcomment %} + {% if form.posted_successfully? %} + {% assign recover_success = form.posted_successfully? %} + + {% endif %} + + {%- if recover_form_title -%} +

    {{ recover_form_title }}

    + {%- endif -%} + + + +
    + + + +
    + + {%- if recover_form_footer_text -%} +

    {{ recover_form_footer_text }}

    + {%- endif -%} + {% endform %} +
    + +
    +{%- endcapture -%} + + + +{% schema %} +{ + "name": "Login", + "class": "login-page jsAccounts", + "settings": [ + { + "type": "text", + "id": "login_title", + "label": "Login Title", + "info": "Need wrap words to see background, example", + "default": "Melde dich an oder registriere dich" + }, + { + "type": "text", + "id": "login_subtitle", + "label": "Login Subtitle", + "default": "Du kannst dich mit einem Account anmelden oder einen neuen erstellen." + }, + { + "type": "text", + "id": "login_form_title", + "label": "Login form title", + "default": "Anmelden" + }, + { + "type": "text", + "id": "login_column_title", + "label": "Login second column tittle", + "default": "Registrieren" + }, + { + "type": "text", + "id": "login_column_subtitle", + "label": "Login second column subtittle", + "default": "Erstelle jetzt ein Konto, um Bestellungen zu verfolgen, dein Profil zu verwalten, deine Leiferadresse hinzuzufügen und den Bezahlvorgang zum optimieren." + }, + { + "type": "text", + "id": "recover_title", + "label": "Recover Title", + "info": "Need wrap words to see background, example", + "default": "Setze hier dein Passwort zurück" + }, + { + "type": "text", + "id": "recover_subtitle", + "label": "Recover Subtitle", + "default": "Du hast dein Passwort vergessen? Gar kein Problem, setze es einfach zurück." + }, + { + "type": "text", + "id": "recover_form_title", + "label": "Recover form title", + "default": "Passwort zurücksetzen" + }, + { + "type": "text", + "id": "recover_form_footer_text", + "label": "Recover form footer text", + "default": "Wir senden Ihnen eine E-Mail, um Ihr Passwort zurückzusetzen." + }, + { + "type": "text", + "id": "recover_success_title", + "label": "Recover success title", + "info": "Need wrap words to see background, example", + "default": "Check doch mal deine Mails!" + }, + { + "type": "text", + "id": "recover_success_subtitle", + "label": "Recover success subtitle", + "default": "Wir haben dir eine E-Mail geschickt, in der du dein Passwort zurücksetzen kannst." + }, + { + "type": "text", + "id": "recover_success_link_text", + "label": "Recover success link text", + "default": "Zurück zur Login-Seite" + }, + { + "type": "image_picker", + "id": "recover_success_image", + "label": "Recover success image" + }, + { + "type": "image_picker", + "id": "recover_success_image_mobile", + "label": "Recover success image mobile" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/customer-order.liquid b/shopify/sections/customer-order.liquid new file mode 100644 index 00000000..ec13030f --- /dev/null +++ b/shopify/sections/customer-order.liquid @@ -0,0 +1,200 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} + +
    +
    +
    +

    {{ title }}

    + +

    {{ subtitle }}

    + + {{ 'customer.account.return' | t }} +
    + +
    +
    +

    {{ 'customer.order.title' | t: name: order.name }}

    + + {%- assign order_date = order.created_at | date: "%B %d, %Y %I:%M%p" -%} +

    {{ 'customer.order.date_html' | t: date: order_date }}

    +
    + {% if order.cancelled %} +
    + {%- assign cancelled_at = order.cancelled_at | date: "%B %d, %Y %I:%M%p" -%} +

    {{ 'customer.order.cancelled_html' | t: date: cancelled_at }}

    +

    {{ 'customer.order.cancelled_reason' | t: reason: order.cancel_reason }}

    +
    + {% endif %} + + + + + + + + + + + + + {% for line_item in order.line_items %} + + + + + + + + {% endfor %} + + + + + + + + {% for discount in order.discounts %} + + + + + {% endfor %} + + {% for shipping_method in order.shipping_methods %} + + + + + {% endfor %} + + {% for tax_line in order.tax_lines %} + + + + + {% endfor %} + + + + + + +
    {{ 'customer.order.product' | t }}{{ 'customer.order.sku' | t }}{{ 'customer.order.price' | t }}{{ 'customer.order.quantity' | t }}{{ 'customer.order.total' | t }}
    + {{ line_item.title }} + {% if line_item.fulfillment %} +
    + {%- assign created_at = line_item.fulfillment.created_at | date: format: 'month_day_year' -%} + {{ 'customer.order.fulfilled_at' | t: date: created_at }} +
    + {% if line_item.fulfillment.tracking_url %} + + {{ 'customer.order.track_shipment' | t }} + + {% endif %} +
    + {{ line_item.fulfillment.tracking_company }} + {% if line_item.fulfillment.tracking_number %} #{{ line_item.fulfillment.tracking_number }} {% endif %} +
    +
    +
    + {% endif %} +
    {{ line_item.sku }}{{ line_item.price | money }}{{ line_item.quantity }}{{ line_item.quantity | times: line_item.price | money }}
    {{ 'customer.order.subtotal' | t }}{{ order.subtotal_price | money }}
    {{ discount.code }} {{ 'customer.order.discount' | t }}{{ discount.savings | money }}
    {{ 'customer.order.shipping' | t }} ({{ shipping_method.title }}){{ shipping_method.price | money }}
    {{ 'customer.order.tax' | t }} ({{ tax_line.title }} {{ tax_line.rate | times: 100 }}%){{ tax_line.price | money }}
    {{ 'customer.order.total' | t }}{{ order.total_price | money }} {{ order.currency }}
    +
    +
    +

    {{ 'customer.order.billing_address' | t }}

    +

    {{ 'customer.order.payment_status' | t }}: {{ order.financial_status_label }}

    + {{ order.billing_address | format_address }} + +

    {{ 'customer.order.shipping_address' | t }}

    +

    {{ 'customer.order.fulfillment_status' | t }}: {{ order.fulfillment_status_label }}

    + {{ order.shipping_address | format_address }} +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Account", + "class": "jsAccounts", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Mein Konto" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Informationen zu Ihrer Bestellung" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/customer-register.liquid b/shopify/sections/customer-register.liquid new file mode 100644 index 00000000..e5e927f8 --- /dev/null +++ b/shopify/sections/customer-register.liquid @@ -0,0 +1,170 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} +{%- assign link_text = section.settings.link_text -%} + +
    +
    +
    +

    {{ title }}

    + +

    {{ subtitle }}

    +
    +
    + {% form 'create_customer', class: 'form form--base' %} + {%- if form.errors -%} +
    + {{ form.errors | default_errors }} +
    + {%- endif -%} + + + + + + + + + + + + {{ link_text }} + {% endform %} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Register", + "class": "jsAccounts", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Erstelle jetzt einen Account" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Erstelle ein Konto, um deine Bestellungen zu verfolgen" + }, + { + "type": "text", + "id": "link_text", + "label": "Footer link text", + "default": "Du hast einen Account? Anmelden" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/customer-reset-password.liquid b/shopify/sections/customer-reset-password.liquid new file mode 100644 index 00000000..04c03c9f --- /dev/null +++ b/shopify/sections/customer-reset-password.liquid @@ -0,0 +1,117 @@ + + +
    +
    +
    +

    {{ 'customer.reset_password.title' | t }}

    + +

    {{ 'customer.reset_password.subtext' | t: email: email }}

    +
    +
    + {% form 'reset_customer_password' %} + {%- if form.errors -%} +
    + {{ form.errors | default_errors }} +
    + {%- endif -%} + + + + + + + {% endform %} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Reset password", + "class": "jsAccounts", + "settings": [ + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/depr-rich-text.liquid b/shopify/sections/depr-rich-text.liquid new file mode 100644 index 00000000..b3bb799b --- /dev/null +++ b/shopify/sections/depr-rich-text.liquid @@ -0,0 +1,332 @@ +
    +
    +
    + {% if section.settings.section_title != blank %} +
    +

    {{ section.settings.section_title | escape }}

    +
    + {% endif %} + {% if section.settings.text != blank %} +
    {{ section.settings.text }}
    + {% endif %} +
    +
    +
    + + + +{% schema %} +{ + "name": { + "cs": "Formát RTF", + "da": "RTF", + "de": "Depr Rich Text", + "en": "Rich text", + "es": "Texto enriquecido", + "fi": "Rich text", + "fr": "Texte enrichi", + "it": "Rich text", + "ja": "リッチテキスト", + "ko": "Rich text", + "nb": "Rich text", + "nl": "Tekst met opmaak", + "pl": "Tekst sformatowany", + "pt-BR": "Rich text", + "pt-PT": "Texto formatado", + "sv": "Rich text", + "th": "Rich Text", + "tr": "Zengin metin", + "vi": "Văn bản đa dạng thức", + "zh-CN": "富文本", + "zh-TW": "RTF 文字" + }, + "class": "index-section", + "settings": [ + { + "type": "checkbox", + "id": "full_width", + "label": { + "cs": "Zobrazení na šířku", + "da": "Bred visning", + "de": "Breitbild-Display", + "en": "Wide display", + "es": "Pantalla ancha", + "fi": "Laaja näyttö", + "fr": "Affichage large", + "it": "Visualizzazione ampia", + "ja": "ワイドディスプレイ", + "ko": "너비 표시", + "nb": "Bred visning", + "nl": "Brede weergave", + "pl": "Szerokie wyświetlanie", + "pt-BR": "Exibição ampla", + "pt-PT": "Exibição ampla", + "sv": "Breddvisning", + "th": "การแสดงผลแบบกว้าง", + "tr": "Geniş görünüm", + "vi": "Hiển thị rộng", + "zh-CN": "宽显示屏", + "zh-TW": "寬螢幕" + } + }, + { + "type": "text", + "id": "section_title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Informujte o své značce", + "da": "Fortæl om dit brand", + "de": "Rede über deine Marke", + "en": "Talk about your brand", + "es": "Habla de tu marca", + "fi": "Kerro brändistäsi", + "fr": "Parlez de votre marque", + "it": "Parla del tuo brand", + "ja": "あなたのブランドについて語る", + "ko": "브랜드에 대해 이야기하기", + "nb": "Snakk om merkevaren din", + "nl": "Vertel over je merk", + "pl": "Opowiedz o swojej marce", + "pt-BR": "Fale sobre a sua marca", + "pt-PT": "Fale sobre a sua marca", + "sv": "Prata om ditt varumärke", + "th": "พูดถึงแบรนด์ของคุณ", + "tr": "Markanızdan bahsedin", + "vi": "Chia sẻ về thương hiệu của bạn", + "zh-CN": "介绍您的品牌", + "zh-TW": "描述您的品牌" + } + }, + { + "type": "richtext", + "id": "text", + "label": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "default": { + "cs": "

    Informujte zákazníky prostřednictvím tohoto textu o své značce. Zároveň můžete popsat některý z produktů, oznámit důležité informace nebo přivítat zákazníky ve svém obchodě.

    ", + "da": "

    Brug denne tekst til at dele oplysninger om dit brand med dine kunder. Beskriv et produkt, del meddelelser, eller byd kunder velkommen til din butik.

    ", + "de": "

    Hier kannst du mehr über deine Marke erzählen. Beschreibe ein Produkt, kündige etwas an oder erstelle eine Willkommensnachricht für deine Kunden.

    ", + "en": "

    Use this text to share information about your brand with your customers. Describe a product, share announcements, or welcome customers to your store.

    ", + "es": "

    Usa este texto para compartir información sobre tu marca con tus clientes. Describe un producto, comparte anuncios o recibe clientes en tu tienda.

    ", + "fi": "

    Tämän tekstin avulla voit jakaa brändiäsi koskevia tietoja asiakkaille. Kuvaile tuotetta, jaa ilmoituksia tai toivota asiakkaat tervetulleiksi kauppaasi.

    ", + "fr": "

    Utilisez ce texte pour partager des informations sur votre marque. Décrivez un produit, partagez des annonces, ou souhaitez la bienvenue à vos clients.

    ", + "it": "

    Utilizza questo testo per condividere le informazioni sul tuo brand con i tuoi clienti. Descrivi un prodotto, condividi gli annunci o dai il benvenuto ai clienti nel tuo negozio.

    ", + "ja": "

    このテキストを使用して、あなたのブランドに関する情報をお客様と共有します。商品を説明したり、告知の共有をしたり、あるいはあなたのストアのお客様を歓迎します。

    ", + "ko": "

    이 텍스트를 사용하여 고객과 브랜드에 대한 정보를 공유하십시오. 제품 설명, 공지 사항 공유 또는 고객의 스토어 방문을 환영합니다.

    ", + "nb": "

    Bruk denne teksten for å dele informasjon om merkevaren med kundene dine. Beskriv et produkt, del kunngjøringer eller ønsk kunder velkommen til butikken din.

    ", + "nl": "

    Gebruik deze tekst om informatie over je merk te delen met je klanten. Beschrijf een product, deel aankondigingen of verwelkom klanten in je winkel.

    ", + "pl": "

    Użyj tego tekstu, aby udostępnić klientom informacje o swojej marce. Opisz produkt, udostępnij ogłoszenia lub przywitaj klientów w swoim sklepie.

    ", + "pt-BR": "

    Use este texto para compartilhar informações sobre sua marca com seus clientes. Descreva um produto, compartilhe novidades ou receba os clientes em sua loja.

    ", + "pt-PT": "

    Utilize este texto para partilhar informações sobre a sua marca com seus clientes. Descreva um produto, partilhe comunicados ou receba clientes na sua loja.

    ", + "sv": "

    Använd den här texten för att dela information om ditt varumärke med dina kunder. Beskriv en produkt, dela meddelanden eller välkomna kunder till din butik.

    ", + "th": "

    ใช้ข้อความนี้ในการแชร์ข้อมูลเกี่ยวกับแบรนด์ของคุณกับลูกค้าของคุณ อธิบายคุณสมบัติของสินค้า แชร์ประกาศ หรือต้อนรับลูกค้าสู่ร้านค้าของคุณ

    ", + "tr": "

    Müşterilerinizle markanız hakkında bilgi paylaşmak için bu metni kullanın. Ürün açıklaması girin, duyuru paylaşın veya mağazanıza gelen müşterileri karşılayın.

    ", + "vi": "

    Sử dụng văn bản này để chia sẻ thông tin về thương hiệu của bạn với khách hàng. Mô tả sản phẩm, chia sẻ thông báo hoặc chào mừng khách hàng tới cửa hàng của bạn.

    ", + "zh-CN": "

    使用此文本与您的客户分享有关您品牌的信息。描述产品、分享公告或欢迎客户访问您的商店。

    ", + "zh-TW": "

    您可以用這段文字和顧客分享品牌資訊、描述產品、分享公告,或歡迎顧客光臨您的商店。

    " + } + }, + { + "type": "select", + "id": "text_size", + "label": { + "cs": "Velikost", + "da": "Størrelse", + "de": "Größe", + "en": "Size", + "es": "Tamaño", + "fi": "Koko", + "fr": "Taille", + "it": "Dimensione", + "ja": "サイズ", + "ko": "사이즈", + "nb": "Størrelse", + "nl": "Grootte", + "pl": "Rozmiar", + "pt-BR": "Tamanho", + "pt-PT": "Tamanho", + "sv": "Storlek", + "th": "ขนาด", + "tr": "Boyut", + "vi": "Cỡ", + "zh-CN": "尺寸", + "zh-TW": "尺寸" + }, + "default": "medium", + "options": [ + { + "label": { + "cs": "Malá", + "da": "Lille", + "de": "Klein", + "en": "Small", + "es": "Pequeño", + "fi": "Pieni", + "fr": "Petite", + "it": "Piccolo", + "ja": "小", + "ko": "스몰", + "nb": "Liten", + "nl": "Klein", + "pl": "Mały", + "pt-BR": "Pequeno", + "pt-PT": "Pequeno", + "sv": "Liten", + "th": "เล็ก", + "tr": "Küçük", + "vi": "Nhỏ", + "zh-CN": "小", + "zh-TW": "小型" + }, + "value": "small" + }, + { + "label": { + "cs": "Střední", + "da": "Medium", + "de": "Mittel", + "en": "Medium", + "es": "Mediano", + "fi": "Keskisuuri", + "fr": "Moyenne", + "it": "Medio", + "ja": "中", + "ko": "보통", + "nb": "Middels", + "nl": "Gemiddeld", + "pl": "Średnie", + "pt-BR": "Médio", + "pt-PT": "Intermédio", + "sv": "Medium", + "th": "ปานกลาง", + "tr": "Orta", + "vi": "Trung bình", + "zh-CN": "中等", + "zh-TW": "中等" + }, + "value": "medium" + }, + { + "label": { + "cs": "Velká", + "da": "Stor", + "de": "Groß", + "en": "Large", + "es": "Grande", + "fi": "Suuri", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "ko": "라지", + "nb": "Stor", + "nl": "Groot", + "pl": "Duży", + "pt-BR": "Grande", + "pt-PT": "Grande", + "sv": "Stor", + "th": "ใหญ่", + "tr": "Büyük", + "vi": "Lớn", + "zh-CN": "大", + "zh-TW": "大型" + }, + "value": "large" + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Formát RTF", + "da": "RTF", + "de": "Depr Rich Text", + "en": "Rich text", + "es": "Texto enriquecido", + "fi": "Rich text", + "fr": "Texte enrichi", + "it": "Rich text", + "ja": "リッチテキスト", + "ko": "Rich text", + "nb": "Rich text", + "nl": "Tekst met opmaak", + "pl": "Tekst sformatowany", + "pt-BR": "Rich text", + "pt-PT": "Texto formatado", + "sv": "Rich text", + "th": "Rich Text", + "tr": "Zengin metin", + "vi": "Văn bản đa dạng thức", + "zh-CN": "富文本", + "zh-TW": "RTF 文字" + }, + "category": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + } + } + ] +} +{% endschema %} diff --git a/shopify/sections/faq.liquid b/shopify/sections/faq.liquid new file mode 100644 index 00000000..b195194b --- /dev/null +++ b/shopify/sections/faq.liquid @@ -0,0 +1,261 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} + +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + + {%- if section.blocks.size > 0 -%} +
    +
    + {%- for block in section.blocks -%} + {%- assign title = block.settings.title -%} + {%- assign content = block.settings.content -%} + +
    +

    {{ title }}

    + {%- render 'icon-arrow-down' -%} +
    +
    +
    + {%- if block.settings.show_ingredients -%} + {%- if product.metafields.custom.bundle_products.value != blank -%} + {%- for bundle_product in product.metafields.custom.bundle_products.value -%} +

    + {%- if bundle_product.metafields.custom.short_title != blank and bundle_product.metafields.custom.unit_name != blank -%} + {{ bundle_product.metafields.custom.short_title }} {{ bundle_product.metafields.custom.unit_name }} + {%- else -%} + {{ bundle_product.title }} + {%- endif -%} +

    + {{ bundle_product.metafields.custom.ingredients }} +

    + {%- endfor -%} + {%- else -%} + {{ product.metafields.custom.ingredients }} + {%- endif -%} + {%- elsif block.settings.show_nutrition -%} + {%- if product.metafields.custom.bundle_products.value != blank -%} + {%- for bundle_product in product.metafields.custom.bundle_products.value -%} + {%- assign nutrition_values = bundle_product.metafields.custom.nutrition_values.value -%} +

    +

    {{ nutrition_values.produktname }}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ 'products.product.nutrition_grams' | t }}{{ 'products.product.nutrition_portion_html' | t }}
    {{ 'products.product.energy' | t }}{{ nutrition_values.energie_100_gr }}{{ nutrition_values.energie_portion}}
    {{ 'products.product.fat' | t }}{{ nutrition_values.fett_100_gr }}{{ nutrition_values.fett_portion}}
    {{ 'products.product.sat_fat' | t }}{{ nutrition_values.gesattigte_fettsauren_100_gr }}{{ nutrition_values.gesattigte_fettsauren_portion}}
    {{ 'products.product.carbs' | t }}{{ nutrition_values.kohlenhydrate_100_gr }}{{ nutrition_values.kohlenhydrate_portion}}
    {{ 'products.product.sugar' | t }}{{ nutrition_values.zucker_100_gr }}{{ nutrition_values.zucker_portion}}
    {{ 'products.product.fibre' | t }}{{ nutrition_values.ballaststoffe_100_gr }}{{ nutrition_values.ballaststoffe_portion}}
    {{ 'products.product.protein' | t }}{{ nutrition_values.eiweiss_100_gr }}{{ nutrition_values.eiweiss_portion}}
    {{ 'products.product.salt' | t }}{{ nutrition_values.salz_100_gr }}{{ nutrition_values.salz_portion}}
    + {%- endfor -%} + {%- else -%} + {%- assign nutrition_values = product.metafields.custom.nutrition_values.value -%} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ 'products.product.nutrition_grams' | t }}{{ 'products.product.nutrition_portion_html' | t }}
    {{ 'products.product.energy' | t }}{{ nutrition_values.energie_100_gr }}{{ nutrition_values.energie_portion}}
    {{ 'products.product.fat' | t }}{{ nutrition_values.fett_100_gr }}{{ nutrition_values.fett_portion}}
    {{ 'products.product.sat_fat' | t }}{{ nutrition_values.gesattigte_fettsauren_100_gr }}{{ nutrition_values.gesattigte_fettsauren_portion}}
    {{ 'products.product.carbs' | t }}{{ nutrition_values.kohlenhydrate_100_gr }}{{ nutrition_values.kohlenhydrate_portion}}
    {{ 'products.product.sugar' | t }}{{ nutrition_values.zucker_100_gr }}{{ nutrition_values.zucker_portion}}
    {{ 'products.product.fibre' | t }}{{ nutrition_values.ballaststoffe_100_gr }}{{ nutrition_values.ballaststoffe_portion}}
    {{ 'products.product.protein' | t }}{{ nutrition_values.eiweiss_100_gr }}{{ nutrition_values.eiweiss_portion}}
    {{ 'products.product.salt' | t }}{{ nutrition_values.salz_100_gr }}{{ nutrition_values.salz_portion}}
    + {%- endif -%} + {%- else -%} + {{ content }} + {%- endif -%} +
    +
    +
    + {%- endfor -%} +
    +
    + {%- endif -%} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "FAQ", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Häufig gestellte Fragen" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Hier haben wir Fragen gesammelt die wir häufig gestellt bekommen." + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "faq_item", + "name": "FAQ item", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Question" + }, + { + "type": "textarea", + "id": "content", + "label": "Answer" + }, + { + "type": "checkbox", + "id": "show_ingredients", + "label": "Show ingredients" + }, + { + "type": "checkbox", + "id": "show_nutrition", + "label": "Show Nutrition" + } + ] + } + ], + "presets": [ + { + "name": "FAQ" + } + ] + } +{% endschema %} diff --git a/shopify/sections/feature-columns.liquid b/shopify/sections/feature-columns.liquid new file mode 100644 index 00000000..42b8dd50 --- /dev/null +++ b/shopify/sections/feature-columns.liquid @@ -0,0 +1,555 @@ +
    + {% if section.settings.title != blank %} +
    +

    {{ section.settings.title | escape }}

    +
    + {% endif %} + +
    + {%- assign grid_item_width = 'medium-up--one-third' -%} + {%- assign max_height = 345 -%} + {% case section.blocks.size %} + {% when 1 %} + {%- assign grid_item_width = 'medium-up--one-half' -%} + {%- assign max_height = 530 -%} + {% when 2 %} + {%- assign grid_item_width = 'medium-up--one-half' -%} + {%- assign max_height = 530 -%} + {% when 4 %} + {%- assign grid_item_width = 'medium-up--one-half' -%} + {%- assign max_height = 530 -%} + {% endcase %} + {% for block in section.blocks %} + {% if section.blocks.size == 5 and forloop.index < 3 %} + {%- assign column_width = 'medium-up--one-half' -%} + {%- assign max_height = 530 -%} + {% else %} + {%- assign column_width = grid_item_width -%} + {% endif %} +
    + {% if block.settings.enable_image %} + {% if block.settings.image != blank %} + {% capture img_id %}TextColumnImage-{{ block.id }}{% endcapture %} + {% capture wrapper_id %}TextColumnImageWrapper-{{ block.id }}{% endcapture %} + {%- assign img_url = block.settings.image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} + {% include 'image-style', image: block.settings.image, height: max_height, wrapper_id: wrapper_id, img_id: img_id %} +
    +
    + {{ block.settings.image.alt | escape }} +
    +
    + + {% else %} +

    + {{ 'image' | placeholder_svg_tag: 'placeholder-svg' }} +

    + {% endif %} + {% endif %} + {% if block.settings.title != blank %} +

    {{ block.settings.title | escape }}

    + {% endif %} + {% if block.settings.text != blank %} +
    {{ block.settings.text }}
    + {% endif %} + + {% if block.settings.button_label != blank and block.settings.button_link != blank %} + {%- capture ariaLabel -%} + {{- block.settings.button_label -}} + {%- if block.settings.button_link.type == 'frontpage_link' -%} + : {{ 'homepage.general.title' | t -}} + {%- elsif block.settings.button_link.type == 'catalog_link' -%} + : {{ 'collections.catalog.title' | t -}} + {%- elsif block.settings.button_link.object.title -%} + : {{ block.settings.button_link.object.title -}} + {%- endif -%} + {%- endcapture -%} + + + {{- block.settings.button_label | escape -}} + + {% endif %} +
    + {% endfor %} +
    + + {% if section.blocks.size == 0 %} + {% include 'no-blocks' %} + {% endif %} +
    + + + +{% schema %} +{ + "name": { + "cs": "Textové sloupce s obrázky", + "da": "Tekstkolonner med billeder", + "de": "Textspalten mit Fotos", + "en": "Text columns with images", + "es": "Columnas de texto con imágenes", + "fi": "Tekstisarakkeet kuvilla", + "fr": "Colonnes de texte et images", + "it": "Colonne di testo con foto", + "ja": "画像付きテキスト列", + "ko": "이미지 포함 텍스트 열", + "nb": "Tekstkolonner med bilder", + "nl": "Kolom met afbeeldingen", + "pl": "Kolumny tekstowe z obrazami", + "pt-BR": "Texto em coluna com imagens", + "pt-PT": "Colunas texto c/ imagens", + "sv": "Textkolumner med bilder", + "th": "คอลัมน์ข้อความพร้อมรูปภาพ", + "tr": "Görsel içeren metin sütunları", + "vi": "Cột văn bản có hình ảnh", + "zh-CN": "带有图片的文本列", + "zh-TW": "附圖片的文字欄" + }, + "class": "index-section", + "settings": [ + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Text. sloupce s obrázky", + "da": "Tekstkolonner med billeder", + "de": "Textspalten mit Fotos", + "en": "Text columns with images", + "es": "Columnas de texto con imágenes", + "fi": "Tekstisarakkeet kuvilla", + "fr": "Colonnes de texte et images", + "it": "Colonne di testo con foto", + "ja": "画像付きテキスト列", + "ko": "이미지 포함 텍스트 열", + "nb": "Tekstkolonner med bilder", + "nl": "Tekstkolommen met afbeeldingen", + "pl": "Kolumny tekstowe z obrazami", + "pt-BR": "Texto em coluna com imagens", + "pt-PT": "Colunas texto c/ imagens", + "sv": "Textkolumner med bilder", + "th": "คอลัมน์ข้อความพร้อมรูปภาพ", + "tr": "Görsel içeren metin sütunları", + "vi": "Cột văn bản có hình ảnh", + "zh-CN": "带有图片的文本列", + "zh-TW": "附圖片的文字欄" + } + }, + { + "type": "select", + "id": "align_text", + "label": { + "cs": "Zarovnání textu", + "da": "Tekstjustering", + "de": "Textausrichtung", + "en": "Text alignment", + "es": "Alineación de texto", + "fi": "Tekstin tasaus", + "fr": "Alignement du texte", + "it": "Allineamento del testo", + "ja": "テキストアラインメント", + "ko": "텍스트 정렬", + "nb": "Tekstjustering", + "nl": "Tekstuitlijning", + "pl": "Wyrównanie tekstu", + "pt-BR": "Alinhamento de texto", + "pt-PT": "Alinhamento de texto", + "sv": "Textjustering", + "th": "การจัดตำแหน่งข้อความ", + "tr": "Metin hizalaması", + "vi": "Căn chỉnh văn bản", + "zh-CN": "文本对齐方式", + "zh-TW": "文字對齊" + }, + "default": "left", + "options": [ + { + "value": "left", + "label": { + "cs": "Doleva", + "da": "Venstre", + "de": "Links", + "en": "Left", + "es": "Izquierda", + "fi": "Vasen", + "fr": "Gauche", + "it": "Sinistra", + "ja": "左", + "ko": "왼쪽", + "nb": "Venstre", + "nl": "Links", + "pl": "Do lewej", + "pt-BR": "Esquerda", + "pt-PT": "Esquerda", + "sv": "Vänster", + "th": "ด้านซ้าย", + "tr": "Sol", + "vi": "Bên trái", + "zh-CN": "左侧", + "zh-TW": "左方" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "Centreret", + "de": "Mittig", + "en": "Centered", + "es": "Centrado", + "fi": "Keskitetty", + "fr": "Centré", + "it": "Centrato", + "ja": "中央揃え", + "ko": "센터 맞추기", + "nb": "Sentrert", + "nl": "Gecentreerd", + "pl": "Wyśrodkowane", + "pt-BR": "Centralizado", + "pt-PT": "Centrado", + "sv": "Centrera", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Giữa", + "zh-CN": "居中", + "zh-TW": "置中" + } + } + ] + } + ], + "blocks": [ + { + "type": "text_block", + "name": { + "cs": "Sloupec", + "da": "Kolonne", + "de": "Spalte", + "en": "Column", + "es": "Columna", + "fi": "Sarake", + "fr": "Colonne", + "it": "Colonna", + "ja": "列", + "ko": "칼럼", + "nb": "Kolonne", + "nl": "Kolom", + "pl": "Kolumna", + "pt-BR": "Coluna", + "pt-PT": "Coluna", + "sv": "Kolumn", + "th": "คอลัมน์", + "tr": "Sütun", + "vi": "Cột", + "zh-CN": "列", + "zh-TW": "欄" + }, + "settings": [ + { + "type": "checkbox", + "id": "enable_image", + "label": { + "cs": "Zobrazit obrázek", + "da": "Vis billede", + "de": "Foto anzeigen", + "en": "Show image", + "es": "Mostrar imagen", + "fi": "Näytä kuva", + "fr": "Afficher l'image", + "it": "Mostra immagine", + "ja": "画像を表示する", + "ko": "이미지 표시", + "nb": "Vis bilde", + "nl": "Toon afbeelding", + "pl": "Pokaż obraz", + "pt-BR": "Exibir imagem", + "pt-PT": "Mostrar imagem", + "sv": "Visa bild", + "th": "แสดงรูปภาพ", + "tr": "Görseli göster", + "vi": "Hiển thị hình ảnh", + "zh-CN": "显示图片", + "zh-TW": "顯示圖片" + }, + "default": true + }, + { + "type": "image_picker", + "id": "image", + "label": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + } + }, + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Přidejte nadpis nebo slogan", + "da": "Tilføj en titel eller et slogan", + "de": "Titel oder Text hinzufügen", + "en": "Add a title or tagline", + "es": "Agregar un título o eslogan", + "fi": "Lisää otsikko tai iskulause", + "fr": "Ajouter un titre ou un slogan", + "it": "Aggiungi un titolo o una tagline", + "ja": "タイトルまたはキャッチコピーを追加する", + "ko": "제목 또는 슬로건 추가", + "nb": "Legg til en tittel eller er slagord", + "nl": "Voeg een titel of een slogan toe", + "pl": "Dodaj tytuł lub slogan", + "pt-BR": "Adicione um título ou slogan", + "pt-PT": "Adicionar título ou slogan", + "sv": "Lägg till en titel eller tagline", + "th": "เพิ่มชื่อเรื่องหรือสโลแกน", + "tr": "Başlık ve slogan ekleyin", + "vi": "Thêm tiêu đề hoặc câu đúc kết", + "zh-CN": "添加标题或标语", + "zh-TW": "新增標題或標語" + } + }, + { + "type": "richtext", + "id": "text", + "label": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "default": { + "cs": "

    Sdílejte se zákazníky příspěvky na blogu a informace o produktech či propagačních akcích. Prostřednictvím tohoto textu můžete popsat produkty, informovat o dostupnosti a stylu nebo vytvořit sekci pro nejnovější recenze a nejčastější dotazy.

    ", + "da": "

    Del blogopslag, produkter eller reklamer med dine kunder. Brug denne tekst til at beskrive produkter, dele detaljer om tilgængelighed og stil eller som et sted til at vise dine seneste anmeldelser eller ofte stillede spørgsmål.

    ", + "de": "

    Informiere deine Kunden über Blog-Beiträge, Produkte oder Werbeaktionen. Nutze diesen Text, um Produkte zu beschreiben, Details zur Verfügbarkeit und zum Stil mitzuteilen oder um neue Bewertungen oder FAQs anzuzeigen.

    ", + "en": "

    Share blog posts, products, or promotions with your customers. Use this text to describe products, share details on availability and style, or as a space to display recent reviews or FAQs.

    ", + "es": "

    Comparte entradas de blogs, productos o promociones con tus clientes. Usa este texto para describir productos, compartir detalles sobre la disponibilidad y el estilo, o como un espacio para mostrar reseñas recientes o preguntas frecuentes.

    ", + "fi": "

    Jaa blogikirjoituksia, tuotteita tai kampanjoita asiakkaidesi kanssa. Tällä tekstillä voit kuvata tuotteita, jakaa tietoja saatavuudesta ja tyylistä tai käyttää sitä tilana viimeisimmille arvosteluille tai yleisille kysymyksille.

    ", + "fr": "

    Partagez des articles de blog, des produits ou des promotions avec vos clients. Utilisez ce texte pour décrire vos produits, partager des détails sur leur disponibilité ou leur style, ou encore pour afficher des FAQ et avis récents.

    ", + "it": "

    Condividi articoli del blog, prodotti o promozioni con i tuoi clienti. Utilizza questo spazio per descrivere i prodotti, condividendo dettagli sulla loro disponibilità e sul loro stile, oppure per mostrare recensioni recenti o domande frequenti.

    ", + "ja": "

    ブログ記事、商品、またはプロモーションをお客様に伝えます。このテキストで商品について説明し、出品状況やスタイルの詳細を共有するか、最近のレビューやFAQを表示するスペースとして使用します。

    ", + "ko": "

    블로그 게시물, 제품 또는 프로모션을 고객과 공유하십시오. 이 텍스트를 사용하여 제품을 설명하고 사용 가능성 및 스타일에 대한 세부 정보를 공유하거나 최근 리뷰 또는 FAQ를 표시할 수 있는 공간으로 사용하십시오.

    ", + "nb": "

    Del blogginnlegg, produkter eller kampanjer med kundene dine. Bruk denne teksten til å beskrive produkter, dele detaljer om tilgjengelighet og stil, eller som et sted for å vise de siste omtalene eller vanlige spørsmål.

    ", + "nl": "

    Deel blogposts, producten of promoties met je klanten. Gebruik deze tekst om producten te beschrijven, details over beschikbaarheid en stijl te delen of als een ruimte om recente beoordelingen of veelgestelde vragen weer te geven.

    ", + "pl": "

    Udostępniaj swoim klientom wpisy na blogu, produkty lub promocje. Użyj tego tekstu do opisania produktów, informowania o dostępności i stylu lub jako przestrzeni do wyświetlania ostatnich recenzji lub Często zadawanych pytań.

    ", + "pt-BR": "

    Compartilhe posts de blogs, produtos ou promoções com seus clientes. Use este texto para descrever produtos, compartilhar detalhes sobre disponibilidade e estilo ou como um espaço para exibir comentários recentes ou perguntas frequentes.

    ", + "pt-PT": "

    Partilhe publicações no blogue, produtos ou promoções com os seus clientes. Utilize este texto para descrever produtos, partilhar detalhes sobre disponibilidade e estilo ou como local para mostrar FAQ ou análises recentes.

    ", + "sv": "

    Dela blogginlägg, produkter eller kampanjer med dina kunder. Använd den här texten för att beskriva produkter, dela information om tillgänglighet och stil eller som ett utrymme för att visa senaste recensioner eller vanliga frågor.

    ", + "th": "

    แชร์โพสต์บล็อก สินค้า หรือโปรโมชันกับลูกค้าของคุณ ใช้ข้อความนี้เพื่ออธิบายสินค้า แชร์รายละเอียดเกี่ยวกับความพร้อมจำหน่ายและสไตล์ หรือเป็นพื้นที่เพื่อจัดแสดงรีวิวล่าสุด หรือว่าคำถามที่พบบ่อย

    ", + "tr": "

    Müşterilerinizle blog gönderileri, ürünler ve promosyonlar paylaşın. Ürünleri açıklamak, stok durumu ve stil ile ilgili ayrıntıları paylaşmak veya son değerlendirmeleri ya da SSS'leri göstereceğiniz bir alan olarak yararlanmak için bu metni kullanabilirsiniz.

    ", + "vi": "

    Chia sẻ bài viết blog, sản phẩm, hoặc chương trình ưu đãi với khách hàng. Sử dụng văn bản này để mô tả sản phẩm, chia sẻ thông tin về tình trạng còn hàng và kiểu dáng, hoặc là nơi để hiển thị các đánh giá mới hoặc câu hỏi thường gặp.

    ", + "zh-CN": "

    与您的客户分享博客文章、产品或促销信息。使用此文本描述产品、分享有关供货情况和风格的详细信息,或将此文本作为显示最近评论或常见问题解答的区域。

    ", + "zh-TW": "

    與顧客分享網誌貼文、產品或宣傳活動。請使用這段文字描述商品、分享庫存和樣式的詳細資訊,或顯示近期評論及常見問題。

    " + } + }, + { + "type": "text", + "id": "button_label", + "label": { + "cs": "Text tlačítka", + "da": "Knaptekst", + "de": "Schaltflächenbeschriftung", + "en": "Button label", + "es": "Etiqueta de botón", + "fi": "Tekstipainike", + "fr": "Texte du bouton", + "it": "Etichetta pulsante", + "ja": "ボタンのラベル", + "ko": "버튼 레이블", + "nb": "Knappetikett", + "nl": "Knoplabel", + "pl": "Przycisk z etykietą", + "pt-BR": "Etiqueta de botão", + "pt-PT": "Etiqueta do botão", + "sv": "Knappetikett", + "th": "ป้ายกำกับปุ่ม", + "tr": "Düğme etiketi", + "vi": "Nhãn nút", + "zh-CN": "按钮标签", + "zh-TW": "按鈕標籤" + } + }, + { + "type": "url", + "id": "button_link", + "label": { + "cs": "Tlačítkový odkaz", + "da": "Knaplink", + "de": "Schaltflächenlink", + "en": "Button link", + "es": "Enlace de botón", + "fi": "Painikelinkki", + "fr": "Lien du bouton", + "it": "Link pulsante", + "ja": "ボタンのリンク", + "ko": "버튼 링크", + "nb": "Kobling for knapp", + "nl": "Knoplink", + "pl": "Link przycisku", + "pt-BR": "Link de botão", + "pt-PT": "Ligação do botão", + "sv": "Knapplänk", + "th": "ลิงก์ปุ่ม", + "tr": "Düğme bağlantısı", + "vi": "Liên kết trên nút", + "zh-CN": "按钮链接", + "zh-TW": "按鈕連結" + } + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Text. sloupce s obrázky", + "da": "Tekstkolonner med billeder", + "de": "Textspalten mit Fotos", + "en": "Text columns with images", + "es": "Columnas de texto con imágenes", + "fi": "Tekstisarakkeet kuvilla", + "fr": "Colonnes de texte et images", + "it": "Colonne di testo con foto", + "ja": "画像付きテキスト列", + "ko": "이미지 포함 텍스트 열", + "nb": "Tekstkolonner med bilder", + "nl": "Tekstkolommen met afbeeldingen", + "pl": "Kolumny tekstowe z obrazami", + "pt-BR": "Texto em coluna com imagens", + "pt-PT": "Colunas texto c/ imagens", + "sv": "Textkolumner med bilder", + "th": "คอลัมน์ข้อความพร้อมรูปภาพ", + "tr": "Görsel içeren metin sütunları", + "vi": "Cột văn bản có hình ảnh", + "zh-CN": "带有图片的文本列", + "zh-TW": "附圖片的文字欄" + }, + "category": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "blocks": [ + { + "type": "text_block" + }, + { + "type": "text_block" + }, + { + "type": "text_block" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/feature-row.liquid b/shopify/sections/feature-row.liquid new file mode 100644 index 00000000..444e9cff --- /dev/null +++ b/shopify/sections/feature-row.liquid @@ -0,0 +1,412 @@ +
    + {% capture image_layout %} +
    + {% if section.settings.image != blank %} + {% capture img_id %}FeatureRowImage-{{ section.id }}{% endcapture %} + {% capture wrapper_id %}FeatureRowImageWrapper-{{ section.id }}{% endcapture %} + {%- assign img_url = section.settings.image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} + {% include 'image-style', image: section.settings.image, height: 545, wrapper_id: wrapper_id, img_id: img_id %} +
    +
    + {{ section.settings.image.alt | escape }} +
    +
    + + + {% else %} + {{ 'image' | placeholder_svg_tag: 'placeholder-svg' }} + {% endif %} +
    + {% endcapture %} + +
    + {% if section.settings.layout == 'left' %} + {{ image_layout }} + {% endif %} + +
    + {% if section.settings.title != blank %} +

    {{ section.settings.title | escape }}

    + {% endif %} + {% if section.settings.text != blank %} + + {% endif %} + {% if section.settings.button_label != blank and section.settings.button_link != blank %} + {%- capture ariaLabel -%} + {{- section.settings.button_label -}} + {%- if section.settings.button_link.type == 'frontpage_link' -%} + : {{ 'homepage.general.title' | t -}} + {%- elsif section.settings.button_link.type == 'catalog_link' -%} + : {{ 'collections.catalog.title' | t -}} + {%- elsif section.settings.button_link.object.title -%} + : {{ section.settings.button_link.object.title -}} + {%- endif -%} + {%- endcapture -%} + + + {{- section.settings.button_label | escape -}} + + {% endif %} +
    + + {% if section.settings.layout == 'right' %} + {{ image_layout }} + {% endif %} +
    +
    + + + +{% schema %} +{ + "name": { + "cs": "Obrázek s textem", + "da": "Billede med tekst", + "de": "Foto mit Text", + "en": "Image with text", + "es": "Imagen con texto", + "fi": "Kuva tekstillä", + "fr": "Image avec texte", + "it": "Immagine con testo", + "ja": "テキスト付き画像", + "ko": "텍스트 포함 이미지", + "nb": "Bilde med tekst", + "nl": "Afbeelding met tekst", + "pl": "Obraz z tekstem", + "pt-BR": "Imagem com texto", + "pt-PT": "Imagem com texto", + "sv": "Bild med text", + "th": "รูปภาพพร้อมข้อความ", + "tr": "Metin içeren görsel", + "vi": "Hình ảnh có chữ", + "zh-CN": "带文本图片", + "zh-TW": "附文字的圖片" + }, + "class": "index-section", + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + } + }, + { + "type": "select", + "id": "layout", + "label": { + "cs": "Zarovnání obrázku", + "da": "Justering af billede", + "de": "Fotoausrichtung", + "en": "Image alignment", + "es": "Alineación de imagen", + "fi": "Kuvan tasaus", + "fr": "Alignement de l'image", + "it": "Allineamento immagine", + "ja": "画像アラインメント", + "ko": "이미지 정렬", + "nb": "Bildejustering", + "nl": "Afbeelding uitlijnen", + "pl": "Wyrównanie obrazu", + "pt-BR": "Alinhamento da imagem", + "pt-PT": "Alinhamento da imagem", + "sv": "Bildjustering", + "th": "การจัดวางรูปภาพ", + "tr": "Görsel hizalaması", + "vi": "Căn chỉnh hình ảnh", + "zh-CN": "图片对齐方式", + "zh-TW": "圖片對齊" + }, + "default": "left", + "options": [ + { + "value": "left", + "label": { + "cs": "Doleva", + "da": "Venstre", + "de": "Links", + "en": "Left", + "es": "Izquierda", + "fi": "Vasen", + "fr": "Gauche", + "it": "Sinistra", + "ja": "左", + "ko": "왼쪽", + "nb": "Venstre", + "nl": "Links", + "pl": "Do lewej", + "pt-BR": "Esquerda", + "pt-PT": "Esquerda", + "sv": "Vänster", + "th": "ด้านซ้าย", + "tr": "Sol", + "vi": "Bên trái", + "zh-CN": "左侧", + "zh-TW": "左方" + } + }, + { + "value": "right", + "label": { + "cs": "Doprava", + "da": "Højre", + "de": "Rechts", + "en": "Right", + "es": "Derecha", + "fi": "Oikea", + "fr": "Droite", + "it": "Destra", + "ja": "右", + "ko": "오른쪽", + "nb": "Høyre", + "nl": "Rechts", + "pl": "Do prawej", + "pt-BR": "Direita", + "pt-PT": "Direita", + "sv": "Höger", + "th": "ด้านขวา", + "tr": "Sağ", + "vi": "Bên phải", + "zh-CN": "右侧", + "zh-TW": "右方" + } + } + ] + }, + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Obrázek s textem", + "da": "Billede med tekst", + "de": "Foto mit Text", + "en": "Image with text", + "es": "Imagen con texto", + "fi": "Kuva tekstillä", + "fr": "Image avec texte", + "it": "Immagine con testo", + "ja": "テキスト付き画像", + "ko": "텍스트 포함 이미지", + "nb": "Bilde med tekst", + "nl": "Afbeelding met tekst", + "pl": "Obraz z tekstem", + "pt-BR": "Imagem com texto", + "pt-PT": "Imagem com texto", + "sv": "Bild med text", + "th": "รูปภาพพร้อมข้อความ", + "tr": "Metin içeren görsel", + "vi": "Hình ảnh có chữ", + "zh-CN": "带文本图片", + "zh-TW": "附文字的圖片" + } + }, + { + "type": "richtext", + "id": "text", + "label": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "default": { + "cs": "

    Zkombinujte velký text a obrázek, abyste zaměřili pozornost návštěvníků na zvolený produkt, kolekci či příspěvek na blogu. Pak můžete připojit podrobnosti o dostupnosti a stylu, nebo dokonce recenzi.

    ", + "da": "

    Kombiner stor tekst med et billede for at give dit valgte produkt, din valgte kollektion eller dit valgte blogopslag fokus. Tilføj oplysninger om tilgængelighed, stil og eventuelt også en anmeldelse.

    ", + "de": "

    Kombiniere große Schrift mit einem Bild, um den Fokus auf dein Produkt, deine Kategorie oder deinen Blog-Beitrag zu richten. Du kannst außerdem weitere Details über die Verfügbarkeit oder den Stil und sogar eine Bewertung hinzufügen.

    ", + "en": "

    Pair large text with an image to give focus to your chosen product, collection, or blog post. Add details on availability, style, or even provide a review.

    ", + "es": "

    Vincula un texto largo con una imagen para dar visibilidad a tu producto, colección o artículo de blog seleccionados. Agrega detalles sobre disponibilidad, estilo, o incluso ofrece una reseña.

    ", + "fi": "

    Korosta valitsemaasi tuotetta, kokoelmaa tai blogijulkaisua lisäämällä kuvaan suuri teksti. Lisää saatavuustiedot, määritä tyyli tai näytä vaikkapa arvostelu.

    ", + "fr": "

    Ajoutez une image à un long paragraphe de texte pour mettre l'accent sur un produit de votre choix, une collection, ou un article de blog. Ajoutez des détails sur la disponibilité, le style, ou mettez un commentaire client en avant.

    ", + "it": "

    Associa un testo di grandi dimensioni a un'immagine per dare importanza al prodotto, alla collezione o all'articolo del blog di tua scelta. Aggiungi dettagli sulla disponibilità, sullo stile o fornisci una recensione.

    ", + "ja": "

    あなたが選んだ商品、コレクション、またはブログ記事に注目を集めるため、大きなテキストと画像を組み合わせます。可用性、スタイル、またはレビュー提供についての詳細を追加します。

    ", + "ko": "

    이미지와 큰 텍스트를 짝지어 선택한 제품, 컬렉션, 블로그 게시판을 강조합니다. 사용 가능성, 스타일에 대한 자세한 정보를 추가하거나 리뷰를 제공합니다.

    ", + "nb": "

    Koble stor tekst med et bilde for å drive fokus mot det valgte produktet, samlingen eller blogginnlegget. Legg til detaljer om tilgjengelighet, stil eller vis frem en vurdering.

    ", + "nl": "

    Plaats een afbeelding bij grote stukken tekst om de aandacht op je gekozen product, collectie of blogpost te richten. Voeg details over beschikbaarheid en stijl toe of plaats een productrecensie.

    ", + "pl": "

    Połącz duży tekst z obrazem, aby skierować uwagę na wybrany produkt, kolekcję lub post na blogu. Dodaj szczegóły dotyczące dostępności, stylu lub nawet dołącz recenzję.

    ", + "pt-BR": "

    Emparelhe textos grandes com uma imagem para destacar o produto, a coleção ou o post do blog escolhido. Adicione informações sobre disponibilidade, estilo ou até mesmo uma avaliação.

    ", + "pt-PT": "

    Associe um texto grande a uma imagem para dar ênfase ao produto, coleção ou publicação no blogue que escolheu. Adicione detalhes sobre disponibilidade, estilo ou uma avaliação.

    ", + "sv": "

    Para ihop stor text med en bild för att ge fokus åt din valda produkt, kollektion eller blogginlägg. Lägg till information om tillgänglighet, stil eller tillhandahåll till och med en recension.

    ", + "th": "

    จับคู่ข้อความขนาดใหญ่กับรูปภาพเพื่อให้ความสำคัญกับสินค้า คอลเลกชัน หรือโพสต์บล็อกที่คุณเลือก เพิ่มรายละเอียดเกี่ยวกับความพร้อม สไตล์ หรือแม้กระทั่งเขียนรีวิว

    ", + "tr": "

    Geniş metni bir görselle eşleyerek seçtiğiniz ürüne, koleksiyona veya blog gönderisine dikkat çekin. Stok durumu, stil hakkındaki ayrıntıları ekleyin, hatta inceleme sağlayın.

    ", + "vi": "

    Ghép nối văn bản lớn với hình ảnh để làm nổi bật sản phẩm, bộ sưu tập hoặc bài viết blog đã chọn. Thêm chi tiết về tình trạng còn hàng, kiểu hoặc đưa ra đánh giá.

    ", + "zh-CN": "

    将大文本与图片配对,以便将焦点置于您选择的产品、产品系列或博客文章。添加有关可用性和样式的详细信息,甚至是提供评论。

    ", + "zh-TW": "

    大型文字搭配圖片,以便強調特定產品、商品系列或網誌貼文。您可以加上各種有關可用性、樣式的資料,甚至可以提供使用心得。

    " + } + }, + { + "type": "text", + "id": "button_label", + "label": { + "cs": "Text tlačítka", + "da": "Knaptekst", + "de": "Schaltflächenbeschriftung", + "en": "Button label", + "es": "Etiqueta de botón", + "fi": "Tekstipainike", + "fr": "Texte du bouton", + "it": "Etichetta pulsante", + "ja": "ボタンのラベル", + "ko": "버튼 레이블", + "nb": "Knappetikett", + "nl": "Knoplabel", + "pl": "Przycisk z etykietą", + "pt-BR": "Etiqueta de botão", + "pt-PT": "Etiqueta do botão", + "sv": "Knappetikett", + "th": "ป้ายกำกับปุ่ม", + "tr": "Düğme etiketi", + "vi": "Nhãn nút", + "zh-CN": "按钮标签", + "zh-TW": "按鈕標籤" + } + }, + { + "type": "url", + "id": "button_link", + "label": { + "cs": "Tlačítkový odkaz", + "da": "Knaplink", + "de": "Schaltflächenlink", + "en": "Button link", + "es": "Enlace de botón", + "fi": "Painikelinkki", + "fr": "Lien du bouton", + "it": "Link pulsante", + "ja": "ボタンのリンク", + "ko": "버튼 링크", + "nb": "Kobling for knapp", + "nl": "Knoplink", + "pl": "Link przycisku", + "pt-BR": "Link de botão", + "pt-PT": "Ligação do botão", + "sv": "Knapplänk", + "th": "ลิงก์ปุ่ม", + "tr": "Düğme bağlantısı", + "vi": "Liên kết trên nút", + "zh-CN": "按钮链接", + "zh-TW": "按鈕連結" + } + } + ], + "presets": [ + { + "name": { + "cs": "Obrázek s textem", + "da": "Billede med tekst", + "de": "Foto mit Text", + "en": "Image with text", + "es": "Imagen con texto", + "fi": "Kuva tekstillä", + "fr": "Image avec texte", + "it": "Immagine con testo", + "ja": "テキスト付き画像", + "ko": "텍스트 포함 이미지", + "nb": "Bilde med tekst", + "nl": "Afbeelding met tekst", + "pl": "Obraz z tekstem", + "pt-BR": "Imagem com texto", + "pt-PT": "Imagem com texto", + "sv": "Bild med text", + "th": "รูปภาพพร้อมข้อความ", + "tr": "Metin içeren görsel", + "vi": "Hình ảnh có chữ", + "zh-CN": "带文本图片", + "zh-TW": "附文字的圖片" + }, + "category": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + } + } + ] +} +{% endschema %} diff --git a/shopify/sections/featured-blog.liquid b/shopify/sections/featured-blog.liquid new file mode 100644 index 00000000..3ed87d47 --- /dev/null +++ b/shopify/sections/featured-blog.liquid @@ -0,0 +1,415 @@ +
    + {% if section.settings.title != blank %} +
    +

    {{ section.settings.title | escape }}

    +
    + {% endif %} + + {%- assign blog = blogs[section.settings.blog] -%} + + {% unless blog.articles_count == 0 %} + + {% else %} +
    + {% for i in (1..section.settings.post_limit) %} +
    +
    +

    + {{ 'homepage.onboarding.blog_title' | t }} +

    + + {% if section.settings.blog_show_author %} + + {% endif %} + +
    + {{ 'homepage.onboarding.blog_excerpt' | t }} +
    + + +
    +
    + {% endfor %} +
    + {% endunless %} + + {% if section.settings.show_view_all %} + + + {% endif %} +
    + + + +{% schema %} +{ + "name": { + "cs": "Příspěvky na blogu", + "da": "Blogopslag", + "de": "Blogposts", + "en": "Blog posts", + "es": "Entradas del blog", + "fi": "Blogijulkaisut", + "fr": "Articles de blog", + "it": "Articoli del blog", + "ja": "ブログ記事", + "ko": "블로그 게시물", + "nb": "Blogginnlegg", + "nl": "Blogberichten", + "pl": "Posty na blogu", + "pt-BR": "Posts do blog", + "pt-PT": "Publicações no blogue", + "sv": "Blogginlägg", + "th": "โพสต์บล็อก", + "tr": "Blog gönderileri", + "vi": "Bài viết blog", + "zh-CN": "博客文章", + "zh-TW": "網誌文章" + }, + "class": "index-section", + "settings": [ + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Příspěvky na blogu", + "da": "Blogopslag", + "de": "Blogposts", + "en": "Blog posts", + "es": "Entradas del blog", + "fi": "Blogijulkaisut", + "fr": "Articles de blog", + "it": "Articoli del blog", + "ja": "ブログ記事", + "ko": "블로그 게시물", + "nb": "Blogginnlegg", + "nl": "Blogberichten", + "pl": "Posty na blogu", + "pt-BR": "Posts do blog", + "pt-PT": "Publicações no blogue", + "sv": "Blogginlägg", + "th": "โพสต์บล็อก", + "tr": "Blog gönderileri", + "vi": "Bài viết blog", + "zh-CN": "博客文章", + "zh-TW": "網誌文章" + } + }, + { + "id": "blog", + "type": "blog", + "label": { + "cs": "Blog", + "da": "Blog", + "de": "Blog", + "en": "Blog", + "es": "Blog", + "fi": "Blogi", + "fr": "Blog", + "it": "Blog", + "ja": "ブログ", + "ko": "블로그", + "nb": "Blogg", + "nl": "Blog", + "pl": "Blog", + "pt-BR": "Blog", + "pt-PT": "Blogue", + "sv": "Blogg", + "th": "บล็อก", + "tr": "Blog", + "vi": "Blog", + "zh-CN": "博客", + "zh-TW": "網誌" + } + }, + { + "type": "range", + "id": "post_limit", + "label": { + "cs": "Příspěvky", + "da": "Opslag", + "de": "Posts", + "en": "Posts", + "es": "Publicaciones", + "fi": "Julkaisut", + "fr": "Articles", + "it": "Articoli", + "ja": "投稿", + "ko": "게시물", + "nb": "Innlegg", + "nl": "Berichten", + "pl": "Posty", + "pt-BR": "Posts", + "pt-PT": "Publicações", + "sv": "Inlägg", + "th": "โพสต์", + "tr": "Gönderiler", + "vi": "Bài viết", + "zh-CN": "文章", + "zh-TW": "貼文" + }, + "min": 3, + "max": 12, + "step": 3, + "default": 3 + }, + { + "type": "checkbox", + "id": "blog_show_author", + "label": { + "cs": "Zobrazit autora", + "da": "Vis forfatter", + "de": "Autor anzeigen", + "en": "Show author", + "es": "Mostrar autor", + "fi": "Näytä tekijä", + "fr": "Afficher l'auteur", + "it": "Mostra autore", + "ja": "執筆者を表示する", + "ko": "작성자 표시", + "nb": "Vis forfatter", + "nl": "Auteur weergeven", + "pl": "Pokaż autora", + "pt-BR": "Exibir autor", + "pt-PT": "Mostrar autor", + "sv": "Visa författare", + "th": "แสดงผู้เขียน", + "tr": "Yazarı göster", + "vi": "Hiển thị tác giả", + "zh-CN": "显示作者", + "zh-TW": "顯示作者" + }, + "default": false + }, + { + "type": "checkbox", + "id": "blog_show_date", + "label": { + "cs": "Zobrazit datum", + "da": "Vis dato", + "de": "Datum anzeigen", + "en": "Show date", + "es": "Mostrar fecha", + "fi": "Näytä päivämäärä", + "fr": "Afficher la date", + "it": "Mostra data", + "ja": "日付を表示する", + "ko": "날짜 표시", + "nb": "Vis dato", + "nl": "Datum weergeven", + "pl": "Pokaż datę", + "pt-BR": "Exibir data", + "pt-PT": "Mostrar data", + "sv": "Visa datum", + "th": "แสดงวันที่", + "tr": "Tarihi göster", + "vi": "Hiển thị ngày", + "zh-CN": "显示日期", + "zh-TW": "顯示日期" + }, + "default": true + }, + { + "type": "checkbox", + "id": "show_view_all", + "label": { + "cs": "Zobrazit tlačítko Zobrazit vše", + "da": "Vis knappen \"Se flere\"", + "de": "'Alle anzeigen' Button anzeigen", + "en": "Show 'View all' button", + "es": "Mostrar el botón 'Ver todo'", + "fi": "Näytä \"Näytä kaikki\" -painike", + "fr": "Afficher le bouton “Voir tout”", + "it": "Mostra il pulsante \"Visualizza tutto\"", + "ja": "「すべて表示」ボタンを表示する", + "ko": "'모두 보기' 버튼 표시", + "nb": "Vis «Se alle»-knapp", + "nl": "Knop 'Alles weergeven' weergeven", + "pl": "Pokaż przycisk „Wyświetl wszystkie”", + "pt-BR": "Exibir botão \"Ver tudo\"", + "pt-PT": "Mostrar botão 'Ver tudo'", + "sv": "Visa \"Visa alla\"-knappen", + "th": "แสดงปุ่ม 'ดูทั้งหมด'", + "tr": "\"Tümünü görüntüle\" düğmesini göster", + "vi": "Hiển thị nút \"Xem tất cả\"", + "zh-CN": "显示“查看全部”按钮", + "zh-TW": "顯示「檢視全部」按鈕" + }, + "default": false + } + ], + "presets": [ + { + "name": { + "cs": "Příspěvky na blogu", + "da": "Blogopslag", + "de": "Blogposts", + "en": "Blog posts", + "es": "Entradas del blog", + "fi": "Blogijulkaisut", + "fr": "Articles de blog", + "it": "Articoli del blog", + "ja": "ブログ記事", + "ko": "블로그 게시물", + "nb": "Blogginnlegg", + "nl": "Blogberichten", + "pl": "Posty na blogu", + "pt-BR": "Posts do blog", + "pt-PT": "Publicações no blogue", + "sv": "Blogginlägg", + "th": "โพสต์บล็อก", + "tr": "Blog gönderileri", + "vi": "Bài viết blog", + "zh-CN": "博客文章", + "zh-TW": "網誌文章" + }, + "category": { + "cs": "Blog", + "da": "Blog", + "de": "Blog", + "en": "Blog", + "es": "Blog", + "fi": "Blogi", + "fr": "Blog", + "it": "Blog", + "ja": "ブログ", + "ko": "블로그", + "nb": "Blogg", + "nl": "Blog", + "pl": "Blog", + "pt-BR": "Blog", + "pt-PT": "Blogue", + "sv": "Blogg", + "th": "บล็อก", + "tr": "Blog", + "vi": "Blog", + "zh-CN": "博客", + "zh-TW": "網誌" + }, + "settings": { + "blog": "News", + "post_limit": 3 + } + } + ] +} +{% endschema %} diff --git a/shopify/sections/featured-collections.liquid b/shopify/sections/featured-collections.liquid new file mode 100644 index 00000000..35f5dc56 --- /dev/null +++ b/shopify/sections/featured-collections.liquid @@ -0,0 +1,196 @@ + + +{% comment %} TODO: Rename this section {% endcomment %} + + +{% schema %} +{ + "name": "Featured collections", + "max_blocks": 6, + "settings": [ + { + "type": "text", + "id": "heading_desktop", + "label": "Heading desktop", + "default": "Produkte" + }, + { + "type": "text", + "id": "heading_mobile", + "label": "Heading mobile", + "default": "Produktübersicht" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "background_color_mobile", + "label": "Background Color Mobile", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "accent_color_mobile", + "label": "Accent Color Mobile", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "collection_item", + "name": "Collection", + "settings": [ + { + "type": "collection", + "id": "collection", + "label": "Collection" + }, + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "collection_title", + "label": "Collection Title" + } + ] + } + ], + "presets": [ + { + "name": "Featured collections", + "blocks": [ + { + "type": "collection_item", + "settings": {} + }, + { + "type": "collection_item", + "settings": {} + }, + { + "type": "collection_item", + "settings": {} + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/featured-product.liquid b/shopify/sections/featured-product.liquid new file mode 100644 index 00000000..7142e8f9 --- /dev/null +++ b/shopify/sections/featured-product.liquid @@ -0,0 +1,232 @@ + + +{%- assign product = section.settings.product -%} + +
    +
    + {%- if section.settings.heading != blank -%} +
    +

    + {{ section.settings.heading }} +

    +

    + {%- if section.settings.mobile_heading != blank -%} + {{ section.settings.mobile_heading }} + {%- else -%} + {{ section.settings.heading }} + {%- endif -%} +

    +
    + {%- endif -%} + +
    + + +
    + {%- render 'product-info', product: product, section: section -%} +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% unless product == empty %} + +{% endunless %} + + +{% assign current_variant = product.selected_or_first_available_variant %} + + + + +{% schema %} +{ + "name": "Featured Product", + "settings": [ + { + "type": "product", + "id": "product", + "label": "Product" + }, + { + "type": "text", + "id": "heading", + "label": "Heading" + }, + { + "type": "text", + "id": "mobile_heading", + "label": "Mobile Heading" + }, + { + "type": "checkbox", + "id": "show_price", + "label": "Show Price", + "default": true + }, + { + "type": "text", + "id": "reviews_average_rating", + "label": "Average rating reviews", + "info": "[Metafields] Example - 4.87" + }, + { + "type": "text", + "id": "reviews_quantity_text", + "label": "Quantity of reviews", + "info": "[Metafields] Example - 400 reviews" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + } + ], + "blocks": [ + { + "type": "description", + "name": "Description", + "limit": 1, + "settings": [] + }, + { + "type": "price", + "name": "Price", + "limit": 1, + "settings": [] + }, + { + "type": "buy_button", + "name": "Buy Button", + "limit": 1, + "settings": [ + { + "type": "checkbox", + "id": "show_quantity_selector", + "label": "Show Quantity Selector" + }, + { + "type": "checkbox", + "id": "show_price", + "label": "Show Price" + } + ] + }, + { + "type": "countdown", + "name": "Countdown", + "limit": 1, + "settings": [ + { + "type": "paragraph", + "content": "Countdown will be displayed if the product has a countdown date metafield." + }, + { + "type": "text", + "id": "heading", + "label": "Heading" + }, + { + "type": "color", + "id": "color", + "label": "Color" + }, + { + "type": "color", + "id": "color_time", + "label": "Color for time" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + } + ] + }, + ], + "presets": [ + { + "name": "Featured Product", + } + ] +} +{% endschema %} diff --git a/shopify/sections/featured-products.liquid b/shopify/sections/featured-products.liquid new file mode 100644 index 00000000..dae42480 --- /dev/null +++ b/shopify/sections/featured-products.liquid @@ -0,0 +1,100 @@ +{%- assign sec_sett = section.settings -%} +{%- assign title = sec_sett.title -%} +{%- assign img_1 = sec_sett.img_on_hover_first -%} +{%- assign img_2 = sec_sett.img_on_hover_second -%} + +
    +
    +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + {%- if img_1.src != blank -%} + + + {{ img_1.alt }} + + {%- endif -%} + {%- if img_2.src != blank -%} + + + {{ img_2.alt }} + + {%- endif -%} +
    + + {%- if section.blocks.size > 0 -%} +
    + {%- for block in section.blocks -%} + {%- assign title = block.settings.title -%} + {%- assign content = block.settings.content -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if content -%} +
    {{ content }}
    + {%- endif -%} +
    + {%- endfor -%} +
    + {%- endif -%} +
    +
    + +{% schema %} + { + "name": "new-one", + "settings": [ + { + "type": "textarea", + "id": "title", + "label": "Title", + "info": "Need wrap words text or text to see hover image and wrap 🌱", + "default": "Hey, wir sind treatfuls eine unglaublich leckere und vegane 🌱 Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies, die die Snack 🍫 Industrie revolutionieren 💪 wollen." + }, + { + "type": "image_picker", + "id": "img_on_hover_first", + "info": "For text", + "label": "Tooltip Image 1 on link hover" + }, + { + "type": "image_picker", + "id": "img_on_hover_second", + "info": "For text", + "label": "Tooltip Image 2 on link hover" + } + ], + "blocks": [ + { + "type": "article_item", + "name": "Article item", + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title" + }, + { + "type": "textarea", + "id": "content", + "label": "Content" + } + ] + } + ] + } +{% endschema %} diff --git a/shopify/sections/footer.liquid b/shopify/sections/footer.liquid index 5556c427..349c11da 100644 --- a/shopify/sections/footer.liquid +++ b/shopify/sections/footer.liquid @@ -1,25 +1,67 @@ -
    -
    - {% for link in linklists.footer.links %} - - {{ link.title }} - - {% endfor %} -
    +{% assign sec_sett = section.settings %} -
    - © Shopify Theme Lab -
    -
    +{% capture copyright %} + +{% endcapture %} + + {% schema %} { - "name": "t:sections.footer.name", - "settings": [ - { - "type": "paragraph", - "content": "t:sections.footer.settings.paragraph" - } - ] + "name": "Site Footer", + "settings": [ + { + "type": "textarea", + "id": "copyright_text", + "label": "Copyright text", + "default": "© 2022, snacks with benefits GmbH. Alle Rechte vorbehalten." + } + ], + "blocks": [ + { + "type": "footer_menu", + "name": "Footer menu", + "settings": [ + { + "type": "link_list", + "id": "menu", + "label": "Menu" + } + ] + } + ] } -{% endschema %} \ No newline at end of file +{% endschema %} diff --git a/shopify/sections/global-newsletter-popup.liquid b/shopify/sections/global-newsletter-popup.liquid new file mode 100644 index 00000000..7cd39163 --- /dev/null +++ b/shopify/sections/global-newsletter-popup.liquid @@ -0,0 +1,282 @@ +{% comment %} + Error state: + /?contact%5Btags%5D=prospect%2Cnewsletter&form_type=customer + + Success: + /?customer_posted=true +{% endcomment %} + +{%- assign enable_popup = section.settings.enable_popup -%} +{%- assign title = section.settings.title -%} +{%- assign description = section.settings.description -%} +{%- assign image = section.settings.image -%} +{%- assign image_mobile = section.settings.image_mobile -%} +{%- assign button_text = section.settings.button_text -%} +{%- assign under_button_text = section.settings.under_button_text -%} +{%- assign thank_you_message = section.settings.thank_you_message -%} + +{% if image_mobile == blank %} + {%- assign image_mobile = section.settings.image -%} +{% endif %} + +{% comment %} {% form 'customer' %} +
    + + + + +
    +{% endform %} + +{% form 'create_customer', return_to: routes.all_products_collection_url %} + +{% endform %} {% endcomment %} + +{%- unless request.path contains "/challenge" -%} + {%- if enable_popup -%} + {%- form 'customer', id: "newsletter-popup" -%} + {%- assign name_error = false -%} + {%- assign email_error = false -%} + {%- assign has_errors = false -%} + {%- assign email_error_message = "" -%} + + {%- unless form.posted_successfully? -%} + {%- if form.email != blank -%} + {%- assign has_errors = true -%} + {%- assign email_error = true -%} + {%- assign email_error_message = "Something went wrong. Please, try again." -%} + {%- endif -%} + {%- endunless -%} + + {%- if form.errors != blank -%} + {%- for field in form.errors -%} + {%- assign downcased_field_name = field | downcase -%} + + {%- if downcased_field_name == "first_name" -%} + {%- assign name_error = true -%} + {%- assign has_errors = true -%} + {%- endif -%} + + {%- if downcased_field_name == "email" -%} + {%- assign email_error = true -%} + {%- assign has_errors = true -%} + {%- capture email_error_message -%} + Email field {{ form.errors.messages["email"] }} + {%- endcapture -%} + {%- endif -%} + {%- endfor -%} + {%- endif -%} + + + {%- endform -%} + {%- endif -%} +{%- endunless -%} +{% schema %} + { + "name": "Newsletter Popup", + "settings": [ + { + "type": "header", + "content": "Newsletter Popup" + }, + { + "type": "checkbox", + "id": "enable_popup", + "label": "Enable newsletter popup?" + }, + { + "type": "image_picker", + "id": "image", + "label": "Image", + "info": "Image is for desktop view only" + }, + { + "type": "image_picker", + "id": "image_mobile", + "label": "Image (mobile)", + "info": "Image is for mobile view only" + }, + { + "type": "text", + "id": "title", + "label": "Heading", + "info": "*Recommended maximum character count of 100" + }, + { + "type": "richtext", + "id": "description", + "label": "Content", + "info": "*Recommended maximum character count of 180" + }, + { + "type": "text", + "id": "button_text", + "label": "Button text", + "default": "Jetzt Probierpaket gewinnen!" + }, + { + "type": "richtext", + "id": "under_button_text", + "label": "Under button text" + }, + { + "type": "header", + "content": "Thank You popup" + }, + { + "type": "text", + "id": "thank_you_message", + "label": "Message", + "default": "Thank your for signing up to our newsletter!" + } + ] +} +{% endschema %} + +{% stylesheet %} +{% endstylesheet %} + +{% javascript %} +{% endjavascript %} \ No newline at end of file diff --git a/shopify/sections/header-group.json b/shopify/sections/header-group.json new file mode 100644 index 00000000..a22de1ae --- /dev/null +++ b/shopify/sections/header-group.json @@ -0,0 +1,35 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "type": "header", + "name": "Header", + "sections": { + "announcement_bar_dw4NUd": { + "type": "announcement-bar", + "disabled": true, + "name": "Announcement Bar", + "settings": { + "text": "🌱 100 % vegan 💚 100 % Bio 🍀 100 % natürlich" + } + }, + "header": { + "type": "header", + "settings": { + "main_linklist": "header-menu", + "mobile_left_img": "shopify://shop_images/mobile-menu-img-left.png", + "mobile_right_img": "shopify://shop_images/mobile-menu-img-bottom.png" + } + } + }, + "order": [ + "announcement_bar_dw4NUd", + "header" + ] +} diff --git a/shopify/sections/header.liquid b/shopify/sections/header.liquid index 1309aa21..f0b14774 100644 --- a/shopify/sections/header.liquid +++ b/shopify/sections/header.liquid @@ -1,37 +1,107 @@ -
    - - Logo - +{%- capture header_static_menu -%} + {%- if settings.active_search -%} + + {%- render 'icon-search' -%} + + {%- endif -%} - {% render 'layout-menu' %} + {%- if shop.customer_accounts_enabled -%} + + {%- render 'icon-account' -%} + + {%- endif -%} + + {%- render 'icon-cart' -%} + + {%- if cart.item_count > 99 -%} + 99+ + {%- else -%} + {{- cart.item_count -}} + {%- endif -%} + + +{%- endcapture -%} -
    - {% if shop.customer_accounts_enabled %} - {% if customer %} - - {{ 'action.account' | t }} - - {{ 'action.log_out' | t | customer_logout_link }} - {% else %} - {{ 'action.log_in' | t | customer_login_link }} - {{ 'action.register' | t | customer_register_link }} - {% endif %} - {% endif %} +
    +
    +
    +
    +
    + + + + {%- if settings.active_search -%} + + {%- endif -%} +
    - - {{ 'action.cart' | t }} - -
    + + +
    + + {{- header_static_menu -}} +
    +
    +
    + + + {% render 'predictive-search-container' %}
    {% schema %} { - "name": "t:sections.header.name", - "settings": [ - { - "type": "paragraph", - "content": "t:sections.header.settings.paragraph" - } - ] + "name": "Header", + "enabled_on": { + "groups": ["header"] + }, + "settings": [ + { + "type": "link_list", + "id": "main_linklist", + "label": "Header Menu" + }, + { + "type": "image_picker", + "id": "mobile_left_img", + "label": "Mobile Menu left image" + }, + { + "type": "image_picker", + "id": "mobile_right_img", + "label": "Mobile Menu right image" + } + ] } -{% endschema %} \ No newline at end of file +{% endschema %} diff --git a/shopify/sections/hero.liquid b/shopify/sections/hero.liquid new file mode 100644 index 00000000..a77ec7ea --- /dev/null +++ b/shopify/sections/hero.liquid @@ -0,0 +1,339 @@ + + +{%- if section.settings.desktop_image_height == 'adapt' -%} + {%- assign aspect_ratio_desktop = section.settings.desktop_image.aspect_ratio | default: '16/9' -%} +{%- else -%} + {%- assign aspect_ratio_desktop = section.settings.desktop_image_height -%} +{%- endif -%} +{%- if section.settings.mobile_image_height == 'adapt' -%} + {%- assign aspect_ratio_mobile = section.settings.mobile_image.aspect_ratio | default: '16/9' -%} +{%- else -%} + {%- assign aspect_ratio_mobile = section.settings.mobile_image_height -%} +{%- endif -%} + +
    +
    +
    + {% if section.settings.desktop_image != blank %} + {{ section.settings.desktop_image | image_url: width: 1000 | image_tag: class: 'hero__image hidden-phone' }} + {% endif %} + {% if section.settings.mobile_image != blank %} + {{ + section.settings.mobile_image + | image_url: width: 1000 + | image_tag: class: 'hero__image hero__image--mobile hidden-desktop' + }} + {% endif %} +
    +
    + {% if section.settings.title != blank %} +

    {{ section.settings.title }}

    + {% endif %} + {% if section.settings.text != blank %} +
    {{ section.settings.text }}
    + {% endif %} + {% content_for 'blocks' %} +
    +
    + + {% if section.settings.show_base_triangular_line %} +
    + {%- render 'icon-triangular-line' -%} +
    + {% endif %} +
    + +{% schema %} +{ + "name": "Hero banner", + "class": "index-section index-section--flush", + "max_blocks": 2, + "settings": [ + { + "type": "header", + "content": "Image settings" + }, + { + "type": "image_picker", + "id": "desktop_image", + "label": "Desktop image" + }, + { + "type": "select", + "id": "desktop_image_height", + "label": "Desktop image height", + "default": "adapt", + "options": [ + { + "label": "Adapt to image", + "value": "adapt" + }, + { + "label": "Extra small", + "value": "4/1" + }, + { + "label": "Small", + "value": "3/1" + }, + { + "label": "Medium", + "value": "2.5/1" + }, + { + "label": "Large", + "value": "2/1" + }, + { + "label": "Extra Large", + "value": "1.5/1" + } + ] + }, + { + "type": "image_picker", + "id": "mobile_image", + "label": "Mobile image" + }, + { + "type": "select", + "id": "mobile_image_height", + "label": "Mobile image height", + "default": "adapt", + "options": [ + { + "label": "Adapt to image", + "value": "adapt" + }, + { + "label": "Extra small", + "value": "1.5/1" + }, + { + "label": "Small", + "value": "1/1" + }, + { + "label": "Medium", + "value": "4/5" + }, + { + "label": "Large", + "value": "3/5" + }, + { + "label": "Extra Large", + "value": "1/2" + } + ] + }, + { + "type": "checkbox", + "id": "hide_on_mobile", + "label": "Hide on mobile", + "default": false + }, + { + "type": "header", + "content": "Text settings" + }, + { + "type": "select", + "id": "vertical_alignment_desktop", + "label": "Alignment desktop", + "default": "middle", + "options": [ + { + "value": "top", + "label": "Top" + }, + { + "value": "middle", + "label": "Middle" + }, + { + "value": "bottom", + "label": "Bottom" + } + ] + }, + { + "type": "select", + "id": "horizontal_alignment_desktop", + "label": "Horizontal alignment desktop", + "default": "center", + "options": [ + { + "value": "left", + "label": "Left" + }, + { + "value": "center", + "label": "Center" + }, + { + "value": "right", + "label": "Right" + } + ] + }, + { + "type": "select", + "id": "vertical_alignment_mobile", + "label": "Alignment mobile", + "default": "middle", + "options": [ + { + "value": "top", + "label": "Top" + }, + { + "value": "middle", + "label": "Middle" + }, + { + "value": "bottom", + "label": "Bottom" + } + ] + }, + { + "type": "select", + "id": "horizontal_alignment_mobile", + "label": "Horizontal alignment mobile", + "default": "center", + "options": [ + { + "value": "left", + "label": "Left" + }, + { + "value": "center", + "label": "Center" + }, + { + "value": "right", + "label": "Right" + } + ] + }, + { + "type": "select", + "id": "max_width", + "label": "Max width", + "options": [ + { + "label": "Full width", + "value": "100%" + }, + { + "label": "Fixed width", + "value": "fixed" + } + ] + }, + { + "type": "range", + "id": "max_width_px", + "label": "Max width", + "default": 1200, + "min": 100, + "max": 1600, + "step": 100, + "unit": "px", + "visible_if": "{{ section.settings.max_width == 'fixed' }}" + }, + { + "type": "text", + "id": "title", + "label": "Heading", + "default": "Hero banner" + }, + { + "type": "richtext", + "id": "text", + "label": "Text", + "default": "

    Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.

    " + }, + { + "type": "header", + "content": "Other settings" + }, + { + "type": "color", + "id": "background_color", + "label": "Background color", + "default": "rgba(0,0,0,0)" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "rgba(0,0,0,0)" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "rgba(0,0,0,0)" + }, + { + "type": "checkbox", + "id": "show_base_triangular_line", + "label": "Show base triangular line", + "default": false + } + ], + "blocks": [ + { + "type": "button", + } + ], + "presets": [ + { + "name": "Hero banner" + } + ] +} +{% endschema %} diff --git a/shopify/sections/home-products.liquid b/shopify/sections/home-products.liquid new file mode 100644 index 00000000..a97f5b16 --- /dev/null +++ b/shopify/sections/home-products.liquid @@ -0,0 +1,187 @@ + + +{%- assign sec_sett = section.settings -%} + +
    +
    + {%- if sec_sett.title != blank -%} +

    + {%- endif -%} + + {%- if section.blocks.size > 0 -%} +
    +
    +
    + {%- for block in section.blocks limit: 10 -%} + {%- assign b_sett = block.settings -%} + {%- assign product = all_products[b_sett.product] -%} + {%- assign product_image = product.featured_image -%} + + {%- if forloop.first -%} + + {%- endif -%} + +
    + {%- if product_image != blank -%} + + + + + + + + {{ product_image.alt }} + + + {%- endif -%} + + + {{- sec_sett.link_text -}} + +
    + {% endfor %} +
    +
    +
    + {%- endif -%} +
    +
    + {%- render 'icon-triangular-line' -%} +
    +
    + + +{% schema %} +{ + "name": "Home products", + "max_blocks": 10, + "settings": [ + { + "type": "header", + "content": "Titles" + }, + { + "type": "textarea", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "OMG, a compostable packaging that doesn’t look compostable" + }, + { + "type": "textarea", + "id": "title-second", + "label": "Title second", + "info": "Need wrap words to see background, example", + "default": "OMG, a vegan snack that doesn’t  taste vegan" + }, + { + "type": "textarea", + "id": "title-third", + "label": "Title third", + "info": "Need wrap words to see background, example", + "default": "OMG, a healthy snack, that doesn’t  taste healthy." + }, + { + "type": "text", + "id": "link_text", + "label": "Link text for button in slider", + "default": "Jetzt kaufen" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "checkbox", + "id": "adjust_colors_to_current_slide", + "label": "Adjust colors to current slide", + "default": false, + "info": "Activate this to change the color of the section based on the current product/slide. The colors below only work when this is not selected or if there are products without color settings." + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb", + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd", + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#dbaaeb", + } + ], + "blocks": [ + { + "type": "product_item", + "name": "Product", + "settings": [ + { + "type": "product", + "id": "product", + "label": "Product" + } + ] + } + ], + "presets": [ + { + "name": "Home products", + "category": "Homepage" + } + ] +} +{% endschema %} diff --git a/shopify/sections/home-ticker.liquid b/shopify/sections/home-ticker.liquid new file mode 100644 index 00000000..8622f811 --- /dev/null +++ b/shopify/sections/home-ticker.liquid @@ -0,0 +1,90 @@ + + +
    + {%- if section.blocks.size > 0 -%} +
    + {%- for block in section.blocks -%} + {%- assign text = block.settings.text -%} + {%- assign revert = block.settings.revert -%} + + {%- assign revert_class = '' -%} + {%- assign data_revert = '' -%} + {%- if revert -%} + {%- assign revert_class = 'ticker-wrap--revert' -%} + {%- assign data_revert = 'true' -%} + {%- endif -%} + + {%- if text != blank -%} +
    +
    +
    {{ text }}
    +
    +
    + {%- endif -%} + {%- endfor -%} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    + {% endif %} +
    + +{% schema %} +{ + "name": "Home ticker", + "settings": [ + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#2ac2bd" + } + ], + "blocks": [ + { + "type": "ticker_item", + "name": "Ticker item line", + "settings": [ + { + "type": "checkbox", + "id": "revert", + "label": "Revert line animation", + "default": false + }, + { + "type": "text", + "id": "text", + "label": "Text" + } + ] + } + ], + "presets": [ + { + "name": "Home ticker", + "category": "Homepage" + } + ] +} +{% endschema %} diff --git a/shopify/sections/image-bar.liquid b/shopify/sections/image-bar.liquid new file mode 100644 index 00000000..19d4574d --- /dev/null +++ b/shopify/sections/image-bar.liquid @@ -0,0 +1,557 @@ +
    + {% case section.blocks.size %} + {% when 1 %} + {%- assign column_size = '' -%} + {% when 2 %} + {%- assign column_size = 'medium-up--one-half' -%} + {% when 3 %} + {%- assign column_size = 'medium-up--one-third' -%} + {% else %} + {%- assign column_size = 'medium-up--one-quarter' -%} + {% endcase %} + + {% for block in section.blocks %} + + +{% if section.blocks.size == 0 %} + {% include 'no-blocks' %} +{% endif %} + + + +{% schema %} +{ + "name": { + "cs": "Galerie", + "da": "Galleri", + "de": "Galerie", + "en": "Gallery", + "es": "Galería", + "fi": "Galleria", + "fr": "Galerie", + "it": "Galleria", + "ja": "ギャラリー", + "ko": "갤러리", + "nb": "Galleri", + "nl": "Galerie", + "pl": "Galeria", + "pt-BR": "Galeria", + "pt-PT": "Galeria", + "sv": "Galleri", + "th": "แกลเลอรี", + "tr": "Galeri", + "vi": "Bộ sưu tập ảnh", + "zh-CN": "图库", + "zh-TW": "圖庫" + }, + "class": "index-section index-section--flush", + "max_blocks": 4, + "settings": [ + { + "type": "select", + "id": "section_height", + "label": { + "cs": "Výška sekce", + "da": "Højde på afsnit", + "de": "Abschnittshöhe", + "en": "Section height", + "es": "Altura de la sección", + "fi": "Osan korkeus", + "fr": "Hauteur de la section", + "it": "Altezza sezione", + "ja": "セクションの高さ", + "ko": "섹션 높이", + "nb": "Høyde på del", + "nl": "Sectiehoogte", + "pl": "Wysokość sekcji", + "pt-BR": "Altura da seção", + "pt-PT": "Altura da secção", + "sv": "Sektionshöjd", + "th": "ความสูงของส่วน", + "tr": "Bölüm yüksekliği", + "vi": "Chiều cao mục", + "zh-CN": "分区高度", + "zh-TW": "區塊高度" + }, + "default": "medium", + "options": [ + { + "label": { + "cs": "Extra malá", + "da": "Ekstra lille", + "de": "Extra klein", + "en": "Extra Small", + "es": "Extra pequeña", + "fi": "Erikoispieni", + "fr": "Très petite", + "it": "Molto piccola", + "ja": "極小", + "ko": "특소", + "nb": "Ekstra liten", + "nl": "Extra klein", + "pl": "Bardzo mała", + "pt-BR": "Muito pequeno", + "pt-PT": "Extra pequeno", + "sv": "Extra liten", + "th": "ขนาดเล็กพิเศษ", + "tr": "Çok Küçük", + "vi": "Cực nhỏ", + "zh-CN": "特小", + "zh-TW": "超小型" + }, + "value": "x-small" + }, + { + "label": { + "cs": "Malá", + "da": "Lille", + "de": "Klein", + "en": "Small", + "es": "Pequeña", + "fi": "Pieni", + "fr": "Petite", + "it": "Piccolo", + "ja": "小", + "ko": "스몰", + "nb": "Liten", + "nl": "Klein", + "pl": "Mała", + "pt-BR": "Pequeno", + "pt-PT": "Pequeno", + "sv": "Liten", + "th": "เล็ก", + "tr": "Küçük", + "vi": "Nhỏ", + "zh-CN": "小", + "zh-TW": "小型" + }, + "value": "small" + }, + { + "label": { + "cs": "Střední", + "da": "Medium", + "de": "Mittel", + "en": "Medium", + "es": "Mediana", + "fi": "Keskisuuri", + "fr": "Moyenne", + "it": "Medio", + "ja": "中", + "ko": "보통", + "nb": "Middels", + "nl": "Gemiddeld", + "pl": "Średnia", + "pt-BR": "Médio", + "pt-PT": "Médio", + "sv": "Medium", + "th": "ปานกลาง", + "tr": "Orta", + "vi": "Trung bình", + "zh-CN": "中等", + "zh-TW": "中等" + }, + "value": "medium" + }, + { + "label": { + "cs": "Velká", + "da": "Stor", + "de": "Groß", + "en": "Large", + "es": "Grande", + "fi": "Suuri", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "ko": "라지", + "nb": "Stor", + "nl": "Groot", + "pl": "Duża", + "pt-BR": "Grande", + "pt-PT": "Grande", + "sv": "Stor", + "th": "ใหญ่", + "tr": "Büyük", + "vi": "Lớn", + "zh-CN": "大", + "zh-TW": "大型" + }, + "value": "large" + }, + { + "label": { + "cs": "Extra velká", + "da": "Ekstra stor", + "de": "Extra groß", + "en": "Extra Large", + "es": "Extra grande", + "fi": "Erikoissuuri", + "fr": "Très grande", + "it": "Molto grande", + "ja": "特大", + "ko": "특대", + "nb": "Ekstra stort", + "nl": "Extra groot", + "pl": "Bardzo duża", + "pt-BR": "Muito grande", + "pt-PT": "Extra grande", + "sv": "Extra stor", + "th": "ขนาดใหญ่พิเศษ", + "tr": "Çok Büyük", + "vi": "Cực lớn", + "zh-CN": "特大", + "zh-TW": "超大型" + }, + "value": "x-large" + } + ] + } + ], + "blocks": [ + { + "type": "image", + "name": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + }, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + } + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Zarovnání obrázku", + "da": "Justering af billede", + "de": "Fotoausrichtung", + "en": "Image alignment", + "es": "Alineación de imagen", + "fi": "Kuvan tasaus", + "fr": "Alignement de l'image", + "it": "Allineamento immagine", + "ja": "画像アラインメント", + "ko": "이미지 정렬", + "nb": "Bildejustering", + "nl": "Afbeelding uitlijnen", + "pl": "Wyrównanie obrazu", + "pt-BR": "Alinhamento da imagem", + "pt-PT": "Alinhamento da imagem", + "sv": "Bildjustering", + "th": "การจัดวางรูปภาพ", + "tr": "Görsel hizalaması", + "vi": "Căn chỉnh hình ảnh", + "zh-CN": "图片对齐方式", + "zh-TW": "圖片對齊" + }, + "default": "center", + "options": [ + { + "value": "top", + "label": { + "cs": "Nahoru", + "da": "Top", + "de": "Oben", + "en": "Top", + "es": "Superior", + "fi": "Ylös", + "fr": "Haut", + "it": "Alto", + "ja": "上", + "ko": "위쪽", + "nb": "Topp", + "nl": "Boven", + "pl": "Do góry", + "pt-BR": "Acima", + "pt-PT": "Acima", + "sv": "Högst upp", + "th": "ด้านบน", + "tr": "Üst", + "vi": "Bên trên", + "zh-CN": "顶部", + "zh-TW": "頂部" + } + }, + { + "value": "center", + "label": { + "cs": "Na střed", + "da": "I midten", + "de": "Mitte", + "en": "Middle", + "es": "Centrada", + "fi": "Keskelle", + "fr": "Milieu", + "it": "Centrale", + "ja": "中央", + "ko": "중간", + "nb": "Midten", + "nl": "Midden", + "pl": "Do środka", + "pt-BR": "Meio", + "pt-PT": "Meio", + "sv": "Mitten", + "th": "ตรงกลาง", + "tr": "Orta", + "vi": "Ở giữa", + "zh-CN": "中间", + "zh-TW": "中央" + } + }, + { + "value": "bottom", + "label": { + "cs": "Dolů", + "da": "Bund", + "de": "Unten", + "en": "Bottom", + "es": "Inferior", + "fi": "Alas", + "fr": "Bas", + "it": "Basso", + "ja": "下", + "ko": "아래쪽", + "nb": "Bunn", + "nl": "Onder", + "pl": "Do dołu", + "pt-BR": "Abaixo", + "pt-PT": "Abaixo", + "sv": "Längst ner", + "th": "ด้านล่าง", + "tr": "Alt", + "vi": "Bên dưới", + "zh-CN": "底部", + "zh-TW": "底部" + } + } + ] + }, + { + "type": "url", + "id": "link", + "label": { + "cs": "Odkaz", + "da": "Link", + "de": "Link", + "en": "Link", + "es": "Enlace", + "fi": "Linkki", + "fr": "Lien", + "it": "Link", + "ja": "リンク", + "ko": "링크", + "nb": "Kobling", + "nl": "Link", + "pl": "Link", + "pt-BR": "Link", + "pt-PT": "Ligação", + "sv": "Länk", + "th": "ลิงก์", + "tr": "Bağlantı", + "vi": "Liên kết", + "zh-CN": "链接", + "zh-TW": "連結" + }, + "info": { + "cs": "Volitelné", + "da": "Valgfri", + "de": "Optional", + "en": "Optional", + "es": "Opcional", + "fi": "Valinnainen", + "fr": "Facultatif", + "it": "Facoltativo", + "ja": "オプション", + "ko": "선택 사항", + "nb": "Valgfritt", + "nl": "Optioneel", + "pl": "Opcjonalnie", + "pt-BR": "Opcional", + "pt-PT": "Opcional", + "sv": "Valfritt", + "th": "ไม่จำเป็น", + "tr": "İsteğe bağlı", + "vi": "Không bắt buộc", + "zh-CN": "可选", + "zh-TW": "(選填)" + } + }, + { + "type": "text", + "id": "cta_label", + "label": { + "cs": "Titulek", + "da": "Billedtekst", + "de": "Bildtext", + "en": "Caption", + "es": "Leyenda", + "fi": "Kuvateksti", + "fr": "Légende", + "it": "Didascalia", + "ja": "キャプション", + "ko": "캡션", + "nb": "Bildetekst", + "nl": "Bijschrift", + "pl": "Napisy", + "pt-BR": "Legenda", + "pt-PT": "Legenda", + "sv": "Rubrik", + "th": "คำบรรยาย", + "tr": "Alt yazı", + "vi": "Phụ đề", + "zh-CN": "字幕", + "zh-TW": "說明" + } + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Galerie", + "da": "Galleri", + "de": "Galerie", + "en": "Gallery", + "es": "Galería", + "fi": "Galleria", + "fr": "Galerie", + "it": "Galleria", + "ja": "ギャラリー", + "ko": "갤러리", + "nb": "Galleri", + "nl": "Galerie", + "pl": "Galeria", + "pt-BR": "Galeria", + "pt-PT": "Galeria", + "sv": "Galleri", + "th": "แกลเลอรี", + "tr": "Galeri", + "vi": "Bộ sưu tập ảnh", + "zh-CN": "图库", + "zh-TW": "圖庫" + }, + "category": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + }, + "blocks": [ + { + "type": "image" + }, + { + "type": "image" + }, + { + "type": "image" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/image-gallery.liquid b/shopify/sections/image-gallery.liquid new file mode 100644 index 00000000..ab929316 --- /dev/null +++ b/shopify/sections/image-gallery.liquid @@ -0,0 +1,426 @@ + + + + +{%- if product == blank -%} + {%- assign product = section.settings.product -%} +{%- endif -%} + +{%- assign is_swiper = false-%} +{%- assign grid_container_quantity = section.settings.grid_container_quantity | plus: 0 -%} + + + +{% schema %} +{ + "name": "Image Gallery Grid", + "settings": [ + { + "type": "product", + "id": "product", + "label": "Product", + "info": "If you want to display a product in the image gallery, you can select it here. The product will be displayed in the image gallery as a button to add to cart." + }, + { + "type": "text", + "id": "heading", + "label": "Heading" + }, + { + "type": "checkbox", + "id": "show_atc_button", + "label": "Show Atc Button", + "default": true + }, + { + "type": "select", + "id": "grid_container_quantity", + "label": "Grid Container Quantity", + "options": [ + { + "value": "1", + "label": "1" + }, + { + "value": "2", + "label": "2" + }, + { + "value": "3", + "label": "3" + }, + { + "value": "4", + "label": "4" + } + ], + "default": "1", + "info": "Here you can set how many overall containers there should be. A Container can be decorated with mulitple images" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + }, + { + "type": "color", + "id": "popup_background_color", + "label": "Popup Background Color" + }, + { + "type": "color", + "id": "popup_text_color", + "label": "Popup Text Color" + } + ], + "blocks": [ + { + "type": "image", + "name": "Image", + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Upload Image" + }, + { + "type": "video", + "id": "video", + "label": "Upload Video" + }, + { + "type": "header", + "content": "Content" + }, + { + "type": "richtext", + "id": "content", + "label": "Grid Popup Content" + }, + { + "type": "range", + "id": "content_position_y", + "label": "Vertical Content Position", + "min": 0, + "max": 100, + "unit": "%", + "step": 5, + "default": 50 + }, + { + "type": "range", + "id": "content_position_x", + "label": "Horizontal Content Position", + "min": 0, + "max": 100, + "unit": "%", + "step": 5, + "default": 50 + }, + { + "type": "header", + "content": "Position" + }, + { + "type": "select", + "id": "grid_number", + "label": "Grid Number", + "info": "Here you can choose, to which grid number the item should belong. It works only if this number is within the grid container quantity in the main settings", + "options": [ + { + "value": "1", + "label": "1" + }, + { + "value": "2", + "label": "2" + }, + { + "value": "3", + "label": "3" + }, + { + "value": "4", + "label": "4" + } + ], + "default": "1" + }, + { + "type": "header", + "content": "Desktop Position" + }, + { + "type": "select", + "id": "column_start", + "label": "Column Start (1 to 24)", + "options": [ + { "value": "1", "label": "Start at 1" }, + { "value": "2", "label": "Start at 2" }, + { "value": "3", "label": "Start at 3 1/4" }, + { "value": "4", "label": "Start at 4" }, + { "value": "5", "label": "Start at 5" }, + { "value": "6", "label": "Start at 6 2/4" }, + { "value": "7", "label": "Start at 7" }, + { "value": "8", "label": "Start at 8" }, + { "value": "9", "label": "Start at 9 3/4" }, + { "value": "10", "label": "Start at 10" }, + { "value": "11", "label": "Start at 11" }, + { "value": "12", "label": "Start at 12 4/4" } + ], + "default": "1" + }, + { + "type": "select", + "id": "column_span", + "label": "Column Span (1 to 24)", + "options": [ + { "value": "1", "label": "1 Column" }, + { "value": "2", "label": "2 Columns" }, + { "value": "3", "label": "3 Columns 1/4" }, + { "value": "4", "label": "4 Columns" }, + { "value": "5", "label": "5 Columns" }, + { "value": "6", "label": "6 Columns 2/4" }, + { "value": "7", "label": "7 Columns" }, + { "value": "8", "label": "8 Columns" }, + { "value": "9", "label": "9 Columns 3/4" }, + { "value": "10", "label": "10 Columns" }, + { "value": "11", "label": "11 Columns" }, + { "value": "12", "label": "12 Columns 4/4" } + ], + "default": "8" + }, + { + "type": "select", + "id": "row_start", + "label": "Row Start", + "options": [ + { "value": "1", "label": "Start at Row 1" }, + { "value": "2", "label": "Start at Row 2" } + ], + "default": "1" + }, + { + "type": "select", + "id": "row_span", + "label": "Row Span", + "options": [ + { "value": "1", "label": "1 Row" }, + { "value": "2", "label": "2 Rows" } + ], + "default": "1" + }, + { + "type": "header", + "content": "Mobile Position" + }, + { + "type": "select", + "id": "column_start_mobile", + "label": "Column Start Mobile (1 to 24)", + "options": [ + { "value": "1", "label": "1 Column" }, + { "value": "2", "label": "2 Columns" }, + { "value": "3", "label": "3 Columns 1/4" }, + { "value": "4", "label": "4 Columns" }, + { "value": "5", "label": "5 Columns" }, + { "value": "6", "label": "6 Columns 2/4" }, + { "value": "7", "label": "7 Columns" }, + { "value": "8", "label": "8 Columns" }, + { "value": "9", "label": "9 Columns 3/4" }, + { "value": "10", "label": "10 Columns" }, + { "value": "11", "label": "11 Columns" }, + { "value": "12", "label": "12 Columns 4/4" } + ], + "default": "1" + }, + { + "type": "select", + "id": "column_span_mobile", + "label": "Column Span Mobile (1 to 24)", + "options": [ + { "value": "1", "label": "1 Column" }, + { "value": "2", "label": "2 Columns" }, + { "value": "3", "label": "3 Columns 1/4" }, + { "value": "4", "label": "4 Columns" }, + { "value": "5", "label": "5 Columns" }, + { "value": "6", "label": "6 Columns 2/4" }, + { "value": "7", "label": "7 Columns" }, + { "value": "8", "label": "8 Columns" }, + { "value": "9", "label": "9 Columns 3/4" }, + { "value": "10", "label": "10 Columns" }, + { "value": "11", "label": "11 Columns" }, + { "value": "12", "label": "12 Columns 4/4" } + ], + "default": "8" + }, + { + "type": "select", + "id": "row_start_mobile", + "label": "Row Start Mobile", + "options": [ + { "value": "1", "label": "Start at Row 1" }, + { "value": "2", "label": "Start at Row 2" }, + { "value": "3", "label": "Start at Row 3" }, + { "value": "4", "label": "Start at Row 4" } + ], + "default": "1" + }, + { + "type": "select", + "id": "row_span_mobile", + "label": "Row Span Mobile", + "options": [ + { "value": "1", "label": "1 Row" }, + { "value": "2", "label": "2 Rows" }, + { "value": "3", "label": "3 Rows" }, + { "value": "4", "label": "4 Rows" } + ], + "default": "1" + } + ] + } + ], + "presets": [ + { + "name": "Image Gallery Grid (24-cell)", + "category": "Custom Sections" + } + ] +} +{% endschema %} \ No newline at end of file diff --git a/shopify/sections/image-with-text.liquid b/shopify/sections/image-with-text.liquid new file mode 100644 index 00000000..9e133681 --- /dev/null +++ b/shopify/sections/image-with-text.liquid @@ -0,0 +1,169 @@ + + +
    +
    +
    +
    + {% for block in section.blocks %} +
    +
    + {% if block.settings.image != blank %} + {{ block.settings.image | image_url: width: 1000 | image_tag: class: 'image-with-text__image-image' }} + {% endif %} +
    +
    +
    + {% if block.settings.title != blank %} +

    {{ block.settings.title }}

    + {% endif %} + {% if block.settings.content != blank %} +
    + {{ block.settings.content }} +
    + {% endif %} +
    + {% if block.settings.button_text != blank %} + {{ block.settings.button_text }} + {% endif %} +
    +
    + {% endfor %} +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Image with text", + "settings": [ + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + }, + { + "type": "header", + "content": "Layout" + }, + { + "type": "range", + "id": "padding_top", + "label": "Padding Top", + "default": 80, + "min": 0, + "max": 100, + "step": 5 + }, + { + "type": "range", + "id": "padding_bottom", + "label": "Padding Bottom", + "default": 40, + "min": 0, + "max": 100, + "step": 5 + } + ], + "blocks": [ + { + "type": "image_with_text", + "name": "Image with text", + "settings": [ + { + "type": "header", + "content": "Content" + }, + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "select", + "id": "image_position", + "label": "Image position", + "options": [ + { + "value": "left", + "label": "Left" + }, + { + "value": "right", + "label": "Right" + } + ], + "default": "left" + }, + { + "type": "text", + "id": "title", + "label": "Title", + "default": "Title" + }, + { + "type": "richtext", + "id": "content", + "label": "Content", + "default": "

    Content

    " + }, + { + "type": "text", + "id": "button_text", + "label": "Button Text", + "default": "Button Text" + }, + { + "type": "url", + "id": "button_url", + "label": "Button URL" + } + ] + } + ], + "presets": [ + { + "name": "Image with text" + } + ] +} +{% endschema %} diff --git a/shopify/sections/instafeed.liquid b/shopify/sections/instafeed.liquid new file mode 100644 index 00000000..467f3508 --- /dev/null +++ b/shopify/sections/instafeed.liquid @@ -0,0 +1 @@ +{{section.settings.html_area}}{% unless section.settings.html_area contains "feed-" %}
    {% endunless %}{%schema%}{"name":"Instafeed App","settings":[{"type":"font_picker","label":"Heading font.","id":"heading_font","default": "helvetica_n4"},{"type":"range","id":"heading_size","min":10,"max":30,"step":1,"unit":"px","label":"Heading Size","default":20},{"type":"range","id":"feed_width","min":50,"max":100,"step":5,"unit":"%","label":"Feed Width","default":100},{"type":"textarea","id":"html_area","label":"Custom Code (optional)"}],"presets":[{"name":"Instafeed App","category":"Instagram Feed"}]}{%endschema%} \ No newline at end of file diff --git a/shopify/sections/judgeme_carousel_section.liquid b/shopify/sections/judgeme_carousel_section.liquid new file mode 100644 index 00000000..8dc3b7fa --- /dev/null +++ b/shopify/sections/judgeme_carousel_section.liquid @@ -0,0 +1,30 @@ +{% comment %} Please do not edit this file. It is automatically updated by Judge.me{% endcomment %} + + +
    + {% include 'judgeme_widgets', widget_type: 'judgeme_featured_carousel', concierge_install: false %} +
    +{% schema %} + { + "name": "Featured Review Carousel", + "settings": [ + { + "type": "range", + "id": "maxwidth", + "min": 480, + "max": 1920, + "step": 40, + "unit": "px", + "label": "Maximum width", + "default": 1080, + "info": "For other settings please go to apps settings" + } + ], + "presets": [ + { + "name": "Featured Review Carousel", + "category": "Judge.me Sections" + } + ] + } +{% endschema %} \ No newline at end of file diff --git a/shopify/sections/klaviyo-popups.liquid b/shopify/sections/klaviyo-popups.liquid new file mode 100644 index 00000000..f2c7273b --- /dev/null +++ b/shopify/sections/klaviyo-popups.liquid @@ -0,0 +1,38 @@ +{% for block in section.blocks %} + {% if block.settings.klaviyo_form != blank %} + +
    +
    + +
    +
    +
    + {% endif %} +{% endfor %} + +{% schema %} +{ + "name": "Klaviyo Popups", + "settings": [], + "blocks": [ + { + "type": "klaviyo_popup", + "name": "Klaviyo Popup", + "settings": [ + { + "type": "text", + "id": "klaviyo_form", + "label": "Klaviyo Form" + } + ] + } + ], + "presets": [ + { + "name": "Klaviyo Popup" + } + ] +} +{% endschema %} diff --git a/shopify/sections/list-collections-template.liquid b/shopify/sections/list-collections-template.liquid new file mode 100644 index 00000000..027b976b --- /dev/null +++ b/shopify/sections/list-collections-template.liquid @@ -0,0 +1,266 @@ +
    +
    +

    + {{- page_title -}} +

    +
    + + {% case section.settings.grid %} + {% when 2 %} + {%- assign grid_item_width = 'medium-up--one-half' -%} + {%- assign image_size = '530x' -%} + {% when 3 %} + {%- assign grid_item_width = 'small--one-half medium-up--one-third' -%} + {%- assign image_size = '350x' -%} + {% when 4 %} + {%- assign grid_item_width = 'small--one-half medium-up--one-quarter' -%} + {%- assign image_size = '250x' -%} + {% when 5 %} + {%- assign grid_item_width = 'small--one-half medium-up--one-fifth' -%} + {%- assign image_size = '225x' -%} + {% endcase %} + +
      + {% if section.settings.display_type == 'all' %} + {% case section.settings.sort %} + {% when 'products_high' or 'products_low' %} + {%- assign collections = collections | sort: 'all_products_count' -%} + {% when 'date' or 'date_reversed' %} + {%- assign collections = collections | sort: 'published_at' -%} + {% endcase %} + {% if section.settings.sort == 'products_low' or section.settings.sort == 'date' or section.settings.sort == 'alphabetical' %} + {% for collection in collections %} +
    • + {% include 'collection-grid-item', collection_image_size: image_size %} +
    • + {% endfor %} + {% else %} + {% for collection in collections reversed %} +
    • + {% include 'collection-grid-item', collection_image_size: image_size %} +
    • + {% endfor %} + {% endif %} + {% else %} + {% for block in section.blocks %} +
    • + {%- assign collection = collections[block.settings.collection] -%} + {% include 'collection-grid-item', collection_image_size: image_size %} +
    • + {% endfor %} + {% endif %} +
    +
    + + + +{% schema %} +{ + "name": { + "de": "Kategorien-Liste Seite", + "en": "Collections list page", + "es": "Lista de colecciones", + "fr": "Liste des collections", + "it": "Elenco collezioni", + "ja": "コレクションリストのページ", + "pt-BR": "Lista de coleções" + }, + "settings": [ + { + "type": "paragraph", + "content": { + "de": "Alle kategorien sind automatisch gelistet. Zum Ändern der Liste wählen Sie 'Ausgewählt' und fügen Sie Kategorien hinzu.", + "en": "All of your collections are listed by default. To customize your list, choose 'Selected' and add collections.", + "es": "Todas tus colecciones están enlistadas por defecto. Para personalizar tu lista, elige 'Seleccionadas' y agrega colecciones.", + "fr": "Toutes vos collections sont listées par défaut. Pour personaliser votre liste, cliquez sur « Sélection » et ajoutez des collections.", + "it": "Tutte le tue collezioni vengono elencate per impostazione predefinita. Per personalizzare il tuo elenco, scegli \"Selezionato\" e aggiungi delle collezioni.", + "ja": "すべてのコレクションがデフォルトで一覧表示されます。一覧をカスタマイズするには、「選択済み」を選択してコレクションを追加します。", + "pt-BR": "Todas as suas coleções são listadas por padrão. Para personalizar sua lista, escolha \"Selecionado\" e adicione coleções." + } + }, + { + "type": "radio", + "id": "display_type", + "label": { + "de": "Collections auswählen, die angezeigt werden sollen", + "en": "Select collections to show", + "es": "Selecciona colecciones para mostrar", + "fr": "Sélectionner les collections à afficher", + "it": "Seleziona le collezioni da mostrare", + "ja": "表示するコレクションを選択する", + "pt-BR": "Selecione coleções para exibir" + }, + "default": "all", + "options": [ + { + "value": "all", + "label": { + "de": "Alle", + "en": "All", + "es": "Todas", + "fr": "Toutes", + "it": "Tutti", + "ja": "すべて", + "pt-BR": "Tudo" + } + }, + { + "value": "selected", + "label": { + "de": "Ausgewählt", + "en": "Selected", + "es": "Seleccionadas", + "fr": "Sélection", + "it": "Selezionato", + "ja": "選択済み", + "pt-BR": "Selecionado" + } + } + ] + }, + { + "type": "select", + "id": "sort", + "label": { + "de": "Kategorien sortieren nach:", + "en": "Sort collections by:", + "es": "Ordenar colecciones por:", + "fr": "Trier les collections par:", + "it": "Ordina le collezioni per:", + "ja": "コレクションの並べ替え方法:", + "pt-BR": "Ordenar coleções por:" + }, + "info": { + "de": "Sortieren funktioniert nur, wenn 'Alle' ausgewählt ist", + "en": "Sorting only applies when 'All' is selected", + "es": "La función ordenar solo se aplica cuando se selecciona \"Todas\"", + "fr": "Le tri ne s'applique que lorsque “Toutes“ est sélectionné", + "it": "L'ordinamento viene applicato solo quanto è selezionato \"Tutto\"", + "ja": "「すべて」が選択されている場合にのみ並べ替えを適用する", + "pt-BR": "A classificação só se aplica quando \"Tudo\" está selecionado" + }, + "default": "alphabetical", + "options": [ + { + "value": "products_high", + "label": { + "de": "Produktanzahl, hoch zu niedrig", + "en": "Product count, high to low", + "es": "Recuento de productos, de mayor a menor", + "fr": "Nombre de produits, ordre décroissant", + "it": "Conteggio decrescente prodotti", + "ja": "商品数の多い順", + "pt-BR": "Contagem de produtos, alta para baixa" + } + }, + { + "value": "products_low", + "label": { + "de": "Produktanzahl, niedrig zu hoch", + "en": "Product count, low to high", + "es": "Recuento de productos, de menor a mayor", + "fr": "Nombre de produits, ordre croissant", + "it": "Conteggio crescente prodotti", + "ja": "商品数の少ない順", + "pt-BR": "Contagem de produtos, baixa para alta" + } + }, + { + "value": "alphabetical", + "label": { + "de": "Alphabetisch, A-Z", + "en": "Alphabetically, A-Z", + "es": "Alfabéticamente, A-Z", + "fr": "Alphabétique, A-Z", + "it": "In ordine alfabetico, A - Z", + "ja": "アルファベット順、 A-Z", + "pt-BR": "Ordem alfabética, A–Z" + } + }, + { + "value": "alphabetical_reversed", + "label": { + "de": "Alphabetisch, Z-A", + "en": "Alphabetically, Z-A", + "es": "Alfabéticamente, Z-A", + "fr": "Alphabétique, Z-A", + "it": "In ordine alfabetico, Z - A", + "ja": "アルファベット順、 Z-A", + "pt-BR": "Ordem alfabética, Z–A" + } + }, + { + "value": "date", + "label": { + "de": "Datum, alt zu neu", + "en": "Date, old to new", + "es": "Fecha: antiguo(a) a reciente", + "fr": "Date, anciennes à récentes", + "it": "Data, dal più vecchio al più recente", + "ja": "古い商品順", + "pt-BR": "Data, mais antiga primeiro" + } + }, + { + "value": "date_reversed", + "label": { + "de": "Datum, neu zu alt", + "en": "Date, new to old", + "es": "Fecha: reciente a antiguo(a)", + "fr": "Date, récentes à anciennes", + "it": "Data, dal più recente al più vecchio", + "ja": "新着順", + "pt-BR": "Data, mais recente primeiro" + } + } + ] + }, + { + "type": "range", + "id": "grid", + "label": { + "de": "Kategorien per Reihe", + "en": "Collections per row", + "es": "Colecciones por fila", + "fr": "Collections par rangée", + "it": "Collezioni per riga", + "ja": "行あたりのコレクション数", + "pt-BR": "Coleções por linha" + }, + "default": 3, + "min": 2, + "max": 5, + "step": 1 + } + ], + "blocks": [ + { + "type": "collection", + "name": { + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "pt-BR": "Coleção" + }, + "settings": [ + { + "label": { + "de": "Kategorie", + "en": "Collection", + "es": "Colección", + "fr": "Collection", + "it": "Collezione", + "ja": "コレクション", + "pt-BR": "Coleção" + }, + "id": "collection", + "type": "collection" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/logo-list.liquid b/shopify/sections/logo-list.liquid new file mode 100644 index 00000000..81002cc0 --- /dev/null +++ b/shopify/sections/logo-list.liquid @@ -0,0 +1,157 @@ + + +{% capture slider_config %} + { + "slidesPerView": 1, + "breakpoints": { + "768": { + "slidesPerView": {% if section.blocks.size > 2 %}3{% else %}{{ section.blocks.size }}{% endif %} + } + } + } +{% endcapture %} + +
    +
    +
    +
    + {%- if section.settings.title or section.settings.subtitle -%} + {%- if section.settings.title != blank -%} +

    {{ section.settings.title }}

    + {%- endif -%} + + {%- if section.settings.subtitle != blank -%} +
    {{ section.settings.subtitle }}
    + {%- endif -%} + {% endif %} +
    + +
    + {% for block in section.blocks %} +
    + {% if block.settings.image != blank %} + + {{ block.settings.image | image_url: width: 800 | image_tag: class: 'logo-list__image' }} + + {% else %} + {{ 'image' | placeholder_svg_tag }} + {% endif %} +
    + {% endfor %} +
    +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Logo list", + "class": "index-section", + "max_blocks": 20, + "settings": [ + { + "type": "text", + "id": "title", + "label": "Heading", + "default": "Logo list" + }, + { + "type": "richtext", + "id": "subtitle", + "label": "Subheading", + "default": "

    Subheading

    " + }, + { + "type": "range", + "id": "font_size_adjustment", + "label": "Font size adjustment", + "default": 100, + "min": 50, + "max": 200, + "step": 5 + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + } + ], + "blocks": [ + { + "type": "logo_image", + "name": "Logo", + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "url", + "id": "link", + "label": "Link", + "info": "Optional" + } + ] + } + ], + "presets": [ + { + "name": "Logo list", + "blocks": [ + { + "type": "logo_image" + }, + { + "type": "logo_image" + }, + { + "type": "logo_image" + }, + { + "type": "logo_image" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/main-404.liquid b/shopify/sections/main-404.liquid deleted file mode 100644 index 71cd7548..00000000 --- a/shopify/sections/main-404.liquid +++ /dev/null @@ -1,2 +0,0 @@ -

    {{ '404.title' | t }}

    -

    {{ '404.text' | t }}

    \ No newline at end of file diff --git a/shopify/sections/main-article.liquid b/shopify/sections/main-article.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-blog.liquid b/shopify/sections/main-blog.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-cart-mini.liquid b/shopify/sections/main-cart-mini.liquid new file mode 100644 index 00000000..e662c069 --- /dev/null +++ b/shopify/sections/main-cart-mini.liquid @@ -0,0 +1,226 @@ + + +{%- assign is_empty_cart = false -%} + +{%- if cart.item_count == 0 -%} + {%- assign is_empty_cart = true -%} +{%- endif -%} + +{% if section.settings.show_upsell -%} + {%- assign has_upsell_items_left = false -%} + {%- assign upsell_products = collections[section.settings.upsell_collection].products -%} + + {%- for upsell_product in upsell_products -%} + {%- assign found_in_cart = false -%} + {%- for item in cart.items -%} + {%- if upsell_product.id == item.product_id -%} + {%- assign found_in_cart = true -%} + {%- break -%} + {%- endif -%} + {%- endfor -%} + {%- unless found_in_cart -%} + {%- assign has_upsell_items_left = true -%} + {%- break -%} + {%- endunless -%} + {%- endfor -%} +{%- endif -%} + +
    + +
    + +
    +
    +
    +
    +
    +

    + {{ 'cart.general.title' | t }} +

    + +
    + {%- if settings.cart_show_free_shipping_threshold and settings.cart_free_shipping_threshold != '' -%} + {%- assign free_shipping_thresholds = settings.cart_free_shipping_threshold | remove: ' ' | split: ',' -%} + {%- assign free_shipping_money = settings.cart_free_shipping_threshold | times: 100 | money -%} + {%- assign has_found_matching_threshold = false -%} + + {%- if free_shipping_thresholds.size > 1 -%} + {%- for threshold in free_shipping_thresholds -%} + {%- assign threshold_parts = threshold | split: ':' -%} + {%- assign currency_code = threshold_parts | first | upcase -%} + + {%- if currency_code == cart.currency.iso_code -%} + {%- assign free_shipping_calculated_threshold = threshold_parts | last -%} + {%- assign has_found_matching_threshold = true -%} + {%- break -%} + {%- endif -%} + {%- endfor -%} + {%- else -%} + {%- assign free_shipping_calculated_threshold = free_shipping_thresholds | last -%} + {%- assign has_found_matching_threshold = true -%} + {%- endif -%} + + {%- if has_found_matching_threshold -%} + {%- assign threshold_in_cents = free_shipping_calculated_threshold | times: 100.0 -%} + + {%- assign calculated_total_price = 0 -%} + + {%- for line_item in cart.items -%} + {%- if line_item.requires_shipping -%} + {%- assign calculated_total_price = calculated_total_price | plus: line_item.final_line_price -%} + {%- endif -%} + {%- endfor -%} + + + {%- if calculated_total_price >= threshold_in_cents -%} + {{ 'cart.general.free_shipping_html' | t }} + {%- else -%} + {%- capture remaining_amount -%}{{ calculated_total_price | minus: threshold_in_cents | abs | money }}{%- endcapture -%} + {{ 'cart.general.free_shipping_remaining_html' | t: remaining_amount: remaining_amount }} + {%- endif -%} + + + {{ 'cart.general.free_shipping_amount' | t: free_shipping_amount: free_shipping_money }} + + +
    + {%- endif -%} + {%- endif -%} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +
    +
    + {{ 'cart.general.mini_cart_item' | t: item_count: cart.item_count }} + {%- if is_empty_cart -%} +
    + {{ 'cart.general.mini_cart_empty_subtitle' | t }} +
    + {%- else -%} +
    + + {%- for item in cart.items -%} + {% render 'cart-item', key: item.key, item: item, is_mini_cart: true %} + {%- endfor -%} +
    + {%- endif -%} + + {%- if has_upsell_items_left -%} + {% render 'cart-upsell', cart: cart, is_mini_cart: true, settings: section.settings, mobile: true -%} + {%- endif -%} +
    +
    + +
    + {%- if has_upsell_items_left -%} + {% render 'cart-upsell', cart: cart, is_mini_cart: true, settings: section.settings, mobile: false -%} + {%- endif -%} +
    +
    +
    + +{%- schema -%} +{ + "name": "Minicart", + "settings": [ + { + "type": "text", + "id": "empty_button_text", + "label": "Button text", + "default": "SHOP ALL", + "info": "Shown when minimap is empty" + }, + { + "type": "url", + "id": "empty_button_url", + "label": "Button url" + }, + { + "type": "header", + "content": "Upsell" + }, + { + "type": "checkbox", + "id": "show_upsell", + "label": "Show Upsell", + "default": true + }, + { + "type": "text", + "id": "upsell_heading", + "label": "Upsell Heading", + "default": "Die perfekte Ergänzung" + }, + { + "type": "collection", + "id": "upsell_collection", + "label": "Upsell Collection" + }, + { + "type": "color", + "id": "upsell_collection_background_desktop", + "label": "Background Color Desktop", + "default": "#9977a5" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2AC2BD" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#F3587F" + } + ] +} +{%- endschema -%} diff --git a/shopify/sections/main-cart.liquid b/shopify/sections/main-cart.liquid index e69de29b..d31c6003 100644 --- a/shopify/sections/main-cart.liquid +++ b/shopify/sections/main-cart.liquid @@ -0,0 +1,115 @@ +{%- assign is_empty_cart = false -%} + +{%- if cart.item_count == 0 -%} + {%- assign is_empty_cart = true -%} +{%- endif -%} + +
    +
    + {% if section.settings.image_left != blank -%} + + + '' + + {%- endif -%} +
    +
    +

    + {% if is_empty_cart -%} + {{ 'cart.general.mini_cart_empty_title' | t }} + {%- else -%} + {{ section.settings.cart_title }} + {%- endif -%} +

    +

    + {% if is_empty_cart -%} + {{ 'cart.general.mini_cart_empty_subtitle' | t }} + {%- else -%} + {{ section.settings.cart_subtitle }} + {%- endif -%} +

    + {%- if is_empty_cart -%} + + {{ 'cart.general.continue_shopping' | t }} + + {%- endif -%} +
    + + {% unless is_empty_cart %} +
    +
    + + {%- for item in cart.items -%} + {% render 'cart-item', item: item, key: item.key %} + {%- endfor -%} +
    +
    + {% endunless %} + +
    + {% if section.settings.image_right != blank -%} + + + '' + + {% endif %} +
    +
    + +{% schema %} + +{ + "name": "Cart", + "class": "cart-section jsCart jsShippingCalculator", + "settings": [ + { + "type": "text", + "id": "cart_title", + "label": "Cart title", + "info": "Need wrap words to see background, example", + "default": "Warenkorb" + }, + { + "type": "text", + "id": "cart_subtitle", + "label": "Cart subtitle", + "default": "Die folgenden Waren befinden sich momentan in deinem Warenkorb." + }, + { + "type": "image_picker", + "id": "image_left", + "label": "Image left background" + }, + { + "type": "image_picker", + "id": "image_right", + "label": "Image right background" + }, + { + "type": "header", + "content": "Layout" + }, + { + "type": "url", + "id": "continue_shopping_url", + "label": "Сontinue Shopping url", + "default": "/collections/all" + } + ] +} + +{% endschema %} diff --git a/shopify/sections/main-collection.liquid b/shopify/sections/main-collection.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-index.liquid b/shopify/sections/main-index.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-list-collections.liquid b/shopify/sections/main-list-collections.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-page-contact.liquid b/shopify/sections/main-page-contact.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-page.liquid b/shopify/sections/main-page.liquid index 824a7c71..247daadd 100644 --- a/shopify/sections/main-page.liquid +++ b/shopify/sections/main-page.liquid @@ -1,2 +1,126 @@ -

    {{ page.title }}

    -
    {{ page.content }}
    \ No newline at end of file + + +
    +
    +
    +
    + {%- if section.settings.title or section.settings.subtitle -%} + {%- if section.settings.title -%} +

    {{ section.settings.title }}

    + {%- endif -%} + + {%- if section.settings.subtitle -%} +
    {{ section.settings.subtitle }}
    + {%- endif -%} + {%- else -%} +

    {{ page.title }}

    + {%- endif -%} +
    +
    + {{ page.content }} +
    +
    +
    +
    + +{% schema %} +{ + "name": "Page", + "settings": [ + { + "type": "header", + "content": "Title" + }, + { + "type": "text", + "id": "title", + "label": "Title" + }, + { + "type": "richtext", + "id": "subtitle", + "label": "Subtitle" + }, + { + "type": "range", + "id": "subtitle_font_size", + "label": "Subtitle Font Size", + "default": 24, + "min": 16, + "max": 48, + "step": 1 + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + }, + { + "type": "header", + "content": "Layout" + }, + { + "type": "range", + "id": "padding_top", + "label": "Padding Top", + "default": 80, + "min": 0, + "max": 100, + "step": 5 + }, + { + "type": "range", + "id": "padding_bottom", + "label": "Padding Bottom", + "default": 40, + "min": 0, + "max": 100, + "step": 5 + } + ], + "presets": [ + { + "name": "Page" + } + ] +} +{% endschema %} diff --git a/shopify/sections/main-password.liquid b/shopify/sections/main-password.liquid deleted file mode 100644 index e69de29b..00000000 diff --git a/shopify/sections/main-product-ingredients.liquid b/shopify/sections/main-product-ingredients.liquid new file mode 100644 index 00000000..e402eef4 --- /dev/null +++ b/shopify/sections/main-product-ingredients.liquid @@ -0,0 +1,254 @@ + + +{% comment %} TODO: Cleanup Section {% endcomment %} + +{%- assign sec_sett = section.settings -%} +{%- assign ingredient_highlights = product.metafields.custom.ingredient_highlights.value -%} + +{%- assign has_bundle_items = false -%} +{%- assign bundle_item_count = 0 -%} + +{%- if product.metafields.custom.bundle_products.value != blank -%} + {%- assign has_bundle_items = true -%} + + {%- for bundle_product in product.metafields.custom.bundle_products.value -%} + {%- assign bundle_item_count = bundle_item_count | plus: 1 -%} + {%- endfor -%} +{%- endif -%} + +{%- capture slider -%} + {%- if ingredient_highlights != blank -%} + + {%- endif -%} +{%- endcapture -%} + +
    +
    + {%- if field_product.ingredients_title != blank -%} +

    {{- field_product.ingredients_title -}}

    + {%- elsif sec_sett.title != blank -%} +

    {{- sec_sett.title -}}

    + {%- endif -%} + + {{ slider }} + +
    +
    + +
    +

    {{ 'products.product.ingredients' | t }}

    + {%- render 'icon-arrow-down' -%} +
    +
    +
    + {%- if product.metafields.custom.bundle_products.value != blank -%} + {%- for bundle_product in product.metafields.custom.bundle_products.value -%} +

    + {%- if bundle_product.metafields.custom.short_title != blank and bundle_product.metafields.custom.unit_name != blank -%} + {{ bundle_product.metafields.custom.short_title }} {{ bundle_product.metafields.custom.unit_name }} + {%- else -%} + {{ bundle_product.title }} + {%- endif -%} +

    + {{ bundle_product.metafields.custom.ingredients }} +

    + {%- endfor -%} + {%- else -%} + {{ product.metafields.custom.ingredients }} + {%- endif -%} +
    +
    +
    + +
    +

    {{ 'products.product.nutrition_table' | t }}

    + {%- render 'icon-arrow-down' -%} +
    +
    +
    + {%- if product.metafields.custom.bundle_products.value != blank -%} + {%- for bundle_product in product.metafields.custom.bundle_products.value -%} + {%- assign nutrition_values = bundle_product.metafields.custom.nutrition_values.value -%} + {%- unless forloop.first -%} +

    + {%- endunless -%} +

    {{ nutrition_values.produktname }}

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ 'products.product.nutrition_grams' | t }}{{ 'products.product.nutrition_portion_html' | t }}
    {{ 'products.product.energy' | t }}{{ nutrition_values.energie_100_gr }}{{ nutrition_values.energie_portion}}
    {{ 'products.product.fat' | t }}{{ nutrition_values.fett_100_gr }}{{ nutrition_values.fett_portion}}
    {{ 'products.product.sat_fat' | t }}{{ nutrition_values.gesattigte_fettsauren_100_gr }}{{ nutrition_values.gesattigte_fettsauren_portion}}
    {{ 'products.product.carbs' | t }}{{ nutrition_values.kohlenhydrate_100_gr }}{{ nutrition_values.kohlenhydrate_portion}}
    {{ 'products.product.sugar' | t }}{{ nutrition_values.zucker_100_gr }}{{ nutrition_values.zucker_portion}}
    {{ 'products.product.fibre' | t }}{{ nutrition_values.ballaststoffe_100_gr }}{{ nutrition_values.ballaststoffe_portion}}
    {{ 'products.product.protein' | t }}{{ nutrition_values.eiweiss_100_gr }}{{ nutrition_values.eiweiss_portion}}
    {{ 'products.product.salt' | t }}{{ nutrition_values.salz_100_gr }}{{ nutrition_values.salz_portion}}
    + {%- endfor -%} + {%- else -%} + {%- assign nutrition_values = product.metafields.custom.nutrition_values.value -%} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    {{ 'products.product.nutrition_grams' | t }}{{ 'products.product.nutrition_portion_html' | t }}
    {{ 'products.product.energy' | t }}{{ nutrition_values.energie_100_gr }}{{ nutrition_values.energie_portion}}
    {{ 'products.product.fat' | t }}{{ nutrition_values.fett_100_gr }}{{ nutrition_values.fett_portion}}
    {{ 'products.product.sat_fat' | t }}{{ nutrition_values.gesattigte_fettsauren_100_gr }}{{ nutrition_values.gesattigte_fettsauren_portion}}
    {{ 'products.product.carbs' | t }}{{ nutrition_values.kohlenhydrate_100_gr }}{{ nutrition_values.kohlenhydrate_portion}}
    {{ 'products.product.sugar' | t }}{{ nutrition_values.zucker_100_gr }}{{ nutrition_values.zucker_portion}}
    {{ 'products.product.fibre' | t }}{{ nutrition_values.ballaststoffe_100_gr }}{{ nutrition_values.ballaststoffe_portion}}
    {{ 'products.product.protein' | t }}{{ nutrition_values.eiweiss_100_gr }}{{ nutrition_values.eiweiss_portion}}
    {{ 'products.product.salt' | t }}{{ nutrition_values.salz_100_gr }}{{ nutrition_values.salz_portion}}
    + {%- endif -%} +
    +
    +
    +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Product ingredients", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Wir verwenden nur beste Zutaten" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + } + ] +} +{% endschema %} diff --git a/shopify/sections/main-product.liquid b/shopify/sections/main-product.liquid index e69de29b..57721b3c 100644 --- a/shopify/sections/main-product.liquid +++ b/shopify/sections/main-product.liquid @@ -0,0 +1,131 @@ + + +{%- assign sec_sett = section.settings -%} + +
    +
    + {%- render 'main-product-images', product: product -%} +
    + +
    + {%- render 'main-product-info', product: product -%} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% unless product == empty %} + +{% endunless %} + + +{% assign current_variant = product.selected_or_first_available_variant %} + + + +{% schema %} +{ + "name": "Product", + "settings": [ + { + "type": "text", + "id": "reviews_average_rating", + "label": "Average rating reviews", + "info": "[Metafields] Example - 4.87" + }, + { + "type": "text", + "id": "reviews_quantity_text", + "label": "Quantity of reviews", + "info": "[Metafields] Example - 400 reviews" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + } + ], + "presets": [ + { + "name": "Product", + "category": "Product page" + } + ], + "templates": ["product"] +} +{% endschema %} diff --git a/shopify/sections/main-search.liquid b/shopify/sections/main-search.liquid index e69de29b..f5642e11 100644 --- a/shopify/sections/main-search.liquid +++ b/shopify/sections/main-search.liquid @@ -0,0 +1,206 @@ + + +{% comment %} TODO: Cleanup this section {% endcomment %} +{%- assign search_sort_by = search.sort_by | default: search.default_sort_by -%} + + + +{% schema %} +{ + "name": "Main search", + "class": "index-section", + "settings": [ + { + "type": "range", + "id": "items_per_page", + "label": "Items per page", + "min": 4, + "max": 48, + "step": 4, + "default": 48 + }, + { + "type": "checkbox", + "id": "show_vendor", + "label": "Show vendor", + "default": false + }, + { + "type": "checkbox", + "id": "show_view_all", + "label": "Show view all", + "default": false + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#f3587f" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#dbaaeb" + } + ], + "presets": [ + { + "name": "Main search", + "category": "Search" + } + ] +} +{% endschema %} diff --git a/shopify/sections/map.liquid b/shopify/sections/map.liquid new file mode 100644 index 00000000..05d44cb5 --- /dev/null +++ b/shopify/sections/map.liquid @@ -0,0 +1,835 @@ +{%- assign display_map = false -%} +{%- assign onboarding = false -%} +{%- assign bg_image = section.settings.background_image -%} + +{%- if section.settings.api_key == blank and bg_image == blank -%} + {%- assign onboarding = true -%} +{%- endif -%} +{%- if section.settings.api_key != blank and section.settings.map_address -%} + {%- assign display_map = true -%} +{%- endif -%} + + + + +
    +
    +
    +
    +

    {{ 'sections.map.section_heading' | t }}

    + {% if section.settings.heading != blank %} +

    {{ section.settings.heading | escape }}

    + {% endif %} + {% if section.settings.address != blank %} +
    {{ section.settings.address }}
    + {% if section.settings.map_address != blank and section.settings.button_text != blank %} +

    + + {% if section.settings.show_pin %}{% include 'icon-pin' %}{% endif %} + {{ section.settings.button_text | escape }} + +

    + {% endif %} + {% endif %} +
    +
    +
    + {% if bg_image != blank %} +
    +
    + + {% elsif onboarding == true %} +
    + {{ 'lifestyle-2' | placeholder_svg_tag: 'placeholder-svg' }} +
    + {% endif %} + {% if display_map %} +
    +
    +
    + {% endif %} +
    +
    +
    + + + +{% schema %} +{ + "name": { + "cs": "Mapa", + "da": "Kort", + "de": "Karte", + "en": "Map", + "es": "Mapa", + "fi": "Kartta", + "fr": "Carte", + "it": "Mappa", + "ja": "マップ", + "ko": "지도", + "nb": "Kart", + "nl": "Kaart", + "pl": "Mapa", + "pt-BR": "Mapa", + "pt-PT": "Mapa", + "sv": "Karta", + "th": "แผนที่", + "tr": "Harita", + "vi": "Bản đồ", + "zh-CN": "地图", + "zh-TW": "地圖" + }, + "class": "index-section index-section--flush-medium-up", + "settings": [ + { + "type": "header", + "content": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + } + }, + { + "id": "heading", + "type": "text", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Náš obchod", + "da": "Vores butik", + "de": "Unser Laden", + "en": "Our store", + "es": "Nuestra tienda", + "fi": "Kauppamme", + "fr": "Notre boutique", + "it": "Il nostro negozio", + "ja": "私たちのストア", + "ko": "스토어", + "nb": "Vår butikk", + "nl": "Onze winkel", + "pl": "Nasz sklep", + "pt-BR": "Nossa loja", + "pt-PT": "A nossa loja", + "sv": "Vår butik", + "th": "ร้านค้าของเรา", + "tr": "Mağazamız", + "vi": "Cửa hàng của chúng tôi", + "zh-CN": "我们的商店", + "zh-TW": "我們的商店" + } + }, + { + "id": "address", + "type": "richtext", + "label": { + "cs": "Adresa a provozní doba", + "da": "Adresse og åbningstider", + "de": "Adresse und Öffnungszeiten", + "en": "Address and hours", + "es": "Dirección y horario", + "fi": "Osoite ja aukioloajat", + "fr": "Adresse et heures d'ouverture", + "it": "Indirizzo e orari", + "ja": "住所と営業時間", + "ko": "주소 및 시간", + "nb": "Adresse og åpningstider", + "nl": "Adres en openingstijden", + "pl": "Adres i godziny", + "pt-BR": "Endereço e horário", + "pt-PT": "Endereço e horas", + "sv": "Adress och öppettider", + "th": "ที่อยู่และเวลาทำการ", + "tr": "Adres ve çalışma saatleri", + "vi": "Địa chỉ và thời gian", + "zh-CN": "地址和时间", + "zh-TW": "地址和營業時間" + }, + "default": { + "cs": "

    Název ulice 123
    Praha, Česká republika

    Po–Pá 10:00–21:00
    So 11:00–21:00
    Ne 11:00–17:00

    ", + "da": "

    123 Fake St.
    Toronto, Canada

    mandag-fredag, 10.00- 21.00
    lørdag 11.00-21.00<br>søndag 11.00-17.00

    ", + "de": "

    Musterstraße 123
    12345 Musterstadt

    Mo - Fr, 10 - 21 Uhr
    Samstag, 11 - 21 Uhr
    Sonntag, Ruhetag

    ", + "en": "

    123 Fake St.
    Toronto, Canada

    Mon - Fri, 10am - 9pm
    Saturday, 11am - 9pm
    Sunday, 11am - 5pm

    ", + "es": "

    123 Fake St.
    Toronto, Canadá

    Lun - Vie, 10 a.m. - 9 p.m.
    Sábados, de 11 am a 09 pm
    Domingos, de 11 am a 05 pm

    ", + "fi": "

    Esimerkkikatu 5
    Helsinki, Suomi

    Maanantai–perjantai klo 10–21
    Lauantai klo 11–21
    Sunnuntai klo 11–17

    ", + "fr": "

    123 5e Avenue
    Toronto, Canada

    Lundi au vendredi, 10 h 00 à 21 h 00
    Samedi, 11 h 00 à 21 h 00
    Dimanche, fermé", + "it": "

    123 Fake St.
    Toronto, Canada

    Lun-Ven, 10:00 - 21:00
    Sabato, 11:00 - 21:00
    Domenica, 11:00 - 17:00

    ", + "ja": "

    123 Fake St.
    Toronto, Canada

    月曜日~金曜日、午前10時〜午後9時
    土曜日、午前11時〜午後9時
    日曜日、午前11時〜午後5時

    ", + "ko": "

    캐나다,
    토론토 페이크 스트리트123

    월요일 - 금요일, 오전 10시 - 오후 9시
    토요일, 11시 - 오후 5시

    ", + "nb": "

    Eksempelgaten 123
    Oslo, Norge

    Man – Fre, 10 – 21
    Lørdag, 11 – 21
    Søndag, 11–17

    ", + "nl": "

    Dorpsweg 1
    Arnhem, Nederland

    ma - vr, 10:00 - 21:00
    zaterdag, 11:00 - 21:00
    zondag, 11:00 - 17:00

    ", + "pl": "

    ul. Przykładowa 123
    Warszawa, Polska

    Pon - Pt 10:00 - 21:00
    Sobota 11:00 - 21:00
    Niedziela 11:00 - 17:00

    ", + "pt-BR": "

    123 Rua Inventada
    São Paulo, Brasil

    Seg. - Sex., 10h às 21h
    Sábado, 11h às 21h
    Domingo, 11h às 17h

    ", + "pt-PT": "

    Rua Imaginária, 123
    Lisboa, Portugal

    Seg. - Sex., 10h - 21h
    Sábado, 11h - 21h
    Domingo, 11h - 17h

    ", + "sv": "

    Exempelgatan 123
    Stockholm, Sverige

    Mån - Fre, 10.00 - 21.00
    Lördag, 11.00 - 21.00
    Söndag, 11.00 - 17.00

    ", + "th": "

    123 Fake St.
    Toronto, Canada

    จ. - ศ. 10:00 น. - 21:00 น.
    วันเสาร์ 11:00 น. - 21:00 น.
    วันอาทิตย์ 11:00 น. - 17:00 น.

    ", + "tr": "

    123 Fake St.
    Toronto, Kanada

    Pzt - Cum, 10:00-21:00
    Cumartesi, 11:00-21:00
    Pazar, 11:00-17:00

    ", + "vi": "

    123 Fake St.
    Toronto, Canada

    Thứ Hai - Thứ Sáu, 10SA - 9CH
    Thứ Bảy, 11SA - 9CH
    Chủ nhật, 11SA - 5CH

    ", + "zh-CN": "

    123 Fake St.
    Toronto, Canada

    周一至周五上午 10 点至晚上 9 点
    周六上午 11 点至晚上 9 点
    周日上午 11 点至下午 5 点

    ", + "zh-TW": "

    加拿大多倫多
    假設範例街 123 號

    星期一 - 星期五,上午 10 點 - 下午 9 點
    星期六,上午 11 點 - 下午 9 點
    星期日,上午 11 點 - 下午 5 點

    " + } + }, + { + "id": "map_address", + "type": "text", + "label": { + "cs": "Najít adresu na mapě", + "da": "Kortadresse", + "de": "Adresse", + "en": "Map address", + "es": "Dirección en el mapa", + "fi": "Määritä osoite", + "fr": "Adresse de la carte", + "it": "Indirizzo su mappa", + "ja": "マップアドレス", + "ko": "지도 주소", + "nb": "Kartadresse", + "nl": "Adres op kaart", + "pl": "Adres na mapie", + "pt-BR": "Endereço no mapa", + "pt-PT": "Endereço no mapa", + "sv": "Kartadress", + "th": "ที่อยู่แผนที่", + "tr": "Adresi haritada görüntüle", + "vi": "Địa chỉ bản đồ", + "zh-CN": "地图地址", + "zh-TW": "地圖地址" + }, + "info": { + "cs": "Mapy Google vyhledají přesnou lokalitu", + "da": "Google Maps finder den nøjagtige lokation", + "de": "Google Maps findet die richtige Adresse", + "en": "Google Maps will find the exact location", + "es": "Google Maps encontrará la ubicación exacta", + "fi": "Google Maps hakee tarkan sijainnin", + "fr": "Google Maps trouvera l'adresse exacte", + "it": "Google Maps troverà l'esatta posizione", + "ja": "Googleマップが正確な位置を見つけます。", + "ko": "Google 지도에서 정확한 위치를 찾습니다.", + "nb": "Google Maps vil finne nøyaktig plassering", + "nl": "Google Maps zoekt de exacte locatie", + "pl": "Google Maps znajdzie dokładną lokalizację", + "pt-BR": "O Google Maps encontrará a localização exata", + "pt-PT": "O Google Maps vai encontrar a localização exata", + "sv": "Google Maps kommer hitta den exakta platsen", + "th": "Google Maps จะค้นหาตำแหน่งที่ตั้งที่แน่นอน", + "tr": "Google Haritalar tam konumu bulur", + "vi": "Google Maps sẽ tìm vị trí chính xác", + "zh-CN": "Google 地图会显示确切地点", + "zh-TW": "Google 地圖會找出確切位置" + }, + "default": { + "cs": "301 Front St W, Toronto", + "da": "301 Front St W, Toronto", + "de": "4141 Pierre-de Coubertin Ave, Montreal", + "en": "301 Front St W, Toronto", + "es": "301 Front St W, Toronto", + "fi": "301 Front St W, Toronto", + "fr": "Arsenalo g. 5, Vilnius", + "it": "301 Front St W, Toronto", + "ja": "301 Front St W, Toronto", + "ko": "토론토, 프론트 스트리트 W 301", + "nb": "301 Front St W, Toronto", + "nl": "301 Front St W, Toronto", + "pl": "301 Front St W, Toronto", + "pt-BR": "Av. Paulista, 1234, São Paulo", + "pt-PT": "301 Front St W, Toronto", + "sv": "301 Front St W, Toronto", + "th": "301 Front St W, Toronto", + "tr": "301 Front St W, Toronto", + "vi": "301 Front St W, Toronto", + "zh-CN": "301 Front St W, Toronto", + "zh-TW": "301 Front St W, Toronto" + } + }, + { + "id": "button_text", + "type": "text", + "label": { + "cs": "Text odkazu na mapu", + "da": "Maplinklabel", + "de": "Link auf der Karte", + "en": "Map link label", + "es": "Etiqueta de enlace de mapa", + "fi": "Karttalinkin otsikko", + "fr": "Texte du lien de la carte", + "it": "Etichetta del link alla mappa", + "ja": "マップリンクラベル", + "ko": "지도 링크 레이블", + "nb": "Etikett for kartkobling", + "nl": "Linklabel naar kaart", + "pl": "Etykieta linku mapy", + "pt-BR": "Marcador de link do mapa", + "pt-PT": "Etiqueta de ligação do mapa", + "sv": "Kartlänketikett", + "th": "ป้ายกำกับลิงก์แผนที่", + "tr": "Harita bağlantısı etiketi", + "vi": "Nhãn liên kết bản đồ", + "zh-CN": "地图链接标签", + "zh-TW": "地圖連結標籤" + }, + "default": { + "cs": "Zjistit trasu", + "da": "Få vejledninger", + "de": "Wegbeschreibung", + "en": "Get directions", + "es": "Recibir instrucciones", + "fi": "Hae ohjeet", + "fr": "Obtenir un itinéraire", + "it": "Richiedi direzioni", + "ja": "道順を知る", + "ko": "길 찾기", + "nb": "Få beskrivelse", + "nl": "Krijg aanwijzingen", + "pl": "Uzyskaj wskazówki", + "pt-BR": "Obter direções", + "pt-PT": "Obter direções", + "sv": "Få hjälp", + "th": "ถามเส้นทาง", + "tr": "Yol tarifi al", + "vi": "Nhận chỉ dẫn", + "zh-CN": "获取指示", + "zh-TW": "取得路線" + } + }, + { + "id": "show_pin", + "type": "checkbox", + "label": { + "cs": "Zobrazit špendlík", + "da": "Vis pin", + "de": "Pin anzeigen", + "en": "Show pin", + "es": "Ver pin", + "fi": "Näytä nasta", + "fr": "Afficher l'épingle", + "it": "Mostra pin", + "ja": "ピンを表示する", + "ko": "핀 표시", + "nb": "Vis pinne", + "nl": "Pin tonen", + "pl": "Pokaż pin", + "pt-BR": "Exibir alfinete", + "pt-PT": "Mostrar PIN", + "sv": "Visa pin", + "th": "แสดงพิน", + "tr": "Pini göster", + "vi": "Hiển thị ghim", + "zh-CN": "显示针", + "zh-TW": "顯示 PIN 碼" + }, + "default": true + }, + { + "type": "header", + "content": { + "cs": "Pozadí", + "da": "Baggrund", + "de": "Hintergrund", + "en": "Background", + "es": "Fondo", + "fi": "Tausta", + "fr": "Arrière-plan", + "it": "Sfondo", + "ja": "背景", + "ko": "배경", + "nb": "Bakgrunn", + "nl": "Achtergrond", + "pl": "Tło", + "pt-BR": "Plano de fundo", + "pt-PT": "Fundo", + "sv": "Bakgrund", + "th": "พื้นหลัง", + "tr": "Arka plan", + "vi": "Nền", + "zh-CN": "背景", + "zh-TW": "背景" + } + }, + { + "id": "api_key", + "type": "text", + "label": { + "cs": "Klíč API Map Google", + "da": "Google Maps API-nøgle", + "de": "Google Maps API Key", + "en": "Google Maps API key", + "es": "Registrar una clave API de Google Maps", + "fi": "Google Mapsin API -avain", + "fr": "Clé d'API Google Maps", + "it": "Chiave API di Google Maps", + "ja": "GoogleマップのAPIキー", + "ko": "Google 지도 API 키", + "nb": "Google Maps API-nøkkel", + "nl": "Google Maps API-sleutel", + "pl": "Klucz Google Maps API", + "pt-BR": "Chave da API do Google Maps", + "pt-PT": "Chave de API do Google Maps", + "sv": "API-nyckel för Google Maps", + "th": "คีย์ API ของ Google Maps", + "tr": "Google Haritalar API anahtarı", + "vi": "Khóa API của Google Maps", + "zh-CN": "Google 地图 API 密钥", + "zh-TW": "Google 地圖 API 金鑰" + }, + "info": { + "cs": "Pokud chcete zobrazit mapu, musíte si [zaregistrovat klíč API Map Google](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key)", + "da": "Du skal [registrere en Google Maps API-nøgle](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) for at vise kortet", + "de": "Sie müssen [einen Google Maps-API-Schlüssel](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) registrieren, um die Karte anzuzeigen", + "en": "You’ll need to [register a Google Maps API Key](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) to display the map", + "es": "Deberás [registrar una clave API de Google Maps](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) para mostrar el plano", + "fi": "Sinun on [rekisteröitävä Google Maps -sovellusliittymän avain](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) näyttääksesi kartan", + "fr": "Vous devrez [enregistrer une clé API Google Maps](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) pour afficher la carte", + "it": "È necessario [registrare una chiave API di Google Maps](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) per visualizzare la mappa", + "ja": "マップを表示するには、[GoogleマップのAPIキーを登録](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) する必要があります", + "ko": "지도를 표시하려면 [Google 지도 API 키를 등록](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key)해야 합니다.", + "nb": "Du må [registrere en Google Maps API-nøkkel](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) for å vise kartet", + "nl": "Je moet [een Google Maps API Key](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) registreren om de kaart weer te geven", + "pl": "Aby wyświetlić mapę, musisz [zarejestrować klucz Google Maps API](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key)", + "pt-BR": "Para exibir o mapa, é preciso [cadastrar uma chave da API Google Maps](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key)", + "pt-PT": "Deve [registar uma Chave de API do Google Maps](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) para apresentar o mapa", + "sv": "Du måste [registrera en Google Maps API-nyckel](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) för att visa kartan", + "th": "คุณจะต้อง [ลงทะเบียนสร้างคีย์ Google Maps API ](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) เพื่อแสดงแผนที่", + "tr": "Haritayı görüntülemek için [bir Google Haritalar API anahtarı kaydetmeniz](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) gerekir", + "vi": "Bạn sẽ cần [đăng ký Khóa API của Google Maps](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) để hiển thị bản đồ", + "zh-CN": "您需要 [注册 Google Maps API 密钥](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) 才能显示地图", + "zh-TW": "您必須 [註冊 Google Maps API 金鑰](https://help.shopify.com/manual/using-themes/troubleshooting/map-section-api-key) 才能顯示地圖" + } + }, + { + "type": "image_picker", + "id": "background_image", + "label": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + }, + "info": { + "cs": "Zobrazí se v případě, že se mapa nenačte", + "da": "Vises, hvis kortet ikke indlæses", + "de": "Anzeigen, wenn Karte nicht lädt", + "en": "Displayed if the map isn’t loaded", + "es": "Aparece si el mapa no está cargado", + "fi": "Näkyy, jos karttaa ei ole ladattu", + "fr": "Affichée si la carte ne se charge pas", + "it": "Visualizzato se la mappa non è caricata", + "ja": "マップが読み込まれない場合に表示されます", + "ko": "지도가 로드되지 않은 경우 표시됩니다.", + "nb": "Vises dersom kartet ikke er lastet inn", + "nl": "Wordt weergegeven wanneer de kaart niet is geladen", + "pl": "Wyświetla się, jeśli mapa nie jest załadowana", + "pt-BR": "Exibida se o mapa não for carregado", + "pt-PT": "Exibido se o mapa não for carregado", + "sv": "Visas om kartan inte är laddad", + "th": "แสดงหากไม่ได้โหลดแผนที่", + "tr": "Harita yüklenemediğinde gösterilir", + "vi": "Hiển thị nếu không tải được bản đồ", + "zh-CN": "在地图未加载时显示", + "zh-TW": "如果地圖並未載入則顯示此項目" + } + }, + { + "type": "select", + "id": "background_image_position", + "label": { + "cs": "Pozice obrázku", + "da": "Placering af billede", + "de": "Foto-Position", + "en": "Image position", + "es": "Posición de la imagen", + "fi": "Kuvan sijainti", + "fr": "Position de l'image", + "it": "Posizione Immagine", + "ja": "画像の位置", + "ko": "이미지 위치", + "nb": "Bildeposisjon", + "nl": "Afbeeldingspositie", + "pl": "Położenie obrazu", + "pt-BR": "Posição da imagem", + "pt-PT": "Posição da imagem", + "sv": "Bildposition", + "th": "ตำแหน่งรูปภาพ", + "tr": "Görsel konumu", + "vi": "Vị trí hình ảnh", + "zh-CN": "图片位置", + "zh-TW": "圖片位置" + }, + "default": "center center", + "options": [ + { + "label": { + "cs": "Nahoře vlevo", + "da": "Øverst til venstre", + "de": "Oben links", + "en": "Top left", + "es": "Superior izquierda", + "fi": "Ylhäällä vasemmalla", + "fr": "En haut à gauche", + "it": "In alto a sinistra", + "ja": "左上", + "ko": "왼쪽 상단", + "nb": "Øverst til venstre", + "nl": "Linksboven", + "pl": "Na górze po lewej", + "pt-BR": "Superior esquerdo", + "pt-PT": "Canto superior esquerdo", + "sv": "Överst till vänster", + "th": "ซ้ายบน", + "tr": "Üst sol", + "vi": "Trên cùng bên trái", + "zh-CN": "左上方", + "zh-TW": "左上角" + }, + "value": "top left" + }, + { + "label": { + "cs": "Nahoře ve středu", + "da": "Øverst i midten", + "de": "Oben Mitte", + "en": "Top center", + "es": "Superior centrada", + "fi": "Keskellä ylhäällä", + "fr": "En haut au centre", + "it": "In alto al centro", + "ja": "中央上", + "ko": "맨 위 중간", + "nb": "Toppsentrert", + "nl": "Midden boven", + "pl": "Na górze na środku", + "pt-BR": "Superior centro", + "pt-PT": "Superior centro", + "sv": "Längst upp i mitten", + "th": "กลางบน", + "tr": "Üst orta", + "vi": "Trên cùng ở giữa", + "zh-CN": "顶部居中", + "zh-TW": "中央上方" + }, + "value": "top center" + }, + { + "label": { + "cs": "Nahoře vpravo", + "da": "Øverst til højre", + "de": "Oben rechts", + "en": "Top right", + "es": "Superior derecha", + "fi": "Ylhäällä oikealla", + "fr": "En haut à droite", + "it": "In alto a destra", + "ja": "右上", + "ko": "오른쪽 상단", + "nb": "Øverst til høyre", + "nl": "Rechtsboven", + "pl": "Na górze po prawej", + "pt-BR": "Superior direito", + "pt-PT": "Canto superior direito", + "sv": "Överst till höger", + "th": "ขวาบน", + "tr": "Üst sağ", + "vi": "Trên cùng bên phải", + "zh-CN": "右上方", + "zh-TW": "右上角" + }, + "value": "top right" + }, + { + "label": { + "cs": "Uprostřed vlevo", + "da": "Midt på til venstre", + "de": "Mitte links", + "en": "Middle left", + "es": "Al medio a la izquierda", + "fi": "Keskellä vasemmalla", + "fr": "Au milieu à gauche", + "it": "Nel mezzo a sinistra", + "ja": "中央部左側", + "ko": "왼쪽 중간", + "nb": "Midt til venstre", + "nl": "Midden links", + "pl": "Na środku po lewej", + "pt-BR": "Meio esquerdo", + "pt-PT": "Intermédio à esquerda", + "sv": "Mitten till vänster", + "th": "ซ้ายกลาง", + "tr": "Orta sol", + "vi": "Ở giữa bên trái", + "zh-CN": "中间居左", + "zh-TW": "中央左方" + }, + "value": "center left" + }, + { + "label": { + "cs": "Uprostřed ve středu", + "da": "Midt på centreret", + "de": "Mitte mittig", + "en": "Middle center", + "es": "Centrada en el medio", + "fi": "Keskellä keskellä", + "fr": "Centrée au milieu", + "it": "In mezzo", + "ja": "中心", + "ko": "가운데 중간", + "nb": "Midt i senter", + "nl": "Midden centrum", + "pl": "Na środku", + "pt-BR": "Meio centro", + "pt-PT": "Intermédio ao centro", + "sv": "Mitten centrerat", + "th": "กึ่งกลาง", + "tr": "Orta kısmın ortası", + "vi": "Chính giữa", + "zh-CN": "中间居中", + "zh-TW": "正中央" + }, + "value": "center center" + }, + { + "label": { + "cs": "Uprostřed vpravo", + "da": "Midt på til højre", + "de": "Mitte rechts", + "en": "Middle right", + "es": "Centrado a la derecha", + "fi": "Keskellä oikealla", + "fr": "Au milieu à droite", + "it": "Nel mezzo a destra", + "ja": "中央部右側", + "ko": "오른쪽 중간", + "nb": "Midt til høyre", + "nl": "Midden rechts", + "pl": "Na środku po prawej", + "pt-BR": "Meio direito", + "pt-PT": "Intermédio à direita", + "sv": "Mitten till höger", + "th": "ขวากลาง", + "tr": "Orta sağ", + "vi": "Ở giữa bên phải", + "zh-CN": "中间居右", + "zh-TW": "中央右方" + }, + "value": "center right" + }, + { + "label": { + "cs": "Dole vlevo", + "da": "Nederst til venstre", + "de": "Unten links", + "en": "Bottom left", + "es": "Inferior izquierda", + "fi": "Alhaalla vasemmalla", + "fr": "En bas à gauche", + "it": "In basso a sinistra", + "ja": "左下", + "ko": "왼쪽 하단", + "nb": "Nederst til venstre", + "nl": "Linksonder", + "pl": "Na dole po lewej", + "pt-BR": "Inferior esquerdo", + "pt-PT": "Canto inferior esquerdo", + "sv": "Nere till vänster", + "th": "ซ้ายล่าง", + "tr": "Alt sol", + "vi": "Dưới cùng bên trái", + "zh-CN": "左下方", + "zh-TW": "左下角" + }, + "value": "bottom left" + }, + { + "label": { + "cs": "Dole ve středu", + "da": "Nederst i midten", + "de": "Unten mittig", + "en": "Bottom center", + "es": "Inferior centrada", + "fi": "Keskellä alhaalla", + "fr": "En bas au centre", + "it": "In basso al centro", + "ja": "中央下", + "ko": "맨아래 중간", + "nb": "Bunnsentrert", + "nl": "Midden onder", + "pl": "Na dole na środku", + "pt-BR": "Inferior centro", + "pt-PT": "Inferior centro", + "sv": "Längst ner i mitten", + "th": "กลางล่าง", + "tr": "Alt orta", + "vi": "Dưới cùng ở giữa", + "zh-CN": "底部居中", + "zh-TW": "中央下方" + }, + "value": "bottom center" + }, + { + "label": { + "cs": "Dole vpravo", + "da": "Nederst til højre", + "de": "Unten rechts", + "en": "Bottom right", + "es": "Inferior derecha", + "fi": "Alhaalla oikealla", + "fr": "En bas à droite", + "it": "In basso a destra", + "ja": "右下", + "ko": "오른쪽 아래", + "nb": "Nederst til høyre", + "nl": "Rechtsonder", + "pl": "Na dole po prawej", + "pt-BR": "Inferior direito", + "pt-PT": "Canto inferior direito", + "sv": "Nere till höger", + "th": "ขวาล่าง", + "tr": "Alt sağ", + "vi": "Dưới cùng bên phải", + "zh-CN": "右下方", + "zh-TW": "右下角" + }, + "value": "bottom right" + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Mapa", + "da": "Kort", + "de": "Karte", + "en": "Map", + "es": "Mapa", + "fi": "Kartta", + "fr": "Carte", + "it": "Mappa", + "ja": "マップ", + "ko": "지도", + "nb": "Kart", + "nl": "Kaart", + "pl": "Mapa", + "pt-BR": "Mapa", + "pt-PT": "Mapa", + "sv": "Karta", + "th": "แผนที่", + "tr": "Harita", + "vi": "Bản đồ", + "zh-CN": "地图", + "zh-TW": "地圖" + }, + "category": { + "cs": "Informace o obchodu", + "da": "Butiksoplysninger", + "de": "Shop-Informationen", + "en": "Store information", + "es": "Información sobre tu tienda", + "fi": "Kaupan tiedot", + "fr": "Renseignements sur votre boutique", + "it": "Informazioni del negozio", + "ja": "ストア情報", + "ko": "스토어 정보", + "nb": "Butikkinformasjon", + "nl": "Winkelinformatie", + "pl": "Informacje o sklepie", + "pt-BR": "Informações sobre a loja", + "pt-PT": "Informações da loja", + "sv": "Butiksinformation", + "th": "ข้อมูลร้านค้า", + "tr": "Mağaza bilgileri", + "vi": "Thông tin cửa hàng", + "zh-CN": "商店信息", + "zh-TW": "商店資訊" + } + } + ] +} +{% endschema %} diff --git a/shopify/sections/new-custom.liquid b/shopify/sections/new-custom.liquid new file mode 100644 index 00000000..4faf6575 --- /dev/null +++ b/shopify/sections/new-custom.liquid @@ -0,0 +1,34 @@ +{% if section.settings.content != blank %} +
    +
    +
    + {{ section.settings.content }} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    + + +
    +{% endif %} + +{% schema %} + { + "name": "Content ", + "settings": [ + { + "type": "html", + "id": "content", + "label": "Content" + } + ] + } +{% endschema %} + +{% stylesheet %} +{% endstylesheet %} + +{% javascript %} +{% endjavascript %} \ No newline at end of file diff --git a/shopify/sections/newsletter.liquid b/shopify/sections/newsletter.liquid new file mode 100644 index 00000000..145c50e7 --- /dev/null +++ b/shopify/sections/newsletter.liquid @@ -0,0 +1,288 @@ + + + + +{% schema %} +{ + "name": { + "cs": "Novinky", + "da": "Nyhedsbrev", + "de": "Newsletter", + "en": "Newsletter", + "es": "Boletín", + "fi": "Uutiskirje", + "fr": "Newsletter", + "it": "Newsletter", + "ja": "ニュースレター", + "ko": "뉴스레터", + "nb": "Nyhetsbrev", + "nl": "Nieuwsbrief", + "pl": "Newsletter", + "pt-BR": "Newsletter", + "pt-PT": "Newsletter", + "sv": "Nyhetsbrev", + "th": "จดหมายข่าว", + "tr": "Bülten", + "vi": "Bản tin", + "zh-CN": "新闻通讯", + "zh-TW": "電子報" + }, + "class": "index-section index-section--flush", + "settings": [ + { + "type": "text", + "id": "section_title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Přihlaste se k odběru novinek", + "da": "Tilmeld dig vores nyhedsbrev", + "de": "Unseren Newsletter abonnieren", + "en": "Subscribe to our newsletter", + "es": "Suscríbete a nuestro boletín de noticias", + "fi": "Tilaa uutiskirjeemme", + "fr": "S'inscrire à la newsletter", + "it": "Iscriviti alla nostra newsletter", + "ja": "ストアからのお知らせを受け取る", + "ko": "뉴스 레터 구독", + "nb": "Abonner på nyhetsbrevet vårt", + "nl": "Abonneren op onze nieuwsbrief", + "pl": "Zapisz się do naszego newslettera", + "pt-BR": "Assine a nossa newsletter", + "pt-PT": "Subscreva a nossa newsletter", + "sv": "Prenumerera på vårt nyhetsbrev", + "th": "สมัครรับจดหมายข่าวของเรา", + "tr": "Bültenimize abone olun", + "vi": "Đăng ký nhận bản tin", + "zh-CN": "订阅我们的新闻通讯", + "zh-TW": "訂閱我們的電子報" + } + }, + { + "type": "richtext", + "id": "subheading", + "label": { + "cs": "Podnadpis", + "da": "Underoverskrift", + "de": "Unter-Überschrift", + "en": "Subheading", + "es": "Subtítulo", + "fi": "Alaotsikko", + "fr": "Sous-titre", + "it": "Sottotitolo", + "ja": "小見出し", + "ko": "소제목", + "nb": "Underoverskrift", + "nl": "Subkop", + "pl": "Nagłówek podrzędny", + "pt-BR": "Subtítulo", + "pt-PT": "Subtítulo", + "sv": "Underrubrik", + "th": "หัวเรื่องย่อย", + "tr": "Alt başlık", + "vi": "Tiêu đề phụ", + "zh-CN": "副标题", + "zh-TW": "子標題" + }, + "default": { + "cs": "

    Získejte informace o propagačních akcích, nových produktech a slevách – přímo do své schránky.

    ", + "da": "

    Reklamer, nye produkter og salg. Direkte i din indbakke.

    ", + "de": "

    Werbeaktionen, neue Produkte und Sonderangebote. Direkt in deinem Posteingang.

    ", + "en": "

    Promotions, new products and sales. Directly to your inbox.

    ", + "es": "

    Promociones, nuevos productos y ofertas. Directamente a tu bandeja de entrada.

    ", + "fi": "

    Kampanjat, uudet tuotteet ja myynti. Suoraan saapuneet-kansioosi

    ", + "fr": "

    Promotions, nouveaux produits et soldes. Directement dans votre boîte de réception.

    ", + "it": "

    Promozioni, nuovi prodotti e offerte. Direttamente nella tua casella di posta.

    ", + "ja": "

    新商品やセール情報などのお得な情報をお届けします。

    ", + "ko": "

    프로모션, 신제품, 판매. 받은 편지함으로 바로 이동.

    ", + "nb": "

    Kampanjer, nye produkter og salg. Direkte i innboksen din.

    ", + "nl": "

    Promoties, nieuwe producten en uitverkoop rechtstreeks in je inbox.

    ", + "pl": "

    Promocje, nowe produkty i wyprzedaże. Bezpośrednio do Twojej skrzynki odbiorczej.

    ", + "pt-BR": "

    Promoções, novos produtos e vendas. Diretamente para sua caixa de entrada.

    ", + "pt-PT": "

    Promoções, novos produtos e ofertas. Diretamente na sua caixa de entrada.

    ", + "sv": "

    Kampanjer, nya produkter och försäljning. Direkt till din inkorg.

    ", + "th": "

    โปรโมชัน สินค้าใหม่ และการลดราคา ตรงสู่กล่องจดหมายเข้าของคุณ

    ", + "tr": "

    Promosyonlar, yeni ürünler ve indirimler. Doğrudan gelen kutunuzda.

    ", + "vi": "

    Khuyến mãi, sản phẩm mới và chương trình giảm giá. Trực tiếp vào hộp thư đến của bạn.

    ", + "zh-CN": "

    促销、新产品和销售。直接发送到您的收件箱。

    ", + "zh-TW": "

    讓您直接在收件匣內收取促銷活動、最新產品和特賣活動訊息。

    " + } + }, + { + "id": "show_background", + "type": "checkbox", + "label": { + "cs": "Zobrazit pozadí", + "da": "Vis baggrund", + "de": "Hintergrund anzeigen", + "en": "Show background", + "es": "Mostrar fondo", + "fi": "Näytä tausta", + "fr": "Afficher l'arrière-plan", + "it": "Mostra sfondo", + "ja": "背景を表示する", + "ko": "배경 표시", + "nb": "Vis bakgrunn", + "nl": "Toon achtergrond", + "pl": "Wyświetl tło", + "pt-BR": "Exibir plano de fundo", + "pt-PT": "Mostrar fundo", + "sv": "Visa bakgrund", + "th": "แสดงพื้นหลัง", + "tr": "Arka planı göster", + "vi": "Hiển thị nền", + "zh-CN": "显示背景", + "zh-TW": "顯示背景" + }, + "default": true + }, + { + "type": "paragraph", + "content": { + "cs": "Pro všechny zákazníky, kteří se zaregistrují, se v Shopify vytvoří účet. [Zobrazit zákazníky](/admin/customers?query=&accepts_marketing=1)", + "da": "Alle kunder, der tilmelder sig, får oprettet en konto i Shopify. [Se kunder](/admin/customers?query=&accepts_marketing=1)", + "de": "Für alle Kunden, die sich anmelden, wird in Shopify ein Konto erstellt. [Kunden ansehen](/admin/customers?query=&accepts_marketing=1)", + "en": "Any customers who sign up will have an account created for them in Shopify. [View customers](/admin/customers?query=&accepts_marketing=1)", + "es": "Todos los clientes que se registren tendrán una cuenta creada para ellos en Shopify. [Ver clientes](/admin/customers?query=&accepts_marketing=1)", + "fi": "Tilaaville asiakkaille luodaan tili Shopifyssa. [Näytä asiakkaat](/admin/customers?query=&accepts_marketing=1)", + "fr": "Un compte sera créé dans Shopify pour les abonnés qui s'inscrivent. [Afficher les abonnés](/admin/customers?query=&accepts_marketing=1)", + "it": "Qualsiasi cliente che si iscrive avrà un account creato appositamente per lui su Shopify. [Visualizza clienti](/admin/customers?query=&accepts_marketing=1)", + "ja": "サインアップしたお客様は、Shopifyでアカウントが作成されます。[お客様を表示する](/admin/customers?query=&accepts_marketing=1)", + "ko": "가입한 고객은 Shopify에서 생성된 계정을 보유하게 됩니다. [고객 보기](/admin/customers?query=&accepts_marketing=1)", + "nb": "Alle kunder som melder seg på, vil få opprettet en konto i Shopify. [Se kunder](/admin/customers?query=&accepts_marketing=1)", + "nl": "Voor alle klanten die zich aanmelden, wordt een Shopify-account gemaakt. [Bekijk klanten](/admin/customers?query=&accepts_marketing=1)", + "pl": "Dla wszystkich klientów, którzy się zarejestrują, utworzone zostaną konta w Shopify. [Wyświetl klientów](/admin/customers?query=&accepts_marketing=1)", + "pt-BR": "Todos os clientes que se inscreverem terão uma conta criada para eles na Shopify. [Visualizar clientes](/admin/customers?query=&accepts_marketing=1)", + "pt-PT": "Será criada uma conta na Shopify para todos os clientes que se registarem. [Ver clientes](/admin/customers?query=&accepts_marketing=1)", + "sv": "Alla kunder som registrerar sig kommer att få ett konto skapat i Shopify. [Visa kunder](/admin/customers?query=&accepts_marketing=1)", + "th": "ระบบจะสร้างบัญชีผู้ใช้ใน Shopify ให้แก่ลูกค้ารายที่ลงทะเบียนแล้ว [ดูลูกค้า](/admin/customers?query=&accepts_marketing=1)", + "tr": "Kaydolan tüm müşteriler için Shopify'da bir hesap oluşturulur. [Müşterileri görüntüleyin](/admin/customers?query=&accepts_marketing=1)", + "vi": "Bất kỳ khách hàng nào đăng ký đều sẽ được tạo tài khoản trong Shopify. [Xem khách hàng](/admin/customers?query=&accepts_marketing=1)", + "zh-CN": "任何注册用户都将在 Shopify 中拥有一个为他们创建的账户。[查看客户](/admin/customers?query=&accepts_marketing=1)", + "zh-TW": "顧客註冊後就可以擁有 Shopify 帳號。[查看顧客](/admin/customers?query=&accepts_marketing=1)" + } + } + ], + "presets": [ + { + "name": { + "cs": "Novinky", + "da": "Nyhedsbrev", + "de": "Newsletter", + "en": "Newsletter", + "es": "Boletín", + "fi": "Uutiskirje", + "fr": "Newsletter", + "it": "Newsletter", + "ja": "ニュースレター", + "ko": "뉴스레터", + "nb": "Nyhetsbrev", + "nl": "Nieuwsbrief", + "pl": "Newsletter", + "pt-BR": "Newsletter", + "pt-PT": "Newsletter", + "sv": "Nyhetsbrev", + "th": "จดหมายข่าว", + "tr": "Bülten", + "vi": "Bản tin", + "zh-CN": "新闻通讯", + "zh-TW": "電子報" + }, + "category": { + "cs": "Propagace", + "da": "Kampagne", + "de": "Promotional", + "en": "Promotional", + "es": "Promocional", + "fi": "Mainonnallinen", + "fr": "Promotionnel", + "it": "Promozionale", + "ja": "プロモーション用", + "ko": "프로모션", + "nb": "Kampanjer", + "nl": "Promotioneel", + "pl": "Promocyjne", + "pt-BR": "Promocional", + "pt-PT": "Promocional", + "sv": "Kampanjer", + "th": "ส่งเสริมการขาย", + "tr": "Promosyon", + "vi": "Khuyến mãi", + "zh-CN": "促销", + "zh-TW": "宣傳活動" + } + } + ] +} +{% endschema %} diff --git a/shopify/sections/page-community.liquid b/shopify/sections/page-community.liquid new file mode 100644 index 00000000..34acaa9d --- /dev/null +++ b/shopify/sections/page-community.liquid @@ -0,0 +1,64 @@ +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} +{%- assign form = section.settings.contact_form -%} + +{%- if title or subtitle or form -%} +
    +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + + {%- if form -%} +
    + {{ form }} +
    + {%- endif -%} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    +{%- endif -%} + +{% schema %} + { + "name": "Community", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Werde Teil und fange an zu gestalten" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Denk dir einen Text aus, der später auf die Riegel gedruckt wird." + }, + { + "type": "textarea", + "id": "contact_form", + "label": "Contact form", + "info": "Need add code from app - Form Builder with File Upload" + } + ] + } +{% endschema %} diff --git a/shopify/sections/page-contact.liquid b/shopify/sections/page-contact.liquid new file mode 100644 index 00000000..bbf24981 --- /dev/null +++ b/shopify/sections/page-contact.liquid @@ -0,0 +1,170 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} + +{%- capture form -%} + {%- assign form_id = 'ContactForm' -%} + {% form 'contact', id: form_id %} + {% render 'form-status', form_id: form_id %} + + + + + + + + + + + + + {% endform %} +{%- endcapture -%} +
    +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + + {%- if form -%} +
    + {{ form }} +
    + {%- endif -%} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Contact", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "Hier kannst du treatfuls kontaktieren" + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "default": "Wir freuen uns von dir zu hören! Egal ob Feedback oder Kooperation, melde dich." + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/page-guidelines.liquid b/shopify/sections/page-guidelines.liquid new file mode 100644 index 00000000..1608afb6 --- /dev/null +++ b/shopify/sections/page-guidelines.liquid @@ -0,0 +1,160 @@ + + +{%- assign sec_sett = section.settings -%} +{%- assign img_left = sec_sett.img_left -%} +{%- assign img_right = sec_sett.img_right -%} + +
    +
    + {%- for block in section.blocks -%} + {%- assign block_sett = block.settings -%} + {%- assign page_type = block_sett.page_type -%} + {%- assign title = block_sett.title -%} + {%- assign subtitle = block_sett.subtitle -%} + + {%- if page.handle == page_type -%} + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + {% break %} + {%- endif -%} + {%- endfor -%} + +
    + {%- if img_left.src != blank -%} + + + + {{ img_left.alt }} + + {%- endif -%} +
    +
    + {{ page.content }} +
    +
    + {%- if img_right.src != blank -%} + + + + {{ img_right.alt }} + + {%- endif -%} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "Guidelines", + "max_blocks": 2, + "settings": [ + { + "type": "image_picker", + "id": "img_left", + "label": "Background Image left" + }, + { + "type": "image_picker", + "id": "img_right", + "label": "Background Image right" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "guidelines_item", + "name": "Guidelines page title", + "settings": [ + { + "type": "select", + "id": "page_type", + "label": "Page name", + "options": [ + { + "value": "imprint", + "label": "Imprint" + }, + { + "value": "data-protection", + "label": "Data protection" + } + ] + }, + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title" + }, + { + "type": "textarea", + "id": "subtitle", + "label": "Subtitle" + } + ] + } + ] + } +{% endschema %} diff --git a/shopify/sections/page-jobs.liquid b/shopify/sections/page-jobs.liquid new file mode 100644 index 00000000..f26f3eba --- /dev/null +++ b/shopify/sections/page-jobs.liquid @@ -0,0 +1,180 @@ + + +{%- assign sec_sett = section.settings -%} +{%- assign title = sec_sett.title -%} +{%- assign subtitle = sec_sett.subtitle -%} +{%- assign img_left = sec_sett.img_left -%} +{%- assign img_right = sec_sett.img_right -%} + +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + + {%- if img_right.src != blank -%} + + + + {{ img_right.alt }} + + {%- endif -%} +
    + {%- if img_left.src != blank -%} + + + + {{ img_left.alt }} + + {%- endif -%} +
    +
    +
    + {%- for block in section.blocks -%} + {%- assign title = block.settings.title -%} + {%- assign description = block.settings.description -%} + {%- assign button_text = block.settings.button_text -%} + {%- assign button_url = block.settings.button_url -%} + + +
    +

    {{ title }}

    + {%- render 'icon-arrow-down' -%} +
    +
    +
    {{ description }}
    + {%- if button_url != blank -%} + {{ button_text }} + {%- endif -%} +
    +
    + {%- endfor -%} +
    +
    +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    +{% comment %} TODO: This is not guidelines {% endcomment %} +{% schema %} + { + "name": "Guidelines", + "max_blocks": 4, + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title", + "default": "Jobs! Wir vergeben Jobs!" + }, + { + "type": "textarea", + "id": "subtitle", + "label": "Subtitle", + "default": "Werde ein Teil der treatfuls Revolution und nimm einen Job bei uns an." + }, + { + "type": "image_picker", + "id": "img_left", + "label": "Background Image left" + }, + { + "type": "image_picker", + "id": "img_right", + "label": "Background Image right" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "blocks": [ + { + "type": "jobs_item", + "name": "Job", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title" + }, + { + "type": "textarea", + "id": "description", + "label": "Description" + }, + { + "type": "text", + "id": "button_text", + "label": "Button text", + "default": "Jetzt per Mail bewerben" + }, + { + "type": "url", + "id": "button_url", + "label": "Button Url" + } + ] + } + ] + } +{% endschema %} diff --git a/shopify/sections/page-methods.liquid b/shopify/sections/page-methods.liquid new file mode 100644 index 00000000..6197cb10 --- /dev/null +++ b/shopify/sections/page-methods.liquid @@ -0,0 +1,170 @@ + + +{%- assign sec_sett = section.settings -%} +{%- assign title = sec_sett.title -%} +{%- assign subtitle = sec_sett.subtitle -%} +{%- assign img_left_top = sec_sett.img_left_top -%} +{%- assign img_left_bottom = sec_sett.img_left_bottom -%} +{%- assign img_right_top = sec_sett.img_right_top -%} +{%- assign img_right_bottom = sec_sett.img_right_bottom -%} + +
    +
    + {%- if img_left_top.src != blank -%} + + + + {{ img_left_top.alt }} + + {%- endif -%} + + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + + {%- if img_right_top.src != blank -%} + + + + {{ img_right_top.alt }} + + {%- endif -%} + +
    + {%- if img_left_bottom.src != blank -%} + + + + {{ img_left_bottom.alt }} + + {%- endif -%} +
    +
    + {{ page.content }} +
    +
    + {%- if img_right_bottom.src != blank -%} + + + + {{ img_right_bottom.alt }} + + {%- endif -%} +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "Methods", + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title", + "default": "Zahlungsarten  und Versand" + }, + { + "type": "textarea", + "id": "subtitle", + "label": "Subtitle", + "default": "Informationen zu Zahlungsarten und Versandmöglichkeiten." + }, + { + "type": "image_picker", + "id": "img_left_top", + "label": "Left Top background image" + }, + { + "type": "image_picker", + "id": "img_right_top", + "label": "Right Top background image" + }, + { + "type": "image_picker", + "id": "img_left_bottom", + "label": "Left Bottom background image" + }, + { + "type": "image_picker", + "id": "img_right_bottom", + "label": "Right Bottom background image" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] + } +{% endschema %} diff --git a/shopify/sections/page-terms.liquid b/shopify/sections/page-terms.liquid new file mode 100644 index 00000000..7a936e6b --- /dev/null +++ b/shopify/sections/page-terms.liquid @@ -0,0 +1,85 @@ +{%- assign sec_sett = section.settings -%} +{%- assign title = sec_sett.title -%} +{%- assign title_mobile = sec_sett.title_mobile -%} +{%- assign subtitle = sec_sett.subtitle -%} +{%- assign img_right = sec_sett.img_right -%} + +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if title_mobile -%} +

    {{ subtitle }}

    + {%- endif -%} +

    + {%- endif -%} + + {%- if img_right.src != blank -%} + + + + {{ img_right.alt }} + + {%- endif -%} +
    +
    + {{ page.content }} +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "Terms", + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title", + "default": "Allgemeine Geschäftsbedingungen" + }, + { + "type": "textarea", + "id": "title_mobile", + "info": "Need wrap words to see background, example", + "label": "Title", + "default": "Allgemeine Geschäftsbedi- ngungen" + }, + { + "type": "textarea", + "id": "subtitle", + "label": "Subtitle", + "default": "Das musst du beachten wenn du bei treatfuls Produkte bestellst." + }, + { + "type": "image_picker", + "id": "img_right", + "label": "Background Image right" + } + ] + } +{% endschema %} diff --git a/shopify/sections/page-withdrawal.liquid b/shopify/sections/page-withdrawal.liquid new file mode 100644 index 00000000..a7d80541 --- /dev/null +++ b/shopify/sections/page-withdrawal.liquid @@ -0,0 +1,89 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} + +
    +
    + {%- if title or subtitle -%} +
    + {%- if title -%} +

    {{ title }}

    + {%- endif -%} + + {%- if subtitle -%} +

    {{ subtitle }}

    + {%- endif -%} +
    + {%- endif -%} + +
    +
    + {{ page.content }} +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} + { + "name": "Withdrawal", + "settings": [ + { + "type": "textarea", + "id": "title", + "info": "Need wrap words to see background, example", + "label": "Title", + "default": "Ja du hast auch ein Widerrufsrecht" + }, + { + "type": "textarea", + "id": "subtitle", + "label": "Subtitle", + "default": "Willst du etwa ein Produkt wieder zurück schicken? 😢" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#f3587f" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] + } +{% endschema %} diff --git a/shopify/sections/password-content.liquid b/shopify/sections/password-content.liquid new file mode 100644 index 00000000..67730a1c --- /dev/null +++ b/shopify/sections/password-content.liquid @@ -0,0 +1,52 @@ + + +{% comment %} + Password message which you can edit on http://www.shopify.com/admin/online_store/preferences +{% endcomment %} +{% unless shop.password_message == blank %} +
    + {{ shop.password_message }} +
    +{% endunless %} + +{% schema %} +{ + "name": "Content", + "settings": [ + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/password-footer.liquid b/shopify/sections/password-footer.liquid new file mode 100644 index 00000000..7c22e026 --- /dev/null +++ b/shopify/sections/password-footer.liquid @@ -0,0 +1,97 @@ + + +
    + {% capture shopify %} + Shopify + {% endcapture %} + + {{ 'general.password_page.powered_by_shopify_html' | t: shopify: shopify }} +
    + + + +{% schema %} +{ + "name": { + "de": "Fußzeile", + "en": "Footer", + "es": "Pie de página", + "fr": "Pied de page", + "it": "Footer", + "ja": "フッター", + "pt-BR": "Rodapé" + }, + "settings": [ + { + "type": "checkbox", + "id": "show_share_buttons", + "label": { + "de": "Buttons für Social Media anzeigen", + "en": "Show social sharing buttons", + "es": "Mostrar botones para compartir en redes sociales", + "fr": "Affichez les boutons de partage sur les médias sociaux", + "it": "Mostra i pulsanti per la condivisione sui social", + "ja": "ソーシャル共有ボタンを表示する", + "pt-BR": "Exibir botões de compartilhamento em redes sociais" + }, + "default": true + }, + { + "type": "text", + "id": "social_message", + "label": { + "de": "Titel für Social Media Buttons", + "en": "Social sharing buttons heading", + "es": "Título de botones para compartir en redes sociales", + "fr": "Titre des options de partage", + "it": "Titolo dei pulsanti per la condivisione sui social", + "ja": "ソーシャル共有ボタンの見出し", + "pt-BR": "Exibir botões de compartilhamento em redes sociais" + }, + "default": { + "de": "Machen Sie Werbung", + "en": "Spread the word", + "es": "Riega la voz", + "fr": "Faites passer le mot", + "it": "Spargi la voce", + "ja": "言葉を広める", + "pt-BR": "Divulgue a novidade" + } + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/password-header.liquid b/shopify/sections/password-header.liquid new file mode 100644 index 00000000..8b5c35aa --- /dev/null +++ b/shopify/sections/password-header.liquid @@ -0,0 +1,55 @@ + + +

    + {%- include 'icon-logo-big' -%} +

    +

    +{{ section.settings.header | escape }} +

    +{% schema %} +{ + "name": "Header", + "settings": [ + { + "type": "text", + "id": "header", + "label": "Title", + "default": "DeEröffnet demnächst" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ] +} +{% endschema %} diff --git a/shopify/sections/predictive-search.liquid b/shopify/sections/predictive-search.liquid new file mode 100644 index 00000000..5a74a75f --- /dev/null +++ b/shopify/sections/predictive-search.liquid @@ -0,0 +1,17 @@ +{%- if predictive_search.performed -%} +
    + {%- if predictive_search.resources.products.size > 0 -%} +
      + {%- for product in predictive_search.resources.products -%} + {%- render 'product-card-simple', product: product -%} + {%- endfor -%} +
    + + + {%- else -%} + {{ 'general.search.no_results' | t }} + {%- endif -%} +
    +{%- endif -%} \ No newline at end of file diff --git a/shopify/sections/product-page.liquid b/shopify/sections/product-page.liquid new file mode 100644 index 00000000..90751dba --- /dev/null +++ b/shopify/sections/product-page.liquid @@ -0,0 +1,222 @@ + + +
    +
    + {%- if section.settings.heading != blank -%} +
    +

    + {{ section.settings.heading }} +

    +

    + {%- if section.settings.mobile_heading != blank -%} + {{ section.settings.mobile_heading }} + {%- else -%} + {{ section.settings.heading }} + {%- endif -%} +

    +
    + {%- endif -%} + +
    + + +
    + {%- render 'product-info', product: product, section: section -%} +
    +
    +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% unless product == empty %} + +{% endunless %} + + +{% assign current_variant = product.selected_or_first_available_variant %} + + + + +{% schema %} +{ + "name": "Product", + "settings": [ + { + "type": "text", + "id": "heading", + "label": "Heading" + }, + { + "type": "text", + "id": "mobile_heading", + "label": "Mobile Heading" + }, + { + "type": "checkbox", + "id": "show_price", + "label": "Show Price", + "default": true + }, + { + "type": "text", + "id": "reviews_average_rating", + "label": "Average rating reviews", + "info": "[Metafields] Example - 4.87" + }, + { + "type": "text", + "id": "reviews_quantity_text", + "label": "Quantity of reviews", + "info": "[Metafields] Example - 400 reviews" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color" + } + ], + "blocks": [ + { + "type": "description", + "name": "Description", + "limit": 1, + "settings": [] + }, + { + "type": "price", + "name": "Price", + "limit": 1, + "settings": [] + }, + { + "type": "buy_button", + "name": "Buy Button", + "limit": 1, + "settings": [ + { + "type": "checkbox", + "id": "show_quantity_selector", + "label": "Show Quantity Selector" + }, + { + "type": "checkbox", + "id": "show_price", + "label": "Show Price" + } + ] + }, + { + "type": "countdown", + "name": "Countdown", + "limit": 1, + "settings": [ + { + "type": "text", + "id": "heading", + "label": "Heading" + }, + { + "type": "color", + "id": "color", + "label": "Color" + }, + { + "type": "color", + "id": "color_time", + "label": "Color for time" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color" + } + ] + }, + ], + "presets": [ + { + "name": "Product Page", + "category": "Product page" + } + ], + "templates": ["product"] +} +{% endschema %} diff --git a/shopify/sections/product-recommendations.liquid b/shopify/sections/product-recommendations.liquid new file mode 100644 index 00000000..fe88b99e --- /dev/null +++ b/shopify/sections/product-recommendations.liquid @@ -0,0 +1,184 @@ +{%- if section.settings.show_product_recommendations -%} + {%- if recommendations.performed -%} + {%- if recommendations.products_count > 0 -%} +
    + {%- if section.settings.heading != blank -%} +
    +

    {{ section.settings.heading | escape }}

    +
    + {%- endif -%} +
      + {%- for product in recommendations.products -%} + {%- if product.metafields.custom.hide_product -%} + {%- continue -%} + {%- endif -%} +
    • + {% include 'product-card-grid', max_height: 250, product: product, show_vendor: section.settings.show_vendor %} +
    • + {%- endfor -%} +
    +
    + {%- endif -%} + {%- else -%} +
    + {%- endif -%} +{%- endif -%} + +{% schema %} +{ + "name": { + "cs": "Doporučení produktů", + "da": "Produktanbefalinger", + "de": "Produktempfehlungen", + "en": "Product recommendations", + "es": "Recomendaciones de productos", + "fi": "Tuotesuositukset", + "fr": "Recommandations de produits", + "it": "Raccomandazioni sui prodotti", + "ja": "商品の推奨", + "ko": "제품 권장 사항", + "nb": "Produktanbefalinger", + "nl": "Productaanbevelingen", + "pl": "Rekomendacje produktu", + "pt-BR": "Recomendações de produtos", + "pt-PT": "Recomendações de produtos", + "sv": "Produktrekommendationer", + "th": "คำแนะนำสินค้า", + "tr": "Ürün önerileri", + "vi": "Đề xuất sản phẩm", + "zh-CN": "产品推荐", + "zh-TW": "商品推薦" + }, + "settings": [ + { + "type": "checkbox", + "id": "show_product_recommendations", + "label": { + "cs": "Zobrazit dynamická doporučení", + "da": "Vis dynamiske anbefalinger", + "de": "Dynamische Empfehlungen anzeigen", + "en": "Show dynamic recommendations", + "es": "Mostrar recomendaciones dinámicas", + "fi": "Näytä dynaamiset suositukset", + "fr": "Afficher les recommandations dynamiques", + "it": "Mostra raccomandazioni dinamiche", + "ja": "動的推奨を表示する", + "ko": "동적 권장 사항 표시", + "nb": "Vis dynamiske anbefalinger", + "nl": "Dynamische aanbevelingen weergeven", + "pl": "Pokaż dynamiczne rekomendacje", + "pt-BR": "Exibir recomendações dinâmicas", + "pt-PT": "Mostrar recomendações dinâmicas", + "sv": "Visa dynamiska rekommendationer", + "th": "แสดงคำแนะนำแบบไดนามิก", + "tr": "Dinamik önerileri göster", + "vi": "Hiển thị đề xuất động", + "zh-CN": "显示动态推荐", + "zh-TW": "顯示動態推薦" + }, + "info": { + "cs": "Dynamická doporučení se v průběhu času mění a zlepšují. [Další informace](https://help.shopify.com/en/themes/development/recommended-products)", + "da": "Dynamiske anbefalinger ændres og forbedres med tiden. [Få mere at vide](https://help.shopify.com/en/themes/development/recommended-products)", + "de": "Dynamische Empfehlungen werden im Laufe der Zeit angepasst und verbessert. [Mehr Informationen](https://help.shopify.com/en/themes/development/recommended-products)", + "en": "Dynamic recommendations change and improve with time. [Learn more](https://help.shopify.com/en/themes/development/recommended-products)", + "es": "Las recomendaciones dinámicas cambian y mejoran con el tiempo. [Más información](https://help.shopify.com/en/themes/development/recommended-products)", + "fi": "Dynaamiset suositukset muuttuvat ja paranevat ajan myötä. [Lisätietoja](https://help.shopify.com/en/themes/development/recommended-products)", + "fr": "Les recommandations dynamiques changent et s'améliorent avec le temps. [En savoir plus](https://help.shopify.com/en/themes/development/recommended-products)", + "it": "Le raccomandazioni dinamiche cambiano e migliorano nel tempo. [Maggiori informazioni](https://help.shopify.com/en/themes/development/recommended-products)", + "ja": "動的推奨は時間とともに変化し改善します。[詳しくはこちら](https://help.shopify.com/en/themes/development/recommended-products)", + "ko": "동적 권장 사항은 시간이 지나면서 변하고 개선됩니다. [자세히 알아보기](https://help.shopify.com/en/themes/development/recommended-products)", + "nb": "Dynamiske anbefalinger endrer seg og forbedres med tiden. [Finn ut mer](https://help.shopify.com/en/themes/development/recommended-products)", + "nl": "Dynamische aanbevelingen veranderen en verbeteren mettertijd. [Meer informatie](https://help.shopify.com/en/themes/development/recommended-products)", + "pl": "Dynamiczne rekomendacje są zmieniane i ulepszane. [Dowiedz się więcej](https://help.shopify.com/en/themes/development/recommended-products)", + "pt-BR": "As recomendações dinâmicas mudam e melhoram com o tempo. [Saiba mais](https://help.shopify.com/en/themes/development/recommended-products)", + "pt-PT": "As recomendações dinâmicas mudam e melhoram com o tempo. [Saiba mais](https://help.shopify.com/en/themes/development/recommended-products)", + "sv": "Dynamiska rekommendationer ändras och förbättras med tiden. [Läs mer](https://help.shopify.com/en/themes/development/recommended-products)", + "th": "คำแนะนำแบบไดนามิกนั้นเปลี่ยนแปลงและถูกปรับปรุงให้ดีขึ้นตลอดเวลา [ดูข้อมูลเพิ่มเติม](https://help.shopify.com/en/themes/development/recommended-products)", + "tr": "Dinamik öneriler zamanla değişir ve gelişir. [Daha fazla bilgi edinin](https://help.shopify.com/en/themes/development/recommended-products)", + "vi": "Đề xuất động sẽ được thay đổi và cải thiện theo thời gian. [Tìm hiểu thêm](https://help.shopify.com/en/themes/development/recommended-products)", + "zh-CN": "动态推荐会随着时间而变化和改进。[了解详细信息](https://help.shopify.com/en/themes/development/recommended-products)", + "zh-TW": "動態推薦會隨著時間改變與改進。[深入瞭解](https://help.shopify.com/en/themes/development/recommended-products)" + }, + "default": true + }, + { + "type": "text", + "id": "heading", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Überschrift", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Mohlo by se vám také líbit", + "da": "Du vil muligvis også synes om", + "de": "Das könnte dir auch gefallen", + "en": "You may also like", + "es": "También te puede interesar", + "fi": "Saatat pitää myös näistä", + "fr": "Vous pourriez aimer également", + "it": "Potrebbero interessarti anche", + "ja": "あなたへのおすすめ", + "ko": "회원님도 좋아할 것입니다.", + "nb": "Kanskje du også liker", + "nl": "Wellicht vind je dit ook leuk", + "pl": "Może Ci się spodobać również", + "pt-BR": "Talvez você também goste de", + "pt-PT": "Também poderá gostar de", + "sv": "Du kanske också gillar", + "th": "คุณอาจจะชอบ", + "tr": "Şunlar da hoşunuza gidebilir:", + "vi": "Có thể bạn cũng thích", + "zh-CN": "您可能还喜欢", + "zh-TW": "您也可能喜歡" + } + }, + { + "type": "checkbox", + "id": "show_vendor", + "label": { + "cs": "Zobrazit dodavatele", + "da": "Vis leverandør", + "de": "Lieferanten anzeigen", + "en": "Show vendor", + "es": "Mostrar proveedor", + "fi": "Näytä myyjä", + "fr": "Afficher les vendeurs", + "it": "Mostra fornitore", + "ja": "販売元を表示する", + "ko": "공급업체 표시", + "nb": "Vis leverandør", + "nl": "Leverancier weergeven", + "pl": "Pokaż dostawcę", + "pt-BR": "Exibir fabricante", + "pt-PT": "Mostrar fornecedor", + "sv": "Visa säljare", + "th": "แสดงผู้ขาย", + "tr": "Satıcıyı göster", + "vi": "Hiển thị nhà cung cấp", + "zh-CN": "显示厂商", + "zh-TW": "顯示廠商" + }, + "default": false + } + ] +} +{% endschema %} diff --git a/shopify/sections/product-template.liquid b/shopify/sections/product-template.liquid new file mode 100644 index 00000000..2b432bb5 --- /dev/null +++ b/shopify/sections/product-template.liquid @@ -0,0 +1,400 @@ +
    + {% comment %} + Get first variant, or deep linked one + {% endcomment %} + {%- assign current_variant = product.selected_or_first_available_variant -%} + {%- assign product_image_zoom_size = '1024x1024' -%} + {%- assign product_image_scale = '2' -%} + {%- assign enable_zoom = section.settings.enable_zoom -%} + {%- assign compare_at_price = current_variant.compare_at_price -%} + {%- assign price = current_variant.price -%} + + {% case section.settings.image_size %} + {% when 'small' %} + {%- assign product_image_width = 'medium-up--one-third' -%} + {%- assign product_description_width = 'medium-up--two-thirds' -%} + {%- assign product_thumbnail_width = 'medium-up--one-third' -%} + {%- assign height = 345 -%} + {% when 'medium' %} + {%- assign product_image_width = 'medium-up--one-half' -%} + {%- assign product_description_width = 'medium-up--one-half' -%} + {%- assign product_thumbnail_width = 'medium-up--one-quarter' -%} + {%- assign height = 530 -%} + {% when 'large' %} + {%- assign product_image_width = 'medium-up--two-thirds' -%} + {%- assign product_description_width = 'medium-up--one-third' -%} + {%- assign product_thumbnail_width = 'medium-up--one-fifth' -%} + {%- assign height = 720 -%} + {% when 'full' %} + {%- assign product_image_width = '' -%} + {%- assign product_description_width = '' -%} + {%- assign product_thumbnail_width = 'medium-up--one-eighth' -%} + {%- assign height = 1090 -%} + {%- assign enable_zoom = false -%} + {% endcase %} + +
    +
    + {%- assign featured_image = product.selected_or_first_available_variant.featured_image | default: product.featured_image -%} + {% for image in product.images %} + {% capture img_id %}FeaturedImage-{{ section.id }}-{{ image.id }}{% endcapture %} + {% capture img_class %}product-featured-img{% endcapture %} + {% capture zoom_img_id %}FeaturedImageZoom-{{ section.id }}-{{ image.id }}{% endcapture %} + {% capture img_wrapper_id %}{{ zoom_img_id }}-wrapper{% endcapture %} + {%- assign img_url = image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} + + {% render 'image-style' with small_style: true, width: height, height: height, wrapper_id: img_wrapper_id, img_id: img_id %} + +
    + +
    + {% endfor %} + + + + {% if product.images.size > 1 %} + {% if product.images.size > 3 %} + {%- assign enable_thumbnail_slides = true -%} + {% endif %} + +
    + {% if enable_thumbnail_slides == true %} + + {% endif %} +
      + {% for image in product.images %} +
    • + + {{ 'sections.featured_product.gallery_thumbnail_alt' | t: imageAlt: image.alt | escape }} + +
    • + {% endfor %} +
    + {% if enable_thumbnail_slides == true %} + + {% endif %} +
    + {% endif %} +
    + +
    +
    + +

    {{ product.title }}

    + +
    + {% include 'product-price', variant: current_variant %} +
    + + {%- if shop.taxes_included or shop.shipping_policy.body != blank -%} +
    + {%- if shop.taxes_included -%} + {{ 'products.product.include_taxes' | t }} + {%- endif -%} + {%- if shop.shipping_policy.body != blank -%} + {{ 'products.product.shipping_policy_html' | t: link: shop.shipping_policy.url }} + {%- endif -%} +
    + {%- endif -%} + + {% if section.settings.show_quantity_selector %} +
    + {% include 'icon-error' %} {{ 'products.product.quantity_minimum_message' | t }} +
    + {% endif %} + + {% capture "form_classes" -%} + product-form product-form-{{ section.id }}{% unless section.settings.show_variant_labels %} product-form--hide-variant-labels{% endunless %}{% if section.settings.enable_payment_button and product.has_only_default_variant%} product-form--payment-button-no-variants{% endif %} + {%- endcapture %} + + {% form 'product', product, class: form_classes, novalidate: 'novalidate' %} + {% unless product.has_only_default_variant %} + {% for option in product.options_with_values %} +
    + + +
    + {% endfor %} + {% endunless %} + + + + {% if section.settings.show_quantity_selector %} +
    + + +
    + {% endif %} +
    + + {% if section.settings.enable_payment_button %} + {{ form | payment_button }} + {% endif %} +
    + {% endform %} +
    + + {%- comment -%} + Live region for announcing updated price and availability to screen readers + {%- endcomment -%} +

    + +
    + {{ product.description }} +
    + + {% if section.settings.show_share_buttons %} + {% include 'social-sharing', share_title: product.title, share_permalink: product.url, share_image: product %} + {% endif %} +
    +
    +
    + +{% if collection %} + +{% endif %} + +{% unless product == empty %} + +{% endunless %} + + + +{% schema %} +{ + "name": { + "de": "Produktseiten", + "en": "Product pages", + "es": "Páginas de productos", + "fr": "Pages de produits", + "it": "Pagine di prodotto", + "ja": "商品ページ", + "pt-BR": "Páginas de produtos" + }, + "settings": [ + { + "type": "select", + "id": "image_size", + "label": { + "de": "Foto-Größe", + "en": "Image size", + "es": "Tamaño de la imagen", + "fr": "Taille des images", + "it": "Dimensione immagine", + "ja": "画像のサイズ", + "pt-BR": "Tamanho da imagem" + }, + "options": [ + { + "value": "small", + "label": { + "de": "Klein", + "en": "Small", + "es": "Pequeña", + "fr": "Petite", + "it": "Piccolo", + "ja": "小", + "pt-BR": "Pequeno" + } + }, + { + "value": "medium", + "label": { + "de": "Mittel", + "en": "Medium", + "es": "Mediana", + "fr": "Moyenne", + "it": "Medio", + "ja": "中", + "pt-BR": "Médio" + } + }, + { + "value": "large", + "label": { + "de": "Groß", + "en": "Large", + "es": "Grande", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "pt-BR": "Grande" + } + }, + { + "value": "full", + "label": { + "de": "Volle Breite", + "en": "Full-width", + "es": "Ancho completo", + "fr": "Pleine largeur", + "it": "Intera larghezza", + "ja": "全幅", + "pt-BR": "Largura completa" + } + } + ], + "default": "medium" + }, + { + "type": "checkbox", + "id": "show_quantity_selector", + "label": { + "de": "Quantitäts-Auswahl anzeigen", + "en": "Show quantity selector", + "es": "Mostrar selector de cantidad", + "fr": "Afficher le sélecteur de quantité", + "it": "Mostra selettore quantità", + "ja": "数量セレクターを表示する", + "pt-BR": "Exibir seletor de quantidade" + }, + "default": false + }, + { + "type": "checkbox", + "id": "show_variant_labels", + "label": { + "de": "Varianten-Etiketten anzeigen", + "en": "Show variant labels", + "es": "Mostrar etiquetas de variantes", + "fr": "Afficher le nom des variantes", + "it": "Mostra etichette varianti", + "ja": "バリエーションのラベルを表示する", + "pt-BR": "Exibir etiquetas de variantes" + }, + "default": true + }, + { + "type": "checkbox", + "id": "show_vendor", + "label": { + "de": "Lieferanten anzeigen", + "en": "Show vendor", + "es": "Mostrar proveedor", + "fr": "Afficher les vendeurs", + "it": "Mostra fornitore", + "ja": "販売元を表示する", + "pt-BR": "Exibir fornecedor" + }, + "default": false + }, + { + "type": "checkbox", + "id": "enable_zoom", + "label": { + "de": "Foto-Zoom zulassen", + "en": "Enable image zoom", + "es": "Habilitar zoom de imagen", + "fr": "Activer le zoom d'image", + "it": "Abilita lo zoom dell'immagine", + "ja": "画像ズームを有効にする", + "pt-BR": "Ativar o zoom da imagem" + }, + "default": true + }, + { + "type": "checkbox", + "id": "enable_payment_button", + "label": { + "de": "Dynamischen Checkout Button anzeigen", + "en": "Show dynamic checkout button", + "es": "Mostrar botón de pago dinámico", + "fr": "Afficher le bouton de passage à la caisse dynamique", + "it": "Mostra pulsante di check-out dinamico", + "ja": "ダイナミックチェックアウトボタンを表示する", + "pt-BR": "Exibir botão dinâmico de finalização da compra" + }, + "info": { + "de": "Lässt Kunden direkt bezahlen mit bekannten Bezahlmethoden. [Mehr erfahren](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", + "en": "Lets customers check out directly using a familiar payment method. [Learn more](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", + "es": "Permite a los clientes pagar directamente usando un método de pago familiar. [Más información](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", + "fr": "Permettez à vos clients de passer à la caisse avec un moyen de paiement qui leur est familier. [En savoir plus](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", + "it": "Fai in modo che i clienti effettuino il check-out direttamente utilizzando un metodo di pagamento a loro conosciuto. [Maggiori informazioni](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", + "ja": "使い慣れた決済方法を使用して、お客様に直接チェックアウトしてもらいましょう。[もっと詳しく](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)", + "pt-BR": "Permite que os clientes finalizem os pedidos na hora usando uma forma de pagamento salva. [Saiba mais](https://help.shopify.com/manual/using-themes/change-the-layout/dynamic-checkout)" + }, + "default": false + }, + { + "type": "checkbox", + "id": "show_share_buttons", + "label": { + "de": "Buttons für Social Media anzeigen", + "en": "Show social sharing buttons", + "es": "Mostrar botones para compartir en redes sociales", + "fr": "Affichez les boutons de partage sur les médias sociaux", + "it": "Mostra i pulsanti per la condivisione sui social", + "ja": "ソーシャル共有ボタンを表示する", + "pt-BR": "Exibir botões de compartilhamento em redes sociais" + }, + "default": true + } + ] +} +{% endschema %} diff --git a/shopify/sections/quotes.liquid b/shopify/sections/quotes.liquid new file mode 100644 index 00000000..52e90a64 --- /dev/null +++ b/shopify/sections/quotes.liquid @@ -0,0 +1,327 @@ +
    + {% if section.settings.title != blank %} +
    +

    {{ section.settings.title | escape }}

    +
    + {% endif %} + + {% if section.blocks.size > 0 %} +
    +
    +
    + {% for block in section.blocks %} +
    + +
    + {% include 'icon-quote' %} + {% if block.settings.quote != blank %} +
    {{ block.settings.quote }}
    + {% endif %} + {% if block.settings.author != blank %} + {{ block.settings.author | escape }} + {% endif %} +
    +
    + {% endfor %} +
    +
    + + {% if section.blocks.size > 1 %} +
      + {%- for block in section.blocks -%} + + + + {%- endfor -%} +
    + {% endif %} +
    + {% endif %} + + {% if section.blocks.size == 0 %} + {% include 'no-blocks' %} + {% endif %} +
    + + + +{% schema %} +{ + "name": { + "cs": "Ohlasy", + "da": "Udtalelser", + "de": "Testimonials", + "en": "Testimonials", + "es": "Testimonios", + "fi": "Suositukset", + "fr": "Témoignages", + "it": "Testimonial", + "ja": "お客様の声", + "ko": "추천", + "nb": "Tilbakemeldinger fra kunder", + "nl": "Testimonials", + "pl": "Referencje", + "pt-BR": "Depoimentos", + "pt-PT": "Depoimentos", + "sv": "Kundberättelser", + "th": "เสียงชื่นชมจากลูกค้า", + "tr": "Kullanıcı görüşleri", + "vi": "Chứng thực", + "zh-CN": "感言", + "zh-TW": "推薦文" + }, + "class": "index-section", + "max_blocks": 9, + "settings": [ + { + "type": "text", + "id": "title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Ohlasy", + "da": "Udtalelser", + "de": "Testimonials", + "en": "Testimonials", + "es": "Testimonios", + "fi": "Suositukset", + "fr": "Témoignages", + "it": "Testimonial", + "ja": "お客様の声", + "ko": "추천", + "nb": "Tilbakemeldinger fra kunder", + "nl": "Testimonials", + "pl": "Referencje", + "pt-BR": "Depoimentos", + "pt-PT": "Depoimentos", + "sv": "Kundberättelser", + "th": "เสียงชื่นชมจากลูกค้า", + "tr": "Kullanıcı görüşleri", + "vi": "Chứng thực", + "zh-CN": "感言", + "zh-TW": "推薦文" + } + } + ], + "blocks": [ + { + "type": "quote", + "name": { + "cs": "Ohlas", + "da": "Udtalelse", + "de": "Testimonial", + "en": "Testimonial", + "es": "Testimonio", + "fi": "Suositukset", + "fr": "Témoignage", + "it": "Testimonial", + "ja": "お客様の声", + "ko": "추천", + "nb": "Anbefaling", + "nl": "Testimonial", + "pl": "Referencja", + "pt-BR": "Depoimento", + "pt-PT": "Testemunho", + "sv": "Kundberättelser", + "th": "เสียงชื่นชมจากลูกค้า", + "tr": "Kullanıcı görüşü", + "vi": "Chứng thực", + "zh-CN": "感言", + "zh-TW": "推薦文" + }, + "settings": [ + { + "type": "richtext", + "id": "quote", + "label": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "default": { + "cs": "

    Přidejte recenze a ohlasy zákazníků, které vyjadřují jejich spokojenost s vaším obchodem.

    ", + "da": "

    Tilføj kundeanmeldelser og udtalelser for at fremhæve din butiks tilfredse kunder.

    ", + "de": "

    Hier kannst du Bewertungen und Testimonials von zufriedenen Kunden hinzufügen.

    ", + "en": "

    Add customer reviews and testimonials to showcase your store’s happy customers.

    ", + "es": "

    Agrega reseñas y testimonios de los clientes satisfechos con tu tienda para mostrarlos.

    ", + "fi": "

    Lisää asiakasarviointeja ja suositteluja esimerkeiksi myymäläsi tyytyväisistä asiakkaista.

    ", + "fr": "

    Ajoutez des avis et témoignages pour mettre en avant vos clients satisfaits.

    ", + "it": "

    Aggiungi recensioni e testimonianze sul tuo negozio per dimostrare che i clienti sono soddisfatti.

    ", + "ja": "

    あなたのストアの幸せなお客様を紹介するために、カスタマーレビューとお客様の声を追加してください。

    ", + "ko": "

    고객 리뷰 및 추천을 추가하여 스토어에 만족한 고객을 보여주십시오.

    ", + "nb": "

    Legg til kundeomtaler og anbefalinger for å vise frem butikkens glade kunder.

    ", + "nl": "

    Voeg beoordelingen van klanten en testimonials toe om te laten zien dat je klanten tevreden zijn.

    ", + "pl": "

    Dodaj opinie i referencje od klientów, aby pokazać zadowolenie klientów Twojego sklepu.

    ", + "pt-BR": "

    Adicione comentários e depoimentos para dar destaque aos clientes satisfeitos com a sua loja.

    ", + "pt-PT": "

    Adicione análises e testemunhos para mostrar os clientes felizes da sua loja.

    ", + "sv": "

    Lägg till kundrecensioner och berättelser för att visa upp din butiks nöjda kunder.

    ", + "th": "

    เพิ่มรีวิวและเสียงชื่นชมจากลูกค้าเพื่อนำเสนอลูกค้าที่ได้รับความพึงพอใจจากร้านค้า

    ", + "tr": "

    Müşteri değerlendirmeleri ve kullanıcı görüşleri ekleyerek mağazanızdan memnun kalan müşterileri gösterin.

    ", + "vi": "

    Thêm đánh giá và chứng thực từ khách hàng để chứng minh khách hàng hài lòng với cửa hàng.

    ", + "zh-CN": "

    添加客户评论和感言,以展示对您的商店满意的客户。

    ", + "zh-TW": "

    新增顧客評論和推薦文,展示對您商店滿意之顧客。

    " + } + }, + { + "type": "text", + "id": "author", + "label": { + "cs": "Autor", + "da": "Forfatter", + "de": "Autor", + "en": "Author", + "es": "Autor", + "fi": "Kirjoittaja", + "fr": "Auteur", + "it": "Autore", + "ja": "執筆者", + "ko": "작성자", + "nb": "Forfatter", + "nl": "Auteur", + "pl": "Autor", + "pt-BR": "Autoria", + "pt-PT": "Autoria", + "sv": "Upphovsman", + "th": "ผู้เขียน", + "tr": "Yazar", + "vi": "Tác giả", + "zh-CN": "作者", + "zh-TW": "作者" + }, + "default": { + "cs": "Jméno autora", + "da": "Forfatterens navn", + "de": "Name des Verfassers", + "en": "Author's name", + "es": "Nombre del autor", + "fi": "Kirjoittajan nimi", + "fr": "Nom de l'auteur", + "it": "Nome dell'autore", + "ja": "筆者の名前", + "ko": "작성자 이름", + "nb": "Forfatterens navn", + "nl": "Naam auteur", + "pl": "Nazwisko autora", + "pt-BR": "Nome do autor", + "pt-PT": "Nome do autor", + "sv": "Författarens namn", + "th": "ชื่อผู้เขียน", + "tr": "Yazar adı", + "vi": "Tên tác giả", + "zh-CN": "作者姓名", + "zh-TW": "作者名稱" + } + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Ohlasy", + "da": "Udtalelser", + "de": "Testimonials", + "en": "Testimonials", + "es": "Testimonios", + "fi": "Suositukset", + "fr": "Témoignages", + "it": "Testimonial", + "ja": "お客様の声", + "ko": "추천", + "nb": "Tilbakemeldinger fra kunder", + "nl": "Testimonials", + "pl": "Referencje", + "pt-BR": "Depoimentos", + "pt-PT": "Depoimentos", + "sv": "Kundberättelser", + "th": "เสียงชื่นชมจากลูกค้า", + "tr": "Kullanıcı görüşleri", + "vi": "Chứng thực", + "zh-CN": "感言", + "zh-TW": "推薦文" + }, + "category": { + "cs": "Text", + "da": "Tekst", + "de": "Text", + "en": "Text", + "es": "Texto", + "fi": "Teksti", + "fr": "Texte", + "it": "Testo", + "ja": "テキスト", + "ko": "텍스트", + "nb": "Tekst", + "nl": "Tekst", + "pl": "Tekst", + "pt-BR": "Texto", + "pt-PT": "Texto", + "sv": "Text", + "th": "ข้อความ", + "tr": "Metin", + "vi": "Văn bản", + "zh-CN": "文本", + "zh-TW": "文字" + }, + "blocks": [ + { + "type": "quote" + }, + { + "type": "quote" + }, + { + "type": "quote" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/richtext.liquid b/shopify/sections/richtext.liquid new file mode 100644 index 00000000..cbd963d5 --- /dev/null +++ b/shopify/sections/richtext.liquid @@ -0,0 +1,128 @@ + + +{% assign sec_sett = section.settings %} + +
    +
    + {%- if sec_sett.title != blank -%} +

    {{ sec_sett.title }}

    + {%- endif -%} + {%- if sec_sett.first_text != blank -%} +
    + {{- sec_sett.first_text -}} + {%- if sec_sett.img_on_hover.src != blank -%} + + + + + + {%- endif -%} +
    + {%- endif -%} + {%- if sec_sett.second_text != blank -%} +
    {{- sec_sett.second_text -}}
    + {%- endif -%} + {%- if sec_sett.link_url != blank -%} + {{- sec_sett.link_text -}} + {%- endif -%} +
    + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + + +{% schema %} +{ + "name": "Richtext", + "settings": [ + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + "default": "hungry for a change?" + }, + { + "type": "textarea", + "id": "first_text", + "label": "First Paragraph", + "info": "Need wrap words example to see hover image", + "default": "Bist du bereit mit uns gemeinsam die Snack-Industrie zu revolutionieren? Wir wollen Snacks die besser sind, als das was der Markt uns gerade bietet. Wir wollen Süßigkeiten die geil schmecken und besser für dich und die Umwelt sind." + }, + { + "type": "image_picker", + "id": "img_on_hover", + "label": "Image on link hover" + }, + { + "type": "textarea", + "id": "second_text", + "label": "Second Paragraph", + "default": "Wir sind Macher und Träumerinnen zugleich und haben aus diesem Grund treatfuls ins Leben gerufen. Mach mit und probiere und überzeuge dich selbst, wie lecker vegane und natürliche Snacks sein können." + }, + { + "type": "url", + "id": "link_url", + "label": "Link Url" + }, + { + "type": "text", + "id": "link_text", + "label": "Link text", + "default": "Jetzt Probierpaket kaufen" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "presets": [ + { + "name": "Richtext", + "category": "Homepage" + } + ] +} +{% endschema %} diff --git a/shopify/sections/signup-with-image.liquid b/shopify/sections/signup-with-image.liquid new file mode 100644 index 00000000..e44540a1 --- /dev/null +++ b/shopify/sections/signup-with-image.liquid @@ -0,0 +1,153 @@ + + +{%- assign title = section.settings.title -%} +{%- assign subtitle = section.settings.subtitle -%} +{%- assign bg_image = section.settings.image -%} + + +{% schema %} + { + "name": "Signup With Image", + "settings": [ + { + "type": "header", + "content": "Header" + }, + { + "type": "text", + "id": "title", + "label": "Title", + "info": "Need wrap words to see background, example", + }, + { + "type": "text", + "id": "title_mobile", + "label": "Title mobile", + "info": "Need wrap words to see background, example", + }, + { + "type": "text", + "id": "subtitle", + "label": "Subtitle", + "info": "Need wrap words to see background, example", + }, + { + "type": "header", + "content": "Content" + }, + { + "type": "image_picker", + "id": "image", + "label": "Image" + }, + { + "type": "text", + "id": "content_title", + "label": "Content Title" + }, + { + "type": "richtext", + "id": "content", + "label": "Content" + }, + { + "type": "text", + "id": "klaviyo_id", + "label": "Klavyio ID", + "info": "Put the ID of the signup form in this field. For Example 'ABCDEF'. NOT the whole Div, only the ID" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#5359e5" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "presets": [ + { + "name": "Signup With Image" + } + ] + } +{% endschema %} diff --git a/shopify/sections/slideshow.liquid b/shopify/sections/slideshow.liquid new file mode 100644 index 00000000..1ca9a757 --- /dev/null +++ b/shopify/sections/slideshow.liquid @@ -0,0 +1,1382 @@ +{%- if section.settings.slideshow_height == 'adapt' -%} + {% comment %} + 'min_aspect_ratio' is the minimum aspect ratio of images shown without + whitespace when 'slideshow_height' is set to 'adapt'. + The aspect ratio values for the first image in the slideshow will be used + unless it is blank, in that case a ratio of 2:1 will be used. + {% endcomment %} + + {%- assign first_block = section.blocks[0] -%} + {%- if first_block.settings.image.aspect_ratio == blank -%} + {%- assign min_aspect_ratio = 2.0 -%} + {%- else -%} + {%- assign min_aspect_ratio = first_block.settings.image.aspect_ratio -%} + {%- endif -%} + {% assign wrapper_height = 100 | divided_by: min_aspect_ratio %} +{%- endif -%} + +{%- assign text_alignments = section.settings.text_alignment | split: ' ' -%} +{%- assign text_horizontal_alignment = text_alignments.first -%} +{%- assign text_vertical_alignment = text_alignments.last | strip -%} + +
    + {%- if section.blocks.size > 0 -%} +
    +
    + {%- for block in section.blocks -%} + {%- assign block_image = block.settings.image -%} +
    + {% if block_image == blank %} +
    +
    + {% capture current %}{% cycle 1, 2 %}{% endcapture %} + {{ 'lifestyle-' | append: current | placeholder_svg_tag: 'placeholder-svg' }} +
    + {% if section.settings.show_overlay %}
    {% endif %} +
    + {% else %} + + {% endif %} + + + +
    +
    +
    + {% unless block.settings.slide_title == blank and block.settings.subheading == blank %} +
      + {%- unless block.settings.slide_title == blank -%} +
    • +

      + {{ block.settings.slide_title | escape }} +

      +
    • + {%- endunless -%} + {%- unless block.settings.subheading == blank -%} +
    • + + {{ block.settings.subheading | escape }} + +
    • + {%- endunless -%} +
    + {% endunless %} + + {%- assign show_link_button = false -%} + {%- if block.settings.button_label != blank and block.settings.button_link != blank -%} + {%- assign show_link_button = true -%} + {%- endif -%} + {%- if show_link_button -%} + + {%- endif -%} +
    +
    +
    +
    + {%- endfor -%} +
    +
    + {%- if section.blocks.size > 1 -%} + {%- assign arrows_width = section.blocks.size | times: 18 | plus: 115 -%} +
    + + + +
      + {%- for block in section.blocks -%} + + + + {%- endfor -%} +
    +
    + + {%- if section.settings.autorotate -%} + + {%- endif -%} + {%- endif -%} +
    +
    +
    + {% if section.blocks.size > 1 %} +
    + + + +
      + {%- for block in section.blocks -%} + + + + {%- endfor -%} +
    +
    + {% endif %} + + {%- for block in section.blocks -%} + {%- assign show_text = false -%} + {%- unless block.settings.slide_title == blank and block.settings.subheading == blank -%} + {%- assign show_text = true -%} + {%- endunless -%} + {%- assign show_link_button = false -%} + {%- if block.settings.button_label != blank and block.settings.button_link != blank -%} + {%- assign show_link_button = true -%} + {%- endif -%} + {%- if show_text or show_link_button -%} +
    +
    + {%- unless block.settings.slide_title == blank -%} +

    + {{ block.settings.slide_title | escape }} +

    + {%- endunless -%} + {%- unless block.settings.subheading == blank -%} + + {{ block.settings.subheading | escape }} + + {%- endunless -%} + + {%- if show_link_button -%} + + {{ block.settings.button_label | escape }} + + {%- endif -%} +
    +
    + {%- endif -%} + {%- endfor -%} +
    + {%- endif -%} + + {% if section.blocks.size == 0 %} +
    + {{ 'homepage.onboarding.no_content' | t }} +
    + {% endif %} +
    + +{% schema %} +{ + "name": { + "cs": "Prezentace", + "da": "Diasshow", + "de": "Slideshow", + "en": "Slideshow", + "es": "Diapositivas", + "fi": "Diaesitys", + "fr": "Diaporama", + "it": "Presentazione", + "ja": "スライドショー", + "ko": "슬라이드 쇼", + "nb": "Lysbildefremvisning", + "nl": "Diavoorstelling", + "pl": "Pokaz slajdów", + "pt-BR": "Apresentação de slides", + "pt-PT": "Apresentação de diapositivos", + "sv": "Bildspel", + "th": "สไลด์โชว์", + "tr": "Slayt gösterisi", + "vi": "Bản trình chiếu", + "zh-CN": "幻灯片", + "zh-TW": "素材輪播" + }, + "class": "index-section index-section--flush index-section--slideshow", + "max_blocks": 6, + "settings": [ + { + "type": "select", + "id": "slideshow_height", + "label": { + "cs": "Výška snímku", + "da": "Diashøjde", + "de": "Diahöhe", + "en": "Slide height", + "es": "Altura de diapositiva", + "fi": "Dian korkeus", + "fr": "Hauteur de la diapositive", + "it": "Altezza slide", + "ja": "スライドの高さ", + "ko": "슬라이드 높이", + "nb": "Lysbildehøyde", + "nl": "Diahoogte", + "pl": "Wysokość slajdu", + "pt-BR": "Altura do slide", + "pt-PT": "Altura do diapositivo", + "sv": "Bildhöjd", + "th": "ความสูงของสไลด์", + "tr": "Slayt yüksekliği", + "vi": "Chiều cao trang chiếu", + "zh-CN": "幻灯片高度", + "zh-TW": "投影片高度" + }, + "default": "adapt", + "info": { + "cs": "Prostudujte si [nápovědu k prezentaci](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific).", + "da": "Få mere at vide om [slideshow guidelines](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "de": "Erfahren Sie mehr über die [Richtlinien für Slideshows](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "en": "Learn more about [slideshow guidelines](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "es": "Más información sobre [directrices de presentación de diapositivas](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "fi": "Lisätietoja [diaesitysohjeista](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "fr": "En savoir plus sur [directives de diaporama](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "it": "Maggiori informazioni sulle [linee guida per le presentazioni](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "ja": "[スライドショーのガイドライン](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)に関して詳しくはこちらをご覧ください", + "ko": "[슬라이드 쇼 가이드라인에 대해 자세히 알아보기](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "nb": "Finn ut mer om [retningslinjer for lysbilder](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "nl": "Meer informatie over [richtlijnen voor diavoorstellingen](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "pl": "Dowiedz się więcej o [wytycznych dotyczących pokazu slajdów](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "pt-BR": "Saiba mais sobre [diretrizes de apresentação de slides](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "pt-PT": "Saiba mais sobre [diretrizes de apresentação de diapositivos](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "sv": "Läs mer om [bildspelets riktlinjer](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "th": "ดูข้อมูลเพิ่มเติมเกี่ยวกับ [แนวทางสไลด์โชว์](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "tr": "[Slayt gösterisi yönergeleri](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific) hakkında daha fazla bilgi edinin", + "vi": "Tìm hiểu thêm về [hướng dẫn trình chiếu](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "zh-CN": "详细了解[幻灯片指南](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)", + "zh-TW": "深入瞭解 [素材輪播準則](https://help.shopify.com/en/manual/using-themes/themes-by-shopify/debut#slideshow-sections-specific)" + }, + "options": [ + { + "label": { + "cs": "Přizpůsobení prvnímu obrázku", + "da": "Tilpas til første side", + "de": "An erstes Bild anpassen", + "en": "Adapt to first image", + "es": "Adaptar a la primera imagen", + "fi": "Mukauta ensimmäisen kuvan mukaan", + "fr": "Adapter à la première image", + "it": "Adatta alla prima immagine", + "ja": "最初の画像に対応", + "ko": "첫 번째 이미지에 맞춤", + "nb": "Tilpass etter første bilde", + "nl": "Aanpassen aan eerste afbeelding", + "pl": "Dostosuj do pierwszego obrazu", + "pt-BR": "Adaptar à primeira imagem", + "pt-PT": "Adaptar à primeira imagem", + "sv": "Anpassa efter första bilden", + "th": "ปรับให้เข้ากับรูปภาพแรก", + "tr": "İlk görsele uyarla", + "vi": "Điều chỉnh theo hình ảnh đầu tiên", + "zh-CN": "适应第一张图片", + "zh-TW": "配合第一張圖片" + }, + "value": "adapt" + }, + { + "label": { + "cs": "Malá", + "da": "Lille", + "de": "Klein", + "en": "Small", + "es": "Pequeña", + "fi": "Pieni", + "fr": "Petite", + "it": "Piccolo", + "ja": "小", + "ko": "스몰", + "nb": "Liten", + "nl": "Klein", + "pl": "Mały", + "pt-BR": "Pequeno", + "pt-PT": "Pequeno", + "sv": "Liten", + "th": "เล็ก", + "tr": "Küçük", + "vi": "Nhỏ", + "zh-CN": "小", + "zh-TW": "小型" + }, + "value": "small" + }, + { + "label": { + "cs": "Střední", + "da": "Medium", + "de": "Mittel", + "en": "Medium", + "es": "Mediana", + "fi": "Keskisuuri", + "fr": "Moyenne", + "it": "Medio", + "ja": "中", + "ko": "보통", + "nb": "Middels", + "nl": "Gemiddeld", + "pl": "Średnie", + "pt-BR": "Médio", + "pt-PT": "Médio", + "sv": "Medium", + "th": "ปานกลาง", + "tr": "Orta", + "vi": "Trung bình", + "zh-CN": "中等", + "zh-TW": "中等" + }, + "value": "medium" + }, + { + "label": { + "cs": "Velká", + "da": "Stor", + "de": "Groß", + "en": "Large", + "es": "Grande", + "fi": "Suuri", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "ko": "라지", + "nb": "Stor", + "nl": "Groot", + "pl": "Duży", + "pt-BR": "Grande", + "pt-PT": "Grande", + "sv": "Stor", + "th": "ใหญ่", + "tr": "Büyük", + "vi": "Lớn", + "zh-CN": "大", + "zh-TW": "大型" + }, + "value": "large" + } + ] + }, + { + "type": "select", + "id": "text_size", + "label": { + "cs": "Velikost textu", + "da": "Tekststørrelse", + "de": "Textgröße", + "en": "Text size", + "es": "Tamaño del texto", + "fi": "Tekstin koko", + "fr": "Taille du texte", + "it": "Dimensione testo", + "ja": "文字サイズ", + "ko": "텍스트 사이즈", + "nb": "Tekststørrelse", + "nl": "Tekengrootte", + "pl": "Rozmiar czcionki", + "pt-BR": "Tamanho do texto", + "pt-PT": "Tamanho do texto", + "sv": "Textstorlek", + "th": "ขนาดตัวอักษร", + "tr": "Metin boyutu", + "vi": "Cỡ văn bản", + "zh-CN": "文本大小", + "zh-TW": "文字尺寸" + }, + "default": "medium", + "options": [ + { + "label": { + "cs": "Střední", + "da": "Medium", + "de": "Mittel", + "en": "Medium", + "es": "Mediano", + "fi": "Keskisuuri", + "fr": "Moyenne", + "it": "Medio", + "ja": "中", + "ko": "보통", + "nb": "Middels", + "nl": "Gemiddeld", + "pl": "Średnia", + "pt-BR": "Médio", + "pt-PT": "Intermédio", + "sv": "Medium", + "th": "ปานกลาง", + "tr": "Orta", + "vi": "Trung bình", + "zh-CN": "中等", + "zh-TW": "中等" + }, + "value": "medium" + }, + { + "label": { + "cs": "Velká", + "da": "Stor", + "de": "Groß", + "en": "Large", + "es": "Grande", + "fi": "Suuri", + "fr": "Grande", + "it": "Grande", + "ja": "大", + "ko": "라지", + "nb": "Stor", + "nl": "Groot", + "pl": "Duża", + "pt-BR": "Grande", + "pt-PT": "Grande", + "sv": "Stor", + "th": "ใหญ่", + "tr": "Büyük", + "vi": "Lớn", + "zh-CN": "大", + "zh-TW": "大型" + }, + "value": "large" + } + ] + }, + { + "type": "select", + "id": "text_alignment", + "label": { + "cs": "Zarovnání textu", + "da": "Tekstjustering", + "de": "Textausrichtung", + "en": "Text alignment", + "es": "Alineación de texto", + "fi": "Tekstin tasaus", + "fr": "Alignement du texte", + "it": "Allineamento del testo", + "ja": "テキストアラインメント", + "ko": "텍스트 정렬", + "nb": "Tekstjustering", + "nl": "Tekstuitlijning", + "pl": "Wyrównanie tekstu", + "pt-BR": "Alinhamento de texto", + "pt-PT": "Alinhamento de texto", + "sv": "Textjustering", + "th": "การจัดตำแหน่งข้อความ", + "tr": "Metin hizalaması", + "vi": "Căn chỉnh văn bản", + "zh-CN": "文本对齐方式", + "zh-TW": "文字對齊" + }, + "default": "center center", + "options": [ + { + "label": { + "cs": "Nahoře doleva", + "da": "Øverst til venstre", + "de": "Oben links", + "en": "Top left", + "es": "Superior izquierda", + "fi": "Ylhäällä vasemmalla", + "fr": "En haut à gauche", + "it": "In alto a sinistra", + "ja": "左上", + "ko": "왼쪽 상단", + "nb": "Øverst til venstre", + "nl": "Linksboven", + "pl": "Na górze po lewej", + "pt-BR": "Superior esquerdo", + "pt-PT": "Canto superior esquerdo", + "sv": "Överst till vänster", + "th": "ซ้ายบน", + "tr": "Üst sol", + "vi": "Trên cùng bên trái", + "zh-CN": "左上方", + "zh-TW": "左上角" + }, + "value": "left top" + }, + { + "label": { + "cs": "Nahoře na střed", + "da": "Øverst i midten", + "de": "Oben Mitte", + "en": "Top center", + "es": "Superior centrada", + "fi": "Keskellä ylhäällä", + "fr": "En haut au centre", + "it": "In alto al centro", + "ja": "中央上", + "ko": "맨 위 중간", + "nb": "Toppsentrert", + "nl": "Midden boven", + "pl": "Na górze na środku", + "pt-BR": "Superior centro", + "pt-PT": "Superior centro", + "sv": "Längst upp i mitten", + "th": "กลางบน", + "tr": "Üst orta", + "vi": "Trên cùng ở giữa", + "zh-CN": "顶部居中", + "zh-TW": "中央上方" + }, + "value": "center top" + }, + { + "label": { + "cs": "Nahoře doprava", + "da": "Øverst til højre", + "de": "Oben rechts", + "en": "Top right", + "es": "Superior derecha", + "fi": "Ylhäällä oikealla", + "fr": "En haut à droite", + "it": "In alto a destra", + "ja": "右上", + "ko": "오른쪽 상단", + "nb": "Øverst til høyre", + "nl": "Rechtsboven", + "pl": "Na górze po prawej", + "pt-BR": "Superior direito", + "pt-PT": "Canto superior direito", + "sv": "Överst till höger", + "th": "ขวาบน", + "tr": "Üst sağ", + "vi": "Trên cùng bên phải", + "zh-CN": "右上方", + "zh-TW": "右上角" + }, + "value": "right top" + }, + { + "label": { + "cs": "Uprostřed doleva", + "da": "Midt på til venstre", + "de": "Mitte links", + "en": "Middle left", + "es": "Al medio a la izquierda", + "fi": "Keskellä vasemmalla", + "fr": "Au milieu à gauche", + "it": "Nel mezzo a sinistra", + "ja": "中央部左側", + "ko": "왼쪽 중간", + "nb": "Midt til venstre", + "nl": "Midden links", + "pl": "Na środku po lewej", + "pt-BR": "Meio esquerdo", + "pt-PT": "Intermédio à esquerda", + "sv": "Mitten till vänster", + "th": "ซ้ายกลาง", + "tr": "Orta sol", + "vi": "Ở giữa bên trái", + "zh-CN": "中间居左", + "zh-TW": "中央左方" + }, + "value": "left center" + }, + { + "label": { + "cs": "Uprostřed na střed", + "da": "Midt på centreret", + "de": "Mitte mittig", + "en": "Middle center", + "es": "Centrada en el medio", + "fi": "Keskellä keskellä", + "fr": "Centrée au milieu", + "it": "In mezzo", + "ja": "中心", + "ko": "가운데 중간", + "nb": "Midt i senter", + "nl": "Midden centrum", + "pl": "Na środku", + "pt-BR": "Meio centro", + "pt-PT": "Intermédio ao centro", + "sv": "Mitten centrerat", + "th": "กึ่งกลาง", + "tr": "Orta kısmın ortası", + "vi": "Chính giữa", + "zh-CN": "中间居中", + "zh-TW": "正中央" + }, + "value": "center center" + }, + { + "label": { + "cs": "Uprostřed doprava", + "da": "Midt på til højre", + "de": "Mitte rechts", + "en": "Middle right", + "es": "Centrado a la derecha", + "fi": "Keskellä oikealla", + "fr": "Au milieu à droite", + "it": "Nel mezzo a destra", + "ja": "中央部右側", + "ko": "오른쪽 중간", + "nb": "Midt til høyre", + "nl": "Midden rechts", + "pl": "Na środku po prawej", + "pt-BR": "Meio direito", + "pt-PT": "Intermédio à direita", + "sv": "Mitten till höger", + "th": "ขวากลาง", + "tr": "Orta sağ", + "vi": "Ở giữa bên phải", + "zh-CN": "中间居右", + "zh-TW": "中央右方" + }, + "value": "right center" + }, + { + "label": { + "cs": "Dole doleva", + "da": "Nederst til venstre", + "de": "Unten links", + "en": "Bottom left", + "es": "Inferior izquierda", + "fi": "Alhaalla vasemmalla", + "fr": "En bas à gauche", + "it": "In basso a sinistra", + "ja": "左下", + "ko": "왼쪽 하단", + "nb": "Nederst til venstre", + "nl": "Linksonder", + "pl": "Na dole po lewej", + "pt-BR": "Inferior esquerdo", + "pt-PT": "Canto inferior esquerdo", + "sv": "Nere till vänster", + "th": "ซ้ายล่าง", + "tr": "Alt sol", + "vi": "Dưới cùng bên trái", + "zh-CN": "左下方", + "zh-TW": "左下角" + }, + "value": "left bottom" + }, + { + "label": { + "cs": "Dole na střed", + "da": "Nederst i midten", + "de": "Unten mittig", + "en": "Bottom center", + "es": "Inferior centrada", + "fi": "Keskellä alhaalla", + "fr": "En bas au centre", + "it": "In basso al centro", + "ja": "中央下", + "ko": "맨아래 중간", + "nb": "Bunnsentrert", + "nl": "Midden onder", + "pl": "Na dole na środku", + "pt-BR": "Inferior centro", + "pt-PT": "Inferior centro", + "sv": "Längst ner i mitten", + "th": "กลางล่าง", + "tr": "Alt orta", + "vi": "Dưới cùng ở giữa", + "zh-CN": "底部居中", + "zh-TW": "中央下方" + }, + "value": "center bottom" + }, + { + "label": { + "cs": "Dole doprava", + "da": "Nederst til højre", + "de": "Unten rechts", + "en": "Bottom right", + "es": "Inferior derecha", + "fi": "Alhaalla oikealla", + "fr": "En bas à droite", + "it": "In basso a destra", + "ja": "右下", + "ko": "오른쪽 아래", + "nb": "Nederst til høyre", + "nl": "Rechtsonder", + "pl": "Na dole po prawej", + "pt-BR": "Inferior direito", + "pt-PT": "Canto inferior direito", + "sv": "Nere till höger", + "th": "ขวาล่าง", + "tr": "Alt sağ", + "vi": "Dưới cùng bên phải", + "zh-CN": "右下方", + "zh-TW": "右下角" + }, + "value": "right bottom" + } + ] + }, + { + "type": "checkbox", + "id": "show_overlay", + "label": { + "cs": "Zobrazit překryv", + "da": "Vis overlejring", + "de": "Überlagerung zeigen", + "en": "Show overlay", + "es": "Mostrar superposición", + "fi": "Näytä peittokuva", + "fr": "Afficher la superposition", + "it": "Mostra sovrapposizione", + "ja": "オーバーレイを表示する", + "ko": "오버레이 표시", + "nb": "Vis overlegg", + "nl": "Overlay weergeven", + "pl": "Pokaż nakładkę", + "pt-BR": "Exibir sobreposição", + "pt-PT": "Mostrar sobreposição", + "sv": "Visa överlagring", + "th": "แสดงการวางซ้อน", + "tr": "Yer paylaşımını göster", + "vi": "Hiển thị lớp phủ", + "zh-CN": "显示叠加", + "zh-TW": "顯示疊加層" + }, + "default": true + }, + { + "type": "checkbox", + "id": "autorotate", + "label": { + "cs": "Automaticky otočit snímky", + "da": "Roter automatisk slides", + "de": "Auto-rotieren der Slides", + "en": "Auto-rotate slides", + "es": "Rotar las diapositivas automáticamente", + "fi": "Käännä diat automaattisesti", + "fr": "Rotation automatique des diapositives", + "it": "Ruota slide automaticamente", + "ja": "スライドの自動切り替え", + "ko": "슬라이드 자동 회전", + "nb": "Autoroter lysbildene", + "nl": "Dia's automatisch draaien", + "pl": "Automatycznie obracaj slajdy", + "pt-BR": "Rodar os slides automaticamente", + "pt-PT": "Reprodução automática de diapositivos", + "sv": "Auto-rotera bilder", + "th": "หมุนสไลด์อัตโนมัติ", + "tr": "Slaytları otomatik olarak döndür", + "vi": "Tự động xoay vòng trang chiếu", + "zh-CN": "自动旋转幻灯片", + "zh-TW": "自動旋轉投影片" + }, + "default": false + }, + { + "type": "range", + "id": "autorotate_speed", + "label": { + "cs": "Změnit snímek co", + "da": "Skift slide hver", + "de": "Slides überall ändern", + "en": "Change slides every", + "es": "Cambiar diapositivas cada", + "fi": "Vaihda diat joka", + "fr": "Changer de diapositive toutes les", + "it": "Cambia slide ogni", + "ja": "スライドを変更する間隔", + "ko": "슬라이드를 매번 변경", + "nb": "Endre lysbilde hvert", + "nl": "Wijzig dia's elke", + "pl": "Zmieniaj slajdy co", + "pt-BR": "Mudar os slides a cada", + "pt-PT": "Mudar diapositivos a cada", + "sv": "Byt bilder varje", + "th": "เปลี่ยนสไลด์ทุก", + "tr": "Slaytları şu zaman aralığında değiştir:", + "vi": "Đổi trang chiếu sau mỗi", + "zh-CN": "幻灯片更改时间间隔", + "zh-TW": "每過以下時間即變更投影片" + }, + "max": 9, + "min": 3, + "step": 2, + "unit": { + "cs": " s", + "da": " s", + "de": " s", + "en": " s", + "es": " s", + "fi": " s", + "fr": " s", + "it": " s", + "ja": " s", + "ko": " s", + "nb": " s", + "nl": " s", + "pl": " s", + "pt-BR": " s", + "pt-PT": " s", + "sv": " s", + "th": " s", + "tr": " sn", + "vi": " gi", + "zh-CN": " s", + "zh-TW": " s" + }, + "default": 5 + } + ], + "blocks": [ + { + "type": "image", + "name": { + "cs": "Obrázkový snímek", + "da": "Billeddias", + "de": "Foto-Slide", + "en": "Image slide", + "es": "Diapositiva de imagen", + "fi": "Kuvadia", + "fr": "Diapositive (image)", + "it": "Slide immagine", + "ja": "画像スライド", + "ko": "이미지 슬라이드", + "nb": "Lysbilde", + "nl": "Afbeelding dia", + "pl": "Slajd obrazu", + "pt-BR": "Slide de imagem", + "pt-PT": "Diapositivo de imagem", + "sv": "Bild i bildspel", + "th": "สไลด์รูปภาพ", + "tr": "Görsel slaytı", + "vi": "Trang chiếu hình ảnh", + "zh-CN": "图片幻灯片", + "zh-TW": "圖片投影片" + }, + "settings": [ + { + "type": "image_picker", + "id": "image", + "label": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + } + }, + { + "type": "select", + "id": "alignment", + "label": { + "cs": "Pozice obrázku", + "da": "Placering af billede", + "de": "Foto-Position", + "en": "Image position", + "es": "Alineación de imagen", + "fi": "Kuvan sijainti", + "fr": "Position de l'image", + "it": "Allineamento immagine", + "ja": "画像アラインメント", + "ko": "이미지 위치", + "nb": "Bildeposisjon", + "nl": "Afbeeldingspositie", + "pl": "Położenie obrazu", + "pt-BR": "Alinhamento da imagem", + "pt-PT": "Posição da imagem", + "sv": "Bildposition", + "th": "ตำแหน่งรูปภาพ", + "tr": "Görsel konumu", + "vi": "Vị trí hình ảnh", + "zh-CN": "图片位置", + "zh-TW": "圖片位置" + }, + "default": "center center", + "options": [ + { + "label": { + "cs": "Nahoře vlevo", + "da": "Øverst til venstre", + "de": "Oben links", + "en": "Top left", + "es": "Superior izquierda", + "fi": "Ylhäällä vasemmalla", + "fr": "En haut à gauche", + "it": "In alto a sinistra", + "ja": "左上", + "ko": "왼쪽 상단", + "nb": "Øverst til venstre", + "nl": "Linksboven", + "pl": "Na górze po lewej", + "pt-BR": "Superior esquerdo", + "pt-PT": "Canto superior esquerdo", + "sv": "Överst till vänster", + "th": "ซ้ายบน", + "tr": "Üst sol", + "vi": "Trên cùng bên trái", + "zh-CN": "左上方", + "zh-TW": "左上角" + }, + "value": "left top" + }, + { + "label": { + "cs": "Nahoře ve středu", + "da": "Øverst i midten", + "de": "Oben Mitte", + "en": "Top center", + "es": "Superior centrada", + "fi": "Keskellä ylhäällä", + "fr": "En haut au centre", + "it": "In alto al centro", + "ja": "中央上", + "ko": "맨 위 중간", + "nb": "Toppsentrert", + "nl": "Midden boven", + "pl": "Na górze na środku", + "pt-BR": "Superior centro", + "pt-PT": "Superior centro", + "sv": "Längst upp i mitten", + "th": "กลางบน", + "tr": "Üst orta", + "vi": "Trên cùng ở giữa", + "zh-CN": "顶部居中", + "zh-TW": "中央上方" + }, + "value": "center top" + }, + { + "label": { + "cs": "Nahoře vpravo", + "da": "Øverst til højre", + "de": "Oben rechts", + "en": "Top right", + "es": "Superior derecha", + "fi": "Ylhäällä oikealla", + "fr": "En haut à droite", + "it": "In alto a destra", + "ja": "右上", + "ko": "오른쪽 상단", + "nb": "Øverst til høyre", + "nl": "Rechtsboven", + "pl": "Na górze po prawej", + "pt-BR": "Superior direito", + "pt-PT": "Canto superior direito", + "sv": "Överst till höger", + "th": "ขวาบน", + "tr": "Üst sağ", + "vi": "Trên cùng bên phải", + "zh-CN": "右上方", + "zh-TW": "右上角" + }, + "value": "right top" + }, + { + "label": { + "cs": "Uprostřed vlevo", + "da": "Midt på til venstre", + "de": "Mitte links", + "en": "Middle left", + "es": "Al medio a la izquierda", + "fi": "Keskellä vasemmalla", + "fr": "Au milieu à gauche", + "it": "Nel mezzo a sinistra", + "ja": "中央部左側", + "ko": "왼쪽 중간", + "nb": "Midt til venstre", + "nl": "Midden links", + "pl": "Na środku po lewej", + "pt-BR": "Meio esquerdo", + "pt-PT": "Intermédio à esquerda", + "sv": "Mitten till vänster", + "th": "ซ้ายกลาง", + "tr": "Orta sol", + "vi": "Ở giữa bên trái", + "zh-CN": "中间居左", + "zh-TW": "中央左方" + }, + "value": "left center" + }, + { + "label": { + "cs": "Uprostřed ve středu", + "da": "Midt på centreret", + "de": "Mitte mittig", + "en": "Middle center", + "es": "Centrada en el medio", + "fi": "Keskellä keskellä", + "fr": "Centrée au milieu", + "it": "In mezzo", + "ja": "中心", + "ko": "가운데 중간", + "nb": "Midt i senter", + "nl": "Midden centrum", + "pl": "Na środku", + "pt-BR": "Meio centro", + "pt-PT": "Intermédio ao centro", + "sv": "Mitten centrerat", + "th": "กึ่งกลาง", + "tr": "Orta kısmın ortası", + "vi": "Chính giữa", + "zh-CN": "中间居中", + "zh-TW": "正中央" + }, + "value": "center center" + }, + { + "label": { + "cs": "Uprostřed vpravo", + "da": "Midt på til højre", + "de": "Mitte rechts", + "en": "Middle right", + "es": "Centrado a la derecha", + "fi": "Keskellä oikealla", + "fr": "Au milieu à droite", + "it": "Nel mezzo a destra", + "ja": "中央部右側", + "ko": "오른쪽 중간", + "nb": "Midt til høyre", + "nl": "Midden rechts", + "pl": "Na środku po prawej", + "pt-BR": "Meio direito", + "pt-PT": "Intermédio à direita", + "sv": "Mitten till höger", + "th": "ขวากลาง", + "tr": "Orta sağ", + "vi": "Ở giữa bên phải", + "zh-CN": "中间居右", + "zh-TW": "中央右方" + }, + "value": "right center" + }, + { + "label": { + "cs": "Dole vlevo", + "da": "Nederst til venstre", + "de": "Unten links", + "en": "Bottom left", + "es": "Inferior izquierda", + "fi": "Alhaalla vasemmalla", + "fr": "En bas à gauche", + "it": "In basso a sinistra", + "ja": "左下", + "ko": "왼쪽 하단", + "nb": "Nederst til venstre", + "nl": "Linksonder", + "pl": "Na dole po lewej", + "pt-BR": "Inferior esquerdo", + "pt-PT": "Canto inferior esquerdo", + "sv": "Nere till vänster", + "th": "ซ้ายล่าง", + "tr": "Alt sol", + "vi": "Dưới cùng bên trái", + "zh-CN": "左下方", + "zh-TW": "左下角" + }, + "value": "left bottom" + }, + { + "label": { + "cs": "Dole ve středu", + "da": "Nederst i midten", + "de": "Unten mittig", + "en": "Bottom center", + "es": "Inferior centrada", + "fi": "Keskellä alhaalla", + "fr": "En bas au centre", + "it": "In basso al centro", + "ja": "中央下", + "ko": "맨아래 중간", + "nb": "Bunnsentrert", + "nl": "Midden onder", + "pl": "Na dole na środku", + "pt-BR": "Inferior centro", + "pt-PT": "Inferior centro", + "sv": "Längst ner i mitten", + "th": "กลางล่าง", + "tr": "Alt orta", + "vi": "Dưới cùng ở giữa", + "zh-CN": "底部居中", + "zh-TW": "中央下方" + }, + "value": "center bottom" + }, + { + "label": { + "cs": "Dole vpravo", + "da": "Nederst til højre", + "de": "Unten rechts", + "en": "Bottom right", + "es": "Inferior derecha", + "fi": "Alhaalla oikealla", + "fr": "En bas à droite", + "it": "In basso a destra", + "ja": "右下", + "ko": "오른쪽 아래", + "nb": "Nederst til høyre", + "nl": "Rechtsonder", + "pl": "Na dole po prawej", + "pt-BR": "Inferior direito", + "pt-PT": "Canto inferior direito", + "sv": "Nere till höger", + "th": "ขวาล่าง", + "tr": "Alt sağ", + "vi": "Dưới cùng bên phải", + "zh-CN": "右下方", + "zh-TW": "右下角" + }, + "value": "right bottom" + } + ] + }, + { + "type": "text", + "id": "slide_title", + "label": { + "cs": "Nadpis", + "da": "Overskrift", + "de": "Titel", + "en": "Heading", + "es": "Título", + "fi": "Otsake", + "fr": "En-tête", + "it": "Titolo", + "ja": "見出し", + "ko": "제목", + "nb": "Overskrift", + "nl": "Kop", + "pl": "Nagłówek", + "pt-BR": "Título", + "pt-PT": "Título", + "sv": "Rubrik", + "th": "ส่วนหัว", + "tr": "Başlık", + "vi": "Tiêu đề", + "zh-CN": "标题", + "zh-TW": "標題" + }, + "default": { + "cs": "Obrázkový snímek", + "da": "Billeddias", + "de": "Foto-Slide", + "en": "Image slide", + "es": "Diapositiva de imagen", + "fi": "Kuvadia", + "fr": "Diapositive (image)", + "it": "Slide immagine", + "ja": "画像スライド", + "ko": "이미지 슬라이드", + "nb": "Lysbilde", + "nl": "Afbeelding dia", + "pl": "Slajd obrazu", + "pt-BR": "Slide de imagem", + "pt-PT": "Diapositivo de imagem", + "sv": "Bild i bildspel", + "th": "สไลด์รูปภาพ", + "tr": "Görsel slaytı", + "vi": "Trang chiếu hình ảnh", + "zh-CN": "图片幻灯片", + "zh-TW": "圖片投影片" + } + }, + { + "type": "text", + "id": "subheading", + "label": { + "cs": "Podnadpis", + "da": "Underoverskrift", + "de": "Untertitel", + "en": "Subheading", + "es": "Subtítulo", + "fi": "Alaotsikko", + "fr": "Sous-titre", + "it": "Sottotitolo", + "ja": "小見出し", + "ko": "소제목", + "nb": "Underoverskrift", + "nl": "Subkop", + "pl": "Nagłówek podrzędny", + "pt-BR": "Subtítulo", + "pt-PT": "Subtítulo", + "sv": "Underrubrik", + "th": "หัวเรื่องย่อย", + "tr": "Alt başlık", + "vi": "Tiêu đề phụ", + "zh-CN": "副标题", + "zh-TW": "子標題" + }, + "default": { + "cs": "Představte příběh své značky prostřednictvím obrázků", + "da": "Fortæl dit brands historie gennem billeder", + "de": "Erzähle deine Geschichte mit Fotos", + "en": "Tell your brand's story through images", + "es": "Cuenta la historia de tu marca a través de videos e imágenes", + "fi": "Kerro tuotemerkkisi tarina kuvien kautta", + "fr": "Racontez votre histoire avec des images", + "it": "Racconta la storia del tuo brand con video e immagini", + "ja": "あなたのブランドのストーリーをビデオや画像で伝える", + "ko": "이미지를 통해 브랜드 스토리 이야기하기", + "nb": "Fortell merkevarens historie gjennom bilder", + "nl": "Vertel met afbeeldingen het verhaal van je merk", + "pl": "Opowiedz historię swojej marki za pomocą obrazów", + "pt-BR": "Conte a história da sua marca com vídeos e imagens", + "pt-PT": "Conte a história da sua marca através de imagens", + "sv": "Berätta ditt varumärkes historia genom video och bilder", + "th": "บอกเล่าเรื่องราวของแบรนด์คุณผ่านรูปภาพ", + "tr": "Görsellerle marka öykünüzü anlatın", + "vi": "Chia sẻ câu chuyện thương hiệu của bạn qua hình ảnh", + "zh-CN": "通过图片讲述您的品牌故事", + "zh-TW": "用圖片講述您的品牌故事" + } + }, + { + "type": "text", + "id": "button_label", + "label": { + "cs": "Text tlačítka", + "da": "Knaptekst", + "de": "Schaltflächenbeschriftung", + "en": "Button label", + "es": "Etiqueta de botón", + "fi": "Tekstipainike", + "fr": "Texte du bouton", + "it": "Etichetta pulsante", + "ja": "ボタンのラベル", + "ko": "버튼 레이블", + "nb": "Knappetikett", + "nl": "Knoplabel", + "pl": "Przycisk z etykietą", + "pt-BR": "Etiqueta de botão", + "pt-PT": "Etiqueta do botão", + "sv": "Knappetikett", + "th": "ป้ายกำกับปุ่ม", + "tr": "Düğme etiketi", + "vi": "Nhãn nút", + "zh-CN": "按钮标签", + "zh-TW": "按鈕標籤" + } + }, + { + "type": "url", + "id": "button_link", + "label": { + "cs": "Tlačítkový odkaz", + "da": "Knaplink", + "de": "Schaltflächenlink", + "en": "Button link", + "es": "Enlace de la diapositiva", + "fi": "Painikelinkki", + "fr": "Lien du bouton", + "it": "Link slide", + "ja": "ボタンのリンク", + "ko": "버튼 링크", + "nb": "Kobling for knapp", + "nl": "Knoplink", + "pl": "Link przycisku", + "pt-BR": "Link do slide", + "pt-PT": "Ligação do botão", + "sv": "Knapplänk", + "th": "ลิงก์ปุ่ม", + "tr": "Düğme bağlantısı", + "vi": "Liên kết trên nút", + "zh-CN": "按钮链接", + "zh-TW": "按鈕連結" + } + } + ] + } + ], + "presets": [ + { + "name": { + "cs": "Prezentace", + "da": "Diasshow", + "de": "Slideshow", + "en": "Slideshow", + "es": "Diapositivas", + "fi": "Diaesitys", + "fr": "Diaporama", + "it": "Presentazione", + "ja": "スライドショー", + "ko": "슬라이드 쇼", + "nb": "Lysbildefremvisning", + "nl": "Diavoorstelling", + "pl": "Pokaz slajdów", + "pt-BR": "Apresentação de slides", + "pt-PT": "Apresentação de diapositivos", + "sv": "Bildspel", + "th": "สไลด์โชว์", + "tr": "Slayt gösterisi", + "vi": "Bản trình chiếu", + "zh-CN": "幻灯片", + "zh-TW": "素材輪播" + }, + "category": { + "cs": "Obrázek", + "da": "Billede", + "de": "Foto", + "en": "Image", + "es": "Imagen", + "fi": "Kuva", + "fr": "Image", + "it": "Immagine", + "ja": "画像", + "ko": "이미지", + "nb": "Bilde", + "nl": "Afbeelding", + "pl": "Obraz", + "pt-BR": "Imagem", + "pt-PT": "Imagem", + "sv": "Bild", + "th": "รูปภาพ", + "tr": "Görsel", + "vi": "Hình ảnh", + "zh-CN": "图片", + "zh-TW": "圖片" + }, + "settings": { + "autorotate": false, + "autorotate_speed": 5 + }, + "blocks": [ + { + "type": "image" + }, + { + "type": "image" + } + ] + } + ] +} +{% endschema %} diff --git a/shopify/sections/store-availability.liquid b/shopify/sections/store-availability.liquid new file mode 100644 index 00000000..9f7cea5f --- /dev/null +++ b/shopify/sections/store-availability.liquid @@ -0,0 +1,98 @@ +
    + {%- assign pick_up_availabilities = product_variant.store_availabilities | where: 'pick_up_enabled', true -%} + {%- if pick_up_availabilities.size > 0 -%} +
    + {%- assign closest_location = pick_up_availabilities.first -%} + {%- if closest_location.available -%} {% render 'icon-in-stock' %} {%- else -%} {% render 'icon-out-of-stock' %} {%- endif -%} +
    + {%- if closest_location.available -%} +

    + {{ 'store_availability.general.pick_up_available_at_html' | t: location_name: closest_location.location.name }} +

    +

    + {{ closest_location.pick_up_time }} +

    + + {%- else -%} +

    + {{ 'store_availability.general.pick_up_unavailable_at_html' | t: location_name: closest_location.location.name }} +

    + {%- if pick_up_availabilities.size > 1 -%} + + {%- endif -%} + {%- endif -%} +
    +
    + + {%- endif -%} +
    + +{% schema %} +{ + "name": {}, + "settings": [] +} +{% endschema %} diff --git a/shopify/sections/video.liquid b/shopify/sections/video.liquid new file mode 100644 index 00000000..8bac8082 --- /dev/null +++ b/shopify/sections/video.liquid @@ -0,0 +1,74 @@ + + +
    + {%- if section.settings.video != blank -%} +
    + {{ section.settings.video | video_tag: autoplay: true, loop: true, muted: true, controls: false, class: 'hidden-phone' }} + {{ section.settings.video_mobile | video_tag: autoplay: true, loop: true, muted: true, controls: false, class: 'hidden-desktop' }} +
    + {%- endif -%} + +
    + {%- render 'icon-triangular-line' -%} +
    +
    + +{% schema %} +{ + "name": "Video", + "settings": [ + { + "type": "video", + "id": "video", + "label": "Video" + }, + { + "type": "video", + "id": "video_mobile", + "label": "Video" + }, + { + "type": "header", + "content": "Colors" + }, + { + "type": "color", + "id": "background_color", + "label": "Background Color", + "default": "#dbaaeb" + }, + { + "type": "color", + "id": "accent_color", + "label": "Accent Color", + "default": "#2ac2bd" + }, + { + "type": "color", + "id": "hover_color", + "label": "Hover Color", + "default": "#f3587f" + } + ], + "presets": [ + { + "name": "Video" + } + ] +} +{% endschema %} diff --git a/shopify/sections/vue-examples.liquid b/shopify/sections/vue-examples.liquid deleted file mode 100644 index 3021d8c9..00000000 --- a/shopify/sections/vue-examples.liquid +++ /dev/null @@ -1,162 +0,0 @@ -
    -
    -

    - Shopify Theme Lab 🧪 -

    - -

    - Customizable modular development environment for blazing-fast Shopify theme creation. -

    - -
    - - -
    - - -
    - Vue component with slots and props -
    -
    - - -
    -
    - Global Vue mixin -
    - -
    - NODE_ENV: {% raw %}{{ env }}{% endraw %} -
    -
    - - -
    -
    - Global Vue directive -
    - -
    - this text -
    -
    -
    - -
    - - -
    -
    - Renderless Vue component + Vuex -
    - -
    - Vuex “my-module” state “visible” is set to {% raw %}{{ visible }}{% endraw %} -
    - - -
    -
    - - -
    -
    - Vuex anywhere! -
    - -
    - Vuex “my-module” state “visible” is set to {% raw %}{{ $store.state['my-module'].visible }}{% endraw %} -
    - - -
    -
    -
    -
    -
    - - -.shopify-theme-lab { - background: rgb(240,240,240); - border-radius: 10px; - padding: 30px; - margin: 20px 0; -} - -.shopify-theme-lab__headline { - font-size: 24px; - font-weight: 700; - text-align: center; - margin-bottom: 10px; -} - -.shopify-theme-lab__subline { - font-size: 16px; - font-weight: 700; -} - -.shopify-theme-lab__text { - font-size: 18px; - text-align: center; - margin-bottom: 40px; -} - -.shopify-theme-lab__examples { - display: flex; - flex-wrap: wrap; - justify-content: center; - gap: 40px; -} - -.shopify-theme-lab__example { - display: flex; - flex-direction: column; - gap: 20px; -} - -.shopify-theme-lab__button { - color: rgb(255,255,255); - background: rgb(0,0,0); - font-size: 12px; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.1em; - border-radius: 4px; - padding: 5px 15px; - margin-top: 5px; -} - -.shopify-theme-lab__button:hover { - background: rgb(70,70,70); -} - - -{% schema %} -{ - "name": "Vue examples", - "class": "vue-section", - "presets": [ - { - "name": "Vue examples" - } - ] -} -{% endschema %} \ No newline at end of file diff --git a/shopify/snippets/adaptive-color.liquid b/shopify/snippets/adaptive-color.liquid new file mode 100644 index 00000000..2a560cc5 --- /dev/null +++ b/shopify/snippets/adaptive-color.liquid @@ -0,0 +1,24 @@ +{%- assign color_brightness = color | color_brightness -%} +{%- if color_brightness < 64 -%} + {%- if is_background_color -%} + {%- assign new_color = color | color_lighten: 10 -%} + {%- else -%} + {%- assign new_color = color | color_lighten: 15 -%} + {%- endif -%} +{%- else -%} + {%- if is_background_color -%} + {%- assign new_color = color | color_darken: 5 -%} + {%- else -%} + {%- assign new_color = color | color_darken: 10 -%} + {%- endif -%} +{%- endif -%} + +{%- if color_brightness < 26 -%} + {%- if is_background_color -%} + {%- assign new_color = color | color_lighten: 15 -%} + {%- else -%} + {%- assign new_color = color | color_lighten: 25 -%} + {%- endif -%} +{%- endif -%} + +{{- new_color -}} diff --git a/shopify/snippets/atc-button.liquid b/shopify/snippets/atc-button.liquid new file mode 100644 index 00000000..a67003cf --- /dev/null +++ b/shopify/snippets/atc-button.liquid @@ -0,0 +1,92 @@ + + {%- form 'product', + product, + class: '', + data-product-form: '', + data-product-handle: product.handle, + data-enable-history-state: 'true', + data-productid: product.id + -%} + {%- if product.metafields.custom.preorder_date != blank -%} + + {{ 'products.pre_order.shipping_info' | t: date: product.metafields.custom.preorder_date }} + + + + + {%- endif -%} + + + + + + + {%- endform -%} + diff --git a/shopify/snippets/bc_banner.liquid b/shopify/snippets/bc_banner.liquid new file mode 100644 index 00000000..e186e6c4 --- /dev/null +++ b/shopify/snippets/bc_banner.liquid @@ -0,0 +1,197 @@ +{% assign data = shop.metafields.bc_cookie %} +{% assign cookieData = data.bc_cookie_list %} + +{% if data.size > 0 and cookieData._bc_c_set.live == '1' and content_for_header contains 'app.gdpr-legal-cookie.com\/get-script.php' %} + + + + + + + +{% endif %} diff --git a/shopify/snippets/bgset.liquid b/shopify/snippets/bgset.liquid new file mode 100644 index 00000000..8daf7bf9 --- /dev/null +++ b/shopify/snippets/bgset.liquid @@ -0,0 +1,21 @@ +{%- if image != blank -%} + {% if image.width > 180 %}{{ image | img_url: '180x' }} 180w {{ 180 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 360 %}{{ image | img_url: '360x' }} 360w {{ 360 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 540 %}{{ image | img_url: '540x' }} 540w {{ 540 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 720 %}{{ image | img_url: '720x' }} 720w {{ 720 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 900 %}{{ image | img_url: '900x' }} 900w {{ 900 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 1080 %}{{ image | img_url: '1080x' }} 1080w {{ 1080 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 1296 %}{{ image | img_url: '1296x' }} 1296w {{ 1296 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 1512 %}{{ image | img_url: '1512x' }} 1512w {{ 1512 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 1728 %}{{ image | img_url: '1728x' }} 1728w {{ 1728 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 1950 %}{{ image | img_url: '1950x' }} 1950w {{ 1950 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 2100 %}{{ image | img_url: '2100x' }} 2100w {{ 2100 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 2260 %}{{ image | img_url: '2260x' }} 2260w {{ 2260 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 2450 %}{{ image | img_url: '2450x' }} 2450w {{ 2450 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 2700 %}{{ image | img_url: '2700x' }} 2700w {{ 2700 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 3000 %}{{ image | img_url: '3000x' }} 3000w {{ 3000 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 3350 %}{{ image | img_url: '3350x' }} 3350w {{ 3350 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 3750 %}{{ image | img_url: '3750x' }} 3750w {{ 3750 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {% if image.width > 4100 %}{{ image | img_url: '4100x' }} 4100w {{ 4100 | divided_by: image.aspect_ratio | round }}h,{% endif %} + {{ image | img_url: 'master' }} {{ image.width }}w {{ image.height }}h +{%- endif -%} diff --git a/shopify/snippets/bundle-product-snippet.liquid b/shopify/snippets/bundle-product-snippet.liquid new file mode 100644 index 00000000..8abd828a --- /dev/null +++ b/shopify/snippets/bundle-product-snippet.liquid @@ -0,0 +1,241 @@ +{% comment %} +TODO: Whole Snippet is really not that clean because of fiverr work and should be redone at one point. +This was also made fast for black friday so that added up the the mess +{% endcomment %} + + + + +{%- assign product_form_id = 'product-form-' | append: section.id -%} + +{% assign products_dropdown_1 = collections[section.settings.product_dropdown_1] %} +{% assign products_dropdown_2 = collections[section.settings.product_dropdown_2] %} + +{%- assign first_product = products_dropdown_1.products.first -%} +{%- assign second_product = products_dropdown_2.products.first -%} +{% assign free_product = all_products[section.settings.free_product] %} + + +
    +
    + +
    +
    + +
    + +
    +
    +
    +
    + {{ product.description }} +
    +
    +
    + +
    + +
    + {%- if underline_word != blank -%} + {%- assign title_without_word = product.title | remove: underline_word -%} +

    {{ title_without_word }}{%- if underline_word != blank -%}{{ underline_word }}{%- endif -%}

    + {%- else -%} +

    {{ product.title }}

    + {%- endif -%} + +

    {{ section.settings.subtitle }}

    +
    +
    +
    + {% render 'judgeme_widgets', widget_type: 'judgeme_preview_badge', jm_style: '', concierge_install: false, product: all_products['probierbox-alle-sorten-16-stuck-bio-vegan'] %} +
    +
    +
    + {%- assign bar_quantity = first_product.metafields.custom.quantity_content.value | plus: second_product.metafields.custom.quantity_content.value | plus: free_product.metafields.custom.quantity_content.value -%} + {%- assign bundle_total = first_product.first_available_variant.price | plus: second_product.first_available_variant.price -%} +

    {{ bar_quantity }} Riegel

    + + {%- assign bar_price = bundle_total | divided_by: bar_quantity -%} +

    {{ bar_price | money }} pro Riegel

    +
    +
    +
    +
    + {{ product.description }} +
    +
    +
    + + +
    +
    +
    +

    Wähle Produkt 1

    +
    +

    {{ first_product.metafields.custom.bundle_custom_title.value }}

    + {{ first_product.metafields.custom.quantity_content }} Riegel + +
    + {%- if first_product.metafields.custom.bundle_custom_product_image -%} + + {%- else -%} + + {%- endif -%} +
    + {% for variant in first_product.variants %} +
    + {{ variant.price | money }} + {%- if variant.unit_price -%} + {{ variant.unit_price | money }} / {{ variant.unit_price_measurement.reference_unit }} + {%- endif -%} +
    + {% endfor %} +
    + +
    +
    +
    +
    +

    Wähle Produkt 2

    +
    +

    {{ second_product.metafields.custom.bundle_custom_title.value }}

    + {{ second_product.metafields.custom.quantity_content }} Riegel + +
    + {%- if second_product.metafields.custom.bundle_custom_product_image -%} + + {%- else -%} + + {%- endif -%} +
    + {% for variant in second_product.variants %} +
    + {{ variant.price | money }} + {%- if variant.unit_price -%} + {{ variant.unit_price | money }} / {{ variant.unit_price_measurement.reference_unit }} + {%- endif -%} +
    + {% endfor %} +
    + +
    +
    +
    + +
    +

    Gratis Produkt

    +
    +

    {{ free_product.metafields.custom.bundle_custom_title.value }}

    + {{ free_product.metafields.custom.quantity_content }} Riegel + +
    + {%- if free_product.metafields.custom.bundle_custom_product_image -%} + + {%- else -%} + + {%- endif -%} +
    +
    + €0,00 + {{ free_product.price | money }} +
    + +
    +
    +
    +
    + +
    + + + + + + +
    +
    + +
    +

    Yay auf Lager

    +
    +
    +

    🚚

    + + {{ product.metafields.custom.shipping_time.value }} +
    +
    + +
    +
    +
    +
    +
    +
    + + + +
    + + \ No newline at end of file diff --git a/shopify/snippets/cart-item.liquid b/shopify/snippets/cart-item.liquid new file mode 100644 index 00000000..35e74c80 --- /dev/null +++ b/shopify/snippets/cart-item.liquid @@ -0,0 +1,106 @@ +{%- assign quantity_content = item.product.metafields.custom.quantity_content -%} +{%- assign weight_content = item.product.metafields.custom.weight_content -%} +{%- assign unit_name = item.product.metafields.custom.unit_name -%} + + + + + + + {{ item.image.alt }} + + +
    +
    +
    + + {%- if item.product.metafields.custom.short_title != blank -%} + {{ item.product.metafields.custom.short_title }} + {%- else -%} + {{ item.title }} + {%- endif -%} + + {%- if quantity_content != blank and weight_content != blank and unit_name != blank -%} + + {{ quantity_content }} x {{ weight_content.value | split: ' ' }} + {{ unit_name }} + + {%- endif -%} + +
    + {%- for property in item.properties -%} + {%- assign first_character_in_key = property.first | truncate: 1, '' -%} + + {%- if property.last == blank or first_character_in_key == '_' -%} + {%- continue -%} + {%- endif -%} + + {{ property.first }}: {{ property.last }} + {%- endfor -%} +
    +
    + + {%- unless is_mini_cart -%} +
    + {{ item.final_line_price | money }} +
    + {%- else -%} +
    + {%- if item.variant.compare_at_price -%} + + {{ item.variant.compare_at_price | money }} + + {%- endif -%} + + {{ item.final_line_price | money }} + +
    + {%- endunless -%} +
    + + +
    +
    diff --git a/shopify/snippets/cart-popup.liquid b/shopify/snippets/cart-popup.liquid new file mode 100644 index 00000000..59f2ad6a --- /dev/null +++ b/shopify/snippets/cart-popup.liquid @@ -0,0 +1,40 @@ +{%- style -%} + {% assign cart_popup_box_shadow = settings.color_borders | color_modify: 'alpha', 0.5 %} + + .cart-popup { + box-shadow: 1px 1px 10px 2px {{ cart_popup_box_shadow }}; + } +{%- endstyle -%} + + diff --git a/shopify/snippets/cart-subtotal.liquid b/shopify/snippets/cart-subtotal.liquid new file mode 100644 index 00000000..0840ccd1 --- /dev/null +++ b/shopify/snippets/cart-subtotal.liquid @@ -0,0 +1,21 @@ +{%- assign cart_amount = cart.total_price | money -%} + +
    +
    + {%- unless is_empty_cart -%} + {{ 'cart.general.cart_subtotal' | t }} + {%- endunless -%} +
    +
    + {%- if is_empty_cart -%} + + {{ 'cart.general.continue_shopping' | t }} + + {%- else -%} + + {%- endif -%} +
    +
    \ No newline at end of file diff --git a/shopify/snippets/cart-upsell.liquid b/shopify/snippets/cart-upsell.liquid new file mode 100644 index 00000000..1940cff0 --- /dev/null +++ b/shopify/snippets/cart-upsell.liquid @@ -0,0 +1,103 @@ +
    + {%- if mobile -%} + + {%- endif -%} +
    +
    +

    {{ settings.upsell_heading }}

    +
    +
    +
    + {%- for product in collections[settings.upsell_collection].products -%} + {%- assign quantity_content = product.metafields.custom.quantity_content -%} + {%- assign weight_content = product.metafields.custom.weight_content -%} + {%- assign unit_name = product.metafields.custom.unit_name -%} + + {%- assign is_in_cart = false -%} + + {%- for item in cart.items -%} + {%- if item.product_id == product.id -%} + {%- assign is_in_cart = true -%} + {%- endif -%} + {%- endfor -%} + + {%- unless is_in_cart -%} +
    +
    +
    + + + + + + + + + + {{- title | default: 'general.404.title' | t -}} + + + {% form 'product', product %} + + + + {%- if product.metafields.custom.preorder_date != blank -%} + + + {%- endif -%} + + + {% endform %} +
    + +
    + + {%- if product.metafields.custom.short_title != blank -%} + {{ product.metafields.custom.short_title }} + {%- else -%} + {{ product.title }} + {%- endif -%} + +
    + + {%- if quantity_content != blank and weight_content != blank -%} + {{ quantity_content }} x {{ weight_content.value | split: ' ' }} + {%- endif -%} + + + {{ product.price | money }} + +
    +
    +
    +
    + {%- endunless -%} + {%- endfor -%} +
    +
    +
    + {%- if mobile -%} +
    + {%- endif -%} +
    diff --git a/shopify/snippets/collection-grid-item.liquid b/shopify/snippets/collection-grid-item.liquid new file mode 100644 index 00000000..f267087f --- /dev/null +++ b/shopify/snippets/collection-grid-item.liquid @@ -0,0 +1,42 @@ +{% if collection.image %} + {%- assign collection_image = collection.image -%} +{% elsif collection.products.first and collection.products.first.images != empty %} + {%- assign collection_image = collection.products.first.featured_image -%} +{% else %} + {% assign collection_image = blank %} +{% endif %} + + diff --git a/shopify/snippets/color-scheme.liquid b/shopify/snippets/color-scheme.liquid new file mode 100644 index 00000000..ca9f8950 --- /dev/null +++ b/shopify/snippets/color-scheme.liquid @@ -0,0 +1,77 @@ +{% assign color_scheme = resource.metafields.custom.color_scheme.value %} + +{%- style -%} + #shopify-section-header, #shopify-section-announcement-bar { + {% if color_scheme.header_background.value != blank %} + --header-background-color: {{ color_scheme.header_background.value }}; + {% elsif product.metafields.custom.background_color %} + --header-background-color: {{ product.metafields.custom.background_color }}; + {% else %} + --header-background-color: {{ settings.header_background }}; + {% endif %} + + {% if color_scheme.header_accent.value != blank %} + --header-accent-color: {{ color_scheme.header_accent.value }}; + {% elsif product.metafields.custom.accent_color %} + --header-accent-color: {{ product.metafields.custom.accent_color }}; + {% else %} + --header-accent-color: {{ settings.header_accent }}; + {% endif %} + } + + #shopify-section-footer { + {% if color_scheme.footer_background.value != blank %} + --footer-background-color: {{ color_scheme.footer_background.value }}; + {% else %} + --footer-background-color: {{ settings.footer_background }}; + {% endif %} + + {% if color_scheme.footer_accent.value != blank %} + --footer-accent-color: {{ color_scheme.footer_accent.value }}; + {% else %} + --footer-accent-color: {{ settings.footer_accent }}; + {% endif %} + } + + @media screen and (max-width: 991px) { + #shopify-section-header, #shopify-section-announcement-bar { + {% if color_scheme.header_background_mobile.value != blank %} + --header-background-color: {{ color_scheme.header_background_mobile.value }}; + {% elsif color_scheme.header_background.value != blank %} + --header-background-color: {{ color_scheme.header_background.value }}; + {%- elsif product.metafields.custom.background_color -%} + --header-background-color: {{ product.metafields.custom.background_color }}; + {%- else -%} + --header-background-color: {{ settings.header_background }}; + {% endif %} + + {% if color_scheme.header_accent_mobile.value != blank %} + --header-accent-color: {{ color_scheme.header_accent_mobile.value }}; + {% elsif color_scheme.header_accent.value != blank %} + --header-accent-color: {{ color_scheme.header_accent.value }}; + {%- elsif product.metafields.custom.accent_color -%} + --header-background-color: {{ product.metafields.custom.accent_color }}; + {% else %} + --header-accent-color: {{ settings.header_accent }}; + {% endif %} + } + + #shopify-section-footer { + {% if color_scheme.footer_background_mobile.value != blank %} + --footer-background-color: {{ color_scheme.footer_background_mobile.value }}; + {% elsif color_scheme.footer_background.value != blank %} + --footer-background-color: {{ color_scheme.footer_background.value }}; + {% else %} + --footer-background-color: {{ settings.footer_background }}; + {% endif %} + + {% if color_scheme.footer_accent_mobile.value != blank %} + --footer-accent-color: {{ color_scheme.footer_accent_mobile.value }}; + {% elsif color_scheme.footer_accent.value != blank %} + --footer-accent-color: {{ color_scheme.footer_accent.value }}; + {%- else -%} + --footer-accent-color: {{ settings.footer_accent }}; + {% endif %} + } + } +{%- endstyle -%} diff --git a/shopify/snippets/comment.liquid b/shopify/snippets/comment.liquid new file mode 100644 index 00000000..7ef0f7ef --- /dev/null +++ b/shopify/snippets/comment.liquid @@ -0,0 +1,8 @@ + +
    + {{ comment.content }} +
    +
    + {{ comment.author }} + {{ comment.created_at | time_tag: format: 'month_day_year' }} +
    diff --git a/shopify/snippets/comparison-slider.liquid b/shopify/snippets/comparison-slider.liquid new file mode 100644 index 00000000..1eb67777 --- /dev/null +++ b/shopify/snippets/comparison-slider.liquid @@ -0,0 +1,14 @@ + +
    +
    +
    + Before Image +
    +
    + After Image +
    + + +
    +
    +
    \ No newline at end of file diff --git a/shopify/snippets/css-variables-second.liquid b/shopify/snippets/css-variables-second.liquid new file mode 100644 index 00000000..1aef1395 --- /dev/null +++ b/shopify/snippets/css-variables-second.liquid @@ -0,0 +1,118 @@ +{% comment %} + This is used to create CSS custom variables with Liquid references + The file variables.scss is referring these CSS custom variables as Sass variables + to use throughout the stylesheet +{% endcomment %} +{% style %} + {%- assign header_font = settings.type_header_font -%} + {%- assign base_font = settings.type_base_font -%} + {%- assign base_font_bolder = base_font | font_modify: 'weight', 'bolder' -%} + {%- assign base_font_bold = base_font | font_modify: 'weight', 'bold' -%} + {%- assign base_font_italic = base_font | font_modify: 'style', 'italic' -%} + {%- assign base_font_bold_italic = base_font_bold | font_modify: 'style', 'italic' -%} + + :root { + --color-text: {{ settings.color_text }}; + --color-text-rgb: {{ settings.color_text | color_to_rgb | remove: 'rgb(' | remove: 'rgba(' | remove: ')' | remove: ', 0.0' }}; + --color-body-text: {{ settings.color_body_text }}; + --color-sale-text: {{ settings.color_sale_text }}; + --color-small-button-text-border: {{ settings.color_small_button_text_border }}; + --color-text-field: {{ settings.color_text_field }}; + --color-text-field-text: {{ settings.color_text_field_text }}; + --color-text-field-text-rgb: {{ settings.color_text_field_text | color_to_rgb | remove: 'rgb(' | remove: 'rgba(' | remove: ')' | remove: ', 0.0' }}; + + --color-btn-primary: {{ settings.color_button }}; + --color-btn-primary-darker: {{ settings.color_button | color_darken: 10 }}; + --color-btn-primary-text: {{ settings.color_button_text }}; + + --color-blankstate: {{ settings.color_body_text | color_modify: 'alpha', 0.35 }}; + --color-blankstate-border: {{ settings.color_body_text | color_modify: 'alpha', 0.2 }}; + --color-blankstate-background: {{ settings.color_body_text | color_modify: 'alpha', 0.1 }}; + + --color-text-focus: {%- include 'adaptive-color' with settings.color_text as color -%}; + --color-overlay-text-focus: {%- include 'adaptive-color' with settings.color_image_overlay_text as color -%}; + --color-btn-primary-focus: {%- include 'adaptive-color' with settings.color_button as color -%}; + --color-btn-social-focus: {%- include 'adaptive-color' with settings.color_borders as color -%}; + --color-small-button-text-border-focus: {%- include 'adaptive-color' with settings.color_small_button_text_border as color -%}; + --predictive-search-focus: {%- include 'adaptive-color' with settings.color_body_bg as color, is_background_color: true -%}; + + --color-body: {{ settings.color_body_bg }}; + --color-bg: {{ settings.color_body_bg }}; + --color-bg-rgb: {{ settings.color_body_bg | color_to_rgb | remove: 'rgb(' | remove: 'rgba(' | remove: ')' | remove: ', 0.0' }}; + --color-bg-alt: {{ settings.color_body_text | color_modify: 'alpha', 0.05 }}; + --color-bg-currency-selector: {{ settings.color_body_text | color_modify: 'alpha', 0.2 }}; + + --color-overlay-title-text: {{ settings.color_image_overlay_text }}; + --color-image-overlay: {{ settings.color_image_overlay }}; + --color-image-overlay-rgb: {{ settings.color_image_overlay | color_to_rgb | remove: 'rgb(' | remove: 'rgba(' | remove: ')' | remove: ', 0.0' }}; + + {%- assign image_overlay_opacity = settings.image_overlay_opacity | divided_by: 100.00 -%} + --opacity-image-overlay: {{ image_overlay_opacity }}; + + {%- comment -%} + Based on the image overlay opacity, either lighten or darken the image on hover + {%- endcomment -%} + {%- if image_overlay_opacity > 0.85 -%} + {%- assign image_overlay_opacity_hover = image_overlay_opacity | minus: 0.3 -%} + {%- else -%} + {%- assign image_overlay_opacity_hover = image_overlay_opacity | plus: 0.4 -%} + {%- endif -%} + --hover-overlay-opacity: {{ image_overlay_opacity_hover | at_most: 1 }}; + + --color-border: {{ settings.color_borders }}; + --color-border-form: {{ settings.color_text_field_border }}; + --color-border-form-darker: {{ settings.color_text_field_border | color_darken: 10}}; + + --svg-select-icon: url({{ "ico-select.static.svg" | asset_url }}); + --slick-img-url: url({{ "ajax-loader.static.gif" | asset_url }}); + + --font-weight-body--bold: {{ base_font_bold.weight | default: 700 }}; + --font-weight-body--bolder: {{ base_font_bolder.weight | default: 700 }}; + + --font-stack-header: {{ header_font.family }}, {{ header_font.fallback_families }}; + --font-style-header: {{ header_font.style }}; + --font-weight-header: {{ header_font.weight }}; + + --font-stack-body: {{ base_font.family }}, {{ base_font.fallback_families }}; + --font-style-body: {{ base_font.style }}; + --font-weight-body: {{ base_font.weight }}; + + --font-size-header: {{ settings.type_header_base_size }}; + + --font-size-base: {{ settings.type_base_size }}; + + --font-h1-desktop: {{ settings.type_header_base_size | times: 1.35 | floor }}; + --font-h1-mobile: {{ settings.type_header_base_size | times: 1.25 | floor }}; + --font-h2-desktop: {{ settings.type_header_base_size | times: 0.78 | floor }}; + --font-h2-mobile: {{ settings.type_header_base_size | times: 0.78 | times: 0.9 | floor }}; + --font-h3-mobile: {{ settings.type_header_base_size | times: 0.78 | floor }}; + --font-h4-desktop: {{ settings.type_header_base_size | times: 0.68 | floor }}; + --font-h4-mobile: {{ settings.type_header_base_size | times: 0.68 | times: 0.9 | floor }}; + --font-h5-desktop: {{ settings.type_header_base_size | times: 0.58 | floor }}; + --font-h5-mobile: {{ settings.type_header_base_size | times: 0.58 | times: 0.9 | floor }}; + --font-h6-desktop: {{ settings.type_header_base_size | times: 0.54 | floor }}; + --font-h6-mobile: {{ settings.type_header_base_size | times: 0.54 | times: 0.9 | floor }}; + + --font-mega-title-large-desktop: {{ settings.type_header_base_size | times: 2.5 | floor }}; + + --font-rich-text-large: {{ settings.type_base_size | times: 1.15 | floor }}; + --font-rich-text-small: {{ settings.type_base_size | times: 0.88 | floor }}; + + {% comment %} Create an appropriate poster background color based on background color and brightness {% endcomment %} + {%- assign color_body_bg = settings.color_body_bg -%} + {%- assign color_body_bg_brightness = color_body_bg | color_brightness -%} + {%- if color_body_bg_brightness <= 26 -%} + {%- assign background_color_poster = color_body_bg | color_lighten: 10 -%} + {%- elsif color_body_bg_brightness <= 65 -%} + {%- assign background_color_poster = color_body_bg | color_lighten: 5 -%} + {%- else -%} + {%- assign background_color_poster = color_body_bg | color_darken: 5 -%} + {%- endif -%} + + --color-video-bg: {{ background_color_poster }}; + + {% comment %} Image placeholder {% endcomment %} + --global-color-image-loader-primary: {{ settings.color_text | color_modify: 'alpha', 0.06 }}; + --global-color-image-loader-secondary: {{ settings.color_text | color_modify: 'alpha', 0.12 }}; + } +{% endstyle %} diff --git a/shopify/snippets/css-variables.liquid b/shopify/snippets/css-variables.liquid new file mode 100644 index 00000000..136e1a12 --- /dev/null +++ b/shopify/snippets/css-variables.liquid @@ -0,0 +1,20 @@ + diff --git a/shopify/snippets/custom-variables.css.liquid b/shopify/snippets/custom-variables.css.liquid new file mode 100644 index 00000000..99368383 --- /dev/null +++ b/shopify/snippets/custom-variables.css.liquid @@ -0,0 +1,5 @@ + diff --git a/shopify/snippets/empty-mini-cart.liquid b/shopify/snippets/empty-mini-cart.liquid new file mode 100644 index 00000000..a6b32510 --- /dev/null +++ b/shopify/snippets/empty-mini-cart.liquid @@ -0,0 +1,18 @@ +
    +
    +

    + {{ 'cart.general.mini_cart_empty_title' | t }} +

    +

    + {{ 'cart.general.mini_cart_empty_subtitle' | t }} +

    + {%- if emptyButtonText and emptyButtonUrl -%} + + {{ emptyButtonText }} + + {%- endif -%} +
    +
    \ No newline at end of file diff --git a/shopify/snippets/fonts.liquid b/shopify/snippets/fonts.liquid new file mode 100644 index 00000000..b4dcf473 --- /dev/null +++ b/shopify/snippets/fonts.liquid @@ -0,0 +1,31 @@ +{% style %} + @font-face { + font-family: "Founders Grotesk"; + src: url('{{ 'FoundersGrotesk-Regular.woff2' | asset_url }}') format("woff2"), + url('{{ 'FoundersGrotesk-Regular.woff' | asset_url }}') format("woff"), + url('{{ 'FoundersGrotesk-Regular.ttf' | asset_url }}') format("truetype"); + font-weight: 400; + font-style: normal; + font-display: swap; + } + + @font-face { + font-family: "Founders Grotesk"; + src: url('{{ 'FoundersGroteskMono-Medium.woff2' | asset_url }}') format("woff2"), + url('{{ 'FoundersGroteskMono-Medium.woff' | asset_url }}') format("woff"), + url('{{ 'FoundersGroteskMono-Medium.ttf' | asset_url }}') format("truetype"); + font-weight: 500; + font-style: normal; + font-display: swap; + } + + @font-face { + font-family: "Founders Grotesk"; + src: url('{{ 'FoundersGrotesk-Bold.woff2' | asset_url }}') format("woff2"), + url('{{ 'FoundersGrotesk-Bold.woff' | asset_url }}') format("woff"), + url('{{ 'FoundersGrotesk-Bold.ttf' | asset_url }}') format("truetype"); + font-weight: bold; + font-style: normal; + font-display: swap; + } +{% endstyle %} \ No newline at end of file diff --git a/shopify/snippets/form-status.liquid b/shopify/snippets/form-status.liquid new file mode 100644 index 00000000..b78190f6 --- /dev/null +++ b/shopify/snippets/form-status.liquid @@ -0,0 +1,33 @@ +{% if form.posted_successfully? %} +

    + {{ success_message | default: 'contact.form.post_success' | t }} +

    +{% endif %} + +{%- if form.errors -%} +
    +

    {{ 'contact.form.error_heading' | t }}

    +
      + {%- for field in form.errors -%} +
    • + + {%- capture field_label -%} + {%- case field -%} + {%- when 'author' -%} + {{ 'contact.form.name' | t }} + {%- when 'body' -%} + {{ 'contact.form.message' | t }} + {%- else -%} + {{ form.errors.translated_fields[field] }} + {%- endcase -%} + {%- endcapture -%} + + {% comment %} the href should match the input's id {% endcomment %} + + {{ field_label | strip | capitalize }} {{ form.errors.messages[field] }} + +
    • + {%- endfor -%} +
    +
    +{%- endif -%} diff --git a/shopify/snippets/head-theme-meta.liquid b/shopify/snippets/head-theme-meta.liquid new file mode 100644 index 00000000..b5ee4a82 --- /dev/null +++ b/shopify/snippets/head-theme-meta.liquid @@ -0,0 +1,6 @@ +{%- capture template_name -%} + {%- if template.directory != blank -%}{{- template.directory -}}/{%- endif -%}{{- template.name -}}{%- if template.suffix != blank -%}.{{- template.suffix -}}{%- endif -%} +{%- endcapture -%} + + + diff --git a/shopify/snippets/icon-3d-badge-full-color.liquid b/shopify/snippets/icon-3d-badge-full-color.liquid new file mode 100644 index 00000000..57f10c8b --- /dev/null +++ b/shopify/snippets/icon-3d-badge-full-color.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-404-pupils.liquid b/shopify/snippets/icon-404-pupils.liquid new file mode 100644 index 00000000..9d813b54 --- /dev/null +++ b/shopify/snippets/icon-404-pupils.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-account.liquid b/shopify/snippets/icon-account.liquid new file mode 100644 index 00000000..38749d44 --- /dev/null +++ b/shopify/snippets/icon-account.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-american_express.liquid b/shopify/snippets/icon-american_express.liquid new file mode 100644 index 00000000..ee6f7693 --- /dev/null +++ b/shopify/snippets/icon-american_express.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-apple_pay.liquid b/shopify/snippets/icon-apple_pay.liquid new file mode 100644 index 00000000..6fc7b595 --- /dev/null +++ b/shopify/snippets/icon-apple_pay.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-arrow-dark.liquid b/shopify/snippets/icon-arrow-dark.liquid new file mode 100644 index 00000000..3c868492 --- /dev/null +++ b/shopify/snippets/icon-arrow-dark.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-arrow-down.liquid b/shopify/snippets/icon-arrow-down.liquid new file mode 100644 index 00000000..27e6ad56 --- /dev/null +++ b/shopify/snippets/icon-arrow-down.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-arrow-left.liquid b/shopify/snippets/icon-arrow-left.liquid new file mode 100644 index 00000000..a1ae6ae4 --- /dev/null +++ b/shopify/snippets/icon-arrow-left.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-arrow-right.liquid b/shopify/snippets/icon-arrow-right.liquid new file mode 100644 index 00000000..96ec19d0 --- /dev/null +++ b/shopify/snippets/icon-arrow-right.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-arrow-white.liquid b/shopify/snippets/icon-arrow-white.liquid new file mode 100644 index 00000000..b085ea0f --- /dev/null +++ b/shopify/snippets/icon-arrow-white.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-arrow.liquid b/shopify/snippets/icon-arrow.liquid new file mode 100644 index 00000000..de038254 --- /dev/null +++ b/shopify/snippets/icon-arrow.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-bag.liquid b/shopify/snippets/icon-bag.liquid new file mode 100644 index 00000000..916ed44f --- /dev/null +++ b/shopify/snippets/icon-bag.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-bin.liquid b/shopify/snippets/icon-bin.liquid new file mode 100644 index 00000000..4910b18d --- /dev/null +++ b/shopify/snippets/icon-bin.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-bio.liquid b/shopify/snippets/icon-bio.liquid new file mode 100644 index 00000000..aede14e1 --- /dev/null +++ b/shopify/snippets/icon-bio.liquid @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/shopify/snippets/icon-bitcoin.liquid b/shopify/snippets/icon-bitcoin.liquid new file mode 100644 index 00000000..6ff5f37a --- /dev/null +++ b/shopify/snippets/icon-bitcoin.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-cart-2.liquid b/shopify/snippets/icon-cart-2.liquid new file mode 100644 index 00000000..6211f4f7 --- /dev/null +++ b/shopify/snippets/icon-cart-2.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-cart.liquid b/shopify/snippets/icon-cart.liquid new file mode 100644 index 00000000..16897082 --- /dev/null +++ b/shopify/snippets/icon-cart.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-check.liquid b/shopify/snippets/icon-check.liquid new file mode 100644 index 00000000..f84555ca --- /dev/null +++ b/shopify/snippets/icon-check.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-chevron-down-dark.liquid b/shopify/snippets/icon-chevron-down-dark.liquid new file mode 100644 index 00000000..67e83fc8 --- /dev/null +++ b/shopify/snippets/icon-chevron-down-dark.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-chevron-down.liquid b/shopify/snippets/icon-chevron-down.liquid new file mode 100644 index 00000000..72db4aa8 --- /dev/null +++ b/shopify/snippets/icon-chevron-down.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-chevron-left.liquid b/shopify/snippets/icon-chevron-left.liquid new file mode 100644 index 00000000..3d6ec900 --- /dev/null +++ b/shopify/snippets/icon-chevron-left.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-chevron-right.liquid b/shopify/snippets/icon-chevron-right.liquid new file mode 100644 index 00000000..f191cefb --- /dev/null +++ b/shopify/snippets/icon-chevron-right.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-cirrus.liquid b/shopify/snippets/icon-cirrus.liquid new file mode 100644 index 00000000..8dcec7ea --- /dev/null +++ b/shopify/snippets/icon-cirrus.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-close-popup.liquid b/shopify/snippets/icon-close-popup.liquid new file mode 100644 index 00000000..5eac9d1c --- /dev/null +++ b/shopify/snippets/icon-close-popup.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-close.liquid b/shopify/snippets/icon-close.liquid new file mode 100644 index 00000000..942dd59a --- /dev/null +++ b/shopify/snippets/icon-close.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-cross.liquid b/shopify/snippets/icon-cross.liquid new file mode 100644 index 00000000..26e60970 --- /dev/null +++ b/shopify/snippets/icon-cross.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-dankort.liquid b/shopify/snippets/icon-dankort.liquid new file mode 100644 index 00000000..af33a3d9 --- /dev/null +++ b/shopify/snippets/icon-dankort.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-diners_club.liquid b/shopify/snippets/icon-diners_club.liquid new file mode 100644 index 00000000..a6d78daa --- /dev/null +++ b/shopify/snippets/icon-diners_club.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-discover.liquid b/shopify/snippets/icon-discover.liquid new file mode 100644 index 00000000..8354ed5d --- /dev/null +++ b/shopify/snippets/icon-discover.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-dogecoin.liquid b/shopify/snippets/icon-dogecoin.liquid new file mode 100644 index 00000000..0fad1638 --- /dev/null +++ b/shopify/snippets/icon-dogecoin.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-dwolla.liquid b/shopify/snippets/icon-dwolla.liquid new file mode 100644 index 00000000..e4064c42 --- /dev/null +++ b/shopify/snippets/icon-dwolla.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-error.liquid b/shopify/snippets/icon-error.liquid new file mode 100644 index 00000000..d539949a --- /dev/null +++ b/shopify/snippets/icon-error.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-facebook.liquid b/shopify/snippets/icon-facebook.liquid new file mode 100644 index 00000000..15dae325 --- /dev/null +++ b/shopify/snippets/icon-facebook.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-hamburger.liquid b/shopify/snippets/icon-hamburger.liquid new file mode 100644 index 00000000..80d3a7e3 --- /dev/null +++ b/shopify/snippets/icon-hamburger.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-header-logo.liquid b/shopify/snippets/icon-header-logo.liquid new file mode 100644 index 00000000..1b620bb2 --- /dev/null +++ b/shopify/snippets/icon-header-logo.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-in-stock.liquid b/shopify/snippets/icon-in-stock.liquid new file mode 100644 index 00000000..4066c2dd --- /dev/null +++ b/shopify/snippets/icon-in-stock.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-instagram.liquid b/shopify/snippets/icon-instagram.liquid new file mode 100644 index 00000000..5b2caee1 --- /dev/null +++ b/shopify/snippets/icon-instagram.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-laser.liquid b/shopify/snippets/icon-laser.liquid new file mode 100644 index 00000000..0710dc72 --- /dev/null +++ b/shopify/snippets/icon-laser.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-lock.liquid b/shopify/snippets/icon-lock.liquid new file mode 100644 index 00000000..fe874a15 --- /dev/null +++ b/shopify/snippets/icon-lock.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-login.liquid b/shopify/snippets/icon-login.liquid new file mode 100644 index 00000000..954ea186 --- /dev/null +++ b/shopify/snippets/icon-login.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-logo-big.liquid b/shopify/snippets/icon-logo-big.liquid new file mode 100644 index 00000000..d22ccffd --- /dev/null +++ b/shopify/snippets/icon-logo-big.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-minus.liquid b/shopify/snippets/icon-minus.liquid new file mode 100644 index 00000000..fd6d4c0f --- /dev/null +++ b/shopify/snippets/icon-minus.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-out-of-stock.liquid b/shopify/snippets/icon-out-of-stock.liquid new file mode 100644 index 00000000..d1d0da0b --- /dev/null +++ b/shopify/snippets/icon-out-of-stock.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-padlock.liquid b/shopify/snippets/icon-padlock.liquid new file mode 100644 index 00000000..5f935f3a --- /dev/null +++ b/shopify/snippets/icon-padlock.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-pause.liquid b/shopify/snippets/icon-pause.liquid new file mode 100644 index 00000000..447020fd --- /dev/null +++ b/shopify/snippets/icon-pause.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-pin.liquid b/shopify/snippets/icon-pin.liquid new file mode 100644 index 00000000..28a215e7 --- /dev/null +++ b/shopify/snippets/icon-pin.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-pinterest.liquid b/shopify/snippets/icon-pinterest.liquid new file mode 100644 index 00000000..918b8362 --- /dev/null +++ b/shopify/snippets/icon-pinterest.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-play.liquid b/shopify/snippets/icon-play.liquid new file mode 100644 index 00000000..ff14429b --- /dev/null +++ b/shopify/snippets/icon-play.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-plus.liquid b/shopify/snippets/icon-plus.liquid new file mode 100644 index 00000000..0d316a3f --- /dev/null +++ b/shopify/snippets/icon-plus.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-quantity-minus.liquid b/shopify/snippets/icon-quantity-minus.liquid new file mode 100644 index 00000000..ebd7dcc0 --- /dev/null +++ b/shopify/snippets/icon-quantity-minus.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-quantity-plus.liquid b/shopify/snippets/icon-quantity-plus.liquid new file mode 100644 index 00000000..b74fae38 --- /dev/null +++ b/shopify/snippets/icon-quantity-plus.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-quote.liquid b/shopify/snippets/icon-quote.liquid new file mode 100644 index 00000000..7c94c644 --- /dev/null +++ b/shopify/snippets/icon-quote.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-resume.liquid b/shopify/snippets/icon-resume.liquid new file mode 100644 index 00000000..b511aebf --- /dev/null +++ b/shopify/snippets/icon-resume.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-rss.liquid b/shopify/snippets/icon-rss.liquid new file mode 100644 index 00000000..da2bef9b --- /dev/null +++ b/shopify/snippets/icon-rss.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-saletag.liquid b/shopify/snippets/icon-saletag.liquid new file mode 100644 index 00000000..f62cf99f --- /dev/null +++ b/shopify/snippets/icon-saletag.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-search.liquid b/shopify/snippets/icon-search.liquid new file mode 100644 index 00000000..fcf1ebe0 --- /dev/null +++ b/shopify/snippets/icon-search.liquid @@ -0,0 +1,3 @@ + diff --git a/shopify/snippets/icon-shopify-logo.liquid b/shopify/snippets/icon-shopify-logo.liquid new file mode 100644 index 00000000..d0127059 --- /dev/null +++ b/shopify/snippets/icon-shopify-logo.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-snapchat.liquid b/shopify/snippets/icon-snapchat.liquid new file mode 100644 index 00000000..269d693f --- /dev/null +++ b/shopify/snippets/icon-snapchat.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-spinner.liquid b/shopify/snippets/icon-spinner.liquid new file mode 100644 index 00000000..99e5c710 --- /dev/null +++ b/shopify/snippets/icon-spinner.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-star.liquid b/shopify/snippets/icon-star.liquid new file mode 100644 index 00000000..211d5b29 --- /dev/null +++ b/shopify/snippets/icon-star.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-triangular-line.liquid b/shopify/snippets/icon-triangular-line.liquid new file mode 100644 index 00000000..8048698a --- /dev/null +++ b/shopify/snippets/icon-triangular-line.liquid @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/shopify/snippets/icon-tumblr.liquid b/shopify/snippets/icon-tumblr.liquid new file mode 100644 index 00000000..4e73ceeb --- /dev/null +++ b/shopify/snippets/icon-tumblr.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-twitter.liquid b/shopify/snippets/icon-twitter.liquid new file mode 100644 index 00000000..918cc238 --- /dev/null +++ b/shopify/snippets/icon-twitter.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-vegan.liquid b/shopify/snippets/icon-vegan.liquid new file mode 100644 index 00000000..9a683cfd --- /dev/null +++ b/shopify/snippets/icon-vegan.liquid @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/shopify/snippets/icon-video-badge-full-color.liquid b/shopify/snippets/icon-video-badge-full-color.liquid new file mode 100644 index 00000000..685878c8 --- /dev/null +++ b/shopify/snippets/icon-video-badge-full-color.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-vimeo.liquid b/shopify/snippets/icon-vimeo.liquid new file mode 100644 index 00000000..869cd71d --- /dev/null +++ b/shopify/snippets/icon-vimeo.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/icon-youtube.liquid b/shopify/snippets/icon-youtube.liquid new file mode 100644 index 00000000..df1ed5aa --- /dev/null +++ b/shopify/snippets/icon-youtube.liquid @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shopify/snippets/image-style.liquid b/shopify/snippets/image-style.liquid new file mode 100644 index 00000000..96d30ca1 --- /dev/null +++ b/shopify/snippets/image-style.liquid @@ -0,0 +1,62 @@ +{%- assign container_aspect_ratio = width | times: 1.0 | divided_by: height -%} + diff --git a/shopify/snippets/judgeme_core .liquid b/shopify/snippets/judgeme_core .liquid new file mode 100644 index 00000000..f0af65cc --- /dev/null +++ b/shopify/snippets/judgeme_core .liquid @@ -0,0 +1 @@ +{% comment %} Please do not edit this file. This file will be updated frequently so any manual changes will be discarded It's recommended to include this file right before closing tag{% endcomment %}{{ shop.metafields.judgeme.settings }}{% for count in (0..5) %} {% assign metafield_key = 'html_miracle_' | append: count %} {% assign current_metafield = shop.metafields.judgeme[metafield_key] %} {% unless current_metafield %} {% break %} {% endunless %} {{ current_metafield }}{% endfor %} \ No newline at end of file diff --git a/shopify/snippets/judgeme_core.liquid b/shopify/snippets/judgeme_core.liquid new file mode 100644 index 00000000..2370d9c3 --- /dev/null +++ b/shopify/snippets/judgeme_core.liquid @@ -0,0 +1,34 @@ +{% comment %} + Please do not edit this file. This file will be updated frequently so any manual changes will be discarded + It's recommended to include this file right before closing tag +{% endcomment %} + + +{{ shop.metafields.judgeme.settings }} +{% for count in (0..5) %} + {% assign metafield_key = 'html_miracle_' | append: count %} + {% assign current_metafield = shop.metafields.judgeme[metafield_key] %} + {% unless current_metafield %} {% break %} {% endunless %} + {{ current_metafield }} +{% endfor %} + + + + + + + diff --git a/shopify/snippets/judgeme_widgets.liquid b/shopify/snippets/judgeme_widgets.liquid new file mode 100644 index 00000000..ec6ee440 --- /dev/null +++ b/shopify/snippets/judgeme_widgets.liquid @@ -0,0 +1,83 @@ +{% comment %} Please do not edit this file. It is automatically updated by Judge.me{% endcomment %} + + +{% if widget_type == 'judgeme_review_widget' %} +
    +
    + {{ product.metafields.judgeme.widget }} +
    +{% endif %} + +{% if widget_type == 'judgeme_verified_reviews_count_badge' %} +
    + +{% endif %} + +{% if widget_type == 'judgeme_all_reviews_text' %} + +{% endif %} + +{% if widget_type == 'judgeme_medals' %} + {{ shop.metafields.judgeme.medals }} +{% endif %} + +{% if widget_type == 'judgeme_floating_tab' %} + +{% endif %} + +{% if widget_type == 'judgeme_featured_carousel' %} + +{% endif %} + +{% if widget_type == 'judgeme_preview_badge' %} +
    + {{ product.metafields.judgeme.badge }} +
    +{% endif %} + +{% if widget_type == 'judgeme_ugc_media_grid' %} +
    + {{ shop.metafields.judgeme.ugc_media_grid }} +
    +{% endif %} + diff --git a/shopify/snippets/layout-menu.liquid b/shopify/snippets/layout-menu.liquid deleted file mode 100644 index 30431924..00000000 --- a/shopify/snippets/layout-menu.liquid +++ /dev/null @@ -1,19 +0,0 @@ -
    - {% for link in linklists.main-menu.links %} -
    - - {{ link.title | escape }} - - - {% if link.levels >= 1 %} -
    - {% for sub_link in link.links %} - - {{ sub_link.title | escape }} - - {% endfor %} -
    - {% endif %} -
    - {% endfor %} -
    \ No newline at end of file diff --git a/shopify/snippets/load-metafields.liquid b/shopify/snippets/load-metafields.liquid new file mode 100644 index 00000000..0cb8c9af --- /dev/null +++ b/shopify/snippets/load-metafields.liquid @@ -0,0 +1,102 @@ +{% assign metafields = shop.metafields.bc_cookie %} +{% assign data = shop.metafields.bc_cookie %} +{% assign cookieData = data.bc_cookie_list %} + +{% if data.size > 0 and cookieData._bc_c_set.live == '1' and content_for_header contains 'app.gdpr-legal-cookie.com\/get-script.php' %} + + +{% endif %} diff --git a/shopify/snippets/main-product-form.liquid b/shopify/snippets/main-product-form.liquid new file mode 100644 index 00000000..d095d375 --- /dev/null +++ b/shopify/snippets/main-product-form.liquid @@ -0,0 +1,149 @@ +{%- comment -%} + @params + product - product object *required +{%- endcomment -%} +{%- if product != blank -%} + {%- assign current_variant = product.selected_or_first_available_variant -%} + + {%- capture no_script -%} + + {%- endcapture -%} + + {%- capture price -%} + + {%- unless product.compare_at_price_max > product.price -%} + {% assign hidden_class = 'hide' %} + {%- endunless -%} + + {%- if current_variant.compare_at_price > current_variant.price -%} + {% assign sale_class = 'product-form__price--new' %} + {{- current_variant.compare_at_price | money -}} + {%- endif -%} + + + {{- current_variant.price | money -}} + + {%- if current_variant.unit_price_measurement -%} + {%- capture unit_price_base_unit -%} + + {%- if current_variant.available and current_variant.unit_price_measurement -%} + {%- if current_variant.unit_price_measurement.reference_value != 1 -%} + {{- current_variant.unit_price_measurement.reference_value -}} + {%- endif -%} + {{ current_variant.unit_price_measurement.reference_unit }} + {%- endif -%} + + {%- endcapture -%} + + {{- current_variant.unit_price | money -}} / {{ unit_price_base_unit }} + + {%- endif -%} + + {%- endcapture -%} + + {%- capture product_quantity -%} +
    + + + + + +
    + {%- endcapture -%} + + {%- capture form_submit -%} + {%- if current_variant.available == true and product.metafields.custom.preorder_date != blank -%} + + {{ "products.pre_order.shipping_info" | t: date: product.metafields.custom.preorder_date }} + + + + + {%- endif -%} + + {%- endcapture -%} + + {%- form 'product', + product, + class: 'product-form', + data-product-form: '', + data-product-handle: product.handle, + data-enable-history-state: 'true', + data-productid: product.id + -%} + {{- no_script -}} + + + + {{- form_submit -}} + {%- endform -%} +{%- endif -%} diff --git a/shopify/snippets/main-product-images.liquid b/shopify/snippets/main-product-images.liquid new file mode 100644 index 00000000..f142e6a1 --- /dev/null +++ b/shopify/snippets/main-product-images.liquid @@ -0,0 +1,92 @@ +{% comment %} Optional values {% endcomment %} +{%- assign product_fields = product.metafields.my_fields -%} +{%- assign next_product = all_products[product_fields.link_to_next_product] -%} + +{%- capture product_images -%} + +{%- endcapture -%} + +{%- capture product_images_thumbnail -%} + +{%- endcapture -%} + +{%- capture next_product_item -%} + + {%- assign next_product_image = next_product.featured_image -%} + {%- if next_product_image != blank -%} + + + + + {{ next_product_image.alt }} + + {%- endif -%} + +{%- endcapture -%} + + diff --git a/shopify/snippets/main-product-info.liquid b/shopify/snippets/main-product-info.liquid new file mode 100644 index 00000000..001f3aca --- /dev/null +++ b/shopify/snippets/main-product-info.liquid @@ -0,0 +1,38 @@ +{%- assign product_title = product.metafields.my_fields.pdp_title -%} +{%- assign short_title = product.metafields.custom.short_title -%} +{%- assign quantity_content = product.metafields.custom.quantity_content -%} +{%- assign weight_content = product.metafields.custom.weight_content -%} +{%- assign unit_name = product.metafields.custom.unit_name -%} + +
    +
    +
    +
    +
    + {%- if product_title -%} +

    {{ product_title }}

    + {%- else -%} +

    {{ product.title }}

    + {% endif %} + + {%- render 'main-product-form', product: product -%} +
    +
    +
    +
    + {%- unless product.metafields.judgeme.badge contains "No reviews" -%} +
    +
    + {{ product.metafields.judgeme.badge }} +
    +
    + {%- endunless -%} + + {%- if product.description != blank -%} +
    {{ product.description }}
    + {%- endif -%} +
    +
    +
    +
    +
    diff --git a/shopify/snippets/media.liquid b/shopify/snippets/media.liquid new file mode 100644 index 00000000..03e05190 --- /dev/null +++ b/shopify/snippets/media.liquid @@ -0,0 +1,78 @@ +{% comment %} + Renders a media element for the product gallery. + Media types include: image, video, external_video and model. + Accepts: + - media: {Object} Media Liquid object (required) + - featured_media: {Object} Media Liquid object (required) - featured media of a given product or variant + - height: {Number} Maximum height of the gallery (required) + - image_zoom_size: {String} Size of the zoomed image (e.g., '1024x1024') (required for media type image) + - enable_image_zoom: {Boolean} Image zoom setting (required for media type image) + - image_scale: {String} Image scale (e.g., '2') (required for media type image) + + Usage: + {%- for media in product.media -%} + {% include 'media', media: media, featured_media: featured_media, height: height %} + {%- endfor -%} + + {%- for media in product.media -%} + {% include 'media', media: media, featured_media: featured_media, height: height, + enable_image_zoom: enable_image_zoom, image_zoom_size: product_image_zoom_size, image_scale: product_image_scale %} + {%- endfor -%} +{% endcomment %} + +{% capture media_id %}FeaturedMedia-{{ section.id }}-{{ media.id }}{% endcapture %} +{% capture media_class %}product-featured-media{% endcapture %} +{% capture media_wrapper_id %}{{ media_id }}-wrapper{% endcapture %} + +{%- comment -%} + Load different poster image sizes depending on the product layout +{%- endcomment -%} +{% capture image_size %}{{ height }}x{{ height }}{% endcapture %} + + diff --git a/shopify/snippets/no-blocks.liquid b/shopify/snippets/no-blocks.liquid new file mode 100644 index 00000000..1d3ca079 --- /dev/null +++ b/shopify/snippets/no-blocks.liquid @@ -0,0 +1,3 @@ +
    + {{ 'homepage.onboarding.no_content' | t }} +
    diff --git a/shopify/snippets/object-cart-json.liquid b/shopify/snippets/object-cart-json.liquid new file mode 100644 index 00000000..61ea7521 --- /dev/null +++ b/shopify/snippets/object-cart-json.liquid @@ -0,0 +1,35 @@ +{%- if include_recharge == blank -%} + {%- assign include_recharge = false -%} +{%- endif -%} + +{%- assign items_json = "" -%} +{%- for item in cart.items -%} + {%- if items_json != "" -%} + {%- assign items_json = items_json | append: "," -%} + {%- endif -%} + + {%- capture item_json -%} + {%- include 'object-line-item-json' with item: item, include_recharge: include_recharge -%} + {%- endcapture -%} + + {%- if item_json == "null" -%} + {%- continue -%} + {%- endif -%} + + {%- assign items_json = items_json | append: item_json -%} +{%- endfor -%} + +{ + "attributes": {{- cart.attributes | json -}}, + "cart_level_discount_applications": {{- cart.cart_level_discount_applications | json -}}, + "currency": {{- cart.currency.iso_code | json -}}, + "item_count": {{- cart.item_count | json -}}, + "items": [{{- items_json -}}], + "items_subtotal_price": {{- cart.items_subtotal_price | json -}}, + "note": {{- cart.note | json -}}, + "original_total_price": {{- cart.original_total_price | json -}}, + "requires_shipping": {{- cart.requires_shipping | json -}}, + "total_discount": {{- cart.total_discount | json -}}, + "total_price": {{- cart.total_price | json -}}, + "total_weight": {{- cart.total_weight | json -}} +} diff --git a/shopify/snippets/object-image-json.liquid b/shopify/snippets/object-image-json.liquid new file mode 100644 index 00000000..a76c522d --- /dev/null +++ b/shopify/snippets/object-image-json.liquid @@ -0,0 +1,16 @@ +{%- if image != blank -%} + { + "alt": {{- image.alt | json -}}, + "aspect_ratio": {{- image.aspect_ratio | json -}}, + "attached_to_variant": {{- image.attached_to_variant? | json -}}, + "height": {{- image.height | json -}}, + "id": {{- image.id | json -}}, + "media_type": {{- image.media_type | json -}}, + "position": {{- image.position | json -}}, + "preview_image": {{- image.preview_image | json -}}, + "product_id": {{- image.product_id | json -}}, + "src": {{- image.src | json -}}, + "variants": {{- image.variants | json -}}, + "width": {{- image.width | json -}} + } +{%- else -%}null{%- endif -%} diff --git a/shopify/snippets/object-line-item-json.liquid b/shopify/snippets/object-line-item-json.liquid new file mode 100644 index 00000000..281ace26 --- /dev/null +++ b/shopify/snippets/object-line-item-json.liquid @@ -0,0 +1,54 @@ +{%- if include_recharge == blank -%} + {%- assign include_recharge = false -%} +{%- endif -%} + +{%- if item != blank -%} + {%- assign properties_json = "" -%} + {%- for property in item.properties -%} + {%- if properties_json != "" -%} + {%- assign properties_json = properties_json | append: "," -%} + {%- endif -%} + + {%- capture property_json -%} + "{{- property.first -}}": {{- property.last | json -}} + {%- endcapture -%} + + {%- assign properties_json = properties_json | append: property_json -%} + {%- endfor -%} + + { + "discount_allocations": {{- item.discount_allocations | json -}}, + "final_line_price": {{- item.final_line_price | json -}}, + "final_price": {{- item.final_price | json -}}, + "fulfillment": {{- item.fulfillment | json -}}, + "fulfillment_service": {{- item.fulfillment_service | json -}}, + "gift_card": {{- item.gift_card | json -}}, + "grams": {{- item.grams | json -}}, + "image": {%- include 'object-image-json' with image: item.image -%}, + "key": {{- item.key | json -}}, + "line_level_discount_allocations": {{- item.line_level_discount_allocations | json -}}, + "line_level_total_discount": {{- item.line_level_total_discount | json -}}, + "message": {{- item.message | json -}}, + "options_with_values": {{- item.options_with_values | json -}}, + "original_line_price": {{- item.original_line_price | json -}}, + "original_price": {{- item.original_price | json -}}, + "product": {%- include 'object-product-json' with product: item.product, include_recharge: include_recharge -%}, + "product_id": {{- item.product_id | json -}}, + "properties": { + {{- properties_json -}} + }, + "quantity": {{- item.quantity | json -}}, + "requires_shipping": {{- item.requires_shipping | json -}}, + "sku": {{- item.sku | json -}}, + "successfully_fulfilled_quantity": {{- item.successfully_fulfilled_quantity | json -}}, + "taxable": {{- item.taxable | json -}}, + "title": {{- item.title | json -}}, + "unit_price": {{- item.unit_price | json -}}, + "unit_price_measurement": {{- item.unit_price_measurement | json -}}, + "url": {{- item.url | json -}}, + "variant": {%- include 'object-variant-json' with variant: item.variant, include_recharge: include_recharge -%}, + "variant_id": {{- item.variant_id | json -}}, + "vendor": {{- item.vendor | json -}}, + "id": {{- item.id | json -}} + } +{%- else -%}null{%- endif -%} diff --git a/shopify/snippets/object-product-json.liquid b/shopify/snippets/object-product-json.liquid new file mode 100644 index 00000000..a97d67e5 --- /dev/null +++ b/shopify/snippets/object-product-json.liquid @@ -0,0 +1,106 @@ +{%- if include_recharge == blank -%} + {%- assign include_recharge = false -%} +{%- endif -%} + +{%- if product != blank -%} + {%- assign variants_json = "" -%} + {%- for variant in product.variants -%} + {%- if variants_json != "" -%} + {%- assign variants_json = variants_json | append: "," -%} + {%- endif -%} + + {%- capture variant_json -%} + {%- render 'object-variant-json' with variant: variant, include_recharge: include_recharge -%} + {%- endcapture -%} + + {%- if variant_json == "null" -%} + {%- continue -%} + {%- endif -%} + + {%- assign variants_json = variants_json | append: variant_json -%} + {%- endfor -%} + + {%- assign images_json = "" -%} + {%- for image in product.images -%} + {%- if images_json != "" -%} + {%- assign images_json = images_json | append: "," -%} + {%- endif -%} + + {%- capture image_json -%} + {%- render 'object-image-json' with image: image -%} + {%- endcapture -%} + + {%- if image_json == "null" -%} + {%- continue -%} + {%- endif -%} + + {%- assign images_json = images_json | append: image_json -%} + {%- endfor -%} + + {%- assign product_recharge_json_properties = "" -%} + {% if include_recharge %} + {%- assign has_subscription = false -%} + {%- if product.metafields.subscriptions.shipping_interval_frequency -%} + {%- assign has_subscription = true -%} + {%- assign subscription_product = product.metafields.subscriptions -%} + {%- assign shipping_interval_unit_type = subscription_product.shipping_interval_unit_type | default: 'Days' -%} + {%- assign shipping_interval_frequency = subscription_product.shipping_interval_frequency | split: ',' | default: 30 -%} + {%- assign product_tags = product.tags | remove: ' ' | downcase -%} + {%- if subscription_product.is_subscription_only == 'true' or product_tags contains 'subscriptiononly' -%} + {%- assign subscription_only = true -%} + {%- else -%} + {%- assign subscription_only = false -%} + {%- endif -%} + + {%- assign discount_percentage = subscription_product.discount_percentage | round: 2 -%} + {%- assign discount_floor = subscription_product.discount_percentage | floor -%} + {%- if discount_percentage == discount_floor -%} + {%- assign discount_percentage = discount_floor -%} + {%- endif -%} + {%- endif -%} + + {%- capture product_recharge_json_properties -%} + "has_subscription": {{- has_subscription | json -}}, + "shipping_interval_unit_type": {{- shipping_interval_unit_type | json -}}, + "shipping_interval_frequency": {{- shipping_interval_frequency | json -}}, + "subscription_only": {{- subscription_only | json -}}, + "discount_percentage": {{- discount_percentage | json -}}, + "discount_floor": {{- discount_floor | json -}}, + {%- endcapture -%} + {%- endif -%} + + { + "available": {{- product.available | json -}}, + "first_available_variant": {%- render 'object-variant-json' with variant: product.first_available_variant -%}, + "compared_at_price": {{- product.compared_at_price | json -}}, + "compared_at_price_max": {{- product.compared_at_price_max | json -}}, + "compared_at_price_min": {{- product.compared_at_price_min | json -}}, + "content": {{- product.content | json -}}, + "created_at": "{{- product.created_at -}}", + "description": {{- product.description | json -}}, + "featured_image": {%- render 'object-image-json' with image: product.featured_image -%}, + "handle": {{- product.handle | json -}}, + "has_only_default_variant": {{- product.has_only_default_variant | json -}}, + "options": {{- product.options_with_values | json -}}, + "options_with_values": {{- product.options_with_values | json -}}, + "template_suffix": {{- product.template_suffix | json -}}, + "url": {{- product.url | json -}}, + "id": {{- product.id | json -}}, + "images": [{{- images_json -}}], + "media": {{- product.media | json -}}, + "price": {{- product.price | json -}}, + "price_max": {{- product.price_max | json -}}, + "price_min": {{- product.price_min | json -}}, + "price_varies": {{- product.price_varies | json -}}, + "published_at": "{{- product.published_at -}}", + "variants": [{{- variants_json -}}], + "tags": {{- product.tags | json -}}, + "title": {{- product.title | json -}}, + "type": {{- product.type | json -}}, + "vendor": {{- product.vendor | json -}}, + {{- product_recharge_json_properties -}} + "metafields": { + "product_bg_color": {{- product_bg_color | json -}} + } + } +{%- else -%}null{%- endif -%} diff --git a/shopify/snippets/object-section-json.liquid b/shopify/snippets/object-section-json.liquid new file mode 100644 index 00000000..a27e2961 --- /dev/null +++ b/shopify/snippets/object-section-json.liquid @@ -0,0 +1,15 @@ +{%- if section != blank -%} + { + "id": {{- section.id | json -}}, + "type": {{- type | json -}}, + "settings": {{- section.settings | json -}}, + "blocks": [ + {%- for block in section.blocks -%} + {{ block.settings | json }} + {% unless forloop.last %},{% endunless %} + {%- endfor -%} + ] + } +{%- else -%}{}{%- endif -%} + + diff --git a/shopify/snippets/object-settings-json.liquid b/shopify/snippets/object-settings-json.liquid new file mode 100644 index 00000000..6da22fbe --- /dev/null +++ b/shopify/snippets/object-settings-json.liquid @@ -0,0 +1,18 @@ +{%- assign settings_json = "" -%} +{%- assign separator = "," -%} + +{%- for key in settings -%} + {%- if settings_json != "" -%} + {%- assign settings_json = settings_json | append: separator -%} + {%- endif -%} + + {%- capture item -%} + "{{- key -}}": {{- settings[key] | json -}} + {%- endcapture -%} + + {%- assign settings_json = settings_json | append: item -%} +{%- endfor -%} + +{%- assign settings_json = "{" | append: settings_json | append: "}" -%} + +{{- settings_json -}} diff --git a/shopify/snippets/object-variant-json.liquid b/shopify/snippets/object-variant-json.liquid new file mode 100644 index 00000000..f8939b48 --- /dev/null +++ b/shopify/snippets/object-variant-json.liquid @@ -0,0 +1,46 @@ +{%- if include_recharge == blank -%} + {%- assign include_recharge = false -%} +{%- endif -%} + +{%- if variant != blank -%} + {%- if include_recharge -%} + {%- capture recharge_metafields -%} + "subscriptions": {{- variant.metafields.subscriptions.discount_variant_id | json -}} + {%- endcapture -%} + {%- endif -%} + + { + "available": {{- variant.available | json -}}, + "barcode": "{{- variant.barcode -}}", + "compare_at_price": {{- variant.compare_at_price | json -}}, + "featured_image": {%- render 'object-image-json' with image: variant.featured_image -%}, + "image": {%- render 'object-image-json' with image: variant.image -%}, + "id": {{- variant.id | json -}}, + "url": {{- variant.url | json -}}, + "inventory_management": {{- variant.inventory_management | json -}}, + "inventory_policy": {{- variant.inventory_policy | json -}}, + "inventory_quantity": {{- variant.inventory_quantity | json -}}, + "next_incoming_date": {{- variant.next_incoming_date | json -}}, + "requires_shipping": {{- variant.requires_shipping | json -}}, + "name": {{- variant.name | json -}}, + "option1": {{- variant.option1 | json -}}, + "option2": {{- variant.option2 | json -}}, + "option3": {{- variant.option3 | json -}}, + "options": {{- variant.options | json -}}, + "price": {{- variant.price | json -}}, + "public_title": {{- variant.public_title | json -}}, + "requires_shipping": {{- variant.requires_shipping | json -}}, + "sku": {{- variant.sku | json -}}, + "taxable": {{- variant.taxable | json -}}, + "title": {{- variant.title | json -}}, + "weight": {{- variant.weight | json -}}, + "weight_unit": {{- variant.weight_unit | json -}}, + "unit_price": {{- variant.unit_price | json -}}, + "unit_price_measurement": {{- variant.unit_price_measurement | json -}}, + "weight_in_unit": {{- variant.weight_in_unit | json -}}, + "store_availabilities": {{- variant.store_availabilities | json -}}, + "metafields": { + {{- recharge_metafields -}} + } + } +{%- else -%}null{%- endif -%} diff --git a/shopify/snippets/pagination.liquid b/shopify/snippets/pagination.liquid new file mode 100644 index 00000000..44230ef9 --- /dev/null +++ b/shopify/snippets/pagination.liquid @@ -0,0 +1,35 @@ + diff --git a/shopify/snippets/predictive-search-container.liquid b/shopify/snippets/predictive-search-container.liquid new file mode 100644 index 00000000..bd1e41a7 --- /dev/null +++ b/shopify/snippets/predictive-search-container.liquid @@ -0,0 +1,54 @@ + +
    +
    +
    +

    + {{ 'general.search.title' | t }} +

    + + + {% if settings.recommendation_collection != blank or settings.recommendation_products != blank %} + {% if settings.recommendation_collection != blank %} + {%- assign recommendation_products = settings.recommendation_collection.products -%} + {% else %} + {%- assign recommendation_products = settings.recommendation_products -%} + {% endif %} + +
      + {% for product in recommendation_products %} + {% render 'product-card-simple', product: product %} + {% endfor %} +
    + {% endif %} + +
    +
    +
    +
    diff --git a/shopify/snippets/product-card-grid.liquid b/shopify/snippets/product-card-grid.liquid new file mode 100644 index 00000000..43cfcd36 --- /dev/null +++ b/shopify/snippets/product-card-grid.liquid @@ -0,0 +1,113 @@ +{%- assign lazy_load = 'eager' -%} + +{%- if index > 4 -%} + {%- assign lazy_load = 'lazy' -%} +{%- endif -%} + +{%- if product.has_only_default_variant -%} + {%- assign unit_price = product.variants.first.unit_price -%} + {%- assign unit_reference = product.variants.first.unit_price_measurement.reference_unit -%} + {%- assign unit_reference_value = product.variants.first.unit_price_measurement.reference_value -%} +{%- else -%} + {%- assign unit_price = product.unit_price -%} + {%- assign unit_reference = product.unit_price_measurement.reference_unit -%} + {%- assign unit_reference_value = product.unit_price_measurement.reference_value -%} +{%- endif -%} + +{%- assign short_title = product.metafields.custom.short_title -%} +{%- assign quantity_content = product.metafields.custom.quantity_content -%} +{%- assign weight_content = product.metafields.custom.weight_content -%} +{%- assign unit_name = product.metafields.custom.unit_name -%} +{%- assign custom_card_badge = product.metafields.custom.custom_card_badge.value -%} + +
    + +
    +
    + {%- assign cover_image = product.featured_image -%} + + {%- if product.metafields.custom.alternate_product_card_image != blank -%} + {%- assign cover_image = product.metafields.custom.alternate_product_card_image.value -%} + {%- endif -%} + + {%- assign aspect_ratio = 1 | divided_by: cover_image.aspect_ratio | times: 100 -%} + + {%- if aspect_ratio > 100 -%} + {%- assign aspect_ratio = 100 -%} + {%- endif -%} + + +
    + +
    +
    + + + + + + +
    +
    +
    + {%- if custom_card_badge -%} +
    + {%- if custom_card_badge.emoji -%} + + + {{ custom_card_badge.emoji }} + + {%- endif -%} + + {{ custom_card_badge.text }} + + {%- if custom_card_badge.mobile_text != blank -%} + {{ custom_card_badge.mobile_text }} + {%- else -%} + {{ custom_card_badge.text }} + {%- endif -%} + +
    + {%- endif -%} +
    + {% render 'icon-vegan' %} + {{ 'collections.product_card.vegan_badge' | t }} +
    +
    + {% render 'icon-bio' %} + {{ 'collections.product_card.bio_badge' | t }} +
    +
    + {% if quantity_content != blank and weight_content != blank and unit_name != blank %} +
    +

    {{ quantity_content }} x {{ weight_content.value | split: ' ' }} {{ unit_name }} {% if unit_price %}| {{ unit_price | money }} / {{ unit_reference_value }}{{ unit_reference }}{% endif %}

    +
    + {% endif %} +
    +
    +
    + + {% render 'atc-button', product: product%} +
    +
    +
    diff --git a/shopify/snippets/product-card-list.liquid b/shopify/snippets/product-card-list.liquid new file mode 100644 index 00000000..8f46bc79 --- /dev/null +++ b/shopify/snippets/product-card-list.liquid @@ -0,0 +1,34 @@ +
    + + {{ product.title }} + + + +
    diff --git a/shopify/snippets/product-card-simple.liquid b/shopify/snippets/product-card-simple.liquid new file mode 100644 index 00000000..2886f91c --- /dev/null +++ b/shopify/snippets/product-card-simple.liquid @@ -0,0 +1,14 @@ +
  • + +
    + {{ product.featured_image | image_url: width: 300 | image_tag: class: "predictive-search-container__recommendation-image" }} +
    + + {%- if product.metafields.custom.short_title != blank -%} + {{ product.metafields.custom.short_title }} + {%- else -%} + {{ product.title }} + {%- endif -%} + +
    +
  • \ No newline at end of file diff --git a/shopify/snippets/product-compare.liquid b/shopify/snippets/product-compare.liquid new file mode 100644 index 00000000..8948135e --- /dev/null +++ b/shopify/snippets/product-compare.liquid @@ -0,0 +1,346 @@ + + + +{% assign product0 = all_products[section.settings.product0] %} +{% assign product1 = all_products[section.settings.product1] %} +{% assign product2 = all_products[section.settings.product2] %} + + + +{% assign featured_media = product.selected_or_first_available_variant.featured_media | default: product.featured_media %} +{% assign title = product.title %} +{% assign current_variant = product.selected_or_first_available_variant %} +{%- assign price = product.first_available_variant.price | money -%} +{% assign variant_id = product.selected_or_first_available_variant.id %} + + + +{% assign featured_media0 = product0.selected_or_first_available_variant.featured_media | default: product0.featured_media %} +{% if section.settings.pro_title0 != blank %} + {% assign title0 = section.settings.pro_title0 %} +{% else %} + {% assign title0 = product0.title %} +{% endif %} + +{% assign current_variant0 = product0.selected_or_first_available_variant %} +{%- assign price0 = product0.first_available_variant.price | money -%} +{% assign variant_id0 = product0.selected_or_first_available_variant.id %} + + +{% assign featured_media1 = product1.selected_or_first_available_variant.featured_media | default: product1.featured_media %} + +{% if section.settings.pro_title1 != blank %} + {% assign title1 = section.settings.pro_title1 %} +{% else %} +{% assign title1 = product1.title %} +{% endif %} + +{% assign current_variant1 = product1.selected_or_first_available_variant %} +{%- assign price1 = product1.first_available_variant.price | money -%} +{% assign variant_id1 = product1.selected_or_first_available_variant.id %} + + +{% assign featured_media2 = product2.selected_or_first_available_variant.featured_media | default: product2.featured_media %} +{% if section.settings.pro_title2 != blank %} + {% assign title2 = section.settings.pro_title2 %} +{% else %} +{% assign title2 = product2.title %} +{% endif %} +{% assign current_variant2 = product2.selected_or_first_available_variant %} +{%- assign price2 = product2.first_available_variant.price | money -%} +{% assign variant_id2 = product2.selected_or_first_available_variant.id %} + + + +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    +
    + {{ product1.description }} +
    +
    +
    + +
    + +
    + {%- if underline_word != blank -%} + {%- assign title_without_word = title | remove: underline_word -%} +

    {{ title_without_word }}{%- if underline_word != blank -%}{{ underline_word }}{%- endif -%}

    + {%- else -%} +

    {{ title }}

    + {%- endif -%} + +

    vegane + bio-zertifizierte Schokoriegel

    +
    +
    + +
    + {% render 'judgeme_widgets', widget_type: 'judgeme_preview_badge', jm_style: '', concierge_install: false, product: product1 %} +
    + +
    +
    +

    24 Riegel

    + + {%- assign bar_price = product1.first_available_variant.price | divided_by: section.settings.bar_qty1 -%} +

    {{ bar_price | money }} pro Riegel

    +
    +
    + +
    + + +
    +
    + +
    +

    bester Preis

    +
    +

    {{ title0 }}

    + + {% if section.settings.bar_qty0 != blank %} +

    {{ section.settings.bar_qty0 }} Riegel

    + {% endif %} + +
    + +
    + + + {% for variant in product0.variants %} +
    + {{ variant.price | money }} + {%- if variant.unit_price -%} + {{ variant.unit_price | money }} / {{ variant.unit_price_measurement.reference_unit }} + {%- endif -%} +
    + + {% endfor %} +
    +
    + {% if section.settings.discount0 != blank %} +

    {{ section.settings.discount0 }}

    + {% endif %} + +
    +
    + +
    +

    favorite

    +
    +

    {{ title1 }}

    + {% if section.settings.bar_qty1 != blank %} +

    {{ section.settings.bar_qty1 }} Riegel

    + {% endif %} +
    + +
    + + + {% for variant in product1.variants %} +
    + {{ variant.price | money }} + {%- if variant.unit_price -%} + {{ variant.unit_price | money }} / {{ variant.unit_price_measurement.reference_unit }} + {%- endif -%} +
    + + {% endfor %} +
    +
    + {% if section.settings.discount1 != blank %} +

    {{ section.settings.discount1 }}

    + {% endif %} +
    +
    + +
    + +
    +

    {{ title2 }}

    + {% if section.settings.bar_qty2 != blank %} +

    {{ section.settings.bar_qty2 }} Riegel

    + {% endif %} +
    + +
    + + {% for variant in product2.variants %} +
    + {{ variant.price | money }} + {%- if variant.unit_price -%} + {{ variant.unit_price | money }} / {{ variant.unit_price_measurement.reference_unit }} + {%- endif -%} +
    + + {% endfor %} +
    +
    +
    +
    + +
    + + + + + + +
    +
    + +
    +

    Yay auf Lager

    +
    +
    +

    🚚

    + + {{ product1.metafields.custom.shipping_time.value }} +
    +
    + +
    +
    +
    + +
    +
    + {{ product1.description }} +
    +
    + + + + + +
    +
    + +
    +
    +
    +
    + + + diff --git a/shopify/snippets/product-gallery.liquid b/shopify/snippets/product-gallery.liquid new file mode 100644 index 00000000..efe173ae --- /dev/null +++ b/shopify/snippets/product-gallery.liquid @@ -0,0 +1,65 @@ +{%- capture product_images -%} + +{%- endcapture -%} + +{%- capture product_images_thumbnail -%} + +{%- endcapture -%} + + diff --git a/shopify/snippets/product-info.liquid b/shopify/snippets/product-info.liquid new file mode 100644 index 00000000..2075cd63 --- /dev/null +++ b/shopify/snippets/product-info.liquid @@ -0,0 +1,293 @@ +{%- assign product_title = product.metafields.my_fields.pdp_title -%} +{%- assign short_title = product.metafields.custom.short_title -%} +{%- assign quantity_content = product.metafields.custom.quantity_content -%} +{%- assign weight_content = product.metafields.custom.weight_content -%} +{%- assign unit_name = product.metafields.custom.unit_name -%} + +
    +
    +
    + {%- unless product.metafields.judgeme.badge contains "No reviews" -%} +
    +
    + {{ product.metafields.judgeme.badge }} +
    +
    + {%- endunless -%} + + {%- if section.settings.show_price -%} +
    + + {%- unless product.compare_at_price_max > product.price -%} + {% assign hidden_class = 'hide' %} + {%- endunless -%} + + {%- if current_variant.compare_at_price > current_variant.price -%} + {% assign sale_class = 'product-form__price--new' %} + {{- current_variant.compare_at_price | money -}} + {%- endif -%} + + + {{- current_variant.price | money -}} + + {%- if current_variant.unit_price_measurement -%} + {%- capture unit_price_base_unit -%} + + {%- if current_variant.available and current_variant.unit_price_measurement -%} + {%- if current_variant.unit_price_measurement.reference_value != 1 -%} + {{- current_variant.unit_price_measurement.reference_value -}} + {%- endif -%} + {{ current_variant.unit_price_measurement.reference_unit }} + {%- endif -%} + + {%- endcapture -%} + + {{- current_variant.unit_price | money -}} / {{ unit_price_base_unit }} + + {%- endif -%} + +
    + {%- endif -%} +
    +
    + {%- form 'product', product, + class: 'product-form', + data-product-form: '', + data-product-handle: product.handle, + data-enable-history-state: 'true', + data-productid: product.id + -%} + {%- assign current_variant = product.selected_or_first_available_variant -%} + + + + {%- for block in section.blocks -%} + {%- case block.type -%} + {%- when 'description' -%} + {%- if product.description != blank -%} +
    {{ product.description }}
    + {%- endif -%} + + {%- when 'buy_button' -%} +
    + {%- if block.settings.show_price -%} +
    + + {%- unless product.compare_at_price_max > product.price -%} + {% assign hidden_class = 'hide' %} + {%- endunless -%} + + {%- if current_variant.compare_at_price > current_variant.price -%} + {% assign sale_class = 'product-form__price--new' %} + {{- current_variant.compare_at_price | money -}} + {%- endif -%} + + + {{- current_variant.price | money -}} + + {%- if current_variant.unit_price_measurement -%} + {%- capture unit_price_base_unit -%} + + {%- if current_variant.available and current_variant.unit_price_measurement -%} + {%- if current_variant.unit_price_measurement.reference_value != 1 -%} + {{- current_variant.unit_price_measurement.reference_value -}} + {%- endif -%} + {{ current_variant.unit_price_measurement.reference_unit }} + {%- endif -%} + + {%- endcapture -%} + + {{- current_variant.unit_price | money -}} / {{ unit_price_base_unit }} + + {%- endif -%} + +
    + {%- endif -%} + + {%- if current_variant.available == true and product.metafields.custom.preorder_date != blank -%} + + {{ "products.pre_order.shipping_info" | t: date: product.metafields.custom.preorder_date }} + + + + + {%- endif -%} + +
    + {%- if block.settings.show_quantity_selector -%} +
    + + + + + +
    + {%- endif -%} + +
    +
    + + {%- when 'countdown' -%} + {%- if product.metafields.custom.countdown_date != blank -%} + {% assign today_date = 'now' | date: '%s' %} + {% assign countdown_date = product.metafields.custom.countdown_date | date: '%s' -%} + {% assign remaining_time = countdown_date | minus: today_date %} + + {%- if remaining_time > 0 -%} + {%- assign days = remaining_time | divided_by: 86400 -%} + {%- assign hours = remaining_time | modulo: 86400 | divided_by: 3600 -%} + {%- assign minutes = remaining_time | modulo: 3600 | divided_by: 60 -%} + {%- assign seconds = remaining_time | modulo: 60 | minus: 1 -%} + + {%- assign days = days | prepend: "0" | slice: -2, 2 -%} + {%- assign hours = hours | prepend: "0" | slice: -2, 2 -%} + {%- assign minutes = minutes | prepend: "0" | slice: -2, 2 -%} + {%- assign seconds = seconds | prepend: "0" | slice: -2, 2 -%} + + +
    + {%- if block.settings.heading != blank -%} + {{ block.settings.heading}} + {%- endif -%} + +
    + +
    + {{ days }} + Tage +
    + : +
    + {{ hours }} + Std +
    + : +
    + {{ minutes }} + Min +
    + : +
    + {{ seconds }} + Sek +
    +
    +
    +
    + {%- endif -%} + {%- endif -%} + + {% when 'price' %} +
    + + {%- unless product.compare_at_price_max > product.price -%} + {% assign hidden_class = 'hide' %} + {%- endunless -%} + + {%- if current_variant.compare_at_price > current_variant.price -%} + {% assign sale_class = 'product-form__price--new' %} + {{- current_variant.compare_at_price | money -}} + {%- endif -%} + + + {{- current_variant.price | money -}} + + {%- if current_variant.unit_price_measurement -%} + {%- capture unit_price_base_unit -%} + + {%- if current_variant.available and current_variant.unit_price_measurement -%} + {%- if current_variant.unit_price_measurement.reference_value != 1 -%} + {{- current_variant.unit_price_measurement.reference_value -}} + {%- endif -%} + {{ current_variant.unit_price_measurement.reference_unit }} + {%- endif -%} + + {%- endcapture -%} + + {{- current_variant.unit_price | money -}} / {{ unit_price_base_unit }} + + {%- endif -%} + +
    + {%- endcase -%} + {%- endfor -%} + {%- endform -%} +
    +
    +
    diff --git a/shopify/snippets/product-price-listing.liquid b/shopify/snippets/product-price-listing.liquid new file mode 100644 index 00000000..0701ff7f --- /dev/null +++ b/shopify/snippets/product-price-listing.liquid @@ -0,0 +1,127 @@ +{% comment %} + Renders a list of product's price (regular, sale, unit) + Accompanies product listings (collection page, search result) and not updated dynamically + Accepts: + - variant: {Object} Variant Liquid object (optional) + - product: {Object} Product Liquid object (optional) + - show_vendor: {Boolean} Show the product's vendor depending on the section setting (optional) + + Usage: + {% include 'product-price-listing', product: product %} +{% endcomment %} +{%- liquid + if product.title + assign compare_at_price = product.compare_at_price + assign price = product.price + assign available = product.available + assign variant = product.variants.first + else + assign compare_at_price = 1999 + assign price = 1999 + assign available = true + endif + + if settings.currency_code_enabled + assign money_price = price | money_with_currency + else + assign money_price = price | money + endif +-%} + +
    + {% if show_vendor and product %} +
    +
    + {{ 'products.product.vendor' | t }} +
    +
    + {{ product.vendor }} +
    +
    + {% endif %} + + {%- comment -%} + Explanation of description list: + - div.price__regular: Displayed when there are no variants on sale + - div.price__sale: Displayed when a variant is a sale + - div.price__unit: Displayed when the first variant has a unit price + - div.price__availability: Displayed when the product is sold out + {%- endcomment -%} +
    +
    + {{ 'products.product.regular_price' | t }} +
    +
    + + {%- if product.price_varies -%} + {{ 'products.product.from_lowest_price_html' | t: lowest_price: money_price }} + {%- else -%} + {{ money_price }} + {%- endif -%} + +
    +
    +
    +
    + {{ 'products.product.sale_price' | t }} +
    +
    + + {%- if product.price_varies -%} + {{ 'products.product.from_lowest_price_html' | t: lowest_price: money_price }} + {%- else -%} + {{ money_price }} + {%- endif -%} + +
    +
    +
    + {{ 'products.product.regular_price' | t }} +
    +
    + + {%- if settings.currency_code_enabled -%} + {{ compare_at_price | money_with_currency }} + {%- else -%} + {{ compare_at_price | money }} + {%- endif -%} + +
    +
    +
    +
    +
    + {{ 'products.product.unit_price_label' | t }} +
    +
    + {%- capture unit_price_separator -%} + {{ 'general.accessibility.unit_price_separator' | t }}  + {%- endcapture -%} + {%- capture unit_price_base_unit -%} + + {%- if variant.unit_price_measurement -%} + {%- if variant.unit_price_measurement.reference_value != 1 -%} + {{- variant.unit_price_measurement.reference_value -}} + {%- endif -%} + {{ variant.unit_price_measurement.reference_unit }} + {%- endif -%} + + {%- endcapture -%} + + {{ variant.unit_price | money }}{{- unit_price_separator -}}{{- unit_price_base_unit -}} +
    +
    +
    + + + {{ 'products.product.sold_out' | t }} + +
    +
    diff --git a/shopify/snippets/product-price.liquid b/shopify/snippets/product-price.liquid new file mode 100644 index 00000000..c2eb8103 --- /dev/null +++ b/shopify/snippets/product-price.liquid @@ -0,0 +1,73 @@ + +{% if variant.title %} + {%- assign compare_at_price = variant.compare_at_price -%} + {%- assign price = variant.price -%} + {%- assign available = variant.available -%} + + {%- if variant.has_only_default_variant -%} + {%- assign unit_price = variant.variants.first.unit_price -%} + {%- assign unit_reference = variant.variants.first.unit_price_measurement.reference_unit -%} + {%- assign unit_reference_value = variant.variants.first.unit_price_measurement.reference_value -%} + {%- else -%} + {%- assign unit_price = variant.unit_price -%} + {%- assign unit_reference = variant.unit_price_measurement.reference_unit -%} + {%- assign unit_reference_value = variant.unit_price_measurement.reference_value -%} + {%- endif -%} +{% else %} + {%- assign compare_at_price = 1999 -%} + {%- assign price = 1999 -%} + {%- assign available = true -%} +{% endif %} + +{%- assign money_price = price | money -%} + +
    + + {% if section.settings.show_vendor %} +
    +
    + {{ 'products.product.vendor' | t }} +
    +
    + {{ product.vendor }} +
    +
    + {% endif %} + +
    +
    + {{ 'products.product.regular_price' | t }} +
    +
    + + {% if available %} + + {% if compare_at_price > price %} + {{ compare_at_price | money }} + {% else %} + {{ money_price }} + {% endif %} + + {%- if unit_price -%} + + {{ unit_price | money }} / {{ unit_reference_value }}{{ unit_reference }} + + {%- endif -%} + {% else %} + {{ 'products.product.sold_out' | t }} + {% endif %} + +
    +
    +
    +
    + {{ 'products.product.sale_price' | t }} +
    +
    + + {{ money_price }} + + +
    +
    +
    diff --git a/shopify/snippets/search-drawer.liquid b/shopify/snippets/search-drawer.liquid new file mode 100644 index 00000000..44e5c7eb --- /dev/null +++ b/shopify/snippets/search-drawer.liquid @@ -0,0 +1,40 @@ + diff --git a/shopify/snippets/search-form.liquid b/shopify/snippets/search-form.liquid new file mode 100644 index 00000000..e8b89e10 --- /dev/null +++ b/shopify/snippets/search-form.liquid @@ -0,0 +1,11 @@ + diff --git a/shopify/snippets/site-nav.liquid b/shopify/snippets/site-nav.liquid new file mode 100644 index 00000000..e8398bb4 --- /dev/null +++ b/shopify/snippets/site-nav.liquid @@ -0,0 +1,71 @@ + diff --git a/shopify/snippets/social-meta-tags.liquid b/shopify/snippets/social-meta-tags.liquid new file mode 100644 index 00000000..36737a17 --- /dev/null +++ b/shopify/snippets/social-meta-tags.liquid @@ -0,0 +1,60 @@ + +{%- assign og_title = page_title -%} +{%- assign og_url = canonical_url -%} +{%- assign og_type = 'website' -%} +{%- assign og_description = page_description | default: shop.description | default: shop.name -%} +{% if settings.share_image %} + {%- capture og_image_tags -%}{%- endcapture -%} + {%- capture og_image_secure_url_tags -%}{%- endcapture -%} +{% endif %} + +{% comment %} Template specific overides {% endcomment %} +{% if template.name == 'product' %} + {%- assign og_title = product.title | strip_html -%} + {%- assign og_type = 'product' -%} + {% if product.images.size > 0 %} + {%- capture og_image_tags -%}{% for image in product.images limit: 3 -%}{% endfor -%}{% endcapture -%} + {%- capture og_image_secure_url_tags -%}{% for image in product.images limit: 3 -%}{% endfor -%}{% endcapture -%} + {% endif %} + +{% elsif template.name == 'article' %} + {%- assign og_title = article.title | strip_html -%} + {%- assign og_type = 'article' -%} + {%- assign og_description = article.excerpt_or_content | strip_html -%} + {% if article.image %} + {%- capture og_image_tags -%}{%- endcapture -%} + {%- capture og_image_secure_url_tags -%}{%- endcapture -%} + {% endif %} + +{% elsif template.name == 'collection' %} + {%- assign og_title = collection.title | strip_html -%} + {%- assign og_type = 'product.group' -%} + {% if collection.image %} + {%- capture og_image_tags -%}{%- endcapture -%} + {%- capture og_image_secure_url_tags -%}{%- endcapture -%} + {% endif %} + +{% elsif template.name == 'password' %} + {%- assign og_title = shop.name -%} + {%- assign og_url = shop.url -%} + {%- assign og_description = shop.description | default: shop.name -%} +{% endif %} + + + + + + +{% if template.name == 'product' %} + + +{% endif %} +{{ og_image_tags }} +{{ og_image_secure_url_tags }} + +{% unless settings.social_twitter_link == blank %} + +{% endunless %} + + + diff --git a/shopify/snippets/social-sharing.liquid b/shopify/snippets/social-sharing.liquid new file mode 100644 index 00000000..d12d4db6 --- /dev/null +++ b/shopify/snippets/social-sharing.liquid @@ -0,0 +1,34 @@ + + diff --git a/shopify/snippets/translations.liquid b/shopify/snippets/translations.liquid new file mode 100644 index 00000000..fd48f6ee --- /dev/null +++ b/shopify/snippets/translations.liquid @@ -0,0 +1,432 @@ + \ No newline at end of file diff --git a/shopify/snippets/ultimate-datalayer.liquid b/shopify/snippets/ultimate-datalayer.liquid new file mode 100644 index 00000000..c2617948 --- /dev/null +++ b/shopify/snippets/ultimate-datalayer.liquid @@ -0,0 +1,1100 @@ + \ No newline at end of file diff --git a/shopify/snippets/variables.css.liquid b/shopify/snippets/variables.css.liquid new file mode 100644 index 00000000..2c24d567 --- /dev/null +++ b/shopify/snippets/variables.css.liquid @@ -0,0 +1,4 @@ +{%- comment -%} + Auto-generated file. Dont change! +{%- endcomment -%} +{% assign n = "json not allowed for this object" %}{%- capture variables -%}--settings-social-twitter-link: {%- assign s = settings['social_twitter_link'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%};--settings-social-facebook-link: {%- assign s = settings['social_facebook_link'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%};--settings-social-pinterest-link: {%- assign s = settings['social_pinterest_link'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%};--settings-social-instagram-link: {%- assign s = settings['social_instagram_link'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%};--settings-social-tumblr-link: {%- assign s = settings['social_tumblr_link'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%};--settings-social-youtube-link: {%- assign s = settings['social_youtube_link'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%};--settings-favicon: {%- assign s = settings['favicon'] -%}{%- if s != blank -%}{%- assign s = s | json -%}{%- unless s contains n -%}{{- s -}}{%- else -%}unset{%- endunless -%}{%- else -%}unset{%- endif -%}{%- endcapture -%} \ No newline at end of file diff --git a/shopify/snippets/zload-metafields.liquid b/shopify/snippets/zload-metafields.liquid new file mode 100644 index 00000000..e9f46026 --- /dev/null +++ b/shopify/snippets/zload-metafields.liquid @@ -0,0 +1,19 @@ +/** +################################## BEECLEVER GMBH KOBLENZ ################################### +##### Copyright (c) 2019-present, beeclever GmbH Koblenz DE, All rights reserved. ##### +##### THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ##### +##### IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS ##### +##### FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR ##### +##### COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER ##### +##### IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ##### +##### CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ##### +############################################################################################# + +##### !!!IMPORTANT!!! !!!IMPORTANT!!! !!!IMPORTANT!!! !!!IMPORTANT!!! !!!IMPORTANT!!! ##### +##### ##### +##### The contents of this file may not be changed. If the app is updated, we reserve ##### +##### the right to change this file at any time. Possible changes on your part will ##### +##### then be automatically discarded. ##### +############################################################################################# +*/ +var GDPR_LC_versionNr=20201126214845;var GDPR_LC_ZLoad=function(){ {% assign metafields=shop.metafields.bc_cookie %} {% assign data=shop.metafields.bc_cookie %} {% assign cookieData=data.bc_cookie_list %} var sDomain=location.host;var defaultDefinition=[{"src":"facebook","cookie":"fr","provider":"facebook.com","description":"","expires":7776000,"domain":"facebook.com","declaration":1,"group":"facebook"},{"src":"facebook","cookie":"_fbp","provider":sDomain,"description":"","expires":7776000,"domain":sDomain,"declaration":1,"group":"facebook"},{"src":"google-analytics.com","cookie":"_ga","provider":sDomain,"description":"","expires":63072000,"domain":sDomain,"declaration":1,"group":"google"},{"src":"googletagmanager.com","cookie":"_ga","provider":sDomain,"description":"","expires":63072000,"domain":sDomain,"declaration":1,"group":"google"},{"src":"googletagmanager.com","cookie":"_gid","provider":sDomain,"description":"","expires":86400,"domain":sDomain,"declaration":1,"group":"google"},{"src":"googletagmanager.com","cookie":"_gat","provider":sDomain,"description":"","expires":86400,"domain":sDomain,"declaration":1,"group":"google"},{"src":"googleadservices.com","cookie":"IDE","provider":sDomain,"description":"","expires":63072000,"domain":sDomain,"declaration":2,"group":"google Ads"}];if(window.thirdPartyScriptDefinition===undefined){window.thirdPartyScriptDefinition=[];defaultDefinition.forEach(function(value){window.thirdPartyScriptDefinition.push(value)})}else{var exist=false;defaultDefinition.forEach(function(script){window.thirdPartyScriptDefinition.forEach(function(value){if(value.src===script.src&&value.cookie===script.cookie){exist=true}});if(!exist){window.thirdPartyScriptDefinition.push(script)}})} (function polyfill(){if(!Array.from){Array.from=(function(){var toStr=Object.prototype.toString;var isCallable=function(fn){return typeof fn==='function'||toStr.call(fn)==='[object Function]'};var toInteger=function(value){var number=Number(value);if(isNaN(number)){return 0} if(number===0||!isFinite(number)){return number} return(number>0?1:-1)*Math.floor(Math.abs(number))};var maxSafeInteger=Math.pow(2,53)-1;var toLength=function(value){var len=toInteger(value);return Math.min(Math.max(len,0),maxSafeInteger)};return function from(arrayLike){var C=this;var items=Object(arrayLike);if(arrayLike==null){throw new TypeError('Array.from requires an array-like object - not null or undefined')} var mapFn=arguments.length>1?arguments[1]:void undefined;var T;if(typeof mapFn!=='undefined'){if(!isCallable(mapFn)){throw new TypeError('Array.from: when provided, the second argument must be a function')} if(arguments.length>2){T=arguments[2]}} var len=toLength(items.length);var A=isCallable(C)?Object(new C(len)):new Array(len);var k=0;var kValue;while(k 0 %} {% for id in analytics %} "{{ id | strip }}", {% endfor %} {% endif %} {% if adWords.size > 3 %} "{{ adWords }}", {% endif %} {% if gTag.size > 3 %} "{{ gTag }}" {% endif %} ], {% assign facebook=metafields['bc_tag_manager']['bc_tagManager_ids']['facebook'] %} {% if facebook.size > 3 %} 'facebook':"{{ facebook }}", {% endif %} '_bc_c_set':'customScript','customScriptsSRC':[]};window.bc_tagManagerTasks={"bc_tgm_aw":"google","bc_tgm_gtm":"google","bc_tgm_ua":"google","bc_tgm_fbp":"facebook","any":"any","_bc_c_set":"customScript"};var wl=whiteList=["recaptcha","notifications.google"];var GDPR_LC_scriptPath='gdpr-legal-cookie.beeclever.app';if(window.GDPR_LC_Beta_activate!==undefined&&window.GDPR_LC_Beta_activate){GDPR_LC_scriptPath='cookieapp-staging.beeclever.app'} wl.push(GDPR_LC_scriptPath); {% if false %} {% endif %} var checkIsBlackListed=function(src){setBC_GDPR_LEGAL_custom_cookies();if(src===null){return null} if(!!window.TrustedScriptURL&&src instanceof TrustedScriptURL){src=src.toString()} var r=!1;for(var x=thirdPartyScriptDefinition.length-1;x>=0;x--){var bSrc=thirdPartyScriptDefinition[x]['src'];if(src.indexOf(bSrc)!==-1&&src.toLowerCase().indexOf('jquery')===-1){r=x}} wl.forEach(function(wSrc){if(src.indexOf(wSrc)!==-1){r=false}});if(r!==false){function getTCookieName(name,index){var tCookieObject=thirdPartyScriptDefinition[index];if(tCookieObject!==undefined){var cookies=[];thirdPartyScriptDefinition.forEach(function(cookie){if(cookie['src']===tCookieObject['src']){cookies.push(cookie)}});var tCookieName=tCookieObject['cookie'];if(tCookieObject['domain']!==document.location.host){tCookieName=tCookieObject['cookie']+'$%bc%$'+tCookieObject['domain']} if(tCookieName===name&&tCookieObject['domain']===window['BC_GDPR_LEGAL_custom_cookies']['list'][name]['domain']){if(window['BC_GDPR_LEGAL_custom_cookies']['list'][name]['userSetting']){index=!1}} cookies.forEach(function(cookie){if(window['BC_GDPR_LEGAL_custom_cookies']['list'][cookie['cookie']]!==undefined&&window['BC_GDPR_LEGAL_custom_cookies']['list'][cookie['cookie']]['userSetting']){index=!1}});return index} return!1};var cookieListKeys=Array.from(Object.keys(window['BC_GDPR_LEGAL_custom_cookies']['list']));if(cookieListKeys.length>0){Array.from(Object.keys(window['BC_GDPR_LEGAL_custom_cookies']['list'])).forEach(function(cookieName){r=getTCookieName(cookieName.toString(),r)})}else{for(var x=thirdPartyScriptDefinition.length-1;x>=0;x--){var tCookie=thirdPartyScriptDefinition[x];if(src.indexOf(tCookie['src'])!==-1){r=tCookie['cookie']+'$%bc%$'+tCookie['domain']}} return r}} return r};(function(){window.scriptElementsHidden=window.scriptElementsHidden||[];window.callbackFunc=function(elem,args){for(var x=0;x=0;x--){if(caller[x]==='ICS'&&x>0){if(caller[x-1]in window['BC_GDPR_LEGAL_custom_cookies']['list']){fName=caller[x-1]}}}} if(fName===!1&&blackListed!==!1){elem[x].setAttribute('type','javascript/blocked');elem[x].setAttribute('cookie',blackListed)}else if(blackListed!==!0&&elem[x].getAttribute('type')==='javascript/blocked'){elem[x].setAttribute('type','javascript')} if(fName){elem[x].setAttribute("data-callerName",fName)} elem[x].setAttribute('src',elem[x].getAttribute('src'))} if(elem[x]['type']=='javascript/blocked'){window.scriptElementsHidden.push(elem[x]);elem[x]=document.createElement('script');elem[x].setAttribute('bc_empty_script_tag','')}}}};window._a=Element.prototype.appendChild;Element.prototype.appendChild=function(){window.callbackFunc.call(this,arguments);return window._a.apply(this,arguments)};window._b=Element.prototype.append;Element.prototype.append=function(){window.callbackFunc.call(this,arguments);return window._b.apply(this,arguments)};window._c = Element.prototype.insertBefore;Element.prototype.insertBefore = function () {window.callbackFunc.call ( this, arguments );try {return window._c.apply ( this, arguments )} catch ( e ) {arguments[1] = document.scripts[0];return window._c.apply ( this, arguments )}};window._d=Element.prototype.replaceChild;Element.prototype.replaceChild=function(){window.callbackFunc.call(this,arguments);return window._d.apply(this,arguments)};window._e=Element.prototype.insertNode;Element.prototype.insertNode=function(){window.callbackFunc.call(this,arguments);return window._e.apply(this,arguments)}})();if(!window.msCrypto){Array.from(document.head.querySelectorAll('[bc_empty_script_tag=""]')).forEach(function(script){script.remove()})}};if(window.GDPR_LC_ZLoad_loaded===undefined){GDPR_LC_ZLoad();window.GDPR_LC_ZLoad_loaded=true} diff --git a/shopify/templates/404.json b/shopify/templates/404.json index 82a0f9ba..cce47a3b 100644 --- a/shopify/templates/404.json +++ b/shopify/templates/404.json @@ -1,10 +1,24 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { - "main": { - "type": "main-404" + "404": { + "type": "404", + "settings": { + "title": "Ups, da ist etwas schief gelaufen", + "subtitle": "Hier gibt es nichts zu sehen, gehen Sie bitte weiter", + "image": "shopify://shop_images/404-img.png" + } } }, "order": [ - "main" + "404" ] -} \ No newline at end of file +} diff --git a/shopify/templates/article.json b/shopify/templates/article.json deleted file mode 100644 index 12f05adb..00000000 --- a/shopify/templates/article.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "sections": { - "main": { - "type": "main-article" - } - }, - "order": [ - "main" - ] -} \ No newline at end of file diff --git a/shopify/templates/article.liquid b/shopify/templates/article.liquid new file mode 100644 index 00000000..edbab238 --- /dev/null +++ b/shopify/templates/article.liquid @@ -0,0 +1,163 @@ +{%- comment -%} + Comments may not appear right after they are submitted, either to be checked by Shopify's spam filter + or to await moderation. When a comment is submitted, the browser is redirected to a page + that includes the new comment id in its URL. + Example: http://shopname.myshopify.com/blogs/news/2022072-my-post?comment=3721372 +{%- endcomment -%} + +{%- if comment.status == 'pending' -%} + {%- assign number_of_comments = article.comments_count | plus: 1 -%} +{%- else -%} + {%- assign number_of_comments = article.comments_count -%} +{%- endif -%} + +
    +
    +
    + {% section 'article-template' %} +
    +
    +
    + +{% if blog.comments_enabled? %} + {% if number_of_comments > 0 %} + +
    +
    +
    +

    {{ 'blogs.comments.comments_with_count' | t: count: number_of_comments }}

    + + {% paginate article.comments by 5 %} + + {% comment %} + #comments is required, it is used as an anchor link by Shopify. + {% endcomment %} +
    +
      + {% comment %} + If a comment was just submitted with no blank field, show it. + {% endcomment %} + {% if comment.status == 'pending' %} +
    • + {% include 'comment' %} +
    • + {% endif %} + + {% for comment in article.comments %} +
    • + {% include 'comment' %} +
    • + {% endfor %} +
    + + {% if paginate.pages > 1 %} + {% render 'pagination' %} + {% endif %} +
    + {% endpaginate %} +
    +
    +
    + {% endif %} + + +
    +
    +
    +
    + {% form 'new_comment', article %} + + {%- assign formId = 'CommentForm' -%} + +

    {{ 'blogs.comments.title' | t }}

    + + {%- assign post_message = 'blogs.comments.success' -%} + {%- if blog.moderated? and comment.status == 'pending' -%} + {%- assign post_message = 'blogs.comments.success_moderated' -%} + {%- elsif comment.status == 'unapproved' or comment.status == 'spam' -%} + {%- assign post_message = 'blogs.comments.unapproved' -%} + {%- endif -%} + + {% include 'form-status', form_id: formId, success_message: post_message %} + +
    + +
    + + + {% include 'icon-error' %} {{ 'blogs.comments.name' | t }} {{ form.errors.messages['author'] }}. +
    + +
    + + + {% include 'icon-error' %} {{ form.errors.translated_fields['email'] | capitalize }} {{ form.errors.messages['email'] }}. +
    + +
    + + + {% include 'icon-error' %} {{ 'blogs.comments.message' | t }} {{ form.errors.messages['body'] }}. +
    + +
    + + {% if blog.moderated? %} +

    {{ 'blogs.comments.moderated' | t }}

    + {% endif %} + + + {% endform %} +
    +
    +
    +
    +{% endif %} + + + + diff --git a/shopify/templates/blog.json b/shopify/templates/blog.json deleted file mode 100644 index d122269a..00000000 --- a/shopify/templates/blog.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "sections": { - "main": { - "type": "main-blog" - } - }, - "order": [ - "main" - ] -} \ No newline at end of file diff --git a/shopify/templates/blog.liquid b/shopify/templates/blog.liquid new file mode 100644 index 00000000..8b95a99a --- /dev/null +++ b/shopify/templates/blog.liquid @@ -0,0 +1,5 @@ +{% comment %} + The contents of the blog.liquid template can be found in /sections/blog-template.liquid +{% endcomment %} + +{% section 'blog-template' %} diff --git a/shopify/templates/cart.json b/shopify/templates/cart.json index 8ce591b5..f192bc4f 100644 --- a/shopify/templates/cart.json +++ b/shopify/templates/cart.json @@ -1,10 +1,26 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { "main": { - "type": "main-cart" + "type": "main-cart", + "settings": { + "cart_title": "Warenkorb", + "cart_subtitle": "yay, das ist in deinem Warenkorb:", + "image_left": "shopify://shop_images/cart-img-left.png", + "image_right": "shopify://shop_images/cart-img-right.png", + "continue_shopping_url": "shopify://collections/all" + } } }, "order": [ "main" ] -} \ No newline at end of file +} diff --git a/shopify/templates/cart.object-json.liquid b/shopify/templates/cart.object-json.liquid new file mode 100644 index 00000000..96503df9 --- /dev/null +++ b/shopify/templates/cart.object-json.liquid @@ -0,0 +1,6 @@ +{%- layout none -%} +{%- capture cart_json -%} + {%- include 'object-cart-json' -%} +{%- endcapture -%} + + diff --git a/shopify/templates/collection.context.de.json b/shopify/templates/collection.context.de.json new file mode 100644 index 00000000..9770154a --- /dev/null +++ b/shopify/templates/collection.context.de.json @@ -0,0 +1,17 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "parent": "collection.json", + "context": { + "market": "de" + }, + "sections": { + } +} diff --git a/shopify/templates/collection.json b/shopify/templates/collection.json index a9227bc8..4418c6d8 100644 --- a/shopify/templates/collection.json +++ b/shopify/templates/collection.json @@ -1,10 +1,100 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { - "main": { - "type": "main-collection" + "product-grid": { + "type": "featured-collections", + "blocks": { + "collection_item_HBNT6z": { + "type": "collection_item", + "settings": { + "collection": "produkte", + "image": "shopify://shop_images/treatfuls_bio_vegan_14_riegel_energyballs_c794a023-0e44-4a29-9808-de3609ff8a4b.webp", + "collection_title": "Alle Produkte" + } + }, + "collection_item_njphjp": { + "type": "collection_item", + "settings": { + "collection": "riegel", + "image": "shopify://shop_images/treatfuls-mix_box_mit_allen_riegeln_1008x_5edda097-847a-4641-935a-c89b38e371d3.png", + "collection_title": "Riegel" + } + }, + "collection_item_BpgG7M": { + "type": "collection_item", + "settings": { + "collection": "love-bites-valentinstag", + "image": "shopify://shop_images/Summer_Crush_Box_NEW.webp", + "collection_title": "Sommerboxen" + } + }, + "collection_item_LLzRme": { + "type": "collection_item", + "settings": { + "collection": "nuss-aufstriche", + "image": "shopify://shop_images/spreads-treatfuls.webp", + "collection_title": "Aufstriche" + } + }, + "collection_item_zt4DCn": { + "type": "collection_item", + "settings": { + "collection": "balls", + "image": "shopify://shop_images/treatfuls_bio_vegan_21_energyballs_baelle.webp", + "collection_title": "Balls" + } + }, + "collection_item_fnrKqm": { + "type": "collection_item", + "disabled": true, + "settings": { + "collection": "bundles", + "image": "shopify://shop_images/Vday_pink_treatfuls_love_gifting_box_5e5ef7a0-747e-4974-9748-891852561307.webp", + "collection_title": "Boxen" + } + } + }, + "block_order": [ + "collection_item_HBNT6z", + "collection_item_njphjp", + "collection_item_BpgG7M", + "collection_item_LLzRme", + "collection_item_zt4DCn", + "collection_item_fnrKqm" + ], + "settings": { + "heading_desktop": "Produkte", + "heading_mobile": "Produktübersicht", + "background_color": "#dbaaeb", + "background_color_mobile": "#2ac2bd", + "accent_color": "#2ac2bd", + "accent_color_mobile": "#f3587f" + } + }, + "f507b3a2-8d74-41d4-a1c9-d3dc0f20e0ee": { + "type": "collection", + "settings": { + "title": "", + "collection": "produkte", + "items_per_page": 48, + "show_vendor": false, + "show_view_all": false, + "background_color": "#2ac2bd", + "accent_color": "#f3587f", + "hover_color": "#dbaaeb" + } } }, "order": [ - "main" + "product-grid", + "f507b3a2-8d74-41d4-a1c9-d3dc0f20e0ee" ] -} \ No newline at end of file +} diff --git a/shopify/templates/customers/account.liquid b/shopify/templates/customers/account.liquid index e69de29b..0bbdb5a2 100644 --- a/shopify/templates/customers/account.liquid +++ b/shopify/templates/customers/account.liquid @@ -0,0 +1 @@ +{% section 'customer-account' %} diff --git a/shopify/templates/customers/activate_account.liquid b/shopify/templates/customers/activate_account.liquid index e69de29b..8a802e51 100644 --- a/shopify/templates/customers/activate_account.liquid +++ b/shopify/templates/customers/activate_account.liquid @@ -0,0 +1,30 @@ +
    +
    +
    +
    +

    {{ 'customer.activate_account.title' | t }}

    +

    {{ 'customer.activate_account.subtext' | t }}

    +
    + +
    + {% form 'activate_customer_password' %} + + {%- if form.errors -%} +
    + {{ form.errors | default_errors }} +
    + {%- endif -%} + + + + + + + + +
    + {% endform %} +
    +
    +
    +
    diff --git a/shopify/templates/customers/addresses.liquid b/shopify/templates/customers/addresses.liquid index e69de29b..275851a1 100644 --- a/shopify/templates/customers/addresses.liquid +++ b/shopify/templates/customers/addresses.liquid @@ -0,0 +1 @@ +{% section 'customer-addresses' %} diff --git a/shopify/templates/customers/login.liquid b/shopify/templates/customers/login.liquid index e69de29b..fc852ce2 100644 --- a/shopify/templates/customers/login.liquid +++ b/shopify/templates/customers/login.liquid @@ -0,0 +1 @@ +{% section 'customer-login' %} diff --git a/shopify/templates/customers/order.liquid b/shopify/templates/customers/order.liquid index e69de29b..a336e9b5 100644 --- a/shopify/templates/customers/order.liquid +++ b/shopify/templates/customers/order.liquid @@ -0,0 +1 @@ +{% section 'customer-order' %} diff --git a/shopify/templates/customers/register.liquid b/shopify/templates/customers/register.liquid index e69de29b..6acfbd28 100644 --- a/shopify/templates/customers/register.liquid +++ b/shopify/templates/customers/register.liquid @@ -0,0 +1 @@ +{% section 'customer-register' %} diff --git a/shopify/templates/customers/reset_password.liquid b/shopify/templates/customers/reset_password.liquid index e69de29b..2865e089 100644 --- a/shopify/templates/customers/reset_password.liquid +++ b/shopify/templates/customers/reset_password.liquid @@ -0,0 +1 @@ +{% section 'customer-reset-password' %} diff --git a/shopify/templates/gift_card.liquid b/shopify/templates/gift_card.liquid index e69de29b..66e8ca49 100644 --- a/shopify/templates/gift_card.liquid +++ b/shopify/templates/gift_card.liquid @@ -0,0 +1,82 @@ +{% layout 'gift_card' %} + +{%- assign formatted_initial_value = gift_card.initial_value | money_without_trailing_zeros: gift_card.currency -%} +{%- assign formatted_initial_value_stripped = formatted_initial_value | strip_html -%} + + + +
    +
    +
    + + + {%- assign initial_value_size = formatted_initial_value | size -%} +
    + {% if gift_card.balance != gift_card.initial_value %} + + {{ 'gift_cards.issued.remaining_html' | t: balance: gift_card.balance | money }} + + {% endif %} + {{ formatted_initial_value }} +
    + +
    +
    + +
    +
    +
    + +

    + {{ 'gift_cards.issued.redeem_html' | t: value: formatted_initial_value_stripped }} +

    + +
    + + +
    +
    diff --git a/shopify/templates/index.json b/shopify/templates/index.json index aed0ad5a..2af57042 100644 --- a/shopify/templates/index.json +++ b/shopify/templates/index.json @@ -1,14 +1,332 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { - "vue-examples": { - "type": "vue-examples" + "hero_GRwq8M": { + "type": "hero", + "blocks": { + "button_M3XbEb": { + "type": "button", + "name": "Button", + "settings": { + "text": "20 % Code sichern", + "url": "", + "signup_button": true, + "klaviyo_form": "X3H7FL" + }, + "blocks": {} + }, + "button_gWRaVG": { + "type": "button", + "name": "Button", + "disabled": true, + "settings": { + "text": "zur Schultüte", + "url": "shopify://products/schultute-bio-vegan", + "signup_button": false, + "klaviyo_form": "" + }, + "blocks": {} + } + }, + "block_order": [ + "button_M3XbEb", + "button_gWRaVG" + ], + "name": "Image with text overlay", + "settings": { + "desktop_image": "shopify://shop_images/Heroshots_Launch_adventskalender_desktop_3500x_10bb2f28-b21c-48bf-923d-c5d26d93faa2.webp", + "desktop_image_height": "adapt", + "mobile_image": "shopify://shop_images/Heroshots3_Launch_adventskalender_mobil_1200x_fdd8d055-e20a-4fdb-8605-f64d10221f00.webp", + "mobile_image_height": "adapt", + "hide_on_mobile": false, + "vertical_alignment_desktop": "middle", + "horizontal_alignment_desktop": "left", + "vertical_alignment_mobile": "top", + "horizontal_alignment_mobile": "left", + "max_width": "100%", + "max_width_px": 700, + "title": "Santa’s Sweet Deal!", + "text": "

    Unser Kalender ist fast so schnell weg wie unsere Snacks!

    Trag dich jetzt in den Newsletter ein & schnapp dir deinen exklusiven

    20 %-Code 🎁

    ", + "background_color": "#f3587f", + "accent_color": "#f3587f", + "hover_color": "#2ac2bd", + "show_base_triangular_line": true + } }, - "main": { - "type": "main-index" + "featured_collections_EUemmF": { + "type": "featured-collections", + "blocks": { + "collection_item_nBcRpr": { + "type": "collection_item", + "settings": { + "collection": "produkte", + "image": "shopify://shop_images/treatfuls_bio_vegan_14_riegel_energyballs_c794a023-0e44-4a29-9808-de3609ff8a4b.webp", + "collection_title": "Alle produkte" + } + }, + "collection_item_c33Q89": { + "type": "collection_item", + "settings": { + "collection": "riegel", + "image": "shopify://shop_images/treatfuls-mix_box_mit_allen_riegeln_1008x_5edda097-847a-4641-935a-c89b38e371d3.png", + "collection_title": "" + } + }, + "collection_item_hHjCCf": { + "type": "collection_item", + "settings": { + "collection": "love-bites-valentinstag", + "image": "shopify://shop_images/Summer_Crush_Box_NEW.webp", + "collection_title": "Sommerboxen" + } + }, + "collection_item_zbE6pg": { + "type": "collection_item", + "settings": { + "collection": "nuss-aufstriche", + "image": "shopify://shop_images/spreads-treatfuls.webp", + "collection_title": "Aufstriche" + } + }, + "collection_item_7HkdAc": { + "type": "collection_item", + "settings": { + "collection": "balls", + "collection_title": "" + } + } + }, + "block_order": [ + "collection_item_nBcRpr", + "collection_item_c33Q89", + "collection_item_hHjCCf", + "collection_item_zbE6pg", + "collection_item_7HkdAc" + ], + "disabled": true, + "name": "Featured collections", + "settings": { + "heading_desktop": "Produkte", + "heading_mobile": "Produkte", + "background_color": "#1ba7a2", + "background_color_mobile": "#2ac2bd", + "accent_color": "#f3587f", + "accent_color_mobile": "#f3587f" + } + }, + "home-products": { + "type": "home-products", + "blocks": { + "1cfded86-563d-4d47-bb13-779d107d88ef": { + "type": "product_item", + "settings": { + "product": "schultute-bio-vegan" + } + }, + "28b053f4-1040-48a6-9229-7fa4f1d54ca5": { + "type": "product_item", + "settings": { + "product": "white-covered-crunchy-hazelnut-treats-healthier-than-your-last-relationship" + } + }, + "product_item_mGLG8t": { + "type": "product_item", + "settings": { + "product": "vegan-snack-love-bundle-alle-sorten-in-einem-bio-vegan" + } + }, + "product_item_fwnbt4": { + "type": "product_item", + "settings": { + "product": "alle-sorten-probierbox-14-stuck-riegel-balle-zum-probieren-bio-vegan" + } + }, + "product_item_iM9nAw": { + "type": "product_item", + "settings": { + "product": "selflove-snackbox-bio-vegan" + } + }, + "product_item_A3669g": { + "type": "product_item", + "settings": { + "product": "gemischtes-paket-mit-allen-4-riegeln" + } + }, + "product_item_yJ9RiE": { + "type": "product_item", + "settings": { + "product": "creme-de-la-creme-bundle-21-nussmus-snackballe-alle-sorten-bio-vegan" + } + }, + "product_item_ALK7CL": { + "type": "product_item", + "settings": { + "product": "20-x-weisse-zitronenkuchen-riegel-bio-vegan" + } + }, + "product_item_6mCijk": { + "type": "product_item", + "settings": { + "product": "love-you-like-snacks-bio-vegan" + } + } + }, + "block_order": [ + "1cfded86-563d-4d47-bb13-779d107d88ef", + "28b053f4-1040-48a6-9229-7fa4f1d54ca5", + "product_item_mGLG8t", + "product_item_fwnbt4", + "product_item_iM9nAw", + "product_item_A3669g", + "product_item_yJ9RiE", + "product_item_ALK7CL", + "product_item_6mCijk" + ], + "settings": { + "title": "This is what guiltfree looks like", + "title-second": "powered by plants loved by everyone", + "title-third": "healthy never tasted this naughty", + "link_text": "Jetzt kaufen", + "background_color": "#f3587f", + "accent_color": "#2ac2bd", + "hover_color": "#dbaaeb" + } + }, + "home-ticker": { + "type": "home-ticker", + "blocks": { + "79893080-8679-4ecc-b984-44037aa372e8": { + "type": "ticker_item", + "settings": { + "revert": false, + "text": "recyclebar • bio-zertifiziert • Glutenfrei • fair-trade Schoki • recyclebar • bio-zertifiziert • Glutenfrei • fair-trade Schoki • recyclebar • bio-zertifiziert • Glutenfrei • recyclebar • bio-zertifiziert • Glutenfrei • recyclebar • bio-zertifiziert • Glutenfrei • recyclebar • bio-zertifiziert • Glutenfrei • fair-trade Schoki •" + } + }, + "516bcf2f-264d-4de0-80a9-94bb5edd64ce": { + "type": "ticker_item", + "settings": { + "revert": true, + "text": "lecker • Sojafrei • ohne raffinierten Zucker • vegan • ohne Zusatzstoffe •Sojafrei • ohne raffinierten Zucker • ohne Zusatzstoffe • Sojafrei • ohne raffinierten Zucker • ohne Zusatzstoffe • Sojafrei • ohne raffinierten Zucker • ohne Zusatzstoffe • Sojafrei • ohne raffinierten Zucker • ohne Zusatzstoffe • Sojafrei • ohne raffinierten Zucker • ohne Zusatzstoffe •" + } + } + }, + "block_order": [ + "79893080-8679-4ecc-b984-44037aa372e8", + "516bcf2f-264d-4de0-80a9-94bb5edd64ce" + ], + "settings": { + "background_color": "#2ac2bd" + } + }, + "advantages_C7eDVR": { + "type": "advantages", + "blocks": { + "advantage_item_Rxrckx": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "Lecker" + } + }, + "advantage_item_aLtQhy": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "Vegan" + } + }, + "advantage_item_AyV7yV": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "Bio-zertifiziert" + } + }, + "advantage_item_XntbcJ": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Recyclebare Verpackung" + } + }, + "advantage_item_CR9zhB": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-5-soy.png", + "text": "Ohne Soja" + } + }, + "advantage_item_j6BMtx": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-6-gluten-free.png", + "text": "Ohne Gluten" + } + }, + "advantage_item_RbjjRA": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-7-sugar.png", + "text": "Ohne raffinierten Zucker" + } + }, + "advantage_item_f8LpM9": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-8-additives.png", + "text": "Ohne Zusatzstoffe" + } + } + }, + "block_order": [ + "advantage_item_Rxrckx", + "advantage_item_aLtQhy", + "advantage_item_AyV7yV", + "advantage_item_XntbcJ", + "advantage_item_CR9zhB", + "advantage_item_j6BMtx", + "advantage_item_RbjjRA", + "advantage_item_f8LpM9" + ], + "settings": { + "hide_on_mobile": false, + "title": "nicht noch so ein Bio-Riegel…", + "subtitle": "sondern der beste Snack, an dem sich dein Gaumen zu Lebzeiten erfreuen wird*. Unsere Treats sind hergestellt aus und geschichtet mit den besten Zutaten + umrandet von Fair-Trade Schoko und eingepackt in recyclebarer Verpackung + bedruckt mit witzigen Sprüchen + kreiert mit viel Herzblut + Leidenschaft + Unmengen von Spaß.", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + }, + "richtext_QaqNnf": { + "type": "richtext", + "settings": { + "title": "hungry for a change?", + "first_text": "Bist du bereit mit uns gemeinsam die Snack-Industrie zu revolutionieren? Wir wollen Snacks die besser sind, als das was der Markt uns gerade bietet. Wir wollen Süßigkeiten die geil schmecken und besser für dich und die Umwelt sind.", + "img_on_hover": "shopify://shop_images/home-richtext-img-hover.png", + "second_text": "Wir sind Macher und Träumerinnen zugleich und haben aus diesem Grund treatfuls ins Leben gerufen. Mach mit und probiere und überzeuge dich selbst, wie lecker vegane und natürliche Snacks sein können.", + "link_url": "shopify://products/probierbox-alle-sorten-16-stuck-bio-vegan", + "link_text": "Jetzt Probierpaket kaufen", + "background_color": "#2ac2bd", + "accent_color": "#dbaaeb", + "hover_color": "#f3587f" + } } }, "order": [ - "vue-examples", - "main" + "hero_GRwq8M", + "featured_collections_EUemmF", + "home-products", + "home-ticker", + "advantages_C7eDVR", + "richtext_QaqNnf" ] -} \ No newline at end of file +} diff --git a/shopify/templates/index.objects.liquid b/shopify/templates/index.objects.liquid new file mode 100644 index 00000000..7ceec799 --- /dev/null +++ b/shopify/templates/index.objects.liquid @@ -0,0 +1,57 @@ +{%- layout none -%} +{%- capture content -%} + {{ content_for_index }} +{%- endcapture -%} + +{%- assign settings_json = "" -%} +{%- assign separator = "," -%} + +{%- for key in settings -%} + {%- if settings_json != "" -%} + {%- assign settings_json = settings_json | append: separator -%} + {%- endif -%} + + {%- capture item -%} + "{{- key -}}": {{- settings[key] | json -}} + {%- endcapture -%} + + {%- assign settings_json = settings_json | append: item -%} +{%- endfor -%} + +{ + "shop": { + "currency": {{- shop.currency | json -}}, + "money_format": {{- shop.money_format | json -}}, + "money_with_currency_format": {{- shop.money_with_currency_format | json -}} + }, + "currency": { + "cart": {{- cart.currency | json -}} + }, + "settings": { + {{- settings_json -}} + }, + "routes": { + "root_url": {{- routes.root_url | json -}}, + "account_url ": {{- routes.account_url | json -}}, + "account_login_url": {{- routes.account_login_url | json -}}, + "account_logout_url": {{- routes.account_logout_url | json -}}, + "account_register_url": {{- routes.account_register_url | json -}}, + "account_addresses_url": {{- routes.account_addresses_url | json -}}, + "collections_url": {{- routes.collections_url | json -}}, + "all_products_collection_url": {{- routes.all_products_collection_url | json -}}, + "search_url": {{- routes.search_url | json -}}, + "cart_url": {{- routes.cart_url | json -}}, + "cart_add_url": {{- routes.cart_add_url | json -}}, + "cart_change_url": {{- routes.cart_change_url | json -}}, + "cart_clear_url": {{- routes.cart_clear_url | json -}}, + "product_recommendations_url": {{- routes.product_recommendations_url | json -}}, + "checkout": "/checkout" + }, + "customer": {{- customer | json -}}, + "request": { + "design_mode": {{- request.design_mode | json -}}, + "host ": {{- request.host | json -}}, + "locale": {{- request.locale | json -}}, + "path": {{- request.path | json -}} + } +} diff --git a/shopify/templates/index.settings.liquid b/shopify/templates/index.settings.liquid new file mode 100644 index 00000000..d9c7e1da --- /dev/null +++ b/shopify/templates/index.settings.liquid @@ -0,0 +1,4 @@ +{%- comment -%} + Auto-generated file. Dont change! +{%- endcomment -%} +{%- layout none -%}{%- capture content -%}{{- content_for_index -}}{%- endcapture -%}{%- capture settings -%}{"social_twitter_link":{{- settings['social_twitter_link'] | json -}},"social_facebook_link":{{- settings['social_facebook_link'] | json -}},"social_pinterest_link":{{- settings['social_pinterest_link'] | json -}},"social_instagram_link":{{- settings['social_instagram_link'] | json -}},"social_tumblr_link":{{- settings['social_tumblr_link'] | json -}},"social_youtube_link":{{- settings['social_youtube_link'] | json -}},"favicon":{{- settings['favicon'] | json -}}}{%- endcapture -%}{{- settings | strip -}} \ No newline at end of file diff --git a/shopify/templates/index.translations.liquid b/shopify/templates/index.translations.liquid new file mode 100644 index 00000000..0cfbc49e --- /dev/null +++ b/shopify/templates/index.translations.liquid @@ -0,0 +1,433 @@ +{%- comment -%} + Auto-generated file. Dont change! +{%- endcomment -%} +{%- layout none -%}{%- capture content -%}{{- content_for_index -}}{%- endcapture -%}{%- capture translations -%}{ + "general": { + "404": { + "title": {{- 'general.404.title' | t | json -}}, + "subtext": {{- 'general.404.subtext' | t | json -}}, + "link": {{- 'general.404.link' | t | json -}} + }, + "accessibility": { + "skip_to_content": {{- 'general.accessibility.skip_to_content' | t | json -}}, + "close_modal": {{- 'general.accessibility.close_modal' | t | json -}}, + "link_messages": { + "new_window": {{- 'general.accessibility.link_messages.new_window' | t | json -}}, + "external": {{- 'general.accessibility.link_messages.external' | t | json -}}, + "new_window_and_external": {{- 'general.accessibility.link_messages.new_window_and_external' | t | json -}} + }, + "refresh_page": {{- 'general.accessibility.refresh_page' | t | json -}}, + "selection_help": {{- 'general.accessibility.selection_help' | t | json -}}, + "unit_price_separator": {{- 'general.accessibility.unit_price_separator' | t | json -}}, + "error": {{- 'general.accessibility.error' | t | json -}} + }, + "meta": { + "tags": {{- 'general.meta.tags' | t | json -}}, + "page": {{- 'general.meta.page' | t | json -}} + }, + "pagination": { + "previous": {{- 'general.pagination.previous' | t | json -}}, + "next": {{- 'general.pagination.next' | t | json -}}, + "current_page": {{- 'general.pagination.current_page' | t | json -}} + }, + "password_page": { + "opening_soon": {{- 'general.password_page.opening_soon' | t | json -}}, + "login_form_heading": {{- 'general.password_page.login_form_heading' | t | json -}}, + "login_form_password_label": {{- 'general.password_page.login_form_password_label' | t | json -}}, + "login_form_password_placeholder": {{- 'general.password_page.login_form_password_placeholder' | t | json -}}, + "login_form_submit": {{- 'general.password_page.login_form_submit' | t | json -}}, + "signup_form_email_label": {{- 'general.password_page.signup_form_email_label' | t | json -}}, + "signup_form_success": {{- 'general.password_page.signup_form_success' | t | json -}}, + "admin_link_html": {{- 'general.password_page.admin_link_html' | t | json -}}, + "powered_by_shopify_html": {{- 'general.password_page.powered_by_shopify_html' | t | json -}}, + "password_link": {{- 'general.password_page.password_link' | t | json -}} + }, + "social": { + "share_on_facebook": {{- 'general.social.share_on_facebook' | t | json -}}, + "share_on_twitter": {{- 'general.social.share_on_twitter' | t | json -}}, + "share_on_pinterest": {{- 'general.social.share_on_pinterest' | t | json -}}, + "alt_text": { + "share_on_facebook": {{- 'general.social.alt_text.share_on_facebook' | t | json -}}, + "share_on_twitter": {{- 'general.social.alt_text.share_on_twitter' | t | json -}}, + "share_on_pinterest": {{- 'general.social.alt_text.share_on_pinterest' | t | json -}} + } + }, + "search": { + "no_results": {{- 'general.search.no_results' | t | json -}}, + "empty_search_message": {{- 'general.search.empty_search_message' | t | json -}}, + "results_with_count": { + "one": {{- 'general.search.results_with_count.one' | t | json -}}, + "other": {{- 'general.search.results_with_count.other' | t | json -}} + }, + "title": {{- 'general.search.title' | t | json -}}, + "placeholder": {{- 'general.search.placeholder' | t | json -}}, + "submit": {{- 'general.search.submit' | t | json -}}, + "close": {{- 'general.search.close' | t | json -}}, + "heading": { + "one": {{- 'general.search.heading.one' | t | json -}}, + "other": {{- 'general.search.heading.other' | t | json -}} + }, + "search_for": {{- 'general.search.search_for' | t | json -}}, + "products": {{- 'general.search.products' | t | json -}}, + "loading": {{- 'general.search.loading' | t | json -}}, + "clear_search_term": {{- 'general.search.clear_search_term' | t | json -}}, + "number_of_results": {{- 'general.search.number_of_results' | t | json -}}, + "number_of_results_found": {{- 'general.search.number_of_results_found' | t | json -}}, + "one_result_found": {{- 'general.search.one_result_found' | t | json -}} + }, + "newsletter_form": { + "newsletter_email": {{- 'general.newsletter_form.newsletter_email' | t | json -}}, + "email_placeholder": {{- 'general.newsletter_form.email_placeholder' | t | json -}}, + "confirmation": {{- 'general.newsletter_form.confirmation' | t | json -}}, + "submit": {{- 'general.newsletter_form.submit' | t | json -}} + }, + "filters": { + "show_more": {{- 'general.filters.show_more' | t | json -}}, + "show_less": {{- 'general.filters.show_less' | t | json -}} + }, + "payment": { + "method": {{- 'general.payment.method' | t | json -}} + }, + "country": { + "dropdown_label": {{- 'general.country.dropdown_label' | t | json -}} + }, + "language": { + "dropdown_label": {{- 'general.language.dropdown_label' | t | json -}} + } + }, + "sections": { + "header": { + "announcement_bar_label": {{- 'sections.header.announcement_bar_label' | t | json -}} + }, + "slideshow": { + "next_slide": {{- 'sections.slideshow.next_slide' | t | json -}}, + "previous_slide": {{- 'sections.slideshow.previous_slide' | t | json -}}, + "pause_slideshow": {{- 'sections.slideshow.pause_slideshow' | t | json -}}, + "rotate_slideshow": {{- 'sections.slideshow.rotate_slideshow' | t | json -}}, + "load_slide": {{- 'sections.slideshow.load_slide' | t | json -}}, + "navigation_instructions": {{- 'sections.slideshow.navigation_instructions' | t | json -}} + }, + "featured_product": { + "title": {{- 'sections.featured_product.title' | t | json -}}, + "gallery_thumbnail_alt": {{- 'sections.featured_product.gallery_thumbnail_alt' | t | json -}}, + "video_thumbnail_alt": {{- 'sections.featured_product.video_thumbnail_alt' | t | json -}}, + "model_thumbnail_alt": {{- 'sections.featured_product.model_thumbnail_alt' | t | json -}} + }, + "map": { + "address_error": {{- 'sections.map.address_error' | t | json -}}, + "address_no_results": {{- 'sections.map.address_no_results' | t | json -}}, + "address_query_limit_html": {{- 'sections.map.address_query_limit_html' | t | json -}}, + "auth_error_html": {{- 'sections.map.auth_error_html' | t | json -}}, + "section_heading": {{- 'sections.map.section_heading' | t | json -}} + }, + "video": { + "play": {{- 'sections.video.play' | t | json -}}, + "pause": {{- 'sections.video.pause' | t | json -}}, + "resume": {{- 'sections.video.resume' | t | json -}}, + "close": {{- 'sections.video.close' | t | json -}} + } + }, + "blogs": { + "article": { + "view_all": {{- 'blogs.article.view_all' | t | json -}}, + "view_all_blogs": {{- 'blogs.article.view_all_blogs' | t | json -}}, + "all_topics": {{- 'blogs.article.all_topics' | t | json -}}, + "by_author": {{- 'blogs.article.by_author' | t | json -}}, + "posted_in": {{- 'blogs.article.posted_in' | t | json -}}, + "read_more": {{- 'blogs.article.read_more' | t | json -}}, + "read_more_title": {{- 'blogs.article.read_more_title' | t | json -}}, + "back_to_blog": {{- 'blogs.article.back_to_blog' | t | json -}}, + "tags": {{- 'blogs.article.tags' | t | json -}}, + "article_with_count": { + "one": {{- 'blogs.article.article_with_count.one' | t | json -}}, + "other": {{- 'blogs.article.article_with_count.other' | t | json -}} + } + }, + "comments": { + "title": {{- 'blogs.comments.title' | t | json -}}, + "name": {{- 'blogs.comments.name' | t | json -}}, + "email": {{- 'blogs.comments.email' | t | json -}}, + "message": {{- 'blogs.comments.message' | t | json -}}, + "post": {{- 'blogs.comments.post' | t | json -}}, + "moderated": {{- 'blogs.comments.moderated' | t | json -}}, + "success_moderated": {{- 'blogs.comments.success_moderated' | t | json -}}, + "success": {{- 'blogs.comments.success' | t | json -}}, + "unapproved": {{- 'blogs.comments.unapproved' | t | json -}}, + "comments_with_count": { + "one": {{- 'blogs.comments.comments_with_count.one' | t | json -}}, + "other": {{- 'blogs.comments.comments_with_count.other' | t | json -}} + } + } + }, + "cart": { + "general": { + "title": {{- 'cart.general.title' | t | json -}}, + "note": {{- 'cart.general.note' | t | json -}}, + "removed_item_html": {{- 'cart.general.removed_item_html' | t | json -}}, + "remove": {{- 'cart.general.remove' | t | json -}}, + "subtotal": {{- 'cart.general.subtotal' | t | json -}}, + "savings": {{- 'cart.general.savings' | t | json -}}, + "taxes_and_shipping_at_checkout": {{- 'cart.general.taxes_and_shipping_at_checkout' | t | json -}}, + "taxes_and_shipping_policy_at_checkout_html": {{- 'cart.general.taxes_and_shipping_policy_at_checkout_html' | t | json -}}, + "taxes_included_but_shipping_at_checkout": {{- 'cart.general.taxes_included_but_shipping_at_checkout' | t | json -}}, + "taxes_included_and_shipping_policy_html": {{- 'cart.general.taxes_included_and_shipping_policy_html' | t | json -}}, + "update": {{- 'cart.general.update' | t | json -}}, + "checkout": {{- 'cart.general.checkout' | t | json -}}, + "empty": {{- 'cart.general.empty' | t | json -}}, + "cookies_required": {{- 'cart.general.cookies_required' | t | json -}}, + "continue_shopping": {{- 'cart.general.continue_shopping' | t | json -}}, + "cart_error": {{- 'cart.general.cart_error' | t | json -}}, + "cart_subtotal": {{- 'cart.general.cart_subtotal' | t | json -}}, + "mini_cart_item": {{- 'cart.general.mini_cart_item' | t | json -}}, + "mini_cart_empty_title": {{- 'cart.general.mini_cart_empty_title' | t | json -}}, + "mini_cart_empty_subtitle": {{- 'cart.general.mini_cart_empty_subtitle' | t | json -}} + }, + "label": { + "discounted_total": {{- 'cart.label.discounted_total' | t | json -}}, + "product": {{- 'cart.label.product' | t | json -}}, + "price": {{- 'cart.label.price' | t | json -}}, + "price_column": {{- 'cart.label.price_column' | t | json -}}, + "product_details": {{- 'cart.label.product_details' | t | json -}}, + "quantity": {{- 'cart.label.quantity' | t | json -}}, + "qty": {{- 'cart.label.qty' | t | json -}}, + "regular_total": {{- 'cart.label.regular_total' | t | json -}}, + "remove": {{- 'cart.label.remove' | t | json -}}, + "total": {{- 'cart.label.total' | t | json -}}, + "update": {{- 'cart.label.update' | t | json -}} + }, + "popup": { + "added_to_cart": {{- 'cart.popup.added_to_cart' | t | json -}}, + "cart_count": { + "one": {{- 'cart.popup.cart_count.one' | t | json -}}, + "other": {{- 'cart.popup.cart_count.other' | t | json -}} + }, + "product_details": {{- 'cart.popup.product_details' | t | json -}}, + "quantity": {{- 'cart.popup.quantity' | t | json -}}, + "quantity_label": {{- 'cart.popup.quantity_label' | t | json -}} + } + }, + "collections": { + "general": { + "view_all": {{- 'collections.general.view_all' | t | json -}}, + "view_all_label": {{- 'collections.general.view_all_label' | t | json -}}, + "no_matches": {{- 'collections.general.no_matches' | t | json -}}, + "items_with_count": { + "one": {{- 'collections.general.items_with_count.one' | t | json -}}, + "other": {{- 'collections.general.items_with_count.other' | t | json -}} + }, + "collection_label": {{- 'collections.general.collection_label' | t | json -}} + }, + "catalog": { + "title": {{- 'collections.catalog.title' | t | json -}} + }, + "sorting": { + "title": {{- 'collections.sorting.title' | t | json -}} + }, + "filters": { + "title_tags": {{- 'collections.filters.title_tags' | t | json -}}, + "all_tags": {{- 'collections.filters.all_tags' | t | json -}} + } + }, + "contact": { + "form": { + "name": {{- 'contact.form.name' | t | json -}}, + "email": {{- 'contact.form.email' | t | json -}}, + "phone": {{- 'contact.form.phone' | t | json -}}, + "message": {{- 'contact.form.message' | t | json -}}, + "submit": {{- 'contact.form.submit' | t | json -}}, + "post_success": {{- 'contact.form.post_success' | t | json -}}, + "error_heading": {{- 'contact.form.error_heading' | t | json -}} + } + }, + "customer": { + "account": { + "title": {{- 'customer.account.title' | t | json -}}, + "details": {{- 'customer.account.details' | t | json -}}, + "view_addresses": {{- 'customer.account.view_addresses' | t | json -}}, + "return": {{- 'customer.account.return' | t | json -}} + }, + "activate_account": { + "title": {{- 'customer.activate_account.title' | t | json -}}, + "subtext": {{- 'customer.activate_account.subtext' | t | json -}}, + "password": {{- 'customer.activate_account.password' | t | json -}}, + "password_confirm": {{- 'customer.activate_account.password_confirm' | t | json -}}, + "submit": {{- 'customer.activate_account.submit' | t | json -}}, + "cancel": {{- 'customer.activate_account.cancel' | t | json -}} + }, + "addresses": { + "title": {{- 'customer.addresses.title' | t | json -}}, + "default": {{- 'customer.addresses.default' | t | json -}}, + "add_new": {{- 'customer.addresses.add_new' | t | json -}}, + "edit_address": {{- 'customer.addresses.edit_address' | t | json -}}, + "first_name": {{- 'customer.addresses.first_name' | t | json -}}, + "last_name": {{- 'customer.addresses.last_name' | t | json -}}, + "company": {{- 'customer.addresses.company' | t | json -}}, + "address1": {{- 'customer.addresses.address1' | t | json -}}, + "address2": {{- 'customer.addresses.address2' | t | json -}}, + "city": {{- 'customer.addresses.city' | t | json -}}, + "country": {{- 'customer.addresses.country' | t | json -}}, + "province": {{- 'customer.addresses.province' | t | json -}}, + "zip": {{- 'customer.addresses.zip' | t | json -}}, + "phone": {{- 'customer.addresses.phone' | t | json -}}, + "set_default": {{- 'customer.addresses.set_default' | t | json -}}, + "add": {{- 'customer.addresses.add' | t | json -}}, + "update": {{- 'customer.addresses.update' | t | json -}}, + "cancel": {{- 'customer.addresses.cancel' | t | json -}}, + "edit": {{- 'customer.addresses.edit' | t | json -}}, + "delete": {{- 'customer.addresses.delete' | t | json -}}, + "delete_confirm": {{- 'customer.addresses.delete_confirm' | t | json -}} + }, + "login": { + "title": {{- 'customer.login.title' | t | json -}}, + "email": {{- 'customer.login.email' | t | json -}}, + "password": {{- 'customer.login.password' | t | json -}}, + "forgot_password": {{- 'customer.login.forgot_password' | t | json -}}, + "sign_in": {{- 'customer.login.sign_in' | t | json -}}, + "guest_title": {{- 'customer.login.guest_title' | t | json -}}, + "guest_continue": {{- 'customer.login.guest_continue' | t | json -}} + }, + "orders": { + "title": {{- 'customer.orders.title' | t | json -}}, + "order_number": {{- 'customer.orders.order_number' | t | json -}}, + "order_number_link": {{- 'customer.orders.order_number_link' | t | json -}}, + "date": {{- 'customer.orders.date' | t | json -}}, + "payment_status": {{- 'customer.orders.payment_status' | t | json -}}, + "fulfillment_status": {{- 'customer.orders.fulfillment_status' | t | json -}}, + "total": {{- 'customer.orders.total' | t | json -}}, + "none": {{- 'customer.orders.none' | t | json -}} + }, + "order": { + "title": {{- 'customer.order.title' | t | json -}}, + "date_html": {{- 'customer.order.date_html' | t | json -}}, + "cancelled_html": {{- 'customer.order.cancelled_html' | t | json -}}, + "cancelled_reason": {{- 'customer.order.cancelled_reason' | t | json -}}, + "billing_address": {{- 'customer.order.billing_address' | t | json -}}, + "payment_status": {{- 'customer.order.payment_status' | t | json -}}, + "shipping_address": {{- 'customer.order.shipping_address' | t | json -}}, + "fulfillment_status": {{- 'customer.order.fulfillment_status' | t | json -}}, + "discount": {{- 'customer.order.discount' | t | json -}}, + "shipping": {{- 'customer.order.shipping' | t | json -}}, + "tax": {{- 'customer.order.tax' | t | json -}}, + "product": {{- 'customer.order.product' | t | json -}}, + "sku": {{- 'customer.order.sku' | t | json -}}, + "price": {{- 'customer.order.price' | t | json -}}, + "quantity": {{- 'customer.order.quantity' | t | json -}}, + "total": {{- 'customer.order.total' | t | json -}}, + "fulfilled_at_html": {{- 'customer.order.fulfilled_at_html' | t | json -}}, + "subtotal": {{- 'customer.order.subtotal' | t | json -}}, + "track_shipment": {{- 'customer.order.track_shipment' | t | json -}} + }, + "recover_password": { + "title": {{- 'customer.recover_password.title' | t | json -}}, + "email": {{- 'customer.recover_password.email' | t | json -}}, + "submit": {{- 'customer.recover_password.submit' | t | json -}}, + "cancel": {{- 'customer.recover_password.cancel' | t | json -}}, + "subtext": {{- 'customer.recover_password.subtext' | t | json -}}, + "success": {{- 'customer.recover_password.success' | t | json -}} + }, + "reset_password": { + "title": {{- 'customer.reset_password.title' | t | json -}}, + "subtext": {{- 'customer.reset_password.subtext' | t | json -}}, + "password": {{- 'customer.reset_password.password' | t | json -}}, + "password_confirm": {{- 'customer.reset_password.password_confirm' | t | json -}}, + "submit": {{- 'customer.reset_password.submit' | t | json -}} + }, + "register": { + "title": {{- 'customer.register.title' | t | json -}}, + "first_name": {{- 'customer.register.first_name' | t | json -}}, + "last_name": {{- 'customer.register.last_name' | t | json -}}, + "email": {{- 'customer.register.email' | t | json -}}, + "password": {{- 'customer.register.password' | t | json -}}, + "submit": {{- 'customer.register.submit' | t | json -}} + } + }, + "homepage": { + "general": { + "title": {{- 'homepage.general.title' | t | json -}} + }, + "onboarding": { + "product_title": {{- 'homepage.onboarding.product_title' | t | json -}}, + "product_description": {{- 'homepage.onboarding.product_description' | t | json -}}, + "collection_title": {{- 'homepage.onboarding.collection_title' | t | json -}}, + "blog_title": {{- 'homepage.onboarding.blog_title' | t | json -}}, + "blog_excerpt": {{- 'homepage.onboarding.blog_excerpt' | t | json -}}, + "blog_author": {{- 'homepage.onboarding.blog_author' | t | json -}}, + "no_content": {{- 'homepage.onboarding.no_content' | t | json -}} + } + }, + "layout": { + "navigation": { + "search": {{- 'layout.navigation.search' | t | json -}}, + "expand": {{- 'layout.navigation.expand' | t | json -}}, + "collapse": {{- 'layout.navigation.collapse' | t | json -}}, + "menu": {{- 'layout.navigation.menu' | t | json -}} + }, + "cart": { + "title": {{- 'layout.cart.title' | t | json -}}, + "items_count": { + "one": {{- 'layout.cart.items_count.one' | t | json -}}, + "other": {{- 'layout.cart.items_count.other' | t | json -}} + } + }, + "customer": { + "account": {{- 'layout.customer.account' | t | json -}}, + "log_out": {{- 'layout.customer.log_out' | t | json -}}, + "log_in": {{- 'layout.customer.log_in' | t | json -}}, + "create_account": {{- 'layout.customer.create_account' | t | json -}} + }, + "footer": { + "copyright": {{- 'layout.footer.copyright' | t | json -}}, + "all_rights_served": {{- 'layout.footer.all_rights_served' | t | json -}}, + "social_platform": {{- 'layout.footer.social_platform' | t | json -}} + } + }, + "products": { + "product": { + "regular_price": {{- 'products.product.regular_price' | t | json -}}, + "sold_out": {{- 'products.product.sold_out' | t | json -}}, + "unavailable": {{- 'products.product.unavailable' | t | json -}}, + "availability": {{- 'products.product.availability' | t | json -}}, + "on_sale": {{- 'products.product.on_sale' | t | json -}}, + "from_lowest_price_html": {{- 'products.product.from_lowest_price_html' | t | json -}}, + "sale_price": {{- 'products.product.sale_price' | t | json -}}, + "quantity": {{- 'products.product.quantity' | t | json -}}, + "add_to_cart": {{- 'products.product.add_to_cart' | t | json -}}, + "loader_label": {{- 'products.product.loader_label' | t | json -}}, + "back_to_collection": {{- 'products.product.back_to_collection' | t | json -}}, + "vendor": {{- 'products.product.vendor' | t | json -}}, + "quantity_minimum_message": {{- 'products.product.quantity_minimum_message' | t | json -}}, + "include_taxes": {{- 'products.product.include_taxes' | t | json -}}, + "shipping_policy_html": {{- 'products.product.shipping_policy_html' | t | json -}}, + "unit_price_label": {{- 'products.product.unit_price_label' | t | json -}}, + "view_cart": {{- 'products.product.view_cart' | t | json -}}, + "view_in_space": {{- 'products.product.view_in_space' | t | json -}}, + "view_in_space_label": {{- 'products.product.view_in_space_label' | t | json -}} + } + }, + "store_availability": { + "general": { + "view_store_info": {{- 'store_availability.general.view_store_info' | t | json -}}, + "check_other_stores": {{- 'store_availability.general.check_other_stores' | t | json -}}, + "pick_up_available": {{- 'store_availability.general.pick_up_available' | t | json -}}, + "pick_up_currently_unavailable": {{- 'store_availability.general.pick_up_currently_unavailable' | t | json -}}, + "pick_up_available_at_html": {{- 'store_availability.general.pick_up_available_at_html' | t | json -}}, + "pick_up_unavailable_at_html": {{- 'store_availability.general.pick_up_unavailable_at_html' | t | json -}} + } + }, + "gift_cards": { + "issued": { + "title_html": {{- 'gift_cards.issued.title_html' | t | json -}}, + "subtext": {{- 'gift_cards.issued.subtext' | t | json -}}, + "gift_card_code": {{- 'gift_cards.issued.gift_card_code' | t | json -}}, + "disabled": {{- 'gift_cards.issued.disabled' | t | json -}}, + "expired": {{- 'gift_cards.issued.expired' | t | json -}}, + "active": {{- 'gift_cards.issued.active' | t | json -}}, + "redeem_html": {{- 'gift_cards.issued.redeem_html' | t | json -}}, + "shop_link": {{- 'gift_cards.issued.shop_link' | t | json -}}, + "print": {{- 'gift_cards.issued.print' | t | json -}}, + "remaining_html": {{- 'gift_cards.issued.remaining_html' | t | json -}}, + "add_to_apple_wallet": {{- 'gift_cards.issued.add_to_apple_wallet' | t | json -}}, + "qr_image_alt": {{- 'gift_cards.issued.qr_image_alt' | t | json -}} + } + } +}{%- endcapture -%}{{- translations -}} \ No newline at end of file diff --git a/shopify/templates/list-collections.json b/shopify/templates/list-collections.json deleted file mode 100644 index 207b4a66..00000000 --- a/shopify/templates/list-collections.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "sections": { - "main": { - "type": "main-list-collections" - } - }, - "order": [ - "main" - ] -} \ No newline at end of file diff --git a/shopify/templates/list-collections.liquid b/shopify/templates/list-collections.liquid new file mode 100644 index 00000000..c438ef3f --- /dev/null +++ b/shopify/templates/list-collections.liquid @@ -0,0 +1,5 @@ +{%- comment -%} + The contents of the lists-collections.liquid template can be found in /sections/lists-collections-template.liquid +{%- endcomment -%} + +{%- section 'list-collections-template' -%} diff --git a/shopify/templates/page.about-us.json b/shopify/templates/page.about-us.json new file mode 100644 index 00000000..b9bdae82 --- /dev/null +++ b/shopify/templates/page.about-us.json @@ -0,0 +1,47 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "about-us", + "blocks": { + "d8653dcc-00ce-4937-9501-a70dfe0c76b0": { + "type": "article_item", + "settings": { + "title": "Look Mom! We made our own sweets.", + "content": "So ungefähr hat es angefangen als wir beide noch frische 6 und 11 Jahre alt waren, uns beide noch gar nicht kannten und jeder für sich zuhause in der Küche, unseren Müttern stolz unsere selbstgebackenen Torten und Süßigkeiten präsentierten. Wir sind inzwischen etwas herangewachsen, aber im Herzen noch immer diese zwei kleinen Mädels, die von ihrer eigenen Süßwaren-Company geträumt haben; die volle Freude und Euphorie etwas in der Hand gehalten haben, dass sie selbst geschaffen hatten; das lecker war und glücklich gemacht hat.\n
    \n24 Jahre später stehen wir nun hier, haben uns beide auf großen Umwegen über die Modebranche kennen gelernt und unsere ganz neue Version unseres Kindheitstraums wahr werden lassen: Süßigkeiten, die unglaublich lecker sind und kompromisslos glücklich machen." + } + }, + "9b425d9a-fb70-4cf5-8e99-bcb2b0ead54d": { + "type": "article_item", + "settings": { + "title": "Look snack industry. We found the sweet spot.", + "content": "Wir sind zwei leidenschaftliche Foodies, die unterschiedlicher nicht sein können. Snacken lieben wir beide, aber während es für Tugce die Geschmacksexplosion sein muss, sind für Magdalena die Inhaltsstoffe essenziell. Unsere beiden Welten zu vereinen, war bisher vergeblich. Und so fing unsere Reise an.\n
    \nEs war eines gemütlichen Wein-Genuss-Abends, als sich uns die Frage auftat \"Warum gibt es keine Süßigkeiten, die aus natürlichen Zutaten bestehen und gleichzeitig einfach nur 'geil' sind?\" Uns beiden war direkt klar: Da müssen wir ran! Wir machen es wahr und wagen uns auf ein neues Terrain. Wir sind MACHERINNEN und TRÄUMERINNEN zugleich. Wir haben Visionen, Ideen und Vorstellungen, die manchmal genau das bleiben. ABER! Bei TREATFULS blieben wir dran, denn wir wussten: Nicht nur wir brauchen leckere und gesunde Snacks.\n
    \nEs ging also los: Wir stürmten 24 Jahre später erneut unsere heimischen Küchen, diesmal gemeinsam und experimentierten herum - Tag und Nacht - nutzten jede freie Minute neben unseren \"normalen Jobs\", bis wir unser Produkt geschaffen hatten. Berauscht von unserem Kindheitstraum und dem natürlichen Zucker in unseren Treats, wagten wir den Sprung ins Unbekannte. \n

    \nZugegeben, die Umsetzung unserer Vision hatten wir uns etwas einfacher vorgestellt. Dennoch – oder gerade deswegen: wir lieben die Herausforderung und gaben nicht auf. Manche würden sagen, wir sind mutig. Andere halten uns für ein wenig verrückt ... Aber wir beide glauben daran, dass wir den Sweet Spot gefunden haben: Süßigkeiten, die kompromisslos glücklich machen für Süßigkeiten-Junkies, Healthy-Foodlover... und einfach jeden, der Süßigkeiten liebt. \n
    \nJetzt könnt ihr es sicherlich kaum mehr abwarten, TREATFULS zu probieren. Na dann los, hier geht’s zu unseren treats. Kommt in den Genuss von natürlichen und geilen Süßigkeiten und werdet ein Teil der Revolution!" + } + } + }, + "block_order": [ + "d8653dcc-00ce-4937-9501-a70dfe0c76b0", + "9b425d9a-fb70-4cf5-8e99-bcb2b0ead54d" + ], + "settings": { + "title": "Hey, wir sind treatfuls eine unglaublich leckere und vegane 🌱 Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies, die die Snack 🍫 Industrie revolutionieren 💪 wollen.", + "img_on_hover_first": "shopify://shop_images/about-us-prod-3x.png", + "img_on_hover_second": "shopify://shop_images/about-us-img-3x.jpg", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.adventskalender.json b/shopify/templates/page.adventskalender.json new file mode 100644 index 00000000..0c00052b --- /dev/null +++ b/shopify/templates/page.adventskalender.json @@ -0,0 +1,31 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "product_teaser_cHpidz": { + "type": "signup-with-image", + "settings": { + "title": "Das süßeste Geheimnis der Saison: unser Adventskalender", + "title_mobile": "", + "subtitle": "Melde dich zum Newsletter an und hol dir 15% Rabatt🎅✨", + "image": "shopify://shop_images/treatfuls_adventskalender_teaser.webp", + "content_title": "Setz dich jetzt auf die Warteliste für den Adventskalender!", + "content": "

    Darauf haben wir so lange gewartet – unser Traum wird wahr: Der allererste treatfuls Adventskalender ist da! Gefüllt mit 24 unwiderstehlichen, veganen Überraschungen, die nicht nur lecker sind, sondern auch gut für dich und den Planeten. 🌍✨

    Um Danke zu sagen, möchten wir unseren treuen Newsletter-Abonnent:innen etwas Besonderes schenken:


    Trag dich jetzt auf die Warteliste ein und sei unter den Ersten, die erfahren, wann der Vorverkauf startet. Als Dankeschön gibt’s für dich exklusive 15% Rabatt – nur im Pre-Access auf den Adventskalender! 😍

    Der Countdown läuft: Mitte September geht’s los! ⏰
    Sichere dir jetzt dein Stück vegane Vorfreude und feiere diesen besonderen Moment mit uns!

    ", + "klaviyo_id": "X3H7FL", + "background_color": "#275c63", + "accent_color": "#aa3e59", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "product_teaser_cHpidz" + ] +} diff --git a/shopify/templates/page.b2b-angebote.json b/shopify/templates/page.b2b-angebote.json new file mode 100644 index 00000000..223aeb74 --- /dev/null +++ b/shopify/templates/page.b2b-angebote.json @@ -0,0 +1,100 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "main-page", + "settings": { + "title": "B2B", + "subtitle": "

    Wir sind treatfuls: unsere Riegel, Balls und Spreads sind 100 % natürlich, bio, vegan, ohne raffinierten Zucker und voller Energie.

    Egal ob im Supermarkt, im Concept Store oder direkt auf dem Meetingtisch – treatfuls passen dahin, wo bewusster Genuss nicht nur ein Buzzword ist, sondern Standard.

    Bold im Design. Unverschämt gut im Geschmack. Ehrlich in der Zusammenarbeit.

    Lass uns gemeinsam den Snackmarkt aufmischen, die Regale schöner machen und zeigen, dass „better for you“ verdammt lecker sein kann.

    Klingt gut? Dann lass uns loslegen.

    ", + "subtitle_font_size": 24, + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "", + "padding_top": 20, + "padding_bottom": 40 + } + }, + "image_with_text_mY6byN": { + "type": "image-with-text", + "blocks": { + "image_with_text_KyBfe3": { + "type": "image_with_text", + "settings": { + "image": "shopify://shop_images/fashion_treatfuls_creamy_coco_kisses_sweeter_than_your_ex_1.jpg", + "title": "Office-Snacks, Geschenke und Co.", + "content": "

    treatfuls bringt Abwechslung ins Büro, in Geschenkboxen und ins Onboarding-Paket: Unsere veganen Snacks sind ideal für Teams, Kund:innen und Partner:innen – ganz ohne Kompromisse bei Geschmack oder Inhaltsstoffen. Ob als Snack-Box fürs Office, süße Aufmerksamkeit zu Weihnachten oder nachhaltige Giveaway-Lösung: treatfuls vereint Design, Qualität und Verantwortung. Bio, fair, ohne raffinierten Zucker, für Genuss, der hängen bleibt.

    ", + "button_text": "Fürs Office anfragen", + "button_url": "shopify://pages/b2b-kontakt" + } + }, + "image_with_text_pfetXG": { + "type": "image_with_text", + "settings": { + "image": "shopify://shop_images/healthier_than_your_last_relationship_treatfuls_V1.png", + "title": "Gyms, Cafés und Conceptstores", + "content": "

    Für alle, die bewussten Genuss stylish verkaufen wollen: treatfuls passt perfekt in Cafés, Fitnessstudios, Yogastudios und moderne Concept Stores.

    Unsere Snacks sehen nicht nur gut aus, sie erfüllen auch den Anspruch moderner Konsument:innen nach cleanen Zutaten, Ballaststoffreicher Ernährung, nachhaltiger Produktion und gutem Geschmack. Ob an der Theke, zum Mitnehmen oder als kleines Add-on – treatfuls fällt auf. Und bleibt im Kopf.

    ", + "button_text": "Für dein Store anfragen", + "button_url": "shopify://pages/b2b-kontakt" + } + }, + "image_with_text_YMWAXJ": { + "type": "image_with_text", + "settings": { + "image": "shopify://shop_images/treatfuls_best_date_youll_ever_have_5.jpg", + "title": "stationärer Handel", + "content": "

    Im Handel zählt, was sich abhebt. treatfuls ist das Upgrade im Snackregal: bio, vegan, mit 30% weniger Zucker, ohne Zusatzstoffe und mit auffälligem Packaging, das überzeugt.

    Unsere Produkte eignen sich für den klassischen LEH, Drogerie, genauso wie für den Biofachhandel, den Online-Shop oder das SB-Regal im Store. Dank attraktiver UVP und Rundum-Sorglos-Rezeptur sind treatfuls die richtige Wahl für alle, die neue Standards im Süßwarensortiment setzen wollen.

    ", + "button_text": "Für den Handel anfragen", + "button_url": "shopify://pages/b2b-kontakt" + } + } + }, + "block_order": [ + "image_with_text_KyBfe3", + "image_with_text_pfetXG", + "image_with_text_YMWAXJ" + ], + "name": "Image with text", + "settings": { + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "" + } + }, + "logo_list_UihVAX": { + "type": "logo-list", + "blocks": { + "logo_image_b7weHh": { + "type": "logo_image", + "settings": { + "image": "shopify://shop_images/Faire_White_Logo.png", + "link": "https://treatfuls.faire.com" + } + } + }, + "block_order": [ + "logo_image_b7weHh" + ], + "name": "Logo list", + "settings": { + "title": "treatfuls im Großhandel", + "subtitle": "

    Neukund:innen aufgepasst: 50 % Rabatt auf deine erste treatfuls-Bestellung über Faire (bis zu 150 €) – plus 1 Jahr gratis Versand. 🧡 Aber pssst… das Angebot gilt nur, wenn du über unseren Link bestellst. Los geht’s – treat your customers!

    ", + "background_color": "#2ac2bd", + "accent_color": "", + "hover_color": "" + } + } + }, + "order": [ + "main", + "image_with_text_mY6byN", + "logo_list_UihVAX" + ] +} diff --git a/shopify/templates/page.b2b-kontakt.json b/shopify/templates/page.b2b-kontakt.json new file mode 100644 index 00000000..c93afc69 --- /dev/null +++ b/shopify/templates/page.b2b-kontakt.json @@ -0,0 +1,363 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "main-page", + "disabled": true, + "settings": { + "title": "", + "subtitle": "", + "subtitle_font_size": 24, + "background_color": "", + "accent_color": "", + "hover_color": "", + "padding_top": 80, + "padding_bottom": 40 + } + }, + "contact_form_edBndX": { + "type": "contact-form", + "blocks": { + "group_BcmKFK": { + "type": "group", + "name": "Anrede", + "settings": { + "display_type": "grid", + "direction": "row", + "gap": 16, + "child_width": "25%", + "margin_top": 0, + "margin_bottom": 20 + }, + "blocks": { + "dropdown_wnxqXn": { + "type": "dropdown", + "name": "Dropdown", + "settings": { + "label": "Anrede", + "required": false + }, + "blocks": { + "option_MYcUWa": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Keine Angabe" + }, + "blocks": {} + }, + "option_EMMB4e": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Herr" + }, + "blocks": {} + }, + "option_3YEMx3": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Frau" + }, + "blocks": {} + } + }, + "block_order": [ + "option_MYcUWa", + "option_EMMB4e", + "option_3YEMx3" + ] + } + }, + "block_order": [ + "dropdown_wnxqXn" + ] + }, + "group_chTntW": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "grid", + "direction": "row", + "gap": 16, + "child_width": "1fr 1fr", + "margin_top": 0, + "margin_bottom": 20 + }, + "blocks": { + "form_input_jVcq76": { + "type": "form-input", + "name": "Vorname", + "settings": { + "type": "custom", + "label": "Vorname", + "placeholder": "Vorname", + "required": true + }, + "blocks": {} + }, + "form_input_pUtPKf": { + "type": "form-input", + "name": "Nachname", + "settings": { + "type": "custom", + "label": "Nachname", + "placeholder": "Nachname", + "required": true + }, + "blocks": {} + } + }, + "block_order": [ + "form_input_jVcq76", + "form_input_pUtPKf" + ] + }, + "group_Az7xz6": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "grid", + "direction": "row", + "gap": 16, + "child_width": "1fr 1fr", + "margin_top": 0, + "margin_bottom": 20 + }, + "blocks": { + "form_input_776jwp": { + "type": "form-input", + "name": "Firma", + "settings": { + "type": "custom", + "label": "Firma", + "placeholder": "Firma eingeben..", + "required": true + }, + "blocks": {} + }, + "dropdown_XBDVkY": { + "type": "dropdown", + "name": "Unternehmensart", + "settings": { + "label": "Unternehmensart", + "required": false + }, + "blocks": { + "option_3TyxEh": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Unternehmensart eingeben..." + }, + "blocks": {} + } + }, + "block_order": [ + "option_3TyxEh" + ] + } + }, + "block_order": [ + "form_input_776jwp", + "dropdown_XBDVkY" + ] + }, + "group_8eq9FF": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "grid", + "direction": "row", + "gap": 16, + "child_width": "1fr 1fr", + "margin_top": 0, + "margin_bottom": 20 + }, + "blocks": { + "form_input_L6k8Np": { + "type": "form-input", + "name": "Webseite", + "settings": { + "type": "custom", + "label": "Webseite", + "placeholder": "Webseite eingeben", + "required": false + }, + "blocks": {} + }, + "form_input_AWaDVi": { + "type": "form-input", + "name": "USt ID", + "settings": { + "type": "custom", + "label": "Umsatzsteuer ID", + "placeholder": "Umsatzsteuer ID eingeben...", + "required": true + }, + "blocks": {} + } + }, + "block_order": [ + "form_input_L6k8Np", + "form_input_AWaDVi" + ] + }, + "group_i9JzmG": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "flex", + "direction": "row", + "gap": 16, + "child_width": "1fr", + "margin_top": 0, + "margin_bottom": 0 + }, + "blocks": { + "dropdown_9acf8T": { + "type": "dropdown", + "name": "Land", + "settings": { + "label": "Land", + "required": true + }, + "blocks": { + "option_Edcdgy": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Deutschland" + }, + "blocks": {} + }, + "option_z4NwmG": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Schweiz" + }, + "blocks": {} + }, + "option_wAeAtq": { + "type": "_option", + "name": "Option", + "settings": { + "label": "Österreich" + }, + "blocks": {} + } + }, + "block_order": [ + "option_Edcdgy", + "option_z4NwmG", + "option_wAeAtq" + ] + }, + "form_input_mrDTwr": { + "type": "form-input", + "name": "Stadt", + "settings": { + "type": "custom", + "label": "Stadt", + "placeholder": "Stadt eingeben...", + "required": false + }, + "blocks": {} + } + }, + "block_order": [ + "dropdown_9acf8T", + "form_input_mrDTwr" + ] + }, + "group_7UHnw7": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "grid", + "direction": "row", + "gap": 16, + "child_width": "1fr 1fr", + "margin_top": 20, + "margin_bottom": 0 + }, + "blocks": { + "form_input_3X3DYL": { + "type": "form-input", + "name": "Form input", + "settings": { + "type": "email", + "label": "Email Adresse", + "placeholder": "Email Adresse eingeben", + "required": true + }, + "blocks": {} + }, + "group_jFeGRX": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "flex", + "direction": "row", + "gap": 16, + "child_width": "1fr 1fr", + "margin_top": 0, + "margin_bottom": 20 + }, + "blocks": { + "form_input_A4NxUF": { + "type": "form-input", + "name": "Anmerkung", + "settings": { + "type": "custom", + "label": "Anmerkung", + "placeholder": "Anmerkung eingeben", + "required": false + }, + "blocks": {} + } + }, + "block_order": [ + "form_input_A4NxUF" + ] + } + }, + "block_order": [ + "form_input_3X3DYL", + "group_jFeGRX" + ] + } + }, + "block_order": [ + "group_BcmKFK", + "group_chTntW", + "group_Az7xz6", + "group_8eq9FF", + "group_i9JzmG", + "group_7UHnw7" + ], + "name": "Contact form", + "settings": { + "title": "B2B Registration", + "subtitle": "

    1. Als Firmenkunde kannst Du unsere B2B-Rabatte erhalten. Damit kaufst Du unsere Produkte zu vergünstigten Preisen ein

    2. Nachdem Du Dich registriert hast, prüfen wir Deine Angaben innerhalb weniger Tage. Im Anschluss erhältst Du eine Bestätigungsmail sowie eine ausführliche Beschreibung zu der B2B-Rabattstruktur. Bitte beachte, dass die B2B-Rabatte ohne unsere Validierung noch nicht gültig sind.

    3. Nach erfolgreicher Freischaltung werden die B2B-Rabatte abhängig vom Einkaufswert stets auf Deinen Warenkorb angewandt.

    4. Registriere Dich jetzt!

    ", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "main", + "contact_form_edBndX" + ] +} diff --git a/shopify/templates/page.community.json b/shopify/templates/page.community.json new file mode 100644 index 00000000..f6838e55 --- /dev/null +++ b/shopify/templates/page.community.json @@ -0,0 +1,24 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "page-community", + "settings": { + "title": "Werde Teil und fange an zu gestalten", + "subtitle": "Denk dir einen Text aus, der später auf die Riegel gedruckt wird.", + "contact_form": "
    " + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.contact.json b/shopify/templates/page.contact.json index 736845db..f72baff5 100644 --- a/shopify/templates/page.contact.json +++ b/shopify/templates/page.contact.json @@ -1,10 +1,26 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { "main": { - "type": "main-page-contact" + "type": "page-contact", + "settings": { + "title": "hey, du hast Fragen, Ideen oder willst einfach
    was los werden?", + "subtitle": "Immer her damit. Wir freuen uns von dir zu hören - ob Feedback, Kooperationanfrage oder Listung melde dich bei uns.", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } } }, "order": [ "main" ] -} \ No newline at end of file +} diff --git a/shopify/templates/page.faq.json b/shopify/templates/page.faq.json new file mode 100644 index 00000000..f5eeba34 --- /dev/null +++ b/shopify/templates/page.faq.json @@ -0,0 +1,180 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "faq", + "blocks": { + "88bfeb12-e232-45e0-a79a-5ecaf80568b5": { + "type": "faq_item", + "settings": { + "title": "Woher bezieht ihr euren Kakao?", + "content": "Wir beziehen unseren Kakao von Zotter, einem Familienunternehmen aus Österreich, das den gesamten Herstellungsprozess von der Bohne bis zur Tafel (\"Bean to Bar\") abdeckt. Uns ist es besonders wichtig, dass unser Kakao fair gehandelt wird und höchste Qualität bietet. Zotter steht für nachhaltige und faire Arbeitsbedingungen in den Anbauländern, sodass Schokolade ein sauberes Genussgut ist, das wir mit gutem Gewissen genießen können.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "9df1bced-8623-4ef2-8cbc-8d188c99f220": { + "type": "faq_item", + "settings": { + "title": "Was bedeutet Fairtrade & \"Bean to Bar\"?", + "content": "Fairtrade bedeutet, dass die Bauern und Arbeiter in den Anbauländern faire Preise und Löhne erhalten, unter sicheren Arbeitsbedingungen arbeiten und nachhaltige Praktiken gefördert werden. \"Bean to Bar\"-Schokolade bedeutet, dass der gesamte Prozess der Schokoladenherstellung – vom Rohstoff bis zur fertigen Schokoladentafel – in einer Hand liegt. Das sichert nicht nur die Qualität, sondern garantiert auch Transparenz und Fairness in der gesamten Lieferkette.\n\nZusätzlich ist unser Schokolade von Zotter, WTFO-zertifiziert (World Fair Trade Organization). Diese Zertifizierung stellt sicher, dass strenge soziale, ökonomische und ökologische Kriterien erfüllet werden. Das bedeutet, dass unsere Schokolade nicht nur fair gehandelt, sondern auch nachhaltig und ethisch produziert ist.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "e4d77e9c-63cb-47d0-bcbc-3294423a1eea": { + "type": "faq_item", + "settings": { + "title": "Sind eure Schokoriegel wirklich vegan?", + "content": "Ja, unsere Schokoriegel sind 100% vegan. Wir verwenden keinerlei tierische Produkte und setzen stattdessen auf hochwertige, pflanzliche Zutaten.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "918472f0-71b3-4d88-a0db-89aa6d2be2a9": { + "type": "faq_item", + "settings": { + "title": "Welche Zutaten verwendet ihr in euren Schokoriegeln?", + "content": "Unsere Zutaten sind 100% bio, glutenfrei, sojafrei und 100% natürlich. Wir verzichten auf raffinierten Zucker und andere unnötige Zusatzstoffe, um euch den puren Genuss zu bieten. Wir verwenden ganze Datteln zum Süßen, was bedeutet, dass unsere Riegel voller Ballaststoffe sind und keinen Zucker-High verursachen", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_44aWrN": { + "type": "faq_item", + "settings": { + "title": "Sind Datteln besser zum süßen?", + "content": "Datteln sind unsere geheime Zutat für die perfekte Süße! Im Gegensatz zu raffiniertem Zucker bieten Datteln zahlreiche gesundheitliche Vorteile. Sie sind reich an Ballaststoffen, was die Verdauung unterstützt und einen gleichmäßigen Blutzuckerspiegel fördert. Das bedeutet, dass ihr keinen schnellen Zucker-High und den darauffolgenden Absturz erlebt, sondern eine langanhaltende Energiequelle habt.\n\nAußerdem sind Datteln vollgepackt mit Vitaminen und Mineralstoffen wie Kalium, Magnesium und Vitamin B6, die eure allgemeine Gesundheit fördern. Im Gegensatz dazu liefert raffinierter Zucker nur leere Kalorien ohne jeglichen Nährwert. Datteln bringen also nicht nur natürliche Süße, sondern auch eine Menge Nährstoffe, die euch guttun.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_hVzqHg": { + "type": "faq_item", + "settings": { + "title": "Sind eure Verpackungen umweltfreundlich?", + "content": "Unsere Verpackungen sind recycelbar, was bedeutet, dass sie zu 100% in den Kreislauf zurückgeführt und wiederverwendet werden können. Das ist zwar nicht perfekt, aber eine echt gute Lösung, um Abfall zu reduzieren und Ressourcen zu schonen. Ursprünglich haben wir auch heimkompostierbare Verpackungen ausprobiert. Leider können diese in Deutschland nicht effektiv in den Recyclingzyklus integriert werden und müssen häufig verbrannt werden, was ihrem ökologischen Nutzen entgegenwirkt​ (European Environment Agency's home page)​​ (Repaq)​.\n\nUnsere recycelbaren Verpackungen sind daher momentan die nachhaltigere Wahl, da sie in den Kreislauf zurückgeführt werden können und somit den Materialverbrauch senken. Wir achten darauf, dass unsere Produkte nicht nur lecker, sondern auch umweltfreundlich sind und setzen auf Verpackungen, die nachhaltig und ressourcenschonend sind. Aus diesem Grund verwenden wir auch die Versandkartonagen, die wir von unserer Produktion erhalten weiter für den Versand an euch- Also nicht wundern, wenn der äußere Karton etwas mitgenommen aussieht, er wurde ja auch wieder verwendet.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_zPkTNw": { + "type": "faq_item", + "settings": { + "title": "Warum sollte ich treatfuls Schokoriegel probieren?", + "content": "Unsere Schokoriegel sind nicht nur preisgekrönt im Geschmack (PETA Award als beste vegane Süßware), sondern auch das Ergebnis der Leidenschaft und Hingabe. Hinter treatfuls, stehen wir, Magda und Tugce, stecken unser Herzblut in jede Produktentwicklung und prüfen alles bis ins kleinste Detail, um die bestmöglichen Süßigkeiten zu kreieren. Unsere Süßigkeiten sollen Freude und Genuss bringen – und das komplett ohne Reue. Bei uns ist jede Zutat sorgfältig ausgewählt, jedes Rezept ausgiebig getestet und jede Verpackung durchdacht, um euch den perfekten, nachhaltigen Snack zu bieten. Lecker und nachhaltig ohne Kompromisse – das ist unser Versprechen!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_awEGBw": { + "type": "faq_item", + "settings": { + "title": "Wie kann ich sicher sein, dass eure Produkte von hoher Qualität sind?", + "content": "Unsere Produkte werden mit viel Liebe und Sorgfalt hergestellt. Durch die Zusammenarbeit mit renommierten Partnern wie Zotter und die Auswahl bester, natürlicher Zutaten stellen wir sicher, dass ihr immer die beste Qualität erhaltet. Zusätzlich sind unsere Produkte Bio-zertifiziert, was bedeutet, dass sie strengen Prüfungen unterliegen, um die höchsten ökologischen Standards zu erfüllen. Außerdem sind wir IFS (International Featured Standards) zertifiziert, was weitere Sicherheit und Qualität in der Herstellung garantiert. Ihr könnt euch also darauf verlassen, dass ihr bei uns nur das Beste bekommt.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_PwYWU7": { + "type": "faq_item", + "settings": { + "title": "Sind eure Produkte wirklich glutenfrei?", + "content": "Ja, unsere Schokoriegel sind glutenfrei. Allerdings werden in der gleichen Produktionsstätte auch glutenhaltige Produkte hergestellt. Deshalb müssen wir darauf hinweisen, dass unsere Riegel Spuren von Gluten enthalten können. Keine Sorge, zwischen jeder Produktion wird gründlich gereinigt und geprüft, um sicherzustellen, dass kein Gluten übrig bleibt", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_FqqitK": { + "type": "faq_item", + "settings": { + "title": "Warum sind eure Produkte sojafrei?", + "content": "Unsere Schokoriegel sind sojafrei, weil wir als Frauen – die treatfuls gegründet haben – besonders auf die gesundheitlichen Auswirkungen achten. Soja kann negative Einflüsse auf die Hormone haben, daher haben wir beschlossen, darauf zu verzichten.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_DffttF": { + "type": "faq_item", + "settings": { + "title": "Was ist mit dem Erythrit in eurem Schokoüberzug?", + "content": "Wir verwenden Erythrit auschließlich in unserem Schokoüberzug, da er den so cremig macht und kalorienarm ist, aber keine Sorge – es sind weniger als 2g pro Riegelpackung. Der normale empfohlene Verzehr für einen Erwachsenen liegt bei etwa 1 Gramm pro Kilogramm Körpergewicht täglich. Das bedeutet für einen durchschnittlichen Erwachsenen mit einem Gewicht von 65 kg bis 70 kg eine empfohlene Menge von 65 bis 70 Gramm Erythrit pro Tag. Unser Erythrit wird aus fermentiertem Bio-Mais hergestellt, was es zu einer natürlichen und nachhaltigen Wahl macht. Erythrit hat den Vorteil, dass es kaum Kalorien hat und den Blutzuckerspiegel nicht beeinflusst, wodurch es perfekt für eine bewusste Ernährung geeignet ist. Außerdem ist es auch für Kinder unbedenklich.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_fFEGkJ": { + "type": "faq_item", + "settings": { + "title": "Habt ihr Sonderaktionen oder Rabatte?", + "content": "Ja, wir bieten regelmäßig Sonderaktionen und limitierte Rabatte an. Meldet euch für unseren Newsletter an, um keine Angebote zu verpassen!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_nQB97K": { + "type": "faq_item", + "settings": { + "title": "Kann ich treatfuls Schokoriegel auch verschenken?", + "content": "Natürlich! Unsere Schokoriegel sind das perfekte Geschenk für jede Gelegenheit. Mit unseren witzigen Sprüchen auf der Verpackung zaubern sie jedem ein Lächeln ins Gesicht. Wir haben auch tolle Geschenkboxen mit individualisierbaren Grußkarten.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_GcHzmE": { + "type": "faq_item", + "settings": { + "title": "Wo kann ich treatfuls Schokoriegel kaufen?", + "content": "Ihr könnt unsere Schokoriegel direkt in unserem Onlineshop kaufen. Wir liefern schnell und zuverlässig, sodass ihr euren süßen Genuss bald in den Händen haltet. Außerdem findet ihr uns deutschlandweit bei Alnatura, bei Rewe national in den Riegelregalen, in ausgewählten Bio-Märkten und Edeka Filialen sowie in Budnikowsky Filialen. Ihr könnt uns auch unterstützen, indem ihr in euren Supermärkten nach unseren Riegeln fragt. So helft ihr mit, dass noch mehr Läden uns ins Sortiment aufnehmen.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_YdVAy4": { + "type": "faq_item", + "settings": { + "title": "Stimmt es, dass ihr keine Ahnung vom Food Business habt?", + "content": "Ja, das stimmt tatsächlich! Wir, Magda und Tugce, kommen ursprünglich aus der Modebranche. Warum also Schokoriegel? Naja, wir waren auf der Suche nach dem perfekten Snack – lecker, gesund und ohne schlechtes Gewissen. Als wir nichts fanden, das unseren hohen Ansprüchen genügte, beschlossen wir, einfach selbst welche zu machen. Mode und Schokolade – klingt unkonventionell, oder? Aber genau das sind wir! Unsere Reise war ein wildes Abenteuer: von der glamourösen Welt der Mode in die Küche, wo wir unzählige Rezepte ausprobiert und unsere fairen Anteile an Misserfolgen und Erfolgen erlebt haben. Mit viel Herzblut und Liebe zum Detail haben wir treatfuls erschaffen, um Freude und Genuss ohne Kompromisse zu bieten.\n\nWenn du mehr über unsere spannende Geschichte erfahren möchtest, schau doch mal hier vorbei: bei instagram @enjoytreatfuls oder hier unter about us.", + "show_ingredients": false, + "show_nutrition": false + } + } + }, + "block_order": [ + "88bfeb12-e232-45e0-a79a-5ecaf80568b5", + "9df1bced-8623-4ef2-8cbc-8d188c99f220", + "e4d77e9c-63cb-47d0-bcbc-3294423a1eea", + "918472f0-71b3-4d88-a0db-89aa6d2be2a9", + "faq_item_44aWrN", + "faq_item_hVzqHg", + "faq_item_zPkTNw", + "faq_item_awEGBw", + "faq_item_PwYWU7", + "faq_item_FqqitK", + "faq_item_DffttF", + "faq_item_fFEGkJ", + "faq_item_nQB97K", + "faq_item_GcHzmE", + "faq_item_YdVAy4" + ], + "settings": { + "title": "Häufig gestellte Fragen (FAQs)", + "subtitle": "Ihr habt gefragt – wir haben die Antworten für euch!", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.guidelines.json b/shopify/templates/page.guidelines.json new file mode 100644 index 00000000..02f5fba1 --- /dev/null +++ b/shopify/templates/page.guidelines.json @@ -0,0 +1,45 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "page-guidelines", + "blocks": { + "7d482bfa-9d2a-4518-a41c-e9d9dd2f0e88": { + "type": "guidelines_item", + "settings": { + "page_type": "imprint", + "title": "Impressum und Richtlinien", + "subtitle": "Informationen zum Impressum und anderen Richtlinien." + } + }, + "b5eb851f-5691-4766-8ddf-bccc588ea482": { + "type": "guidelines_item", + "settings": { + "page_type": "data-protection", + "title": "Datenschutz und Richtlinien", + "subtitle": "Informationen zu Datenschutz und anderen Richtlinien." + } + } + }, + "block_order": [ + "7d482bfa-9d2a-4518-a41c-e9d9dd2f0e88", + "b5eb851f-5691-4766-8ddf-bccc588ea482" + ], + "settings": { + "img_left": "shopify://shop_images/book-open-4x.png", + "img_right": "shopify://shop_images/books-4x.png" + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.jobs.json b/shopify/templates/page.jobs.json new file mode 100644 index 00000000..063bc171 --- /dev/null +++ b/shopify/templates/page.jobs.json @@ -0,0 +1,62 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "page-jobs", + "blocks": { + "jobs_item_CTHbdA": { + "type": "jobs_item", + "settings": { + "title": "New Business Development & Partnerships  (m/w/d) – Werkstudent*in oder Praktikum", + "description": "New Business Development & Partnerships (m/w/d) – \nWerkstudent*in oder Praktikum: \nDu willst treatfuls in neue Regale bringen, spannende Partner:innen begeistern – und dabei lernen, wie man ein Unternehmen operativ unterstützt und wachsen lässt? Dann bist du bei uns genau richtig! Diese Stelle verbindet das Beste aus Business Development, Sales und Admin: mitdenken, mitmachen und treatfuls nach vorne bringen.\nDas erwartet dich: Du unterstützt uns bei verschiedenen Projekten im Sales, im Business Development und im Trade-Marketing.\nStrategisches Wachstum & Kooperationen\nDu recherchierst neue Business-Potenziale, z. B. Partnerschaften & Messen\nDu identifizierst relevante Unternehmen, Brands, Events & Vertriebskanäle \nDu unterstützt bei Kooperationsanbahnungen und Follow-ups\nDu wirkst mit bei Präsentationen, Partnervorschlägen und Pitch-Decks\nDu begleitest uns bei der Vorbereitung von Events, Retail-Pitches oder Sampling-Kampagnen\nVertrieb & Sales-Admin\nDu planst und führst Kaltakquise via Mail, Telefon oder LinkedIn durch\nDu legst Kund:innen & Bestellungen in unserem System an (CRM & Excel)\nDu behältst den Überblick über offene Anfragen, Follow-ups & To-dos\nDu unterstützt bei der Angebotserstellung, Rechnungsvorbereitung & Sortimentspflege\nDu beantwortest Rückfragen zu Bestellungen, Lieferzeiten & Produkten (B2B)\nDu koordinierst Anlieferung & Lieferzeit Fenster mit Partnern\nDu hilfst bei der Koordination von POS-Materialien & Werbemitteln\nDu hilfst mit, Prozesse sauber zu dokumentieren und Sales-KPIs zu tracken\nDas bringst du mit – du musst kein Profi sein, aber Drive haben 🧠✨\nDu bist ein:e strukturierte:r Macher:in mit einem Herz für Menschen & Marken\nDu liebst es, wenn Listen abgearbeitet sind und To-dos in Bewegung kommen\nDu hast erste Erfahrung in Sales, Business Development oder Projektarbeit (gerne auch durch Uni, Startups, Ehrenamt o. Ä.)\nDu bist kommunikationsstark, arbeitest eigenverantwortlich und lösungsorientiert\nDu hast idealerweise erste Berührung mit CRM, Google Sheets oder Asana", + "button_text": "Jetzt bewerben", + "button_url": "shopify://pages/contact" + } + }, + "20563fd1-d026-4eed-b1d9-cb6a87e43b05": { + "type": "jobs_item", + "settings": { + "title": "Praktikant:in Sales & Business Development", + "description": "Angefangen als verrückte Idee und mit einer erfolgreichen Crowd-Funding Kampagne, wachsen wir jetzt über unsere Grenzen hinaus, indem wir unsere Produkte online und vor allem auch im stationären Handel anbieten. Dafür bauen wir unser Sales-Team aus, komm zu uns und hilf uns, die Supermarktregale bunter zu machen und sammle wertvolle Erfahrungen im Handel und FMCG-Bereich! Sorge dafür, dass treatfuls überall in Deutschland erhältlich ist und gewinn täglich neue Partner:innen in Super- und Bio-Märkten, Concept Stores, Cafés und im Lifestyle-Bereich.\n
    \n
    \nDeine Aufgaben
    \n•\tUnterstützung bei Akquise und Betreuung von B2B-Kund:innen und Handelspartner:innen
    \n•\tPlanung, Umsetzung und Entwicklung von Vertriebskampagnen
    \n•\tVerbesserung der Customer Journey
    \n•\tWeiterentwicklung der vertrieblichen Prozesse
    \n•\tAnsprechpartner:in für Kund:innen im Tagesgeschäft, u.a. Auftragsbearbeitung, Musterversand, Produktinformationen
    \n•\tVerantwortung für effiziente Produktversorgung und Reklamationsmanagement
    \n•\tSicherstellung der Kundenzufriedenheit und effektive Kommunikation
    \n•\tErstellung von Präsentationen, Verkaufsunterlagen, Umsatz- und Wettbewerbsanalysen
    \n\n
    \nDas bringst du mit
    \n•\t(Laufendes) Studium im Bereich Marketing, Kommunikation, Publizistik, Wirtschaft, Sprache etc. oder Gap Year zwischen Bachelor- und Master
    \n•\t Düsseldorf/Köln Umgebung oder bereit, für Praktikum nach herzukommen
    \n•\tSehr gutes Deutsch (C1) und gutes Englisch (B2)
    \n•\tPraktische Erfahrungen (idealerweise in FMCG-Branche)
    \n•\tBetriebswirtschaftliches Verständnis
    \n•\tGuter Umgang mit Google Workspace
    \n•\tInteresse für Einzelhandel, Food & Retail
    \n
    \nDiese Softskills liegen dir
    \n•\tKommunikation, Begeisterungsfähigkeit, Teamfähigkeit
    \n•\tZuverlässiger und sorgfältiger Arbeitsstil, Motivation
    \n•\tInteresse an Verantwortung und eigenständigen Projekten
    \n
    ", + "button_text": "Jetzt per Mail bewerben", + "button_url": "shopify://pages/contact" + } + }, + "0623a213-a65c-4b0e-b205-99a51d73789f": { + "type": "jobs_item", + "settings": { + "title": "Sales & Business Development", + "description": "Gestartet hat treatfuls mit der simplen Frage, wieso es eigentliche keine Süßigkeiten gibt, die richtig geil schmecken und gute Zutaten haben - was als verrückte Idee von Magdalena und Tugce bei einem gemütlichen Weinabend begann, wächst seither stetig: über die erfolgreiche Crowd-Funding Kampagne, hin zum eignen Onlineshop und über die Grenzen von Düsseldorf hinaus in den Lebensmitteleinzelhandel von Deutschland.
    \nFür die weitere Expansion im LEH brauchen wir nun deine Hilfe. Wir bauen unser Sales-Team aus und suchen nach Verkaufstalenten, die für Leckereien und einen gesunden Lebensstil brennen, die richtig Bock haben, die Supermarktregale mit gesünderen Riegeln aufzumischen und mit unseren witzigen Sprüchen auf der Verpackung, den Kund:innen, ein Lächeln ins Gesicht zaubern wollen.

    \n
    Deine Aufgaben
    \n• Eigenständige Akquise neue Supermärkte, Bio-Märkte und neue Handelspartner:innen in deiner Region\n
    \n• Recherche und Akquise weiterer potenzieller Verkaufspunkte für treatfuls\n
    \n• Führung, Verhandlung und Abwicklung von Vertragsgesprächen\n
    \n• Eigenständige Führung und Pflege wichtiger Kund:innen-und Kundenbeziehungen\n
    \n
    Diese Softskills liegen dir\n
    \n• Überzeugungstalent: mit deinem sympathischen Auftritt überzeugst du alle von unseren treatfuls und gewinnst neue Partner:innen und Fans für unsere Produkte\n
    \n• Kommunikation und Begeisterungsfähigkeit - du kannst dich nicht nur super artikulieren, sondern begeistert auch immer alle mit deinen Geschichten\n
    \n• Hartnäckigkeit und Verhandlungsgeschick - Absagen bringen dich nicht aus dem Konzept, sondern dienen dir vielmehr als Ansporn: aus einem Nein machst du stets ein Ja - und wie du dich dann darüber freust!
    \n• Zuverlässiger und sorgfältiger Arbeitsstil - wie und von wo du arbeitest ist uns egal - Hauptsache wir können uns auf dich und dein Engagement verlassen!\n
    \n• Spaß am Reisen und neue Kontakte knüpfen - sind wir ehrlich, du liebst die Straße, bist ständig unterwegs und lernst Leute kennen\n
    \n• Hands-On Mentalität und Motivation etwas Neues aufzubauen - treatfuls ist neu auf dem Markt mit dem richtigen Support kannst du die eine Person sein, die alles ins Rollen gebracht hat!
    \n• Interesse für nachhaltige und gesunde Ernährung/ Süßwaren - du snackst gerne und/ oder achtest auf die Inhaltsstoffe - dann ist treatfuls nicht nur dein neuer Lieblingssnack sondern auch der perfekte Arbeitsplatz für dich!", + "button_text": "Jetzt per Mail bewerben", + "button_url": "shopify://pages/contact" + } + } + }, + "block_order": [ + "jobs_item_CTHbdA", + "20563fd1-d026-4eed-b1d9-cb6a87e43b05", + "0623a213-a65c-4b0e-b205-99a51d73789f" + ], + "settings": { + "title": "best job you''ll ever have", + "subtitle": "Hey, wir sind Magdalena & Tugce – Gründerinnen, Snack-Loverinnen & Optimistinnen mit Vision. treatfuls ist unser Beitrag für eine bessere Snackwelt: bio, vegan, ehrlich & ohne Bullsh*t.\nUnsere Produkte schmecken nach mehr – und wir brauchen dich, um weiter zu wachsen.", + "img_left": "shopify://shop_images/flexed-biceps-4x.png", + "img_right": "shopify://shop_images/laptop-4x.png", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.json b/shopify/templates/page.json index 7ee65de9..1ded441c 100644 --- a/shopify/templates/page.json +++ b/shopify/templates/page.json @@ -1,10 +1,21 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { "main": { - "type": "main-page" + "type": "main-page", + "settings": { + } } }, "order": [ "main" ] -} \ No newline at end of file +} diff --git a/shopify/templates/page.methods.json b/shopify/templates/page.methods.json new file mode 100644 index 00000000..cc2a0735 --- /dev/null +++ b/shopify/templates/page.methods.json @@ -0,0 +1,27 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "page-methods", + "settings": { + "title": "Zahlungsarten  und Versand", + "subtitle": "Informationen zu Zahlungsarten und Versandmöglichkeiten.", + "img_left_top": "shopify://shop_images/box.png", + "img_right_top": "shopify://shop_images/money-with-wings.png", + "img_left_bottom": "shopify://shop_images/money-with-wings.png", + "img_right_bottom": "shopify://shop_images/box.png" + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.terms.json b/shopify/templates/page.terms.json new file mode 100644 index 00000000..2c39dc9d --- /dev/null +++ b/shopify/templates/page.terms.json @@ -0,0 +1,25 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "page-terms", + "settings": { + "title": "Allgemeine Geschäftsbedingungen", + "title_mobile": "Allgemeine Geschäftsbedi- ngungen", + "subtitle": "Das musst du beachten wenn du bei treatfuls Produkte bestellst.", + "img_right": "shopify://shop_images/terms-4x.png" + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/page.test-landingpage.json b/shopify/templates/page.test-landingpage.json new file mode 100644 index 00000000..922004c0 --- /dev/null +++ b/shopify/templates/page.test-landingpage.json @@ -0,0 +1,961 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "main-page", + "disabled": true, + "settings": { + "title": "", + "subtitle": "", + "subtitle_font_size": 24, + "background_color": "", + "accent_color": "", + "hover_color": "", + "padding_top": 80, + "padding_bottom": 40 + } + }, + "hero_eNmaQw": { + "type": "hero", + "name": "Hero banner", + "settings": { + "desktop_image_height": "adapt", + "mobile_image_height": "adapt", + "hide_on_mobile": true, + "vertical_alignment": "middle", + "horizontal_alignment": "center", + "max_width": "100%", + "max_width_px": 1200, + "title": "Hero banner", + "text": "

    Use overlay text to give your customers insight into your brand. Select imagery and text that relates to your style and story.

    ", + "button_label": "", + "button_link": "", + "background_color": "rgba(0,0,0,0)", + "accent_color": "rgba(0,0,0,0)", + "hover_color": "rgba(0,0,0,0)", + "show_base_triangular_line": false + } + }, + "featured_product_GbQVWw": { + "type": "featured-product", + "blocks": { + "description_TrMApc": { + "type": "description", + "settings": {} + }, + "countdown_yp9z36": { + "type": "countdown", + "settings": { + "heading": "", + "color": "", + "color_time": "", + "background_color": "" + } + }, + "price_zwAehL": { + "type": "price", + "settings": {} + }, + "buy_button_W846tk": { + "type": "buy_button", + "settings": { + "show_quantity_selector": true, + "show_price": false + } + } + }, + "block_order": [ + "description_TrMApc", + "countdown_yp9z36", + "price_zwAehL", + "buy_button_W846tk" + ], + "name": "Featured product", + "settings": { + "product": "20-x-banana-bread-energieballs-bio-vegan", + "heading": "{{ section.settings.product.title }}", + "mobile_heading": "", + "show_price": true, + "reviews_average_rating": "", + "reviews_quantity_text": "", + "background_color": "#f3587f", + "accent_color": "", + "hover_color": "" + } + }, + "advantages_BcfMf9": { + "type": "advantages", + "blocks": { + "advantage_item_8gBfw3": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "Lecker" + } + }, + "advantage_item_G8CBAM": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "Vegan" + } + }, + "advantage_item_CARaAK": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "Bio-zertifiziert" + } + }, + "advantage_item_qxe3cw": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Recyclebare Verpackung" + } + }, + "advantage_item_hy9grG": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-5-soy.png", + "text": "Ohne Soja" + } + }, + "advantage_item_XE7riB": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-6-gluten-free.png", + "text": "Ohne Gluten" + } + }, + "advantage_item_WEkgHC": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-7-sugar.png", + "text": "Ohne raffinierten Zucker" + } + }, + "advantage_item_mqdQfY": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-8-additives.png", + "text": "Ohne Zusatzstoffe" + } + } + }, + "block_order": [ + "advantage_item_8gBfw3", + "advantage_item_G8CBAM", + "advantage_item_CARaAK", + "advantage_item_qxe3cw", + "advantage_item_hy9grG", + "advantage_item_XE7riB", + "advantage_item_WEkgHC", + "advantage_item_mqdQfY" + ], + "settings": { + "hide_on_mobile": false, + "title": "nicht noch so ein Bio-Riegel…", + "subtitle": "sondern der beste Snack, an dem sich dein Gaumen zu Lebzeiten erfreuen wird*. Unsere Treats sind hergestellt aus und geschichtet mit den besten Zutaten + umrandet von Fair-Trade Schoko und eingepackt in recyclebarer Verpackung + bedruckt mit witzigen Sprüchen + kreiert mit viel Herzblut + Leidenschaft + Unmengen von Spaß.", + "background_color": "#5359e5", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + }, + "custom_section_9AEAFL": { + "type": "custom-section", + "blocks": { + "heading_kWUKzf": { + "type": "heading", + "name": "Heading", + "settings": { + "heading_text": "Heading", + "subtitle_text": "Subheading", + "margin_top": 24, + "margin_bottom": 24 + }, + "blocks": {} + }, + "group_Dc9Gp7": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "flex", + "direction": "row", + "alignment": "center", + "gap": 32, + "child_width": "100%", + "max_width_enabled": false, + "max_width": 1200, + "margin_top": 0, + "margin_bottom": 0 + }, + "blocks": { + "slider_X7fgak": { + "type": "slider", + "name": "Slider", + "settings": { + "hide_desktop": true, + "hide_mobile": false, + "loop": true, + "slides_per_view_desktop": 4, + "slides_per_view_mobile": 1, + "show_next_slide": true, + "gap": 20 + }, + "blocks": { + "slide_b3rKQL": { + "type": "slide", + "name": "Slide", + "settings": {}, + "blocks": { + "product_card_Wdtkzx": { + "type": "product-card", + "name": "Product Card", + "settings": { + "card_product": "20-x-carrot-cake-energyballs-bio-vegan", + "background_color": "#ffffff", + "text_color": "#000000" + }, + "blocks": {} + } + }, + "block_order": [ + "product_card_Wdtkzx" + ] + }, + "slide_UXkYT6": { + "type": "slide", + "name": "Slide", + "settings": {}, + "blocks": { + "product_card_BVnnPr": { + "type": "product-card", + "name": "Product Card", + "settings": { + "card_product": "20-x-banana-bread-energieballs-bio-vegan", + "background_color": "#ffffff", + "text_color": "#000000" + }, + "blocks": {} + } + }, + "block_order": [ + "product_card_BVnnPr" + ] + }, + "slide_jjKDwy": { + "type": "slide", + "name": "Slide", + "settings": {}, + "blocks": { + "product_card_CnqMpU": { + "type": "product-card", + "name": "Product Card", + "settings": { + "card_product": "20-x-weisse-schoko-erdnuss-dattelkaramell-riegel-bio-vegan", + "background_color": "#ffffff", + "text_color": "#000000" + }, + "blocks": {} + } + }, + "block_order": [ + "product_card_CnqMpU" + ] + }, + "slide_pg6biV": { + "type": "slide", + "name": "Slide", + "settings": {}, + "blocks": { + "product_card_wmWiAV": { + "type": "product-card", + "name": "Product Card", + "settings": { + "card_product": "white-covered-crunchy-hazelnut-treats-healthier-than-your-last-relationship", + "background_color": "#ffffff", + "text_color": "#000000" + }, + "blocks": {} + } + }, + "block_order": [ + "product_card_wmWiAV" + ] + } + }, + "block_order": [ + "slide_b3rKQL", + "slide_UXkYT6", + "slide_jjKDwy", + "slide_pg6biV" + ] + } + }, + "block_order": [ + "slider_X7fgak" + ] + } + }, + "block_order": [ + "heading_kWUKzf", + "group_Dc9Gp7" + ], + "name": "Custom block section", + "settings": { + "background_color": "rgba(0,0,0,0)", + "accent_color": "", + "hover_color": "", + "padding_top": 80, + "padding_bottom": 40 + } + }, + "comparison_table_dT7KWy": { + "type": "comparison-table", + "blocks": { + "table_EbWcfp": { + "type": "table", + "name": "Table", + "settings": {}, + "blocks": { + "table_row_3VeDUX": { + "type": "table-row", + "name": "Table Row", + "settings": {}, + "blocks": { + "table_cell_EdLPEn": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_bq8KLa": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "image": "shopify://shop_images/Bildschirmfoto_2025-08-26_um_15.22.54.png", + "text": "Herkömmliche Süßigkeiten", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_dPaGtF": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "image": "shopify://shop_images/Bildschirmfoto_2025-08-26_um_15.22.54.png", + "text": "Gummibärchen", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_CDQdBf": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "th", + "background_color": "#6ad4d1", + "sticky": true, + "image": "{{ closest.product.featured_image }}", + "text": "{{ closest.product.metafields.custom.short_title.value }}", + "liquid": "{%- if closest.product.has_only_default_variant -%}\n {%- assign unit_price = closest.product.variants.first.unit_price -%}\n {%- assign unit_reference = closest.product.variants.first.unit_price_measurement.reference_unit -%}\n {%- assign unit_reference_value = closest.product.variants.first.unit_price_measurement.reference_value -%}\n{%- else -%}\n {%- assign unit_price = product.unit_price -%}\n {%- assign unit_reference = product.unit_price_measurement.reference_unit -%}\n {%- assign unit_reference_value = product.unit_price_measurement.reference_value -%}\n{%- endif -%}\n\n{%- assign quantity_content = closest.product.metafields.custom.quantity_content -%}\n{%- assign weight_content = closest.product.metafields.custom.weight_content -%}\n{%- assign unit_name = closest.product.metafields.custom.unit_name -%}\n\n{% if quantity_content != blank and weight_content != blank and unit_name != blank %}\n
    \n

    {{ quantity_content }} x {{ weight_content.value | split: ' ' }} {{ unit_name }} {% if unit_price %}| {{ unit_price | money }} / {{ unit_reference_value }}{{ unit_reference }}{% endif %}

    \n
    \n {% endif %}" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_EdLPEn", + "table_cell_bq8KLa", + "table_cell_dPaGtF", + "table_cell_CDQdBf" + ] + }, + "table_row_FdtTwp": { + "type": "table-row", + "name": "Vegan", + "settings": {}, + "blocks": { + "table_cell_aTMDDn": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Vegan", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_qWj77V": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_BVHMme": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_JxzWU7": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_aTMDDn", + "table_cell_qWj77V", + "table_cell_BVHMme", + "table_cell_JxzWU7" + ] + }, + "table_row_qRweF6": { + "type": "table-row", + "name": "Bio", + "settings": {}, + "blocks": { + "table_cell_AAjPcr": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Bio", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_hxF3jG": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_nTLj3N": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_dpiL8N": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_AAjPcr", + "table_cell_hxF3jG", + "table_cell_nTLj3N", + "table_cell_dpiL8N" + ] + }, + "table_row_rjxCg9": { + "type": "table-row", + "name": "Produkttyp", + "settings": {}, + "blocks": { + "table_cell_TzTnmn": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Produkttyp", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_yDAyMi": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Riegel", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_cVqDAD": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Bärchen", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_d699NA": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "Riegel", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_TzTnmn", + "table_cell_yDAyMi", + "table_cell_cVqDAD", + "table_cell_d699NA" + ] + }, + "table_row_JkGcKx": { + "type": "table-row", + "name": "Nachhaltig", + "settings": {}, + "blocks": { + "table_cell_P9TewY": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Nachhaltig", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_LCrXgC": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_mY7zCQ": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_wABQzt": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_P9TewY", + "table_cell_LCrXgC", + "table_cell_mY7zCQ", + "table_cell_wABQzt" + ] + }, + "table_row_egiqnF": { + "type": "table-row", + "name": "Ohne Gluten", + "settings": {}, + "blocks": { + "table_cell_GHLpmM": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Ohne Gluten", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_WK3B9x": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_gayeYF": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_TUFaPV": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_GHLpmM", + "table_cell_WK3B9x", + "table_cell_gayeYF", + "table_cell_TUFaPV" + ] + }, + "table_row_ndaVMJ": { + "type": "table-row", + "name": "Ohne Zusatzstoffe", + "settings": {}, + "blocks": { + "table_cell_8GHQzx": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Ohne Zusatzstoffe", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_KEkDjp": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_6RnUHj": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_BXDkdE": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_8GHQzx", + "table_cell_KEkDjp", + "table_cell_6RnUHj", + "table_cell_BXDkdE" + ] + }, + "table_row_q9hQGQ": { + "type": "table-row", + "name": "Ohne Raffinierten Zucker", + "settings": {}, + "blocks": { + "table_cell_yKteyA": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Ohne Raffinierten Zucker", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_DweEEz": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_Rh6dGT": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_PV6BxK": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_yKteyA", + "table_cell_DweEEz", + "table_cell_Rh6dGT", + "table_cell_PV6BxK" + ] + }, + "table_row_J8iF9r": { + "type": "table-row", + "name": "Footer", + "disabled": true, + "settings": {}, + "blocks": { + "table_cell_wCg8FN": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_6magYA": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_XFtVXG": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_VxNXVe": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "", + "liquid": "\n {% form 'product', closest.product, class: 'product-form' %}\n \n \n \n \n {%- if closest.product.variants.first.available == true -%}\n {{ closest.product.price | money}} {% if closest.product.metafields.custom.preorder_date != blank %}{{ \"collections.product_card.preorder\" | t }}{% else %}{{ \"collections.product_card.add_to_cart\" | t }}{% endif %}\n {%- else -%}\n {{ \"collections.product_card.sold_out\" | t }}\n {%- endif -%}\n \n \n {% endform %}\n " + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_wCg8FN", + "table_cell_6magYA", + "table_cell_XFtVXG", + "table_cell_VxNXVe" + ] + } + }, + "block_order": [ + "table_row_3VeDUX", + "table_row_FdtTwp", + "table_row_qRweF6", + "table_row_rjxCg9", + "table_row_JkGcKx", + "table_row_egiqnF", + "table_row_ndaVMJ", + "table_row_q9hQGQ", + "table_row_J8iF9r" + ] + } + }, + "block_order": [ + "table_EbWcfp" + ], + "name": "Comparison Table", + "settings": { + "product": "20-x-banana-bread-energieballs-bio-vegan", + "title": "Du kannst dich nicht entscheiden? Hier der Vergleich", + "footer_note": "", + "background_color": "#2ac2bd", + "accent_color": "#f3587f", + "hover_color": "#dbaaeb", + "padding_top": 80, + "padding_bottom": 40 + } + }, + "image_with_text_NHKmKF": { + "type": "image-with-text", + "blocks": { + "image_with_text_EUwxUY": { + "type": "image_with_text", + "settings": { + "image": "shopify://shop_images/treatfuls_Brownie_filled.png", + "image_position": "left", + "title": "Title", + "content": "

    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

    ", + "button_text": "Button Text", + "button_url": "" + } + }, + "image_with_text_XgJXRN": { + "type": "image_with_text", + "settings": { + "image": "shopify://shop_images/treatfuls_Schultuete_mockup_V2.webp", + "image_position": "right", + "title": "Title", + "content": "

    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

    ", + "button_text": "Button Text", + "button_url": "" + } + } + }, + "block_order": [ + "image_with_text_EUwxUY", + "image_with_text_XgJXRN" + ], + "name": "Image with text", + "settings": { + "background_color": "", + "accent_color": "", + "hover_color": "", + "padding_top": 80, + "padding_bottom": 40 + } + } + }, + "order": [ + "main", + "hero_eNmaQw", + "featured_product_GbQVWw", + "advantages_BcfMf9", + "custom_section_9AEAFL", + "comparison_table_dT7KWy", + "image_with_text_NHKmKF" + ] +} diff --git a/shopify/templates/page.withdrawal.json b/shopify/templates/page.withdrawal.json new file mode 100644 index 00000000..d5191e34 --- /dev/null +++ b/shopify/templates/page.withdrawal.json @@ -0,0 +1,21 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "main": { + "type": "page-withdrawal", + "settings": { + } + } + }, + "order": [ + "main" + ] +} diff --git a/shopify/templates/password.json b/shopify/templates/password.json deleted file mode 100644 index 120aa041..00000000 --- a/shopify/templates/password.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "sections": { - "main": { - "type": "main-password" - } - }, - "order": [ - "main" - ] -} \ No newline at end of file diff --git a/shopify/templates/password.liquid b/shopify/templates/password.liquid new file mode 100644 index 00000000..fb4f84f5 --- /dev/null +++ b/shopify/templates/password.liquid @@ -0,0 +1,9 @@ +{% layout 'password' %} + +{% comment %} + The contents of the password.liquid templates can be found in /sections +{% endcomment %} + +{% section 'password-header' %} +{% section 'password-content' %} +{% section 'password-footer' %} diff --git a/shopify/templates/product.bundle.json b/shopify/templates/product.bundle.json new file mode 100644 index 00000000..e0881adf --- /dev/null +++ b/shopify/templates/product.bundle.json @@ -0,0 +1,102 @@ +{ + "sections": { + "main": { + "type": "bundle-product", + "settings": { + "background_color": "{{ product.metafields.my_fields.product_background_color.value }}", + "underline_word": "Limitierte Weihnachtsbox Aktion", + "subtitle": "für 79,80€ einkaufen + Weihnachtsbox gratis", + "reviews_average_rating": "", + "reviews_quantity_text": "", + "product_dropdown_1": "weihnachtsbox-produktauswah", + "product_dropdown_2": "weihnachtsbox-produktauswah", + "free_product": "kleine-geschenkbox-vegane-weihnachten-bio-1" + } + }, + "main_product_ingredients": { + "type": "main-product-ingredients", + "settings": { + "title": "Wir verwenden nur beste Zutaten<\/span><\/span>" + } + }, + "compare_product_reviews": { + "type": "compare-product-reviews", + "blocks": { + "text_pfjpEN": { + "type": "text", + "disabled": true, + "settings": { + "name": "", + "review_title": "", + "review_content": "" + } + }, + "aa617827-5535-4d4b-a335-b84f4c3b4b27": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "c3fbd356-cf27-49d8-ae72-878d6f919592": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "89088c16-9028-4a04-98c9-2df8e95dd102": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "b1694818-0b81-42c8-ac0e-020a9ca87756": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "3bd524cf-72c4-47af-8ff2-8b3b5f87b9a9": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + } + }, + "block_order": [ + "text_pfjpEN", + "aa617827-5535-4d4b-a335-b84f4c3b4b27", + "c3fbd356-cf27-49d8-ae72-878d6f919592", + "89088c16-9028-4a04-98c9-2df8e95dd102", + "b1694818-0b81-42c8-ac0e-020a9ca87756", + "3bd524cf-72c4-47af-8ff2-8b3b5f87b9a9" + ], + "settings": { + "title": "Eure Bewertungen", + "underline_word": "Bewertungen", + "text-box": "", + "link": "#", + "linktext": "Schreibe eine Bewertung" + } + } + }, + "order": [ + "main", + "main_product_ingredients", + "compare_product_reviews" + ] +} diff --git a/shopify/templates/product.compare.context.de.json b/shopify/templates/product.compare.context.de.json new file mode 100644 index 00000000..b0c12942 --- /dev/null +++ b/shopify/templates/product.compare.context.de.json @@ -0,0 +1,24 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "parent": "product.compare.json", + "context": { + "market": "de" + }, + "sections": { + "main": { + "settings": { + "bar_qty2": "16" + }, + "blocks": { + } + } + } +} diff --git a/shopify/templates/product.compare.json b/shopify/templates/product.compare.json new file mode 100644 index 00000000..916ecf89 --- /dev/null +++ b/shopify/templates/product.compare.json @@ -0,0 +1,128 @@ +{ + "sections": { + "main": { + "type": "compare-main-product", + "custom_css": [ + + ], + "settings": { + "background_color": "{{ section.settings.product0.metafields.my_fields.product_background_color.value }}", + "underline_word": "", + "reviews_average_rating": "", + "reviews_quantity_text": "", + "product0": "geschenkbox-bundle-weihnachtssorten-bio-vegan", + "pro_title0": "Geschenkboxen als Bundle", + "bar_qty0": "42", + "discount0": "Ersparnis: 4%", + "product1": "xmas-geschenkbox-24-stuck-alle-sorten-bio-vegan", + "pro_title1": "große x-mas Geschenkbox", + "bar_qty1": "24", + "discount1": "inkl. Weihnachtskarte", + "product2": "probierbox-alle-sorten-16-stuck-bio-vegan", + "pro_title2": "kleine Probierbox", + "bar_qty2": "16" + } + }, + "168126247459f8a605": { + "type": "apps", + "blocks": { + "3b562b00-3e58-4222-9342-db0be1d383ae": { + "type": "shopify:\/\/apps\/judge-me-reviews\/blocks\/preview_badge\/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8", + "settings": { + } + } + }, + "block_order": [ + "3b562b00-3e58-4222-9342-db0be1d383ae" + ], + "disabled": true, + "settings": { + } + }, + "main_product_ingredients": { + "type": "compare-main-product-ingredients", + "settings": { + "title": "Wir verwenden nur beste Zutaten" + } + }, + "compare_big_content": { + "type": "compare-big-content", + "settings": { + "title": "Hey, wir sind treatfuls<\/span> eine unglaublich leckere und vegane 🌱<\/span> Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies<\/span>, die die Snack 🍫<\/span> Industrie revolutionieren 💪<\/span> wollen.", + "img_on_hover_first": "shopify:\/\/shop_images\/about-us-prod-3x.png", + "img_on_hover_second": "shopify:\/\/shop_images\/about-us-img-3x.jpg" + } + }, + "compare_product_reviews": { + "type": "compare-product-reviews", + "blocks": { + "aa617827-5535-4d4b-a335-b84f4c3b4b27": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "c3fbd356-cf27-49d8-ae72-878d6f919592": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "89088c16-9028-4a04-98c9-2df8e95dd102": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "b1694818-0b81-42c8-ac0e-020a9ca87756": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "3bd524cf-72c4-47af-8ff2-8b3b5f87b9a9": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + } + }, + "block_order": [ + "aa617827-5535-4d4b-a335-b84f4c3b4b27", + "c3fbd356-cf27-49d8-ae72-878d6f919592", + "89088c16-9028-4a04-98c9-2df8e95dd102", + "b1694818-0b81-42c8-ac0e-020a9ca87756", + "3bd524cf-72c4-47af-8ff2-8b3b5f87b9a9" + ], + "settings": { + "title": "Eure Bewertungen", + "underline_word": "Bewertungen", + "text-box": "", + "link": "#", + "linktext": "Schreibe eine Bewertung" + } + } + }, + "order": [ + "main", + "168126247459f8a605", + "main_product_ingredients", + "compare_big_content", + "compare_product_reviews" + ] +} diff --git a/shopify/templates/product.context.de.json b/shopify/templates/product.context.de.json new file mode 100644 index 00000000..7aae1784 --- /dev/null +++ b/shopify/templates/product.context.de.json @@ -0,0 +1,17 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "parent": "product.json", + "context": { + "market": "de" + }, + "sections": { + } +} diff --git a/shopify/templates/product.json b/shopify/templates/product.json index ca81abb8..23d064ac 100644 --- a/shopify/templates/product.json +++ b/shopify/templates/product.json @@ -1,10 +1,918 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ { "sections": { "main": { - "type": "main-product" + "type": "main-product", + "settings": { + "reviews_average_rating": "", + "reviews_quantity_text": "", + "background_color": "{{ product.metafields.custom.background_color.value }}", + "accent_color": "{{ product.metafields.custom.accent_color.value }}", + "hover_color": "{{ product.metafields.custom.hover_color.value }}" + } + }, + "main_product_ingredients": { + "type": "main-product-ingredients", + "settings": { + "title": "Wir verwenden nur beste Zutaten", + "background_color": "{{ product.metafields.custom.accent_color.value }}", + "accent_color": "{{ product.metafields.custom.background_color.value }}" + } + }, + "advantages": { + "type": "advantages", + "blocks": { + "cd0713e6-e4ea-4e90-8cc5-54ba5f4a2756": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "Lecker" + } + }, + "e004a74c-a36a-44c7-b2a2-bd6859ece912": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "Vegan" + } + }, + "481cf990-f8c9-4949-b40c-95dfcf923edf": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "Bio-zertifiziert" + } + }, + "d45fe6f2-1704-4dc6-a123-33beb7e857b3": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Recyclebare Verpackung" + } + }, + "81513617-39d3-48cb-b383-42d5a0f019fd": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-5-soy.png", + "text": "Ohne Soja" + } + }, + "07747c04-c64f-454d-b22f-e67f32c4045d": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-6-gluten-free.png", + "text": "Ohne Gluten" + } + }, + "8581f446-2cf4-400e-ab7a-09e3a9966d9f": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-7-sugar.png", + "text": "Ohne raffinierten Zucker" + } + }, + "b0320aa1-5a6d-4909-ab2b-f306fe0e69cc": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-8-additives.png", + "text": "Ohne Zusatzstoffe" + } + } + }, + "block_order": [ + "cd0713e6-e4ea-4e90-8cc5-54ba5f4a2756", + "e004a74c-a36a-44c7-b2a2-bd6859ece912", + "481cf990-f8c9-4949-b40c-95dfcf923edf", + "d45fe6f2-1704-4dc6-a123-33beb7e857b3", + "81513617-39d3-48cb-b383-42d5a0f019fd", + "07747c04-c64f-454d-b22f-e67f32c4045d", + "8581f446-2cf4-400e-ab7a-09e3a9966d9f", + "b0320aa1-5a6d-4909-ab2b-f306fe0e69cc" + ], + "settings": { + "title": "Unsere Riegel bieten viele Vorteile", + "subtitle": "wir verwenden ausschließlich Bio-Zutaten für unsere yummy veganen Rezepturen", + "background_color": "{{ product.metafields.custom.background_color.value }}", + "accent_color": "{{ product.metafields.custom.accent_color.value }}", + "hover_color": "{{ product.metafields.custom.hover_color.value }}" + } + }, + "compare_product_reviews": { + "type": "compare-product-reviews", + "blocks": { + "text_FgLqia": { + "type": "text", + "disabled": true, + "settings": { + "name": "", + "review_title": "", + "review_content": "" + } + }, + "text_eeiGkC": { + "type": "text", + "disabled": true, + "settings": { + "name": "", + "review_title": "", + "review_content": "" + } + }, + "aa617827-5535-4d4b-a335-b84f4c3b4b27": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "c3fbd356-cf27-49d8-ae72-878d6f919592": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "89088c16-9028-4a04-98c9-2df8e95dd102": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "b1694818-0b81-42c8-ac0e-020a9ca87756": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + }, + "3bd524cf-72c4-47af-8ff2-8b3b5f87b9a9": { + "type": "text", + "disabled": true, + "settings": { + "name": "Adrianna", + "review_title": "Lorem ipsum dolor sit amet", + "review_content": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor" + } + } + }, + "block_order": [ + "text_FgLqia", + "text_eeiGkC", + "aa617827-5535-4d4b-a335-b84f4c3b4b27", + "c3fbd356-cf27-49d8-ae72-878d6f919592", + "89088c16-9028-4a04-98c9-2df8e95dd102", + "b1694818-0b81-42c8-ac0e-020a9ca87756", + "3bd524cf-72c4-47af-8ff2-8b3b5f87b9a9" + ], + "settings": { + "title": "Eure Bewertungen", + "underline_word": "Bewertungen", + "text-box": "", + "link": "#", + "linktext": "Schreibe eine Bewertung" + } + }, + "custom_section_Gtyr9y": { + "type": "custom-section", + "blocks": { + "heading_4A3bXW": { + "type": "heading", + "name": "Heading", + "settings": { + "heading_text": "Heading", + "subtitle_text": "Subheading", + "margin_top": 24, + "margin_bottom": 24 + }, + "blocks": {} + }, + "group_UxNRAr": { + "type": "group", + "name": "Group", + "settings": { + "display_type": "flex", + "direction": "row", + "alignment": "center", + "gap": 32, + "child_width": "100%", + "max_width_enabled": false, + "max_width": 1200, + "margin_top": 0, + "margin_bottom": 0 + }, + "blocks": { + "slider_WLEXhE": { + "type": "slider", + "name": "Slider", + "settings": { + "hide_desktop": true, + "hide_mobile": false, + "loop": true, + "slides_per_view_desktop": 4, + "slides_per_view_mobile": 1, + "gap": 20 + }, + "blocks": { + "slide_X3rPHK": { + "type": "slide", + "name": "Slide", + "settings": {}, + "blocks": { + "product_card_UcjzjA": { + "type": "product-card", + "name": "Product Card", + "settings": { + "card_product": "20-x-banana-bread-energieballs-bio-vegan" + }, + "blocks": {} + } + }, + "block_order": [ + "product_card_UcjzjA" + ] + }, + "slide_rqn7RN": { + "type": "slide", + "name": "Slide", + "settings": {}, + "blocks": { + "product_card_4cNczh": { + "type": "product-card", + "name": "Product Card", + "settings": { + "card_product": "20-x-banana-bread-energieballs-bio-vegan" + }, + "blocks": {} + } + }, + "block_order": [ + "product_card_4cNczh" + ] + } + }, + "block_order": [ + "slide_X3rPHK", + "slide_rqn7RN" + ] + } + }, + "block_order": [ + "slider_WLEXhE" + ] + } + }, + "block_order": [ + "heading_4A3bXW", + "group_UxNRAr" + ], + "name": "Custom block section", + "settings": { + "background_color": "rgba(0,0,0,0)", + "accent_color": "", + "hover_color": "", + "padding_top": 80, + "padding_bottom": 40 + } + }, + "comparison_table_wkiqFN": { + "type": "comparison-table", + "blocks": { + "table_y4THjW": { + "type": "table", + "name": "Table", + "settings": {}, + "blocks": { + "table_row_aFQx6n": { + "type": "table-row", + "name": "Table Row", + "settings": {}, + "blocks": { + "table_cell_bwjBFa": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_8gNKtf": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "image": "shopify://shop_images/Bildschirmfoto_2025-08-26_um_15.22.54.png", + "text": "Herkömmliche Süßigkeiten", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_XAeRRp": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "image": "shopify://shop_images/Bildschirmfoto_2025-08-26_um_15.22.54.png", + "text": "Gummibärchen", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_4hHCXj": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "th", + "background_color": "#6ad4d1", + "sticky": true, + "image": "{{ closest.product.featured_image }}", + "text": "{{ closest.product.metafields.custom.short_title.value }}", + "liquid": "{%- if product.has_only_default_variant -%}\n {%- assign unit_price = product.variants.first.unit_price -%}\n {%- assign unit_reference = product.variants.first.unit_price_measurement.reference_unit -%}\n {%- assign unit_reference_value = product.variants.first.unit_price_measurement.reference_value -%}\n{%- else -%}\n {%- assign unit_price = product.unit_price -%}\n {%- assign unit_reference = product.unit_price_measurement.reference_unit -%}\n {%- assign unit_reference_value = product.unit_price_measurement.reference_value -%}\n{%- endif -%}\n\n{%- assign quantity_content = closest.product.metafields.custom.quantity_content -%}\n{%- assign weight_content = closest.product.metafields.custom.weight_content -%}\n{%- assign unit_name = closest.product.metafields.custom.unit_name -%}\n\n{% if quantity_content != blank and weight_content != blank and unit_name != blank %}\n
    \n

    {{ quantity_content }} x {{ weight_content.value | split: ' ' }} {{ unit_name }} {% if unit_price %}| {{ unit_price | money }} / {{ unit_reference_value }}{{ unit_reference }}{% endif %}

    \n
    \n {% endif %}" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_bwjBFa", + "table_cell_8gNKtf", + "table_cell_XAeRRp", + "table_cell_4hHCXj" + ] + }, + "table_row_mLcfnY": { + "type": "table-row", + "name": "Vegan", + "settings": {}, + "blocks": { + "table_cell_EVx7iK": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Vegan", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_VDy4bj": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_zDHKRa": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_bPEpBp": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_EVx7iK", + "table_cell_VDy4bj", + "table_cell_zDHKRa", + "table_cell_bPEpBp" + ] + }, + "table_row_PY3BG8": { + "type": "table-row", + "name": "Bio", + "settings": {}, + "blocks": { + "table_cell_CzX9ch": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Bio", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_8LGaRg": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_KWcg4B": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_EBe3bV": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_CzX9ch", + "table_cell_8LGaRg", + "table_cell_KWcg4B", + "table_cell_EBe3bV" + ] + }, + "table_row_WqR3Qb": { + "type": "table-row", + "name": "Produkttyp", + "settings": {}, + "blocks": { + "table_cell_C3XVi8": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Produkttyp", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_NfB9TG": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Riegel", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_MG4gNF": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Bärchen", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_KTjg9Q": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "Riegel", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_C3XVi8", + "table_cell_NfB9TG", + "table_cell_MG4gNF", + "table_cell_KTjg9Q" + ] + }, + "table_row_QaMKkG": { + "type": "table-row", + "name": "Nachhaltig", + "settings": {}, + "blocks": { + "table_cell_tRyGRR": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Nachhaltig", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_tiFbeN": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_pt3Jam": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_6XXWc3": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_tRyGRR", + "table_cell_tiFbeN", + "table_cell_pt3Jam", + "table_cell_6XXWc3" + ] + }, + "table_row_LdrD3t": { + "type": "table-row", + "name": "Ohne Gluten", + "settings": {}, + "blocks": { + "table_cell_b999aw": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Ohne Gluten", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_cLLUyr": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_iCCzfw": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_Vigxym": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_b999aw", + "table_cell_cLLUyr", + "table_cell_iCCzfw", + "table_cell_Vigxym" + ] + }, + "table_row_nQnQYU": { + "type": "table-row", + "name": "Ohne Zusatzstoffe", + "settings": {}, + "blocks": { + "table_cell_MCBBG6": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Ohne Zusatzstoffe", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_btGAdq": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_fxApYp": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_fdTejX": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_MCBBG6", + "table_cell_btGAdq", + "table_cell_fxApYp", + "table_cell_fdTejX" + ] + }, + "table_row_AdETpc": { + "type": "table-row", + "name": "Ohne Raffinierten Zucker", + "settings": {}, + "blocks": { + "table_cell_XaTn3H": { + "type": "table-cell", + "name": "Vegan", + "settings": { + "cell_type": "th", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "Ohne Raffinierten Zucker", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_VKC3wM": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_bWTpN3": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "❌", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_aTrpJj": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "✅", + "liquid": "" + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_XaTn3H", + "table_cell_VKC3wM", + "table_cell_bWTpN3", + "table_cell_aTrpJj" + ] + }, + "table_row_kHDyEx": { + "type": "table-row", + "name": "Footer", + "settings": {}, + "blocks": { + "table_cell_aM39rf": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_DzBmBX": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_aBpiNn": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "rgba(0,0,0,0)", + "sticky": false, + "text": "", + "liquid": "" + }, + "blocks": {} + }, + "table_cell_LFepjT": { + "type": "table-cell", + "name": "Table Cell", + "settings": { + "cell_type": "td", + "background_color": "#6ad4d1", + "sticky": true, + "text": "", + "liquid": "\n {% form 'product', product, class: 'product-form' %}\n \n \n \n \n {%- if product.variants.first.available == true -%}\n {{ product.price | money}} {% if product.metafields.custom.preorder_date != blank %}{{ \"collections.product_card.preorder\" | t }}{% else %}{{ \"collections.product_card.add_to_cart\" | t }}{% endif %}\n {%- else -%}\n {{ \"collections.product_card.sold_out\" | t }}\n {%- endif -%}\n
    \n \n {% endform %}\n " + }, + "blocks": {} + } + }, + "block_order": [ + "table_cell_aM39rf", + "table_cell_DzBmBX", + "table_cell_aBpiNn", + "table_cell_LFepjT" + ] + } + }, + "block_order": [ + "table_row_aFQx6n", + "table_row_mLcfnY", + "table_row_PY3BG8", + "table_row_WqR3Qb", + "table_row_QaMKkG", + "table_row_LdrD3t", + "table_row_nQnQYU", + "table_row_AdETpc", + "table_row_kHDyEx" + ] + } + }, + "block_order": [ + "table_y4THjW" + ], + "name": "Comparison Table", + "settings": { + "product": "20-x-banana-bread-energieballs-bio-vegan", + "title": "Du kannst dich nicht entscheiden? Hier der Vergleich", + "footer_note": "", + "background_color": "#2ac2bd", + "accent_color": "#f3587f", + "hover_color": "#dbaaeb", + "padding_top": 80, + "padding_bottom": 40 + } + }, + "image_with_text_aNaUh8": { + "type": "image-with-text", + "blocks": { + "image_with_text_bNnbKW": { + "type": "image_with_text", + "settings": { + "image": "shopify://shop_images/Box_peanut_Love_bundle_NEU.webp", + "image_position": "left", + "title": "Title", + "content": "

    Content

    ", + "button_text": "Button Text", + "button_url": "" + } + } + }, + "block_order": [ + "image_with_text_bNnbKW" + ], + "name": "Image with text", + "settings": { + "background_color": "", + "accent_color": "", + "hover_color": "" + } } }, "order": [ - "main" + "main", + "main_product_ingredients", + "advantages", + "compare_product_reviews", + "custom_section_Gtyr9y", + "comparison_table_wkiqFN", + "image_with_text_aNaUh8" ] -} \ No newline at end of file +} diff --git a/shopify/templates/product.landingpages.json b/shopify/templates/product.landingpages.json new file mode 100644 index 00000000..2fb0eb2d --- /dev/null +++ b/shopify/templates/product.landingpages.json @@ -0,0 +1,440 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "advantages_DpAYct": { + "type": "advantages", + "blocks": { + "advantage_item_b3E4dj": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "24 yummy Türchen" + } + }, + "advantage_item_LKhnLL": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "kein Industriezucker + vegan" + } + }, + "advantage_item_xmLDka": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "bio-zertfiziert + natürlich" + } + }, + "advantage_item_DmdpGF": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Kalender wieder-verwendbar" + } + } + }, + "block_order": [ + "advantage_item_b3E4dj", + "advantage_item_LKhnLL", + "advantage_item_xmLDka", + "advantage_item_DmdpGF" + ], + "disabled": true, + "settings": { + "title": "Was macht unseren Kalender besonders", + "subtitle": "", + "background_color": "#275c63", + "accent_color": "#aa3e59", + "hover_color": "#f3587f" + } + }, + "product_template_fbYgEz": { + "type": "product-template", + "disabled": true, + "settings": { + "image_size": "medium", + "show_quantity_selector": false, + "show_variant_labels": true, + "show_vendor": false, + "enable_zoom": true, + "enable_payment_button": false, + "show_share_buttons": true + } + }, + "product_page_yfm8Yb": { + "type": "product-page", + "blocks": { + "description_qt6wj4": { + "type": "description", + "settings": {} + }, + "countdown_VtCQd8": { + "type": "countdown", + "disabled": true, + "settings": { + "heading": "Early Bird Sale endet in :", + "color": "#275c63", + "color_time": "#ffffff", + "background_color": "#37b7a5" + } + }, + "buy_button_MxK7PU": { + "type": "buy_button", + "disabled": true, + "settings": { + "show_quantity_selector": true, + "show_price": true + } + } + }, + "block_order": [ + "description_qt6wj4", + "countdown_VtCQd8", + "buy_button_MxK7PU" + ], + "settings": { + "heading": "Cyber Monday treats", + "mobile_heading": "Cyber Monday treats", + "show_price": true, + "reviews_average_rating": "", + "reviews_quantity_text": "", + "background_color": "{{ product.metafields.custom.background_color.value }}", + "accent_color": "{{ product.metafields.custom.accent_color.value }}", + "hover_color": "{{ product.metafields.custom.hover_color.value }}" + } + }, + "video_iTDPK9": { + "type": "video", + "disabled": true, + "settings": { + "video": "shopify://files/videos/adventskalender aufbau treatmas.mp4", + "video_mobile": "shopify://files/videos/treatmas_mobile video29.mp4", + "background_color": "#aa3e59", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + }, + "image_gallery_GH9tRD": { + "type": "image-gallery", + "blocks": { + "image_E7xyiR": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Bildschirmfoto_2024-12-02_um_13.02.25.png", + "content": "

    🎅 🎁

    ", + "content_position_y": 55, + "content_position_x": 25, + "grid_number": "1", + "column_start": "1", + "column_span": "3", + "row_start": "1", + "row_span": "2", + "column_start_mobile": "1", + "column_span_mobile": "5", + "row_start_mobile": "1", + "row_span_mobile": "2" + } + }, + "image_CHXcKq": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Bildschirmfoto_2024-12-02_um_13.05.12.png", + "content": "

    🎅 🎁

    ", + "content_position_y": 50, + "content_position_x": 50, + "grid_number": "1", + "column_start": "4", + "column_span": "6", + "row_start": "1", + "row_span": "1", + "column_start_mobile": "6", + "column_span_mobile": "7", + "row_start_mobile": "2", + "row_span_mobile": "1" + } + }, + "image_ELrtHw": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Bildschirmfoto_2024-12-02_um_13.04.05.png", + "content": "

    🎅 🎁

    ", + "content_position_y": 50, + "content_position_x": 50, + "grid_number": "1", + "column_start": "4", + "column_span": "6", + "row_start": "2", + "row_span": "1", + "column_start_mobile": "6", + "column_span_mobile": "7", + "row_start_mobile": "1", + "row_span_mobile": "1" + } + }, + "image_q7LijX": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Bildschirmfoto_2024-12-02_um_13.05.23.png", + "content": "

    🎅 🎁

    ", + "content_position_y": 50, + "content_position_x": 50, + "grid_number": "1", + "column_start": "10", + "column_span": "3", + "row_start": "1", + "row_span": "2", + "column_start_mobile": "1", + "column_span_mobile": "12", + "row_start_mobile": "3", + "row_span_mobile": "2" + } + } + }, + "block_order": [ + "image_E7xyiR", + "image_CHXcKq", + "image_ELrtHw", + "image_q7LijX" + ], + "settings": { + "heading": "Der süßeste Deal des Jahres: Cyber Monday bei treatfuls!🎄", + "show_atc_button": false, + "grid_container_quantity": "1", + "background_color": "#aa3e59", + "accent_color": "#275c63", + "hover_color": "#f3587f", + "popup_background_color": "#f3587f", + "popup_text_color": "#aa3e59" + } + }, + "advantages_AtVQrF": { + "type": "advantages", + "blocks": { + "advantage_item_RgLwwJ": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "24 yummy Türchen" + } + }, + "advantage_item_7gpaeh": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "kein Industriezucker + vegan" + } + }, + "advantage_item_rYayte": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "bio-zertfiziert + natürlich" + } + }, + "advantage_item_pzt4D6": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Kalender wieder-verwendbar" + } + } + }, + "block_order": [ + "advantage_item_RgLwwJ", + "advantage_item_7gpaeh", + "advantage_item_rYayte", + "advantage_item_pzt4D6" + ], + "disabled": true, + "settings": { + "title": "Was macht unseren Kalender besonders", + "subtitle": "", + "background_color": "#275c63", + "accent_color": "#aa3e59", + "hover_color": "#f3587f" + } + }, + "page_faq_bhJL4L": { + "type": "faq", + "blocks": { + "faq_item_Ey8e3K": { + "type": "faq_item", + "settings": { + "title": "Wann kann ich den treatfuls Adventskalender kaufen?", + "content": "🎄 Ab sofort! Der Countdown läuft, und unser limitierter Kalender ist ready to roll. Schnell sein lohnt sich, bevor alle Türchen vergeben sind!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_RbNWq3": { + "type": "faq_item", + "settings": { + "title": "Wann wird der Adventskalender versendet?", + "content": "🚚 Anfang/Mitte November flitzt dein treatfuls Kalender direkt zu dir – perfekt getimt, damit du pünktlich am 1. Dezember losnaschen kannst!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_fjwx6m": { + "type": "faq_item", + "settings": { + "title": "Kann ich meine Bestellung später noch stornieren?", + "content": "❌ Ja, aber nur bevor der Kalender gepackt wird! Danach sind die Treats bereit für die Reise – und eine Rückkehr gibt's nicht mehr.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_T3Lfyj": { + "type": "faq_item", + "settings": { + "title": "Sind die Artikel im Adventskalender auch im Shop erhältlich oder sind es nur exklusive Stücke?", + "content": "🔐 Exklusiv, Baby! Die meisten Leckereien gibt es nur in diesem Kalender. Das bedeutet: Du bekommst den ersten, vielleicht einzigen Biss!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_UVU9Uk": { + "type": "faq_item", + "settings": { + "title": "Was ist, wenn mir der Adventskalender nicht gefällt? Kann ich ihn zurückgeben?", + "content": "🙅‍♀️ Sorry, das geht leider nicht! Jeder Kalender wird extra für dich mit Liebe zusammengestellt und verpackt. Aber mal ehrlich – wer kann bei diesen Überraschungen widerstehen?", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_mFrMiH": { + "type": "faq_item", + "settings": { + "title": "Sind die Produkte im Adventskalender glutenfrei, ohne raffinierten Zucker und bio?", + "content": "🌿 Aber natürlich! Alles in unserem Kalender ist 100% glutenfrei, bio und kommt ganz ohne raffinierten Zucker aus. Das heißt: Naschen mit gutem Gewissen – ganz im treatfuls-Style!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_TXQkJk": { + "type": "faq_item", + "settings": { + "title": "Was ist das Besondere am treatfuls Adventskalender?", + "content": "✨ Neu, frech, unwiderstehlich! Er ist unser allererster Adventskalender, vollgepackt mit brandneuen Sorten, limitierter Zotter-Schokolade, einer Überraschung, die nicht essbar ist, und einem Gutschein zwischen 15 und 100 Euro! Plus: Alle Produkte sind in Originalgröße – kein Mini-Kram!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_JhBJq6": { + "type": "faq_item", + "settings": { + "title": "Gibt es eine Liste mit den Treats, die im Adventskalender enthalten sein werden?", + "content": "🤫 Nope, Spoiler sind langweilig! Lass dich überraschen – das ist doch der ganze Spaß daran, oder? Jeden Tag ein neuer Wow-Moment!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_DPb7te": { + "type": "faq_item", + "settings": { + "title": "Kann ich den Kalender auch verschenken?", + "content": "🎁 Na klar! Der treatfuls Adventskalender ist das perfekte Geschenk für jeden, der süße Überraschungen liebt. Einfach bei der Bestellung die Adresse deiner Lieblingsperson angeben, und wir kümmern uns um den Rest!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_6BDP6Q": { + "type": "faq_item", + "settings": { + "title": "Ist der Kalender nachhaltig?", + "content": "🌱 Auf jeden Fall! Unsere Verpackung ist wiederverwendbar und kann nächstes Jahr als DIY-Projekt für deinen eigenen Adventskalender genutzt werden. Kreativität kennt keine Grenzen!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_KXXnVi": { + "type": "faq_item", + "settings": { + "title": "Was kostet der Adventskalender und wie hoch ist der Wert der enthaltenen Produkte?", + "content": "💸 Der Kalender kostet 119,99 und hat einen Wert von über 130 Euro. Und das für volle 24 Tage pure treatfuls Freude!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_79W7iH": { + "type": "faq_item", + "settings": { + "title": "Gibt es eine Anleitung, wie man den Adventskalender aufbauen kann?", + "content": "📄 Ja, klar! In jedem Adventskalender liegt ein Infoblatt bei, das dir zeigt, wie du ihn auf unterschiedliche und kreative Arten aufbauen kannst. Egal ob zum Stapeln, Aufstellen oder Verstecken – du entscheidest, wie du den Kalender in Szene setzt!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_iDnQkE": { + "type": "faq_item", + "settings": { + "title": "Exklusive Rabatte nur für Adventskalender-Besitzer!", + "content": "💥 Jeden Tag ein neues Türchen, und ein geheimer QR-Code mit Rabatten, die es nur für dich gibt – gültig nur an jeweiligenTagen und nur für dich. Der süßeste Deal des Jahres!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_MXXPVk": { + "type": "faq_item", + "settings": { + "title": "Wird der Adventskalender separat zu anderen bestellten Artikeln verschickt?", + "content": "📦 ja, dein Adventskalender wird separat versendet. Damit du nicht warten musst, bis der Kalender bereit ist, werden alle anderen Produkte in deiner Bestellung sofort verschickt. Der Kalender kommt dann Anfang/Mitte November direkt hinterher!", + "show_ingredients": false, + "show_nutrition": false + } + } + }, + "block_order": [ + "faq_item_Ey8e3K", + "faq_item_RbNWq3", + "faq_item_fjwx6m", + "faq_item_T3Lfyj", + "faq_item_UVU9Uk", + "faq_item_mFrMiH", + "faq_item_TXQkJk", + "faq_item_JhBJq6", + "faq_item_DPb7te", + "faq_item_6BDP6Q", + "faq_item_KXXnVi", + "faq_item_79W7iH", + "faq_item_iDnQkE", + "faq_item_MXXPVk" + ], + "disabled": true, + "settings": { + "title": "Du hast Fragen? Hier sind die Antworten!", + "subtitle": "", + "background_color": "#aa3e59", + "accent_color": "#275c63", + "hover_color": "#f3587f" + } + }, + "page_about_us_xeLARH": { + "type": "about-us", + "settings": { + "title": "Hey, wir sind treatfuls eine unglaublich leckere und vegane 🌱 Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies, die die Snack 🍫 Industrie revolutionieren 💪 wollen.", + "background_color": "#275c63", + "accent_color": "#aa3e59", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "advantages_DpAYct", + "product_template_fbYgEz", + "product_page_yfm8Yb", + "video_iTDPK9", + "image_gallery_GH9tRD", + "advantages_AtVQrF", + "page_faq_bhJL4L", + "page_about_us_xeLARH" + ] +} diff --git a/shopify/templates/product.object-json.liquid b/shopify/templates/product.object-json.liquid new file mode 100644 index 00000000..66edcacf --- /dev/null +++ b/shopify/templates/product.object-json.liquid @@ -0,0 +1,6 @@ +{%- layout none -%} +{%- capture result -%} + {%- include 'object-product-json' with product: product, include_recharge: true -%} +{%- endcapture -%} + + diff --git a/shopify/templates/product.special.json b/shopify/templates/product.special.json new file mode 100644 index 00000000..c18dd42b --- /dev/null +++ b/shopify/templates/product.special.json @@ -0,0 +1,447 @@ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ +{ + "sections": { + "advantages_DpAYct": { + "type": "advantages", + "blocks": { + "advantage_item_b3E4dj": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "24 yummy Türchen" + } + }, + "advantage_item_LKhnLL": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "kein Industriezucker + vegan" + } + }, + "advantage_item_xmLDka": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "bio-zertfiziert + natürlich" + } + }, + "advantage_item_DmdpGF": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Kalender wieder-verwendbar" + } + } + }, + "block_order": [ + "advantage_item_b3E4dj", + "advantage_item_LKhnLL", + "advantage_item_xmLDka", + "advantage_item_DmdpGF" + ], + "disabled": true, + "settings": { + "title": "Was macht unseren Kalender besonders", + "subtitle": "", + "background_color": "#275c63", + "accent_color": "#aa3e59", + "hover_color": "#f3587f" + } + }, + "product_template_fbYgEz": { + "type": "product-template", + "disabled": true, + "settings": { + "image_size": "medium", + "show_quantity_selector": false, + "show_variant_labels": true, + "show_vendor": false, + "enable_zoom": true, + "enable_payment_button": false, + "show_share_buttons": true + } + }, + "product_page_yfm8Yb": { + "type": "product-page", + "blocks": { + "description_qt6wj4": { + "type": "description", + "settings": {} + }, + "countdown_VtCQd8": { + "type": "countdown", + "disabled": true, + "settings": { + "heading": "Early Bird Sale endet in :", + "color": "#275c63", + "color_time": "#ffffff", + "background_color": "#37b7a5" + } + }, + "buy_button_MxK7PU": { + "type": "buy_button", + "settings": { + "show_quantity_selector": true, + "show_price": true + } + } + }, + "block_order": [ + "description_qt6wj4", + "countdown_VtCQd8", + "buy_button_MxK7PU" + ], + "settings": { + "heading": "Santa, Baby… I got snacks", + "mobile_heading": "Santa, Baby… I got snacks", + "show_price": true, + "reviews_average_rating": "", + "reviews_quantity_text": "", + "background_color": "{{ product.metafields.custom.background_color.value }}", + "accent_color": "{{ product.metafields.custom.accent_color.value }}", + "hover_color": "{{ product.metafields.custom.hover_color.value }}" + } + }, + "video_iTDPK9": { + "type": "video", + "settings": { + "video": "shopify://files/videos/AK_2025_DT_NEW_WHITE.mov", + "video_mobile": "shopify://files/videos/AK_2025_mobile_NEW.MOV", + "background_color": "#823546", + "accent_color": "#2ac2bd", + "hover_color": "#f3587f" + } + }, + "image_gallery_GH9tRD": { + "type": "image-gallery", + "blocks": { + "image_E7xyiR": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Hoch1_Kopie.jpg", + "content": "

    🎅 Entdecke den Zauber des treatfuls Adventskalenders – voller Überraschungen, exklusiver Sorten und süßer Highlights für deine festliche Vorfreude!🎁

    ", + "content_position_y": 55, + "content_position_x": 25, + "grid_number": "1", + "column_start": "1", + "column_span": "3", + "row_start": "1", + "row_span": "2", + "column_start_mobile": "1", + "column_span_mobile": "5", + "row_start_mobile": "1", + "row_span_mobile": "2" + } + }, + "image_CHXcKq": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Quer3_Kopie_2.webp", + "content": "

    🎅 Entdecke den Zauber des treatfuls Adventskalenders – voller Überraschungen, exklusiver Sorten und süßer Highlights für deine festliche Vorfreude!🎁

    ", + "content_position_y": 50, + "content_position_x": 50, + "grid_number": "1", + "column_start": "4", + "column_span": "6", + "row_start": "1", + "row_span": "1", + "column_start_mobile": "6", + "column_span_mobile": "7", + "row_start_mobile": "2", + "row_span_mobile": "1" + } + }, + "image_ELrtHw": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Quer1_Kopie.webp", + "content": "

    🎅 Entdecke den Zauber des treatfuls Adventskalenders – voller Überraschungen, exklusiver Sorten und süßer Highlights für deine festliche Vorfreude!🎁

    ", + "content_position_y": 50, + "content_position_x": 50, + "grid_number": "1", + "column_start": "4", + "column_span": "6", + "row_start": "2", + "row_span": "1", + "column_start_mobile": "6", + "column_span_mobile": "7", + "row_start_mobile": "1", + "row_span_mobile": "1" + } + }, + "image_q7LijX": { + "type": "image", + "settings": { + "image": "shopify://shop_images/Hoch2_Kopie.webp", + "content": "

    🎅 Entdecke den Zauber des treatfuls Adventskalenders – voller Überraschungen, exklusiver Sorten und süßer Highlights für deine festliche Vorfreude!🎁

    ", + "content_position_y": 50, + "content_position_x": 50, + "grid_number": "1", + "column_start": "10", + "column_span": "3", + "row_start": "1", + "row_span": "2", + "column_start_mobile": "1", + "column_span_mobile": "12", + "row_start_mobile": "3", + "row_span_mobile": "2" + } + } + }, + "block_order": [ + "image_E7xyiR", + "image_CHXcKq", + "image_ELrtHw", + "image_q7LijX" + ], + "settings": { + "heading": "vegan und natürlich, so viel süßer als deine Weihnachts-erinnerungen🎄", + "show_atc_button": true, + "grid_container_quantity": "1", + "background_color": "#823546", + "accent_color": "#cc7dab", + "hover_color": "#e25478", + "popup_background_color": "#e25478", + "popup_text_color": "#aa3e59" + } + }, + "advantages_AtVQrF": { + "type": "advantages", + "blocks": { + "advantage_item_RgLwwJ": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-1-smile.png", + "text": "24 yummy Türchen" + } + }, + "advantage_item_7gpaeh": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-2-vegan.png", + "text": "kein Industriezucker + vegan" + } + }, + "advantage_item_rYayte": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-3-organic.png", + "text": "bio-zertfiziert + natürlich" + } + }, + "advantage_item_pzt4D6": { + "type": "advantage_item", + "settings": { + "image": "shopify://shop_images/img-4-packaging.png", + "text": "Kalender wieder-verwendbar" + } + } + }, + "block_order": [ + "advantage_item_RgLwwJ", + "advantage_item_7gpaeh", + "advantage_item_rYayte", + "advantage_item_pzt4D6" + ], + "settings": { + "title": "Was macht unseren Kalender besonders", + "subtitle": "", + "background_color": "#cc7dab", + "accent_color": "#e4a9bd", + "hover_color": "#f3587f" + } + }, + "page_faq_bhJL4L": { + "type": "faq", + "blocks": { + "faq_item_Ey8e3K": { + "type": "faq_item", + "settings": { + "title": "Wann kann ich den treatfuls Adventskalender kaufen?", + "content": "🎄 Ab sofort! Der Countdown läuft, und unser limitierter Kalender ist ready to roll. Schnell sein lohnt sich, bevor alle Türchen vergeben sind!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_RbNWq3": { + "type": "faq_item", + "settings": { + "title": "Wann wird der Adventskalender versendet?", + "content": "🚚 Ende Oktober/ Anfang November flitzt dein treatfuls Kalender direkt zu dir – perfekt getimt, damit du pünktlich am 1. Dezember losnaschen kannst!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_fjwx6m": { + "type": "faq_item", + "settings": { + "title": "Kann ich meine Bestellung später noch stornieren?", + "content": "❌ Ja, aber nur bevor der Kalender gepackt wird! Danach sind die treats bereit für die Reise – und eine Rückkehr gibt's nicht mehr.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_T3Lfyj": { + "type": "faq_item", + "settings": { + "title": "Sind die Artikel im Adventskalender auch im Shop erhältlich oder sind es nur exklusive Stücke?", + "content": "🔐 Exklusiv, Baby! Die meisten Leckereien gibt es nur in diesem Kalender. Das bedeutet: Du bekommst den ersten, vielleicht einzigen Biss!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_UVU9Uk": { + "type": "faq_item", + "settings": { + "title": "Was ist, wenn mir der Adventskalender nicht gefällt? Kann ich ihn zurückgeben?", + "content": "🙅‍♀️ Sorry, das geht leider nicht! Jeder Kalender wird extra für dich mit Liebe zusammengestellt und verpackt. Aber mal ehrlich – wer kann bei diesen Überraschungen widerstehen?", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_mFrMiH": { + "type": "faq_item", + "settings": { + "title": "Sind die Produkte im Adventskalender glutenfrei, ohne raffinierten Zucker und bio?", + "content": "🌿 Aber natürlich! All unsere Rezepturen sind glutenfrei, bio und kommt ganz ohne raffinierten Zucker aus. Das heißt: Naschen mit gutem Gewissen – ganz im treatfuls-Style!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_TXQkJk": { + "type": "faq_item", + "settings": { + "title": "Was ist das Besondere am treatfuls Adventskalender?", + "content": "Unser Adventskalender ist zurück und dieses Jahr steckt noch mehr Magie drin: \n9 komplett neue Produkte, die noch niemand probiert hat, dazu 4 exklusive Überraschungen, die es nur im Kalender gibt. Obendrauf wartet eine geheime Co-Creation, die in Zusammenarbeit entstanden ist, und ein Special, das nicht zum Naschen gedacht ist – aber mindestens genauso treatfuls. Und weil wir Vorfreude großschreiben, gibt’s natürlich alles in Originalgröße. Kein Mini-Kram, nur volle Portion Glück.", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_JhBJq6": { + "type": "faq_item", + "settings": { + "title": "Gibt es eine Liste mit den Treats, die im Adventskalender enthalten sein werden?", + "content": "🤫 Nope, Spoiler sind langweilig! Lass dich überraschen – das ist doch der ganze Spaß daran, oder? Jeden Tag ein neuer Wow-Moment!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_DPb7te": { + "type": "faq_item", + "settings": { + "title": "Kann ich den Kalender auch verschenken?", + "content": "🎁 Na klar! Der treatfuls Adventskalender ist das perfekte Geschenk für jeden, der süße Überraschungen liebt. Einfach bei der Bestellung die Adresse deiner Lieblingsperson angeben, und wir kümmern uns um den Rest!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_6BDP6Q": { + "type": "faq_item", + "settings": { + "title": "Ist der Kalender nachhaltig?", + "content": "🌱 Auf jeden Fall! Unsere Verpackung ist wiederverwendbar und kann nächstes Jahr als DIY-Projekt für deinen eigenen Adventskalender genutzt werden. Kreativität kennt keine Grenzen!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_KXXnVi": { + "type": "faq_item", + "disabled": true, + "settings": { + "title": "Was kostet der Adventskalender und wie hoch ist der Wert der enthaltenen Produkte?", + "content": "", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_79W7iH": { + "type": "faq_item", + "settings": { + "title": "Gibt es eine Anleitung, wie man den Adventskalender aufbauen kann?", + "content": "📄 Ja, klar! In jedem Adventskalender liegt ein Infoblatt bei, das dir zeigt, wie du ihn auf unterschiedliche und kreative Arten aufbauen kannst. Egal ob zum Stapeln, Aufstellen oder Verstecken – du entscheidest, wie du den Kalender in Szene setzt!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_iDnQkE": { + "type": "faq_item", + "settings": { + "title": "Exklusive Rabatte nur für Adventskalender-Besitzer!", + "content": "💥 Jeden Tag ein neues Türchen, und ein geheimer QR-Code mit Rabatten, die es nur für dich gibt – gültig nur an jeweiligenTagen und nur für dich. Der süßeste Deal des Jahres!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_MXXPVk": { + "type": "faq_item", + "settings": { + "title": "Wird der Adventskalender separat zu anderen bestellten Artikeln verschickt?", + "content": "📦 ja, dein Adventskalender wird separat versendet. Damit du nicht warten musst, bis der Kalender bereit ist, werden alle anderen Produkte in deiner Bestellung sofort verschickt. Der Kalender kommt dann Anfang/Mitte November direkt hinterher!", + "show_ingredients": false, + "show_nutrition": false + } + }, + "faq_item_cmNXLk": { + "type": "faq_item", + "settings": { + "title": "Was ist im Adventkalender enthalten?", + "content": "Pssst.. wir wollen nicht spoilern, aber hier sind alle Zutaten: Dattelpaste, weißer kakaobutterhaltiger Überzug (15%) (Kakaobutter, Reisdrinkpulver, Kokosnusspulver, Süßungsmittel: Erythrit, Orangenpulver), Haselnuss-Füllung (15%) (Haselnuss (42%), Dattelpulver, Cashewmus, Kakaobutter), glutenfreies Hafermehl, Haselnuss (8,4%), Dattelsirup, Mandelmus, Tapiokafaser, Chai-Gewürzmischung (1,45%) (Zimt, Ingwerpulver, Kardamom, Muskatnuss, Nelkenpulver, Korianderpulver, Piment), Kakaobutter, Meersalz, Vanilleextrakt. Dattelpaste, weißer Kakaobutterhaltiger Überzug (15%) (Kakaobutter, Reisdrinkpulver, Kokosnusspulver, Süßungsmittel: Erythrit, Orangenpulver) , Cashew-Matcha-Füllung (15%) [Cashewmus (60%), Dattelpulver, Kokosnussmilchpulver, Macadamiamus, Matchapulver (3%)], glutenfreies Hafermehl, Mandeln, Dattelsirup, Tapiokafaser, Mandelmus, Meersalz, Vanilleextrakt.(KAKAO: 60% MINDESTENS IN DER SCHOKOLADENKUVERTURE). (2X20G). \nZutaten: Dattelpaste, dunkle Schokoladenkuvertüre (15%) (Kakaomasse, Haferdrink, Kakaobutter), Haselnuss-Füllung (15%) [Haselnussmus (42%), Dattelpulver, Cashewmus, Kakaobutter], Dattelsirup, glutenfreies Hafermehl, Haselnuss (6,4%), Cashewkerne, Tapiokafaser, Mandeln, Kakaopulver, Meersalz, Vanilleextrakt. Kann Spuren von Gluten, Eiern, Milch, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Trocken lagern und vor Wärme schützen.(KAKAO: 60% MINDESTENS IN DER SCHOKOLADENKUVERTURE). (2X20G). \nZutaten: Dattelpaste, dunkle Schokoladenkuvertüre (15%) (Kakaomasse, Haferdrink, Kakaobutter), Haselnuss-Füllung (15%) [Haselnussmus (42%), Dattelpulver, Cashewmus, Kakaobutter], Dattelsirup, glutenfreies Hafermehl, Haselnuss (6,4%), Cashewkerne, Tapiokafaser, Mandeln, Kakaopulver, Meersalz, Vanilleextrakt. Kann Spuren von Gluten, Eiern, Milch, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Bio-Haselnuss-Bananen-Snackkugeln mit Haselnuss-Kakao Füllung (2x17). Zutaten: Dattel*, Hafermehl* (glutenfrei), Dattelsirup* (100% Dattel), geröstete Haselnuss (9,2%)*, gefriergetrocknete Bananen (6,2%)*, Haselnussmus (5,3%)*, Cashewmus*, Kakao* (gemahlen), Zimt*, Datteln*(gemahlen), Muskatnuss*, Salz, Vanille*. Kann Spuren von Gluten, Eiern, Milch, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Bio-Haselnuss-Karotten-Snackkugeln mit Mandel-Zimt Füllung (2x17). Zutaten: Dattel*, Hafermehl* (glutenfrei), geröstete Haselnuss (9%)*, getrocknete Karotten (7,5%)*, Cashewmus*, Dattelsirup* (Dattel, Wasser), Mandelmus (2,5%)*, Zimt (0,9%)*, Muskatnuss*, Salz, Vanille*, Zitronen Öl*, Orange*. Kann Spuren von Gluten, Eiern, Milch, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. BIO-ERDNUSS-HAFER-RIEGEL MIT DUNKLER SCHOKOLADEN-KUVERTÜRE (Kakao: 75% mindestens, in der Schokoladen-Kuvertüre). MIT SÜßUNGSMITTEL. (2 x 20g). Zutaten: Dattel*, geröstete Erdnuss* (31%), Dattelsirup*, dunkle Schokoladenkuvertüre* (9%) [Kakaomasse*,**, Süßungsmittel: Erythrit*, Kakaobutter*,**], Hafermehl* (glutenfrei) (8%), Meersalz, Vanille*. Kann Spuren von Gluten, Eiern, Milch, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Bio-Haselnuss-Cashewkerne-Riegel mit dunkler Schokoladen-Kuvertüre (mit einem Kakaoanteil von mindestens 75%). mit Süßungsmittel. (2 x 20g). ZUTATEN: Dattel*, HASELNUSS* (18%), Hafermehl (glutenfrei), dunkle Schokoladenkuvertüre* (9%) [Kakaobutter*,**, Süßungsmittel: Erythrit*, Kakaobutter*,**], geröstete CASHEWKERNE* (8%), Mandel*, Kakao gemahlen*,**, Meersalz, Vanille*. Kann Spuren von Gluten, Eiern, Milch, Erdnüssen, Schalenfrüchten, Nussschalen, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Trocken lagern und vor Wärme schützen *aus kontrolliert biologischem Anbau. **aus fairem Handel Verpackung recyclebar Bio-Haselnuss-Snackkugeln mit Haselnuss-Cashewkerne Füllung (2x17). Zutaten: Dattel*, Hafermehl* (glutenfrei), geröstete Haselnuss (14%)*, geröstete Cashewkerne (10%)*, Haselnussmus (5,6%)*, Dattelsirup* (Dattel, Wasser), Cashewmus(3,6%)*, Kakao Butter*, Salz, Vanille*. Kann Spuren von Gluten, Eiern, Milch, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Bio-Haselnuss-Cashewkerne-Riegel mit weißem Reis-Kokos-Überzug. mit Süßungsmittel. (2 x 20g). ZUTATEN: Dattel*, HASELNUSS* (18%), Hafermehl (glutenfrei), Reis-Kokos-Überzug* (9%): [Kakaobutter*,**, Reisdrinkpulver*(Reis*, Sonnenblumenöl*), Kokosnussmilchpulver*, Süßungsmittel: Erythrit*, Orangenpulver* (Orangensaftkonzentrat*, Reismehl*)], geröstete CASHEWKERNE* (8%), Mandel*, Meersalz, Vanille*. Kann Spuren von Gluten, Eiern, Milch, Erdnüssen, Schalenfrüchten, Sulfiten, Sesam und/oder daraus hergestellten Produkten enthalten. Trocken lagern und vor Wärme schützen. *aus kontrolliert biologischem Anbau. **aus fairem Handel Verpackung recyclebar BIO-ERDNUSS-HAFER-RIEGEL MIT WEIßEM REIS-KOKOS ÜBERZUG. MIT SÜßUNGSMITTEL. (2 x 20g). Zutaten: Dattelpaste*, geröstete Erdnuss* (29%), Reis-Kokos Überzug* (13%) [Kakaobutter*,**, Reisdrinkpulver (Reis*, Sonnenblumenöl*), Kokosnusspulver, Orangenpulver*(Orangen*, Reismehl*),Süßungsmittel: Erythrit*], Dattelkonzentrat*(100% Datteln)*, Hafermehl*(glutenfrei) (7%), Meersalz, Vanille*.", + "show_ingredients": false, + "show_nutrition": false + } + } + }, + "block_order": [ + "faq_item_Ey8e3K", + "faq_item_RbNWq3", + "faq_item_fjwx6m", + "faq_item_T3Lfyj", + "faq_item_UVU9Uk", + "faq_item_mFrMiH", + "faq_item_TXQkJk", + "faq_item_JhBJq6", + "faq_item_DPb7te", + "faq_item_6BDP6Q", + "faq_item_KXXnVi", + "faq_item_79W7iH", + "faq_item_iDnQkE", + "faq_item_MXXPVk", + "faq_item_cmNXLk" + ], + "settings": { + "title": "Du hast Fragen? Hier sind die Antworten!", + "subtitle": "", + "background_color": "#aa3e59", + "accent_color": "#275c63", + "hover_color": "#f3587f" + } + }, + "page_about_us_xeLARH": { + "type": "about-us", + "settings": { + "title": "Hey, wir sind treatfuls eine unglaublich leckere und vegane 🌱 Snack-Company aus Düsseldorf. Wir, das sind zwei leidenschaftliche Foodies, die die Snack 🍫 Industrie revolutionieren 💪 wollen.", + "background_color": "#cc7dab", + "accent_color": "#aa3e59", + "hover_color": "#f3587f" + } + } + }, + "order": [ + "advantages_DpAYct", + "product_template_fbYgEz", + "product_page_yfm8Yb", + "video_iTDPK9", + "image_gallery_GH9tRD", + "advantages_AtVQrF", + "page_faq_bhJL4L", + "page_about_us_xeLARH" + ] +} diff --git a/shopify/templates/search.json b/shopify/templates/search.json index 391c750a..2800f8e9 100644 --- a/shopify/templates/search.json +++ b/shopify/templates/search.json @@ -1,10 +1,43 @@ -{ +/* + * ------------------------------------------------------------ + * IMPORTANT: The contents of this file are auto-generated. + * + * This file may be updated by the Shopify admin theme editor + * or related systems. Please exercise caution as any changes + * made to this file may be overwritten. + * ------------------------------------------------------------ + */ + { "sections": { - "main": { - "type": "main-search" + "f507b3a2-8d74-41d4-a1c9-d3dc0f20e0ee": { + "type": "collection", + "disabled": true, + "settings": { + "title": "", + "collection": "produkte", + "items_per_page": 48, + "show_vendor": false, + "show_view_all": false, + "background_color": "#2ac2bd", + "accent_color": "#f3587f", + "hover_color": "#dbaaeb" + } + }, + "main_search_YNrPWF": { + "type": "main-search", + "name": "Main search", + "settings": { + "items_per_page": 48, + "show_vendor": false, + "show_view_all": false, + "background_color": "#2ac2bd", + "accent_color": "#f3587f", + "hover_color": "#dbaaeb" + } } }, "order": [ - "main" + "f507b3a2-8d74-41d4-a1c9-d3dc0f20e0ee", + "main_search_YNrPWF" ] -} \ No newline at end of file +} diff --git a/src/css/_base/_base.scss b/src/css/_base/_base.scss new file mode 100644 index 00000000..608263ce --- /dev/null +++ b/src/css/_base/_base.scss @@ -0,0 +1,348 @@ +@import "reset-styles"; +@import "typography"; + +* { + outline: none; + box-sizing: border-box; +} + +html, +body { + background-color: #fff; + font-family: $font-primary, sans-serif; + scroll-behavior: smooth; + overflow-x: hidden; +} + +body { + display: flex; + flex-direction: column; + min-height: 100vh; + + #shopify-section-footer { + margin-top: auto; + } +} + +.content { + flex: 1 0 auto; +} + +.shopify-section { + transition: all 0.25s ease-in-out; +} + +.shopify-section:not(.shopify-section-group-header-group):not(#shopify-section-announcement-bar):not(#shopify-section-header):not(#shopify-section-footer) { + background-color: var(--section-background-color); +} + +.shopify-section:not(.shopify-section-group-header-group):not(#shopify-section-announcement-bar):not(#shopify-section-header):not(#shopify-section-footer) .button::after { + background-color: var(--section-hover-color); +} + +.shopify-section .base-triangular-line { + color: var(--section-background-color); +} + +.shopify-section:not(.shopify-section-group-header-group):not(#shopify-section-announcement-bar):not(#shopify-section-header):not(#shopify-section-footer) .button::before, +.shopify-section:not(.shopify-section-group-header-group):not(#shopify-section-announcement-bar):not(#shopify-section-header):not(#shopify-section-footer) .title-bg > span::before { + background-color: var(--section-accent-color); +} + +#shopify-section-header { + background-color: var(--header-background-color); + position: relative; +} + +#shopify-section-footer { + background-color: var(--footer-background-color); +} + +.header__logo-wrapper { + color: var(--header-accent-color); +} + +.footer__logo { + color: var(--footer-accent-color); +} + +.visually-hidden, +.hide { + position: absolute; + overflow: hidden; + clip: rect(0 0 0 0); + width: 1px; + height: 1px; + margin: -1px; +} + +picture { + border-radius: var(--border-radius); + img { + filter: blur(0); + transition-property: filter; + transition-duration: 0.3s; + } +} + +img { + border-radius: var(--border-radius); +} + +.lazy { + img { + // width: 100%; // may be need remove/rework this solution + filter: blur(10px); + } +} + +.no-scroll { + position: relative; + overflow: hidden; +} + +.base-triangular-line, .top-triangular-line { + position: absolute; + width: 100%; + background-color: transparent; + transition: all .25s ease-in-out; + color: transparent; + left: 0; + z-index: 1; +} + +.base-triangular-line { + transform: rotate(180deg); +} + +.top-triangular-line { + transform: translateY(-100%); + top: 0.5px; +} + +svg.icon-triangular-line { + display: flex; + width: 100%; + height: 100%; + stroke-width: 2px; + margin-bottom: -2px; + + @media #{$xl} { + margin-bottom: -1px; + } + + path { + stroke: currentColor; + } +} + +.container { + width: 100%; + margin: 0 auto; + padding-left: 32px; + padding-right: 32px; + + &.container--xs { + max-width: 500px; + } + + &.container--sm { + max-width: 736px; + } + + &.container--md { + max-width: 970px; + } + + &.container--lg { + max-width: 1200px; + } + + @media #{$m-xxl} { + &.container--lg { + max-width: 900px; + } + + &.container--md { + max-width: 768px; + } + + &.container--sm { + max-width: 490px; + padding-left: 16px; + padding-right: 16px; + } + + &.container--xs { + max-width: 300px; + } + } + + @media #{$m-l} { + padding-left: 16px; + padding-right: 16px; + } + + @media #{$no-fw} { + &.container--xs { + max-width: 20vw; + } + + &.container--sm { + max-width: 34vw; + } + + &.container--md { + max-width: 50vw; + } + + &.container--lg { + max-width: 70vw; + } + } + + &.container--two-columns { + @media #{$no-m} { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 8rem; + } + } +} + +.content-wrapper { + position: relative; + margin: 0 auto; + padding-top: 120px; + padding-bottom: 80px; + + @media #{$m-xxl} { + padding-top: 60px; + padding-bottom: 40px; + } +} + +.shopify-section:nth-of-type(2) .content-wrapper { + padding-top: 20px !important; + + @media #{$m-xxl} { + padding-top: 20px !important; + } +} + +.row { + display: flex; + flex-wrap: wrap; +} + +.opacity-0 { + opacity: 0; +} + +.sr-only { + position: absolute !important; + overflow: hidden !important; + width: 1px !important; + height: 1px !important; + margin: -1px !important; + padding: 0 !important; + border: 0 !important; + clip: rect(1px, 1px, 1px, 1px) !important; + clip-path: inset(50%) !important; + white-space: nowrap !important; + + &.sr-only-focusable:focus, + &.sr-only-focusable:active { + overflow: visible !important; + width: auto !important; + height: auto !important; + margin: auto !important; + clip: auto !important; + clip-path: none !important; + white-space: normal !important; + } +} + +.triangular-balance { + padding-top: 100px !important; + + @media #{$m-xxl} { + padding-top: 40px !important + } +} + +tool-tip { + position: absolute; + opacity: 0; + visibility: hidden; + transition: opacity 0.3s ease; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + pointer-events: none; +} + +.image-link-wrapper { + display: block; + position: absolute; + top: 0; + height: 100%; + width: 100%; +} +.link { + color: inherit; + text-decoration: none; + background: transparent; + border: none; + outline: none; + cursor: pointer; + color: rgb(var(--color-text)); + transition: all 0.3s ease-in-out; + + &:hover, + &:focus { + color: inherit; + text-decoration: none; + } + + &:active { + outline: none; + } +} + +span { + color: rgb(var(--color-text)); +} + +a.button { + text-decoration: none !important; + text-align: center; +} + +.shopify-section:has(.page) { + margin-bottom: -1px; +} + +.text--strong { + font-weight: 600 !important; +} + +.text--underline { + text-decoration: underline; +} + +.shopify-block { + width: 100%; +} + +.heading { + color: rgb(var(--color-text)); +} + +.text--subdued { + color: rgba(var(--color-text), 0.5); +} + +.input__label { + font-size: 20px; +} \ No newline at end of file diff --git a/src/css/_base/_reset-styles.scss b/src/css/_base/_reset-styles.scss new file mode 100644 index 00000000..17f4ba5b --- /dev/null +++ b/src/css/_base/_reset-styles.scss @@ -0,0 +1,346 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) + */ + + html, + body, + div, + span, + applet, + object, + iframe, + h1, + h2, + h3, + h4, + h5, + h6, + p, + blockquote, + pre, + a, + abbr, + acronym, + address, + big, + cite, + code, + del, + dfn, + em, + img, + ins, + kbd, + q, + s, + samp, + small, + strike, + strong, + sub, + sup, + tt, + var, + b, + u, + i, + center, + dl, + dt, + dd, + ol, + ul, + li, + fieldset, + form, + label, + legend, + table, + caption, + tbody, + tfoot, + thead, + tr, + th, + td, + article, + aside, + canvas, + details, + embed, + figure, + figcaption, + footer, + header, + hgroup, + menu, + nav, + output, + ruby, + section, + summary, + time, + mark, + audio, + video { + margin: 0; + padding: 0; + border: 0; + vertical-align: baseline; + font-size: 100%; + } + + ol, + ul { + list-style: none; + } + + table { + border-collapse: collapse; + border-spacing: 0; + } + + /** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + + html { + line-height: 1.15; + + /* 1 */ + -webkit-text-size-adjust: 100%; + + /* 2 */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + //can fix problem with font-weight fonts differents Win/IOs + } + + img { + max-width: 100%; + height: auto; + } + + /** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + hr { + /* 1 */ + overflow: visible; + + /* 1 */ + height: 0; + box-sizing: content-box; + + /* 2 */ + } + + /** + * Remove the gray background on active links in IE 10. + */ + + a { + background-color: transparent; + -webkit-tap-highlight-color: transparent; + + //remove blue bg on touch devices + } + + /** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + + b, + strong { + font-weight: bolder; + } + + /** + * Add the correct font size in all browsers. + */ + + small { + font-size: 80%; + } + + /** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + + sub, + sup { + position: relative; + vertical-align: baseline; + font-size: 75%; + line-height: 0; + } + + sub { + bottom: -0.25em; + } + + sup { + top: -0.5em; + } + + /* Forms + ========================================================================== */ + + /** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + + button, + input, + optgroup, + select, + textarea { + /* 1 */ + margin: 0; + font-family: inherit; + + /* 1 */ + font-size: 100%; + + /* 1 */ + line-height: 1.15; + + /* 2 */ + } + + /** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + + button, + input[type="submit"] { + border: none; + cursor: pointer; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + } + + button, + input { + /* 1 */ + overflow: visible; + } + + /** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + + button, + select { + /* 1 */ + text-transform: none; + } + + /** + * Remove the inner border and padding in Firefox. + */ + + button::-moz-focus-inner, + [type="button"]::-moz-focus-inner, + [type="reset"]::-moz-focus-inner, + [type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; + } + + /** + * Restore the focus styles unset by the previous rule. + */ + + button:-moz-focusring, + [type="button"]:-moz-focusring, + [type="reset"]:-moz-focusring, + [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; + } + + input[type="search"]::-webkit-search-cancel-button, + input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; + } + + /** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + + [type="checkbox"], + [type="radio"] { + /* 1 */ + padding: 0; + box-sizing: border-box; + + /* 2 */ + } + + /** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + + [type="number"]::-webkit-inner-spin-button, + [type="number"]::-webkit-outer-spin-button { + height: auto; + } + + /** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + + [type="search"] { + -webkit-appearance: textfield; + + /* 1 */ + outline-offset: -2px; + + /* 2 */ + } + + /** + * Remove the inner padding in Chrome and Safari on macOS. + */ + + [type="search"]::-webkit-search-decoration { + -webkit-appearance: none; + } + + /** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + + ::-webkit-file-upload-button { + -webkit-appearance: button; + + /* 1 */ + font: inherit; + + /* 2 */ + } + + /** + * Add the correct display in IE 10+. + */ + + template { + display: none; + } + + [hidden] { + display: none; + } + \ No newline at end of file diff --git a/src/css/_base/_typography.scss b/src/css/_base/_typography.scss new file mode 100644 index 00000000..7dcbbe7c --- /dev/null +++ b/src/css/_base/_typography.scss @@ -0,0 +1,339 @@ +//typography: base styles for fonts, p, a, standard h1, h2 ... +$font-primary: "Founders Grotesk", sans-serif; + +body { + font-size: 16px; + + @media #{$no-fw} { + font-size: 1.3vw; + } +} + +h1, +.h1, +h2, +.h2, +h3, +.h3, +h4, +.h4, +h5, +.h5, +h6, +.h6 { + line-height: 1; + text-decoration: none; + + &.mb-15 { + margin-bottom: 15px; + } +} + +h1, +.h1 { + font-size: 64px; + + @media #{$no-fw} { + font-size: 3vw; + } + + @media #{$m-l} { + font-size: 40px; + } +} + +h2, +.h2 { + font-size: 40px; +} + +h3, +.h3 { + font-size: 24px; + + @media #{$no-fw} { + font-size: 1.5vw; + } +} + +.title-wrapper { + display: flex; + flex-direction: column; + align-items: center; + max-width: 670px; + margin: 0 auto; + padding-bottom: 80px; + text-align: center; + padding-left: 16px; + padding-right: 16px; + + &.title-wrapper--xs { + max-width: 500px; + } + + &.title-wrapper--sm { + max-width: 736px; + } + + &.title-wrapper--md { + max-width: 970px; + } + + &.title-wrapper--lg { + max-width: 1200px; + } + + @media #{$m-xxl} { + &.title-wrapper--lg { + max-width: 900px; + } + + &.title-wrapper--md { + max-width: 768px; + } + + &.title-wrapper--sm { + max-width: 490px; + } + + &.title-wrapper--xs { + max-width: 300px; + } + } + + @media #{$no-fw} { + &.title-wrapper--xs { + max-width: 20vw; + } + + &.title-wrapper--sm { + max-width: 34vw; + } + + &.title-wrapper--md { + max-width: 50vw; + } + + &.title-wrapper--lg { + max-width: 70vw; + } + } + + .title-wrapper__title { + padding-bottom: 12px; + color: #ffffff; + } + + .title-wrapper__subtitle { + max-width: 438px; + font-size: 24px; + font-weight: 400; + color: #ffffff; + line-height: 1.5; + + &.title-wrapper__subtitle--sm { + max-width: none; + font-size: 16px; + line-height: 1.5; + + br { + content: ""; + display: block !important; + margin-bottom: 25px !important; + } + } + } + + @media #{$m-xxl} { + max-width: 60vw; + padding-bottom: 20px; + } + + @media #{$m-xl} { + max-width: 70vw; + } + + @media #{$m-l} { + max-width: none; + } + + @media #{$no-fw} { + max-width: 40vw; + padding-bottom: 2vw; + + .title-wrapper__title { + padding-bottom: 2vw; + } + + .title-wrapper__subtitle { + max-width: 70%; + font-size: 1.5vw; + line-height: 1.3; + + &.title-wrapper__subtitle--sm { + font-size: 1vw; + } + } + } +} + +.title-bg { + font-size: 64px; + line-height: 1; + color: #ffffff; + + > span { + position: relative; + display: inline-block; + z-index: 1; + + &::before { + content: ""; + position: absolute; + top: 22px; + left: -5px; + z-index: -1; + display: block; + width: 104%; + height: 72%; + transition: background-color 0.25s ease-in; + } + + > span { + position: relative; + z-index: 1; + } + } + + &.title-bg--sm { + font-size: 40px; + + > span { + &::before { + top: 13px; + left: -3px; + } + } + } + + &.title-bg--xs { + font-size: 28px; + + > span { + &::before { + top: 10px; + } + } + } + + @media #{$no-fw} { + font-size: 3vw; + + > span { + &::before { + top: 1.1vw; + left: -0.2vw; + } + } + + &.title-bg--sm { + font-size: 2.2vw; + + > span { + &::before { + top: 0.8vw; + left: -0.4vw; + } + } + } + + &.title-bg--xs { + font-size: 1.5vw; + + > span { + &::before { + top: 10px; + } + } + } + } + + @media #{$m-xxl} { + &.title-bg--sm { + font-size: 64px; + } + + &.title-bg--xs { + font-size: 40px; + } + } + + @media #{$m-xl} { + font-size: 32px; + + > span { + &::before { + top: 13px; + left: -2px; + } + } + + &.title-bg--sm { + font-size: 32px; + } + + &.title-bg--xs { + font-size: 24px; + + > span { + &::before { + top: 8px; + } + } + } + } +} + +.subtitle { + font-size: 24px; + font-weight: 400; + line-height: 32px; + + @media #{$no-fw} { + font-size: 1.5vw; + line-height: 1.3; + } +} + +.text { + font-size: 16px; + line-height: 1.5; + + &.text--sm { + font-size: 14px; + } + + @media #{$no-fw} { + font-size: 1vw; + + &.text--sm { + font-size: 1vw; + } + } +} + +.fw-500 { + font-weight: 500; +} + +.text-center { + text-align: center; +} + +.text-left { + text-align: left; +} + +.color-white { + color: #fff; +} diff --git a/src/css/_blocks/_advantages.scss b/src/css/_blocks/_advantages.scss new file mode 100644 index 00000000..012a7b68 --- /dev/null +++ b/src/css/_blocks/_advantages.scss @@ -0,0 +1,63 @@ +.advantages__gallery { + position: relative; + overflow: hidden; + + @media #{$no-m} { + max-width: 939px; + margin: 0 auto; + } + + @media #{$no-m-xl} { + .swiper-wrapper { + flex-wrap: wrap; + } + + .advantages__slide { + width: 25%; + } + } + + @media #{$no-m} { + .advantages__slide { + width: 25%; + } + } + + @media #{$no-fw} { + max-width: 45vw; + } + + @media #{$m-xl} { + margin-left: -32px; + margin-right: -32px; + } + + @media #{$m-l} { + margin-left: -16px; + margin-right: -16px; + } +} + +.advantage-item { + display: flex; + flex-direction: column; + align-items: center; + padding-top: 28px; + padding-bottom: 10px; + text-align: center; +} + +.advantage-item__img { + width: 100px; + height: 100px; +} + +.advantage-item__title { + max-width: 205px; + padding-top: 27px; + color: #ffffff; + + @media #{$no-fw} { + max-width: none; + } +} \ No newline at end of file diff --git a/src/css/_blocks/_blocks.scss b/src/css/_blocks/_blocks.scss new file mode 100644 index 00000000..55fa7ad7 --- /dev/null +++ b/src/css/_blocks/_blocks.scss @@ -0,0 +1,5 @@ +// General +@import "rte"; +@import "advantages"; +@import "product-card"; +@import "slide"; diff --git a/src/css/_blocks/_product-card.scss b/src/css/_blocks/_product-card.scss new file mode 100644 index 00000000..eeb92370 --- /dev/null +++ b/src/css/_blocks/_product-card.scss @@ -0,0 +1,68 @@ +.product-card { + max-width: 480px; + + .product-card__image { + margin-bottom: -90px; + margin-inline: auto; + width: 90%; + + img { + width: 100%; + height: 100%; + object-fit: cover; + } + } + .product-card__content { + background-color: rgb(var(--product-card-background)); + padding: 100px 20px 20px 20px; + border-radius: 10px; + display: flex; + flex-direction: column; + gap: 1rem; + + @media #{$m-xl} { + padding: 100px 10px 10px 10px; + } + + .product-card__bullet-points { + display: grid; + gap: 0.5rem; + } + + .product-card__bullet-point { + display: flex; + gap: 1rem; + + .icon { + margin-top: 4px; + flex-shrink: 0; + width: 18px; + height: 14px; + + path { + stroke: rgb(var(--color-text)); + } + } + } + + .product-form__meta-price { + text-align: left; + } + + .product-card__ctas { + display: grid; + gap: 1rem; + } + + .product-card__ingredients { + color: rgb(var(--color-text)); + } + } + + table { + @media #{$m-xl} { + width: 100%; + word-break: break-word; + } + } +} diff --git a/src/css/_blocks/_rte.scss b/src/css/_blocks/_rte.scss new file mode 100644 index 00000000..75fa9d49 --- /dev/null +++ b/src/css/_blocks/_rte.scss @@ -0,0 +1,141 @@ +// Styles for Rich text editor content +.rte { + line-height: 1.25; + + h1, + h2, + h3, + h4, + h5, + h6 { + margin: 20px 0; + } + + h1 { + font-size: 58px; + } + + h2 { + font-size: 40px; + } + + h3 { + font-size: 32px; + } + + h4 { + font-size: 24px; + } + + h5, + h6 { + font-size: 20px; + } + + p { + + p { + margin-top: 25px; + } + } + + a { + text-decoration: underline; + color: #fff; + + &:hover { + text-decoration: none; + } + } + + em { + font-style: italic; + } + + blockquote { + margin: 15px 0; + padding-left: 20px; + font-style: italic; + + &::before { + content: open-quote; + } + + &::after { + content: close-quote; + } + } + + ol, + ul { + margin: 15px 0; + padding-left: 20px; + + li { + margin: 5px 0; + } + } + + ol { + list-style-type: decimal; + } + + ul { + list-style-type: disc; + } + + .rte__table-wrapper { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + + table { + margin-top: 35px; + margin-left: auto; + margin-right: auto; + border-collapse: collapse; + + td { + padding-top: 17px; + padding-bottom: 10px; + border: 1px solid #fff; + } + + th, + td { + padding: 14px 10px 8px 16px; + font-size: 16px; + font-weight: 600; + text-align: left; + } + + th { + border: 1px solid #fff; + background-color: transparent; + border-bottom: none; + + &:not(:last-of-type) { + border-right: 1px solid #fff; + } + + h6 { + text-align: left; + color: #fff; + } + } + } + + &.rte--pages { + color: #ffffff; + + p { + font-size: 20px; + line-height: 1.5; + } + + @media #{$no-fw} { + p { + font-size: 1vw; + } + } + } +} diff --git a/src/css/_blocks/_slide.scss b/src/css/_blocks/_slide.scss new file mode 100644 index 00000000..dd06c1c9 --- /dev/null +++ b/src/css/_blocks/_slide.scss @@ -0,0 +1,4 @@ +.swiper-slide { + display: flex; + justify-content: center; +} diff --git a/src/css/_functions/_functions.scss b/src/css/_functions/_functions.scss new file mode 100644 index 00000000..eba99f6e --- /dev/null +++ b/src/css/_functions/_functions.scss @@ -0,0 +1,28 @@ +@function replace($string, $search, $replace: "") { + $index: str-index($string, $search); + + @if $index { + @return str-slice($string, 1, $index - 1) + $replace + + str-replace( + str-slice($string, $index + str-length($search)), + $search, + $replace + ); + } + + @return $string; +} + +@function settings($setting, $default: false) { + $characters: "_", "."; + + @each $character in $characters { + $setting: replace($setting, $character, "-"); + } + + @if $default { + @return var(--settings-#{$setting}, $default); + } @else { + @return var(--settings-#{$setting}); + } +} diff --git a/src/css/_layout/_captcha-page.scss b/src/css/_layout/_captcha-page.scss new file mode 100644 index 00000000..25e11437 --- /dev/null +++ b/src/css/_layout/_captcha-page.scss @@ -0,0 +1,18 @@ +#challenge { + main { + padding: 150px 0; + } + + .shopify-challenge__container { + font-size: 18px; + text-align: center; + } + + /* stylelint-disable */ + .shopify-challenge__button { + &:hover, + &:focus { + } + } + /* stylelint-enable */ +} diff --git a/src/css/_layout/_layout.scss b/src/css/_layout/_layout.scss new file mode 100644 index 00000000..0a783037 --- /dev/null +++ b/src/css/_layout/_layout.scss @@ -0,0 +1,3 @@ +/*================ Layout ================*/ +@import "captcha-page"; +@import "password"; diff --git a/src/css/_layout/_password.scss b/src/css/_layout/_password.scss new file mode 100644 index 00000000..f1b8305a --- /dev/null +++ b/src/css/_layout/_password.scss @@ -0,0 +1,58 @@ +.template-password { + + .site-header__logo-link { + width: 100%; + max-width: 30vw; + margin: 0 auto; + color: #2ac2bd; + + rect { + width: 100%; + height: 100%; + } + } + + a { + text-decoration: underline; + color: #ffffff; + + &:hover, + &:focus { + text-decoration: none; + } + } + + .errors { + margin: 5px 0; + line-height: 1.5; + color: #fff; + } + + .password-page { + max-width: 40vw; + width: 100%; + min-height: calc(100vh - 5rem); + margin: 0 auto; + padding: 20vh 2rem 6rem; + text-align: center; + box-sizing: border-box; + + > * { + margin-bottom: 20px; + } + } + + @media #{$m-xl} { + .password-page { + max-width: 90vw; + } + } + + @media #{$no-fw} { + .password-page { + > * { + margin-bottom: 3vw; + } + } + } +} diff --git a/src/css/_libs/_libs.scss b/src/css/_libs/_libs.scss new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/src/css/_libs/_libs.scss @@ -0,0 +1 @@ + diff --git a/src/css/_mixins/_breakpoints.scss b/src/css/_mixins/_breakpoints.scss new file mode 100644 index 00000000..16836333 --- /dev/null +++ b/src/css/_mixins/_breakpoints.scss @@ -0,0 +1,13 @@ +$no-qhd: 'screen and (min-width: 2560px)'; +$no-fw: 'screen and (min-width: 1920px)'; +$xxl: 'screen and (max-width: 1700px)'; +$xl: 'screen and (max-width: 1549px)'; +$no-xl: 'screen and (min-width: 1550px)'; +$l: 'screen and (max-width: 1249px)'; +$no-l: 'screen and (min-width: 1250px)'; +$no-m: 'screen and (min-width: 992px)'; +$no-m-xl: 'screen and (min-width: 768px)'; +$m-xxl: 'screen and (max-width: 991px)'; +$m-xl: 'screen and (max-width: 767px)'; +$m-l: 'screen and (max-width: 575px)'; +$m: 'screen and (max-width: 480px)'; \ No newline at end of file diff --git a/src/css/_mixins/_has-class.scss b/src/css/_mixins/_has-class.scss new file mode 100644 index 00000000..eaa3005c --- /dev/null +++ b/src/css/_mixins/_has-class.scss @@ -0,0 +1,33 @@ +@mixin html-has-class($name) { + @if & { + $selector: &; + @at-root { + html.#{$name} { + #{$selector} { + @content; + } + } + } + } @else { + html.#{$name} { + @content; + } + } +} + +@mixin body-has-class($name) { + @if & { + $selector: &; + @at-root { + body.#{$name} { + #{$selector} { + @content; + } + } + } + } @else { + body.#{$name} { + @content; + } + } +} diff --git a/src/css/_mixins/_hover.scss b/src/css/_mixins/_hover.scss new file mode 100644 index 00000000..eb0970e3 --- /dev/null +++ b/src/css/_mixins/_hover.scss @@ -0,0 +1,19 @@ +@mixin hover { + @media (-moz-touch-enabled: 0), (hover: hover) { + &:hover { + @content; + } + } +} + +@mixin isHoverEnabled { + @media (-moz-touch-enabled: 0), (hover: hover) { + @content; + } +} + +@mixin isHoverDisabled { + @media (-moz-touch-enabled: 1), (hover: none) { + @content; + } +} diff --git a/src/css/_mixins/_min-max-fix.scss b/src/css/_mixins/_min-max-fix.scss new file mode 100644 index 00000000..65993dba --- /dev/null +++ b/src/css/_mixins/_min-max-fix.scss @@ -0,0 +1,7 @@ +@function max($numbers...) { + @return m#{a}x(#{$numbers}); +} + +@function min($numbers...) { + @return m#{i}n(#{$numbers}); +} diff --git a/src/css/_mixins/_mixins.scss b/src/css/_mixins/_mixins.scss new file mode 100644 index 00000000..73373f30 --- /dev/null +++ b/src/css/_mixins/_mixins.scss @@ -0,0 +1,7 @@ +//mixins, like breakpoint or other... + +@import "breakpoints"; +@import "hover"; +@import "min-max-fix"; +@import "has-class"; +@import "visibility"; diff --git a/src/css/_mixins/_visibility.scss b/src/css/_mixins/_visibility.scss new file mode 100644 index 00000000..a6c3a0ba --- /dev/null +++ b/src/css/_mixins/_visibility.scss @@ -0,0 +1,27 @@ +@media screen and (max-width: 991px) { + .hidden-phone { + display: none !important; + } +} + +@media screen and (max-width: 991px) { + .mobile-vanish { + transform: translateY(120%) !important; + } +} + +@media screen and (min-width: 992px) { + .hidden-desktop { + display: none !important; + } +} + +.lock-body { + overflow: hidden; +} + +[visible] { + opacity: 1; + visibility: visible; + z-index: 10; +} \ No newline at end of file diff --git a/src/css/_sections/_sections.scss b/src/css/_sections/_sections.scss new file mode 100644 index 00000000..a07f8c64 --- /dev/null +++ b/src/css/_sections/_sections.scss @@ -0,0 +1,67 @@ +// Header +@import "header/header"; +@import "header/hamburger"; +@import "header/header-nav"; +@import "header/announcement-bar"; +@import "header/predictive-search"; + +// Footer +@import "footer/footer"; + +// Cart +@import "cart/minicart"; +@import "cart/cart"; +@import "cart/cart-product"; +@import "cart/cart-order"; +@import "cart/cart-upsell"; + +// Home +@import "home/home-products"; +@import "home/richtext"; +@import "home/home-ticker"; +@import "home/hero"; + +// Collections +@import "collections/collections"; +@import "collections/products-listing"; +@import "collections/sort-by"; + +// Product +@import "product/main-product"; +@import "product/product-page"; +@import "product/product-gallery"; +@import "product/product-images"; +@import "product/product-info"; +@import "product/product-form"; +@import "product/ingredients"; +@import "product/comparison-slider"; +@import "product/review-slider"; +@import "product/countdown-display"; +@import "product/image-gallery"; + +// Customers +@import "customers/customer"; +@import "customers/login"; + +// Careers section + +// Pages +@import "pages/404/index"; +@import "pages/community/index"; +@import "pages/guidelines/index"; +@import "pages/methods/index"; +@import "pages/contact/index"; +@import "pages/contact/contact-form"; +@import "pages/about-us/index"; +@import "pages/jobs/index"; +@import "pages/terms/terms"; +@import "pages/signup-with-image/index"; +@import "pages/video/index"; +@import "pages/image-with-text/index"; +@import "pages/main/index"; +@import "pages/logo-list/index"; + +// Search +@import "search/search"; + +// Blog diff --git a/src/css/_sections/cart/_cart-order.scss b/src/css/_sections/cart/_cart-order.scss new file mode 100644 index 00000000..70aae2af --- /dev/null +++ b/src/css/_sections/cart/_cart-order.scss @@ -0,0 +1,24 @@ +.cart-order { + padding-top: 20px; + + &.cart-order--mini { + padding-top: 20px; + } +} + +.cart-order__heading { + margin-bottom: 16px; + line-height: 1.2; + color: #ffffff; + font-size: 12px; + + @media #{$no-fw} { + font-size: 0.9vw; + } +} + +.cart-order__button { + width: 100%; + text-align: center; + font-size: 24px; +} diff --git a/src/css/_sections/cart/_cart-product.scss b/src/css/_sections/cart/_cart-product.scss new file mode 100644 index 00000000..83a24702 --- /dev/null +++ b/src/css/_sections/cart/_cart-product.scss @@ -0,0 +1,224 @@ +.cart-product { + display: flex; + width: 100%; + padding-top: 16px; + padding-bottom: 16px; + border-bottom: 1px solid #fff; + + & + .cart-product { + border-top: none; + } + + &.cart-product--mini { + padding-top: 16px; + padding-bottom: 16px; + } +} + +.cart-product__image-wrap { + display: flex; + align-items: center; + min-width: 85px; + flex: 1 1 25%; +} + +.cart-product__info { + display: flex; + flex-direction: column; + justify-content: space-between; + width: calc(100% - 85px); + min-height: 80px; + padding-left: 26px; +} + +.cart-product__properties { + display: flex; + flex-direction: column; +} + +.cart-product__heading { + display: flex; + justify-content: space-between; +} + +.cart-product__content { + flex: 2; + width: 100%; + display: flex; + flex-direction: column; +} + +.cart-product__title { + font-weight: 700; + text-decoration: none; + color: #fff; +} + +.cart-product__item-content { + margin-top: 10px; + font-size: 90%; + color: #fff; +} + +.cart-product__remove { + display: flex; + justify-content: center; + align-items: center; + width: 20px; + height: 20px; + padding: 0; + background-color: transparent; + color: #fff; + transition-property: opacity, color; + transition-duration: 0.3s; + + @include hover() { + opacity: 0.7; + } + + svg { + height: 100%; + width: 100%; + } +} + +.cart-product__footer { + display: flex; + justify-content: space-between; + padding-top: 7px; +} + +.cart-product__amount { + flex: 1; + display: flex; + align-items: flex-end; + flex-direction: column; + width: 100%; +} + +.cart-product__price { + margin-left: auto; + line-height: normal; + color: #fff; + font-weight: bold; + + &.cart-product__price--old { + text-decoration: line-through; + } + + &.cart-product__price--new { + color: #fff; + } +} + +.cart-product__quantity { + display: flex; + align-items: center; + min-width: 61px; + max-width: 80px; + height: 25px; + border: 1px solid rgb(var(--color-text)); +} + +.cart-product__quantity-input { + width: 100%; + height: 100%; + border-left: 1px solid rgb(var(--color-text)); + border-right: 1px solid rgb(var(--color-text)); + border-top: none; + border-bottom: none; + border-radius: 0; + background-color: transparent; + vertical-align: middle; + text-align: center; + color: #fff; + -moz-appearance: textfield; + + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + margin: 0; + -webkit-appearance: none; + } +} + +.cart-product__quantity-btn { + flex-shrink: 0; + width: 15px; + height: 100%; + padding-left: 0; + padding-right: 0; + background-color: transparent; + color: rgb(var(--color-text)); + + &.cart-product__quantity-btn--minus, + &.cart-product__quantity-btn--plus { + position: relative; + display: flex; + justify-content: center; + align-content: center; + + &::before { + content: ""; + position: absolute; + top: 50%; + display: block; + width: 7px; + height: 1px; + background-color: rgb(var(--color-text)); + } + } + + &.cart-product__quantity-btn--plus { + &::after { + content: ""; + position: absolute; + display: block; + top: 50%; + width: 7px; + height: 1px; + background-color: rgb(var(--color-text)); + transform: rotate(90deg); + } + } +} + +@media #{$no-fw} { + .cart-product__title { + font-size: 1.2vw; + } + + .cart-product__quantity { + max-width: 120px; + height: 38px; + } + + .cart-product__quantity-btn { + width: 30px; + + &.cart-product__quantity-btn--minus, + &.cart-product__quantity-btn--plus { + &::before { + width: 15px; + height: 2px; + } + } + + &.cart-product__quantity-btn--plus { + &::after { + width: 15px; + height: 2px; + } + } + } + + .cart-product__info { + width: calc(100% - 100px); + min-height: 120px; + } +} + +@media #{$m-l} { + .cart-product__info { + padding-left: 16px; + } +} diff --git a/src/css/_sections/cart/_cart-upsell.scss b/src/css/_sections/cart/_cart-upsell.scss new file mode 100644 index 00000000..23866e6d --- /dev/null +++ b/src/css/_sections/cart/_cart-upsell.scss @@ -0,0 +1,137 @@ +@media #{$no-m-xl} { + .minicart__container--open .cart-upsell { + right: 100%; + } +} + +.cart-upsell { + margin: 10px 0; + color: rgb(var(--color-text)); + + @media #{$no-m-xl} { + display: block; + position: absolute; + top: 0; + height: 100%; + width: 240px; + transition: right 0.5s ease; + background-color: var(--upsell-background); + margin: 0; + } + + &__wrapper { + @media #{$no-m-xl} { + height: 100%; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + padding: 20px; + scrollbar-width: thin; + } + } + + &__heading { + margin-bottom: 20px; + + @media #{$no-m-xl} { + text-align: center; + } + + h3 { + font-size: 20px; + } + } + + &__item { + display: flex; + align-items: center; + flex-direction: column; + justify-content: space-between; + + @media #{$no-m-xl} { + padding: 20px 15px; + } + + &-image-wrapper { + max-width: 200px; + position: relative; + } + + &-top-part { + display: flex; + flex-direction: column; + align-items: center; + } + + &-content-wrapper { + display: flex; + flex-direction: column; + } + + &-title { + font-weight: bold; + font-size: 12px; + + @media #{$no-fw} { + font-size: 20px; + } + } + } + + &__content { + display: flex; + justify-content: space-between; + font-size: 12px; + margin-top: 5px; + + @media #{$no-fw} { + font-size: 18px; + } + } + + &__content-wrapper { + width: 100%; + } + + &__product-price { + font-weight: bold; + } + + &__button { + padding: 0; + transition: none; + width: 25px !important; + height: 25px !important; + border-radius: 50%; + position: absolute; + bottom: 5%; + right: 0; + transform: translate(45%); + display: flex; + align-items: center; + justify-content: center; + + @media #{$no-fw} { + width: 30px !important; + height: 30px !important; + } + + &::before { + transition: none; + } + + &::after { + transition: none; + } + } + + .swiper-slide { + height: auto; + } + + .swiper-wrapper { + @media #{$no-m-xl} { + flex-direction: column; + } + } +} diff --git a/src/css/_sections/cart/_cart.scss b/src/css/_sections/cart/_cart.scss new file mode 100644 index 00000000..390338bc --- /dev/null +++ b/src/css/_sections/cart/_cart.scss @@ -0,0 +1,61 @@ +.cart { + position: relative; + overflow: hidden; +} + +.cart__wrap { + max-width: 672px; + margin: 0 auto; + + @media #{$no-fw} { + max-width: 38vw; + } + + @media #{$m-xxl} { + max-width: 490px; + padding-left: 16px; + padding-right: 16px; + } +} + +.cart__link-empty { + margin-top: 9vw; + text-decoration: none; + color: #ffffff; +} + +.cart__body { + display: flex; + flex-direction: column; + width: 100%; +} + +.cart__img { + position: absolute; + display: none; + visibility: hidden; + + &.cart__img--left { + top: 30%; + left: 0; + } + + &.cart__img--right { + top: 20%; + right: 0; + } + + @media #{$no-m-xl} { + display: block; + visibility: visible; + } + @media #{$l} { + &.cart__img--left { + left: -100px; + } + + &.cart__img--right { + right: -100px; + } + } +} diff --git a/src/css/_sections/cart/_minicart.scss b/src/css/_sections/cart/_minicart.scss new file mode 100644 index 00000000..7043ba0c --- /dev/null +++ b/src/css/_sections/cart/_minicart.scss @@ -0,0 +1,311 @@ +.minicart { + position: relative; + z-index: 99999; +} + +.minicart__container { + position: fixed; + z-index: 1; + top: 0; + right: 0; + width: 100%; + height: 100%; + background-color: var(--section-accent-color); + transform: translateX(100%); + max-width: 400px; + transition-property: transform; + transition-duration: 0.3s; + + &.minicart__container--open { + right: 0; + transform: translateX(0); + } +} + +.minicart__overlay { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: -1; + visibility: hidden; + opacity: 0; + background-color: rgba(231, 232, 233, 0.7); + transition-property: visibility, opacity; + transition-duration: 0.3s; + + &.minicart__overlay--shown { + visibility: visible; + opacity: 1; + } +} + +.minicart__wrapper { + position: relative; + display: flex; + flex-direction: column; + height: 100%; + color: rgb(var(--color-text)); +} + +.minicart__title { + flex-grow: 1; + font-weight: bold; + text-align: left; + color: rgb(var(--color-text)); + + @media #{$no-fw} { + font-size: 3.2vw; + } +} + +.minicart__header { + display: flex; + flex-direction: column; + padding-top: 14px; + padding-bottom: 14px; +} + +.minicart__heading { + display: flex; + justify-content: space-between; +} + +.minicart__close { + position: relative; + display: flex; + justify-content: flex-end; + align-items: center; + width: 30px; + height: 30px; + padding: 0; + background-color: transparent; + cursor: pointer; + transition-property: opacity; + transition-duration: 0.3s; + + &::before, + &::after { + content: ""; + position: absolute; + display: flex; + width: 32px; + height: 2px; + background-color: rgb(var(--color-text)); + } + + &::before { + transform: rotate(45deg); + } + + &::after { + transform: rotate(-45deg); + } + + @include hover { + opacity: 0.7; + } +} + +.minicart__body { + position: relative; + flex: 1 0 auto; + margin: 20px 20px 0; + overflow-y: auto; + + &.minicart__body--empty { + display: flex; + flex-direction: column; + } +} + +#mini-cart-form { + margin: 0 0 20px; +} + +.minicart__section { + padding-left: 20px; + padding-right: 20px; + + &.minicart__section--header { + background-color: var(--mini-cart-background); + + .base-triangular-line { + color: var(--mini-cart-background); + left: 0; + } + } + + &.minicart__section--items { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + height: 100%; + padding: 0; + overflow-y: auto; + } + + &.minicart__section--empty { + display: flex; + padding: 0; + flex-grow: 1; + } + + &.minicart__section--footer { + position: relative; + padding-bottom: 12px; + background-color: var(--section-background-color); + + .top-triangular-line { + color: var(--section-background-color); + left: 0; + } + } +} + +.minicart-empty { + display: flex; + align-items: center; + align-self: center; + margin-left: auto; + margin-right: auto; + flex-direction: column; + max-width: 350px; + text-align: center; +} + +.minicart-empty__title { + margin-bottom: 15px; + color: rgb(var(--color-text)); +} + +.minicart-empty__subtitle { + color: rgb(var(--color-text)); +} + +.minicart-empty__button { + width: 100%; + margin-top: 5vw; + text-align: center; +} + +.minicart__item-count { + font-size: 120%; + display: block; + width: 100%; + border-bottom: 1px solid rgb(var(--color-text)); + padding-bottom: 20px; +} + +.minicart__empty-cart-notice { + margin: 20px 0 40px; +} + +@media #{$no-fw} { + .minicart__container { + max-width: 30vw; + } +} + +@media (max-width: 374px) { + .minicart__section { + padding-left: 15px; + padding-right: 15px; + + &.minicart__section--items { + width: calc(100% - 30px); + margin-left: 15px; + margin-right: 15px; + padding-top: 20px; + padding-bottom: 20px; + } + } + + .minicart__close { + right: 7px; + top: 10px; + } +} + +/* Free shipping bar */ + +.shipping-bar { + display: block; + margin-top: 32px; + margin-bottom: 8px; + margin-left: auto; + margin-right: auto; + width: 100%; + text-align: center; + color: rgb(var(--color-text)); +} + +.shipping-bar__text { + display: block; +} + +.shipping-bar__progress { + position: relative; + display: block; + margin-top: 8px; + margin-bottom: 6px; + height: 7px; + border-radius: 4px; + background-color: rgb(var(--color-text)); + + &:after { + position: absolute; + content: ""; + top: 0; + right: 0; + bottom: 0; + left: 0; + transition: transform 0.2s ease; + transform: scaleX(var(--progress)); + transform-origin: left; + } + + &--achieved { + &:after { + background: var(--free-shipping-success); + border-radius: 4px; + } + } + + &--remaining { + &:after { + background: var(--free-shipping-remaining); + border-radius: 4px; + } + } +} + +.shipping-bar__information { + font-size: 12px; + + @media #{$no-fw} { + font-size: 16px; + } +} + +.shipping-bar--large { + max-width: 392px; +} + +@media screen and (min-width: 741px) { + .shipping-bar { + margin-bottom: 8px; + } + + .shipping-bar__progress { + margin: 8px 0; + height: 8px; + } + + .shipping-bar--large .shipping-bar__progress { + margin: 16px 0; + } +} diff --git a/src/css/_sections/collections/_collections.scss b/src/css/_sections/collections/_collections.scss new file mode 100644 index 00000000..2f6a51e6 --- /dev/null +++ b/src/css/_sections/collections/_collections.scss @@ -0,0 +1,198 @@ +.featured-collections { + transition: background-color 0.25s ease-in-out; + + .swiper-container-wrapper { + position: relative; + padding: 0 40px; + } + + .swiper-slide { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + } + + .swiper:not(.swiper-initialized) .swiper-slide { + width: 25%; + } + + .swiper-button-next::after, + .swiper-button-prev::after { + font-size: 24px; + + @media #{$m-xl} { + font-size: 18px; + } + } + + .swiper-button-next, + .swiper-button-prev { + width: 40px; + height: 40px; + border-radius: 50%; + background-color: var(--section-accent-color); + color: rgb(var(--color-text)); + top: 50%; + margin-top: 0; + transform: translateY(-50%); + + @media #{$m-xl} { + width: 30px; + height: 30px; + } + } + + .swiper-button-next { + right: 0; + } + + .swiper-button-prev { + left: 0; + } + + collection-slider { + a { + color: white; + + &:not(.active) { + text-decoration: none; + } + + &.active { + font-weight: bold; + } + } + + .collection-swiper__link { + font-size: 24px; + margin-top: 12px; + } + } + + @media #{$m-xxl} { + .swiper:not(.swiper-initialized) .swiper-slide { + width: 100%; + margin-right: 12px; + } + + collection-slider { + a { + text-decoration: none; + + &.active { + .collection-swiper__link { + background-color: #1d8884; + } + } + } + + .collection-swiper__link { + margin-top: 0; + font-size: 16px; + border-radius: 4px; + border: 2px solid #1d8884; + padding: 8px 16px; + display: inline-block; + width: 100%; + white-space: nowrap; + } + } + + .swiper-slide { + display: inline-block; + flex-shrink: unset; + } + } +} + +.featured-collections__container { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + width: 100%; + + .home-products__title { + margin-bottom: 60px; + + @media #{$m-xl} { + margin-bottom: 40px; + padding-bottom: 0px; + } + } + + &.page-width { + width: 100%; + max-width: 1440px; + margin: auto; + padding: 80px 20px 40px; + + @media #{$m-xl} { + padding: 40px 20px 20px; + } + } + + @media (max-height: 700px) and (max-width: 1366px) { + height: auto; + min-height: auto; + margin-bottom: 40px; + } +} + +.featured-collections__button { + opacity: 0; + width: 100%; + max-width: 438px; + margin-top: 50px; + transition: opacity 0.25s ease-in-out; + + @media #{$no-fw} { + max-width: 20vw; + } + + @media #{$m-xxl} { + max-width: 278px; + margin-top: 24px; + } + + @media #{$m-l} { + max-width: 203px; + } +} + +.featured-collections__slider { + .swiper-slide { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + transition: all 0.25s ease-in-out; + + &.swiper-slide-active { + transform: scale(1); + + .featured-collections__button { + opacity: 1; + } + } + + &.swiper-slide-prev, + &.swiper-slide-next { + transform: scale(0.8); + } + } + + @media #{$no-m-xl} { + padding-bottom: 20px; + } + + @media #{$no-fw} { + padding-bottom: 30px; + + .swiper-slide { + padding-left: 4%; + padding-right: 4%; + } + } +} diff --git a/src/css/_sections/collections/_products-listing.scss b/src/css/_sections/collections/_products-listing.scss new file mode 100644 index 00000000..0da239b6 --- /dev/null +++ b/src/css/_sections/collections/_products-listing.scss @@ -0,0 +1,313 @@ +.products_listing { + width: 100%; + display: inline-block; + + @media #{$m-xl} { + padding-top: 20px; + } +} +.products_listing .page-width { + width: 100%; + max-width: 1440px; + margin: 0 auto; + padding: 0 20px; +} +.products_listing ul.grid { + width: 100%; + display: inline-block; +} +.products_listing ul.grid li.grid__item { + display: inline-block; + padding: 50px; + min-height: 440px; + margin: 6px; /* Adjust margin to account for the shadow size */ + transition: + background-color 0.3s, + box-shadow 0.3s; + + @media #{$m-xl} { + margin: 0; + } +} +.products_listing ul.grid li.grid__item .product-card { + width: 100%; + height: 100%; + display: inline-block; +} +.products_listing .grid-view-item__image-wrapper { + width: 100%; + display: inline-block; +} +.products_listing .grid-view-item__image-wrapper > div { + position: relative; + text-align: center; +} +.products_listing .grid-view-item__image { + width: 100%; + height: 100%; + object-fit: contain; +} + +.products_listing ul.grid li.grid__item .product-card .product-card__title { + width: 100%; + display: inline-block; + font-style: normal; + font-weight: 700; + font-size: 24px; + line-height: 24px; + color: #ffffff; + margin-top: 20px; + + @media #{$m-xl} { + min-height: 0; + } +} +.products_listing ul.grid li.grid__item .product-card .price__sale { + display: none; +} + +.products_listing .products_listing__information { + width: 100%; + display: flex; + flex-direction: column; + align-items: flex-start; + margin: 20px 0; + gap: 10px; + + @media #{$m-xl} { + margin: 10px 0; + } +} +.products_listing .products_listing__information .price_wrapper { + width: 50%; + display: inline-block; + text-align: right; + font-style: normal; + font-weight: 400; + font-size: 18px; + line-height: 24px; + color: rgba(255, 255, 255, 0.6); +} +.products_listing + .products_listing__information + .products_listing__information-labels { + display: flex; + gap: 10px; + flex-wrap: wrap; + + @media #{$m-xl} { + gap: 5px; + } +} + +.products_listing__information-wrapper { + display: flex; + flex-direction: column; + gap: 10px; + + @media #{$m-xl} { + gap: 5px; + } +} + +.products_listing .products_listing__information .products_listing__label { + display: inline-flex; + align-items: center; + text-align: left; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + color: #1d8884; + background-color: #6ad4d1; + padding: 8px; + border-radius: 4px; + border: 1px solid transparent; + gap: 5px; + + @media #{$m-xl} { + font-size: 11px; + padding: 4px 6px; + } + + &--emoji { + margin-bottom: -2px; + } +} +.products_listing a.grid-view-item__link { + background: #dbaaeb; + border-radius: 1.79334px; + text-decoration: none; + color: #fff; + font-weight: 700; + font-size: 16px; + width: 100%; + display: inline-block; + text-align: center; + margin-top: 25px; + padding: 15px 10px; +} +.products_listing .section-header.text-center h2 { + width: auto; + display: inline-block; + float: none; + position: relative; +} +.products_listing .section-header.text-center h2:after { + content: ""; + background: #dbaaeb; + position: absolute; + height: 32px; + width: 100%; + left: 0; + right: 0; + bottom: -6px; + z-index: 1; +} + +.products_listing .page-width .section-header span { + z-index: 2; + position: relative; + color: #fff; +} + +@media #{$no-m-xl} { + .products_listing ul.grid li.grid__item:hover { + background-color: #6ad4d1; + box-shadow: 4px 4px 6px 2px rgba(29, 136, 132, 0.3); + border-radius: 8px; + } + + .products_listing ul.grid li.grid__item:hover .products_listing__label { + border: 1px solid #1d8884; + } +} + +.products_listing .grid--view-items { + display: grid !important; + gap: 30px; + + @media #{$m-l} { + gap: 5px; + } +} + +@media screen and (min-width: 1024px) { + .products_listing .grid--view-items { + grid-template-columns: 1fr 1fr 1fr; + } +} + +@media screen and (max-width: 1023px) { + .products_listing .grid--view-items { + grid-template-columns: 1fr 1fr; + } +} + +@media (max-width: 1024px) { + .products_listing .featured-collections__container { + height: unset; + min-height: 45vh; + } + .products_listing ul.grid li.grid__item { + display: inline-block; + padding: 15px 2%; + margin-bottom: 40px; + } +} + +.custom_data_wrapping { + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.custom_data_wrapping .button { + padding: 16px 16px; +} + +.product_content_wrapping { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +@media (max-width: 768px) { + .products_listing .featured-collections__container { + height: unset; + } + + .custom_data_wrapping .button { + padding: 8px 0; + font-size: 12px; + } +} + +@media (max-width: 640px) { + .products_listing ul.grid li.grid__item { + width: 100%; + margin-bottom: 30px; + } + + .products_listing ul.grid li.grid__item { + min-height: unset; + } + .products_listing img.hover_image_show { + width: 92% !important; + height: unset !important; + /* rotate: -90deg; */ + max-width: 100% !important; + max-height: 100% !important; + position: relative; + top: 57px; + } +} + +@media (max-width: 480px) { + .section-header.text-center h2 { + font-size: 20px; + } + + .products_listing ul.grid li.grid__item .product-card .product-card__title { + font-size: 16px; + line-height: 20px; + min-height: auto; + } + .products_listing a.grid-view-item__link { + background: #dbaaeb; + border-radius: 1.79334px; + text-decoration: none; + color: #fff; + font-weight: 700; + font-size: 14px; + width: 100%; + display: inline-block; + text-align: center; + margin-top: 20px; + padding: 12px 5px; + } + .products_listing .page-width { + padding: 0 10px; + } + .products_listing .grid-view-item__image { + width: 93% !important; + top: 57px; + left: -15px; + } +} + +.products_listing .price-item { + display: flex; + flex-direction: column; + justify-content: flex-end; +} + +.products_listing .product-item__unit-price { + color: rgba(255, 255, 255, 0.6); + font-size: 0.6em; + margin-top: -5px; +} diff --git a/src/css/_sections/collections/_sort-by.scss b/src/css/_sections/collections/_sort-by.scss new file mode 100644 index 00000000..69cf3a2e --- /dev/null +++ b/src/css/_sections/collections/_sort-by.scss @@ -0,0 +1,286 @@ +.product-facet__meta-bar { + display: flex; + justify-content: center; + align-items: flex-start; + margin-bottom: 16px; +} + +.product-facet__meta-bar-item { + display: flex; + align-items: center; + color: rgb(var(--color-text)); +} + +[dir="ltr"] .product-facet__meta-bar-item .icon--filters { + margin-right: 13px; +} + +[dir="rtl"] .product-facet__meta-bar-item .icon--filters { + margin-left: 13px; +} + +@media screen and (min-width: 741px) { + .product-facet__meta-bar { + margin-bottom: 24px; + } +} + +@media screen and (max-width: 999px) { + .popover { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + border-radius: 10px 10px 0 0; + bottom: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + left: 0; + max-height: 75vh; + -ms-touch-action: manipulation; + touch-action: manipulation; + -webkit-transform: translateY(100%); + transform: translateY(100%); + transition: + transform 0.6s cubic-bezier(0.75, 0, 0.175, 1), + visibility 0.6s cubic-bezier(0.75, 0, 0.175, 1), + -webkit-transform 0.6s cubic-bezier(0.75, 0, 0.175, 1); + width: 100vw; + backface-visibility: hidden; + background: rgb(var(--background)); + color: rgb(var(--text-color)); + display: block; + font-size: 1rem; + position: fixed; + visibility: hidden; + z-index: 100; + } + .popover__header { + -webkit-box-align: center; + -ms-flex-align: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + -ms-flex-negative: 0; + align-items: center; + border-bottom: 1px solid rgb(var(--root-border-color)); + border-radius: 10px 10px 0 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + flex-shrink: 0; + justify-content: space-between; + min-height: 64px; + padding: 10px 16px; + position: relative; + font-weight: bold; + border-bottom: 1px solid rgb(var(--color-text)); + } + + .popover[open] { + -webkit-transform: translateY(0); + transform: translateY(0); + } + + .popover__content, + .popover__header { + background: inherit; + } +} + +.popover-button { + background-color: transparent; + font-weight: bold; + color: rgb(var(--color-text)); + display: flex; + align-items: center; +} + +@media screen and (min-width: 1000px) { + .product-facet__meta-bar { + justify-content: flex-start; + } + + .popover-container { + position: relative; + } + .popover-button + .popover { + right: -20px; + } + + .popover { + border: 1px solid rgb(var(--root-border-color)); + border-radius: min(var(--block-border-radius), 4px); + opacity: 0; + position: absolute; + top: calc(100% + 18px); + -webkit-transition: + opacity 0.25s ease-in-out, + visibility 0.25s ease-in-out; + transition: + opacity 0.25s ease-in-out, + visibility 0.25s ease-in-out; + z-index: -1; + } + + .popover::before { + border-color: transparent transparent rgb(var(--root-border-color)) + transparent; + border-width: 9px; + } + + .popover__header, + .popover__overlay { + display: none; + } + + .popover__overlay { + background: #000; + bottom: calc(100% - 10px); + content: ""; + height: 100vh; + left: 0; + opacity: 0; + position: absolute; + -webkit-transition: + opacity 0.6s ease-in-out, + visibility 0.6s ease-in-out; + transition: + opacity 0.6s ease-in-out, + visibility 0.6s ease-in-out; + visibility: hidden; + width: 100%; + } + + .popover__content { + padding-left: 32px; + padding-right: 32px; + } + + .popover::after { + right: 28px; + border-color: transparent transparent #1d8884 transparent; + border-style: solid; + border-width: 8px; + bottom: 100%; + content: ""; + height: 0; + position: absolute; + width: 0; + } + + .popover[open] { + opacity: 1; + z-index: 2; + } +} + +.popover { + background-color: #1d8884; +} + +.popover__choice-list { + display: flex; + flex-direction: column; + white-space: nowrap; +} + +.popover__choice-item { + padding: 8px 0; +} + +.popover__choice-item:not(:last-child) { + border-bottom: 0.5px solid rgb(var(--color-text)); +} + +input[checked="checked"] + .popover__choice-label { + font-weight: bold; +} + +.product-facet__sort-by-title { + padding-right: 7px; +} + +.popover__title { + -webkit-box-pack: center; + -ms-flex-pack: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + justify-content: center; + margin: 0; +} + +.popover__close-button, +.remove-search-input { + background-color: transparent; + + svg { + path { + fill: rgb(var(--color-text)) !important; + } + } +} + +.popover__content { + overflow: auto; + padding: 16px; +} + +.popover-button svg { + margin-left: 10px; +} + +.popover-button[aria-expanded="true"] svg { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} + +.popover-button svg { + position: relative; + top: -1px; + transition: transform 0.2s ease-in-out; + width: 20px; + height: 15px; +} + +.popover[open] { + visibility: visible; +} + +.popover__choice-label:not(:last-child) { + border-bottom: 1px solid rgb(var(--color-text)); +} + +.popover__choice-label { + cursor: pointer; + position: relative; +} + +.popover__overlay { + bottom: calc(100% - 10px); + background-color: rgba(0, 0, 0, 0.4); + content: ""; + height: 100vh; + left: 0; + opacity: 0; + position: absolute; + -webkit-transition: + opacity 0.6s ease-in-out, + visibility 0.6s ease-in-out; + transition: + opacity 0.6s ease-in-out, + visibility 0.6s ease-in-out; + visibility: hidden; + width: 100%; +} + +.popover[open] > .popover__overlay { + opacity: 1; + background: rgba(0, 0, 0, 0.2); + visibility: visible; + backdrop-filter: blur(1px); +} diff --git a/src/css/_sections/customers/_customer.scss b/src/css/_sections/customers/_customer.scss new file mode 100644 index 00000000..890cca77 --- /dev/null +++ b/src/css/_sections/customers/_customer.scss @@ -0,0 +1,87 @@ +.form-address { + margin-top: 30px; +} + +.customer__base-container { + max-width: 470px; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px; +} + +.customer__table { + width: 100%; + + .button-link { + display: inline; + } +} + +.customer-grid { + display: flex; + flex-wrap: wrap; + max-width: 1140px; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px; +} + +.customer-grid__main, +.customer-grid__aside { + width: 100%; +} + +.account__heading { + > * { + padding-bottom: 16px; + } +} +.account__divider { + margin-bottom: 32px; + padding-bottom: 16px; + border-bottom: 1px solid #fff; +} + +.address-list { + padding-top: 30px; +} + +.address-list__actions { + padding-top: 16px; + + .button-link { + padding: 0; + + &.address-edit-toggle { + margin-right: 15px; + } + } +} + +@media #{$m-xxl} { + .customer-grid__main { + margin-bottom: 40px; + padding-bottom: 16px; + border-bottom: 1px solid #fff; + } +} +@media #{$no-m} { + .customer-grid__main { + width: 70%; + } + + .customer-grid__aside { + width: 30%; + } +} + +@media #{$no-fw} { + .customer-grid { + max-width: 60vw; + } + + .customer__table-container, + .customer__base-container { + max-width: 34vw; + } +} diff --git a/src/css/_sections/customers/_login.scss b/src/css/_sections/customers/_login.scss new file mode 100644 index 00000000..9734a335 --- /dev/null +++ b/src/css/_sections/customers/_login.scss @@ -0,0 +1,96 @@ +.customer__login { + max-width: 490px; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px; +} + +.customer__title-sm { + padding-bottom: 30px; + color: #ffffff; +} + +.customer__column-subtitle { + color: #ffffff; +} + +.customer__recover-form { + max-width: 470px; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px; +} + +.customer__recover-actions { + display: flex; + justify-content: space-between; + margin-top: 32px; + margin-bottom: 32px; +} + +.customer-recover-success { + .customer { + overflow: hidden; + } + + .content-wrapper { + padding-bottom: 0; + } + + .title-wrapper__subtitle { + margin-bottom: 40px; + } +} + +.customer__recover-img { + display: block; + width: 100%; + + img { + width: 100%; + object-fit: cover; + } +} + +@media #{$m-xl} { + .customer__column { + margin-top: 60px; + } +} + +@media #{$m-l} { + .customer__recover-img { + width: 700px; + } +} + +@media #{$no-m-xl} { + .customer__login { + max-width: 704px; + } + + .customer__login-wrapper { + display: flex; + justify-content: space-between; + + > * { + max-width: 320px; + } + } +} + +@media #{$no-fw} { + .customer__login { + max-width: 39vw; + } + + .customer__recover-form { + max-width: 34vw; + } + + .customer__login-wrapper { + > * { + max-width: 48%; + } + } +} diff --git a/src/css/_sections/footer/_footer.scss b/src/css/_sections/footer/_footer.scss new file mode 100644 index 00000000..fb3a4fde --- /dev/null +++ b/src/css/_sections/footer/_footer.scss @@ -0,0 +1,54 @@ +.footer__wrap { + transition: all 0.25s ease-in-out; +} + +.footer__list-menu { + padding-top: 64px; + padding-bottom: 66px; +} + +.footer-menu { + padding-right: 64px; + font-weight: 700; + + &:last-child { + padding-right: 0; + } + + @media #{$m-xxl} { + padding-right: 46px; + } + + @media #{$m-xl} { + &:nth-child(1), + &:nth-child(2) { + padding-bottom: 32px; + } + } +} + +.footer-menu__link { + color: #ffffff; +} + +.footer__logo { + display: block; + width: 100%; + max-width: 885px; + margin-bottom: 55px; + + rect { + width: 100%; + height: 100%; + } + + @media #{$no-fw} { + max-width: 60vw; + } +} + +.copyright { + padding-bottom: 64px; + font-weight: 700; + color: #ffffff; +} diff --git a/src/css/_sections/header/_announcement-bar.scss b/src/css/_sections/header/_announcement-bar.scss new file mode 100644 index 00000000..09a778e2 --- /dev/null +++ b/src/css/_sections/header/_announcement-bar.scss @@ -0,0 +1,21 @@ +.announcement-bar { + background-color: var(--header-accent-color); + color: #ffffff; + font-size: 24px; + text-align: center; + transition: all 0.25s ease-in-out; + + @media #{$m-xxl} { + font-size: 16px; + } + + @media #{$no-m-xl} { + padding-top: 32px; + padding-bottom: 32px; + } + + @media #{$m-xl} { + padding-top: 26px; + padding-bottom: 26px; + } +} \ No newline at end of file diff --git a/src/css/_sections/header/_hamburger.scss b/src/css/_sections/header/_hamburger.scss new file mode 100644 index 00000000..054487df --- /dev/null +++ b/src/css/_sections/header/_hamburger.scss @@ -0,0 +1,106 @@ +.hamburger { + position: relative; + overflow: visible; + z-index: 4; + display: none; + margin: 0; + padding: 4px 4px 0 4px; + border: 0; + background-color: transparent; + font: inherit; + text-transform: none; + color: inherit; + cursor: pointer; + transition-property: opacity, filter; + transition-duration: 0.15s; + transition-timing-function: linear; + + @media #{$m-xl} { + display: flex; + } +} + +.hamburger-box { + position: relative; + display: inline-block; + width: 26px; + height: 24px; +} + +.hamburger-inner { + position: absolute; + top: 50%; + display: block; + width: 26px; + height: 2px; + margin-top: -2px; + transition-property: transform; + transition-duration: 0.15s; + transition-timing-function: ease; + + &::before, + &::after { + content: ""; + position: absolute; + display: block; + width: 26px; + height: 2px; + transition-property: transform; + transition-duration: 0.15s; + transition-timing-function: ease; + } + + &::before { + top: -7px; + } + + &::after { + bottom: -7px; + } +} + +.hamburger-inner, +.hamburger-inner::before, +.hamburger-inner::after { + background-color: #fff; +} + +.hamburger--spin { + .hamburger-inner { + transition-duration: 0.22s; + transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + + &::before { + transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in; + } + + &::after { + transition: bottom 0.1s 0.25s ease-in, + transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + } + + &.is-active { + .hamburger-inner { + background-color: #fff; + transform: rotate(225deg); + transition-delay: 0.12s; + transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + + &::before { + top: 0; + opacity: 0; + background-color: #fff; + transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out; + } + + &::after { + bottom: 0; + background-color: #fff; + transform: rotate(-90deg); + transition: bottom 0.1s ease-out, + transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1); + } + } + } +} diff --git a/src/css/_sections/header/_header-nav.scss b/src/css/_sections/header/_header-nav.scss new file mode 100644 index 00000000..ffa541fe --- /dev/null +++ b/src/css/_sections/header/_header-nav.scss @@ -0,0 +1,140 @@ +.header-nav { + .header-nav__link { + font-size: 16px; + font-weight: 500; + line-height: 24px; + text-decoration: none; + color: #ffffff; + } + + .icon-account { + width: 24px; + height: 24px; + } + + .icon-search { + width: 24px; + height: 24px; + } + + .icon-cart { + width: 28px; + height: 22px; + } + + .header-nav__link--static { + margin-left: 32px; + padding-left: 0; + line-height: 1; + + @media #{$m-l} { + margin-left: 16px; + } + } + + .header-nav__img-left, + .header-nav__img-right { + visibility: hidden; + opacity: 0; + transition: all 0.25s ease-in-out; + } + + @media #{$m-xl} { + .header-nav__img-left, + .header-nav__img-right { + position: absolute; + display: block; + visibility: visible; + } + + .header-nav__img-left { + left: 0; + } + + .header-nav__img-right { + bottom: 0; + right: 0; + } + + .header-nav__wrap { + position: absolute; + top: 54px; + left: -32px; + right: 0; + overflow: hidden; + z-index: 100; + display: flex; + align-items: center; + flex-direction: column; + width: 100vw; + height: 0; + transition: all 0.25s ease-in-out; + + &.header-nav__wrap--open { + max-height: 100vh; + height: calc(100vh - 80px); + background-color: var(--nav-background); + transition: all 0.25s ease-out; + + .header-nav__img-left, + .header-nav__img-right { + visibility: visible; + opacity: 1; + } + } + } + + .header-nav__item:not(.header-nav__link--static) { + padding-top: 32px; + text-align: center; + } + } + + @media #{$m-l} { + .header-nav__wrap { + left: -16px; + } + } + + @media #{$no-m-xl} { + .header-nav__img-left, + .header-nav__img-right { + display: none; + } + + .header-nav__menu { + display: flex; + align-items: center; + } + + .header-nav__item:not(.header-nav__link--static) { + padding-left: 32px; + } + } + + @media #{$no-fw} { + .header-nav__link { + font-size: 1vw; + line-height: 1.4; + } + + .header-nav__link--static { + line-height: 1; + } + + .icon-account { + width: 35px; + height: 35px; + } + + .icon-search { + width: 35px; + height: 35px; + } + + .icon-cart { + width: 47px; + height: 50px; + } + } +} diff --git a/src/css/_sections/header/_header.scss b/src/css/_sections/header/_header.scss new file mode 100644 index 00000000..eda3940b --- /dev/null +++ b/src/css/_sections/header/_header.scss @@ -0,0 +1,79 @@ +.header { + position: relative; + z-index: 100; + padding-top: 24px; + padding-bottom: 24px; + transition: all 0.25s ease-in-out; + + @media #{$no-m-xl} { + padding-top: 32px; + padding-bottom: 32px; + } + + @media #{$m-xl} { + padding-top: 26px; + padding-bottom: 26px; + } +} + +.header__row { + position: relative; + z-index: 2; + justify-content: space-between; +} + +.header__logo-wrapper { + position: absolute; + z-index: 1; + display: inline-block; + line-height: 0; + transition: color .25s ease-in-out; + + @media #{$m-xl} { + top: -4px; + left: 50%; + transform: translate(-50%, 0); + } + + @media #{$no-m-xl} { + top: 1px; + left: 2px; + transform: translate(-66px, 66px) rotate(270deg); + } + + @media #{$no-fw} { + top: 28px; + + .icon-logo-header { + width: 224px; + height: 50px; + } + } + + @media #{$no-qhd} { + top: 45px; + + .icon-logo-header { + width: 300px; + height: 70px; + } + } +} + +.header__nav { + display: flex; + align-items: center; +} + +.basket { + position: relative; + display: flex; + justify-content: center; + align-items: center; + color: #ffffff; + cursor: pointer; +} + +.basket__count { + position: absolute; +} diff --git a/src/css/_sections/header/_predictive-search.scss b/src/css/_sections/header/_predictive-search.scss new file mode 100644 index 00000000..9f4d362b --- /dev/null +++ b/src/css/_sections/header/_predictive-search.scss @@ -0,0 +1,189 @@ +.predictive-search-container { + position: absolute; + z-index: 99; + bottom: 1px; + left: 0; + transform: translateY(100%); + width: 100vw; + max-height: 0; + background-color: var(--header-background-color); + visibility: hidden; + opacity: 0; + transition: all 0.25s ease-in-out; + padding-block: 32px; + + @media #{$m-xl} { + padding-block: 16px; + } + + &[open] { + visibility: visible; + opacity: 1; + max-height: 100vh; + height: auto; + + @media #{$m-xl} { + max-height: 100vh; + height: calc(100vh - 150px); + } + } + + &__inner-wrapper { + overflow-y: auto; + max-height: calc(100vh - 200px); + height: 100%; + padding-bottom: 80px; + + /* Custom scrollbar styling */ + &::-webkit-scrollbar { + width: 6px; + } + + &::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.1); + border-radius: 3px; + } + + &::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); + border-radius: 3px; + + &:hover { + background: rgba(255, 255, 255, 0.5); + } + } + + /* Firefox scrollbar styling */ + scrollbar-width: thin; + scrollbar-color: rgba(255, 255, 255, 0.3) rgba(255, 255, 255, 0.1); + } + + &__inner { + max-width: 500px; + margin: 0 auto; + } + + &__title { + text-align: center; + } + + .title-bg { + margin-bottom: 5rem; + + @media #{$m-xl} { + margin-bottom: 2rem; + } + } + + .title-bg > span:before { + background-color: var(--header-accent-color); + } + + &__search { + margin-bottom: 3rem; + + @media #{$m-xl} { + margin-bottom: 1rem; + } + } + + .label { + display: flex; + align-items: center; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); + padding-bottom: 0; + } + + .input { + border-bottom: none; + } + + &__recommendations { + display: grid; + } + + &__recommendation { + border-bottom: 1px solid rgba(255, 255, 255, 0.3); + padding: 1rem 0; + + @media #{$m-xl} { + padding: 0.2rem 0; + } + + .link { + display: flex; + align-items: center; + gap: 2rem; + } + } + + .popover__close-button svg, + .remove-search-input svg { + width: 24px; + height: 24px; + + @media #{$m-xl} { + width: 16px; + height: 16px; + } + } + + .button::before { + background-color: var(--header-accent-color); + } + + .button::after { + background-color: var(--header-hover-color); + } + + .product-card-list--simple { + margin-bottom: 5rem; + + @media #{$m-xl} { + margin-bottom: 2rem; + } + } + + .predictive-search-results.no-results { + display: flex; + justify-content: space-between; + align-items: center; + } + + .predictive-search-container__recommendation-image { + width: 120px; + height: 120px; + object-fit: contain; + flex-shrink: 0; + + @media #{$m-xl} { + width: 60px; + height: 60px; + } + } + + .popover__overlay { + display: block; + bottom: 0; + transform: translateY(100%); + background-color: rgba(0, 0, 0, 0.2); + content: ""; + height: 100vh; + left: 0; + opacity: 0; + position: absolute; + -webkit-transition: + opacity 0.6s ease-in-out, + visibility 0.6s ease-in-out; + transition: all 0.25s ease-in-out; + visibility: hidden; + width: 100%; + } + + &[open] > .popover__overlay { + opacity: 1; + background: rgba(0, 0, 0, 0.4); + visibility: visible; + backdrop-filter: blur(3px); + } +} diff --git a/src/css/_sections/home/_hero.scss b/src/css/_sections/home/_hero.scss new file mode 100644 index 00000000..d6e1ea66 --- /dev/null +++ b/src/css/_sections/home/_hero.scss @@ -0,0 +1,125 @@ +.hero { + position: relative; + color: rgb(var(--color-text)); + + .hero__content { + display: flex; + } + + .hero__content-text { + position: absolute; + padding: 40px; + width: 100%; + z-index: 1; + display: flex; + flex-direction: column; + gap: 24px; + --translate-x: 0; + --translate-y: 0; + transform: translate(var(--translate-x), var(--translate-y)); + + .button { + max-width: 438px; + width: 100%; + text-align: center; + + @media #{$no-fw} { + max-width: 20vw; + } + + @media #{$m-xxl} { + max-width: 278px; + } + + @media #{$m-l} { + max-width: 203px; + } + } + } + + @media #{$no-m-xl} { + .hero__content-text--left { + text-align: left; + align-items: flex-start; + left: 0; + } + .hero__content-text--right { + text-align: right; + align-items: flex-end; + right: 0; + } + .hero__content-text--center { + text-align: center; + align-items: center; + left: 50%; + --translate-x: -50%; + } + + .hero__content-text--top { + top: 50px; + } + .hero__content-text--bottom { + bottom: 50px; + } + .hero__content-text--middle { + top: 50%; + --translate-y: -50%; + } + } + + @media #{$m-l} { + .hero__content-text-mobile--left { + text-align: left; + align-items: flex-start; + left: 0; + } + .hero__content-text-mobile--right { + text-align: right; + align-items: flex-end; + right: 0; + } + .hero__content-text-mobile--center { + text-align: center; + align-items: center; + left: 50%; + --translate-x: -50%; + } + + .hero__content-text-mobile--top { + top: 50px; + } + .hero__content-text-mobile--bottom { + bottom: 50px; + } + .hero__content-text-mobile--middle { + top: 50%; + --translate-y: -50%; + } + } + + .hero__content-image { + width: 100%; + aspect-ratio: var(--desktop-aspect-ratio); + position: relative; + overflow: hidden; + + @media (max-width: 768px) { + aspect-ratio: var(--mobile-aspect-ratio); + } + } + + .hero__image { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 0; + position: absolute; + top: 0; + left: 0; + } + + .base-triangular-line { + transform: rotate(0); + bottom: 0; + } +} diff --git a/src/css/_sections/home/_home-products.scss b/src/css/_sections/home/_home-products.scss new file mode 100644 index 00000000..d75e5b2b --- /dev/null +++ b/src/css/_sections/home/_home-products.scss @@ -0,0 +1,120 @@ +.home-products__container { + position: relative; + padding-top: 120px; + padding-bottom: 120px; + + @media #{$m-xl} { + padding-bottom: 0; + padding-top: 60px; + } + + .swiper-container { + margin-left: auto; + margin-right: auto; + position: relative; + overflow: hidden; + list-style: none; + z-index: 1; + } +} + +.home-products__title { + max-width: 704px; + margin: 0 auto; + text-align: center; + + @media #{$no-m-xl} { + padding-bottom: 1vh; + } + + @media #{$no-l} { + max-width: 720px; + } + + @media #{$no-fw} { + max-width: 39.65vw; + padding-bottom: 0; + } + + @media #{$m-xl} { + padding-bottom: 70px; + } + + @media all and (device-width: 768px) and (device-height: 1024px) and (orientation: portrait) { + padding-bottom: 10vh; + } + + @media all and (device-width: 1024px) and (device-height: 1366px) and (orientation: portrait) { + padding-bottom: 10vh; + } + + @media (max-width: 1366px) { + font-size: 55px; + } + + @media (max-width: 767px) { + font-size: 40px; + } +} + +.home-products__button { + opacity: 0; + width: 100%; + max-width: 438px; + margin-top: 50px; + transition: opacity 0.25s ease-in-out; + + @media #{$no-l} { + margin-top: 1vh; + } + + @media #{$no-fw} { + max-width: 20vw; + margin-top: 4vw; + } + + @media #{$m-xxl} { + max-width: 278px; + margin-top: 24px; + } + + @media #{$m-l} { + max-width: 203px; + } +} + +.home-products__slider { + .swiper-slide { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + transition: all 0.25s ease-in-out; + + &.swiper-slide-active { + transform: scale(1); + + .home-products__button { + opacity: 1; + } + } + + &.swiper-slide-prev, + &.swiper-slide-next { + transform: scale(0.8); + } + } + + @media #{$m-xl} { + padding-bottom: 120px; + } + + @media #{$no-fw} { + padding-bottom: 30px; + + .swiper-slide { + padding-left: 4%; + padding-right: 4%; + } + } +} diff --git a/src/css/_sections/home/_home-ticker.scss b/src/css/_sections/home/_home-ticker.scss new file mode 100644 index 00000000..5228c49d --- /dev/null +++ b/src/css/_sections/home/_home-ticker.scss @@ -0,0 +1,57 @@ +.home-ticker { + [data-ticker="item"] { + transition: transform 0.4s ease-out; + } +} + +.home-ticker__container { + position: relative; + overflow: hidden; + + @media #{$no-m} { + padding-top: 120px; + padding-bottom: 120px; + } + + @media #{$m-xxl} { + padding-top: 60px; + padding-bottom: 60px; + } +} + +.ticker { + display: inline-block; + padding-right: 90%; + white-space: nowrap; + + @media #{$m-xl} { + padding-right: 80%; + } +} + +.ticker-wrap { + width: 100%; + box-sizing: content-box; + + &.ticker-wrap--revert { + padding-left: 0; + } + + @media #{$m-xl} { + } +} + +.ticker__item { + font-size: 200px; + font-weight: 700; + line-height: 1.1; + color: #fff; + + @media #{$m-xxl} { + font-size: 150px; + } + + @media #{$m-xl} { + font-size: 64px; + } +} diff --git a/src/css/_sections/home/_richtext.scss b/src/css/_sections/home/_richtext.scss new file mode 100644 index 00000000..e46ebb2a --- /dev/null +++ b/src/css/_sections/home/_richtext.scss @@ -0,0 +1,77 @@ +.richtext { + padding-top: 50px; +} + +.richtext__container { + display: flex; + flex-direction: column; + align-items: center; + max-width: 778px; + padding-top: 54px; + padding-bottom: 64px; + text-align: center; + + @media #{$no-m} { + padding-top: 100px; + padding-bottom: 120px; + } + + @media #{$no-fw} { + max-width: 30vw; + } +} + +.richtext__title { + padding-bottom: 33px; + + @media #{$m-xxl} { + max-width: 81%; + } +} + +.richtext__hover-img { + position: absolute; + right: 30px; + visibility: hidden; + opacity: 0; + transition: all 0.25s ease-in-out; +} + +.richtext__text { + position: relative; + max-width: 438px; + margin: 0 auto; + color: #ffffff; + + &.richtext__text--first { + padding-bottom: 32px; + } + + .tooltip { + text-decoration: underline; + + &:hover { + cursor: pointer; + + .richtext__hover-img { + z-index: 1; + visibility: visible; + opacity: 1; + } + } + } + + @media #{$no-fw} { + max-width: 30vw; + } +} + +.richtext__button { + width: 100%; + max-width: 438px; + margin-top: 67px; + + @media #{$no-fw} { + max-width: none; + } +} diff --git a/src/css/_sections/pages/404/_index.scss b/src/css/_sections/pages/404/_index.scss new file mode 100644 index 00000000..c90b04af --- /dev/null +++ b/src/css/_sections/pages/404/_index.scss @@ -0,0 +1,101 @@ +.not-found__container { + display: flex; + flex-direction: column; + align-items: center; +} + +.not-found__img { + position: relative; + display: flex; +} + +.eyes { + position: absolute; + top: 25%; + z-index: 1; + display: flex; + justify-content: center; + align-items: center; + width: 150px; + height: 150px; + background-color: #ffffff; + border-radius: 50%; + + &.eyes--left { + left: 210px; + } + + &.eyes--right { + right: 90px; + } + + @media #{$xl} { + &.eyes--left { + left: 210px; + } + + &.eyes--right { + right: 90px; + } + } + + @media #{$m-xl} { + width: 80px; + height: 80px; + + &.eyes--left { + left: 110px; + } + + &.eyes--right { + right: 64px; + } + } + + @media #{$no-fw} { + width: 250px; + height: 250px; + + &.eyes--left { + left: 285px; + } + + &.eyes--right { + right: 135px; + } + } + + @media #{$no-qhd} { + width: 290px; + height: 290px; + + &.eyes--left { + left: 350px; + } + + &.eyes--right { + right: 160px; + } + } +} + +.eyes__pupil { + width: 60px; + height: 60px; + + .icon-404-pupils { + width: 100%; + height: 100%; + color: #000000; + } + + @media #{$m-xl} { + width: 30px; + height: 30px; + } + + @media #{$no-fw} { + width: 90px; + height: 90px; + } +} diff --git a/src/css/_sections/pages/about-us/_index.scss b/src/css/_sections/pages/about-us/_index.scss new file mode 100644 index 00000000..1507962a --- /dev/null +++ b/src/css/_sections/pages/about-us/_index.scss @@ -0,0 +1,88 @@ +.about-us { + @media #{$m-xxl} { + .title-wrapper { + padding-bottom: 120px; + } + } +} + +.about-us__head-title { + position: relative; + font-weight: 700; + + .emoji { + font-weight: normal; + } +} + +.about-us__head-img { + position: absolute; + visibility: hidden; + opacity: 0; + transition: all 0.25s ease-in-out; + + &[data-tooltip-img="1"] { + top: 52%; + right: 43%; + min-width: 252px; + } + &[data-tooltip-img="2"] { + top: -8vw; + right: 43%; + min-width: 243px; + } + + @media #{$no-fw} { + &[data-tooltip-img="1"] { + min-width: 378px; + } + &[data-tooltip-img="2"] { + top: -9vw; + min-width: 365px; + } + } + + @media #{$m-xl} { + &[data-tooltip-img="2"] { + top: -340px; + left: 0; + right: auto; + } + } + + @media #{$m-l} { + &[data-tooltip-img="2"] { + top: 0; + left: 50%; + transform: translate(-50%, 0); + } + } + + @media (max-width: 406px) { + &[data-tooltip-img="1"] { + left: 0; + right: 0; + } + } +} + +[data-tooltip] { + position: relative; + text-decoration: underline; + + &:hover { + cursor: pointer; + + .about-us__head-img { + z-index: 3; + visibility: visible; + opacity: 1; + } + } +} + +@media #{$m-l} { + [data-tooltip="2"] { + position: initial; + } +} diff --git a/src/css/_sections/pages/community/_form-inline-style.scss b/src/css/_sections/pages/community/_form-inline-style.scss new file mode 100644 index 00000000..4c167f67 --- /dev/null +++ b/src/css/_sections/pages/community/_form-inline-style.scss @@ -0,0 +1,255 @@ +// Form Builder with File Upload Community (Code insert in to form app) + +#formGeneratorForm { + max-width: 750px; + margin: 0 auto; +} + +#formGeneratorForm .form-group.textarea { + min-height: 355px; + margin-bottom: 60px; + padding-top: 7%; + padding-left: 30%; + padding-right: 22%; + background-image: url("https://cdn.shopify.com/s/files/1/0601/8256/0962/files/textarea-bg-2x.png?v=1640187699"); + background-repeat: no-repeat; + background-size: contain; + background-position: center; +} + +#formGeneratorForm .form-group.textarea textarea { + width: 100%; + min-height: 153px; + padding: 15px; + resize: none; + border-color: #000; + font-size: 24px; + font-weight: bold; + line-height: 1.1; + color: #ffffff; +} + +#formGeneratorForm .form-group.textarea textarea::placeholder { + color: #ffffff; +} + +#formGeneratorForm input.form-control { + min-height: 56px; + padding-top: 16px; + padding-bottom: 16px; + padding-left: 0; + border-color: transparent; + border-bottom-color: #fff; + font-size: 16px; + line-height: 1.4; + color: #ffffff; + box-shadow: none; +} + +#formGeneratorForm input.form-control::placeholder { + color: #ffffff; +} + +#formGeneratorForm button.btn[type="submit"] { + position: relative; + overflow: hidden; + z-index: 0; + display: inline-block; + padding: 16px 53px; + border: none; + outline: none; + background: transparent !important; + font-style: normal; + font-size: 16px; + font-weight: 700; + line-height: 24px; + text-decoration: none; + color: #fff !important; + transition: all 0.5s; + border-radius: 4px; + box-shadow: none; + cursor: pointer; +} + +button.btn[type="submit"]::after, +button.btn[type="submit"]::before { + content: ""; + position: absolute; + top: 0; + left: 0; + z-index: -1; + display: block; + width: 100%; + height: 100%; + transform: translate3D(-101%, 0, 0); + transition: all 0.5s; +} + +button.btn[type="submit"]::after { + background-color: #f3587f; +} + +button.btn[type="submit"]::before { + z-index: -2; + background-color: #2ac2bd; + transform: translate3D(0, 0, 0); +} + +#formGeneratorForm button.btn[type="submit"]:hover, +#formGeneratorForm button.btn[type="submit"]:focus { + border: none; + background: transparent; +} + +.btn[type="submit"]:hover::after, +.btn[type="submit"]:focus::after { + transform: translate3D(0, 0, 0); + transition: all 0.5s; +} + +.after_form_submit .form_generater_form_div h2 { + color: #ffffff; +} + +#formGeneratorForm input.form-control#form_input_3 { + border-bottom-color: transparent; +} + +@media (max-width: 991px) { + #formGeneratorForm { + max-width: 513px; + } + + #formGeneratorForm .form-group.textarea { + min-height: 240px; + padding-left: 27%; + padding-right: 18%; + } +} + +@media (max-width: 575px) { + #formGeneratorForm { + max-width: 358px; + } + + #formGeneratorForm input.form-control { + padding-right: 0; + font-family: Arial, Helvetica, sans-serif !important; + font-size: 13px; + font-weight: 300; + } + + #formGeneratorForm input.form-control::placeholder, + #formGeneratorForm input.form-control::-ms-input-placeholder { + font-family: Arial, Helvetica, sans-serif !important; + font-weight: 300 !important; + } + + .formElement_1.form-group.col-sm-6 { + padding-right: 10px; + } + + .formElement_2.form-group.col-sm-6 { + padding-left: 10px; + } + + #formGeneratorForm .form-group.textarea { + min-height: 180px; + padding-left: 27%; + padding-right: 18%; + } + + #formGeneratorForm .form-group.textarea textarea { + min-height: 115px; + } +} + +@media (max-width: 480px) { + #formGeneratorForm .form_container .form-group.col-sm-6 { + width: 50%; + } +} + +@media (min-width: 992px) { + #formGeneratorForm button.btn[type="submit"] { + max-width: 438px; + } + + #form_input_1 { + margin-left: auto; + } + + #form_input_3 { + margin-left: auto; + margin-right: auto; + } + + input.form-control { + width: 65%; + } + + input#form_input_1, + input#form_input_2 { + width: 63%; + } + + #formGeneratorForm .form-group.textarea textarea { + font-size: 40px; + min-height: 225px; + } +} + +@media (min-width: 1920px) { + #formGeneratorForm { + max-width: 1000px; + } + + #formGeneratorForm .form-group.textarea { + min-height: 454px; + padding-top: 10%; + padding-left: 27%; + padding-right: 20%; + } + + #formGeneratorForm .form-group.textarea textarea { + min-height: 250px; + padding: 30px; + } + + input.form-control { + width: 74%; + min-height: 3vw; + font-size: 1.2vw; + } + + input#form_input_1, + input#form_input_2 { + width: 73%; + } + + #formGeneratorForm button.btn[type="submit"] { + max-width: 74%; + font-size: 1.2vw; + line-height: 1.4; + } + + .after_form_submit .form_generater_form_div h2 { + font-size: 2vw; + } +} + +@media (min-width: 2560px) { + #formGeneratorForm { + max-width: 1500px; + } + + #formGeneratorForm .form-group.textarea { + min-height: 704px; + padding-left: 30%; + } + + #formGeneratorForm .form-group.textarea textarea { + min-height: 398px; + font-size: 2.2vw; + } +} diff --git a/src/css/_sections/pages/community/_index.scss b/src/css/_sections/pages/community/_index.scss new file mode 100644 index 00000000..8f6f4b3f --- /dev/null +++ b/src/css/_sections/pages/community/_index.scss @@ -0,0 +1,18 @@ +.community__form { + @media #{$m-xl} { + padding-left: 15px; + padding-right: 15px; + } + + @media #{$no-qhd} { + iframe { + min-height: 920px; + } + } + + @media (min-width: 2816px) { + iframe { + min-height: 1210px; + } + } +} diff --git a/src/css/_sections/pages/contact/_contact-form.scss b/src/css/_sections/pages/contact/_contact-form.scss new file mode 100644 index 00000000..9995cb0f --- /dev/null +++ b/src/css/_sections/pages/contact/_contact-form.scss @@ -0,0 +1,24 @@ +.contact-form__button { + margin-top: 24px; + max-width: 300px; +} + +.contact-form { + .title-wrapper { + max-width: 1200px; + padding-inline: 0; + + .title-wrapper__title { + margin-bottom: 24px; + } + } + .title-wrapper .title-wrapper__subtitle { + text-align: left; + max-width: none; + } +} + +.contact-form__form { + max-width: 1200px; + margin: auto; +} diff --git a/src/css/_sections/pages/contact/_index.scss b/src/css/_sections/pages/contact/_index.scss new file mode 100644 index 00000000..7f33164d --- /dev/null +++ b/src/css/_sections/pages/contact/_index.scss @@ -0,0 +1,10 @@ +.contact__form { + max-width: 470px; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px; + + @media #{$no-fw} { + max-width: 28vw; + } +} diff --git a/src/css/_sections/pages/guidelines/_index.scss b/src/css/_sections/pages/guidelines/_index.scss new file mode 100644 index 00000000..42ffa023 --- /dev/null +++ b/src/css/_sections/pages/guidelines/_index.scss @@ -0,0 +1,60 @@ +.guidelines { + overflow: hidden; +} +.guidelines__container { + position: relative; +} + +.guidelines__img { + display: none; + + @media #{$no-m-xl} { + position: absolute; + display: inline-block; + min-width: 160px; + min-height: 160px; + + &.guidelines__img--left { + bottom: 10%; + left: -37px; + } + + &.guidelines__img--right { + top: 0; + right: -37px; + } + } + + @media #{$no-l} { + &.guidelines__img--left { + bottom: 10%; + left: 8%; + } + + &.guidelines__img--right { + top: -25%; + right: 2vw; + } + } + + @media #{$no-xl} { + &.guidelines__img--left { + left: 15vw; + } + + &.guidelines__img--right { + top: -25%; + right: 6vw; + } + } + + @media #{$no-fw} { + min-width: 240px; + min-height: 240px; + + &.guidelines__img--right { + top: -20%; + right: 10vw; + } + } +} diff --git a/src/css/_sections/pages/image-with-text/_index.scss b/src/css/_sections/pages/image-with-text/_index.scss new file mode 100644 index 00000000..0d073545 --- /dev/null +++ b/src/css/_sections/pages/image-with-text/_index.scss @@ -0,0 +1,97 @@ +.image-with-text { + color: rgb(var(--color-text)); + + .title-wrapper { + padding-bottom: 0; + } + + .content-wrapper { + padding: 40px 0; + max-width: 1500px; + } + + &__wrapper { + display: flex; + gap: 2rem; + + @media #{$m-xl} { + flex-direction: column; + } + } + + &__wrapper--reverse { + flex-direction: row-reverse; + justify-content: space-between; + + @media #{$m-xl} { + flex-direction: column; + } + } + + .image-with-text__items { + display: grid; + gap: 40px; + } + + &__image { + flex-shrink: 0; + width: 40%; + aspect-ratio: 1/1; + max-width: 500px; + position: relative; + + @media #{$m-xl} { + width: 100%; + max-width: 100%; + } + + img { + width: 100%; + height: 100%; + object-fit: contain; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + } + + .image-with-text__title { + margin-top: 0; + margin-bottom: 2rem; + + @media #{$no-m-xl} { + font-size: 42px; + } + } + + .image-with-text__content { + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .image-with-text__content-text { + font-size: 24px; + } + + .button { + margin-top: 20px; + max-width: 300px; + width: 100%; + text-align: center; + + @media #{$no-fw} { + max-width: 20vw; + } + + @media #{$m-xxl} { + max-width: 278px; + } + + @media #{$m-l} { + max-width: 203px; + } + } +} diff --git a/src/css/_sections/pages/jobs/_index.scss b/src/css/_sections/pages/jobs/_index.scss new file mode 100644 index 00000000..bc044624 --- /dev/null +++ b/src/css/_sections/pages/jobs/_index.scss @@ -0,0 +1,70 @@ +.jobs { + overflow: hidden; +} + +.jobs__container { + position: relative; +} + +.jobs__img { + display: none; + + @media #{$no-m-xl} { + position: absolute; + display: inline-block; + min-width: 160px; + min-height: 160px; + + &.jobs__img--left { + top: 0; + left: -37px; + } + + &.jobs__img--right { + top: 120px; + right: -37px; + } + } + + @media #{$no-l} { + &.jobs__img--left { + top: -80px; + left: 8%; + } + + &.jobs__img--right { + top: 80px; + right: 2vw; + } + } + + @media #{$no-xl} { + &.jobs__img--left { + left: 15vw; + } + + &.jobs__img--right { + right: 6vw; + } + } + + @media #{$no-fw} { + min-width: 240px; + min-height: 240px; + + &.jobs__img--left { + top: -120px; + } + + &.jobs__img--right { + top: 7vw; + right: 10vw; + } + } + + @media #{$no-qhd} { + &.jobs__img--left { + top: -160px; + } + } +} diff --git a/src/css/_sections/pages/logo-list/_index.scss b/src/css/_sections/pages/logo-list/_index.scss new file mode 100644 index 00000000..98509be9 --- /dev/null +++ b/src/css/_sections/pages/logo-list/_index.scss @@ -0,0 +1,24 @@ +.logo-list { + + .swiper-wrapper { + align-items: center; + } + + &__item { + display: flex; + justify-content: center; + } + + &__link { + display: block; + width: 100%; + height: 100%; + max-width: 400px; + } + + &__image { + width: 100%; + height: 100%; + object-fit: contain; + } +} \ No newline at end of file diff --git a/src/css/_sections/pages/main/_index.scss b/src/css/_sections/pages/main/_index.scss new file mode 100644 index 00000000..46527cf1 --- /dev/null +++ b/src/css/_sections/pages/main/_index.scss @@ -0,0 +1,9 @@ +.page { + .title-wrapper { + padding-bottom: 0; + max-width: 1000px; + } + .title-wrapper__subtitle { + max-width: none; + } +} \ No newline at end of file diff --git a/src/css/_sections/pages/methods/_index.scss b/src/css/_sections/pages/methods/_index.scss new file mode 100644 index 00000000..df1bf01b --- /dev/null +++ b/src/css/_sections/pages/methods/_index.scss @@ -0,0 +1,113 @@ +.methods { + position: relative; +} + +.methods__container { + position: relative; +} + +.methods__img { + display: none; + + @media #{$no-m-xl} { + position: absolute; + display: inline-block; + min-width: 160px; + min-height: 160px; + + &.methods__img--left-top { + top: 17%; + left: -37px; + } + + &.methods__img--right-top { + top: 15%; + right: -37px; + } + + &.methods__img--left-bottom { + bottom: 20%; + left: -37px; + } + + &.methods__img--right-bottom { + top: 20%; + right: -37px; + } + } + + @media #{$no-l} { + &.methods__img--left-top { + top: 20%; + left: 12vw; + } + + &.methods__img--right-top { + top: 20%; + right: 10vw; + } + + &.methods__img--left-bottom { + bottom: 5%; + left: 5vw; + } + + &.methods__img--right-bottom { + top: 10%; + right: 2vw; + } + } + + @media #{$no-xl} { + &.methods__img--left-top { + left: 17vw; + } + + &.methods__img--right-top { + right: 20vw; + } + + &.methods__img--right-bottom { + right: 12vw; + } + } + + @media #{$no-fw} { + min-width: 240px; + min-height: 240px; + + &.methods__img--left-top { + left: 18vw; + } + + &.methods__img--right-top { + right: 17vw; + } + + &.methods__img--right-bottom { + right: 10vw; + } + } + + @media #{$no-qhd} { + &.methods__img--right-top, + &.methods__img--left-top { + top: 17%; + } + } +} + +.methods__rte { + color: #ffffff; + + p { + font-size: 16px; + line-height: 1.5; + } + + @media #{$no-fw} { + p { + font-size: 1vw; + } + } +} diff --git a/src/css/_sections/pages/signup-with-image/_index.scss b/src/css/_sections/pages/signup-with-image/_index.scss new file mode 100644 index 00000000..38f762eb --- /dev/null +++ b/src/css/_sections/pages/signup-with-image/_index.scss @@ -0,0 +1,44 @@ +.signup-with-image { + + .container { + .title-wrapper { + max-width: none; + } + } + + &__content { + padding: 1rem 0; + display: flex; + flex-direction: column; + justify-content: center; + + .title-wrapper { + @media #{$no-m-xl} { + padding-bottom: 60px; + } + + @media #{$m-xl} { + padding-bottom: 20px; + } + } + } + + img { + height: 100%; + width: 100%; + object-fit: cover; + } + + .input-checkbox { + position: relative; + margin-top: 2rem; + } + + .label { + padding: 0; + } + + .button--space { + margin-bottom: 0; + } +} diff --git a/src/css/_sections/pages/terms/_terms.scss b/src/css/_sections/pages/terms/_terms.scss new file mode 100644 index 00000000..f46ecbb4 --- /dev/null +++ b/src/css/_sections/pages/terms/_terms.scss @@ -0,0 +1,52 @@ +.terms { + position: relative; + + .title-wrapper__title { + display: none; + visibility: hidden; + + @media #{$no-m} { + display: block; + visibility: visible; + + &.title-wrapper__title--mobile { + display: none; + visibility: hidden; + } + } + + @media #{$m-xxl} { + &.title-wrapper__title--mobile { + display: block; + visibility: visible; + } + } + } +} + +.terms__container { + position: relative; + z-index: 1; +} + +.terms__img { + display: none; + visibility: hidden; + + &.terms__img--right { + top: 14%; + right: 0; + } + + @media #{$no-m-xl} { + position: absolute; + display: block; + visibility: visible; + } + + @media #{$l} { + &.terms__img--right { + right: -105px; + } + } +} diff --git a/src/css/_sections/pages/video/_index.scss b/src/css/_sections/pages/video/_index.scss new file mode 100644 index 00000000..27071625 --- /dev/null +++ b/src/css/_sections/pages/video/_index.scss @@ -0,0 +1,26 @@ +.video { + position: relative; + .video-wrapper { + position: relative; + width: 100%; + padding-top: 56.25%; /* 16:9 aspect ratio */ + + @media #{$m-xl} { + padding-top: 125%; /* 5:4 aspect ratio */ + } + + video { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + } + + .base-triangular-line { + transform: rotate(0); + bottom: 0; + } +} diff --git a/src/css/_sections/product/_comparison-slider.scss b/src/css/_sections/product/_comparison-slider.scss new file mode 100644 index 00000000..ae58c751 --- /dev/null +++ b/src/css/_sections/product/_comparison-slider.scss @@ -0,0 +1,68 @@ +.comparison-slider { + width: 100%; + padding-bottom: 40px; + display: flex; + justify-content: center; + position: relative; + z-index: 1; +} + +.comparison-slider .comparison-slider__wrapper { + display: flex; + position: relative; +} + +.comparison-slider .comparison-slider__image { + z-index: 1; + width: 100%; +} + +.comparison-slider .comparison-slider__image--top { + position: absolute; + z-index: 2; + overflow: hidden; + width: 50%; +} + +.comparison-slider img { + width: 700px; + max-width: 700px; + + @media #{$m-xl} { + width: 300px; + max-width: 300px; + } +} + +.comparison-slider #compare-slider-range { + -webkit-appearance: none; + cursor: ew-resize; + position: absolute; + z-index: 100; + width: 105%; + left: -2.5%; + top: 50%; + transform: translateY(-50%); + background-color: transparent; + outline: none; + display: block; +} + +.comparison-slider input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + border: none; + height: 36px; + width: 36px; + border-radius: 50%; + opacity: 1; + background: var(--section-background-color); + margin-top: -4px; + box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px; + position: relative; + z-index: 1; + + @media #{$m-xl} { + height: 24px; + width: 24px; + } +} diff --git a/src/css/_sections/product/_countdown-display.scss b/src/css/_sections/product/_countdown-display.scss new file mode 100644 index 00000000..f26c4171 --- /dev/null +++ b/src/css/_sections/product/_countdown-display.scss @@ -0,0 +1,36 @@ +.countdown { + padding: 16px 8px; + background-color: transparent; + border-radius: 4px; + margin: 1vw 0; + display: flex; + flex-direction: column; + align-items: center; + gap: 1rem; + font-weight: bolder; + + countdown-display { + display: flex; + gap: 40px; + + @media #{$m-xl} { + gap: 15px; + } + } + + &__heading { + text-align: center; + display: block; + } + + .countdown__timer-item { + display: flex; + flex-direction: column; + align-items: center; + width: 110%; + } + + .countdown__timer-item-data { + font-size: 18px; + } +} \ No newline at end of file diff --git a/src/css/_sections/product/_image-gallery.scss b/src/css/_sections/product/_image-gallery.scss new file mode 100644 index 00000000..8d17d295 --- /dev/null +++ b/src/css/_sections/product/_image-gallery.scss @@ -0,0 +1,89 @@ +.image-gallery { + .image-gallery__wrapper { + @media #{$no-m} { + display: flex; + flex-direction: column; + gap: 16px; + } + + .gallery-grid__wrapper { + position: relative; + width: 100%; + padding-bottom: 50%; /* 16:9 aspect ratio */ + + @media #{$m-xxl} { + padding-bottom: 125%; /* 16:9 aspect ratio */ + } + } + + .gallery-grid { + display: grid; + grid-template-columns: repeat( + 12, + 1fr + ); /* 24 columns, each 1/24th of the total width */ + grid-template-rows: repeat(2, 1fr); /* 2 rows */ + gap: 16px; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + + @media #{$m-xxl} { + grid-template-rows: repeat(4, 1fr); + gap: 8px; + padding: 0 4px; + } + } + + .gallery-item { + overflow-y: hidden; + border-radius: 4px; + position: relative; + } + + .gallery-item img, + .gallery-item video { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: var(--border-radius); + } + + .base-triangular-line { + bottom: 0; + transform: rotate(180deg) translateY(-100%); + } + } + + .image-gallery__tooltip-wrapper { + position: absolute; + width: 100%; + height: 100%; + top: 0; + pointer-events: none; + } + + .gallery-item__tooltip-wrapper { + position: absolute; + transition: opacity 0.3s ease; + transform: translate(-50%, -50%); + z-index: 10; + pointer-events: none; + + .gallery-item__tooltip { + padding: 32px; + max-width: 400px; + + @media #{$m-xxl} { + padding: 16px; + max-width: 250px; + } + } + } + + .image-gallery__button { + padding-top: 60px; + } +} diff --git a/src/css/_sections/product/_ingredients.scss b/src/css/_sections/product/_ingredients.scss new file mode 100644 index 00000000..551c3196 --- /dev/null +++ b/src/css/_sections/product/_ingredients.scss @@ -0,0 +1,156 @@ +.ingredients { + transition: all 0.25s ease-in-out; +} + +.ingredients__container { + padding-top: 105px; + + @media #{$m-xxl} { + padding-top: 60px; + padding-bottom: 60px; + } + + @media #{$no-m} { + padding-bottom: 119px; + } + + @media #{$no-fw} { + padding-top: 7vw; + padding-bottom: 7vw; + } +} + +.ingredients__title { + max-width: 672px; + margin: 0 auto; + padding-bottom: 120px; + text-align: center; + + @media #{$no-fw} { + max-width: 39.65vw; + } + + @media #{$l} { + max-width: 39.65vw; + } + + @media #{$m-xxl} { + padding-bottom: 60px; + } + + @media #{$m-xl} { + max-width: 85%; + } + + @media #{$m-l} { + max-width: none; + } +} + +.ingredients__gallery { + position: relative; + overflow: hidden; + + @media #{$no-m} { + max-width: 939px; + margin: 0 auto; + } + + @media #{$no-m-xl} { + .swiper-wrapper { + flex-wrap: wrap; + } + + .ingredients__slide { + width: 33.3333%; + } + } + + @media #{$no-fw} { + max-width: 45vw; + } + + @media #{$m-xl} { + margin-left: -32px; + margin-right: -32px; + } + + @media #{$m-l} { + margin-left: -16px; + margin-right: -16px; + } +} + +.ingredients-item { + position: relative; + display: flex; + justify-content: center; + align-items: center; + min-height: 202px; + width: 100%; + margin: 10px 0; + text-align: center; + + .ingredients-item__image-wrapper { + width: 60px; + height: 60px; + + @media #{$no-fw} { + width: 120px; + height: 120px; + } + + img { + width: 100%; + height: 100%; + object-fit: contain; + } + } + + .icon { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + width: 100%; + height: 100%; + filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(0deg); + animation-name: spin; + animation-duration: 23s; + animation-iteration-count: infinite; + animation-timing-function: linear; + + img { + width: 100%; + height: 100%; + object-fit: contain; + } + } + + @media #{$m-l} { + min-height: 180px; + } + + @media #{$no-fw} { + min-height: 260px; + } + + @media #{$no-qhd} { + min-height: 320px; + } + + @keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } + } +} + +//.ingredients-item__img { +// width: 100px; +// height: 100px; +//} diff --git a/src/css/_sections/product/_main-product.scss b/src/css/_sections/product/_main-product.scss new file mode 100644 index 00000000..ba176d6b --- /dev/null +++ b/src/css/_sections/product/_main-product.scss @@ -0,0 +1,10 @@ +.main-product { + background-color: transparent; + transition: background-color 0.25s ease-in-out; +} + +.main-product__images { + position: relative; + overflow: hidden; + padding-top: 86px; +} \ No newline at end of file diff --git a/src/css/_sections/product/_product-form.scss b/src/css/_sections/product/_product-form.scss new file mode 100644 index 00000000..8c02674d --- /dev/null +++ b/src/css/_sections/product/_product-form.scss @@ -0,0 +1,55 @@ +.main-product .product-form, .product-page .product-form__buttons { + @media #{$m-xxl} { + position: fixed; + bottom: 0; + left: 0; + z-index: 999999; + width: 100%; + padding: 32px; + transform: translateY(0); + transition: transform 0.3s ease; + } + + @media #{$m-xl} { + padding: 16px; + } +} + +.product-form__footer { + display: flex; + justify-content: space-between; + margin-bottom: 20px; + + @media #{$no-m} { + margin-bottom: 40px; + } +} + +.product-form__price { + color: #ffffff; + + &.product-form__price--old { + text-decoration: line-through; + } + + &.product-form__price__price--new { + margin-left: 25px; + } +} + +.product-form__quantity-wrapper { + display: inline-block; + + &.product-form__quantity-wrapper--hidden { + pointer-events: none; + } +} + +.product-form__button { + width: 100%; +} + +.product-form__button-price { + margin-right: 5px; + font-size: 110%; +} diff --git a/src/css/_sections/product/_product-gallery.scss b/src/css/_sections/product/_product-gallery.scss new file mode 100644 index 00000000..2354dd8a --- /dev/null +++ b/src/css/_sections/product/_product-gallery.scss @@ -0,0 +1,115 @@ +.product-page__gallery { + padding: 0; + width: 100%; + overflow: hidden; + + @media #{$m-xxl} { + margin-bottom: 20px; + } + + .product-gallery { + margin: 0; + position: relative; + + .swiper-container-wrapper { + position: relative; + display: flex; + justify-content: center; + transition: opacity 0.25s ease-in-out; + @media #{$m-xxl} { + flex-direction: column-reverse; + } + + @media #{$m-xxl} { + align-items: center; + } + } + + .product-gallery__slider { + position: relative; + overflow: hidden; + list-style: none; + padding: 0; + z-index: 1; + max-width: 80%; + + @media #{$no-m} { + margin-left: 20px; + max-width: 100%; + } + + @media #{$m-xxl} { + margin-left: 0; + margin-bottom: 10px; + } + + .swiper-slide { + display: flex; + justify-content: center; + align-items: center; + @media #{$m-xxl} { + height: auto; + } + } + + picture { + display: inline-block; + } + } + + picture { + width: 100%; + height: 100%; + + img { + width: 100%; + object-fit: contain; + } + } + + .product-gallery__slider-thumbnail { + position: relative; + overflow: hidden; + left: 0; + padding: 0; + flex-shrink: 0; + + .swiper-wrapper { + gap: 10px; + } + + @media #{$no-m} { + .swiper-wrapper { + flex-direction: column; + } + } + + .swiper-slide { + cursor: pointer; + width: 64px; + height: 64px; + } + + @media #{$m-xxl} { + width: 100%; + } + + picture { + flex-shrink: 0; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + width: 64px; + height: 64px; + border: 1px solid #fff; + padding: 5px; + + img { + height: 100%; + object-fit: cover; + } + } + } + } +} diff --git a/src/css/_sections/product/_product-images.scss b/src/css/_sections/product/_product-images.scss new file mode 100644 index 00000000..995e0314 --- /dev/null +++ b/src/css/_sections/product/_product-images.scss @@ -0,0 +1,227 @@ +.main-product__images { + .product-gallery { + position: relative; + margin-bottom: 100px; + + .swiper-container-wrapper { + position: relative; + display: flex; + flex-direction: column-reverse; + transition: opacity 0.25s ease-in-out; + } + + .swiper-container { + margin: 0; + position: relative; + overflow: hidden; + list-style: none; + padding: 0; + z-index: 1; + } + + .product-gallery__slider { + max-width: 550px; + + .swiper-slide { + display: flex; + justify-content: center; + align-items: center; + } + + picture { + display: inline-block; + } + } + + .product-gallery__slider-thumbnail { + min-height: 66px; + + .swiper-slide { + display: flex; + justify-content: center; + align-items: center; + min-width: 64px; + min-height: 64px; + + &:hover { + cursor: pointer; + } + } + + picture { + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + width: 64px; + height: 64px; + border: 1px solid #fff; + } + } + + @media #{$no-m} { + .product-gallery__slider-thumbnail { + position: absolute; + top: 0; + left: 10vw; + height: 100%; + max-height: 420px; + padding-right: 5vw; + } + + .swiper-container-wrapper { + flex-direction: row; + justify-content: center; + } + } + + @media #{$no-l} { + .product-gallery__slider { + max-width: 672px; + } + + .product-gallery__slider-thumbnail { + max-height: 440px; + } + } + + @media #{$no-xl} { + .product-gallery__slider-thumbnail { + left: 15vw; + } + } + + @media #{$no-fw} { + margin-bottom: 5vw; + + .product-gallery__slider { + max-width: 50vw; + } + + .product-gallery__slider-thumbnail { + max-height: 650px; + left: 10vw; + + .swiper-slide { + min-width: 120px; + min-height: 120px; + } + + picture { + width: 120px; + height: 120px; + } + } + } + + @media #{$no-qhd} { + .product-gallery__slider { + max-width: 40vw; + } + + .product-gallery__slider-thumbnail { + left: 15vw; + } + } + + @media #{$m-xxl} { + margin-bottom: 60px; + + .swiper-container-wrapper { + align-items: center; + } + + .product-gallery__slider { + margin-bottom: 60px; + } + + .product-gallery__slider-thumbnail { + max-width: 500px; + + .swiper-slide { + min-width: 32px; + min-height: 32px; + } + } + } + + @media #{$m-xl} { + .product-gallery__slider { + max-width: 480px; + } + + .product-gallery__slider-thumbnail { + min-width: 200px; + } + } + + @media #{$m-l} { + .product-gallery__slider { + max-width: 270px; + } + + .product-gallery__slider-thumbnail { + max-width: 300px; + + .swiper-slide { + min-width: 32px; + min-height: 32px; + } + + picture { + width: 32px; + height: 32px; + } + } + } + } + + .next-product { + position: absolute; + top: 18%; + right: -250px; + display: inline-block; + + @media #{$no-l} { + right: -199px; + } + + @media #{$no-fw} { + top: 23%; + right: -330px; + } + + @media #{$l} { + right: -280px; + } + + @media #{$m-xxl} { + right: -114px; + } + + @media #{$m-l} { + top: 11%; + right: -136px; + } + } + + @media screen and (min-width: 991px) { + .product-gallery__slider-thumbnail picture { + height: 60px !important; + width: 60px !important; + } + } + + @media screen and (max-width: 990px) { + .product-gallery__slider-thumbnail picture { + height: 70px !important; + width: 70px !important; + } + } + + .product-gallery .product-gallery__slider-thumbnail img { + height: 100%; + width: 100%; + object-fit: contain; + } +} diff --git a/src/css/_sections/product/_product-info.scss b/src/css/_sections/product/_product-info.scss new file mode 100644 index 00000000..47a45964 --- /dev/null +++ b/src/css/_sections/product/_product-info.scss @@ -0,0 +1,68 @@ +//.product-info {} + +.product-info__container { + width: 100%; + max-width: 938px; + margin: 0 auto; + padding-bottom: 20px; + + @media #{$no-fw} { + max-width: 50vw; + } +} + +.product-info__row { + display: flex; + + @media #{$m-xxl} { + flex-direction: column; + } +} + +.product-info__col { + flex: 1 0 0; + padding-left: 16px; + padding-right: 16px; +} + +.product-info__title { + margin-bottom: 48px; + + @media #{$no-fw} { + margin-bottom: 2vw; + } +} + +.product-info__description { + color: #ffffff; + + p { + padding-bottom: 20px; + + @media #{$no-fw} { + padding-bottom: 1vw; + } + } +} + +.product-info__rating { + margin-bottom: 30px; + font-size: 12px; + font-weight: 400; + line-height: 1.3; + color: #ffffff; + + @media #{$no-fw} { + font-size: 0.8vw; + } +} + +.product-info__shipping { + display: block; + font-size: 18px; + margin-bottom: 20px; + + @media #{$m-xl} { + font-size: 12px; + } +} \ No newline at end of file diff --git a/src/css/_sections/product/_product-page.scss b/src/css/_sections/product/_product-page.scss new file mode 100644 index 00000000..e44ad1f3 --- /dev/null +++ b/src/css/_sections/product/_product-page.scss @@ -0,0 +1,42 @@ +.product-page { + .container--two-columns { + @media #{$no-m} { + gap: 4rem; + } + } + + .product-form__button-wrapper { + display: flex; + gap: 20px; + align-items: center; + } + + .quantity-element { + border: 1px solid white; + width: auto; + height: 100%; + flex: 0 0 30%; + + &__button { + height: 100%; + } + } + + .quantity-element__button { + flex: 0 0 33.3%; + display: flex; + } + + .quantity-element__button[data-quantity="decrement"] { + border-right: 1px solid white; + } + + .quantity-element__button[data-quantity="increment"] { + border-left: 1px solid white; + } + + .product-form__meta-price { + text-align: left; + margin-bottom: 10px; + } +} diff --git a/src/css/_sections/product/_review-slider.scss b/src/css/_sections/product/_review-slider.scss new file mode 100644 index 00000000..2443cb1d --- /dev/null +++ b/src/css/_sections/product/_review-slider.scss @@ -0,0 +1,402 @@ +// TODO: This is a mess + +@media (min-width: 320px) and (max-width: 480px) { + .review_wrapper .container { + max-width: 100% !important; + } +} + +.review_wrapper .container .review_inner h2.section_title { + margin-bottom: 35px; + position: relative; + z-index: 1; + font-weight: 700; + font-size: 64px; + line-height: 64px; + text-align: center; + color: #ffffff; +} + +.review_wrapper .container .review_inner .section_title--underline:before { + content: ""; + position: absolute; + background: #2ac2bd; + bottom: -2px; + left: -2%; + z-index: -1; + display: block; + width: 104%; + height: 65%; + transition: background-color 0.25s ease-in; +} + +@media screen and (max-width: 768px) { + .review_wrapper .container .review_inner h2.section_title { + margin-bottom: 35px; + position: relative; + font-weight: 700; + font-size: 38px; + line-height: 38px; + } +} +.review_wrapper .container .review_inner h2.section_title:after { + display: block; + max-width: 270px; + left: 0px; + z-index: 1; +} + +.review_wrapper { + width: 100%; + display: inline-block; + background: #f3587f; + padding-top: 50px; + + @media #{$m-xl} { + padding-top: 0; + } + + .base-triangular-line { + color: #f3587f; + } +} +.review_wrapper .container { + max-width: 85%; +} +.review_wrapper .container .review_inner { + width: 100%; + display: inline-block; + padding: 70px 0 90px 0; +} +.review_wrapper .container .review_inner h2.section_title span { + position: relative; + z-index: 99; +} + +.review_wrapper #section-cta { + display: none; +} + +.review_inner .custom_write_reviews .jdgm-histogram.jdgm-temp-hidden, +.review_inner .jdgm-rev-widg__summary, +.review_inner .jdgm-rev-widg__title { + display: none !important; +} + +.jdgm-preview-badge .jdgm-star { + color: #fff !important; + font-size: 17px; +} +.jdgm-widget span.jdgm-prev-badge__text { + font-size: 18px; + color: #fff; +} +.jdgm-preview-badge .jdgm-star { + color: #fff !important; + font-size: 17px !important; +} +span.jdgm-prev-badge__stars { + margin: 0 10px 0 0; + padding: 0; +} +.jdgm-carousel--card-theme .jdgm-carousel-item__review { + text-align: left; + height: auto !important; +} + +.jdgm-carousel--card-theme .jdgm-carousel-item__inner-wrapper { + height: auto !important; +} +.jdgm-carousel__item-wrapper { + height: auto !important; +} +.jdgm-carousel-wrapper { + width: 100% !important; + margin: auto; + padding: 0px 0 !important; +} +.jdgm-carousel-wrapper .jdgm-carousel-title-and-link { + display: none !important; +} +.jdgm-carousel-item__review-title { + font-weight: bold; + color: #fff; + font-size: 18px; +} +.jdgm-carousel-item__review-body p { + color: #fff; + font-size: 18px !important; +} +.jdgm-carousel-item__reviewer-name.jdgm-ellipsis { + font-size: 19px !important; + color: #fff !important; + padding-top: 7px; + padding-left: 6px; + opacity: 1; + width: 7ch; +} + +a.jdgm-carousel-item__product.jdgm-ellipsis { + color: #fff; + font-size: 15px !important; + display: none; +} +.jdgm-carousel-item__timestamp.jdgm-ellipsis { + display: none; +} + +.jdgm-carousel--card-theme .jdgm-carousel-item__inner-wrapper { + height: 100%; + padding: 16px; + box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1); + border-radius: 4px; + width: 100%; + border: 1px solid #ffffff; + border-radius: 5px; + min-height: 260px; +} +/* .jdgm-carousel__arrows { + display: none; +} */ +.jdgm-carousel-wrapper .jdgm-star.jdgm-star, +.jdgm-carousel .jdgm-star.jdgm-star { + background: transparent !important; +} + +.custom_write_reviews .jdgm-rev-widg__body { + display: none !important; +} +.custom_write_reviews .jdgm-row-actions { + display: none !important; +} +.custom_write_reviews .jdgm-rev-widg__summary .jdgm-star { + color: #fff; +} +.custom_write_reviews a.jdgm-link { + color: #fff; + font-size: 15px; + display: none; +} +.custom_write_reviews .jdgm-rev-widg__summary-text { + color: #fff; + font-size: 15px; +} +.custom_write_reviews .jdgm-histogram .jdgm-star { + color: #ffffff; +} +.custom_write_reviews .jdgm-histogram__bar-content { + background-color: #fff; +} +.custom_write_reviews .jdgm-histogram__frequency { + margin: 0; + width: 24px; + text-align: left; + color: #ffffff; +} +.custom_write_reviews h2.jdgm-rev-widg__title { + color: #fff; +} +.custom_write_reviews a.jdgm-star.jdgm--on { + color: #fff; +} +.custom_write_reviews .jdgm-form__title { + margin-bottom: 16px; + font-size: 150%; + font-weight: bold; + color: #fff; +} +.custom_write_reviews .jdgm-form label { + color: #ffffff; +} +.custom_write_reviews .jdgm-form { + max-width: 100%; +} + +.custom_write_reviews .jdgm-form label { + color: #ffffff; + font-size: 17px; + text-align: left; + float: left; +} +.custom_write_reviews input#jdgm_review_title_cnnv5vptp { + font-size: 17px; +} + +.custom_write_reviews textarea#jdgm_review_body_cnnv5vptp { + font-size: 17px; +} +.custom_write_reviews span.jdgm-form__reviewer-name-format-container { + display: none; +} +.custom_write_reviews .jdgm-widget .jdgm-picture-fieldset__box { + float: left; + width: 100%; +} +.custom_write_reviews .jdgm-media-fieldset__icon { + color: #ffffff; +} +.custom_write_reviewsinput #jdgm_review_reviewer_name_cnnv5vptp { + font-size: 17px; +} +.custom_write_reviews input#jdgm_review_reviewer_email_cnnv5vptp { + font-size: 17px; +} +.custom_write_reviews .jdgm-notification__title font { + color: #fff; + font-size: 21px; +} +.custom_write_reviews .jdgm-notification__inner font { + font-size: 22px; + color: #fff; +} + +.custom_write_reviews .jdgm-notification__title:before { + width: 52px; + height: 52px; + border-radius: 100%; + font-family: "JudgemeIcons"; + content: "\e001"; +} + +.jdgm-line-clamp { + display: inline-block !important; + overflow: unset !important; + text-overflow: unset !important; +} +.jdgm-carousel--card-theme .jdgm-carousel-item__review-rating { + font-size: 80%; + margin-bottom: 8px; + position: absolute; + top: 11px; + right: 12px; +} +.jdgm-carousel-item__review-body { + margin: 0; + padding-top: 5px; +} +.jdgm-carousel--card-theme .jdgm-carousel-item__inner-wrapper { + position: relative; +} + +.jdgm-carousel-item__review-content { + padding-top: 45px; +} +.jdgm-carousel-item__reviewer-name-wrapper { + position: absolute; + top: 5px; + left: 16px; +} +.jdgm-carousel-item__review-title { + font-size: 19px; +} +.jdgm-notification, +.jdgm-notification__inner > a { + color: #fff !important; +} +.custom_write_reviews .jdgm-notification__title::before { + width: 55px !important; + height: 45px !important; + padding-top: 9px !important; +} + +/*Review slider with image*/ +.jdgm-carousel-item { + border: 1px solid #fff; + min-height: 320px; + width: 31.9% !important; + box-shadow: 0 4px 12px #0000001a; + border-radius: 4px; + margin: 0 10px !important; + position: relative; +} +.jdgm-carousel-item__product-image { + margin: 10px 0 0 !important; + width: 140px !important; +} +.jdgm-carousel-item__review-rating { + position: absolute; + top: 11px; + right: 25px; +} +.jdgm-star { + color: #fff !important; +} +.jdgm-carousel-item__review-content { + text-align: left; +} +.jdgm-carousel__left-arrow { + position: absolute; + left: -22px; + top: 50%; +} +.jdgm-widget.jdgm-carousel.jdgm-carousel--default-theme.jdgm-carousel--done { + position: relative; +} +.jdgm-carousel__right-arrow { + position: absolute; + right: -22px; + top: 50%; +} +.jdgm-carousel-item__review-title { + font-weight: bold; + padding: 24px 0px; + height: 60px !important; +} + +.jdgm-row-media { + border: none !important; +} + +.all_revies.slider_autoplay .customer_review { + margin: 0 15px; + padding: 25px 25px; + border: 1px solid #ffff; + border-radius: 5px; + color: #fff; +} + +.all_revies.slider_autoplay .customer_review .name_ration { + width: 100%; + display: flex; + align-items: center; + padding-bottom: 20px; + font-weight: 600; + font-size: 20px; + line-height: 24px; + text-align: center; + letter-spacing: 0.02em; + color: #FFFFFF; +} +.all_revies.slider_autoplay .customer_review .name_ration p.customer_name { + text-align: left; + width: 50%; + display: inline-block; +} +.all_revies.slider_autoplay .customer_review .name_ration p.ratings_stars { + text-align: right; + width: 50%; + display: inline-block; +} +.all_revies.slider_autoplay .customer_review p.review_title { + font-style: normal; + font-weight: 600; + font-size: 24px; + line-height: 29px; + letter-spacing: 0.02em; + color: #FFFFFF; + text-align: left; + margin-bottom: 15px; + margin-top: 6px; +} +.all_revies.slider_autoplay p.review_content { + font-style: normal; + font-weight: 400; + font-size: 18px; + line-height: 24px; + letter-spacing: 0.02em; + color: #FFFFFF; +} +.all_revies.slider_autoplay .customer_review .name_ration p.ratings_stars img { + display: block; + float: right; +} \ No newline at end of file diff --git a/src/css/_sections/search/_search.scss b/src/css/_sections/search/_search.scss new file mode 100644 index 00000000..23158112 --- /dev/null +++ b/src/css/_sections/search/_search.scss @@ -0,0 +1,40 @@ +.search { + .content-wrapper { + padding-top: 2rem; + padding-bottom: 0; + } + .title-wrapper { + padding-bottom: 20px; + } + + .search-container { + max-width: 500px; + margin: auto; + margin-bottom: 2rem; + + .label { + display: flex; + align-items: center; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); + padding-bottom: 0; + } + + .input { + border-bottom: none; + } + } + + .search-results-wrapper { + display: grid; + justify-content: space-between; + align-items: center; + margin-bottom: 2rem; + grid-template-columns: 1fr auto 1fr; + + @media #{$m-xl} { + display: flex; + flex-direction: column-reverse; + align-items: flex-start; + } + } +} diff --git a/src/css/_templates/_challenge.scss b/src/css/_templates/_challenge.scss new file mode 100644 index 00000000..0ae6287c --- /dev/null +++ b/src/css/_templates/_challenge.scss @@ -0,0 +1,50 @@ +.template-challenge { + .shopify-challenge__container { + padding-top: 80px; + padding-bottom: 200px; + + @media #{$m-xxl} { + padding-bottom: 110px; + } + + @media #{$no-fw} { + padding-top: 7vw; + } + } + .shopify-challenge__message { + font-size: 24px; + font-weight: 400; + line-height: 32px; + color: #ffffff; + + @media #{$no-fw} { + font-size: 1.5vw; + line-height: 1.3; + } + } + + .shopify-challenge__button { + position: relative; + overflow: hidden; + z-index: 0; + display: inline-block; + padding: 16px 53px; + outline: none; + background-color: var(--section-background-color); + font-family: $font-primary; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 24px; + text-decoration: none; + color: #fff; + border-radius: 4px; + transition: all 0.5s; + cursor: pointer; + + &:hover, + &:focus { + background-color: var(--section-accent-color); + } + } +} diff --git a/src/css/_templates/_customer.scss b/src/css/_templates/_customer.scss new file mode 100644 index 00000000..731f0d1a --- /dev/null +++ b/src/css/_templates/_customer.scss @@ -0,0 +1,7 @@ +.template-addresses { + @media #{$no-fw} { + .title-wrapper { + max-width: 30.65vw; + } + } +} diff --git a/src/css/_templates/_templates.scss b/src/css/_templates/_templates.scss new file mode 100644 index 00000000..cd5007ab --- /dev/null +++ b/src/css/_templates/_templates.scss @@ -0,0 +1,4 @@ +/* Some additional styles for different templates */ + +@import "challenge"; +@import "customer"; diff --git a/src/css/_ui/_accordion.scss b/src/css/_ui/_accordion.scss new file mode 100644 index 00000000..5fd57de1 --- /dev/null +++ b/src/css/_ui/_accordion.scss @@ -0,0 +1,76 @@ +.accordion { + width: 100%; +} + +.accordion__item { + display: block; + background-color: transparent; + border-bottom: 1px solid #fff; + + .icon-arrow-down { + position: absolute; + top: 40%; + right: 0; + width: 18px; + height: 11px; + transition: transform 0.2s ease-out; + } + + .accordion__header { + position: relative; + padding-top: 24px; + padding-bottom: 24px; + padding-right: 28px; + color: white; + cursor: pointer; + } + + .accordion__title { + position: relative; + margin: 0; + font-weight: 700; + } + + .accordion__body { + overflow: hidden; + max-height: 0; + padding-bottom: 0; + transition: max-height 0.2s ease-out 0s, padding 0.1s ease-out 0.2s; + } + + .accordion__dsc { + opacity: 0; + margin: 0; + line-height: 1.6; + transition: opacity 0.2s ease-in 0s; + } + + .accordion__button { + margin-top: 24px; + } + + &.active { + .icon-arrow-down { + top: 38%; + transform: rotate(180deg); + } + + .accordion__body { + max-height: var(--accordion-body-max-height); + margin-bottom: 24px; + transition: max-height 0.3s ease-in 0s, padding 0.2s ease-in 0s; + } + + .accordion__dsc { + opacity: 1; + transition: opacity 0.2s ease-in 0.2s; + } + } + + @media #{$no-fw} { + .icon-arrow-down { + width: 27px; + height: 16px; + } + } +} diff --git a/src/css/_ui/_button.scss b/src/css/_ui/_button.scss new file mode 100644 index 00000000..82adb46c --- /dev/null +++ b/src/css/_ui/_button.scss @@ -0,0 +1,100 @@ +/* stylelint-disable */ +.button { + position: relative; + overflow: hidden; + z-index: 0; + display: inline-block; + padding: 16px; + outline: none; + background-color: transparent; + font-family: $font-primary; + font-size: 16px; + font-style: normal; + font-weight: 700; + line-height: 24px; + text-decoration: none; + color: #fff; + border-radius: 4px; + transition: all 0.5s; + cursor: pointer; + + &::after, + &::before { + content: ""; + position: absolute; + top: 0; + left: 0; + z-index: -1; + display: block; + width: 100%; + height: 100%; + transform: translate3D(-101%, 0, 0); + transition: all 0.5s; + } + + &::before { + z-index: -2; + transform: translate3D(0, 0, 0); + } + + &:hover, + &:focus { + &::after { + transform: translate3D(0, 0, 0); + transition: all 0.5s; + } + } + + &.button--fw { + width: 100%; + text-align: center; + } + + &.button--space { + margin-top: 30px; + margin-bottom: 30px; + } + + // Disabled + &.disabled, + &[disabled] { + &:hover, + &:focus { + } + } + + @media #{$no-fw} { + font-size: 1.1vw; + line-height: 1.9; + } +} + +.button-link { + position: relative; + overflow: hidden; + z-index: 0; + display: inline-block; + outline: none; + background-color: transparent; + font-family: $font-primary; + font-size: 16px; + font-style: normal; + font-weight: 400; + line-height: 24px; + text-decoration: underline; + color: #fff; + border-radius: 0; + border: none; + box-shadow: none; + cursor: pointer; + + &:hover { + text-decoration: none; + } + + @media #{$no-fw} { + font-size: 1vw; + line-height: 1.4; + } +} +/* stylelint-enable */ diff --git a/src/css/_ui/_checkbox.scss b/src/css/_ui/_checkbox.scss new file mode 100644 index 00000000..de13014a --- /dev/null +++ b/src/css/_ui/_checkbox.scss @@ -0,0 +1,87 @@ +/* Customize the label (the container) */ +.checkbox { + position: relative; + display: flex; + align-items: center; + margin-bottom: 0; + padding-left: 30px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + + &.checkbox--space { + margin-top: 15px; + } +} + +.checkbox input[type="checkbox"] { + position: absolute; + opacity: 0; + + width: 0; + height: 0; + + cursor: pointer; +} + +.checkbox-tick { + position: absolute; + left: 0; + + width: 18px; + height: 18px; + + border: 1px solid #fff; + border-radius: 2px; + + background-color: transparent; + + &::after { + content: ""; + position: absolute; + top: 0; + left: 4px; + + display: none; + + width: 5px; + height: 10px; + border: solid #fff; + border-width: 0 2px 2px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +} + +.checkbox:hover input ~ .checkbox-tick { + background-color: transparent; +} + +.checkbox input:checked ~ .checkbox-tick { + background-color: transparent; + + &::after { + display: block; + } +} + +@media #{$no-fw} { + .checkbox { + padding-left: 1.5vw; + } + + .checkbox-tick { + width: 1.2vw; + height: 1.2vw; + + &::after { + top: 13%; + left: 30%; + width: 0.3vw; + height: 0.6vw; + } + } +} diff --git a/src/css/_ui/_form.scss b/src/css/_ui/_form.scss new file mode 100644 index 00000000..a814c056 --- /dev/null +++ b/src/css/_ui/_form.scss @@ -0,0 +1,21 @@ +.form { + &.form--base { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + } +} + +.form-message { + margin-bottom: 30px; + + .form-message__title, + li { + padding-bottom: 24px; + color: #ffffff; + } + + .form-message__link { + color: #fff; + } +} diff --git a/src/css/_ui/_info-tabs.scss b/src/css/_ui/_info-tabs.scss new file mode 100644 index 00000000..499d2520 --- /dev/null +++ b/src/css/_ui/_info-tabs.scss @@ -0,0 +1,34 @@ +.info-tabs { + display: flex; + flex-direction: column; + gap: 1rem; + + .tabs-navigation { + display: flex; + justify-content: center; + gap: 5px; + + &__item { + padding: 5px; + cursor: pointer; + border: 1px solid rgb(var(--color-text)); + color: rgb(var(--product-card-text)); + border-radius: 4px; + } + + &__item[open] { + background-color: rgb(var(--color-text)); + color: rgb(var(--product-card-background)); + } + } + + .tab-wrapper { + display: none; + flex-direction: column; + gap: 1rem; + + &[open] { + display: flex; + } + } +} diff --git a/src/css/_ui/_input-radio.scss b/src/css/_ui/_input-radio.scss new file mode 100644 index 00000000..a32a6e4b --- /dev/null +++ b/src/css/_ui/_input-radio.scss @@ -0,0 +1,14 @@ +/* stylelint-disable */ +.input-radio { + label { + } + + input[type="radio"] { + } + + input[type="radio"]:checked { + + label { + } + } +} +/* stylelint-enable */ diff --git a/src/css/_ui/_input.scss b/src/css/_ui/_input.scss new file mode 100644 index 00000000..732dcf88 --- /dev/null +++ b/src/css/_ui/_input.scss @@ -0,0 +1,74 @@ +/* stylelint-disable */ +.input { + width: 100%; + min-height: 56px; + padding: 16px 10px 16px 0; + background: transparent; + border: none; + border-bottom: 1px solid #fff; + font-size: 16px; + line-height: 1.4; + color: #ffffff; + box-shadow: none; + outline: 0; + + &.input--blue { + &:-webkit-autofill, + &:-webkit-autofill:hover, + &:-webkit-autofill:focus, + &:-webkit-autofill:active { + -webkit-text-fill-color: #ffffff; + -webkit-box-shadow: 0 0 0 62px var(--section-background-color) inset !important; + } + } + + &.input--error { + border-bottom-color: var(--error-color); + } + + &::placeholder { + color: rgba(255, 255, 255, 0.5); + } + + &:focus { + border-bottom-color: var(--section-accent-color); + box-shadow: none; + } + + // Date picker icon styling + &[type="date"] { + // Webkit browsers (Chrome, Safari, Edge) + &::-webkit-calendar-picker-indicator { + filter: invert(1); // Makes the icon white + cursor: pointer; + opacity: 0.8; + transition: opacity 0.3s ease; + + &:hover { + opacity: 1; + } + } + + // Firefox + &::-moz-calendar-picker-indicator { + filter: invert(1); // Makes the icon white + cursor: pointer; + opacity: 0.8; + transition: opacity 0.3s ease; + + &:hover { + opacity: 1; + } + } + + // For custom colors, you can use: + // filter: hue-rotate(180deg) saturate(200%) brightness(150%); // Example for blue tint + // filter: sepia(1) saturate(5) hue-rotate(30deg); // Example for orange tint + } + + @media #{$no-fw} { + font-size: 1.1vw; + } +} + +/* stylelint-enable */ diff --git a/src/css/_ui/_label.scss b/src/css/_ui/_label.scss new file mode 100644 index 00000000..74899762 --- /dev/null +++ b/src/css/_ui/_label.scss @@ -0,0 +1,9 @@ +.label { + width: 100%; + padding-bottom: 8px; + color: #ffffff; + + &.label--half { + width: 48%; + } +} diff --git a/src/css/_ui/_link.scss b/src/css/_ui/_link.scss new file mode 100644 index 00000000..63e1a606 --- /dev/null +++ b/src/css/_ui/_link.scss @@ -0,0 +1,41 @@ +.link-swipe { + color: #fff; + + @media #{$no-m} { + position: relative; + transition: color 0.3s ease-in-out; + cursor: pointer; + + &::after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + display: block; + width: 0; + height: 1px; + background-color: #fff; + transition: all 0.25s ease-in-out; + } + + &:hover, + &:focus { + color: #fff; + + &::after { + left: 0; + width: 100%; + } + } + } +} + +.link-underline { + text-decoration: underline; + color: #ffffff; + + &:hover, + &:focus { + text-decoration: none; + } +} diff --git a/src/css/_ui/_modal-popover.scss b/src/css/_ui/_modal-popover.scss new file mode 100644 index 00000000..5db7e6f2 --- /dev/null +++ b/src/css/_ui/_modal-popover.scss @@ -0,0 +1,49 @@ +.modal-popover { + position: fixed; + top: 0; + left: 0; + z-index: -1; + display: flex; + justify-content: center; + align-items: center; + visibility: hidden; + opacity: 0; + width: 100%; + height: 100%; + padding: 0 20px; + overflow-y: auto; + transition-property: opacity, visibility; + transition-duration: 0.3s; + + .popover__overlay { + display: block; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out; + } + + .popover__content { + position: relative; + z-index: 1; + } + + .popover__close-button { + position: absolute; + top: 0; + right: 0; + } + + &[open] { + visibility: visible; + opacity: 1; + z-index: 999999; + + .popover__overlay { + opacity: 1; + visibility: visible; + } + } +} diff --git a/src/css/_ui/_modal.scss b/src/css/_ui/_modal.scss new file mode 100644 index 00000000..41cac877 --- /dev/null +++ b/src/css/_ui/_modal.scss @@ -0,0 +1,105 @@ +.modal { + position: relative; + top: 21%; + bottom: auto; + z-index: 12; + opacity: 0; + max-width: 40vw; + height: auto; + margin: 0 auto 40px; + padding: 40px; + background: var(--section-background-color); + box-shadow: 0 0 25px rgba(68, 60, 34, 0.3); + transition: all 0.35s cubic-bezier(0.55, 0.085, 0.68, 0.53); + + &.fadeOut { + visibility: visible; + opacity: 1; + } + + &.modal--password { + text-align: center; + } + + @media #{$m-xxl} { + max-width: 60vw; + } + + @media #{$m-xl} { + top: 10vw; + max-width: 94%; + padding: 40px 10px 10px; + } +} + +.modal-overlay { + position: fixed; + top: 0; + left: 0; + z-index: 11; + overflow-y: auto; + overflow-x: hidden; + visibility: hidden; + opacity: 0; + width: 100%; + height: 100%; + background-color: rgba(#fff, 0.3); + filter: alpha(opacity=80); + transition: all 0.25s cubic-bezier(0.55, 0.085, 0.68, 0.53); + cursor: pointer; + + &.fadeOut { + visibility: visible; + opacity: 1; + } +} + +.modal-open { + overflow: hidden; + + @media not all and (hover: none) { + padding-right: 17px; + } +} + +.modal__close { + position: absolute; + top: 0; + right: 0; + z-index: 1; + display: flex; + justify-content: center; + align-items: center; + width: 30px; + height: 30px; + border: none; + box-shadow: none; + background-color: transparent; + color: #ffffff; + transition: color 0.25s cubic-bezier(0.55, 0.085, 0.68, 0.53); + cursor: pointer; + + &:hover { + color: #e9e9e9; + } +} + +.modal__content { + display: flex; + flex-direction: column; + > * { + margin-bottom: 20px; + } +} + +@media #{$no-fw} { + .modal__close { + top: 5px; + right: 5px; + } + .modal__content { + > * { + margin-bottom: 2vw; + } + } +} diff --git a/src/css/_ui/_pagination.scss b/src/css/_ui/_pagination.scss new file mode 100644 index 00000000..ce14036e --- /dev/null +++ b/src/css/_ui/_pagination.scss @@ -0,0 +1,12 @@ +/* stylelint-disable */ +.pagination { + span { + } + + a { + &:hover, + &:focus { + } + } +} +/* stylelint-enable */ diff --git a/src/css/_ui/_quantity.scss b/src/css/_ui/_quantity.scss new file mode 100644 index 00000000..1e2d94b4 --- /dev/null +++ b/src/css/_ui/_quantity.scss @@ -0,0 +1,84 @@ +/* -- quantity box -- */ +.quantity-element { + position: relative; + display: flex; + align-items: center; + width: 100%; + height: 28px; + border: none; +} + +.quantity-element__label { + width: 100%; + margin-bottom: 0; +} + +.quantity-element__input { + width: 100%; + min-height: 28px; + padding: 0; + border: none; + outline: none; + background-color: transparent; + font-size: 24px; + font-weight: 700; + line-height: 20px; + text-align: center; + color: #ffffff; + + &::-webkit-outer-spin-button, + &::-webkit-inner-spin-button { + margin: 0; + -webkit-appearance: none; + } + + &[type="number"] { + -moz-appearance: textfield; + } + + &:focus { + border-color: transparent; + } + + @media #{$no-fw} { + font-size: 1.5vw; + line-height: 0.9; + } +} + +.quantity-element__button { + flex-shrink: 0; + width: 24px; + height: 28px; + padding: 0; + background-color: transparent; + transition: color 0.3s ease; + + .icon { + pointer-events: none; + width: 100%; + height: 100%; + color: #ffffff; + } + + &.disabled, + &[disabled] { + &:hover { + cursor: auto; + } + } + + &:focus { + outline: none; + } + + &:hover { + background-color: transparent; + cursor: pointer; + } + + @media #{$no-fw} { + width: 1.1vw; + height: 1.16vw; + } +} diff --git a/src/css/_ui/_responsive-table.scss b/src/css/_ui/_responsive-table.scss new file mode 100644 index 00000000..6ebabe11 --- /dev/null +++ b/src/css/_ui/_responsive-table.scss @@ -0,0 +1,72 @@ +/*============================================================================ + Responsive tables, defined with .responsive-table on table element. +==============================================================================*/ +.responsive-table { + &.responsive-table--fw { + width: 100%; + } + + th { + color: inherit; + } + + th, + td { + padding: 0 5px 0 0; + vertical-align: middle; + text-align: left; + + @media #{$m-xxl} { + color: inherit; + } + } + + td { + color: inherit; + } +} + +@media #{$m-xl} { + .responsive-table { + width: 100%; + + thead { + display: none; + } + + tr { + display: block; + } + + // IE9 table layout fixes + tr, + td { + float: left; + clear: both; + width: 100%; + } + + th, + td { + display: block; + margin: 0; + padding: 0 0; + text-align: right; + } + + td[data-label]::before { + content: attr(data-label); + float: left; + padding-right: 10px; + text-align: center; + } + } + + // Add a keyline between rows + .responsive-table-row + .responsive-table-row, + tfoot > .responsive-table-row:first-child { + position: relative; + margin-top: 40px; + padding-top: 15px; + } +} diff --git a/src/css/_ui/_select.scss b/src/css/_ui/_select.scss new file mode 100644 index 00000000..3839758d --- /dev/null +++ b/src/css/_ui/_select.scss @@ -0,0 +1,96 @@ +/* stylelint-disable */ +.select-box { + position: relative; + display: block; + width: 100%; + + &.select-box--space { + padding-top: 25px; + } + + &.select-box--blue { + select { + &:-webkit-autofill, + &:-webkit-autofill:hover, + &:-webkit-autofill:focus, + &:-webkit-autofill:active { + -webkit-text-fill-color: #ffffff; + -webkit-box-shadow: 0 0 0 62px var(--section-background-color) inset !important; + } + } + } + + select { + -webkit-appearance: none; + width: 100%; + min-height: 48px; + padding: 16px 40px 16px 0; + border: none; + border-bottom: 1px solid #fff; + border-radius: 0; + background: transparent; + cursor: pointer; + font-family: inherit; + font-size: 16px; + color: #ffffff; + transition: all 150ms ease; + + &:required:invalid { + color: var(--error-color); + } + + option { + color: var(--section-background-color); + padding: 5px 10px; + background: #fff; + &[value=""][disabled] { + display: none; + } + + &:hover, + &:focus, + &:active, + &:checked { + background: #fff; + } + + &:hover { + background: var(--section-accent-color); + } + + &[selected] { + background: var(--section-accent-color); + } + } + + &:focus { + outline: none; + border-color: #d3d6d9; + box-shadow: 0 1px 3px -2px #d3d6d9; + } + + &:hover + svg { + color: #fff; + } + } + + svg { + position: absolute; + right: 12px; + top: calc(61%); + width: 10px; + height: 10px; + stroke-width: 2px; + color: #fff; + fill: none; + pointer-events: none; + transform: rotate(-0.25turn); + } + + @media #{$no-fw} { + select { + font-size: 1.1vw; + } + } +} +/* stylelint-enable */ diff --git a/src/css/_ui/_table.scss b/src/css/_ui/_table.scss new file mode 100644 index 00000000..b047a031 --- /dev/null +++ b/src/css/_ui/_table.scss @@ -0,0 +1,78 @@ +.table-wrapper { + overflow-x: auto; + position: relative; +} + +table { + color: rgb(var(--color-text)); + width: 100%; + table-layout: fixed; + border-collapse: collapse; + + @media #{$m-xl} { + width: 133.33%; + } + + tr { + padding: 10px 0; + border-bottom: 1px solid rgba(var(--color-text), 0.2); + + &:last-child { + border: none; + } + + th { + border-right: 1px solid rgba(var(--color-text), 0.2); + padding: 10px; + + &:last-child { + border-right: none; + } + + &:first-child { + .table-cell__content { + align-items: flex-start; + text-align: left; + } + } + } + + td { + text-align: center; + border-right: 1px solid rgba(var(--color-text), 0.2); + padding: 10px; + + &:last-child { + border-right: none; + } + } + + @media #{$m-xl} { + td, + th { + width: 33.33%; + } + } + + .table-cell__content { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 10px; + } + @media #{$m-xl} { + .table-cell__content { + font-size: 14px; + } + } + + @media #{$m-xl} { + .sticky-cell { + position: sticky; + right: 0; + z-index: 1; + } + } + } +} diff --git a/src/css/_ui/_textarea.scss b/src/css/_ui/_textarea.scss new file mode 100644 index 00000000..cbaede2d --- /dev/null +++ b/src/css/_ui/_textarea.scss @@ -0,0 +1,24 @@ +textarea, +.textarea { + width: 100%; + min-height: 100px; + max-height: 200px; + padding: 16px 10px 16px 0; + border: none; + border-bottom: 1px solid #fff; + outline: 0; + background: transparent; + font-size: 16px; + line-height: 1.4; + color: #ffffff; + box-shadow: none; + resize: none; + + &::placeholder { + color: #ffffff; + } + + @media #{$no-fw} { + font-size: 1.1vw; + } +} diff --git a/src/css/_ui/_ui.scss b/src/css/_ui/_ui.scss new file mode 100644 index 00000000..959fb271 --- /dev/null +++ b/src/css/_ui/_ui.scss @@ -0,0 +1,17 @@ +@import "modal"; +@import "accordion"; +@import "button"; +@import "link"; +@import "form"; +@import "label"; +@import "input"; +@import "quantity"; +@import "textarea"; +@import "select"; +@import "checkbox"; +@import "input-radio"; +@import "pagination"; +@import "responsive-table"; +@import "info-tabs"; +@import "table"; +@import "modal-popover"; diff --git a/src/css/main.css b/src/css/main.css deleted file mode 100644 index 977243cb..00000000 --- a/src/css/main.css +++ /dev/null @@ -1,10 +0,0 @@ -/** - * entry file for Tailwind CSS - * and other style files - */ -@import "tailwindcss/base"; -@import "tailwindcss/components"; - -/* @import "my-file"; */ - -@import "tailwindcss/utilities"; \ No newline at end of file diff --git a/src/css/main.scss b/src/css/main.scss new file mode 100644 index 00000000..257b5b63 --- /dev/null +++ b/src/css/main.scss @@ -0,0 +1,9 @@ +@import "_libs/libs"; +@import "_functions/functions"; +@import "_mixins/mixins"; +@import "_base/base"; +@import "_ui/ui"; +@import "_blocks/blocks"; +@import "_sections/sections"; +@import "_templates/templates"; +@import "_layout/layout"; diff --git a/src/js/components/Modal.js b/src/js/components/Modal.js new file mode 100644 index 00000000..a8748272 --- /dev/null +++ b/src/js/components/Modal.js @@ -0,0 +1,167 @@ +import { disableBodyScroll, clearAllBodyScrollLocks } from "body-scroll-lock"; +import { debounce } from "../utils/helpers"; + +class Modal { + constructor() { + this._init(); + this.currentModal = null; + this.$modal = document.querySelector(".js-modal"); + this.$modalParent = this.$modal.parentElement; + this.bodyElement = document.querySelector("body"); + this.classModalOpen = "modal-open"; + this.modalModifiedClass = null; + this.setPosition = null; + this.onPopupEscPress = null; + this.leftScroll = false; + + this._observer(); + } + + _init() { + const BODY = document.querySelector("body"); + const createModal = ` + `; + BODY.insertAdjacentHTML("beforeend", createModal); + } + + _observer() { + //============ Open and Close on click + this.bodyElement.addEventListener("click", (evt) => { + let target = evt.target; + + if (target.dataset.modal) { + this.open(target.dataset.modal); + } + + if ( + target.classList.contains("modal-overlay") || + target.classList.contains("js-modal__close") + ) { + this.close(); + } + }); + + this.setPosition = debounce(this._setPosition, 250).bind(this); + this.onPopupEscPress = this._onPopupEscPress.bind(this); + } + + open(id) { + //============ OPEN + const temp = document.querySelector(id); + const prevModal = document.querySelector(this.currentModal); + + this.modalModifiedClass = temp.classList.value; + this._modalAddClass(); + + if (this.currentModal && this.currentModal !== id) { + this.$modal.classList.remove(prevModal.classList.value); + this.leftScroll = true; + this.close(); + + if (temp) { + this.bodyElement.classList.add(this.classModalOpen); + let newContent = temp.content.cloneNode(true); + + this._modalAddClass(); + + this.setContent(newContent); + + setTimeout(() => { + this._showModal(this.$modalParent, this.$modal); + }, 0); + } else { + // eslint-disable-next-line no-console + console.log(`Your need add template with new content!`); + } + } else { + this.bodyElement.classList.add(this.classModalOpen); + const newContent = temp.content.cloneNode(true); + + this.setContent(newContent); + + setTimeout(() => { + this._showModal(this.$modalParent, this.$modal); + }, 0); + } + + if (!this.leftScroll) { + disableBodyScroll(temp.parentElement); + } + this.leftScroll = false; + this.currentModal = id; + window.addEventListener("resize", this.setPosition); + document.addEventListener("keydown", this.onPopupEscPress); + } + + setContent(html) { + const content = this.$modal.querySelector("[data-setcontent]"); + content.innerHTML = ""; + content.appendChild(html); + } + + close() { + //============ CLOSE + if (!this.leftScroll) { + clearAllBodyScrollLocks(); + } + + if (this.$modal.classList.contains(this.modalModifiedClass)) { + this.$modal.classList.remove(this.modalModifiedClass); + } + + this.bodyElement.classList.remove(this.classModalOpen); + this.$modalParent.classList.remove("fadeOut"); + this.$modal.classList.remove("fadeOut"); + this.$modal.removeAttribute("style"); + this.currentModal = null; + + this.$modal.querySelector("[data-setcontent]").innerHTML = ""; + + window.removeEventListener("resize", this.setPosition); + document.removeEventListener("keydown", this.onPopupEscPress); + } + + _modalAddClass() { + if ( + this.modalModifiedClass && + !this.$modal.classList.contains(this.modalModifiedClass) + ) { + this.$modal.classList.add(this.modalModifiedClass); + } + } + + _showModal(modalOverlay = this.$modalParent, modal = this.$modal) { + modalOverlay.classList.add("fadeOut"); + modal.classList.add("fadeOut"); + this._setPosition(); + } + + _setPosition() { + //========= Position + const position = { + top: "20px", + marginTop: 0 + }; + + if (window.innerHeight > this.$modal.clientHeight) { + position["top"] = `${window.innerHeight / 2}px`; + position["marginTop"] = `-${this.$modal.clientHeight / 2}px`; + } + + this.$modal.style.top = position.top; + this.$modal.style.marginTop = position.marginTop; + } + + _onPopupEscPress(evt) { + if (this.bodyElement.classList.contains(this.classModalOpen)) { + if (evt.keyCode === 27) this.close(); + } + } +} + +export default Modal; diff --git a/src/js/components/accordion.js b/src/js/components/accordion.js new file mode 100644 index 00000000..ee7455ae --- /dev/null +++ b/src/js/components/accordion.js @@ -0,0 +1,58 @@ +// Debounce utility function +function debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} + +class AccordionItem extends HTMLElement { + constructor() { + super(); + } + + connectedCallback() { + this.accordionHeader = this.querySelector(".js-accordion__header"); + this.accordionBody = this.querySelector(".accordion__dsc"); + this.handleClickAccordionHeader = + this.handleClickAccordionHeader.bind(this); + this.setSize = this.setSize.bind(this); + + // Create debounced version of setSize for resize events + this.debouncedSetSize = debounce(this.setSize, 100); + + this.setSize(); + + this.accordionHeader.addEventListener( + "click", + this.handleClickAccordionHeader + ); + window.addEventListener("resize", this.debouncedSetSize); + } + + disconnectedCallback() { + this.accordionHeader.removeEventListener( + "click", + this.handleClickAccordionHeader + ); + window.removeEventListener("resize", this.debouncedSetSize); + } + + handleClickAccordionHeader() { + this.classList.toggle("active"); + } + + setSize() { + this.setAttribute( + "style", + `--accordion-body-max-height: ${this.accordionBody.scrollHeight}px` + ); + } +} + +customElements.define("accordion-item", AccordionItem); diff --git a/src/js/components/atc-button.js b/src/js/components/atc-button.js new file mode 100644 index 00000000..210ea5c3 --- /dev/null +++ b/src/js/components/atc-button.js @@ -0,0 +1,22 @@ +import { addToCartSubmit } from "../core/helpers/addToCartSubmit"; + +class AtcButton extends HTMLElement { + constructor() { + super(); + this.form = this.querySelector("form") + this.init(); + } + + init() { + this.addListeners() + } + + addListeners() { + this.form.addEventListener('submit', (event) => { + event.preventDefault(); + addToCartSubmit(event); + }) + } +} + +customElements.define("atc-button", AtcButton); diff --git a/src/js/components/cart-item.js b/src/js/components/cart-item.js new file mode 100644 index 00000000..105047ef --- /dev/null +++ b/src/js/components/cart-item.js @@ -0,0 +1,103 @@ +import axios from "axios"; +import qs from "qs"; + +const configHeader = { + headers: { + Accept: "*/*", + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + }, +}; + +const URL = { + objectJson: "/cart?view=object-json", + add: "/cart/add.js", + change: "/cart/change.js", +}; + +class CartItem extends HTMLElement { + constructor() { + super(); + } + + connectedCallback() { + this.removeButton = this.querySelector(".cart-product__remove"); + this.addButton = this.querySelector(".cart-product__quantity-btn--plus"); + this.minusButton = this.querySelector(".cart-product__quantity-btn--minus"); + this.quantityChange = this.querySelector(".cart-product__quantity-input"); + this.itemKey = this.removeButton.dataset.itemKey; + this.sectionId = this.closest("section").dataset.sectionId; + this.cartCountContainer = document.querySelector(".js-header-cat-items"); + + this.removeButton.addEventListener("click", () => { + this.removeItem(this.itemKey); + }); + + this.addButton.addEventListener("click", () => { + this.changeQuantity(this.itemKey, Number(this.quantityChange.value) + 1); + }); + + this.minusButton.addEventListener("click", () => { + this.changeQuantity(this.itemKey, Number(this.quantityChange.value) - 1); + }); + + this.quantityChange.addEventListener("change", () => { + this.changeQuantity(this.itemKey, Number(this.quantityChange.value)); + }); + } + + disconnectedCallback() { + this.removeButton.removeEventListener("click", () => { + this.removeItem(this.itemKey); + }); + + this.addButton.removeEventListener("click", () => { + this.changeQuantity(this.itemKey, Number(this.quantityChange.value) + 1); + }); + + this.minusButton.removeEventListener("click", () => { + this.changeQuantity(this.itemKey, Number(this.quantityChange.value) - 1); + }); + + this.quantityChange.removeEventListener("change", () => { + this.changeQuantity(this.itemKey, Number(this.quantityChange.value)); + }); + } + + removeItem(itemKey) { + this.changeQuantity(itemKey, 0); + } + + changeQuantity(key, quantity) { + this.changeItem({ + id: key, + quantity, + sections: "main-cart-mini,cart-count", + }); + } + + changeItem(newItem) { + fetch(`${window.Shopify.routes.root}cart/change.js`, { + body: JSON.stringify(newItem), + method: "POST", + headers: { + "X-Requested-With": "XMLHttpRequest", + "Content-Type": "application/json", + }, + }) + .then((response) => response.json()) + .then((data) => { + document.dispatchEvent( + new CustomEvent("cart:rerender", { + detail: data, + bubbles: true, + }) + ); + }) + .catch((error) => + console.error("Error updating mini-cart section:", error) + ); + } +} + +customElements.define("cart-item", CartItem); diff --git a/src/js/components/cart-upsell.js b/src/js/components/cart-upsell.js new file mode 100644 index 00000000..807f3ce7 --- /dev/null +++ b/src/js/components/cart-upsell.js @@ -0,0 +1,85 @@ +import Swiper from "swiper"; +import { Navigation } from "swiper/modules"; +import axios from "axios"; +import qs from "qs"; + +Swiper.use([Navigation]); + +const configHeader = { + headers: { + Accept: "*/*", + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", + "X-Requested-With": "XMLHttpRequest", + }, +}; + +const URL = { + objectJson: "/cart?view=object-json", + add: "/cart/add.js", +}; + +class CartUpsell extends HTMLElement { + constructor() { + super(); + this.slider = null; + } + + connectedCallback() { + this.atcForms = Array.from( + document.querySelectorAll("form[action='/cart/add']") + ); + this.sliderElement = this.querySelector("[data-upsell-slider]"); + this.cartCountContainer = document.querySelector(".js-header-cat-items"); + this.sectionId = this.closest("section").dataset.sectionId; + + this.handleSubmit = this.handleSubmit.bind(this); + + this.atcForms.forEach((form) => { + form.addEventListener("submit", this.handleSubmit); + }); + + this.initSlider(); + } + + disconnectedCallback() { + this.atcForms.forEach((form) => { + form.removeEventListener("submit", this.handleSubmit); + }); + } + + handleSubmit(event) { + event.preventDefault(); + const formData = new FormData(event.target); + formData.append("sections", "main-cart-mini,cart-count"); + + fetch(`${window.Shopify.routes.root}cart/add.js`, { + body: formData, + method: "POST", + headers: { "X-Requested-With": "XMLHttpRequest" }, + }) + .then((response) => response.json()) + .then((data) => { + document.dispatchEvent(new CustomEvent("cart:rerender", { + detail: data, + bubbles: true, + })); + }) + .catch((error) => + console.error("Error updating mini-cart section:", error) + ); + } + + initSlider() { + const slides = this.querySelectorAll(".swiper-slide").length; + const slidesPerViewCount = slides < 2 ? 1 : 2.8; + + this.slider = new Swiper(this.sliderElement, { + modules: [Navigation], + loop: false, + spaceBetween: 30, + slidesPerView: slidesPerViewCount, + }); + } +} + +customElements.define("cart-upsell", CartUpsell); diff --git a/src/js/components/countdown-display.js b/src/js/components/countdown-display.js new file mode 100644 index 00000000..ed2c0099 --- /dev/null +++ b/src/js/components/countdown-display.js @@ -0,0 +1,60 @@ +class CountdownDisplay extends HTMLElement { + constructor() { + super(); + // Get the countdown target date from the dataset + this.countdownDate = new Date(this.dataset.date).getTime(); + this.daysElement = this.querySelector("#days"); + this.hoursElement = this.querySelector("#hours"); + this.minutesElement = this.querySelector("#minutes"); + this.secondsElement = this.querySelector("#seconds"); + } + + connectedCallback() { + this.init(); + } + + init() { + // Update the countdown every second + this.countdownInterval = setInterval(() => { + this.updateCountdown(); + }, 1000); + } + + updateCountdown() { + const now = new Date().getTime(); // Current time in milliseconds + const timeDifference = this.countdownDate - now; // Time difference in milliseconds + + if (timeDifference < 0) { + // If countdown has passed, clear interval and set to 00:00:00:00 + clearInterval(this.countdownInterval); + this.daysElement.innerText = "00"; + this.hoursElement.innerText = "00"; + this.minutesElement.innerText = "00"; + this.secondsElement.innerText = "00"; + return; + } + + // Calculate time components (days, hours, minutes, seconds) + const days = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); + const hours = Math.floor( + (timeDifference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) + ); + const minutes = Math.floor( + (timeDifference % (1000 * 60 * 60)) / (1000 * 60) + ); + const seconds = Math.floor((timeDifference % (1000 * 60)) / 1000); + + // Update the inner content of the spans with the calculated values + this.daysElement.innerText = this.formatTime(days); + this.hoursElement.innerText = this.formatTime(hours); + this.minutesElement.innerText = this.formatTime(minutes); + this.secondsElement.innerText = this.formatTime(seconds); + } + + formatTime(timeUnit) { + // Format numbers to always have two digits + return timeUnit < 10 ? "0" + timeUnit : timeUnit; + } +} + +customElements.define("countdown-display", CountdownDisplay); diff --git a/src/js/components/info-tabs.js b/src/js/components/info-tabs.js new file mode 100644 index 00000000..052c52c3 --- /dev/null +++ b/src/js/components/info-tabs.js @@ -0,0 +1,37 @@ +class InfoTabs extends HTMLElement { + constructor() { + super(); + } + + connectedCallback() { + this.navgationItems = this.querySelectorAll('.tabs-navigation__item'); + this.tabWrappers = this.querySelectorAll('.tab-wrapper'); + + this.handleClick = this.handleClick.bind(this); + + this.navgationItems.forEach(item => { + item.addEventListener('click', this.handleClick); + }); + } + + handleClick(event) { + this.navgationItems.forEach(item => { + item.removeAttribute('open'); + }); + this.tabWrappers.forEach(wrapper => { + wrapper.removeAttribute('open'); + }); + + const target = event.target; + const tabHeading = target.getAttribute('data-tab-heading'); + + target.setAttribute('open', ''); + this.tabWrappers.forEach(wrapper => { + if (wrapper.getAttribute('data-tab-heading') === tabHeading) { + wrapper.setAttribute('open', ''); + } + }); + } +} + +customElements.define('info-tabs', InfoTabs); \ No newline at end of file diff --git a/src/js/components/lazy-load-images.js b/src/js/components/lazy-load-images.js new file mode 100644 index 00000000..a81bac98 --- /dev/null +++ b/src/js/components/lazy-load-images.js @@ -0,0 +1,76 @@ +(function () { + /* + * + * Lazy load images script with CACHE check. + * If images in cache - lazy load would not start. + * + * If you don't need a feature with caches image - comment code. + * + * HTML basic structure + * + * + * + * + */ + + document.addEventListener("DOMContentLoaded", function () { + if (window.caches) { + let lazyImages = [].slice.call( + document.querySelectorAll(".lazy [data-srcset]") + ); + + Promise.all( + lazyImages.map((img) => { + const src = img.getAttribute("data-srcset"); + + return window.caches.match(src).then((response) => { + if (response) { + img.setAttribute("srcset", src); + img.removeAttribute("data-srcset"); + img.parentElement.classList.remove("lazy"); + } + }); + }) + ).then(lazyLoadPictures); + } else { + lazyLoadPictures(); + } + + function lazyLoadPictures() { + let lazyImages = [].slice.call( + document.querySelectorAll(".lazy [data-srcset]") + ); + + if (lazyImages.length < 1) { + return; + } + + if ("IntersectionObserver" in window) { + let lazyImageObserver = new IntersectionObserver(function (entries) { + entries.forEach(function (entry) { + if (entry.isIntersecting) { + let lazyImage = entry.target; + lazyImage.srcset = lazyImage.dataset.srcset; + + caches.open("images").then(function (cache) { + cache.addAll([lazyImage.dataset.srcset]).then(function () {}); + }); + + lazyImage.parentElement.classList.remove("lazy"); + lazyImageObserver.unobserve(lazyImage); + } + }); + }); + + lazyImages.forEach(function (lazyImage) { + lazyImageObserver.observe(lazyImage); + }); + } else { + // Not supported, load all images immediately + lazyImages.forEach(function (image) { + image.srcset = image.dataset.srcset; + }); + } + } + }); +})(); diff --git a/src/js/components/modal-popover.js b/src/js/components/modal-popover.js new file mode 100644 index 00000000..700e42af --- /dev/null +++ b/src/js/components/modal-popover.js @@ -0,0 +1,61 @@ +export default class ModalPopover extends HTMLElement { + constructor() { + super(); + // Select toggle buttons using a data attribute matching this modal's id + this.toggleButtons = document.querySelectorAll( + `[data-toggle="${this.id}"]` + ); + this.closeButton = this.querySelector(".popover__close-button"); + this.popoverOverlay = this.querySelector(".popover__overlay"); + } + + connectedCallback() { + this.toggleButtons.forEach((button) => { + button.addEventListener("click", (event) => { + this.togglePopover(event); + }); + }); + this.closeButton.addEventListener("click", () => { + this.togglePopover(); + }); + this.popoverOverlay.addEventListener("click", () => { + this.togglePopover(); + }); + + document.addEventListener("click", this._onDocumentClick.bind(this)); + } + + togglePopover(event) { + if (event) { + event.preventDefault(); + event.stopPropagation(); + } + + if (this.hasAttribute("open")) { + this.removeAttribute("open"); + this.toggleButtons.forEach((button) => { + button.setAttribute("aria-expanded", "false"); + }); + document.documentElement.classList.remove("no-scroll"); + document.body.classList.remove("no-scroll"); + } else { + this.setAttribute("open", ""); + this.toggleButtons.forEach((button) => { + button.setAttribute("aria-expanded", "true"); + }); + document.documentElement.classList.add("no-scroll"); + document.body.classList.add("no-scroll"); + } + } + + _onDocumentClick(event) { + if (this.hasAttribute("open")) { + const isClickInside = this.contains(event.target); + if (!isClickInside) { + this.togglePopover(); + } + } + } +} + +customElements.define("modal-popover", ModalPopover); diff --git a/src/js/components/not-found.js b/src/js/components/not-found.js new file mode 100644 index 00000000..2816763e --- /dev/null +++ b/src/js/components/not-found.js @@ -0,0 +1,69 @@ +import { debounce } from "../utils/helpers"; + +(function () { + const constants = { + MOBILE_BREAKPOINT: 767 + }; + + const pupils = document.querySelectorAll(".js-404-pupils"); + + if (!pupils.length) { + return; + } + + const pupilConfig = {}; + const updatePupilSettings = () => { + if (window.innerWidth <= constants.MOBILE_BREAKPOINT) { + pupilConfig.start = -15; + pupilConfig.range = 30; + } else { + pupilConfig.start = -30; + pupilConfig.range = 60; + } + }; + + updatePupilSettings(); + + const config = { + x: { + start: 0, + end: window.innerWidth, + currentPosition: 0, + value: 0, + getRange() { + return this.end - this.start; + } + }, + y: { + end: window.innerHeight, + currentPosition: 0, + value: 0 + } + }; + + const mouseMove = (event) => { + config.x.currentPosition = event.clientX - config.x.start; + config.x.value = config.x.currentPosition / config.x.getRange(); + + config.y.currentPosition = event.clientY; + config.y.value = config.y.currentPosition / config.y.end; + + const pupilCurrentX = + pupilConfig.start + config.x.value * pupilConfig.range; + const pupilCurrentY = + pupilConfig.start + config.y.value * pupilConfig.range; + + pupils.forEach((current) => { + current.style.transform = `translate(${pupilCurrentX}px, ${pupilCurrentY}px)`; + }); + }; + + const windowResize = () => { + updatePupilSettings(); + config.x.end = window.innerWidth; + config.y.end = window.innerHeight; + }; + + window.addEventListener("mousemove", mouseMove); + window.addEventListener("resize", debounce(windowResize, 200)); +})(); diff --git a/src/js/components/predictive-search.js b/src/js/components/predictive-search.js new file mode 100644 index 00000000..5b2987ad --- /dev/null +++ b/src/js/components/predictive-search.js @@ -0,0 +1,103 @@ +import ModalPopover from "./modal-popover"; + +class PredictiveSearch extends ModalPopover { + constructor() { + super(); + + this.input = this.querySelector('input[type="search"]'); + this.predictiveSearchResults = this.querySelector( + "#predictive-search-results" + ); + this.recommendations = this.querySelector( + ".predictive-search-container__recommendations" + ); + this.removeSearchInput = this.querySelector(".remove-search-input"); + + this.input.addEventListener( + "input", + this.debounce((event) => { + this.onChange(event); + }, 300).bind(this) + ); + + this.removeSearchInput.addEventListener("click", () => { + this.input.value = ""; + this.handleButtons(); + this.onChange(); + }); + + this.handleButtons(); + } + + onChange() { + const searchTerm = this.input.value.trim(); + + if (!searchTerm.length) { + this.close(); + return; + } + + this.handleButtons(); + this.getSearchResults(searchTerm); + } + + getSearchResults(searchTerm) { + fetch( + `/search/suggest?q=${searchTerm}&resources[options][fields]=title,body,tag,product_type,vendor§ion_id=predictive-search` + ) + .then((response) => { + if (!response.ok) { + var error = new Error(response.status); + this.close(); + throw error; + } + + return response.text(); + }) + .then((text) => { + const resultsMarkup = new DOMParser() + .parseFromString(text, "text/html") + .querySelector("#shopify-section-predictive-search").innerHTML; + this.predictiveSearchResults.innerHTML = resultsMarkup; + this.open(); + }) + .catch((error) => { + this.close(); + throw error; + }); + } + + open() { + this.predictiveSearchResults.style.display = "block"; + if (this.recommendations) { + this.recommendations.style.display = "none"; + } + } + + close() { + this.predictiveSearchResults.style.display = "none"; + if (this.recommendations) { + this.recommendations.style.display = "block"; + } + } + + handleButtons() { + if (this.input.value.length > 0) { + this.querySelector(".remove-search-input").style.display = "flex"; + this.querySelector(".popover__close-button").style.display = "none"; + } else { + this.querySelector(".remove-search-input").style.display = "none"; + this.querySelector(".popover__close-button").style.display = "flex"; + } + } + + debounce(fn, wait) { + let t; + return (...args) => { + clearTimeout(t); + t = setTimeout(() => fn.apply(this, args), wait); + }; + } +} + +customElements.define("predictive-search", PredictiveSearch); diff --git a/src/js/components/slider.js b/src/js/components/slider.js new file mode 100644 index 00000000..0b2b95fe --- /dev/null +++ b/src/js/components/slider.js @@ -0,0 +1,50 @@ +import Swiper from "swiper"; + +class SliderElement extends HTMLElement { + constructor() { + super(); + this.sliderConfig = this.dataset.swiperConfig + ? JSON.parse(this.dataset.swiperConfig) + : {}; + this.swiperInstance = null; + this.mediaQuery = window.matchMedia("(max-width: 991px)"); + this.handleResize = this.handleResize.bind(this); + } + + connectedCallback() { + // Check if the element has data-only-mobile attribute + if (this.hasAttribute("data-only-mobile")) { + this.handleResize(this.mediaQuery); // Check initial screen size + this.mediaQuery.addEventListener("change", this.handleResize); // Add listener for screen size changes + } else { + // Initialize slider immediately without mobile-only restriction + this.swiperInstance = new Swiper(this, this.sliderConfig); + } + } + + disconnectedCallback() { + if (this.hasAttribute("data-only-mobile")) { + this.mediaQuery.removeEventListener("change", this.handleResize); // Remove listener when element is removed + } + if (this.swiperInstance) { + this.swiperInstance.destroy(true, true); // Destroy Swiper instance if it exists + } + } + + handleResize(e) { + if (e.matches) { + // Screen width is <= 991px (mobile) + if (!this.swiperInstance) { + this.swiperInstance = new Swiper(this, this.sliderConfig); + } + } else { + // Screen width is > 991px (desktop) + if (this.swiperInstance) { + this.swiperInstance.destroy(true, true); + this.swiperInstance = null; + } + } + } +} + +customElements.define("slider-element", SliderElement); diff --git a/src/js/components/sort-popover.js b/src/js/components/sort-popover.js new file mode 100644 index 00000000..4ec1251b --- /dev/null +++ b/src/js/components/sort-popover.js @@ -0,0 +1,86 @@ +class PopoverContainer extends HTMLElement { + constructor() { + super(); + this.toggleButton = this.querySelector(".popover-button"); + this.currentSortElement = this.querySelector("#sort-by-selected-value"); + this.sortInputs = this.querySelectorAll('[name="sort_by"]'); + this.popoverContainer = this.querySelector(".popover"); + this.closeButton = this.querySelector(".popover__close-button"); + this.popoverOverlay = this.querySelector(".popover__overlay"); + this.sectionName = "collection"; + this.sectionId = document.querySelector( + ".collection-template" + ).dataset.sectionId; + } + + connectedCallback() { + this.toggleButton.addEventListener("click", () => { + this.togglePopover(); + }); + + this.sortInputs.forEach((element) => { + element.addEventListener("change", this._onSortChanged.bind(this)); + }); + this.closeButton.addEventListener("click", () => { + this.togglePopover(); + }); + this.popoverOverlay.addEventListener("click", () => { + this.togglePopover(); + }); + + document.addEventListener("click", this._onDocumentClick.bind(this)); + } + + _onSortChanged(event) { + const target = event.target; + const currentUrl = new URL(location.href); + currentUrl.searchParams.set("sort_by", target.value); + currentUrl.searchParams.delete("page"); + this.currentSortElement.textContent = target.title; + this.sortInputs.forEach((element) => { + element.removeAttribute("checked"); + }); + target.setAttribute("checked", "checked"); + this.togglePopover(); + history.pushState(null, "", currentUrl.toString()); + + this.fetchSortedProducts(target.value); + } + + fetchSortedProducts(sortBy) { + const url = `${location.pathname}?sort_by=${sortBy}&view=ajax`; // Ensure the view parameter is set to 'ajax' in Shopify Liquid + + fetch(url) + .then((response) => response.text()) + .then((data) => { + const fakeDiv = document.createElement("div"); + fakeDiv.innerHTML = data; + document.querySelector(".grid--view-items").innerHTML = + fakeDiv.querySelector(".grid--view-items").innerHTML; // Replace the products container with new content + }) + .catch((error) => console.error("Error:", error)); + } + + togglePopover() { + if (this.popoverContainer.hasAttribute("open")) { + this.popoverContainer.removeAttribute("open"); + this.toggleButton.setAttribute("aria-expanded", "false"); + document.body.classList.remove('lock-body'); + } else { + this.popoverContainer.setAttribute("open", ""); + this.toggleButton.setAttribute("aria-expanded", "true"); + document.body.classList.add('lock-body'); + } + } + + _onDocumentClick(event) { + if (this.popoverContainer.hasAttribute("open")) { + const isClickInside = this.contains(event.target); + if (!isClickInside) { + this.togglePopover(); + } + } + } +} + +customElements.define("popover-container", PopoverContainer); diff --git a/src/js/components/tooltip.js b/src/js/components/tooltip.js new file mode 100644 index 00000000..236f9cc5 --- /dev/null +++ b/src/js/components/tooltip.js @@ -0,0 +1,38 @@ +class ToolTip extends HTMLElement { + constructor() { + super(); + this.tooltipId = this.dataset.id; + this.tooltipElement = this.querySelector("[data-content"); + this.tooltipTrigger = document.querySelector( + `[data-tooltip-trigger="${this.tooltipId}"]` + ); + this.handleMouseEnter = this.handleMouseEnter.bind(this); + this.handleMouseLeave = this.handleMouseLeave.bind(this); + } + + connectedCallback() { + this.tooltipTrigger.addEventListener("mouseenter", this.handleMouseEnter); + this.tooltipTrigger.addEventListener("mouseleave", this.handleMouseLeave); + } + + disconnectedCallback() { + this.tooltipTrigger.removeEventListener( + "mouseenter", + this.handleMouseEnter + ); + this.tooltipTrigger.removeEventListener( + "mouseleave", + this.handleMouseLeave + ); + } + + handleMouseEnter() { + this.setAttribute("visible", ""); + } + + handleMouseLeave() { + this.removeAttribute("visible"); + } +} + +customElements.define("tool-tip", ToolTip); \ No newline at end of file diff --git a/src/js/core/ProductForm.js b/src/js/core/ProductForm.js new file mode 100644 index 00000000..5a79706e --- /dev/null +++ b/src/js/core/ProductForm.js @@ -0,0 +1,265 @@ +import Listeners from "@shopify/theme-product-form/listeners"; +import { getVariantFromSerializedArray } from "@shopify/theme-product"; + +let selectors = { + idInput: '[name="id"]', + optionInput: '[name^="options"]', + quantityInput: '[name="quantity"]', + propertyInput: '[name^="properties"]' +}; + +// Public Methods +// ----------------------------------------------------------------------------- + +/** + * Returns a URL with a variant ID query parameter. Useful for updating window.history + * with a new URL based on the currently select product variant. + * @param {string} url - The URL you wish to append the variant ID to + * @param {number} id - The variant ID you wish to append to the URL + * @returns {string} - The new url which includes the variant ID query parameter + */ + +export function getUrlWithVariant(url, id) { + if (/variant=/.test(url)) { + return url.replace(/(variant=)[^&]+/, "$1" + id); + } else if (/\?/.test(url)) { + return url.concat("&variant=").concat(id); + } + + return url.concat("?variant=").concat(id); +} + +/** + * Constructor class that creates a new instance of a product form controller. + * + * @param {Element} element - DOM element which is equal to the
    node wrapping product form inputs + * @param {Object} product - A product object + * @param {Object} options - Optional options object + * @param {Function} options.onOptionChange - Callback for whenever an option input changes + * @param {Function} options.onQuantityChange - Callback for whenever an quantity input changes + * @param {Function} options.onPropertyChange - Callback for whenever a property input changes + * @param {Function} options.onFormSubmit - Callback for whenever the product form is submitted + */ +export function ProductForm(element, product, options) { + this.element = element; + this.product = _validateProductObject(product); + + options = options || {}; + + if (options.selectors) { + selectors = { + ...selectors, + ...options.selectors + }; + } + + this._listeners = new Listeners(); + this._listeners.add( + this.element, + "submit", + this._onSubmit.bind(this, options) + ); + + this.optionInputs = this._initInputs( + selectors.optionInput, + this._onOptionChange.bind(this, options) + ); + + if (options.onQuantityChange) { + this.quantityInputs = this._initInputs( + selectors.quantityInput, + options.onQuantityChange + ); + } + + if (options.onPropertyChange) { + this.propertyInputs = this._initInputs( + selectors.propertyInput, + options.onPropertyChange + ); + } +} + +/** + * Cleans up all event handlers that were assigned when the Product Form was constructed. + * Useful for use when a section needs to be reloaded in the theme editor. + */ +ProductForm.prototype.init = function () { + this._listeners.removeAll(); +}; + +/** + * Cleans up all event handlers that were assigned when the Product Form was constructed. + * Useful for use when a section needs to be reloaded in the theme editor. + */ +ProductForm.prototype.destroy = function () { + this._listeners.removeAll(); +}; + +/** + * Getter method which returns the array of currently selected option values + * + * @returns {Array} An array of option values + */ +ProductForm.prototype.options = function () { + return _serializeOptionValues(this.optionInputs, function (item) { + let regex = /(?:^(options\[))(.*?)(?:\])/; + item.name = regex.exec(item.name)[2]; // Use just the value between 'options[' and ']' + return item; + }); +}; + +/** + * Getter method which returns the currently selected variant, or `null` if variant + * doesn't exist. + * + * @returns {Object|null} Variant object + */ +ProductForm.prototype.variant = function () { + return getVariantFromSerializedArray(this.product, this.options()); +}; + +/** + * Getter method which returns a collection of objects containing name and values + * of property inputs + * + * @returns {Array} Collection of objects with name and value keys + */ +ProductForm.prototype.properties = function () { + let properties = _serializePropertyValues( + this.propertyInputs, + function (propertyName) { + let regex = /(?:^(properties\[))(.*?)(?:\])/; + let name = regex.exec(propertyName)[2]; // Use just the value between 'properties[' and ']' + return name; + } + ); + + return Object.entries(properties).length === 0 ? null : properties; +}; + +/** + * Getter method which returns the current quantity or 1 if no quantity input is + * included in the form + * + * @returns {Array} Collection of objects with name and value keys + */ +ProductForm.prototype.quantity = function () { + return this.quantityInputs[0] + ? Number.parseInt(this.quantityInputs[0].value, 10) + : 1; +}; + +// Private Methods +// ----------------------------------------------------------------------------- +ProductForm.prototype._setIdInputValue = function (value) { + let idInputElement = this.element.querySelector(selectors.idInput); + + if (!idInputElement) { + idInputElement = document.createElement("input"); + idInputElement.type = "hidden"; + idInputElement.name = "id"; + this.element.appendChild(idInputElement); + } + + idInputElement.value = value.toString(); +}; + +ProductForm.prototype._onOptionChange = function (options, event) { + event.dataset = this._getProductFormEventData(); + + if (event.dataset.variant) { + this._setIdInputValue(event.dataset.variant.id); + } + + if (options.onOptionChange) { + options.onOptionChange(event); + } +}; + +ProductForm.prototype._onSubmit = function (options, event) { + event.dataset = this._getProductFormEventData(); + + if (event.dataset.variant) { + this._setIdInputValue(event.dataset.variant.id); + } + + if (options.onFormSubmit) { + options.onFormSubmit(event); + } +}; + +ProductForm.prototype._onFormEvent = function (cb) { + if (typeof cb === "undefined") { + return Function.prototype; + } + + return function (event) { + event.dataset = this._getProductFormEventData(); + cb(event); + }.bind(this); +}; + +ProductForm.prototype._initInputs = function (selector, cb) { + let elements = Array.prototype.slice.call( + this.element.querySelectorAll(selector) + ); + + return elements.map( + function (element) { + this._listeners.add(element, "change", this._onFormEvent(cb)); + return element; + }.bind(this) + ); +}; + +ProductForm.prototype._getProductFormEventData = function () { + return { + options: this.options(), + variant: this.variant(), + properties: this.properties(), + quantity: this.quantity() + }; +}; + +function _serializeOptionValues(inputs, transform) { + return inputs.reduce(function (options, input) { + if ( + input.checked || // If input is a checked (means type radio or checkbox) + (input.type !== "radio" && input.type !== "checkbox") // Or if its any other type of input + ) { + options.push(transform({ name: input.name, value: input.value })); + } + + return options; + }, []); +} + +function _serializePropertyValues(inputs, transform) { + return inputs.reduce(function (properties, input) { + if ( + input.checked || // If input is a checked (means type radio or checkbox) + (input.type !== "radio" && input.type !== "checkbox") // Or if its any other type of input + ) { + properties[transform(input.name)] = input.value; + } + + return properties; + }, {}); +} + +function _validateProductObject(product) { + if (typeof product !== "object") { + throw new TypeError(product + " is not an object."); + } + + if (typeof product.variants[0].options === "undefined") { + throw new TypeError( + "Product object is invalid. Make sure you use the product object that is output from {{ product | json }} or from the http://[your-product-url].js route" + ); + } + + return product; +} + +export default ProductForm; diff --git a/src/js/core/helpers/addToCartSubmit.js b/src/js/core/helpers/addToCartSubmit.js new file mode 100644 index 00000000..c18cd9b9 --- /dev/null +++ b/src/js/core/helpers/addToCartSubmit.js @@ -0,0 +1,39 @@ +import serialize from "form-serialize"; + +export function addToCartSubmit(event) { + event.preventDefault(); + + const form = event.target; + + let formData = serialize(form, { + hash: true, + disabled: true, + empty: false + }); + + if (Array.isArray(formData.event_id)) { + formData.event_id = formData.event_id.shift(); + } + + form.classList.add("adding"); + const errorCallback = event?.detail?.errorCallback; + document.dispatchEvent( + new CustomEvent("product:add", { + detail: { + items: [formData], + callback: () => { + setTimeout(() => { + form.classList.remove("adding"); + }, 500); + }, + errorCallback: ({ response }) => { + form.classList.remove("adding"); + + if (typeof errorCallback === "function") { + errorCallback(response); + } + } + } + }) + ); +} diff --git a/src/js/core/helpers/unescape.js b/src/js/core/helpers/unescape.js new file mode 100644 index 00000000..9eb82560 --- /dev/null +++ b/src/js/core/helpers/unescape.js @@ -0,0 +1,5 @@ +export default function unescape(value) { + const doc = new DOMParser().parseFromString(value, "text/html"); + + return doc.body.innerHTML; +} diff --git a/src/js/core/objects.js b/src/js/core/objects.js new file mode 100644 index 00000000..6423449d --- /dev/null +++ b/src/js/core/objects.js @@ -0,0 +1,64 @@ +import axios from "axios"; +import unescape from "./helpers/unescape"; + +export const ROUTE_ROOT = "root_url"; +export const ROUTE_ACCOUNT = "account_url"; +export const ROUTE_ACCOUNT_LOGIN = "account_login_url"; +export const ROUTE_ACCOUNT_LOGOUT = "account_logout_url"; +export const ROUTE_ACCOUNT_REGISTER = "account_register_url"; +export const ROUTE_ACCOUNT_ADDRESSES = "account_addresses_url"; +export const ROUTE_COLLECTIONS = "collections_url"; +export const ROUTE_ALL_PRODUCTS = "all_products_collection_url"; +export const ROUTE_SEARCH = "search_url"; +export const ROUTE_CART = "cart_url"; +export const ROUTE_CART_ADD = "cart_add_url"; +export const ROUTE_CART_CHANGE = "cart_change_url"; +export const ROUTE_CART_CLEAR = "cart_clear_url"; +export const ROUTE_PRODUCT_RECOMMENDATIONS = "product_recommendations_url"; +export const CHECKOUT = "checkout"; + +export default { + loaded: false, + objects: {}, + async load() { + const objects = await axios + .get("/?view=objects", { + responseType: "json" + }) + .then((response) => response.data); + + this.loaded = true; + this.objects = objects; + + document.dispatchEvent( + new CustomEvent("theme:objects:loaded", { + detail: { + objects + } + }) + ); + }, + routes(route) { + return this.objects.routes[route]; + }, + get(name) { + try { + const value = name.split(".").reduce((objects, key) => { + if (Object.prototype.hasOwnProperty.call(objects, key)) { + return objects[key]; + } + + return null; + }, this.objects); + + return unescape(value); + } catch (error) { + console.log(error) + } + + return null; + }, + all() { + return this.objects; + } +}; diff --git a/src/js/core/settings.js b/src/js/core/settings.js new file mode 100644 index 00000000..8a07eb76 --- /dev/null +++ b/src/js/core/settings.js @@ -0,0 +1,30 @@ +import axios from "axios"; + +export default { + loaded: false, + settings: {}, + async load() { + const settings = await axios + .get("/?view=settings", { + responseType: "json" + }) + .then((response) => response.data); + + this.loaded = true; + this.settings = settings; + + document.dispatchEvent( + new CustomEvent("theme:settings:loaded", { + detail: { + settings + } + }) + ); + }, + get(name) { + return this.settings[name]; + }, + all() { + return this.settings; + } +}; diff --git a/src/js/core/template.js b/src/js/core/template.js new file mode 100644 index 00000000..36398bab --- /dev/null +++ b/src/js/core/template.js @@ -0,0 +1,34 @@ +export default (function () { + const themeTemplateMeta = document.querySelector( + '[property="theme:template"]' + ); + if (!themeTemplateMeta) { + return {}; + } + + const templateString = themeTemplateMeta.content; + + const regex = + /(?