diff --git a/.gitignore b/.gitignore index 8f4f8744..8ef845eb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ /node_modules /public/.htaccess +/public/cache /public/hot /public/storage /public/upload/avatar @@ -23,4 +24,3 @@ yarn-error.log mix-manifest.json package-lock.json dist -/public/cache diff --git a/beike/Admin/Http/Controllers/DesignController.php b/beike/Admin/Http/Controllers/DesignController.php index e048e47b..c56edc32 100644 --- a/beike/Admin/Http/Controllers/DesignController.php +++ b/beike/Admin/Http/Controllers/DesignController.php @@ -20,7 +20,7 @@ class DesignController extends Controller $data = [ 'editors' => [ 'editor-slide_show', 'editor-image401', 'editor-tab_product', 'editor-product', 'editor-image100', - 'editor-brand', 'editor-icons', 'editor-rich_text', + 'editor-brand', 'editor-icons', 'editor-rich_text', 'editor-image200', 'editor-image300', ], 'design_settings' => system_setting('base.design_setting'), ]; diff --git a/beike/Admin/Http/Controllers/ThemeController.php b/beike/Admin/Http/Controllers/ThemeController.php new file mode 100644 index 00000000..b8db8687 --- /dev/null +++ b/beike/Admin/Http/Controllers/ThemeController.php @@ -0,0 +1,83 @@ + + * @created 2023-03-16 12:00:13 + * @modified 2023-03-16 12:00:13 + */ + +namespace Beike\Admin\Http\Controllers; + +use Beike\Repositories\PluginRepo; +use Beike\Repositories\SettingRepo; +use Database\Seeders\ThemeSeeder; +use Illuminate\Http\Request; + +class ThemeController extends Controller +{ + /** + * Themes index + * + * @return mixed + * @throws \Exception + */ + public function index() + { + $currentTheme = system_setting('base.theme'); + $themes = PluginRepo::getEnabledThemes(); + + $data['themes'][] = [ + 'name' => trans('admin/theme.theme_name'), + 'code' => 'default', + 'demo' => true, + 'image' => image_origin('image/default-theme.jpg'), + 'status' => $currentTheme == 'default', + ]; + + foreach ($themes as $theme) { + $themeCode = $theme->code; + $plugin = $theme->plugin; + $imagePath = $plugin->theme ?? 'image/theme.jpg'; + $data['themes'][] = [ + 'name' => $plugin->getLocaleName(), + 'code' => $themeCode, + 'demo' => true, + 'image' => plugin_asset($themeCode, $imagePath), + 'status' => $currentTheme == $themeCode, + ]; + } + + return view('admin::pages.theme.index', $data); + } + + /** + * Enable theme + * + * @param Request $request + * @param $themeCode + * @return mixed + * @throws \Exception + */ + public function update(Request $request, $themeCode) + { + $importDemo = $request->get('import_demo'); + if ($importDemo) { + if ($themeCode == 'default') { + $seeder = new ThemeSeeder(); + $seeder->run(); + } else { + $plugin = plugin($themeCode); + if ($plugin) { + PluginRepo::runSeeder($plugin); + } + } + } + + SettingRepo::update('system', 'base', ['theme' => $themeCode]); + + return json_success(trans('common.success')); + } +} diff --git a/beike/Admin/Routes/admin.php b/beike/Admin/Routes/admin.php index 52c627f0..5abfda76 100644 --- a/beike/Admin/Routes/admin.php +++ b/beike/Admin/Routes/admin.php @@ -112,6 +112,10 @@ Route::prefix($adminName) Route::middleware('can:design_menu_index')->get('design_menu/builder', [Controllers\DesignMenuController::class, 'index'])->name('design_menu.index'); Route::middleware('can:design_menu_index')->put('design_menu/builder', [Controllers\DesignMenuController::class, 'update'])->name('design_menu.update'); + // 模板主题 + Route::middleware('can:theme_index')->get('themes', [Controllers\ThemeController::class, 'index'])->name('theme.index'); + Route::middleware('can:theme_update')->put('themes/{code}', [Controllers\ThemeController::class, 'update'])->name('theme.update'); + Route::put('edit', [Controllers\EditController::class, 'update'])->name('edit'); Route::get('edit/locale', [Controllers\EditController::class, 'locale'])->name('edit.locale'); diff --git a/beike/Admin/View/Components/Sidebar.php b/beike/Admin/View/Components/Sidebar.php index 592e0913..5c32fd9e 100644 --- a/beike/Admin/View/Components/Sidebar.php +++ b/beike/Admin/View/Components/Sidebar.php @@ -162,7 +162,7 @@ class Sidebar extends Component */ private function getSettingSubPrefix() { - $prefix = ['settings.', 'admin_users.', 'admin_roles.', 'plugins.', 'marketing.', 'tax_classes', 'tax_rates', 'regions', 'currencies', 'languages', 'design_menu', 'countries', 'zones']; + $prefix = ['settings.', 'admin_users.', 'admin_roles.', 'plugins.', 'theme.', 'marketing.', 'tax_classes', 'tax_rates', 'regions', 'currencies', 'languages', 'design_menu', 'countries', 'zones']; return hook_filter('admin.sidebar.setting.prefix', $prefix); } @@ -253,6 +253,7 @@ class Sidebar extends Component ['route' => 'settings.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'admin_users.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'plugins.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], + ['route' => 'theme.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], ['route' => 'marketing.index', 'icon' => 'fa fa-tachometer-alt', 'hide_mobile' => 1], ['route' => 'regions.index', 'icon' => 'fa fa-tachometer-alt'], ['route' => 'tax_rates.index', 'icon' => 'fa fa-tachometer-alt'], diff --git a/beike/Admin/View/DesignBuilders/Image200.php b/beike/Admin/View/DesignBuilders/Image200.php new file mode 100644 index 00000000..804ef694 --- /dev/null +++ b/beike/Admin/View/DesignBuilders/Image200.php @@ -0,0 +1,44 @@ + + * @created 2022-07-08 17:09:15 + * @modified 2022-07-08 17:09:15 + */ + +namespace Beike\Admin\View\DesignBuilders; + +use Illuminate\Contracts\View\View; +use Illuminate\View\Component; + +class Image200 extends Component +{ + /** + * Create a new component instance. + * + * @return void + */ + public function __construct() + { + } + + /** + * Get the view / contents that represent the component. + * + * @return View + */ + public function render(): View + { + $data['register'] = [ + 'code' => 'image200', + 'sort' => 0, + 'name' => trans('admin/builder.modules_image_200'), + 'icon' => '', + ]; + + return view('admin::pages.design.module.image200', $data); + } +} diff --git a/beike/Admin/View/DesignBuilders/Image300.php b/beike/Admin/View/DesignBuilders/Image300.php new file mode 100644 index 00000000..50d88fcb --- /dev/null +++ b/beike/Admin/View/DesignBuilders/Image300.php @@ -0,0 +1,44 @@ + + * @created 2022-07-08 17:09:15 + * @modified 2022-07-08 17:09:15 + */ + +namespace Beike\Admin\View\DesignBuilders; + +use Illuminate\Contracts\View\View; +use Illuminate\View\Component; + +class Image300 extends Component +{ + /** + * Create a new component instance. + * + * @return void + */ + public function __construct() + { + } + + /** + * Get the view / contents that represent the component. + * + * @return View + */ + public function render(): View + { + $data['register'] = [ + 'code' => 'image300', + 'sort' => 0, + 'name' => trans('admin/builder.modules_image_300'), + 'icon' => '', + ]; + + return view('admin::pages.design.module.image300', $data); + } +} diff --git a/beike/Helpers.php b/beike/Helpers.php index b9c28b28..6fdb9a4d 100644 --- a/beike/Helpers.php +++ b/beike/Helpers.php @@ -6,6 +6,7 @@ use Beike\Models\AdminUser; use Beike\Models\Currency; use Beike\Models\Customer; use Beike\Models\Language; +use Beike\Plugin\Plugin; use Beike\Repositories\CurrencyRepo; use Beike\Repositories\LanguageRepo; use Beike\Services\CurrencyService; @@ -328,6 +329,15 @@ function plugin_path(string $path = ''): string return base_path('plugins') . ($path ? DIRECTORY_SEPARATOR . ltrim($path, DIRECTORY_SEPARATOR) : $path); } +/** + * @param $code + * @return Plugin|null + */ +function plugin($code): ?Plugin +{ + return app('plugin')->getPlugin($code); +} + /** * 插件图片缩放 * @@ -344,7 +354,7 @@ function plugin_resize($pluginCode, $image, int $width = 100, int $height = 100) return $image; } - $plugin = app('plugin')->getPlugin($pluginCode); + $plugin = plugin($pluginCode); $pluginDirName = $plugin->getDirname(); return (new \Beike\Services\ImageService($image))->setPluginDirName($pluginDirName)->resize($width, $height); @@ -364,7 +374,7 @@ function plugin_origin($pluginCode, $image) return $image; } - $plugin = app('plugin')->getPlugin($pluginCode); + $plugin = plugin($pluginCode); $pluginDirName = $plugin->getDirname(); return (new \Beike\Services\ImageService($image))->setPluginDirName($pluginDirName)->originUrl(); diff --git a/beike/Models/Plugin.php b/beike/Models/Plugin.php index d6c67664..cda90e4f 100644 --- a/beike/Models/Plugin.php +++ b/beike/Models/Plugin.php @@ -13,15 +13,5 @@ namespace Beike\Models; class Plugin extends Base { - public const TYPES = [ - 'shipping', // 配送方式 - 'payment', // 支付方式 - 'total', // 订单金额 - 'social', // 社交网络 - 'feature', // 功能模块 - 'language', // 语言翻译 - 'theme', // 主题模板 - ]; - protected $fillable = ['type', 'code']; } diff --git a/beike/Plugin/Manager.php b/beike/Plugin/Manager.php index 49682ccb..d8794c04 100644 --- a/beike/Plugin/Manager.php +++ b/beike/Plugin/Manager.php @@ -48,6 +48,7 @@ class Manager $pluginPath = $this->getPluginsDir() . DIRECTORY_SEPARATOR . $dirname; $plugin = new Plugin($pluginPath, $package); $status = $plugin->getStatus(); + $plugin->setType(Arr::get($package, 'type')); $plugin->setDirname($dirname); $plugin->setName(Arr::get($package, 'name')); $plugin->setDescription(Arr::get($package, 'description')); diff --git a/beike/Plugin/Plugin.php b/beike/Plugin/Plugin.php index 30cd92c2..6c1d069c 100644 --- a/beike/Plugin/Plugin.php +++ b/beike/Plugin/Plugin.php @@ -20,6 +20,18 @@ use Illuminate\Support\Str; class Plugin implements Arrayable, \ArrayAccess { + public const TYPES = [ + 'shipping', // 配送方式 + 'payment', // 支付方式 + 'total', // 订单金额 + 'social', // 社交网络 + 'feature', // 功能模块 + 'language', // 语言翻译 + 'theme', // 主题模板 + ]; + + protected $type; + protected $path; protected $name; @@ -59,6 +71,21 @@ class Plugin implements Arrayable, \ArrayAccess return Arr::get($this->packageInfo, $name); } + /** + * Set plugin Type + * + * @throws \Exception + */ + public function setType(string $type): self + { + if (! in_array($type, self::TYPES)) { + throw new \Exception('Invalid plugin type, must be one of ' . implode(',', self::TYPES)); + } + $this->type = $type; + + return $this; + } + public function setDirname(string $dirName): self { $this->dirName = $dirName; @@ -187,6 +214,11 @@ class Plugin implements Arrayable, \ArrayAccess return (string) $this->description; } + public function getType(): string + { + return $this->type; + } + public function getDirname(): string { return $this->dirName; diff --git a/beike/Repositories/PluginRepo.php b/beike/Repositories/PluginRepo.php index 0393ce50..8de846d0 100644 --- a/beike/Repositories/PluginRepo.php +++ b/beike/Repositories/PluginRepo.php @@ -26,7 +26,7 @@ class PluginRepo public static function getTypes(): array { $types = []; - foreach (Plugin::TYPES as $item) { + foreach (BPlugin::TYPES as $item) { $types[] = [ 'value' => $item, 'label' => trans("admin/plugin.{$item}"), @@ -38,11 +38,12 @@ class PluginRepo /** * 安装插件到系统: 插入数据 - * @param BPlugin $bPlugin + * @param BPlugin $bPlugin + * @throws \Exception */ public static function installPlugin(BPlugin $bPlugin) { - // self::publishStaticFiles($bPlugin); + self::publishThemeFiles($bPlugin); self::migrateDatabase($bPlugin); $type = $bPlugin->type; $code = $bPlugin->code; @@ -72,6 +73,51 @@ class PluginRepo } } + /** + * Publish theme files, include public and blade files. + * + * @param $bPlugin + */ + public static function publishThemeFiles($bPlugin) + { + if ($bPlugin->getType() != 'theme') { + return; + } + + $publicPath = $bPlugin->getPath() . '/Static/public'; + if (is_dir($publicPath)) { + File::copyDirectory($publicPath, public_path('/')); + } + + $themePath = $bPlugin->getPath() . '/Themes'; + if (is_dir($themePath)) { + File::copyDirectory($themePath, base_path('themes')); + } + } + + /** + * Run plugin seeder + * + * @param $bPlugin + * @throws \Exception + */ + public static function runSeeder($bPlugin) + { + $seederPath = $bPlugin->getPath() . '/Seeders/'; + if (is_dir($seederPath)) { + + $seederFiles = glob($seederPath . '*'); + foreach ($seederFiles as $seederFile) { + $seederName = basename($seederFile, '.php'); + $className = "\\Plugin\\{$bPlugin->getDirname()}\\Seeders\\{$seederName}"; + if (class_exists($className)) { + $seeder = new $className; + $seeder->run(); + } + } + } + } + /** * 数据库迁移 */ @@ -99,7 +145,6 @@ class PluginRepo */ public static function uninstallPlugin(BPlugin $bPlugin) { - // self::removeStaticFiles($bPlugin); self::rollbackDatabase($bPlugin); $type = $bPlugin->type; $code = $bPlugin->code; @@ -217,7 +262,7 @@ class PluginRepo $allPlugins = self::allPlugins(); return $allPlugins->where('type', 'shipping')->filter(function ($item) { - $plugin = app('plugin')->getPlugin($item->code); + $plugin = plugin($item->code); if ($plugin) { $item->plugin = $plugin; } @@ -234,7 +279,24 @@ class PluginRepo $allPlugins = self::allPlugins(); return $allPlugins->where('type', 'payment')->filter(function ($item) { - $plugin = app('plugin')->getPlugin($item->code); + $plugin = plugin($item->code); + if ($plugin) { + $item->plugin = $plugin; + } + + return $plugin && $plugin->getEnabled(); + }); + } + + /** + * Get all enabled themes + */ + public static function getEnabledThemes(): Collection + { + $allPlugins = self::allPlugins(); + + return $allPlugins->where('type', 'theme')->filter(function ($item) { + $plugin = plugin($item->code); if ($plugin) { $item->plugin = $plugin; } diff --git a/beike/Services/DesignService.php b/beike/Services/DesignService.php index b24d3e2e..3a53cfec 100644 --- a/beike/Services/DesignService.php +++ b/beike/Services/DesignService.php @@ -50,7 +50,7 @@ class DesignService $content['module_code'] = $moduleCode; if ($moduleCode == 'slideshow') { return self::handleSlideShow($content); - } elseif (in_array($moduleCode, ['image401', 'image100'])) { + } elseif (in_array($moduleCode, ['image401', 'image100', 'image200', 'image300'])) { return self::handleImage401($content); } elseif ($moduleCode == 'brand') { return self::handleBrand($content); @@ -142,9 +142,10 @@ class DesignService $images = []; foreach ($content['images'] as $image) { $images[] = [ - 'image' => image_origin($image['image'] ?? ''), - 'text' => $image['text'][locale()] ?? '', - 'link' => self::handleLink($image['link']['type'] ?? '', $image['link']['value'] ?? ''), + 'image' => image_origin($image['image'] ?? ''), + 'text' => $image['text'][locale()] ?? '', + 'sub_text' => $image['sub_text'][locale()] ?? '', + 'link' => self::handleLink($image['link']['type'] ?? '', $image['link']['value'] ?? ''), ]; } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 62824aa7..c113ed65 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -30,6 +30,7 @@ class DatabaseSeeder extends Seeder ProductsSeeder::class, AttributesSeeder::class, SettingsSeeder::class, + ThemeSeeder::class, ]); } diff --git a/database/seeders/SettingsSeeder.php b/database/seeders/SettingsSeeder.php index cbd46bf4..3465f975 100644 --- a/database/seeders/SettingsSeeder.php +++ b/database/seeders/SettingsSeeder.php @@ -40,7 +40,6 @@ class SettingsSeeder extends Seeder return [ ["type" => "system", "space" => "base", "name" => "country_id", "value" => "44", "json" => 0], ["type" => "system", "space" => "base", "name" => "locale", "value" => "en", "json" => 0], - ["type" => "system", "space" => "base", "name" => "design_setting", "value" => $this->getHomeSetting(), "json" => 1], ["type" => "system", "space" => "base", "name" => "theme", "value" => "default", "json" => 0], ["type" => "plugin", "space" => "service_charge", "name" => "status", "value" => "1", "json" => 0], ["type" => "system", "space" => "base", "name" => "status", "value" => "", "json" => 0], @@ -50,8 +49,6 @@ class SettingsSeeder extends Seeder ["type" => "system", "space" => "base", "name" => "currency", "value" => "USD", "json" => 0], ["type" => "system", "space" => "base", "name" => "zone_id", "value" => "710", "json" => 0], ["type" => "plugin", "space" => "header_menu", "name" => "status", "value" => "1", "json" => 0], - ["type" => "system", "space" => "base", "name" => "footer_setting", "value" => $this->getFooterSetting(), - "json" => 1], ["type" => "plugin", "space" => "stripe", "name" => "publishable_key", "value" => "pk_test_Flhi0NU77hK1IBFNpl02o5hN", "json" => 0], ["type" => "plugin", "space" => "stripe", "name" => "secret_key", "value" => "sk_test_FlsXnYjhoqLb6d5JzvpgKdMM", "json" => 0], ["type" => "plugin", "space" => "stripe", "name" => "test_mode", "value" => "1", "json" => 0], @@ -68,7 +65,6 @@ class SettingsSeeder extends Seeder ["type" => "system", "space" => "base", "name" => "meta_keywords", "value" => "开源电商,开源代码,开源电商项目,b2b独立站,dtc独立站,跨境电商网", "json" => 0], ["type" => "system", "space" => "base", "name" => "telephone", "value" => "028-87966209", "json" => 0], ["type" => "system", "space" => "base", "name" => "email", "value" => "marketing@guangda.work", "json" => 0], - ["type" => "system", "space" => "base", "name" => "menu_setting", "value" => $this->getMenuSetting(), "json" => 1], ["type" => "plugin", "space" => "flat_shipping", "name" => "type", "value" => "percent", "json" => 0], ["type" => "plugin", "space" => "flat_shipping", "name" => "value", "value" => "10", "json" => 0], ["type" => "system", "space" => "base", "name" => "default_customer_group_id", "value" => "1", "json" => 0], @@ -79,55 +75,4 @@ class SettingsSeeder extends Seeder ["type" => "system", "space" => "base", "name" => "rate_api_key", "value" => "", "json" => 0], ]; } - - - /** - * 设置菜单数据 - * - * @return false|string - * @throws \Exception - */ - private function getMenuSetting(): bool|string - { - $json = '{"menus":[{"isFull":false,"badge":{"isShow":false,"name":{"en":"","zh_cn":""},"bg_color":"#fd560f","text_color":"#ffffff"},"link":{"type":"category","value":100006,"text":[],"link":""},"name":{"en":"Sports","zh_cn":"\u8fd0\u52a8\u6f6e\u5427"},"isChildren":false,"childrenGroup":[{"name":{"en":"leading the fashion","zh_cn":"\u5f15\u9886\u65f6\u5c1a"},"type":"","image":{"image":[],"link":{"type":"product","value":"","text":[]}},"children":[{"name":[],"link":{"type":"brand","value":3,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100008,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":5,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100003,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100010,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100010,"text":{"en":"","zh_cn":""},"link":""}}]},{"name":{"en":"Special offer","zh_cn":"\u7279\u4ef7\u4f18\u60e0"},"type":"link","image":{"image":[],"link":{"type":"product","value":"","text":[]}},"children":[{"name":[],"link":{"type":"category","value":100008,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":6,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100003,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":7,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":8,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":2,"text":{"en":"","zh_cn":""},"link":""}}]},{"name":{"en":"Popular products","zh_cn":"\u7206\u6b3e\u5546\u54c1"},"type":"image","image":{"image":{"en":"catalog\/demo\/banner\/2_en.jpg","zh_cn":"catalog\/demo\/banner\/2.jpg"},"link":{"type":"product","value":1,"text":[],"link":""}},"children":[]}]},{"isFull":false,"badge":{"isShow":false,"name":{"en":"NEW","zh_cn":"\u65b0\u54c1"},"bg_color":"#7628A2","text_color":"#ffffff"},"link":{"type":"category","value":100003,"text":[],"link":""},"name":{"en":"Fashion","zh_cn":"\u65f6\u5c1a\u6f6e\u6d41"},"isChildren":false,"childrenGroup":[{"name":{"en":"global purchase","zh_cn":"\u5168\u7403\u8d2d"},"type":"link","image":{"image":[],"link":{"type":"product","value":"","text":[]}},"children":[{"name":[],"link":{"type":"brand","value":8,"text":{"en":"","zh_cn":""},"link":"","new_window":true}},{"name":[],"link":{"type":"category","value":100003,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":7,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"page","value":21,"text":{"en":"","zh_cn":""},"link":""}}]},{"name":{"en":"Fashion","zh_cn":"\u65f6\u5c1a"},"type":"image","image":{"image":{"en":"catalog\/demo\/product\/16.jpg","zh_cn":"catalog\/demo\/product\/16.jpg"},"link":{"type":"product","value":4,"text":[],"link":""}},"children":[{"name":[],"link":{"type":"custom","value":"https:\/\/www.baidu.com","text":{"en":"","zh_cn":"baidu "},"link":"","new_window":true}}]},{"name":{"en":"recommended","zh_cn":"\u5e97\u957f\u63a8\u8350"},"type":"image","image":{"image":{"en":"catalog\/demo\/product\/13.jpg","zh_cn":"catalog\/demo\/product\/13.jpg"},"link":{"type":"product","value":2,"text":[],"link":""}},"children":[]}]},{"isFull":false,"badge":{"isShow":false,"name":{"en":"","zh_cn":""},"bg_color":"#fd560f","text_color":"#ffffff"},"link":{"type":"category","value":100007,"text":[],"link":""},"name":{"en":"Digital","zh_cn":"\u6570\u7801\u4ea7\u54c1"},"isChildren":false,"childrenGroup":[{"name":{"en":"Big promotion","zh_cn":"\u5927\u724c\u4fc3\u9500"},"type":"","image":{"image":[],"link":{"type":"product","value":"","text":[]}},"children":[{"name":[],"link":{"type":"brand","value":2,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":8,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":9,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":1,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":6,"text":{"en":"","zh_cn":""},"link":""}}]},{"name":{"en":"Activity of gift","zh_cn":"\u6d3b\u52a8\u793c\u54c1"},"type":"","image":{"image":[],"link":{"type":"product","value":"","text":[]}},"children":[{"name":[],"link":{"type":"category","value":100003,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100006,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100012,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100006,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"category","value":100010,"text":{"en":"","zh_cn":""},"link":""}}]},{"name":{"en":"All three fold","zh_cn":"\u5168\u573a\u4e09\u6298"},"type":"","image":{"image":[],"link":{"type":"product","value":"","text":[]}},"children":[{"name":[],"link":{"type":"brand","value":1,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":3,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":7,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":8,"text":{"en":"","zh_cn":""},"link":""}},{"name":[],"link":{"type":"brand","value":9,"text":{"en":"","zh_cn":""},"link":""}}]}]},{"isFull":false,"badge":{"isShow":false,"name":{"en":"Hot","zh_cn":"\u70ed\u5356"},"bg_color":"#FF4D00","text_color":"#ffffff"},"link":{"type":"category","value":100018,"text":[],"link":""},"name":{"en":"Hot","zh_cn":"\u70ed\u5356\u7279\u60e0"},"isChildren":false,"childrenGroup":[]},{"isFull":false,"badge":{"isShow":false,"name":{"en":"Sales","zh_cn":"\u5927\u724c\u76f4\u9500"},"bg_color":"#00C5C5","text_color":"#ffffff"},"link":{"type":"static","value":"brands.index","text":[],"link":""},"name":{"en":"Brand","zh_cn":"\u56fd\u9645\u6f6e\u724c"},"isChildren":false,"childrenGroup":[]}]}'; - $setting = json_decode($json, true); - if (empty($setting)) { - throw new \Exception("无效的菜单设置"); - } - return json_encode($setting); - } - - - /** - * 设置首页装修数据 - * - * @return false|string - * @throws \Exception - */ - private function getHomeSetting(): bool|string - { - $json = '{"modules":[{"content":{"style":{"background_color":""},"full":true,"floor":{"2":"","3":""},"images":[{"image":{"en":"catalog\/demo\/banner\/banner-4-en.jpg","zh_cn":"catalog\/demo\/banner\/banner-4.jpg"},"show":true,"link":{"type":"category","value":100012,"link":""}},{"image":{"en":"catalog\/demo\/banner\/banner-3-en.jpg","zh_cn":"catalog\/demo\/banner\/banner-3.jpg"},"show":false,"link":{"type":"category","value":100008,"link":""}}]},"code":"slideshow","name":"\u5e7b\u706f\u7247","module_id":"b0448efb0989"},{"code":"image401","content":{"style":{"background_color":""},"floor":{"zh_cn":"","en":""},"images":[{"image":{"en":"catalog\/demo\/image_plus_1-en.png","zh_cn":"catalog\/demo\/image_plus_1.png"},"show":false,"link":{"type":"category","value":100000,"link":""}},{"image":{"en":"catalog\/demo\/image_plus_2-en.png","zh_cn":"catalog\/demo\/image_plus_2.png"},"show":false,"link":{"type":"category","value":100007,"link":""}},{"image":{"en":"catalog\/demo\/image_plus_3-en.png","zh_cn":"catalog\/demo\/image_plus_3.png"},"show":false,"link":{"type":"product","value":"","link":""}},{"image":{"en":"catalog\/demo\/image_plus_4-en.png","zh_cn":"catalog\/demo\/image_plus_4.png"},"show":true,"link":{"type":"product","value":2,"link":""}}]},"module_id":"g1vrlixfzfjk9a3k","name":"\u4e00\u884c\u56db\u56fe-pro"},{"code":"tab_product","content":{"style":{"background_color":""},"floor":{"zh_cn":"","en":""},"tabs":[{"title":{"en":"latest promotions","zh_cn":"\u6700\u65b0\u4fc3\u9500"},"products":[1,2,3,4,5,7,8,11]},{"title":{"en":"Fashion sheet","zh_cn":"\u65f6\u5c1a\u5355\u54c1"},"products":[6,49,328,9,10,11,12,13,14,15]}],"title":{"en":"Recommended products","zh_cn":"\u63a8\u8350\u5546\u54c1"}},"module_id":"s6e7e3vucriazzbi","name":"\u9009\u9879\u5361\u5546\u54c1"},{"code":"image100","content":{"style":{"background_color":""},"floor":{"zh_cn":"","en":""},"full":true,"images":[{"image":{"en":"catalog\/demo\/banner\/banner-2-en.png","zh_cn":"catalog\/demo\/banner\/banner-2.png"},"show":true,"link":{"type":"category","value":100003,"link":""}}]},"module_id":"0htwy33z3xcituyx","name":"\u5355\u56fe\u6a21\u5757"},{"code":"brand","content":{"style":{"background_color":""},"floor":{"en":"","zh_cn":""},"full":true,"title":{"en":"Recommended Brand","zh_cn":"\u63a8\u8350\u54c1\u724c"},"brands":[1,2,3,4,5,6,7,8,9,10,11,12]},"module_id":"yln7isoqlxovqz3k","name":"\u54c1\u724c\u6a21\u5757"}]}'; - $setting = json_decode($json, true); - if (empty($setting)) { - throw new \Exception("无效的首页装修设置"); - } - return json_encode($setting); - } - - - /** - * 设置页尾数据 - * - * @return false|string - * @throws \Exception - */ - private function getFooterSetting(): bool|string - { - $json = '{"services":{"enable":true,"items":[{"image":"catalog\/demo\/services-icon\/4.png","title":{"en":"Material world","zh_cn":"\u7269\u884c\u5929\u4e0b"},"sub_title":{"en":"Multi - warehouse fast delivery","zh_cn":"\u591a\u4ed3\u76f4\u53d1 \u6781\u901f\u914d\u9001\u591a\u4ed3\u76f4\u53d1 \u6781\u901f\u914d\u9001"},"show":false},{"image":"catalog\/demo\/services-icon\/3.png","title":{"en":"Return all","zh_cn":"\u9000\u6362\u65e0\u5fe7"},"sub_title":{"en":"Rest assured shopping return worry","zh_cn":"\u653e\u5fc3\u8d2d\u7269 \u9000\u8fd8\u65e0\u5fe7\u653e\u5fc3\u8d2d\u7269 \u9000\u8fd8\u65e0\u5fe7"},"show":false},{"image":"catalog\/demo\/services-icon\/1.png","title":{"en":"Delicate service","zh_cn":"\u7cbe\u81f4\u670d\u52a1"},"sub_title":{"en":"Exquisite service and after-sales guarantee","zh_cn":"\u7cbe\u81f4\u670d\u52a1 \u552e\u540e\u4fdd\u969c\u7cbe\u81f4\u670d\u52a1 \u552e\u540e\u4fdd\u969c"},"show":false},{"image":"catalog\/demo\/services-icon\/2.png","title":{"en":"With reduced activity","zh_cn":"\u6ee1\u51cf\u6d3b\u52a8"},"sub_title":{"en":"If 500 yuan is exceeded, a reduction of 90 yuan will be given","zh_cn":"\u6ee1500\u5143\u7acb\u51cf90\uff0c\u65b0\u7528\u6237\u7acb\u51cf200"},"show":true}]},"content":{"intro":{"logo":"catalog\/logo.png","text":{"en":"

Chengdu Guangda Network Technology Co., Ltd. is a high-tech enterprise mainly engaged in Internet development. The company was established in August 2014.<\/p>","zh_cn":"

\u6210\u90fd\u5149\u5927\u7f51\u7edc\u79d1\u6280\u6709\u9650\u516c\u53f8<\/strong><\/p>\n

\u662f\u4e00\u5bb6\u4e13\u4e1a\u4e92\u8054\u7f51\u5f00\u53d1\u7684\u9ad8\u79d1\u6280\u4f01\u4e1a\uff0c\u516c\u53f8\u6210\u7acb\u4e8e2014\u5e748\u6708\u3002<\/p>\n

\u516c\u53f8\u4ee5\u4e3a\u5ba2\u6237\u521b\u9020\u4ef7\u503c\u4e3a\u6838\u5fc3\u4ef7\u503c\u89c2\uff0c\u5e2e\u52a9\u4e2d\u5c0f\u4f01\u4e1a\u5229\u7528\u4e92\u8054\u7f51\u5de5\u5177\u63d0\u5347\u4ea7\u54c1\u9500\u552e\u3002<\/p>"},"social_network":[]},"link1":{"title":{"en":"About us","zh_cn":"\u5173\u4e8e\u6211\u4eec"},"links":[{"link":"","type":"page","value":21,"text":{"en":"about us","zh_cn":"\u5173\u4e8e\u6211\u4eec"}},{"type":"page","value":18,"text":[],"link":""},{"type":"page","value":12,"text":[],"link":""},{"type":"static","value":"account.order.index","text":{"en":"","zh_cn":""},"link":""}]},"link2":{"title":{"en":"Account","zh_cn":"\u4f1a\u5458\u4e2d\u5fc3"},"links":[{"type":"static","value":"account.index","text":[],"link":""},{"type":"static","value":"account.order.index","text":[],"link":""},{"type":"static","value":"account.wishlist.index","text":[],"link":""},{"type":"static","value":"brands.index","text":{"en":"","zh_cn":""},"link":""}]},"link3":{"title":{"en":"Other","zh_cn":"\u5176\u4ed6"},"links":[{"type":"static","value":"brands.index","text":[],"link":""},{"type":"static","value":"account.index","text":{"en":"","zh_cn":""},"link":""},{"type":"page","value":20,"text":{"en":"","zh_cn":""},"link":""},{"type":"page","value":21,"text":{"en":"","zh_cn":""},"link":""}]},"contact":{"telephone":"028-87966209","address":{"en":"G8 Tianfu Software Park Chengdu China, Guangda Network Technology Co., Ltd.","zh_cn":"\u6210\u90fd\u5e02\u9ad8\u65b0\u533a\u76ca\u5dde\u5927\u9053\u4e2d\u6bb51858\u53f7\u5929\u5e9c\u8f6f\u4ef6\u56edG8 \u6210\u90fd\u5149\u5927\u7f51\u7edc\u79d1\u6280\u6709\u9650\u516c\u53f8"},"email":"marketing@guangda.work"}},"bottom":{"copyright":{"en":"

  - Chengdu Guangda Network Technology © 2023<\/div>","zh_cn":"
  - \u6210\u90fd\u5149\u5927\u7f51\u7edc\u79d1\u6280 © 2023<\/div>"},"image":"catalog\/demo\/banner\/pay_icons.png"}}'; - $setting = json_decode($json, true); - if (empty($setting)) { - throw new \Exception("无效的底部配置数据"); - } - return json_encode($setting); - } } diff --git a/database/seeders/ThemeSeeder.php b/database/seeders/ThemeSeeder.php new file mode 100644 index 00000000..44250c7f --- /dev/null +++ b/database/seeders/ThemeSeeder.php @@ -0,0 +1,1160 @@ + + * @created 2023-03-16 14:26:53 + * @modified 2023-03-16 14:26:53 + */ + +namespace Database\Seeders; + +use Beike\Repositories\SettingRepo; +use Illuminate\Database\Seeder; + +class ThemeSeeder extends Seeder +{ + + /** + * Run the database seeds. + * + * @return void + * @throws \Exception + */ + public function run() + { + $menuSetting = $this->getMenuSetting(); + SettingRepo::update('system', 'base', ['menu_setting' => $menuSetting]); + + $homeSetting = $this->getHomeSetting(); + SettingRepo::update('system', 'base', ['design_setting' => $homeSetting]); + + $footerSetting = $this->getFooterSetting(); + SettingRepo::update('system', 'base', ['footer_setting' => $footerSetting]); + } + + /** + * 设置头部菜单数据 + * + * @return array + * @throws \Exception + */ + private function getMenuSetting(): array + { + return [ + "menus" => [ + [ + "isFull" => false, + "badge" => [ + "isShow" => false, + "name" => [ + "en" => "", + "zh_cn" => "" + ], + "bg_color" => "#fd560f", + "text_color" => "#ffffff" + ], + "link" => [ + "type" => "category", + "value" => 100006, + "text" => [], + "link" => "" + ], + "name" => [ + "en" => "Sports", + "zh_cn" => "运动潮吧" + ], + "isChildren" => false, + "childrenGroup" => [ + [ + "name" => [ + "en" => "leading the fashion", + "zh_cn" => "引领时尚" + ], + "type" => "", + "image" => [ + "image" => [], + "link" => [ + "type" => "product", + "value" => "", + "text" => [] + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 3, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100008, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 5, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100003, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100010, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100010, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ] + ], + [ + "name" => [ + "en" => "Special offer", + "zh_cn" => "特价优惠" + ], + "type" => "link", + "image" => [ + "image" => [], + "link" => [ + "type" => "product", + "value" => "", + "text" => [] + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100008, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 6, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100003, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 7, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 8, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 2, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ] + ], + [ + "name" => [ + "en" => "Popular products", + "zh_cn" => "爆款商品" + ], + "type" => "image", + "image" => [ + "image" => [ + "en" => "catalog/demo/banner/2_en.jpg", + "zh_cn" => "catalog/demo/banner/2.jpg" + ], + "link" => [ + "type" => "product", + "value" => 1, + "text" => [], + "link" => "" + ] + ], + "children" => [] + ] + ] + ], + [ + "isFull" => false, + "badge" => [ + "isShow" => false, + "name" => [ + "en" => "NEW", + "zh_cn" => "新品" + ], + "bg_color" => "#7628A2", + "text_color" => "#ffffff" + ], + "link" => [ + "type" => "category", + "value" => 100003, + "text" => [], + "link" => "" + ], + "name" => [ + "en" => "Fashion", + "zh_cn" => "时尚潮流" + ], + "isChildren" => false, + "childrenGroup" => [ + [ + "name" => [ + "en" => "global purchase", + "zh_cn" => "全球购" + ], + "type" => "link", + "image" => [ + "image" => [], + "link" => [ + "type" => "product", + "value" => "", + "text" => [] + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 8, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "", + "new_window" => true + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100003, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 7, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "page", + "value" => 21, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ] + ], + [ + "name" => [ + "en" => "Fashion", + "zh_cn" => "时尚" + ], + "type" => "image", + "image" => [ + "image" => [ + "en" => "catalog/demo/product/16.jpg", + "zh_cn" => "catalog/demo/product/16.jpg" + ], + "link" => [ + "type" => "product", + "value" => 4, + "text" => [], + "link" => "" + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "custom", + "value" => "https://www.baidu.com", + "text" => [ + "en" => "", + "zh_cn" => "baidu " + ], + "link" => "", + "new_window" => true + ] + ] + ] + ], + [ + "name" => [ + "en" => "recommended", + "zh_cn" => "店长推荐" + ], + "type" => "image", + "image" => [ + "image" => [ + "en" => "catalog/demo/product/13.jpg", + "zh_cn" => "catalog/demo/product/13.jpg" + ], + "link" => [ + "type" => "product", + "value" => 2, + "text" => [], + "link" => "" + ] + ], + "children" => [] + ] + ] + ], + [ + "isFull" => false, + "badge" => [ + "isShow" => false, + "name" => [ + "en" => "", + "zh_cn" => "" + ], + "bg_color" => "#fd560f", + "text_color" => "#ffffff" + ], + "link" => [ + "type" => "category", + "value" => 100007, + "text" => [], + "link" => "" + ], + "name" => [ + "en" => "Digital", + "zh_cn" => "数码产品" + ], + "isChildren" => false, + "childrenGroup" => [ + [ + "name" => [ + "en" => "Big promotion", + "zh_cn" => "大牌促销" + ], + "type" => "", + "image" => [ + "image" => [], + "link" => [ + "type" => "product", + "value" => "", + "text" => [] + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 2, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 8, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 9, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 1, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 6, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ] + ], + [ + "name" => [ + "en" => "Activity of gift", + "zh_cn" => "活动礼品" + ], + "type" => "", + "image" => [ + "image" => [], + "link" => [ + "type" => "product", + "value" => "", + "text" => [] + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100003, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100006, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100012, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100006, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "category", + "value" => 100010, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ] + ], + [ + "name" => [ + "en" => "All three fold", + "zh_cn" => "全场三折" + ], + "type" => "", + "image" => [ + "image" => [], + "link" => [ + "type" => "product", + "value" => "", + "text" => [] + ] + ], + "children" => [ + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 1, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 3, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 7, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 8, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ], + [ + "name" => [], + "link" => [ + "type" => "brand", + "value" => 9, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ] + ] + ] + ], + [ + "isFull" => false, + "badge" => [ + "isShow" => false, + "name" => [ + "en" => "Hot", + "zh_cn" => "热卖" + ], + "bg_color" => "#FF4D00", + "text_color" => "#ffffff" + ], + "link" => [ + "type" => "category", + "value" => 100018, + "text" => [], + "link" => "" + ], + "name" => [ + "en" => "Hot", + "zh_cn" => "热卖特惠" + ], + "isChildren" => false, + "childrenGroup" => [] + ], + [ + "isFull" => false, + "badge" => [ + "isShow" => false, + "name" => [ + "en" => "Sales", + "zh_cn" => "大牌直销" + ], + "bg_color" => "#00C5C5", + "text_color" => "#ffffff" + ], + "link" => [ + "type" => "static", + "value" => "brands.index", + "text" => [], + "link" => "" + ], + "name" => [ + "en" => "Brand", + "zh_cn" => "国际潮牌" + ], + "isChildren" => false, + "childrenGroup" => [] + ] + ] + ]; + } + + /** + * 设置首页装修数据 + * + * @return mixed + * @throws \Exception + */ + private function getHomeSetting(): array + { + return [ + "modules" => [ + [ + "content" => [ + "style" => [ + "background_color" => "" + ], + "full" => true, + "floor" => [ + "2" => "", + "3" => "" + ], + "images" => [ + [ + "image" => [ + "en" => "catalog/demo/banner/banner-4-en.jpg", + "zh_cn" => "catalog/demo/banner/banner-4.jpg" + ], + "show" => true, + "link" => [ + "type" => "category", + "value" => 100012, + "link" => "" + ] + ], + [ + "image" => [ + "en" => "catalog/demo/banner/banner-3-en.jpg", + "zh_cn" => "catalog/demo/banner/banner-3.jpg" + ], + "show" => false, + "link" => [ + "type" => "category", + "value" => 100008, + "link" => "" + ] + ] + ] + ], + "code" => "slideshow", + "name" => "幻灯片", + "module_id" => "b0448efb0989" + ], + [ + "code" => "image401", + "content" => [ + "style" => [ + "background_color" => "" + ], + "floor" => [ + "zh_cn" => "", + "en" => "" + ], + "images" => [ + [ + "image" => [ + "en" => "catalog/demo/image_plus_1-en.png", + "zh_cn" => "catalog/demo/image_plus_1.png" + ], + "show" => false, + "link" => [ + "type" => "category", + "value" => 100000, + "link" => "" + ] + ], + [ + "image" => [ + "en" => "catalog/demo/image_plus_2-en.png", + "zh_cn" => "catalog/demo/image_plus_2.png" + ], + "show" => false, + "link" => [ + "type" => "category", + "value" => 100007, + "link" => "" + ] + ], + [ + "image" => [ + "en" => "catalog/demo/image_plus_3-en.png", + "zh_cn" => "catalog/demo/image_plus_3.png" + ], + "show" => false, + "link" => [ + "type" => "product", + "value" => "", + "link" => "" + ] + ], + [ + "image" => [ + "en" => "catalog/demo/image_plus_4-en.png", + "zh_cn" => "catalog/demo/image_plus_4.png" + ], + "show" => true, + "link" => [ + "type" => "product", + "value" => 2, + "link" => "" + ] + ] + ] + ], + "module_id" => "g1vrlixfzfjk9a3k", + "name" => "一行四图-pro" + ], + [ + "code" => "tab_product", + "content" => [ + "style" => [ + "background_color" => "" + ], + "floor" => [ + "zh_cn" => "", + "en" => "" + ], + "tabs" => [ + [ + "title" => [ + "en" => "latest promotions", + "zh_cn" => "最新促销" + ], + "products" => [ + 1, + 2, + 3, + 4, + 5, + 7, + 8, + 11 + ] + ], + [ + "title" => [ + "en" => "Fashion sheet", + "zh_cn" => "时尚单品" + ], + "products" => [ + 6, + 49, + 328, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ] + ] + ], + "title" => [ + "en" => "Recommended products", + "zh_cn" => "推荐商品" + ] + ], + "module_id" => "s6e7e3vucriazzbi", + "name" => "选项卡商品" + ], + [ + "code" => "image100", + "content" => [ + "style" => [ + "background_color" => "" + ], + "floor" => [ + "zh_cn" => "", + "en" => "" + ], + "full" => true, + "images" => [ + [ + "image" => [ + "en" => "catalog/demo/banner/banner-2-en.png", + "zh_cn" => "catalog/demo/banner/banner-2.png" + ], + "show" => true, + "link" => [ + "type" => "category", + "value" => 100003, + "link" => "" + ] + ] + ] + ], + "module_id" => "0htwy33z3xcituyx", + "name" => "单图模块" + ], + [ + "code" => "brand", + "content" => [ + "style" => [ + "background_color" => "" + ], + "floor" => [ + "en" => "", + "zh_cn" => "" + ], + "full" => true, + "title" => [ + "en" => "Recommended Brand", + "zh_cn" => "推荐品牌" + ], + "brands" => [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ] + ], + "module_id" => "yln7isoqlxovqz3k", + "name" => "品牌模块" + ] + ] + ]; + } + + + /** + * 设置底部装修数据 + */ + private function getFooterSetting(): array + { + return [ + "services" => [ + "enable" => true, + "items" => [ + [ + "image" => "catalog/demo/services-icon/4.png", + "title" => [ + "en" => "Material world", + "zh_cn" => "物行天下" + ], + "sub_title" => [ + "en" => "Multi - warehouse fast delivery", + "zh_cn" => "多仓直发 极速配送多仓直发 极速配送" + ], + "show" => false + ], + [ + "image" => "catalog/demo/services-icon/3.png", + "title" => [ + "en" => "Return all", + "zh_cn" => "退换无忧" + ], + "sub_title" => [ + "en" => "Rest assured shopping return worry", + "zh_cn" => "放心购物 退还无忧放心购物 退还无忧" + ], + "show" => false + ], + [ + "image" => "catalog/demo/services-icon/1.png", + "title" => [ + "en" => "Delicate service", + "zh_cn" => "精致服务" + ], + "sub_title" => [ + "en" => "Exquisite service and after-sales guarantee", + "zh_cn" => "精致服务 售后保障精致服务 售后保障" + ], + "show" => false + ], + [ + "image" => "catalog/demo/services-icon/2.png", + "title" => [ + "en" => "With reduced activity", + "zh_cn" => "满减活动" + ], + "sub_title" => [ + "en" => "If 500 yuan is exceeded, a reduction of 90 yuan will be given", + "zh_cn" => "满500元立减90,新用户立减200" + ], + "show" => true + ] + ] + ], + "content" => [ + "intro" => [ + "logo" => "catalog/logo.png", + "text" => [ + "en" => "

Chengdu Guangda Network Technology Co., Ltd. is a high-tech enterprise mainly engaged in Internet development. The company was established in August 2014.

", + "zh_cn" => "

成都光大网络科技有限公司

\n

是一家专业互联网开发的高科技企业,公司成立于2014年8月。

\n

公司以为客户创造价值为核心价值观,帮助中小企业利用互联网工具提升产品销售。

" + ], + "social_network" => [] + ], + "link1" => [ + "title" => [ + "en" => "About us", + "zh_cn" => "关于我们" + ], + "links" => [ + [ + "link" => "", + "type" => "page", + "value" => 21, + "text" => [ + "en" => "about us", + "zh_cn" => "关于我们" + ] + ], + [ + "type" => "page", + "value" => 18, + "text" => [], + "link" => "" + ], + [ + "type" => "page", + "value" => 12, + "text" => [], + "link" => "" + ], + [ + "type" => "static", + "value" => "account.order.index", + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ], + "link2" => [ + "title" => [ + "en" => "Account", + "zh_cn" => "会员中心" + ], + "links" => [ + [ + "type" => "static", + "value" => "account.index", + "text" => [], + "link" => "" + ], + [ + "type" => "static", + "value" => "account.order.index", + "text" => [], + "link" => "" + ], + [ + "type" => "static", + "value" => "account.wishlist.index", + "text" => [], + "link" => "" + ], + [ + "type" => "static", + "value" => "brands.index", + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ], + "link3" => [ + "title" => [ + "en" => "Other", + "zh_cn" => "其他" + ], + "links" => [ + [ + "type" => "static", + "value" => "brands.index", + "text" => [], + "link" => "" + ], + [ + "type" => "static", + "value" => "account.index", + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ], + [ + "type" => "page", + "value" => 20, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ], + [ + "type" => "page", + "value" => 21, + "text" => [ + "en" => "", + "zh_cn" => "" + ], + "link" => "" + ] + ] + ], + "contact" => [ + "telephone" => "028-87966209", + "address" => [ + "en" => "G8 Tianfu Software Park Chengdu China, Guangda Network Technology Co., Ltd.", + "zh_cn" => "成都市高新区益州大道中段1858号天府软件园G8 成都光大网络科技有限公司" + ], + "email" => "marketing@guangda.work" + ] + ], + "bottom" => [ + "copyright" => [ + "en" => "
  - Chengdu Guangda Network Technology © 2023
", + "zh_cn" => "
  - 成都光大网络科技 © 2023
" + ], + "image" => "catalog/demo/banner/pay_icons.png" + ] + ]; + } +} diff --git a/plugins/Openai/Controllers/OpenaiController.php b/plugins/Openai/Controllers/OpenaiController.php index 32be9c0b..60ffc3b7 100644 --- a/plugins/Openai/Controllers/OpenaiController.php +++ b/plugins/Openai/Controllers/OpenaiController.php @@ -24,7 +24,7 @@ class OpenaiController extends Controller */ public function index() { - $plugin = app('plugin')->getPlugin('openai'); + $plugin = plugin('openai'); $error = ''; $baseUrl = config('beike.api_url') . '/api/openai'; diff --git a/plugins/Openai/Migrations/2023_02_27_173221_add_openai_logs.php b/plugins/Openai/Migrations/2023_02_27_173221_add_openai_logs.php index 5b6f706a..f668eebe 100644 --- a/plugins/Openai/Migrations/2023_02_27_173221_add_openai_logs.php +++ b/plugins/Openai/Migrations/2023_02_27_173221_add_openai_logs.php @@ -13,15 +13,17 @@ return new class extends Migration */ public function up() { - Schema::create('openai_logs', function (Blueprint $table) { - $table->id(); - $table->integer('user_id')->index('user_id'); - $table->text('question'); - $table->text('answer'); - $table->string('request_ip'); - $table->text('user_agent'); - $table->timestamps(); - }); + if (! Schema::hasTable('openai_logs')) { + Schema::create('openai_logs', function (Blueprint $table) { + $table->id(); + $table->integer('user_id')->index('user_id'); + $table->text('question'); + $table->text('answer'); + $table->string('request_ip'); + $table->text('user_agent'); + $table->timestamps(); + }); + } } /** diff --git a/public/image/default-theme.jpg b/public/image/default-theme.jpg new file mode 100644 index 00000000..b972ec2d Binary files /dev/null and b/public/image/default-theme.jpg differ diff --git a/resources/beike/admin/css/_page-theme.scss b/resources/beike/admin/css/_page-theme.scss new file mode 100644 index 00000000..bc60c41f --- /dev/null +++ b/resources/beike/admin/css/_page-theme.scss @@ -0,0 +1,47 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-09 14:12:25 + * @LastEditTime 2022-09-16 19:05:44 + */ + +body.page-theme { + .theme-wrap { + .item { + border: 1px solid #e5e5e5; + box-shadow: 0px 0px 14px 0px rgba(55, 53, 76, 0.1); + border-radius: 6px; + transition: all 0.3s ease-in-out; + &:hover { + box-shadow: 0px 12px 40px -10px rgba(55, 53, 76, 0.36); + } + + .img { + margin-bottom: 14px; + } + + .theme-bottom { + border-top: 1px solid #eee; + height: 54px; + padding: 10px; + + .enabled-text { + color: #01cf38; + + &::before { + content: ""; + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + background-color: #01cf38; + margin-right: 5px; + } + } + } + } + } +} \ No newline at end of file diff --git a/resources/beike/admin/css/app.scss b/resources/beike/admin/css/app.scss index 11eeb064..8f942980 100644 --- a/resources/beike/admin/css/app.scss +++ b/resources/beike/admin/css/app.scss @@ -28,3 +28,4 @@ $primary: #fd560f; @import 'autocomplete'; @import 'page-category'; @import './design/menu'; +@import './page-theme'; diff --git a/resources/beike/admin/views/components/header.blade.php b/resources/beike/admin/views/components/header.blade.php index a6c63557..3a24830b 100644 --- a/resources/beike/admin/views/components/header.blade.php +++ b/resources/beike/admin/views/components/header.blade.php @@ -161,7 +161,7 @@ layer.open({ type: 2, title: '', - area: ['700px', '80%'], + area: ['840px', '80%'], content: `${config.api_url}/api/vip_rights?domain=${config.app_url}`, }); }); diff --git a/resources/beike/admin/views/pages/design/module/icons.blade.php b/resources/beike/admin/views/pages/design/module/icons.blade.php index a6d3c5af..0b3a38ca 100644 --- a/resources/beike/admin/views/pages/design/module/icons.blade.php +++ b/resources/beike/admin/views/pages/design/module/icons.blade.php @@ -24,7 +24,10 @@
{{ __('admin/builder.text_suggested_size') }}: 200x200
+
{{ __('admin/builder.text_set_title') }}
+
{{ __('admin/builder.text_set_subtitle') }}
+
@@ -74,6 +77,7 @@ Vue.component('module-editor-icons', { value:'' }, text: languagesFill(''), + sub_text: languagesFill(''), show: true }) diff --git a/resources/beike/admin/views/pages/design/module/image200.blade.php b/resources/beike/admin/views/pages/design/module/image200.blade.php new file mode 100644 index 00000000..7c1f2df4 --- /dev/null +++ b/resources/beike/admin/views/pages/design/module/image200.blade.php @@ -0,0 +1,95 @@ + + + + +@push('footer-script') + +@endpush \ No newline at end of file diff --git a/resources/beike/admin/views/pages/design/module/image300.blade.php b/resources/beike/admin/views/pages/design/module/image300.blade.php new file mode 100644 index 00000000..c44e0f7d --- /dev/null +++ b/resources/beike/admin/views/pages/design/module/image300.blade.php @@ -0,0 +1,103 @@ + + + + +@push('footer-script') + +@endpush \ No newline at end of file diff --git a/resources/beike/admin/views/pages/marketing/index.blade.php b/resources/beike/admin/views/pages/marketing/index.blade.php index 5ba661f9..abe2da27 100644 --- a/resources/beike/admin/views/pages/marketing/index.blade.php +++ b/resources/beike/admin/views/pages/marketing/index.blade.php @@ -107,7 +107,7 @@ data: { plugins: @json($plugins ?? []), - page: 1, + page: bk.getQueryString('page', 1) * 1, filter: { keyword: bk.getQueryString('keyword'), @@ -120,6 +120,21 @@ } }, + mounted() { + // 监听浏览器返回事件 + window.addEventListener('popstate', () => { + const page = bk.getQueryString('page'); + + if (this.page < 2) { + window.history.back(-1); + return; + } + + this.page = page * 1 - 1; + this.loadData(); + }); + }, + computed: { url: function() { let filter = {}; diff --git a/resources/beike/admin/views/pages/plugins/index.blade.php b/resources/beike/admin/views/pages/plugins/index.blade.php index 128ba1cf..73ef4552 100644 --- a/resources/beike/admin/views/pages/plugins/index.blade.php +++ b/resources/beike/admin/views/pages/plugins/index.blade.php @@ -42,7 +42,8 @@
- {{ __('admin/common.edit') }} + {{ __('admin/common.edit') }} + {{ __('admin/plugin.to_enable') }} {{ __('admin/common.uninstall') }}
diff --git a/resources/beike/admin/views/pages/products/form/form.blade.php b/resources/beike/admin/views/pages/products/form/form.blade.php index 8a916a34..a5336d79 100644 --- a/resources/beike/admin/views/pages/products/form/form.blade.php +++ b/resources/beike/admin/views/pages/products/form/form.blade.php @@ -53,7 +53,9 @@
{{ __('common.data') }}
- + images ?? []), + images: @json(old('images', $product->images) ?? []), model: @json($product->skus[0]['model'] ?? ''), price: @json($product->skus[0]['price'] ?? ''), quantity: @json($product->skus[0]['quantity'] ?? ''), diff --git a/resources/beike/admin/views/pages/setting.blade.php b/resources/beike/admin/views/pages/setting.blade.php index e355ee8c..66a4082a 100644 --- a/resources/beike/admin/views/pages/setting.blade.php +++ b/resources/beike/admin/views/pages/setting.blade.php @@ -85,10 +85,6 @@ - -
主题模板选择
-
-
{{ __('admin/setting.head_code_info') }}
diff --git a/resources/beike/admin/views/pages/theme/index.blade.php b/resources/beike/admin/views/pages/theme/index.blade.php new file mode 100644 index 00000000..9ad1bfde --- /dev/null +++ b/resources/beike/admin/views/pages/theme/index.blade.php @@ -0,0 +1,72 @@ +@extends('admin::layouts.master') + +@section('title', __('admin/common.theme_index')) + +@section('body-class', 'page-theme') + +@section('content') +
+
{{ __('admin/theme.page_title') }}
+
+
+
+ @foreach ($themes as $item) +
+
+
+
+
{{ $item['name'] }}
+
+ @if ($item['status']) +
{{ __('admin/theme.enabled_text') }}
+ @else + + @endif +
+
+
+
+ @endforeach +
+
+
+
+ +@endsection + +@push('footer') + +@endpush diff --git a/resources/beike/shop/fashion/css/account/account.scss b/resources/beike/shop/fashion/css/account/account.scss new file mode 100644 index 00000000..c5919157 --- /dev/null +++ b/resources/beike/shop/fashion/css/account/account.scss @@ -0,0 +1,63 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-01 16:23:34 + * @LastEditTime 2022-09-16 20:57:19 + */ + +body.page-account { + background-color: #F7F8FA; + + .account-card { + border: none; + + .card-items { + > a { + width: 25%; + color: #444444; + text-decoration: none !important; + i { + font-size: 2rem; + } + + span { + display: flex; + } + } + } + + .card-body { + @media (min-width: 992px) { + min-height: 509px; + } + } + + .order-wrap { + background-color: #f6f8f9; + + @media (min-width:768px) { + padding: 2rem 1rem; + } + + .icon { + i { + font-size: 4.5rem; + color: #777; + } + } + + .text { + font-size: 1rem; + } + } + } +} + +.account-sides-info { + @media (max-width:768px) { + margin-bottom: 14px; + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/app.scss b/resources/beike/shop/fashion/css/app.scss new file mode 100644 index 00000000..2e6673d6 --- /dev/null +++ b/resources/beike/shop/fashion/css/app.scss @@ -0,0 +1,38 @@ +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:45:17 + */ + +@charset "UTF-8"; + +$primary: #ee403d; +$sub_color: #78e723; +$price: $primary; + +@import './iconfont'; +@import './global'; + +@import './header'; +@import './footer'; +@import './product-style'; +@import './news'; +@import './login'; +@import './account/account'; +@import './page-product'; +@import './cart'; +@import './page-checkout'; +@import './page-categories'; +@import './element-ui'; +@import './order-success'; +@import './page-account-order'; +@import './page-account-address'; +@import './page-brands'; +@import './home'; +@import './module/module-image-plus'; +@import './module/module-brand'; +@import './module/module-tab-product'; +@import './module/module-icon'; +@import './module/slideshow'; diff --git a/resources/beike/shop/fashion/css/bootstrap/bootstrap-icons.scss b/resources/beike/shop/fashion/css/bootstrap/bootstrap-icons.scss new file mode 100644 index 00000000..458150dd --- /dev/null +++ b/resources/beike/shop/fashion/css/bootstrap/bootstrap-icons.scss @@ -0,0 +1,3403 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:57:06 + */ + +$bootstrap-icons-font: "bootstrap-icons" !default; +$bootstrap-icons-font-src: url("/vendor/bootstrap/icon/bootstrap-icons.woff2?08efbba7c53d8c5413793eecb19b20bb") format("woff2"), +url("/vendor/bootstrap/icon/bootstrap-icons.woff?08efbba7c53d8c5413793eecb19b20bb") format("woff") !default; + +@font-face { + font-family: $bootstrap-icons-font; + src: $bootstrap-icons-font-src; +} + +.bi::before, +[class^="bi-"]::before, +[class*=" bi-"]::before { + display: inline-block; + font-family: $bootstrap-icons-font !important; + font-style: normal; + font-weight: normal !important; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: -.125em; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +$bootstrap-icons-map: ( + "123": "\f67f", + "alarm-fill": "\f101", + "alarm": "\f102", + "align-bottom": "\f103", + "align-center": "\f104", + "align-end": "\f105", + "align-middle": "\f106", + "align-start": "\f107", + "align-top": "\f108", + "alt": "\f109", + "app-indicator": "\f10a", + "app": "\f10b", + "archive-fill": "\f10c", + "archive": "\f10d", + "arrow-90deg-down": "\f10e", + "arrow-90deg-left": "\f10f", + "arrow-90deg-right": "\f110", + "arrow-90deg-up": "\f111", + "arrow-bar-down": "\f112", + "arrow-bar-left": "\f113", + "arrow-bar-right": "\f114", + "arrow-bar-up": "\f115", + "arrow-clockwise": "\f116", + "arrow-counterclockwise": "\f117", + "arrow-down-circle-fill": "\f118", + "arrow-down-circle": "\f119", + "arrow-down-left-circle-fill": "\f11a", + "arrow-down-left-circle": "\f11b", + "arrow-down-left-square-fill": "\f11c", + "arrow-down-left-square": "\f11d", + "arrow-down-left": "\f11e", + "arrow-down-right-circle-fill": "\f11f", + "arrow-down-right-circle": "\f120", + "arrow-down-right-square-fill": "\f121", + "arrow-down-right-square": "\f122", + "arrow-down-right": "\f123", + "arrow-down-short": "\f124", + "arrow-down-square-fill": "\f125", + "arrow-down-square": "\f126", + "arrow-down-up": "\f127", + "arrow-down": "\f128", + "arrow-left-circle-fill": "\f129", + "arrow-left-circle": "\f12a", + "arrow-left-right": "\f12b", + "arrow-left-short": "\f12c", + "arrow-left-square-fill": "\f12d", + "arrow-left-square": "\f12e", + "arrow-left": "\f12f", + "arrow-repeat": "\f130", + "arrow-return-left": "\f131", + "arrow-return-right": "\f132", + "arrow-right-circle-fill": "\f133", + "arrow-right-circle": "\f134", + "arrow-right-short": "\f135", + "arrow-right-square-fill": "\f136", + "arrow-right-square": "\f137", + "arrow-right": "\f138", + "arrow-up-circle-fill": "\f139", + "arrow-up-circle": "\f13a", + "arrow-up-left-circle-fill": "\f13b", + "arrow-up-left-circle": "\f13c", + "arrow-up-left-square-fill": "\f13d", + "arrow-up-left-square": "\f13e", + "arrow-up-left": "\f13f", + "arrow-up-right-circle-fill": "\f140", + "arrow-up-right-circle": "\f141", + "arrow-up-right-square-fill": "\f142", + "arrow-up-right-square": "\f143", + "arrow-up-right": "\f144", + "arrow-up-short": "\f145", + "arrow-up-square-fill": "\f146", + "arrow-up-square": "\f147", + "arrow-up": "\f148", + "arrows-angle-contract": "\f149", + "arrows-angle-expand": "\f14a", + "arrows-collapse": "\f14b", + "arrows-expand": "\f14c", + "arrows-fullscreen": "\f14d", + "arrows-move": "\f14e", + "aspect-ratio-fill": "\f14f", + "aspect-ratio": "\f150", + "asterisk": "\f151", + "at": "\f152", + "award-fill": "\f153", + "award": "\f154", + "back": "\f155", + "backspace-fill": "\f156", + "backspace-reverse-fill": "\f157", + "backspace-reverse": "\f158", + "backspace": "\f159", + "badge-3d-fill": "\f15a", + "badge-3d": "\f15b", + "badge-4k-fill": "\f15c", + "badge-4k": "\f15d", + "badge-8k-fill": "\f15e", + "badge-8k": "\f15f", + "badge-ad-fill": "\f160", + "badge-ad": "\f161", + "badge-ar-fill": "\f162", + "badge-ar": "\f163", + "badge-cc-fill": "\f164", + "badge-cc": "\f165", + "badge-hd-fill": "\f166", + "badge-hd": "\f167", + "badge-tm-fill": "\f168", + "badge-tm": "\f169", + "badge-vo-fill": "\f16a", + "badge-vo": "\f16b", + "badge-vr-fill": "\f16c", + "badge-vr": "\f16d", + "badge-wc-fill": "\f16e", + "badge-wc": "\f16f", + "bag-check-fill": "\f170", + "bag-check": "\f171", + "bag-dash-fill": "\f172", + "bag-dash": "\f173", + "bag-fill": "\f174", + "bag-plus-fill": "\f175", + "bag-plus": "\f176", + "bag-x-fill": "\f177", + "bag-x": "\f178", + "bag": "\f179", + "bar-chart-fill": "\f17a", + "bar-chart-line-fill": "\f17b", + "bar-chart-line": "\f17c", + "bar-chart-steps": "\f17d", + "bar-chart": "\f17e", + "basket-fill": "\f17f", + "basket": "\f180", + "basket2-fill": "\f181", + "basket2": "\f182", + "basket3-fill": "\f183", + "basket3": "\f184", + "battery-charging": "\f185", + "battery-full": "\f186", + "battery-half": "\f187", + "battery": "\f188", + "bell-fill": "\f189", + "bell": "\f18a", + "bezier": "\f18b", + "bezier2": "\f18c", + "bicycle": "\f18d", + "binoculars-fill": "\f18e", + "binoculars": "\f18f", + "blockquote-left": "\f190", + "blockquote-right": "\f191", + "book-fill": "\f192", + "book-half": "\f193", + "book": "\f194", + "bookmark-check-fill": "\f195", + "bookmark-check": "\f196", + "bookmark-dash-fill": "\f197", + "bookmark-dash": "\f198", + "bookmark-fill": "\f199", + "bookmark-heart-fill": "\f19a", + "bookmark-heart": "\f19b", + "bookmark-plus-fill": "\f19c", + "bookmark-plus": "\f19d", + "bookmark-star-fill": "\f19e", + "bookmark-star": "\f19f", + "bookmark-x-fill": "\f1a0", + "bookmark-x": "\f1a1", + "bookmark": "\f1a2", + "bookmarks-fill": "\f1a3", + "bookmarks": "\f1a4", + "bookshelf": "\f1a5", + "bootstrap-fill": "\f1a6", + "bootstrap-reboot": "\f1a7", + "bootstrap": "\f1a8", + "border-all": "\f1a9", + "border-bottom": "\f1aa", + "border-center": "\f1ab", + "border-inner": "\f1ac", + "border-left": "\f1ad", + "border-middle": "\f1ae", + "border-outer": "\f1af", + "border-right": "\f1b0", + "border-style": "\f1b1", + "border-top": "\f1b2", + "border-width": "\f1b3", + "border": "\f1b4", + "bounding-box-circles": "\f1b5", + "bounding-box": "\f1b6", + "box-arrow-down-left": "\f1b7", + "box-arrow-down-right": "\f1b8", + "box-arrow-down": "\f1b9", + "box-arrow-in-down-left": "\f1ba", + "box-arrow-in-down-right": "\f1bb", + "box-arrow-in-down": "\f1bc", + "box-arrow-in-left": "\f1bd", + "box-arrow-in-right": "\f1be", + "box-arrow-in-up-left": "\f1bf", + "box-arrow-in-up-right": "\f1c0", + "box-arrow-in-up": "\f1c1", + "box-arrow-left": "\f1c2", + "box-arrow-right": "\f1c3", + "box-arrow-up-left": "\f1c4", + "box-arrow-up-right": "\f1c5", + "box-arrow-up": "\f1c6", + "box-seam": "\f1c7", + "box": "\f1c8", + "braces": "\f1c9", + "bricks": "\f1ca", + "briefcase-fill": "\f1cb", + "briefcase": "\f1cc", + "brightness-alt-high-fill": "\f1cd", + "brightness-alt-high": "\f1ce", + "brightness-alt-low-fill": "\f1cf", + "brightness-alt-low": "\f1d0", + "brightness-high-fill": "\f1d1", + "brightness-high": "\f1d2", + "brightness-low-fill": "\f1d3", + "brightness-low": "\f1d4", + "broadcast-pin": "\f1d5", + "broadcast": "\f1d6", + "brush-fill": "\f1d7", + "brush": "\f1d8", + "bucket-fill": "\f1d9", + "bucket": "\f1da", + "bug-fill": "\f1db", + "bug": "\f1dc", + "building": "\f1dd", + "bullseye": "\f1de", + "calculator-fill": "\f1df", + "calculator": "\f1e0", + "calendar-check-fill": "\f1e1", + "calendar-check": "\f1e2", + "calendar-date-fill": "\f1e3", + "calendar-date": "\f1e4", + "calendar-day-fill": "\f1e5", + "calendar-day": "\f1e6", + "calendar-event-fill": "\f1e7", + "calendar-event": "\f1e8", + "calendar-fill": "\f1e9", + "calendar-minus-fill": "\f1ea", + "calendar-minus": "\f1eb", + "calendar-month-fill": "\f1ec", + "calendar-month": "\f1ed", + "calendar-plus-fill": "\f1ee", + "calendar-plus": "\f1ef", + "calendar-range-fill": "\f1f0", + "calendar-range": "\f1f1", + "calendar-week-fill": "\f1f2", + "calendar-week": "\f1f3", + "calendar-x-fill": "\f1f4", + "calendar-x": "\f1f5", + "calendar": "\f1f6", + "calendar2-check-fill": "\f1f7", + "calendar2-check": "\f1f8", + "calendar2-date-fill": "\f1f9", + "calendar2-date": "\f1fa", + "calendar2-day-fill": "\f1fb", + "calendar2-day": "\f1fc", + "calendar2-event-fill": "\f1fd", + "calendar2-event": "\f1fe", + "calendar2-fill": "\f1ff", + "calendar2-minus-fill": "\f200", + "calendar2-minus": "\f201", + "calendar2-month-fill": "\f202", + "calendar2-month": "\f203", + "calendar2-plus-fill": "\f204", + "calendar2-plus": "\f205", + "calendar2-range-fill": "\f206", + "calendar2-range": "\f207", + "calendar2-week-fill": "\f208", + "calendar2-week": "\f209", + "calendar2-x-fill": "\f20a", + "calendar2-x": "\f20b", + "calendar2": "\f20c", + "calendar3-event-fill": "\f20d", + "calendar3-event": "\f20e", + "calendar3-fill": "\f20f", + "calendar3-range-fill": "\f210", + "calendar3-range": "\f211", + "calendar3-week-fill": "\f212", + "calendar3-week": "\f213", + "calendar3": "\f214", + "calendar4-event": "\f215", + "calendar4-range": "\f216", + "calendar4-week": "\f217", + "calendar4": "\f218", + "camera-fill": "\f219", + "camera-reels-fill": "\f21a", + "camera-reels": "\f21b", + "camera-video-fill": "\f21c", + "camera-video-off-fill": "\f21d", + "camera-video-off": "\f21e", + "camera-video": "\f21f", + "camera": "\f220", + "camera2": "\f221", + "capslock-fill": "\f222", + "capslock": "\f223", + "card-checklist": "\f224", + "card-heading": "\f225", + "card-image": "\f226", + "card-list": "\f227", + "card-text": "\f228", + "caret-down-fill": "\f229", + "caret-down-square-fill": "\f22a", + "caret-down-square": "\f22b", + "caret-down": "\f22c", + "caret-left-fill": "\f22d", + "caret-left-square-fill": "\f22e", + "caret-left-square": "\f22f", + "caret-left": "\f230", + "caret-right-fill": "\f231", + "caret-right-square-fill": "\f232", + "caret-right-square": "\f233", + "caret-right": "\f234", + "caret-up-fill": "\f235", + "caret-up-square-fill": "\f236", + "caret-up-square": "\f237", + "caret-up": "\f238", + "cart-check-fill": "\f239", + "cart-check": "\f23a", + "cart-dash-fill": "\f23b", + "cart-dash": "\f23c", + "cart-fill": "\f23d", + "cart-plus-fill": "\f23e", + "cart-plus": "\f23f", + "cart-x-fill": "\f240", + "cart-x": "\f241", + "cart": "\f242", + "cart2": "\f243", + "cart3": "\f244", + "cart4": "\f245", + "cash-stack": "\f246", + "cash": "\f247", + "cast": "\f248", + "chat-dots-fill": "\f249", + "chat-dots": "\f24a", + "chat-fill": "\f24b", + "chat-left-dots-fill": "\f24c", + "chat-left-dots": "\f24d", + "chat-left-fill": "\f24e", + "chat-left-quote-fill": "\f24f", + "chat-left-quote": "\f250", + "chat-left-text-fill": "\f251", + "chat-left-text": "\f252", + "chat-left": "\f253", + "chat-quote-fill": "\f254", + "chat-quote": "\f255", + "chat-right-dots-fill": "\f256", + "chat-right-dots": "\f257", + "chat-right-fill": "\f258", + "chat-right-quote-fill": "\f259", + "chat-right-quote": "\f25a", + "chat-right-text-fill": "\f25b", + "chat-right-text": "\f25c", + "chat-right": "\f25d", + "chat-square-dots-fill": "\f25e", + "chat-square-dots": "\f25f", + "chat-square-fill": "\f260", + "chat-square-quote-fill": "\f261", + "chat-square-quote": "\f262", + "chat-square-text-fill": "\f263", + "chat-square-text": "\f264", + "chat-square": "\f265", + "chat-text-fill": "\f266", + "chat-text": "\f267", + "chat": "\f268", + "check-all": "\f269", + "check-circle-fill": "\f26a", + "check-circle": "\f26b", + "check-square-fill": "\f26c", + "check-square": "\f26d", + "check": "\f26e", + "check2-all": "\f26f", + "check2-circle": "\f270", + "check2-square": "\f271", + "check2": "\f272", + "chevron-bar-contract": "\f273", + "chevron-bar-down": "\f274", + "chevron-bar-expand": "\f275", + "chevron-bar-left": "\f276", + "chevron-bar-right": "\f277", + "chevron-bar-up": "\f278", + "chevron-compact-down": "\f279", + "chevron-compact-left": "\f27a", + "chevron-compact-right": "\f27b", + "chevron-compact-up": "\f27c", + "chevron-contract": "\f27d", + "chevron-double-down": "\f27e", + "chevron-double-left": "\f27f", + "chevron-double-right": "\f280", + "chevron-double-up": "\f281", + "chevron-down": "\f282", + "chevron-expand": "\f283", + "chevron-left": "\f284", + "chevron-right": "\f285", + "chevron-up": "\f286", + "circle-fill": "\f287", + "circle-half": "\f288", + "circle-square": "\f289", + "circle": "\f28a", + "clipboard-check": "\f28b", + "clipboard-data": "\f28c", + "clipboard-minus": "\f28d", + "clipboard-plus": "\f28e", + "clipboard-x": "\f28f", + "clipboard": "\f290", + "clock-fill": "\f291", + "clock-history": "\f292", + "clock": "\f293", + "cloud-arrow-down-fill": "\f294", + "cloud-arrow-down": "\f295", + "cloud-arrow-up-fill": "\f296", + "cloud-arrow-up": "\f297", + "cloud-check-fill": "\f298", + "cloud-check": "\f299", + "cloud-download-fill": "\f29a", + "cloud-download": "\f29b", + "cloud-drizzle-fill": "\f29c", + "cloud-drizzle": "\f29d", + "cloud-fill": "\f29e", + "cloud-fog-fill": "\f29f", + "cloud-fog": "\f2a0", + "cloud-fog2-fill": "\f2a1", + "cloud-fog2": "\f2a2", + "cloud-hail-fill": "\f2a3", + "cloud-hail": "\f2a4", + "cloud-haze-1": "\f2a5", + "cloud-haze-fill": "\f2a6", + "cloud-haze": "\f2a7", + "cloud-haze2-fill": "\f2a8", + "cloud-lightning-fill": "\f2a9", + "cloud-lightning-rain-fill": "\f2aa", + "cloud-lightning-rain": "\f2ab", + "cloud-lightning": "\f2ac", + "cloud-minus-fill": "\f2ad", + "cloud-minus": "\f2ae", + "cloud-moon-fill": "\f2af", + "cloud-moon": "\f2b0", + "cloud-plus-fill": "\f2b1", + "cloud-plus": "\f2b2", + "cloud-rain-fill": "\f2b3", + "cloud-rain-heavy-fill": "\f2b4", + "cloud-rain-heavy": "\f2b5", + "cloud-rain": "\f2b6", + "cloud-slash-fill": "\f2b7", + "cloud-slash": "\f2b8", + "cloud-sleet-fill": "\f2b9", + "cloud-sleet": "\f2ba", + "cloud-snow-fill": "\f2bb", + "cloud-snow": "\f2bc", + "cloud-sun-fill": "\f2bd", + "cloud-sun": "\f2be", + "cloud-upload-fill": "\f2bf", + "cloud-upload": "\f2c0", + "cloud": "\f2c1", + "clouds-fill": "\f2c2", + "clouds": "\f2c3", + "cloudy-fill": "\f2c4", + "cloudy": "\f2c5", + "code-slash": "\f2c6", + "code-square": "\f2c7", + "code": "\f2c8", + "collection-fill": "\f2c9", + "collection-play-fill": "\f2ca", + "collection-play": "\f2cb", + "collection": "\f2cc", + "columns-gap": "\f2cd", + "columns": "\f2ce", + "command": "\f2cf", + "compass-fill": "\f2d0", + "compass": "\f2d1", + "cone-striped": "\f2d2", + "cone": "\f2d3", + "controller": "\f2d4", + "cpu-fill": "\f2d5", + "cpu": "\f2d6", + "credit-card-2-back-fill": "\f2d7", + "credit-card-2-back": "\f2d8", + "credit-card-2-front-fill": "\f2d9", + "credit-card-2-front": "\f2da", + "credit-card-fill": "\f2db", + "credit-card": "\f2dc", + "crop": "\f2dd", + "cup-fill": "\f2de", + "cup-straw": "\f2df", + "cup": "\f2e0", + "cursor-fill": "\f2e1", + "cursor-text": "\f2e2", + "cursor": "\f2e3", + "dash-circle-dotted": "\f2e4", + "dash-circle-fill": "\f2e5", + "dash-circle": "\f2e6", + "dash-square-dotted": "\f2e7", + "dash-square-fill": "\f2e8", + "dash-square": "\f2e9", + "dash": "\f2ea", + "diagram-2-fill": "\f2eb", + "diagram-2": "\f2ec", + "diagram-3-fill": "\f2ed", + "diagram-3": "\f2ee", + "diamond-fill": "\f2ef", + "diamond-half": "\f2f0", + "diamond": "\f2f1", + "dice-1-fill": "\f2f2", + "dice-1": "\f2f3", + "dice-2-fill": "\f2f4", + "dice-2": "\f2f5", + "dice-3-fill": "\f2f6", + "dice-3": "\f2f7", + "dice-4-fill": "\f2f8", + "dice-4": "\f2f9", + "dice-5-fill": "\f2fa", + "dice-5": "\f2fb", + "dice-6-fill": "\f2fc", + "dice-6": "\f2fd", + "disc-fill": "\f2fe", + "disc": "\f2ff", + "discord": "\f300", + "display-fill": "\f301", + "display": "\f302", + "distribute-horizontal": "\f303", + "distribute-vertical": "\f304", + "door-closed-fill": "\f305", + "door-closed": "\f306", + "door-open-fill": "\f307", + "door-open": "\f308", + "dot": "\f309", + "download": "\f30a", + "droplet-fill": "\f30b", + "droplet-half": "\f30c", + "droplet": "\f30d", + "earbuds": "\f30e", + "easel-fill": "\f30f", + "easel": "\f310", + "egg-fill": "\f311", + "egg-fried": "\f312", + "egg": "\f313", + "eject-fill": "\f314", + "eject": "\f315", + "emoji-angry-fill": "\f316", + "emoji-angry": "\f317", + "emoji-dizzy-fill": "\f318", + "emoji-dizzy": "\f319", + "emoji-expressionless-fill": "\f31a", + "emoji-expressionless": "\f31b", + "emoji-frown-fill": "\f31c", + "emoji-frown": "\f31d", + "emoji-heart-eyes-fill": "\f31e", + "emoji-heart-eyes": "\f31f", + "emoji-laughing-fill": "\f320", + "emoji-laughing": "\f321", + "emoji-neutral-fill": "\f322", + "emoji-neutral": "\f323", + "emoji-smile-fill": "\f324", + "emoji-smile-upside-down-fill": "\f325", + "emoji-smile-upside-down": "\f326", + "emoji-smile": "\f327", + "emoji-sunglasses-fill": "\f328", + "emoji-sunglasses": "\f329", + "emoji-wink-fill": "\f32a", + "emoji-wink": "\f32b", + "envelope-fill": "\f32c", + "envelope-open-fill": "\f32d", + "envelope-open": "\f32e", + "envelope": "\f32f", + "eraser-fill": "\f330", + "eraser": "\f331", + "exclamation-circle-fill": "\f332", + "exclamation-circle": "\f333", + "exclamation-diamond-fill": "\f334", + "exclamation-diamond": "\f335", + "exclamation-octagon-fill": "\f336", + "exclamation-octagon": "\f337", + "exclamation-square-fill": "\f338", + "exclamation-square": "\f339", + "exclamation-triangle-fill": "\f33a", + "exclamation-triangle": "\f33b", + "exclamation": "\f33c", + "exclude": "\f33d", + "eye-fill": "\f33e", + "eye-slash-fill": "\f33f", + "eye-slash": "\f340", + "eye": "\f341", + "eyedropper": "\f342", + "eyeglasses": "\f343", + "facebook": "\f344", + "file-arrow-down-fill": "\f345", + "file-arrow-down": "\f346", + "file-arrow-up-fill": "\f347", + "file-arrow-up": "\f348", + "file-bar-graph-fill": "\f349", + "file-bar-graph": "\f34a", + "file-binary-fill": "\f34b", + "file-binary": "\f34c", + "file-break-fill": "\f34d", + "file-break": "\f34e", + "file-check-fill": "\f34f", + "file-check": "\f350", + "file-code-fill": "\f351", + "file-code": "\f352", + "file-diff-fill": "\f353", + "file-diff": "\f354", + "file-earmark-arrow-down-fill": "\f355", + "file-earmark-arrow-down": "\f356", + "file-earmark-arrow-up-fill": "\f357", + "file-earmark-arrow-up": "\f358", + "file-earmark-bar-graph-fill": "\f359", + "file-earmark-bar-graph": "\f35a", + "file-earmark-binary-fill": "\f35b", + "file-earmark-binary": "\f35c", + "file-earmark-break-fill": "\f35d", + "file-earmark-break": "\f35e", + "file-earmark-check-fill": "\f35f", + "file-earmark-check": "\f360", + "file-earmark-code-fill": "\f361", + "file-earmark-code": "\f362", + "file-earmark-diff-fill": "\f363", + "file-earmark-diff": "\f364", + "file-earmark-easel-fill": "\f365", + "file-earmark-easel": "\f366", + "file-earmark-excel-fill": "\f367", + "file-earmark-excel": "\f368", + "file-earmark-fill": "\f369", + "file-earmark-font-fill": "\f36a", + "file-earmark-font": "\f36b", + "file-earmark-image-fill": "\f36c", + "file-earmark-image": "\f36d", + "file-earmark-lock-fill": "\f36e", + "file-earmark-lock": "\f36f", + "file-earmark-lock2-fill": "\f370", + "file-earmark-lock2": "\f371", + "file-earmark-medical-fill": "\f372", + "file-earmark-medical": "\f373", + "file-earmark-minus-fill": "\f374", + "file-earmark-minus": "\f375", + "file-earmark-music-fill": "\f376", + "file-earmark-music": "\f377", + "file-earmark-person-fill": "\f378", + "file-earmark-person": "\f379", + "file-earmark-play-fill": "\f37a", + "file-earmark-play": "\f37b", + "file-earmark-plus-fill": "\f37c", + "file-earmark-plus": "\f37d", + "file-earmark-post-fill": "\f37e", + "file-earmark-post": "\f37f", + "file-earmark-ppt-fill": "\f380", + "file-earmark-ppt": "\f381", + "file-earmark-richtext-fill": "\f382", + "file-earmark-richtext": "\f383", + "file-earmark-ruled-fill": "\f384", + "file-earmark-ruled": "\f385", + "file-earmark-slides-fill": "\f386", + "file-earmark-slides": "\f387", + "file-earmark-spreadsheet-fill": "\f388", + "file-earmark-spreadsheet": "\f389", + "file-earmark-text-fill": "\f38a", + "file-earmark-text": "\f38b", + "file-earmark-word-fill": "\f38c", + "file-earmark-word": "\f38d", + "file-earmark-x-fill": "\f38e", + "file-earmark-x": "\f38f", + "file-earmark-zip-fill": "\f390", + "file-earmark-zip": "\f391", + "file-earmark": "\f392", + "file-easel-fill": "\f393", + "file-easel": "\f394", + "file-excel-fill": "\f395", + "file-excel": "\f396", + "file-fill": "\f397", + "file-font-fill": "\f398", + "file-font": "\f399", + "file-image-fill": "\f39a", + "file-image": "\f39b", + "file-lock-fill": "\f39c", + "file-lock": "\f39d", + "file-lock2-fill": "\f39e", + "file-lock2": "\f39f", + "file-medical-fill": "\f3a0", + "file-medical": "\f3a1", + "file-minus-fill": "\f3a2", + "file-minus": "\f3a3", + "file-music-fill": "\f3a4", + "file-music": "\f3a5", + "file-person-fill": "\f3a6", + "file-person": "\f3a7", + "file-play-fill": "\f3a8", + "file-play": "\f3a9", + "file-plus-fill": "\f3aa", + "file-plus": "\f3ab", + "file-post-fill": "\f3ac", + "file-post": "\f3ad", + "file-ppt-fill": "\f3ae", + "file-ppt": "\f3af", + "file-richtext-fill": "\f3b0", + "file-richtext": "\f3b1", + "file-ruled-fill": "\f3b2", + "file-ruled": "\f3b3", + "file-slides-fill": "\f3b4", + "file-slides": "\f3b5", + "file-spreadsheet-fill": "\f3b6", + "file-spreadsheet": "\f3b7", + "file-text-fill": "\f3b8", + "file-text": "\f3b9", + "file-word-fill": "\f3ba", + "file-word": "\f3bb", + "file-x-fill": "\f3bc", + "file-x": "\f3bd", + "file-zip-fill": "\f3be", + "file-zip": "\f3bf", + "file": "\f3c0", + "files-alt": "\f3c1", + "files": "\f3c2", + "film": "\f3c3", + "filter-circle-fill": "\f3c4", + "filter-circle": "\f3c5", + "filter-left": "\f3c6", + "filter-right": "\f3c7", + "filter-square-fill": "\f3c8", + "filter-square": "\f3c9", + "filter": "\f3ca", + "flag-fill": "\f3cb", + "flag": "\f3cc", + "flower1": "\f3cd", + "flower2": "\f3ce", + "flower3": "\f3cf", + "folder-check": "\f3d0", + "folder-fill": "\f3d1", + "folder-minus": "\f3d2", + "folder-plus": "\f3d3", + "folder-symlink-fill": "\f3d4", + "folder-symlink": "\f3d5", + "folder-x": "\f3d6", + "folder": "\f3d7", + "folder2-open": "\f3d8", + "folder2": "\f3d9", + "fonts": "\f3da", + "forward-fill": "\f3db", + "forward": "\f3dc", + "front": "\f3dd", + "fullscreen-exit": "\f3de", + "fullscreen": "\f3df", + "funnel-fill": "\f3e0", + "funnel": "\f3e1", + "gear-fill": "\f3e2", + "gear-wide-connected": "\f3e3", + "gear-wide": "\f3e4", + "gear": "\f3e5", + "gem": "\f3e6", + "geo-alt-fill": "\f3e7", + "geo-alt": "\f3e8", + "geo-fill": "\f3e9", + "geo": "\f3ea", + "gift-fill": "\f3eb", + "gift": "\f3ec", + "github": "\f3ed", + "globe": "\f3ee", + "globe2": "\f3ef", + "google": "\f3f0", + "graph-down": "\f3f1", + "graph-up": "\f3f2", + "grid-1x2-fill": "\f3f3", + "grid-1x2": "\f3f4", + "grid-3x2-gap-fill": "\f3f5", + "grid-3x2-gap": "\f3f6", + "grid-3x2": "\f3f7", + "grid-3x3-gap-fill": "\f3f8", + "grid-3x3-gap": "\f3f9", + "grid-3x3": "\f3fa", + "grid-fill": "\f3fb", + "grid": "\f3fc", + "grip-horizontal": "\f3fd", + "grip-vertical": "\f3fe", + "hammer": "\f3ff", + "hand-index-fill": "\f400", + "hand-index-thumb-fill": "\f401", + "hand-index-thumb": "\f402", + "hand-index": "\f403", + "hand-thumbs-down-fill": "\f404", + "hand-thumbs-down": "\f405", + "hand-thumbs-up-fill": "\f406", + "hand-thumbs-up": "\f407", + "handbag-fill": "\f408", + "handbag": "\f409", + "hash": "\f40a", + "hdd-fill": "\f40b", + "hdd-network-fill": "\f40c", + "hdd-network": "\f40d", + "hdd-rack-fill": "\f40e", + "hdd-rack": "\f40f", + "hdd-stack-fill": "\f410", + "hdd-stack": "\f411", + "hdd": "\f412", + "headphones": "\f413", + "headset": "\f414", + "heart-fill": "\f415", + "heart-half": "\f416", + "heart": "\f417", + "heptagon-fill": "\f418", + "heptagon-half": "\f419", + "heptagon": "\f41a", + "hexagon-fill": "\f41b", + "hexagon-half": "\f41c", + "hexagon": "\f41d", + "hourglass-bottom": "\f41e", + "hourglass-split": "\f41f", + "hourglass-top": "\f420", + "hourglass": "\f421", + "house-door-fill": "\f422", + "house-door": "\f423", + "house-fill": "\f424", + "house": "\f425", + "hr": "\f426", + "hurricane": "\f427", + "image-alt": "\f428", + "image-fill": "\f429", + "image": "\f42a", + "images": "\f42b", + "inbox-fill": "\f42c", + "inbox": "\f42d", + "inboxes-fill": "\f42e", + "inboxes": "\f42f", + "info-circle-fill": "\f430", + "info-circle": "\f431", + "info-square-fill": "\f432", + "info-square": "\f433", + "info": "\f434", + "input-cursor-text": "\f435", + "input-cursor": "\f436", + "instagram": "\f437", + "intersect": "\f438", + "journal-album": "\f439", + "journal-arrow-down": "\f43a", + "journal-arrow-up": "\f43b", + "journal-bookmark-fill": "\f43c", + "journal-bookmark": "\f43d", + "journal-check": "\f43e", + "journal-code": "\f43f", + "journal-medical": "\f440", + "journal-minus": "\f441", + "journal-plus": "\f442", + "journal-richtext": "\f443", + "journal-text": "\f444", + "journal-x": "\f445", + "journal": "\f446", + "journals": "\f447", + "joystick": "\f448", + "justify-left": "\f449", + "justify-right": "\f44a", + "justify": "\f44b", + "kanban-fill": "\f44c", + "kanban": "\f44d", + "key-fill": "\f44e", + "key": "\f44f", + "keyboard-fill": "\f450", + "keyboard": "\f451", + "ladder": "\f452", + "lamp-fill": "\f453", + "lamp": "\f454", + "laptop-fill": "\f455", + "laptop": "\f456", + "layer-backward": "\f457", + "layer-forward": "\f458", + "layers-fill": "\f459", + "layers-half": "\f45a", + "layers": "\f45b", + "layout-sidebar-inset-reverse": "\f45c", + "layout-sidebar-inset": "\f45d", + "layout-sidebar-reverse": "\f45e", + "layout-sidebar": "\f45f", + "layout-split": "\f460", + "layout-text-sidebar-reverse": "\f461", + "layout-text-sidebar": "\f462", + "layout-text-window-reverse": "\f463", + "layout-text-window": "\f464", + "layout-three-columns": "\f465", + "layout-wtf": "\f466", + "life-preserver": "\f467", + "lightbulb-fill": "\f468", + "lightbulb-off-fill": "\f469", + "lightbulb-off": "\f46a", + "lightbulb": "\f46b", + "lightning-charge-fill": "\f46c", + "lightning-charge": "\f46d", + "lightning-fill": "\f46e", + "lightning": "\f46f", + "link-45deg": "\f470", + "link": "\f471", + "linkedin": "\f472", + "list-check": "\f473", + "list-nested": "\f474", + "list-ol": "\f475", + "list-stars": "\f476", + "list-task": "\f477", + "list-ul": "\f478", + "list": "\f479", + "lock-fill": "\f47a", + "lock": "\f47b", + "mailbox": "\f47c", + "mailbox2": "\f47d", + "map-fill": "\f47e", + "map": "\f47f", + "markdown-fill": "\f480", + "markdown": "\f481", + "mask": "\f482", + "megaphone-fill": "\f483", + "megaphone": "\f484", + "menu-app-fill": "\f485", + "menu-app": "\f486", + "menu-button-fill": "\f487", + "menu-button-wide-fill": "\f488", + "menu-button-wide": "\f489", + "menu-button": "\f48a", + "menu-down": "\f48b", + "menu-up": "\f48c", + "mic-fill": "\f48d", + "mic-mute-fill": "\f48e", + "mic-mute": "\f48f", + "mic": "\f490", + "minecart-loaded": "\f491", + "minecart": "\f492", + "moisture": "\f493", + "moon-fill": "\f494", + "moon-stars-fill": "\f495", + "moon-stars": "\f496", + "moon": "\f497", + "mouse-fill": "\f498", + "mouse": "\f499", + "mouse2-fill": "\f49a", + "mouse2": "\f49b", + "mouse3-fill": "\f49c", + "mouse3": "\f49d", + "music-note-beamed": "\f49e", + "music-note-list": "\f49f", + "music-note": "\f4a0", + "music-player-fill": "\f4a1", + "music-player": "\f4a2", + "newspaper": "\f4a3", + "node-minus-fill": "\f4a4", + "node-minus": "\f4a5", + "node-plus-fill": "\f4a6", + "node-plus": "\f4a7", + "nut-fill": "\f4a8", + "nut": "\f4a9", + "octagon-fill": "\f4aa", + "octagon-half": "\f4ab", + "octagon": "\f4ac", + "option": "\f4ad", + "outlet": "\f4ae", + "paint-bucket": "\f4af", + "palette-fill": "\f4b0", + "palette": "\f4b1", + "palette2": "\f4b2", + "paperclip": "\f4b3", + "paragraph": "\f4b4", + "patch-check-fill": "\f4b5", + "patch-check": "\f4b6", + "patch-exclamation-fill": "\f4b7", + "patch-exclamation": "\f4b8", + "patch-minus-fill": "\f4b9", + "patch-minus": "\f4ba", + "patch-plus-fill": "\f4bb", + "patch-plus": "\f4bc", + "patch-question-fill": "\f4bd", + "patch-question": "\f4be", + "pause-btn-fill": "\f4bf", + "pause-btn": "\f4c0", + "pause-circle-fill": "\f4c1", + "pause-circle": "\f4c2", + "pause-fill": "\f4c3", + "pause": "\f4c4", + "peace-fill": "\f4c5", + "peace": "\f4c6", + "pen-fill": "\f4c7", + "pen": "\f4c8", + "pencil-fill": "\f4c9", + "pencil-square": "\f4ca", + "pencil": "\f4cb", + "pentagon-fill": "\f4cc", + "pentagon-half": "\f4cd", + "pentagon": "\f4ce", + "people-fill": "\f4cf", + "people": "\f4d0", + "percent": "\f4d1", + "person-badge-fill": "\f4d2", + "person-badge": "\f4d3", + "person-bounding-box": "\f4d4", + "person-check-fill": "\f4d5", + "person-check": "\f4d6", + "person-circle": "\f4d7", + "person-dash-fill": "\f4d8", + "person-dash": "\f4d9", + "person-fill": "\f4da", + "person-lines-fill": "\f4db", + "person-plus-fill": "\f4dc", + "person-plus": "\f4dd", + "person-square": "\f4de", + "person-x-fill": "\f4df", + "person-x": "\f4e0", + "person": "\f4e1", + "phone-fill": "\f4e2", + "phone-landscape-fill": "\f4e3", + "phone-landscape": "\f4e4", + "phone-vibrate-fill": "\f4e5", + "phone-vibrate": "\f4e6", + "phone": "\f4e7", + "pie-chart-fill": "\f4e8", + "pie-chart": "\f4e9", + "pin-angle-fill": "\f4ea", + "pin-angle": "\f4eb", + "pin-fill": "\f4ec", + "pin": "\f4ed", + "pip-fill": "\f4ee", + "pip": "\f4ef", + "play-btn-fill": "\f4f0", + "play-btn": "\f4f1", + "play-circle-fill": "\f4f2", + "play-circle": "\f4f3", + "play-fill": "\f4f4", + "play": "\f4f5", + "plug-fill": "\f4f6", + "plug": "\f4f7", + "plus-circle-dotted": "\f4f8", + "plus-circle-fill": "\f4f9", + "plus-circle": "\f4fa", + "plus-square-dotted": "\f4fb", + "plus-square-fill": "\f4fc", + "plus-square": "\f4fd", + "plus": "\f4fe", + "power": "\f4ff", + "printer-fill": "\f500", + "printer": "\f501", + "puzzle-fill": "\f502", + "puzzle": "\f503", + "question-circle-fill": "\f504", + "question-circle": "\f505", + "question-diamond-fill": "\f506", + "question-diamond": "\f507", + "question-octagon-fill": "\f508", + "question-octagon": "\f509", + "question-square-fill": "\f50a", + "question-square": "\f50b", + "question": "\f50c", + "rainbow": "\f50d", + "receipt-cutoff": "\f50e", + "receipt": "\f50f", + "reception-0": "\f510", + "reception-1": "\f511", + "reception-2": "\f512", + "reception-3": "\f513", + "reception-4": "\f514", + "record-btn-fill": "\f515", + "record-btn": "\f516", + "record-circle-fill": "\f517", + "record-circle": "\f518", + "record-fill": "\f519", + "record": "\f51a", + "record2-fill": "\f51b", + "record2": "\f51c", + "reply-all-fill": "\f51d", + "reply-all": "\f51e", + "reply-fill": "\f51f", + "reply": "\f520", + "rss-fill": "\f521", + "rss": "\f522", + "rulers": "\f523", + "save-fill": "\f524", + "save": "\f525", + "save2-fill": "\f526", + "save2": "\f527", + "scissors": "\f528", + "screwdriver": "\f529", + "search": "\f52a", + "segmented-nav": "\f52b", + "server": "\f52c", + "share-fill": "\f52d", + "share": "\f52e", + "shield-check": "\f52f", + "shield-exclamation": "\f530", + "shield-fill-check": "\f531", + "shield-fill-exclamation": "\f532", + "shield-fill-minus": "\f533", + "shield-fill-plus": "\f534", + "shield-fill-x": "\f535", + "shield-fill": "\f536", + "shield-lock-fill": "\f537", + "shield-lock": "\f538", + "shield-minus": "\f539", + "shield-plus": "\f53a", + "shield-shaded": "\f53b", + "shield-slash-fill": "\f53c", + "shield-slash": "\f53d", + "shield-x": "\f53e", + "shield": "\f53f", + "shift-fill": "\f540", + "shift": "\f541", + "shop-window": "\f542", + "shop": "\f543", + "shuffle": "\f544", + "signpost-2-fill": "\f545", + "signpost-2": "\f546", + "signpost-fill": "\f547", + "signpost-split-fill": "\f548", + "signpost-split": "\f549", + "signpost": "\f54a", + "sim-fill": "\f54b", + "sim": "\f54c", + "skip-backward-btn-fill": "\f54d", + "skip-backward-btn": "\f54e", + "skip-backward-circle-fill": "\f54f", + "skip-backward-circle": "\f550", + "skip-backward-fill": "\f551", + "skip-backward": "\f552", + "skip-end-btn-fill": "\f553", + "skip-end-btn": "\f554", + "skip-end-circle-fill": "\f555", + "skip-end-circle": "\f556", + "skip-end-fill": "\f557", + "skip-end": "\f558", + "skip-forward-btn-fill": "\f559", + "skip-forward-btn": "\f55a", + "skip-forward-circle-fill": "\f55b", + "skip-forward-circle": "\f55c", + "skip-forward-fill": "\f55d", + "skip-forward": "\f55e", + "skip-start-btn-fill": "\f55f", + "skip-start-btn": "\f560", + "skip-start-circle-fill": "\f561", + "skip-start-circle": "\f562", + "skip-start-fill": "\f563", + "skip-start": "\f564", + "slack": "\f565", + "slash-circle-fill": "\f566", + "slash-circle": "\f567", + "slash-square-fill": "\f568", + "slash-square": "\f569", + "slash": "\f56a", + "sliders": "\f56b", + "smartwatch": "\f56c", + "snow": "\f56d", + "snow2": "\f56e", + "snow3": "\f56f", + "sort-alpha-down-alt": "\f570", + "sort-alpha-down": "\f571", + "sort-alpha-up-alt": "\f572", + "sort-alpha-up": "\f573", + "sort-down-alt": "\f574", + "sort-down": "\f575", + "sort-numeric-down-alt": "\f576", + "sort-numeric-down": "\f577", + "sort-numeric-up-alt": "\f578", + "sort-numeric-up": "\f579", + "sort-up-alt": "\f57a", + "sort-up": "\f57b", + "soundwave": "\f57c", + "speaker-fill": "\f57d", + "speaker": "\f57e", + "speedometer": "\f57f", + "speedometer2": "\f580", + "spellcheck": "\f581", + "square-fill": "\f582", + "square-half": "\f583", + "square": "\f584", + "stack": "\f585", + "star-fill": "\f586", + "star-half": "\f587", + "star": "\f588", + "stars": "\f589", + "stickies-fill": "\f58a", + "stickies": "\f58b", + "sticky-fill": "\f58c", + "sticky": "\f58d", + "stop-btn-fill": "\f58e", + "stop-btn": "\f58f", + "stop-circle-fill": "\f590", + "stop-circle": "\f591", + "stop-fill": "\f592", + "stop": "\f593", + "stoplights-fill": "\f594", + "stoplights": "\f595", + "stopwatch-fill": "\f596", + "stopwatch": "\f597", + "subtract": "\f598", + "suit-club-fill": "\f599", + "suit-club": "\f59a", + "suit-diamond-fill": "\f59b", + "suit-diamond": "\f59c", + "suit-heart-fill": "\f59d", + "suit-heart": "\f59e", + "suit-spade-fill": "\f59f", + "suit-spade": "\f5a0", + "sun-fill": "\f5a1", + "sun": "\f5a2", + "sunglasses": "\f5a3", + "sunrise-fill": "\f5a4", + "sunrise": "\f5a5", + "sunset-fill": "\f5a6", + "sunset": "\f5a7", + "symmetry-horizontal": "\f5a8", + "symmetry-vertical": "\f5a9", + "table": "\f5aa", + "tablet-fill": "\f5ab", + "tablet-landscape-fill": "\f5ac", + "tablet-landscape": "\f5ad", + "tablet": "\f5ae", + "tag-fill": "\f5af", + "tag": "\f5b0", + "tags-fill": "\f5b1", + "tags": "\f5b2", + "telegram": "\f5b3", + "telephone-fill": "\f5b4", + "telephone-forward-fill": "\f5b5", + "telephone-forward": "\f5b6", + "telephone-inbound-fill": "\f5b7", + "telephone-inbound": "\f5b8", + "telephone-minus-fill": "\f5b9", + "telephone-minus": "\f5ba", + "telephone-outbound-fill": "\f5bb", + "telephone-outbound": "\f5bc", + "telephone-plus-fill": "\f5bd", + "telephone-plus": "\f5be", + "telephone-x-fill": "\f5bf", + "telephone-x": "\f5c0", + "telephone": "\f5c1", + "terminal-fill": "\f5c2", + "terminal": "\f5c3", + "text-center": "\f5c4", + "text-indent-left": "\f5c5", + "text-indent-right": "\f5c6", + "text-left": "\f5c7", + "text-paragraph": "\f5c8", + "text-right": "\f5c9", + "textarea-resize": "\f5ca", + "textarea-t": "\f5cb", + "textarea": "\f5cc", + "thermometer-half": "\f5cd", + "thermometer-high": "\f5ce", + "thermometer-low": "\f5cf", + "thermometer-snow": "\f5d0", + "thermometer-sun": "\f5d1", + "thermometer": "\f5d2", + "three-dots-vertical": "\f5d3", + "three-dots": "\f5d4", + "toggle-off": "\f5d5", + "toggle-on": "\f5d6", + "toggle2-off": "\f5d7", + "toggle2-on": "\f5d8", + "toggles": "\f5d9", + "toggles2": "\f5da", + "tools": "\f5db", + "tornado": "\f5dc", + "trash-fill": "\f5dd", + "trash": "\f5de", + "trash2-fill": "\f5df", + "trash2": "\f5e0", + "tree-fill": "\f5e1", + "tree": "\f5e2", + "triangle-fill": "\f5e3", + "triangle-half": "\f5e4", + "triangle": "\f5e5", + "trophy-fill": "\f5e6", + "trophy": "\f5e7", + "tropical-storm": "\f5e8", + "truck-flatbed": "\f5e9", + "truck": "\f5ea", + "tsunami": "\f5eb", + "tv-fill": "\f5ec", + "tv": "\f5ed", + "twitch": "\f5ee", + "twitter": "\f5ef", + "type-bold": "\f5f0", + "type-h1": "\f5f1", + "type-h2": "\f5f2", + "type-h3": "\f5f3", + "type-italic": "\f5f4", + "type-strikethrough": "\f5f5", + "type-underline": "\f5f6", + "type": "\f5f7", + "ui-checks-grid": "\f5f8", + "ui-checks": "\f5f9", + "ui-radios-grid": "\f5fa", + "ui-radios": "\f5fb", + "umbrella-fill": "\f5fc", + "umbrella": "\f5fd", + "union": "\f5fe", + "unlock-fill": "\f5ff", + "unlock": "\f600", + "upc-scan": "\f601", + "upc": "\f602", + "upload": "\f603", + "vector-pen": "\f604", + "view-list": "\f605", + "view-stacked": "\f606", + "vinyl-fill": "\f607", + "vinyl": "\f608", + "voicemail": "\f609", + "volume-down-fill": "\f60a", + "volume-down": "\f60b", + "volume-mute-fill": "\f60c", + "volume-mute": "\f60d", + "volume-off-fill": "\f60e", + "volume-off": "\f60f", + "volume-up-fill": "\f610", + "volume-up": "\f611", + "vr": "\f612", + "wallet-fill": "\f613", + "wallet": "\f614", + "wallet2": "\f615", + "watch": "\f616", + "water": "\f617", + "whatsapp": "\f618", + "wifi-1": "\f619", + "wifi-2": "\f61a", + "wifi-off": "\f61b", + "wifi": "\f61c", + "wind": "\f61d", + "window-dock": "\f61e", + "window-sidebar": "\f61f", + "window": "\f620", + "wrench": "\f621", + "x-circle-fill": "\f622", + "x-circle": "\f623", + "x-diamond-fill": "\f624", + "x-diamond": "\f625", + "x-octagon-fill": "\f626", + "x-octagon": "\f627", + "x-square-fill": "\f628", + "x-square": "\f629", + "x": "\f62a", + "youtube": "\f62b", + "zoom-in": "\f62c", + "zoom-out": "\f62d", + "bank": "\f62e", + "bank2": "\f62f", + "bell-slash-fill": "\f630", + "bell-slash": "\f631", + "cash-coin": "\f632", + "check-lg": "\f633", + "coin": "\f634", + "currency-bitcoin": "\f635", + "currency-dollar": "\f636", + "currency-euro": "\f637", + "currency-exchange": "\f638", + "currency-pound": "\f639", + "currency-yen": "\f63a", + "dash-lg": "\f63b", + "exclamation-lg": "\f63c", + "file-earmark-pdf-fill": "\f63d", + "file-earmark-pdf": "\f63e", + "file-pdf-fill": "\f63f", + "file-pdf": "\f640", + "gender-ambiguous": "\f641", + "gender-female": "\f642", + "gender-male": "\f643", + "gender-trans": "\f644", + "headset-vr": "\f645", + "info-lg": "\f646", + "mastodon": "\f647", + "messenger": "\f648", + "piggy-bank-fill": "\f649", + "piggy-bank": "\f64a", + "pin-map-fill": "\f64b", + "pin-map": "\f64c", + "plus-lg": "\f64d", + "question-lg": "\f64e", + "recycle": "\f64f", + "reddit": "\f650", + "safe-fill": "\f651", + "safe2-fill": "\f652", + "safe2": "\f653", + "sd-card-fill": "\f654", + "sd-card": "\f655", + "skype": "\f656", + "slash-lg": "\f657", + "translate": "\f658", + "x-lg": "\f659", + "safe": "\f65a", + "apple": "\f65b", + "microsoft": "\f65d", + "windows": "\f65e", + "behance": "\f65c", + "dribbble": "\f65f", + "line": "\f660", + "medium": "\f661", + "paypal": "\f662", + "pinterest": "\f663", + "signal": "\f664", + "snapchat": "\f665", + "spotify": "\f666", + "stack-overflow": "\f667", + "strava": "\f668", + "wordpress": "\f669", + "vimeo": "\f66a", + "activity": "\f66b", + "easel2-fill": "\f66c", + "easel2": "\f66d", + "easel3-fill": "\f66e", + "easel3": "\f66f", + "fan": "\f670", + "fingerprint": "\f671", + "graph-down-arrow": "\f672", + "graph-up-arrow": "\f673", + "hypnotize": "\f674", + "magic": "\f675", + "person-rolodex": "\f676", + "person-video": "\f677", + "person-video2": "\f678", + "person-video3": "\f679", + "person-workspace": "\f67a", + "radioactive": "\f67b", + "webcam-fill": "\f67c", + "webcam": "\f67d", + "yin-yang": "\f67e", + "bandaid-fill": "\f680", + "bandaid": "\f681", + "bluetooth": "\f682", + "body-text": "\f683", + "boombox": "\f684", + "boxes": "\f685", + "dpad-fill": "\f686", + "dpad": "\f687", + "ear-fill": "\f688", + "ear": "\f689", + "envelope-check-1": "\f68a", + "envelope-check-fill": "\f68b", + "envelope-check": "\f68c", + "envelope-dash-1": "\f68d", + "envelope-dash-fill": "\f68e", + "envelope-dash": "\f68f", + "envelope-exclamation-1": "\f690", + "envelope-exclamation-fill": "\f691", + "envelope-exclamation": "\f692", + "envelope-plus-fill": "\f693", + "envelope-plus": "\f694", + "envelope-slash-1": "\f695", + "envelope-slash-fill": "\f696", + "envelope-slash": "\f697", + "envelope-x-1": "\f698", + "envelope-x-fill": "\f699", + "envelope-x": "\f69a", + "explicit-fill": "\f69b", + "explicit": "\f69c", + "git": "\f69d", + "infinity": "\f69e", + "list-columns-reverse": "\f69f", + "list-columns": "\f6a0", + "meta": "\f6a1", + "mortorboard-fill": "\f6a2", + "mortorboard": "\f6a3", + "nintendo-switch": "\f6a4", + "pc-display-horizontal": "\f6a5", + "pc-display": "\f6a6", + "pc-horizontal": "\f6a7", + "pc": "\f6a8", + "playstation": "\f6a9", + "plus-slash-minus": "\f6aa", + "projector-fill": "\f6ab", + "projector": "\f6ac", + "qr-code-scan": "\f6ad", + "qr-code": "\f6ae", + "quora": "\f6af", + "quote": "\f6b0", + "robot": "\f6b1", + "send-check-fill": "\f6b2", + "send-check": "\f6b3", + "send-dash-fill": "\f6b4", + "send-dash": "\f6b5", + "send-exclamation-1": "\f6b6", + "send-exclamation-fill": "\f6b7", + "send-exclamation": "\f6b8", + "send-fill": "\f6b9", + "send-plus-fill": "\f6ba", + "send-plus": "\f6bb", + "send-slash-fill": "\f6bc", + "send-slash": "\f6bd", + "send-x-fill": "\f6be", + "send-x": "\f6bf", + "send": "\f6c0", + "steam": "\f6c1", + "terminal-dash-1": "\f6c2", + "terminal-dash": "\f6c3", + "terminal-plus": "\f6c4", + "terminal-split": "\f6c5", + "ticket-detailed-fill": "\f6c6", + "ticket-detailed": "\f6c7", + "ticket-fill": "\f6c8", + "ticket-perforated-fill": "\f6c9", + "ticket-perforated": "\f6ca", + "ticket": "\f6cb", + "tiktok": "\f6cc", + "window-dash": "\f6cd", + "window-desktop": "\f6ce", + "window-fullscreen": "\f6cf", + "window-plus": "\f6d0", + "window-split": "\f6d1", + "window-stack": "\f6d2", + "window-x": "\f6d3", + "xbox": "\f6d4", + "ethernet": "\f6d5", + "hdmi-fill": "\f6d6", + "hdmi": "\f6d7", + "usb-c-fill": "\f6d8", + "usb-c": "\f6d9", + "usb-fill": "\f6da", + "usb-plug-fill": "\f6db", + "usb-plug": "\f6dc", + "usb-symbol": "\f6dd", + "usb": "\f6de", + "boombox-fill": "\f6df", + "displayport-1": "\f6e0", + "displayport": "\f6e1", + "gpu-card": "\f6e2", + "memory": "\f6e3", + "modem-fill": "\f6e4", + "modem": "\f6e5", + "motherboard-fill": "\f6e6", + "motherboard": "\f6e7", + "optical-audio-fill": "\f6e8", + "optical-audio": "\f6e9", + "pci-card": "\f6ea", + "router-fill": "\f6eb", + "router": "\f6ec", + "ssd-fill": "\f6ed", + "ssd": "\f6ee", + "thunderbolt-fill": "\f6ef", + "thunderbolt": "\f6f0", + "usb-drive-fill": "\f6f1", + "usb-drive": "\f6f2", + "usb-micro-fill": "\f6f3", + "usb-micro": "\f6f4", + "usb-mini-fill": "\f6f5", + "usb-mini": "\f6f6", + "cloud-haze2": "\f6f7", + "device-hdd-fill": "\f6f8", + "device-hdd": "\f6f9", + "device-ssd-fill": "\f6fa", + "device-ssd": "\f6fb", + "displayport-fill": "\f6fc", + "mortarboard-fill": "\f6fd", + "mortarboard": "\f6fe", + "terminal-x": "\f6ff", + "arrow-through-heart-fill": "\f700", + "arrow-through-heart": "\f701", + "badge-sd-fill": "\f702", + "badge-sd": "\f703", + "bag-heart-fill": "\f704", + "bag-heart": "\f705", + "balloon-fill": "\f706", + "balloon-heart-fill": "\f707", + "balloon-heart": "\f708", + "balloon": "\f709", + "box2-fill": "\f70a", + "box2-heart-fill": "\f70b", + "box2-heart": "\f70c", + "box2": "\f70d", + "braces-asterisk": "\f70e", + "calendar-heart-fill": "\f70f", + "calendar-heart": "\f710", + "calendar2-heart-fill": "\f711", + "calendar2-heart": "\f712", + "chat-heart-fill": "\f713", + "chat-heart": "\f714", + "chat-left-heart-fill": "\f715", + "chat-left-heart": "\f716", + "chat-right-heart-fill": "\f717", + "chat-right-heart": "\f718", + "chat-square-heart-fill": "\f719", + "chat-square-heart": "\f71a", + "clipboard-check-fill": "\f71b", + "clipboard-data-fill": "\f71c", + "clipboard-fill": "\f71d", + "clipboard-heart-fill": "\f71e", + "clipboard-heart": "\f71f", + "clipboard-minus-fill": "\f720", + "clipboard-plus-fill": "\f721", + "clipboard-pulse": "\f722", + "clipboard-x-fill": "\f723", + "clipboard2-check-fill": "\f724", + "clipboard2-check": "\f725", + "clipboard2-data-fill": "\f726", + "clipboard2-data": "\f727", + "clipboard2-fill": "\f728", + "clipboard2-heart-fill": "\f729", + "clipboard2-heart": "\f72a", + "clipboard2-minus-fill": "\f72b", + "clipboard2-minus": "\f72c", + "clipboard2-plus-fill": "\f72d", + "clipboard2-plus": "\f72e", + "clipboard2-pulse-fill": "\f72f", + "clipboard2-pulse": "\f730", + "clipboard2-x-fill": "\f731", + "clipboard2-x": "\f732", + "clipboard2": "\f733", + "emoji-kiss-fill": "\f734", + "emoji-kiss": "\f735", + "envelope-heart-fill": "\f736", + "envelope-heart": "\f737", + "envelope-open-heart-fill": "\f738", + "envelope-open-heart": "\f739", + "envelope-paper-fill": "\f73a", + "envelope-paper-heart-fill": "\f73b", + "envelope-paper-heart": "\f73c", + "envelope-paper": "\f73d", + "filetype-aac": "\f73e", + "filetype-ai": "\f73f", + "filetype-bmp": "\f740", + "filetype-cs": "\f741", + "filetype-css": "\f742", + "filetype-csv": "\f743", + "filetype-doc": "\f744", + "filetype-docx": "\f745", + "filetype-exe": "\f746", + "filetype-gif": "\f747", + "filetype-heic": "\f748", + "filetype-html": "\f749", + "filetype-java": "\f74a", + "filetype-jpg": "\f74b", + "filetype-js": "\f74c", + "filetype-jsx": "\f74d", + "filetype-key": "\f74e", + "filetype-m4p": "\f74f", + "filetype-md": "\f750", + "filetype-mdx": "\f751", + "filetype-mov": "\f752", + "filetype-mp3": "\f753", + "filetype-mp4": "\f754", + "filetype-otf": "\f755", + "filetype-pdf": "\f756", + "filetype-php": "\f757", + "filetype-png": "\f758", + "filetype-ppt-1": "\f759", + "filetype-ppt": "\f75a", + "filetype-psd": "\f75b", + "filetype-py": "\f75c", + "filetype-raw": "\f75d", + "filetype-rb": "\f75e", + "filetype-sass": "\f75f", + "filetype-scss": "\f760", + "filetype-sh": "\f761", + "filetype-svg": "\f762", + "filetype-tiff": "\f763", + "filetype-tsx": "\f764", + "filetype-ttf": "\f765", + "filetype-txt": "\f766", + "filetype-wav": "\f767", + "filetype-woff": "\f768", + "filetype-xls-1": "\f769", + "filetype-xls": "\f76a", + "filetype-xml": "\f76b", + "filetype-yml": "\f76c", + "heart-arrow": "\f76d", + "heart-pulse-fill": "\f76e", + "heart-pulse": "\f76f", + "heartbreak-fill": "\f770", + "heartbreak": "\f771", + "hearts": "\f772", + "hospital-fill": "\f773", + "hospital": "\f774", + "house-heart-fill": "\f775", + "house-heart": "\f776", + "incognito": "\f777", + "magnet-fill": "\f778", + "magnet": "\f779", + "person-heart": "\f77a", + "person-hearts": "\f77b", + "phone-flip": "\f77c", + "plugin": "\f77d", + "postage-fill": "\f77e", + "postage-heart-fill": "\f77f", + "postage-heart": "\f780", + "postage": "\f781", + "postcard-fill": "\f782", + "postcard-heart-fill": "\f783", + "postcard-heart": "\f784", + "postcard": "\f785", + "search-heart-fill": "\f786", + "search-heart": "\f787", + "sliders2-vertical": "\f788", + "sliders2": "\f789", + "trash3-fill": "\f78a", + "trash3": "\f78b", + "valentine": "\f78c", + "valentine2": "\f78d", + "wrench-adjustable-circle-fill": "\f78e", + "wrench-adjustable-circle": "\f78f", + "wrench-adjustable": "\f790", + "filetype-json": "\f791", + "filetype-pptx": "\f792", + "filetype-xlsx": "\f793", +); + +.bi-123::before { content: map-get($bootstrap-icons-map, "123"); } +.bi-alarm-fill::before { content: map-get($bootstrap-icons-map, "alarm-fill"); } +.bi-alarm::before { content: map-get($bootstrap-icons-map, "alarm"); } +.bi-align-bottom::before { content: map-get($bootstrap-icons-map, "align-bottom"); } +.bi-align-center::before { content: map-get($bootstrap-icons-map, "align-center"); } +.bi-align-end::before { content: map-get($bootstrap-icons-map, "align-end"); } +.bi-align-middle::before { content: map-get($bootstrap-icons-map, "align-middle"); } +.bi-align-start::before { content: map-get($bootstrap-icons-map, "align-start"); } +.bi-align-top::before { content: map-get($bootstrap-icons-map, "align-top"); } +.bi-alt::before { content: map-get($bootstrap-icons-map, "alt"); } +.bi-app-indicator::before { content: map-get($bootstrap-icons-map, "app-indicator"); } +.bi-app::before { content: map-get($bootstrap-icons-map, "app"); } +.bi-archive-fill::before { content: map-get($bootstrap-icons-map, "archive-fill"); } +.bi-archive::before { content: map-get($bootstrap-icons-map, "archive"); } +.bi-arrow-90deg-down::before { content: map-get($bootstrap-icons-map, "arrow-90deg-down"); } +.bi-arrow-90deg-left::before { content: map-get($bootstrap-icons-map, "arrow-90deg-left"); } +.bi-arrow-90deg-right::before { content: map-get($bootstrap-icons-map, "arrow-90deg-right"); } +.bi-arrow-90deg-up::before { content: map-get($bootstrap-icons-map, "arrow-90deg-up"); } +.bi-arrow-bar-down::before { content: map-get($bootstrap-icons-map, "arrow-bar-down"); } +.bi-arrow-bar-left::before { content: map-get($bootstrap-icons-map, "arrow-bar-left"); } +.bi-arrow-bar-right::before { content: map-get($bootstrap-icons-map, "arrow-bar-right"); } +.bi-arrow-bar-up::before { content: map-get($bootstrap-icons-map, "arrow-bar-up"); } +.bi-arrow-clockwise::before { content: map-get($bootstrap-icons-map, "arrow-clockwise"); } +.bi-arrow-counterclockwise::before { content: map-get($bootstrap-icons-map, "arrow-counterclockwise"); } +.bi-arrow-down-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-circle-fill"); } +.bi-arrow-down-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-circle"); } +.bi-arrow-down-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-left-circle-fill"); } +.bi-arrow-down-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-left-circle"); } +.bi-arrow-down-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-left-square-fill"); } +.bi-arrow-down-left-square::before { content: map-get($bootstrap-icons-map, "arrow-down-left-square"); } +.bi-arrow-down-left::before { content: map-get($bootstrap-icons-map, "arrow-down-left"); } +.bi-arrow-down-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-right-circle-fill"); } +.bi-arrow-down-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-down-right-circle"); } +.bi-arrow-down-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-right-square-fill"); } +.bi-arrow-down-right-square::before { content: map-get($bootstrap-icons-map, "arrow-down-right-square"); } +.bi-arrow-down-right::before { content: map-get($bootstrap-icons-map, "arrow-down-right"); } +.bi-arrow-down-short::before { content: map-get($bootstrap-icons-map, "arrow-down-short"); } +.bi-arrow-down-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-down-square-fill"); } +.bi-arrow-down-square::before { content: map-get($bootstrap-icons-map, "arrow-down-square"); } +.bi-arrow-down-up::before { content: map-get($bootstrap-icons-map, "arrow-down-up"); } +.bi-arrow-down::before { content: map-get($bootstrap-icons-map, "arrow-down"); } +.bi-arrow-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-left-circle-fill"); } +.bi-arrow-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-left-circle"); } +.bi-arrow-left-right::before { content: map-get($bootstrap-icons-map, "arrow-left-right"); } +.bi-arrow-left-short::before { content: map-get($bootstrap-icons-map, "arrow-left-short"); } +.bi-arrow-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-left-square-fill"); } +.bi-arrow-left-square::before { content: map-get($bootstrap-icons-map, "arrow-left-square"); } +.bi-arrow-left::before { content: map-get($bootstrap-icons-map, "arrow-left"); } +.bi-arrow-repeat::before { content: map-get($bootstrap-icons-map, "arrow-repeat"); } +.bi-arrow-return-left::before { content: map-get($bootstrap-icons-map, "arrow-return-left"); } +.bi-arrow-return-right::before { content: map-get($bootstrap-icons-map, "arrow-return-right"); } +.bi-arrow-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-right-circle-fill"); } +.bi-arrow-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-right-circle"); } +.bi-arrow-right-short::before { content: map-get($bootstrap-icons-map, "arrow-right-short"); } +.bi-arrow-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-right-square-fill"); } +.bi-arrow-right-square::before { content: map-get($bootstrap-icons-map, "arrow-right-square"); } +.bi-arrow-right::before { content: map-get($bootstrap-icons-map, "arrow-right"); } +.bi-arrow-up-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-circle-fill"); } +.bi-arrow-up-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-circle"); } +.bi-arrow-up-left-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-left-circle-fill"); } +.bi-arrow-up-left-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-left-circle"); } +.bi-arrow-up-left-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-left-square-fill"); } +.bi-arrow-up-left-square::before { content: map-get($bootstrap-icons-map, "arrow-up-left-square"); } +.bi-arrow-up-left::before { content: map-get($bootstrap-icons-map, "arrow-up-left"); } +.bi-arrow-up-right-circle-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-right-circle-fill"); } +.bi-arrow-up-right-circle::before { content: map-get($bootstrap-icons-map, "arrow-up-right-circle"); } +.bi-arrow-up-right-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-right-square-fill"); } +.bi-arrow-up-right-square::before { content: map-get($bootstrap-icons-map, "arrow-up-right-square"); } +.bi-arrow-up-right::before { content: map-get($bootstrap-icons-map, "arrow-up-right"); } +.bi-arrow-up-short::before { content: map-get($bootstrap-icons-map, "arrow-up-short"); } +.bi-arrow-up-square-fill::before { content: map-get($bootstrap-icons-map, "arrow-up-square-fill"); } +.bi-arrow-up-square::before { content: map-get($bootstrap-icons-map, "arrow-up-square"); } +.bi-arrow-up::before { content: map-get($bootstrap-icons-map, "arrow-up"); } +.bi-arrows-angle-contract::before { content: map-get($bootstrap-icons-map, "arrows-angle-contract"); } +.bi-arrows-angle-expand::before { content: map-get($bootstrap-icons-map, "arrows-angle-expand"); } +.bi-arrows-collapse::before { content: map-get($bootstrap-icons-map, "arrows-collapse"); } +.bi-arrows-expand::before { content: map-get($bootstrap-icons-map, "arrows-expand"); } +.bi-arrows-fullscreen::before { content: map-get($bootstrap-icons-map, "arrows-fullscreen"); } +.bi-arrows-move::before { content: map-get($bootstrap-icons-map, "arrows-move"); } +.bi-aspect-ratio-fill::before { content: map-get($bootstrap-icons-map, "aspect-ratio-fill"); } +.bi-aspect-ratio::before { content: map-get($bootstrap-icons-map, "aspect-ratio"); } +.bi-asterisk::before { content: map-get($bootstrap-icons-map, "asterisk"); } +.bi-at::before { content: map-get($bootstrap-icons-map, "at"); } +.bi-award-fill::before { content: map-get($bootstrap-icons-map, "award-fill"); } +.bi-award::before { content: map-get($bootstrap-icons-map, "award"); } +.bi-back::before { content: map-get($bootstrap-icons-map, "back"); } +.bi-backspace-fill::before { content: map-get($bootstrap-icons-map, "backspace-fill"); } +.bi-backspace-reverse-fill::before { content: map-get($bootstrap-icons-map, "backspace-reverse-fill"); } +.bi-backspace-reverse::before { content: map-get($bootstrap-icons-map, "backspace-reverse"); } +.bi-backspace::before { content: map-get($bootstrap-icons-map, "backspace"); } +.bi-badge-3d-fill::before { content: map-get($bootstrap-icons-map, "badge-3d-fill"); } +.bi-badge-3d::before { content: map-get($bootstrap-icons-map, "badge-3d"); } +.bi-badge-4k-fill::before { content: map-get($bootstrap-icons-map, "badge-4k-fill"); } +.bi-badge-4k::before { content: map-get($bootstrap-icons-map, "badge-4k"); } +.bi-badge-8k-fill::before { content: map-get($bootstrap-icons-map, "badge-8k-fill"); } +.bi-badge-8k::before { content: map-get($bootstrap-icons-map, "badge-8k"); } +.bi-badge-ad-fill::before { content: map-get($bootstrap-icons-map, "badge-ad-fill"); } +.bi-badge-ad::before { content: map-get($bootstrap-icons-map, "badge-ad"); } +.bi-badge-ar-fill::before { content: map-get($bootstrap-icons-map, "badge-ar-fill"); } +.bi-badge-ar::before { content: map-get($bootstrap-icons-map, "badge-ar"); } +.bi-badge-cc-fill::before { content: map-get($bootstrap-icons-map, "badge-cc-fill"); } +.bi-badge-cc::before { content: map-get($bootstrap-icons-map, "badge-cc"); } +.bi-badge-hd-fill::before { content: map-get($bootstrap-icons-map, "badge-hd-fill"); } +.bi-badge-hd::before { content: map-get($bootstrap-icons-map, "badge-hd"); } +.bi-badge-tm-fill::before { content: map-get($bootstrap-icons-map, "badge-tm-fill"); } +.bi-badge-tm::before { content: map-get($bootstrap-icons-map, "badge-tm"); } +.bi-badge-vo-fill::before { content: map-get($bootstrap-icons-map, "badge-vo-fill"); } +.bi-badge-vo::before { content: map-get($bootstrap-icons-map, "badge-vo"); } +.bi-badge-vr-fill::before { content: map-get($bootstrap-icons-map, "badge-vr-fill"); } +.bi-badge-vr::before { content: map-get($bootstrap-icons-map, "badge-vr"); } +.bi-badge-wc-fill::before { content: map-get($bootstrap-icons-map, "badge-wc-fill"); } +.bi-badge-wc::before { content: map-get($bootstrap-icons-map, "badge-wc"); } +.bi-bag-check-fill::before { content: map-get($bootstrap-icons-map, "bag-check-fill"); } +.bi-bag-check::before { content: map-get($bootstrap-icons-map, "bag-check"); } +.bi-bag-dash-fill::before { content: map-get($bootstrap-icons-map, "bag-dash-fill"); } +.bi-bag-dash::before { content: map-get($bootstrap-icons-map, "bag-dash"); } +.bi-bag-fill::before { content: map-get($bootstrap-icons-map, "bag-fill"); } +.bi-bag-plus-fill::before { content: map-get($bootstrap-icons-map, "bag-plus-fill"); } +.bi-bag-plus::before { content: map-get($bootstrap-icons-map, "bag-plus"); } +.bi-bag-x-fill::before { content: map-get($bootstrap-icons-map, "bag-x-fill"); } +.bi-bag-x::before { content: map-get($bootstrap-icons-map, "bag-x"); } +.bi-bag::before { content: map-get($bootstrap-icons-map, "bag"); } +.bi-bar-chart-fill::before { content: map-get($bootstrap-icons-map, "bar-chart-fill"); } +.bi-bar-chart-line-fill::before { content: map-get($bootstrap-icons-map, "bar-chart-line-fill"); } +.bi-bar-chart-line::before { content: map-get($bootstrap-icons-map, "bar-chart-line"); } +.bi-bar-chart-steps::before { content: map-get($bootstrap-icons-map, "bar-chart-steps"); } +.bi-bar-chart::before { content: map-get($bootstrap-icons-map, "bar-chart"); } +.bi-basket-fill::before { content: map-get($bootstrap-icons-map, "basket-fill"); } +.bi-basket::before { content: map-get($bootstrap-icons-map, "basket"); } +.bi-basket2-fill::before { content: map-get($bootstrap-icons-map, "basket2-fill"); } +.bi-basket2::before { content: map-get($bootstrap-icons-map, "basket2"); } +.bi-basket3-fill::before { content: map-get($bootstrap-icons-map, "basket3-fill"); } +.bi-basket3::before { content: map-get($bootstrap-icons-map, "basket3"); } +.bi-battery-charging::before { content: map-get($bootstrap-icons-map, "battery-charging"); } +.bi-battery-full::before { content: map-get($bootstrap-icons-map, "battery-full"); } +.bi-battery-half::before { content: map-get($bootstrap-icons-map, "battery-half"); } +.bi-battery::before { content: map-get($bootstrap-icons-map, "battery"); } +.bi-bell-fill::before { content: map-get($bootstrap-icons-map, "bell-fill"); } +.bi-bell::before { content: map-get($bootstrap-icons-map, "bell"); } +.bi-bezier::before { content: map-get($bootstrap-icons-map, "bezier"); } +.bi-bezier2::before { content: map-get($bootstrap-icons-map, "bezier2"); } +.bi-bicycle::before { content: map-get($bootstrap-icons-map, "bicycle"); } +.bi-binoculars-fill::before { content: map-get($bootstrap-icons-map, "binoculars-fill"); } +.bi-binoculars::before { content: map-get($bootstrap-icons-map, "binoculars"); } +.bi-blockquote-left::before { content: map-get($bootstrap-icons-map, "blockquote-left"); } +.bi-blockquote-right::before { content: map-get($bootstrap-icons-map, "blockquote-right"); } +.bi-book-fill::before { content: map-get($bootstrap-icons-map, "book-fill"); } +.bi-book-half::before { content: map-get($bootstrap-icons-map, "book-half"); } +.bi-book::before { content: map-get($bootstrap-icons-map, "book"); } +.bi-bookmark-check-fill::before { content: map-get($bootstrap-icons-map, "bookmark-check-fill"); } +.bi-bookmark-check::before { content: map-get($bootstrap-icons-map, "bookmark-check"); } +.bi-bookmark-dash-fill::before { content: map-get($bootstrap-icons-map, "bookmark-dash-fill"); } +.bi-bookmark-dash::before { content: map-get($bootstrap-icons-map, "bookmark-dash"); } +.bi-bookmark-fill::before { content: map-get($bootstrap-icons-map, "bookmark-fill"); } +.bi-bookmark-heart-fill::before { content: map-get($bootstrap-icons-map, "bookmark-heart-fill"); } +.bi-bookmark-heart::before { content: map-get($bootstrap-icons-map, "bookmark-heart"); } +.bi-bookmark-plus-fill::before { content: map-get($bootstrap-icons-map, "bookmark-plus-fill"); } +.bi-bookmark-plus::before { content: map-get($bootstrap-icons-map, "bookmark-plus"); } +.bi-bookmark-star-fill::before { content: map-get($bootstrap-icons-map, "bookmark-star-fill"); } +.bi-bookmark-star::before { content: map-get($bootstrap-icons-map, "bookmark-star"); } +.bi-bookmark-x-fill::before { content: map-get($bootstrap-icons-map, "bookmark-x-fill"); } +.bi-bookmark-x::before { content: map-get($bootstrap-icons-map, "bookmark-x"); } +.bi-bookmark::before { content: map-get($bootstrap-icons-map, "bookmark"); } +.bi-bookmarks-fill::before { content: map-get($bootstrap-icons-map, "bookmarks-fill"); } +.bi-bookmarks::before { content: map-get($bootstrap-icons-map, "bookmarks"); } +.bi-bookshelf::before { content: map-get($bootstrap-icons-map, "bookshelf"); } +.bi-bootstrap-fill::before { content: map-get($bootstrap-icons-map, "bootstrap-fill"); } +.bi-bootstrap-reboot::before { content: map-get($bootstrap-icons-map, "bootstrap-reboot"); } +.bi-bootstrap::before { content: map-get($bootstrap-icons-map, "bootstrap"); } +.bi-border-all::before { content: map-get($bootstrap-icons-map, "border-all"); } +.bi-border-bottom::before { content: map-get($bootstrap-icons-map, "border-bottom"); } +.bi-border-center::before { content: map-get($bootstrap-icons-map, "border-center"); } +.bi-border-inner::before { content: map-get($bootstrap-icons-map, "border-inner"); } +.bi-border-left::before { content: map-get($bootstrap-icons-map, "border-left"); } +.bi-border-middle::before { content: map-get($bootstrap-icons-map, "border-middle"); } +.bi-border-outer::before { content: map-get($bootstrap-icons-map, "border-outer"); } +.bi-border-right::before { content: map-get($bootstrap-icons-map, "border-right"); } +.bi-border-style::before { content: map-get($bootstrap-icons-map, "border-style"); } +.bi-border-top::before { content: map-get($bootstrap-icons-map, "border-top"); } +.bi-border-width::before { content: map-get($bootstrap-icons-map, "border-width"); } +.bi-border::before { content: map-get($bootstrap-icons-map, "border"); } +.bi-bounding-box-circles::before { content: map-get($bootstrap-icons-map, "bounding-box-circles"); } +.bi-bounding-box::before { content: map-get($bootstrap-icons-map, "bounding-box"); } +.bi-box-arrow-down-left::before { content: map-get($bootstrap-icons-map, "box-arrow-down-left"); } +.bi-box-arrow-down-right::before { content: map-get($bootstrap-icons-map, "box-arrow-down-right"); } +.bi-box-arrow-down::before { content: map-get($bootstrap-icons-map, "box-arrow-down"); } +.bi-box-arrow-in-down-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down-left"); } +.bi-box-arrow-in-down-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down-right"); } +.bi-box-arrow-in-down::before { content: map-get($bootstrap-icons-map, "box-arrow-in-down"); } +.bi-box-arrow-in-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-left"); } +.bi-box-arrow-in-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-right"); } +.bi-box-arrow-in-up-left::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up-left"); } +.bi-box-arrow-in-up-right::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up-right"); } +.bi-box-arrow-in-up::before { content: map-get($bootstrap-icons-map, "box-arrow-in-up"); } +.bi-box-arrow-left::before { content: map-get($bootstrap-icons-map, "box-arrow-left"); } +.bi-box-arrow-right::before { content: map-get($bootstrap-icons-map, "box-arrow-right"); } +.bi-box-arrow-up-left::before { content: map-get($bootstrap-icons-map, "box-arrow-up-left"); } +.bi-box-arrow-up-right::before { content: map-get($bootstrap-icons-map, "box-arrow-up-right"); } +.bi-box-arrow-up::before { content: map-get($bootstrap-icons-map, "box-arrow-up"); } +.bi-box-seam::before { content: map-get($bootstrap-icons-map, "box-seam"); } +.bi-box::before { content: map-get($bootstrap-icons-map, "box"); } +.bi-braces::before { content: map-get($bootstrap-icons-map, "braces"); } +.bi-bricks::before { content: map-get($bootstrap-icons-map, "bricks"); } +.bi-briefcase-fill::before { content: map-get($bootstrap-icons-map, "briefcase-fill"); } +.bi-briefcase::before { content: map-get($bootstrap-icons-map, "briefcase"); } +.bi-brightness-alt-high-fill::before { content: map-get($bootstrap-icons-map, "brightness-alt-high-fill"); } +.bi-brightness-alt-high::before { content: map-get($bootstrap-icons-map, "brightness-alt-high"); } +.bi-brightness-alt-low-fill::before { content: map-get($bootstrap-icons-map, "brightness-alt-low-fill"); } +.bi-brightness-alt-low::before { content: map-get($bootstrap-icons-map, "brightness-alt-low"); } +.bi-brightness-high-fill::before { content: map-get($bootstrap-icons-map, "brightness-high-fill"); } +.bi-brightness-high::before { content: map-get($bootstrap-icons-map, "brightness-high"); } +.bi-brightness-low-fill::before { content: map-get($bootstrap-icons-map, "brightness-low-fill"); } +.bi-brightness-low::before { content: map-get($bootstrap-icons-map, "brightness-low"); } +.bi-broadcast-pin::before { content: map-get($bootstrap-icons-map, "broadcast-pin"); } +.bi-broadcast::before { content: map-get($bootstrap-icons-map, "broadcast"); } +.bi-brush-fill::before { content: map-get($bootstrap-icons-map, "brush-fill"); } +.bi-brush::before { content: map-get($bootstrap-icons-map, "brush"); } +.bi-bucket-fill::before { content: map-get($bootstrap-icons-map, "bucket-fill"); } +.bi-bucket::before { content: map-get($bootstrap-icons-map, "bucket"); } +.bi-bug-fill::before { content: map-get($bootstrap-icons-map, "bug-fill"); } +.bi-bug::before { content: map-get($bootstrap-icons-map, "bug"); } +.bi-building::before { content: map-get($bootstrap-icons-map, "building"); } +.bi-bullseye::before { content: map-get($bootstrap-icons-map, "bullseye"); } +.bi-calculator-fill::before { content: map-get($bootstrap-icons-map, "calculator-fill"); } +.bi-calculator::before { content: map-get($bootstrap-icons-map, "calculator"); } +.bi-calendar-check-fill::before { content: map-get($bootstrap-icons-map, "calendar-check-fill"); } +.bi-calendar-check::before { content: map-get($bootstrap-icons-map, "calendar-check"); } +.bi-calendar-date-fill::before { content: map-get($bootstrap-icons-map, "calendar-date-fill"); } +.bi-calendar-date::before { content: map-get($bootstrap-icons-map, "calendar-date"); } +.bi-calendar-day-fill::before { content: map-get($bootstrap-icons-map, "calendar-day-fill"); } +.bi-calendar-day::before { content: map-get($bootstrap-icons-map, "calendar-day"); } +.bi-calendar-event-fill::before { content: map-get($bootstrap-icons-map, "calendar-event-fill"); } +.bi-calendar-event::before { content: map-get($bootstrap-icons-map, "calendar-event"); } +.bi-calendar-fill::before { content: map-get($bootstrap-icons-map, "calendar-fill"); } +.bi-calendar-minus-fill::before { content: map-get($bootstrap-icons-map, "calendar-minus-fill"); } +.bi-calendar-minus::before { content: map-get($bootstrap-icons-map, "calendar-minus"); } +.bi-calendar-month-fill::before { content: map-get($bootstrap-icons-map, "calendar-month-fill"); } +.bi-calendar-month::before { content: map-get($bootstrap-icons-map, "calendar-month"); } +.bi-calendar-plus-fill::before { content: map-get($bootstrap-icons-map, "calendar-plus-fill"); } +.bi-calendar-plus::before { content: map-get($bootstrap-icons-map, "calendar-plus"); } +.bi-calendar-range-fill::before { content: map-get($bootstrap-icons-map, "calendar-range-fill"); } +.bi-calendar-range::before { content: map-get($bootstrap-icons-map, "calendar-range"); } +.bi-calendar-week-fill::before { content: map-get($bootstrap-icons-map, "calendar-week-fill"); } +.bi-calendar-week::before { content: map-get($bootstrap-icons-map, "calendar-week"); } +.bi-calendar-x-fill::before { content: map-get($bootstrap-icons-map, "calendar-x-fill"); } +.bi-calendar-x::before { content: map-get($bootstrap-icons-map, "calendar-x"); } +.bi-calendar::before { content: map-get($bootstrap-icons-map, "calendar"); } +.bi-calendar2-check-fill::before { content: map-get($bootstrap-icons-map, "calendar2-check-fill"); } +.bi-calendar2-check::before { content: map-get($bootstrap-icons-map, "calendar2-check"); } +.bi-calendar2-date-fill::before { content: map-get($bootstrap-icons-map, "calendar2-date-fill"); } +.bi-calendar2-date::before { content: map-get($bootstrap-icons-map, "calendar2-date"); } +.bi-calendar2-day-fill::before { content: map-get($bootstrap-icons-map, "calendar2-day-fill"); } +.bi-calendar2-day::before { content: map-get($bootstrap-icons-map, "calendar2-day"); } +.bi-calendar2-event-fill::before { content: map-get($bootstrap-icons-map, "calendar2-event-fill"); } +.bi-calendar2-event::before { content: map-get($bootstrap-icons-map, "calendar2-event"); } +.bi-calendar2-fill::before { content: map-get($bootstrap-icons-map, "calendar2-fill"); } +.bi-calendar2-minus-fill::before { content: map-get($bootstrap-icons-map, "calendar2-minus-fill"); } +.bi-calendar2-minus::before { content: map-get($bootstrap-icons-map, "calendar2-minus"); } +.bi-calendar2-month-fill::before { content: map-get($bootstrap-icons-map, "calendar2-month-fill"); } +.bi-calendar2-month::before { content: map-get($bootstrap-icons-map, "calendar2-month"); } +.bi-calendar2-plus-fill::before { content: map-get($bootstrap-icons-map, "calendar2-plus-fill"); } +.bi-calendar2-plus::before { content: map-get($bootstrap-icons-map, "calendar2-plus"); } +.bi-calendar2-range-fill::before { content: map-get($bootstrap-icons-map, "calendar2-range-fill"); } +.bi-calendar2-range::before { content: map-get($bootstrap-icons-map, "calendar2-range"); } +.bi-calendar2-week-fill::before { content: map-get($bootstrap-icons-map, "calendar2-week-fill"); } +.bi-calendar2-week::before { content: map-get($bootstrap-icons-map, "calendar2-week"); } +.bi-calendar2-x-fill::before { content: map-get($bootstrap-icons-map, "calendar2-x-fill"); } +.bi-calendar2-x::before { content: map-get($bootstrap-icons-map, "calendar2-x"); } +.bi-calendar2::before { content: map-get($bootstrap-icons-map, "calendar2"); } +.bi-calendar3-event-fill::before { content: map-get($bootstrap-icons-map, "calendar3-event-fill"); } +.bi-calendar3-event::before { content: map-get($bootstrap-icons-map, "calendar3-event"); } +.bi-calendar3-fill::before { content: map-get($bootstrap-icons-map, "calendar3-fill"); } +.bi-calendar3-range-fill::before { content: map-get($bootstrap-icons-map, "calendar3-range-fill"); } +.bi-calendar3-range::before { content: map-get($bootstrap-icons-map, "calendar3-range"); } +.bi-calendar3-week-fill::before { content: map-get($bootstrap-icons-map, "calendar3-week-fill"); } +.bi-calendar3-week::before { content: map-get($bootstrap-icons-map, "calendar3-week"); } +.bi-calendar3::before { content: map-get($bootstrap-icons-map, "calendar3"); } +.bi-calendar4-event::before { content: map-get($bootstrap-icons-map, "calendar4-event"); } +.bi-calendar4-range::before { content: map-get($bootstrap-icons-map, "calendar4-range"); } +.bi-calendar4-week::before { content: map-get($bootstrap-icons-map, "calendar4-week"); } +.bi-calendar4::before { content: map-get($bootstrap-icons-map, "calendar4"); } +.bi-camera-fill::before { content: map-get($bootstrap-icons-map, "camera-fill"); } +.bi-camera-reels-fill::before { content: map-get($bootstrap-icons-map, "camera-reels-fill"); } +.bi-camera-reels::before { content: map-get($bootstrap-icons-map, "camera-reels"); } +.bi-camera-video-fill::before { content: map-get($bootstrap-icons-map, "camera-video-fill"); } +.bi-camera-video-off-fill::before { content: map-get($bootstrap-icons-map, "camera-video-off-fill"); } +.bi-camera-video-off::before { content: map-get($bootstrap-icons-map, "camera-video-off"); } +.bi-camera-video::before { content: map-get($bootstrap-icons-map, "camera-video"); } +.bi-camera::before { content: map-get($bootstrap-icons-map, "camera"); } +.bi-camera2::before { content: map-get($bootstrap-icons-map, "camera2"); } +.bi-capslock-fill::before { content: map-get($bootstrap-icons-map, "capslock-fill"); } +.bi-capslock::before { content: map-get($bootstrap-icons-map, "capslock"); } +.bi-card-checklist::before { content: map-get($bootstrap-icons-map, "card-checklist"); } +.bi-card-heading::before { content: map-get($bootstrap-icons-map, "card-heading"); } +.bi-card-image::before { content: map-get($bootstrap-icons-map, "card-image"); } +.bi-card-list::before { content: map-get($bootstrap-icons-map, "card-list"); } +.bi-card-text::before { content: map-get($bootstrap-icons-map, "card-text"); } +.bi-caret-down-fill::before { content: map-get($bootstrap-icons-map, "caret-down-fill"); } +.bi-caret-down-square-fill::before { content: map-get($bootstrap-icons-map, "caret-down-square-fill"); } +.bi-caret-down-square::before { content: map-get($bootstrap-icons-map, "caret-down-square"); } +.bi-caret-down::before { content: map-get($bootstrap-icons-map, "caret-down"); } +.bi-caret-left-fill::before { content: map-get($bootstrap-icons-map, "caret-left-fill"); } +.bi-caret-left-square-fill::before { content: map-get($bootstrap-icons-map, "caret-left-square-fill"); } +.bi-caret-left-square::before { content: map-get($bootstrap-icons-map, "caret-left-square"); } +.bi-caret-left::before { content: map-get($bootstrap-icons-map, "caret-left"); } +.bi-caret-right-fill::before { content: map-get($bootstrap-icons-map, "caret-right-fill"); } +.bi-caret-right-square-fill::before { content: map-get($bootstrap-icons-map, "caret-right-square-fill"); } +.bi-caret-right-square::before { content: map-get($bootstrap-icons-map, "caret-right-square"); } +.bi-caret-right::before { content: map-get($bootstrap-icons-map, "caret-right"); } +.bi-caret-up-fill::before { content: map-get($bootstrap-icons-map, "caret-up-fill"); } +.bi-caret-up-square-fill::before { content: map-get($bootstrap-icons-map, "caret-up-square-fill"); } +.bi-caret-up-square::before { content: map-get($bootstrap-icons-map, "caret-up-square"); } +.bi-caret-up::before { content: map-get($bootstrap-icons-map, "caret-up"); } +.bi-cart-check-fill::before { content: map-get($bootstrap-icons-map, "cart-check-fill"); } +.bi-cart-check::before { content: map-get($bootstrap-icons-map, "cart-check"); } +.bi-cart-dash-fill::before { content: map-get($bootstrap-icons-map, "cart-dash-fill"); } +.bi-cart-dash::before { content: map-get($bootstrap-icons-map, "cart-dash"); } +.bi-cart-fill::before { content: map-get($bootstrap-icons-map, "cart-fill"); } +.bi-cart-plus-fill::before { content: map-get($bootstrap-icons-map, "cart-plus-fill"); } +.bi-cart-plus::before { content: map-get($bootstrap-icons-map, "cart-plus"); } +.bi-cart-x-fill::before { content: map-get($bootstrap-icons-map, "cart-x-fill"); } +.bi-cart-x::before { content: map-get($bootstrap-icons-map, "cart-x"); } +.bi-cart::before { content: map-get($bootstrap-icons-map, "cart"); } +.bi-cart2::before { content: map-get($bootstrap-icons-map, "cart2"); } +.bi-cart3::before { content: map-get($bootstrap-icons-map, "cart3"); } +.bi-cart4::before { content: map-get($bootstrap-icons-map, "cart4"); } +.bi-cash-stack::before { content: map-get($bootstrap-icons-map, "cash-stack"); } +.bi-cash::before { content: map-get($bootstrap-icons-map, "cash"); } +.bi-cast::before { content: map-get($bootstrap-icons-map, "cast"); } +.bi-chat-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-dots-fill"); } +.bi-chat-dots::before { content: map-get($bootstrap-icons-map, "chat-dots"); } +.bi-chat-fill::before { content: map-get($bootstrap-icons-map, "chat-fill"); } +.bi-chat-left-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-left-dots-fill"); } +.bi-chat-left-dots::before { content: map-get($bootstrap-icons-map, "chat-left-dots"); } +.bi-chat-left-fill::before { content: map-get($bootstrap-icons-map, "chat-left-fill"); } +.bi-chat-left-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-left-quote-fill"); } +.bi-chat-left-quote::before { content: map-get($bootstrap-icons-map, "chat-left-quote"); } +.bi-chat-left-text-fill::before { content: map-get($bootstrap-icons-map, "chat-left-text-fill"); } +.bi-chat-left-text::before { content: map-get($bootstrap-icons-map, "chat-left-text"); } +.bi-chat-left::before { content: map-get($bootstrap-icons-map, "chat-left"); } +.bi-chat-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-quote-fill"); } +.bi-chat-quote::before { content: map-get($bootstrap-icons-map, "chat-quote"); } +.bi-chat-right-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-right-dots-fill"); } +.bi-chat-right-dots::before { content: map-get($bootstrap-icons-map, "chat-right-dots"); } +.bi-chat-right-fill::before { content: map-get($bootstrap-icons-map, "chat-right-fill"); } +.bi-chat-right-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-right-quote-fill"); } +.bi-chat-right-quote::before { content: map-get($bootstrap-icons-map, "chat-right-quote"); } +.bi-chat-right-text-fill::before { content: map-get($bootstrap-icons-map, "chat-right-text-fill"); } +.bi-chat-right-text::before { content: map-get($bootstrap-icons-map, "chat-right-text"); } +.bi-chat-right::before { content: map-get($bootstrap-icons-map, "chat-right"); } +.bi-chat-square-dots-fill::before { content: map-get($bootstrap-icons-map, "chat-square-dots-fill"); } +.bi-chat-square-dots::before { content: map-get($bootstrap-icons-map, "chat-square-dots"); } +.bi-chat-square-fill::before { content: map-get($bootstrap-icons-map, "chat-square-fill"); } +.bi-chat-square-quote-fill::before { content: map-get($bootstrap-icons-map, "chat-square-quote-fill"); } +.bi-chat-square-quote::before { content: map-get($bootstrap-icons-map, "chat-square-quote"); } +.bi-chat-square-text-fill::before { content: map-get($bootstrap-icons-map, "chat-square-text-fill"); } +.bi-chat-square-text::before { content: map-get($bootstrap-icons-map, "chat-square-text"); } +.bi-chat-square::before { content: map-get($bootstrap-icons-map, "chat-square"); } +.bi-chat-text-fill::before { content: map-get($bootstrap-icons-map, "chat-text-fill"); } +.bi-chat-text::before { content: map-get($bootstrap-icons-map, "chat-text"); } +.bi-chat::before { content: map-get($bootstrap-icons-map, "chat"); } +.bi-check-all::before { content: map-get($bootstrap-icons-map, "check-all"); } +.bi-check-circle-fill::before { content: map-get($bootstrap-icons-map, "check-circle-fill"); } +.bi-check-circle::before { content: map-get($bootstrap-icons-map, "check-circle"); } +.bi-check-square-fill::before { content: map-get($bootstrap-icons-map, "check-square-fill"); } +.bi-check-square::before { content: map-get($bootstrap-icons-map, "check-square"); } +.bi-check::before { content: map-get($bootstrap-icons-map, "check"); } +.bi-check2-all::before { content: map-get($bootstrap-icons-map, "check2-all"); } +.bi-check2-circle::before { content: map-get($bootstrap-icons-map, "check2-circle"); } +.bi-check2-square::before { content: map-get($bootstrap-icons-map, "check2-square"); } +.bi-check2::before { content: map-get($bootstrap-icons-map, "check2"); } +.bi-chevron-bar-contract::before { content: map-get($bootstrap-icons-map, "chevron-bar-contract"); } +.bi-chevron-bar-down::before { content: map-get($bootstrap-icons-map, "chevron-bar-down"); } +.bi-chevron-bar-expand::before { content: map-get($bootstrap-icons-map, "chevron-bar-expand"); } +.bi-chevron-bar-left::before { content: map-get($bootstrap-icons-map, "chevron-bar-left"); } +.bi-chevron-bar-right::before { content: map-get($bootstrap-icons-map, "chevron-bar-right"); } +.bi-chevron-bar-up::before { content: map-get($bootstrap-icons-map, "chevron-bar-up"); } +.bi-chevron-compact-down::before { content: map-get($bootstrap-icons-map, "chevron-compact-down"); } +.bi-chevron-compact-left::before { content: map-get($bootstrap-icons-map, "chevron-compact-left"); } +.bi-chevron-compact-right::before { content: map-get($bootstrap-icons-map, "chevron-compact-right"); } +.bi-chevron-compact-up::before { content: map-get($bootstrap-icons-map, "chevron-compact-up"); } +.bi-chevron-contract::before { content: map-get($bootstrap-icons-map, "chevron-contract"); } +.bi-chevron-double-down::before { content: map-get($bootstrap-icons-map, "chevron-double-down"); } +.bi-chevron-double-left::before { content: map-get($bootstrap-icons-map, "chevron-double-left"); } +.bi-chevron-double-right::before { content: map-get($bootstrap-icons-map, "chevron-double-right"); } +.bi-chevron-double-up::before { content: map-get($bootstrap-icons-map, "chevron-double-up"); } +.bi-chevron-down::before { content: map-get($bootstrap-icons-map, "chevron-down"); } +.bi-chevron-expand::before { content: map-get($bootstrap-icons-map, "chevron-expand"); } +.bi-chevron-left::before { content: map-get($bootstrap-icons-map, "chevron-left"); } +.bi-chevron-right::before { content: map-get($bootstrap-icons-map, "chevron-right"); } +.bi-chevron-up::before { content: map-get($bootstrap-icons-map, "chevron-up"); } +.bi-circle-fill::before { content: map-get($bootstrap-icons-map, "circle-fill"); } +.bi-circle-half::before { content: map-get($bootstrap-icons-map, "circle-half"); } +.bi-circle-square::before { content: map-get($bootstrap-icons-map, "circle-square"); } +.bi-circle::before { content: map-get($bootstrap-icons-map, "circle"); } +.bi-clipboard-check::before { content: map-get($bootstrap-icons-map, "clipboard-check"); } +.bi-clipboard-data::before { content: map-get($bootstrap-icons-map, "clipboard-data"); } +.bi-clipboard-minus::before { content: map-get($bootstrap-icons-map, "clipboard-minus"); } +.bi-clipboard-plus::before { content: map-get($bootstrap-icons-map, "clipboard-plus"); } +.bi-clipboard-x::before { content: map-get($bootstrap-icons-map, "clipboard-x"); } +.bi-clipboard::before { content: map-get($bootstrap-icons-map, "clipboard"); } +.bi-clock-fill::before { content: map-get($bootstrap-icons-map, "clock-fill"); } +.bi-clock-history::before { content: map-get($bootstrap-icons-map, "clock-history"); } +.bi-clock::before { content: map-get($bootstrap-icons-map, "clock"); } +.bi-cloud-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "cloud-arrow-down-fill"); } +.bi-cloud-arrow-down::before { content: map-get($bootstrap-icons-map, "cloud-arrow-down"); } +.bi-cloud-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "cloud-arrow-up-fill"); } +.bi-cloud-arrow-up::before { content: map-get($bootstrap-icons-map, "cloud-arrow-up"); } +.bi-cloud-check-fill::before { content: map-get($bootstrap-icons-map, "cloud-check-fill"); } +.bi-cloud-check::before { content: map-get($bootstrap-icons-map, "cloud-check"); } +.bi-cloud-download-fill::before { content: map-get($bootstrap-icons-map, "cloud-download-fill"); } +.bi-cloud-download::before { content: map-get($bootstrap-icons-map, "cloud-download"); } +.bi-cloud-drizzle-fill::before { content: map-get($bootstrap-icons-map, "cloud-drizzle-fill"); } +.bi-cloud-drizzle::before { content: map-get($bootstrap-icons-map, "cloud-drizzle"); } +.bi-cloud-fill::before { content: map-get($bootstrap-icons-map, "cloud-fill"); } +.bi-cloud-fog-fill::before { content: map-get($bootstrap-icons-map, "cloud-fog-fill"); } +.bi-cloud-fog::before { content: map-get($bootstrap-icons-map, "cloud-fog"); } +.bi-cloud-fog2-fill::before { content: map-get($bootstrap-icons-map, "cloud-fog2-fill"); } +.bi-cloud-fog2::before { content: map-get($bootstrap-icons-map, "cloud-fog2"); } +.bi-cloud-hail-fill::before { content: map-get($bootstrap-icons-map, "cloud-hail-fill"); } +.bi-cloud-hail::before { content: map-get($bootstrap-icons-map, "cloud-hail"); } +.bi-cloud-haze-1::before { content: map-get($bootstrap-icons-map, "cloud-haze-1"); } +.bi-cloud-haze-fill::before { content: map-get($bootstrap-icons-map, "cloud-haze-fill"); } +.bi-cloud-haze::before { content: map-get($bootstrap-icons-map, "cloud-haze"); } +.bi-cloud-haze2-fill::before { content: map-get($bootstrap-icons-map, "cloud-haze2-fill"); } +.bi-cloud-lightning-fill::before { content: map-get($bootstrap-icons-map, "cloud-lightning-fill"); } +.bi-cloud-lightning-rain-fill::before { content: map-get($bootstrap-icons-map, "cloud-lightning-rain-fill"); } +.bi-cloud-lightning-rain::before { content: map-get($bootstrap-icons-map, "cloud-lightning-rain"); } +.bi-cloud-lightning::before { content: map-get($bootstrap-icons-map, "cloud-lightning"); } +.bi-cloud-minus-fill::before { content: map-get($bootstrap-icons-map, "cloud-minus-fill"); } +.bi-cloud-minus::before { content: map-get($bootstrap-icons-map, "cloud-minus"); } +.bi-cloud-moon-fill::before { content: map-get($bootstrap-icons-map, "cloud-moon-fill"); } +.bi-cloud-moon::before { content: map-get($bootstrap-icons-map, "cloud-moon"); } +.bi-cloud-plus-fill::before { content: map-get($bootstrap-icons-map, "cloud-plus-fill"); } +.bi-cloud-plus::before { content: map-get($bootstrap-icons-map, "cloud-plus"); } +.bi-cloud-rain-fill::before { content: map-get($bootstrap-icons-map, "cloud-rain-fill"); } +.bi-cloud-rain-heavy-fill::before { content: map-get($bootstrap-icons-map, "cloud-rain-heavy-fill"); } +.bi-cloud-rain-heavy::before { content: map-get($bootstrap-icons-map, "cloud-rain-heavy"); } +.bi-cloud-rain::before { content: map-get($bootstrap-icons-map, "cloud-rain"); } +.bi-cloud-slash-fill::before { content: map-get($bootstrap-icons-map, "cloud-slash-fill"); } +.bi-cloud-slash::before { content: map-get($bootstrap-icons-map, "cloud-slash"); } +.bi-cloud-sleet-fill::before { content: map-get($bootstrap-icons-map, "cloud-sleet-fill"); } +.bi-cloud-sleet::before { content: map-get($bootstrap-icons-map, "cloud-sleet"); } +.bi-cloud-snow-fill::before { content: map-get($bootstrap-icons-map, "cloud-snow-fill"); } +.bi-cloud-snow::before { content: map-get($bootstrap-icons-map, "cloud-snow"); } +.bi-cloud-sun-fill::before { content: map-get($bootstrap-icons-map, "cloud-sun-fill"); } +.bi-cloud-sun::before { content: map-get($bootstrap-icons-map, "cloud-sun"); } +.bi-cloud-upload-fill::before { content: map-get($bootstrap-icons-map, "cloud-upload-fill"); } +.bi-cloud-upload::before { content: map-get($bootstrap-icons-map, "cloud-upload"); } +.bi-cloud::before { content: map-get($bootstrap-icons-map, "cloud"); } +.bi-clouds-fill::before { content: map-get($bootstrap-icons-map, "clouds-fill"); } +.bi-clouds::before { content: map-get($bootstrap-icons-map, "clouds"); } +.bi-cloudy-fill::before { content: map-get($bootstrap-icons-map, "cloudy-fill"); } +.bi-cloudy::before { content: map-get($bootstrap-icons-map, "cloudy"); } +.bi-code-slash::before { content: map-get($bootstrap-icons-map, "code-slash"); } +.bi-code-square::before { content: map-get($bootstrap-icons-map, "code-square"); } +.bi-code::before { content: map-get($bootstrap-icons-map, "code"); } +.bi-collection-fill::before { content: map-get($bootstrap-icons-map, "collection-fill"); } +.bi-collection-play-fill::before { content: map-get($bootstrap-icons-map, "collection-play-fill"); } +.bi-collection-play::before { content: map-get($bootstrap-icons-map, "collection-play"); } +.bi-collection::before { content: map-get($bootstrap-icons-map, "collection"); } +.bi-columns-gap::before { content: map-get($bootstrap-icons-map, "columns-gap"); } +.bi-columns::before { content: map-get($bootstrap-icons-map, "columns"); } +.bi-command::before { content: map-get($bootstrap-icons-map, "command"); } +.bi-compass-fill::before { content: map-get($bootstrap-icons-map, "compass-fill"); } +.bi-compass::before { content: map-get($bootstrap-icons-map, "compass"); } +.bi-cone-striped::before { content: map-get($bootstrap-icons-map, "cone-striped"); } +.bi-cone::before { content: map-get($bootstrap-icons-map, "cone"); } +.bi-controller::before { content: map-get($bootstrap-icons-map, "controller"); } +.bi-cpu-fill::before { content: map-get($bootstrap-icons-map, "cpu-fill"); } +.bi-cpu::before { content: map-get($bootstrap-icons-map, "cpu"); } +.bi-credit-card-2-back-fill::before { content: map-get($bootstrap-icons-map, "credit-card-2-back-fill"); } +.bi-credit-card-2-back::before { content: map-get($bootstrap-icons-map, "credit-card-2-back"); } +.bi-credit-card-2-front-fill::before { content: map-get($bootstrap-icons-map, "credit-card-2-front-fill"); } +.bi-credit-card-2-front::before { content: map-get($bootstrap-icons-map, "credit-card-2-front"); } +.bi-credit-card-fill::before { content: map-get($bootstrap-icons-map, "credit-card-fill"); } +.bi-credit-card::before { content: map-get($bootstrap-icons-map, "credit-card"); } +.bi-crop::before { content: map-get($bootstrap-icons-map, "crop"); } +.bi-cup-fill::before { content: map-get($bootstrap-icons-map, "cup-fill"); } +.bi-cup-straw::before { content: map-get($bootstrap-icons-map, "cup-straw"); } +.bi-cup::before { content: map-get($bootstrap-icons-map, "cup"); } +.bi-cursor-fill::before { content: map-get($bootstrap-icons-map, "cursor-fill"); } +.bi-cursor-text::before { content: map-get($bootstrap-icons-map, "cursor-text"); } +.bi-cursor::before { content: map-get($bootstrap-icons-map, "cursor"); } +.bi-dash-circle-dotted::before { content: map-get($bootstrap-icons-map, "dash-circle-dotted"); } +.bi-dash-circle-fill::before { content: map-get($bootstrap-icons-map, "dash-circle-fill"); } +.bi-dash-circle::before { content: map-get($bootstrap-icons-map, "dash-circle"); } +.bi-dash-square-dotted::before { content: map-get($bootstrap-icons-map, "dash-square-dotted"); } +.bi-dash-square-fill::before { content: map-get($bootstrap-icons-map, "dash-square-fill"); } +.bi-dash-square::before { content: map-get($bootstrap-icons-map, "dash-square"); } +.bi-dash::before { content: map-get($bootstrap-icons-map, "dash"); } +.bi-diagram-2-fill::before { content: map-get($bootstrap-icons-map, "diagram-2-fill"); } +.bi-diagram-2::before { content: map-get($bootstrap-icons-map, "diagram-2"); } +.bi-diagram-3-fill::before { content: map-get($bootstrap-icons-map, "diagram-3-fill"); } +.bi-diagram-3::before { content: map-get($bootstrap-icons-map, "diagram-3"); } +.bi-diamond-fill::before { content: map-get($bootstrap-icons-map, "diamond-fill"); } +.bi-diamond-half::before { content: map-get($bootstrap-icons-map, "diamond-half"); } +.bi-diamond::before { content: map-get($bootstrap-icons-map, "diamond"); } +.bi-dice-1-fill::before { content: map-get($bootstrap-icons-map, "dice-1-fill"); } +.bi-dice-1::before { content: map-get($bootstrap-icons-map, "dice-1"); } +.bi-dice-2-fill::before { content: map-get($bootstrap-icons-map, "dice-2-fill"); } +.bi-dice-2::before { content: map-get($bootstrap-icons-map, "dice-2"); } +.bi-dice-3-fill::before { content: map-get($bootstrap-icons-map, "dice-3-fill"); } +.bi-dice-3::before { content: map-get($bootstrap-icons-map, "dice-3"); } +.bi-dice-4-fill::before { content: map-get($bootstrap-icons-map, "dice-4-fill"); } +.bi-dice-4::before { content: map-get($bootstrap-icons-map, "dice-4"); } +.bi-dice-5-fill::before { content: map-get($bootstrap-icons-map, "dice-5-fill"); } +.bi-dice-5::before { content: map-get($bootstrap-icons-map, "dice-5"); } +.bi-dice-6-fill::before { content: map-get($bootstrap-icons-map, "dice-6-fill"); } +.bi-dice-6::before { content: map-get($bootstrap-icons-map, "dice-6"); } +.bi-disc-fill::before { content: map-get($bootstrap-icons-map, "disc-fill"); } +.bi-disc::before { content: map-get($bootstrap-icons-map, "disc"); } +.bi-discord::before { content: map-get($bootstrap-icons-map, "discord"); } +.bi-display-fill::before { content: map-get($bootstrap-icons-map, "display-fill"); } +.bi-display::before { content: map-get($bootstrap-icons-map, "display"); } +.bi-distribute-horizontal::before { content: map-get($bootstrap-icons-map, "distribute-horizontal"); } +.bi-distribute-vertical::before { content: map-get($bootstrap-icons-map, "distribute-vertical"); } +.bi-door-closed-fill::before { content: map-get($bootstrap-icons-map, "door-closed-fill"); } +.bi-door-closed::before { content: map-get($bootstrap-icons-map, "door-closed"); } +.bi-door-open-fill::before { content: map-get($bootstrap-icons-map, "door-open-fill"); } +.bi-door-open::before { content: map-get($bootstrap-icons-map, "door-open"); } +.bi-dot::before { content: map-get($bootstrap-icons-map, "dot"); } +.bi-download::before { content: map-get($bootstrap-icons-map, "download"); } +.bi-droplet-fill::before { content: map-get($bootstrap-icons-map, "droplet-fill"); } +.bi-droplet-half::before { content: map-get($bootstrap-icons-map, "droplet-half"); } +.bi-droplet::before { content: map-get($bootstrap-icons-map, "droplet"); } +.bi-earbuds::before { content: map-get($bootstrap-icons-map, "earbuds"); } +.bi-easel-fill::before { content: map-get($bootstrap-icons-map, "easel-fill"); } +.bi-easel::before { content: map-get($bootstrap-icons-map, "easel"); } +.bi-egg-fill::before { content: map-get($bootstrap-icons-map, "egg-fill"); } +.bi-egg-fried::before { content: map-get($bootstrap-icons-map, "egg-fried"); } +.bi-egg::before { content: map-get($bootstrap-icons-map, "egg"); } +.bi-eject-fill::before { content: map-get($bootstrap-icons-map, "eject-fill"); } +.bi-eject::before { content: map-get($bootstrap-icons-map, "eject"); } +.bi-emoji-angry-fill::before { content: map-get($bootstrap-icons-map, "emoji-angry-fill"); } +.bi-emoji-angry::before { content: map-get($bootstrap-icons-map, "emoji-angry"); } +.bi-emoji-dizzy-fill::before { content: map-get($bootstrap-icons-map, "emoji-dizzy-fill"); } +.bi-emoji-dizzy::before { content: map-get($bootstrap-icons-map, "emoji-dizzy"); } +.bi-emoji-expressionless-fill::before { content: map-get($bootstrap-icons-map, "emoji-expressionless-fill"); } +.bi-emoji-expressionless::before { content: map-get($bootstrap-icons-map, "emoji-expressionless"); } +.bi-emoji-frown-fill::before { content: map-get($bootstrap-icons-map, "emoji-frown-fill"); } +.bi-emoji-frown::before { content: map-get($bootstrap-icons-map, "emoji-frown"); } +.bi-emoji-heart-eyes-fill::before { content: map-get($bootstrap-icons-map, "emoji-heart-eyes-fill"); } +.bi-emoji-heart-eyes::before { content: map-get($bootstrap-icons-map, "emoji-heart-eyes"); } +.bi-emoji-laughing-fill::before { content: map-get($bootstrap-icons-map, "emoji-laughing-fill"); } +.bi-emoji-laughing::before { content: map-get($bootstrap-icons-map, "emoji-laughing"); } +.bi-emoji-neutral-fill::before { content: map-get($bootstrap-icons-map, "emoji-neutral-fill"); } +.bi-emoji-neutral::before { content: map-get($bootstrap-icons-map, "emoji-neutral"); } +.bi-emoji-smile-fill::before { content: map-get($bootstrap-icons-map, "emoji-smile-fill"); } +.bi-emoji-smile-upside-down-fill::before { content: map-get($bootstrap-icons-map, "emoji-smile-upside-down-fill"); } +.bi-emoji-smile-upside-down::before { content: map-get($bootstrap-icons-map, "emoji-smile-upside-down"); } +.bi-emoji-smile::before { content: map-get($bootstrap-icons-map, "emoji-smile"); } +.bi-emoji-sunglasses-fill::before { content: map-get($bootstrap-icons-map, "emoji-sunglasses-fill"); } +.bi-emoji-sunglasses::before { content: map-get($bootstrap-icons-map, "emoji-sunglasses"); } +.bi-emoji-wink-fill::before { content: map-get($bootstrap-icons-map, "emoji-wink-fill"); } +.bi-emoji-wink::before { content: map-get($bootstrap-icons-map, "emoji-wink"); } +.bi-envelope-fill::before { content: map-get($bootstrap-icons-map, "envelope-fill"); } +.bi-envelope-open-fill::before { content: map-get($bootstrap-icons-map, "envelope-open-fill"); } +.bi-envelope-open::before { content: map-get($bootstrap-icons-map, "envelope-open"); } +.bi-envelope::before { content: map-get($bootstrap-icons-map, "envelope"); } +.bi-eraser-fill::before { content: map-get($bootstrap-icons-map, "eraser-fill"); } +.bi-eraser::before { content: map-get($bootstrap-icons-map, "eraser"); } +.bi-exclamation-circle-fill::before { content: map-get($bootstrap-icons-map, "exclamation-circle-fill"); } +.bi-exclamation-circle::before { content: map-get($bootstrap-icons-map, "exclamation-circle"); } +.bi-exclamation-diamond-fill::before { content: map-get($bootstrap-icons-map, "exclamation-diamond-fill"); } +.bi-exclamation-diamond::before { content: map-get($bootstrap-icons-map, "exclamation-diamond"); } +.bi-exclamation-octagon-fill::before { content: map-get($bootstrap-icons-map, "exclamation-octagon-fill"); } +.bi-exclamation-octagon::before { content: map-get($bootstrap-icons-map, "exclamation-octagon"); } +.bi-exclamation-square-fill::before { content: map-get($bootstrap-icons-map, "exclamation-square-fill"); } +.bi-exclamation-square::before { content: map-get($bootstrap-icons-map, "exclamation-square"); } +.bi-exclamation-triangle-fill::before { content: map-get($bootstrap-icons-map, "exclamation-triangle-fill"); } +.bi-exclamation-triangle::before { content: map-get($bootstrap-icons-map, "exclamation-triangle"); } +.bi-exclamation::before { content: map-get($bootstrap-icons-map, "exclamation"); } +.bi-exclude::before { content: map-get($bootstrap-icons-map, "exclude"); } +.bi-eye-fill::before { content: map-get($bootstrap-icons-map, "eye-fill"); } +.bi-eye-slash-fill::before { content: map-get($bootstrap-icons-map, "eye-slash-fill"); } +.bi-eye-slash::before { content: map-get($bootstrap-icons-map, "eye-slash"); } +.bi-eye::before { content: map-get($bootstrap-icons-map, "eye"); } +.bi-eyedropper::before { content: map-get($bootstrap-icons-map, "eyedropper"); } +.bi-eyeglasses::before { content: map-get($bootstrap-icons-map, "eyeglasses"); } +.bi-facebook::before { content: map-get($bootstrap-icons-map, "facebook"); } +.bi-file-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "file-arrow-down-fill"); } +.bi-file-arrow-down::before { content: map-get($bootstrap-icons-map, "file-arrow-down"); } +.bi-file-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "file-arrow-up-fill"); } +.bi-file-arrow-up::before { content: map-get($bootstrap-icons-map, "file-arrow-up"); } +.bi-file-bar-graph-fill::before { content: map-get($bootstrap-icons-map, "file-bar-graph-fill"); } +.bi-file-bar-graph::before { content: map-get($bootstrap-icons-map, "file-bar-graph"); } +.bi-file-binary-fill::before { content: map-get($bootstrap-icons-map, "file-binary-fill"); } +.bi-file-binary::before { content: map-get($bootstrap-icons-map, "file-binary"); } +.bi-file-break-fill::before { content: map-get($bootstrap-icons-map, "file-break-fill"); } +.bi-file-break::before { content: map-get($bootstrap-icons-map, "file-break"); } +.bi-file-check-fill::before { content: map-get($bootstrap-icons-map, "file-check-fill"); } +.bi-file-check::before { content: map-get($bootstrap-icons-map, "file-check"); } +.bi-file-code-fill::before { content: map-get($bootstrap-icons-map, "file-code-fill"); } +.bi-file-code::before { content: map-get($bootstrap-icons-map, "file-code"); } +.bi-file-diff-fill::before { content: map-get($bootstrap-icons-map, "file-diff-fill"); } +.bi-file-diff::before { content: map-get($bootstrap-icons-map, "file-diff"); } +.bi-file-earmark-arrow-down-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-down-fill"); } +.bi-file-earmark-arrow-down::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-down"); } +.bi-file-earmark-arrow-up-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-up-fill"); } +.bi-file-earmark-arrow-up::before { content: map-get($bootstrap-icons-map, "file-earmark-arrow-up"); } +.bi-file-earmark-bar-graph-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-bar-graph-fill"); } +.bi-file-earmark-bar-graph::before { content: map-get($bootstrap-icons-map, "file-earmark-bar-graph"); } +.bi-file-earmark-binary-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-binary-fill"); } +.bi-file-earmark-binary::before { content: map-get($bootstrap-icons-map, "file-earmark-binary"); } +.bi-file-earmark-break-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-break-fill"); } +.bi-file-earmark-break::before { content: map-get($bootstrap-icons-map, "file-earmark-break"); } +.bi-file-earmark-check-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-check-fill"); } +.bi-file-earmark-check::before { content: map-get($bootstrap-icons-map, "file-earmark-check"); } +.bi-file-earmark-code-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-code-fill"); } +.bi-file-earmark-code::before { content: map-get($bootstrap-icons-map, "file-earmark-code"); } +.bi-file-earmark-diff-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-diff-fill"); } +.bi-file-earmark-diff::before { content: map-get($bootstrap-icons-map, "file-earmark-diff"); } +.bi-file-earmark-easel-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-easel-fill"); } +.bi-file-earmark-easel::before { content: map-get($bootstrap-icons-map, "file-earmark-easel"); } +.bi-file-earmark-excel-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-excel-fill"); } +.bi-file-earmark-excel::before { content: map-get($bootstrap-icons-map, "file-earmark-excel"); } +.bi-file-earmark-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-fill"); } +.bi-file-earmark-font-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-font-fill"); } +.bi-file-earmark-font::before { content: map-get($bootstrap-icons-map, "file-earmark-font"); } +.bi-file-earmark-image-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-image-fill"); } +.bi-file-earmark-image::before { content: map-get($bootstrap-icons-map, "file-earmark-image"); } +.bi-file-earmark-lock-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-lock-fill"); } +.bi-file-earmark-lock::before { content: map-get($bootstrap-icons-map, "file-earmark-lock"); } +.bi-file-earmark-lock2-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-lock2-fill"); } +.bi-file-earmark-lock2::before { content: map-get($bootstrap-icons-map, "file-earmark-lock2"); } +.bi-file-earmark-medical-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-medical-fill"); } +.bi-file-earmark-medical::before { content: map-get($bootstrap-icons-map, "file-earmark-medical"); } +.bi-file-earmark-minus-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-minus-fill"); } +.bi-file-earmark-minus::before { content: map-get($bootstrap-icons-map, "file-earmark-minus"); } +.bi-file-earmark-music-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-music-fill"); } +.bi-file-earmark-music::before { content: map-get($bootstrap-icons-map, "file-earmark-music"); } +.bi-file-earmark-person-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-person-fill"); } +.bi-file-earmark-person::before { content: map-get($bootstrap-icons-map, "file-earmark-person"); } +.bi-file-earmark-play-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-play-fill"); } +.bi-file-earmark-play::before { content: map-get($bootstrap-icons-map, "file-earmark-play"); } +.bi-file-earmark-plus-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-plus-fill"); } +.bi-file-earmark-plus::before { content: map-get($bootstrap-icons-map, "file-earmark-plus"); } +.bi-file-earmark-post-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-post-fill"); } +.bi-file-earmark-post::before { content: map-get($bootstrap-icons-map, "file-earmark-post"); } +.bi-file-earmark-ppt-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-ppt-fill"); } +.bi-file-earmark-ppt::before { content: map-get($bootstrap-icons-map, "file-earmark-ppt"); } +.bi-file-earmark-richtext-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-richtext-fill"); } +.bi-file-earmark-richtext::before { content: map-get($bootstrap-icons-map, "file-earmark-richtext"); } +.bi-file-earmark-ruled-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-ruled-fill"); } +.bi-file-earmark-ruled::before { content: map-get($bootstrap-icons-map, "file-earmark-ruled"); } +.bi-file-earmark-slides-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-slides-fill"); } +.bi-file-earmark-slides::before { content: map-get($bootstrap-icons-map, "file-earmark-slides"); } +.bi-file-earmark-spreadsheet-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-spreadsheet-fill"); } +.bi-file-earmark-spreadsheet::before { content: map-get($bootstrap-icons-map, "file-earmark-spreadsheet"); } +.bi-file-earmark-text-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-text-fill"); } +.bi-file-earmark-text::before { content: map-get($bootstrap-icons-map, "file-earmark-text"); } +.bi-file-earmark-word-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-word-fill"); } +.bi-file-earmark-word::before { content: map-get($bootstrap-icons-map, "file-earmark-word"); } +.bi-file-earmark-x-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-x-fill"); } +.bi-file-earmark-x::before { content: map-get($bootstrap-icons-map, "file-earmark-x"); } +.bi-file-earmark-zip-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-zip-fill"); } +.bi-file-earmark-zip::before { content: map-get($bootstrap-icons-map, "file-earmark-zip"); } +.bi-file-earmark::before { content: map-get($bootstrap-icons-map, "file-earmark"); } +.bi-file-easel-fill::before { content: map-get($bootstrap-icons-map, "file-easel-fill"); } +.bi-file-easel::before { content: map-get($bootstrap-icons-map, "file-easel"); } +.bi-file-excel-fill::before { content: map-get($bootstrap-icons-map, "file-excel-fill"); } +.bi-file-excel::before { content: map-get($bootstrap-icons-map, "file-excel"); } +.bi-file-fill::before { content: map-get($bootstrap-icons-map, "file-fill"); } +.bi-file-font-fill::before { content: map-get($bootstrap-icons-map, "file-font-fill"); } +.bi-file-font::before { content: map-get($bootstrap-icons-map, "file-font"); } +.bi-file-image-fill::before { content: map-get($bootstrap-icons-map, "file-image-fill"); } +.bi-file-image::before { content: map-get($bootstrap-icons-map, "file-image"); } +.bi-file-lock-fill::before { content: map-get($bootstrap-icons-map, "file-lock-fill"); } +.bi-file-lock::before { content: map-get($bootstrap-icons-map, "file-lock"); } +.bi-file-lock2-fill::before { content: map-get($bootstrap-icons-map, "file-lock2-fill"); } +.bi-file-lock2::before { content: map-get($bootstrap-icons-map, "file-lock2"); } +.bi-file-medical-fill::before { content: map-get($bootstrap-icons-map, "file-medical-fill"); } +.bi-file-medical::before { content: map-get($bootstrap-icons-map, "file-medical"); } +.bi-file-minus-fill::before { content: map-get($bootstrap-icons-map, "file-minus-fill"); } +.bi-file-minus::before { content: map-get($bootstrap-icons-map, "file-minus"); } +.bi-file-music-fill::before { content: map-get($bootstrap-icons-map, "file-music-fill"); } +.bi-file-music::before { content: map-get($bootstrap-icons-map, "file-music"); } +.bi-file-person-fill::before { content: map-get($bootstrap-icons-map, "file-person-fill"); } +.bi-file-person::before { content: map-get($bootstrap-icons-map, "file-person"); } +.bi-file-play-fill::before { content: map-get($bootstrap-icons-map, "file-play-fill"); } +.bi-file-play::before { content: map-get($bootstrap-icons-map, "file-play"); } +.bi-file-plus-fill::before { content: map-get($bootstrap-icons-map, "file-plus-fill"); } +.bi-file-plus::before { content: map-get($bootstrap-icons-map, "file-plus"); } +.bi-file-post-fill::before { content: map-get($bootstrap-icons-map, "file-post-fill"); } +.bi-file-post::before { content: map-get($bootstrap-icons-map, "file-post"); } +.bi-file-ppt-fill::before { content: map-get($bootstrap-icons-map, "file-ppt-fill"); } +.bi-file-ppt::before { content: map-get($bootstrap-icons-map, "file-ppt"); } +.bi-file-richtext-fill::before { content: map-get($bootstrap-icons-map, "file-richtext-fill"); } +.bi-file-richtext::before { content: map-get($bootstrap-icons-map, "file-richtext"); } +.bi-file-ruled-fill::before { content: map-get($bootstrap-icons-map, "file-ruled-fill"); } +.bi-file-ruled::before { content: map-get($bootstrap-icons-map, "file-ruled"); } +.bi-file-slides-fill::before { content: map-get($bootstrap-icons-map, "file-slides-fill"); } +.bi-file-slides::before { content: map-get($bootstrap-icons-map, "file-slides"); } +.bi-file-spreadsheet-fill::before { content: map-get($bootstrap-icons-map, "file-spreadsheet-fill"); } +.bi-file-spreadsheet::before { content: map-get($bootstrap-icons-map, "file-spreadsheet"); } +.bi-file-text-fill::before { content: map-get($bootstrap-icons-map, "file-text-fill"); } +.bi-file-text::before { content: map-get($bootstrap-icons-map, "file-text"); } +.bi-file-word-fill::before { content: map-get($bootstrap-icons-map, "file-word-fill"); } +.bi-file-word::before { content: map-get($bootstrap-icons-map, "file-word"); } +.bi-file-x-fill::before { content: map-get($bootstrap-icons-map, "file-x-fill"); } +.bi-file-x::before { content: map-get($bootstrap-icons-map, "file-x"); } +.bi-file-zip-fill::before { content: map-get($bootstrap-icons-map, "file-zip-fill"); } +.bi-file-zip::before { content: map-get($bootstrap-icons-map, "file-zip"); } +.bi-file::before { content: map-get($bootstrap-icons-map, "file"); } +.bi-files-alt::before { content: map-get($bootstrap-icons-map, "files-alt"); } +.bi-files::before { content: map-get($bootstrap-icons-map, "files"); } +.bi-film::before { content: map-get($bootstrap-icons-map, "film"); } +.bi-filter-circle-fill::before { content: map-get($bootstrap-icons-map, "filter-circle-fill"); } +.bi-filter-circle::before { content: map-get($bootstrap-icons-map, "filter-circle"); } +.bi-filter-left::before { content: map-get($bootstrap-icons-map, "filter-left"); } +.bi-filter-right::before { content: map-get($bootstrap-icons-map, "filter-right"); } +.bi-filter-square-fill::before { content: map-get($bootstrap-icons-map, "filter-square-fill"); } +.bi-filter-square::before { content: map-get($bootstrap-icons-map, "filter-square"); } +.bi-filter::before { content: map-get($bootstrap-icons-map, "filter"); } +.bi-flag-fill::before { content: map-get($bootstrap-icons-map, "flag-fill"); } +.bi-flag::before { content: map-get($bootstrap-icons-map, "flag"); } +.bi-flower1::before { content: map-get($bootstrap-icons-map, "flower1"); } +.bi-flower2::before { content: map-get($bootstrap-icons-map, "flower2"); } +.bi-flower3::before { content: map-get($bootstrap-icons-map, "flower3"); } +.bi-folder-check::before { content: map-get($bootstrap-icons-map, "folder-check"); } +.bi-folder-fill::before { content: map-get($bootstrap-icons-map, "folder-fill"); } +.bi-folder-minus::before { content: map-get($bootstrap-icons-map, "folder-minus"); } +.bi-folder-plus::before { content: map-get($bootstrap-icons-map, "folder-plus"); } +.bi-folder-symlink-fill::before { content: map-get($bootstrap-icons-map, "folder-symlink-fill"); } +.bi-folder-symlink::before { content: map-get($bootstrap-icons-map, "folder-symlink"); } +.bi-folder-x::before { content: map-get($bootstrap-icons-map, "folder-x"); } +.bi-folder::before { content: map-get($bootstrap-icons-map, "folder"); } +.bi-folder2-open::before { content: map-get($bootstrap-icons-map, "folder2-open"); } +.bi-folder2::before { content: map-get($bootstrap-icons-map, "folder2"); } +.bi-fonts::before { content: map-get($bootstrap-icons-map, "fonts"); } +.bi-forward-fill::before { content: map-get($bootstrap-icons-map, "forward-fill"); } +.bi-forward::before { content: map-get($bootstrap-icons-map, "forward"); } +.bi-front::before { content: map-get($bootstrap-icons-map, "front"); } +.bi-fullscreen-exit::before { content: map-get($bootstrap-icons-map, "fullscreen-exit"); } +.bi-fullscreen::before { content: map-get($bootstrap-icons-map, "fullscreen"); } +.bi-funnel-fill::before { content: map-get($bootstrap-icons-map, "funnel-fill"); } +.bi-funnel::before { content: map-get($bootstrap-icons-map, "funnel"); } +.bi-gear-fill::before { content: map-get($bootstrap-icons-map, "gear-fill"); } +.bi-gear-wide-connected::before { content: map-get($bootstrap-icons-map, "gear-wide-connected"); } +.bi-gear-wide::before { content: map-get($bootstrap-icons-map, "gear-wide"); } +.bi-gear::before { content: map-get($bootstrap-icons-map, "gear"); } +.bi-gem::before { content: map-get($bootstrap-icons-map, "gem"); } +.bi-geo-alt-fill::before { content: map-get($bootstrap-icons-map, "geo-alt-fill"); } +.bi-geo-alt::before { content: map-get($bootstrap-icons-map, "geo-alt"); } +.bi-geo-fill::before { content: map-get($bootstrap-icons-map, "geo-fill"); } +.bi-geo::before { content: map-get($bootstrap-icons-map, "geo"); } +.bi-gift-fill::before { content: map-get($bootstrap-icons-map, "gift-fill"); } +.bi-gift::before { content: map-get($bootstrap-icons-map, "gift"); } +.bi-github::before { content: map-get($bootstrap-icons-map, "github"); } +.bi-globe::before { content: map-get($bootstrap-icons-map, "globe"); } +.bi-globe2::before { content: map-get($bootstrap-icons-map, "globe2"); } +.bi-google::before { content: map-get($bootstrap-icons-map, "google"); } +.bi-graph-down::before { content: map-get($bootstrap-icons-map, "graph-down"); } +.bi-graph-up::before { content: map-get($bootstrap-icons-map, "graph-up"); } +.bi-grid-1x2-fill::before { content: map-get($bootstrap-icons-map, "grid-1x2-fill"); } +.bi-grid-1x2::before { content: map-get($bootstrap-icons-map, "grid-1x2"); } +.bi-grid-3x2-gap-fill::before { content: map-get($bootstrap-icons-map, "grid-3x2-gap-fill"); } +.bi-grid-3x2-gap::before { content: map-get($bootstrap-icons-map, "grid-3x2-gap"); } +.bi-grid-3x2::before { content: map-get($bootstrap-icons-map, "grid-3x2"); } +.bi-grid-3x3-gap-fill::before { content: map-get($bootstrap-icons-map, "grid-3x3-gap-fill"); } +.bi-grid-3x3-gap::before { content: map-get($bootstrap-icons-map, "grid-3x3-gap"); } +.bi-grid-3x3::before { content: map-get($bootstrap-icons-map, "grid-3x3"); } +.bi-grid-fill::before { content: map-get($bootstrap-icons-map, "grid-fill"); } +.bi-grid::before { content: map-get($bootstrap-icons-map, "grid"); } +.bi-grip-horizontal::before { content: map-get($bootstrap-icons-map, "grip-horizontal"); } +.bi-grip-vertical::before { content: map-get($bootstrap-icons-map, "grip-vertical"); } +.bi-hammer::before { content: map-get($bootstrap-icons-map, "hammer"); } +.bi-hand-index-fill::before { content: map-get($bootstrap-icons-map, "hand-index-fill"); } +.bi-hand-index-thumb-fill::before { content: map-get($bootstrap-icons-map, "hand-index-thumb-fill"); } +.bi-hand-index-thumb::before { content: map-get($bootstrap-icons-map, "hand-index-thumb"); } +.bi-hand-index::before { content: map-get($bootstrap-icons-map, "hand-index"); } +.bi-hand-thumbs-down-fill::before { content: map-get($bootstrap-icons-map, "hand-thumbs-down-fill"); } +.bi-hand-thumbs-down::before { content: map-get($bootstrap-icons-map, "hand-thumbs-down"); } +.bi-hand-thumbs-up-fill::before { content: map-get($bootstrap-icons-map, "hand-thumbs-up-fill"); } +.bi-hand-thumbs-up::before { content: map-get($bootstrap-icons-map, "hand-thumbs-up"); } +.bi-handbag-fill::before { content: map-get($bootstrap-icons-map, "handbag-fill"); } +.bi-handbag::before { content: map-get($bootstrap-icons-map, "handbag"); } +.bi-hash::before { content: map-get($bootstrap-icons-map, "hash"); } +.bi-hdd-fill::before { content: map-get($bootstrap-icons-map, "hdd-fill"); } +.bi-hdd-network-fill::before { content: map-get($bootstrap-icons-map, "hdd-network-fill"); } +.bi-hdd-network::before { content: map-get($bootstrap-icons-map, "hdd-network"); } +.bi-hdd-rack-fill::before { content: map-get($bootstrap-icons-map, "hdd-rack-fill"); } +.bi-hdd-rack::before { content: map-get($bootstrap-icons-map, "hdd-rack"); } +.bi-hdd-stack-fill::before { content: map-get($bootstrap-icons-map, "hdd-stack-fill"); } +.bi-hdd-stack::before { content: map-get($bootstrap-icons-map, "hdd-stack"); } +.bi-hdd::before { content: map-get($bootstrap-icons-map, "hdd"); } +.bi-headphones::before { content: map-get($bootstrap-icons-map, "headphones"); } +.bi-headset::before { content: map-get($bootstrap-icons-map, "headset"); } +.bi-heart-fill::before { content: map-get($bootstrap-icons-map, "heart-fill"); } +.bi-heart-half::before { content: map-get($bootstrap-icons-map, "heart-half"); } +.bi-heart::before { content: map-get($bootstrap-icons-map, "heart"); } +.bi-heptagon-fill::before { content: map-get($bootstrap-icons-map, "heptagon-fill"); } +.bi-heptagon-half::before { content: map-get($bootstrap-icons-map, "heptagon-half"); } +.bi-heptagon::before { content: map-get($bootstrap-icons-map, "heptagon"); } +.bi-hexagon-fill::before { content: map-get($bootstrap-icons-map, "hexagon-fill"); } +.bi-hexagon-half::before { content: map-get($bootstrap-icons-map, "hexagon-half"); } +.bi-hexagon::before { content: map-get($bootstrap-icons-map, "hexagon"); } +.bi-hourglass-bottom::before { content: map-get($bootstrap-icons-map, "hourglass-bottom"); } +.bi-hourglass-split::before { content: map-get($bootstrap-icons-map, "hourglass-split"); } +.bi-hourglass-top::before { content: map-get($bootstrap-icons-map, "hourglass-top"); } +.bi-hourglass::before { content: map-get($bootstrap-icons-map, "hourglass"); } +.bi-house-door-fill::before { content: map-get($bootstrap-icons-map, "house-door-fill"); } +.bi-house-door::before { content: map-get($bootstrap-icons-map, "house-door"); } +.bi-house-fill::before { content: map-get($bootstrap-icons-map, "house-fill"); } +.bi-house::before { content: map-get($bootstrap-icons-map, "house"); } +.bi-hr::before { content: map-get($bootstrap-icons-map, "hr"); } +.bi-hurricane::before { content: map-get($bootstrap-icons-map, "hurricane"); } +.bi-image-alt::before { content: map-get($bootstrap-icons-map, "image-alt"); } +.bi-image-fill::before { content: map-get($bootstrap-icons-map, "image-fill"); } +.bi-image::before { content: map-get($bootstrap-icons-map, "image"); } +.bi-images::before { content: map-get($bootstrap-icons-map, "images"); } +.bi-inbox-fill::before { content: map-get($bootstrap-icons-map, "inbox-fill"); } +.bi-inbox::before { content: map-get($bootstrap-icons-map, "inbox"); } +.bi-inboxes-fill::before { content: map-get($bootstrap-icons-map, "inboxes-fill"); } +.bi-inboxes::before { content: map-get($bootstrap-icons-map, "inboxes"); } +.bi-info-circle-fill::before { content: map-get($bootstrap-icons-map, "info-circle-fill"); } +.bi-info-circle::before { content: map-get($bootstrap-icons-map, "info-circle"); } +.bi-info-square-fill::before { content: map-get($bootstrap-icons-map, "info-square-fill"); } +.bi-info-square::before { content: map-get($bootstrap-icons-map, "info-square"); } +.bi-info::before { content: map-get($bootstrap-icons-map, "info"); } +.bi-input-cursor-text::before { content: map-get($bootstrap-icons-map, "input-cursor-text"); } +.bi-input-cursor::before { content: map-get($bootstrap-icons-map, "input-cursor"); } +.bi-instagram::before { content: map-get($bootstrap-icons-map, "instagram"); } +.bi-intersect::before { content: map-get($bootstrap-icons-map, "intersect"); } +.bi-journal-album::before { content: map-get($bootstrap-icons-map, "journal-album"); } +.bi-journal-arrow-down::before { content: map-get($bootstrap-icons-map, "journal-arrow-down"); } +.bi-journal-arrow-up::before { content: map-get($bootstrap-icons-map, "journal-arrow-up"); } +.bi-journal-bookmark-fill::before { content: map-get($bootstrap-icons-map, "journal-bookmark-fill"); } +.bi-journal-bookmark::before { content: map-get($bootstrap-icons-map, "journal-bookmark"); } +.bi-journal-check::before { content: map-get($bootstrap-icons-map, "journal-check"); } +.bi-journal-code::before { content: map-get($bootstrap-icons-map, "journal-code"); } +.bi-journal-medical::before { content: map-get($bootstrap-icons-map, "journal-medical"); } +.bi-journal-minus::before { content: map-get($bootstrap-icons-map, "journal-minus"); } +.bi-journal-plus::before { content: map-get($bootstrap-icons-map, "journal-plus"); } +.bi-journal-richtext::before { content: map-get($bootstrap-icons-map, "journal-richtext"); } +.bi-journal-text::before { content: map-get($bootstrap-icons-map, "journal-text"); } +.bi-journal-x::before { content: map-get($bootstrap-icons-map, "journal-x"); } +.bi-journal::before { content: map-get($bootstrap-icons-map, "journal"); } +.bi-journals::before { content: map-get($bootstrap-icons-map, "journals"); } +.bi-joystick::before { content: map-get($bootstrap-icons-map, "joystick"); } +.bi-justify-left::before { content: map-get($bootstrap-icons-map, "justify-left"); } +.bi-justify-right::before { content: map-get($bootstrap-icons-map, "justify-right"); } +.bi-justify::before { content: map-get($bootstrap-icons-map, "justify"); } +.bi-kanban-fill::before { content: map-get($bootstrap-icons-map, "kanban-fill"); } +.bi-kanban::before { content: map-get($bootstrap-icons-map, "kanban"); } +.bi-key-fill::before { content: map-get($bootstrap-icons-map, "key-fill"); } +.bi-key::before { content: map-get($bootstrap-icons-map, "key"); } +.bi-keyboard-fill::before { content: map-get($bootstrap-icons-map, "keyboard-fill"); } +.bi-keyboard::before { content: map-get($bootstrap-icons-map, "keyboard"); } +.bi-ladder::before { content: map-get($bootstrap-icons-map, "ladder"); } +.bi-lamp-fill::before { content: map-get($bootstrap-icons-map, "lamp-fill"); } +.bi-lamp::before { content: map-get($bootstrap-icons-map, "lamp"); } +.bi-laptop-fill::before { content: map-get($bootstrap-icons-map, "laptop-fill"); } +.bi-laptop::before { content: map-get($bootstrap-icons-map, "laptop"); } +.bi-layer-backward::before { content: map-get($bootstrap-icons-map, "layer-backward"); } +.bi-layer-forward::before { content: map-get($bootstrap-icons-map, "layer-forward"); } +.bi-layers-fill::before { content: map-get($bootstrap-icons-map, "layers-fill"); } +.bi-layers-half::before { content: map-get($bootstrap-icons-map, "layers-half"); } +.bi-layers::before { content: map-get($bootstrap-icons-map, "layers"); } +.bi-layout-sidebar-inset-reverse::before { content: map-get($bootstrap-icons-map, "layout-sidebar-inset-reverse"); } +.bi-layout-sidebar-inset::before { content: map-get($bootstrap-icons-map, "layout-sidebar-inset"); } +.bi-layout-sidebar-reverse::before { content: map-get($bootstrap-icons-map, "layout-sidebar-reverse"); } +.bi-layout-sidebar::before { content: map-get($bootstrap-icons-map, "layout-sidebar"); } +.bi-layout-split::before { content: map-get($bootstrap-icons-map, "layout-split"); } +.bi-layout-text-sidebar-reverse::before { content: map-get($bootstrap-icons-map, "layout-text-sidebar-reverse"); } +.bi-layout-text-sidebar::before { content: map-get($bootstrap-icons-map, "layout-text-sidebar"); } +.bi-layout-text-window-reverse::before { content: map-get($bootstrap-icons-map, "layout-text-window-reverse"); } +.bi-layout-text-window::before { content: map-get($bootstrap-icons-map, "layout-text-window"); } +.bi-layout-three-columns::before { content: map-get($bootstrap-icons-map, "layout-three-columns"); } +.bi-layout-wtf::before { content: map-get($bootstrap-icons-map, "layout-wtf"); } +.bi-life-preserver::before { content: map-get($bootstrap-icons-map, "life-preserver"); } +.bi-lightbulb-fill::before { content: map-get($bootstrap-icons-map, "lightbulb-fill"); } +.bi-lightbulb-off-fill::before { content: map-get($bootstrap-icons-map, "lightbulb-off-fill"); } +.bi-lightbulb-off::before { content: map-get($bootstrap-icons-map, "lightbulb-off"); } +.bi-lightbulb::before { content: map-get($bootstrap-icons-map, "lightbulb"); } +.bi-lightning-charge-fill::before { content: map-get($bootstrap-icons-map, "lightning-charge-fill"); } +.bi-lightning-charge::before { content: map-get($bootstrap-icons-map, "lightning-charge"); } +.bi-lightning-fill::before { content: map-get($bootstrap-icons-map, "lightning-fill"); } +.bi-lightning::before { content: map-get($bootstrap-icons-map, "lightning"); } +.bi-link-45deg::before { content: map-get($bootstrap-icons-map, "link-45deg"); } +.bi-link::before { content: map-get($bootstrap-icons-map, "link"); } +.bi-linkedin::before { content: map-get($bootstrap-icons-map, "linkedin"); } +.bi-list-check::before { content: map-get($bootstrap-icons-map, "list-check"); } +.bi-list-nested::before { content: map-get($bootstrap-icons-map, "list-nested"); } +.bi-list-ol::before { content: map-get($bootstrap-icons-map, "list-ol"); } +.bi-list-stars::before { content: map-get($bootstrap-icons-map, "list-stars"); } +.bi-list-task::before { content: map-get($bootstrap-icons-map, "list-task"); } +.bi-list-ul::before { content: map-get($bootstrap-icons-map, "list-ul"); } +.bi-list::before { content: map-get($bootstrap-icons-map, "list"); } +.bi-lock-fill::before { content: map-get($bootstrap-icons-map, "lock-fill"); } +.bi-lock::before { content: map-get($bootstrap-icons-map, "lock"); } +.bi-mailbox::before { content: map-get($bootstrap-icons-map, "mailbox"); } +.bi-mailbox2::before { content: map-get($bootstrap-icons-map, "mailbox2"); } +.bi-map-fill::before { content: map-get($bootstrap-icons-map, "map-fill"); } +.bi-map::before { content: map-get($bootstrap-icons-map, "map"); } +.bi-markdown-fill::before { content: map-get($bootstrap-icons-map, "markdown-fill"); } +.bi-markdown::before { content: map-get($bootstrap-icons-map, "markdown"); } +.bi-mask::before { content: map-get($bootstrap-icons-map, "mask"); } +.bi-megaphone-fill::before { content: map-get($bootstrap-icons-map, "megaphone-fill"); } +.bi-megaphone::before { content: map-get($bootstrap-icons-map, "megaphone"); } +.bi-menu-app-fill::before { content: map-get($bootstrap-icons-map, "menu-app-fill"); } +.bi-menu-app::before { content: map-get($bootstrap-icons-map, "menu-app"); } +.bi-menu-button-fill::before { content: map-get($bootstrap-icons-map, "menu-button-fill"); } +.bi-menu-button-wide-fill::before { content: map-get($bootstrap-icons-map, "menu-button-wide-fill"); } +.bi-menu-button-wide::before { content: map-get($bootstrap-icons-map, "menu-button-wide"); } +.bi-menu-button::before { content: map-get($bootstrap-icons-map, "menu-button"); } +.bi-menu-down::before { content: map-get($bootstrap-icons-map, "menu-down"); } +.bi-menu-up::before { content: map-get($bootstrap-icons-map, "menu-up"); } +.bi-mic-fill::before { content: map-get($bootstrap-icons-map, "mic-fill"); } +.bi-mic-mute-fill::before { content: map-get($bootstrap-icons-map, "mic-mute-fill"); } +.bi-mic-mute::before { content: map-get($bootstrap-icons-map, "mic-mute"); } +.bi-mic::before { content: map-get($bootstrap-icons-map, "mic"); } +.bi-minecart-loaded::before { content: map-get($bootstrap-icons-map, "minecart-loaded"); } +.bi-minecart::before { content: map-get($bootstrap-icons-map, "minecart"); } +.bi-moisture::before { content: map-get($bootstrap-icons-map, "moisture"); } +.bi-moon-fill::before { content: map-get($bootstrap-icons-map, "moon-fill"); } +.bi-moon-stars-fill::before { content: map-get($bootstrap-icons-map, "moon-stars-fill"); } +.bi-moon-stars::before { content: map-get($bootstrap-icons-map, "moon-stars"); } +.bi-moon::before { content: map-get($bootstrap-icons-map, "moon"); } +.bi-mouse-fill::before { content: map-get($bootstrap-icons-map, "mouse-fill"); } +.bi-mouse::before { content: map-get($bootstrap-icons-map, "mouse"); } +.bi-mouse2-fill::before { content: map-get($bootstrap-icons-map, "mouse2-fill"); } +.bi-mouse2::before { content: map-get($bootstrap-icons-map, "mouse2"); } +.bi-mouse3-fill::before { content: map-get($bootstrap-icons-map, "mouse3-fill"); } +.bi-mouse3::before { content: map-get($bootstrap-icons-map, "mouse3"); } +.bi-music-note-beamed::before { content: map-get($bootstrap-icons-map, "music-note-beamed"); } +.bi-music-note-list::before { content: map-get($bootstrap-icons-map, "music-note-list"); } +.bi-music-note::before { content: map-get($bootstrap-icons-map, "music-note"); } +.bi-music-player-fill::before { content: map-get($bootstrap-icons-map, "music-player-fill"); } +.bi-music-player::before { content: map-get($bootstrap-icons-map, "music-player"); } +.bi-newspaper::before { content: map-get($bootstrap-icons-map, "newspaper"); } +.bi-node-minus-fill::before { content: map-get($bootstrap-icons-map, "node-minus-fill"); } +.bi-node-minus::before { content: map-get($bootstrap-icons-map, "node-minus"); } +.bi-node-plus-fill::before { content: map-get($bootstrap-icons-map, "node-plus-fill"); } +.bi-node-plus::before { content: map-get($bootstrap-icons-map, "node-plus"); } +.bi-nut-fill::before { content: map-get($bootstrap-icons-map, "nut-fill"); } +.bi-nut::before { content: map-get($bootstrap-icons-map, "nut"); } +.bi-octagon-fill::before { content: map-get($bootstrap-icons-map, "octagon-fill"); } +.bi-octagon-half::before { content: map-get($bootstrap-icons-map, "octagon-half"); } +.bi-octagon::before { content: map-get($bootstrap-icons-map, "octagon"); } +.bi-option::before { content: map-get($bootstrap-icons-map, "option"); } +.bi-outlet::before { content: map-get($bootstrap-icons-map, "outlet"); } +.bi-paint-bucket::before { content: map-get($bootstrap-icons-map, "paint-bucket"); } +.bi-palette-fill::before { content: map-get($bootstrap-icons-map, "palette-fill"); } +.bi-palette::before { content: map-get($bootstrap-icons-map, "palette"); } +.bi-palette2::before { content: map-get($bootstrap-icons-map, "palette2"); } +.bi-paperclip::before { content: map-get($bootstrap-icons-map, "paperclip"); } +.bi-paragraph::before { content: map-get($bootstrap-icons-map, "paragraph"); } +.bi-patch-check-fill::before { content: map-get($bootstrap-icons-map, "patch-check-fill"); } +.bi-patch-check::before { content: map-get($bootstrap-icons-map, "patch-check"); } +.bi-patch-exclamation-fill::before { content: map-get($bootstrap-icons-map, "patch-exclamation-fill"); } +.bi-patch-exclamation::before { content: map-get($bootstrap-icons-map, "patch-exclamation"); } +.bi-patch-minus-fill::before { content: map-get($bootstrap-icons-map, "patch-minus-fill"); } +.bi-patch-minus::before { content: map-get($bootstrap-icons-map, "patch-minus"); } +.bi-patch-plus-fill::before { content: map-get($bootstrap-icons-map, "patch-plus-fill"); } +.bi-patch-plus::before { content: map-get($bootstrap-icons-map, "patch-plus"); } +.bi-patch-question-fill::before { content: map-get($bootstrap-icons-map, "patch-question-fill"); } +.bi-patch-question::before { content: map-get($bootstrap-icons-map, "patch-question"); } +.bi-pause-btn-fill::before { content: map-get($bootstrap-icons-map, "pause-btn-fill"); } +.bi-pause-btn::before { content: map-get($bootstrap-icons-map, "pause-btn"); } +.bi-pause-circle-fill::before { content: map-get($bootstrap-icons-map, "pause-circle-fill"); } +.bi-pause-circle::before { content: map-get($bootstrap-icons-map, "pause-circle"); } +.bi-pause-fill::before { content: map-get($bootstrap-icons-map, "pause-fill"); } +.bi-pause::before { content: map-get($bootstrap-icons-map, "pause"); } +.bi-peace-fill::before { content: map-get($bootstrap-icons-map, "peace-fill"); } +.bi-peace::before { content: map-get($bootstrap-icons-map, "peace"); } +.bi-pen-fill::before { content: map-get($bootstrap-icons-map, "pen-fill"); } +.bi-pen::before { content: map-get($bootstrap-icons-map, "pen"); } +.bi-pencil-fill::before { content: map-get($bootstrap-icons-map, "pencil-fill"); } +.bi-pencil-square::before { content: map-get($bootstrap-icons-map, "pencil-square"); } +.bi-pencil::before { content: map-get($bootstrap-icons-map, "pencil"); } +.bi-pentagon-fill::before { content: map-get($bootstrap-icons-map, "pentagon-fill"); } +.bi-pentagon-half::before { content: map-get($bootstrap-icons-map, "pentagon-half"); } +.bi-pentagon::before { content: map-get($bootstrap-icons-map, "pentagon"); } +.bi-people-fill::before { content: map-get($bootstrap-icons-map, "people-fill"); } +.bi-people::before { content: map-get($bootstrap-icons-map, "people"); } +.bi-percent::before { content: map-get($bootstrap-icons-map, "percent"); } +.bi-person-badge-fill::before { content: map-get($bootstrap-icons-map, "person-badge-fill"); } +.bi-person-badge::before { content: map-get($bootstrap-icons-map, "person-badge"); } +.bi-person-bounding-box::before { content: map-get($bootstrap-icons-map, "person-bounding-box"); } +.bi-person-check-fill::before { content: map-get($bootstrap-icons-map, "person-check-fill"); } +.bi-person-check::before { content: map-get($bootstrap-icons-map, "person-check"); } +.bi-person-circle::before { content: map-get($bootstrap-icons-map, "person-circle"); } +.bi-person-dash-fill::before { content: map-get($bootstrap-icons-map, "person-dash-fill"); } +.bi-person-dash::before { content: map-get($bootstrap-icons-map, "person-dash"); } +.bi-person-fill::before { content: map-get($bootstrap-icons-map, "person-fill"); } +.bi-person-lines-fill::before { content: map-get($bootstrap-icons-map, "person-lines-fill"); } +.bi-person-plus-fill::before { content: map-get($bootstrap-icons-map, "person-plus-fill"); } +.bi-person-plus::before { content: map-get($bootstrap-icons-map, "person-plus"); } +.bi-person-square::before { content: map-get($bootstrap-icons-map, "person-square"); } +.bi-person-x-fill::before { content: map-get($bootstrap-icons-map, "person-x-fill"); } +.bi-person-x::before { content: map-get($bootstrap-icons-map, "person-x"); } +.bi-person::before { content: map-get($bootstrap-icons-map, "person"); } +.bi-phone-fill::before { content: map-get($bootstrap-icons-map, "phone-fill"); } +.bi-phone-landscape-fill::before { content: map-get($bootstrap-icons-map, "phone-landscape-fill"); } +.bi-phone-landscape::before { content: map-get($bootstrap-icons-map, "phone-landscape"); } +.bi-phone-vibrate-fill::before { content: map-get($bootstrap-icons-map, "phone-vibrate-fill"); } +.bi-phone-vibrate::before { content: map-get($bootstrap-icons-map, "phone-vibrate"); } +.bi-phone::before { content: map-get($bootstrap-icons-map, "phone"); } +.bi-pie-chart-fill::before { content: map-get($bootstrap-icons-map, "pie-chart-fill"); } +.bi-pie-chart::before { content: map-get($bootstrap-icons-map, "pie-chart"); } +.bi-pin-angle-fill::before { content: map-get($bootstrap-icons-map, "pin-angle-fill"); } +.bi-pin-angle::before { content: map-get($bootstrap-icons-map, "pin-angle"); } +.bi-pin-fill::before { content: map-get($bootstrap-icons-map, "pin-fill"); } +.bi-pin::before { content: map-get($bootstrap-icons-map, "pin"); } +.bi-pip-fill::before { content: map-get($bootstrap-icons-map, "pip-fill"); } +.bi-pip::before { content: map-get($bootstrap-icons-map, "pip"); } +.bi-play-btn-fill::before { content: map-get($bootstrap-icons-map, "play-btn-fill"); } +.bi-play-btn::before { content: map-get($bootstrap-icons-map, "play-btn"); } +.bi-play-circle-fill::before { content: map-get($bootstrap-icons-map, "play-circle-fill"); } +.bi-play-circle::before { content: map-get($bootstrap-icons-map, "play-circle"); } +.bi-play-fill::before { content: map-get($bootstrap-icons-map, "play-fill"); } +.bi-play::before { content: map-get($bootstrap-icons-map, "play"); } +.bi-plug-fill::before { content: map-get($bootstrap-icons-map, "plug-fill"); } +.bi-plug::before { content: map-get($bootstrap-icons-map, "plug"); } +.bi-plus-circle-dotted::before { content: map-get($bootstrap-icons-map, "plus-circle-dotted"); } +.bi-plus-circle-fill::before { content: map-get($bootstrap-icons-map, "plus-circle-fill"); } +.bi-plus-circle::before { content: map-get($bootstrap-icons-map, "plus-circle"); } +.bi-plus-square-dotted::before { content: map-get($bootstrap-icons-map, "plus-square-dotted"); } +.bi-plus-square-fill::before { content: map-get($bootstrap-icons-map, "plus-square-fill"); } +.bi-plus-square::before { content: map-get($bootstrap-icons-map, "plus-square"); } +.bi-plus::before { content: map-get($bootstrap-icons-map, "plus"); } +.bi-power::before { content: map-get($bootstrap-icons-map, "power"); } +.bi-printer-fill::before { content: map-get($bootstrap-icons-map, "printer-fill"); } +.bi-printer::before { content: map-get($bootstrap-icons-map, "printer"); } +.bi-puzzle-fill::before { content: map-get($bootstrap-icons-map, "puzzle-fill"); } +.bi-puzzle::before { content: map-get($bootstrap-icons-map, "puzzle"); } +.bi-question-circle-fill::before { content: map-get($bootstrap-icons-map, "question-circle-fill"); } +.bi-question-circle::before { content: map-get($bootstrap-icons-map, "question-circle"); } +.bi-question-diamond-fill::before { content: map-get($bootstrap-icons-map, "question-diamond-fill"); } +.bi-question-diamond::before { content: map-get($bootstrap-icons-map, "question-diamond"); } +.bi-question-octagon-fill::before { content: map-get($bootstrap-icons-map, "question-octagon-fill"); } +.bi-question-octagon::before { content: map-get($bootstrap-icons-map, "question-octagon"); } +.bi-question-square-fill::before { content: map-get($bootstrap-icons-map, "question-square-fill"); } +.bi-question-square::before { content: map-get($bootstrap-icons-map, "question-square"); } +.bi-question::before { content: map-get($bootstrap-icons-map, "question"); } +.bi-rainbow::before { content: map-get($bootstrap-icons-map, "rainbow"); } +.bi-receipt-cutoff::before { content: map-get($bootstrap-icons-map, "receipt-cutoff"); } +.bi-receipt::before { content: map-get($bootstrap-icons-map, "receipt"); } +.bi-reception-0::before { content: map-get($bootstrap-icons-map, "reception-0"); } +.bi-reception-1::before { content: map-get($bootstrap-icons-map, "reception-1"); } +.bi-reception-2::before { content: map-get($bootstrap-icons-map, "reception-2"); } +.bi-reception-3::before { content: map-get($bootstrap-icons-map, "reception-3"); } +.bi-reception-4::before { content: map-get($bootstrap-icons-map, "reception-4"); } +.bi-record-btn-fill::before { content: map-get($bootstrap-icons-map, "record-btn-fill"); } +.bi-record-btn::before { content: map-get($bootstrap-icons-map, "record-btn"); } +.bi-record-circle-fill::before { content: map-get($bootstrap-icons-map, "record-circle-fill"); } +.bi-record-circle::before { content: map-get($bootstrap-icons-map, "record-circle"); } +.bi-record-fill::before { content: map-get($bootstrap-icons-map, "record-fill"); } +.bi-record::before { content: map-get($bootstrap-icons-map, "record"); } +.bi-record2-fill::before { content: map-get($bootstrap-icons-map, "record2-fill"); } +.bi-record2::before { content: map-get($bootstrap-icons-map, "record2"); } +.bi-reply-all-fill::before { content: map-get($bootstrap-icons-map, "reply-all-fill"); } +.bi-reply-all::before { content: map-get($bootstrap-icons-map, "reply-all"); } +.bi-reply-fill::before { content: map-get($bootstrap-icons-map, "reply-fill"); } +.bi-reply::before { content: map-get($bootstrap-icons-map, "reply"); } +.bi-rss-fill::before { content: map-get($bootstrap-icons-map, "rss-fill"); } +.bi-rss::before { content: map-get($bootstrap-icons-map, "rss"); } +.bi-rulers::before { content: map-get($bootstrap-icons-map, "rulers"); } +.bi-save-fill::before { content: map-get($bootstrap-icons-map, "save-fill"); } +.bi-save::before { content: map-get($bootstrap-icons-map, "save"); } +.bi-save2-fill::before { content: map-get($bootstrap-icons-map, "save2-fill"); } +.bi-save2::before { content: map-get($bootstrap-icons-map, "save2"); } +.bi-scissors::before { content: map-get($bootstrap-icons-map, "scissors"); } +.bi-screwdriver::before { content: map-get($bootstrap-icons-map, "screwdriver"); } +.bi-search::before { content: map-get($bootstrap-icons-map, "search"); } +.bi-segmented-nav::before { content: map-get($bootstrap-icons-map, "segmented-nav"); } +.bi-server::before { content: map-get($bootstrap-icons-map, "server"); } +.bi-share-fill::before { content: map-get($bootstrap-icons-map, "share-fill"); } +.bi-share::before { content: map-get($bootstrap-icons-map, "share"); } +.bi-shield-check::before { content: map-get($bootstrap-icons-map, "shield-check"); } +.bi-shield-exclamation::before { content: map-get($bootstrap-icons-map, "shield-exclamation"); } +.bi-shield-fill-check::before { content: map-get($bootstrap-icons-map, "shield-fill-check"); } +.bi-shield-fill-exclamation::before { content: map-get($bootstrap-icons-map, "shield-fill-exclamation"); } +.bi-shield-fill-minus::before { content: map-get($bootstrap-icons-map, "shield-fill-minus"); } +.bi-shield-fill-plus::before { content: map-get($bootstrap-icons-map, "shield-fill-plus"); } +.bi-shield-fill-x::before { content: map-get($bootstrap-icons-map, "shield-fill-x"); } +.bi-shield-fill::before { content: map-get($bootstrap-icons-map, "shield-fill"); } +.bi-shield-lock-fill::before { content: map-get($bootstrap-icons-map, "shield-lock-fill"); } +.bi-shield-lock::before { content: map-get($bootstrap-icons-map, "shield-lock"); } +.bi-shield-minus::before { content: map-get($bootstrap-icons-map, "shield-minus"); } +.bi-shield-plus::before { content: map-get($bootstrap-icons-map, "shield-plus"); } +.bi-shield-shaded::before { content: map-get($bootstrap-icons-map, "shield-shaded"); } +.bi-shield-slash-fill::before { content: map-get($bootstrap-icons-map, "shield-slash-fill"); } +.bi-shield-slash::before { content: map-get($bootstrap-icons-map, "shield-slash"); } +.bi-shield-x::before { content: map-get($bootstrap-icons-map, "shield-x"); } +.bi-shield::before { content: map-get($bootstrap-icons-map, "shield"); } +.bi-shift-fill::before { content: map-get($bootstrap-icons-map, "shift-fill"); } +.bi-shift::before { content: map-get($bootstrap-icons-map, "shift"); } +.bi-shop-window::before { content: map-get($bootstrap-icons-map, "shop-window"); } +.bi-shop::before { content: map-get($bootstrap-icons-map, "shop"); } +.bi-shuffle::before { content: map-get($bootstrap-icons-map, "shuffle"); } +.bi-signpost-2-fill::before { content: map-get($bootstrap-icons-map, "signpost-2-fill"); } +.bi-signpost-2::before { content: map-get($bootstrap-icons-map, "signpost-2"); } +.bi-signpost-fill::before { content: map-get($bootstrap-icons-map, "signpost-fill"); } +.bi-signpost-split-fill::before { content: map-get($bootstrap-icons-map, "signpost-split-fill"); } +.bi-signpost-split::before { content: map-get($bootstrap-icons-map, "signpost-split"); } +.bi-signpost::before { content: map-get($bootstrap-icons-map, "signpost"); } +.bi-sim-fill::before { content: map-get($bootstrap-icons-map, "sim-fill"); } +.bi-sim::before { content: map-get($bootstrap-icons-map, "sim"); } +.bi-skip-backward-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-btn-fill"); } +.bi-skip-backward-btn::before { content: map-get($bootstrap-icons-map, "skip-backward-btn"); } +.bi-skip-backward-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-circle-fill"); } +.bi-skip-backward-circle::before { content: map-get($bootstrap-icons-map, "skip-backward-circle"); } +.bi-skip-backward-fill::before { content: map-get($bootstrap-icons-map, "skip-backward-fill"); } +.bi-skip-backward::before { content: map-get($bootstrap-icons-map, "skip-backward"); } +.bi-skip-end-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-end-btn-fill"); } +.bi-skip-end-btn::before { content: map-get($bootstrap-icons-map, "skip-end-btn"); } +.bi-skip-end-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-end-circle-fill"); } +.bi-skip-end-circle::before { content: map-get($bootstrap-icons-map, "skip-end-circle"); } +.bi-skip-end-fill::before { content: map-get($bootstrap-icons-map, "skip-end-fill"); } +.bi-skip-end::before { content: map-get($bootstrap-icons-map, "skip-end"); } +.bi-skip-forward-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-btn-fill"); } +.bi-skip-forward-btn::before { content: map-get($bootstrap-icons-map, "skip-forward-btn"); } +.bi-skip-forward-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-circle-fill"); } +.bi-skip-forward-circle::before { content: map-get($bootstrap-icons-map, "skip-forward-circle"); } +.bi-skip-forward-fill::before { content: map-get($bootstrap-icons-map, "skip-forward-fill"); } +.bi-skip-forward::before { content: map-get($bootstrap-icons-map, "skip-forward"); } +.bi-skip-start-btn-fill::before { content: map-get($bootstrap-icons-map, "skip-start-btn-fill"); } +.bi-skip-start-btn::before { content: map-get($bootstrap-icons-map, "skip-start-btn"); } +.bi-skip-start-circle-fill::before { content: map-get($bootstrap-icons-map, "skip-start-circle-fill"); } +.bi-skip-start-circle::before { content: map-get($bootstrap-icons-map, "skip-start-circle"); } +.bi-skip-start-fill::before { content: map-get($bootstrap-icons-map, "skip-start-fill"); } +.bi-skip-start::before { content: map-get($bootstrap-icons-map, "skip-start"); } +.bi-slack::before { content: map-get($bootstrap-icons-map, "slack"); } +.bi-slash-circle-fill::before { content: map-get($bootstrap-icons-map, "slash-circle-fill"); } +.bi-slash-circle::before { content: map-get($bootstrap-icons-map, "slash-circle"); } +.bi-slash-square-fill::before { content: map-get($bootstrap-icons-map, "slash-square-fill"); } +.bi-slash-square::before { content: map-get($bootstrap-icons-map, "slash-square"); } +.bi-slash::before { content: map-get($bootstrap-icons-map, "slash"); } +.bi-sliders::before { content: map-get($bootstrap-icons-map, "sliders"); } +.bi-smartwatch::before { content: map-get($bootstrap-icons-map, "smartwatch"); } +.bi-snow::before { content: map-get($bootstrap-icons-map, "snow"); } +.bi-snow2::before { content: map-get($bootstrap-icons-map, "snow2"); } +.bi-snow3::before { content: map-get($bootstrap-icons-map, "snow3"); } +.bi-sort-alpha-down-alt::before { content: map-get($bootstrap-icons-map, "sort-alpha-down-alt"); } +.bi-sort-alpha-down::before { content: map-get($bootstrap-icons-map, "sort-alpha-down"); } +.bi-sort-alpha-up-alt::before { content: map-get($bootstrap-icons-map, "sort-alpha-up-alt"); } +.bi-sort-alpha-up::before { content: map-get($bootstrap-icons-map, "sort-alpha-up"); } +.bi-sort-down-alt::before { content: map-get($bootstrap-icons-map, "sort-down-alt"); } +.bi-sort-down::before { content: map-get($bootstrap-icons-map, "sort-down"); } +.bi-sort-numeric-down-alt::before { content: map-get($bootstrap-icons-map, "sort-numeric-down-alt"); } +.bi-sort-numeric-down::before { content: map-get($bootstrap-icons-map, "sort-numeric-down"); } +.bi-sort-numeric-up-alt::before { content: map-get($bootstrap-icons-map, "sort-numeric-up-alt"); } +.bi-sort-numeric-up::before { content: map-get($bootstrap-icons-map, "sort-numeric-up"); } +.bi-sort-up-alt::before { content: map-get($bootstrap-icons-map, "sort-up-alt"); } +.bi-sort-up::before { content: map-get($bootstrap-icons-map, "sort-up"); } +.bi-soundwave::before { content: map-get($bootstrap-icons-map, "soundwave"); } +.bi-speaker-fill::before { content: map-get($bootstrap-icons-map, "speaker-fill"); } +.bi-speaker::before { content: map-get($bootstrap-icons-map, "speaker"); } +.bi-speedometer::before { content: map-get($bootstrap-icons-map, "speedometer"); } +.bi-speedometer2::before { content: map-get($bootstrap-icons-map, "speedometer2"); } +.bi-spellcheck::before { content: map-get($bootstrap-icons-map, "spellcheck"); } +.bi-square-fill::before { content: map-get($bootstrap-icons-map, "square-fill"); } +.bi-square-half::before { content: map-get($bootstrap-icons-map, "square-half"); } +.bi-square::before { content: map-get($bootstrap-icons-map, "square"); } +.bi-stack::before { content: map-get($bootstrap-icons-map, "stack"); } +.bi-star-fill::before { content: map-get($bootstrap-icons-map, "star-fill"); } +.bi-star-half::before { content: map-get($bootstrap-icons-map, "star-half"); } +.bi-star::before { content: map-get($bootstrap-icons-map, "star"); } +.bi-stars::before { content: map-get($bootstrap-icons-map, "stars"); } +.bi-stickies-fill::before { content: map-get($bootstrap-icons-map, "stickies-fill"); } +.bi-stickies::before { content: map-get($bootstrap-icons-map, "stickies"); } +.bi-sticky-fill::before { content: map-get($bootstrap-icons-map, "sticky-fill"); } +.bi-sticky::before { content: map-get($bootstrap-icons-map, "sticky"); } +.bi-stop-btn-fill::before { content: map-get($bootstrap-icons-map, "stop-btn-fill"); } +.bi-stop-btn::before { content: map-get($bootstrap-icons-map, "stop-btn"); } +.bi-stop-circle-fill::before { content: map-get($bootstrap-icons-map, "stop-circle-fill"); } +.bi-stop-circle::before { content: map-get($bootstrap-icons-map, "stop-circle"); } +.bi-stop-fill::before { content: map-get($bootstrap-icons-map, "stop-fill"); } +.bi-stop::before { content: map-get($bootstrap-icons-map, "stop"); } +.bi-stoplights-fill::before { content: map-get($bootstrap-icons-map, "stoplights-fill"); } +.bi-stoplights::before { content: map-get($bootstrap-icons-map, "stoplights"); } +.bi-stopwatch-fill::before { content: map-get($bootstrap-icons-map, "stopwatch-fill"); } +.bi-stopwatch::before { content: map-get($bootstrap-icons-map, "stopwatch"); } +.bi-subtract::before { content: map-get($bootstrap-icons-map, "subtract"); } +.bi-suit-club-fill::before { content: map-get($bootstrap-icons-map, "suit-club-fill"); } +.bi-suit-club::before { content: map-get($bootstrap-icons-map, "suit-club"); } +.bi-suit-diamond-fill::before { content: map-get($bootstrap-icons-map, "suit-diamond-fill"); } +.bi-suit-diamond::before { content: map-get($bootstrap-icons-map, "suit-diamond"); } +.bi-suit-heart-fill::before { content: map-get($bootstrap-icons-map, "suit-heart-fill"); } +.bi-suit-heart::before { content: map-get($bootstrap-icons-map, "suit-heart"); } +.bi-suit-spade-fill::before { content: map-get($bootstrap-icons-map, "suit-spade-fill"); } +.bi-suit-spade::before { content: map-get($bootstrap-icons-map, "suit-spade"); } +.bi-sun-fill::before { content: map-get($bootstrap-icons-map, "sun-fill"); } +.bi-sun::before { content: map-get($bootstrap-icons-map, "sun"); } +.bi-sunglasses::before { content: map-get($bootstrap-icons-map, "sunglasses"); } +.bi-sunrise-fill::before { content: map-get($bootstrap-icons-map, "sunrise-fill"); } +.bi-sunrise::before { content: map-get($bootstrap-icons-map, "sunrise"); } +.bi-sunset-fill::before { content: map-get($bootstrap-icons-map, "sunset-fill"); } +.bi-sunset::before { content: map-get($bootstrap-icons-map, "sunset"); } +.bi-symmetry-horizontal::before { content: map-get($bootstrap-icons-map, "symmetry-horizontal"); } +.bi-symmetry-vertical::before { content: map-get($bootstrap-icons-map, "symmetry-vertical"); } +.bi-table::before { content: map-get($bootstrap-icons-map, "table"); } +.bi-tablet-fill::before { content: map-get($bootstrap-icons-map, "tablet-fill"); } +.bi-tablet-landscape-fill::before { content: map-get($bootstrap-icons-map, "tablet-landscape-fill"); } +.bi-tablet-landscape::before { content: map-get($bootstrap-icons-map, "tablet-landscape"); } +.bi-tablet::before { content: map-get($bootstrap-icons-map, "tablet"); } +.bi-tag-fill::before { content: map-get($bootstrap-icons-map, "tag-fill"); } +.bi-tag::before { content: map-get($bootstrap-icons-map, "tag"); } +.bi-tags-fill::before { content: map-get($bootstrap-icons-map, "tags-fill"); } +.bi-tags::before { content: map-get($bootstrap-icons-map, "tags"); } +.bi-telegram::before { content: map-get($bootstrap-icons-map, "telegram"); } +.bi-telephone-fill::before { content: map-get($bootstrap-icons-map, "telephone-fill"); } +.bi-telephone-forward-fill::before { content: map-get($bootstrap-icons-map, "telephone-forward-fill"); } +.bi-telephone-forward::before { content: map-get($bootstrap-icons-map, "telephone-forward"); } +.bi-telephone-inbound-fill::before { content: map-get($bootstrap-icons-map, "telephone-inbound-fill"); } +.bi-telephone-inbound::before { content: map-get($bootstrap-icons-map, "telephone-inbound"); } +.bi-telephone-minus-fill::before { content: map-get($bootstrap-icons-map, "telephone-minus-fill"); } +.bi-telephone-minus::before { content: map-get($bootstrap-icons-map, "telephone-minus"); } +.bi-telephone-outbound-fill::before { content: map-get($bootstrap-icons-map, "telephone-outbound-fill"); } +.bi-telephone-outbound::before { content: map-get($bootstrap-icons-map, "telephone-outbound"); } +.bi-telephone-plus-fill::before { content: map-get($bootstrap-icons-map, "telephone-plus-fill"); } +.bi-telephone-plus::before { content: map-get($bootstrap-icons-map, "telephone-plus"); } +.bi-telephone-x-fill::before { content: map-get($bootstrap-icons-map, "telephone-x-fill"); } +.bi-telephone-x::before { content: map-get($bootstrap-icons-map, "telephone-x"); } +.bi-telephone::before { content: map-get($bootstrap-icons-map, "telephone"); } +.bi-terminal-fill::before { content: map-get($bootstrap-icons-map, "terminal-fill"); } +.bi-terminal::before { content: map-get($bootstrap-icons-map, "terminal"); } +.bi-text-center::before { content: map-get($bootstrap-icons-map, "text-center"); } +.bi-text-indent-left::before { content: map-get($bootstrap-icons-map, "text-indent-left"); } +.bi-text-indent-right::before { content: map-get($bootstrap-icons-map, "text-indent-right"); } +.bi-text-left::before { content: map-get($bootstrap-icons-map, "text-left"); } +.bi-text-paragraph::before { content: map-get($bootstrap-icons-map, "text-paragraph"); } +.bi-text-right::before { content: map-get($bootstrap-icons-map, "text-right"); } +.bi-textarea-resize::before { content: map-get($bootstrap-icons-map, "textarea-resize"); } +.bi-textarea-t::before { content: map-get($bootstrap-icons-map, "textarea-t"); } +.bi-textarea::before { content: map-get($bootstrap-icons-map, "textarea"); } +.bi-thermometer-half::before { content: map-get($bootstrap-icons-map, "thermometer-half"); } +.bi-thermometer-high::before { content: map-get($bootstrap-icons-map, "thermometer-high"); } +.bi-thermometer-low::before { content: map-get($bootstrap-icons-map, "thermometer-low"); } +.bi-thermometer-snow::before { content: map-get($bootstrap-icons-map, "thermometer-snow"); } +.bi-thermometer-sun::before { content: map-get($bootstrap-icons-map, "thermometer-sun"); } +.bi-thermometer::before { content: map-get($bootstrap-icons-map, "thermometer"); } +.bi-three-dots-vertical::before { content: map-get($bootstrap-icons-map, "three-dots-vertical"); } +.bi-three-dots::before { content: map-get($bootstrap-icons-map, "three-dots"); } +.bi-toggle-off::before { content: map-get($bootstrap-icons-map, "toggle-off"); } +.bi-toggle-on::before { content: map-get($bootstrap-icons-map, "toggle-on"); } +.bi-toggle2-off::before { content: map-get($bootstrap-icons-map, "toggle2-off"); } +.bi-toggle2-on::before { content: map-get($bootstrap-icons-map, "toggle2-on"); } +.bi-toggles::before { content: map-get($bootstrap-icons-map, "toggles"); } +.bi-toggles2::before { content: map-get($bootstrap-icons-map, "toggles2"); } +.bi-tools::before { content: map-get($bootstrap-icons-map, "tools"); } +.bi-tornado::before { content: map-get($bootstrap-icons-map, "tornado"); } +.bi-trash-fill::before { content: map-get($bootstrap-icons-map, "trash-fill"); } +.bi-trash::before { content: map-get($bootstrap-icons-map, "trash"); } +.bi-trash2-fill::before { content: map-get($bootstrap-icons-map, "trash2-fill"); } +.bi-trash2::before { content: map-get($bootstrap-icons-map, "trash2"); } +.bi-tree-fill::before { content: map-get($bootstrap-icons-map, "tree-fill"); } +.bi-tree::before { content: map-get($bootstrap-icons-map, "tree"); } +.bi-triangle-fill::before { content: map-get($bootstrap-icons-map, "triangle-fill"); } +.bi-triangle-half::before { content: map-get($bootstrap-icons-map, "triangle-half"); } +.bi-triangle::before { content: map-get($bootstrap-icons-map, "triangle"); } +.bi-trophy-fill::before { content: map-get($bootstrap-icons-map, "trophy-fill"); } +.bi-trophy::before { content: map-get($bootstrap-icons-map, "trophy"); } +.bi-tropical-storm::before { content: map-get($bootstrap-icons-map, "tropical-storm"); } +.bi-truck-flatbed::before { content: map-get($bootstrap-icons-map, "truck-flatbed"); } +.bi-truck::before { content: map-get($bootstrap-icons-map, "truck"); } +.bi-tsunami::before { content: map-get($bootstrap-icons-map, "tsunami"); } +.bi-tv-fill::before { content: map-get($bootstrap-icons-map, "tv-fill"); } +.bi-tv::before { content: map-get($bootstrap-icons-map, "tv"); } +.bi-twitch::before { content: map-get($bootstrap-icons-map, "twitch"); } +.bi-twitter::before { content: map-get($bootstrap-icons-map, "twitter"); } +.bi-type-bold::before { content: map-get($bootstrap-icons-map, "type-bold"); } +.bi-type-h1::before { content: map-get($bootstrap-icons-map, "type-h1"); } +.bi-type-h2::before { content: map-get($bootstrap-icons-map, "type-h2"); } +.bi-type-h3::before { content: map-get($bootstrap-icons-map, "type-h3"); } +.bi-type-italic::before { content: map-get($bootstrap-icons-map, "type-italic"); } +.bi-type-strikethrough::before { content: map-get($bootstrap-icons-map, "type-strikethrough"); } +.bi-type-underline::before { content: map-get($bootstrap-icons-map, "type-underline"); } +.bi-type::before { content: map-get($bootstrap-icons-map, "type"); } +.bi-ui-checks-grid::before { content: map-get($bootstrap-icons-map, "ui-checks-grid"); } +.bi-ui-checks::before { content: map-get($bootstrap-icons-map, "ui-checks"); } +.bi-ui-radios-grid::before { content: map-get($bootstrap-icons-map, "ui-radios-grid"); } +.bi-ui-radios::before { content: map-get($bootstrap-icons-map, "ui-radios"); } +.bi-umbrella-fill::before { content: map-get($bootstrap-icons-map, "umbrella-fill"); } +.bi-umbrella::before { content: map-get($bootstrap-icons-map, "umbrella"); } +.bi-union::before { content: map-get($bootstrap-icons-map, "union"); } +.bi-unlock-fill::before { content: map-get($bootstrap-icons-map, "unlock-fill"); } +.bi-unlock::before { content: map-get($bootstrap-icons-map, "unlock"); } +.bi-upc-scan::before { content: map-get($bootstrap-icons-map, "upc-scan"); } +.bi-upc::before { content: map-get($bootstrap-icons-map, "upc"); } +.bi-upload::before { content: map-get($bootstrap-icons-map, "upload"); } +.bi-vector-pen::before { content: map-get($bootstrap-icons-map, "vector-pen"); } +.bi-view-list::before { content: map-get($bootstrap-icons-map, "view-list"); } +.bi-view-stacked::before { content: map-get($bootstrap-icons-map, "view-stacked"); } +.bi-vinyl-fill::before { content: map-get($bootstrap-icons-map, "vinyl-fill"); } +.bi-vinyl::before { content: map-get($bootstrap-icons-map, "vinyl"); } +.bi-voicemail::before { content: map-get($bootstrap-icons-map, "voicemail"); } +.bi-volume-down-fill::before { content: map-get($bootstrap-icons-map, "volume-down-fill"); } +.bi-volume-down::before { content: map-get($bootstrap-icons-map, "volume-down"); } +.bi-volume-mute-fill::before { content: map-get($bootstrap-icons-map, "volume-mute-fill"); } +.bi-volume-mute::before { content: map-get($bootstrap-icons-map, "volume-mute"); } +.bi-volume-off-fill::before { content: map-get($bootstrap-icons-map, "volume-off-fill"); } +.bi-volume-off::before { content: map-get($bootstrap-icons-map, "volume-off"); } +.bi-volume-up-fill::before { content: map-get($bootstrap-icons-map, "volume-up-fill"); } +.bi-volume-up::before { content: map-get($bootstrap-icons-map, "volume-up"); } +.bi-vr::before { content: map-get($bootstrap-icons-map, "vr"); } +.bi-wallet-fill::before { content: map-get($bootstrap-icons-map, "wallet-fill"); } +.bi-wallet::before { content: map-get($bootstrap-icons-map, "wallet"); } +.bi-wallet2::before { content: map-get($bootstrap-icons-map, "wallet2"); } +.bi-watch::before { content: map-get($bootstrap-icons-map, "watch"); } +.bi-water::before { content: map-get($bootstrap-icons-map, "water"); } +.bi-whatsapp::before { content: map-get($bootstrap-icons-map, "whatsapp"); } +.bi-wifi-1::before { content: map-get($bootstrap-icons-map, "wifi-1"); } +.bi-wifi-2::before { content: map-get($bootstrap-icons-map, "wifi-2"); } +.bi-wifi-off::before { content: map-get($bootstrap-icons-map, "wifi-off"); } +.bi-wifi::before { content: map-get($bootstrap-icons-map, "wifi"); } +.bi-wind::before { content: map-get($bootstrap-icons-map, "wind"); } +.bi-window-dock::before { content: map-get($bootstrap-icons-map, "window-dock"); } +.bi-window-sidebar::before { content: map-get($bootstrap-icons-map, "window-sidebar"); } +.bi-window::before { content: map-get($bootstrap-icons-map, "window"); } +.bi-wrench::before { content: map-get($bootstrap-icons-map, "wrench"); } +.bi-x-circle-fill::before { content: map-get($bootstrap-icons-map, "x-circle-fill"); } +.bi-x-circle::before { content: map-get($bootstrap-icons-map, "x-circle"); } +.bi-x-diamond-fill::before { content: map-get($bootstrap-icons-map, "x-diamond-fill"); } +.bi-x-diamond::before { content: map-get($bootstrap-icons-map, "x-diamond"); } +.bi-x-octagon-fill::before { content: map-get($bootstrap-icons-map, "x-octagon-fill"); } +.bi-x-octagon::before { content: map-get($bootstrap-icons-map, "x-octagon"); } +.bi-x-square-fill::before { content: map-get($bootstrap-icons-map, "x-square-fill"); } +.bi-x-square::before { content: map-get($bootstrap-icons-map, "x-square"); } +.bi-x::before { content: map-get($bootstrap-icons-map, "x"); } +.bi-youtube::before { content: map-get($bootstrap-icons-map, "youtube"); } +.bi-zoom-in::before { content: map-get($bootstrap-icons-map, "zoom-in"); } +.bi-zoom-out::before { content: map-get($bootstrap-icons-map, "zoom-out"); } +.bi-bank::before { content: map-get($bootstrap-icons-map, "bank"); } +.bi-bank2::before { content: map-get($bootstrap-icons-map, "bank2"); } +.bi-bell-slash-fill::before { content: map-get($bootstrap-icons-map, "bell-slash-fill"); } +.bi-bell-slash::before { content: map-get($bootstrap-icons-map, "bell-slash"); } +.bi-cash-coin::before { content: map-get($bootstrap-icons-map, "cash-coin"); } +.bi-check-lg::before { content: map-get($bootstrap-icons-map, "check-lg"); } +.bi-coin::before { content: map-get($bootstrap-icons-map, "coin"); } +.bi-currency-bitcoin::before { content: map-get($bootstrap-icons-map, "currency-bitcoin"); } +.bi-currency-dollar::before { content: map-get($bootstrap-icons-map, "currency-dollar"); } +.bi-currency-euro::before { content: map-get($bootstrap-icons-map, "currency-euro"); } +.bi-currency-exchange::before { content: map-get($bootstrap-icons-map, "currency-exchange"); } +.bi-currency-pound::before { content: map-get($bootstrap-icons-map, "currency-pound"); } +.bi-currency-yen::before { content: map-get($bootstrap-icons-map, "currency-yen"); } +.bi-dash-lg::before { content: map-get($bootstrap-icons-map, "dash-lg"); } +.bi-exclamation-lg::before { content: map-get($bootstrap-icons-map, "exclamation-lg"); } +.bi-file-earmark-pdf-fill::before { content: map-get($bootstrap-icons-map, "file-earmark-pdf-fill"); } +.bi-file-earmark-pdf::before { content: map-get($bootstrap-icons-map, "file-earmark-pdf"); } +.bi-file-pdf-fill::before { content: map-get($bootstrap-icons-map, "file-pdf-fill"); } +.bi-file-pdf::before { content: map-get($bootstrap-icons-map, "file-pdf"); } +.bi-gender-ambiguous::before { content: map-get($bootstrap-icons-map, "gender-ambiguous"); } +.bi-gender-female::before { content: map-get($bootstrap-icons-map, "gender-female"); } +.bi-gender-male::before { content: map-get($bootstrap-icons-map, "gender-male"); } +.bi-gender-trans::before { content: map-get($bootstrap-icons-map, "gender-trans"); } +.bi-headset-vr::before { content: map-get($bootstrap-icons-map, "headset-vr"); } +.bi-info-lg::before { content: map-get($bootstrap-icons-map, "info-lg"); } +.bi-mastodon::before { content: map-get($bootstrap-icons-map, "mastodon"); } +.bi-messenger::before { content: map-get($bootstrap-icons-map, "messenger"); } +.bi-piggy-bank-fill::before { content: map-get($bootstrap-icons-map, "piggy-bank-fill"); } +.bi-piggy-bank::before { content: map-get($bootstrap-icons-map, "piggy-bank"); } +.bi-pin-map-fill::before { content: map-get($bootstrap-icons-map, "pin-map-fill"); } +.bi-pin-map::before { content: map-get($bootstrap-icons-map, "pin-map"); } +.bi-plus-lg::before { content: map-get($bootstrap-icons-map, "plus-lg"); } +.bi-question-lg::before { content: map-get($bootstrap-icons-map, "question-lg"); } +.bi-recycle::before { content: map-get($bootstrap-icons-map, "recycle"); } +.bi-reddit::before { content: map-get($bootstrap-icons-map, "reddit"); } +.bi-safe-fill::before { content: map-get($bootstrap-icons-map, "safe-fill"); } +.bi-safe2-fill::before { content: map-get($bootstrap-icons-map, "safe2-fill"); } +.bi-safe2::before { content: map-get($bootstrap-icons-map, "safe2"); } +.bi-sd-card-fill::before { content: map-get($bootstrap-icons-map, "sd-card-fill"); } +.bi-sd-card::before { content: map-get($bootstrap-icons-map, "sd-card"); } +.bi-skype::before { content: map-get($bootstrap-icons-map, "skype"); } +.bi-slash-lg::before { content: map-get($bootstrap-icons-map, "slash-lg"); } +.bi-translate::before { content: map-get($bootstrap-icons-map, "translate"); } +.bi-x-lg::before { content: map-get($bootstrap-icons-map, "x-lg"); } +.bi-safe::before { content: map-get($bootstrap-icons-map, "safe"); } +.bi-apple::before { content: map-get($bootstrap-icons-map, "apple"); } +.bi-microsoft::before { content: map-get($bootstrap-icons-map, "microsoft"); } +.bi-windows::before { content: map-get($bootstrap-icons-map, "windows"); } +.bi-behance::before { content: map-get($bootstrap-icons-map, "behance"); } +.bi-dribbble::before { content: map-get($bootstrap-icons-map, "dribbble"); } +.bi-line::before { content: map-get($bootstrap-icons-map, "line"); } +.bi-medium::before { content: map-get($bootstrap-icons-map, "medium"); } +.bi-paypal::before { content: map-get($bootstrap-icons-map, "paypal"); } +.bi-pinterest::before { content: map-get($bootstrap-icons-map, "pinterest"); } +.bi-signal::before { content: map-get($bootstrap-icons-map, "signal"); } +.bi-snapchat::before { content: map-get($bootstrap-icons-map, "snapchat"); } +.bi-spotify::before { content: map-get($bootstrap-icons-map, "spotify"); } +.bi-stack-overflow::before { content: map-get($bootstrap-icons-map, "stack-overflow"); } +.bi-strava::before { content: map-get($bootstrap-icons-map, "strava"); } +.bi-wordpress::before { content: map-get($bootstrap-icons-map, "wordpress"); } +.bi-vimeo::before { content: map-get($bootstrap-icons-map, "vimeo"); } +.bi-activity::before { content: map-get($bootstrap-icons-map, "activity"); } +.bi-easel2-fill::before { content: map-get($bootstrap-icons-map, "easel2-fill"); } +.bi-easel2::before { content: map-get($bootstrap-icons-map, "easel2"); } +.bi-easel3-fill::before { content: map-get($bootstrap-icons-map, "easel3-fill"); } +.bi-easel3::before { content: map-get($bootstrap-icons-map, "easel3"); } +.bi-fan::before { content: map-get($bootstrap-icons-map, "fan"); } +.bi-fingerprint::before { content: map-get($bootstrap-icons-map, "fingerprint"); } +.bi-graph-down-arrow::before { content: map-get($bootstrap-icons-map, "graph-down-arrow"); } +.bi-graph-up-arrow::before { content: map-get($bootstrap-icons-map, "graph-up-arrow"); } +.bi-hypnotize::before { content: map-get($bootstrap-icons-map, "hypnotize"); } +.bi-magic::before { content: map-get($bootstrap-icons-map, "magic"); } +.bi-person-rolodex::before { content: map-get($bootstrap-icons-map, "person-rolodex"); } +.bi-person-video::before { content: map-get($bootstrap-icons-map, "person-video"); } +.bi-person-video2::before { content: map-get($bootstrap-icons-map, "person-video2"); } +.bi-person-video3::before { content: map-get($bootstrap-icons-map, "person-video3"); } +.bi-person-workspace::before { content: map-get($bootstrap-icons-map, "person-workspace"); } +.bi-radioactive::before { content: map-get($bootstrap-icons-map, "radioactive"); } +.bi-webcam-fill::before { content: map-get($bootstrap-icons-map, "webcam-fill"); } +.bi-webcam::before { content: map-get($bootstrap-icons-map, "webcam"); } +.bi-yin-yang::before { content: map-get($bootstrap-icons-map, "yin-yang"); } +.bi-bandaid-fill::before { content: map-get($bootstrap-icons-map, "bandaid-fill"); } +.bi-bandaid::before { content: map-get($bootstrap-icons-map, "bandaid"); } +.bi-bluetooth::before { content: map-get($bootstrap-icons-map, "bluetooth"); } +.bi-body-text::before { content: map-get($bootstrap-icons-map, "body-text"); } +.bi-boombox::before { content: map-get($bootstrap-icons-map, "boombox"); } +.bi-boxes::before { content: map-get($bootstrap-icons-map, "boxes"); } +.bi-dpad-fill::before { content: map-get($bootstrap-icons-map, "dpad-fill"); } +.bi-dpad::before { content: map-get($bootstrap-icons-map, "dpad"); } +.bi-ear-fill::before { content: map-get($bootstrap-icons-map, "ear-fill"); } +.bi-ear::before { content: map-get($bootstrap-icons-map, "ear"); } +.bi-envelope-check-1::before { content: map-get($bootstrap-icons-map, "envelope-check-1"); } +.bi-envelope-check-fill::before { content: map-get($bootstrap-icons-map, "envelope-check-fill"); } +.bi-envelope-check::before { content: map-get($bootstrap-icons-map, "envelope-check"); } +.bi-envelope-dash-1::before { content: map-get($bootstrap-icons-map, "envelope-dash-1"); } +.bi-envelope-dash-fill::before { content: map-get($bootstrap-icons-map, "envelope-dash-fill"); } +.bi-envelope-dash::before { content: map-get($bootstrap-icons-map, "envelope-dash"); } +.bi-envelope-exclamation-1::before { content: map-get($bootstrap-icons-map, "envelope-exclamation-1"); } +.bi-envelope-exclamation-fill::before { content: map-get($bootstrap-icons-map, "envelope-exclamation-fill"); } +.bi-envelope-exclamation::before { content: map-get($bootstrap-icons-map, "envelope-exclamation"); } +.bi-envelope-plus-fill::before { content: map-get($bootstrap-icons-map, "envelope-plus-fill"); } +.bi-envelope-plus::before { content: map-get($bootstrap-icons-map, "envelope-plus"); } +.bi-envelope-slash-1::before { content: map-get($bootstrap-icons-map, "envelope-slash-1"); } +.bi-envelope-slash-fill::before { content: map-get($bootstrap-icons-map, "envelope-slash-fill"); } +.bi-envelope-slash::before { content: map-get($bootstrap-icons-map, "envelope-slash"); } +.bi-envelope-x-1::before { content: map-get($bootstrap-icons-map, "envelope-x-1"); } +.bi-envelope-x-fill::before { content: map-get($bootstrap-icons-map, "envelope-x-fill"); } +.bi-envelope-x::before { content: map-get($bootstrap-icons-map, "envelope-x"); } +.bi-explicit-fill::before { content: map-get($bootstrap-icons-map, "explicit-fill"); } +.bi-explicit::before { content: map-get($bootstrap-icons-map, "explicit"); } +.bi-git::before { content: map-get($bootstrap-icons-map, "git"); } +.bi-infinity::before { content: map-get($bootstrap-icons-map, "infinity"); } +.bi-list-columns-reverse::before { content: map-get($bootstrap-icons-map, "list-columns-reverse"); } +.bi-list-columns::before { content: map-get($bootstrap-icons-map, "list-columns"); } +.bi-meta::before { content: map-get($bootstrap-icons-map, "meta"); } +.bi-mortorboard-fill::before { content: map-get($bootstrap-icons-map, "mortorboard-fill"); } +.bi-mortorboard::before { content: map-get($bootstrap-icons-map, "mortorboard"); } +.bi-nintendo-switch::before { content: map-get($bootstrap-icons-map, "nintendo-switch"); } +.bi-pc-display-horizontal::before { content: map-get($bootstrap-icons-map, "pc-display-horizontal"); } +.bi-pc-display::before { content: map-get($bootstrap-icons-map, "pc-display"); } +.bi-pc-horizontal::before { content: map-get($bootstrap-icons-map, "pc-horizontal"); } +.bi-pc::before { content: map-get($bootstrap-icons-map, "pc"); } +.bi-playstation::before { content: map-get($bootstrap-icons-map, "playstation"); } +.bi-plus-slash-minus::before { content: map-get($bootstrap-icons-map, "plus-slash-minus"); } +.bi-projector-fill::before { content: map-get($bootstrap-icons-map, "projector-fill"); } +.bi-projector::before { content: map-get($bootstrap-icons-map, "projector"); } +.bi-qr-code-scan::before { content: map-get($bootstrap-icons-map, "qr-code-scan"); } +.bi-qr-code::before { content: map-get($bootstrap-icons-map, "qr-code"); } +.bi-quora::before { content: map-get($bootstrap-icons-map, "quora"); } +.bi-quote::before { content: map-get($bootstrap-icons-map, "quote"); } +.bi-robot::before { content: map-get($bootstrap-icons-map, "robot"); } +.bi-send-check-fill::before { content: map-get($bootstrap-icons-map, "send-check-fill"); } +.bi-send-check::before { content: map-get($bootstrap-icons-map, "send-check"); } +.bi-send-dash-fill::before { content: map-get($bootstrap-icons-map, "send-dash-fill"); } +.bi-send-dash::before { content: map-get($bootstrap-icons-map, "send-dash"); } +.bi-send-exclamation-1::before { content: map-get($bootstrap-icons-map, "send-exclamation-1"); } +.bi-send-exclamation-fill::before { content: map-get($bootstrap-icons-map, "send-exclamation-fill"); } +.bi-send-exclamation::before { content: map-get($bootstrap-icons-map, "send-exclamation"); } +.bi-send-fill::before { content: map-get($bootstrap-icons-map, "send-fill"); } +.bi-send-plus-fill::before { content: map-get($bootstrap-icons-map, "send-plus-fill"); } +.bi-send-plus::before { content: map-get($bootstrap-icons-map, "send-plus"); } +.bi-send-slash-fill::before { content: map-get($bootstrap-icons-map, "send-slash-fill"); } +.bi-send-slash::before { content: map-get($bootstrap-icons-map, "send-slash"); } +.bi-send-x-fill::before { content: map-get($bootstrap-icons-map, "send-x-fill"); } +.bi-send-x::before { content: map-get($bootstrap-icons-map, "send-x"); } +.bi-send::before { content: map-get($bootstrap-icons-map, "send"); } +.bi-steam::before { content: map-get($bootstrap-icons-map, "steam"); } +.bi-terminal-dash-1::before { content: map-get($bootstrap-icons-map, "terminal-dash-1"); } +.bi-terminal-dash::before { content: map-get($bootstrap-icons-map, "terminal-dash"); } +.bi-terminal-plus::before { content: map-get($bootstrap-icons-map, "terminal-plus"); } +.bi-terminal-split::before { content: map-get($bootstrap-icons-map, "terminal-split"); } +.bi-ticket-detailed-fill::before { content: map-get($bootstrap-icons-map, "ticket-detailed-fill"); } +.bi-ticket-detailed::before { content: map-get($bootstrap-icons-map, "ticket-detailed"); } +.bi-ticket-fill::before { content: map-get($bootstrap-icons-map, "ticket-fill"); } +.bi-ticket-perforated-fill::before { content: map-get($bootstrap-icons-map, "ticket-perforated-fill"); } +.bi-ticket-perforated::before { content: map-get($bootstrap-icons-map, "ticket-perforated"); } +.bi-ticket::before { content: map-get($bootstrap-icons-map, "ticket"); } +.bi-tiktok::before { content: map-get($bootstrap-icons-map, "tiktok"); } +.bi-window-dash::before { content: map-get($bootstrap-icons-map, "window-dash"); } +.bi-window-desktop::before { content: map-get($bootstrap-icons-map, "window-desktop"); } +.bi-window-fullscreen::before { content: map-get($bootstrap-icons-map, "window-fullscreen"); } +.bi-window-plus::before { content: map-get($bootstrap-icons-map, "window-plus"); } +.bi-window-split::before { content: map-get($bootstrap-icons-map, "window-split"); } +.bi-window-stack::before { content: map-get($bootstrap-icons-map, "window-stack"); } +.bi-window-x::before { content: map-get($bootstrap-icons-map, "window-x"); } +.bi-xbox::before { content: map-get($bootstrap-icons-map, "xbox"); } +.bi-ethernet::before { content: map-get($bootstrap-icons-map, "ethernet"); } +.bi-hdmi-fill::before { content: map-get($bootstrap-icons-map, "hdmi-fill"); } +.bi-hdmi::before { content: map-get($bootstrap-icons-map, "hdmi"); } +.bi-usb-c-fill::before { content: map-get($bootstrap-icons-map, "usb-c-fill"); } +.bi-usb-c::before { content: map-get($bootstrap-icons-map, "usb-c"); } +.bi-usb-fill::before { content: map-get($bootstrap-icons-map, "usb-fill"); } +.bi-usb-plug-fill::before { content: map-get($bootstrap-icons-map, "usb-plug-fill"); } +.bi-usb-plug::before { content: map-get($bootstrap-icons-map, "usb-plug"); } +.bi-usb-symbol::before { content: map-get($bootstrap-icons-map, "usb-symbol"); } +.bi-usb::before { content: map-get($bootstrap-icons-map, "usb"); } +.bi-boombox-fill::before { content: map-get($bootstrap-icons-map, "boombox-fill"); } +.bi-displayport-1::before { content: map-get($bootstrap-icons-map, "displayport-1"); } +.bi-displayport::before { content: map-get($bootstrap-icons-map, "displayport"); } +.bi-gpu-card::before { content: map-get($bootstrap-icons-map, "gpu-card"); } +.bi-memory::before { content: map-get($bootstrap-icons-map, "memory"); } +.bi-modem-fill::before { content: map-get($bootstrap-icons-map, "modem-fill"); } +.bi-modem::before { content: map-get($bootstrap-icons-map, "modem"); } +.bi-motherboard-fill::before { content: map-get($bootstrap-icons-map, "motherboard-fill"); } +.bi-motherboard::before { content: map-get($bootstrap-icons-map, "motherboard"); } +.bi-optical-audio-fill::before { content: map-get($bootstrap-icons-map, "optical-audio-fill"); } +.bi-optical-audio::before { content: map-get($bootstrap-icons-map, "optical-audio"); } +.bi-pci-card::before { content: map-get($bootstrap-icons-map, "pci-card"); } +.bi-router-fill::before { content: map-get($bootstrap-icons-map, "router-fill"); } +.bi-router::before { content: map-get($bootstrap-icons-map, "router"); } +.bi-ssd-fill::before { content: map-get($bootstrap-icons-map, "ssd-fill"); } +.bi-ssd::before { content: map-get($bootstrap-icons-map, "ssd"); } +.bi-thunderbolt-fill::before { content: map-get($bootstrap-icons-map, "thunderbolt-fill"); } +.bi-thunderbolt::before { content: map-get($bootstrap-icons-map, "thunderbolt"); } +.bi-usb-drive-fill::before { content: map-get($bootstrap-icons-map, "usb-drive-fill"); } +.bi-usb-drive::before { content: map-get($bootstrap-icons-map, "usb-drive"); } +.bi-usb-micro-fill::before { content: map-get($bootstrap-icons-map, "usb-micro-fill"); } +.bi-usb-micro::before { content: map-get($bootstrap-icons-map, "usb-micro"); } +.bi-usb-mini-fill::before { content: map-get($bootstrap-icons-map, "usb-mini-fill"); } +.bi-usb-mini::before { content: map-get($bootstrap-icons-map, "usb-mini"); } +.bi-cloud-haze2::before { content: map-get($bootstrap-icons-map, "cloud-haze2"); } +.bi-device-hdd-fill::before { content: map-get($bootstrap-icons-map, "device-hdd-fill"); } +.bi-device-hdd::before { content: map-get($bootstrap-icons-map, "device-hdd"); } +.bi-device-ssd-fill::before { content: map-get($bootstrap-icons-map, "device-ssd-fill"); } +.bi-device-ssd::before { content: map-get($bootstrap-icons-map, "device-ssd"); } +.bi-displayport-fill::before { content: map-get($bootstrap-icons-map, "displayport-fill"); } +.bi-mortarboard-fill::before { content: map-get($bootstrap-icons-map, "mortarboard-fill"); } +.bi-mortarboard::before { content: map-get($bootstrap-icons-map, "mortarboard"); } +.bi-terminal-x::before { content: map-get($bootstrap-icons-map, "terminal-x"); } +.bi-arrow-through-heart-fill::before { content: map-get($bootstrap-icons-map, "arrow-through-heart-fill"); } +.bi-arrow-through-heart::before { content: map-get($bootstrap-icons-map, "arrow-through-heart"); } +.bi-badge-sd-fill::before { content: map-get($bootstrap-icons-map, "badge-sd-fill"); } +.bi-badge-sd::before { content: map-get($bootstrap-icons-map, "badge-sd"); } +.bi-bag-heart-fill::before { content: map-get($bootstrap-icons-map, "bag-heart-fill"); } +.bi-bag-heart::before { content: map-get($bootstrap-icons-map, "bag-heart"); } +.bi-balloon-fill::before { content: map-get($bootstrap-icons-map, "balloon-fill"); } +.bi-balloon-heart-fill::before { content: map-get($bootstrap-icons-map, "balloon-heart-fill"); } +.bi-balloon-heart::before { content: map-get($bootstrap-icons-map, "balloon-heart"); } +.bi-balloon::before { content: map-get($bootstrap-icons-map, "balloon"); } +.bi-box2-fill::before { content: map-get($bootstrap-icons-map, "box2-fill"); } +.bi-box2-heart-fill::before { content: map-get($bootstrap-icons-map, "box2-heart-fill"); } +.bi-box2-heart::before { content: map-get($bootstrap-icons-map, "box2-heart"); } +.bi-box2::before { content: map-get($bootstrap-icons-map, "box2"); } +.bi-braces-asterisk::before { content: map-get($bootstrap-icons-map, "braces-asterisk"); } +.bi-calendar-heart-fill::before { content: map-get($bootstrap-icons-map, "calendar-heart-fill"); } +.bi-calendar-heart::before { content: map-get($bootstrap-icons-map, "calendar-heart"); } +.bi-calendar2-heart-fill::before { content: map-get($bootstrap-icons-map, "calendar2-heart-fill"); } +.bi-calendar2-heart::before { content: map-get($bootstrap-icons-map, "calendar2-heart"); } +.bi-chat-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-heart-fill"); } +.bi-chat-heart::before { content: map-get($bootstrap-icons-map, "chat-heart"); } +.bi-chat-left-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-left-heart-fill"); } +.bi-chat-left-heart::before { content: map-get($bootstrap-icons-map, "chat-left-heart"); } +.bi-chat-right-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-right-heart-fill"); } +.bi-chat-right-heart::before { content: map-get($bootstrap-icons-map, "chat-right-heart"); } +.bi-chat-square-heart-fill::before { content: map-get($bootstrap-icons-map, "chat-square-heart-fill"); } +.bi-chat-square-heart::before { content: map-get($bootstrap-icons-map, "chat-square-heart"); } +.bi-clipboard-check-fill::before { content: map-get($bootstrap-icons-map, "clipboard-check-fill"); } +.bi-clipboard-data-fill::before { content: map-get($bootstrap-icons-map, "clipboard-data-fill"); } +.bi-clipboard-fill::before { content: map-get($bootstrap-icons-map, "clipboard-fill"); } +.bi-clipboard-heart-fill::before { content: map-get($bootstrap-icons-map, "clipboard-heart-fill"); } +.bi-clipboard-heart::before { content: map-get($bootstrap-icons-map, "clipboard-heart"); } +.bi-clipboard-minus-fill::before { content: map-get($bootstrap-icons-map, "clipboard-minus-fill"); } +.bi-clipboard-plus-fill::before { content: map-get($bootstrap-icons-map, "clipboard-plus-fill"); } +.bi-clipboard-pulse::before { content: map-get($bootstrap-icons-map, "clipboard-pulse"); } +.bi-clipboard-x-fill::before { content: map-get($bootstrap-icons-map, "clipboard-x-fill"); } +.bi-clipboard2-check-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-check-fill"); } +.bi-clipboard2-check::before { content: map-get($bootstrap-icons-map, "clipboard2-check"); } +.bi-clipboard2-data-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-data-fill"); } +.bi-clipboard2-data::before { content: map-get($bootstrap-icons-map, "clipboard2-data"); } +.bi-clipboard2-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-fill"); } +.bi-clipboard2-heart-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-heart-fill"); } +.bi-clipboard2-heart::before { content: map-get($bootstrap-icons-map, "clipboard2-heart"); } +.bi-clipboard2-minus-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-minus-fill"); } +.bi-clipboard2-minus::before { content: map-get($bootstrap-icons-map, "clipboard2-minus"); } +.bi-clipboard2-plus-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-plus-fill"); } +.bi-clipboard2-plus::before { content: map-get($bootstrap-icons-map, "clipboard2-plus"); } +.bi-clipboard2-pulse-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-pulse-fill"); } +.bi-clipboard2-pulse::before { content: map-get($bootstrap-icons-map, "clipboard2-pulse"); } +.bi-clipboard2-x-fill::before { content: map-get($bootstrap-icons-map, "clipboard2-x-fill"); } +.bi-clipboard2-x::before { content: map-get($bootstrap-icons-map, "clipboard2-x"); } +.bi-clipboard2::before { content: map-get($bootstrap-icons-map, "clipboard2"); } +.bi-emoji-kiss-fill::before { content: map-get($bootstrap-icons-map, "emoji-kiss-fill"); } +.bi-emoji-kiss::before { content: map-get($bootstrap-icons-map, "emoji-kiss"); } +.bi-envelope-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-heart-fill"); } +.bi-envelope-heart::before { content: map-get($bootstrap-icons-map, "envelope-heart"); } +.bi-envelope-open-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-open-heart-fill"); } +.bi-envelope-open-heart::before { content: map-get($bootstrap-icons-map, "envelope-open-heart"); } +.bi-envelope-paper-fill::before { content: map-get($bootstrap-icons-map, "envelope-paper-fill"); } +.bi-envelope-paper-heart-fill::before { content: map-get($bootstrap-icons-map, "envelope-paper-heart-fill"); } +.bi-envelope-paper-heart::before { content: map-get($bootstrap-icons-map, "envelope-paper-heart"); } +.bi-envelope-paper::before { content: map-get($bootstrap-icons-map, "envelope-paper"); } +.bi-filetype-aac::before { content: map-get($bootstrap-icons-map, "filetype-aac"); } +.bi-filetype-ai::before { content: map-get($bootstrap-icons-map, "filetype-ai"); } +.bi-filetype-bmp::before { content: map-get($bootstrap-icons-map, "filetype-bmp"); } +.bi-filetype-cs::before { content: map-get($bootstrap-icons-map, "filetype-cs"); } +.bi-filetype-css::before { content: map-get($bootstrap-icons-map, "filetype-css"); } +.bi-filetype-csv::before { content: map-get($bootstrap-icons-map, "filetype-csv"); } +.bi-filetype-doc::before { content: map-get($bootstrap-icons-map, "filetype-doc"); } +.bi-filetype-docx::before { content: map-get($bootstrap-icons-map, "filetype-docx"); } +.bi-filetype-exe::before { content: map-get($bootstrap-icons-map, "filetype-exe"); } +.bi-filetype-gif::before { content: map-get($bootstrap-icons-map, "filetype-gif"); } +.bi-filetype-heic::before { content: map-get($bootstrap-icons-map, "filetype-heic"); } +.bi-filetype-html::before { content: map-get($bootstrap-icons-map, "filetype-html"); } +.bi-filetype-java::before { content: map-get($bootstrap-icons-map, "filetype-java"); } +.bi-filetype-jpg::before { content: map-get($bootstrap-icons-map, "filetype-jpg"); } +.bi-filetype-js::before { content: map-get($bootstrap-icons-map, "filetype-js"); } +.bi-filetype-jsx::before { content: map-get($bootstrap-icons-map, "filetype-jsx"); } +.bi-filetype-key::before { content: map-get($bootstrap-icons-map, "filetype-key"); } +.bi-filetype-m4p::before { content: map-get($bootstrap-icons-map, "filetype-m4p"); } +.bi-filetype-md::before { content: map-get($bootstrap-icons-map, "filetype-md"); } +.bi-filetype-mdx::before { content: map-get($bootstrap-icons-map, "filetype-mdx"); } +.bi-filetype-mov::before { content: map-get($bootstrap-icons-map, "filetype-mov"); } +.bi-filetype-mp3::before { content: map-get($bootstrap-icons-map, "filetype-mp3"); } +.bi-filetype-mp4::before { content: map-get($bootstrap-icons-map, "filetype-mp4"); } +.bi-filetype-otf::before { content: map-get($bootstrap-icons-map, "filetype-otf"); } +.bi-filetype-pdf::before { content: map-get($bootstrap-icons-map, "filetype-pdf"); } +.bi-filetype-php::before { content: map-get($bootstrap-icons-map, "filetype-php"); } +.bi-filetype-png::before { content: map-get($bootstrap-icons-map, "filetype-png"); } +.bi-filetype-ppt-1::before { content: map-get($bootstrap-icons-map, "filetype-ppt-1"); } +.bi-filetype-ppt::before { content: map-get($bootstrap-icons-map, "filetype-ppt"); } +.bi-filetype-psd::before { content: map-get($bootstrap-icons-map, "filetype-psd"); } +.bi-filetype-py::before { content: map-get($bootstrap-icons-map, "filetype-py"); } +.bi-filetype-raw::before { content: map-get($bootstrap-icons-map, "filetype-raw"); } +.bi-filetype-rb::before { content: map-get($bootstrap-icons-map, "filetype-rb"); } +.bi-filetype-sass::before { content: map-get($bootstrap-icons-map, "filetype-sass"); } +.bi-filetype-scss::before { content: map-get($bootstrap-icons-map, "filetype-scss"); } +.bi-filetype-sh::before { content: map-get($bootstrap-icons-map, "filetype-sh"); } +.bi-filetype-svg::before { content: map-get($bootstrap-icons-map, "filetype-svg"); } +.bi-filetype-tiff::before { content: map-get($bootstrap-icons-map, "filetype-tiff"); } +.bi-filetype-tsx::before { content: map-get($bootstrap-icons-map, "filetype-tsx"); } +.bi-filetype-ttf::before { content: map-get($bootstrap-icons-map, "filetype-ttf"); } +.bi-filetype-txt::before { content: map-get($bootstrap-icons-map, "filetype-txt"); } +.bi-filetype-wav::before { content: map-get($bootstrap-icons-map, "filetype-wav"); } +.bi-filetype-woff::before { content: map-get($bootstrap-icons-map, "filetype-woff"); } +.bi-filetype-xls-1::before { content: map-get($bootstrap-icons-map, "filetype-xls-1"); } +.bi-filetype-xls::before { content: map-get($bootstrap-icons-map, "filetype-xls"); } +.bi-filetype-xml::before { content: map-get($bootstrap-icons-map, "filetype-xml"); } +.bi-filetype-yml::before { content: map-get($bootstrap-icons-map, "filetype-yml"); } +.bi-heart-arrow::before { content: map-get($bootstrap-icons-map, "heart-arrow"); } +.bi-heart-pulse-fill::before { content: map-get($bootstrap-icons-map, "heart-pulse-fill"); } +.bi-heart-pulse::before { content: map-get($bootstrap-icons-map, "heart-pulse"); } +.bi-heartbreak-fill::before { content: map-get($bootstrap-icons-map, "heartbreak-fill"); } +.bi-heartbreak::before { content: map-get($bootstrap-icons-map, "heartbreak"); } +.bi-hearts::before { content: map-get($bootstrap-icons-map, "hearts"); } +.bi-hospital-fill::before { content: map-get($bootstrap-icons-map, "hospital-fill"); } +.bi-hospital::before { content: map-get($bootstrap-icons-map, "hospital"); } +.bi-house-heart-fill::before { content: map-get($bootstrap-icons-map, "house-heart-fill"); } +.bi-house-heart::before { content: map-get($bootstrap-icons-map, "house-heart"); } +.bi-incognito::before { content: map-get($bootstrap-icons-map, "incognito"); } +.bi-magnet-fill::before { content: map-get($bootstrap-icons-map, "magnet-fill"); } +.bi-magnet::before { content: map-get($bootstrap-icons-map, "magnet"); } +.bi-person-heart::before { content: map-get($bootstrap-icons-map, "person-heart"); } +.bi-person-hearts::before { content: map-get($bootstrap-icons-map, "person-hearts"); } +.bi-phone-flip::before { content: map-get($bootstrap-icons-map, "phone-flip"); } +.bi-plugin::before { content: map-get($bootstrap-icons-map, "plugin"); } +.bi-postage-fill::before { content: map-get($bootstrap-icons-map, "postage-fill"); } +.bi-postage-heart-fill::before { content: map-get($bootstrap-icons-map, "postage-heart-fill"); } +.bi-postage-heart::before { content: map-get($bootstrap-icons-map, "postage-heart"); } +.bi-postage::before { content: map-get($bootstrap-icons-map, "postage"); } +.bi-postcard-fill::before { content: map-get($bootstrap-icons-map, "postcard-fill"); } +.bi-postcard-heart-fill::before { content: map-get($bootstrap-icons-map, "postcard-heart-fill"); } +.bi-postcard-heart::before { content: map-get($bootstrap-icons-map, "postcard-heart"); } +.bi-postcard::before { content: map-get($bootstrap-icons-map, "postcard"); } +.bi-search-heart-fill::before { content: map-get($bootstrap-icons-map, "search-heart-fill"); } +.bi-search-heart::before { content: map-get($bootstrap-icons-map, "search-heart"); } +.bi-sliders2-vertical::before { content: map-get($bootstrap-icons-map, "sliders2-vertical"); } +.bi-sliders2::before { content: map-get($bootstrap-icons-map, "sliders2"); } +.bi-trash3-fill::before { content: map-get($bootstrap-icons-map, "trash3-fill"); } +.bi-trash3::before { content: map-get($bootstrap-icons-map, "trash3"); } +.bi-valentine::before { content: map-get($bootstrap-icons-map, "valentine"); } +.bi-valentine2::before { content: map-get($bootstrap-icons-map, "valentine2"); } +.bi-wrench-adjustable-circle-fill::before { content: map-get($bootstrap-icons-map, "wrench-adjustable-circle-fill"); } +.bi-wrench-adjustable-circle::before { content: map-get($bootstrap-icons-map, "wrench-adjustable-circle"); } +.bi-wrench-adjustable::before { content: map-get($bootstrap-icons-map, "wrench-adjustable"); } +.bi-filetype-json::before { content: map-get($bootstrap-icons-map, "filetype-json"); } +.bi-filetype-pptx::before { content: map-get($bootstrap-icons-map, "filetype-pptx"); } +.bi-filetype-xlsx::before { content: map-get($bootstrap-icons-map, "filetype-xlsx"); } diff --git a/resources/beike/shop/fashion/css/bootstrap/bootstrap.scss b/resources/beike/shop/fashion/css/bootstrap/bootstrap.scss new file mode 100644 index 00000000..fe13ca8e --- /dev/null +++ b/resources/beike/shop/fashion/css/bootstrap/bootstrap.scss @@ -0,0 +1,176 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-17 19:26:53 + * @LastEditTime 2022-09-16 20:57:12 + */ + +$primary: #ee403d; +$success: #71c20b; +$sub_color: #78e723; + +$container-max-widths: ( + sm: 540px, + md: 720px, + lg: 960px, + xl: 1140px, + xxl: 1280px +); + +// $body-bg: #111; +// $body-color: #fff; + +$font-size-base: 0.8rem; +$font-family-base: "Poppins","Helvetica","Arial","sans-serif"; +// $border-radius: 0; +$form-check-input-width: 1.2em; +// $form-check-input-border-radius: 0; + +// 开启负边距 +$enable-negative-margins: true; + +$nav-link-color: #1f1f1f; +$hr-color: #bcbcbc; + +// Breadcrumbs +// scss-docs-start breadcrumb-variables +// $breadcrumb-font-size: null !default; +$breadcrumb-padding-y: 1.4rem; +$breadcrumb-padding-x: 0; +// $breadcrumb-item-padding-x: .5rem !default; +$breadcrumb-margin-bottom: 0; +$breadcrumb-bg: transparent; +// $breadcrumb-divider-color: $gray-600 !default; +// $breadcrumb-active-color: $gray-600 !default; +// $breadcrumb-divider: quote("/") !default; +// $breadcrumb-divider-flipped: $breadcrumb-divider !default; +// $breadcrumb-border-radius: null !default; + +// $border-radius: 0; +$input-btn-padding-y: .46rem; +$input-btn-font-size: 0.85rem; +$input-focus-border-color: #222; +$input-btn-focus-box-shadow: 0 0 11px 0 rgba($color: $sub_color, $alpha: .1); +$form-select-focus-box-shadow: 0 0 11px 0 rgba($color: $sub_color, $alpha: .1); + +// $input-btn-padding-x: .75rem !default; +$btn-focus-width: 0; +// $border-radius: 0; +$btn-border-radius: 0.25rem; +// $btn-border-radius-sm: 0; +$btn-border-radius-lg: 0.25rem; +// $btn-padding-y: $input-btn-padding-y !default; +// $btn-focus-box-shadow: 0 0 11px 0 rgba($color: $primary, $alpha: .1); + +$link-decoration: none; +$link-hover-decoration: underline; +// $link-color: #3480e7; +$link-hover-color: $primary; +$form-select-focus-box-shadow: 0 0 11px 0 rgba($color: $sub_color, $alpha: .1); + +$form-floating-input-padding-t: 1.325rem; +$form-floating-input-padding-b: .625rem; +$form-floating-padding-y: .8rem; +$form-floating-height: 50px; + +$dropdown-border-color: rgba(0, 0, 0, 0.1); +$dropdown-item-padding-y: .4rem; + + +$card-border-width: 0; + +$alert-padding-y: 0.5rem; + +$form-feedback-icon-valid: none; +$form-feedback-icon-valid-color: inherit; + +// $dropdown-divider-bg: rgba(0, 0, 0, 0.1); +@import './bootstrap-icons'; +@import 'node_modules/bootstrap/scss/bootstrap'; + +.btn-primary { + color: #fff !important; +} + +.container-fluid { + padding-right: 50px; + padding-left: 50px; +} + +.dropdown { + .dropdown-divider { + margin-left: 1rem; + margin-right: 1rem; + opacity: .1; + } +} + +.table > :not(:first-child) { + border-top: none; +} + +.card { + // box-shadow: rgba(0, 0, 0, .1) 0px 1px 4px 0px; + // border: none; + + .card-header { + padding: 1rem 1rem .3rem; + background-color: #fff; + // font-weight: bold; + // font-size: .8rem; + border-bottom: 0 solid rgba(0,0,0,.125); + + // &:first-child { + // border-radius: 0; + // } + + .card-title { + margin-bottom: 0; + padding-left: 10px; + border-left: 3px solid $primary; + line-height: 1; + // font-size: 14px; + } + } +} + +.breadcrumb { + .breadcrumb-item { + &:last-of-type { + a { + color: #666; + font-weight: 600; + } + } + } + a { + color: #888; + } +} + +.was-validated { + .form-control, + .form-select { + &:valid { + border-color: $input-border-color; + } + } + + .form-check-input { + &:valid { + border-color: rgba(#000, .25); + + &:checked { + background-color: $primary; + border-color: $primary; + } + + &~.form-check-label { + color: inherit; + } + } + } +} diff --git a/resources/beike/shop/fashion/css/cart.scss b/resources/beike/shop/fashion/css/cart.scss new file mode 100644 index 00000000..9716cacc --- /dev/null +++ b/resources/beike/shop/fashion/css/cart.scss @@ -0,0 +1,100 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-15 17:35:29 + * @LastEditTime 2022-09-16 20:47:16 + */ + +body.page-checkout, body.page-cart { + background-color: #f6f8fa; + + .left-column { + @media (min-width: 992px) { + width: 70%; + } + } + + .right-column { + @media (min-width: 992px) { + width: 30%; + } + + @media (max-width: 768px) { + margin-top: 1.4rem; + } + } +} + +body.page-cart { + .cart-products-wrap { + .table { + tbody { + border-top: none; + td { + vertical-align: middle; + border-color: #f0f2f4; + } + + // tr { + // &.active { + // background-color: #fff6f1; + // } + // } + } + + thead { + background-color: #F8F9FA; + + th { + border-bottom: none; + padding: 0.7rem 0.5rem; + box-shadow: none; + white-space: nowrap; + } + } + + .p-image { + input { + flex: 0 0 1; + } + } + } + } + + .total-wrap { + &.total-wrap-fixed { + position: fixed; + top: 0; + right: 0; + } + + .card-header { + padding-top: 1rem; + border-bottom: none; + background-color: transparent; + } + + .list-group { + li { + background-color: transparent; + padding: 0.7rem 0; + border-color: #EEEEEE; + + &:not(.d-grid) { + display: flex; + align-items: center; // flex-start | center + justify-content: space-between; // flex-end | center | space-between + } + + .total-price { + color: #222222; + font-size: 1.2rem; + font-weight: bold; + } + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/element-ui.scss b/resources/beike/shop/fashion/css/element-ui.scss new file mode 100644 index 00000000..3159a049 --- /dev/null +++ b/resources/beike/shop/fashion/css/element-ui.scss @@ -0,0 +1,13 @@ +@charset "UTF-8;" + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:47:45 + */ + +.el-input__inner { + // border-radius: 0 !important; +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/footer.scss b/resources/beike/shop/fashion/css/footer.scss new file mode 100644 index 00000000..c897b8b1 --- /dev/null +++ b/resources/beike/shop/fashion/css/footer.scss @@ -0,0 +1,103 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-03 22:32:29 + * @LastEditTime 2022-09-16 20:48:00 + */ + +footer { + // background: #F8F9FA; + background: #161616; + margin-top: 5rem; + color: #cdcdcd; + + @media (max-width:768px) { + margin-top: 2rem; + } + + .footer-content-left { + @media (min-width: 992px) { + padding-right: 30px; + } + } + + .footer-active { + outline: 2px dashed #4bb1f0 !important; + } + + .services-wrap { + padding: 2.2rem 0; + border-bottom: 1px solid #222; + + .service-item { + display: flex; + align-items: center; + + .icon { + width: 34px; + margin-right: 14px; + } + + p { + margin-bottom: 0; + } + + .title { + margin-bottom: 2px; + font-weight: bold; + color: #333; + } + + .sub-title { + font-size: .6rem; + color: #8D94A0; + } + } + } + + .footer-content { + padding: 3rem 0; + + a { + color: #cdcdcd; + + &:hover { + color: $primary; + } + } + + .logo { + max-width: 240px; + margin-bottom: 20px; + } + + .text { + color: #cdcdcd; + } + + h6 { + font-size: 14px; + } + } + + .footer-bottom { + display: flex; + align-items: center; + border-top: 1px solid #232323; + + @media (min-width:768px) { + min-height: 60px; + } + + @media (max-width:768px) { + padding: 10px 0; + } + + .right-img { + max-height: 42px; + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/global.scss b/resources/beike/shop/fashion/css/global.scss new file mode 100644 index 00000000..3d41ac94 --- /dev/null +++ b/resources/beike/shop/fashion/css/global.scss @@ -0,0 +1,326 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-09 19:16:39 + * @LastEditTime 2022-09-16 20:55:07 + */ + +[v-cloak] { + display: none; +} + +body[class^="page-account-"] { + background-color: #F7F8FA; +} + +@font-face {font-family: 'Poppins'; + src: url('/fonts/poppins/Poppins-Regular.ttf') format("truetype"); + font-style: normal; + font-weight: 500; + font-weight: normal; + font-display: swap; +} + +@font-face {font-family: 'Poppins'; + src: url('/fonts/poppins/Poppins-Medium.ttf') format("truetype"); + font-style: normal; + font-display: swap; + font-weight: 600; +} + +@font-face {font-family: 'Poppins'; + src: url('/fonts/poppins/Poppins-SemiBold.ttf') format("truetype"); + font-style: normal; + font-display: swap; + font-weight: 700; +} + +h1,h2,h3, h4, h5, h6, b, strong { + font-weight: 700; + color: #282828; +} + +@for $i from 1 through 6 { + .min-h#{$i} { + min-height: #{$i}00px; + } +} + +// 生成 100 200 300 ... 1000 的宽度 +@for $i from 1 through 10 { + .wp-#{$i}00 { + width: #{$i}00px; + } +} +// clac(100% - #{$i}00px) +@for $i from 1 through 10 { + .wp-#{$i}00- { + width: calc(100% - #{$i}00px); + } +} + +// 生成 100 200 300 ... 1000 的最小高度 +@for $i from 1 through 10 { + .h-min-#{$i}00 { + min-height: #{$i}00px; + } +} + +// 生成 100 200 300 ... 1000 的最小宽度 +@for $i from 1 through 10 { + .w-min-#{$i}00 { + min-width: #{$i}00px; + } +} + +// 生成 100 200 300 ... 1000 的最大宽度 +@for $i from 1 through 10 { + .w-max-#{$i}00 { + max-width: #{$i}00px; + } +} + +// 生成 100 200 300 ... 1000 的高度 +@for $i from 1 through 10 { + .hp-#{$i}00 { + height: #{$i}00px; + } +} + +// 生成 10 20 30 ... 90 的高宽 +@for $i from 1 through 10 { + .wh-#{$i}0 { + height: #{$i}0px; + width: #{$i}0px; + } +} + +img { + max-width: 100%; + height: auto; +} + +.col-form-label.required { + &::before { + content: "*"; + color: #f56c6c; + font-size: 12px; + font-weight: bold; + margin-right: 5px; + } +} + +.login-pop-box { + overflow: inherit; + + @media (max-width: 768px) { + width: 90% !important; + height: 80% !important; + } +} + +.module-title { + font-size: 1.5rem; + text-align: center; + font-weight: bold; + position: relative; + padding-bottom: 10px; + color: #333; + margin-bottom: 2rem; + + @media (max-width: 992px) { + font-size: 1rem; + } + + &:after { + position: absolute; + bottom: 0; + transform:translateX(-50%); + left: 50%; + content: ''; + width: 60px; + height: 2px; + background: $sub_color; + } +} + +.tinymce-format-p { + p { + margin-bottom: 0.5rem; + } +} + +.steps-wrap { + display: flex; + justify-content: space-around; + position: relative; + + &:before { + content: ''; + position: absolute; + top: 14px; + left: 0; + width: 100%; + border-bottom: 3px solid #D7D7D7; + } + + > div { + display: flex; + flex-direction: column; + align-items: center; + position: relative; + &.active { + .number { + background-color: $sub_color; + border-color: $sub_color; + color: #111; + font-weight: bold; + } + + .title { + color: #111; + } + } + + .number-wrap { + padding: 0 4px; + margin-bottom: .5rem; + } + + .number { + border: 2px solid #ddd; + width: 30px; + height: 30px; + background-color: #fff; + border-radius: 50%; + display: flex; + align-items: center; // flex-start | center + justify-content: center; // flex-end | center | space-between + } + + .title { + color: #848484; + } + } +} + +.quantity-wrap { + width: 80px; + height: 37px; + display: flex; + align-content: space-between; + border: 1px solid #ced4da; + input { + border: none; + padding: 0.5rem; + } + + > .right { + display: flex; + flex-direction: column; + // align-items: center; + border-left: 1px solid #ced4da; + + i { + flex: 1; + width: 20px; + height: 17px; + text-align: center; + cursor: pointer; + background-color: #fff; + &:last-of-type { + border-top: 1px solid #ced4da; + } + + &:hover { + background-color: #eee; + } + } + } +} + +.fixed-top-line-fixed { + position: fixed; + top: 0; +} + +.account-sides-info { + .head { + display: flex; + flex-direction: column; + align-items: center; + padding: 2rem 1rem; + background-color: #fff; + border-radius: 0.375rem 0.375rem 0 0; + + .portrait { + width: 100px; + height: 100px; + border-radius: 50%; + box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.14); + border: 2px solid #FFFFFF; + overflow: hidden; + margin-bottom: 1rem; + } + + .account-name { + font-weight: bold; + font-size: 1rem; + margin-bottom: 0.4rem; + } + + .account-email { + color: #666666; + } + } + + .account-links { + > a { + color: #4B566B; + border: none; + padding: 0.8rem 1rem; + border-bottom: 1px solid #EEEEEE; + transition: all .2s ease-in-out; + text-decoration: none !important; + + &:last-of-type { + border-bottom: none; + } + + &:hover { + background-color: #E9ECEF; + } + + &.active { + background-color: #E9ECEF; + color: #4B566B; + } + + .badge { + color: #fff; + } + } + } +} + +.text-size-min { + font-size: 12px; +} + +.text-truncate-2 { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.breadcrumb { + @media (max-width: 768px) { + padding-top: .8rem; + padding-bottom: .8rem; + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/header.scss b/resources/beike/shop/fashion/css/header.scss new file mode 100644 index 00000000..45421244 --- /dev/null +++ b/resources/beike/shop/fashion/css/header.scss @@ -0,0 +1,457 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-03 22:32:29 + * @LastEditTime 2022-09-16 20:55:12 + */ + +header { + background: #fff; + @media (min-width: 992px) { + // border-bottom: 1px solid #dee0ea; + // box-shadow: 0px 1px 10px rgba(0, 0, 0, .04); + } + // body:not(.page-home) & { + // box-shadow: 0 6px 12px 0 rgba(0, 0, 0, .04); + // } + + body.page-home & { + @media (min-width: 992px) { + box-shadow: 0 2px 3px rgba(33,37,41,.07); + // border-bottom: 1px solid #dee0ea; + margin-bottom: 26px; + } + + .menu-box { + border-top: 1px solid #e5e5e5; + background-color: #fff; + } + } + + .top-wrap { + // padding: 10px; + height: 38px; + // max-height: 50px; + background: #F7F8FA; + // background: #161616; + display: flex; + // border-bottom: 1px solid #dee0ea; + } + + .top-wrap, .header-content { + .dropdown { + &:hover { + background-color: #fff; + + .dropdown-menu { + margin: 0; + display: block; + box-shadow: 0 0 15px rgb(0, 0, 0, .1); + border: none; + + &.dropdown-menu-end { + right: 0; + } + } + } + } + } + + .search-wrap { + flex: 1; + margin: 0 20px; + + .input-group { + background-color: #f1f1f3; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + + input { + border-color: #f1f1f3 !important; + padding-top: 0; + padding-bottom: 0; + background-color: transparent !important; + box-shadow: none !important; + } + + button { + background-color: $sub_color; + font-weight: bold; + } + } + + .menu-box { + // border-top: 1px solid #e5e5e5; + background-color: #f4f4f4; + } + + .menu-wrap { + .container { + max-width: 1140px; + } + + @media (min-width: 1200px) { + .navbar-nav { + .dropdown { + + &.position-static >.dropdown-menu { + // top: 100%; + } + + &:hover { + .dropdown-menu { + opacity: 1; + visibility: visible; + transform: translate(-50%); + } + } + + >.dropdown-menu { + left: 50%; + transform: translate(-50%, 0.5rem); + transition: all .2s ease-in-out; + transition-property: visibility,transform,opacity; + visibility: hidden; + opacity: 0; + display: block; + transform-origin: top center; + } + } + } + } + + > .navbar-nav { + > .nav-item { + background-color: transparent; + margin: 0 10px; + + > .nav-link { + font-size: 14px; + padding: .9rem; + position: relative; + + .badge { + position: absolute; + bottom: 80%; + padding: 2px 4px; + font-weight: 400; + left: calc(50% - 0px); + margin-left: 0px; + + &::before { + content: ""; + position: absolute; + top: 100%; + left: 10px; + border: 4px solid; + border-color: inherit; + border-right-color: #0000!important; + border-bottom-color: #0000!important; + border-right-width: 7px; + border-left-width: 0; + } + } + } + } + + .group-name { + font-size: 15px; + } + + .ul-children { + a { + color: #7a7a7a; + &:hover { + color: $primary; + } + } + } + } + } + + .header-content { + position: relative; + padding: 20px 0; + background-color: #fff; + + > .container { + display: flex; + align-items: center; + justify-content: space-between; + } + + .logo { + width: 25%; + + img { + max-width: 200px; + max-height: 50px; + } + } + + .right-btn { + width: 25%; + + .nav-link { + color: #333; + padding-right: 0.7rem; + padding-left: 0.7rem; + position: relative; + i { + font-size: 1.4rem; + } + } + + .cart-badge-quantity { + position: absolute; + left: 25px; + top: -3px; + text-align: center; + font-size: 12px; + display: none; + width: 23px; + zoom: 0.9; + height: 23px; + line-height: 24px; + background-color: $sub_color; + color: #222; + border-radius: 50%; + } + } + } + + .header-mobile { + .mobile-content { + padding: 10px; + display: flex; + align-items: center; + justify-content: space-between; + + > div { + width: 33.33%; + + &.center a { + display: flex; + align-items: center; + justify-content: center; + height: 30px; + + img { + max-height: 100%; + } + } + } + + .left { + display: flex; + align-items: center; + + > div { + cursor: pointer; + > i { + font-size: 1.5rem; + line-height: 1; + } + } + + .mobile-open-search { + margin-left: 10px; + + > i { + font-size: 1.1rem; + } + } + } + + .right { + display: flex; + justify-content: flex-end; + + .nav-link { + padding: 0; + i { + font-size: 1.2rem; + } + + // margin-left: 14px; + } + } + } + } +} + +#offcanvas-search-top { + height: 100px; + justify-content: center; + + .offcanvas-header { + width: 100%; + } + + input { + &:focus { + box-shadow: none; + } + } + + .btn-close { + padding: 1rem; + opacity: 1; + + &:hover { + background-color: #eee; + } + } +} + +#offcanvas-right-cart { + .select-wrap { + margin-right: 10px; + cursor: pointer; + + i { + font-size: 20px; + color: #aaa; + &.bi-check-circle-fill { + color: $primary; + } + } + } + + .offcanvas-right-products { + .product-list { + padding: 1rem 0; + border-top: 1px solid #eee; + + .left { + width: 80px; + flex: 0 0 80px; + height: 80px; + border: 1px solid #eee; + margin-right: 10px; + + img { + max-height: 90px; + } + } + + .right { + .price { + input { + margin-left: 10px; + width: 50px; + height: 24px; + } + } + + .offcanvas-products-delete { + cursor: pointer; + color: #999; + } + } + } + } + + .offcanvas-footer { + .to-checkout { + &:hover { + background-color: $sub_color; + border-color: $sub_color; + color: #111; + } + } + } +} + +#offcanvas-mobile-menu { + width: 80%; + + .offcanvas-header { + padding: 10px 20px 10px 10px; + } + + .mobile-menu-wrap { + padding: 0; + + #menu-accordion { + border-top: 1px solid #e5e5e5; + + .accordion-item { + border-bottom: 1px solid #e5e5e5; + + .nav-item-text { + display: flex; + align-items: center; + justify-content: space-between; + + > a { + flex: 1; + height: 44px; + padding-left: 10px; + display: flex; + align-items: center; + + .badge { + position: relative; + margin-left: 13px; + // padding: 2px 4px; + font-weight: 400; + + &::before { + content: ""; + position: absolute; + top: 50%; + right: 100%; + transform: translate(0, -50%); + border: 4px solid; + border-right-width: 7px; + border: 5px solid #0000; + border-right-color: inherit; + } + } + } + + > span { + width: 44px; + height: 44px; + display: flex; + border-left: 1px solid #e5e5e5; + align-items: center; + justify-content: center; + &:active { + background-color: #eee; + } + + &[aria-expanded="true"] { + background-color: #eee; + i { + transform:rotate(180deg); + } + } + } + } + + .accordion-collapse { + padding: 10px; + border-top: 1px solid #e5e5e5; + + .children-group { + .group-name { + margin-bottom: 4px; + } + + .nav { + a { + color: #777; + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/home.scss b/resources/beike/shop/fashion/css/home.scss new file mode 100644 index 00000000..3438f068 --- /dev/null +++ b/resources/beike/shop/fashion/css/home.scss @@ -0,0 +1,105 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:55:22 + */ + +.module-item { + position: relative; + + &.module-item-design { + &:hover { + .module-edit { + display: flex; + } + + &:after { + display: block; + } + } + } + + &:after { + content: ''; + display: none; + position: absolute; + left: 2px; + right: 2px; + top: 2px; + bottom: 2px; + z-index: 9; + outline: 2px solid $primary; + } + + .module-edit { + // position: relative; + position: absolute; + top: -28px; + left: 0; + width: 100%; + z-index: 9; + // display: flex; + align-items: center; // flex-start | center + justify-content: center; // flex-end | center | space-between + display: none; + + .edit-wrap { + background-color: $primary; + color: #fff; + display: flex; + align-items: center; + + > div { + height: 28px; + line-height: 30px; + padding: 0 10px; + font-size: 16px; + cursor: pointer; + position: relative; + + &:first-of-type { + &:after { + content: ""; + position: absolute; + top: 0; + border: solid #0000; + border-right: solid $primary; + border-width: 28px 10px 0 0; + right: 100%; + } + &:hover { + &:after { + border-right-color: darken($primary, 6%); + } + } + } + + &:last-of-type { + &:after { + content: ""; + position: absolute; + top: 0; + border: solid #0000; + border-left: solid $primary; + border-width: 28px 0 0 10px; + left: 100%; + } + &:hover { + &:after { + border-left-color: darken($primary, 6%); + } + } + } + + &:hover { + background-color: darken($primary, 6%); + } + } + // flex-wrap: wrap; + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/iconfont.scss b/resources/beike/shop/fashion/css/iconfont.scss new file mode 100644 index 00000000..002d8679 --- /dev/null +++ b/resources/beike/shop/fashion/css/iconfont.scss @@ -0,0 +1,23 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:55:31 + */ + +@font-face {font-family: 'iconfont'; + src: url('/fonts/iconfont/iconfont.woff') format('woff'), /* chrome、firefox */ + url('/fonts/iconfont/iconfont.ttf') format('truetype'); /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ +} + +.iconfont { + font-family: "iconfont"; + font-size: 1rem; + font-style:normal; + -webkit-font-smoothing: antialiased; + -webkit-text-stroke-width: 0.2px; + -moz-osx-font-smoothing: grayscale; +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/login.scss b/resources/beike/shop/fashion/css/login.scss new file mode 100644 index 00000000..4d0a5e65 --- /dev/null +++ b/resources/beike/shop/fashion/css/login.scss @@ -0,0 +1,125 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-09 19:16:39 + * @LastEditTime 2022-09-16 20:55:37 + */ + +body.page-login, body.page-forgotten { + @media (max-width: 768px) { + overflow-x: hidden; + } + + .el-form-item__error--inline { + margin-left: 0; + } + + .forgotten-link { + display: block; + margin-top: -14px; + } + + .btn-dark { + &:hover { + background-color: $sub_color; + border-color: $sub_color; + color: #111; + } + } + + .el-form-item { + margin-bottom: 18px; + + .el-form-item__content { + line-height: 1; + } + } + + .login-item-header { + background: #f8f9fa; + border-bottom: none; + padding: 1.2rem 1.5rem; + h6 { + font-weight: bold; + font-size: 1rem; + } + } + + .vr-wrap { + margin: 0 80px; + } + + .login-wrap { + @media (min-width: 768px) { + display: flex; + justify-content: center; + } + + .card { + border: none; + @media (min-width: 768px) { + width: 340px; + } + } + } + + .form-iframe { + margin-bottom: 30px; + + @media (max-width: 768px) { + padding: 0; + margin-top: 0 !important; + } + + .vr-wrap { + margin: 0 60px; + } + + .card { + border: none; + } + } + + .social-wrap { + .title { + position: relative; + text-align: center; + color: #999; + + &::before { + content: ""; + position: absolute; + width: 100%; + left: 0; + height: 1px; + top: 47%; + background: #e5e5e5; + } + + span { + background-color: #fff; + position: relative; + padding: 0 5px; + z-index: 1; + } + } + + .btn { + // border-color: #ccc !important; + color: #666; + + img { + // transform: translateY(-50%); + position: absolute; + left: 40px; + } + + &:hover { + background-color: #eee; + } + } + } +} diff --git a/resources/beike/shop/fashion/css/module/module-brand.scss b/resources/beike/shop/fashion/css/module/module-brand.scss new file mode 100644 index 00000000..874d7741 --- /dev/null +++ b/resources/beike/shop/fashion/css/module/module-brand.scss @@ -0,0 +1,33 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-04 17:52:22 + * @LastEditTime 2022-09-16 20:57:25 + */ + +.module-brand { + .brand-item { + display: flex; + align-items: center; // flex-start | center + justify-content: center; // flex-end | center | space-between + box-shadow: 0 6px 18px rgba(0, 0, 0, .07); + margin-bottom: 10px; + height: 120px; + border-radius: 10px; + overflow: hidden; + border: 1px solid transparent; + transition: all 0.3s ease-in-out; + + &:hover { + box-shadow: 0 6px 18px rgba(0, 0, 0, .1); + border: 1px solid $sub_color; + } + + > img { + max-height: 100%; + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/module/module-icon.scss b/resources/beike/shop/fashion/css/module/module-icon.scss new file mode 100644 index 00000000..61974930 --- /dev/null +++ b/resources/beike/shop/fashion/css/module/module-icon.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-04 17:52:22 + * @LastEditTime 2022-09-16 20:57:25 + */ + +.module-icon-wrap { + .image-item { + flex: 0 0 40px; + height: 40px; + @media (max-width: 768px) { + flex: 0 0 30px; + height: 30px; + } + } + + .icon-container { + @media (min-width: 992px) { + border-bottom: 1px solid #e5e5e5; + padding-bottom: 30px; + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/module/module-image-plus.scss b/resources/beike/shop/fashion/css/module/module-image-plus.scss new file mode 100644 index 00000000..67713cba --- /dev/null +++ b/resources/beike/shop/fashion/css/module/module-image-plus.scss @@ -0,0 +1,50 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:57:29 + */ + +.module-image-plus { + .container-fluid { + padding-right: 0; + padding-left: 0; + } + + a { + overflow: hidden; + display: block; + + img { + transition: .3s ease-in-out; + } + + &:hover { + img { + transform: rotate(6deg) scale(1.3); + } + } + } + + .module-image-plus-top { + display: flex; + + .right { + margin-left: 20px; + } + } + + .module-image-plus-bottom { + margin-top: 20px; + } +} + +.module-image-banner { + .container-fluid { + padding-right: 0; + padding-left: 0; + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/module/module-tab-product.scss b/resources/beike/shop/fashion/css/module/module-tab-product.scss new file mode 100644 index 00000000..6e77a8f5 --- /dev/null +++ b/resources/beike/shop/fashion/css/module/module-tab-product.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:57:33 + */ + +.module-tab-product { + .module-title { + margin-bottom: 1rem; + } + + .nav { + .nav-link { + color: #6c757d; + font-size: .9rem; + + &.active { + color: #111; + font-weight: bold; + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/module/slideshow.scss b/resources/beike/shop/fashion/css/module/slideshow.scss new file mode 100644 index 00000000..bdbb3647 --- /dev/null +++ b/resources/beike/shop/fashion/css/module/slideshow.scss @@ -0,0 +1,86 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:57:36 + */ + +.swiper.module-slideshow { + --swiper-theme-color: #78e723;/* 设置Swiper风格 */ + --swiper-navigation-color: #222;/* 单独设置按钮颜色 */ + --swiper-navigation-size: 30px;/* 设置按钮大小 */ + + .swiper-button-prev,.swiper-button-next { + display: none; + } + + &:hover { + .swiper-button-prev,.swiper-button-next { + display: block; + } + } + + &.rounded-4 { + @media (max-width: 992px) { + border-radius: 0 !important; + } + } +} + +.slideshow-container { + @media (min-width: 992px) { + padding: 0 5.3rem; + } + @media (min-width: 1460px) { + padding: 0 6.3rem; + } +} + + +.swiper-style-plus { + position: relative; + + .swiper-button-prev,.swiper-button-next { + width: 34px; + height: 37px; + color: #999; + @media (max-width: 768px) { + display: none; + } + + &:hover { + color: #111; + } + + &:after { + font-size: 26px; + } + + } + + .swiper-button-prev { + left: -40px; + } + + .swiper-button-next { + right: -40px; + } + + .swiper-pagination { + bottom: -10px !important; + + .swiper-pagination-bullet-active { + background: $sub_color; + } + + &.rectangle { + span { + border-radius: 0; + height: 3px; + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/news.scss b/resources/beike/shop/fashion/css/news.scss new file mode 100644 index 00000000..abe6b066 --- /dev/null +++ b/resources/beike/shop/fashion/css/news.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:47:45 + */ + +.page-categories-home, .page-pages { + background-color: #f6f6f6; +} diff --git a/resources/beike/shop/fashion/css/order-success.scss b/resources/beike/shop/fashion/css/order-success.scss new file mode 100644 index 00000000..0c55676c --- /dev/null +++ b/resources/beike/shop/fashion/css/order-success.scss @@ -0,0 +1,77 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-01 16:23:34 + * @LastEditTime 2022-09-16 20:55:44 + */ + +body.page-order-success, body.page-payment { + .order-wrap { + .card-body { + &.main-body { + padding: 3rem; + padding-left: 7rem; + + @media (max-width:768px) { + padding: 1rem; + } + } + + .order-top { + padding-bottom: 2.7rem; + margin-bottom: 2.7rem; + display: flex; + justify-content: center; // flex-end | center | space-between + + .left { + margin-top: -6px; + + @media (max-width:768px) { + display: none; + } + + i { + color: #4caf50; + font-size: 80px; + line-height: 1; + } + } + + .right { + flex: 1; + margin-left: 2rem; + + @media (max-width:768px) { + margin: 0; + } + .table { + margin-bottom: 0; + } + + .order-title { + margin-bottom: 1.2rem; + font-weight: 400; + } + + .order-info { + padding: .7rem; + background-color: #fffaf0; + border: 1px solid #ffe1ad; + } + } + } + + .order-bottom { + margin-left: calc(2rem + 80px); + line-height: 2; + + @media (max-width:768px) { + margin: 0; + } + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/page-account-address.scss b/resources/beike/shop/fashion/css/page-account-address.scss new file mode 100644 index 00000000..78f558eb --- /dev/null +++ b/resources/beike/shop/fashion/css/page-account-address.scss @@ -0,0 +1,107 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-01 16:23:34 + * @LastEditTime 2022-09-16 20:55:54 + */ + +body.page-account-address, body.page-checkout { + .addresses-wrap { + .item { + position: relative; + padding: 14px 14px 14px 18px; + margin-bottom: 1.3rem; + border: 1px solid #e8e8e8; + height: 130px; + cursor: pointer; + + @media (max-width: 768px) { + padding: 10px 10px 10px 14px; + } + + &:hover { + border-color: #222; + } + + &.active { + border-left: none; + + &:before { + content: ''; + position: absolute; + top: -1px; + left: 0; + width: 4px; + height: calc(100% + 2px); + background-color: #4991F4; + background: repeating-linear-gradient(-45deg, #d60404 0, #d60404 10px, #fff 10px, #fff 20px, #4991F4 20px, #4991F4 30px, #fff 30px, #fff 40px); + } + } + + .name-wrap { + margin-bottom: .6rem; + line-height: 1; + + .name { + font-size: 1rem; + font-weight: bold; + } + + .phone { + font-size: .8rem; + color: #666; + } + } + + .zipcode { + margin-bottom: .3rem; + } + + .address-info { + // margin-bottom: .9rem; + height: 32px; + line-height: 1.3; + } + + .address-bottom { + display: flex; + align-items: center; // flex-start | center + justify-content: space-between; // flex-end | center | space-between + // flex-wrap: wrap; + a { + color: #2d68a8; + } + } + } + } + + .mobileWidth { + width: 600px; + @media (max-width: 768px) { + width: 95%; + } + } + + .dialog-address { + display: block; + + >div { + @media (max-width:768px) { + width: 100%; + // margin-bottom: 10px; + // &:nth-last-child(){ + // margin-bottom: 0; + // } + } + } + + @media (min-width:768px) { + display: flex; + } + } + + +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/page-account-order.scss b/resources/beike/shop/fashion/css/page-account-order.scss new file mode 100644 index 00000000..4ea25b5e --- /dev/null +++ b/resources/beike/shop/fashion/css/page-account-order.scss @@ -0,0 +1,113 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-01 16:23:34 + * @LastEditTime 2022-09-16 20:55:58 + */ + +body.page-account-order-list { + background-color: #F7F8FA; + + .order-wrap { + .table { + .sep-row { + height: 20px; + + td { + border: 0; + } + } + + .head-tr { + background: #f5f5f5; + td { + border-bottom-color: #f5f5f5; + } + } + + thead { + background: #f5f5f5; + th { + font-weight: 500; + border: 0; + } + } + + tbody { + td { + border: 1px solid #e5e5e5; + } + } + + .product-info { + display: flex; + align-items: center; + + .img { + flex: 0 0 60px; + margin-right: 10px; + + @media (max-width:768px) { + // display: none; + flex: 0 0 50px; + width: 50px + } + } + + .name { + @media (max-width:768px) { + a { + overflow: hidden; + text-overflow:ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + font-size: 12px; + } + } + } + } + } + } +} + +body.page-account-order-info { + background-color: #F7F8FA; + + .order-head { + + } + + .product-list { + display: flex; + align-items: center; // flex-start | center + justify-content: space-between; + border-bottom: 1px solid #eee; + padding-bottom: 1rem; + margin-bottom: 1rem; + // justify-content: space-between; // flex-end | center | space-between + + .left { + flex: 0 0 80px; + margin-right: 10px; + } + + .right { + color: #767676; + font-size: .9375rem; + + .name { + // font-weight: bold; + margin-bottom: .4rem; + color: #1a1a1a; + } + } + } + + .nowrap { + white-space: nowrap; + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/page-brands.scss b/resources/beike/shop/fashion/css/page-brands.scss new file mode 100644 index 00000000..cf5c9d3f --- /dev/null +++ b/resources/beike/shop/fashion/css/page-brands.scss @@ -0,0 +1,67 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-15 15:43:12 + * @LastEditTime 2022-09-16 20:56:17 + */ + +body.page-brands { + .brand-item { + display: flex; + align-items: center; // flex-start | center + justify-content: center; // flex-end | center | space-between + box-shadow: 0 6px 18px rgba(0, 0, 0, .07); + margin-bottom: 10px; + height: 133px; + width: 100%; + + >img { + max-height: 100%; + } + } + + .brand-list { + li { + list-style: none; + + a { + color: #242424; + text-decoration: none; + } + } + } + + .curser-list { + cursor: pointer; + + @media (max-width: 768px) { + display: block; + + li { + display: inline-block; + margin-bottom: 6px; + + & + .list-group-item { + border-left: 1px solid #e4e4e4; + } + } + } + + >li>a { + color: #242424; + transition: all .3s; + text-decoration: none; + + &:hover { + background-color: #eee; + } + + &:active { + background-color: #aaa; + } + } + } +} diff --git a/resources/beike/shop/fashion/css/page-categories.scss b/resources/beike/shop/fashion/css/page-categories.scss new file mode 100644 index 00000000..292a412c --- /dev/null +++ b/resources/beike/shop/fashion/css/page-categories.scss @@ -0,0 +1,230 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-02 19:19:52 + * @LastEditTime 2022-09-16 20:56:05 + */ + +body.page-categories { + .col-lg-9.right-column { + @media (min-width: 992px) { + width: 78%; + } + } + + .col-lg-3.left-column { + @media (min-width: 992px) { + width: 22%; + } + + .card:not(:last-of-type) { + border-bottom: 1px solid #E6E6E6; + margin-bottom: 1.4rem; + padding-bottom: 1.4rem; + } + } + + .children-wrap { + @media (max-width: 992px) { + display: none; + } + + a { + color: #333; + margin-right: 4px; + + &:hover { + color: $primary; + } + } + } + + .style-wrap { + label { + cursor: pointer; + &.active { + svg { + fill: $primary; + } + } + + svg { + fill: #999; + } + } + } + + .filter-value-wrap { + .list-group { + display: block; + + .list-group-item { + display: inline-block; + cursor: pointer; + font-size: 12px; + background: #f3f3f3; + border: none; + color: #666; + padding: 4px 12px; + &.delete-all { + background: $primary; + color: #fff; + } + + &:hover { + background: $primary; + color: #fff; + } + } + } + } + + .product-tool { + @media (min-width: 992px) { + .order-select { + min-width: 170px; + } + } + } + + .ui-widget-content { + border-radius: 0; + position: relative; + border: none; + margin-right: 4px; + margin-bottom: 0; + background: none; + cursor: pointer; + + .ui-widget-header { + background: $primary; + position: absolute; + top: 50%; + border-radius: 0; + height: 3px; + margin-top: -3px; + } + + .slider-bg { + background: #e3e3e3; + position: absolute; + top: 50%; + width: 100%; + height: 3px; + margin-top: -3px; + } + + .ui-slider-handle { + width: 4px; + margin-left: 0; + cursor: ew-resize; + border: none !important; + border-radius: 0; + background: $primary; + outline: none !important; + } + } +} + +.sidebar-widget { + list-style: none; + padding: 0 0 1.4rem; + border-bottom: 1px solid #E6E6E6; + + > li { + padding-top: 0.3rem; + padding-bottom: 0.3rem; + // border-bottom: 1px solid #e9ecef; + + &:last-of-type { + border-bottom: none; + } + + .category-href { + display: inline-block; + position: relative; + color: #333; + overflow: hidden; + text-overflow:ellipsis; + white-space: nowrap; + width: calc(100% - 36px); + } + + &.active { + > a { + font-weight: bold; + color: $primary; + } + } + } + + ul { + padding-left: 12px; + list-style: none; + + li { + line-height: 1; + margin: 16px 0; + + ul { + margin-top: 8px; + padding-left: 14px; + } + + &:last-of-type { + border: none; + } + + &.active { + > a { + color: $primary; + font-weight: bold; + } + } + + a { + color: #868e96; + &:first-of-type { + width: calc(100% - 26px); + overflow: hidden; + text-overflow:ellipsis; + white-space: nowrap; + display: inline-block; + } + + &:hover { + color: $primary; + } + } + } + } + + .toggle-icon { + float: right; + font-size: 16px; + padding: 0 6px; + i { + color: #aaa; + } + + &.collapsed { + transform: rotate(-180deg); + } + } +} + +.filter-box { + .attribute-item { + .form-check-label { + cursor: pointer; + &:hover { + .form-check-input { + border-color: $primary; + } + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/page-checkout.scss b/resources/beike/shop/fashion/css/page-checkout.scss new file mode 100644 index 00000000..52acbe7e --- /dev/null +++ b/resources/beike/shop/fashion/css/page-checkout.scss @@ -0,0 +1,220 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-01 16:23:34 + * @LastEditTime 2022-09-16 20:56:12 + */ + +body.page-checkout { + background-color: #f6f8fa; + + .radio-line-wrap { + .radio-line-item { + display: flex; + align-items: center; + cursor: pointer; + padding: 20px; + border: 1px solid transparent; + + &:not(:last-of-type) { + margin-bottom: 1rem; + } + + &:hover { + border-color: #e5e5e5; + } + + &:active { + background-color: #f7f7f7; + } + + &.active { + border-color: #e5e5e5; + + .radio { + border-color: $sub_color; + + &:before { + content: ''; + position: absolute; + width: 12px; + height: 12px; + background-color: $sub_color; + left: 2px; + top: 2px; + border-radius: 50%; + } + } + } + + .radio { + position: relative; + width: 18px; + flex: 0 0 18px; + height: 18px; + border: 1px solid #d4d4d4; + border-radius: 50%; + } + + .left { + margin-right: 10px; + display: flex; + align-items: center; + flex: 0 0 88px; + + img { + width: 60px; + margin-left: 10px; + } + } + + .right { + .title { + font-weight: bold; + margin-bottom: 10px; + } + } + } + } + + .addresses-wrap { + .item { + &.address-right { + @media (min-width: 768px) { + padding: 0 2.6rem; + } + + @media (max-width: 768px) { + padding: 0; + } + + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + cursor: auto; + border: none; + } + } + } +} + +body.page-checkout, body.page-bk-stripe { + .checkout-black { + margin-bottom: 2.6rem; + } + + .checkout-title { + border-bottom: 1px solid #f1f1f1; + padding-bottom: 16px; + margin-bottom: 16px; + position: relative; + display: flex; + align-items: center; // flex-start | center + justify-content: space-between; // flex-end | center | space-between + + .btn { + margin-bottom: -10px; + &.icon { + font-size: 1rem; + } + } + } + + .total-wrap { + .card-body { + @media (min-width: 768px) { + padding: 0; + } + } + + .card-header { + background-color: #fff; + margin-bottom: 1rem; + border-bottom: 1px solid #E6E6E6; + + @media (min-width: 768px) { + padding: 0 0 .8rem; + } + + h5 { + font-weight: bold; + } + + span { + line-height: 24px; + min-width: 24px; + color: #fff; + text-align: center; + } + } + + .products-wrap { + border-bottom: 1px solid #E6E6E6; + margin-bottom: 1.3rem; + padding-bottom: .3rem; + max-height: 380px; + overflow-y: auto; + + .item { + display: flex; + align-items: center; // flex-start | center + justify-content: space-between; // flex-end | center | space-between + margin-bottom: .8rem; + + .image { + display: flex; + align-items: center; // flex-start | center + padding-right: 4px; + + img { + width: 40px; + margin-right: 10px; + } + + .quantity { + margin-left: 3px; + color: #7a7a7a; + } + } + + .price { + color: #7a7a7a; + } + } + } + + .totals { + padding-left: 0; + list-style: none; + padding-bottom: .3rem; + margin-bottom: 1.5rem; + border-bottom: 1px solid #E6E6E6; + + > li { + display: flex; + align-items: center; // flex-start | center + justify-content: space-between; // flex-end | center | space-between + margin-bottom: 14px; + &:last-of-type { + font-weight: bold; + + > span { + &:last-of-type { + color: #dc3545; + } + } + } + + > span { + &:first-of-type { + font-size: .8rem; + } + } + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/page-list.scss b/resources/beike/shop/fashion/css/page-list.scss new file mode 100644 index 00000000..8538ecd9 --- /dev/null +++ b/resources/beike/shop/fashion/css/page-list.scss @@ -0,0 +1,50 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-15 15:43:12 + * @LastEditTime 2022-09-16 20:56:17 + */ + +body.page-list { + .brand-item { + display: flex; + align-items: center; // flex-start | center + justify-content: center; // flex-end | center | space-between + box-shadow: 0 6px 18px rgba(0, 0, 0, .07); + margin-bottom: 10px; + height: 133px; + width: 100%; + + >img { + max-height: 100%; + } + } + + li { + list-style: none; + + a{ + color: #242424; + text-decoration: none; + } + } + + .curser { + cursor: pointer; + + >li>a { + display: block; + color: #242424; + transition: all .5s; + margin: 0 auto; + + &:hover { + text-decoration: none; + background-color: #eee; + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/page-product.scss b/resources/beike/shop/fashion/css/page-product.scss new file mode 100644 index 00000000..63e4060a --- /dev/null +++ b/resources/beike/shop/fashion/css/page-product.scss @@ -0,0 +1,282 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-24 17:24:33 + * @LastEditTime 2022-09-16 20:56:21 + */ + +body.page-product { + @media (max-width: 768px) { + .breadcrumb { + display: none + } + } + + #product-description { + img { + max-width: 100%; + height: auto; + } + } + + .product-image { + #swiper { + height: 250px; + @media (min-width: 480px) { + height: 400px; + } + @media (min-width: 768px) { + height: 500px; + } + + &:hover { + .swiper-pager > div { + @media (max-width: 768px) { + display: none; + } + background-color: rgba(255, 255, 255, 0.548); + opacity: 1; + &:hover { + background-color: rgba(255, 255, 255); + } + } + } + } + + #swiper-mobile { + .swiper-pagination { + --swiper-theme-color: #ff6600;/* 设置Swiper风格 */ + --swiper-navigation-color: #ff6600;/* 单独设置按钮颜色 */ + --swiper-navigation-size: 30px;/* 设置按钮大小 */ + } + } + + .left { + margin-right: 1rem; + + .swiper > div > div{ + border: 1px solid #eee; + margin-bottom: 10px; + width: 80px; + // height: 80px !important; + padding: 2px; + cursor: pointer; + + &.active, &:hover { + border: 1px solid #3a3a3a; + } + } + + .swiper-pager { + > div { + opacity: 0; + background-color: rgba(255, 255, 255, 0); + transition: all .5s; + } + .swiper-button-next { + border: 0; + top: 485px; + left: 50%; + + height: 55px; + width: 30px; + transform-origin: center; + transform: rotate(90deg) translate(0,25%); + + &:hover,&.active { + border: 0 !important; + } + + &::after { + font-size: 18px; + } + } + + .swiper-button-prev{ + border: 0; + top: 8px; + left: 50%; + height: 55px; + width: 30px; + transform-origin: center; + transform: rotate(90deg) translate(0,25%); + + &:hover,&.active { + border: 0 !important; + } + + &::after { + font-size: 18px; + } + } + } + } + + .right { + border: 1px solid #eee; + } + } + + .stock-and-sku { + > div { + margin-bottom: 10px; + font-size: 14px; + + .title { + width: 80px; + } + } + } + + .variables-wrap { + .variable-info { + > div { + display: inline-flex; + align-items: center; + justify-content: center; + margin-right: 0.5rem; + margin-bottom: 0.5rem; + border: 1px solid #ddd; + margin-left: 0; + min-width: 3rem; + padding: 0.5rem; + cursor: pointer; + text-align: center; + font-weight: bold; + flex-direction: column; + border-radius: 4px; + transition: all .1s ease-in-out; + &:hover, &.selected { + border-color: #222; + } + + > span.image { + width: 50px; + margin-top: -0.5rem; + margin-left: -0.5rem; + margin-right: -0.5rem; + margin-bottom: 6px; + } + + &:not(.selected) { + &.disabled { + border: 1px dashed #bfbfbf; + color: #999; + font-weight: initial; + } + } + } + } + } + + .peoduct-info { + .product-name { + font-size: 1.7rem; + line-height: 1.3; + font-weight: 600; + + @media (max-width: 768px) { + font-size: 1.2rem; + } + } + + .rating-wrap { + margin-bottom: 2rem; + + .rating { + margin-right: .5rem; + i { + color: $primary; + } + } + } + + .price-wrap { + margin-bottom: 2.4rem; + } + + .quantity-btns { + @media (min-width: 768px) { + display: flex; + } + + .add-cart { + background-color: #12283f; + color: #fff; + + &:hover { + background-color: $sub_color; + color: #222; + } + } + + .btn-buy-now { + border: 1px solid #e2e2e2; + &:hover { + border: 1px solid #12283f; + } + } + + .quantity-input { + max-width: 5rem; + text-align: center; + } + + .quantity-wrap { + height: 43px; + @media (max-width: 768px) { + margin-bottom: 10px; + } + } + } + } + + .product-description { + .nav-tabs { + .nav-link { + border: none; + + &.active { + position: relative; + background-color: transparent; + color: $primary; + + &:before { + border-top: 1px solid $primary; + content: ""; + position: absolute; + bottom: 0; + left: 0; + right: 0; + } + } + } + } + } + + .attribute-table { + tr { + td:first-of-type { + @media (min-width: 768px) { + width: 20%; + } + + @media (max-width: 768px) { + width: 40%; + } + } + } + } + + .relations-wrap { + .swiper-pagination { + .swiper-pagination-bullet { + height: 3px; + border-radius: 0; + } + } + } +} \ No newline at end of file diff --git a/resources/beike/shop/fashion/css/product-style.scss b/resources/beike/shop/fashion/css/product-style.scss new file mode 100644 index 00000000..a968bfa5 --- /dev/null +++ b/resources/beike/shop/fashion/css/product-style.scss @@ -0,0 +1,148 @@ +@charset "UTF-8"; + +/** + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-03 22:32:29 + * @LastEditTime 2022-09-16 20:56:27 + */ + +.product-list-wrap { + .col-12:not(:last-of-type) { + .product-wrap { + border-bottom: 1px solid #E6E6E6; + margin-bottom: 1.4rem; + padding-bottom: 1.4rem; + + &:hover { + box-shadow: none; + .image { + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); + } + + .button-wrap { + bottom: 10px; + opacity: 1; + + button { + &:hover { + background-color: $sub_color; + border-color: $sub_color; + color: #111 !important; + i { + color: #111; + } + } + } + } + } + } + } +} + +.product-wrap { + margin-bottom: 20px; + text-align: center; + padding-bottom: .7rem; + transition: all 0.3s ease-in-out; + background-color: #fff; + border: 1px solid #E9ECEF; + border-radius: 0.375rem; + overflow: hidden; + + &.list { + display: flex; + padding-bottom: 0; + + .image { + width: 200px; + margin-bottom: 0; + transition: all 0.3s ease-in-out; + } + + .product-name { + height: auto; + margin-bottom: 20px; + } + + .product-bottom-info { + padding-top: 10px; + padding-left: 20px; + flex: 1; + text-align: left; + + .product-name { + font-size: 14px; + } + } + } + + .image { + margin-bottom: 10px; + position: relative; + + .image-old { + opacity: 1; + transition: all ease-out .4s; + } + + .button-wrap { + width: 100%; + position: absolute; + z-index: 40; + bottom: -30px; + opacity: 0; + transition: all .3s ease-out; + display: flex; + justify-content: center; + + button { + &:hover { + background-color: $sub_color; + border-color: $sub_color; + i { + color: #111; + font-weight: bold; + } + } + } + } + } + + @media (min-width: 768px) { + &:hover { + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); + + .button-wrap { + bottom: 10px; + opacity: 1; + } + } + } + + .product-name { + height: 39px; + margin-bottom: 10px; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + color: #3d3d3d; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + } + + .product-price { + .price-new { + color: $price; + font-size: 1.1rem; + font-weight: bold; + } + + .price-old { + color: #aaa; + margin-left: 4px; + text-decoration: line-through; + } + } +} diff --git a/resources/beike/shop/fashion/js/app.js b/resources/beike/shop/fashion/js/app.js new file mode 100644 index 00000000..39650e99 --- /dev/null +++ b/resources/beike/shop/fashion/js/app.js @@ -0,0 +1,52 @@ +/* + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-29 17:32:51 + * @LastEditTime 2023-02-02 11:06:01 + */ + +import http from "../../../../js/http"; +import common from "./common"; +window.bk = common; +window.$http = http; + +const token = document.querySelector('meta[name="csrf-token"]').content; +const base = document.querySelector('base').href; + +import './product'; +import './header' +import './bootstrap-validation' + +$(document).ready(function ($) { + $(document).on('click', '.offcanvas-products-delete', function () { + const id = $(this).data('id'); + + $http.delete(`carts/${id}`).then((res) => { + $(this).parents('.product-list').remove(); + if (!res.data.quantity) { + $('.cart-badge-quantity').hide(); + } else { + $('.cart-badge-quantity').show().html(res.data.quantity > 99 ? '99+' : res.data.quantity); + } + + $('.offcanvas-right-cart-count').text(res.data.quantity); + $('.offcanvas-right-cart-amount').text(res.data.amount_format); + }) + }) + + if ($(window).width() > 992 && $('.x-fixed-top').length) { + $('.x-fixed-top').scrollToFixed({ + zIndex: 999, + limit: function () { + var limit = $('footer').offset().top - 84 - $('.x-fixed-top').outerHeight(true); + return limit + } + }); + } + + const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]') + const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl)) +}); + +bk.getCarts(); // 页面初始加载购物车数据 \ No newline at end of file diff --git a/resources/beike/shop/fashion/js/bootstrap-validation.js b/resources/beike/shop/fashion/js/bootstrap-validation.js new file mode 100644 index 00000000..00578140 --- /dev/null +++ b/resources/beike/shop/fashion/js/bootstrap-validation.js @@ -0,0 +1,28 @@ +/* + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-17 17:39:14 + * @LastEditTime 2022-09-16 20:56:42 + */ + +// Example starter JavaScript for disabling form submissions if there are invalid fields +$(function () { + var forms = document.querySelectorAll(".needs-validation"); + + // Loop over them and prevent submission + Array.prototype.slice.call(forms).forEach(function (form) { + form.addEventListener( + "submit", + function (event) { + if (!form.checkValidity()) { + event.preventDefault(); + event.stopPropagation(); + } + + form.classList.add("was-validated"); + }, + false + ); + }); +}); diff --git a/resources/beike/shop/fashion/js/common.js b/resources/beike/shop/fashion/js/common.js new file mode 100644 index 00000000..56ee3cae --- /dev/null +++ b/resources/beike/shop/fashion/js/common.js @@ -0,0 +1,128 @@ +/* + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-09-09 19:16:39 + * @LastEditTime 2023-03-12 21:16:10 + */ + +export default { + /** + * @description: 获取购物车数据 + * @return {*} + */ + getCarts() { + $(document).ready(() => { + $http.get('carts/mini', null, {hload: true}).then((res) => { + $('#offcanvas-right-cart').html(res.data.html); + $('.cart-badge-quantity').show().html(res.data.quantity_all > 99 ? '99+' : res.data.quantity_all); + }) + }) + }, + + /** + * @description: 加入购物车 + * @param {*} sku_id 商品id + * @param {*} quantity 商品数量 + * @param {*} isBuyNow 是否立即购买 + * @return {*} 返回Promise + */ + addCart({sku_id, quantity = 1, isBuyNow = false}, event) { + if (!config.isLogin && !config.guestCheckout) { + this.openLogin() + return; + } + + const $btn = $(event); + const btnHtml = $btn.html(); + const loadHtml = ''; + $btn.html(loadHtml).prop('disabled', true); + $(document).find('.tooltip').remove(); + + $http.post('/carts', {sku_id, quantity, buy_now: isBuyNow}, {hload: !!event}).then((res) => { + this.getCarts(); + layer.msg(res.message) + if (isBuyNow) { + location.href = 'checkout' + } + }).finally(() => {$btn.html(btnHtml).prop('disabled', false)}) + }, + + addWishlist(id, event) { + if (!config.isLogin) { + this.openLogin() + return; + } + + const $btn = $(event); + const btnHtml = $btn.html(); + const isWishlist = $btn.attr('data-in-wishlist') * 1; + const loadHtml = ''; + $(document).find('.tooltip').remove(); + + if (isWishlist) { + $btn.html(loadHtml).prop('disabled', true); + $http.delete(`account/wishlist/${isWishlist}`, null, {hload: true}).then((res) => { + layer.msg(res.message) + $btn.attr('data-in-wishlist', '0'); + }).finally((e) => { + $btn.html(btnHtml).prop('disabled', false).find('i.bi').prop('class', 'bi bi-heart') + }) + } else { + $btn.html(loadHtml).prop('disabled', true); + $http.post('account/wishlist', {product_id: id}, {hload: true}).then((res) => { + layer.msg(res.message) + $btn.attr('data-in-wishlist', res.data.id); + $btn.html(btnHtml).prop('disabled', false).find('i.bi').prop('class', 'bi bi-heart-fill') + }).catch((e) => { + $btn.html(btnHtml).prop('disabled', false) + }) + } + }, + + openLogin() { + layer.open({ + type: 2, + title: '', + shadeClose: true, + scrollbar: false, + area: ['900px', '600px'], + skin: 'login-pop-box', + content: 'login?iframe=true' //iframe的url + }); + }, + + getQueryString(name, defaultValue) { + const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); + const r = window.location.search.substr(1).match(reg); + if (r != null) { + return decodeURIComponent(r[2]); + } + + return typeof(defaultValue) != 'undefined' ? defaultValue : ''; + }, + + removeURLParameters(url, ...parameters) { + const parsed = new URL(url); + parameters.forEach(e => parsed.searchParams.delete(e)) + return parsed.toString() + }, + + updateQueryStringParameter(uri, key, value) { + var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); + var separator = uri.indexOf('?') !== -1 ? "&" : "?"; + if (uri.match(re)) { + return uri.replace(re, '$1' + key + "=" + value + '$2'); + } else { + return uri + separator + key + "=" + value; + } + }, + + openWin(url, name = '', iWidth = 700, iHeight = 500) { + var iTop = (window.screen.height - 30 - iHeight) / 2; + var iLeft = (window.screen.width - 10 - iWidth) / 2; + window.open(url, name, 'height=' + iHeight + ',innerHeight=' + iHeight + + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + + ',toolbar=no,menubar=no,scrollbars=auto,resizeable=no,location=no,status=no'); + }, +} diff --git a/resources/beike/shop/fashion/js/header.js b/resources/beike/shop/fashion/js/header.js new file mode 100644 index 00000000..7a560684 --- /dev/null +++ b/resources/beike/shop/fashion/js/header.js @@ -0,0 +1,99 @@ +/* + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-16 18:47:18 + * @LastEditTime 2023-03-13 18:18:09 + */ + +$(function () { + // 搜索弹出层交互 + // $("#offcanvas-search-top input").focus(); + $(".search-wrap input").keydown(function (e) { + if (e.keyCode == 13) { + if ($(this).val() != "") { + location.href = "products/search?keyword=" + $(this).val(); + } + } + }); + + $(".search-wrap .btn").click(function () { + if ($(".search-wrap input").val() != "") { + location.href = "products/search?keyword=" + $(".search-wrap input").val(); + } + }); + + // const myOffcanvas = document.getElementById("offcanvas-search-top"); + // if (myOffcanvas) { + // myOffcanvas.addEventListener("shown.bs.offcanvas", function () { + // }); + // } + + // 响应式下弹窗菜单交互 + $(document).on("click", ".mobile-open-menu", function () { + const offcanvasMobileMenu = new bootstrap.Offcanvas('#offcanvas-mobile-menu') + offcanvasMobileMenu.show() + }); + + // 右侧购物车弹出层内交互 + $(document).on("click", "#offcanvas-right-cart .select-wrap", function () { + const [unchecked, checked] = ['bi bi-circle', 'bi bi-check-circle-fill']; + const productListAll = $('#offcanvas-right-cart .product-list').length; + + const isChecked = $(this).children('i').hasClass(unchecked); + $(this).children('i').prop('class', isChecked ? checked : unchecked); + + const checkedProduct = $('#offcanvas-right-cart .offcanvas-right-products i.bi-check-circle-fill').length; + + if ($(this).hasClass('all-select')) { + const isAll = $('.all-select i').hasClass(checked); + $('#offcanvas-right-cart .product-list').find('.select-wrap i').prop('class', isAll ? checked : unchecked) + } else { + $('.offcanvas-footer .all-select i').prop('class', productListAll == checkedProduct ? checked : unchecked); + } + + const checkedIds = $('#offcanvas-right-cart .product-list').map(function() { + return $(this).find('i.bi-check-circle-fill').data('id'); + }).get(); + + if (!checkedIds.length) { + $('#offcanvas-right-cart .to-checkout').addClass('disabled') + } else { + $('#offcanvas-right-cart .to-checkout').removeClass('disabled') + } + + $http.post(`/carts/select`, {cart_ids: checkedIds}, {hload: true}).then((res) => { + updateMiniCartData(res); + }) + }); + + // 右侧购物车弹出层内交互 + $(document).on("change", "#offcanvas-right-cart .price input", function () { + const [id, sku_id, quantity] = [$(this).data('id'), $(this).data('sku'), $(this).val() * 1]; + if ($(this).val() === '') $(this).val(1); + + $http.put(`/carts/${id}`, {quantity: quantity, sku_id}, {hload: true}).then((res) => { + updateMiniCartData(res); + }) + }) + + function updateMiniCartData(res) { + $('.offcanvas-right-cart-count').text(res.data.quantity); + $('.offcanvas-right-cart-amount').text(res.data.amount_format); + } + + // 导航菜单防止小屏幕下(非手机端),配置列数过多 显示错误 + $('.menu-wrap > ul > li').each(function(index, el) { + if ($(el).children('.dropdown-menu').length) { + const offsetLeft = $(el).children('.dropdown-menu').offset().left; + const width = $(el).children('.dropdown-menu').width(); + const windowWidth = $(window).width(); + + if (offsetLeft < 0) { + $(el).addClass('position-static') + .children('.dropdown-menu') + .css({'left': (windowWidth - width) / 2, 'transform': 'translate(0, 0.5rem)'}); + } + } + }); +}); diff --git a/resources/beike/shop/fashion/js/product.js b/resources/beike/shop/fashion/js/product.js new file mode 100644 index 00000000..e03c3110 --- /dev/null +++ b/resources/beike/shop/fashion/js/product.js @@ -0,0 +1,31 @@ +/* + * @copyright 2022 beikeshop.com - All Rights Reserved. + * @link https://beikeshop.com + * @Author pu shuo + * @Date 2022-08-19 18:21:32 + * @LastEditTime 2022-09-16 20:57:00 + */ + +$(document).on('click', '.quantity-wrap .right i', function(event) { + event.stopPropagation(); + event.preventDefault(); + + let input = $(this).parent().siblings('input') + + if ($(this).hasClass('bi-chevron-up')) { + input.val(input.val() * 1 + 1) + input.get(0).dispatchEvent(new Event('input')); + return; + } + + if (input.val() * 1 <= input.attr('minimum') * 1) { + return; + } + + if (input.val () * 1 <= 1) { + return; + } + + input.val(input.val() * 1 - 1) + input.get(0).dispatchEvent(new Event('input')); +}); \ No newline at end of file diff --git a/resources/lang/de/admin/plugin.php b/resources/lang/de/admin/plugin.php index 7e6d5cd0..5e8a8db2 100644 --- a/resources/lang/de/admin/plugin.php +++ b/resources/lang/de/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => 'Aktualisierungsstatus', 'plugins_install' => 'installieren', 'plugins_uninstall' => 'deinstallieren', + 'to_enable' => 'To Enable', 'plugin_list' => 'Plugin-Liste', 'plugin_code' => 'plugin-code', diff --git a/resources/lang/de/admin/theme.php b/resources/lang/de/admin/theme.php new file mode 100644 index 00000000..be73ef69 --- /dev/null +++ b/resources/lang/de/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => 'Meine Vorlage', + 'theme_name' => 'Standarddesign', + 'enabled_text' => 'derzeit aktiviert', + 'theme_pop_checkbox' => 'Vorlagendaten importieren', + 'theme_pop_text' => 'Wenn Sie die Daten der Importvorlage überprüfen, werden möglicherweise das vorhandene konfigurierte Seitenlayout, die Klassifizierung, das Produkt und andere Daten überschrieben. Bitte erstellen Sie zuerst eine Sicherungskopie! ', +]; diff --git a/resources/lang/de/common.php b/resources/lang/de/common.php index d4887969..16b6d854 100644 --- a/resources/lang/de/common.php +++ b/resources/lang/de/common.php @@ -75,6 +75,8 @@ return [ 'text_list' => 'Liste', 'text_form' => 'von', 'text_to' => 'an', + 'batch_setting' => 'Stapeleinstellung', + 'show_all' => 'Alle anzeigen', 'id' => 'ID', 'created_at' => 'Erstellungszeit', diff --git a/resources/lang/en/admin/common.php b/resources/lang/en/admin/common.php index 9ba54b3c..6e18d5a0 100644 --- a/resources/lang/en/admin/common.php +++ b/resources/lang/en/admin/common.php @@ -51,6 +51,7 @@ return [ 'access_frontend' => 'Frontend', // sidebar + 'theme_index' => 'Theme Setting', 'attribute_groups_index' => 'Attribute Group', 'attributes_index' => 'Attributes', 'settings_index' => 'Setting', diff --git a/resources/lang/en/admin/plugin.php b/resources/lang/en/admin/plugin.php index e29e82bc..85ad63f7 100644 --- a/resources/lang/en/admin/plugin.php +++ b/resources/lang/en/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => 'Update Status', 'plugins_install' => 'Install', 'plugins_uninstall' => 'Uninstall', + 'to_enable' => 'To Enable', 'plugin_list' => 'Plugin List', 'plugin_code' => 'Code', diff --git a/resources/lang/en/admin/theme.php b/resources/lang/en/admin/theme.php new file mode 100644 index 00000000..aa92721c --- /dev/null +++ b/resources/lang/en/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => 'My template', + 'theme_name' => 'default theme', + 'enabled_text' => 'Currently enabled', + 'theme_pop_checkbox' => 'import template data', + 'theme_pop_text' => 'If you check the import template data, it may overwrite the existing configured page layout, classification, product and other data, please make a backup first! ', +]; diff --git a/resources/lang/en/common.php b/resources/lang/en/common.php index e7c20c33..08b045b5 100644 --- a/resources/lang/en/common.php +++ b/resources/lang/en/common.php @@ -77,6 +77,7 @@ return [ 'text_form' => 'From', 'text_to' => 'To', 'batch_setting' => 'Batch setting', + 'show_all' => 'View all', 'id' => 'ID', 'created_at' => 'Created At', diff --git a/resources/lang/es/admin/plugin.php b/resources/lang/es/admin/plugin.php index fb1fd529..d8c4cba0 100644 --- a/resources/lang/es/admin/plugin.php +++ b/resources/lang/es/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => 'estado de actualización', 'plugins_install' => 'Instalar', 'plugins_uninstall' => 'desinstalar', + 'to_enable' => 'To Enable', 'plugin_list' => 'Lista de complementos', 'plugin_code' => 'código de complemento', diff --git a/resources/lang/es/admin/theme.php b/resources/lang/es/admin/theme.php new file mode 100644 index 00000000..fb1c9fdd --- /dev/null +++ b/resources/lang/es/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => 'Mi plantilla', + 'theme_name' => 'tema predeterminado', + 'enabled_text' => 'actualmente habilitado', + 'theme_pop_checkbox' => 'importar datos de plantilla', + 'theme_pop_text' => 'Si verifica los datos de la plantilla de importación, es posible que se sobrescriba el diseño de página, la clasificación, el producto y otros datos configurados existentes. ¡Haga una copia de seguridad primero! ', +]; diff --git a/resources/lang/es/common.php b/resources/lang/es/common.php index b13a87e4..c6f71a0d 100644 --- a/resources/lang/es/common.php +++ b/resources/lang/es/common.php @@ -75,6 +75,8 @@ return [ 'text_list' => 'lista', 'text_form' => 'desde', 'texto_a' => 'a', + 'batch_setting' => 'configuración de lote', + 'show_all' => 'Ver todo', 'id' => 'ID', 'created_at' => 'tiempo de creación', diff --git a/resources/lang/fr/admin/plugin.php b/resources/lang/fr/admin/plugin.php index bd9a876a..bca21c0e 100644 --- a/resources/lang/fr/admin/plugin.php +++ b/resources/lang/fr/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => 'état de mise à jour', 'plugins_install' => 'installer', 'plugins_uninstall' => 'désinstaller', + 'to_enable' => 'To Enable', 'plugin_list' => 'liste des plugins', 'plugin_code' => 'code du plugin', diff --git a/resources/lang/fr/admin/theme.php b/resources/lang/fr/admin/theme.php new file mode 100644 index 00000000..084a3a2f --- /dev/null +++ b/resources/lang/fr/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => 'Mon modèle', + 'theme_name' => 'thème par défaut', + 'enabled_text' => 'actuellement activé', + 'theme_pop_checkbox' => 'importer les données du modèle', + 'theme_pop_text' => 'Si vous vérifiez les données du modèle d\'importation, il se peut qu\'elles écrasent la mise en page, la classification, le produit et d\'autres données configurées existantes, veuillez d\'abord faire une sauvegarde ! ', +]; diff --git a/resources/lang/fr/common.php b/resources/lang/fr/common.php index 781aafce..dced7018 100644 --- a/resources/lang/fr/common.php +++ b/resources/lang/fr/common.php @@ -75,6 +75,8 @@ return [ 'text_list' => 'liste', 'text_form' => 'de', 'text_to' => 'à', + 'batch_setting' => 'paramétrage par lots', + 'show_all' => 'Voir tout', 'id' => 'ID', 'created_at' => 'temps de creation', diff --git a/resources/lang/it/admin/plugin.php b/resources/lang/it/admin/plugin.php index 368be125..1f777287 100644 --- a/resources/lang/it/admin/plugin.php +++ b/resources/lang/it/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => 'stato di aggiornamento', 'plugins_install' => 'installa', 'plugins_uninstall' => 'disinstalla', + 'to_enable' => 'To Enable', 'plugin_list' => 'elenco dei plugin', 'plugin_code' => 'codice plugin', diff --git a/resources/lang/it/admin/theme.php b/resources/lang/it/admin/theme.php new file mode 100644 index 00000000..d8522655 --- /dev/null +++ b/resources/lang/it/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => 'Il mio modello', + 'theme_name' => 'tema predefinito', + 'enabled_text' => 'attualmente abilitato', + 'theme_pop_checkbox' => 'importa i dati del modello', + 'theme_pop_text' => 'Se controlli i dati del modello di importazione, potrebbe sovrascrivere il layout di pagina configurato esistente, la classificazione, il prodotto e altri dati, per favore fai prima un backup! ', +]; diff --git a/resources/lang/it/common.php b/resources/lang/it/common.php index c1371a7c..16df7b5b 100644 --- a/resources/lang/it/common.php +++ b/resources/lang/it/common.php @@ -75,6 +75,8 @@ return [ 'text_list' => 'lista', 'text_form' => 'da', 'text_to' => 'a', + 'batch_setting' => 'impostazione batch', + 'show_all' => 'Visualizza tutto', 'id' => 'ID', 'created_at' => 'tempo di creazione', diff --git a/resources/lang/ja/admin/plugin.php b/resources/lang/ja/admin/plugin.php index 68548ca9..48bd19aa 100644 --- a/resources/lang/ja/admin/plugin.php +++ b/resources/lang/ja/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => '更新ステータス', 'plugins_install' => 'インストール', 'plugins_uninstall' => 'アンインストール', + 'to_enable' => '有効にする', 'plugin_list' => 'プラグイン リスト', 'plugin_code' => 'プラグインコード', diff --git a/resources/lang/ja/admin/theme.php b/resources/lang/ja/admin/theme.php new file mode 100644 index 00000000..b7c0b80e --- /dev/null +++ b/resources/lang/ja/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => '私のテンプレート', + 'theme_name' => 'デフォルトのテーマ', + 'enabled_text' => '現在有効', + 'theme_pop_checkbox' => 'テンプレート データのインポート', + 'theme_pop_text' => 'インポート テンプレート データを確認すると、既存の設定済みのページ レイアウト、分類、製品、およびその他のデータが上書きされる可能性があります。最初にバックアップを作成してください! ', +]; diff --git a/resources/lang/ja/common.php b/resources/lang/ja/common.php index 93e1fa8f..f4036c71 100644 --- a/resources/lang/ja/common.php +++ b/resources/lang/ja/common.php @@ -75,6 +75,8 @@ return [ 'text_list' => 'リスト', 'text_form' => 'From', 'text_to' => 'To', + 'batch_setting' => 'バッチ設定', + 'show_all' => 'すべて表示', 'id' => 'ID', 'created_at' => '作成時間', diff --git a/resources/lang/ru/admin/plugin.php b/resources/lang/ru/admin/plugin.php index b9a14a99..669361fe 100644 --- a/resources/lang/ru/admin/plugin.php +++ b/resources/lang/ru/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => 'статус обновления', 'plugins_install' => 'Установить', 'plugins_uninstall' => 'удалить', + 'to_enable' => 'включить', 'plugin_list' => 'Список плагинов', 'plugin_code' => 'код плагина', diff --git a/resources/lang/ru/admin/theme.php b/resources/lang/ru/admin/theme.php new file mode 100644 index 00000000..10ae399a --- /dev/null +++ b/resources/lang/ru/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => 'Мой шаблон', + 'theme_name' => 'тема по умолчанию', + 'enabled_text' => 'включено в данный момент', + 'theme_pop_checkbox' => 'импортировать данные шаблона', + 'theme_pop_text' => 'Если вы проверите данные шаблона импорта, они могут перезаписать существующий настроенный макет страницы, классификацию, продукт и другие данные, сначала сделайте резервную копию! ', +]; diff --git a/resources/lang/ru/common.php b/resources/lang/ru/common.php index f96e971a..97383f77 100644 --- a/resources/lang/ru/common.php +++ b/resources/lang/ru/common.php @@ -75,6 +75,8 @@ return [ 'text_list' => 'список', 'text_form' => 'от', 'text_to' => 'кому', + 'batch_setting' => 'пакетная настройка', + 'show_all' => 'Просмотреть все', 'id' => 'ID', 'created_at' => 'время создания', diff --git a/resources/lang/zh_cn/admin/common.php b/resources/lang/zh_cn/admin/common.php index 3989a861..92f2b3a6 100644 --- a/resources/lang/zh_cn/admin/common.php +++ b/resources/lang/zh_cn/admin/common.php @@ -51,6 +51,7 @@ return [ 'access_frontend' => '访问前台', // sidebar + 'theme_index' => '模板设置', 'attribute_groups_index' => '属性组', 'attributes_index' => '属性', 'settings_index' => '系统设置', diff --git a/resources/lang/zh_cn/admin/plugin.php b/resources/lang/zh_cn/admin/plugin.php index 0f088a93..e3ce6b7a 100644 --- a/resources/lang/zh_cn/admin/plugin.php +++ b/resources/lang/zh_cn/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => '更新状态', 'plugins_install' => '安装', 'plugins_uninstall' => '卸载', + 'to_enable' => '去启用', 'plugin_list' => '插件设置', 'plugin_code' => '插件代码', diff --git a/resources/lang/zh_cn/admin/theme.php b/resources/lang/zh_cn/admin/theme.php new file mode 100644 index 00000000..92025e03 --- /dev/null +++ b/resources/lang/zh_cn/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => '我的模板', + 'theme_name' => '默认主题', + 'enabled_text' => '当前启用', + 'theme_pop_checkbox' => '导入模板数据', + 'theme_pop_text' => '如果勾选导入模板数据,可能会覆盖现有配置的页面布局、分类、商品等数据,请先做好备份!', +]; diff --git a/resources/lang/zh_cn/common.php b/resources/lang/zh_cn/common.php index 3a7f062d..b6711bfd 100644 --- a/resources/lang/zh_cn/common.php +++ b/resources/lang/zh_cn/common.php @@ -76,6 +76,7 @@ return [ 'text_form' => '从', 'text_to' => '到', 'batch_setting' => '批量设置', + 'show_all' => '查看所有', 'id' => 'ID', 'created_at' => '创建时间', diff --git a/resources/lang/zh_hk/admin/common.php b/resources/lang/zh_hk/admin/common.php index 30676fd2..838a13ce 100644 --- a/resources/lang/zh_hk/admin/common.php +++ b/resources/lang/zh_hk/admin/common.php @@ -51,6 +51,7 @@ return [ 'access_frontend' => '訪問前台', // sidebar + 'theme_index' => '模板設置', 'attribute_groups_index' => '屬性組', 'attributes_index' => '屬性', 'settings_index' => '系統設置', diff --git a/resources/lang/zh_hk/admin/plugin.php b/resources/lang/zh_hk/admin/plugin.php index 06343b5c..7637e261 100644 --- a/resources/lang/zh_hk/admin/plugin.php +++ b/resources/lang/zh_hk/admin/plugin.php @@ -17,6 +17,7 @@ return [ 'plugins_update_status' => '更新狀態', 'plugins_install' => '安裝', 'plugins_uninstall' => '卸載', + 'to_enable' => '去啟用', 'plugin_list' => '插件設置', 'plugin_code' => '插件代碼', diff --git a/resources/lang/zh_hk/admin/theme.php b/resources/lang/zh_hk/admin/theme.php new file mode 100644 index 00000000..749c9dfa --- /dev/null +++ b/resources/lang/zh_hk/admin/theme.php @@ -0,0 +1,18 @@ + + * @created 2022-08-02 19:03:19 + * @modified 2022-08-02 19:03:19 + */ + +return [ + 'page_title' => '我的模板', + 'theme_name' => '默認主題', + 'enabled_text' => '當前啟用', + 'theme_pop_checkbox' => '導入模板數據', + 'theme_pop_text' => '如果勾選導入模板數據,可能會覆蓋現有配置的頁面佈局、分類、商品等數據,請先做好備份! ', +]; diff --git a/resources/lang/zh_hk/common.php b/resources/lang/zh_hk/common.php index fbd1b881..0dda07e4 100644 --- a/resources/lang/zh_hk/common.php +++ b/resources/lang/zh_hk/common.php @@ -76,6 +76,7 @@ return [ 'text_form' => '從', 'text_to' => '到', 'batch_setting' => '批量設置', + 'show_all' => '查看所有', 'id' => 'ID', 'created_at' => '創建時間', diff --git a/themes/.gitignore b/themes/.gitignore new file mode 100644 index 00000000..f08ba4da --- /dev/null +++ b/themes/.gitignore @@ -0,0 +1,2 @@ +* +!default diff --git a/themes/black/home.blade.php b/themes/black/home.blade.php deleted file mode 100644 index d4df147a..00000000 --- a/themes/black/home.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -@extends('layout.master') -@section('body-class', 'page-home') -@section('content') -
-
- 这里是 black 模板, 后台设置使用该模板后系统优先读取该模板, 删除该文件系统将调用 default 模板下对应文件 -
-
-@endsection diff --git a/themes/black/layout/footer.blade.php b/themes/black/layout/footer.blade.php deleted file mode 100644 index eafb71f0..00000000 --- a/themes/black/layout/footer.blade.php +++ /dev/null @@ -1,85 +0,0 @@ -
- @php - $locale = locale(); - @endphp - - @if ($footer_content['services']['enable']) -
-
-
- @foreach ($footer_content['services']['items'] as $item) -
-
-
-
-

{{ $item['title'][locale()] ?? '' }}

-

{{ $item['sub_title'][locale()] ?? '' }}

-
-
-
- @endforeach -
-
-
- @endif -
- -
- -
diff --git a/themes/black/layout/header.blade.php b/themes/black/layout/header.blade.php deleted file mode 100644 index 88a0f5c7..00000000 --- a/themes/black/layout/header.blade.php +++ /dev/null @@ -1,168 +0,0 @@ -
-
-
- - - @if (system_setting('base.telephone', '')) - - @endif -
-
- -
- -
- -
-
-
-
- -
-
- -
-
- - -
-
-
-
-
-
{{ __('common.menu') }}
- -
-
- @if (is_mobile()) - @include('shared.menu-mobile') - @endif -
-
- - @if (!equal_route('shop.carts.index')) -
- @endif - -
-
- - -
-
-
diff --git a/themes/black/shared/menu-pc.blade.php b/themes/black/shared/menu-pc.blade.php deleted file mode 100644 index 75a42347..00000000 --- a/themes/black/shared/menu-pc.blade.php +++ /dev/null @@ -1,61 +0,0 @@ - diff --git a/themes/default/design/brand.blade.php b/themes/default/design/brand.blade.php index 792d3108..17464469 100644 --- a/themes/default/design/brand.blade.php +++ b/themes/default/design/brand.blade.php @@ -17,5 +17,10 @@ @endforeach
+ @if ($content['brands']) +
+ {{ __('common.show_all') }} +
+ @endif \ No newline at end of file diff --git a/themes/default/design/icons.blade.php b/themes/default/design/icons.blade.php index 0dfad8e4..6268548b 100644 --- a/themes/default/design/icons.blade.php +++ b/themes/default/design/icons.blade.php @@ -2,16 +2,23 @@ @include('design._partial._module_tool')
+ @if ($content['title'])
{{ $content['title'] }}
+ @endif
@foreach ($content['images'] as $image)
- - @endforeach diff --git a/themes/default/design/image200.blade.php b/themes/default/design/image200.blade.php new file mode 100644 index 00000000..3695e859 --- /dev/null +++ b/themes/default/design/image200.blade.php @@ -0,0 +1,13 @@ +
+ @include('design._partial._module_tool') + +
+
+
+ @foreach ($content['images'] as $item) +
+ @endforeach +
+
+
+
\ No newline at end of file diff --git a/themes/default/design/image300.blade.php b/themes/default/design/image300.blade.php new file mode 100644 index 00000000..ab3fd0ad --- /dev/null +++ b/themes/default/design/image300.blade.php @@ -0,0 +1,13 @@ +
+ @include('design._partial._module_tool') + +
+
+
+ @foreach ($content['images'] as $item) +
+ @endforeach +
+
+
+
\ No newline at end of file diff --git a/themes/default/layout/header.blade.php b/themes/default/layout/header.blade.php index 148083dc..0e8cd219 100644 --- a/themes/default/layout/header.blade.php +++ b/themes/default/layout/header.blade.php @@ -3,54 +3,58 @@
@hookwrapper('header.top.currency') -