diff --git a/README.txt b/README.txt index 6ab4305..13ae32f 100644 --- a/README.txt +++ b/README.txt @@ -5,7 +5,7 @@ Tags: Chat, Click to Chat, Facebook Messenger, WhatsApp, Telegram, Whatsapp Busi Requires at least: 3.5.0 Tested up to: 5.9 Requires PHP: 5.3 -Stable tag: 4.4.1 +Stable tag: 4.4.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -256,6 +256,8 @@ If your site don't have standard names for UA tracker ('ga') or data layer ('dat return $settings; } );` +Joinchat is compatible with plugins **MonsterInsights – Google Analytics Dashboard for WordPress** and **Google Tag Manager for WordPress** custom names. + = Google Tag Manager integration = Join.chat sends a `'JoinChat'` event if GTM is detected when user launch WhatsApp: @@ -329,6 +331,14 @@ Join.chat save two localStorage variables for proper operation: == Changelog == += 4.4.2 = +* **NEW Optimized CSS** for only button without Call to Action (only 2.5kB). +* **NEW** Compatible with **Perfect Brands for WooCommerce** for brand custom settings. +* **NEW** Compatible with **Google Tag Manager for WordPress** custom DataLayer name. +* **NEW** Don't load on Elementor Site Builder previews. +* FIX badge animation don't show error introduced in v4.4.0. +* CHANGED optimized render without unused elements. + = 4.4.1 = * FIX Google Ads conversion field is too short. diff --git a/admin/class-joinchat-woo-admin.php b/admin/class-joinchat-woo-admin.php index 3df9c43..eeede03 100644 --- a/admin/class-joinchat-woo-admin.php +++ b/admin/class-joinchat-woo-admin.php @@ -36,6 +36,11 @@ public function init( $joinchat ) { $loader->add_filter( 'joinchat_help_tab_styles_and_vars', $this, 'help_tab_vars' ); $loader->add_filter( 'joinchat_metabox_vars', $this, 'metabox_vars', 10, 2 ); $loader->add_filter( 'joinchat_metabox_placeholders', $this, 'metabox_placeholders', 10, 3 ); + + if ( defined( 'PWB_PLUGIN_FILE' ) ) { // Perfect Brands for WooCommerce + $loader->add_filter( 'joinchat_term_metabox_output', $this, 'term_metabox_fix', 10, 4 ); + } + } /** @@ -129,7 +134,13 @@ public function custom_post_types( $custom_post_types ) { */ public function custom_taxonomies( $taxonomies ) { - return array_merge( $taxonomies, array( 'product_cat', 'product_tag' ) ); + $product_taxs = array( 'product_cat', 'product_tag' ); + + if ( defined( 'PWB_PLUGIN_FILE' ) ) { + $product_taxs[] = 'pwb-brand'; + } + + return array_merge( $taxonomies, $product_taxs ); } @@ -375,7 +386,6 @@ public function metabox_vars( $vars, $obj ) { return $vars; } - /** * Add Product metabox placeholders info. * @@ -401,4 +411,24 @@ public function metabox_placeholders( $placeholders, $obj, $settings ) { return $placeholders; } + + /** + * Fix term meteabox for Brands + * + * @since 4.4.2 + * @param string $metabox_output + * @param WP_Term $term Current taxonomy term object + * @param array $metadata + * @param string $taxonomy Current taxonomy slug + * @return string + */ + public function term_metabox_fix( $metabox_output, $term, $metadata, $taxonomy ) { + + if ( 'pwb-brand' === $taxonomy ) { + $metabox_output = '' . $metabox_output; + } + + return $metabox_output; + + } } diff --git a/joinchat.php b/joinchat.php index b51395e..8f613ff 100644 --- a/joinchat.php +++ b/joinchat.php @@ -9,7 +9,7 @@ * Plugin Name: Join.chat * Plugin URI: https://join.chat * Description: Connects a WordPress chat with WhatsApp. The best solution for marketing and support. Stop losing customers and increase your sales. - * Version: 4.4.1 + * Version: 4.4.2 * Author: Creame * Author URI: https://crea.me * License: GPL-2.0+ @@ -26,7 +26,7 @@ /** * Define constants. */ -define( 'JOINCHAT_VERSION', '4.4.1' ); +define( 'JOINCHAT_VERSION', '4.4.2' ); define( 'JOINCHAT_FILE', __FILE__ ); define( 'JOINCHAT_DIR', plugin_dir_path( JOINCHAT_FILE ) ); define( 'JOINCHAT_BASENAME', plugin_basename( JOINCHAT_FILE ) ); diff --git a/package-lock.json b/package-lock.json index c7ac224..fb10422 100755 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "autoprefixer": "^10.4.2", + "autoprefixer": "^10.4.4", "cssnano-cli": "^1.0.5", "del-cli": "^4.0.1", "postcss-calc": "^8.2.4", @@ -22,7 +22,7 @@ "postcss-strip-inline-comments": "^0.1.5", "postcss-svgo": "^5.1.0", "precss": "^4.0.0", - "stylelint": "^14.5.3", + "stylelint": "^14.6.1", "stylelint-config-standard": "^25.0.0" } }, @@ -238,14 +238,24 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], "dependencies": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -256,10 +266,6 @@ "engines": { "node": "^10 || ^12 || >=14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.1.0" } @@ -308,15 +314,25 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" }, "bin": { @@ -324,10 +340,6 @@ }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/callsites": { @@ -372,9 +384,9 @@ "dev": true }, "node_modules/caniuse-lite": { - "version": "1.0.30001320", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", - "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "version": "1.0.30001322", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001322.tgz", + "integrity": "sha512-neRmrmIrCGuMnxGSoh+x7zYtQFFgnSY2jaomjU56sCkTA6JINqQrxutF459JpWcWRajvoyn95sOXq4Pqrnyjew==", "dev": true, "funding": [ { @@ -1178,9 +1190,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -1350,9 +1362,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.63", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.63.tgz", - "integrity": "sha512-e0PX/LRJPFRU4kzJKLvTobxyFdnANCvcoDCe8XcyTqP58nTWIwdsHvXLIl1RkB39X5yaosLaroMASWB0oIsgCA==", + "version": "1.4.101", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.101.tgz", + "integrity": "sha512-XJH+XmJjACx1S7ASl/b//KePcda5ocPnFH2jErztXcIS8LpP0SE6rX8ZxiY5/RaDPnaF1rj0fPaHfppzb0e2Aw==", "dev": true }, "node_modules/emoji-regex": { @@ -1506,9 +1518,9 @@ "dev": true }, "node_modules/fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true, "engines": { "node": "*" @@ -2524,9 +2536,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "node_modules/normalize-package-data": { @@ -2749,10 +2761,20 @@ } }, "node_modules/postcss": { - "version": "8.4.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "dependencies": { "nanoid": "^3.3.1", "picocolors": "^1.0.0", @@ -2760,10 +2782,6 @@ }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-advanced-variables": { @@ -7019,16 +7037,16 @@ "dev": true }, "node_modules/stylelint": { - "version": "14.5.3", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.5.3.tgz", - "integrity": "sha512-omHETL+kGHR+fCXFK1SkZD/A+emCP9esggAdWEl8GPjTNeyRYj+H6uetRDcU+7E451zwWiUYGVAX+lApsAZgsQ==", + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.1.tgz", + "integrity": "sha512-FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q==", "dev": true, "dependencies": { "balanced-match": "^2.0.0", "colord": "^2.9.2", "cosmiconfig": "^7.0.1", "css-functions-list": "^3.0.1", - "debug": "^4.3.3", + "debug": "^4.3.4", "execall": "^2.0.0", "fast-glob": "^3.2.11", "fastest-levenshtein": "^1.0.12", @@ -7049,7 +7067,7 @@ "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", "picocolors": "^1.0.0", - "postcss": "^8.4.6", + "postcss": "^8.4.12", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", @@ -7785,14 +7803,14 @@ "dev": true }, "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", + "version": "10.4.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", + "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", "dev": true, "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", + "browserslist": "^4.20.2", + "caniuse-lite": "^1.0.30001317", + "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -7836,15 +7854,15 @@ } }, "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", + "version": "4.20.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", + "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", + "caniuse-lite": "^1.0.30001317", + "electron-to-chromium": "^1.4.84", "escalade": "^3.1.1", - "node-releases": "^2.0.1", + "node-releases": "^2.0.2", "picocolors": "^1.0.0" } }, @@ -7878,9 +7896,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001320", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz", - "integrity": "sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==", + "version": "1.0.30001322", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001322.tgz", + "integrity": "sha512-neRmrmIrCGuMnxGSoh+x7zYtQFFgnSY2jaomjU56sCkTA6JINqQrxutF459JpWcWRajvoyn95sOXq4Pqrnyjew==", "dev": true }, "chalk": { @@ -8513,9 +8531,9 @@ } }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -8630,9 +8648,9 @@ } }, "electron-to-chromium": { - "version": "1.4.63", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.63.tgz", - "integrity": "sha512-e0PX/LRJPFRU4kzJKLvTobxyFdnANCvcoDCe8XcyTqP58nTWIwdsHvXLIl1RkB39X5yaosLaroMASWB0oIsgCA==", + "version": "1.4.101", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.101.tgz", + "integrity": "sha512-XJH+XmJjACx1S7ASl/b//KePcda5ocPnFH2jErztXcIS8LpP0SE6rX8ZxiY5/RaDPnaF1rj0fPaHfppzb0e2Aw==", "dev": true }, "emoji-regex": { @@ -8762,9 +8780,9 @@ "dev": true }, "fraction.js": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz", - "integrity": "sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true }, "fs-extra": { @@ -9523,9 +9541,9 @@ "dev": true }, "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", + "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==", "dev": true }, "normalize-package-data": { @@ -9691,9 +9709,9 @@ "dev": true }, "postcss": { - "version": "8.4.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", + "version": "8.4.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", + "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", "dev": true, "requires": { "nanoid": "^3.3.1", @@ -13030,16 +13048,16 @@ "dev": true }, "stylelint": { - "version": "14.5.3", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.5.3.tgz", - "integrity": "sha512-omHETL+kGHR+fCXFK1SkZD/A+emCP9esggAdWEl8GPjTNeyRYj+H6uetRDcU+7E451zwWiUYGVAX+lApsAZgsQ==", + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.6.1.tgz", + "integrity": "sha512-FfNdvZUZdzh9KDQxDnO7Opp+prKh8OQVuSW8S13cBtxrooCbm6J6royhUeb++53WPMt04VB+ZbOz/QmzAijs6Q==", "dev": true, "requires": { "balanced-match": "^2.0.0", "colord": "^2.9.2", "cosmiconfig": "^7.0.1", "css-functions-list": "^3.0.1", - "debug": "^4.3.3", + "debug": "^4.3.4", "execall": "^2.0.0", "fast-glob": "^3.2.11", "fastest-levenshtein": "^1.0.12", @@ -13060,7 +13078,7 @@ "normalize-path": "^3.0.0", "normalize-selector": "^0.2.0", "picocolors": "^1.0.0", - "postcss": "^8.4.6", + "postcss": "^8.4.12", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^6.0.0", diff --git a/package.json b/package.json index 6e9f639..19127f8 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "author": "Creame", "license": "ISC", "devDependencies": { - "autoprefixer": "^10.4.2", + "autoprefixer": "^10.4.4", "cssnano-cli": "^1.0.5", "del-cli": "^4.0.1", "postcss-calc": "^8.2.4", @@ -19,7 +19,7 @@ "postcss-strip-inline-comments": "^0.1.5", "postcss-svgo": "^5.1.0", "precss": "^4.0.0", - "stylelint": "^14.5.3", + "stylelint": "^14.6.1", "stylelint-config-standard": "^25.0.0" }, "browserslist": [ @@ -32,10 +32,13 @@ "css": "postcss src/scss/styles.scss -o public/css/joinchat.css -m", "minify": "cssnano public/css/joinchat.css public/css/joinchat.min.css --no-svgo --safe", "build": "npm run css && npm run minify", - "woo:css": "postcss src/scss/woo.scss -o public/css/woo.css -m", - "woo:minify": "cssnano public/css/woo.css public/css/woo.min.css --no-svgo --safe", + "woo:css": "postcss src/scss/woo.scss -o public/css/joinchat-woo.css -m", + "woo:minify": "cssnano public/css/joinchat-woo.css public/css/joinchat-woo.min.css --no-svgo --safe", "woo:build": "npm run woo:css && npm run woo:minify", - "build-all": "npm run build && npm run woo:build", + "btn:css": "postcss src/scss/btn.scss -o public/css/joinchat-btn.css -m", + "btn:minify": "cssnano public/css/joinchat-btn.css public/css/joinchat-btn.min.css --no-svgo --safe", + "btn:build": "npm run btn:css && npm run btn:minify", + "build-all": "npm run build && npm run woo:build && npm run btn:build", "clean": "del dist/css/*" } } diff --git a/public/class-joinchat-elementor-public.php b/public/class-joinchat-elementor-public.php index 989a3f0..9f27b6a 100644 --- a/public/class-joinchat-elementor-public.php +++ b/public/class-joinchat-elementor-public.php @@ -35,7 +35,7 @@ public function init( $joinchat ) { */ public function elementor_preview_disable( $show ) { - $is_preview = \Elementor\Plugin::$instance->preview->is_preview_mode(); + $is_preview = isset( $_GET['elementor-preview'] ) || ( isset( $_GET['render_mode'] ) && 'template-preview' === $_GET['render_mode'] ); $preview_show = apply_filters( 'joinchat_elementor_preview_show', false ); return $is_preview ? $show && $preview_show : $show; diff --git a/public/class-joinchat-public.php b/public/class-joinchat-public.php index 6305617..3f186ad 100644 --- a/public/class-joinchat-public.php +++ b/public/class-joinchat-public.php @@ -155,17 +155,27 @@ public function get_settings() { * * @since 1.0.0 * @since 2.2.2 minified + * @since 4.4.2 use "only button stylesheet" if no chatbox * @return void */ public function enqueue_styles() { if ( $this->show ) { - $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; - $color = $this->settings['color']; - list($r, $g, $b) = sscanf( $color, '#%02x%02x%02x' ); + $file = $this->plugin_name; + $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; + + // If not chatbox use lighter only button styles + if ( empty( $this->settings['message_text'] ) && empty( $this->settings['optin_text'] ) && ! has_filter( 'joinchat_content' ) ) { + $file .= '-btn'; + } - wp_enqueue_style( $this->plugin_name, plugins_url( "css/{$this->plugin_name}{$min}.css", __FILE__ ), array(), $this->version, 'all' ); - wp_add_inline_style( $this->plugin_name, apply_filters( 'joinchat_inline_style', ".joinchat{ --red:$r; --green:$g; --blue:$b; }", $this->settings ) ); + wp_enqueue_style( $this->plugin_name, plugins_url( "css/{$file}{$min}.css", __FILE__ ), array(), $this->version, 'all' ); + + if ( $file === $this->plugin_name ) { + list($r, $g, $b) = sscanf( $this->settings['color'], '#%02x%02x%02x' ); + + wp_add_inline_style( $this->plugin_name, apply_filters( 'joinchat_inline_style', ".joinchat{ --red:$r; --green:$g; --blue:$b; }", $this->settings ) ); + } } } diff --git a/public/class-joinchat-woo-public.php b/public/class-joinchat-woo-public.php index 60b8df9..a1894cc 100644 --- a/public/class-joinchat-woo-public.php +++ b/public/class-joinchat-woo-public.php @@ -341,7 +341,7 @@ public function enqueue_styles() { $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; - wp_enqueue_style( 'joinchat-woo', plugins_url( "css/woo{$min}.css", __FILE__ ), array(), JOINCHAT_VERSION, 'all' ); + wp_enqueue_style( 'joinchat-woo', plugins_url( "css/joinchat-woo{$min}.css", __FILE__ ), array(), JOINCHAT_VERSION, 'all' ); } diff --git a/public/css/joinchat-btn.css b/public/css/joinchat-btn.css new file mode 100644 index 0000000..9f51aa8 --- /dev/null +++ b/public/css/joinchat-btn.css @@ -0,0 +1,398 @@ +:root { + --joinchat-ico: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 0 1-13.754 2.299l-5.814.735a.392.392 0 0 1-.438-.44l.748-5.788A12.002 12.002 0 0 1 3.517 3.517zm3.61 17.043.3.158a9.846 9.846 0 0 0 11.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 0 0-1.747 11.554l.16.303-.51 3.942a.196.196 0 0 0 .219.22l3.961-.501zm6.534-7.003-.933 1.164a9.843 9.843 0 0 1-3.497-3.495l1.166-.933a.792.792 0 0 0 .23-.94L9.561 6.96a.793.793 0 0 0-.924-.445 1291.6 1291.6 0 0 0-2.023.524.797.797 0 0 0-.588.88 11.754 11.754 0 0 0 10.005 10.005.797.797 0 0 0 .88-.587l.525-2.023a.793.793 0 0 0-.445-.923L14.6 13.327a.792.792 0 0 0-.94.23z'/%3E%3C/svg%3E"); + --joinchat-font: -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen-sans, ubuntu, cantarell, "Helvetica Neue", sans-serif; +} + +.joinchat { + --bottom: 20px; + --sep: 20px; + --s: 60px; + + display: none; + position: fixed; + z-index: 9999; + right: var(--sep); + bottom: var(--bottom); + font: normal normal normal 16px/1.625em var(--joinchat-font); + letter-spacing: 0; + -webkit-animation: joinchat_show 500ms cubic-bezier(0.18, 0.89, 0.32, 1.28) 10ms both; + animation: joinchat_show 500ms cubic-bezier(0.18, 0.89, 0.32, 1.28) 10ms both; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + touch-action: manipulation; + -webkit-font-smoothing: antialiased; + -webkit-tap-highlight-color: rgb(0 0 0 / 0%); +} + +.joinchat *, +.joinchat *::before, +.joinchat *::after { + box-sizing: border-box; +} + +.joinchat--show { + display: block; +} + +.joinchat--left { + right: auto; + left: var(--sep); +} + +.joinchat--noanim { + -webkit-animation: none; + animation: none; +} + +.joinchat__button { + position: absolute; + z-index: 2; + bottom: 8px; + right: 8px; + height: var(--s); + min-width: var(--s); + max-width: 95vw; + background: #25d366; + color: inherit; + border-radius: calc(var(--s)/2); + box-shadow: 1px 6px 24px 0 rgb(7 94 84 / 24%); + cursor: pointer; + transition: background-color 0.2s linear; +} + +.joinchat__button:hover { + background: #128c7e; +} + +.joinchat__button:active { + background: #128c7e; + transition: none; +} + +.joinchat--left .joinchat__button { + right: auto; + left: 8px; +} + +.joinchat__button__open { + width: var(--s); + height: var(--s); + border-radius: 50%; + background: rgb(0 0 0 / 0%) var(--joinchat-ico) center no-repeat; + background-size: 60%; + overflow: hidden; +} + +.joinchat__button__image { + position: absolute; + top: 1px; + right: 1px; + width: calc(var(--s) - 2px); + height: calc(var(--s) - 2px); + border-radius: 50%; + overflow: hidden; + opacity: 0; +} + +.joinchat__button__image img { + display: block; + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} + +.joinchat--show .joinchat__button__image { + -webkit-animation: joinchat_image_loop 20s linear 5s infinite normal both; + animation: joinchat_image_loop 20s linear 5s infinite normal both; +} + +.joinchat--image .joinchat__button__image { + opacity: 1; + -webkit-animation: none; + animation: none; +} + +.joinchat__tooltip { + position: absolute; + top: calc(var(--s)/2 - 16px); + right: calc(var(--s) + 16px); + max-width: calc(100vw - 105px); + height: 32px; + padding: 0 14px; + border: none; + border-radius: 16px; + background: #fff; + color: rgb(0 0 0 / 80%); + line-height: 31px; + white-space: nowrap; + opacity: 0; + transition: opacity 0.3s ease-out 0.4s; + filter: drop-shadow(0 1px 4px rgb(0 0 0 / 40%)); + pointer-events: none; +} + +.joinchat__tooltip::after { + content: ""; + display: block; + position: absolute; + top: 10px; + right: -6px; + border: 8px solid transparent; + border-width: 6px 0 6px 8px; + border-left-color: #fff; +} + +.joinchat__tooltip div { + overflow: hidden; + text-overflow: ellipsis; +} + +.joinchat--tooltip .joinchat__tooltip { + -webkit-animation: joinchat_tootlip 20s linear 5s 1 normal both; + animation: joinchat_tootlip 20s linear 5s 1 normal both; +} + +.joinchat--left .joinchat__tooltip { + right: auto; + left: calc(var(--s) + 16px); +} + +.joinchat--left .joinchat__tooltip::after { + left: -6px; + right: auto; + border-color: transparent; + border-width: 6px 8px 6px 0; + border-right-color: #fff; +} + +.joinchat__qr { + position: absolute; + bottom: calc(var(--s) + 16px); + right: 0; + display: none; + flex-direction: column-reverse; + width: 228px; + min-height: 200px; + padding: 14px 14px 10px; + border: none; + border-radius: 16px; + background: #fff; + color: rgb(0 0 0 / 80%); + text-align: center; + white-space: nowrap; + opacity: 1; + transition: opacity 0.3s ease-out 0.4s; + filter: drop-shadow(0 1px 4px rgb(0 0 0 / 40%)); + -webkit-animation: joinchat_badge_in 400ms cubic-bezier(0.11, 0.84, 0.83, 1.01) 1s both; + animation: joinchat_badge_in 400ms cubic-bezier(0.11, 0.84, 0.83, 1.01) 1s both; + pointer-events: none; +} + +.joinchat__qr::after { + content: ""; + display: block; + position: absolute; + bottom: -6px; + right: calc(var(--s)/2 - 6px); + border: 8px solid transparent; + border-width: 8px 6px 0; + border-top-color: #fff; +} + +.joinchat--left .joinchat__qr { + left: 0; + right: auto; +} + +.joinchat--left .joinchat__qr::after { + left: calc(var(--s)/2 - 6px); + right: auto; +} + +.joinchat__qr div { + font-size: 14px; + color: #4a4a4a; + overflow: hidden; + text-overflow: ellipsis; +} + +.joinchat__qr canvas { + display: block; + width: 200px; + height: 200px; + margin: 0; +} + +@-webkit-keyframes joinchat_show { + from { + transform: scale(0); + } +} + +@keyframes joinchat_show { + from { + transform: scale(0); + } +} + +@-webkit-keyframes joinchat_badge_in { + from { + opacity: 0; + transform: translateY(50px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes joinchat_badge_in { + from { + opacity: 0; + transform: translateY(50px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +@-webkit-keyframes joinchat_image_loop { + 0% { + opacity: 0; + } + + 3%, + 20% { + opacity: 1; + } + + 25%, + 100% { + opacity: 0; + } +} + +@keyframes joinchat_image_loop { + 0% { + opacity: 0; + } + + 3%, + 20% { + opacity: 1; + } + + 25%, + 100% { + opacity: 0; + } +} + +@-webkit-keyframes joinchat_tootlip { + 0% { + opacity: 0; + transform: scaleY(0); + } + + 1%, + 20% { + opacity: 1; + transform: scaleY(1); + } + + 25%, + 100% { + opacity: 0; + transform: scaleY(1); + } +} + +@keyframes joinchat_tootlip { + 0% { + opacity: 0; + transform: scaleY(0); + } + + 1%, + 20% { + opacity: 1; + transform: scaleY(1); + } + + 25%, + 100% { + opacity: 0; + transform: scaleY(1); + } +} + +.joinchat__woo-btn__wrapper { + clear: both; +} + +.joinchat__woo-btn { + --s: 40px; + + display: inline-block; + box-sizing: border-box; + height: var(--s); + max-width: 100%; + padding: 0 calc(var(--s)/2) 0 var(--s); + background: #25d366 var(--joinchat-ico) calc(var(--s)*0.2) 50% no-repeat; + background-size: calc(var(--s)*0.6); + color: #fff; + border-radius: calc(var(--s)/2); + font: 700 normal calc(var(--s)*0.35)/var(--s) var(--joinchat-font); + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + cursor: pointer; + transition: background-color 200ms; +} + +.joinchat__woo-btn:hover { + background-color: #128c7e; +} + +@media (orientation: portrait) and (min-width: 481px), (orientation: landscape) and (min-height: 481px) { + .joinchat--mobile { + display: none !important; + } +} + +@media (max-width: 767px) { + .joinchat--footer-bar { + --bottom: 76px !important; + } +} + +@media (max-width: 480px), (orientation: landscape) and (max-height: 480px) { + .joinchat { + --bottom: 6px; + --sep: 6px; + } +} + +@media (hover: hover) { + .joinchat__button:hover .joinchat__tooltip { + opacity: 1; + -webkit-animation: none; + animation: none; + transition: opacity 0.2s; + } + .joinchat--btn .joinchat__button:hover .joinchat__qr { + display: flex; + } +} + +@media (prefers-reduced-motion) { + .joinchat { + -webkit-animation: none; + animation: none; + } +} diff --git a/public/css/joinchat-btn.min.css b/public/css/joinchat-btn.min.css new file mode 100644 index 0000000..7f8cb48 --- /dev/null +++ b/public/css/joinchat-btn.min.css @@ -0,0 +1 @@ +:root{--joinchat-ico:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 0 1-13.754 2.299l-5.814.735a.392.392 0 0 1-.438-.44l.748-5.788A12.002 12.002 0 0 1 3.517 3.517zm3.61 17.043.3.158a9.846 9.846 0 0 0 11.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 0 0-1.747 11.554l.16.303-.51 3.942a.196.196 0 0 0 .219.22l3.961-.501zm6.534-7.003-.933 1.164a9.843 9.843 0 0 1-3.497-3.495l1.166-.933a.792.792 0 0 0 .23-.94L9.561 6.96a.793.793 0 0 0-.924-.445 1291.6 1291.6 0 0 0-2.023.524.797.797 0 0 0-.588.88 11.754 11.754 0 0 0 10.005 10.005.797.797 0 0 0 .88-.587l.525-2.023a.793.793 0 0 0-.445-.923L14.6 13.327a.792.792 0 0 0-.94.23z'/%3E%3C/svg%3E");--joinchat-font:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}.joinchat{--bottom:20px;--sep:20px;--s:60px;display:none;position:fixed;z-index:9999;right:var(--sep);bottom:var(--bottom);font:normal normal normal 16px/1.625em var(--joinchat-font);letter-spacing:0;animation:joinchat_show .5s cubic-bezier(.18,.89,.32,1.28) 10ms both;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgb(0 0 0/0)}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{display:block}.joinchat--left{right:auto;left:var(--sep)}.joinchat--noanim{animation:none}.joinchat__button{position:absolute;z-index:2;bottom:8px;right:8px;height:var(--s);min-width:var(--s);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--s)/2);box-shadow:1px 6px 24px 0 rgb(7 94 84/24%);cursor:pointer;transition:background-color .2s linear}.joinchat__button:hover{background:#128c7e}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--left .joinchat__button{right:auto;left:8px}.joinchat__button__open{width:var(--s);height:var(--s);border-radius:50%;background:rgb(0 0 0/0) var(--joinchat-ico) 50% no-repeat;background-size:60%;overflow:hidden}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--s) - 2px);height:calc(var(--s) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat__tooltip{position:absolute;top:calc(var(--s)/2 - 16px);right:calc(var(--s) + 16px);max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgb(0 0 0/80%);line-height:31px;white-space:nowrap;opacity:0;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 40%));pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}.joinchat--left .joinchat__tooltip{right:auto;left:calc(var(--s) + 16px)}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__qr{position:absolute;bottom:calc(var(--s) + 16px);right:0;display:none;flex-direction:column-reverse;width:228px;min-height:200px;padding:14px 14px 10px;border:none;border-radius:16px;background:#fff;color:rgb(0 0 0/80%);text-align:center;white-space:nowrap;opacity:1;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 40%));animation:joinchat_badge_in .4s cubic-bezier(.11,.84,.83,1.01) 1s both;pointer-events:none}.joinchat__qr:after{content:"";display:block;position:absolute;bottom:-6px;right:calc(var(--s)/2 - 6px);border:8px solid transparent;border-width:8px 6px 0;border-top-color:#fff}.joinchat--left .joinchat__qr{left:0;right:auto}.joinchat--left .joinchat__qr:after{left:calc(var(--s)/2 - 6px);right:auto}.joinchat__qr div{font-size:14px;color:#4a4a4a;overflow:hidden;text-overflow:ellipsis}.joinchat__qr canvas{display:block;width:200px;height:200px;margin:0}@keyframes joinchat_show{0%{transform:scale(0)}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}.joinchat__woo-btn__wrapper{clear:both}.joinchat__woo-btn{--s:40px;display:inline-block;box-sizing:border-box;height:var(--s);max-width:100%;padding:0 calc(var(--s)/2) 0 var(--s);background:#25d366 var(--joinchat-ico) calc(var(--s)*0.2) 50% no-repeat;background-size:calc(var(--s)*0.6);color:#fff;border-radius:calc(var(--s)/2);font:700 normal calc(var(--s)*0.35)/var(--s) var(--joinchat-font);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;transition:background-color .2s}.joinchat__woo-btn:hover{background-color:#128c7e}@media (orientation:landscape) and (min-height:481px),(orientation:portrait) and (min-width:481px){.joinchat--mobile{display:none!important}}@media (max-width:767px){.joinchat--footer-bar{--bottom:76px!important}}@media (max-width:480px),(orientation:landscape) and (max-height:480px){.joinchat{--bottom:6px;--sep:6px}}@media (hover:hover){.joinchat__button:hover .joinchat__tooltip{opacity:1;animation:none;transition:opacity .2s}.joinchat--btn .joinchat__button:hover .joinchat__qr{display:flex}}@media (prefers-reduced-motion){.joinchat{animation:none}} \ No newline at end of file diff --git a/public/css/woo.css b/public/css/joinchat-woo.css similarity index 100% rename from public/css/woo.css rename to public/css/joinchat-woo.css diff --git a/public/css/woo.min.css b/public/css/joinchat-woo.min.css similarity index 100% rename from public/css/woo.min.css rename to public/css/joinchat-woo.min.css diff --git a/public/css/joinchat.css b/public/css/joinchat.css index 25dd695..bd82a54 100755 --- a/public/css/joinchat.css +++ b/public/css/joinchat.css @@ -6,7 +6,7 @@ .joinchat { --bottom: 20px; --sep: 20px; - --s: var(--btn, 60px); + --s: 60px; --header: calc(var(--s)*1.16667); --vh: 100vh; --red: 37; @@ -22,12 +22,12 @@ --text: hsl(0deg 0% calc(var(--bw)*1%) / clamp(70%, calc(var(--bw)*1%), 100%)); --msg: var(--color); + color: var(--text); display: none; position: fixed; z-index: 9999; right: var(--sep); bottom: var(--bottom); - color: var(--text); font: normal normal normal 16px/1.625em var(--joinchat-font); letter-spacing: 0; -webkit-animation: joinchat_show 500ms cubic-bezier(0.18, 0.89, 0.32, 1.28) 10ms both; @@ -89,8 +89,7 @@ border-radius: calc(var(--s)/2); box-shadow: 1px 6px 24px 0 rgb(7 94 84 / 24%); cursor: pointer; - transition: background 0.2s linear; - will-change: background-color, width; + transition: background-color 0.2s linear; } [dir="rtl"] .joinchat__button { @@ -99,7 +98,7 @@ .joinchat__button:hover { background: #128c7e; - transition: background 1.5s linear; + transition-duration: 1.5s; } .joinchat__button:active { @@ -119,7 +118,7 @@ .joinchat--chatbox .joinchat__button { background: var(--color); - transition: background 0.2s linear; + transition-duration: 0.2s; box-shadow: 0 1px 2px 0 rgb(0 0 0 / 30%); } @@ -526,7 +525,6 @@ overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; - will-change: scroll-position; } .joinchat__box__scroll::-webkit-scrollbar { @@ -695,6 +693,11 @@ opacity: 0; transform: translateY(50px); } + + to { + opacity: 1; + transform: translateY(0); + } } @keyframes joinchat_badge_in { @@ -702,6 +705,11 @@ opacity: 0; transform: translateY(50px); } + + to { + opacity: 1; + transform: translateY(0); + } } @-webkit-keyframes joinchat_badge_out { diff --git a/public/css/joinchat.min.css b/public/css/joinchat.min.css index 23be4aa..06992fb 100755 --- a/public/css/joinchat.min.css +++ b/public/css/joinchat.min.css @@ -1 +1 @@ -:root{--joinchat-ico:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 0 1-13.754 2.299l-5.814.735a.392.392 0 0 1-.438-.44l.748-5.788A12.002 12.002 0 0 1 3.517 3.517zm3.61 17.043.3.158a9.846 9.846 0 0 0 11.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 0 0-1.747 11.554l.16.303-.51 3.942a.196.196 0 0 0 .219.22l3.961-.501zm6.534-7.003-.933 1.164a9.843 9.843 0 0 1-3.497-3.495l1.166-.933a.792.792 0 0 0 .23-.94L9.561 6.96a.793.793 0 0 0-.924-.445 1291.6 1291.6 0 0 0-2.023.524.797.797 0 0 0-.588.88 11.754 11.754 0 0 0 10.005 10.005.797.797 0 0 0 .88-.587l.525-2.023a.793.793 0 0 0-.445-.923L14.6 13.327a.792.792 0 0 0-.94.23z'/%3E%3C/svg%3E");--joinchat-font:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}.joinchat{--bottom:20px;--sep:20px;--s:var(--btn,60px);--header:calc(var(--s)*1.16667);--vh:100vh;--red:37;--green:211;--blue:102;--rgb:var(--red) var(--green) var(--blue);--color:rgb(var(--rgb));--dark:rgb(calc(var(--red) - 75) calc(var(--green) - 75) calc(var(--blue) - 75));--hover:rgb(calc(var(--red) + 50) calc(var(--green) + 50) calc(var(--blue) + 50));--bg:rgb(var(--rgb)/4%);--tolerance:210;--bw:calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance))*-10000000);--text:hsl(0deg 0% calc(var(--bw)*1%)/clamp(70%,calc(var(--bw)*1%),100%));--msg:var(--color);display:none;position:fixed;z-index:9999;right:var(--sep);bottom:var(--bottom);color:var(--text);font:normal normal normal 16px/1.625em var(--joinchat-font);letter-spacing:0;animation:joinchat_show .5s cubic-bezier(.18,.89,.32,1.28) 10ms both;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgb(0 0 0/0)}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{display:block}.joinchat--left{right:auto;left:var(--sep)}.joinchat--dark{--msg:var(--dark)}.joinchat--noanim{animation:none}.joinchat--hidden{display:none!important}@supports not (width:clamp(1px,1%,10px)){.joinchat{--text:hsl(0deg 0% calc(var(--bw)*1%)/90%)}}.joinchat__button{display:flex;flex-direction:row;position:absolute;z-index:2;bottom:8px;right:8px;height:var(--s);min-width:var(--s);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--s)/2);box-shadow:1px 6px 24px 0 rgb(7 94 84/24%);cursor:pointer;transition:background .2s linear;will-change:background-color,width}[dir=rtl] .joinchat__button{flex-direction:row-reverse}.joinchat__button:hover{background:#128c7e;transition:background 1.5s linear}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--left .joinchat__button{right:auto;left:8px;flex-direction:row-reverse}[dir=rtl] .joinchat--left .joinchat__button{flex-direction:row}.joinchat--chatbox .joinchat__button{background:var(--color);transition:background .2s linear;box-shadow:0 1px 2px 0 rgb(0 0 0/30%)}.joinchat--chatbox .joinchat__button:active,.joinchat--chatbox .joinchat__button:hover{background:var(--hover)}.joinchat--optout.joinchat--chatbox .joinchat__button{background-color:#999;opacity:.5;pointer-events:none}.joinchat--optout.joinchat--chatbox .joinchat__button .joinchat_svg__plain{stroke-dasharray:0;animation:none}.joinchat--optout.joinchat--chatbox .joinchat__button .joinchat_svg__chat{animation:none}.joinchat__button__open{width:var(--s);height:var(--s);border-radius:50%;background:rgb(0 0 0/0) var(--joinchat-ico) 50% no-repeat;background-size:60%;overflow:hidden}.joinchat--chatbox .joinchat__button__open{display:none}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--s) - 2px);height:calc(var(--s) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat--chatbox .joinchat__button__image{display:none}.joinchat__button__send{display:none;flex-shrink:0;width:var(--s);height:var(--s);max-width:var(--s);padding:calc(var(--s)*0.18);margin:0;overflow:hidden}.joinchat--chatbox .joinchat__button__send{display:block}.joinchat__button__send path{fill:none!important;stroke:var(--text)!important}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:1097;stroke-dashoffset:1097;animation:joinchat_plain 6s .2s ease-in-out infinite}.joinchat__button__send .joinchat_svg__chat{stroke-dasharray:1020;stroke-dashoffset:1020;animation:joinchat_chat 6s 3.2s ease-in-out infinite}.joinchat__button__sendtext{padding:0;max-width:0;border-radius:var(--s);font-weight:600;line-height:var(--s);white-space:nowrap;opacity:0;overflow:hidden;transition:none}.joinchat--chatbox .joinchat__button__sendtext{padding:0 4px 0 24px;max-width:200px;opacity:1;transition:max-width .2s linear,opacity .4s ease-out .2s}.joinchat--chatbox.joinchat--left .joinchat__button__sendtext{padding:0 24px 0 4px}.joinchat__badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border:none;border-radius:50%;background:#e82c0c;color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center;box-shadow:none;opacity:0;pointer-events:none}.joinchat__badge.joinchat__badge--in{animation:joinchat_badge_in .5s cubic-bezier(.27,.9,.41,1.28) 1 both}.joinchat__badge.joinchat__badge--out{animation:joinchat_badge_out .4s cubic-bezier(.215,.61,.355,1) 1 both}.joinchat__tooltip{position:absolute;top:calc(var(--s)/2 - 16px);right:calc(var(--s) + 16px);max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgb(0 0 0/80%);line-height:31px;white-space:nowrap;opacity:0;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 40%));pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}.joinchat--chatbox .joinchat__tooltip{display:none}.joinchat--left .joinchat__tooltip{right:auto;left:calc(var(--s) + 16px)}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__qr{position:absolute;bottom:calc(var(--s) + 16px);right:0;display:none;flex-direction:column-reverse;width:228px;min-height:200px;padding:14px 14px 10px;border:none;border-radius:16px;background:#fff;color:rgb(0 0 0/80%);text-align:center;white-space:nowrap;opacity:1;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 40%));animation:joinchat_badge_in .4s cubic-bezier(.11,.84,.83,1.01) 1s both;pointer-events:none}.joinchat__qr:after{content:"";display:block;position:absolute;bottom:-6px;right:calc(var(--s)/2 - 6px);border:8px solid transparent;border-width:8px 6px 0;border-top-color:#fff}.joinchat--left .joinchat__qr{left:0;right:auto}.joinchat--left .joinchat__qr:after{left:calc(var(--s)/2 - 6px);right:auto}.joinchat__qr div{font-size:14px;color:#4a4a4a;overflow:hidden;text-overflow:ellipsis}.joinchat__qr canvas{display:block;width:200px;height:200px;margin:0}.joinchat__box{display:flex;flex-direction:column;position:absolute;bottom:0;right:0;z-index:1;width:calc(100vw - var(--sep)*2);max-width:400px;min-height:170px;max-height:calc(var(--vh) - var(--bottom) - var(--sep));border-radius:calc(var(--s)/2 + 2px);background:transparent;box-shadow:0 2px 6px 0 rgb(0 0 0/50%);text-align:left;overflow:hidden;transform:scale3d(0,0,0);opacity:0;transition:max-height .2s ease-out,opacity .4s ease-out,transform 0s linear .3s}[dir=rtl] .joinchat__box{text-align:right}.joinchat--chatbox .joinchat__box{opacity:1;transform:scaleX(1);transition:max-height .2s ease-out,opacity .2s ease-out,transform 0s linear}.joinchat--left .joinchat__box{right:auto;left:0}.joinchat__header{display:flex;flex-flow:row;align-items:center;position:relative;flex-shrink:0;height:var(--header);min-height:50px;padding:0 70px 0 26px;margin:0;background:var(--color)}[dir=rtl] .joinchat__header{padding:0 26px 0 70px}.joinchat--dark .joinchat__header{background:var(--dark)}.joinchat__header__text{font-size:19px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.joinchat__powered{font-size:11px;line-height:18px;color:inherit!important;text-decoration:none!important;fill:currentcolor;opacity:.8}.joinchat__powered svg{display:inline-block;width:auto;height:18px;vertical-align:-30%}.joinchat__powered:active,.joinchat__powered:hover{color:inherit!important;text-decoration:none!important;opacity:.9;filter:drop-shadow(0 1px 3px rgb(0 0 0 / 30%))}.joinchat__wa{height:28px;width:auto;fill:currentcolor;opacity:.8}.joinchat__close{--size:34px;position:absolute;top:calc(50% - var(--size)/2);right:24px;width:var(--size);height:var(--size);border-radius:50%;background:rgb(0 0 0/40%) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4 21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") 50% no-repeat;background-size:12px;cursor:pointer;transition:background-color .3s ease-out}.joinchat__close:hover{background-color:rgb(0 0 0/60%)}.joinchat__close:active{background-color:rgb(0 0 0/70%)}[dir=rtl] .joinchat__close{right:auto;left:24px}.joinchat__box__scroll{padding:20px 0 70px;padding-bottom:calc(var(--s) + 10px);background:#fff linear-gradient(0deg,var(--bg),var(--bg));overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;will-change:scroll-position}.joinchat__box__scroll::-webkit-scrollbar{width:5px;background:rgb(0 0 0/0)}.joinchat__box__scroll::-webkit-scrollbar-thumb{border-radius:3px;background:rgb(0 0 0/0)}.joinchat--blur .joinchat__box__scroll{background:rgba(var(--rgb)/2%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joinchat--dark .joinchat__box__scroll{background:#1a1a1a}.joinchat__box__scroll:hover::-webkit-scrollbar-thumb{background:rgb(0 0 0/20%)}@supports (-webkit-overflow-scrolling:touch){.joinchat__box__scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}}.joinchat__optin{padding:0 16px;margin-bottom:16px;color:#4a4a4a;font-size:13px;line-height:1.33}.joinchat__optin a{display:inline;padding:0;color:inherit!important;text-decoration:underline}.joinchat__optin a:hover{text-decoration-thickness:2px}.joinchat__optin input{position:absolute;visibility:hidden}.joinchat__optin label{position:relative;display:block;margin:0;padding:0 0 0 30px;color:inherit;font:inherit;cursor:pointer}.joinchat__optin label:before{content:"";display:block;position:absolute;top:calc(50% - 11px);left:0;width:22px;height:22px;border:3px solid var(--color);border-radius:4px;box-shadow:0 0 0 1px var(--text);transition:box-shadow .3s ease-in-out}.joinchat__optin label:after{content:"";display:none;position:absolute;top:calc(50% - 8px);left:8px;width:6px;height:14px;border:solid var(--text);border-width:0 3px 3px 0;transform:rotate(45deg)}[dir=rtl] .joinchat__optin label{padding:0 30px 0 0}[dir=rtl] .joinchat__optin label:before{left:auto;right:0}[dir=rtl] .joinchat__optin label:after{left:auto;right:8px}.joinchat__optin input:checked+label:before{box-shadow:0 0 0 1px var(--text),inset 0 0 0 10px var(--color)}.joinchat__optin input:checked+label:after{display:block}.joinchat--dark .joinchat__optin{color:#d8d8d8}.joinchat__message{position:relative;min-height:60px;padding:17px 20px;margin:0 26px 26px;border-radius:32px;background:#fff;color:#4a4a4a;word-break:break-word;filter:drop-shadow(0 1px 2px rgb(0 0 0 / 30%));transform:translateZ(0)}.joinchat__message:before{content:"";display:block;position:absolute;bottom:20px;left:-15px;width:17px;height:25px;background:inherit;-webkit-clip-path:var(--peak,url(#joinchat__message__peak));clip-path:var(--peak,url(#joinchat__message__peak))}.joinchat--dark .joinchat__message{background:#505050;color:#d8d8d8}@keyframes joinchat_show{0%{transform:scale(0)}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}}@keyframes joinchat_badge_out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes joinchat_plain{0%,50%,to{stroke-dashoffset:1097}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_chat{0%,50%,to{stroke-dashoffset:1020}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}.joinchat__woo-btn__wrapper{clear:both}.joinchat__woo-btn{--s:40px;display:inline-block;box-sizing:border-box;height:var(--s);max-width:100%;padding:0 calc(var(--s)/2) 0 var(--s);background:#25d366 var(--joinchat-ico) calc(var(--s)*0.2) 50% no-repeat;background-size:calc(var(--s)*0.6);color:#fff;border-radius:calc(var(--s)/2);font:700 normal calc(var(--s)*0.35)/var(--s) var(--joinchat-font);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;transition:background-color .2s}.joinchat__woo-btn:hover{background-color:#128c7e}@media (orientation:landscape) and (min-height:481px),(orientation:portrait) and (min-width:481px){.joinchat--mobile{display:none!important}}@media (max-width:767px){.joinchat--footer-bar{--bottom:76px!important}}@media (max-width:480px),(orientation:landscape) and (max-height:480px){.joinchat{--bottom:6px;--sep:6px;--header:calc(var(--s)*0.91667)}.joinchat__header__text{font-size:17px}.joinchat__close{--size:28px}.joinchat__box__scroll{padding-top:15px}.joinchat__message{padding:18px 16px;line-height:24px;margin:0 20px 20px}}@media (hover:hover){.joinchat__button:hover .joinchat__tooltip{opacity:1;animation:none;transition:opacity .2s}.joinchat--btn .joinchat__button:hover .joinchat__qr,.joinchat--chatbox .joinchat__button:hover .joinchat__qr{display:flex}}@media (prefers-color-scheme:dark){.joinchat--dark-auto{--msg:var(--dark)}.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}.joinchat--dark-auto .joinchat__optin{color:#d8d8d8}.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (prefers-reduced-motion){.joinchat{animation:none}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:0;animation:none}.joinchat__button__send .joinchat_svg__chat{animation:none}.joinchat__button__sendtext{transition:none!important}} \ No newline at end of file +:root{--joinchat-ico:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M3.516 3.516c4.686-4.686 12.284-4.686 16.97 0 4.686 4.686 4.686 12.283 0 16.97a12.004 12.004 0 0 1-13.754 2.299l-5.814.735a.392.392 0 0 1-.438-.44l.748-5.788A12.002 12.002 0 0 1 3.517 3.517zm3.61 17.043.3.158a9.846 9.846 0 0 0 11.534-1.758c3.843-3.843 3.843-10.074 0-13.918-3.843-3.843-10.075-3.843-13.918 0a9.846 9.846 0 0 0-1.747 11.554l.16.303-.51 3.942a.196.196 0 0 0 .219.22l3.961-.501zm6.534-7.003-.933 1.164a9.843 9.843 0 0 1-3.497-3.495l1.166-.933a.792.792 0 0 0 .23-.94L9.561 6.96a.793.793 0 0 0-.924-.445 1291.6 1291.6 0 0 0-2.023.524.797.797 0 0 0-.588.88 11.754 11.754 0 0 0 10.005 10.005.797.797 0 0 0 .88-.587l.525-2.023a.793.793 0 0 0-.445-.923L14.6 13.327a.792.792 0 0 0-.94.23z'/%3E%3C/svg%3E");--joinchat-font:-apple-system,blinkmacsystemfont,"Segoe UI",roboto,oxygen-sans,ubuntu,cantarell,"Helvetica Neue",sans-serif}.joinchat{--bottom:20px;--sep:20px;--s:60px;--header:calc(var(--s)*1.16667);--vh:100vh;--red:37;--green:211;--blue:102;--rgb:var(--red) var(--green) var(--blue);--color:rgb(var(--rgb));--dark:rgb(calc(var(--red) - 75) calc(var(--green) - 75) calc(var(--blue) - 75));--hover:rgb(calc(var(--red) + 50) calc(var(--green) + 50) calc(var(--blue) + 50));--bg:rgb(var(--rgb)/4%);--tolerance:210;--bw:calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance))*-10000000);--text:hsl(0deg 0% calc(var(--bw)*1%)/clamp(70%,calc(var(--bw)*1%),100%));--msg:var(--color);color:var(--text);display:none;position:fixed;z-index:9999;right:var(--sep);bottom:var(--bottom);font:normal normal normal 16px/1.625em var(--joinchat-font);letter-spacing:0;animation:joinchat_show .5s cubic-bezier(.18,.89,.32,1.28) 10ms both;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:rgb(0 0 0/0)}.joinchat *,.joinchat :after,.joinchat :before{box-sizing:border-box}.joinchat--show{display:block}.joinchat--left{right:auto;left:var(--sep)}.joinchat--dark{--msg:var(--dark)}.joinchat--noanim{animation:none}.joinchat--hidden{display:none!important}@supports not (width:clamp(1px,1%,10px)){.joinchat{--text:hsl(0deg 0% calc(var(--bw)*1%)/90%)}}.joinchat__button{display:flex;flex-direction:row;position:absolute;z-index:2;bottom:8px;right:8px;height:var(--s);min-width:var(--s);max-width:95vw;background:#25d366;color:inherit;border-radius:calc(var(--s)/2);box-shadow:1px 6px 24px 0 rgb(7 94 84/24%);cursor:pointer;transition:background-color .2s linear}[dir=rtl] .joinchat__button{flex-direction:row-reverse}.joinchat__button:hover{background:#128c7e;transition-duration:1.5s}.joinchat__button:active{background:#128c7e;transition:none}.joinchat--left .joinchat__button{right:auto;left:8px;flex-direction:row-reverse}[dir=rtl] .joinchat--left .joinchat__button{flex-direction:row}.joinchat--chatbox .joinchat__button{background:var(--color);transition-duration:.2s;box-shadow:0 1px 2px 0 rgb(0 0 0/30%)}.joinchat--chatbox .joinchat__button:active,.joinchat--chatbox .joinchat__button:hover{background:var(--hover)}.joinchat--optout.joinchat--chatbox .joinchat__button{background-color:#999;opacity:.5;pointer-events:none}.joinchat--optout.joinchat--chatbox .joinchat__button .joinchat_svg__plain{stroke-dasharray:0;animation:none}.joinchat--optout.joinchat--chatbox .joinchat__button .joinchat_svg__chat{animation:none}.joinchat__button__open{width:var(--s);height:var(--s);border-radius:50%;background:rgb(0 0 0/0) var(--joinchat-ico) 50% no-repeat;background-size:60%;overflow:hidden}.joinchat--chatbox .joinchat__button__open{display:none}.joinchat__button__image{position:absolute;top:1px;right:1px;width:calc(var(--s) - 2px);height:calc(var(--s) - 2px);border-radius:50%;overflow:hidden;opacity:0}.joinchat__button__image img{display:block;width:100%;height:100%;object-fit:cover}.joinchat--show .joinchat__button__image{animation:joinchat_image_loop 20s linear 5s infinite normal both}.joinchat--image .joinchat__button__image{opacity:1;animation:none}.joinchat--chatbox .joinchat__button__image{display:none}.joinchat__button__send{display:none;flex-shrink:0;width:var(--s);height:var(--s);max-width:var(--s);padding:calc(var(--s)*0.18);margin:0;overflow:hidden}.joinchat--chatbox .joinchat__button__send{display:block}.joinchat__button__send path{fill:none!important;stroke:var(--text)!important}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:1097;stroke-dashoffset:1097;animation:joinchat_plain 6s .2s ease-in-out infinite}.joinchat__button__send .joinchat_svg__chat{stroke-dasharray:1020;stroke-dashoffset:1020;animation:joinchat_chat 6s 3.2s ease-in-out infinite}.joinchat__button__sendtext{padding:0;max-width:0;border-radius:var(--s);font-weight:600;line-height:var(--s);white-space:nowrap;opacity:0;overflow:hidden;transition:none}.joinchat--chatbox .joinchat__button__sendtext{padding:0 4px 0 24px;max-width:200px;opacity:1;transition:max-width .2s linear,opacity .4s ease-out .2s}.joinchat--chatbox.joinchat--left .joinchat__button__sendtext{padding:0 24px 0 4px}.joinchat__badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border:none;border-radius:50%;background:#e82c0c;color:#fff;font-size:12px;font-weight:600;line-height:20px;text-align:center;box-shadow:none;opacity:0;pointer-events:none}.joinchat__badge.joinchat__badge--in{animation:joinchat_badge_in .5s cubic-bezier(.27,.9,.41,1.28) 1 both}.joinchat__badge.joinchat__badge--out{animation:joinchat_badge_out .4s cubic-bezier(.215,.61,.355,1) 1 both}.joinchat__tooltip{position:absolute;top:calc(var(--s)/2 - 16px);right:calc(var(--s) + 16px);max-width:calc(100vw - 105px);height:32px;padding:0 14px;border:none;border-radius:16px;background:#fff;color:rgb(0 0 0/80%);line-height:31px;white-space:nowrap;opacity:0;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 40%));pointer-events:none}.joinchat__tooltip:after{content:"";display:block;position:absolute;top:10px;right:-6px;border:8px solid transparent;border-width:6px 0 6px 8px;border-left-color:#fff}.joinchat__tooltip div{overflow:hidden;text-overflow:ellipsis}.joinchat--tooltip .joinchat__tooltip{animation:joinchat_tootlip 20s linear 5s 1 normal both}.joinchat--chatbox .joinchat__tooltip{display:none}.joinchat--left .joinchat__tooltip{right:auto;left:calc(var(--s) + 16px)}.joinchat--left .joinchat__tooltip:after{left:-6px;right:auto;border-color:transparent;border-width:6px 8px 6px 0;border-right-color:#fff}.joinchat__qr{position:absolute;bottom:calc(var(--s) + 16px);right:0;display:none;flex-direction:column-reverse;width:228px;min-height:200px;padding:14px 14px 10px;border:none;border-radius:16px;background:#fff;color:rgb(0 0 0/80%);text-align:center;white-space:nowrap;opacity:1;transition:opacity .3s ease-out .4s;filter:drop-shadow(0 1px 4px rgb(0 0 0 / 40%));animation:joinchat_badge_in .4s cubic-bezier(.11,.84,.83,1.01) 1s both;pointer-events:none}.joinchat__qr:after{content:"";display:block;position:absolute;bottom:-6px;right:calc(var(--s)/2 - 6px);border:8px solid transparent;border-width:8px 6px 0;border-top-color:#fff}.joinchat--left .joinchat__qr{left:0;right:auto}.joinchat--left .joinchat__qr:after{left:calc(var(--s)/2 - 6px);right:auto}.joinchat__qr div{font-size:14px;color:#4a4a4a;overflow:hidden;text-overflow:ellipsis}.joinchat__qr canvas{display:block;width:200px;height:200px;margin:0}.joinchat__box{display:flex;flex-direction:column;position:absolute;bottom:0;right:0;z-index:1;width:calc(100vw - var(--sep)*2);max-width:400px;min-height:170px;max-height:calc(var(--vh) - var(--bottom) - var(--sep));border-radius:calc(var(--s)/2 + 2px);background:transparent;box-shadow:0 2px 6px 0 rgb(0 0 0/50%);text-align:left;overflow:hidden;transform:scale3d(0,0,0);opacity:0;transition:max-height .2s ease-out,opacity .4s ease-out,transform 0s linear .3s}[dir=rtl] .joinchat__box{text-align:right}.joinchat--chatbox .joinchat__box{opacity:1;transform:scaleX(1);transition:max-height .2s ease-out,opacity .2s ease-out,transform 0s linear}.joinchat--left .joinchat__box{right:auto;left:0}.joinchat__header{display:flex;flex-flow:row;align-items:center;position:relative;flex-shrink:0;height:var(--header);min-height:50px;padding:0 70px 0 26px;margin:0;background:var(--color)}[dir=rtl] .joinchat__header{padding:0 26px 0 70px}.joinchat--dark .joinchat__header{background:var(--dark)}.joinchat__header__text{font-size:19px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.8}.joinchat__powered{font-size:11px;line-height:18px;color:inherit!important;text-decoration:none!important;fill:currentcolor;opacity:.8}.joinchat__powered svg{display:inline-block;width:auto;height:18px;vertical-align:-30%}.joinchat__powered:active,.joinchat__powered:hover{color:inherit!important;text-decoration:none!important;opacity:.9;filter:drop-shadow(0 1px 3px rgb(0 0 0 / 30%))}.joinchat__wa{height:28px;width:auto;fill:currentcolor;opacity:.8}.joinchat__close{--size:34px;position:absolute;top:calc(50% - var(--size)/2);right:24px;width:var(--size);height:var(--size);border-radius:50%;background:rgb(0 0 0/40%) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M24 2.4 21.6 0 12 9.6 2.4 0 0 2.4 9.6 12 0 21.6 2.4 24l9.6-9.6 9.6 9.6 2.4-2.4-9.6-9.6L24 2.4z'/%3E%3C/svg%3E") 50% no-repeat;background-size:12px;cursor:pointer;transition:background-color .3s ease-out}.joinchat__close:hover{background-color:rgb(0 0 0/60%)}.joinchat__close:active{background-color:rgb(0 0 0/70%)}[dir=rtl] .joinchat__close{right:auto;left:24px}.joinchat__box__scroll{padding:20px 0 70px;padding-bottom:calc(var(--s) + 10px);background:#fff linear-gradient(0deg,var(--bg),var(--bg));overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.joinchat__box__scroll::-webkit-scrollbar{width:5px;background:rgb(0 0 0/0)}.joinchat__box__scroll::-webkit-scrollbar-thumb{border-radius:3px;background:rgb(0 0 0/0)}.joinchat--blur .joinchat__box__scroll{background:rgba(var(--rgb)/2%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.joinchat--dark .joinchat__box__scroll{background:#1a1a1a}.joinchat__box__scroll:hover::-webkit-scrollbar-thumb{background:rgb(0 0 0/20%)}@supports (-webkit-overflow-scrolling:touch){.joinchat__box__scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}}.joinchat__optin{padding:0 16px;margin-bottom:16px;color:#4a4a4a;font-size:13px;line-height:1.33}.joinchat__optin a{display:inline;padding:0;color:inherit!important;text-decoration:underline}.joinchat__optin a:hover{text-decoration-thickness:2px}.joinchat__optin input{position:absolute;visibility:hidden}.joinchat__optin label{position:relative;display:block;margin:0;padding:0 0 0 30px;color:inherit;font:inherit;cursor:pointer}.joinchat__optin label:before{content:"";display:block;position:absolute;top:calc(50% - 11px);left:0;width:22px;height:22px;border:3px solid var(--color);border-radius:4px;box-shadow:0 0 0 1px var(--text);transition:box-shadow .3s ease-in-out}.joinchat__optin label:after{content:"";display:none;position:absolute;top:calc(50% - 8px);left:8px;width:6px;height:14px;border:solid var(--text);border-width:0 3px 3px 0;transform:rotate(45deg)}[dir=rtl] .joinchat__optin label{padding:0 30px 0 0}[dir=rtl] .joinchat__optin label:before{left:auto;right:0}[dir=rtl] .joinchat__optin label:after{left:auto;right:8px}.joinchat__optin input:checked+label:before{box-shadow:0 0 0 1px var(--text),inset 0 0 0 10px var(--color)}.joinchat__optin input:checked+label:after{display:block}.joinchat--dark .joinchat__optin{color:#d8d8d8}.joinchat__message{position:relative;min-height:60px;padding:17px 20px;margin:0 26px 26px;border-radius:32px;background:#fff;color:#4a4a4a;word-break:break-word;filter:drop-shadow(0 1px 2px rgb(0 0 0 / 30%));transform:translateZ(0)}.joinchat__message:before{content:"";display:block;position:absolute;bottom:20px;left:-15px;width:17px;height:25px;background:inherit;-webkit-clip-path:var(--peak,url(#joinchat__message__peak));clip-path:var(--peak,url(#joinchat__message__peak))}.joinchat--dark .joinchat__message{background:#505050;color:#d8d8d8}@keyframes joinchat_show{0%{transform:scale(0)}}@keyframes joinchat_badge_in{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes joinchat_badge_out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes joinchat_plain{0%,50%,to{stroke-dashoffset:1097}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_chat{0%,50%,to{stroke-dashoffset:1020}5%,45%{stroke-dashoffset:0}}@keyframes joinchat_image_loop{0%{opacity:0}3%,20%{opacity:1}25%,to{opacity:0}}@keyframes joinchat_tootlip{0%{opacity:0;transform:scaleY(0)}1%,20%{opacity:1;transform:scaleY(1)}25%,to{opacity:0;transform:scaleY(1)}}.joinchat__woo-btn__wrapper{clear:both}.joinchat__woo-btn{--s:40px;display:inline-block;box-sizing:border-box;height:var(--s);max-width:100%;padding:0 calc(var(--s)/2) 0 var(--s);background:#25d366 var(--joinchat-ico) calc(var(--s)*0.2) 50% no-repeat;background-size:calc(var(--s)*0.6);color:#fff;border-radius:calc(var(--s)/2);font:700 normal calc(var(--s)*0.35)/var(--s) var(--joinchat-font);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer;transition:background-color .2s}.joinchat__woo-btn:hover{background-color:#128c7e}@media (orientation:landscape) and (min-height:481px),(orientation:portrait) and (min-width:481px){.joinchat--mobile{display:none!important}}@media (max-width:767px){.joinchat--footer-bar{--bottom:76px!important}}@media (max-width:480px),(orientation:landscape) and (max-height:480px){.joinchat{--bottom:6px;--sep:6px;--header:calc(var(--s)*0.91667)}.joinchat__header__text{font-size:17px}.joinchat__close{--size:28px}.joinchat__box__scroll{padding-top:15px}.joinchat__message{padding:18px 16px;line-height:24px;margin:0 20px 20px}}@media (hover:hover){.joinchat__button:hover .joinchat__tooltip{opacity:1;animation:none;transition:opacity .2s}.joinchat--btn .joinchat__button:hover .joinchat__qr,.joinchat--chatbox .joinchat__button:hover .joinchat__qr{display:flex}}@media (prefers-color-scheme:dark){.joinchat--dark-auto{--msg:var(--dark)}.joinchat--dark-auto .joinchat__box__scroll{background:#1a1a1a}.joinchat--dark-auto .joinchat__header{background:var(--dark)}.joinchat--dark-auto .joinchat__optin{color:#d8d8d8}.joinchat--dark-auto .joinchat__message{background:#505050;color:#d8d8d8}}@media (prefers-reduced-motion){.joinchat{animation:none}.joinchat__button__send .joinchat_svg__plain{stroke-dasharray:0;animation:none}.joinchat__button__send .joinchat_svg__chat{animation:none}.joinchat__button__sendtext{transition:none!important}} \ No newline at end of file diff --git a/public/js/joinchat.js b/public/js/joinchat.js index dea9352..7683f1b 100644 --- a/public/js/joinchat.js +++ b/public/js/joinchat.js @@ -38,7 +38,8 @@ // Compatible with GADP for WordPress by MonsterInsights tracker name var ga_tracker = win[this.settings.ga_tracker] || win['ga'] || win['__gaTracker']; // Can pass setting 'data_layer' for custom data layer name - var data_layer = win[this.settings.data_layer] || win['dataLayer']; + // Compatible with GTM4WP custom DataLayer name + var data_layer = win[this.settings.data_layer] || win[win.gtm4wp_datalayer_name] || win['dataLayer']; // Send Google Analytics custom event (Universal Analytics - analytics.js) if (typeof ga_tracker == 'function' && typeof ga_tracker.getAll == 'function') { diff --git a/public/js/joinchat.min.js b/public/js/joinchat.min.js index 2a6d68c..d63ec74 100644 --- a/public/js/joinchat.min.js +++ b/public/js/joinchat.min.js @@ -1 +1 @@ -!function(d,p,u){"use strict";function t(){d(u).trigger("joinchat:starting");var t,o,e=1e3*joinchat_obj.settings.button_delay,n=1e3*joinchat_obj.settings.message_delay,i=!!joinchat_obj.settings.message_hash,a=!!joinchat_obj.$(".joinchat__box").length,s=parseInt(joinchat_obj.store.getItem("joinchat_views")||1)>=joinchat_obj.settings.message_views,h=-1!==(joinchat_obj.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean).indexOf(joinchat_obj.settings.message_hash||"none");function c(){clearTimeout(o),joinchat_obj.chatbox_show()}function j(){joinchat_obj.save_hash(),joinchat_obj.chatbox_hide()}var _,r,l,b="joinchat--show";function g(){var t=(u.activeElement.type||"").toLowerCase();0<=["date","datetime","email","month","number","password","search","tel","text","textarea","time","url","week"].indexOf(t)?joinchat_obj.chatbox?(joinchat_obj.chatbox_hide(),setTimeout(function(){joinchat_obj.$div.removeClass("joinchat--show")},400)):joinchat_obj.$div.removeClass("joinchat--show"):joinchat_obj.$div.addClass("joinchat--show")}h||i&&n&&!joinchat_obj.settings.message_badge&&s||(b+=" joinchat--tooltip"),setTimeout(function(){joinchat_obj.$div.addClass(b)},e),i&&!h&&n&&(joinchat_obj.settings.message_badge?o=setTimeout(function(){joinchat_obj.$(".joinchat__badge").addClass("joinchat__badge--in")},e+n):s&&(o=setTimeout(c,e+n))),a&&!joinchat_obj.is_mobile&&joinchat_obj.$(".joinchat__button").on("mouseenter",function(){t=setTimeout(c,1500)}).on("mouseleave",function(){clearTimeout(t)}),joinchat_obj.$(".joinchat__button").on("click",function(){a&&!joinchat_obj.chatbox?c():Date.now()>joinchat_obj.showed_at+600&&(j(),joinchat_obj.open_whatsapp())}),joinchat_obj.$(".joinchat__close").on("click",j),joinchat_obj.$("#joinchat_optin").on("change",function(){joinchat_obj.$div.toggleClass("joinchat--optout",!this.checked)}),joinchat_obj.$(".joinchat__box__scroll").on("mousewheel DOMMouseScroll",function(t){t.preventDefault();t=t.originalEvent.wheelDelta||-t.originalEvent.detail;this.scrollTop+=30*(t<0?1:-1)}),joinchat_obj.is_mobile&&(d(u).on("focus blur","input, textarea",function(t){d(t.target).closest(joinchat_obj.$div).length||(clearTimeout(_),_=setTimeout(g,200))}),d(p).on("resize",function(){clearTimeout(r),r=setTimeout(function(){joinchat_obj.$div[0].style.setProperty("--vh",window.innerHeight+"px")},200)}).trigger("resize")),d(u).on("click",'.joinchat_open, .joinchat_app, a[href="#joinchat"], a[href="#whatsapp"]',function(t){t.preventDefault(),!a||d(this).is('.joinchat_app, a[href="#whatsapp"]')?joinchat_obj.open_whatsapp():c()}),d(u).on("click",".joinchat_close",function(t){t.preventDefault(),joinchat_obj.chatbox_hide()}),a&&"IntersectionObserver"in p&&(0<(n=d(".joinchat_show, .joinchat_force_show")).length&&(l=new IntersectionObserver(function(t){d.each(t,function(){if(0=joinchat_obj.settings.message_views,h=-1!==(joinchat_obj.store.getItem("joinchat_hashes")||"").split(",").filter(Boolean).indexOf(joinchat_obj.settings.message_hash||"none");function c(){clearTimeout(o),joinchat_obj.chatbox_show()}function _(){joinchat_obj.save_hash(),joinchat_obj.chatbox_hide()}var j,r,l,b="joinchat--show";function g(){var t=(u.activeElement.type||"").toLowerCase();0<=["date","datetime","email","month","number","password","search","tel","text","textarea","time","url","week"].indexOf(t)?joinchat_obj.chatbox?(joinchat_obj.chatbox_hide(),setTimeout(function(){joinchat_obj.$div.removeClass("joinchat--show")},400)):joinchat_obj.$div.removeClass("joinchat--show"):joinchat_obj.$div.addClass("joinchat--show")}h||i&&n&&!joinchat_obj.settings.message_badge&&s||(b+=" joinchat--tooltip"),setTimeout(function(){joinchat_obj.$div.addClass(b)},e),i&&!h&&n&&(joinchat_obj.settings.message_badge?o=setTimeout(function(){joinchat_obj.$(".joinchat__badge").addClass("joinchat__badge--in")},e+n):s&&(o=setTimeout(c,e+n))),a&&!joinchat_obj.is_mobile&&joinchat_obj.$(".joinchat__button").on("mouseenter",function(){t=setTimeout(c,1500)}).on("mouseleave",function(){clearTimeout(t)}),joinchat_obj.$(".joinchat__button").on("click",function(){a&&!joinchat_obj.chatbox?c():Date.now()>joinchat_obj.showed_at+600&&(_(),joinchat_obj.open_whatsapp())}),joinchat_obj.$(".joinchat__close").on("click",_),joinchat_obj.$("#joinchat_optin").on("change",function(){joinchat_obj.$div.toggleClass("joinchat--optout",!this.checked)}),joinchat_obj.$(".joinchat__box__scroll").on("mousewheel DOMMouseScroll",function(t){t.preventDefault();t=t.originalEvent.wheelDelta||-t.originalEvent.detail;this.scrollTop+=30*(t<0?1:-1)}),joinchat_obj.is_mobile&&(d(u).on("focus blur","input, textarea",function(t){d(t.target).closest(joinchat_obj.$div).length||(clearTimeout(j),j=setTimeout(g,200))}),d(p).on("resize",function(){clearTimeout(r),r=setTimeout(function(){joinchat_obj.$div[0].style.setProperty("--vh",window.innerHeight+"px")},200)}).trigger("resize")),d(u).on("click",'.joinchat_open, .joinchat_app, a[href="#joinchat"], a[href="#whatsapp"]',function(t){t.preventDefault(),!a||d(this).is('.joinchat_app, a[href="#whatsapp"]')?joinchat_obj.open_whatsapp():c()}),d(u).on("click",".joinchat_close",function(t){t.preventDefault(),joinchat_obj.chatbox_hide()}),a&&"IntersectionObserver"in p&&(0<(n=d(".joinchat_show, .joinchat_force_show")).length&&(l=new IntersectionObserver(function(t){d.each(t,function(){if(0
- - settings['message_start'] ) : ?> -
settings['message_start'] ); ?>
+ settings['message_start'] ) : ?> +
settings['message_start'] ); ?>
+ - - settings['message_badge'] ) : ?> -
1
+ settings['message_badge'] ) : ?> +
1
+ settings['button_tip'] ) : ?>
settings['button_tip'] ); ?>
@@ -57,6 +57,6 @@ + - diff --git a/src/scss/btn.scss b/src/scss/btn.scss new file mode 100755 index 0000000..9e5c7da --- /dev/null +++ b/src/scss/btn.scss @@ -0,0 +1,15 @@ +$type: tiny; + +@import "common/variables"; +@import "common/mixings"; +@import "common/root"; +@import "components/global"; +@import "components/button"; +// @import "components/badge"; +@import "components/tooltip"; +@import "components/qr"; +// @import "components/chatbox"; +// @import "components/chat/optin"; +// @import "components/chat/message"; +@import "common/animations"; +@import "woo/button"; diff --git a/src/scss/common/_animations.scss b/src/scss/common/_animations.scss index b18ea13..61fae3c 100644 --- a/src/scss/common/_animations.scss +++ b/src/scss/common/_animations.scss @@ -9,43 +9,50 @@ opacity: 0; transform: translateY(50px); } -} -@keyframes #{$name}_badge_out { - from { + to { opacity: 1; transform: translateY(0); } - - to { - opacity: 0; - transform: translateY(-20px); - } } -@keyframes #{$name}_plain { - 0%, - 50%, - 100% { - stroke-dashoffset: 1097; - } +@if $type == full { + @keyframes #{$name}_badge_out { + from { + opacity: 1; + transform: translateY(0); + } - 5%, - 45% { - stroke-dashoffset: 0; + to { + opacity: 0; + transform: translateY(-20px); + } } -} -@keyframes #{$name}_chat { - 0%, - 50%, - 100% { - stroke-dashoffset: 1020; + @keyframes #{$name}_plain { + 0%, + 50%, + 100% { + stroke-dashoffset: 1097; + } + + 5%, + 45% { + stroke-dashoffset: 0; + } } - 5%, - 45% { - stroke-dashoffset: 0; + @keyframes #{$name}_chat { + 0%, + 50%, + 100% { + stroke-dashoffset: 1020; + } + + 5%, + 45% { + stroke-dashoffset: 0; + } } } diff --git a/src/scss/components/_button.scss b/src/scss/components/_button.scss old mode 100644 new mode 100755 index 844f69a..9c70258 --- a/src/scss/components/_button.scss +++ b/src/scss/components/_button.scss @@ -1,6 +1,8 @@ #{$class}__button { - display: flex; - flex-direction: row; + @if $type == full { + display: flex; + flex-direction: row; + } position: absolute; z-index: 2; bottom: 8px; @@ -13,16 +15,19 @@ border-radius: calc(var(--s) / 2); box-shadow: 1px 6px 24px 0 rgba($WAdarken, 0.24); cursor: pointer; - transition: background 0.2s linear; - will-change: background-color, width; + transition: background-color 0.2s linear; - #{$rtl} & { - flex-direction: row-reverse; + @if $type == full { + #{$rtl} & { + flex-direction: row-reverse; + } } &:hover { background: $WAdark; - transition: background 1.5s linear; + @if $type == full { + transition-duration: 1.5s; + } } &:active { @@ -33,37 +38,42 @@ #{$class}--left & { right: auto; left: 8px; - flex-direction: row-reverse; - #{$rtl} & { - flex-direction: row; + @if $type == full { + flex-direction: row-reverse; + + #{$rtl} & { + flex-direction: row; + } } } - #{$class}--chatbox & { - background: var(--color); - transition: background 0.2s linear; - box-shadow: 0 1px 2px 0 rgba($black, 0.3); + @if $type == full { + #{$class}--chatbox & { + background: var(--color); + transition-duration: 0.2s; + box-shadow: 0 1px 2px 0 rgba($black, 0.3); - &:hover, - &:active { - background: var(--hover); + &:hover, + &:active { + background: var(--hover); + } } - } - // Opt-in disabled - #{$class}--optout#{$class}--chatbox & { - background-color: #999; - opacity: .5; - pointer-events: none; + // Opt-in disabled + #{$class}--optout#{$class}--chatbox & { + background-color: #999; + opacity: .5; + pointer-events: none; - #{$class}_svg__plain { - stroke-dasharray: 0; - animation: none; - } + #{$class}_svg__plain { + stroke-dasharray: 0; + animation: none; + } - #{$class}_svg__chat { - animation: none; + #{$class}_svg__chat { + animation: none; + } } } } @@ -76,8 +86,10 @@ background-size: 60%; overflow: hidden; - #{$class}--chatbox & { - display: none; + @if $type == full { + #{$class}--chatbox & { + display: none; + } } } @@ -108,77 +120,81 @@ animation: none; } - #{$class}--chatbox & { - display: none; + @if $type == full { + #{$class}--chatbox & { + display: none; + } } } -#{$class}__button__send { - display: none; - flex-shrink: 0; - width: var(--s); - height: var(--s); - max-width: var(--s); // fix theme Twenty Twenty max-width: 100%; - padding: calc(var(--s)*0.18); - margin: 0; - overflow: hidden; - - #{$class}--chatbox & { - display: block; - } - - path { - fill: none !important; - stroke: var(--text) !important; - } - - #{$class}_svg__plain { - stroke-dasharray: 1097; - stroke-dashoffset: 1097; - animation: #{$name}_plain 6s 0.2s ease-in-out infinite; - } +@if $type == full { + #{$class}__button__send { + display: none; + flex-shrink: 0; + width: var(--s); + height: var(--s); + max-width: var(--s); // fix theme Twenty Twenty max-width: 100%; + padding: calc(var(--s)*0.18); + margin: 0; + overflow: hidden; + + #{$class}--chatbox & { + display: block; + } - #{$class}_svg__chat { - stroke-dasharray: 1020; - stroke-dashoffset: 1020; - animation: #{$name}_chat 6s 3.2s ease-in-out infinite; - } + path { + fill: none !important; + stroke: var(--text) !important; + } - @include motionless { #{$class}_svg__plain { - stroke-dasharray: 0; - animation: none; + stroke-dasharray: 1097; + stroke-dashoffset: 1097; + animation: #{$name}_plain 6s 0.2s ease-in-out infinite; } #{$class}_svg__chat { - animation: none; + stroke-dasharray: 1020; + stroke-dashoffset: 1020; + animation: #{$name}_chat 6s 3.2s ease-in-out infinite; } - } -} -#{$class}__button__sendtext { - padding: 0; - max-width: 0; - border-radius: var(--s); - font-weight: 600; - line-height: var(--s); - white-space: nowrap; - opacity: 0; - overflow: hidden; - transition: none; + @include motionless { + #{$class}_svg__plain { + stroke-dasharray: 0; + animation: none; + } - #{$class}--chatbox & { - padding: 0 4px 0 24px; - max-width: 200px; - opacity: 1; - transition: max-width 0.2s linear, opacity 0.4s ease-out 0.2s; + #{$class}_svg__chat { + animation: none; + } + } } - #{$class}--chatbox#{$class}--left & { - padding: 0 24px 0 4px; - } + #{$class}__button__sendtext { + padding: 0; + max-width: 0; + border-radius: var(--s); + font-weight: 600; + line-height: var(--s); + white-space: nowrap; + opacity: 0; + overflow: hidden; + transition: none; - @include motionless { - transition: none !important; + #{$class}--chatbox & { + padding: 0 4px 0 24px; + max-width: 200px; + opacity: 1; + transition: max-width 0.2s linear, opacity 0.4s ease-out 0.2s; + } + + #{$class}--chatbox#{$class}--left & { + padding: 0 24px 0 4px; + } + + @include motionless { + transition: none !important; + } } } diff --git a/src/scss/components/_chatbox.scss b/src/scss/components/_chatbox.scss index a59d4fd..6183ea0 100644 --- a/src/scss/components/_chatbox.scss +++ b/src/scss/components/_chatbox.scss @@ -130,7 +130,7 @@ overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; - will-change: scroll-position; + // will-change: scroll-position; &::-webkit-scrollbar { width: 5px; diff --git a/src/scss/components/_global.scss b/src/scss/components/_global.scss index 813d0df..875491c 100644 --- a/src/scss/components/_global.scss +++ b/src/scss/components/_global.scss @@ -2,30 +2,34 @@ // Position/size --bottom: 20px; --sep: 20px; - --s: var(--btn, 60px); // Button size (old --btn) - --header: calc(var(--s)*1.166667); - --vh: 100vh; - // Colors - --red: 37; - --green: 211; - --blue: 102; - --rgb: var(--red) var(--green) var(--blue); - --color: rgb(var(--rgb)); - --dark: rgb(calc(var(--red) - 75), calc(var(--green) - 75), calc(var(--blue) - 75)); // darker color - --hover: rgb(calc(var(--red) + 50), calc(var(--green) + 50), calc(var(--blue) + 50)); // lighter color - --bg: rgb(var(--rgb) / 4%); - // Black or white color based on https://css-tricks.com/switch-font-color-for-different-backgrounds-with-css/ - --tolerance: 210; // [0-255] Greater tolerance allow lighter colors with white text - --bw: calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance)) * -10000000); - --text: hsl(0 0% calc(var(--bw)*1%) / clamp(70%, calc(var(--bw)*1%), 100%)); // White hsl(0 0% 100% / 100%) / Black hsl(0 0% 0% / 70%) - --msg: var(--color); + --s: 60px; // Button size (old --btn) + + @if $type == full { + --header: calc(var(--s)*1.166667); + --vh: 100vh; + // Colors + --red: 37; + --green: 211; + --blue: 102; + --rgb: var(--red) var(--green) var(--blue); + --color: rgb(var(--rgb)); + --dark: rgb(calc(var(--red) - 75), calc(var(--green) - 75), calc(var(--blue) - 75)); // darker color + --hover: rgb(calc(var(--red) + 50), calc(var(--green) + 50), calc(var(--blue) + 50)); // lighter color + --bg: rgb(var(--rgb) / 4%); + // Black or white color based on https://css-tricks.com/switch-font-color-for-different-backgrounds-with-css/ + --tolerance: 210; // [0-255] Greater tolerance allow lighter colors with white text + --bw: calc((var(--red)*0.2126 + var(--green)*0.7152 + var(--blue)*0.0722 - var(--tolerance)) * -10000000); + --text: hsl(0 0% calc(var(--bw)*1%) / clamp(70%, calc(var(--bw)*1%), 100%)); // White hsl(0 0% 100% / 100%) / Black hsl(0 0% 0% / 70%) + --msg: var(--color); + + color: var(--text); + } display: none; position: fixed; z-index: 9999; right: var(--sep); bottom: var(--bottom); - color: var(--text); font: normal normal normal 16px/1.625em var(--joinchat-font); letter-spacing: 0; animation: #{$name}_show 500ms cubic-bezier(0.18, 0.89, 0.32, 1.28) 10ms both; @@ -52,7 +56,10 @@ @include mobile { --bottom: 6px; --sep: 6px; - --header: calc(var(--s)*0.9166667); + + @if $type == full { + --header: calc(var(--s)*0.9166667); + } } @media (max-width: 767px) { @@ -67,8 +74,10 @@ } } - &--dark { - --msg: var(--dark); + @if $type == full { + &--dark { + --msg: var(--dark); + } } &--noanim { @@ -79,20 +88,24 @@ animation: none; } - &--hidden { - display: none !important; + @if $type == full { + &--hidden { + display: none !important; + } } } -// Fallback (Microsoft Edge for Android & iOS < 13.7) -@supports not (width: clamp(1px, 1%, 10px)) { - #{$class} { - --text: hsl(0 0% calc(var(--bw)*1%) / 90%); +@if $type == full { + // Fallback (Microsoft Edge for Android & iOS < 13.7) + @supports not (width: clamp(1px, 1%, 10px)) { + #{$class} { + --text: hsl(0 0% calc(var(--bw)*1%) / 90%); + } } -} -@include dark { - #{$class}--dark-auto { - --msg: var(--dark); + @include dark { + #{$class}--dark-auto { + --msg: var(--dark); + } } } diff --git a/src/scss/components/_qr.scss b/src/scss/components/_qr.scss index 0b968e6..90541ec 100644 --- a/src/scss/components/_qr.scss +++ b/src/scss/components/_qr.scss @@ -54,9 +54,15 @@ } @include hover { - #{$class}--btn #{$class}__button:hover &, - #{$class}--chatbox #{$class}__button:hover & { - display: flex; + @if $type == full { + #{$class}--btn #{$class}__button:hover &, + #{$class}--chatbox #{$class}__button:hover & { + display: flex; + } + } @else { + #{$class}--btn #{$class}__button:hover & { + display: flex; + } } } } diff --git a/src/scss/components/_tooltip.scss b/src/scss/components/_tooltip.scss index 71062e4..0a86f38 100644 --- a/src/scss/components/_tooltip.scss +++ b/src/scss/components/_tooltip.scss @@ -43,8 +43,10 @@ } } - #{$class}--chatbox & { - display: none; + @if $type == full { + #{$class}--chatbox & { + display: none; + } } #{$class}--left & { diff --git a/src/scss/styles.scss b/src/scss/styles.scss index bba8007..e035579 100644 --- a/src/scss/styles.scss +++ b/src/scss/styles.scss @@ -1,3 +1,5 @@ +$type: full; + @import "common/variables"; @import "common/mixings"; @import "common/root"; diff --git a/src/scss/woo.scss b/src/scss/woo.scss index 22a0730..98a5f63 100755 --- a/src/scss/woo.scss +++ b/src/scss/woo.scss @@ -1,3 +1,5 @@ +$type: woo; + @import "common/variables"; @import "common/mixings"; @import "common/root";