diff --git a/core/modules/system/src/Tests/Theme/StableLibraryOverrideTest.php b/core/modules/system/src/Tests/Theme/StableLibraryOverrideTest.php new file mode 100644 index 0000000000000000000000000000000000000000..526be51c1c19dbfcdbaa6937c4d4f5bac9a1b365 --- /dev/null +++ b/core/modules/system/src/Tests/Theme/StableLibraryOverrideTest.php @@ -0,0 +1,185 @@ +<?php + +/** + * @file + * Contains \Drupal\system\Tests\Theme\StableLibraryOverrideTest. + */ + +namespace Drupal\system\Tests\Theme; + +use Drupal\simpletest\KernelTestBase; + +/** + * Tests Stable's library overrides. + * + * @group Theme + */ +class StableLibraryOverrideTest extends KernelTestBase { + + /** + * The theme manager. + * + * @var \Drupal\Core\Theme\ThemeManagerInterface + */ + protected $themeManager; + + /** + * The theme initialization. + * + * @var \Drupal\Core\Theme\ThemeInitializationInterface + */ + protected $themeInitialization; + + /** + * The library discovery service. + * + * @var \Drupal\Core\Asset\LibraryDiscoveryInterface + */ + protected $libraryDiscovery; + + /** + * A list of all core modules. + * + * @var string[] + */ + protected $allModules; + + /** + * A list of libraries to skip checking, in the format extension/library_name. + * + * @var string[] + */ + protected $librariesToSkip = []; + + /** + * {@inheritdoc} + */ + public function setUp() { + parent::setUp(); + + $this->themeManager = $this->container->get('theme.manager'); + $this->themeInitialization = $this->container->get('theme.initialization'); + $this->libraryDiscovery = $this->container->get('library.discovery'); + + $this->container->get('theme_installer')->install(['stable']); + + // Enable all core modules. + $all_modules = system_rebuild_module_data(); + $all_modules = array_filter($all_modules, function ($module) { + // Filter contrib, hidden, already enabled modules and modules in the + // Testing package. + if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing') { + return FALSE; + } + return TRUE; + }); + $this->allModules = array_keys($all_modules); + sort($this->allModules); + $this->enableModules($this->allModules); + } + + /** + * Ensures that Stable overrides all relevant core library assets. + */ + public function testStableLibraryOverrides() { + // First get the clean library definitions with no active theme. + $libraries_before = $this->getAllLibraries(); + $libraries_before = $this->removeVendorAssets($libraries_before); + + $this->themeManager->setActiveTheme($this->themeInitialization->getActiveThemeByName('stable')); + $this->libraryDiscovery->clearCachedDefinitions(); + + // Now get the library definitions with Stable as the active theme. + $libraries_after = $this->getAllLibraries(); + $libraries_after = $this->removeVendorAssets($libraries_after); + + $root = \Drupal::root(); + foreach ($libraries_before as $extension => $libraries) { + foreach ($libraries as $library_name => $library) { + // Allow skipping libraries. + if (in_array("$extension/$library_name", $this->librariesToSkip)) { + continue; + } + $library_after = $libraries_after[$extension][$library_name]; + + // Check that all the CSS assets are overridden. + foreach ($library['css'] as $index => $asset) { + $clean_path = $asset['data']; + $stable_path = $library_after['css'][$index]['data']; + // Make core/misc assets look like they are coming from a "core" + // module. + $replacements = [ + 'core/misc/' => "core/modules/core/css/", + ]; + $expected_path = strtr($clean_path, $replacements); + + // Adjust the module asset paths to correspond with the Stable folder + // structure. + $expected_path = str_replace("core/modules/$extension/css/", "core/themes/stable/css/$extension/", $expected_path); + $assert_path = str_replace("core/modules/$extension/", '', $clean_path); + + $this->assertEqual($expected_path, $stable_path, "$assert_path from the $extension/$library_name library is overridden in Stable."); + } + } + } + } + + /** + * Removes all vendor libraries and assets from the library definitions. + * + * @param array[] $all_libraries + * An associative array of libraries keyed by extension, then by library + * name, and so on. + * + * @return array[] + * The reduced array of libraries. + */ + protected function removeVendorAssets($all_libraries) { + foreach ($all_libraries as $extension => $libraries) { + foreach ($libraries as $library_name => $library) { + if (isset($library['remote'])) { + unset($all_libraries[$extension][$library_name]); + } + foreach (['css', 'js'] as $asset_type) { + foreach ($library[$asset_type] as $index => $asset) { + if (strpos($asset['data'], 'core/assets/vendor') !== FALSE) { + unset($all_libraries[$extension][$library_name][$asset_type][$index]); + // Re-key the array of assets. This is needed because + // libraries-override doesn't always preserve the order. + if (!empty($all_libraries[$extension][$library_name][$asset_type])) { + $all_libraries[$extension][$library_name][$asset_type] = array_values($all_libraries[$extension][$library_name][$asset_type]); + } + } + } + } + } + } + return $all_libraries; + } + + /** + * Gets all libraries for core and all installed modules. + * + * @return array[] + * An associative array of libraries keyed by extension, then by library + * name, and so on. + */ + protected function getAllLibraries() { + $modules = \Drupal::moduleHandler()->getModuleList(); + $module_list = array_keys($modules); + sort($module_list); + $this->assertEqual($this->allModules, $module_list, 'All core modules are installed.'); + + $libraries['core'] = $this->libraryDiscovery->getLibrariesByExtension('core'); + + $root = \Drupal::root(); + foreach ($modules as $module_name => $module) { + $library_file = $module->getPath() . '/' . $module_name . '.libraries.yml'; + if (is_file($root . '/' . $library_file)) { + $libraries[$module_name] = $this->libraryDiscovery->getLibrariesByExtension($module_name); + } + } + return $libraries; + } + +} diff --git a/core/modules/system/templates/block--local-actions-block.html.twig b/core/modules/system/templates/block--local-actions-block.html.twig index 65d57be1fd8301e02026c13797b3db0e5a05b2cf..3e660c514500f6618039194277e93abfbf249e3e 100644 --- a/core/modules/system/templates/block--local-actions-block.html.twig +++ b/core/modules/system/templates/block--local-actions-block.html.twig @@ -1,4 +1,4 @@ -{% extends "@block/block.html.twig" %} +{% extends "block.html.twig" %} {# /** * @file diff --git a/core/modules/system/tests/themes/test_theme/test_theme.info.yml b/core/modules/system/tests/themes/test_theme/test_theme.info.yml index 4c1568c4c5510e8b5fd862c7aec543a339d29e54..fca49c240d02e6dcdd5329398b988aa393052f1f 100644 --- a/core/modules/system/tests/themes/test_theme/test_theme.info.yml +++ b/core/modules/system/tests/themes/test_theme/test_theme.info.yml @@ -44,12 +44,12 @@ libraries-override: core/drupal.dropbutton: css: component: - misc/dropbutton/dropbutton.css: /themes/my_theme/css/dropbutton.css + /core/themes/stable/css/core/dropbutton/dropbutton.css: /themes/my_theme/css/dropbutton.css # Use stream wrappers. core/drupal.vertical-tabs: css: component: - misc/vertical-tabs.css: public://my_css/vertical-tabs.css + /core/themes/stable/css/core/vertical-tabs.css: public://my_css/vertical-tabs.css # Use a protocol-relative URI. core/jquery.ui: css: diff --git a/core/modules/views/src/Tests/Plugin/StyleGridTest.php b/core/modules/views/src/Tests/Plugin/StyleGridTest.php index 6dbac6bd958346eebec2860178c71dc62e3075ca..698d2ba1094e8bc3b953d9b9b68cc4f9a9b445a6 100644 --- a/core/modules/views/src/Tests/Plugin/StyleGridTest.php +++ b/core/modules/views/src/Tests/Plugin/StyleGridTest.php @@ -53,7 +53,7 @@ public function testGrid() { // Ensure styles are properly added for grid views. $this->drupalGet('test-grid'); - $this->assertRaw('views/css/views.module.css'); + $this->assertRaw('stable/css/views/views.module.css'); } /** diff --git a/core/tests/Drupal/KernelTests/Core/Theme/StableTemplateOverrideTest.php b/core/tests/Drupal/KernelTests/Core/Theme/StableTemplateOverrideTest.php new file mode 100644 index 0000000000000000000000000000000000000000..69d9e8c61b1ed36b53ba12ef9d0aa4b4c28ee3c0 --- /dev/null +++ b/core/tests/Drupal/KernelTests/Core/Theme/StableTemplateOverrideTest.php @@ -0,0 +1,108 @@ +<?php + +/** + * @file + * Contains \Drupal\KernelTests\Core\Theme\StableTemplateOverrideTest. + */ + +namespace Drupal\KernelTests\Core\Theme; + +use Drupal\Core\Theme\Registry; +use Drupal\KernelTests\KernelTestBase; + +/** + * Tests Stable's template overrides. + * + * @group Theme + */ +class StableTemplateOverrideTest extends KernelTestBase { + + /** + * {@inheritdoc} + */ + public static $modules = ['system', 'user']; + + /** + * An array of template names to skip, without the extension. + * + * @var string[] + */ + protected $templatesToSkip = [ + 'views-form-views-form', + ]; + + /** + * The theme handler. + * + * @var \Drupal\Core\Extension\ThemeHandlerInterface + */ + protected $themeHandler; + + /** + * A list of all core modules. + * + * @var string[] + */ + protected $allModules; + + /** + * {@inheritdoc} + */ + public function setUp() { + parent::setUp(); + $this->themeHandler = $this->container->get('theme_handler'); + + $this->container->get('theme_installer')->install(['stable']); + + $this->installSchema('system', 'router'); + $this->installAllModules(); + } + + /** + * Installs all core modules. + */ + protected function installAllModules() { + // Needed for system_rebuild_module_data(). + include_once $this->root . '/core/modules/system/system.module'; + + // Enable all core modules. + $all_modules = system_rebuild_module_data(); + $all_modules = array_filter($all_modules, function ($module) { + // Filter contrib, hidden, already enabled modules and modules in the + // Testing package. + if ($module->origin !== 'core' || !empty($module->info['hidden']) || $module->status == TRUE || $module->info['package'] == 'Testing') { + return FALSE; + } + return TRUE; + }); + $this->allModules = array_keys($all_modules); + sort($this->allModules); + + $module_installer = $this->container->get('module_installer'); + $module_installer->install($this->allModules); + + $this->installConfig(['system', 'user']); + } + + /** + * Ensures that Stable overrides all relevant core templates. + */ + public function testStableTemplateOverrides() { + $registry = new Registry(\Drupal::root(), \Drupal::cache(), \Drupal::lock(), \Drupal::moduleHandler(), $this->themeHandler, \Drupal::service('theme.initialization'), 'stable'); + $registry->setThemeManager(\Drupal::theme()); + + $registry_full = $registry->get(); + + foreach ($registry_full as $hook => $info) { + if (isset($info['template'])) { + // Allow skipping templates. + if (in_array($info['template'], $this->templatesToSkip)) { + continue; + } + + $this->assertEquals('core/themes/stable', $info['theme path'], $info['template'] . '.html.twig overridden in Stable.'); + } + } + } + +} diff --git a/core/themes/stable/css/block/block.admin.css b/core/themes/stable/css/block/block.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..ed120389edd4fd4fbc9fa1741db8fa7ac2a75cd6 --- /dev/null +++ b/core/themes/stable/css/block/block.admin.css @@ -0,0 +1,42 @@ +/* Block listing page */ +.region-title__action { + display: inline-block; + margin-left: 1em; /* LTR */ +} +[dir="rtl"] .region-title__action { + margin-left: 0; + margin-right: 1em; +} + +/* Block demo mode */ +.block-region { + background-color: #ff6; + margin-top: 4px; + margin-bottom: 4px; + padding: 3px; +} +a.block-demo-backlink, +a.block-demo-backlink:link, +a.block-demo-backlink:visited { + background-color: #b4d7f0; + border-radius: 0 0 10px 10px; + color: #000; + font-family: "Lucida Grande", Verdana, sans-serif; + font-size: small; + line-height: 20px; + left: 20px; /*LTR*/ + padding: 5px 10px; + position: fixed; + z-index: 499; +} +a.block-demo-backlink:hover { + text-decoration: underline; +} + +/* Configure block form - Block description */ +.block-form .form-item-settings-admin-label label { + display: inline; +} +.block-form .form-item-settings-admin-label label:after { + content: ':'; +} diff --git a/core/themes/stable/css/ckeditor/ckeditor-iframe.css b/core/themes/stable/css/ckeditor/ckeditor-iframe.css new file mode 100644 index 0000000000000000000000000000000000000000..8996334da9a06377e117a79763b2eb7d98827121 --- /dev/null +++ b/core/themes/stable/css/ckeditor/ckeditor-iframe.css @@ -0,0 +1,23 @@ +/** + * CSS added to iframe-based instances only. + */ +body { + font-family: Arial, Verdana, sans-serif; + font-size: 15px; + color: #222; + background-color: #fff; + margin: 8px; +} + +@media screen and (max-width: 600px) { + /* A font-size of 16px prevents iOS from zooming. */ + body { + font-size: 16px; + } +} + +ol, ul, dl { + /* Preserved spaces for list items with text direction other than the list. + * (CKEditor issues #6249,#8049) */ + padding: 0 40px; +} diff --git a/core/themes/stable/css/ckeditor/ckeditor.admin.css b/core/themes/stable/css/ckeditor/ckeditor.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..9bcd052cad59177da089f230a05482c6b2b0211b --- /dev/null +++ b/core/themes/stable/css/ckeditor/ckeditor.admin.css @@ -0,0 +1,328 @@ +/** + * @file + * Styles for configuration of CKEditor module. + * + * Many of these styles are adapted directly from the default CKEditor theme + * "moono". + */ + + + +.ckeditor-toolbar { + border: 1px solid #b6b6b6; + padding: 0.1667em 0.1667em 0.08em; + box-shadow: 0 1px 0 white inset; + background: #cfd1cf; + background-image: -webkit-linear-gradient(top, whiteSmoke, #cfd1cf); + background-image: linear-gradient(top, whiteSmoke, #cfd1cf); + margin: 5px 0; + /* Disallow any user selections in the drag-and-drop toolbar config UI. */ + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.ckeditor-toolbar-active { + margin-top: 0.25em; +} +.ckeditor-toolbar-disabled { + margin-bottom: 0.5em; +} +.ckeditor-toolbar ul, +.ckeditor-toolbar-disabled ul { + list-style: none; + margin: 0; + padding: 0; +} +/* This is required to win over specificity of [dir="rtl"] ul */ +[dir="rtl"] .ckeditor-toolbar ul, +[dir="rtl"] .ckeditor-toolbar-disabled ul { + margin-right: 0; +} + +.ckeditor-row { + padding: 2px 0 3px; + border-radius: 3px; +} +.ckeditor-group-names-are-visible .ckeditor-row { + border: 1px solid whitesmoke; +} +.ckeditor-row + .ckeditor-row { + margin-top: 0.25em; +} +.ckeditor-toolbar-group, +.ckeditor-toolbar-group-placeholder, +.ckeditor-add-new-group { + float: left; /* LTR */ +} +[dir="rtl"] .ckeditor-toolbar-group, +[dir="rtl"] .ckeditor-toolbar-group-placeholder, +[dir="rtl"] .ckeditor-add-new-group { + float: right; +} +.ckeditor-toolbar-groups { + min-height: 2em; +} +.ckeditor-toolbar-group { + margin: 0 0.3333em; + cursor: move; +} +.ckeditor-group-names-are-visible .ckeditor-toolbar-group, +.ckeditor-add-new-group { + border: 1px dotted #a6a6a6; + border-radius: 3px; + padding: 0.2em 0.4em; +} +.ckeditor-toolbar-group.placeholder, +.ckeditor-toolbar-group.placeholder .ckeditor-toolbar-group-name { + cursor: not-allowed; +} +.ckeditor-toolbar-group.placeholder .ckeditor-toolbar-group-name { + font-style: italic; +} +.ckeditor-toolbar-group-name { + display: none; + font-size: 1em; + font-weight: normal; + margin: 0.25em 0; +} +.ckeditor-group-names-are-visible .ckeditor-toolbar-group-name { + display: block; + cursor: pointer; +} +.ckeditor-toolbar-active .placeholder, +.ckeditor-toolbar-active .ckeditor-add-new-group { + display: none; +} +.ckeditor-group-names-are-visible .placeholder, +.ckeditor-group-names-are-visible .ckeditor-add-new-group { + display: block; +} +.ckeditor-toolbar-group-buttons { + float: left; /* LTR */ +} +[dir="rtl"] .ckeditor-toolbar-group-buttons { + float: right; +} +.ckeditor-groupnames-toggle { + cursor: pointer; + float: right; /* LTR */ +} +[dir="rtl"] .ckeditor-groupnames-toggle { + float: left; +} +.ckeditor-toolbar .ckeditor-toolbar-group > li { + border: 1px solid white; + border-radius: 5px; + background-image: -webkit-linear-gradient(transparent 60%, rgba(0, 0, 0, 0.1)); + background-image: linear-gradient(transparent 60%, rgba(0, 0, 0, 0.1)); + margin: 3px 6px; + padding: 3px; +} +.ckeditor-toolbar-configuration .fieldset-description{ + margin-bottom: 1em; +} +.ckeditor-toolbar-disabled .ckeditor-toolbar-available, +.ckeditor-toolbar-disabled .ckeditor-toolbar-dividers { + box-sizing: border-box; +} +.ckeditor-toolbar-disabled .ckeditor-toolbar-available { + float: left; /* LTR */ + width: 80%; +} +[dir="rtl"] .ckeditor-toolbar-disabled .ckeditor-toolbar-available { + float: right; +} +.ckeditor-toolbar-disabled .ckeditor-toolbar-dividers { + float: right; /* LTR */ + width: 20%; +} +[dir="rtl"] .ckeditor-toolbar-disabled .ckeditor-toolbar-dividers { + float: left; +} +.ckeditor-toolbar-disabled .ckeditor-buttons li a, +.ckeditor-toolbar .ckeditor-buttons, +.ckeditor-add-new-group button { + border: 1px solid #a6a6a6; + border-bottom-color: #979797; + border-radius: 3px; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5), 0 0 2px rgba(255, 255, 255, 0.15) inset, 0 1px 0 rgba(255, 255, 255, 0.15) inset; +} +.ckeditor-toolbar-disabled .ckeditor-buttons { + border: 0; +} +.ckeditor-toolbar-disabled .ckeditor-buttons li { + margin: 2px; +} +.ckeditor-buttons { + min-height: 26px; + min-width: 26px; +} +.ckeditor-buttons li { + padding: 0; + margin: 0; + float: left; /* LTR */ +} +[dir="rtl"] .ckeditor-buttons li { + float: right; +} +.ckeditor-buttons li a, +.ckeditor-add-new-group button { + background: #e4e4e4; + background-image: -webkit-linear-gradient(top, white, #e4e4e4); + background-image: linear-gradient(top, white, #e4e4e4); + color: #474747; +} +.ckeditor-buttons li a { + border: 0; + cursor: move; + display: block; + min-height: 18px; + line-height: 1.4; + padding: 4px 6px; + position: relative; + text-decoration: none; + text-shadow: 0 1px 0 rgba(255,255,255,.5); + white-space: nowrap; +} +.ckeditor-toolbar-dividers { + float: right; /* LTR */ +} +[dir="rtl"] .ckeditor-toolbar-dividers { + float: left; +} +.ckeditor-buttons li .cke-icon-only { + text-indent: -9999px; + width: 16px; + /* Firefox includes the offscreen text in the focus indicator, resulting in a + far too wide focus indicator. This fixes that. */ + overflow: hidden; +} +.ckeditor-buttons li .cke_ltr { + direction: ltr; +} +.ckeditor-buttons li .cke_rtl { + direction: rtl; +} +.ckeditor-buttons li a:focus, +.ckeditor-buttons li a:active, +.ckeditor-multiple-buttons li a:focus { + z-index: 11; /* Ensure focused buttons show their outline on all sides. */ +} +.ckeditor-buttons li:first-child a { + border-top-left-radius: 2px; /* LTR */ + border-bottom-left-radius: 2px; /* LTR */ +} +[dir="rtl"] .ckeditor-buttons li:first-child a { + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} +.ckeditor-buttons li:last-child a { + border-top-right-radius: 2px; /* LTR */ + border-bottom-right-radius: 2px; /* LTR */ +} +[dir="rtl"] .ckeditor-buttons li:last-child a { + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} +.ckeditor-button-placeholder, +.ckeditor-toolbar-group-placeholder { + background: #9dcae7; +} +.ckeditor-toolbar-group-placeholder { + border-radius: 4px; +} +.ckeditor-multiple-buttons { + padding: 1px 2px; + margin: 5px; + list-style: none; + float: left; /* LTR */ +} +[dir="rtl"] .ckeditor-multiple-buttons { + float: right; +} +.ckeditor-multiple-buttons li { + float: left; /* LTR */ + margin: 0; + padding: 0; +} +[dir="rtl"] .ckeditor-multiple-buttons li { + float: right; +} +.ckeditor-multiple-buttons li a { + cursor: move; + display: inline-block; + min-height: 18px; + line-height: 1.4; + margin: 0; + padding: 2px 0; +} +.ckeditor-buttons .ckeditor-group-button-separator, +.ckeditor-multiple-buttons .ckeditor-group-button-separator { + margin: -1px -3px -2px; +} +.ckeditor-buttons .ckeditor-group-button-separator a, +.ckeditor-multiple-buttons .ckeditor-group-button-separator a { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAdCAMAAABG4xbVAAAAhFBMVEUAAACmpqampqampqb////l5eX////5+fmmpqatra2urq6vr6+1tbW2tra4uLi6urq8vLzb29ve3t7i4uLl5eXn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz+/v7qIQO+AAAACHRSTlMATVmAi8XM29MuWToAAABjSURBVBiVrc5BCoAwDETRMKhtRBduev9LKm1xjItWRBBE6Nt9QkIwOTcUzk0Imi8aoMssxbgoTHMtqsFMLta0vPh2N49HyfdelPg6k9uvX/a+Bmggt1qJRNzQFVgjEnkUZDoBmH57VSypjg4AAAAASUVORK5CYII=) no-repeat center center; + width: 13px; + padding: 0; + height: 29px; + position: relative; + z-index: 10; +} +ul.ckeditor-buttons li.ckeditor-button-separator a { + background: #e4e4e4; + background-image: -webkit-linear-gradient(#e4e4e4, #b4b4b4); + background-image: linear-gradient(#e4e4e4, #b4b4b4); + height: 24px; + margin: 1px 0 0; + padding: 0; + position: relative; + width: 1px; + z-index: 10; +} +.ckeditor-multiple-buttons .ckeditor-button-separator a { + width: 2px; + padding: 0; + height: 26px; + margin: 0 10px; +} +.ckeditor-separator { + background-color: silver; + background-color: rgba(0, 0, 0, 0.2); + margin: 5px 0; + height: 18px; + width: 1px; + display: block; + box-shadow: 1px 0 1px rgba(255, 255, 255, 0.5) +} +.ckeditor-button-arrow { + width: 0; + text-align: center; + border-left: 3px solid transparent; + border-right: 3px solid transparent; + border-top: 3px solid #333; + display: inline-block; + margin: 0 4px 2px; +} +.ckeditor-row-controls { + float: right; /* LTR */ + font-size: 18px; + width: 40px; + text-align: right; /* LTR */ +} +[dir="rtl"] .ckeditor-row-controls { + float: left; + text-align: left; +} +.ckeditor-row-controls a { + display: inline-block; + box-sizing: border-box; + padding: 6px 2px; + height: 28px; + width: 20px; + line-height: 0.9; + font-weight: bold; + color: #333; + text-decoration: none; +} diff --git a/core/themes/stable/css/ckeditor/ckeditor.css b/core/themes/stable/css/ckeditor/ckeditor.css new file mode 100644 index 0000000000000000000000000000000000000000..b4b1e16cecc64bee295a330826a25675b0e1559e --- /dev/null +++ b/core/themes/stable/css/ckeditor/ckeditor.css @@ -0,0 +1,39 @@ +.ckeditor-dialog-loading { + position: absolute; + top: 0; + width: 100%; + text-align: center; +} + +.ckeditor-dialog-loading-link { + border-radius: 0 0 5px 5px; + border: 1px solid #B6B6B6; + border-top: none; + background: white; + padding: 3px 10px; + box-shadow: 0 0 10px -3px #000; + display: inline-block; + font-size: 14px; + position: relative; + top: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +/** + * Adjust the style of in-place editing CKEditor instances. + */ +.quickedit-toolgroup.wysiwyg-main .cke_chrome, +.quickedit-toolgroup.wysiwyg-main .cke_inner, +.quickedit-toolgroup.wysiwyg-main .cke_top { + background: transparent; + border-top: none; + border-right: none; + border-bottom: none; + border-left: none; + box-shadow: none; +} diff --git a/core/themes/stable/css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css b/core/themes/stable/css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css new file mode 100644 index 0000000000000000000000000000000000000000..8082585482747e2be6f3eaac7ae4d1cc8fbfabfa --- /dev/null +++ b/core/themes/stable/css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css @@ -0,0 +1,21 @@ +/** + * @file + * Image Caption: overrides to make centered alignment work inside CKEditor. + */ + +/** + * Since .align-center is set on the non-captioned image's parent block element + * in CKEditor, the image must be centered separately. + */ +p[data-widget="image"].align-center { + text-align: center; +} + +/** + * Since .align-center is set on captioned widget's wrapper element in CKEditor, + * the alignment of internals must be set separately. + */ +div[data-cke-widget-wrapper].align-center > figure[data-widget="image"] { + margin-left: auto; + margin-right: auto; +} diff --git a/core/themes/stable/css/color/color.admin.css b/core/themes/stable/css/color/color.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..29b6c00cc1ee2ef81e4e3405bebb9f879d4b77a3 --- /dev/null +++ b/core/themes/stable/css/color/color.admin.css @@ -0,0 +1,150 @@ +/** + * @file + * Stylesheet for the administration pages of the Color module. + */ +.color-form { + max-width: 50em; +} +.farbtastic { + margin: 0 auto; +} +.color-form .form-item { + margin: 0.5em 0; + height: 2em; + padding: 0.5em; +} +.color-form label { + clear: left; /* LTR */ +} +[dir="rtl"] .color-form label { + clear: right; +} +.color-form .form-text { + float: left; /* LTR */ + width: 86%; + text-align: center; + cursor: pointer; +} +[dir="rtl"] .color-form .form-text { + float: right; +} +.color-palette__hook { + float: left; /* LTR */ + width: 16px; + height: 16px; +} +[dir="rtl"] .color-palette__hook { + float: right; +} +.color-palette__hook.is-down, +.color-palette__hook.is-up, +.color-palette__hook.is-both { + background: url(../../images/color/hook.png) no-repeat 100% 0; /* LTR */ +} +[dir="rtl"] .color-palette__hook.is-down, +[dir="rtl"] .color-palette__hook.is-up, +[dir="rtl"] .color-palette__hook.is-both { + background: url(../../images/color/hook-rtl.png) no-repeat 0 0; +} +.color-palette__hook.is-up { + background-position: 100% -27px; /* LTR */ +} +[dir="rtl"] .color-palette__hook.is-up { + background-position: 0 -27px; +} +.color-palette__hook.is-both { + background-position: 100% -54px; /* LTR */ +} +[dir="rtl"] .color-palette__hook.is-both { + background-position: 0 -54px; +} +/** + * The button also inherits from .link, which hides the background. Use a more + * specific selector to overwrite. + */ +button.color-palette__lock, +.color-palette__lock { + float: left; /* LTR */ + width: 20px; + height: 19px; + background: url(../../images/color/lock.png) no-repeat 50% 0; + cursor: pointer; + position: relative; + top: -1.7em; + left: -10px; + direction: ltr; + text-indent: -9999px; +} +[dir="rtl"] button.color-palette__lock, +[dir="rtl"] .color-palette__lock { + float: right; +} +/* Same as above .color-palette__lock rule. */ +button.is-unlocked, +.is-unlocked { + background-position: 50% -22px; +} + +/* wide viewport. */ +@media screen and (min-width: 37.5625em) { /* 601px */ + .color-placeholder { + float: right; /* LTR */ + } + [dir="rtl"] .color-placeholder { + float: left; + } + .color-form .form-item { + margin: 0.5em 195px 0.5em 0; /* LTR */ + } + [dir="rtl"] .color-form .form-item { + margin: 0.5em 0 0.5em 195px; + } + .color-form label { + float: left; /* LTR */ + clear: left; /* LTR */ + width: 15em; + } + [dir="rtl"] .color-form label { + float: right; + clear: right; + } + .color-form .form-text, + .color-form .form-select { + float: left; /* LTR */ + width: auto; + } + [dir="rtl"] .color-form .form-text, + [dir="rtl"] .color-form .form-select { + float: right; + } + .color-palette__hook { + float: left; /* LTR */ + margin-top: 3px; + } + [dir="rtl"] .color-palette__hook { + float: right; + } +} +.item-selected { + background: #eee; +} + +/* Preview */ +.color-preview { + display: none; +} +.js .color-preview { + display: block; + position: relative; + float: left; /* LTR */ +} +.js[dir="rtl"] .color-preview { + float: right; +} +@media screen and (max-width: 30em) { /* 480px */ + .color-form .color-preview-sidebar, + .color-form .color-preview-content { + width: auto; + margin: 0; + } +} diff --git a/core/themes/stable/css/config_translation/config_translation.admin.css b/core/themes/stable/css/config_translation/config_translation.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..8e862fb8813b0aed3d30f00b0d99a5d991e1da38 --- /dev/null +++ b/core/themes/stable/css/config_translation/config_translation.admin.css @@ -0,0 +1,24 @@ +/** + * @file + * Styles for Configuration Translation. + */ + +/** + * Hide the label, in an accessible way, for responsive screens which show the + * form in one column. + */ +.translation-set__translated label { + clip: rect(1px, 1px, 1px, 1px); + height: 1px; + overflow: hidden; + position: absolute; + width: 1px; +} + +@media screen and (min-width: 38em) { + .translation-set__translated label { + height: auto; + position: inherit; + width: auto; + } +} diff --git a/core/themes/stable/css/content_translation/content_translation.admin.css b/core/themes/stable/css/content_translation/content_translation.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..45fb02430e1f0dee87489e84eebc4e9a378bc312 --- /dev/null +++ b/core/themes/stable/css/content_translation/content_translation.admin.css @@ -0,0 +1,33 @@ +/** + * @file + * Styles for the content language administration page. + */ + +.language-content-settings-form .bundle { + width: 24%; +} +.language-content-settings-form .field { + padding-left: 3em; /* LTR */ + width: 24%; +} +[dir="rtl"] .language-content-settings-form .field { + padding-right: 3em; + padding-left: 1em; +} +.language-content-settings-form .column { + padding-left: 5em; /* LTR */ +} +[dir="rtl"] .language-content-settings-form .column { + padding-right: 5em; + padding-left: 1em; +} +.language-content-settings-form .field label, +.language-content-settings-form .column label { + font-weight: normal; +} +.language-content-settings-form .translatable { + width: 1%; +} +.language-content-settings-form .operations { + width: 75%; +} diff --git a/core/themes/stable/css/contextual/contextual.icons.theme.css b/core/themes/stable/css/contextual/contextual.icons.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..561e450f37253e6c0205ee8fb33bf267027ea322 --- /dev/null +++ b/core/themes/stable/css/contextual/contextual.icons.theme.css @@ -0,0 +1,39 @@ +/** + * @file + * Styling for contextual module icons. + */ + +/** + * Toolbar tab icon. + */ +.toolbar-bar .toolbar-icon-edit:before { + background-image: url(../../images/core/icons/bebebe/pencil.svg); +} +.toolbar-bar .toolbar-icon-edit:active:before, +.toolbar-bar .toolbar-icon-edit.is-active:before { + background-image: url(../../images/core/icons/ffffff/pencil.svg); +} + +/** + * Contextual trigger. + */ +.contextual .trigger { + background-image: url(../../images/core/icons/bebebe/pencil.svg); + background-position: center center; + background-repeat: no-repeat; + background-size: 16px 16px; + /* Override the .focusable height: auto */ + height: 26px !important; + /* Override the .focusable height: auto */ + width: 26px !important; + text-indent: -9999px; +} + +.contextual .trigger:hover { + background-image: url(../../images/core/icons/787878/pencil.svg); +} + +.contextual .trigger:focus { + background-image: url(../../images/core/icons/5181c6/pencil.svg); + outline: none; +} diff --git a/core/themes/stable/css/contextual/contextual.module.css b/core/themes/stable/css/contextual/contextual.module.css new file mode 100644 index 0000000000000000000000000000000000000000..2a21e1bb0a80a27824e0db9c4c20a46630576034 --- /dev/null +++ b/core/themes/stable/css/contextual/contextual.module.css @@ -0,0 +1,18 @@ +/** + * @file + * Generic base styles for contextual module. + */ + +.contextual-region { + position: relative; +} +.contextual .trigger:focus { + /* Override the .focusable position: static */ + position: relative !important; +} +.contextual-links { + display: none; +} +.contextual.open .contextual-links { + display: block; +} diff --git a/core/themes/stable/css/contextual/contextual.theme.css b/core/themes/stable/css/contextual/contextual.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..8dc63b26f1b14c92d752720ae30acb5e4d980c55 --- /dev/null +++ b/core/themes/stable/css/contextual/contextual.theme.css @@ -0,0 +1,112 @@ +/** + * @file + * Styling for contextual module. + */ + +/** + * Contextual links wrappers. + */ +.contextual { + position: absolute; + right: 0; /* LTR */ + top: 6px; + z-index: 500; +} +[dir="rtl"] .contextual { + left: 0; + right: auto; +} + +/** + * Contextual region. + */ +.contextual-region.focus { + outline: 1px dashed #d6d6d6; + outline-offset: 1px; +} + +/** + * Contextual trigger. + */ +.contextual .trigger { + background-attachment: scroll; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 13px; + float: right; /* LTR */ + margin: 0; + overflow: hidden; + padding: 0 2px; + position: relative; + right: 6px; /* LTR */ + cursor: pointer; +} +[dir="rtl"] .contextual .trigger { + float: left; + right: auto; + left: 6px; +} +.contextual.open .trigger { + border: 1px solid #ccc; + border-bottom-color: transparent; + border-radius: 13px 13px 0 0; + box-shadow: none; + z-index: 2; +} + +/** + * Contextual links. + * + * The following selectors are heavy to discourage theme overriding. + */ +.contextual-region .contextual .contextual-links { + background-color: #fff; + border: 1px solid #ccc; + border-radius: 4px 0 4px 4px; /* LTR */ + clear: both; + float: right; /* LTR */ + margin: 0; + padding: 0.25em 0; + position: relative; + right: 6px; /* LTR */ + text-align: left; /* LTR */ + top: -1px; + white-space: nowrap; +} +[dir="rtl"] .contextual-region .contextual .contextual-links { + border-radius: 0 4px 4px 4px; + float: left; + left: 6px; + right: auto; + text-align: right; +} +.contextual-region .contextual .contextual-links li { + background-color: #fff; + border: none; + list-style: none; + list-style-image: none; + margin: 0; + padding: 0; + line-height: 100%; +} +.contextual-region .contextual .contextual-links a { + background-color: #fff; + color: #333; + display: block; + font-family: sans-serif; + font-size: small; + line-height: 0.8em; + margin: 0.25em 0; + padding: 0.4em 0.6em; +} +.touchevents .contextual-region .contextual .contextual-links a { + font-size: large; +} +.contextual-region .contextual .contextual-links a, +.contextual-region .contextual .contextual-links a:hover { + text-decoration: none; +} +.no-touchevents .contextual-region .contextual .contextual-links li a:hover { + color: #000; + background: #f7fcff; +} diff --git a/core/themes/stable/css/contextual/contextual.toolbar.css b/core/themes/stable/css/contextual/contextual.toolbar.css new file mode 100644 index 0000000000000000000000000000000000000000..dd573a7a303ae8bc2d842bf6792576a5c563f0c6 --- /dev/null +++ b/core/themes/stable/css/contextual/contextual.toolbar.css @@ -0,0 +1,24 @@ +/** + * @file + * Styling for contextual module's toolbar tab. + */ + +/* Tab appearance. */ +.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab { + float: right; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab { + float: left; +} +.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item { + margin: 0; +} +.toolbar .toolbar-bar .contextual-toolbar-tab .toolbar-item.is-active { + background-image:-webkit-linear-gradient(rgb(78,159,234) 0%, rgb(69,132,221) 100%); + background-image:linear-gradient(rgb(78,159,234) 0%,rgb(69,132,221) 100%); +} + +/* @todo get rid of this declaration by making toolbar.module's CSS less specific */ +.toolbar .toolbar-bar .contextual-toolbar-tab.toolbar-tab.hidden { + display: none; +} diff --git a/core/themes/stable/css/core/dropbutton/dropbutton.css b/core/themes/stable/css/core/dropbutton/dropbutton.css new file mode 100644 index 0000000000000000000000000000000000000000..5990514f09a4f687904dfe2d12e674e946ef1f4f --- /dev/null +++ b/core/themes/stable/css/core/dropbutton/dropbutton.css @@ -0,0 +1,164 @@ + +/** + * @file + * Base styles for dropbuttons. + */ + +/** + * When a dropbutton has only one option, it is simply a button. + */ +.dropbutton-wrapper, +.dropbutton-wrapper div { + box-sizing: border-box; +} +.js .dropbutton-wrapper, +.js .dropbutton-widget { + display: block; + position: relative; +} + +@media screen and (max-width:600px) { + .js .dropbutton-wrapper { + width: 100%; + } +} + +/* Splitbuttons */ +@media screen and (min-width:600px) { + .form-actions .dropbutton-wrapper { + float: left; /* LTR */ + } + [dir="rtl"] .form-actions .dropbutton-wrapper { + float: right; + } +} +.js .form-actions .dropbutton-widget { + position: static; +} +.js td .dropbutton-widget { + position: absolute; +} +.js td .dropbutton-wrapper { + min-height: 2em; +} +.js td .dropbutton-multiple { + padding-right: 10em; /* LTR */ + margin-right: 2em; /* LTR */ + max-width: 100%; +} +[dir="rtl"].js td .dropbutton-multiple { + padding-right: 0; + margin-right: 0; + padding-left: 10em; + margin-left: 2em; +} +.js td .dropbutton-multiple .dropbutton-action a, +.js td .dropbutton-multiple .dropbutton-action input, +.js td .dropbutton-multiple .dropbutton-action button { + width: auto; +} + +/* UL styles are over-scoped in core, so this selector needs weight parity. */ +.js .dropbutton-widget .dropbutton { + list-style-image: none; + list-style-type: none; + margin: 0; + overflow: hidden; + padding: 0; +} +.js .dropbutton li, +.js .dropbutton a { + display: block; + outline: none; +} + +.js .dropbutton li:hover, +.js .dropbutton li:focus, +.js .dropbutton a:hover, +.js .dropbutton a:focus { + outline: initial; +} + +/** + * The dropbutton styling. + * + * A dropbutton is a widget that displays a list of action links as a button + * with a primary action. Secondary actions are hidden behind a click on a + * twisty arrow. + * + * The arrow is created using border on a zero-width, zero-height span. + * The arrow inherits the link color, but can be overridden with border colors. + */ +.js .dropbutton-multiple .dropbutton-widget { + padding-right: 2em; /* LTR */ +} +.js[dir="rtl"] .dropbutton-multiple .dropbutton-widget { + padding-left: 2em; + padding-right: 0; +} +.dropbutton-multiple.open, +.dropbutton-multiple.open .dropbutton-widget { + max-width: none; +} +.dropbutton-multiple.open { + z-index: 100; +} +.dropbutton-multiple .dropbutton .secondary-action { + display: none; +} +.dropbutton-multiple.open .dropbutton .secondary-action { + display: block; +} +.dropbutton-toggle { + bottom: 0; + display: block; + position: absolute; + right: 0; /* LTR */ + text-indent: 110%; + top: 0; + white-space: nowrap; + width: 2em; +} +[dir="rtl"] .dropbutton-toggle { + left: 0; + right: auto; +} +.dropbutton-toggle button { + background: none; + border: 0; + cursor: pointer; + display: block; + height: 100%; + margin: 0; + padding: 0; + width: 100%; +} +.dropbutton-toggle button:hover, +.dropbutton-toggle button:focus { + outline: initial; +} +.dropbutton-arrow { + border-bottom-color: transparent; + border-left-color: transparent; + border-right-color: transparent; + border-style: solid; + border-width: 0.3333em 0.3333em 0; + display: block; + height: 0; + line-height: 0; + position: absolute; + right: 40%; /* 0.6667em; */ /* LTR */ + top: 50%; + margin-top: -0.1666em; + width: 0; + overflow: hidden; +} +[dir="rtl"] .dropbutton-arrow { + left: 0.6667em; + right: auto; +} +.dropbutton-multiple.open .dropbutton-arrow { + border-bottom: 0.3333em solid; + border-top-color: transparent; + top: 0.6667em; +} diff --git a/core/themes/stable/css/core/print.css b/core/themes/stable/css/core/print.css new file mode 100644 index 0000000000000000000000000000000000000000..6e69a3ba21e1913e3630d788c6b9aa81d2ac1ea1 --- /dev/null +++ b/core/themes/stable/css/core/print.css @@ -0,0 +1,25 @@ + +body { + margin: 1em; + background-color: #fff; +} +[dir="rtl"] body { + direction: rtl; +} +th { + text-align: left; /* LTR */ + color: #006; + border-bottom: 1px solid #ccc; +} +[dir="rtl"] th { + text-align: right; +} +tr:nth-child(odd) { + background-color: #ddd; +} +tr:nth-child(even){ + background-color: #fff; +} +td { + padding: 5px; +} diff --git a/core/themes/stable/css/core/vertical-tabs.css b/core/themes/stable/css/core/vertical-tabs.css new file mode 100644 index 0000000000000000000000000000000000000000..ec5d3c194a69fa81050f2532fe0137e8a00be744 --- /dev/null +++ b/core/themes/stable/css/core/vertical-tabs.css @@ -0,0 +1,69 @@ +/** + * @file + * Vertical Tabs. + */ + +.vertical-tabs { + margin: 1em 0 1em 15em; /* LTR */ + border: 1px solid #ccc; +} +[dir="rtl"] .vertical-tabs { + margin-left: 0; + margin-right: 15em; +} +.vertical-tabs__menu { + float: left; /* LTR */ + width: 15em; + margin: -1px 0 -1px -15em; /* LTR */ + padding: 0; + border-top: 1px solid #ccc; + list-style: none; +} +[dir="rtl"] .vertical-tabs__menu { + float: right; + margin-left: 0; + margin-right: -15em; +} +.vertical-tabs__pane { + margin: 0; + border: 0; +} +.vertical-tabs__pane > summary { + display: none; +} + +/* Layout of each tab. */ +.vertical-tabs__menu-item { + border: 1px solid #ccc; + border-top: 0; + background: #eee; +} +.vertical-tabs__menu-item a { + display: block; + padding: 0.5em 0.6em; + text-decoration: none; +} +.vertical-tabs__menu-item a:focus .vertical-tabs__menu-item-title, +.vertical-tabs__menu-item a:active .vertical-tabs__menu-item-title, +.vertical-tabs__menu-item a:hover .vertical-tabs__menu-item-title { + text-decoration: underline; +} +.vertical-tabs__menu-item a:hover { + outline: 1px dotted; +} +.vertical-tabs__menu-item.is-selected { + border-right-width: 0; /* LTR */ + background-color: #fff; +} +[dir="rtl"] .vertical-tabs__menu-item.is-selected { + border-left-width: 0; + border-right-width: 1px; +} +.vertical-tabs__menu-item.is-selected .vertical-tabs__menu-item-title { + color: #000; +} +.vertical-tabs__menu-item-summary { + display: block; + margin-bottom: 0; + line-height: normal; +} diff --git a/core/themes/stable/css/dblog/dblog.module.css b/core/themes/stable/css/dblog/dblog.module.css new file mode 100644 index 0000000000000000000000000000000000000000..ed531b7ec3d5862f8dbcef31df50f2023b12ce3d --- /dev/null +++ b/core/themes/stable/css/dblog/dblog.module.css @@ -0,0 +1,37 @@ +/** + * @file + * Admin styles for the Database Logging module. + */ +.dblog-filter-form .form-item-type, +.dblog-filter-form .form-item-severity { + display: inline-block; + margin: .1em .9em .1em .1em; /* LTR */ + max-width: 30%; +} +[dir="rtl"] .dblog-filter-form .form-item-type, +[dir="rtl"] .dblog-filter-form .form-item-severity { + margin: .1em .1em .1em .9em; +} +.dblog-filter-form .form-actions { + display: inline-block; + padding: 3ex 0 0; + vertical-align: top; +} +.admin-dblog .icon, +.admin-dblog .dblog-warning .icon, +.admin-dblog .dblog-error .icon, +.admin-dblog .dblog-critical .icon, +.admin-dblog .dblog-alert .icon, +.admin-dblog .dblog-emergency .icon { + background: no-repeat center; + width: 16px; +} +.admin-dblog .dblog-warning .icon { + background-image: url(../../images/core/icons/e29700/warning.svg); +} +.admin-dblog .dblog-error .icon, +.admin-dblog .dblog-critical .icon, +.admin-dblog .dblog-alert .icon, +.admin-dblog .dblog-emergency .icon { + background-image: url(../../images/core/icons/e32700/error.svg); +} diff --git a/core/themes/stable/css/field_ui/field_ui.admin.css b/core/themes/stable/css/field_ui/field_ui.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..08f6c2d5c1b0ed0e03f1b4f4b5ee97523d40b22a --- /dev/null +++ b/core/themes/stable/css/field_ui/field_ui.admin.css @@ -0,0 +1,53 @@ +/** + * @file + * Stylesheet for the Field UI module. + */ + +/* 'Manage fields' and 'Manage display' overviews */ +.field-ui-overview .region-title td { + font-weight: bold; +} +.field-ui-overview .region-message td { + font-style: italic; +} + +/* 'Manage form display' and 'Manage display' overview */ +.field-ui-overview .field-plugin-summary-cell { + line-height: 1em; +} +.field-ui-overview .field-plugin-summary { + float: left; /* LTR */ + font-size: .9em; +} +[dir="rtl"] .field-ui-overview .field-plugin-summary { + float: right; +} +.field-ui-overview .field-plugin-summary-cell .warning { + display: block; + float: left; /* LTR */ + margin-right: .5em; +} +[dir="rtl"] .field-ui-overview .field-plugin-summary-cell .warning { + float: right; +} +.field-ui-overview .field-plugin-settings-edit-wrapper { + float: right; /* LTR */ +} +[dir="rtl"] .field-ui-overview .field-plugin-settings-edit-wrapper { + float: left; +} +.field-ui-overview .field-plugin-settings-edit { + float: right; /* LTR */ +} +[dir="rtl"] .field-ui-overview .field-plugin-settings-edit { + float: left; +} +.field-ui-overview .field-plugin-settings-editing td { + vertical-align: top; +} +.field-ui-overview .field-plugin-settings-editing .field-plugin-type { + display: none; +} +.field-ui-overview .field-plugin-settings-edit-form .plugin-name { + font-weight: bold; +} diff --git a/core/themes/stable/css/file/file.admin.css b/core/themes/stable/css/file/file.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..6a45644c02daa56e695b4a4f7b1ef9e12869140a --- /dev/null +++ b/core/themes/stable/css/file/file.admin.css @@ -0,0 +1,18 @@ +/** + * @file + * Admin stylesheet for file module. + */ + +/* File upload widget.*/ +.form-managed-file .form-submit { + margin: 0 0.5em; +} +.form-managed-file div.ajax-progress-bar { + display: none; + margin-top: 4px; + padding: 0; + width: 28em; +} +.form-managed-file .ajax-progress-bar .bar { + margin: 0; +} diff --git a/core/themes/stable/css/filter/filter.admin.css b/core/themes/stable/css/filter/filter.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..a865411b43be73ffb0693b56d329c2a18651b525 --- /dev/null +++ b/core/themes/stable/css/filter/filter.admin.css @@ -0,0 +1,81 @@ + +/** + * @file + * Admin styling for the Filter module. + */ + +/** + * Filter information under field. + */ +.text-format-wrapper > .form-item { + margin-bottom: 0; +} + +.filter-wrapper { + border: 1px solid #ccc; + border-top: 0; + margin: 0; + padding: 0.5em 0.666em; + overflow: hidden; +} +.filter-wrapper .form-item { + margin: 0; +} +.filter-wrapper .form-item label { + display: inline; +} + +.filter-help { + float: right; /* LTR */ +} +[dir="rtl"] .filter-help { + float: left; +} +.filter-guidelines .filter-guidelines-item { + margin-top: 1em; +} +.filter-help p { + margin: 0; +} +.filter-help a { + position: relative; + margin: 0 20px 0 0; /* LTR */ +} +[dir="rtl"] .filter-help a { + margin: 0 0 0 20px; +} +.filter-help a:after { + position: absolute; + top: 0; + right: -20px; /* LTR */ + content: ''; + display: block; + width: 16px; + height: 16px; + background: transparent url(../../images/core/help.png); +} +[dir="rtl"] .filter-help a:after { + right: auto; + left: -20px; +} + +.text-format-wrapper .description { + margin-top: 0.5em; +} +.tips { + font-size: 0.9em; + margin-bottom: 0; + margin-top: 0; + padding-bottom: 0; + padding-top: 0; +} + +/** + * Improve filter tips position. + */ +.tips { + padding-left: 0; /* LTR */ +} +[dir="rtl"] .tips { + padding-right: 0; +} diff --git a/core/themes/stable/css/filter/filter.caption.css b/core/themes/stable/css/filter/filter.caption.css new file mode 100644 index 0000000000000000000000000000000000000000..c436f1bdb54b415942e1ffba137921bbdda5b4c9 --- /dev/null +++ b/core/themes/stable/css/filter/filter.caption.css @@ -0,0 +1,30 @@ +/** + * @file + * Caption filter: default styling for displaying image captions. + */ + +/** + * Essentials, based on http://stackoverflow.com/a/13363408. + */ +.caption { + display: table; +} +.caption > * { + display: block; + max-width: 100%; +} +.caption > figcaption { + display: table-caption; + caption-side: bottom; + max-width: none; +} + +/** + * While editing and whenever the caption is empty, show a placeholder. + * + * Based on http://codepen.io/flesler/pen/AEIFc. + */ +.caption > figcaption[contenteditable=true]:empty:before { + content: attr(data-placeholder); + font-style: italic; +} diff --git a/core/themes/stable/css/image/image.admin.css b/core/themes/stable/css/image/image.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..9f9878a6bfd0245172278f77e0b91fbcd0d01f75 --- /dev/null +++ b/core/themes/stable/css/image/image.admin.css @@ -0,0 +1,74 @@ + +/** + * Image style configuration pages. + */ +.image-style-new, +.image-style-new div { + display: inline; +} +.image-style-preview .preview-image-wrapper { + float: left; + padding-bottom: 2em; + text-align: center; + top: 50%; + width: 48%; +} +.image-style-preview .preview-image { + margin: auto; + position: relative; +} +.image-style-preview .preview-image .width { + border: 1px solid #666; + border-top: none; + bottom: -6px; + height: 2px; + left: -1px; + position: absolute; + box-sizing: content-box; +} +.image-style-preview .preview-image .width span { + position: relative; + top: 4px; +} +.image-style-preview .preview-image .height { + border: 1px solid #666; + border-left: none; + position: absolute; + right: -6px; + top: -1px; + width: 2px; + box-sizing: content-box; +} +.image-style-preview .preview-image .height span { + height: 2em; + left: 10px; + margin-top: -1em; + position: absolute; + top: 50%; +} + +/** + * Improve image style preview on narrow viewports. + */ +@media screen and (max-width: 470px) { + .image-style-preview .preview-image-wrapper { + float: none; + margin-bottom: 1em; + } + .image-style-preview .preview-image-wrapper:last-child { + margin-bottom: 0; + } +} + +/** + * Image anchor element. + */ +.image-anchor { + width: auto; +} +.image-anchor tr { + background: none; +} +.image-anchor td { + border: 1px solid #ccc; +} diff --git a/core/themes/stable/css/language/language.admin.css b/core/themes/stable/css/language/language.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..910279ee3cff361929180445f5b368f9c36eb16f --- /dev/null +++ b/core/themes/stable/css/language/language.admin.css @@ -0,0 +1,11 @@ +/** + * @file + * Styles for the content language administration page. + */ + +#language-content-settings-form table .bundle { + width: 25%; +} +#language-content-settings-form table .operations { + width: 75%; +} diff --git a/core/themes/stable/css/locale/locale.admin.css b/core/themes/stable/css/locale/locale.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..d55b4297aa020fb84f7f830e86156ec29ef1044c --- /dev/null +++ b/core/themes/stable/css/locale/locale.admin.css @@ -0,0 +1,135 @@ +.locale-translate-filter-form .details-wrapper { + overflow: hidden; +} +.locale-translate-filter-form .form-item-langcode, +.locale-translate-filter-form .form-item-translation, +.locale-translate-filter-form .form-item-customized { + float: left; /* LTR */ + margin-right: 1em; /* LTR */ + margin-bottom: 0; + /** + * In Opera 9, DOM elements with the property of "overflow: auto" + * will partially hide its contents with unnecessary scrollbars when + * its immediate child is floated without an explicit width set. + */ + width: 15em; +} +[dir="rtl"] .locale-translate-filter-form .form-item-langcode, +[dir="rtl"] .locale-translate-filter-form .form-item-translation, +[dir="rtl"] .locale-translate-filter-form .form-item-customized { + float: right; + margin-left: 1em; + margin-right: 0; +} +.locale-translate-filter-form .form-type-select select { + width: 100%; +} +.locale-translate-filter-form .form-actions { + float: left; /* LTR */ + padding: 3.8ex 0 0 0; /* LTR */ +} +[dir="rtl"] .locale-translate-filter-form .form-actions { + float: right; + padding: 3.5ex 0 0 0; +} +.locale-translate-edit-form th { + width: 50%; + table-layout: fixed; +} +.locale-translate-edit-form td { + vertical-align: top +} + +.locale-translate-edit-form tr.changed { + background: #ffb; +} + +.locale-translate-edit-form tr .form-type-item .ajax-changed { + position: absolute; +} + +.locale-translate-filter-form .form-wrapper { + margin-bottom:0; +} + +.locale-translate-edit-form table.changed { + margin-top: 0; +} + +/** + * Available translation updates page. + */ +#locale-translation-status-form table { + table-layout: fixed; +} +#locale-translation-status-form th.select-all { + width: 4%; +} +#locale-translation-status-form th.title { + width: 25%; +} +#locale-translation-status-form th.description { +} +#locale-translation-status-form td { + vertical-align: top; +} +.locale-translation-update__wrapper { + background: transparent url(../../images/core/menu-collapsed.png) left .6em no-repeat; + margin-left: -12px; + padding-left: 12px; +} +.expanded .locale-translation-update__wrapper { + background: transparent url(../../images/core/menu-expanded.png) left .6em no-repeat; +} +#locale-translation-status-form .description { + cursor: pointer; +} +.locale-translation-update__wrapper { + color: #5c5c5b; + line-height: 20px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.expanded .locale-translation-update__wrapper { + height: auto; + overflow: visible; + white-space: normal; +} +.expanded .locale-translation-update__message { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} +.js .locale-translation-update__wrapper { + height: 20px; +} +.expanded .locale-translation-update__wrapper { + height: auto; + overflow: visible; + white-space: normal; +} +.locale-translation-update__details { + padding: 5px 0; + max-width: 490px; + white-space: normal; + font-size: 0.9em; + color: #666; +} +.locale-translation-update__details ul { + margin: 0; + padding: 0; +} +.locale-translation-update__details li { + margin: 0 0 0.25em 1.5em; + padding: 0; +} +@media screen and (max-width: 40em) { + #locale-translation-status-form th.title { + width: 20%; + } + #locale-translation-status-form th.status { + width: 40%; + } +} diff --git a/core/themes/stable/css/menu_ui/menu_ui.admin.css b/core/themes/stable/css/menu_ui/menu_ui.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..efbfe7515efa35e37a62935800bd883fbf8f05ad --- /dev/null +++ b/core/themes/stable/css/menu_ui/menu_ui.admin.css @@ -0,0 +1,6 @@ +.menu-enabled { + width: 70px; +} +.menu-label { + font-weight: bold; +} diff --git a/core/themes/stable/css/node/node.admin.css b/core/themes/stable/css/node/node.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..101a38d5390485f8f36f2a72aa88f3d45e8430d3 --- /dev/null +++ b/core/themes/stable/css/node/node.admin.css @@ -0,0 +1,11 @@ +/** + * @file + * Styles for administration pages. + */ + +/** + * Revisions overview screen. + */ +.revision-current { + background: #ffc; +} diff --git a/core/themes/stable/css/node/node.module.css b/core/themes/stable/css/node/node.module.css new file mode 100644 index 0000000000000000000000000000000000000000..397adb5e85e89a0e86d4e3997d45c92cc839fd7c --- /dev/null +++ b/core/themes/stable/css/node/node.module.css @@ -0,0 +1,76 @@ +/** + * @file + * Styles for administration pages. + */ + +/** + * Node add/edit form layout + */ + +/* Narrow screens */ +.layout-region { + box-sizing: border-box; +} + +/* Wide screens */ +@media + screen and (min-width: 780px), + (orientation: landscape) and (min-device-height: 780px) { + + .layout-region-node-main, + .layout-region-node-footer { + float: left; /* LTR */ + width: 65%; + padding-right: 2em; /* LTR */ + box-sizing: border-box; + } + + [dir="rtl"] .layout-region-node-main, + [dir="rtl"] .layout-region-node-footer { + float: right; + padding-left: 2em; + padding-right: 0; + } + + .layout-region-node-secondary { + float: right; /* LTR */ + width: 35%; + } + + [dir="rtl"] .layout-region-node-secondary { + float: left; + } + + /* @todo File an issue to add a standard class to all text-like inputs */ + .layout-region-node-secondary .form-autocomplete, + .layout-region-node-secondary .form-text, + .layout-region-node-secondary .form-tel, + .layout-region-node-secondary .form-email, + .layout-region-node-secondary .form-url, + .layout-region-node-secondary .form-search, + .layout-region-node-secondary .form-number, + .layout-region-node-secondary .form-color, + .layout-region-node-secondary textarea { + box-sizing: border-box; + width: 100%; + max-width: 100%; + } +} + +/** + * The vertical toolbar mode gets triggered for narrow screens, which throws off + * the intent of media queries written for the viewport width. When the vertical + * toolbar is on, we need to suppress layout for the original media width + the + * toolbar width (240px). In this case, 240px + 780px. + */ +@media + screen and (max-width: 1020px) { + + .toolbar-vertical.toolbar-tray-open .layout-region-node-main, + .toolbar-vertical.toolbar-tray-open .layout-region-node-footer, + .toolbar-vertical.toolbar-tray-open .layout-region-node-secondary { + float: none; + width: auto; + padding-right: 0; + } +} diff --git a/core/themes/stable/css/node/node.preview.css b/core/themes/stable/css/node/node.preview.css new file mode 100644 index 0000000000000000000000000000000000000000..4847d3fb57ee8bd438ea902e15b5d0fc749487d7 --- /dev/null +++ b/core/themes/stable/css/node/node.preview.css @@ -0,0 +1,22 @@ +/** + * @file + * Styles for node preview page. + */ + +.node-preview-container { + position: fixed; + z-index: 499; + width: 100%; + padding: 10px; + box-sizing: border-box; +} + +@media only screen and (min-width: 36em) { + .node-preview-container .form-type-select { + margin-left: 25%; /* LTR */ + } + [dir="rtl"] .node-preview-container .form-type-select { + margin-right: 25%; + margin-left: 0; + } +} diff --git a/core/themes/stable/css/quickedit/quickedit.icons.theme.css b/core/themes/stable/css/quickedit/quickedit.icons.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..856a78ba6ee40afd51380125e39c838f224e9638 --- /dev/null +++ b/core/themes/stable/css/quickedit/quickedit.icons.theme.css @@ -0,0 +1,74 @@ +/** + * @file + * Icons for Quick Edit module. + */ + +.quickedit .icon { + min-height: 1em; + min-width: 2.5em; + position: relative; +} +.quickedit .icon.icon-only { + text-indent: -9999px; +} +.quickedit .icon.icon-end { + padding-right: 2.5em; /* LTR */ +} +[dir="rtl"] .quickedit .icon.icon-end { + padding-left: 2.5em; + padding-right: 0; +} +.quickedit .icon:before { + background-attachment: scroll; + background-color: transparent; + background-position: center center; + background-repeat: no-repeat; + content: ''; + display: block; + height: 100%; + left: 0; /* LTR */ + position: absolute; + top: 0; + width: 100%; +} +[dir="rtl"] .quickedit .icon:before { + left: auto; + right: 0; +} +.quickedit .icon-end:before { + left: auto; /* LTR */ + right: 0.5em; /* LTR */ + width: 18px; +} +[dir="rtl"] .quickedit .icon-end:before { + left: 0.5em; + right: auto; +} +.quickedit button.icon { + font-size: 1em; +} +.quickedit .icon-pencil { + margin-left: .5em; + padding-left: 1.5em; +} + +/** + * Images. + */ +.quickedit .icon-close:before { + background-image: url(../../images/core/icons/787878/ex.svg); + height: 12px; + top: 10px; +} +.quickedit .icon-close:hover:before, +.quickedit .icon-close:active:before { + background-image: url(../../images/core/icons/000000/ex.svg); +} +.quickedit .icon-throbber:before { + background-image: url(../../images/quickedit/icon-throbber.gif); +} +.quickedit .icon-pencil:before { + background-image: url(../../images/core/icons/5181c6/pencil.svg); + background-position: left center; + background-size: 1.3em; +} diff --git a/core/themes/stable/css/quickedit/quickedit.module.css b/core/themes/stable/css/quickedit/quickedit.module.css new file mode 100644 index 0000000000000000000000000000000000000000..8ac9a5583b10e7ab89128ce989119d6d804a5d0f --- /dev/null +++ b/core/themes/stable/css/quickedit/quickedit.module.css @@ -0,0 +1,123 @@ +/** + * @file + * Generic base styles for Quick Edit module. + * + * Note: every class is prefixed with "quickedit-" to prevent collisions with + * modules or themes. In Edit module-specific DOM subtrees, this is not + * necessary. + */ + +/** + * Editable. + */ +.quickedit-editable { + z-index: 98; + position: relative; + cursor: pointer; +} +.quickedit-editable:focus { + outline: none; +} + +/** + * Highlighted (hovered) editable. + */ +.quickedit-editable.quickedit-highlighted { + z-index: 99; +} +.quickedit-validation-errors > .messages { + margin-left: 0; + margin-right: 0; +} +.quickedit-validation-errors > .messages > ul { + list-style: none; + margin: 0; + padding: 0; +} + +/** + * In-place editors that don't use a popup. + */ +.quickedit-validation-errors { + z-index: 300; + position: relative; +} +.quickedit-validation-errors .messages.error { + position: absolute; + top: 6px; + left: -5px; /* LTR */ + margin: 0; + border: none; +} +[dir="rtl"] .quickedit-validation-errors .messages.error { + left: auto; + right: -5px; +} + +/** + * Styling specific to the 'form' in-place editor. + */ +#quickedit_backstage { + display: none; +} +.quickedit-form { + position: absolute; + z-index: 300; + max-width: 35em; +} +.quickedit-form .placeholder { + min-height: 22px; +} + +/** + * Default form styling overrides. + */ +.quickedit-form .form-wrapper .form-wrapper { + margin: inherit; +} +.quickedit-form .form-actions { + display: none; +} +.quickedit-form input { + max-width: 100%; +} + +/** + * Entity toolbar. + */ +.quickedit-toolbar-container { + max-width: 100%; + position: absolute; + max-width: 320px; + width: 320px; + z-index: 100; +} +.quickedit-toolbar-container > .quickedit-toolbar-pointer, +.quickedit-toolbar-container > .quickedit-toolbar-lining { + display: none; +} +.quickedit-form-container { + position: relative; + padding: 0; + border: 0; + margin: 0; + vertical-align: baseline; + z-index: 100; +} +.quickedit-toolgroup.ops { + float: right; /* LTR */ +} +[dir="rtl"] .quickedit-toolgroup.ops { + float: left; +} +.quickedit-toolbar-label { + overflow: hidden; +} +#quickedit-toolbar-fence { + bottom: 0; + left: 0; + right: 0; + top: 0; + position: fixed; + z-index: -1; +} diff --git a/core/themes/stable/css/quickedit/quickedit.theme.css b/core/themes/stable/css/quickedit/quickedit.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..399db7a87d107199c15e02ccf58badc2687abad5 --- /dev/null +++ b/core/themes/stable/css/quickedit/quickedit.theme.css @@ -0,0 +1,254 @@ +/** + * @file + * Styling for Quick Edit module. + */ + +/** + * Editable. + */ +.quickedit-field.quickedit-editable, +.quickedit-field .quickedit-editable { + box-shadow: 0 0 0 2px #74b7ff; +} + +/** + * Highlighted (hovered) editable. + */ +.quickedit-field.quickedit-highlighted, +.quickedit-form.quickedit-highlighted, +.quickedit-field .quickedit-highlighted { + box-shadow: 0 0 0 1px #74b7ff, 0 0 0 2px #007fff; +} +.quickedit-field.quickedit-changed, +.quickedit-form.quickedit-changed, +.quickedit-field .quickedit-changed { + box-shadow: 0 0 0 1px #fec17e, 0 0 0 2px #f7870a; +} +.quickedit-editing.quickedit-validation-error, +.quickedit-form.quickedit-validation-error { + box-shadow: 0 0 0px 1px #ee8b74, 0 0 0 2px #fa2209; +} +.quickedit-editing.quickedit-editor-is-popup { + box-shadow: none; +} +.quickedit-form .form-item .error { + border: 1px solid #eea0a0; +} + +/** + * Default form styling overrides. + */ +.quickedit-form form { + padding: 0.5em; +} +.quickedit-form .form-item { + margin: 0; +} +.quickedit-form .form-wrapper { + margin: .5em; +} + +/** + * Animations. + */ +.quickedit-animate-invisible { + opacity: 0; +} +.quickedit-animate-default { + -webkit-transition: all .4s ease; + transition: all .4s ease; +} +.quickedit-animate-slow { + -webkit-transition: all .6s ease; + transition: all .6s ease; +} +.quickedit-animate-delay-veryfast { + -webkit-transition-delay: .05s; + transition-delay: .05s; +} +.quickedit-animate-delay-fast { + -webkit-transition-delay: .2s; + transition-delay: .2s; +} +.quickedit-animate-disable-width { + -webkit-transition: width 0s; + transition: width 0s; +} +.quickedit-animate-only-visibility { + -webkit-transition: opacity .2s ease; + transition: opacity .2s ease; +} + +/** + * In-place editors that don't use a popup. + */ +.quickedit-validation-errors .messages.error { + box-shadow: 0 0 1px 1px red, 0 0 3px 3px rgba(153, 153, 153, .5); + background-color: white; +} + +/** + * Styling specific to the 'form' in-place editor. + */ +.quickedit-form { + box-shadow: 0 0 30px 4px #4f4f4f; + background-color: white; +} + +/** + * Toolbars. + */ +.quickedit-toolbar-container { + font-family: 'Source Sans Pro','Lucida Grande', sans-serif; + padding-bottom: 7px; + padding-top: 7px; + -webkit-transition: all 1s; + transition: all 1s; +} +.quickedit-toolbar-container > .quickedit-toolbar-content { + background-image: -webkit-linear-gradient(top, #fff, #e4e4e4); + background-image: linear-gradient(to bottom, #fff, #e4e4e4); + box-sizing: border-box; + color: black; + padding: 0.1667em; + position: relative; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + z-index: 2; +} +.quickedit-toolbar-container > .quickedit-toolbar-pointer { + background-color: #e4e4e4; + bottom: 2px; + box-shadow: 0 0 0 1px #818181, 0px 0px 0 4px rgba(150, 150, 150, 0.5); + display: block; + height: 16px; + left: 18px; /* LTR */ + position: absolute; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + width: 16px; + z-index: 1; +} +[dir="rtl"] .quickedit-toolbar-container > .quickedit-toolbar-pointer { + left: auto; + right: 18px; +} +.quickedit-toolbar-container.quickedit-toolbar-pointer-top > .quickedit-toolbar-pointer { + bottom: auto; + top: 2px; +} +.quickedit-toolbar-container > .quickedit-toolbar-lining { + bottom: 7px; + box-shadow: 0 0 0 1px #818181, 0px 3px 0px 1px rgba(150, 150, 150, 0.5); + display: block; + left: 0; + position: absolute; + right: 0; + top: 7px; + z-index: 0; +} + +.quickedit-toolbar-label { + font-style: italic; + overflow: hidden; + padding: 0.333em 0.4em; + text-overflow: ellipsis; + white-space: nowrap; +} +.quickedit-toolbar-label .field:after { + content: ' → '; /* LTR */ +} + +[dir="rtl"] .quickedit-toolbar-label .field:after { + content: ' ↠'; +} + +/* The toolbar; these are not necessarily visible. */ +.quickedit-toolbar { + font-family: 'Droid sans', 'Lucida Grande', sans-serif; +} +.quickedit-toolbar-entity { + padding: 0.1667em 0.2em; +} + + /** + * Info toolgroup. + */ +.quickedit-toolbar-fullwidth { + width: 100%; +} +.quickedit-toolgroup.wysiwyg-floated { + float: right; /* LTR */ +} +[dir="rtl"] .quickedit-toolgroup.wysiwyg-floated { + float: left; +} +.quickedit-toolgroup.wysiwyg-main { + clear: both; + width: 100%; + padding-left: 0; /* LTR */ +} +[dir="rtl"] .quickedit-toolgroup.wysiwyg-main { + padding-left: 0; + padding-right: 0; +} + +/** + * Buttons. + */ +.quickedit-button { + background-color: #e4e4e4; + border: 1px solid #d2d2d2; + color: #5a5a5a; + cursor: pointer; + display: inline-block; + margin: 0; + opacity: 1; + padding: 0.345em; + -webkit-transition: opacity .1s ease; + transition: opacity .1s ease; +} +.quickedit-button[aria-hidden="true"] { + visibility: hidden; + opacity: 0; +} +.quickedit-button + .quickedit-button { + margin-left: 0.2em; /* LTR */ +} +[dir="rtl"] .quickedit-button + .quickedit-button { + margin-left: auto; + margin-right: 0.25em; +} +/* Button with icons. */ +.quickedit-button:hover, +.quickedit-button:active { + background-color: #c8c8c8; + border: 1px solid #a0a0a0; + color: #2e2e2e; +} +.quickedit-toolbar-container .quickedit-button.action-cancel { + background-color: transparent; + border: 1px solid transparent; +} +.quickedit-button.action-save { + color: white; + background-color: #50a0e9; + background-image: -webkit-linear-gradient(top, #50a0e9, #4481dc); + background-image: linear-gradient(to bottom, #50a0e9, #4481dc); + border: 1px solid transparent; +} +.quickedit-button.action-save:hover, +.quickedit-button.action-save:active { + border: 1px solid #a0a0a0; +} +.quickedit-button.action-saving, +.quickedit-button.action-saving:hover, +.quickedit-button.action-saving:active { + background-color: #e4e4e4; + background-image: none; + border-color: #d2d2d2; + color: #5a5a5a; +} diff --git a/core/themes/stable/css/shortcut/shortcut.icons.theme.css b/core/themes/stable/css/shortcut/shortcut.icons.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..c84a7cbe49eb10f284c6d36e32af633ce85a20dc --- /dev/null +++ b/core/themes/stable/css/shortcut/shortcut.icons.theme.css @@ -0,0 +1,40 @@ +/** + * @file + * Styling for the shortcut module icons. + */ + +/** + * Toolbar tab icon. + */ +.toolbar-bar .toolbar-icon-shortcut:before { + background-image: url(../../images/core/icons/bebebe/star.svg); +} +.toolbar-bar .toolbar-icon-shortcut:active:before, +.toolbar-bar .toolbar-icon-shortcut.is-active:before { + background-image: url(../../images/core/icons/ffffff/star.svg); +} + +/** + * Add/remove links. + */ +.shortcut-action__icon { + background: transparent url(../../images/shortcut/favstar.svg) no-repeat left top; + width: 20px; + height: 20px; + display: inline-block; + vertical-align: -2px; +} +[dir="rtl"] .shortcut-action__icon { + background-image: url(../../images/shortcut/favstar-rtl.svg); +} +.shortcut-action--add:hover .shortcut-action__icon, +.shortcut-action--add:focus .shortcut-action__icon { + background-position: -20px top; +} +.shortcut-action--remove .shortcut-action__icon { + background-position: -40px top; +} +.shortcut-action--remove:focus .shortcut-action__icon, +.shortcut-action--remove:hover .shortcut-action__icon { + background-position: -60px top; +} diff --git a/core/themes/stable/css/shortcut/shortcut.theme.css b/core/themes/stable/css/shortcut/shortcut.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..73d58c6d46529532727c6105abf30b17045bb42d --- /dev/null +++ b/core/themes/stable/css/shortcut/shortcut.theme.css @@ -0,0 +1,62 @@ +/** + * @file + * Styling for the shortcut module. + */ + +/** + * Toolbar. + */ +.toolbar .toolbar-tray-vertical .edit-shortcuts { + text-align: right; /* LTR */ + padding: 1em; +} +[dir="rtl"] .toolbar .toolbar-tray-vertical .edit-shortcuts { + text-align: left; +} +.toolbar .toolbar-tray-horizontal .edit-shortcuts { + float: right; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-horizontal .edit-shortcuts { + float: left; +} + +/** + * Add/remove links. + */ +.shortcut-action { + display: inline-block; + margin-left: 0.3em; /* LTR */ +} +[dir="rtl"] .shortcut-action { + margin-left: 0; + margin-right: 0.3em; +} +.shortcut-action__message { + background: #000000; + background: rgba(0, 0, 0, 0.5); + border-radius: 5px; + padding: 0 5px; + color: #ffffff; + display: inline-block; + margin-left: 0.3em; /* LTR */ + opacity: 0; + -ms-transform: translateY(-12px); + -webkit-transform: translateY(-12px); + transform: translateY(-12px); + -webkit-transition: all 200ms ease-out; + transition: all 200ms ease-out; + -ms-backface-visibility: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +[dir="rtl"] .shortcut-action__message { + margin-left: 0; + margin-right: 0.3em; +} +.shortcut-action:hover .shortcut-action__message, +.shortcut-action:focus .shortcut-action__message { + opacity: 1; + -ms-transform: translateY(-2px); + -webkit-transform: translateY(-2px); + transform: translateY(-2px); +} diff --git a/core/themes/stable/css/simpletest/simpletest.module.css b/core/themes/stable/css/simpletest/simpletest.module.css new file mode 100644 index 0000000000000000000000000000000000000000..c0079b6ec3f974b384a375d47ba663e3a3bd9cce --- /dev/null +++ b/core/themes/stable/css/simpletest/simpletest.module.css @@ -0,0 +1,93 @@ + +/* Test Table */ +#simpletest-form-table th.select-all { + width: 1em; +} +th.simpletest-test-label { + width: 40%; +} + +.simpletest-image { + display: inline-block; + cursor: pointer; + width: 1em; +} +.simpletest-group-label label { + display: inline; + font-weight: bold; +} +.simpletest-test-label label { + margin-left: 1em; /* LTR */ +} +.simpletest-test-description .description { + margin: 0; +} +#simpletest-form-table tr td { + background-color: white; + color: #494949; +} +#simpletest-form-table tr.simpletest-group td { + background-color: #edf5fa; + color: #494949; +} + +table#simpletest-form-table tr.simpletest-group label { + display: inline; +} + +div.message > div.item-list { + font-weight: normal; +} + +div.simpletest-pass { + color: #33a333; +} +.simpletest-fail { + color: #981010; +} + +tr.simpletest-pass, +tr.simpletest-pass.odd { + background-color: #b6ffb6; +} +tr.simpletest-pass.even { + background-color: #9bff9b; +} +tr.simpletest-fail, +tr.simpletest-fail.odd { + background-color: #ffc9c9; +} +tr.simpletest-fail.even { + background-color: #ffacac; +} +tr.simpletest-exception, +tr.simpletest-exception.odd { + background-color: #f4ea71; +} +tr.simpletest-exception.even { + background-color: #f5e742; +} +tr.simpletest-debug, +tr.simpletest-debug.odd { + background-color: #eee; +} +tr.simpletest-debug.even { + background-color: #fff; +} + +a.simpletest-collapse { + height: 0; + width: 0; + top: -99em; + position: absolute; +} +a.simpletest-collapse:focus, +a.simpletest-collapse:hover { + font-size: 80%; + top: 0px; + height: auto; + width: auto; + overflow: visible; + position: relative; + z-index: 1000; +} diff --git a/core/themes/stable/css/system/components/ajax-progress.module.css b/core/themes/stable/css/system/components/ajax-progress.module.css new file mode 100644 index 0000000000000000000000000000000000000000..f1caf3ad0d6ea785fedf4313cfc55e16b6115362 --- /dev/null +++ b/core/themes/stable/css/system/components/ajax-progress.module.css @@ -0,0 +1,49 @@ +/** + * @file + * Throbber. + */ + +.ajax-progress { + display: inline-block; + padding: 1px 5px 2px 5px; +} +[dir="rtl"] .ajax-progress { + float: right; +} +.ajax-progress-throbber .throbber { + background: transparent url(../../../images/core/throbber-active.gif) no-repeat 0px center; + display: inline; + padding: 1px 5px 2px; +} +.ajax-progress-throbber .message { + display: inline; + padding: 1px 5px 2px; +} +tr .ajax-progress-throbber .throbber { + margin: 0 2px; +} +.ajax-progress-bar { + width: 16em; +} + +/* Full screen throbber */ +.ajax-progress-fullscreen { + /* Can't do center:50% middle: 50%, so approximate it for a typical window size. */ + left: 49%; /* LTR */ + position: fixed; + top: 48.5%; + z-index: 1000; + background-color: #232323; + background-image: url(../../../images/core/loading-small.gif); + background-position: center center; + background-repeat: no-repeat; + border-radius: 7px; + height: 24px; + opacity: 0.9; + padding: 4px; + width: 24px; +} +[dir="rtl"] .ajax-progress-fullscreen { + left: auto; + right: 49%; +} diff --git a/core/themes/stable/css/system/components/align.module.css b/core/themes/stable/css/system/components/align.module.css new file mode 100644 index 0000000000000000000000000000000000000000..a8fdf53203b63c0235ac8b4cf8c692b1f453ce72 --- /dev/null +++ b/core/themes/stable/css/system/components/align.module.css @@ -0,0 +1,32 @@ +/** + * @file + * Alignment classes for text and block level elements. + */ + +.text-align-left { + text-align: left; +} +.text-align-right { + text-align: right; +} +.text-align-center { + text-align: center; +} +.text-align-justify { + text-align: justify; +} + +/** + * Alignment classes for block level elements (images, videos, blockquotes, etc.) + */ +.align-left { + float: left; +} +.align-right { + float: right; +} +.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} diff --git a/core/themes/stable/css/system/components/autocomplete-loading.module.css b/core/themes/stable/css/system/components/autocomplete-loading.module.css new file mode 100644 index 0000000000000000000000000000000000000000..48a9e9abf95a049b6fafbcb03db08a681ac412b5 --- /dev/null +++ b/core/themes/stable/css/system/components/autocomplete-loading.module.css @@ -0,0 +1,22 @@ +/** + * @file + * Visual styles for animated throbber. + * + * @see autocomplete.js + */ + +.js input.form-autocomplete { + background-image: url(../../../images/core/throbber-inactive.png); + background-position: 100% center; /* LTR */ + background-repeat: no-repeat; +} +.js[dir="rtl"] input.form-autocomplete { + background-position: 0% center; +} +.js input.form-autocomplete.ui-autocomplete-loading { + background-image: url(../../../images/core/throbber-active.gif); + background-position: 100% center; /* LTR */ +} +.js[dir="rtl"] input.form-autocomplete.ui-autocomplete-loading { + background-position: 0% center; +} diff --git a/core/themes/stable/css/system/components/clearfix.module.css b/core/themes/stable/css/system/components/clearfix.module.css new file mode 100644 index 0000000000000000000000000000000000000000..d68066e877eca6b0e5e6028697ab1830bc4cc632 --- /dev/null +++ b/core/themes/stable/css/system/components/clearfix.module.css @@ -0,0 +1,15 @@ +/** + * @file + * Float clearing. + * + * Based on the micro clearfix hack by Nicolas Gallagher, with the :before + * pseudo selector removed to allow normal top margin collapse. + * + * @see http://nicolasgallagher.com/micro-clearfix-hack + */ + +.clearfix:after { + content: ""; + display: table; + clear: both; +} diff --git a/core/themes/stable/css/system/components/container-inline.module.css b/core/themes/stable/css/system/components/container-inline.module.css new file mode 100644 index 0000000000000000000000000000000000000000..b68da6509c12fc829adc90e62fd72d56b2d15a35 --- /dev/null +++ b/core/themes/stable/css/system/components/container-inline.module.css @@ -0,0 +1,13 @@ +/** + * @file + * Inline items. + */ + +.container-inline div, +.container-inline label { + display: inline; +} +/* Details contents always need to be rendered as block. */ +.container-inline .details-wrapper { + display: block; +} diff --git a/core/themes/stable/css/system/components/details.module.css b/core/themes/stable/css/system/components/details.module.css new file mode 100644 index 0000000000000000000000000000000000000000..23ee3b4121d412ac476dd19acd960b20a38323d3 --- /dev/null +++ b/core/themes/stable/css/system/components/details.module.css @@ -0,0 +1,10 @@ +/** + * @file + * Collapsible details. + * + * @see collapse.js + */ + +.js details:not([open]) .details-wrapper { + display: none; +} diff --git a/core/themes/stable/css/system/components/fieldgroup.module.css b/core/themes/stable/css/system/components/fieldgroup.module.css new file mode 100644 index 0000000000000000000000000000000000000000..e7799098b811e23ac86475e92677100c51b114bc --- /dev/null +++ b/core/themes/stable/css/system/components/fieldgroup.module.css @@ -0,0 +1,9 @@ +/** + * @file + * Fieldgroup border reset. + */ + +.fieldgroup { + border-width: 0; + padding: 0; +} diff --git a/core/themes/stable/css/system/components/hidden.module.css b/core/themes/stable/css/system/components/hidden.module.css new file mode 100644 index 0000000000000000000000000000000000000000..6501c2724102edf7c4e7c3d0f9153ca814eedd52 --- /dev/null +++ b/core/themes/stable/css/system/components/hidden.module.css @@ -0,0 +1,53 @@ +/** + * @file + * Utility classes to hide elements in different ways. + */ + +/** + * Hide elements from all users. + * + * Used for elements which should not be immediately displayed to any user. An + * example would be collapsible details that will be expanded with a click + * from a user. The effect of this class can be toggled with the jQuery show() + * and hide() functions. + */ +.hidden { + display: none; +} + +/** + * Hide elements visually, but keep them available for screen readers. + * + * Used for information required for screen reader users to understand and use + * the site where visual display is undesirable. Information provided in this + * manner should be kept concise, to avoid unnecessary burden on the user. + * "!important" is used to prevent unintentional overrides. + */ +.visually-hidden { + position: absolute !important; + clip: rect(1px, 1px, 1px, 1px); + overflow: hidden; + height: 1px; + width: 1px; + word-wrap: normal; +} + +/** + * The .focusable class extends the .visually-hidden class to allow + * the element to be focusable when navigated to via the keyboard. + */ +.visually-hidden.focusable:active, +.visually-hidden.focusable:focus { + position: static !important; + clip: auto; + overflow: visible; + height: auto; + width: auto; +} + +/** + * Hide visually and from screen readers, but maintain layout. + */ +.invisible { + visibility: hidden; +} diff --git a/core/themes/stable/css/system/components/item-list.module.css b/core/themes/stable/css/system/components/item-list.module.css new file mode 100644 index 0000000000000000000000000000000000000000..7bddff9e768b4fe0aab4057b1305972996d60a84 --- /dev/null +++ b/core/themes/stable/css/system/components/item-list.module.css @@ -0,0 +1,19 @@ +/** + * @file + * Styles for item list. + */ + +.item-list__comma-list, +.item-list__comma-list li { + display: inline; +} +.item-list__comma-list { + margin: 0; + padding: 0; +} +.item-list__comma-list li:after { + content: ", "; +} +.item-list__comma-list li:last-child:after { + content: ""; +} diff --git a/core/themes/stable/css/system/components/js.module.css b/core/themes/stable/css/system/components/js.module.css new file mode 100644 index 0000000000000000000000000000000000000000..f827020326daed6d93a0c75f06999c264f57cfb3 --- /dev/null +++ b/core/themes/stable/css/system/components/js.module.css @@ -0,0 +1,22 @@ +/** + * @file + * Utility classes to assist with Javascript functionality. + */ + +/** + * For anything you want to hide on page load when JS is enabled, so + * that you can use the JS to control visibility and avoid flicker. + */ +.js .js-hide { + display: none; +} + +/** + * For anything you want to show on page load only when JS is enabled. + */ +.js-show { + display: none; +} +.js .js-show { + display: block; +} diff --git a/core/themes/stable/css/system/components/nowrap.module.css b/core/themes/stable/css/system/components/nowrap.module.css new file mode 100644 index 0000000000000000000000000000000000000000..466d9fe68ae287976363a726f7ae385661b6c192 --- /dev/null +++ b/core/themes/stable/css/system/components/nowrap.module.css @@ -0,0 +1,8 @@ +/** + * @file + * Utility class to prevent text wrapping. + */ + +.nowrap { + white-space: nowrap; +} diff --git a/core/themes/stable/css/system/components/position-container.module.css b/core/themes/stable/css/system/components/position-container.module.css new file mode 100644 index 0000000000000000000000000000000000000000..ae209f3aa614b9437226ba8bb9637bdd7b4e8e86 --- /dev/null +++ b/core/themes/stable/css/system/components/position-container.module.css @@ -0,0 +1,8 @@ +/* + * @file + * Contain positioned elements. + */ + +.position-container { + position: relative; +} diff --git a/core/themes/stable/css/system/components/progress.module.css b/core/themes/stable/css/system/components/progress.module.css new file mode 100644 index 0000000000000000000000000000000000000000..80042afb821d4c6b533c2b5422a6c347131f3f55 --- /dev/null +++ b/core/themes/stable/css/system/components/progress.module.css @@ -0,0 +1,51 @@ +/** + * @file + * Progress behavior. + * + * @see progress.js + */ + +.progress { + position: relative; +} +.progress__track { + background-color: #fff; + border: 1px solid; + margin-top: 5px; + max-width: 100%; + min-width: 100px; + height: 16px; +} +.progress__bar { + background-color: #000; + height: 1.5em; + width: 3%; + min-width: 3%; + max-width: 100%; +} +.progress__description, +.progress__percentage { + color: #555; + overflow: hidden; + font-size: .875em; + margin-top: 0.2em; +} +.progress__description { + float: left; /* LTR */ +} +[dir="rtl"] .progress__description { + float: right; +} +.progress__percentage { + float: right; /* LTR */ +} +[dir="rtl"] .progress__percentage { + float: left; +} +.progress--small .progress__track { + height: 7px; +} +.progress--small .progress__bar { + height: 7px; + background-size: 20px 20px; +} diff --git a/core/themes/stable/css/system/components/reset-appearance.module.css b/core/themes/stable/css/system/components/reset-appearance.module.css new file mode 100644 index 0000000000000000000000000000000000000000..847f269a07546b4861952d6422503a5cd8466a09 --- /dev/null +++ b/core/themes/stable/css/system/components/reset-appearance.module.css @@ -0,0 +1,15 @@ +/* + * @file + * Utility class to remove browser styles, especially for button. + */ + +.reset-appearance { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: 0 none; + background: transparent; + padding: 0; + margin: 0; + line-height: inherit; +} diff --git a/core/themes/stable/css/system/components/resize.module.css b/core/themes/stable/css/system/components/resize.module.css new file mode 100644 index 0000000000000000000000000000000000000000..d8d4559b30ca502750da44f443ec0803626b93a1 --- /dev/null +++ b/core/themes/stable/css/system/components/resize.module.css @@ -0,0 +1,21 @@ +/** + * @file + * Resizable textareas. + */ + +.resize-none { + resize: none; +} +.resize-vertical { + resize: vertical; + min-height: 2em; +} +.resize-horizontal { + resize: horizontal; + max-width: 100%; +} +.resize-both { + resize: both; + max-width: 100%; + min-height: 2em; +} diff --git a/core/themes/stable/css/system/components/sticky-header.module.css b/core/themes/stable/css/system/components/sticky-header.module.css new file mode 100644 index 0000000000000000000000000000000000000000..f3bdcea5102eb89a0c4699e654518a10089937ef --- /dev/null +++ b/core/themes/stable/css/system/components/sticky-header.module.css @@ -0,0 +1,13 @@ +/** + * @file + * Table header behavior. + * + * @see tableheader.js + */ + +table.sticky-header { + background-color: #fff; + margin-top: 0; + z-index: 500; + top: 0; +} diff --git a/core/themes/stable/css/system/components/tabledrag.module.css b/core/themes/stable/css/system/components/tabledrag.module.css new file mode 100644 index 0000000000000000000000000000000000000000..687bdc2dddd2d41544e92cda585163089589915b --- /dev/null +++ b/core/themes/stable/css/system/components/tabledrag.module.css @@ -0,0 +1,88 @@ +/** + * @file + * Table drag behavior. + * + * @see tabledrag.js + */ + +body.drag { + cursor: move; +} +tr.region-title { + font-weight: bold; +} +tr.region-message { + color: #999; +} +tr.region-populated { + display: none; +} +tr.add-new .tabledrag-changed { + display: none; +} +.draggable a.tabledrag-handle { + cursor: move; + float: left; /* LTR */ + height: 1.7em; + margin-left: -1em; /* LTR */ + overflow: hidden; + text-decoration: none; +} +[dir="rtl"] .draggable a.tabledrag-handle { + float: right; + margin-right: -1em; + margin-left: 0; +} +a.tabledrag-handle:hover { + text-decoration: none; +} +a.tabledrag-handle .handle { + background: url(../../../images/core/icons/787878/move.svg) no-repeat 6px 7px; + height: 14px; + margin: -0.4em 0.5em 0; + padding: 0.42em 0.5em; + width: 14px; +} +a.tabledrag-handle:hover .handle, +a.tabledrag-handle:focus .handle { + background-image: url(../../../images/core/icons/000000/move.svg); +} +.touchevents .draggable td { + padding: 0 10px; +} +.touchevents .draggable .menu-item__link { + display: inline-block; + padding: 10px 0; +} +.touchevents a.tabledrag-handle { + height: 44px; + width: 40px; +} +.touchevents a.tabledrag-handle .handle { + background-position: 40% 19px; /* LTR */ + height: 21px; +} +[dir="rtl"] .touch a.tabledrag-handle .handle { + background-position: right 40% top 19px; +} +.touchevents .draggable.drag a.tabledrag-handle .handle { + background-position: 50% -32px; +} +.tabledrag-toggle-weight-wrapper { + text-align: right; /* LTR */ +} +[dir="rtl"] .tabledrag-toggle-weight-wrapper { + text-align: left; +} +.indentation { + float: left; /* LTR */ + height: 1.7em; + margin: -0.4em 0.2em -0.4em -0.4em; /* LTR */ + padding: 0.42em 0 0.42em 0.6em; /* LTR */ + width: 20px; +} +[dir="rtl"] .indentation { + float: right; + margin: -0.4em -0.4em -0.4em 0.2em; + padding: 0.42em 0.6em 0.42em 0; +} diff --git a/core/themes/stable/css/system/components/tablesort.module.css b/core/themes/stable/css/system/components/tablesort.module.css new file mode 100644 index 0000000000000000000000000000000000000000..d3d34e69368409fbe988f71b685a37fcd090e540 --- /dev/null +++ b/core/themes/stable/css/system/components/tablesort.module.css @@ -0,0 +1,19 @@ +/** + * @file + * Table sort indicator. + * + * @see tablesort-indicator.html.twig + */ + +.tablesort { + width: 16px; + height: 16px; + display: inline-block; + background-size: 100%; +} +.tablesort--asc { + background-image: url(../../../images/core/icons/787878/twistie-down.svg); +} +.tablesort--desc { + background-image: url(../../../images/core/icons/787878/twistie-up.svg); +} diff --git a/core/themes/stable/css/system/components/tree-child.module.css b/core/themes/stable/css/system/components/tree-child.module.css new file mode 100644 index 0000000000000000000000000000000000000000..a09b389660916ffcea5cab3d7d9b552616cd2c2d --- /dev/null +++ b/core/themes/stable/css/system/components/tree-child.module.css @@ -0,0 +1,18 @@ +/** + * @file + * Visual styles for a nested tree child. + */ + +div.tree-child { + background: url(../../../images/core/tree.png) no-repeat 11px center; /* LTR */ +} +div.tree-child-last { + background: url(../../../images/core/tree-bottom.png) no-repeat 11px center; /* LTR */ +} +[dir="rtl"] div.tree-child, +[dir="rtl"] div.tree-child-last { + background-position: -65px center; +} +div.tree-child-horizontal { + background: url(../../../images/core/tree.png) no-repeat -11px center; +} diff --git a/core/themes/stable/css/system/system.admin.css b/core/themes/stable/css/system/system.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..c8e20cf78cf0387ec3671b501ebff604fe4d3cb8 --- /dev/null +++ b/core/themes/stable/css/system/system.admin.css @@ -0,0 +1,389 @@ +/** + * @file + * Styles for administration pages. + */ + +/** + * Reusable layout styles. + */ +.layout-container { + margin: 0 1.5em; +} +.layout-container:after { + content: ""; + display: table; + clear: both; +} + +@media screen and (min-width: 38em) { + .layout-container { + margin: 0 2.5em; + } + .layout-column { + float: left; /* LTR */ + box-sizing: border-box; + } + [dir="rtl"] .layout-column { + float: right; + } + .layout-column + .layout-column { + padding-left: 10px; /* LTR */ + } + [dir="rtl"] .layout-column + .layout-column { + padding-right: 10px; + padding-left: 0; + } + .layout-column--half { + width: 50%; + } + .layout-column--quarter { + width: 25%; + } + .layout-column--three-quarter { + width: 75%; + } +} + +/** + * Panel. + * Used to visually group items together. + */ +.panel { + padding: 5px 5px 15px; +} +.panel__description { + margin: 0 0 3px; + padding: 2px 0 3px 0; +} + +/** + * System compact link: to toggle the display of description text. + */ +.compact-link { + margin: 0 0 0.5em 0; +} + +/** + * Quick inline admin links. + */ +small .admin-link:before { + content: ' ['; +} +small .admin-link:after { + content: ']'; +} + +/** + * Modules page. + */ +.system-modules thead > tr { + border: 0; +} +.system-modules div.incompatible { + font-weight: bold; +} +.system-modules td.checkbox { + min-width: 25px; + width: 4%; +} +.system-modules td.module { + width: 25%; +} +.system-modules td { + vertical-align: top; +} +.system-modules label, +.system-modules-uninstall label { + color: #1d1d1d; + font-size: 1.15em; +} +.system-modules details { + color: #5c5c5b; + line-height: 20px; + overflow: hidden; /* truncates descriptions if too long */ + text-overflow: ellipsis; + white-space: nowrap; +} +.system-modules details[open] { + height: auto; + overflow: visible; + white-space: normal; +} +.system-modules details[open] summary .text { + -webkit-hyphens: auto; + -moz-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; + text-transform: none; +} +.system-modules td details a { + color: #5C5C5B; + border: 0px; +} +.system-modules td details { + border: 0; + margin: 0; + height: 20px; +} +.system-modules td details summary { + padding: 0; + text-transform: none; + font-weight: normal; + cursor: default; +} +.system-modules td { + padding-left: 0; /* LTR */ +} +[dir="rtl"] .system-modules td { + padding-left: 12px; + padding-right: 0; +} + +@media screen and (max-width: 40em) { + .system-modules td.name { + width: 20%; + } + .system-modules td.description { + width: 40%; + } +} +.system-modules .requirements { + padding: 5px 0; + max-width: 490px; +} +.system-modules .links { + overflow: hidden; /* prevents collapse */ +} +.system-modules .checkbox { + margin: 0 5px; +} +.system-modules .checkbox .form-item { + margin-bottom: 0; +} +.admin-requirements, +.admin-required { + font-size: 0.9em; + color: #666; +} +.admin-enabled { + color: #080; +} +.admin-missing { + color: #f00; +} +.module-link { + display: block; + padding: 2px 20px; + white-space: nowrap; + margin-top: 2px; + float: left; /* LTR */ +} +[dir="rtl"] .module-link { + float: right; +} +.module-link-help { + background: url(../../images/core/icons/787878/questionmark-disc.svg) 0 50% no-repeat; /* LTR */ +} +[dir="rtl"] .module-link-help { + background-position: top 50% right 0; +} +.module-link-permissions { + background: url(../../images/core/icons/787878/key.svg) 0 50% no-repeat; /* LTR */ +} +[dir="rtl"] .module-link-permissions { + background-position: top 50% right 0; +} +.module-link-configure { + background: url(../../images/core/icons/787878/cog.svg) 0 50% no-repeat; /* LTR */ +} +[dir="rtl"] .module-link-configure { + background-position: top 50% right 0; +} + +/* Status report. */ +.system-status-report__status-title { + position: relative; + vertical-align: top; + width: 25%; + padding: 10px 6px 10px 40px; /* LTR */ + box-sizing: border-box; + font-weight: normal; +} +[dir="rtl"] .system-status-report__status-title { + padding: 10px 40px 10px 6px; +} +.system-status-report__status-icon:before { + content: ""; + background-repeat: no-repeat; + height: 16px; + width: 16px; + display: block; + position: absolute; + left: 12px; /* LTR */ + top: 12px; +} +[dir="rtl"] .system-status-report__status-icon:before { + left: auto; + right: 12px; +} +.system-status-report__status-icon--error:before { + background-image: url(../../images/core/icons/e32700/error.svg); +} +.system-status-report__status-icon--warning:before { + background-image: url(../../images/core/icons/e29700/warning.svg); +} + +/** + * Appearance page. + */ +.theme-info__header { + margin-bottom: 0; + font-weight: normal; +} +.theme-default .theme-info__header { + font-weight: bold; +} +.theme-info__description { + margin-top: 0; +} +.system-themes-list { + margin-bottom: 20px; +} +.system-themes-list-uninstalled { + border-top: 1px solid #cdcdcd; + padding-top: 20px; +} +.system-themes-list__header { + margin: 0; +} + +.theme-selector { + padding-top: 20px; +} +.theme-selector .screenshot, +.theme-selector .no-screenshot { + border: 1px solid #e0e0d8; + padding: 2px; + vertical-align: bottom; + max-width: 100%; + height: auto; + text-align: center; +} +.theme-default .screenshot { + border: 1px solid #aaa; +} +.system-themes-list-uninstalled .screenshot, +.system-themes-list-uninstalled .no-screenshot { + max-width: 194px; + height: auto; +} + +/** + * Theme display without vertical toolbar. + */ +@media screen and (min-width: 45em) { + body:not(.toolbar-vertical) .system-themes-list-installed .screenshot, + body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot { + float: left; /* LTR */ + margin: 0 20px 0 0; /* LTR */ + width: 294px; + } + [dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .screenshot, + [dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-installed .no-screenshot { + float: right; + margin: 0 0 0 20px; + } + body:not(.toolbar-vertical) .system-themes-list-installed .system-themes-list__header { + margin-top: 0; + } + body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector { + box-sizing: border-box; + width: 31.25%; + float: left; /* LTR */ + padding: 20px 20px 20px 0; /* LTR */ + } + [dir="rtl"] body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-selector { + float: right; + padding: 20px 0 20px 20px; + } + body:not(.toolbar-vertical) .system-themes-list-uninstalled .theme-info { + min-height: 170px; + } +} + +/** + * Theme display with vertical toolbar. + */ +@media screen and (min-width: 60em) { + .toolbar-vertical .system-themes-list-installed .screenshot, + .toolbar-vertical .system-themes-list-installed .no-screenshot { + float: left; /* LTR */ + margin: 0 20px 0 0; /* LTR */ + width: 294px; + } + [dir="rtl"] .toolbar-vertical .system-themes-list-installed .screenshot, + [dir="rtl"] .toolbar-vertical .system-themes-list-installed .no-screenshot { + float: right; + margin: 0 0 0 20px; + } + .toolbar-vertical .system-themes-list-installed .theme-info__header { + margin-top: 0; + } + .toolbar-vertical .system-themes-list-uninstalled .theme-selector { + box-sizing: border-box; + width: 31.25%; + float: left; /* LTR */ + padding: 20px 20px 20px 0; /* LTR */ + } + [dir="rtl"] .toolbar-vertical .system-themes-list-uninstalled .theme-selector { + float: right; + padding: 20px 0 20px 20px; + } + .toolbar-vertical .system-themes-list-uninstalled .theme-info { + min-height: 170px; + } +} +.system-themes-list-installed .theme-info { + max-width: 940px; +} + +.theme-selector .incompatible { + margin-top: 10px; + font-weight: bold; +} +.theme-selector .operations { + margin: 10px 0 0 0; + padding: 0; +} +.theme-selector .operations li { + float: left; /* LTR */ + margin: 0; + padding: 0 0.7em; + list-style-type: none; + border-right: 1px solid #cdcdcd; /* LTR */ +} +[dir="rtl"] .theme-selector .operations li { + float: right; + border-left: 1px solid #cdcdcd; + border-right: none; +} +.theme-selector .operations li:last-child { + padding: 0 0 0 0.7em; /* LTR */ + border-right: none; /* LTR */ +} +[dir="rtl"] .theme-selector .operations li:last-child { + padding: 0 0.7em 0 0; + border-left: none; +} +.theme-selector .operations li:first-child { + padding: 0 0.7em 0 0; /* LTR */ +} +[dir="rtl"] .theme-selector .operations li:first-child { + padding: 0 0 0 0.7em; +} +.system-themes-admin-form { + clear: left; /* LTR */ +} +[dir="rtl"] .system-themes-admin-form { + clear: right; +} diff --git a/core/themes/stable/css/system/system.diff.css b/core/themes/stable/css/system/system.diff.css new file mode 100644 index 0000000000000000000000000000000000000000..e57e6ebe0e7a7ede6b63e8b6e111e0bcaf48b940 --- /dev/null +++ b/core/themes/stable/css/system/system.diff.css @@ -0,0 +1,42 @@ +/** + * Traditional split diff theming + */ +table.diff { + border-spacing: 4px; + margin-bottom: 20px; + table-layout: fixed; + width: 100%; +} +table.diff .diff-context { + background-color: #fafafa; +} +table.diff .diff-deletedline { + background-color: #ffa; + width: 50%; +} +table.diff .diff-addedline { + background-color: #afa; + width: 50%; +} +table.diff .diffchange { + color: #f00; + font-weight: bold; +} +table.diff .diff-marker { + width: 1.4em; +} +table.diff th { + padding-right: inherit; /* LTR */ +} +[dir="rtl"] table.diff th { + padding-right: 0; + padding-left: inherit; +} +table.diff td div { + overflow: auto; + padding: 0.1ex 0.5em; + word-wrap: break-word; +} +table.diff td { + padding: 0.1ex 0.4em; +} diff --git a/core/themes/stable/css/system/system.maintenance.css b/core/themes/stable/css/system/system.maintenance.css new file mode 100644 index 0000000000000000000000000000000000000000..8b142cc05069dce0a7972f7bcb3e2debb4b43938 --- /dev/null +++ b/core/themes/stable/css/system/system.maintenance.css @@ -0,0 +1,56 @@ +/** + * Update styles + */ +.update-results { + margin-top: 3em; + padding: 0.25em; + border: 1px solid #ccc; + background: #eee; + font-size: smaller; +} +.update-results h2 { + margin-top: 0.25em; +} +.update-results h4 { + margin-bottom: 0.25em; +} +.update-results .none { + color: #888; + font-style: italic; +} +.update-results .failure strong { + color: #b63300; +} + +/** + * Authorize.php styles + */ +#edit-submit-connection { + clear: both; +} +#edit-submit-process, +.filetransfer { + display: none; + clear: both; +} +.js #edit-submit-connection { + display: none; +} +.js #edit-submit-process { + display: block; +} + +#edit-connection-settings-change-connection-type { + margin: 2.6em 0.5em 0 1em; /* LTR */ +} +[dir="rtl"] #edit-connection-settings-change-connection-type { + margin-left: 0.5em; + margin-right: 1em; +} + +/** + * Theme maintenance styles + */ +.authorize-results__failure { + font-weight: bold; +} diff --git a/core/themes/stable/css/taxonomy/taxonomy.theme.css b/core/themes/stable/css/taxonomy/taxonomy.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..543666a1e9052713a457ae1317fa51e1cf6fc892 --- /dev/null +++ b/core/themes/stable/css/taxonomy/taxonomy.theme.css @@ -0,0 +1,10 @@ + +.taxonomy-term-preview { + background-color: #eee; +} +.taxonomy-term-divider-top { + border-bottom: none; +} +.taxonomy-term-divider-bottom { + border-top: 1px dotted #ccc; +} diff --git a/core/themes/stable/css/toolbar/toolbar.icons.theme.css b/core/themes/stable/css/toolbar/toolbar.icons.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..54942d514e69495917c545e5b2b14e7e81873e2e --- /dev/null +++ b/core/themes/stable/css/toolbar/toolbar.icons.theme.css @@ -0,0 +1,300 @@ +/** + * @file + * Styling for toolbar module icons. + */ + +.toolbar .toolbar-icon { + padding-left: 2.75em; /* LTR */ + position: relative; +} +[dir="rtl"] .toolbar .toolbar-icon { + padding-left: 1.3333em; + padding-right: 2.75em; +} +.toolbar .toolbar-icon:before { + background-attachment: scroll; + background-color: transparent; + background-position: center center; + background-repeat: no-repeat; + background-size: 100% auto; + content: ''; + display: block; + height: 100%; + left: 0.6667em; /* LTR */ + position: absolute; + top: 0; + width: 20px; +} +[dir="rtl"] .toolbar .toolbar-icon:before { + left: auto; + right: 0.6667em; +} +.toolbar button.toolbar-icon { + background-color: transparent; + border: 0; + font-size: 1em; +} +.toolbar .toolbar-menu ul .toolbar-icon { + padding-left: 1.3333em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-menu ul .toolbar-icon { + padding-left: 0; + padding-right: 1.3333em; +} +.toolbar .toolbar-menu ul a.toolbar-icon:before { + display: none; +} +.toolbar .toolbar-tray-vertical .toolbar-menu ul a { + padding-left: 2.75em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu ul a { + padding-left: 0; + padding-right: 2.75em; +} +.toolbar .toolbar-tray-vertical .toolbar-menu ul ul a { + padding-left: 3.75em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu ul ul a { + padding-left: 0; + padding-right: 3.75em; +} + +.toolbar .toolbar-tray-vertical .toolbar-menu a { + padding-left: 2.75em; /* LTR */ + padding-right: 4em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu a { + padding-left: 4em; + padding-right: 2.75em; +} + +/** + * Top level icons. + */ +.toolbar-bar .toolbar-icon-menu:before { + background-image: url(../../images/core/icons/bebebe/hamburger.svg); +} +.toolbar-bar .toolbar-icon-menu:active:before, +.toolbar-bar .toolbar-icon-menu.is-active:before { + background-image: url(../../images/core/icons/ffffff/hamburger.svg); +} +.toolbar-bar .toolbar-icon-help:before { + background-image: url(../../images/core/icons/bebebe/questionmark-disc.svg); +} +.toolbar-bar .toolbar-icon-help:active:before, +.toolbar-bar .toolbar-icon-help.is-active:before { + background-image: url(../../images/core/icons/ffffff/questionmark-disc.svg); +} + +/** + * Main menu icons. + */ +.toolbar-icon-system-admin-content:before { + background-image: url(../../images/core/icons/787878/file.svg); +} +.toolbar-icon-system-admin-content:active:before, +.toolbar-icon-system-admin-content.is-active:before { + background-image: url(../../images/core/icons/000000/file.svg); +} +.toolbar-icon-system-admin-structure:before { + background-image: url(../../images/core/icons/787878/orgchart.svg); +} +.toolbar-icon-system-admin-structure:active:before, +.toolbar-icon-system-admin-structure.is-active:before { + background-image: url(../../images/core/icons/000000/orgchart.svg); +} +.toolbar-icon-system-themes-page:before { + background-image: url(../../images/core/icons/787878/paintbrush.svg); +} +.toolbar-icon-system-themes-page:active:before, +.toolbar-icon-system-themes-page.is-active:before { + background-image: url(../../images/core/icons/000000/paintbrush.svg); +} +.toolbar-icon-entity-user-collection:before { + background-image: url(../../images/core/icons/787878/people.svg); +} +.toolbar-icon-entity-user-collection:active:before, +.toolbar-icon-entity-user-collection.is-active:before { + background-image: url(../../images/core/icons/000000/people.svg); +} +.toolbar-icon-system-modules-list:before { + background-image: url(../../images/core/icons/787878/puzzlepiece.svg); +} +.toolbar-icon-system-modules-list:active:before, +.toolbar-icon-system-modules-list.is-active:before { + background-image: url(../../images/core/icons/000000/puzzlepiece.svg); +} +.toolbar-icon-system-admin-config:before { + background-image: url(../../images/core/icons/787878/wrench.svg); +} +.toolbar-icon-system-admin-config:active:before, +.toolbar-icon-system-admin-config.is-active:before { + background-image: url(../../images/core/icons/000000/wrench.svg); +} +.toolbar-icon-system-admin-reports:before { + background-image: url(../../images/core/icons/787878/barchart.svg); +} +.toolbar-icon-system-admin-reports:active:before, +.toolbar-icon-system-admin-reports.is-active:before { + background-image: url(../../images/core/icons/000000/barchart.svg); +} +.toolbar-icon-help-main:before { + background-image: url(../../images/core/icons/787878/questionmark-disc.svg); +} +.toolbar-icon-help-main:active:before, +.toolbar-icon-help-main.is-active:before { + background-image: url(../../images/core/icons/000000/questionmark-disc.svg); +} + +@media only screen and (min-width: 16.5em) { + .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon { + margin-left: 0; + margin-right: 0; + padding-left: 0; + padding-right: 0; + text-indent: -9999px; + width: 4em; + } + .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before { + background-size: 42% auto; + left: 0; /* LTR */ + width: 100%; + } + .no-svg .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before { + background-size: auto auto; + } + [dir="rtl"] .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before { + left: auto; + right: 0; + } +} + +@media only screen and (min-width: 36em) { + .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon { + background-position: left center; /* LTR */ + padding-left: 2.75em; /* LTR */ + padding-right: 1.3333em; /* LTR */ + text-indent: 0; + width: auto; + } + [dir="rtl"] .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon { + background-position: right center; + padding-left: 1.3333em; + padding-right: 2.75em; + } + .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before { + background-size: 100% auto; + left: 0.6667em; /* LTR */ + width: 20px; + } + .no-svg .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before { + background-size: auto auto; + } + [dir="rtl"] .toolbar .toolbar-bar .toolbar-tab > .toolbar-icon:before { + left: 0; + right: 0.6667em; + } +} + +/** + * Accessibility/focus + */ +.toolbar-tab a:focus { + outline: none; + text-decoration: underline; +} +.toolbar-lining button:focus { + outline: none; +} +.toolbar-tray-horizontal a:focus, +.toolbar-box a:focus { + outline: none; + background-color: #f5f5f5; +} +.toolbar-box a:hover:focus { + text-decoration: underline; +} +.toolbar .toolbar-icon.toolbar-handle:focus { + outline: none; + background-color: #f5f5f5; +} + + +/** + * Handle. + */ +.toolbar .toolbar-icon.toolbar-handle { + width: 4em; + text-indent: -9999px; +} +.toolbar .toolbar-icon.toolbar-handle:before { + left: 1.6667em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle:before { + left: auto; + right: 1.6667em; +} +.toolbar .toolbar-icon.toolbar-handle:before { + background-image: url(../../images/core/icons/5181c6/chevron-disc-down.svg); +} +.toolbar .toolbar-icon.toolbar-handle.open:before { + background-image: url(../../images/core/icons/787878/chevron-disc-up.svg); +} +.toolbar .toolbar-menu .toolbar-menu .toolbar-icon.toolbar-handle:before { + background-image: url(../../images/core/icons/5181c6/twistie-down.svg); + background-size: 75%; +} +.toolbar .toolbar-menu .toolbar-menu .toolbar-icon.toolbar-handle.open:before { + background-image: url(../../images/core/icons/787878/twistie-up.svg); + background-size: 75%; +} +.toolbar .toolbar-icon-escape-admin:before { + background-image: url(../../images/core/icons/bebebe/chevron-disc-left.svg); +} +[dir="rtl"] .toolbar .toolbar-icon-escape-admin:before { + background-image: url(../../images/core/icons/bebebe/chevron-disc-right.svg); +} +/** + * Orientation toggle. + */ +.toolbar .toolbar-toggle-orientation button { + height: 39px; + padding: 0; + text-indent: -999em; + width: 39px; +} +.toolbar .toolbar-toggle-orientation button:before { + left: 0; + right: 0; + margin: 0 auto; +} +[dir="rtl"] .toolbar .toolbar-toggle-orientation .toolbar-icon { + padding: 0; +} +/** + * In order to support a hover effect on the SVG images, while also supporting + * RTL text direction and no SVG support, this little icon requires some very + * specific targeting, setting and unsetting. + */ +.toolbar .toolbar-toggle-orientation [value="vertical"]:before { + background-image: url(../../images/core/icons/bebebe/push-left.svg); /* LTR */ +} +.toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before, +.toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before + { + background-image: url(../../images/core/icons/787878/push-left.svg); /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:before { + background-image: url(../../images/core/icons/bebebe/push-right.svg); +} +[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:hover:before, +[dir="rtl"] .toolbar .toolbar-toggle-orientation [value="vertical"]:focus:before { + background-image: url(../../images/core/icons/787878/push-right.svg); +} +.toolbar .toolbar-toggle-orientation [value="horizontal"]:before { + background-image: url(../../images/core/icons/bebebe/push-up.svg); +} +.toolbar .toolbar-toggle-orientation [value="horizontal"]:hover:before, +.toolbar .toolbar-toggle-orientation [value="horizontal"]:focus:before { + background-image: url(../../images/core/icons/787878/push-up.svg); +} diff --git a/core/themes/stable/css/toolbar/toolbar.menu.css b/core/themes/stable/css/toolbar/toolbar.menu.css new file mode 100644 index 0000000000000000000000000000000000000000..099fb08496ec5f02f506f7d5056afe85c25882bf --- /dev/null +++ b/core/themes/stable/css/toolbar/toolbar.menu.css @@ -0,0 +1,103 @@ +/** + * @file toolbar.menu.css + */ +.toolbar .toolbar-menu, +[dir="rtl"] .toolbar .toolbar-menu { + list-style: none; + margin: 0; + padding: 0; +} +.toolbar .toolbar-box { + display: block; + line-height: 1em; /* this prevents the value "normal" from being returned as the line-height */ + position: relative; + width: auto; +} +.toolbar .toolbar-tray-horizontal .toolbar-menu .toolbar-handle, +.toolbar .toolbar-tray-horizontal .toolbar-menu ul, +.toolbar .toolbar-tray-vertical .toolbar-menu ul { + display: none; +} +.toolbar .toolbar-tray-vertical li.open > ul { + display: block; /* Show the sub-menus */ +} +.toolbar .toolbar-tray-vertical .toolbar-handle + a { + margin-right: 3em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-handle + a { + margin-left: 3em; + margin-right: 0; +} +.toolbar .toolbar-tray .menu-item--active-trail > .toolbar-box a, +.toolbar .toolbar-tray a.is-active { + color: #000; + font-weight: bold; +} + +/* ----- Toolbar menu tray for viewports less than 320px ------ */ +@media screen and (max-width: 319px) { + .toolbar .toolbar-tray-vertical.is-active { + width: 100%; + } +} + +/** + * Items. + */ +.toolbar .level-2 > ul { + background-color: #fafafa; + border-bottom-color: #cccccc; + border-top-color: #e5e5e5; +} +.toolbar .level-3 > ul { + background-color: #f5f5f5; + border-bottom-color: #c5c5c5; + border-top-color: #dddddd; +} +.toolbar .level-4 > ul { + background-color: #eeeeee; + border-bottom-color: #bbbbbb; + border-top-color: #d5d5d5; +} +.toolbar .level-5 > ul { + background-color: #e5e5e5; + border-bottom-color: #b5b5b5; + border-top-color: #cccccc; +} +.toolbar .level-6 > ul { + background-color: #eeeeee; + border-bottom-color: #aaaaaa; + border-top-color: #c5c5c5; +} +.toolbar .level-7 > ul { + background-color: #fafafa; + border-bottom-color: #b5b5b5; + border-top-color: #cccccc; +} +.toolbar .level-8 > ul { + background-color: #dddddd; + border-bottom-color: #cccccc; + border-top-color: #dddddd; +} + +/** + * Handle. + */ +.toolbar .toolbar-handle:hover { + cursor: pointer; +} +.toolbar .toolbar-icon.toolbar-handle { + bottom: 0; + display: block; + height: 100%; + padding: 0; + position: absolute; + right: 0; /* LTR */ + top: 0; + z-index: 1; +} +[dir="rtl"] .toolbar .toolbar-icon.toolbar-handle { + left: 0; + padding: 0; + right: auto; +} diff --git a/core/themes/stable/css/toolbar/toolbar.module.css b/core/themes/stable/css/toolbar/toolbar.module.css new file mode 100644 index 0000000000000000000000000000000000000000..69eb7c22fcf7551f366997d2bf9ee9c803f0727f --- /dev/null +++ b/core/themes/stable/css/toolbar/toolbar.module.css @@ -0,0 +1,260 @@ +/** + * @file toolbar.module.css + * + * + * Aggressive resets so we can achieve a consistent look in hostile CSS + * environments. + */ +#toolbar-administration, +#toolbar-administration * { + box-sizing: border-box; +} +#toolbar-administration { + font-size: small; + line-height: 1; + margin: 0; + padding: 0; + vertical-align: baseline; +} +@media print { + #toolbar-administration { + display: none; + } +} + +/** + * Very specific overrides for Drupal system CSS. + */ +.toolbar li, +.toolbar .item-list, +.toolbar .item-list li, +.toolbar .menu-item, +.toolbar .menu-item--expanded { + list-style-type: none; + list-style-image: none; +} +.toolbar .menu-item { + padding-top: 0; +} +.toolbar .toolbar-bar .toolbar-tab, +.toolbar .menu-item { + display: block; +} +.toolbar .toolbar-bar .toolbar-tab.hidden { + display: none; +} +.toolbar a { + display: block; + line-height: 1; +} + +/** + * Administration menu. + */ +.toolbar .toolbar-bar, +.toolbar .toolbar-tray { + position: relative; + z-index: 1250; +} +/* Position the admin toolbar absolutely when the configured standard breakpoint + * is active. The toolbar container, that contains the bar and the trays, is + * position absolutely so that it scrolls with the page. Otherwise, on smaller + * screens, the components of the admin toolbar are positioned statically. */ +body.toolbar-fixed .toolbar-oriented, +.toolbar-oriented .toolbar-bar, +.toolbar-oriented .toolbar-tray { + left: 0; + position: absolute; + right: 0; + top: 0; +} +/* Layer the bar just above the trays and above contextual link triggers. */ +.toolbar-oriented .toolbar-bar { + z-index: 502; +} +/* Position the admin toolbar fixed when the configured standard breakpoint is + * active. */ +body.toolbar-fixed .toolbar-oriented .toolbar-bar { + position: fixed; +} +/* When the configured narrow breakpoint is active, the toolbar is sized to wrap + * around the trays in order to provide a context for scrolling tray content + * that is taller than the viewport. */ +body.toolbar-tray-open.toolbar-fixed.toolbar-vertical .toolbar-oriented { + bottom: 0; + width: 240px; + width: 15rem; +} +/* Present the admin toolbar tabs horizontally as a default on user agents that + * do not understand media queries or on user agents where JavaScript is + * disabled. */ +.toolbar .toolbar-bar .toolbar-tab, +.toolbar .toolbar-tray-horizontal li { + float: left; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-bar .toolbar-tab, +[dir="rtl"] .toolbar .toolbar-tray-horizontal li { + float: right; +} +/* Present the admin toolbar tabs vertically by default on user agents that + * that understand media queries. This will be the small screen default. */ +@media only screen { + .toolbar .toolbar-bar .toolbar-tab, + .toolbar .toolbar-tray-horizontal li { + float: none; /* LTR */ + } + [dir="rtl"] .toolbar .toolbar-bar .toolbar-tab, + [dir="rtl"] .toolbar .toolbar-tray-horizontal li { + float: none; + } +} +/* This min-width media query is meant to provide basic horizontal layout to + * the main menu tabs when JavaScript is disabled on user agents that understand + * media queries. */ +@media (min-width:16.5em) { + .toolbar .toolbar-bar .toolbar-tab, + .toolbar .toolbar-tray-horizontal li { + float: left; /* LTR */ + } + [dir="rtl"] .toolbar .toolbar-bar .toolbar-tab, + [dir="rtl"] .toolbar .toolbar-tray-horizontal li { + float: right; + } +} +/* Present the admin toolbar tabs horizontally when the configured narrow + * breakpoint is active. */ +.toolbar-oriented .toolbar-bar .toolbar-tab, +.toolbar-oriented .toolbar-tray-horizontal li { + float: left; /* LTR */ +} +[dir="rtl"] .toolbar-oriented .toolbar-bar .toolbar-tab, +[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal li { + float: right; +} + +/** + * Toolbar tray. + */ +.toolbar .toolbar-tray { + display: none; + z-index: 501; +} +.toolbar-oriented .toolbar-tray-vertical { + left: -100%; /* LTR */ + position: absolute; + width: 240px; + width: 15rem; +} +[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical { + left: auto; + right: -100%; +} +.toolbar .toolbar-tray-vertical > .toolbar-lining { + min-height: 100%; +} +.toolbar .toolbar-tray-vertical > .toolbar-lining:before { + width: 100%; +} +.toolbar-oriented .toolbar-tray-vertical > .toolbar-lining:before { + bottom: 0; + content: ''; + display: block; + left: 0; /* LTR */ + position: fixed; + top: 0; + width: 240px; + width: 14rem; + z-index: -1; +} +[dir="rtl"] .toolbar .toolbar-tray-vertical > .toolbar-lining:before { + left: auto; + right: 0; +} +/* Layer the links just above the toolbar-tray. */ +.toolbar .toolbar-bar .toolbar-tab > .toolbar-icon{ + position: relative; + z-index: 502; +} +/* Hide secondary menus when the tray is horizontal. */ +.toolbar-oriented .toolbar-tray-horizontal .menu-item ul { + display: none; +} +/* When the configured standard breakpoint is active and the tray is in a + * horizontal position, the tray is fixed to the top of the viewport and does + * not scroll with the page contents. */ +body.toolbar-fixed .toolbar .toolbar-tray-horizontal { + position: fixed; +} +/* When the configured standard breakpoint is active and the tray is in a + * vertical position, the tray does not scroll with the page. The contents of + * the tray scroll within the confines of the viewport. */ +.toolbar .toolbar-tray-vertical.is-active, +body.toolbar-fixed .toolbar .toolbar-tray-vertical { + height: 100%; + overflow-x: hidden; + overflow-y: auto; + position: fixed; +} +.toolbar .toolbar-tray.is-active { + display: block; +} +/* Bring the tray into the viewport. By default it is just off-screen. */ +.toolbar-oriented .toolbar-tray-vertical.is-active { + left: 0; /* LTR */ +} +[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical.is-active { + left: auto; + right: 0; +} +/* When the configured standard breakpoint is active, the tray appears to push + * the page content away from the edge of the viewport. */ +body.toolbar-tray-open.toolbar-vertical.toolbar-fixed { + margin-left: 240px; /* LTR */ + margin-left: 15rem; /* LTR */ +} +@media print { + body.toolbar-tray-open.toolbar-vertical.toolbar-fixed { + margin-left: 0; + } +} +[dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed { + margin-left: auto; + margin-left: auto; + margin-right: 240px; + margin-right: 15rem; +} +@media print { + [dir="rtl"] body.toolbar-tray-open.toolbar-vertical.toolbar-fixed { + margin-right: 0; + } +} +/** + * ToolBar tray orientation toggle. + */ +/* Hide the orientation toggle when the configured narrow breakpoint is not + * active. */ +.toolbar .toolbar-tray .toolbar-toggle-orientation { + display: none; +} +/* Show the orientation toggle when the configured narrow breakpoint is + * active. */ +.toolbar-oriented .toolbar-tray .toolbar-toggle-orientation { + display: block; +} +.toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation { + bottom: 0; + position: absolute; + right: 0; /* LTR */ + top: auto; +} +[dir="rtl"] .toolbar-oriented .toolbar-tray-horizontal .toolbar-toggle-orientation { + left: 0; + right: auto; +} +.toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation { + float: right; /* LTR */ + width: 100%; +} +[dir="rtl"] .toolbar-oriented .toolbar-tray-vertical .toolbar-toggle-orientation { + float: left; +} diff --git a/core/themes/stable/css/toolbar/toolbar.theme.css b/core/themes/stable/css/toolbar/toolbar.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..981ee00a93becfbb57d864dacc2db5a554c1fa9f --- /dev/null +++ b/core/themes/stable/css/toolbar/toolbar.theme.css @@ -0,0 +1,168 @@ +/** + * @file toolbar.theme.css + */ +.toolbar { + font-family: "Source Sans Pro", "Lucida Grande", Verdana, sans-serif; + /* Set base font size to 13px based on root ems. */ + font-size: 0.8125rem; + -moz-tap-highlight-color: rgba(0,0,0,0); + -o-tap-highlight-color: rgba(0,0,0,0); + -webkit-tap-highlight-color: rgba(0,0,0,0); + tap-highlight-color: rgba(0,0,0,0); + -moz-touch-callout: none; + -o-touch-callout: none; + -webkit-touch-callout: none; + touch-callout: none; +} +.toolbar .toolbar-item { + cursor: pointer; + padding: 1em 1.3333em; + line-height: 1em; + text-decoration: none; +} +.toolbar .toolbar-item:hover, .toolbar .toolbar-item:focus { + text-decoration: underline; +} + +/** + * Toolbar bar. + */ +.toolbar .toolbar-bar { + background-color: #0f0f0f; + box-shadow: -1px 0 3px 1px rgba(0, 0, 0, 0.3333); /* LTR */ + color: #dddddd; +} +[dir="rtl"] .toolbar .toolbar-bar { + box-shadow: 1px 0 3px 1px rgba(0, 0, 0, 0.3333); +} +.toolbar .toolbar-bar .toolbar-item { + color: #ffffff; +} +.toolbar .toolbar-bar .toolbar-tab > .toolbar-item { + font-weight: bold; +} +.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:hover, +.toolbar .toolbar-bar .toolbar-tab > .toolbar-item:focus { + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.125) 20%, transparent 200%); + background-image: linear-gradient(rgba(255, 255, 255, 0.125) 20%, transparent 200%); +} +.toolbar .toolbar-bar .toolbar-tab > .toolbar-item.is-active { + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); + background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); +} + +/** + * Toolbar tray. + */ +.toolbar .toolbar-tray { + background-color: #ffffff; +} +.toolbar .toolbar-tray-horizontal > .toolbar-lining { + padding-right: 5em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-horizontal > .toolbar-lining { + padding-right: 0; + padding-left: 5em; +} +.toolbar .toolbar-tray-vertical { + background-color: #f5f5f5; + border-right: 1px solid #aaaaaa; /* LTR */ + box-shadow: -1px 0 5px 2px rgba(0, 0, 0, 0.3333); /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-vertical { + border-left: 1px solid #aaaaaa; + border-right: 0 none; + box-shadow: 1px 0 5px 2px rgba(0, 0, 0, 0.3333); +} +.toolbar .toolbar-tray-horizontal { + border-bottom: 1px solid #aaaaaa; + box-shadow: -2px 1px 3px 1px rgba(0, 0, 0, 0.3333); /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-horizontal { + box-shadow: 2px 1px 3px 1px rgba(0, 0, 0, 0.3333); +} +.toolbar .toolbar-tray-horizontal .toolbar-tray { + background-color: #f5f5f5; +} +.toolbar-tray a { + color: #565656; + cursor: pointer; + padding: 1em 1.3333em; + text-decoration: none; +} +.toolbar-tray a:hover, +.toolbar-tray a:active, +.toolbar-tray a:focus, +.toolbar-tray a.is-active + { + color: #000; + text-decoration: underline; +} +.toolbar .toolbar-menu { + background-color: #ffffff; +} +.toolbar .toolbar-tray-horizontal .menu-item + .menu-item { + border-left: 1px solid #dddddd; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item + .menu-item { + border-left: 0 none ; + border-right: 1px solid #dddddd; +} +.toolbar .toolbar-tray-horizontal .menu-item:last-child { + border-right: 1px solid #dddddd; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-horizontal .menu-item:last-child { + border-left: 1px solid #dddddd; +} +.toolbar .toolbar-tray-vertical .menu-item + .menu-item { + border-top: 1px solid #dddddd; +} +.toolbar .toolbar-tray-vertical .menu-item:last-child { + border-bottom: 1px solid #dddddd; +} +.toolbar .toolbar-tray-vertical .menu-item .menu-item { + border: 0 none; +} +.toolbar .toolbar-tray-vertical .toolbar-menu ul ul { + border-bottom: 1px solid #dddddd; + border-top: 1px solid #dddddd; +} +.toolbar .toolbar-tray-vertical .menu-item:last-child > ul { + border-bottom: 0; +} +.toolbar .toolbar-tray-vertical .toolbar-menu .toolbar-menu .toolbar-menu .toolbar-menu { + margin-left: 0.25em; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-vertical .toolbar-menu .toolbar-menu .toolbar-menu .toolbar-menu { + margin-left: 0; + margin-right: 0.25em; +} +.toolbar .toolbar-menu .toolbar-menu a { + color: #434343; +} + +/** + * Orientation toggle. + */ +.toolbar .toolbar-toggle-orientation { + background-color: #f5f5f5; + padding: 0; + height: 100%; +} +.toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation { + border-left: 1px solid #c9c9c9; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-tray-horizontal .toolbar-toggle-orientation { + border-left: 0 none; + border-right: 1px solid #c9c9c9; +} +.toolbar .toolbar-toggle-orientation > .toolbar-lining { + float: right; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-toggle-orientation > .toolbar-lining { + float: left; +} +.toolbar .toolbar-toggle-orientation button { + cursor: pointer; + display: inline-block; +} diff --git a/core/themes/stable/css/tour/tour.module.css b/core/themes/stable/css/tour/tour.module.css new file mode 100644 index 0000000000000000000000000000000000000000..18d8aa04cad4a759bd6ffe6e994c4f4b36c2c3fa --- /dev/null +++ b/core/themes/stable/css/tour/tour.module.css @@ -0,0 +1,142 @@ +/** + * @file + * Styling for tour module. + */ + +/* Tab appearance. */ +.toolbar .toolbar-bar .tour-toolbar-tab.toolbar-tab { + float: right; /* LTR */ +} +[dir="rtl"] .toolbar .toolbar-bar .tour-toolbar-tab.toolbar-tab { + float: left; +} + +/* Override placement of the tour progress indicator. */ +.tour-progress { + position: absolute; + bottom: 20px; + right: 20px; /* LTR */ +} +[dir="rtl"] .tour-progress { + right: auto; + left: 20px; +} + +/* Default styles for the container */ +.joyride-tip-guide { + position: absolute; + display: none; + background: #fff; + width: 300px; + z-index: 101; + top: 0; + left: 0; +} +@media only screen and (max-width: 767px) { + .joyride-tip-guide { + width: 85%; + left: 2.5%; + } +} + +.joyride-content-wrapper { + position: relative; + padding: 20px 50px 20px 20px; /* LTR */ +} +[dir="rtl"] .joyride-content-wrapper { + padding: 20px 20px 20px 50px; +} + +/* Add a little css triangle pip, older browser just miss out on the fanciness of it. */ +.joyride-tip-guide .joyride-nub { + display: block; + position: absolute; + left: 22px; + width: 0; + height: 0; +} + +.joyride-tip-guide .joyride-nub.top { + top: -28px; + bottom: auto; +} + +.joyride-tip-guide .joyride-nub.bottom { + bottom: -28px; +} + +.joyride-tip-guide .joyride-nub.right { + top: 22px; + bottom: auto; + left: auto; + right: -28px; +} + +.joyride-tip-guide .joyride-nub.left { + top: 22px; + left: -28px; + right: auto; + bottom: auto; +} + +.joyride-tip-guide .joyride-nub.top-right { + top: -28px; + bottom: auto; + left: auto; + right: 28px; +} + +.joyride-tip-guide .tour-tip-label { + margin-top: 0; +} + +.joyride-tip-guide p { + margin: 0 0 1.4em; +} + +.joyride-timer-indicator-wrap { + width: 50px; + height: 3px; + position: absolute; + right: 17px; + bottom: 16px; +} +.joyride-timer-indicator { + display: block; + width: 0; + height: inherit; +} + +.joyride-close-tip { + position: absolute; + line-height: 1em; + right: 20px; /* LTR */ + top: 20px; +} +[dir="rtl"] .joyride-close-tip { + left: 20px; + right: auto; +} + +.joyride-modal-bg { + position: fixed; + height: 100%; + width: 100%; + z-index: 100; + display: none; + top: 0; + left: 0; + cursor: pointer; +} + +.joyride-expose-wrapper { + position: absolute; + z-index: 102; +} + +.joyride-expose-cover { + position: absolute; + z-index: 10000; + top: 0; + left: 0; +} diff --git a/core/themes/stable/css/update/update.admin.theme.css b/core/themes/stable/css/update/update.admin.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..abf0a88243c826507e21dcfac21567a059c82cbf --- /dev/null +++ b/core/themes/stable/css/update/update.admin.theme.css @@ -0,0 +1,63 @@ +/** + * @file + * Styles used by the Update Manager module. + */ + +.project-update__title { + font-weight: bold; + font-size: 110%; +} +.project-update__status { + float: right; /* LTR */ + font-size: 110%; +} +[dir="rtl"] .project-update__status { + float: left; +} +.project-update__status--not-supported { + float: left; /* LTR */ +} +[dir="rtl"] .project-update__status--not-supported { + float: right; +} +.project-update__status--security-error { + font-weight: bold; + color: #970f00; +} + +.project-update__status-icon { + padding-left: 0.5em; /* LTR */ +} +[dir="rtl"] .project-update__status-icon { + padding-left: 0; + padding-right: 0.5em; +} +.project-update__details { + padding: 1em 1em 0.25em 1em; +} + +.project-update__version { + padding: 1em 0; +} +.project-update__version-date { + white-space: nowrap; +} +.project-update__version-details { + padding-right: 0.5em; /* LTR */ +} +[dir="rtl"] .project-update__version-details { + padding-left: 0.5em; + direction: ltr; /* Version numbers should always be LTR. */ +} +.project-update__version-links { + text-align: right; /* LTR */ + padding-right: 1em; /* LTR */ + list-style-type: none; +} +[dir="rtl"] .project-update__version-links { + text-align: left; + padding-left: 1em; +} +.project-update__version--recommended-strong .project-update__version-title { + font-weight: bold; +} diff --git a/core/themes/stable/css/user/user.admin.css b/core/themes/stable/css/user/user.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..10358c20f901a7b4e64358a81b912cd869ca9ab2 --- /dev/null +++ b/core/themes/stable/css/user/user.admin.css @@ -0,0 +1,22 @@ +/** + * @file + * Admin styling for the User module. + */ + +/* Permissions page */ +.permissions .module { + font-weight: bold; +} +.permissions .permission { + padding-left: 1.5em; /* LTR */ +} +[dir="rtl"] .permissions .permission { + padding-left: 0; + padding-right: 1.5em; +} + +/* Account settings */ +.user-admin-settings .details-description { + font-size: 0.85em; + padding-bottom: .5em; +} diff --git a/core/themes/stable/css/user/user.icons.admin.css b/core/themes/stable/css/user/user.icons.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..f8546862bf793a18f05351b59410f63c67d747c2 --- /dev/null +++ b/core/themes/stable/css/user/user.icons.admin.css @@ -0,0 +1,15 @@ +/** + * @file + * Styling for the user module icons. + */ + +/** + * Toolbar tab icon. + */ +.toolbar-bar .toolbar-icon-user:before { + background-image: url(../../images/core/icons/bebebe/person.svg); +} +.toolbar-bar .toolbar-icon-user:active:before, +.toolbar-bar .toolbar-icon-user.is-active:before { + background-image: url(../../images/core/icons/ffffff/person.svg); +} diff --git a/core/themes/stable/css/user/user.module.css b/core/themes/stable/css/user/user.module.css new file mode 100644 index 0000000000000000000000000000000000000000..0b6afcfa32e9fd4ed87686792b4a66ad5cec21c0 --- /dev/null +++ b/core/themes/stable/css/user/user.module.css @@ -0,0 +1,21 @@ +/** + * @file + * Module styling for user module. + */ +.password-strength__title, +.password-strength__text { + display: inline; +} +.password-strength__meter { + height: 0.75em; + margin-top: 0.5em; + background-color: lightgray; +} +.password-strength__indicator { + height: 100%; + width: 0; + background-color: gray; +} +.password-confirm-match { + visibility: hidden; +} diff --git a/core/themes/stable/css/views/views.module.css b/core/themes/stable/css/views/views.module.css new file mode 100644 index 0000000000000000000000000000000000000000..da7a3425a4428efe56d1e9772515b1a1e2a85d99 --- /dev/null +++ b/core/themes/stable/css/views/views.module.css @@ -0,0 +1,19 @@ +/* table style column align */ +.views-align-left { + text-align: left; +} +.views-align-right { + text-align: right; +} +.views-align-center { + text-align: center; +} +/* Grid style column align. */ +.views-view-grid .views-col { + float: left; +} +.views-view-grid .views-row { + clear: both; + float: left; + width: 100%; +} diff --git a/core/themes/stable/css/views_ui/views_ui.admin.css b/core/themes/stable/css/views_ui/views_ui.admin.css new file mode 100644 index 0000000000000000000000000000000000000000..e932af13704492bd420e14229a0783097b825979 --- /dev/null +++ b/core/themes/stable/css/views_ui/views_ui.admin.css @@ -0,0 +1,208 @@ +/** + * @file + * The .admin.css file is intended to only contain positioning and size + * declarations. For example: display, position, float, clear, and overflow. + */ + +.views-admin ul, +.views-admin menu, +.views-admin dir { + padding: 0; +} +.views-admin pre { + margin-bottom: 0; + margin-top: 0; + white-space: pre-wrap; +} +.views-left-25 { + float: left; /* LTR */ + width: 25%; +} +[dir="rtl"] .views-left-25 { + float: right; +} +.views-left-30 { + float: left; /* LTR */ + width: 30%; +} +[dir="rtl"] .views-left-30 { + float: right; +} +.views-left-40 { + float: left; /* LTR */ + width: 40%; +} +[dir="rtl"] .views-left-40 { + float: right; +} +.views-left-50 { + float: left; /* LTR */ + width: 50%; +} +[dir="rtl"] .views-left-50 { + float: right; +} +.views-left-75 { + float: left; /* LTR */ + width: 75%; +} +[dir="rtl"] .views-left-75 { + float: right; +} +.views-right-50 { + float: right; /* LTR */ + width: 50%; +} +[dir="rtl"] .views-right-50 { + float: left; +} +.views-right-60 { + float: right; /* LTR */ + width: 60%; +} +[dir="rtl"] .views-right-60 { + float: left; +} +.views-right-70 { + float: right; /* LTR */ + width: 70%; +} +[dir="rtl"] .views-right-70 { + float: left; +} +.views-group-box .form-item { + margin-left: 3px; + margin-right: 3px; +} + +/* + * The attachment details section, its tabs for each section and the buttons + * to add a new section + */ +.views-displays { + clear: both; +} + +/* The tabs that switch between sections */ +.views-displays .tabs { + border-bottom: 0 none; + margin: 0; + overflow: visible; + padding: 0; +} +.views-displays .tabs > li { + border-right: 0 none; /* LTR */ + float: left; /* LTR */ + padding: 0; +} +[dir="rtl"] .views-displays .tabs > li { + float: right; + border-left: 0 none; + border-right: 1px solid #bfbfbf; +} +.views-displays .tabs .open > a { + position: relative; + z-index: 51; +} +.views-displays .tabs .views-display-deleted-link { + text-decoration: line-through; +} +.views-display-deleted > details > summary, +.views-display-deleted .details-wrapper > .views-ui-display-tab-bucket > *, +.views-display-deleted .views-display-columns { + opacity: 0.25; +} +.views-display-disabled > details > summary, +.views-display-disabled .details-wrapper > .views-ui-display-tab-bucket > *, +.views-display-disabled .views-display-columns { + opacity: 0.5; +} +.views-display-tab .details-wrapper > .views-ui-display-tab-bucket .actions { + opacity: 1.0; +} +.views-displays .tabs .add { + position: relative; +} +.views-displays .tabs .action-list { + left: 0; /* LTR */ + margin: 0; + position: absolute; + top: 23px; + z-index: 50; +} +[dir="rtl"] .views-displays .tabs .action-list { + left: auto; + right: 0; +} +.views-displays .tabs .action-list li { + display: block; +} +.views-display-columns .details-wrapper { + padding: 0; +} +.views-display-column { + box-sizing: border-box; +} +.views-display-columns > * { + margin-bottom: 2em; +} + +@media screen and (min-width:45em) { /* 720px */ + .views-display-columns > * { + float: left; /* LTR */ + margin-left: 2%; /* LTR */ + margin-bottom: 0; + width: 32%; + } + [dir="rtl"] .views-display-columns > * { + float: right; + margin-left: 0; + margin-right: 2%; + } + .views-display-columns > *:first-child { + margin-left: 0; /* LTR */ + } + [dir="rtl"] .views-display-columns > *:first-child { + margin-right: 0; + } +} + +.views-ui-dialog .scroll { + overflow: auto; + padding: 1em; +} +.views-filterable-options-controls { + display: none; +} +.views-ui-dialog .views-filterable-options-controls { + display: inline; +} + +/* Don't let the messages overwhelm the modal */ +.views-ui-dialog .views-messages { + max-height: 200px; + overflow: auto; +} +.views-display-setting .label, +.views-display-setting .views-ajax-link { + float: left; /* LTR */ +} +[dir="rtl"] .views-display-setting .label, +[dir="rtl"] .views-display-setting .views-ajax-link { + float: right; +} +.form-item-options-value-all { + display: none; +} +.js-only { + display: none; +} +html.js .js-only { + display: inherit; +} +html.js span.js-only { + display: inline; +} +.js .views-edit-view .dropbutton-wrapper { + width: auto; +} diff --git a/core/themes/stable/css/views_ui/views_ui.admin.theme.css b/core/themes/stable/css/views_ui/views_ui.admin.theme.css new file mode 100644 index 0000000000000000000000000000000000000000..3bf3290c88967a9a27a8c2a65e49e86cad36421d --- /dev/null +++ b/core/themes/stable/css/views_ui/views_ui.admin.theme.css @@ -0,0 +1,838 @@ +/** + * @file + * The .admin.theme.css file is intended to contain presentation declarations + * including images, borders, colors, and fonts. + */ + +.views-admin .links { + list-style: none outside none; + margin: 0; +} +.views-admin a:hover { + text-decoration: none; +} +.box-padding { + padding-left: 12px; + padding-right: 12px; +} +.box-margin { + margin: 12px 12px 0 12px; +} +.views-admin .icon { + height: 16px; + width: 16px; +} +.views-admin .icon, +.views-admin .icon-text { + background-attachment: scroll; + background-image: url(../../images/views_ui/sprites.png); + background-position: left top; /* LTR */ + background-repeat: no-repeat; +} +[dir="rtl"] .views-admin .icon, +[dir="rtl"] .views-admin .icon-text { + background-position: right top; +} +.views-admin a.icon { + background: linear-gradient(-90deg, #fff 0, #e8e8e8 100%) no-repeat, repeat-y; + border: 1px solid #ddd; + border-radius: 4px; + box-shadow: 0 0 0 rgba(0,0,0,0.3333) inset; +} +.views-admin a.icon:hover { + border-color: #d0d0d0; + box-shadow: 0 0 1px rgba(0,0,0,0.3333) inset; +} +.views-admin a.icon:active { + border-color: #c0c0c0; +} +.views-admin span.icon { + float: left; /* LTR */ + position: relative; +} +[dir="rtl"] .views-admin span.icon { + float: right; +} +.views-admin .icon.compact { + display: block; + overflow: hidden; + direction: ltr; + text-indent: -9999px; +} + +/* Targets any element with an icon -> text combo */ +.views-admin .icon-text { + padding-left: 19px; /* LTR */ +} +[dir="rtl"] .views-admin .icon-text { + padding-left: 0; + padding-right: 19px; +} +.views-admin .icon.linked { + background-position: center -153px; +} +.views-admin .icon.unlinked { + background-position: center -195px; +} +.views-admin .icon.add { + background-position: center 3px; +} +.views-admin a.icon.add { + background-position: center 3px, left top; /* LTR */ +} +[dir="rtl"] .views-admin a.icon.add { + background-position: center 3px, right top; +} +.views-admin .icon.delete { + background-position: center -52px; +} +.views-admin a.icon.delete { + background-position: center -52px, left top; /* LTR */ +} +[dir="rtl"] .views-admin a.icon.delete { + background-position: center -52px, right top; +} +.views-admin .icon.rearrange { + background-position: center -111px; +} +.views-admin a.icon.rearrange { + background-position: center -111px, left top; /* LTR */ +} +[dir="rtl"] .views-admin a.icon.rearrange { + background-position: center -111px, right top; +} +.views-displays .tabs a:hover > .icon.add { + background-position: center -25px; +} +.views-displays .tabs .open a:hover > .icon.add { + background-position: center 3px; +} +details.box-padding { + border: none; +} +.views-admin details details { + margin-bottom: 0; +} +.form-item { + margin-top: 9px; + padding-bottom: 0; + padding-top: 0; +} +.form-type-checkbox { + margin-top: 6px; +} +.form-checkbox, +.form-radio { + vertical-align: baseline; +} + +.container-inline { + padding-top: 15px; + padding-bottom: 15px; +} +.container-inline > * + *, +.container-inline .details-wrapper > * + * { + padding-left: 4px; /* LTR */ +} +[dir="rtl"] .container-inline > * + *, +[dir="rtl"] .container-inline .details-wrapper > * + * { + padding-left: 0; + padding-right: 4px; +} +.views-admin details details.container-inline { + margin-bottom: 1em; + margin-top: 1em; + padding-top: 0; +} +.views-admin details details.container-inline > .details-wrapper { + padding-bottom: 0; +} +/* Indent form elements so they're directly underneath the label of the checkbox that reveals them */ +.views-admin .form-type-checkbox + .form-wrapper { + margin-left: 16px; /* LTR */ +} +[dir="rtl"] .views-admin .form-type-checkbox + .form-wrapper { + margin-left: 0; + margin-right: 16px; +} + +/* Hide 'remove' checkboxes. */ +.views-remove-checkbox { + display: none; +} + +/* sizes the labels of checkboxes and radio button to the height of the text */ +.views-admin .form-type-checkbox label, +.views-admin .form-type-radio label { + line-height: 2; +} +.views-admin-dependent .form-item { + margin-bottom: 6px; + margin-top: 6px; +} +.views-ui-view-title { + font-weight: bold; + margin-top: 0; +} +.view-changed { + margin-bottom: 21px; +} +.views-admin .unit-title { + font-size: 15px; + line-height: 1.6154; + margin-bottom: 0; + margin-top: 18px; +} + +/* These header classes are ambiguous and should be scoped to th elements */ +.views-ui-name { + width: 18%; +} +.views-ui-description { + width: 26%; +} +.views-ui-tag { + width: 8%; +} +.views-ui-path { + width: auto; +} +.views-ui-operations { + width: 24%; +} + +/** + * I wish this didn't have to be so specific + */ +.form-item-description-enable + .form-item-description { + margin-top: 0; +} +.form-item-description-enable label { + font-weight: bold; +} +.form-item-page-create, +.form-item-block-create { + margin-top: 13px; +} +.form-item-page-create label, +.form-item-block-create label, +.form-item-rest-export-create label { + font-weight: bold; +} + +/* This makes the form elements after the "Display Format" label flow underneath the label */ +.form-item-page-style-style-plugin > label, +.form-item-block-style-style-plugin > label { + display: block; +} +.views-attachment .options-set label { + font-weight: normal; +} + +/* Styling for the form that allows views filters to be rearranged. */ +.group-populated { + display: none; +} +td.group-title { + font-weight: bold; +} +.views-ui-dialog td.group-title { + margin: 0; + padding: 0; +} +.views-ui-dialog td.group-title span { + display: block; + height: 1px; + overflow: hidden; +} +.group-message .form-submit, +.views-remove-group-link, +.views-add-group { + float: right; /* LTR */ + clear: both; +} +[dir="rtl"] .group-message .form-submit, +[dir="rtl"] .views-remove-group-link, +[dir="rtl"] .views-add-group { + float: left; +} +.views-operator-label { + font-style: italic; + font-weight: bold; + padding-left: 0.5em; /* LTR */ + text-transform: uppercase; +} +[dir="rtl"] .views-operator-label { + padding-left: 0; + padding-right: 0.5em; +} +.grouped-description, +.exposed-description { + float: left; /* LTR */ + padding-top: 3px; + padding-right: 10px; /* LTR */ +} +[dir="rtl"] .grouped-description, +[dir="rtl"] .exposed-description { + float: right; + padding-left: 10px; + padding-right: 0; +} +.views-displays { + border: 1px solid #ccc; + padding-bottom: 36px; +} +.views-display-top { + background-color: #e1e2dc; + border-bottom: 1px solid #ccc; + padding: 8px 8px 3px; + position: relative; +} +.views-display-top .tabs { + margin-right: 18em; /* LTR */ +} +[dir="rtl"] .views-display-top .tabs { + margin-left: 18em; + margin-right: 0; +} +.views-display-top .tabs > li { + margin-right: 6px; /* LTR */ + padding-left: 0; /* LTR */ +} +[dir="rtl"] .views-display-top .tabs > li { + margin-left: 6px; + margin-right: 0.3em; + padding-right: 0; +} +.views-display-top .tabs > li:last-child { + margin-right: 0; /* LTR */ +} +[dir="rtl"] .views-display-top .tabs > li:last-child { + margin-left: 0; + margin-right: 0.3em; +} +.form-edit .form-actions { + background-color: #e1e2dc; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-left: 1px solid #ccc; + margin-top: 0; + padding: 8px 12px; +} +.views-displays .tabs.secondary { + margin-right: 200px; /* LTR */ + border: 0; +} +[dir="rtl"] .views-displays .tabs.secondary { + margin-left: 200px; + margin-right: 0; +} +.views-displays .tabs.secondary li, +.views-displays .tabs.secondary li.is-active { + background: transparent; + border: 0; + padding: 0; + width: auto; +} +.views-displays .tabs li.add ul.action-list li{ + margin: 0; +} +.views-displays .tabs.secondary li { + margin: 0 5px 5px 6px; /* LTR */ +} +[dir="rtl"] .views-displays .tabs.secondary li { + margin-left: 5px; + margin-right: 6px; +} +.views-displays .tabs.secondary .tabs__tab + .tabs__tab { + border-top: 0; +} +.views-displays .tabs li.tabs__tab:hover { + border: 0; + padding-left: 0; /* LTR */ +} +[dir="rtl"] .views-displays .tabs li.tabs__tab:hover { + padding-right: 0; +} +.views-displays .tabs.secondary a { + border: 1px solid #cbcbcb; + border-radius: 7px; + display: inline-block; + font-size: small; + line-height: 1.3333; + padding: 3px 7px; +} + +/* Display a red border if the display doesn't validate. */ +.views-displays .tabs li.is-active a.is-active.error, +.views-displays .tabs .error { + border: 2px solid #ed541d; + padding: 1px 6px; +} +.views-displays .tabs a:focus { + outline: none; + text-decoration: underline; +} +.views-displays .tabs.secondary li a { + background-color: #fff; +} +.views-displays .tabs li a:hover, +.views-displays .tabs li.is-active a, +.views-displays .tabs li.is-active a.is-active { + background-color: #555; + color: #fff; +} +.views-displays .tabs .open > a { + background-color: #f1f1f1; + border-bottom: 1px solid transparent; + position: relative; +} +.views-displays .tabs .open > a:hover { + color: #0074bd; + background-color: #f1f1f1; +} +.views-displays .tabs .action-list li { + background-color: #f1f1f1; + border-color: #cbcbcb; + border-style: solid; + border-width: 0 1px; + padding: 2px 9px; +} +.views-displays .tabs .action-list li:first-child { + border-width: 1px 1px 0; +} +.views-displays .action-list li:last-child { + border-width: 0 1px 1px; +} +.views-displays .tabs .action-list li:last-child { + border-width: 0 1px 1px; +} +.views-displays .tabs .action-list input.form-submit { + background: none repeat scroll 0 0 transparent; + border: medium none; + margin: 0; + padding: 0; +} +.views-displays .tabs .action-list input.form-submit:hover { + box-shadow: none; +} +.views-displays .tabs .action-list li:hover { + background-color: #ddd; +} +.edit-display-settings { + margin: 12px 12px 0 12px +} +.edit-display-settings-top.views-ui-display-tab-bucket { + border: 1px solid #f3f3f3; + line-height: 20px; + margin: 0 0 15px 0; + padding-top: 4px; + padding-bottom: 4px; + position: relative; +} +.views-display-column { + border: 1px solid #f3f3f3; +} +.views-display-column + .views-display-column { + margin-top: 0; +} +.view-preview-form .form-item-view-args, +.view-preview-form .form-actions { + margin-top: 5px; +} +.view-preview-form .arguments-preview { + font-size: 1em; +} +.view-preview-form .arguments-preview, +.view-preview-form .form-item-view-args { + margin-left: 10px; /* LTR */ +} +[dir="rtl"] .view-preview-form .arguments-preview, +[dir="rtl"] .view-preview-form .form-item-view-args { + margin-left: 0; + margin-right: 10px; +} +.view-preview-form .form-item-view-args label { + float: left; /* LTR */ + font-weight: normal; + height: 6ex; + margin-right: 0.75em; /* LTR */ +} +[dir="rtl"] .view-preview-form .form-item-view-args label { + float: right; + margin-left: 0.75em; + margin-right: 0.2em; +} +.form-item-live-preview, +.form-item-view-args, +.preview-submit-wrapper { + display: inline-block; +} +.form-item-live-preview, +.view-preview-form .form-actions { + vertical-align: top; +} +@media screen and (min-width:45em) { /* 720px */ + .view-preview-form .form-type-textfield .description { + white-space: nowrap; + } +} + +/* These are the individual "buckets," or boxes, inside the display settings area */ +.views-ui-display-tab-bucket { + border-bottom: 1px solid #f3f3f3; + line-height: 20px; + margin: 0; + padding-top: 4px; + position: relative; +} +.views-ui-display-tab-bucket:last-of-type { + border-bottom: none; +} +.views-ui-display-tab-bucket + .views-ui-display-tab-bucket { + border-top: medium none; +} +.views-ui-display-tab-bucket__title, +.views-ui-display-tab-bucket > .views-display-setting { + padding: 2px 6px 4px; +} +.views-ui-display-tab-bucket__title { + font-size: small; + margin: 0; +} +.views-ui-display-tab-bucket.access { + padding-top: 0; +} +.views-ui-display-tab-bucket.page-settings { + border-bottom: medium none; +} +.views-display-setting .views-ajax-link { + margin-left: 0.2083em; + margin-right: 0.2083em; +} + +.views-ui-display-tab-setting > span { + margin-left: 0.5em; /* LTR */ +} +[dir="rtl"] .views-ui-display-tab-setting > span { + margin-left: 0; + margin-right: 0.5em; +} + +/** Applies an overridden(italics) font style to overridden buckets. + * The better way to implement this would be to add the overridden class + * to the bucket header when the bucket is overridden and style it as a + * generic icon classed element. For the moment, we'll style the bucket + * header specifically with the overridden font style. + */ +.views-ui-display-tab-setting.overridden, +.views-ui-display-tab-bucket.overridden .views-ui-display-tab-bucket__title { + font-style: italic; +} + +/* This is each row within one of the "boxes." */ +.views-ui-display-tab-bucket .views-display-setting { + color: #666; + font-size: 12px; + padding-bottom: 2px; +} +.views-ui-display-tab-bucket .views-display-setting:nth-of-type(even) { + background-color: #f3f5ee; +} +.views-ui-display-tab-actions.views-ui-display-tab-bucket .views-display-setting { + background-color: transparent; +} +.views-ui-display-tab-bucket .views-group-text { + margin-top: 6px; + margin-bottom: 6px; +} +.views-display-setting .label { + margin-right: 3px; /* LTR */ +} +[dir="rtl"] .views-display-setting .label { + margin-left: 3px; + margin-right: 0; +} +.views-edit-view { + margin-bottom: 15px; +} + +/* The contents of the popup dialog on the views edit form. */ +.views-filterable-options .form-type-checkbox { + padding: 5px 8px; + border-top: none; +} +.views-filterable-options { + border-top: 1px solid #ccc; +} +.filterable-option .form-item { + margin-bottom: 0; + margin-top: 0; +} +.views-filterable-options .filterable-option .title { + font-weight: bold; + cursor: pointer; +} +.views-filterable-options .form-type-checkbox .description { + margin-top: 0; + margin-bottom: 0; +} +.views-filterable-options-controls .form-item { + width: 30%; + margin: 0 0 0 2%; /* LTR */ +} +[dir="rtl"] .views-filterable-options-controls .form-item { + margin: 0 2% 0 0; +} +.views-filterable-options-controls input, +.views-filterable-options-controls select { + width: 100%; +} +.views-ui-dialog .ui-dialog-content { + padding: 0; +} +.views-ui-dialog .views-filterable-options { + margin-bottom: 10px; +} +.views-ui-dialog .views-add-form-selected.container-inline { + padding: 0; +} +.views-ui-dialog .views-add-form-selected.container-inline > div { + display: block; +} +.views-ui-dialog .form-item-selected { + margin: 0; + padding: 6px 16px; +} +.views-ui-dialog .views-override { + background-color: #f3f4ee; + padding: 8px 13px; +} +.views-ui-dialog.views-ui-dialog-scroll .ui-dialog-titlebar { + border: none; +} +.views-ui-dialog .views-offset-top { + border-bottom: 1px solid #CCC; +} +.views-ui-dialog .views-offset-bottom { + border-top: 1px solid #CCC; +} +.views-ui-dialog .views-override > * { + margin: 0; +} +.views-ui-dialog .views-progress-indicator { + color: #fff; + font-size: 11px; + position: absolute; + right: 10px; /* LTR */ + top: 32px; +} +[dir="rtl"] .views-ui-dialog .views-progress-indicator { + left: 10px; + right: auto; +} +.views-ui-dialog .views-progress-indicator:before { + content: "\003C\00A0"; +} +.views-ui-dialog .views-progress-indicator:after { + content: "\00A0\003E"; +} +.views-ui-dialog details .item-list { + padding-left: 2em; /* LTR */ +} +[dir="rtl"] .views-ui-dialog details .item-list { + padding-left: 0; + padding-right: 2em; +} +.views-ui-rearrange-filter-form table { + border-collapse: collapse; +} +.views-ui-rearrange-filter-form tr td[rowspan] { + border-color: #cdcdcd; + border-style: solid; + border-width: 0 1px 1px 1px; +} +.views-ui-rearrange-filter-form tr[id^="views-row"] { + border-right: 1px solid #cdcdcd; /* LTR */ +} +[dir="rtl"] .views-ui-rearrange-filter-form tr[id^="views-row"] { + border-left: 1px solid #cdcdcd; + border-right: 0; +} +.views-ui-rearrange-filter-form .even td { + background-color: #f3f4ed; +} +.views-ui-rearrange-filter-form .views-group-title { + border-top: 1px solid #cdcdcd; +} +.views-ui-rearrange-filter-form .group-empty { + border-bottom: 1px solid #cdcdcd; +} +.form-item-options-expose-required, +.form-item-options-expose-label, +.form-item-options-expose-description { + margin-bottom: 6px; + margin-left: 18px; /* LTR */ + margin-top: 6px; +} +[dir="rtl"] .form-item-options-expose-required, +[dir="rtl"] .form-item-options-expose-label, +[dir="rtl"] .form-item-options-expose-description { + margin-left: 0; + margin-right: 18px; +} +.views-preview-wrapper { + border: 1px solid #ccc; +} +.view-preview-form { + position: relative; +} +.view-preview-form__title { + background-color: #e1e2dc; + border-bottom: 1px solid #ccc; + margin-top: 0; + padding: 8px 12px; +} +.view-preview-form .form-item-live-preview { + position: absolute; + right: 12px; + top: 3px; + margin-top: 2px; + margin-left: 2px; /* LTR */ +} +[dir="rtl"] .view-preview-form .form-item-live-preview { + right: auto; + left: 12px; + margin-left: 0; + margin-right: 2px; +} +.views-live-preview { + padding: 12px; +} +.views-live-preview .views-query-info { + overflow: auto; +} +.views-live-preview .section-title { + color: #818181; + display: inline-block; + font-size: 13px; + font-weight: normal; + line-height: 1.6154; + margin-bottom: 0; + margin-top: 0; +} +.views-live-preview .view > * { + margin-top: 18px; +} +.views-live-preview .preview-section { + border: 1px dashed #dedede; + margin: 0 -5px; + padding: 3px 5px; +} +.views-live-preview li.views-row + li.views-row { + margin-top: 18px; +} + +/* The div.views-row is intentional and excludes li.views-row, for example */ +.views-live-preview div.views-row + div.views-row { + margin-top: 36px; +} +.views-query-info table { + border-collapse: separate; + border-color: #ddd; + border-spacing: 0; + margin: 10px 0; +} +.views-query-info table tr { + background-color: #f9f9f9; +} +.views-query-info table th, +.views-query-info table td { + color: #666; + padding: 4px 10px; +} +.messages { + margin-bottom: 18px; + line-height: 1.4555; +} +.dropbutton-multiple { + position: absolute; +} +.dropbutton-widget { + position: relative; +} +.js .views-edit-view .dropbutton-wrapper .dropbutton .dropbutton-action > * { + font-size: 10px; +} +.js .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber { + position: absolute; + right: -5px; /* LTR */ + top: -1px; + z-index: 2; +} +[dir="rtl"].js .dropbutton-wrapper .dropbutton .dropbutton-action > .ajax-progress-throbber { + left: -5px; + right: auto; +} +.js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:first-child a { + border-radius: 1.1em 0 0 0; /* LTR */ +} +[dir="rtl"].js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:first-child a { + border-radius: 0 1.1em 0 0; +} +.js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:last-child a { + border-radius: 0 0 0 1.1em; /* LTR */ +} +[dir="rtl"].js .dropbutton-wrapper.dropbutton-multiple.open .dropbutton-action:last-child a { + border-radius: 0 0 1.1em 0; +} +.views-display-top .dropbutton-wrapper { + position: absolute; + right: 12px; /* LTR */ + top: 7px; +} +[dir="rtl"] .views-display-top .dropbutton-wrapper { + left: 12px; + right: auto; +} +.views-display-top .dropbutton-wrapper .dropbutton-widget .dropbutton-action a { + width: auto; +} + +.views-ui-display-tab-bucket .dropbutton-wrapper { + position: absolute; + right: 5px; /* LTR */ + top: 4px; +} +[dir="rtl"] .views-ui-display-tab-bucket .dropbutton-wrapper { + left: 5px; + right: auto; +} +.views-ui-display-tab-bucket .dropbutton-wrapper .dropbutton-widget .dropbutton-action a { + width: auto; +} +.views-ui-display-tab-actions .dropbutton-wrapper li a, +.views-ui-display-tab-actions .dropbutton-wrapper input { + background: none; + border: medium; + font-family: inherit; + font-size: 12px; + padding-left: 12px; /* LTR */ + margin-bottom: 0; +} +[dir="rtl"] .views-ui-display-tab-actions .dropbutton-wrapper li a, +[dir="rtl"] .views-ui-display-tab-actions .dropbutton-wrapper input { + padding-left: 0.5em; + padding-right: 12px; +} +.views-ui-display-tab-actions .dropbutton-wrapper input:hover { + background: none; + border: none; +} +.views-list-section { + margin-bottom: 2em; +} +.form-textarea-wrapper, +.form-item-options-content { + width: 100%; +} diff --git a/core/themes/stable/css/views_ui/views_ui.contextual.css b/core/themes/stable/css/views_ui/views_ui.contextual.css new file mode 100644 index 0000000000000000000000000000000000000000..13db2d2fdfbe02753f842c15e32eaf5fe485fa27 --- /dev/null +++ b/core/themes/stable/css/views_ui/views_ui.contextual.css @@ -0,0 +1,57 @@ +/** + * @file + * The .contextual.css file is intended to contain styles that override declarations + * in the Contextual module. + */ + +.views-live-preview .contextual-region-active { + outline: medium none; +} +.views-live-preview .contextual { + right: auto; /* LTR */ + top: auto; +} +[dir="rtl"] .views-live-preview .contextual { + left: auto; +} +.js .views-live-preview .contextual { + display: inline; +} +.views-live-preview .contextual-links-trigger { + display: block; +} +.contextual .contextual-links { + border-radius: 0 4px 4px 4px; /* LTR */ + min-width: 10em; + padding: 6px 6px 9px 6px; + right: auto; /* LTR */ +} +[dir="rtl"] .contextual .contextual-links { + border-radius: 4px 0 4px 4px; + left: auto; +} +.contextual-links li a, +.contextual-links li span { + padding-bottom: 0.25em; + padding-right: 0.1667em; /* LTR */ + padding-top: 0.25em; +} +[dir="rtl"] .contextual-links li a, +[dir="rtl"] .contextual-links li span { + padding-left: 0.1667em; + padding-right: 0; +} +.contextual-links li span { + font-weight: bold; +} +.contextual-links li a { + margin: 0.25em 0; + padding-left: 1em; /* LTR */ +} +[dir="rtl"] .contextual-links li a { + padding-left: 0.1667em; + padding-right: 1em; +} +.contextual-links li a:hover { + background-color: #badbec; +} diff --git a/core/themes/stable/images/color/hook-rtl.png b/core/themes/stable/images/color/hook-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..a26b211e126c298b68a23bef312d8a6dd68f9f29 --- /dev/null +++ b/core/themes/stable/images/color/hook-rtl.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR������Q���Õ@u÷���PLTE��DDDz˜2P���tRNS�@æØf���IDAT™c`@ÿP .€ªê?Nuøue�oÖþ— :Ç����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/color/hook.png b/core/themes/stable/images/color/hook.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1897370f928a8de70f257cc4786f9e79cf3c57 --- /dev/null +++ b/core/themes/stable/images/color/hook.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR������Q���Õ@u÷���PLTEÿÿÿDDDÇõùê���tRNS�@æØf���IDAT™c`@ÿQ .€ªê?Nuøue�L×?6Z����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/color/lock.png b/core/themes/stable/images/color/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1e00e5efd11ffcf50d13257fd935b92804f840 --- /dev/null +++ b/core/themes/stable/images/color/lock.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR��� ���2���°¡6���'PLTEé°aaa¹¹¹ñññÂÂÂýýýÝÝÝ���xvgÿý¾ÿßúúúµµµ†-)=���tRNS�@æØf���mIDATxÚÅÍÑ€ …á ±ÞÿyCƉÕÚò®ÿÆ}ÈtùJFºª6»êAQñÙ‹$3ìíMl¯#ȶ ?uB-“ÇÿG£…™W6»*AbòÙ«ŠR”*GÕ^%.²-ÈOžÐšÑý¿;;ÂsHÆ����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/druplicon.png b/core/themes/stable/images/core/druplicon.png new file mode 100644 index 0000000000000000000000000000000000000000..3b49a4ce78dc8b1ce754706f400b3b61a99857d1 --- /dev/null +++ b/core/themes/stable/images/core/druplicon.png @@ -0,0 +1,18 @@ +‰PNG + +��� IHDR���X���d���-÷â��IDATxÚí] PTW}€‰FͦÉĤ’Te2©ÔÄL*“Ô$•É:¥©LM1jÔ¸ÄwA6Ã*;"›H@\AEAQDÅEÁ]dß¡YîÜ÷œ/{ó»û74ðOÕ-–æÿþÿô}çÝ{ß}¢ò0tË$¦>ïʺŽMѵo!¦Û'ÃÔwò"à••û€è;WÃÄ{•]Ôuøe3? ³Ý²ˆ1ÛýÒñôbM)²æ#4ÏSD„@˜õGkQM3$åV?!Ø<ˆc/o"BA˜øÌúÊzPd<ªg3[}ˆ®So"BºFÞ(�ŠÌ²FÐXßIòÊh Ú6€½žˆor{wÙhïè�ŠÛèÁc7œ¦äv'Yמ’¼ŽˆIÆ7rnK-¬Çn—QR{Ûªã€:M59„ˆàÓíS×µo=ŒÒÀ¡º©–GeöI0§É('OB¸9¾DD¿ž«ý‚‰s{ìGÀ¡¥ö¥–Â.—(™RÅɳ¶¶¢dXݼvz`Ö'ëC »¼8T5¶Bȵ0O—Fl/]f±²¾S Ö/¾'£&Þ+'9µyÇgà„ ’vHÌ®ßKEðkÄP[KÉ“Ñ–¢çHcæÇHôdÔaÎöÐk³°Ûy•À¡ º‰-Ÿ‹OlšÿuJ˜ü¶ä %™zt-JÐ"2*`ìí2ÉØþLÊ‚¾p«¤þ)Á®çò)QŠÛÊ@‚i‚ҌǶ‘*Æ97¯¿�eõ-ИDpÛÄçR‚„³Ç�%ˆ–ujuìH‰Œ1tnX…ÕM0nÕ=%ø‡ÀB‘Û;~6ݬÎlâm>\£ƒ7ˆá¶Bm×(¸÷¨x�=[~—‹¹Ž á¹,{Sž8Jãg ׉×ûÚ0™Àvh#÷›BNy=ð‹ywßxÄÈõN*„÷œ.RÇ–F�ѱbì¹WÕuÖd¬¡“dëÑ AÂøB‚1Ú¡ôÇO¥áçà›ƒG.g«OÒ”›®œTÓŒRÕä`<µ»Ÿo +…ŒâZ8©Hë$×do¨Ñ*[´ÈL+ZD²Qr?TÓshqŒ¹ Xü’ µÍmœ,0[qÔ×Æ™ÒëúNT2b‡:B˜÷¼‰KG4.ëÈŠŠ K…9rWË‚1\ÍWÌ<Ž.OÑBRÞ§ú$^Aï,ñ…Û%µ +Jj[ (¹ø)¹‹"ï³ëYÄ z6ןzs5JƸA$×3âk«=¬ #+r*šX#×`w:¨³zƒ +Û¯¡tò«E’ǹa³=£iqF&4µ¶C\fÅSb½Ñ¦°DbxØü]”äJLõÕ•)þ¦ÛO ¹²±û ¼‚¯vJ‚WR|âqeøË™“‹"eŸî†^Ç¡M×mÂ,¶Ók™m8þ�^³97ìÈåŒM|ÚÖ»Å|´¾·¤Ã\n¯õF›šÆE +ÃØâØŠ6®ž,ª?ìå·û¶×4óLz{CÂCnÙgD›ô4-š‘dÅ»>ÇÏñ,={¿B+JÇõÂZ¿ºk^Ø-˜°é̈!—«] S’‹ÈëÔ™ÔÂç'A³i šœV\‡rPÒÍk—¾STOk…+à¹?‘Š™["åÕÝÞúÍ—•û�#ýJ~ ø_)êFì–ؘºÉÁÈ6cÏ'¥Î›Ú‰Ží7DfèÚ7/‰Hg¤¾_ ¥u-]Ñ)µq‹gº™KbüÇï:×â4òm®ß/6p¦^üXVip;?<.Pò¤ÓYCÌÆ&nf:;zÌŒÌ=˜FË oè9JÞ´=+•XO$ξxÝ–éìè³9¾ÁL*ЋËøzo�®JÀ³Ølçv>¿±6§ráû€\d0zÍÔ‡’ÛÝ‹µmÖòizn#«bØI^´L€¯}¯ÁŒàTøÔ3&m9K/7Éu%x¶+Nx›«¥†mxP8Ö>Eòx,ÿ#©½MËšJÅÒ/tìÚñ`‘Àì·ý}làB½¸¢¿bÎz,dˆäñ,]"¡}ÛLKQ|GzÙ/&ˉäñYJ2ñêŸ`}G*ñ=.Ÿ!Ú¶£ž<>†NˆDJ5Ìî{6ä9a,'’ÇK‚&˜É„Ýô®;zî“!"y¼Š<ŒL#Š½]c_‰=ä½\}BÓ"Óß—0<Éãûò·Ÿ7¶±¤Ã3Ô`‘Àl^,s:üAM9‰K "ÒlY¤lär:¬m³…ÐÖ ÌLDû³U1\Ü+“±M8ZV‡ ~SG–‰ì;©à +ë²+Ä[¦ÓúC†"™}Ù‚J–|f¸Ö%Ê Ûb'’ÙÓï‘›\®Ï2:1E–R-SÐàšdˆ„vµ¥…! %¢•Nr"©œÑÉÞÈCH‚Û‘`§¡¸Öl–kŽe‚û¹‡p õÄÞ+¿K`qâ>˜á‚ê4ÿ”A–F®p¦i ”àAÕàop/üz14JÚ€V6Á¶Ä‡ð¹W²ò6Ç,“™¼6ì†7–DpÁ«öÁ ö÷+ÌCAJA ü´ó†€qn,¦À;y“úÖò OºmíÀ¡º¡ÌwŸ5ã> –PnU®ÄƒuÜÖ´-2pçèWÛ¯*¾“ÈŒ_ñÂüívþH»… „ôÞ$kZ4ÒI®YYqð‹ ”SÊBèµ"˜luV¾ô×Ô‡¹Æ>'àqM#ðÁÖÃWz\G%¢Šü%8¹ã°qå\v%(• ÐKãß<½h¯Éìí߃àøÍ-ðâß®QD%}|a*¾©à²‘ö‡n•Â«Ö‰Ò½v®ÿ@IJa¾&üv¶<X¼óôÿSeZ‹¸C[¥<É/A‚üû‘»0` :!©}'ÆWÄ>\—ïƒ"ˆMÍíZM;JwkNÅ!#¹¯Y'²ýsC‰°”bxÉ2nðæµÌ3ÎÌ‹égö<+Š{E•]ëÁ6„AÏA¨P% +ª€Š†0öÜ/möCîã +õÍ’Î6*»i„·Š +1ÑÛxš=HN•p#·¦Û÷Z‘`¿K¼#¼3WÕs„„8i +”ˆxlR˜`½Ð4PU´¶·CRf¾z$˜((î±Z0&»vöL%†Š7ž\.€ÑŽÐó·ÙCKQ"BI'˜L4áÂ"øTf9ŒvXG\¢ÑÕßoI'˜LD“yÁ +œUÖ�ªŒìÒjH¸Êîå¦ F}_O.™¢hm8»¼T iye ívÔM:³·gçxÁ†}Ø?¡ñ¯õ»¨G‘>¡ï\¡È +óÕüPœÎȃ/¥/ý¼¹,†h‚FêZ[:P>èoóálE&»“wË`¨‘ƒ20Ëw›#ùv¡0s‡ß©Tž©ÀÇZÉéŬ,9D`¾Å‹˜•yË\<Ÿ¼È’”€¢˜f +¸ˆ¼z éÊÛ+ü±Ûel`–ÁÑZÞ™8ÏâÓó@^$c CMÓ¢’ð{tÊÒ¹HÎ(©ƒÁB^y-ü›ÓYLÝØ¢R(à½6æ„L¼¾Á}mdE´ÌáÌV/”‰ôü2˜ézT*Y~ñ#Ÿã`…qéG’Á!*V…%‚©ïIcâÙïqϘzÂÁ+™ NÜÌ¡Ú[Cd‚–u�«-9 3ÉNgr•3=®†9;Nr!WŸö:.DF&g°5µû.ô{ü�˜ìðA FSÌœ1r°Õ#2CÓ²˜æÕl_îrÙv YÅ +7á=ªn€å! 4~•æµlñ±Y¿P¾0(¾ßsià‡¸+1¤€Ôï¬ÂG{’¼ÿKèŸHr;NzìMYç‚]Àôye4·öÿ M|}†ßEx\Û$ɱ® ¬#/ HìÖþ§»š2 +ÊÙêÂÎGàXHÿÖî Ìóƒ#×î3b¸%žWû ô¡õ’<îØŸœÑ¬ GúKD^ TØbfÒ!u‚0ñÌ{ïßE{n®7˜íˆ¥)*¯Ì)³¸\cRàÓÍü›ï¢¯g‡ÊúfÐõˆ–ú÷›÷'ÔèÎÏ>œS·òÑ( ìýÞ[½‹õ=`XfJDôfAfjì- Enô¬Ã ç óâ`†Kü}íŸtXÊz>v,Œe©GòZw;·("®dÉu¨¹´b¶ŸÝ?Ô‘ä|¬¸Ñ“«”}´!ŒŒ¨Tð>îÁ¬>üþš9º×è‚fzŽÏã(Å¢*GòX3¯Á{?t2ÔÝÑÏÁ¡c÷ +ž¼ŠóäQfÜ£¼jq÷ÐÛDiвz‹ëqÂè"ï«ì¯ƒñ¯ '¡å£6ò0E–ZË`uræ¹['‘Á +½zóeœM•§ÿ. >Q× AJy}ÏÈÇšFfIeÿûÝ4-óñëd2$À”½¹3>ÁoÞ>*¹[Ö„Í!´ÓQáó>çX¼3RrJÆé=þÎ Ðh–vž9ÓBÛfÕ'¼A 6ßØWy’Ü®Æ×0 õ_^õÞŸ0£³‰¼LK’½2³$\jŸò›ÏHA‚÷eIT¨Çð?ϲ¾Ù®BÌâZ‡(©Õ9$¼ƒeoËjX•íbfm(a-L¥5 ìõþ€é4M¥{H‚•„œÌÞ'ª¼0=œªð+p5Eí3˽›&H…Ž%%Ç®gÓ°{æ¨kO½¶ %oQuà«á…zŸ7µ ÑBIæÿ!°µ»Íé<ߎÖ>pæüO'ËÞ#Ö*'²—É°‚ÓxÔ±@ôèJ4'BÙ_ûÃÔu¡ÌÿÛz鬖ëQ¶ÊñÁÚPܤØO%Îy,^W;ǪaÃè%DÛÚ¥Ú83ãÏC—,hÛИMx{‘ØWɈÃ,»/P>bˆ&ÍŠliáD^æ_˜a¤nnÁ+Ë‹‘Xu2€žüÞ4’mQȶ<!á°0Iæ¸ÚЕ‡ÇSBÙðG£#&G0pžŽæ€¤Ç#9¹ìa›3-ëñç4è4K$šE+Z#náÏÙøZŽ7ü tØD«ø~I]Eí¸����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/feed.svg b/core/themes/stable/images/core/feed.svg new file mode 100644 index 0000000000000000000000000000000000000000..595a9d9ab0d19202db8788f4de2e5858ed2b2404 --- /dev/null +++ b/core/themes/stable/images/core/feed.svg @@ -0,0 +1,8 @@ +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"> + <rect fill="#ff9900" width="16" height="16" x="0" y="0" rx="3" ry="3"/> + <g fill="#ffffff"> + <circle cx="4.25" cy="11.812" r="1.5"/> + <path d="M10,13.312H7.875c0-2.83-2.295-5.125-5.125-5.125l0,0V6.062C6.754,6.062,10,9.308,10,13.312z"/> + <path d="M11.5,13.312c0-4.833-3.917-8.75-8.75-8.75V2.375c6.041,0,10.937,4.896,10.937,10.937H11.5z"/> + </g> +</svg> diff --git a/core/themes/stable/images/core/help.png b/core/themes/stable/images/core/help.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc5cac7956f6e1d0733695af8db4cffcef90d84 --- /dev/null +++ b/core/themes/stable/images/core/help.png @@ -0,0 +1,5 @@ +‰PNG + +��� IHDR���������óÿa���íIDATxÚ¥“= +ƒ@…s#HN#äÞ"mnb™2G°²ØÊ-ìì,ÁB°˜ì^ÜB2ðü}ŸóÜ“ˆü¥ÏÅVY–iP4‰Ñ+(³k�óÃb*‚ø1;çdš&ÑZ–E¼÷RY€¶-ªaÔ¸=¯ë +°…Ü- ·�-5ô}/¨º®-à¹ø‡a!¤qÐ Šbˆ‰ãàŽ÷c€¶m5Ï3:9ÀNPëq@µ· ë:@bñ¼d{‹š¦AŒà©ˆDØ3Ag$Ùu;ÙœòQæy#mçørl˜tì«›Oã§B䃪 tæ����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/icons/000000/barchart.svg b/core/themes/stable/images/core/icons/000000/barchart.svg new file mode 100644 index 0000000000000000000000000000000000000000..5b6e4cf7fc604b0640a154fb3ef870cec0ec2756 --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/barchart.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#000000" d="M4 13.529c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-4.25c0-.274.225-.5.5-.5h3c.275 0 .5.226.5.5v4.25zM10.002 13.529c0 .275-.225.5-.5.5h-3.002c-.275 0-.5-.225-.5-.5v-13c0-.275.225-.5.5-.5h3.002c.275 0 .5.225.5.5v13zM16.002 13.529c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-9.5c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v9.5z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/000000/chevron-left.svg b/core/themes/stable/images/core/icons/000000/chevron-left.svg new file mode 100644 index 0000000000000000000000000000000000000000..19ba5807048b8f95f841b5d3f2ce0852ad3631af --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/chevron-left.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M7.951 7.645c-.193.196-.193.516 0 .71l3.258 3.29c.193.193.191.519-.002.709l-1.371 1.371c-.193.192-.512.191-.707 0l-5.335-5.371c-.194-.194-.194-.514 0-.708l5.335-5.369c.195-.195.514-.195.707-.001l1.371 1.371c.193.194.195.513.002.709l-3.258 3.289z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/chevron-right.svg b/core/themes/stable/images/core/icons/000000/chevron-right.svg new file mode 100644 index 0000000000000000000000000000000000000000..20018b760aa57108484b713ce41a9026f21730db --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/chevron-right.svg @@ -0,0 +1,2 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M8.053 8.355c.193-.195.193-.517 0-.711l-3.26-3.289c-.193-.195-.192-.514.002-.709l1.371-1.371c.194-.194.512-.193.706.001l5.335 5.369c.195.195.195.515 0 .708l-5.335 5.37c-.194.192-.512.193-.706.002l-1.371-1.371c-.194-.195-.195-.514-.002-.709l3.26-3.29z"/></svg> + diff --git a/core/themes/stable/images/core/icons/000000/ex.svg b/core/themes/stable/images/core/icons/000000/ex.svg new file mode 100644 index 0000000000000000000000000000000000000000..7b653ffde5a4e6c412d56f0960c48c8f2a6888ba --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/ex.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M3.51 13.925c.194.194.512.195.706.001l3.432-3.431c.194-.194.514-.194.708 0l3.432 3.431c.192.194.514.193.707-.001l1.405-1.417c.191-.195.189-.514-.002-.709l-3.397-3.4c-.192-.193-.192-.514-.002-.708l3.401-3.43c.189-.195.189-.515 0-.709l-1.407-1.418c-.195-.195-.513-.195-.707-.001l-3.43 3.431c-.195.194-.516.194-.708 0l-3.432-3.431c-.195-.195-.512-.194-.706.001l-1.407 1.417c-.194.195-.194.515 0 .71l3.403 3.429c.193.195.193.514-.001.708l-3.4 3.399c-.194.195-.195.516-.001.709l1.406 1.419z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/file.svg b/core/themes/stable/images/core/icons/000000/file.svg new file mode 100644 index 0000000000000000000000000000000000000000..21e8f7076a3f0a47a71f7ce47ec02d0e03657c8a --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/file.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#000000" d="M12.502 7h-5c-.276 0-.502-.225-.502-.5v-5c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v12.029c0 .275.225.5.5.5h9.002c.275 0 .5-.225.5-.5v-6.029c0-.275-.225-.5-.5-.5zM8.502 6h4c.275 0 .34-.159.146-.354l-4.293-4.292c-.195-.195-.353-.129-.353.146v4c0 .275.225.5.5.5z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/000000/move.svg b/core/themes/stable/images/core/icons/000000/move.svg new file mode 100644 index 0000000000000000000000000000000000000000..3bd9a41cd161cb061690fb398135dae42334bcc0 --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/move.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M14.904 7.753l-2.373-2.372c-.291-.292-.529-.193-.529.22v1.399h-3v-3h1.398c.414 0 .512-.239.221-.53l-2.371-2.372c-.137-.136-.36-.136-.497 0l-2.372 2.372c-.292.292-.193.53.22.53h1.399v3h-3v-1.369c0-.413-.239-.511-.53-.22l-2.372 2.372c-.136.136-.136.359 0 .494l2.372 2.372c.291.292.53.192.53-.219v-1.43h3v3h-1.4c-.413 0-.511.238-.22.529l2.374 2.373c.137.137.36.137.495 0l2.373-2.373c.29-.291.19-.529-.222-.529h-1.398v-3h3v1.4c0 .412.238.511.529.219l2.373-2.371c.137-.137.137-.359 0-.495z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/orgchart.svg b/core/themes/stable/images/core/icons/000000/orgchart.svg new file mode 100644 index 0000000000000000000000000000000000000000..7010a982d16074252ca9d5aff7a6ee7a1b700501 --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/orgchart.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px"><path d="M15.002,11.277c0-0.721,0-1.471,0-2.014c0-1.456-0.824-2.25-2.25-2.25c-1.428,0-3.5,0-3.5,0c-0.139,0-0.25-0.112-0.25-0.25v-2.04c0.596-0.346,1-0.984,1-1.723c0-1.104-0.895-2-2-2C6.896,1,6,1.896,6,3c0,0.738,0.405,1.376,1,1.722v2.042c0,0.138-0.112,0.25-0.25,0.25c0,0-2.138,0-3.5,0S1,7.932,1,9.266c0,0.521,0,1.277,0,2.012c-0.595,0.353-1,0.984-1,1.729c0,1.104,0.896,2,2,2s2-0.896,2-2c0-0.732-0.405-1.377-1-1.729V9.266c0-0.139,0.112-0.25,0.25-0.25h3.536C6.904,9.034,7,9.126,7,9.25v2.027C6.405,11.624,6,12.26,6,13c0,1.104,0.896,2,2.002,2c1.105,0,2-0.896,2-2c0-0.738-0.404-1.376-1-1.723V9.25c0-0.124,0.098-0.216,0.215-0.234h3.535c0.137,0,0.25,0.111,0.25,0.25v2.012c-0.596,0.353-1,0.984-1,1.729c0,1.104,0.896,2,2,2s2-0.896,2-2C16.002,12.262,15.598,11.623,15.002,11.277z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/paintbrush.svg b/core/themes/stable/images/core/icons/000000/paintbrush.svg new file mode 100644 index 0000000000000000000000000000000000000000..947436d2bf9675f940e683aafcac9a5cc2c59488 --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/paintbrush.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M8.184 7.928l-1.905 1.983-3.538-2.436 4.714-4.713 2.623 3.183-1.894 1.983zm-1.746-7.523c-.236-.416-.803-.649-1.346.083-.259.349-4.727 4.764-4.91 4.983-.182.218-.294.721.044.976.34.258 5.611 3.933 5.611 3.933l-.225.229c.7.729.816.854 1.046.863.75.016 2.035-1.457 2.578-.854.541.604 3.537 3.979 3.537 3.979.51.531 1.305.559 1.815.041.521-.521.541-1.311.025-1.848 0 0-2.742-2.635-3.904-3.619-.578-.479.869-2.051.854-2.839-.008-.238-.125-.361-.823-1.095l-.22.243c0 .003-3.846-4.659-4.082-5.075z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/people.svg b/core/themes/stable/images/core/icons/000000/people.svg new file mode 100644 index 0000000000000000000000000000000000000000..c63938ccb76a05cd5e0a5214b23fa69406765a42 --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/people.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#000000" d="M6.722 11.291l.451-.17-.165-.32c-.536-1.039-.685-1.934-.761-2.672-.082-.808-.144-2.831 1.053-4.189.244-.278.493-.493.743-.675.012-.826-.135-1.766-.646-2.345-.618-.7-1.4-.787-1.4-.787l-.497-.055-.498.055s-.783.087-1.398.787c-.617.702-.717 1.948-.625 2.855.06.583.17 1.263.574 2.05.274.533.341.617.355 1.01.022.595.027 1.153-.671 1.538-.697.383-1.564.508-2.403 1.088-.596.41-.709 1.033-.78 1.459l-.051.41c-.029.273.173.498.448.498h5.012c.457-.24.89-.402 1.259-.537zM5.064 15.096c.07-.427.184-1.05.78-1.46.838-.581 1.708-.706 2.404-1.089.699-.385.693-.943.672-1.537-.014-.393-.08-.477-.354-1.01-.406-.787-.515-1.467-.576-2.049-.093-.909.008-2.155.625-2.856.615-.7 1.398-.787 1.398-.787l.492-.055h.002l.496.055s.781.087 1.396.787c.615.701.72 1.947.623 2.855-.062.583-.172 1.262-.571 2.049-.271.533-.341.617-.354 1.01-.021.595-.062 1.22.637 1.604.697.385 1.604.527 2.438 1.104.923.641.822 1.783.822 1.783-.022.275-.269.5-.542.5h-9.991c-.275 0-.477-.223-.448-.496l.051-.408z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/000000/puzzlepiece.svg b/core/themes/stable/images/core/icons/000000/puzzlepiece.svg new file mode 100644 index 0000000000000000000000000000000000000000..04cf0750c12e576d17afad9da633cd7342bf47ef --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/puzzlepiece.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M11.002 11v2.529c0 .275-.225.471-.5.471h-3c-.827 0-1.112-.754-.604-1.316l.81-.725c.509-.562.513-1.461-.097-2.01-.383-.344-1.027-.728-2.111-.728s-1.727.386-2.109.731c-.609.549-.606 1.45-.097 2.015l.808.717c.509.562.223 1.316-.602 1.316h-3c-.276 0-.5-.193-.5-.471v-9.029c0-.276.224-.5.5-.5h3c.825 0 1.111-.768.602-1.332l-.808-.73c-.51-.563-.513-1.465.097-2.014.382-.344 1.025-.731 2.109-.731s1.728.387 2.111.731c.608.548.606 1.45.097 2.014l-.81.73c-.509.564-.223 1.332.603 1.332h3c.274 0 .5.224.5.5v2.5c0 .825.642 1.111 1.233.602l.771-.808c.599-.51 1.547-.513 2.127.097.364.383.772 1.025.772 2.109s-.408 1.727-.771 2.109c-.58.604-1.529.604-2.127.097l-.77-.808c-.593-.509-1.234-.223-1.234.602z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/questionmark-disc.svg b/core/themes/stable/images/core/icons/000000/questionmark-disc.svg new file mode 100644 index 0000000000000000000000000000000000000000..e65b2c4f6d5cbcb007394f377b2f37de17c3d3f0 --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/questionmark-disc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm3 5c0 .551-.16 1.085-.477 1.586l-.158.22c-.07.093-.189.241-.361.393-.168.148-.35.299-.545.447l-.203.189-.141.129-.096.17-.021.235v.63h-2.001v-.704c.026-.396.078-.73.204-.999.125-.269.271-.498.439-.688l.225-.21-.01-.015.176-.14.137-.128c.186-.139.357-.277.516-.417l.148-.18c.098-.152.168-.323.168-.518 0-.552-.447-1-1-1s-1.002.448-1.002 1h-2c0-1.657 1.343-3 3.002-3 1.656 0 3 1.343 3 3zm-1.75 6.619c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.238c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.238z"/></svg> diff --git a/core/themes/stable/images/core/icons/000000/wrench.svg b/core/themes/stable/images/core/icons/000000/wrench.svg new file mode 100644 index 0000000000000000000000000000000000000000..373134aa9515fa8aefeba8ea17a0a00441a2ef5b --- /dev/null +++ b/core/themes/stable/images/core/icons/000000/wrench.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#000000" d="M14.416 11.586l-.01-.008v-.001l-5.656-5.656c.15-.449.252-.921.252-1.421 0-2.485-2.016-4.5-4.502-4.5-.505 0-.981.102-1.434.255l2.431 2.431-.588 2.196-2.196.588-2.445-2.445c-.162.464-.268.956-.268 1.475 0 2.486 2.014 4.5 4.5 4.5.5 0 .972-.102 1.421-.251l5.667 5.665c.781.781 2.047.781 2.828 0s.781-2.047 0-2.828z"/></svg> diff --git a/core/themes/stable/images/core/icons/004875/twistie-down.svg b/core/themes/stable/images/core/icons/004875/twistie-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..6cd6a786bbbec522474409f47f7e0d444b0f3b01 --- /dev/null +++ b/core/themes/stable/images/core/icons/004875/twistie-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#004875" d="M2.611 5.393c-.17-.216-.084-.393.191-.393h10.397c.275 0 .361.177.191.393l-5.08 6.464c-.17.216-.452.216-.622 0l-5.077-6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/004875/twistie-up.svg b/core/themes/stable/images/core/icons/004875/twistie-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..bf3b80ed01ebb6926d1c2622310ac01b995179d6 --- /dev/null +++ b/core/themes/stable/images/core/icons/004875/twistie-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#004875" d="M13.391 10.607c.17.216.084.393-.191.393h-10.398c-.275 0-.361-.177-.191-.393l5.08-6.464c.17-.216.45-.216.62 0l5.08 6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/0074bd/chevron-left.svg b/core/themes/stable/images/core/icons/0074bd/chevron-left.svg new file mode 100644 index 0000000000000000000000000000000000000000..122e1c09991a6c4ad3a0fb511a018107ff18aa32 --- /dev/null +++ b/core/themes/stable/images/core/icons/0074bd/chevron-left.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#0074bd" d="M7.951 7.645c-.193.196-.193.516 0 .71l3.258 3.29c.193.193.191.519-.002.709l-1.371 1.371c-.193.192-.512.191-.707 0l-5.335-5.371c-.194-.194-.194-.514 0-.708l5.335-5.369c.195-.195.514-.195.707-.001l1.371 1.371c.193.194.195.513.002.709l-3.258 3.289z"/></svg> diff --git a/core/themes/stable/images/core/icons/0074bd/chevron-right.svg b/core/themes/stable/images/core/icons/0074bd/chevron-right.svg new file mode 100644 index 0000000000000000000000000000000000000000..b16a8ce89d581648b8e560315a2c05100f159084 --- /dev/null +++ b/core/themes/stable/images/core/icons/0074bd/chevron-right.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#0074bd" d="M8.053 8.355c.193-.195.193-.517 0-.711l-3.26-3.289c-.193-.195-.192-.514.002-.709l1.371-1.371c.194-.194.512-.193.706.001l5.335 5.369c.195.195.195.515 0 .708l-5.335 5.37c-.194.192-.512.193-.706.002l-1.371-1.371c-.194-.195-.195-.514-.002-.709l3.26-3.29z"/></svg> diff --git a/core/themes/stable/images/core/icons/008ee6/twistie-down.svg b/core/themes/stable/images/core/icons/008ee6/twistie-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..23f6d9ac1b8bfe487bad1a5384bcdb5593e0a41f --- /dev/null +++ b/core/themes/stable/images/core/icons/008ee6/twistie-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#008ee6" d="M2.611 5.393c-.17-.216-.084-.393.191-.393h10.397c.275 0 .361.177.191.393l-5.08 6.464c-.17.216-.452.216-.622 0l-5.077-6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/008ee6/twistie-up.svg b/core/themes/stable/images/core/icons/008ee6/twistie-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..dc9dd8e9f7d84f6d0cedd1aded9433517d0fb8c1 --- /dev/null +++ b/core/themes/stable/images/core/icons/008ee6/twistie-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#008ee6" d="M13.391 10.607c.17.216.084.393-.191.393h-10.398c-.275 0-.361-.177-.191-.393l5.08-6.464c.17-.216.45-.216.62 0l5.08 6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/333333/caret-down.svg b/core/themes/stable/images/core/icons/333333/caret-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..4e48c8c9830036db493e5fb6ea15c568cc67ccef --- /dev/null +++ b/core/themes/stable/images/core/icons/333333/caret-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#333333" d="M3.8 5.4c-.165-.22-.075-.4.2-.4h8.002c.275 0 .365.18.199.4l-3.898 5.2c-.166.221-.436.221-.6 0l-3.903-5.2z"/></svg> diff --git a/core/themes/stable/images/core/icons/424242/loupe.svg b/core/themes/stable/images/core/icons/424242/loupe.svg new file mode 100644 index 0000000000000000000000000000000000000000..a38322ad8036824e9501df7bc961f45860b6ed76 --- /dev/null +++ b/core/themes/stable/images/core/icons/424242/loupe.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#424242" d="M14.648 12.788l-4.23-4.228c.525-.855.834-1.858.834-2.938 0-3.105-2.52-5.624-5.627-5.624-3.106.002-5.625 2.521-5.625 5.627 0 3.105 2.519 5.625 5.625 5.625 1.076 0 2.08-.309 2.936-.832l4.229 4.229c.194.195.515.195.707 0l1.151-1.146c.194-.2.194-.519 0-.713zm-13.35-7.163c0-2.39 1.938-4.327 4.327-4.327 2.391 0 4.328 1.937 4.328 4.327 0 2.391-1.936 4.327-4.328 4.327-2.39 0-4.327-1.936-4.327-4.327z"/></svg> diff --git a/core/themes/stable/images/core/icons/505050/loupe.svg b/core/themes/stable/images/core/icons/505050/loupe.svg new file mode 100644 index 0000000000000000000000000000000000000000..c91cca5ca847fe49134d57bc49ee08c51e105ffb --- /dev/null +++ b/core/themes/stable/images/core/icons/505050/loupe.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#505050" d="M14.648 12.788l-4.23-4.228c.525-.855.834-1.858.834-2.938 0-3.105-2.52-5.624-5.627-5.624-3.106.002-5.625 2.521-5.625 5.627 0 3.105 2.519 5.625 5.625 5.625 1.076 0 2.08-.309 2.936-.832l4.229 4.229c.194.195.515.195.707 0l1.151-1.146c.194-.2.194-.519 0-.713zm-13.35-7.163c0-2.39 1.938-4.327 4.327-4.327 2.391 0 4.328 1.937 4.328 4.327 0 2.391-1.936 4.327-4.328 4.327-2.39 0-4.327-1.936-4.327-4.327z"/></svg> diff --git a/core/themes/stable/images/core/icons/5181c6/chevron-disc-down.svg b/core/themes/stable/images/core/icons/5181c6/chevron-disc-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..6707c3038f6986c0842a77c70b8cfa8c84a0323e --- /dev/null +++ b/core/themes/stable/images/core/icons/5181c6/chevron-disc-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#5181C6" d="M8.002 1c-3.869 0-7.002 3.134-7.002 7s3.133 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm4.459 6.336l-4.105 4.105c-.196.189-.515.189-.708 0l-4.107-4.105c-.194-.194-.194-.513 0-.707l.977-.978c.194-.194.513-.194.707 0l2.422 2.421c.192.195.513.195.708 0l2.422-2.42c.188-.194.512-.194.707 0l.977.977c.193.194.193.513 0 .707z"/></svg> diff --git a/core/themes/stable/images/core/icons/5181c6/chevron-disc-up.svg b/core/themes/stable/images/core/icons/5181c6/chevron-disc-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..d94365fe8d24688c1104a3f500fedcaf05e1f1f1 --- /dev/null +++ b/core/themes/stable/images/core/icons/5181c6/chevron-disc-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#5181C6" d="M8.002 1c-3.867 0-7.002 3.134-7.002 7s3.135 7 7.002 7 7-3.134 7-7-3.133-7-7-7zm4.462 8.37l-.979.979c-.19.19-.516.19-.707 0l-2.422-2.419c-.196-.194-.515-.194-.708 0l-2.423 2.417c-.194.193-.513.193-.707 0l-.977-.976c-.194-.194-.194-.514 0-.707l4.106-4.106c.193-.194.515-.194.708 0l4.109 4.105c.19.192.19.513 0 .707z"/></svg> diff --git a/core/themes/stable/images/core/icons/5181c6/pencil.svg b/core/themes/stable/images/core/icons/5181c6/pencil.svg new file mode 100644 index 0000000000000000000000000000000000000000..209d96d33d3a95bf685506432e9cec3adf8cd577 --- /dev/null +++ b/core/themes/stable/images/core/icons/5181c6/pencil.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#5181C6" d="M14.545 3.042l-1.586-1.585c-.389-.389-1.025-.389-1.414 0l-1.293 1.293 3 3 1.293-1.293c.389-.389.389-1.026 0-1.415z"/><rect fill="#5181C6" x="5.129" y="3.8" transform="matrix(-.707 -.707 .707 -.707 6.189 20.064)" width="4.243" height="9.899"/><path fill="#5181C6" d="M.908 14.775c-.087.262.055.397.316.312l2.001-.667-1.65-1.646-.667 2.001z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/5181c6/twistie-down.svg b/core/themes/stable/images/core/icons/5181c6/twistie-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..7d04606bc76030c1be2bf5d42aa34952d7b3eabc --- /dev/null +++ b/core/themes/stable/images/core/icons/5181c6/twistie-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#5181C6" d="M2.611 5.393c-.17-.216-.084-.393.191-.393h10.397c.275 0 .361.177.191.393l-5.08 6.464c-.17.216-.452.216-.622 0l-5.077-6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/5181c6/twistie-up.svg b/core/themes/stable/images/core/icons/5181c6/twistie-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..f25f88937d54fcd92c0f95edda08763b6540c4ab --- /dev/null +++ b/core/themes/stable/images/core/icons/5181c6/twistie-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#5181C6" d="M13.391 10.607c.17.216.084.393-.191.393h-10.398c-.275 0-.361-.177-.191-.393l5.08-6.464c.17-.216.45-.216.62 0l5.08 6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/73b355/check.svg b/core/themes/stable/images/core/icons/73b355/check.svg new file mode 100644 index 0000000000000000000000000000000000000000..566cbc4c8e861890f47ea648f843511c68e38305 --- /dev/null +++ b/core/themes/stable/images/core/icons/73b355/check.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#73b355"><path d="M6.464 13.676c-.194.194-.513.194-.707 0l-4.96-4.955c-.194-.193-.194-.513 0-.707l1.405-1.407c.194-.195.512-.195.707 0l2.849 2.848c.194.193.513.193.707 0l6.629-6.626c.195-.194.514-.194.707 0l1.404 1.404c.193.194.193.513 0 .707l-8.741 8.736z"/></svg> \ No newline at end of file diff --git a/core/themes/stable/images/core/icons/787878/barchart.svg b/core/themes/stable/images/core/icons/787878/barchart.svg new file mode 100644 index 0000000000000000000000000000000000000000..1929619481207f7c7329dcddc9cb8cb605587a6d --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/barchart.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M4 13.529c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-4.25c0-.274.225-.5.5-.5h3c.275 0 .5.226.5.5v4.25zM10.002 13.529c0 .275-.225.5-.5.5h-3.002c-.275 0-.5-.225-.5-.5v-13c0-.275.225-.5.5-.5h3.002c.275 0 .5.225.5.5v13zM16.002 13.529c0 .275-.225.5-.5.5h-3c-.275 0-.5-.225-.5-.5v-9.5c0-.275.225-.5.5-.5h3c.275 0 .5.225.5.5v9.5z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/chevron-disc-down.svg b/core/themes/stable/images/core/icons/787878/chevron-disc-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..b3081503ee7ba9fe9f30c78c5b3c4de6a82d4179 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/chevron-disc-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M8.002 1c-3.869 0-7.002 3.134-7.002 7s3.133 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm4.459 6.336l-4.105 4.105c-.196.189-.515.189-.708 0l-4.107-4.105c-.194-.194-.194-.513 0-.707l.977-.978c.194-.194.513-.194.707 0l2.422 2.421c.192.195.513.195.708 0l2.422-2.42c.188-.194.512-.194.707 0l.977.977c.193.194.193.513 0 .707z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/chevron-disc-up.svg b/core/themes/stable/images/core/icons/787878/chevron-disc-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..13d86d925e20bbf4cc528f49082212c143a75ffe --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/chevron-disc-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M8.002 1c-3.867 0-7.002 3.134-7.002 7s3.135 7 7.002 7 7-3.134 7-7-3.133-7-7-7zm4.462 8.37l-.979.979c-.19.19-.516.19-.707 0l-2.422-2.419c-.196-.194-.515-.194-.708 0l-2.423 2.417c-.194.193-.513.193-.707 0l-.977-.976c-.194-.194-.194-.514 0-.707l4.106-4.106c.193-.194.515-.194.708 0l4.109 4.105c.19.192.19.513 0 .707z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/cog.svg b/core/themes/stable/images/core/icons/787878/cog.svg new file mode 100644 index 0000000000000000000000000000000000000000..cf8c232dfa0b2872b4b1d7a0580a620ea3047373 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/cog.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M15.176 9.041c.045-.327.076-.658.076-.998 0-.36-.035-.71-.086-1.056l-2.275-.293c-.115-.426-.283-.827-.498-1.201l1.396-1.808c-.416-.551-.906-1.039-1.459-1.452l-1.807 1.391c-.373-.215-.774-.383-1.2-.499l-.292-2.252c-.338-.048-.677-.081-1.029-.081s-.694.033-1.032.082l-.291 2.251c-.426.116-.826.284-1.2.499l-1.805-1.391c-.552.413-1.044.901-1.459 1.452l1.395 1.808c-.215.374-.383.774-.499 1.2l-2.276.294c-.05.346-.085.696-.085 1.056 0 .34.031.671.077.998l2.285.295c.115.426.284.826.499 1.2l-1.417 1.836c.411.55.896 1.038 1.443 1.452l1.842-1.42c.374.215.774.383 1.2.498l.298 2.311c.337.047.677.08 1.025.08s.688-.033 1.021-.08l.299-2.311c.426-.115.826-.283 1.201-.498l1.842 1.42c.547-.414 1.031-.902 1.443-1.452l-1.416-1.837c.215-.373.383-.773.498-1.199l2.286-.295zm-7.174 1.514c-1.406 0-2.543-1.137-2.543-2.541 0-1.402 1.137-2.541 2.543-2.541 1.402 0 2.541 1.138 2.541 2.541 0 1.404-1.139 2.541-2.541 2.541z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/ex.svg b/core/themes/stable/images/core/icons/787878/ex.svg new file mode 100644 index 0000000000000000000000000000000000000000..ca0d409dc5972dd461904a87ad39dd22f17a0b3e --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/ex.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M3.51 13.925c.194.194.512.195.706.001l3.432-3.431c.194-.194.514-.194.708 0l3.432 3.431c.192.194.514.193.707-.001l1.405-1.417c.191-.195.189-.514-.002-.709l-3.397-3.4c-.192-.193-.192-.514-.002-.708l3.401-3.43c.189-.195.189-.515 0-.709l-1.407-1.418c-.195-.195-.513-.195-.707-.001l-3.43 3.431c-.195.194-.516.194-.708 0l-3.432-3.431c-.195-.195-.512-.194-.706.001l-1.407 1.417c-.194.195-.194.515 0 .71l3.403 3.429c.193.195.193.514-.001.708l-3.4 3.399c-.194.195-.195.516-.001.709l1.406 1.419z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/file.svg b/core/themes/stable/images/core/icons/787878/file.svg new file mode 100644 index 0000000000000000000000000000000000000000..affde4c834e7f7749bcff5b6a407c4911ca48c03 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/file.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M12.502 7h-5c-.276 0-.502-.225-.502-.5v-5c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v12.029c0 .275.225.5.5.5h9.002c.275 0 .5-.225.5-.5v-6.029c0-.275-.225-.5-.5-.5zM8.502 6h4c.275 0 .34-.159.146-.354l-4.293-4.292c-.195-.195-.353-.129-.353.146v4c0 .275.225.5.5.5z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/key.svg b/core/themes/stable/images/core/icons/787878/key.svg new file mode 100644 index 0000000000000000000000000000000000000000..6558c8e28e7677f472d0e17b495dad646b4bb95a --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/key.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px"><path fill="#787878" d="M13.727,7.714C12.418,6.406,10.479,6.145,8.9,6.896L3.001,1H0v2h1l0,0v1.618L1.378,5H3v1h1v1.622h1.622l0.864,0.862L5.5,9.5l0.992,0.99c-0.062,1.162,0.335,2.346,1.223,3.234c1.66,1.653,4.352,1.653,6.012,0C15.385,12.064,15.385,9.373,13.727,7.714z M12.898,12.896c-0.646,0.646-1.693,0.646-2.338,0c-0.646-0.646-0.646-1.692,0-2.338c0.645-0.646,1.688-0.646,2.338,0C13.543,11.204,13.543,12.252,12.898,12.896z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/move.svg b/core/themes/stable/images/core/icons/787878/move.svg new file mode 100644 index 0000000000000000000000000000000000000000..788b7e1a8d45b1b5e8baa8b19ec3cf9c050df2cc --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/move.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M14.904 7.753l-2.373-2.372c-.291-.292-.529-.193-.529.22v1.399h-3v-3h1.398c.414 0 .512-.239.221-.53l-2.371-2.372c-.137-.136-.36-.136-.497 0l-2.372 2.372c-.292.292-.193.53.22.53h1.399v3h-3v-1.369c0-.413-.239-.511-.53-.22l-2.372 2.372c-.136.136-.136.359 0 .494l2.372 2.372c.291.292.53.192.53-.219v-1.43h3v3h-1.4c-.413 0-.511.238-.22.529l2.374 2.373c.137.137.36.137.495 0l2.373-2.373c.29-.291.19-.529-.222-.529h-1.398v-3h3v1.4c0 .412.238.511.529.219l2.373-2.371c.137-.137.137-.359 0-.495z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/orgchart.svg b/core/themes/stable/images/core/icons/787878/orgchart.svg new file mode 100644 index 0000000000000000000000000000000000000000..84888948aef28f7a0543b4ff85c08b2161576ff4 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/orgchart.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px"><path fill="#787878" d="M15.002,11.277c0-0.721,0-1.471,0-2.014c0-1.456-0.824-2.25-2.25-2.25c-1.428,0-3.5,0-3.5,0c-0.139,0-0.25-0.112-0.25-0.25v-2.04c0.596-0.346,1-0.984,1-1.723c0-1.104-0.895-2-2-2C6.896,1,6,1.896,6,3c0,0.738,0.405,1.376,1,1.722v2.042c0,0.138-0.112,0.25-0.25,0.25c0,0-2.138,0-3.5,0S1,7.932,1,9.266c0,0.521,0,1.277,0,2.012c-0.595,0.353-1,0.984-1,1.729c0,1.104,0.896,2,2,2s2-0.896,2-2c0-0.732-0.405-1.377-1-1.729V9.266c0-0.139,0.112-0.25,0.25-0.25h3.536C6.904,9.034,7,9.126,7,9.25v2.027C6.405,11.624,6,12.26,6,13c0,1.104,0.896,2,2.002,2c1.105,0,2-0.896,2-2c0-0.738-0.404-1.376-1-1.723V9.25c0-0.124,0.098-0.216,0.215-0.234h3.535c0.137,0,0.25,0.111,0.25,0.25v2.012c-0.596,0.353-1,0.984-1,1.729c0,1.104,0.896,2,2,2s2-0.896,2-2C16.002,12.262,15.598,11.623,15.002,11.277z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/paintbrush.svg b/core/themes/stable/images/core/icons/787878/paintbrush.svg new file mode 100644 index 0000000000000000000000000000000000000000..fdbd29650a169677b79320a3a185d6774561cc33 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/paintbrush.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M8.184 7.928l-1.905 1.983-3.538-2.436 4.714-4.713 2.623 3.183-1.894 1.983zm-1.746-7.523c-.236-.416-.803-.649-1.346.083-.259.349-4.727 4.764-4.91 4.983-.182.218-.294.721.044.976.34.258 5.611 3.933 5.611 3.933l-.225.229c.7.729.816.854 1.046.863.75.016 2.035-1.457 2.578-.854.541.604 3.537 3.979 3.537 3.979.51.531 1.305.559 1.815.041.521-.521.541-1.311.025-1.848 0 0-2.742-2.635-3.904-3.619-.578-.479.869-2.051.854-2.839-.008-.238-.125-.361-.823-1.095l-.22.243c0 .003-3.846-4.659-4.082-5.075z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/pencil.svg b/core/themes/stable/images/core/icons/787878/pencil.svg new file mode 100644 index 0000000000000000000000000000000000000000..ca821f305df714264bf02c301a437fd0df01582e --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/pencil.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M14.545 3.042l-1.586-1.585c-.389-.389-1.025-.389-1.414 0l-1.293 1.293 3 3 1.293-1.293c.389-.389.389-1.026 0-1.415z"/><rect fill="#787878" x="5.129" y="3.8" transform="matrix(-.707 -.707 .707 -.707 6.189 20.064)" width="4.243" height="9.899"/><path fill="#787878" d="M.908 14.775c-.087.262.055.397.316.312l2.001-.667-1.65-1.646-.667 2.001z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/people.svg b/core/themes/stable/images/core/icons/787878/people.svg new file mode 100644 index 0000000000000000000000000000000000000000..9b9c6640c4471dbb2c70bd24f9ccc47962226026 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/people.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M6.722 11.291l.451-.17-.165-.32c-.536-1.039-.685-1.934-.761-2.672-.082-.808-.144-2.831 1.053-4.189.244-.278.493-.493.743-.675.012-.826-.135-1.766-.646-2.345-.618-.7-1.4-.787-1.4-.787l-.497-.055-.498.055s-.783.087-1.398.787c-.617.702-.717 1.948-.625 2.855.06.583.17 1.263.574 2.05.274.533.341.617.355 1.01.022.595.027 1.153-.671 1.538-.697.383-1.564.508-2.403 1.088-.596.41-.709 1.033-.78 1.459l-.051.41c-.029.273.173.498.448.498h5.012c.457-.24.89-.402 1.259-.537zM5.064 15.096c.07-.427.184-1.05.78-1.46.838-.581 1.708-.706 2.404-1.089.699-.385.693-.943.672-1.537-.014-.393-.08-.477-.354-1.01-.406-.787-.515-1.467-.576-2.049-.093-.909.008-2.155.625-2.856.615-.7 1.398-.787 1.398-.787l.492-.055h.002l.496.055s.781.087 1.396.787c.615.701.72 1.947.623 2.855-.062.583-.172 1.262-.571 2.049-.271.533-.341.617-.354 1.01-.021.595-.062 1.22.637 1.604.697.385 1.604.527 2.438 1.104.923.641.822 1.783.822 1.783-.022.275-.269.5-.542.5h-9.991c-.275 0-.477-.223-.448-.496l.051-.408z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/push-left.svg b/core/themes/stable/images/core/icons/787878/push-left.svg new file mode 100644 index 0000000000000000000000000000000000000000..dc053baf435666a2020dc5b6099826ac1a93aa67 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/push-left.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M2.5 2h-2.491v12.029h2.491c.276 0 .5-.225.5-.5v-11.029c0-.276-.224-.5-.5-.5zM14.502 6.029h-4c-.275 0-.5-.225-.5-.5v-1c0-.275-.16-.341-.354-.146l-3.294 3.292c-.194.194-.194.513 0 .708l3.294 3.293c.188.193.354.129.354-.146v-1c0-.271.227-.5.5-.5h4c.275 0 .5-.225.5-.5v-3c0-.276-.225-.501-.5-.501z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/push-right.svg b/core/themes/stable/images/core/icons/787878/push-right.svg new file mode 100644 index 0000000000000000000000000000000000000000..f42f1296e11e6a1c988573ea10f4850ef60d7af6 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/push-right.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M13.51 2c-.275 0-.5.224-.5.5v11.029c0 .275.225.5.5.5h2.492v-12.029h-2.492zM6.362 4.382c-.194-.194-.353-.128-.353.147v1c0 .275-.225.5-.5.5h-4c-.275 0-.5.225-.5.5v3c0 .271.225.5.5.5h4c.275 0 .5.225.5.5v1c0 .271.159.34.354.146l3.295-3.293c.193-.194.193-.513 0-.708l-3.296-3.292z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/push-up.svg b/core/themes/stable/images/core/icons/787878/push-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..f92928452c87a001d657d1c822689bb7cd31c915 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/push-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#787878" d="M1.986.019v2.491c0 .276.225.5.5.5h11.032c.275 0 .5-.224.5-.5v-2.491h-12.032zM8.342 6.334c-.193-.194-.513-.194-.708 0l-3.294 3.293c-.194.195-.129.353.146.353h1c.275 0 .5.227.5.5v4.02c0 .275.225.5.5.5h3.002c.271 0 .5-.225.5-.5v-4.02c0-.274.225-.5.5-.5h1c.271 0 .34-.158.145-.354l-3.291-3.292z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/787878/puzzlepiece.svg b/core/themes/stable/images/core/icons/787878/puzzlepiece.svg new file mode 100644 index 0000000000000000000000000000000000000000..c18c813e31394644d2c439dd4eb5f344a2a58263 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/puzzlepiece.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M11.002 11v2.529c0 .275-.225.471-.5.471h-3c-.827 0-1.112-.754-.604-1.316l.81-.725c.509-.562.513-1.461-.097-2.01-.383-.344-1.027-.728-2.111-.728s-1.727.386-2.109.731c-.609.549-.606 1.45-.097 2.015l.808.717c.509.562.223 1.316-.602 1.316h-3c-.276 0-.5-.193-.5-.471v-9.029c0-.276.224-.5.5-.5h3c.825 0 1.111-.768.602-1.332l-.808-.73c-.51-.563-.513-1.465.097-2.014.382-.344 1.025-.731 2.109-.731s1.728.387 2.111.731c.608.548.606 1.45.097 2.014l-.81.73c-.509.564-.223 1.332.603 1.332h3c.274 0 .5.224.5.5v2.5c0 .825.642 1.111 1.233.602l.771-.808c.599-.51 1.547-.513 2.127.097.364.383.772 1.025.772 2.109s-.408 1.727-.771 2.109c-.58.604-1.529.604-2.127.097l-.77-.808c-.593-.509-1.234-.223-1.234.602z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/questionmark-disc.svg b/core/themes/stable/images/core/icons/787878/questionmark-disc.svg new file mode 100644 index 0000000000000000000000000000000000000000..2886d640d0df81a6299ba1c9e09f6149a3336808 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/questionmark-disc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm3 5c0 .551-.16 1.085-.477 1.586l-.158.22c-.07.093-.189.241-.361.393-.168.148-.35.299-.545.447l-.203.189-.141.129-.096.17-.021.235v.63h-2.001v-.704c.026-.396.078-.73.204-.999.125-.269.271-.498.439-.688l.225-.21-.01-.015.176-.14.137-.128c.186-.139.357-.277.516-.417l.148-.18c.098-.152.168-.323.168-.518 0-.552-.447-1-1-1s-1.002.448-1.002 1h-2c0-1.657 1.343-3 3.002-3 1.656 0 3 1.343 3 3zm-1.75 6.619c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.238c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.238z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/twistie-down.svg b/core/themes/stable/images/core/icons/787878/twistie-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..b3692bde80ba3837dfbbe55502c9f65b09e81d7a --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/twistie-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M2.611 5.393c-.17-.216-.084-.393.191-.393h10.397c.275 0 .361.177.191.393l-5.08 6.464c-.17.216-.452.216-.622 0l-5.077-6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/twistie-up.svg b/core/themes/stable/images/core/icons/787878/twistie-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..1fc34ce1964445d6e177ffc20006cd7a3247f79d --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/twistie-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M13.391 10.607c.17.216.084.393-.191.393h-10.398c-.275 0-.361-.177-.191-.393l5.08-6.464c.17-.216.45-.216.62 0l5.08 6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/787878/wrench.svg b/core/themes/stable/images/core/icons/787878/wrench.svg new file mode 100644 index 0000000000000000000000000000000000000000..0f38bdf616d8b00a00722dd3b2114feb5faf6dc2 --- /dev/null +++ b/core/themes/stable/images/core/icons/787878/wrench.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#787878" d="M14.416 11.586l-.01-.008v-.001l-5.656-5.656c.15-.449.252-.921.252-1.421 0-2.485-2.016-4.5-4.502-4.5-.505 0-.981.102-1.434.255l2.431 2.431-.588 2.196-2.196.588-2.445-2.445c-.162.464-.268.956-.268 1.475 0 2.486 2.014 4.5 4.5 4.5.5 0 .972-.102 1.421-.251l5.667 5.665c.781.781 2.047.781 2.828 0s.781-2.047 0-2.828z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/chevron-disc-left.svg b/core/themes/stable/images/core/icons/bebebe/chevron-disc-left.svg new file mode 100644 index 0000000000000000000000000000000000000000..70cf58c40f75fdb6b84a66bdea025ea62f739a9d --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/chevron-disc-left.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M8.002 1c-3.868 0-7.002 3.133-7.002 7 0 3.865 3.134 7 7.002 7 3.865 0 7-3.135 7-7 0-3.867-3.135-7-7-7zm2.348 10.482l-.977.977c-.195.193-.514.193-.707 0l-4.108-4.105c-.194-.195-.194-.514 0-.708l4.108-4.105c.193-.194.512-.194.707 0l.979.977c.191.194.191.513 0 .707l-2.422 2.421c-.195.194-.195.515 0 .708l2.419 2.421c.196.19.196.512.001.707z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/chevron-disc-right.svg b/core/themes/stable/images/core/icons/bebebe/chevron-disc-right.svg new file mode 100644 index 0000000000000000000000000000000000000000..d026581793bd72e1b9799e04b7938aa1de6eb04a --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/chevron-disc-right.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M8.002 1c-3.868 0-7.002 3.135-7.002 7 0 3.867 3.134 7 7.002 7 3.865 0 7-3.133 7-7 0-3.865-3.135-7-7-7zm3.441 7.357l-4.106 4.104c-.194.191-.514.191-.708 0l-.978-.979c-.194-.193-.194-.518 0-.707l2.423-2.421c.195-.195.195-.514 0-.708l-2.422-2.421c-.194-.194-.194-.513 0-.707l.977-.977c.194-.194.514-.194.708 0l4.106 4.108c.191.194.191.515 0 .708z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/cog.svg b/core/themes/stable/images/core/icons/bebebe/cog.svg new file mode 100644 index 0000000000000000000000000000000000000000..31f8d49abd3f246cb22fc6cd889405459e1fbc7f --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/cog.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M15.176 9.041c.045-.327.076-.658.076-.998 0-.36-.035-.71-.086-1.056l-2.275-.293c-.115-.426-.283-.827-.498-1.201l1.396-1.808c-.416-.551-.906-1.039-1.459-1.452l-1.807 1.391c-.373-.215-.774-.383-1.2-.499l-.292-2.252c-.338-.048-.677-.081-1.029-.081s-.694.033-1.032.082l-.291 2.251c-.426.116-.826.284-1.2.499l-1.805-1.391c-.552.413-1.044.901-1.459 1.452l1.395 1.808c-.215.374-.383.774-.499 1.2l-2.276.294c-.05.346-.085.696-.085 1.056 0 .34.031.671.077.998l2.285.295c.115.426.284.826.499 1.2l-1.417 1.836c.411.55.896 1.038 1.443 1.452l1.842-1.42c.374.215.774.383 1.2.498l.298 2.311c.337.047.677.08 1.025.08s.688-.033 1.021-.08l.299-2.311c.426-.115.826-.283 1.201-.498l1.842 1.42c.547-.414 1.031-.902 1.443-1.452l-1.416-1.837c.215-.373.383-.773.498-1.199l2.286-.295zm-7.174 1.514c-1.406 0-2.543-1.137-2.543-2.541 0-1.402 1.137-2.541 2.543-2.541 1.402 0 2.541 1.138 2.541 2.541 0 1.404-1.139 2.541-2.541 2.541z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/ex.svg b/core/themes/stable/images/core/icons/bebebe/ex.svg new file mode 100644 index 0000000000000000000000000000000000000000..bc4f40baf27acce4a412f72a054897a11a3a9172 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/ex.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M3.51 13.925c.194.194.512.195.706.001l3.432-3.431c.194-.194.514-.194.708 0l3.432 3.431c.192.194.514.193.707-.001l1.405-1.417c.191-.195.189-.514-.002-.709l-3.397-3.4c-.192-.193-.192-.514-.002-.708l3.401-3.43c.189-.195.189-.515 0-.709l-1.407-1.418c-.195-.195-.513-.195-.707-.001l-3.43 3.431c-.195.194-.516.194-.708 0l-3.432-3.431c-.195-.195-.512-.194-.706.001l-1.407 1.417c-.194.195-.194.515 0 .71l3.403 3.429c.193.195.193.514-.001.708l-3.4 3.399c-.194.195-.195.516-.001.709l1.406 1.419z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/hamburger.svg b/core/themes/stable/images/core/icons/bebebe/hamburger.svg new file mode 100644 index 0000000000000000000000000000000000000000..7d984d219d5cd434cfc12ae26acdd29b2d8fae26 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/hamburger.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#bebebe" d="M14.752 6h-13.502c-.69 0-1.25.56-1.25 1.25v.5c0 .689.56 1.25 1.25 1.25h13.502c.689 0 1.25-.561 1.25-1.25v-.5c0-.69-.561-1.25-1.25-1.25zM14.752 0h-13.502c-.69 0-1.25.56-1.25 1.25v.5c0 .69.56 1.25 1.25 1.25h13.502c.689 0 1.25-.56 1.25-1.25v-.5c0-.69-.561-1.25-1.25-1.25zM14.752 12h-13.502c-.69 0-1.25.561-1.25 1.25v.5c0 .689.56 1.25 1.25 1.25h13.502c.689 0 1.25-.561 1.25-1.25v-.5c0-.689-.561-1.25-1.25-1.25z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/house.svg b/core/themes/stable/images/core/icons/bebebe/house.svg new file mode 100644 index 0000000000000000000000000000000000000000..c4a88345db654ab5e868a110d6687f6a5d00dbae --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/house.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><polygon fill="#bebebe" points="8.002,0 0,8 1,9 2,9 2,15 6.5,15 6.5,10 9.502,10 9.502,15 14.002,15 14.002,9 15.002,9 16.002,8"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/key.svg b/core/themes/stable/images/core/icons/bebebe/key.svg new file mode 100644 index 0000000000000000000000000000000000000000..8cf85d87cd18d0782789d18953849e6f7792da66 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/key.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px"><path fill="#bebebe" d="M13.727,7.714C12.418,6.406,10.479,6.145,8.9,6.896L3.001,1H0v2h1l0,0v1.618L1.378,5H3v1h1v1.622h1.622l0.864,0.862L5.5,9.5l0.992,0.99c-0.062,1.162,0.335,2.346,1.223,3.234c1.66,1.653,4.352,1.653,6.012,0C15.385,12.064,15.385,9.373,13.727,7.714z M12.898,12.896c-0.646,0.646-1.693,0.646-2.338,0c-0.646-0.646-0.646-1.692,0-2.338c0.645-0.646,1.688-0.646,2.338,0C13.543,11.204,13.543,12.252,12.898,12.896z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/move.svg b/core/themes/stable/images/core/icons/bebebe/move.svg new file mode 100644 index 0000000000000000000000000000000000000000..98a0f91cc4b465308f7e9c66101ab7a27074167a --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/move.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M14.904 7.753l-2.373-2.372c-.291-.292-.529-.193-.529.22v1.399h-3v-3h1.398c.414 0 .512-.239.221-.53l-2.371-2.372c-.137-.136-.36-.136-.497 0l-2.372 2.372c-.292.292-.193.53.22.53h1.399v3h-3v-1.369c0-.413-.239-.511-.53-.22l-2.372 2.372c-.136.136-.136.359 0 .494l2.372 2.372c.291.292.53.192.53-.219v-1.43h3v3h-1.4c-.413 0-.511.238-.22.529l2.374 2.373c.137.137.36.137.495 0l2.373-2.373c.29-.291.19-.529-.222-.529h-1.398v-3h3v1.4c0 .412.238.511.529.219l2.373-2.371c.137-.137.137-.359 0-.495z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/pencil.svg b/core/themes/stable/images/core/icons/bebebe/pencil.svg new file mode 100644 index 0000000000000000000000000000000000000000..cdfe4c2b822688e37a8945918c9469a5dc964b2e --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/pencil.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#bebebe" d="M14.545 3.042l-1.586-1.585c-.389-.389-1.025-.389-1.414 0l-1.293 1.293 3 3 1.293-1.293c.389-.389.389-1.026 0-1.415z"/><rect fill="#bebebe" x="5.129" y="3.8" transform="matrix(-.707 -.707 .707 -.707 6.189 20.064)" width="4.243" height="9.899"/><path fill="#bebebe" d="M.908 14.775c-.087.262.055.397.316.312l2.001-.667-1.65-1.646-.667 2.001z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/person.svg b/core/themes/stable/images/core/icons/bebebe/person.svg new file mode 100644 index 0000000000000000000000000000000000000000..f44e1fd58d3346b3299802047e5e12f7e7de38e8 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/person.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M1 15c-.275 0-.498-.225-.496-.5 0 0 .007-.746 1.071-1.512 1.138-.818 2.347-.969 3.308-1.498s.954-1.299.925-2.115c-.019-.543-.112-.657-.489-1.392-.556-1.084-.709-2.021-.791-2.823-.127-1.252.011-3.035.86-4.001.847-.964 2.114-1.104 2.114-1.104l.5-.055.498.055s1.266.14 2.113 1.104c.85.966.988 2.75.859 4.001-.08.802-.234 1.739-.791 2.823-.377.734-.476.849-.488 1.392-.029.816-.035 1.586.926 2.115s2.17.68 3.307 1.498c1.064.766 1.072 1.512 1.072 1.512.002.275-.221.5-.496.5h-14.002z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/push-left.svg b/core/themes/stable/images/core/icons/bebebe/push-left.svg new file mode 100644 index 0000000000000000000000000000000000000000..6fe779cc7dd41591b7ec5cf68d3c630b64bd397f --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/push-left.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#bebebe" d="M2.5 2h-2.491v12.029h2.491c.276 0 .5-.225.5-.5v-11.029c0-.276-.224-.5-.5-.5zM14.502 6.029h-4c-.275 0-.5-.225-.5-.5v-1c0-.275-.16-.341-.354-.146l-3.294 3.292c-.194.194-.194.513 0 .708l3.294 3.293c.188.193.354.129.354-.146v-1c0-.271.227-.5.5-.5h4c.275 0 .5-.225.5-.5v-3c0-.276-.225-.501-.5-.501z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/push-right.svg b/core/themes/stable/images/core/icons/bebebe/push-right.svg new file mode 100644 index 0000000000000000000000000000000000000000..c79edc21d9373d56e50e93eb1c06c0d46e8837f7 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/push-right.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#bebebe" d="M13.51 2c-.275 0-.5.224-.5.5v11.029c0 .275.225.5.5.5h2.492v-12.029h-2.492zM6.362 4.382c-.194-.194-.353-.128-.353.147v1c0 .275-.225.5-.5.5h-4c-.275 0-.5.225-.5.5v3c0 .271.225.5.5.5h4c.275 0 .5.225.5.5v1c0 .271.159.34.354.146l3.295-3.293c.193-.194.193-.513 0-.708l-3.296-3.292z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/push-up.svg b/core/themes/stable/images/core/icons/bebebe/push-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..3de7aaccf61529bde4da918a6c901aa1bd4af432 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/push-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#bebebe" d="M1.986.019v2.491c0 .276.225.5.5.5h11.032c.275 0 .5-.224.5-.5v-2.491h-12.032zM8.342 6.334c-.193-.194-.513-.194-.708 0l-3.294 3.293c-.194.195-.129.353.146.353h1c.275 0 .5.227.5.5v4.02c0 .275.225.5.5.5h3.002c.271 0 .5-.225.5-.5v-4.02c0-.274.225-.5.5-.5h1c.271 0 .34-.158.145-.354l-3.291-3.292z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/questionmark-disc.svg b/core/themes/stable/images/core/icons/bebebe/questionmark-disc.svg new file mode 100644 index 0000000000000000000000000000000000000000..1363940d5e871dbf31588d3aacf2fd74d27a8fb0 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/questionmark-disc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm3 5c0 .551-.16 1.085-.477 1.586l-.158.22c-.07.093-.189.241-.361.393-.168.148-.35.299-.545.447l-.203.189-.141.129-.096.17-.021.235v.63h-2.001v-.704c.026-.396.078-.73.204-.999.125-.269.271-.498.439-.688l.225-.21-.01-.015.176-.14.137-.128c.186-.139.357-.277.516-.417l.148-.18c.098-.152.168-.323.168-.518 0-.552-.447-1-1-1s-1.002.448-1.002 1h-2c0-1.657 1.343-3 3.002-3 1.656 0 3 1.343 3 3zm-1.75 6.619c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.238c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.238z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/star-empty.svg b/core/themes/stable/images/core/icons/bebebe/star-empty.svg new file mode 100644 index 0000000000000000000000000000000000000000..8d95a010eca2143687d4652a402de8aa95be2c06 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/star-empty.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M15.455 5.468c-.107-.282-.377-.468-.68-.468h-4.26l-1.841-4.542c-.108-.277-.375-.458-.672-.458s-.565.181-.674.458l-1.843 4.542h-4.259c-.301 0-.571.186-.678.468-.108.282-.029.6.196.8l3.438 3.107-1.122 4.73c-.07.291.046.595.292.766.124.086.269.129.413.129.142 0 .283-.041.406-.124l3.831-2.583 3.828 2.583c.123.083.264.124.406.124.145 0 .289-.043.412-.129.246-.171.356-.475.293-.766l-1.121-4.73 3.438-3.107c.224-.2.304-.519.197-.8zm-5.021 3.475l.982 4.146-3.414-2.304-3.416 2.304.982-4.146-2.98-2.693h3.739l1.675-4.128 1.672 4.128h3.74l-2.98 2.693z"/></svg> diff --git a/core/themes/stable/images/core/icons/bebebe/star.svg b/core/themes/stable/images/core/icons/bebebe/star.svg new file mode 100644 index 0000000000000000000000000000000000000000..66d3313c2aa160e328be700e38ec161deebad716 --- /dev/null +++ b/core/themes/stable/images/core/icons/bebebe/star.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#bebebe" d="M12.236 15c-.146 0-.283-.041-.406-.124l-3.828-2.583-3.83 2.583c-.123.083-.265.124-.406.124-.145 0-.289-.043-.413-.129-.246-.171-.362-.475-.292-.766l1.122-4.73-3.439-3.107c-.225-.2-.303-.519-.196-.8.106-.282.376-.468.678-.468h4.259l1.843-4.542c.109-.277.377-.458.674-.458.297 0 .564.181.674.458l1.84 4.542h4.262c.306 0 .57.186.683.468.104.281.024.601-.196.8l-3.439 3.107 1.121 4.73c.065.291-.047.595-.293.766-.129.086-.273.129-.418.129z"/></svg> diff --git a/core/themes/stable/images/core/icons/e29700/warning.svg b/core/themes/stable/images/core/icons/e29700/warning.svg new file mode 100644 index 0000000000000000000000000000000000000000..1498a41f4d7ec3466a0409f225eb5e9097ef9fd8 --- /dev/null +++ b/core/themes/stable/images/core/icons/e29700/warning.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#e29700"><path d="M14.66 12.316l-5.316-10.633c-.738-1.476-1.946-1.476-2.685 0l-5.317 10.633c-.738 1.477.008 2.684 1.658 2.684h10.002c1.65 0 2.396-1.207 1.658-2.684zm-7.66-8.316h2.002v5h-2.002v-5zm2.252 8.615c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.239c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.239z"/></svg> \ No newline at end of file diff --git a/core/themes/stable/images/core/icons/e32700/error.svg b/core/themes/stable/images/core/icons/e32700/error.svg new file mode 100644 index 0000000000000000000000000000000000000000..151a1e67c929d1d8b01950224811c0a658e1aea9 --- /dev/null +++ b/core/themes/stable/images/core/icons/e32700/error.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="#e32700"><path d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm4.025 9.284c.062.063.1.149.1.239 0 .091-.037.177-.1.24l-1.262 1.262c-.064.062-.15.1-.24.1s-.176-.036-.24-.1l-2.283-2.283-2.286 2.283c-.064.062-.15.1-.24.1s-.176-.036-.24-.1l-1.261-1.262c-.063-.062-.1-.148-.1-.24 0-.088.036-.176.1-.238l2.283-2.285-2.283-2.284c-.063-.064-.1-.15-.1-.24s.036-.176.1-.24l1.262-1.262c.063-.063.149-.1.24-.1.089 0 .176.036.24.1l2.285 2.284 2.283-2.284c.064-.063.15-.1.24-.1s.176.036.24.1l1.262 1.262c.062.063.1.149.1.24 0 .089-.037.176-.1.24l-2.283 2.284 2.283 2.284z"/></svg> diff --git a/core/themes/stable/images/core/icons/ee0000/required.svg b/core/themes/stable/images/core/icons/ee0000/required.svg new file mode 100644 index 0000000000000000000000000000000000000000..f7882d6df9b941fe722f3e6921f122e39b11f20d --- /dev/null +++ b/core/themes/stable/images/core/icons/ee0000/required.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#EE0000" d="M0,7.562l1.114-3.438c2.565,0.906,4.43,1.688,5.59,2.35C6.398,3.553,6.237,1.544,6.22,0.447h3.511 c-0.05,1.597-0.234,3.6-0.558,6.003c1.664-0.838,3.566-1.613,5.714-2.325L16,7.562c-2.05,0.678-4.06,1.131-6.028,1.356 c0.984,0.856,2.372,2.381,4.166,4.575l-2.906,2.059c-0.935-1.274-2.041-3.009-3.316-5.206c-1.194,2.275-2.244,4.013-3.147,5.206 l-2.856-2.059c1.872-2.307,3.211-3.832,4.017-4.575C3.849,8.516,1.872,8.062,0,7.562"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/ex.svg b/core/themes/stable/images/core/icons/ffffff/ex.svg new file mode 100644 index 0000000000000000000000000000000000000000..24c13610d9d56709524fd9fab8c1beea28b5148f --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/ex.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#ffffff" d="M3.51 13.925c.194.194.512.195.706.001l3.432-3.431c.194-.194.514-.194.708 0l3.432 3.431c.192.194.514.193.707-.001l1.405-1.417c.191-.195.189-.514-.002-.709l-3.397-3.4c-.192-.193-.192-.514-.002-.708l3.401-3.43c.189-.195.189-.515 0-.709l-1.407-1.418c-.195-.195-.513-.195-.707-.001l-3.43 3.431c-.195.194-.516.194-.708 0l-3.432-3.431c-.195-.195-.512-.194-.706.001l-1.407 1.417c-.194.195-.194.515 0 .71l3.403 3.429c.193.195.193.514-.001.708l-3.4 3.399c-.194.195-.195.516-.001.709l1.406 1.419z"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/hamburger.svg b/core/themes/stable/images/core/icons/ffffff/hamburger.svg new file mode 100644 index 0000000000000000000000000000000000000000..708b09b6a4e6b56fae6614a9462a1521fcc56b49 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/hamburger.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#ffffff" d="M14.752 6h-13.502c-.69 0-1.25.56-1.25 1.25v.5c0 .689.56 1.25 1.25 1.25h13.502c.689 0 1.25-.561 1.25-1.25v-.5c0-.69-.561-1.25-1.25-1.25zM14.752 0h-13.502c-.69 0-1.25.56-1.25 1.25v.5c0 .69.56 1.25 1.25 1.25h13.502c.689 0 1.25-.56 1.25-1.25v-.5c0-.69-.561-1.25-1.25-1.25zM14.752 12h-13.502c-.69 0-1.25.561-1.25 1.25v.5c0 .689.56 1.25 1.25 1.25h13.502c.689 0 1.25-.561 1.25-1.25v-.5c0-.689-.561-1.25-1.25-1.25z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/house.svg b/core/themes/stable/images/core/icons/ffffff/house.svg new file mode 100644 index 0000000000000000000000000000000000000000..a55603f5440480f24d314fe7d1e0db208cecde61 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/house.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><polygon fill="#ffffff" points="8.002,0 0,8 1,9 2,9 2,15 6.5,15 6.5,10 9.502,10 9.502,15 14.002,15 14.002,9 15.002,9 16.002,8"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/pencil.svg b/core/themes/stable/images/core/icons/ffffff/pencil.svg new file mode 100644 index 0000000000000000000000000000000000000000..229e480913f0fd42fad36af6991b966e12473576 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/pencil.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g><path fill="#ffffff" d="M14.545 3.042l-1.586-1.585c-.389-.389-1.025-.389-1.414 0l-1.293 1.293 3 3 1.293-1.293c.389-.389.389-1.026 0-1.415z"/><rect fill="#ffffff" x="5.129" y="3.8" transform="matrix(-.707 -.707 .707 -.707 6.189 20.064)" width="4.243" height="9.899"/><path fill="#ffffff" d="M.908 14.775c-.087.262.055.397.316.312l2.001-.667-1.65-1.646-.667 2.001z"/></g></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/person.svg b/core/themes/stable/images/core/icons/ffffff/person.svg new file mode 100644 index 0000000000000000000000000000000000000000..1cb3548d8728bf9916ca8e9a08690f34ab3d3bf6 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/person.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#ffffff" d="M1 15c-.275 0-.498-.225-.496-.5 0 0 .007-.746 1.071-1.512 1.138-.818 2.347-.969 3.308-1.498s.954-1.299.925-2.115c-.019-.543-.112-.657-.489-1.392-.556-1.084-.709-2.021-.791-2.823-.127-1.252.011-3.035.86-4.001.847-.964 2.114-1.104 2.114-1.104l.5-.055.498.055s1.266.14 2.113 1.104c.85.966.988 2.75.859 4.001-.08.802-.234 1.739-.791 2.823-.377.734-.476.849-.488 1.392-.029.816-.035 1.586.926 2.115s2.17.68 3.307 1.498c1.064.766 1.072 1.512 1.072 1.512.002.275-.221.5-.496.5h-14.002z"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/questionmark-disc.svg b/core/themes/stable/images/core/icons/ffffff/questionmark-disc.svg new file mode 100644 index 0000000000000000000000000000000000000000..973af490fc27bf917e6763f5539785a427bd2888 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/questionmark-disc.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#ffffff" d="M8.002 1c-3.868 0-7.002 3.134-7.002 7s3.134 7 7.002 7c3.865 0 7-3.134 7-7s-3.135-7-7-7zm3 5c0 .551-.16 1.085-.477 1.586l-.158.22c-.07.093-.189.241-.361.393-.168.148-.35.299-.545.447l-.203.189-.141.129-.096.17-.021.235v.63h-2.001v-.704c.026-.396.078-.73.204-.999.125-.269.271-.498.439-.688l.225-.21-.01-.015.176-.14.137-.128c.186-.139.357-.277.516-.417l.148-.18c.098-.152.168-.323.168-.518 0-.552-.447-1-1-1s-1.002.448-1.002 1h-2c0-1.657 1.343-3 3.002-3 1.656 0 3 1.343 3 3zm-1.75 6.619c0 .344-.281.625-.625.625h-1.25c-.345 0-.626-.281-.626-.625v-1.238c0-.344.281-.625.626-.625h1.25c.344 0 .625.281.625.625v1.238z"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/star-empty.svg b/core/themes/stable/images/core/icons/ffffff/star-empty.svg new file mode 100644 index 0000000000000000000000000000000000000000..28e6d36f9b7e21de614c152e8de4825b56ceff20 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/star-empty.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#ffffff" d="M15.455 5.468c-.107-.282-.377-.468-.68-.468h-4.26l-1.841-4.542c-.108-.277-.375-.458-.672-.458s-.565.181-.674.458l-1.843 4.542h-4.259c-.301 0-.571.186-.678.468-.108.282-.029.6.196.8l3.438 3.107-1.122 4.73c-.07.291.046.595.292.766.124.086.269.129.413.129.142 0 .283-.041.406-.124l3.831-2.583 3.828 2.583c.123.083.264.124.406.124.145 0 .289-.043.412-.129.246-.171.356-.475.293-.766l-1.121-4.73 3.438-3.107c.224-.2.304-.519.197-.8zm-5.021 3.475l.982 4.146-3.414-2.304-3.416 2.304.982-4.146-2.98-2.693h3.739l1.675-4.128 1.672 4.128h3.74l-2.98 2.693z"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/star.svg b/core/themes/stable/images/core/icons/ffffff/star.svg new file mode 100644 index 0000000000000000000000000000000000000000..3610de2f8aa2cbdd94418b6429bab1899fdacf77 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/star.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#ffffff" d="M12.236 15c-.146 0-.283-.041-.406-.124l-3.828-2.583-3.83 2.583c-.123.083-.265.124-.406.124-.145 0-.289-.043-.413-.129-.246-.171-.362-.475-.292-.766l1.122-4.73-3.439-3.107c-.225-.2-.303-.519-.196-.8.106-.282.376-.468.678-.468h4.259l1.843-4.542c.109-.277.377-.458.674-.458.297 0 .564.181.674.458l1.84 4.542h4.262c.306 0 .57.186.683.468.104.281.024.601-.196.8l-3.439 3.107 1.121 4.73c.065.291-.047.595-.293.766-.129.086-.273.129-.418.129z"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/twistie-down.svg b/core/themes/stable/images/core/icons/ffffff/twistie-down.svg new file mode 100644 index 0000000000000000000000000000000000000000..83c77fd7bb690d4758f26d51e8515488634bdeb6 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/twistie-down.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#FFFFFF" d="M2.611 5.393c-.17-.216-.084-.393.191-.393h10.397c.275 0 .361.177.191.393l-5.08 6.464c-.17.216-.452.216-.622 0l-5.077-6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/ffffff/twistie-up.svg b/core/themes/stable/images/core/icons/ffffff/twistie-up.svg new file mode 100644 index 0000000000000000000000000000000000000000..7b5502862396b79f082ba98088db6a30e0e4b117 --- /dev/null +++ b/core/themes/stable/images/core/icons/ffffff/twistie-up.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#FFFFFF" d="M13.391 10.607c.17.216.084.393-.191.393h-10.398c-.275 0-.361-.177-.191-.393l5.08-6.464c.17-.216.45-.216.62 0l5.08 6.464z"/></svg> diff --git a/core/themes/stable/images/core/icons/license.md b/core/themes/stable/images/core/icons/license.md new file mode 100644 index 0000000000000000000000000000000000000000..342208310820316daf5fa7aa6ab9ff78f33f899c --- /dev/null +++ b/core/themes/stable/images/core/icons/license.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright (c) 2013 Ryan Frederick + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/core/themes/stable/images/core/loading-small.gif b/core/themes/stable/images/core/loading-small.gif new file mode 100644 index 0000000000000000000000000000000000000000..5cbf6e7b75523144e46e36aba2d58263b767b93b --- /dev/null +++ b/core/themes/stable/images/core/loading-small.gif @@ -0,0 +1,25 @@ +GIF89a��Ä��ÿÿÿ÷÷÷ïïïæææÞÞÞÖÖÖÎÎÎÅÅŽ½½µµµ¥¥¥œœœ”””ŒŒŒ„„„{{{ssskkkcccZZZRRRJJJBBB:::111)))!!!ÿÿÿ���!ÿNETSCAPE2.0���!ù +��,�������ýà&Žä6MeªŽK,kÊÍG8@q±h/MG’H:›‹%#£€GcÀ4‹D2a’8ŒÀ@@Àp2‘HfzšH,%Îð¼úx" +WrIix%pqX1*Ž=##‘–„+£§©¬–¯±™›Ÿ=¡£¥"“•–I™#3gÅ~‘" Ï"¾>žwÐ ÂÉ kX (_àS(²As}RTx ‹(¨oBB4’”xÑZ %‹qáâŠ�!ù +��,�������ä 'Ž¤GQeªŽÍ04k<‚Œ\®nU‰“ÀÀ6ñdŠ 'U!¸`D €%�Xe©U(2HŒ `Š%)2(* áìP“†„EÅ¡ b%K`1K:$2$„…P{“(™œž–¢¤¥‘“•˜{"‹©#)1¼¾%À% % +#À´k +¿{¼ÖÊ"Î â?&Õ*E ûµôvlÙ× ·[8Àw+…Á!��!ù +��,�������Ô 'Ž¤WUeªŽa<k,VDQ¨ÌJGÕ7ŠGó`P6ªƒæYQ4 –ZˆCb4™Œ‚A€‘’”Q•êa^iUÅ�M!‘ºQ‡CºXò#V + +n2��Q‘ +91�’”+–˜š…‡‰1‹q~€=‚„wx:{e+²" ²²% ±Ì"]Ê)Ã<ÎHÉ*9ïH~è1xïð«%ïžú"¸t„��!ù +��,�������â 'Ž¤gYeªŽ‚@kº‘Öah<Z%V„ÂñDÙe¡HDfƒ!j…d)¢X,¨"ŠÏ“1 +ƒFj’`:f©QE¼dIÔ:{*+:k$ u‡"€‹91>” –‡™›>ŠŒŽ ‘€"†‚:ª)E*„¶ )Å%�к#ÈÐ� +Ó"ÉcI àãä(¾Eð+{öðùÁ¡`ø.Õ"‘áWŒ�!ù +��,�������Û 'Ž¤w]eªŽÒ²H뺉—â*×ÓS%Z¶…Â"’<b c"z$GÏÃ`8¤6F£áÐÌ*>Qâ€0DG›Š–ѨU,5q@0±Eâ¼ësJ:}aL…G‹9}”‹—„+šœž‰…’#£}‡%±…W1*:"R)ÂL")ÃD��n¿ËºÞ9ååRë;ñ�ȶ#øõΪ!��!ù +��,������ß 'Ž$å8©®›Ø6p£¶«‡Q–xÅÍ%N‘Ü +y<RžƒÙl" ÅÂBQHddz‹…b«²`’*É!MLj”ˆ¤æÙ옵–F=£{2~5^|t ‘‚"‘“•—™9†ˆŠ5" "„*¯~¸$ »* 2³�É5 d# +É�”"dÐÆÓÖ ¯æ + +ÌoI ‰5´»îåƒUcÝ�pK ñ�!ù +��,�������â 'Ž¤‡aeªŽUk,bP ¡Þ¦¯™ué˜Gí«L.ªÌD"±ä&ÇD4a0È’E2éŽ.ÈÇÑh0&bÒ…+¡Œv9È•QI“,JfEsHR2$bvƒ#>#��{ + +’�‚2 +¤œ’Ÿƒ¢¤H‘“•ƒ—™#‰‹"#¹$‡"0* *Ê+%{\" Ê%ÍÁêÒ*åŒNUÈ·¯˜¯ðÈLQÁàŠ�!ù +��,�������ä 'Ž¤—eeªŽ×4YkÊÍb&¹‹Ü´8Ž —Ùx,Œlh&8žŠDRQˆ’ÄQ4gƒÁ5äA)q_‚&¥‘d°TBP @UF2A1„*;$F$ sŒ m1™"Ÿ¡Œ¤¦J‘“•Œ˜š$‹–,+:+„‰% y% * + + m¿Ì#Õ +É%Í "Àç— Ò¾" Uâ–ôéæ^ÐÃ¥ÂA!��; \ No newline at end of file diff --git a/core/themes/stable/images/core/loading.gif b/core/themes/stable/images/core/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..2dbcd624aa8b28a0e6cbe5a54d4cb03534009e38 --- /dev/null +++ b/core/themes/stable/images/core/loading.gif @@ -0,0 +1,43 @@ +GIF89a0�0�÷��###'''(((---111555:::===CCCGGGKKKMMMQQQUUUZZZ^^^aaaggghhhmmmqqqwwwxxx{{{‚‚‚†††ˆˆˆ’’’˜˜˜ ¦¦¦¨¨¨®®®²²²µµµ¸¸¸¿¿¿ÀÀÀÄÄÄÊÊÊÍÍÍÓÓÓÔÔÔØØØáááåååéééîîîóóóÿÿÿ///333444>>>AAAEEEIIIOOORRRXXX```eeekkklllssszzz~~~ƒƒƒ‡‡‡‘‘‘–––¡¡¡¤¤¤«««¯¯¯½½½ÁÁÁÆÆÆËËËÙÙÙÝÝÝçççèèèöööüüü&&&***,,,222666<<<JJJYYYrrrvvv|||ŠŠŠ”””œœœ£££ªªª···»»»¾¾¾ÈÈÈàààòòòþþþ...;;;HHHLLLPPPWWW\\\dddiii}}}€€€………“““žžž°°°ÅÅÅÒÒÒÖÖÖÚÚÚßßß%%%@@@DDDttt‰‰‰———™™™±±±¹¹¹æææ$$$+++777999]]]nnnuuuyyy„„„ŸŸŸ¥¥¥©©©¶¶¶¼¼¼ÃÃÃÕÕÕÞÞÞFFFSSS___bbbppp›››´´´ºººïïï)))������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������!ÿNETSCAPE2.0���!þ-Made by Krasimira Nejcheva (www.loadinfo.net)�!ù� +�ÿ�,����0�0��ÿ@€pH,BApl:ŸÍ�„Ôj‘ ¨vKÄÈfà™“åš›X8kœßEÏzÝ)Ãö¢à4Ÿ˜wFD%}`%y yP#/0š)DŒ3D ¦•G#š¯0,C+}+ˆB½¾ +«F™°šD*k*D ½Ñ½ZƯ'£ÕC¿ÒZØš'NyãÒ¾ Zë0!ÂM +óѦ𣕛‹Nf<øç« (VÀr¡a ž£5pÇEA‡(B@xx¦€‚ l;`À�‹ZÀD3æÌšHrQ€Á÷ÿp8‹HààÁŽBH8±‚‹"ìE"`P.PP0DÙÓMW€@ŠS�¬Y/T�@�°pÁª@ô@V¬Ô^pPUDܸ¦Pp!ma¬ªŽøú×ÂM-ÐÎk!‚LŒãŽœj×pá +n�0HÁØéXÁfïâe+DŠ¦O£ +B BÖ +k¹áéÜì!=å1Mã¿ï´UUsù›�v=xÐÀ�yÒ,T Ʋˆ&Lœ(!Áz 6pà`– ÂË7Q™ÒoØ¿¡ÂKˆàÍw q@ú©§à,PXà|&|ðŸX`‚t9QÁƒóy@«Ò�”³ÀJIU ë9 E%@žD€Á |ð¹ñ�û¥§TO°‹!¸�€ ä’ U�é%8ÁMpP€&€À иä’*€<N@4€@!Q’4Æ B‰°À @Rs|ù¥cÉ5!A„Ú‚6q�~‚ÀAŽ‰Ñ@_vЀu5 @h@A{F*”K˜�!ù� +�ÿ�,����0�0��ÿ€�‚ƒ„……�56ˆ†Ž‘� JOOJ ’œ‰CQ00T¤C›ž¨†;S¢£¤Q<©²…G¤®G³ºL¶·T#§…©4EA„K¤T¤I§8FJA5¨7+Þ+$=„C¾¢¤DƒARVíVP94I,õ+õMñ‚NÏ¢SN– j@Å;'Ú$=€bÏ‹íhb‹J“„”4„S‘o W,¡A¨ H²¢Áb£;œ4„ü6‚¤!a�j´tiE ' ÷B²@‚*� žVŠp2@¢á=(âP©ârÊN=šÜ«ÅT*G6Rù*‡†%Lô &K@&õÿ”ìÀ)@�tQ ¨W—ß¿‚ìæÌ)�Ž +4üHHx˜;pØìcD'MšxÀ1x >~üðñ@ �–1;ÁŒd2á�;DËþñ@[�#˜/ënÒ ± ¡ƒûÀ¼ËªuWð �ÇìÙšhxHžÛÉrß·ÞÎîݫWóîŒÊFèç?ŠŸ&‘9ykæ°…‹®=¨²xÍ8˜ú<»‡éD‡%öƒ ú "À Iöˆ]6è '@ž$‚Íb@lPÞd@¢ñÀ'9 ¡Ä‰×<Ð!!:T0Ä‹C(ÓI ˆ¢êyb€0„kŽÐ@6¢x'=ôc¼ùID‘(n a:°uJ�?( c,’�å‰F°X 4ƒ˜‰d©åI¢‘Pv4H Bl°ÁGAà <¬YÁU’@„K(q„i4T€çxV0Y AhÙC‡6‘œäÀvÞÉèmîD=ôÕ‰�;�D{„G|zÃäÀÃ7¬XØ«Œ~J냆<Ðk¬xöl!5±(£Eüw¬ ;Ñ«¡>KÈ jþ�¨µ7Ñ€¦.��!ù� +�ÿ�,����0�0��ÿ€�‚ƒ„……W�WZZˆ†Ž‘‰<c##d<’›œ‰k,,+,kš¨†]'¢+®,']©³„W£®¹+´½Weº¹,e§‡©Y `a[µº,d§\cZ¨ci'jjJ;„¸Â,_ƒWk0î/#8ÅŽYcàßj'g8ƒ["СD4´cÅwGh“Ô M¾|ø.Ê¡D—’š: ÜøBÂ&0ßNàY‹:-0`x°PP–7ŽÙtá!Ä|e²tÒ3¦»› ܳ©F̼GWÎøt'QÒ3øî¡á‘ +ŸkømÚqæá‰4ŽBº"æ*ÂPá¸PÆŒ˜L´ÿ°@8ƒâD‡.b‘bÉ’—“"½nÔW° DWºÂåÇ…�6Äň·2 N5 £¤³1\ +£ºÂƒ…›ÓnÚ`h”£ŒgÏ$OÞ¢5ê6yíÙ̸ɂ¾Ø¶æ +1gxwþ\P‡á¨[lÉ"FygÍŸCw#ýÊnå¾›_¾½8€^'Ç`²9mè¸5HßÙŒ.Í•¶Zc yÑR~�p!Æe™-&Úd‰-H aƧØ,[<�Æ?Èã !ZtÑ�9È& Œaâb$˜ +üàâr’Å'ž(†V;µø;þÐ�…í°A'2‡J.òø"¸lò�‘'^ÐÞ&W4ä•?äà$”cl�Æ)X°\L9É•Jf¸Ibp™Öa(]x˜C/î8P$XL@äì)×c„^�Á”Yx±äŽ;,¨ÅDºÁ8ž÷˜œ„j gðAfJ‚@°ƒˆ^z)^f8l±¡$W¤J(¦oó �;\ˆéc¿íêÈÜ:çŒû_úE¥Ê²EHЀ³ˆE¨´�!ù� +�ÿ�,����0�0��ÿ�H° A�WÞ¼¹r°¡Ã‡ ¯ÈÑcÆŒž8!jÜ(ð +?Nšˆ$!#Ç“€lÒ‰?PÊ,XAdK–M*ÌÜy…OHœ-÷˜ÜI‹œ;Aèh!xEЛ†Â ¢!O7'1£¤âž&íÜdÒA:$� +¨—¡ ±QB·..µôq ´O š¨UËÖVˆr¸ÖUrFI‚øØlÂ'æ@ k3«…RGãÅ‹5`!ø†N… +tÄrf°ë@y4]W4Ç7Lز%HƒF:ŠAëäØs·f@w4jÙÓ¸î™>qP:€âz- 8ãðYܧ$Ê+C èÿÔÄÁÉ©4TÀ(óÊ|˜œÑ“`&,pÛ¿ÁO´¿ÿüþäBÁQGwÌ¡Z€ÁÇLð!‡IWÄ¡{`XA�ò$ÇTPT‘f¨¢£1@M„("‰‚˜w…æ¨b}.Þ!cˆ$RqÆr©¨ãæ1xÅ?þèDEêȆI2ȤˆMþ¡ÅRîè"�>bù£î¡Ø%‹_@ÂŒ2RåD:nø¥@r8!¦ &6è�‚ +Î9yœás�Øá—ø è碹w(GXh±LoÌaÇ`7Ów”À–…r4Õ¤±žLXðQŬÎ@…Y½ÊqG©¥ +¡)Gw¬Ú*«ƒXö´ÒêÀ£L‘°ë®±A4Á’j±iȱš¡ÑÍ:;Ô$€�‡¤B-«}hGÙÎÑèr@`È¡ÚJŒ;Cr]QG³A,µš¥v0&ÍAµNøû–zÇ�pá®ÀC€WG²«ìm„sÌ‘@‹ÅA1ÅÑu�y(ÑG¿_Jt²À2šÒÌûj3iuT,ðU;d Åu\´AZÄAqlytDŠö�!ù� +�ÿ�,����0�0��ÿ�H° A�„hÐ8È°¡Ã†„B„è!B3j$Ø@ˆ 5ØHÒáDÍ€Lt£¤K‚„€˜Q9„J /sº`s¦Or2`¨Ž`JISå¡‚[|\8Ô`áF@6Œ³áB!ŒÐLù±Î@B̘0q‚ÑdÝJ7Ï–Œ€T QR…άlbƒU‡†´Ò¥kvà<MóÀxð`F#ÖYLwÃ!B`XðãǂâYü"¡Íœ7t�³! µ«O}¸@1g ¡3":±Ú„Œ4.l•½Q¡’H¬6s7c¡<ËÇ j<#¡ ÒŸÿY@rK€Üèî#f<xeï�ôI&¤-´¿ÿüþ{„À@Â_€PQ ˆyt\! 7Õ�èRD"¬À+œ0X[T8•…>, x¸Â‹+¤À�Xhã!-1€0öÈÂöý`£äé˜G=.B€\B¤Ž�‰ä‹JÐÀèá% "™F%b™"”,~#(00…Mb¥@†th& +#žEÀ*Ú›�”ø`„ùiÈà€|¾$(L‡>” ‰žEC!4ÐÅ$€g p‚"^å@i¥Õ‘£~F¸�é0¬p\F4Pš ÖÐQÝF>˜Šê©)¬Wß >À +*¬]èwÆ·¶†Ø°&[ÚŒÑGà ĢªHF†ø +jiç§Ì +À³Ñž:FFQ½Šli†Ä€ +3´;ƒ +j¤H¸à¤èÖ.{Ø +¸ëî +£.°B´U*:š¯>4àþúkA>¤ÐÈ©,òÕF„lQˆ!7¨H# »ËHp7\ È@ü…qCœr»'¨øŸC¼<ƒ…6Ô@!ÇYÎ’‡þÊG¥ƒú@B-àÒƒ‚¶ÅøA=P@�!ù� +�ÿ�,����0�0��ÿ�H°`AG�=z䨡Á‡#JttãN¥Jwn ”ȱ£A9–ƈcIŽÇ“#…)ÒR$”0:`ÉRÒƘoœDsäaRdÀÀЀ‚wzŠüI€ƒIwä<B9@ÒÅ‹w^d°¡çulø€éÃ<<:²Z ÏE<“@©+KJGF“©,¦¿x¦r¼qÕmÛJ`BÒuÃ!iNúK™ì“¾z1‚CIr`”à# •ýbº3Ñ‘æÂW=…xZuåI¼Ý\ÉÁ윔þ’¥Œ©AÇ9ã¡ésG—Rc#7å$ΔtüŽèBtáHt ÿ$À ÂÍ·çt¤£’K“´Âd¨^íÂú8óÕßq£óŽ€€rD"AW”‚Ѓ‘820À"ðÁ&r2 É„$B ~T!ÁÉ&+>±É' …Ò$(zÔ�‡,v¸‰% 5P#…Pˆ�‚Q²É.öÈÉ +IäG")’>±"‹À^‘6N’ŽìÈÉ–gþ؈ÔØfŒV0�<ò¨‰vE" ‘Xç@²èâ‡: Hà þ �$wh0Fƒ9* + †’ª•c€$ŠS€„"˜tÅ&whêÑ# ÁD&–8xÒ0Xè!«UŒ1U¤ŽTÅ ++tÒÉ&xtóÎZÅO‘:�E'¼6«‰|5„G±Åj‚+Í6Ë,kaBí¬Qx”A0‘m¶tôÁ·²v’—@Œ.5&�drn³Et4 »VdB›À ð›`&¾Þ+IGpòí‰ 'W'ò²IÂÍBé‘!O;Eáa±ÅxÔ€&Ù~pÃxBDWD•9’ÉÉg¢S$“XR„$ïªÅÝ8<Âl”"èÈEÃ0F¤H2ÎQD\©A¹zb±'•\=‘˜0‰‰o^·I¦I{�!ù� +�ÿ�,����0�0��ÿ�H° A�„°`Ax°¡Ã‡ 4 ¡Aˆ3D0jˆÇ!£>iù°@ÇGÕ É² ”(å´œ Ì¡Ñ4H¨�‚OôrÓ£—‚5ä„ +õIhF,rD‰ú!ªÁÊŸŠ9Á=öì™p"¡¨?¨¦õ’e Q7E9-†CX»{$8uX`ªZ¿Ö€ë±B¨²5ñ‚ »‡ëCjÓª¥s ¡räÜØ‹¥Ââ»vBü4µ´Ú•VNívãÅ`Ea4PÚ´¨.$%Ü…½G!Ö±4ì÷0IvÛÒc /~E…ºÑ²Ar°{0Ö˜å¨]j�ÿÏH„!†/²ü½S5–ñíã;¬ü¾|Ë 5(s”ê÷ FT?Ü!œâÆ‚n°�J€`‚H‰Òƒª ž|X`@¡fPHŠHX”Â!‡£ØÇ’%‚@"‰ TÐS+2HÊ}„H cŒ4jE8æèÆŽ÷ý0ã +IˆŠF¶x(%Ò(ci˜£‡f!b…%ž¨2¸ÂƒÞ`¸_F�!!YxQAHN ¹È£Ÿò˜…xíÑùK]r gÈÕ! hPFal—‘(+À ).h�hA„L`Š ¤2*F7¤°é¦.ˆòé@ ”ÎBê¬&€ð¡C¬ºê¯"¤´Ê)/èªé Y¼šÀ’:F{lsÕ +ˆB¨@X0ÛlIP¬±¤¤ö +¤«Ž0D³&˜‚!D5øaì +¸ T€+°n¿"|ˆÀÍr@íc~ŒC + +4J¿ÿB<Še0Îj +ŒTƒn¤T 'B‰øq¿‰°Öz ìUh"GÌB½ŠÁÈÿbs{]œ02'ähC=¦ÀÂÐ,¤0ÁÏf5À"$BÒfRö4�!ù� +�ÿ�,����0�0��ÿ�H° A�Ž::È°¡Ã†Z4h @ËËÂñ!Bàdép€:Fð2€¤Ë‚8>~LùÇË›�vÌô(s‡Ã…#µLò€)M‚ +h*… ªÜ�Š1§XgH‰@NG•_E„#aˆY0Z^Ôr5+Ö)¢bð•&ƒ„µ”5Ë÷Õ†“ܺÅDpÀ°;àÍÉ·1±=Î +H±À„pà(°a„Æã>Ä4k'‹;§–û´YÑS•žFuCG^\›Mp‡”ÉU$ØnGˆk jJ˜â¶ÊT.€i<©ÀȘ�µ(!úK8 <2ÿ@}» £Z¼ãt„êoyœÝÄ;>CùŒñs&dû À€“„D•#C´�Â0pâ€9R�l0ÆF4%R0È` 䈊Z8ÆFÜ��*˜xÈàÂA@^x¡…8¢Å.28~.áfãcJ<öÃ@’ä…‰DéH‹=ÂØ$I4y"WŽ<С‡S€(ãŠ`h™âe zèà˜Me^¦yü7¦€za'Põ±¹Úm|^Ÿ|‚F8€eë±×IŽ$`Äg$âÅ¢ŒJ‡¢*fÔ@€�ÒI'PQ(AŽ@@&¨Ž¡áCp ñi§žBäáŨ )pê¨b"†‚JÐ ¬¿zŠÄ¨‘ë±xq‘žÂÚi'g$áe¡"&¸";ÉEy�Û,´ÒjÑ�`4À«\Fäš-®\ô@³ð"A8 ÑĽM q”@“«nœ ೟¢±jÜË 'Mp’ypŒáoQê9tÃð¢Ñ�A4Ì°ÇMä8¨~àA*!>4Ày1ÉŽˆoÃøŠñ—¸“D°CÅö92ÆÇ7¼±ð%È ƒá§C8ø¡ðÂMøÑ�B€ÆÌh@°ôCŽì`ÄdHõ˜:"ŠS@�; \ No newline at end of file diff --git a/core/themes/stable/images/core/menu-collapsed-rtl.png b/core/themes/stable/images/core/menu-collapsed-rtl.png new file mode 100644 index 0000000000000000000000000000000000000000..dc8d0b8823a90704b3743f980108b8a7d914193c --- /dev/null +++ b/core/themes/stable/images/core/menu-collapsed-rtl.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR���������þœÅ���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDATcà``R`r`þ‚� B|…OŒ����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/menu-collapsed.png b/core/themes/stable/images/core/menu-collapsed.png new file mode 100644 index 0000000000000000000000000000000000000000..91f3fd40ede024798b6de5ea2675bb692a3cfa95 --- /dev/null +++ b/core/themes/stable/images/core/menu-collapsed.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR���������þœÅ���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDATcV`†@)ff�|�Ì·ò×����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/menu-expanded.png b/core/themes/stable/images/core/menu-expanded.png new file mode 100644 index 0000000000000000000000000000000000000000..46f39ecb351cff65243fa9a614a69d039e1302a5 --- /dev/null +++ b/core/themes/stable/images/core/menu-expanded.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR���������þœÅ���PLTEÿÿÿ���UÂÓ~���tRNS�@æØf���IDATxœcøÇPÃ`Á À��°ÃÝÍÁ§����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/menu-leaf.png b/core/themes/stable/images/core/menu-leaf.png new file mode 100644 index 0000000000000000000000000000000000000000..6b2d63f9885050fe8fec40cc4b9527e3b846fea0 --- /dev/null +++ b/core/themes/stable/images/core/menu-leaf.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR���������6|Jà���PLTEÿÿÿ¿¿¿‹‹‹���ÀÀÀE¾Ì<���tRNS�@æØf���IDAT[c`�cfe á($•¡b ��¾¯ýºš����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/throbber-active.gif b/core/themes/stable/images/core/throbber-active.gif new file mode 100644 index 0000000000000000000000000000000000000000..f66414a1cbf0d08eb508efc88c081558828a2f96 --- /dev/null +++ b/core/themes/stable/images/core/throbber-active.gif @@ -0,0 +1,2 @@ +GIF89a� �„�{½ï÷ÿ½Þï÷÷ÿÖç÷{ƵÖï„ÆÊâóÞï÷Z¢Ó5Ê‹¿á Îçk¯Øçï÷FœÎs½ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!ù��,����� ��cà'ŽOÃ4ɨ’PäºÊ³ŠÉá.Êrsk/ ¢q¬®‡®D$ªFD!D�`K bƒŠ¯$܈ŠŽ¬DÇ%]Á¸5"Sµˆø°8{Ø"8-€3 ‚/ +<…"& „+!�; \ No newline at end of file diff --git a/core/themes/stable/images/core/throbber-inactive.png b/core/themes/stable/images/core/throbber-inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..befbb9f0a1ec779fbce224f57e8cc2c87328fcb4 --- /dev/null +++ b/core/themes/stable/images/core/throbber-inactive.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR������ ���Oy…���bKGD�ÿ�ÿ�ÿ ½§“��� pHYs�����šœ���tIMEÞ4h¦7Ý���ñIDAT(Ï“!“Å „—›Á‰DV¶?¡?þÉV"+#ƒ#ŽS¼iíÍÜE2ÉÇfYJU›ªÂÌÀÌ!À{ïîz‡ÃZkË9CD†æ#¦i`ߟ€×ë3™AD(¥@U!"PU´ÖšsÎÝBrÎoùó<_nTÕ¶mÌ9ç‹Â¯s“ˆ€ˆ��0³[–�pjíòÞûÉ@fvÌ�(¥ŒJÌ�@DøBÝ¿Ò‡;쩺ïýé2Eä²ï]vΊ>!.Æ3þ憎�¤”.¾¹§œt“Ï9ék¯ëŠsNþ”Ø”Ò âòŸ¿ó¡¡¬'Žø����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/tree-bottom.png b/core/themes/stable/images/core/tree-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..a55804571e9c98bf65bbf51c1567fee402ba2371 --- /dev/null +++ b/core/themes/stable/images/core/tree-bottom.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR���P���Q���8#É›��� PLTEÿÿÿ………€€€¤£U6���tRNS�@æØf���&IDAT8ËcX…040`�¦QÁQÁQAœ‚SC1@Ã(£€b��±1'ü6xù»����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/core/tree.png b/core/themes/stable/images/core/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..89ea2350145392fd158675b5f278ab73fb5d70ca --- /dev/null +++ b/core/themes/stable/images/core/tree.png @@ -0,0 +1,3 @@ +‰PNG + +��� IHDR���P���Q���8#É›��� PLTEÿÿÿ………€€€¤£U6���tRNS�@æØf���'IDAT8OcX…040`�¦QÁQÁQAœ‚£ùhTpTrÁ©¡ �9IÛ"ã‘����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/images/quickedit/icon-throbber.gif b/core/themes/stable/images/quickedit/icon-throbber.gif new file mode 100644 index 0000000000000000000000000000000000000000..f2603e8a2cecdf53e7c2e370a50c0678e7c4b677 --- /dev/null +++ b/core/themes/stable/images/quickedit/icon-throbber.gif @@ -0,0 +1,6 @@ +GIF89a��ó�÷÷÷ïïïæææÞÞÞÖÖÖÌÌÌÅÅŽ½½µµµ¥¥¥™™™„„„{{{���!ÿNETSCAPE2.0���!ù ��,������@`ðÉ)Kk…ÒÅÖA|•ad¤ä0L’’9~‚ðœ½\Ëë§8ÅìL‰„á ŒçÀǸ0¨,— i{áÝq¦BÎÂCý~Hå'J˜RĨ`Êœf4&a�!ù ��,������`ðÉùs„êɺڡ(ÁãtÉ34M!-0ò‰ü,l#)ð±)9 !q(i<h©B™“„Ô�• ¦Õæ3Ë¥�(`¬ ™,9£%åcm +b0AÎéY_e�!ù ��,������dðÉùÈRƒj½:Ú“€Á£tGå8…$‰ñc¹0ÌâÂ2‡ë“ÀÁPÒ hi,�ÌÇ‘Q0X[LEck5`—ÚÀP€2ŽF! ”ì aÏ ð@q dfz{l‚Q�zK�!ù ��,������`ðÉùBƒjR:Û$ðžñŠBPFüqð(Ë¢Àò–ä J€@0i„-Ä2͇ÀÁ QckÅ6[G`àm®¨:°Ôp国Q4îÂùfqoÛw�!ù ��,������dðÉù„1‚j}MÙS@ÁS\Ä H9Äð�#ðIrPØi8fðÓ..r$•Å‚ä|n‹lÕ +Ì*T\ã![šÍ‚lê,Q0Ž¥@‘(¹áKF£ñMO—{ ql{�!ù ��,������^ðI 3ëa‰žöÖð†!P¡(¬O‘løÉÍ~`¼ ð8 LÇ!‘@$•Lg²x|f,`"`űÈJÀʼn¹"›càU‚ÁP +ÏGAw< tz�!ù ��,�������hðÉ9C�4kkµ—\ „ø&I§&¬l› ƒ)ŸFã-P@c˜hH!ш4< +…Í x·“@‘ÀR‡Ãô±`0šC"È8Ìh0B¤fgë°X(rc}Y +1�!ù��,�����aйҚX†]mKçl[ö)"ÉaÄ¢\é*Î"¡$t&ã#9‡€@ô1p¹‘P`,`I‚,8 S €8U,QÁ`(d¼`€Ì“3-ÅÀqH$£1T„°‡©{�; \ No newline at end of file diff --git a/core/themes/stable/images/shortcut/favstar-rtl.svg b/core/themes/stable/images/shortcut/favstar-rtl.svg new file mode 100644 index 0000000000000000000000000000000000000000..8adec7d3c838b0b9ec3f6bec7e95b0a0c9fac5c3 --- /dev/null +++ b/core/themes/stable/images/shortcut/favstar-rtl.svg @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="80" height="20" xmlns="http://www.w3.org/2000/svg"> + <g> + <g id="svg_1"> + <path id="svg_2" d="m70.39463,2.259c-0.149605,-0.385 -0.395561,-0.385 -0.545135,0l-1.966644,5.049c-0.149582,0.385 -0.611374,0.699 -1.024971,0.699l-1.756836,0.169c-0.413605,0 -0.494911,0.219001 -0.180702,0.487l1.315094,0.981c0.31424,0.268 0.498962,0.816 0.408607,1.22l-1.477745,6.562c-0.090355,0.403 0.118454,0.546999 0.464806,0.319l3.862999,-2.539001c0.346359,-0.228001 0.910545,-0.228001 1.256889,0l3.863014,2.539001c0.346344,0.227999 0.555161,0.084 0.464806,-0.319l-1.051086,-4.707001c-0.090355,-0.403 0.094368,-0.952 0.408577,-1.22l3.531731,-3.006c0.314209,-0.268 0.232903,-0.487 -0.180702,-0.487l-4.398079,0c-0.413612,0 -0.875404,-0.314 -1.024986,-0.698999l-1.969635,-5.048z" fill="#FEF6A8"/> + <polygon id="svg_3" points="62.545124552483685,5 65.1010474534105,7.546999931335449 67.6569842932513,5 69.07749901699208,6.414999961853027 66.52157611606526,8.961000442504883 69.07448821157232,11.505000114440918 67.65596675253073,12.918999671936035 65.10203711630311,10.375 62.54711781718288,12.918999671936035 61.12760669524869,11.505000114440918 63.682525994368916,8.960000038146973 61.12559949163551,6.414000034332275 " fill="#807640"/> + <path id="svg_4" d="m64.930397,13.897s0.133507,-0.516001 0.653519,-0.349c0.518013,0.165999 0.303192,0.674 0.303192,0.674l-0.721832,3.204c-0.061234,0.272999 0.01609,0.427999 0.178696,0.427999c0.078323,0 0.174698,-0.035 0.28614,-0.107l3.863007,-2.539c0.174667,-0.115 0.401566,-0.172 0.62944,-0.172s0.45475,0.057 0.627426,0.172l3.863022,2.539c0.111427,0.072001 0.209808,0.107 0.28611,0.107c0.164627,0 0.240929,-0.153999 0.178696,-0.427999l-1.051094,-4.707001c-0.090347,-0.401999 0.094368,-0.951 0.409584,-1.219l3.531731,-3.007c0.315224,-0.269 0.232903,-0.487 -0.180702,-0.487l-4.400085,0c-0.413628,0 -0.874405,-0.314 -1.024986,-0.698999l-1.966637,-5.049c-0.075302,-0.192 -0.174683,-0.287 -0.273064,-0.287s-0.197769,0.096 -0.272064,0.288l-0.462784,1.158s-0.256004,0.409 -0.637497,0.219c-0.441711,-0.221 -0.227875,-0.66 -0.227875,-0.66l0.390511,-1.078c0.337311,-0.861 1.01194,-0.927 1.209709,-0.927s0.872391,0.066 1.20768,0.926l1.968658,5.049l0.109421,0.062l4.378006,-0.001c0.937645,0 1.234795,0.609 1.306076,0.796c0.06826,0.187 0.23893,0.844 -0.472839,1.451l-3.533722,3.007c-0.037148,0.041 -0.086334,0.186 -0.078308,0.25l1.049088,4.698999c0.133507,0.596001 -0.051216,0.984001 -0.229912,1.205002c-0.225868,0.278999 -0.563187,0.438999 -0.929596,0.438999c-0.280106,0 -0.563194,-0.092001 -0.839264,-0.273001l-3.863014,-2.539l0,0.002001l-0.074287,-0.008001l-0.088341,0.014l-3.85096,2.531c-0.274071,0.182001 -0.559174,0.273001 -0.839264,0.273001c-0.364418,0 -0.703735,-0.16 -0.927589,-0.438999c-0.178711,-0.221001 -0.362411,-0.609001 -0.230904,-1.205002l0.74691,-3.312999z" fill="#80722D"/> + </g> + <g id="svg_5"> + <path id="svg_6" d="m54.758999,18.355c-0.18,0 -0.368999,-0.063999 -0.560997,-0.191l-3.848003,-2.539c-0.083,-0.055 -0.215,-0.088 -0.350998,-0.088s-0.268002,0.033 -0.351002,0.088l-3.848,2.539c-0.190998,0.127001 -0.381001,0.191 -0.561001,0.191c-0.211998,0 -0.406998,-0.091999 -0.535,-0.251999c-0.108997,-0.136002 -0.219997,-0.383001 -0.130997,-0.784l1.046997,-4.708c0.049999,-0.222 -0.070999,-0.584 -0.243,-0.731l-3.516998,-3.006001c-0.451,-0.386 -0.378002,-0.756 -0.326,-0.896999c0.053001,-0.141 0.237,-0.47 0.831001,-0.47l4.380997,0c0.206001,0 0.480003,-0.188 0.556,-0.38l1.961002,-5.049c0.213001,-0.549 0.586998,-0.608 0.737,-0.608s0.523998,0.059 0.737,0.607l1.959,5.049c0.075001,0.191 0.350002,0.38 0.556,0.38l4.382999,0c0.594002,0 0.778,0.329 0.831001,0.47c0.052002,0.142 0.125,0.512 -0.326,0.897l-3.517998,3.006c-0.173,0.147 -0.294003,0.51 -0.244003,0.731l1.047001,4.708001c0.089001,0.400999 -0.021,0.646999 -0.131001,0.783998c-0.127998,0.162001 -0.322998,0.253 -0.535,0.253z" fill="#FEF6A8"/> + <path id="svg_7" d="m50,1.97c0.098999,0 0.195999,0.096 0.271,0.289l1.959,5.049c0.149002,0.385 0.609001,0.699 1.021,0.699l4.382999,0c0.412003,0 0.493,0.219 0.18,0.487l-3.516998,3.006c-0.313,0.268 -0.497002,0.816 -0.407001,1.22l1.047001,4.707999c0.061001,0.273001 -0.014999,0.428001 -0.178001,0.428001c-0.077,0 -0.174,-0.035002 -0.285,-0.108002l-3.848,-2.539c-0.173,-0.113 -0.398998,-0.171 -0.625999,-0.171s-0.452999,0.058 -0.625999,0.171l-3.848,2.539c-0.111,0.073 -0.208,0.108002 -0.285,0.108002c-0.163002,0 -0.238003,-0.154001 -0.178001,-0.428001l1.047001,-4.707999c0.09,-0.403 -0.094002,-0.952001 -0.407001,-1.22l-3.517998,-3.006c-0.313,-0.268001 -0.232002,-0.487 0.18,-0.487l4.380997,0c0.412003,0 0.872002,-0.314 1.021,-0.699l1.961002,-5.049c0.076,-0.193 0.173,-0.289 0.271999,-0.289m0,-1c-0.198002,0 -0.869999,0.067 -1.203999,0.927l-1.961002,5.049l-0.108997,0.062l-4.360001,-0.001c-0.934002,0 -1.231003,0.61 -1.299999,0.797c-0.069,0.187 -0.239002,0.844 0.470997,1.451l3.518002,3.005c0.039001,0.043 0.085999,0.186 0.078999,0.25l-1.045998,4.701c-0.132,0.594999 0.051998,0.983 0.229,1.205c0.223999,0.278999 0.560997,0.438999 0.924999,0.438999c0.279999,0 0.562,-0.093 0.835999,-0.272999l3.848,-2.539001l0.000999,0.001001l0.074001,-0.007l0.089001,0.014l3.834,2.531c0.274002,0.181 0.556999,0.272999 0.835999,0.272999c0.364002,0 0.701,-0.16 0.925003,-0.438999c0.177998,-0.222 0.361,-0.610001 0.229,-1.206001l-1.046001,-4.706999c-0.006001,-0.058001 0.041,-0.2 0.085999,-0.248l3.512001,-3c0.709999,-0.607 0.540001,-1.264 0.471001,-1.451c-0.068001,-0.187 -0.366001,-0.797 -1.299999,-0.797l-4.382999,0l-0.098003,-0.08l-1.949997,-5.03c-0.336002,-0.86 -1.007999,-0.927 -1.206001,-0.927z" fill="#80722D"/> + </g> + <g id="svg_8"> + <path id="svg_9" d="m24.614159,14.96s0.134195,-0.516 0.656843,-0.349c0.520624,0.166 0.304714,0.674 0.304714,0.674l-0.481285,2.142c-0.06155,0.273001 0.016146,0.427999 0.179598,0.427999c0.078697,0 0.175564,-0.035 0.287556,-0.107l3.882521,-2.539c0.175562,-0.115 0.403591,-0.172 0.632626,-0.172s0.457062,0.057 0.630606,0.172l3.88253,2.539c0.111988,0.072001 0.210865,0.107 0.287552,0.107c0.165478,0 0.242153,-0.153999 0.179596,-0.427999l-1.056396,-4.707c-0.090809,-0.402 0.094849,-0.951 0.411667,-1.219l3.549557,-3.007c0.316818,-0.269 0.234085,-0.487 -0.181614,-0.487l-4.422318,0c-0.415699,0 -0.878819,-0.314 -1.030159,-0.699l-1.976582,-5.049c-0.075674,-0.193 -0.17556,-0.288 -0.274439,-0.288s-0.198767,0.096 -0.27343,0.288l-1.389357,3.538s-0.257284,0.409 -0.640696,0.219c-0.443943,-0.221 -0.229034,-0.66 -0.229034,-0.66l0.612446,-1.658l0.703257,-1.801c0.340021,-0.86 1.018047,-0.926 1.216814,-0.926s0.876799,0.066 1.213793,0.926l1.9786,5.049l0.10997,0.062l4.400127,-0.001c0.942379,0 1.241035,0.609 1.312668,0.796c0.068615,0.187 0.240135,0.844 -0.475224,1.451l-3.551575,3.007c-0.037338,0.041 -0.086777,0.186 -0.078701,0.25l1.054375,4.698999c0.134193,0.596001 -0.051464,0.984001 -0.231056,1.205002c-0.22702,0.278999 -0.566032,0.438999 -0.934299,0.438999c-0.281509,0 -0.566044,-0.092001 -0.843502,-0.273001l-3.882523,-2.539l0,0.002001l-0.074667,-0.008001l-0.088793,0.014l-3.870409,2.531c-0.275454,0.182001 -0.562002,0.273001 -0.843506,0.273001c-0.366257,0 -0.707291,-0.16 -0.932289,-0.438999c-0.179598,-0.221001 -0.364237,-0.609001 -0.232063,-1.205002l0.506502,-2.249999z" fill="#5A563B" opacity="0.7"/> + <polygon id="svg_10" points="20.99598980255405,7.960000038146973 24.022905373148888,7.960000038146973 24.022905373148888,4.960000038146973 26.040840745155492,4.960000038146973 26.040840745155492,7.960000038146973 29.06775631575033,7.960000038146973 29.06775631575033,9.958999633789062 26.040840745155492,9.958999633789062 26.040840745155492,12.960000038146973 24.022905373148888,12.960000038146973 24.022905373148888,9.958999633789062 20.99598980255405,9.958999633789062 " fill="#807640"/> + </g> + <path id="svg_11" d="m10,1.97c0.098,0 0.197,0.096 0.271,0.289l1.959,5.049c0.149,0.385 0.609,0.699 1.021001,0.699l4.383,0c0.411999,0 0.493,0.219 0.179998,0.487l-3.516999,3.006c-0.313,0.268 -0.497,0.816 -0.407,1.22l1.047,4.707c0.061,0.273001 -0.015,0.427999 -0.178,0.427999c-0.077,0 -0.174,-0.035 -0.285,-0.108l-3.848,-2.539c-0.172,-0.114 -0.399,-0.171 -0.626,-0.171s-0.454,0.057 -0.626,0.171l-3.848,2.539c-0.111,0.073 -0.208,0.108 -0.285,0.108c-0.163,0 -0.239,-0.153999 -0.178,-0.427999l1.047,-4.707c0.09,-0.403 -0.094,-0.951 -0.407,-1.22l-3.518,-3.006c-0.313,-0.268001 -0.233,-0.487 0.18,-0.487l4.382,0c0.413,0 0.872,-0.314 1.021,-0.699l1.96,-5.049c0.075001,-0.193 0.173,-0.289 0.272,-0.289m0,-1c-0.198,0 -0.87,0.067 -1.204,0.927l-1.96,5.049l-0.109,0.062l-4.362,-0.001c-0.934,0 -1.231,0.61 -1.3,0.796c-0.069,0.187 -0.239,0.844 0.47,1.451l3.519,3.007c0.038,0.041 0.086,0.185 0.079,0.249001l-1.046,4.699999c-0.133,0.595001 0.051,0.983002 0.229,1.205002c0.224,0.278999 0.561,0.438999 0.925,0.438999c0.28,0 0.562,-0.093 0.836,-0.274l3.848,-2.538l0,0.000999l0.075,-0.007l0.088,0.014l3.834,2.531c0.274,0.181 0.557,0.273001 0.836,0.273001c0.363999,0 0.700999,-0.16 0.924999,-0.438999c0.178,-0.222 0.361001,-0.610001 0.229,-1.206001l-1.047,-4.705999c-0.006,-0.058001 0.041,-0.2 0.086,-0.248l3.511999,-3c0.710001,-0.607 0.540001,-1.264 0.471001,-1.451c-0.068001,-0.187 -0.365999,-0.797 -1.299999,-0.797l-4.383,0l-0.098001,-0.08l-1.95,-5.03c-0.333,-0.86 -1.005,-0.927 -1.203,-0.927z" fill="#5A563B" opacity="0.7"/> + </g> +</svg> diff --git a/core/themes/stable/images/shortcut/favstar.svg b/core/themes/stable/images/shortcut/favstar.svg new file mode 100644 index 0000000000000000000000000000000000000000..9c8ef1da5c0a18eb2291911e986f78e92737401e --- /dev/null +++ b/core/themes/stable/images/shortcut/favstar.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="80" height="20" viewBox="0 0 80 20"><g><path fill="#FEF6A8" d="M69.729 2.259c.149-.385.394-.385.543 0l1.959 5.049c.149.385.609.699 1.021.699l1.75.169c.412 0 .493.219.18.487l-1.31.981c-.313.268-.497.816-.407 1.22l1.472 6.562c.09.403-.118.547-.463.319l-3.848-2.539c-.345-.228-.907-.228-1.252 0l-3.848 2.539c-.345.228-.553.084-.463-.319l1.047-4.707c.09-.403-.094-.952-.407-1.22l-3.518-3.006c-.313-.268-.232-.487.18-.487h4.381c.412 0 .872-.314 1.021-.699l1.962-5.048z"/><polygon fill="#807640" points="77.548,5 75.002,7.547 72.456,5 71.041,6.415 73.587,8.961 71.044,11.505 72.457,12.919 75.001,10.375 77.546,12.919 78.96,11.505 76.415,8.96 78.962,6.414"/><path fill="#80722D" d="M75.172 13.897s-.133-.516-.651-.349c-.516.166-.302.674-.302.674l.719 3.204c.061.273-.016.428-.178.428-.078 0-.174-.035-.285-.107l-3.848-2.539c-.174-.115-.4-.172-.627-.172s-.453.057-.625.172l-3.848 2.539c-.111.072-.209.107-.285.107-.164 0-.24-.154-.178-.428l1.047-4.707c.09-.402-.094-.951-.408-1.219l-3.518-3.007c-.314-.269-.232-.487.18-.487h4.383c.412 0 .871-.314 1.021-.699l1.959-5.049c.075-.192.174-.287.272-.287s.197.096.271.288l.461 1.158s.255.409.635.219c.44-.221.227-.66.227-.66l-.389-1.078c-.336-.861-1.008-.927-1.205-.927s-.869.066-1.203.926l-1.961 5.049-.109.062-4.361-.001c-.934 0-1.23.609-1.301.796-.068.187-.238.844.471 1.451l3.52 3.007c.037.041.086.186.078.25l-1.045 4.699c-.133.596.051.984.229 1.205.225.279.561.439.926.439.279 0 .561-.092.836-.273l3.848-2.539v.002l.074-.008.088.014 3.836 2.531c.273.182.557.273.836.273.363 0 .701-.16.924-.439.178-.221.361-.609.23-1.205l-.744-3.313z"/></g><g><path fill="#FEF6A8" d="M54.759 18.355c-.18 0-.369-.064-.561-.191l-3.848-2.539c-.083-.055-.215-.088-.351-.088s-.268.033-.351.088l-3.848 2.539c-.191.127-.381.191-.561.191-.212 0-.407-.092-.535-.252-.109-.136-.22-.383-.131-.784l1.047-4.708c.05-.222-.071-.584-.243-.731l-3.517-3.006c-.451-.386-.378-.756-.326-.897.053-.141.237-.47.831-.47h4.381c.206 0 .48-.188.556-.38l1.961-5.049c.213-.549.587-.608.737-.608s.524.059.737.607l1.959 5.049c.075.191.35.38.556.38h4.383c.594 0 .778.329.831.47.052.142.125.512-.326.897l-3.518 3.006c-.173.147-.294.51-.244.731l1.047 4.708c.089.401-.021.647-.131.784-.128.162-.323.253-.535.253z"/><path fill="#80722D" d="M50 1.97c.099 0 .196.096.271.289l1.959 5.049c.149.385.609.699 1.021.699h4.383c.412 0 .493.219.18.487l-3.517 3.006c-.313.268-.497.816-.407 1.22l1.047 4.708c.061.273-.015.428-.178.428-.077 0-.174-.035-.285-.108l-3.848-2.539c-.173-.113-.399-.171-.626-.171s-.453.058-.626.171l-3.848 2.539c-.111.073-.208.108-.285.108-.163 0-.238-.154-.178-.428l1.047-4.708c.09-.403-.094-.952-.407-1.22l-3.518-3.006c-.313-.268-.232-.487.18-.487h4.381c.412 0 .872-.314 1.021-.699l1.961-5.049c.076-.193.173-.289.272-.289m0-1c-.198 0-.87.067-1.204.927l-1.961 5.049-.109.062-4.36-.001c-.934 0-1.231.61-1.3.797-.069.187-.239.844.471 1.451l3.518 3.005c.039.043.086.186.079.25l-1.046 4.701c-.132.595.052.983.229 1.205.224.279.561.439.925.439.28 0 .562-.093.836-.273l3.848-2.539.001.001.074-.007.089.014 3.834 2.531c.274.181.557.273.836.273.364 0 .701-.16.925-.439.178-.222.361-.61.229-1.206l-1.046-4.707c-.006-.058.041-.2.086-.248l3.512-3c.71-.607.54-1.264.471-1.451-.068-.187-.366-.797-1.3-.797h-4.383l-.098-.08-1.95-5.03c-.336-.86-1.008-.927-1.206-.927z"/></g><g><path opacity=".7" fill="#5A563B" d="M35.414 14.96s-.133-.516-.651-.349c-.516.166-.302.674-.302.674l.477 2.142c.061.273-.016.428-.178.428-.078 0-.174-.035-.285-.107l-3.848-2.539c-.174-.115-.4-.172-.627-.172s-.453.057-.625.172l-3.848 2.539c-.111.072-.209.107-.285.107-.164 0-.24-.154-.178-.428l1.047-4.707c.09-.402-.094-.951-.408-1.219l-3.518-3.007c-.314-.269-.232-.487.18-.487h4.383c.412 0 .871-.314 1.021-.699l1.959-5.049c.075-.193.174-.288.272-.288s.197.096.271.288l1.377 3.538s.255.409.635.219c.44-.221.227-.66.227-.66l-.607-1.658-.697-1.801c-.337-.86-1.009-.926-1.206-.926s-.869.066-1.203.926l-1.961 5.049-.109.062-4.361-.001c-.934 0-1.23.609-1.301.796-.068.187-.238.844.471 1.451l3.52 3.007c.037.041.086.186.078.25l-1.045 4.699c-.133.596.051.984.229 1.205.225.279.561.439.926.439.279 0 .561-.092.836-.273l3.848-2.539v.002l.074-.008.088.014 3.836 2.531c.273.182.557.273.836.273.363 0 .701-.16.924-.439.178-.221.361-.609.23-1.205l-.502-2.25z"/><polygon fill="#807640" points="39,7.96 36,7.96 36,4.96 34,4.96 34,7.96 31,7.96 31,9.959 34,9.959 34,12.96 36,12.96 36,9.959 39,9.959"/></g><path opacity=".7" fill="#5A563B" d="M10 1.97c.098 0 .197.096.271.289l1.959 5.049c.149.385.609.699 1.021.699h4.383c.412 0 .493.219.18.487l-3.517 3.006c-.313.268-.497.816-.407 1.22l1.047 4.707c.061.273-.015.428-.178.428-.077 0-.174-.035-.285-.108l-3.848-2.539c-.172-.114-.399-.171-.626-.171s-.454.057-.626.171l-3.848 2.539c-.111.073-.208.108-.285.108-.163 0-.239-.154-.178-.428l1.047-4.707c.09-.403-.094-.951-.407-1.22l-3.518-3.006c-.313-.268-.233-.487.18-.487h4.382c.413 0 .872-.314 1.021-.699l1.96-5.049c.075-.193.173-.289.272-.289m0-1c-.198 0-.87.067-1.204.927l-1.96 5.049-.109.062-4.362-.001c-.934 0-1.231.61-1.3.796-.069.187-.239.844.47 1.451l3.519 3.007c.038.041.086.185.079.249l-1.046 4.7c-.133.595.051.983.229 1.205.224.279.561.439.925.439.28 0 .562-.093.836-.274l3.848-2.538v.001l.075-.007.088.014 3.834 2.531c.274.181.557.273.836.273.364 0 .701-.16.925-.439.178-.222.361-.61.229-1.206l-1.047-4.706c-.006-.058.041-.2.086-.248l3.512-3c.71-.607.54-1.264.471-1.451-.068-.187-.366-.797-1.3-.797h-4.383l-.098-.08-1.95-5.03c-.333-.86-1.005-.927-1.203-.927z"/></svg> \ No newline at end of file diff --git a/core/themes/stable/images/views_ui/sprites.png b/core/themes/stable/images/views_ui/sprites.png new file mode 100644 index 0000000000000000000000000000000000000000..9fcb940227cf489b93a7339e71b5455cea6a2571 --- /dev/null +++ b/core/themes/stable/images/views_ui/sprites.png @@ -0,0 +1,7 @@ +‰PNG + +��� IHDR�����,���ÎÉã>���gAMA��¯È7Šé���tEXtSoftware�Adobe ImageReadyqÉe<��ƒIDATxÚìšLSWÇï{¯±¶b‚C$›SFÉt:0šÈœh Ë2C†:܆‹’e&ƒ Åét:²M¡*Ä?4sþHf²Ämñ2¢ÎhÆ4tÃéJÄ B +¢FûîÎ}}ꣾ¾W™Ó¹œ›|yíýñyçœ{_ï¹-¥”Žãî¾.>*÷à )K¿Ó<Ž':…uç(tãüšýtA œ(hö1¨Ò‹œTä)#€5¡‘PXnB!bÀk]‹(ƒHÝüŒEH?w÷ž¬‚ãÂtÊÕœxp{cýRĸ;‘š ½Y#¡¼'¢�ÀRÛàgø„²8‹äÎqbqáµgMÕµÁž< ‚ !AÿÛAnK±k3çTö³ß¢Án¡v‘phÜc8ýœ\‚ÌÿDQÇ…5ýƒ ús ÷~!Azd»áV9©`?Vu;àW:«X]¨ý_ý( +¤¢tvH'kÂÙ ¨¦æpáYäç‹9ˆtþ´Ã.f'ì†L"W¾EÌüâê¥õIÙk^”¬—ѲôjcB[è7J�ò RZA9Ñx³fw–Ààmà¢tîçà€Ø¤é6R|¤$|@×8çS°¬¨¤„VrŸa·6ìïFˆÈ[Á-7Ó!çfKuÅGŸ…¿“À@kø•¥×ƒY)„ççÝͼè<"ÒR6·÷~!AúÏØgp•â}•Ö¡9œS¶ãönê„}çÈ©¢Bºª bZªYª¿VŒŒaÖiºV¢áZ‰Ú˜p‚])__L°ä»»u.¹.á~ƒý<(Fñ>F®#÷ã>´B‚ôÀ@?ÀÕŠ£&DA9ZcCü~Rn7/È×Y +8¯™DHÇtG û‰x;¨Ô:� ê�-�Å‚^½K‹Rü¡A;.RlŒ¬t‚,Š÷‹ˆ=u¿rl¨`{äkˆŽ§Ë×&¹¾MÛµM?çÂe&èUÙ‚…pçCŠØ°ú} /è[Ð)po·Úq}âuÈÔ^êEreíVsm‰Üp šÔ>Y®¿!÷[¢ìÙð÷˜“BЯҗ„lÅÒÁåãʱ†Á~B¾²AߨÌZ´þ#XGsAo€æÈëÇ"_Ùû7A6ègÐD”+×Q³K~Dv¯|ýGÄžªüWŠAWBŠ§QünAB‚:hÀN ö›ÇŠ¹òüö–-_oš¼¯™\??‚NaçG›7—kçG�ÓÍÀ͇~pO~w>¤ˆÍ=ù¸÷8åGà‚n~.?¤üH^GºùôÓÏ”+^ïQv ^ùºùø¯™UTlÅüAB‚a~¤Ì^.m†vÞêòm¤"iyÎ:ìÏc£lëÜÓR'šO»êoí=¼zü;ªŸÙÁIÖKŸ]ΛùqûÖ|A 9}=â©ÉÃk/þÑsø»•ñYÁŸõ!A¬ØÖ»_·Ž3}zÉÝ5Ñl1î5Dð£<=+8[»”––fJJJz/..nUllìȆ††Æf×»gÇÖ¤åË—ŽŠŠ:=ʵk×:ššš6ÔÕÕm;yòd÷€M™2eˆÅbY—˜˜hÏÎÎ&ÝÝÝ$>>þ©êêê+¬}Ĉûrrrâinnyîܹ²ÆÆÆQS§N]sþüù¿Š7 y6›#??ÿ¬×ë7fÌ!99¹BÊqººÒƒøÍfó™™™Y°ìGhþžWÌÚL¸k„Óé\gÂÀá`Y$¸»ƒµgeeEfddDBýhŸäñx>gýÙ¸®õ÷÷_zott´¹½½ýÏó¥¥¥F“É$ݧ¼¼<Ü…ú~h?.‚™õgã€|>_5˜ÝbµZ?KDˆ…±µµ•¸Ýn©Ü¨;v,‰‰‰1Bß”«W¯NcýÙ¸ ¿ßïîìì\®‚ØŒŠˆˆèe+¿mkoñt_òzëâ`¦Œ}}}�ñ€…‹Ù8Ýu”±úÒ‰¯Ïs½µ÷ñI–õ®›k~;˜úµÚ: +ù¬ÍοpptÌéí-½k ¼°áw×Í I–2kæÙ¼°Úy®ÝOŽ‹œ_sêzZÝþ”‹ñɦ\Ñï¿|±¶cŽi¨qÆ3¯œ0?B‚„ Ì0?Âüó#Ì„ !AB‚„ !AB‚„ !Aô·��jsQhªTbv����IEND®B`‚ \ No newline at end of file diff --git a/core/themes/stable/stable.info.yml b/core/themes/stable/stable.info.yml index 960a683a016127d243fbdc39d235edf257c22626..e1981fee0a8f8448eabf1ec350601a2435e81905 100644 --- a/core/themes/stable/stable.info.yml +++ b/core/themes/stable/stable.info.yml @@ -1,8 +1,235 @@ name: Stable type: theme -description: A default base theme using Drupal 8.0.0's core markup, CSS, and JavaScript. +description: A default base theme using Drupal 8.0.0's core markup and CSS. package: Core version: VERSION core: 8.x base theme: false hidden: true + +libraries-override: + block/drupal.block.admin: + css: + theme: + css/block.admin.css: css/block/block.admin.css + + ckeditor/drupal.ckeditor: + css: + state: + css/ckeditor.css: css/ckeditor/ckeditor.css + ckeditor/drupal.ckeditor.plugins.drupalimagecaption: + css: + component: + css/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css: css/ckeditor/plugins/drupalimagecaption/ckeditor.drupalimagecaption.css + ckeditor/drupal.ckeditor.admin: + css: + theme: + css/ckeditor.admin.css: css/ckeditor/ckeditor.admin.css + + color/admin: + css: + theme: + css/color.admin.css: css/color/color.admin.css + + config_translation/drupal.config_translation.admin: + css: + theme: + css/config_translation.admin.css: css/config_translation/config_translation.admin.css + + content_translation/drupal.content_translation.admin: + css: + theme: + css/content_translation.admin.css: css/content_translation/content_translation.admin.css + + contextual/drupal.contextual-links: + css: + component: + css/contextual.module.css: css/contextual/contextual.module.css + theme: + css/contextual.theme.css: css/contextual/contextual.theme.css + css/contextual.icons.theme.css: css/contextual/contextual.icons.theme.css + contextual/drupal.contextual-toolbar: + css: + component: + css/contextual.toolbar.css: css/contextual/contextual.toolbar.css + + core/drupal.dropbutton: + css: + component: + misc/dropbutton/dropbutton.css: css/core/dropbutton/dropbutton.css + core/drupal.vertical-tabs: + css: + component: + misc/vertical-tabs.css: css/core/vertical-tabs.css + + dblog/drupal.dblog: + css: + component: + css/dblog.module.css: css/dblog/dblog.module.css + + field_ui/drupal.field_ui: + css: + theme: + css/field_ui.admin.css: css/field_ui/field_ui.admin.css + + file/drupal.file: + css: + theme: + css/file.admin.css: css/file/file.admin.css + + filter/drupal.filter.admin: + css: + theme: + css/filter.admin.css: css/filter/filter.admin.css + filter/drupal.filter: + css: + theme: + css/filter.admin.css: css/filter/filter.admin.css + filter/caption: + css: + component: + css/filter.caption.css: css/filter/filter.caption.css + + image/admin: + css: + theme: + css/image.admin.css: css/image/image.admin.css + + language/drupal.language.admin: + css: + theme: + css/language.admin.css: css/language/language.admin.css + + locale/drupal.locale.admin: + css: + component: + css/locale.admin.css: css/locale/locale.admin.css + + menu_ui/drupal.menu_ui.adminforms: + css: + theme: + css/menu_ui.admin.css: css/menu_ui/menu_ui.admin.css + + node/drupal.node: + css: + layout: + css/node.module.css: css/node/node.module.css + node/drupal.node.preview: + css: + theme: + css/node.preview.css: css/node/node.preview.css + node/form: + css: + layout: + css/node.module.css: css/node/node.module.css + node/drupal.node.admin: + css: + theme: + css/node.admin.css: css/node/node.admin.css + + quickedit/quickedit: + css: + component: + css/quickedit.module.css: css/quickedit/quickedit.module.css + theme: + css/quickedit.theme.css: css/quickedit/quickedit.theme.css + css/quickedit.icons.theme.css: css/quickedit/quickedit.icons.theme.css + + shortcut/drupal.shortcut: + css: + theme: + css/shortcut.theme.css: css/shortcut/shortcut.theme.css + css/shortcut.icons.theme.css: css/shortcut/shortcut.icons.theme.css + + simpletest/drupal.simpletest: + css: + component: + css/simpletest.module.css: css/simpletest/simpletest.module.css + + system/base: + css: + component: + css/components/ajax-progress.module.css: css/system/components/ajax-progress.module.css + css/components/align.module.css: css/system/components/align.module.css + css/components/autocomplete-loading.module.css: css/system/components/autocomplete-loading.module.css + css/components/fieldgroup.module.css: css/system/components/fieldgroup.module.css + css/components/container-inline.module.css: css/system/components/container-inline.module.css + css/components/clearfix.module.css: css/system/components/clearfix.module.css + css/components/details.module.css: css/system/components/details.module.css + css/components/hidden.module.css: css/system/components/hidden.module.css + css/components/item-list.module.css: css/system/components/item-list.module.css + css/components/js.module.css: css/system/components/js.module.css + css/components/nowrap.module.css: css/system/components/nowrap.module.css + css/components/position-container.module.css: css/system/components/position-container.module.css + css/components/progress.module.css: css/system/components/progress.module.css + css/components/reset-appearance.module.css: css/system/components/reset-appearance.module.css + css/components/resize.module.css: css/system/components/resize.module.css + css/components/sticky-header.module.css: css/system/components/sticky-header.module.css + css/components/tabledrag.module.css: css/system/components/tabledrag.module.css + css/components/tablesort.module.css: css/system/components/tablesort.module.css + css/components/tree-child.module.css: css/system/components/tree-child.module.css + system/admin: + css: + theme: + css/system.admin.css: css/system/system.admin.css + system/maintenance: + css: + theme: + css/system.maintenance.css: css/system/system.maintenance.css + system/diff: + css: + component: + css/system.diff.css: css/system/system.diff.css + + taxonomy/drupal.taxonomy: + css: + component: + css/taxonomy.theme.css: css/taxonomy/taxonomy.theme.css + + toolbar/toolbar: + css: + component: + css/toolbar.module.css: css/toolbar/toolbar.module.css + theme: + css/toolbar.theme.css: css/toolbar/toolbar.theme.css + css/toolbar.icons.theme.css: css/toolbar/toolbar.icons.theme.css + toolbar/toolbar.menu: + css: + state: + css/toolbar.menu.css: css/toolbar/toolbar.menu.css + + tour/tour-styling: + css: + component: + css/tour.module.css: css/tour/tour.module.css + + update/drupal.update.admin: + css: + theme: + css/update.admin.theme.css: css/update/update.admin.theme.css + + user/drupal.user: + css: + component: + css/user.module.css: css/user/user.module.css + user/drupal.user.admin: + css: + theme: + css/user.admin.css: css/user/user.admin.css + user/drupal.user.icons: + css: + theme: + css/user.icons.admin.css: css/user/user.icons.admin.css + + views/views.module: + css: + component: + css/views.module.css: css/views/views.module.css + + views_ui/admin.styling: + css: + component: + css/views_ui.admin.css: css/views_ui/views_ui.admin.css + theme: + css/views_ui.admin.theme.css: css/views_ui/views_ui.admin.theme.css + css/views_ui.contextual.css: css/views_ui/views_ui.contextual.css diff --git a/core/themes/stable/templates/admin/admin-block-content.html.twig b/core/themes/stable/templates/admin/admin-block-content.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..b59cc85a3ad1194dab17f72ed4bdb834f2665917 --- /dev/null +++ b/core/themes/stable/templates/admin/admin-block-content.html.twig @@ -0,0 +1,32 @@ +{# +/** + * @file + * Theme override for the content of an administrative block. + * + * Available variables: + * - content: A list containing information about the block. Each element + * of the array represents an administrative menu item, and must at least + * contain the keys 'title', 'link_path', and 'localized_options', which are + * passed to l(). A 'description' key may also be provided. + * - attributes: HTML attributes to be added to the element. + * - compact: Boolean indicating whether compact mode is turned on or not. + * + * @see template_preprocess_admin_block_content() + */ +#} +{% + set classes = [ + 'list-group', + compact ? 'compact', + ] +%} +{% if content %} + <dl{{ attributes.addClass(classes) }}> + {% for item in content %} + <dt class="list-group__link">{{ item.link }}</dt> + {% if item.description %} + <dd class="list-group__description">{{ item.description }}</dd> + {% endif %} + {% endfor %} + </dl> +{% endif %} diff --git a/core/themes/stable/templates/admin/admin-block.html.twig b/core/themes/stable/templates/admin/admin-block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9464d405a82473981e7e9c4b436ecbbde985eaab --- /dev/null +++ b/core/themes/stable/templates/admin/admin-block.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override for an administrative block. + * + * Available variables: + * - block: An array of information about the block, including: + * - show: A flag indicating if the block should be displayed. + * - title: The block title. + * - content: (optional) The content of the block. + * - description: (optional) A description of the block. + * (Description should only be output if content is not available). + */ +#} +<div class="panel"> + {% if block.title %} + <h3 class="panel__title">{{ block.title }}</h3> + {% endif %} + {% if block.content %} + <div class="panel__content">{{ block.content }}</div> + {% elseif block.description %} + <div class="panel__description">{{ block.description }}</div> + {% endif %} +</div> diff --git a/core/themes/stable/templates/admin/admin-page.html.twig b/core/themes/stable/templates/admin/admin-page.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..106876f730a9a0446746ec42de2a6c7812198a09 --- /dev/null +++ b/core/themes/stable/templates/admin/admin-page.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for an administrative page. + * + * Available variables: + * - system_compact_link: Themed link to toggle compact view. + * - containers: An list of administrative blocks keyed by position: left or + * right. Contains: + * - blocks: A list of blocks within a container. + * + * @see template_preprocess_admin_page() + */ +#} + +<div class="clearfix"> + {{ system_compact_link }} + {% for container in containers %} + <div class="layout-column layout-column--half"> + {% for block in container.blocks %} + {{ block }} + {% endfor %} + </div> + {% endfor %} +</div> diff --git a/core/themes/stable/templates/admin/authorize-report.html.twig b/core/themes/stable/templates/admin/authorize-report.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..2e5a59c0c03bc093c0ac61fc80b0b03febea0eb7 --- /dev/null +++ b/core/themes/stable/templates/admin/authorize-report.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for authorize.php operation report templates. + * + * This report displays the results of an operation run via authorize.php. + * + * Available variables: + * - messages: A list of result messages. + * - attributes: HTML attributes for the element. + * + * @see template_preprocess_authorize_report() + */ +#} +{% if messages %} + <div{{ attributes.addClass('authorize-results') }}> + {% for message_group in messages %} + {{ message_group }} + {% endfor %} + </div> +{% endif %} diff --git a/core/themes/stable/templates/admin/block-content-add-list.html.twig b/core/themes/stable/templates/admin/block-content-add-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..ae99d1f834fb286bb3fe6fdbf2047ecad1ab2ded --- /dev/null +++ b/core/themes/stable/templates/admin/block-content-add-list.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Theme override to present a list of custom block types. + * + * Available variables: + * - types: A collection of all the available custom block types. + * Each block type contains the following: + * - link: A link to add a block of this type. + * - description: A description of this custom block type. + * + * @see template_preprocess_block_content_add_list() + */ +#} +{% spaceless %} + <dl> + {% for type in types %} + <dt>{{ type.link }}</dt> + <dd>{{ type.description }}</dd> + {% endfor %} + </dl> +{% endspaceless %} diff --git a/core/themes/stable/templates/admin/block-list.html.twig b/core/themes/stable/templates/admin/block-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..0da7e946dbba53973c3a350885f8555160e51604 --- /dev/null +++ b/core/themes/stable/templates/admin/block-list.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Two column template for the block add/edit form. + * + * This template will be used when a block edit form specifies 'block_edit_form' + * as its #theme callback. Otherwise, by default, block add/edit forms will be + * themed by form.html.twig. + * + * Available variables: + * - form: The block add/edit form. + */ +#} +<div class="layout-block-list clearfix"> + <div class="layout-region block-list-primary"> + {{ form|without('place_blocks') }} + </div> + <div class="layout-region block-list-secondary"> + {{ form.place_blocks }} + </div> +</div> diff --git a/core/themes/stable/templates/admin/ckeditor-settings-toolbar.html.twig b/core/themes/stable/templates/admin/ckeditor-settings-toolbar.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..392c494301f45d7c9221dee85eaeed3a520b43b6 --- /dev/null +++ b/core/themes/stable/templates/admin/ckeditor-settings-toolbar.html.twig @@ -0,0 +1,73 @@ +{# +/** + * @file + * Theme override for the CKEditor settings toolbar. + * + * Available variables: + * - multiple_buttons: A list of buttons that may be added multiple times. + * - disabled_buttons: A list of disabled buttons. + * - active_buttons: A list of active button rows. + * + * @see template_preprocess_ckeditor_settings_toolbar() + */ +#} +{% spaceless %} + <fieldset role="form" aria-labelledby="ckeditor-button-configuration ckeditor-button-description"> + <legend id="ckeditor-button-configuration">{{ 'Toolbar configuration'|t }}</legend> + <div class="fieldset-wrapper"> + <div id="ckeditor-button-description" class="fieldset-description"> + {%- trans -%} + Move a button into the <em>Active toolbar</em> to enable it, or into the list of <em>Available buttons</em> to disable it. Buttons may be moved with the mouse or keyboard arrow keys. Toolbar group names are provided to support screen reader users. Empty toolbar groups will be removed upon save. + {%- endtrans -%} + </div> + <div class="ckeditor-toolbar-disabled clearfix"> + {# Available buttons. #} + <div class="ckeditor-toolbar-available"> + <label for="ckeditor-available-buttons">{{ 'Available buttons'|t }}</label> + <ul id="ckeditor-available-buttons" class="ckeditor-buttons clearfix" role="form" data-drupal-ckeditor-button-sorting="source"> + {% for disabled_button in disabled_buttons %} + <li{{ disabled_button.attributes.addClass('ckeditor-button') }}>{{ disabled_button.value }}</li> + {% endfor %} + </ul> + </div> + {# Dividers. #} + <div class="ckeditor-toolbar-dividers"> + <label for="ckeditor-multiple-buttons">{{ 'Button divider'|t }}</label> + <ul id="ckeditor-multiple-buttons" class="ckeditor-multiple-buttons" role="form" data-drupal-ckeditor-button-sorting="dividers"> + {% for multiple_button in multiple_buttons %} + <li{{ multiple_button.attributes.addClass('ckeditor-multiple-button') }}>{{ multiple_button.value }}</li> + {% endfor %} + </ul> + </div> + </div> + {# Active toolbar. #} + <div class="clearfix"> + <label id="ckeditor-active-toolbar">{{ 'Active toolbar'|t }}</label> + </div> + <div data-toolbar="active" role="form" class="ckeditor-toolbar ckeditor-toolbar-active clearfix"> + <ul class="ckeditor-active-toolbar-configuration" role="presentation" aria-label="{{ 'CKEditor toolbar and button configuration.'|t }}"> + {% for button_row in active_buttons %} + <li class="ckeditor-row" role="group" aria-labelledby="ckeditor-active-toolbar"> + <ul class="ckeditor-toolbar-groups clearfix"> + {% for group_name, button_group in button_row %} + <li class="ckeditor-toolbar-group" role="presentation" data-drupal-ckeditor-type="group" data-drupal-ckeditor-toolbar-group-name="{{ group_name }}" tabindex="0"> + <h3 class="ckeditor-toolbar-group-name" id="ckeditor-toolbar-group-aria-label-for-{{ button_group.group_name_class }}">{{ group_name }}</h3> + <ul class="ckeditor-buttons ckeditor-toolbar-group-buttons" role="toolbar" data-drupal-ckeditor-button-sorting="target" aria-labelledby="ckeditor-toolbar-group-aria-label-for-{{ button_group.group_name_class }}"> + {% for active_button in button_group.buttons %} + <li{{ active_button.attributes.addClass(active_button.multiple ? 'ckeditor-multiple-button' : 'ckeditor-button') }}>{{ active_button.value }}</li> + {% endfor %} + </ul> + </li> + {% endfor %} + </ul> + </li> + {% else %} + <li> + <ul class="ckeditor-buttons"></ul> + </li> + {% endfor %} + </ul> + </div> + </div> + </fieldset> +{% endspaceless %} diff --git a/core/themes/stable/templates/admin/color-scheme-form.html.twig b/core/themes/stable/templates/admin/color-scheme-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..c7328afd2d21235380ae0ed2ff24604a2a62615d --- /dev/null +++ b/core/themes/stable/templates/admin/color-scheme-form.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override for a theme's color form. + * + * Available variables: + * - form: Form elements for the color scheme form, including: + * - scheme: A color scheme form element. For example: a select element with + * color theme presets, or a color picker widget. + * - palette: Color fields that can be changed by entering in a new hex value. + * - html_preview: A HTML preview of the theme's current color scheme. + * + * @see template_preprocess_color_scheme_form() + */ +#} +<div class="color-form clearfix"> + {{ form.scheme }} + <div class="clearfix color-palette js-color-palette"> + {{ form.palette }} + </div> + {{ form|without('scheme', 'palette') }} + <h2>{{ 'Preview'|t }}</h2> + {{ html_preview }} +</div> diff --git a/core/themes/stable/templates/admin/config_translation_manage_form_element.html.twig b/core/themes/stable/templates/admin/config_translation_manage_form_element.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..b4769559e7fa57cd8201c33b5704326345e9bb71 --- /dev/null +++ b/core/themes/stable/templates/admin/config_translation_manage_form_element.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Theme override for a form element in config_translation. + * + * Available variables: + * - element: Array that represents the element shown in the form. + * - source: The source of the translation. + * - translation: The translation for the target language. + * + * @see template_preprocess() + * @see template_preprocess_config_translation_manage_form_element() + */ +#} +<div class="translation-set clearfix"> + <div class="layout-column layout-column--half translation-set__source"> + {{ element.source }} + </div> + <div class="layout-column layout-column--half translation-set__translated"> + {{ element.translation }} + </div> +</div> diff --git a/core/themes/stable/templates/admin/field-ui-table.html.twig b/core/themes/stable/templates/admin/field-ui-table.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5a058520f5d611c0b77c0e45e42531b5ff71ba40 --- /dev/null +++ b/core/themes/stable/templates/admin/field-ui-table.html.twig @@ -0,0 +1,45 @@ +{# +/** + * @file + * Theme override to display a Field UI table. + * + * Available variables: + * - attributes: HTML attributes to apply to the <table> tag. + * - caption: A localized string for the <caption> tag. + * - colgroups: Column groups. Each group contains the following properties: + * - attributes: HTML attributes to apply to the <col> tag. + * Note: Drupal currently supports only one table header row, see + * https://www.drupal.org/node/893530 and + * http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109. + * - header: Table header cells. Each cell contains the following properties: + * - tag: The HTML tag name to use; either TH or TD. + * - attributes: HTML attributes to apply to the tag. + * - content: A localized string for the title of the column. + * - field: Field name (required for column sorting). + * - sort: Default sort order for this column ("asc" or "desc"). + * - sticky: A flag indicating whether to use a "sticky" table header. + * - rows: Table rows. Each row contains the following properties: + * - attributes: HTML attributes to apply to the <tr> tag. + * - data: Table cells. + * - no_striping: A flag indicating that the row should receive no + * 'even / odd' styling. Defaults to FALSE. + * - cells: Table cells of the row. Each cell contains the following keys: + * - tag: The HTML tag name to use; either TH or TD. + * - attributes: Any HTML attributes, such as "colspan", to apply to the + * table cell. + * - content: The string to display in the table cell. + * - active_table_sort: A boolean indicating whether the cell is the active + table sort. + * - footer: Table footer rows, in the same format as the rows variable. + * - empty: The message to display in an extra row if table does not have + * any rows. + * - no_striping: A boolean indicating that the row should receive no striping. + * - header_columns: The number of columns in the header. + * + * @see template_preprocess_field_ui_table() + */ +#} +{# Add Ajax wrapper. #} +<div id="field-display-overview-wrapper"> + {% include 'table.html.twig' %} +</div> diff --git a/core/themes/stable/templates/admin/image-anchor.html.twig b/core/themes/stable/templates/admin/image-anchor.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..1d709dd8feac4423a72d0a4b94cf17933fc77849 --- /dev/null +++ b/core/themes/stable/templates/admin/image-anchor.html.twig @@ -0,0 +1,12 @@ +{# +/** + * @file + * Theme override for a 3x3 grid of checkboxes for image anchors. + * + * Available variables: + * - table: HTML for the table of image anchors. + * + * @see template_preprocess_image_anchor() + */ +#} +{{ table }} diff --git a/core/themes/stable/templates/admin/image-crop-summary.html.twig b/core/themes/stable/templates/admin/image-crop-summary.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..6f3b0fcb3e4d55af7ec7b51d9af0b83bffd467bc --- /dev/null +++ b/core/themes/stable/templates/admin/image-crop-summary.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Theme override for a summary of an image crop effect. + * + * Available variables: + * - data: The current configuration for this resize effect, including: + * - width: The width of the resized image. + * - height: The height of the resized image. + * - anchor: The part of the image that will be retained after cropping. + * - anchor_label: The translated label of the crop anchor. + * - effect: The effect information, including: + * - id: The effect identifier. + * - label: The effect name. + * - description: The effect description. + */ +#} +{% if data.width and data.height -%} + {{ data.width|e }}×{{ data.height|e }} +{%- else -%} + {% if data.width %} + {% trans %} + width {{ data.width|e }} + {% endtrans %} + {% elseif data.height %} + {% trans %} + height {{ data.height|e }} + {% endtrans %} + {% endif %} +{%- endif %} diff --git a/core/themes/stable/templates/admin/image-resize-summary.html.twig b/core/themes/stable/templates/admin/image-resize-summary.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..fde09d23ac2c95e0a3e443c3e18be562854b8f6e --- /dev/null +++ b/core/themes/stable/templates/admin/image-resize-summary.html.twig @@ -0,0 +1,28 @@ +{# +/** + * @file + * Theme override for a summary of an image resize effect. + * + * Available variables: + * - data: The current configuration for this resize effect, including: + * - width: The width of the resized image. + * - height: The height of the resized image. + * - effect: The effect information, including: + * - id: The effect identifier. + * - label: The effect name. + * - description: The effect description. + */ +#} +{% if data.width and data.height -%} + {{ data.width|e }}×{{ data.height|e }} +{%- else -%} + {% if data.width %} + {% trans %} + width {{ data.width|e }} + {% endtrans %} + {% elseif data.height %} + {% trans %} + height {{ data.height|e }} + {% endtrans %} + {% endif %} +{%- endif %} diff --git a/core/themes/stable/templates/admin/image-rotate-summary.html.twig b/core/themes/stable/templates/admin/image-rotate-summary.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..542f2df80dfc4c649d1a2e4f720385a6832d1ad6 --- /dev/null +++ b/core/themes/stable/templates/admin/image-rotate-summary.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for a summary of an image rotate effect. + * + * Available variables: + * - data: The current configuration for this resize effect, including: + * - degrees: Degrees to rotate the image, positive values will rotate the + * image clockwise, negative values counter-clockwise. + * - bgcolor: The hex background color of the new areas created as consequence + * of rotation. + * - random: If the rotation angle is randomized. + * - effect: The effect information, including: + * - id: The effect identifier. + * - label: The effect name. + * - description: The effect description. + */ +#} +{% if data.random %} + {% trans %} + random between -{{ data.degrees|abs }}° and {{ data.degrees|abs }}° + {% endtrans %} +{% else %} + {{ data.degrees }}° +{% endif %} diff --git a/core/themes/stable/templates/admin/image-scale-summary.html.twig b/core/themes/stable/templates/admin/image-scale-summary.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..bf54445a082978d5943ec9947f56485be01e89f2 --- /dev/null +++ b/core/themes/stable/templates/admin/image-scale-summary.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @file + * Theme override for a summary of an image scale effect. + * + * Available variables: + * - data: The current configuration for this resize effect, including: + * - width: The width of the resized image. + * - height: The height of the resized image. + * - upscale: If images larger than their original size can scale. + * - effect: The effect information, including: + * - id: The effect identifier. + * - label: The effect name. + * - description: The effect description. + */ +#} +{% if data.width and data.height -%} + {{ data.width|e }}×{{ data.height|e }} +{%- else -%} + {% if data.width %} + {% trans %} + width {{ data.width|e }} + {% endtrans %} + {% elseif data.height %} + {% trans %} + height {{ data.height|e }} + {% endtrans %} + {% endif %} +{%- endif %} + +{% if data.upscale %} + {% trans %} + (upscaling allowed) + {% endtrans %} +{% endif %} diff --git a/core/themes/stable/templates/admin/image-style-preview.html.twig b/core/themes/stable/templates/admin/image-style-preview.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3517b2cd82c6c6cedb1341f1fcd82c62394be64a --- /dev/null +++ b/core/themes/stable/templates/admin/image-style-preview.html.twig @@ -0,0 +1,55 @@ +{# +/** + * @file + * Theme override to display a preview of an image style. + * + * Available variables: + * - style_id: The ID of the image style. + * - style_name: The name of the image style. + * - cache_bypass: A timestamp token used to avoid browser caching of images. + * - original: An associative array containing: + * - url: The URL of the original image. + * - width: The width in pixels of the original image. + * - height: The height in pixels of the original image. + * - rendered: The render array for the original image. + * - derivative: An associative array containing: + * - url: The URL of the derivative image. + * - width: The width in pixels of the derivative image. + * - height: The height in pixels of the derivative image. + * - rendered: The rendered derivative image. + * - preview: An associative array containing: + * - original: An associative array containing: + * - width: The width in pixels of the original image in the preview. + * - height: The height in pixels of the original image in the preview. + * - derivative: An associative array containing: + * - width: The width in pixels of the derivative image in the preview. + * - height: The height in pixels of the derivative image in the preview. + * + * @see template_preprocess_image_style_preview() + */ +#} +<div class="image-style-preview preview clearfix"> + {# Preview of the original image. #} + <div class="preview-image-wrapper"> + {{ 'original'|t }} (<a href="{{ original.url }}">{{ 'view actual size'|t }}</a>) + <div class="preview-image original-image" style="width: {{ preview.original.width }}px; height: {{ preview.original.height }}px;"> + <a href="{{ original.url }}"> + {{ original.rendered }} + </a> + <div class="height" style="height: {{ preview.original.height }}px"><span>{{ original.height }}px</span></div> + <div class="width" style="width: {{ preview.original.width }}px"><span>{{ original.width }}px</span></div> + </div> + </div> + + {# Derivative of the image style. #} + <div class="preview-image-wrapper"> + {{ style_name }} (<a href="{{ derivative.url }}?{{ cache_bypass }}">{{ 'view actual size'|t }}</a>) + <div class="preview-image modified-image" style="width: {{ preview.derivative.width }}px; height: {{ preview.derivative.height }}px;"> + <a href="{{ derivative.url }}?{{ cache_bypass }}"> + {{ derivative.rendered }} + </a> + <div class="height" style="height: {{ preview.derivative.height }}px"><span>{{ derivative.height }}px</span></div> + <div class="width" style="width: {{ preview.derivative.width }}px"><span>{{ derivative.width }}px</span></div> + </div> + </div> +</div> diff --git a/core/themes/stable/templates/admin/indentation.html.twig b/core/themes/stable/templates/admin/indentation.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..c8244b51129236d4cfc4839e80604f9e01cbdae0 --- /dev/null +++ b/core/themes/stable/templates/admin/indentation.html.twig @@ -0,0 +1,12 @@ +{# +/** + * @file + * Theme override for a set of indentation divs. + * + * These <div> tags are used for drag and drop tables. + * + * Available variables: + * - size: Optional. The number of indentations to create. + */ +#} +{% for i in 1..size if size > 0 %}<div class="js-indentation indentation"> </div>{% endfor %} diff --git a/core/themes/stable/templates/admin/language-content-settings-table.html.twig b/core/themes/stable/templates/admin/language-content-settings-table.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5a8ba8c0033cd9b7f291e98d45bd33c4bafcaa27 --- /dev/null +++ b/core/themes/stable/templates/admin/language-content-settings-table.html.twig @@ -0,0 +1,14 @@ +{# +/** + * @file + * Theme override to display a language content settings table. + * + * Available variables: + * - title: The title of the table. + * - build: Table of content language settings. + * + * @see template_preprocess_language_content_settings_table() + */ +#} +<h4>{{ title }}</h4> +{{ build }} diff --git a/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig b/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5029a65d4d03fd5c104c620bc38d40a447968912 --- /dev/null +++ b/core/themes/stable/templates/admin/language-negotiation-configure-form.html.twig @@ -0,0 +1,38 @@ +{# +/** +* @file +* Theme override for a language negotiation configuration form. +* +* Available variables: +* - language_types: A list of language negotiation types. Each language type +* contains the following: +* - type: The machine name for the negotiation type. +* - title: The language negotiation type name. +* - description: A description for how the language negotiation type operates. +* - configurable: A radio element to toggle the table. +* - table: A draggable table for the language detection methods of this type. +* - children: Remaining form items for the group. +* - attributes: A list of HTML attributes for the wrapper element. +* - children: Remaining form items for all groups. +* +* @see template_preprocess_language_negotiation_configure_form() +*/ +#} +{% for language_type in language_types %} + {% + set language_classes = [ + 'js-form-item', + 'form-item', + 'table-language-group', + 'table-' ~ language_type.type ~ '-wrapper', + ] + %} + <div{{ language_type.attributes.addClass(language_classes) }}> + <h2>{{ language_type.title }}</h2> + <div class="description">{{ language_type.description }}</div> + {{ language_type.configurable }} + {{ language_type.table }} + {{ language_type.children }} + </div> +{% endfor %} +{{ children }} diff --git a/core/themes/stable/templates/admin/locale-translation-last-check.html.twig b/core/themes/stable/templates/admin/locale-translation-last-check.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..1c5ebd059e405343adb44b2bd64e4eab087c814f --- /dev/null +++ b/core/themes/stable/templates/admin/locale-translation-last-check.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for the last time we checked for update data. + * + * Available variables: + * - last_checked: Whether or not locale updates have been checked before. + * - time: The formatted time ago when the site last checked for available + * updates. + * - link: A link to manually check available updates. + * + * @see template_preprocess_locale_translation_last_check() + */ +#} +<div class="locale checked"> + <p> + {% if last_checked %} + {% trans %} Last checked: {{ time }} ago {% endtrans %} + {% else %} + {{ 'Last checked: never'|t }} + {% endif %} + <span class="check-manually">({{ link }})</span></p> +</div> diff --git a/core/themes/stable/templates/admin/locale-translation-update-info.html.twig b/core/themes/stable/templates/admin/locale-translation-update-info.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..8e2bedeec2190bb7ea395c61c76101c91d571ba4 --- /dev/null +++ b/core/themes/stable/templates/admin/locale-translation-update-info.html.twig @@ -0,0 +1,57 @@ +{# +/** + * @file + * Theme override for displaying translation status information. + * + * Displays translation status information per language. + * + * Available variables: + * - modules: A list of modules names that have available translation updates. + * - updates: A list of available translation updates. + * - not_found: A list of modules missing translation updates. + * + * @see template_preprocess_locale_translation_update_info() + */ +#} +<div class="locale-translation-update__wrapper" tabindex="0" role="button"> + <span class="locale-translation-update__prefix visually-hidden">Show description</span> + {% if modules %} + {% set module_list = modules|safe_join(', ') %} + <span class="locale-translation-update__message">{% trans %}Updates for: {{ module_list }}{% endtrans %}</span> + {% elseif not_found %} + <span class="locale-translation-update__message"> + {%- trans -%} + Missing translations for one project + {%- plural not_found|length -%} + Missing translations for @count projects + {%- endtrans -%} + </span> + {% endif %} + {% if updates or not_found %} + <div class="locale-translation-update__details"> + {% if updates %} + <ul> + {% for update in updates %} + <li>{{ update.name }} ({{ update.timestamp|format_date('html_date') }})</li> + {% endfor %} + </ul> + {% endif %} + {% if not_found %} + {# + Prefix the missing updates list if there is an available updates lists + before it. + #} + {% if updates %} + {{ 'Missing translations for:'|t }} + {% endif %} + {% if not_found %} + <ul> + {% for update in not_found %} + <li>{{ update.name }} ({{ update.version|default('no version'|t) }}). {{ update.info }}</li> + {% endfor %} + </ul> + {% endif %} + {% endif %} + </div> + {% endif %} +</div> diff --git a/core/themes/stable/templates/admin/maintenance-task-list.html.twig b/core/themes/stable/templates/admin/maintenance-task-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..0fbeff947446138b958154b7c987d66587270b7f --- /dev/null +++ b/core/themes/stable/templates/admin/maintenance-task-list.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for a list of maintenance tasks to perform. + * + * Available variables: + * - tasks: A list of maintenance tasks to perform. Each item in the list has + * the following variables: + * - item: The maintenance task. + * - attributes: HTML attributes for the maintenance task. + * - status: (optional) Text describing the status of the maintenance task, + * 'active' or 'done'. + */ +#} +<h2 class="visually-hidden">{{ 'Installation tasks'|t }}</h2> +<ol class="task-list"> +{% for task in tasks %} + <li{{ task.attributes }}> + {{ task.item }} + {% if task.status %}<span class="visually-hidden"> ({{ task.status }})</span>{% endif %} + </li> +{% endfor %} +</ol> diff --git a/core/themes/stable/templates/admin/simpletest-result-summary.html.twig b/core/themes/stable/templates/admin/simpletest-result-summary.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..55233256216a46e8e3126a0b6204b9426158834a --- /dev/null +++ b/core/themes/stable/templates/admin/simpletest-result-summary.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Theme override for simpletest result summaries. + * + * Available variables: + * - label: An optional label to be rendered before the results. + * - items: Pluralized summaries for each result type (number of passes, fails, + * exceptions, and debug messages). + * - pass: The number of passes. + * - fail: The number of fails. + * - exception: The number of exceptions. + * - debug: The number of debug messages. + * + * @see template_preprocess_simpletest_result_summary() + */ +#} +<div class="simpletest-{{ fail + exception == 0 ? 'pass' : 'fail' }}"> + {{ label }} {{ items|join(', ') }} +</div> diff --git a/core/themes/stable/templates/admin/status-report.html.twig b/core/themes/stable/templates/admin/status-report.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..7f4c6005d40676bbda7c1e14ecc8659cd5181bdf --- /dev/null +++ b/core/themes/stable/templates/admin/status-report.html.twig @@ -0,0 +1,39 @@ +{# +/** + * @file + * Theme override for the status report. + * + * Available variables: + * - requirements: Contains multiple requirement instances. + * Each requirement contains: + * - title: The title of the requirement. + * - value: (optional) The requirement's status. + * - description: (optional) The requirement's description. + * - severity_title: The title of the severity. + * - severity_status: Indicates the severity status. + * + * @see template_preprocess_status_report() + */ +#} +<table class="system-status-report"> + <tbody> + {% for requirement in requirements %} + <tr class="system-status-report__entry system-status-report__entry--{{ requirement.severity_status }} color-{{ requirement.severity_status }}"> + {% if requirement.severity_status in ['warning', 'error'] %} + <th class="system-status-report__status-title system-status-report__status-icon system-status-report__status-icon--{{ requirement.severity_status }}"> + <span class="visually-hidden">{{ requirement.severity_title }}</span> + {% else %} + <th class="system-status-report__status-title"> + {% endif %} + {{ requirement.title }} + </th> + <td> + {{ requirement.value }} + {% if requirement.description %} + <div class="description">{{ requirement.description }}</div> + {% endif %} + </td> + </tr> + {% endfor %} + </tbody> +</table> diff --git a/core/themes/stable/templates/admin/system-admin-index.html.twig b/core/themes/stable/templates/admin/system-admin-index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..23178ee05b001ad6a83f84210333de221965b2c3 --- /dev/null +++ b/core/themes/stable/templates/admin/system-admin-index.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for the admin index page. + * + * Available variables: + * - system_compact_link: Themed link to toggle compact view. + * - containers: A list of administrative containers keyed by position: left or + * right. Each container in the list contains: + * - blocks: A list of administrative blocks, rendered + * through admin-block.html.twig. + * + * @see template_preprocess_system_admin_index() + */ +#} +<div class="admin clearfix"> + {{ system_compact_link }} + {% for position, blocks in containers %} + <div class="{{ position }} clearfix"> + {% for block in blocks %} + {{ block }} + {% endfor %} + </div> + {% endfor %} +</div> diff --git a/core/themes/stable/templates/admin/system-config-form.html.twig b/core/themes/stable/templates/admin/system-config-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..8023813ce73e56e75b113906314b7c2e3873db79 --- /dev/null +++ b/core/themes/stable/templates/admin/system-config-form.html.twig @@ -0,0 +1,15 @@ +{# +/** + * @file + * Theme override for a system settings form. + * + * This template will be used when a system config form specifies 'config_form' + * as its #theme callback. Otherwise, by default, system config forms will be + * themed by theme_form(). This does not alter the appearance of a form at all, + * but is provided as a convenience for themers. + * + * Available variables: + * - form: The confirm form. + */ +#} +{{ form }} diff --git a/core/themes/stable/templates/admin/system-modules-details.html.twig b/core/themes/stable/templates/admin/system-modules-details.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..618b58a25f8b435e585b55d760e91017d8626089 --- /dev/null +++ b/core/themes/stable/templates/admin/system-modules-details.html.twig @@ -0,0 +1,74 @@ +{# +/** + * @file + * Theme override for the modules listing page. + * + * Displays a list of all packages in a project. + * + * Available variables: + * - modules: Contains multiple module instances. Each module contains: + * - attributes: Attributes on the row. + * - checkbox: A checkbox for enabling the module. + * - name: The human-readable name of the module. + * - id: A unique identifier for interacting with the details element. + * - enable_id: A unique identifier for interacting with the checkbox element. + * - description: The description of the module. + * - machine_name: The module's machine name. + * - version: Information about the module version. + * - requires: A list of modules that this module requires. + * - required_by: A list of modules that require this module. + * - links: A list of administration links provided by the module. + * + * @see template_preprocess_system_modules_details() + */ +#} +<table class="responsive-enabled" data-striping="1"> + <thead> + <tr> + <th class="checkbox visually-hidden">{{ 'Installed'|t }}</th> + <th class="name visually-hidden">{{ 'Name'|t }}</th> + <th class="description visually-hidden priority-low">{{ 'Description'|t }}</th> + </tr> + </thead> + <tbody> + {% for module in modules %} + {% set zebra = cycle(['odd', 'even'], loop.index0) %} + <tr{{ module.attributes.addClass(zebra) }}> + <td class="checkbox"> + {{ module.checkbox }} + </td> + <td class="module"> + <label id="{{ module.id }}" for="{{ module.enable_id }}" class="module-name table-filter-text-source">{{ module.name }}</label> + </td> + <td class="description expand priority-low"> + <details class="js-form-wrapper form-wrapper" id="{{ module.enable_id }}-description"> + <summary aria-controls="{{ module.enable_id }}-description" role="button" aria-expanded="false"><span class="text module-description">{{ module.description }}</span></summary> + <div class="details-wrapper"> + <div class="details-description"> + <div class="requirements"> + <div class="admin-requirements">{{ 'Machine name: <span dir="ltr" class="table-filter-text-source">@machine-name</span>'|t({'@machine-name': module.machine_name }) }}</div> + {% if module.version %} + <div class="admin-requirements">{{ 'Version: @module-version'|t({'@module-version': module.version }) }}</div> + {% endif %} + {% if module.requires %} + <div class="admin-requirements">{{ 'Requires: @module-list'|t({'@module-list': module.requires }) }}</div> + {% endif %} + {% if module.required_by %} + <div class="admin-requirements">{{ 'Required by: @module-list'|t({'@module-list': module.required_by }) }}</div> + {% endif %} + </div> + {% if module.links %} + <div class="links"> + {% for link_type in ['help', 'permissions', 'configure'] %} + {{ module.links[link_type] }} + {% endfor %} + </div> + {% endif %} + </div> + </div> + </details> + </td> + </tr> + {% endfor %} + </tbody> +</table> diff --git a/core/themes/stable/templates/admin/system-modules-uninstall.html.twig b/core/themes/stable/templates/admin/system-modules-uninstall.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..355670978da813022f79bf42fb457ce952ab9d22 --- /dev/null +++ b/core/themes/stable/templates/admin/system-modules-uninstall.html.twig @@ -0,0 +1,73 @@ +{# +/** + * @file + * Theme override for the modules uninstall page. + * + * Available variables: + * - form: The modules uninstall form. + * - modules: Contains multiple module instances. Each module contains: + * - attributes: Attributes on the row. + * - module_name: The name of the module. + * - checkbox: A checkbox for uninstalling the module. + * - checkbox_id: A unique identifier for interacting with the checkbox + * element. + * - name: The human-readable name of the module. + * - description: The description of the module. + * - disabled_reasons: (optional) A list of reasons why this module cannot be + * uninstalled. + * + * @see template_preprocess_system_modules_uninstall() + */ +#} +{{ form.filters }} + +<table class="responsive-enabled" data-striping="1"> + <thead> + <tr> + <th>{{ 'Uninstall'|t }}</th> + <th>{{ 'Name'|t }}</th> + <th>{{ 'Description'|t }}</th> + </tr> + </thead> + <tbody> + {% for module in modules %} + {% set zebra = cycle(['odd', 'even'], loop.index0) -%} + <tr{{ module.attributes.addClass(zebra) }}> + <td align="center"> + {{- module.checkbox -}} + </td> + <td> + <label for="{{ module.checkbox_id }}" class="module-name table-filter-text-source">{{ module.name }}</label> + </td> + <td class="description"> + <span class="text module-description">{{ module.description }}</span> + {% if module.reasons_count > 0 %} + <div class="admin-requirements"> + {%- trans -%} + The following reason prevents {{ module.module_name }} from being uninstalled: + {%- plural module.reasons_count -%} + The following reasons prevent {{ module.module_name }} from being uninstalled: + {%- endtrans %} + <div class="item-list"> + <ul> + {%- for reason in module.validation_reasons -%} + <li>{{ reason }}</li> + {%- endfor -%} + {%- if module.required_by -%} + <li>{{ 'Required by: @module-list'|t({'@module-list': module.required_by|safe_join(', ') }) }}</li> + {%- endif -%} + </ul> + </div> + </div> + {% endif %} + </td> + </tr> + {% else %} + <tr class="odd"> + <td colspan="3" class="empty message">{{ 'No modules are available to uninstall.'|t }}</td> + </tr> + {% endfor %} + </tbody> +</table> + +{{ form|without('filters', 'modules', 'uninstall') }} diff --git a/core/themes/stable/templates/admin/system-themes-page.html.twig b/core/themes/stable/templates/admin/system-themes-page.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5a23f1a14c54f1f300c9a4bbe73d31f82ffb3ef3 --- /dev/null +++ b/core/themes/stable/templates/admin/system-themes-page.html.twig @@ -0,0 +1,74 @@ +{# +/** + * @file + * Theme override for the Appearance page. + * + * Available variables: + * - attributes: HTML attributes for the main container. + * - theme_groups: A list of theme groups. Each theme group contains: + * - attributes: HTML attributes specific to this theme group. + * - title: Title for the theme group. + * - state: State of the theme group, e.g. installed or uninstalled. + * - themes: A list of themes within the theme group. Each theme contains: + * - attributes: HTML attributes specific to this theme. + * - screenshot: A screenshot representing the theme. + * - description: Description of the theme. + * - name: Theme name. + * - version: The theme's version number. + * - is_default: Boolean indicating whether the theme is the default theme + * or not. + * - is_admin: Boolean indicating whether the theme is the admin theme or + * not. + * - notes: Identifies what context this theme is being used in, e.g., + * default theme, admin theme. + * - incompatible: Text describing any compatibility issues. + * - operations: A list of operation links, e.g., Settings, Enable, Disable, + * etc. these links should only be displayed if the theme is compatible. + * + * @see template_preprocess_system_themes_page() + */ +#} +<div{{ attributes }}> + {% for theme_group in theme_groups %} + {% + set theme_group_classes = [ + 'system-themes-list', + 'system-themes-list-' ~ theme_group.state, + 'clearfix', + ] + %} + <div{{ theme_group.attributes.addClass(theme_group_classes) }}> + <h2 class="system-themes-list__header">{{ theme_group.title }}</h2> + {% for theme in theme_group.themes %} + {% + set theme_classes = [ + theme.is_default ? 'theme-default', + theme.is_admin ? 'theme-admin', + 'theme-selector', + 'clearfix', + ] + %} + <div{{ theme.attributes.addClass(theme_classes) }}> + {% if theme.screenshot %} + {{ theme.screenshot }} + {% endif %} + <div class="theme-info"> + <h3 class="theme-info__header"> + {{- theme.name }} {{ theme.version -}} + {% if theme.notes %} + ({{ theme.notes|safe_join(', ') }}) + {%- endif -%} + </h3> + <div class="theme-info__description">{{ theme.description }}</div> + {# Display operation links if the theme is compatible. #} + {% if theme.incompatible %} + <div class="incompatible">{{ theme.incompatible }}</div> + {% else %} + {{ theme.operations }} + {% endif %} + </div> + </div> + {% endfor %} + </div> + {% endfor %} +</div> diff --git a/core/themes/stable/templates/admin/tablesort-indicator.html.twig b/core/themes/stable/templates/admin/tablesort-indicator.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..4e57274b4ee1cc8eb660ede52b650d33b75dc588 --- /dev/null +++ b/core/themes/stable/templates/admin/tablesort-indicator.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override for displaying a tablesort indicator. + * + * Available variables: + * - style: Either 'asc' or 'desc', indicating the sorting direction. + * + * @see template_preprocess_tablesort_indicator() + */ +#} +{% + set classes = [ + 'tablesort', + 'tablesort--' ~ style, + ] +%} +<span{{ attributes.addClass(classes) }}> + <span class="visually-hidden"> + {% if style == 'asc' -%} + {{ 'Sort ascending'|t }} + {% else -%} + {{ 'Sort descending'|t }} + {% endif %} + </span> +</span> diff --git a/core/themes/stable/templates/admin/update-last-check.html.twig b/core/themes/stable/templates/admin/update-last-check.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..b94d6dceac7c8d353aa9f7b8c02b5e0a8a605f08 --- /dev/null +++ b/core/themes/stable/templates/admin/update-last-check.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for the last time update data was checked. + * + * Available variables: + * - last: The timestamp that the site was last checked for updates. + * - time: The formatted time since the site last checked for updates. + * - link: A link to check for updates manually. + * + * @see template_preprocess_update_last_check() + */ +#} +<p> + {% if last %} + {{ 'Last checked: @time ago'|t({'@time': time}) }} + {% else %} + {{ 'Last checked: never'|t }} + {% endif %} + ({{ link }}) +</p> diff --git a/core/themes/stable/templates/admin/update-project-status.html.twig b/core/themes/stable/templates/admin/update-project-status.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5a6d2ecea78f0cc727ee44330476d2929a1270fd --- /dev/null +++ b/core/themes/stable/templates/admin/update-project-status.html.twig @@ -0,0 +1,104 @@ +{# +/** + * @file + * Theme override for the project status report. + * + * Available variables: + * - title: The project title. + * - url: The project url. + * - status: The project status. + * - label: The project status label. + * - attributes: HTML attributes for the project status. + * - reason: The reason you should update the project. + * - icon: The project status version indicator icon. + * - existing_version: The version of the installed project. + * - versions: The available versions of the project. + * - install_type: The type of project (e.g., dev). + * - datestamp: The date/time of a project version's release. + * - extras: HTML attributes and additional information about the project. + * - attributes: HTML attributes for the extra item. + * - label: The label for an extra item. + * - data: The data about an extra item. + * - includes: The projects within the project. + * - disabled: The currently disabled projects in the project. + * + * @see template_preprocess_update_project_status() + */ +#} +{% + set status_classes = [ + project.status == constant('UPDATE_NOT_SECURE') ? 'project-update__status--security-error', + project.status == constant('UPDATE_REVOKED') ? 'project-update__status--revoked', + project.status == constant('UPDATE_NOT_SUPPORTED') ? 'project-update__status--not-supported', + project.status == constant('UPDATE_NOT_CURRENT') ? 'project-update__status--not-current', + project.status == constant('UPDATE_CURRENT') ? 'project-update__status--current', + ] +%} +<div{{ status.attributes.addClass('project-update__status', status_classes) }}> + {%- if status.label -%} + <span>{{ status.label }}</span> + {%- else -%} + {{ status.reason }} + {%- endif %} + <span class="project-update__status-icon"> + {{ status.icon }} + </span> +</div> + +<div class="project-update__title"> + {%- if url -%} + <a href="{{ url }}">{{ title }}</a> + {%- else -%} + {{ title }} + {%- endif %} + {{ existing_version }} + {% if install_type == 'dev' and datestamp %} + <span class="project-update__version-date">({{ datestamp }})</span> + {% endif %} +</div> + +{% if versions %} + {% for version in versions %} + {{ version }} + {% endfor %} +{% endif %} + +{% + set extra_classes = [ + project.status == constant('UPDATE_NOT_SECURE') ? 'project-not-secure', + project.status == constant('UPDATE_REVOKED') ? 'project-revoked', + project.status == constant('UPDATE_NOT_SUPPORTED') ? 'project-not-supported', + ] +%} +<div class="project-updates__details"> + {% if extras %} + <div class="extra"> + {% for extra in extras %} + <div{{ extra.attributes.addClass(extra_classes) }}> + {{ extra.label }}: {{ extra.data }} + </div> + {% endfor %} + </div> + {% endif %} + {% set includes = includes|join(', ') %} + {% if disabled %} + {{ 'Includes:'|t }} + <ul> + <li> + {% trans %} + Enabled: {{ includes|placeholder }} + {% endtrans %} + </li> + <li> + {% set disabled = disabled|join(', ') %} + {% trans %} + Disabled: {{ disabled|placeholder }} + {% endtrans %} + </li> + </ul> + {% else %} + {% trans %} + Includes: {{ includes|placeholder }} + {% endtrans %} + {% endif %} +</div> diff --git a/core/themes/stable/templates/admin/update-report.html.twig b/core/themes/stable/templates/admin/update-report.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9efebc06aec95f6a94d2fae9fd2e40bb766facd3 --- /dev/null +++ b/core/themes/stable/templates/admin/update-report.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for the project status report. + * + * Available variables: + * - last_checked: Themed last time update data was checked. + * - no_updates_message: Message when there are no project updates. + * - project_types: A list of project types. + * - label: The project type label. + * - table: The project status table. + * + * @see template_preprocess_update_report() + */ +#} +{{ last_checked }} + +{% for project_type in project_types %} + <h3>{{ project_type.label }}</h3> + {{ project_type.table }} +{% else %} + <p>{{ no_updates_message }}</p> +{% endfor %} diff --git a/core/themes/stable/templates/admin/update-version.html.twig b/core/themes/stable/templates/admin/update-version.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..03a1c9d57ebef20bf39a363e5fec46dc1637657f --- /dev/null +++ b/core/themes/stable/templates/admin/update-version.html.twig @@ -0,0 +1,36 @@ +{# +/** + * @file + * Theme override for the version display of a project. + * + * Available variables: + * - attributes: HTML attributes suitable for a container element. + * - title: The title of the project. + * - version: A list of data about the latest released version, containing: + * - version: The version number. + * - date: The date of the release. + * - download_link: The URL for the downloadable file. + * - release_link: The URL for the release notes. + * + * @see template_preprocess_update_version() + */ +#} +<div class="{{ attributes.class }} project-update__version"{{ attributes|without('class') }}> + <div class="clearfix"> + <div class="project-update__version-title layout-column layout-column--quarter">{{ title }}</div> + <div class="project-update__version-details layout-column layout-column--quarter"> + <a href="{{ version.release_link }}">{{ version.version }}</a> + <span class="project-update__version-date">({{ version.date|date('Y-M-d') }})</span> + </div> + <div class="layout-column layout-column--half"> + <ul class="project-update__version-links"> + <li class="project-update__download-link"> + <a href="{{ version.download_link }}">{{ 'Download'|t }}</a> + </li> + <li class="project-update__release-notes-link"> + <a href="{{ version.release_link }}">{{ 'Release notes'|t }}</a> + </li> + </ul> + </div> + </div> +</div> diff --git a/core/themes/stable/templates/admin/views-ui-build-group-filter-form.html.twig b/core/themes/stable/templates/admin/views-ui-build-group-filter-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..69e32cab3bae3df42b24e5187b99204ff505a847 --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-build-group-filter-form.html.twig @@ -0,0 +1,55 @@ +{# +/** + * @file + * Theme override for Views UI build group filter form. + * + * Available variables: + * - form: A render element representing the form. Contains the following: + * - form_description: The exposed filter's description. + * - expose_button: The button to toggle the expose filter form. + * - group_button: Toggle options between single and grouped filters. + * - label: A filter label input field. + * - description: A filter description field. + * - value: The filters available values. + * - optional: A checkbox to require this filter or not. + * - remember: A checkbox to remember selected filter value(s) (per user). + * - widget: Radio Buttons to select the filter widget. + * - add_group: A button to add another row to the table. + * - more: A details element for additional field exposed filter fields. + * - table: A rendered table element of the group filter form. + * + * @see template_preprocess_views_ui_build_group_filter_form() + */ +#} +{{ form.form_description }} +{{ form.expose_button }} +{{ form.group_button }} +<div class="views-left-40"> + {{ form.optional }} + {{ form.remember }} +</div> +<div class="views-right-60"> + {{ form.widget }} + {{ form.label }} + {{ form.description }} +</div> +{# + Render the rest of the form elements excluding elements that are rendered + elsewhere. +#} +{{ form|without( + 'form_description', + 'expose_button', + 'group_button', + 'optional', + 'remember', + 'widget', + 'label', + 'description', + 'add_group', + 'more' + ) +}} +{{ table }} +{{ form.add_group }} +{{ form.more }} diff --git a/core/themes/stable/templates/admin/views-ui-container.html.twig b/core/themes/stable/templates/admin/views-ui-container.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..e346966697096aa18540957735aad189ad66298a --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-container.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for a generic views UI container/wrapper. + * + * Available variables: + * - attributes: HTML attributes to apply to the container element. + * - children: The remaining elements such as dropbuttons and tabs. + * + * @see template_preprocess_views_ui_container() + */ +#} +<div{{ attributes }}>{{ children }}</div> diff --git a/core/themes/stable/templates/admin/views-ui-display-tab-bucket.html.twig b/core/themes/stable/templates/admin/views-ui-display-tab-bucket.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..32dbdd7e24877ac2ddc8e9dc31f03829d117146d --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-display-tab-bucket.html.twig @@ -0,0 +1,33 @@ +{# +/** + * @file + * Theme override for each "box" on the display query edit screen. + * + * Available variables: + * - attributes: HTML attributes to apply to the container element. + * - actions: Action links such as "Add", "And/Or, Rearrange" for the content. + * - title: The title of the bucket, e.g. "Fields", "Filter Criteria", etc. + * - content: Content items such as fields or settings in this container. + * - name: The name of the bucket, e.g. "Fields", "Filter Criteria", etc. + * - overridden: A boolean indicating the setting has been overridden from the + * default. + * + * @see template_preprocess_views_ui_display_tab_bucket() + */ +#} +{% + set classes = [ + 'views-ui-display-tab-bucket', + name ? name|clean_class, + overridden ? 'overridden', + ] +%} +<div{{ attributes.addClass(classes) }}> + {% if title -%} + <h3 class="views-ui-display-tab-bucket__title">{{ title }}</h3> + {%- endif %} + {% if actions -%} + {{ actions }} + {%- endif %} + {{ content }} +</div> diff --git a/core/themes/stable/templates/admin/views-ui-display-tab-setting.html.twig b/core/themes/stable/templates/admin/views-ui-display-tab-setting.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..77d659f31487acdd77ec0edaa5ff0c69388a3ed9 --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-display-tab-setting.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @file + * Theme override for Views UI display tab settings. + * + * Template for each row inside the "boxes" on the display query edit screen. + * + * Available variables: + * - attributes: HTML attributes such as class for the container. + * - description: The description or label for this setting. + * - settings_links: A list of links for this setting. + * - defaulted: A boolean indicating the setting is in its default state. + * - overridden: A boolean indicating the setting has been overridden from the + * default. + * + * @see template_preprocess_views_ui_display_tab_setting() + */ +#} +{% + set classes = [ + 'views-display-setting', + 'clearfix', + 'views-ui-display-tab-setting', + defaulted ? 'defaulted', + overridden ? 'overridden', +] +%} +<div{{ attributes.addClass(classes) }}> + {% if description -%} + <span class="label">{{ description }}</span> + {%- endif %} + {% if settings_links %} + {{ settings_links|safe_join('<span class="label"> | </span>') }} + {% endif %} +</div> diff --git a/core/themes/stable/templates/admin/views-ui-expose-filter-form.html.twig b/core/themes/stable/templates/admin/views-ui-expose-filter-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..a23b6e22dea81d3ca1093e0acf6fbdfe596c65ac --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-expose-filter-form.html.twig @@ -0,0 +1,65 @@ +{# +/** + * @file + * Theme override for exposed filter form. + * + * Available variables: + * - form_description: The exposed filter's description. + * - expose_button: The button to toggle the expose filter form. + * - group_button: Toggle options between single and grouped filters. + * - required: A checkbox to require this filter or not. + * - label: A filter label input field. + * - description: A filter description field. + * - operator: The operators for how the filters value should be treated. + * - #type: The operator type. + * - value: The filters available values. + * - use_operator: Checkbox to allow the user to expose the operator. + * - more: A details element for additional field exposed filter fields. + */ +#} +{{ form.form_description }} +{{ form.expose_button }} +{{ form.group_button }} +{{ form.required }} +{{ form.label }} +{{ form.description }} + +{{ form.operator }} +{{ form.value }} + +{% if form.use_operator %} + <div class="views-left-40"> + {{ form.use_operator }} + </div> +{% endif %} + +{# + Collect a list of elements printed to exclude when printing the + remaining elements. +#} +{% set remaining_form = form|without( + 'form_description', + 'expose_button', + 'group_button', + 'required', + 'label', + 'description', + 'operator', + 'value', + 'use_operator', + 'more' + ) +%} + +{# + Only output the right column markup if there's a left column to begin with. +#} +{% if form.operator['#type'] %} + <div class="views-right-60"> + {{ remaining_form }} + </div> +{% else %} + {{ remaining_form }} +{% endif %} + +{{ form.more }} diff --git a/core/themes/stable/templates/admin/views-ui-rearrange-filter-form.html.twig b/core/themes/stable/templates/admin/views-ui-rearrange-filter-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..e38d132318cb465bb396bd0161673daa003bf33e --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-rearrange-filter-form.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for Views UI rearrange filter form. + * + * Available variables: + * - form: A render element representing the form. + * - grouping: A flag whether or not there is more than one group. + * - ungroupable_table: The ungroupable filter table. + * - table: The groupable filter table. + * + * @see template_preprocess_views_ui_rearrange_filter_form() + */ +#} +{{ form.override }} +<div class="scroll" data-drupal-views-scroll> + {% if grouping %} + {{ form.filter_groups.operator }} + {% else %} + {{ form.filter_groups.groups.0 }} + {% endif %} + {{ ungroupable_table }} + {{ table }} +</div> +{{ form|without('override', 'filter_groups', 'remove_groups', 'filters') }} diff --git a/core/themes/stable/templates/admin/views-ui-style-plugin-table.html.twig b/core/themes/stable/templates/admin/views-ui-style-plugin-table.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..2295390c13b833360b616dc5a3a254f77bd143bc --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-style-plugin-table.html.twig @@ -0,0 +1,16 @@ +{# +/** + * @file + * Theme override for the settings of a table style views display. + * + * Available variables: + * - table: A table of options for each field in this display. + * - form: Any remaining form fields not included in the table. + * - description_markup: An overview for the settings of this display. + * + * @see template_preprocess_views_ui_style_plugin_table() + */ +#} +{{ form.description_markup }} +{{ table }} +{{ form }} diff --git a/core/themes/stable/templates/admin/views-ui-view-info.html.twig b/core/themes/stable/templates/admin/views-ui-view-info.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..13052340ff6fccc54e64fb3bc38454a3f62d0566 --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-view-info.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override for basic administrative info about a View. + * + * Available variables: + * - displays: List of displays. + */ +#} +<h3 class="views-ui-view-title views-table-filter-text-source">{{ view.label }}</h3> +<div class="views-ui-view-displays"> + {% if displays %} + {% trans %} + Display + {% plural displays %} + Displays + {% endtrans %}: + <em>{{ displays|safe_join(', ') }}</em> + {% else %} + {{ 'None'|t }} + {% endif %} +</div> +<div class="views-ui-view-machine-name"> + {{ 'Machine name:'|t }} + <span class="views-table-filter-text-source">{{ view.id }}</span> +</div> diff --git a/core/themes/stable/templates/admin/views-ui-view-preview-section.html.twig b/core/themes/stable/templates/admin/views-ui-view-preview-section.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..c2c83bd1cebdcf69359b2dd6ce3ca43d5859d64f --- /dev/null +++ b/core/themes/stable/templates/admin/views-ui-view-preview-section.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override for a views UI preview section. + * + * Available variables: + * - title: The human readable section title. + * - links: A list of contextual links. + * - content: The content for this section preview. + * + * @see template_preprocess_views_ui_view_preview_section() + */ +#} +<h1 class="section-title">{{ title }}</h1> +{% if links %} + <div class="contextual">{{ links }}</div> +{% endif %} +<div class="preview-section">{{ content }}</div> diff --git a/core/themes/stable/templates/block/block--local-actions-block.html.twig b/core/themes/stable/templates/block/block--local-actions-block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3e660c514500f6618039194277e93abfbf249e3e --- /dev/null +++ b/core/themes/stable/templates/block/block--local-actions-block.html.twig @@ -0,0 +1,12 @@ +{% extends "block.html.twig" %} +{# +/** + * @file + * Theme override for local actions (primary admin actions.) + */ +#} +{% block content %} + {% if content %} + <nav>{{ content }}</nav> + {% endif %} +{% endblock %} diff --git a/core/themes/stable/templates/block/block--system-branding-block.html.twig b/core/themes/stable/templates/block/block--system-branding-block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..186b36072be98189830acc71b08fa9c5f5c8c6a7 --- /dev/null +++ b/core/themes/stable/templates/block/block--system-branding-block.html.twig @@ -0,0 +1,26 @@ +{% extends "block.html.twig" %} +{# +/** + * @file + * Theme override for a branding block. + * + * Each branding element variable (logo, name, slogan) is only available if + * enabled in the block configuration. + * + * Available variables: + * - site_logo: Logo for site as defined in Appearance or theme settings. + * - site_name: Name for site as defined in Site information settings. + * - site_slogan: Slogan for site as defined in Site information settings. + */ +#} +{% block content %} + {% if site_logo %} + <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home"> + <img src="{{ site_logo }}" alt="{{ 'Home'|t }}" /> + </a> + {% endif %} + {% if site_name %} + <a href="{{ path('<front>') }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a> + {% endif %} + {{ site_slogan }} +{% endblock %} diff --git a/core/themes/stable/templates/block/block--system-menu-block.html.twig b/core/themes/stable/templates/block/block--system-menu-block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..0919a888e7bff9cd83bfa55cc639649f0ba4a152 --- /dev/null +++ b/core/themes/stable/templates/block/block--system-menu-block.html.twig @@ -0,0 +1,48 @@ +{# +/** + * @file + * Theme override for a menu block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: HTML attributes for the containing element. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: HTML attributes for the title element. + * - content_attributes: HTML attributes for the content element. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * Headings should be used on navigation menus that consistently appear on + * multiple pages. When this menu block's label is configured to not be + * displayed, it is automatically made invisible using the 'visually-hidden' CSS + * class, which still keeps it visible for screen-readers and assistive + * technology. Headings allow screen-reader and keyboard only users to navigate + * to or skip the links. + * See http://juicystudio.com/article/screen-readers-display-none.php and + * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. + */ +#} +{% set heading_id = attributes.id ~ '-menu'|clean_id %} +<nav role="navigation" aria-labelledby="{{ heading_id }}"{{ attributes|without('role', 'aria-labelledby') }}> + {# Label. If not displayed, we still provide it for screen readers. #} + {% if not configuration.label_display %} + {% set title_attributes = title_attributes.addClass('visually-hidden') %} + {% endif %} + {{ title_prefix }} + <h2{{ title_attributes }}>{{ configuration.label }}</h2> + {{ title_suffix }} + + {# Menu. #} + {% block content %} + {{ content }} + {% endblock %} +</nav> diff --git a/core/themes/stable/templates/block/block--system-messages-block.html.twig b/core/themes/stable/templates/block/block--system-messages-block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..ef2e3ac78fd415ba5dc73f8b3f248076b1f51d3f --- /dev/null +++ b/core/themes/stable/templates/block/block--system-messages-block.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for the messages block. + * + * Removes wrapper elements from block so that empty block does not appear when + * there are no messages. + * + * Available variables: + * - content: The content of this block. + */ +#} +{{ content }} diff --git a/core/themes/stable/templates/block/block.html.twig b/core/themes/stable/templates/block/block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..dca6f48fb319e26ad0cb19d31c349915a98535e7 --- /dev/null +++ b/core/themes/stable/templates/block/block.html.twig @@ -0,0 +1,37 @@ +{# +/** + * @file + * Theme override to display a block. + * + * Available variables: + * - plugin_id: The ID of the block implementation. + * - label: The configured label of the block if visible. + * - configuration: A list of the block's configuration values. + * - label: The configured label for the block. + * - label_display: The display settings for the label. + * - provider: The module or other provider that provided this block plugin. + * - Block plugin specific settings will also be stored here. + * - content: The content of this block. + * - attributes: array of HTML attributes populated by modules, intended to + * be added to the main container tag of this template. + * - id: A valid HTML ID and guaranteed unique. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_block() + */ +#} +<div{{ attributes }}> + {{ title_prefix }} + {% if label %} + <h2{{ title_attributes }}>{{ label }}</h2> + {% endif %} + {{ title_suffix }} + {% block content %} + {{ content }} + {% endblock %} +</div> diff --git a/core/themes/stable/templates/content-edit/file-managed-file.html.twig b/core/themes/stable/templates/content-edit/file-managed-file.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f639237d2a0f4a3f851ba2fb4d82af5315304dbb --- /dev/null +++ b/core/themes/stable/templates/content-edit/file-managed-file.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override to display a file form widget. + * + * Available variables: + * - element: Form element for the file upload. + * - attributes: HTML attributes for the containing element. + * + * @see template_preprocess_file_managed_file() + */ +#} +{% + set classes = [ + 'js-form-managed-file', + 'form-managed-file', + ] +%} +<div{{ attributes.addClass(classes) }}> + {{ element }} +</div> diff --git a/core/themes/stable/templates/content-edit/file-upload-help.html.twig b/core/themes/stable/templates/content-edit/file-upload-help.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d05822ebcbd49870cfa8e590fd467c04475778d5 --- /dev/null +++ b/core/themes/stable/templates/content-edit/file-upload-help.html.twig @@ -0,0 +1,12 @@ +{# +/** + * @file + * Theme override to display help text for file fields. + * + * Available variables: + * - descriptions: Lines of help text for uploading a file. + * + * @see template_preprocess_file_upload_help() + */ +#} +{{ descriptions|safe_join('<br />') }} diff --git a/core/themes/stable/templates/content-edit/file-widget-multiple.html.twig b/core/themes/stable/templates/content-edit/file-widget-multiple.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..34646fe7796b1204850362dd07b1970f1c933327 --- /dev/null +++ b/core/themes/stable/templates/content-edit/file-widget-multiple.html.twig @@ -0,0 +1,14 @@ +{# +/** + * @file + * Theme override to display a multi file form widget. + * + * Available variables: + * - table: Table of previously uploaded files. + * - element: The form element for uploading another file. + * + * @see template_preprocess_file_widget_multiple() + */ +#} +{{ table }} +{{ element }} diff --git a/core/themes/stable/templates/content-edit/filter-caption.html.twig b/core/themes/stable/templates/content-edit/filter-caption.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..246cf0f95504e8d27288b9471c77159c66feb085 --- /dev/null +++ b/core/themes/stable/templates/content-edit/filter-caption.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override for a filter caption. + * + * Returns HTML for a captioned image, audio, video or other tag. + * + * Available variables + * - string node: The complete HTML tag whose contents are being captioned. + * - string tag: The name of the HTML tag whose contents are being captioned. + * - string caption: The caption text. + * - string classes: The classes of the captioned HTML tag. + */ +#} +<figure role="group"{%- if classes %} class="{{ classes }}"{%- endif %}> +{{ node }} +<figcaption>{{ caption }}</figcaption> +</figure> diff --git a/core/themes/stable/templates/content-edit/filter-guidelines.html.twig b/core/themes/stable/templates/content-edit/filter-guidelines.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..4cd6706f2d3d701458778f760aab777a47bad95c --- /dev/null +++ b/core/themes/stable/templates/content-edit/filter-guidelines.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for guidelines for a text format. + * + * Available variables: + * - format: Contains information about the current text format, including the + * following: + * - name: The name of the text format, potentially unsafe and needs to be + * escaped. + * - format: The machine name of the text format, e.g. 'basic_html'. + * - attributes: HTML attributes for the containing element. + * - tips: Descriptions and a CSS ID in the form of 'module-name/filter-id' + * (only used when 'long' is TRUE) for each filter in one or more text + * formats. + * + * @see template_preprocess_filter_tips() + */ +#} +<div{{ attributes }}> + <h4>{{ format.label }}</h4> + {{ tips }} +</div> diff --git a/core/themes/stable/templates/content-edit/filter-tips.html.twig b/core/themes/stable/templates/content-edit/filter-tips.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5163eda636696a86939cd9249ff7bfb0708ed09c --- /dev/null +++ b/core/themes/stable/templates/content-edit/filter-tips.html.twig @@ -0,0 +1,44 @@ +{# +/** + * @file + * Theme override for a set of filter tips. + * + * Available variables: + * - tips: Descriptions and a CSS ID in the form of 'module-name/filter-id' + * (only used when 'long' is TRUE) for each filter in one or more text + * formats. + * - long: A flag indicating whether the passed-in filter tips contain extended + * explanations, i.e. intended to be output on the path 'filter/tips' + * (TRUE), or are in a short format, i.e. suitable to be displayed below a + * form element. Defaults to FALSE. + * - multiple: A flag indicating there is more than one filter tip. + * + * @see template_preprocess_filter_tips() + */ +#} +{% if multiple %} + <h2>{{ 'Text Formats'|t }}</h2> +{% endif %} + +{% if tips|length %} + {% for name, tip in tips %} + + {% if multiple %} + <div{{ attributes }}> + <h3>{{ tip.name }}</h3> + {% endif %} + + {% if tip.list|length %} + <ul> + {% for item in tip.list %} + <li{{ tip.attributes }}>{{ item.tip }}</li> + {% endfor %} + </ul> + {% endif %} + + {% if multiple %} + </div> + {% endif %} + + {% endfor %} +{% endif %} diff --git a/core/themes/stable/templates/content-edit/image-widget.html.twig b/core/themes/stable/templates/content-edit/image-widget.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..cd3f60dc4675f6c28943366eedffe06d387b2114 --- /dev/null +++ b/core/themes/stable/templates/content-edit/image-widget.html.twig @@ -0,0 +1,17 @@ +{# +/** + * @file + * Theme override for an image field widget. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - data: Render elements of the image widget. + * + * @see template_preprocess_image_widget() + */ +#} +<div{{ attributes }}> + {{ data.preview }} + {# Render widget data without the image preview that was output already. #} + {{ data|without('preview') }} +</div> diff --git a/core/themes/stable/templates/content-edit/node-add-list.html.twig b/core/themes/stable/templates/content-edit/node-add-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..560b9e329f510e99b1e60dc7a263170cae7cde6b --- /dev/null +++ b/core/themes/stable/templates/content-edit/node-add-list.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Theme override to list node types available for adding content. + * + * This list is displayed on the Add content admin page. + * + * Available variables: + * - types: A list of content types, each with the following properties: + * - add_link: Link to create a piece of content of this type. + * - description: Description of this type of content. + * + * @see template_preprocess_node_add_list() + */ +#} +{% if types is not empty %} + <dl> + {% for type in types %} + <dt>{{ type.add_link }}</dt> + <dd>{{ type.description }}</dd> + {% endfor %} + </dl> +{% else %} + <p> + {% set create_content = path('node.type_add') %} + {% trans %} + You have not created any content types yet. Go to the <a href="{{ create_content }}">content type creation page</a> to add a new content type. + {% endtrans %} + </p> +{% endif %} diff --git a/core/themes/stable/templates/content-edit/node-edit-form.html.twig b/core/themes/stable/templates/content-edit/node-edit-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..db74a20dda3ccf67762f8afda038a0bebba04f5b --- /dev/null +++ b/core/themes/stable/templates/content-edit/node-edit-form.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override for a node edit form. + * + * Two column template for the node add/edit form. + * + * This template will be used when a node edit form specifies 'node_edit_form' + * as its #theme callback. Otherwise, by default, node add/edit forms will be + * themed by form.html.twig. + * + * Available variables: + * - form: The node add/edit form. + * + * @see seven_form_node_form_alter() + */ +#} +{{ form }} diff --git a/core/themes/stable/templates/content-edit/text-format-wrapper.html.twig b/core/themes/stable/templates/content-edit/text-format-wrapper.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..33ca7ce14f020e576580c1e673c99545fd46d713 --- /dev/null +++ b/core/themes/stable/templates/content-edit/text-format-wrapper.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for a text format-enabled form element. + * + * Available variables: + * - children: Text format element children. + * - description: Text format element description. + * - attributes: HTML attributes for the containing element. + * - aria_description: Flag for whether or not an ARIA description has been + * added to the description container. + * + * @see template_preprocess_text_format_wrapper() + */ +#} +<div class="js-text-format-wrapper js-form-item form-item"> + {{ children }} + {% if description %} + <div{{ attributes }}>{{ description }}</div> + {% endif %} +</div> diff --git a/core/themes/stable/templates/content/aggregator-item.html.twig b/core/themes/stable/templates/content/aggregator-item.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f60bddea438502cdca0b630cfa487cdd7f72dc14 --- /dev/null +++ b/core/themes/stable/templates/content/aggregator-item.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override to present a feed item in an aggregator page. + * + * Available variables: + * - url: URL to the originating feed item. + * - title: Title of the feed item. + * - content: All field items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given element. + * + * @see template_preprocess_aggregator_item() + */ +#} +<article{{ attributes }}> + {{ title_prefix }} + <h3> + <a href="{{ url }}">{{ title }}</a> + </h3> + {{ title_suffix }} + {{ content }} +</article> diff --git a/core/themes/stable/templates/content/book-node-export-html.html.twig b/core/themes/stable/templates/content/book-node-export-html.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..ff1114903d81df677854edbc8640b3969f5f208d --- /dev/null +++ b/core/themes/stable/templates/content/book-node-export-html.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Theme override for a single node in a printer-friendly outline. + * + * Available variables: + * - node: Fully loaded node. + * - depth: Depth of the current node inside the outline. + * - title: Node title. + * - content: Node content. + * - children: All the child nodes recursively rendered through this file. + * + * @see template_preprocess_book_node_export_html() + */ +#} +<article> + <h1>{{ title }}</h1> + {{ content }} + {{ children }} +</article> diff --git a/core/themes/stable/templates/content/comment.html.twig b/core/themes/stable/templates/content/comment.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..ffc1d9cdcc7b42c437179ef4cbc467f4da155b83 --- /dev/null +++ b/core/themes/stable/templates/content/comment.html.twig @@ -0,0 +1,100 @@ +{# +/** + * @file + * Theme override for comments. + * + * Available variables: + * - author: Comment author. Can be a link or plain text. + * - content: The content-related items for the comment display. Use + * {{ content }} to print them all, or print a subset such as + * {{ content.field_example }}. Use the following code to temporarily suppress + * the printing of a given child element: + * @code + * {{ content|without('field_example') }} + * @endcode + * - created: Formatted date and time for when the comment was created. + * Preprocess functions can reformat it by calling format_date() with the + * desired parameters on the 'comment.created' variable. + * - changed: Formatted date and time for when the comment was last changed. + * Preprocess functions can reformat it by calling format_date() with the + * desired parameters on the 'comment.changed' variable. + * - permalink: Comment permalink. + * - submitted: Submission information created from author and created + * during template_preprocess_comment(). + * - user_picture: The comment author's profile picture. + * - status: Comment status. Possible values are: + * unpublished, published, or preview. + * - title: Comment title, linked to the comment. + * - attributes: HTML attributes for the containing element. + * The attributes.class may contain one or more of the following classes: + * - comment: The current template type; e.g., 'theming hook'. + * - by-anonymous: Comment by an unregistered user. + * - by-{entity-type}-author: Comment by the author of the parent entity, + * eg. by-node-author. + * - preview: When previewing a new or edited comment. + * The following applies only to viewers who are registered users: + * - unpublished: An unpublished comment visible only to administrators. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - content_attributes: List of classes for the styling of the comment content. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - threaded: A flag indicating whether the comments are threaded or not. + * + * These variables are provided to give context about the parent comment (if + * any): + * - comment_parent: Full parent comment entity (if any). + * - parent_author: Equivalent to author for the parent comment. + * - parent_created: Equivalent to created for the parent comment. + * - parent_changed: Equivalent to changed for the parent comment. + * - parent_title: Equivalent to title for the parent comment. + * - parent_permalink: Equivalent to permalink for the parent comment. + * - parent: A text string of parent comment submission information created from + * 'parent_author' and 'parent_created' during template_preprocess_comment(). + * This information is presented to help screen readers follow lengthy + * discussion threads. You can hide this from sighted users using the class + * visually-hidden. + * + * These two variables are provided for context: + * - comment: Full comment object. + * - entity: Entity the comments are attached to. + * + * @see template_preprocess_comment() + */ +#} + +<article{{ attributes.addClass('js-comment') }}> + {# + Hide the "new" indicator by default, let a piece of JavaScript ask the + server which comments are new for the user. Rendering the final "new" + indicator here would break the render cache. + #} + <mark class="hidden" data-comment-timestamp="{{ new_indicator_timestamp }}"></mark> + + <footer> + {{ user_picture }} + <p>{{ submitted }}</p> + + {# + Indicate the semantic relationship between parent and child comments for + accessibility. The list is difficult to navigate in a screen reader + without this information. + #} + {% if parent %} + <p class="visually-hidden">{{ parent }}</p> + {% endif %} + + {{ permalink }} + </footer> + + <div{{ content_attributes }}> + {% if title %} + {{ title_prefix }} + <h3{{ title_attributes }}>{{ title }}</h3> + {{ title_suffix }} + {% endif %} + {{ content }} + </div> +</article> diff --git a/core/themes/stable/templates/content/mark.html.twig b/core/themes/stable/templates/content/mark.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..bc70b5c78c0a93d00b7734e71389842d8f5563a7 --- /dev/null +++ b/core/themes/stable/templates/content/mark.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Theme override for a marker for new or updated content. + * + * Available variables: + * - status: Number representing the marker status to display. Use the constants + * below for comparison: + * - MARK_NEW + * - MARK_UPDATED + * - MARK_READ + */ +#} +{% if logged_in %} + {% if status is constant('MARK_NEW') %} + {{ 'New'|t }} + {% elseif status is constant('MARK_UPDATED') %} + {{ 'Updated'|t }} + {% endif %} +{% endif %} diff --git a/core/themes/stable/templates/content/node.html.twig b/core/themes/stable/templates/content/node.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..68a92ea614a144a70a96dbd8fa9e328826708345 --- /dev/null +++ b/core/themes/stable/templates/content/node.html.twig @@ -0,0 +1,90 @@ +{# +/** + * @file + * Theme override to display a node. + * + * Available variables: + * - node: The node entity with limited access to object properties and methods. + Only "getter" methods (method names starting with "get", "has", or "is") + and a few common methods such as "id" and "label" are available. Calling + other methods (such as node.delete) will result in an exception. + * - label: The title of the node. + * - content: All node items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given child element. + * - author_picture: The node author user entity, rendered using the "compact" + * view mode. + * - metadata: Metadata for this node. + * - date: Themed creation date field. + * - author_name: Themed author name field. + * - url: Direct URL of the current node. + * - display_submitted: Whether submission information should be displayed. + * - attributes: HTML attributes for the containing element. + * The attributes.class element may contain one or more of the following + * classes: + * - node: The current template type (also known as a "theming hook"). + * - node--type-[type]: The current node type. For example, if the node is an + * "Article" it would result in "node--type-article". Note that the machine + * name will often be in a short form of the human readable label. + * - node--view-mode-[view_mode]: The View Mode of the node; for example, a + * teaser would result in: "node--view-mode-teaser", and + * full: "node--view-mode-full". + * The following are controlled through the node publishing options. + * - node--promoted: Appears on nodes promoted to the front page. + * - node--sticky: Appears on nodes ordered above other non-sticky nodes in + * teaser listings. + * - node--unpublished: Appears on unpublished nodes visible only to site + * admins. + * - title_attributes: Same as attributes, except applied to the main title + * tag that appears in the template. + * - content_attributes: Same as attributes, except applied to the main + * content tag that appears in the template. + * - author_attributes: Same as attributes, except applied to the author of + * the node tag that appears in the template. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - view_mode: View mode; for example, "teaser" or "full". + * - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'. + * - page: Flag for the full page state. Will be true if view_mode is 'full'. + * - readmore: Flag for more state. Will be true if the teaser content of the + * node cannot hold the main body content. + * - logged_in: Flag for authenticated user status. Will be true when the + * current user is a logged-in member. + * - is_admin: Flag for admin user status. Will be true when the current user + * is an administrator. + * + * @see template_preprocess_node() + * + * @todo Remove the id attribute (or make it a class), because if that gets + * rendered twice on a page this is invalid CSS for example: two lists + * in different view modes. + */ +#} +<article{{ attributes }}> + + {{ title_prefix }} + {% if not page %} + <h2{{ title_attributes }}> + <a href="{{ url }}" rel="bookmark">{{ label }}</a> + </h2> + {% endif %} + {{ title_suffix }} + + {% if display_submitted %} + <footer> + {{ author_picture }} + <div{{ author_attributes }}> + {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} + {{ metadata }} + </div> + </footer> + {% endif %} + + <div{{ content_attributes }}> + {{ content }} + </div> + +</article> diff --git a/core/themes/stable/templates/content/page-title.html.twig b/core/themes/stable/templates/content/page-title.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..bdeded4534f63c6464d935ccd17a1ad653f2864a --- /dev/null +++ b/core/themes/stable/templates/content/page-title.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for page titles. + * + * Available variables: + * - title_attributes: HTML attributes for the page title element. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title: The page title, for use in the actual content. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * + * @see template_preprocess_page_title() + */ +#} +{{ title_prefix }} +{% if title %} + <h1{{ title_attributes }}>{{ title }}</h1> +{% endif %} +{{ title_suffix }} diff --git a/core/themes/stable/templates/content/search-result.html.twig b/core/themes/stable/templates/content/search-result.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..adf813444f988b138d7e585ad1340d89bba95bea --- /dev/null +++ b/core/themes/stable/templates/content/search-result.html.twig @@ -0,0 +1,69 @@ +{# +/** + * @file + * Theme override for displaying a single search result. + * + * This template renders a single search result. The list of results is + * rendered using '#theme' => 'item_list', with suggestions of: + * - item_list__search_results__(plugin_id) + * - item_list__search_results + * + * Available variables: + * - url: URL of the result. + * - title: Title of the result. + * - snippet: A small preview of the result. Does not apply to user searches. + * - info: String of all the meta information ready for print. Does not apply + * to user searches. + * - plugin_id: The machine-readable name of the plugin being executed,such + * as "node_search" or "user_search". + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the main title tag that appears in the template. + * - info_split: Contains same data as info, but split into separate parts. + * - info_split.type: Node type (or item type string supplied by module). + * - info_split.user: Author of the node linked to users profile. Depends + * on permission. + * - info_split.date: Last update of the node. Short formatted. + * - info_split.comment: Number of comments output as "% comments", % + * being the count. (Depends on comment.module). + * @todo The info variable needs to be made drillable and each of these sub + * items should instead be within info and renamed info.foo, info.bar, etc. + * + * Other variables: + * - title_attributes: HTML attributes for the title. + * - content_attributes: HTML attributes for the content. + * + * Since info_split is keyed, a direct print of the item is possible. + * This array does not apply to user searches so it is recommended to check + * for its existence before printing. The default keys of 'type', 'user' and + * 'date' always exist for node searches. Modules may provide other data. + * @code + * {% if (info_split.comment) %} + * <span class="info-comment"> + * {{ info_split.comment }} + * </span> + * {% endif %} + * @endcode + * + * To check for all available data within info_split, use the code below. + * @code + * <pre> + * {{ dump(info_split) }} + * </pre> + * @endcode + * + * @see template_preprocess_search_result() + */ +#} +{{ title_prefix }} +<h3{{ title_attributes }}> + <a href="{{ url }}">{{ title }}</a> +</h3> +{{ title_suffix }} +{% if snippet %} + <p{{ content_attributes }}>{{ snippet }}</p> +{% endif %} +{% if info %} + <p>{{ info }}</p> +{% endif %} diff --git a/core/themes/stable/templates/content/taxonomy-term.html.twig b/core/themes/stable/templates/content/taxonomy-term.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..09c242bfbfc99c27447fd8a291e1c497bf5386ca --- /dev/null +++ b/core/themes/stable/templates/content/taxonomy-term.html.twig @@ -0,0 +1,33 @@ +{# +/** + * @file + * Theme override to display a taxonomy term. + * + * Available variables: + * - url: URL of the current term. + * - name: Name of the current term. + * - content: Items for the content of the term (fields and description). + * Use 'content' to print them all, or print a subset such as + * 'content.description'. Use the following code to exclude the + * printing of a given child element: + * @code + * {{ content|without('description') }} + * @endcode + * - attributes: HTML attributes for the wrapper. + * - page: Flag for the full page state. + * - term: The taxonomy term entity, including: + * - id: The ID of the taxonomy term. + * - bundle: Machine name of the current vocabulary. + * - view_mode: View mode, e.g. 'full', 'teaser', etc. + * + * @see template_preprocess_taxonomy_term() + */ +#} +<div{{ attributes}}> + {{ title_prefix }} + {% if not page %} + <h2><a href="{{ url }}">{{ name }}</a></h2> + {% endif %} + {{ title_suffix }} + {{ content }} +</div> diff --git a/core/themes/stable/templates/dataset/aggregator-feed.html.twig b/core/themes/stable/templates/dataset/aggregator-feed.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..7ad0790028f5473cd295f04b8288c6f87afc73e8 --- /dev/null +++ b/core/themes/stable/templates/dataset/aggregator-feed.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override to present an aggregator feed. + * + * The contents are rendered above feed listings when browsing source feeds. + * For example, "example.com/aggregator/sources/1". + * + * Available variables: + * - title: Title of the feed item. + * - content: All field items. Use {{ content }} to print them all, + * or print a subset such as {{ content.field_example }}. Use + * {{ content|without('field_example') }} to temporarily suppress the printing + * of a given element. + * + * @see template_preprocess_aggregator_feed() + */ +#} +{{ title_prefix }} +{% if not full %} + <h2{{ title_attributes }}>{{ title }}</h2> +{% endif %} +{{ title_suffix }} + +{{ content }} diff --git a/core/themes/stable/templates/dataset/forum-icon.html.twig b/core/themes/stable/templates/dataset/forum-icon.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..37a970e17aceaf68d9269ac83ad217563339f7ef --- /dev/null +++ b/core/themes/stable/templates/dataset/forum-icon.html.twig @@ -0,0 +1,24 @@ +{# +/** + * @file + * Theme override to display a status icon for a forum post. + * + * Available variables: + * - attributes: HTML attributes to be applied to the wrapper element. + * - class: HTML classes that determine which icon to display. May be one of + * 'hot', 'hot-new', 'new', 'default', 'closed', or 'sticky'. + * - title: Text alternative for the forum icon. + * - icon_title: Text alternative for the forum icon, same as above. + * - new_posts: '1' when this topic contains new posts, otherwise '0'. + * - first_new: '1' when this is the first topic with new posts, otherwise '0'. + * - icon_status: Indicates which status icon should be used. + * + * @see template_preprocess_forum_icon() + */ +#} +<div{{ attributes }}> + {% if first_new -%} + <a id="new"></a> + {%- endif %} + <span class="visually-hidden">{{ icon_title }}</span> +</div> diff --git a/core/themes/stable/templates/dataset/forum-list.html.twig b/core/themes/stable/templates/dataset/forum-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3de920ae1d0f182b72c3137aba36d6b7e4998a4f --- /dev/null +++ b/core/themes/stable/templates/dataset/forum-list.html.twig @@ -0,0 +1,75 @@ +{# +/** + * @file + * Theme override to display a list of forums and containers. + * + * Available variables: + * - forums: A collection of forums and containers to display. It is keyed to + * the numeric IDs of all child forums and containers. Each forum in forums + * contains: + * - is_container: A flag indicating if the forum can contain other + * forums. Otherwise, the forum can only contain topics. + * - depth: How deep the forum is in the current hierarchy. + * - zebra: 'even' or 'odd', used for row class. + * - icon_class: 'default' or 'new', used for forum icon class. + * - icon_title: Text alternative for the forum icon. + * - name: The name of the forum. + * - link: The URL to link to this forum. + * - description: The description field for the forum, containing: + * - value: The descriptive text for the forum. + * - new_topics: A flag indicating if the forum contains unread posts. + * - new_url: A URL to the forum's unread posts. + * - new_text: Text for the above URL, which tells how many new posts. + * - old_topics: A count of posts that have already been read. + * - num_posts: The total number of posts in the forum. + * - last_reply: Text representing the last time a forum was posted or + * commented in. + * - forum_id: Forum ID for the current forum. Parent to all items within the + * forums array. + * + * @see template_preprocess_forum_list() + */ +#} +<table> + <thead> + <tr> + <th>{{ 'Forum'|t }}</th> + <th>{{ 'Topics'|t }}</th> + <th>{{ 'Posts'|t }}</th> + <th>{{ 'Last post'|t }}</th> + </tr> + </thead> + <tbody> + {% for child_id, forum in forums %} + <tr> + <td{% if forum.is_container == true %} colspan="4"{% endif %}> + {# + Enclose the contents of this cell with X divs, where X is the + depth this forum resides at. This will allow us to use CSS + left-margin for indenting. + #} + {% for i in 1..forum.depth if forum.depth > 0 %}<div class="indent">{% endfor %} + <div title="{{ forum.icon_title }}"> + <span class="visually-hidden">{{ forum.icon_title }}</span> + </div> + <div><a href="{{ forum.link }}">{{ forum.label }}</a></div> + {% if forum.description.value %} + <div>{{ forum.description.value }}</div> + {% endif %} + {% for i in 1..forum.depth if forum.depth > 0 %}</div>{% endfor %} + </td> + {% if forum.is_container == false %} + <td> + {{ forum.num_topics }} + {% if forum.new_topics == true %} + <br /> + <a href="{{ forum.new_url }}">{{ forum.new_text }}</a> + {% endif %} + </td> + <td>{{ forum.num_posts }}</td> + <td>{{ forum.last_reply }}</td> + {% endif %} + </tr> + {% endfor %} + </tbody> +</table> diff --git a/core/themes/stable/templates/dataset/forums.html.twig b/core/themes/stable/templates/dataset/forums.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..187118769046be8efc154d958075236534059012 --- /dev/null +++ b/core/themes/stable/templates/dataset/forums.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override to display a forum. + * + * May contain forum containers as well as forum topics. + * + * Available variables: + * - forums: The forums to display (as processed by forum-list.html.twig). + * - topics: The topics to display. + * - topics_pager: The topics pager. + * - forums_defined: A flag to indicate that the forums are configured. + * + * @see template_preprocess_forums() + */ +#} +{% if forums_defined %} + {{ forums }} + {{ topics }} + {{ topics_pager }} +{% endif %} diff --git a/core/themes/stable/templates/dataset/item-list.html.twig b/core/themes/stable/templates/dataset/item-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..86cc63670c9281f6c0a2cc4f6d1ddf469e3677c1 --- /dev/null +++ b/core/themes/stable/templates/dataset/item-list.html.twig @@ -0,0 +1,39 @@ +{# +/** + * @file + * Theme override for an item list. + * + * Available variables: + * - items: A list of items. Each item contains: + * - attributes: HTML attributes to be applied to each list item. + * - value: The content of the list element. + * - title: The title of the list. + * - list_type: The tag for list element ("ul" or "ol"). + * - wrapper_attributes: HTML attributes to be applied to the list wrapper. + * - attributes: HTML attributes to be applied to the list. + * - empty: A message to display when there are no items. Allowed value is a + * string or render array. + * - context: A list of contextual data associated with the list. May contain: + * - list_style: The custom list style. + * + * @see template_preprocess_item_list() + */ +#} +{% if context.list_style %} + {%- set attributes = attributes.addClass('item-list__' ~ context.list_style) %} +{% endif %} +{% if items or empty %} + {%- if title is not empty -%} + <h3>{{ title }}</h3> + {%- endif -%} + + {%- if items -%} + <{{ list_type }}{{ attributes }}> + {%- for item in items -%} + <li{{ item.attributes }}>{{ item.value }}</li> + {%- endfor -%} + </{{ list_type }}> + {%- else -%} + {{- empty -}} + {%- endif -%} +{%- endif %} diff --git a/core/themes/stable/templates/dataset/table.html.twig b/core/themes/stable/templates/dataset/table.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..b7267be5cfe58aa4f843f371988755e9907197e9 --- /dev/null +++ b/core/themes/stable/templates/dataset/table.html.twig @@ -0,0 +1,103 @@ +{# +/** + * @file + * Theme override to display a table. + * + * Available variables: + * - attributes: HTML attributes to apply to the <table> tag. + * - caption: A localized string for the <caption> tag. + * - colgroups: Column groups. Each group contains the following properties: + * - attributes: HTML attributes to apply to the <col> tag. + * Note: Drupal currently supports only one table header row, see + * https://www.drupal.org/node/893530 and + * http://api.drupal.org/api/drupal/includes!theme.inc/function/theme_table/7#comment-5109. + * - header: Table header cells. Each cell contains the following properties: + * - tag: The HTML tag name to use; either TH or TD. + * - attributes: HTML attributes to apply to the tag. + * - content: A localized string for the title of the column. + * - field: Field name (required for column sorting). + * - sort: Default sort order for this column ("asc" or "desc"). + * - sticky: A flag indicating whether to use a "sticky" table header. + * - rows: Table rows. Each row contains the following properties: + * - attributes: HTML attributes to apply to the <tr> tag. + * - data: Table cells. + * - no_striping: A flag indicating that the row should receive no + * 'even / odd' styling. Defaults to FALSE. + * - cells: Table cells of the row. Each cell contains the following keys: + * - tag: The HTML tag name to use; either TH or TD. + * - attributes: Any HTML attributes, such as "colspan", to apply to the + * table cell. + * - content: The string to display in the table cell. + * - active_table_sort: A boolean indicating whether the cell is the active + table sort. + * - footer: Table footer rows, in the same format as the rows variable. + * - empty: The message to display in an extra row if table does not have + * any rows. + * - no_striping: A boolean indicating that the row should receive no striping. + * - header_columns: The number of columns in the header. + * + * @see template_preprocess_table() + */ +#} +<table{{ attributes }}> + {% if caption %} + <caption>{{ caption }}</caption> + {% endif %} + + {% for colgroup in colgroups %} + {% if colgroup.cols %} + <colgroup{{ colgroup.attributes }}> + {% for col in colgroup.cols %} + <col{{ col.attributes }} /> + {% endfor %} + </colgroup> + {% else %} + <colgroup{{ colgroup.attributes }} /> + {% endif %} + {% endfor %} + + {% if header %} + <thead> + <tr> + {% for cell in header %} + <{{ cell.tag }}{{ cell.attributes }}> + {{- cell.content -}} + </{{ cell.tag }}> + {% endfor %} + </tr> + </thead> + {% endif %} + + {% if rows %} + <tbody> + {% for row in rows %} + <tr{{ row.attributes }}> + {% for cell in row.cells %} + <{{ cell.tag }}{{ cell.attributes }}> + {{- cell.content -}} + </{{ cell.tag }}> + {% endfor %} + </tr> + {% endfor %} + </tbody> + {% elseif empty %} + <tbody> + <tr> + <td colspan="{{ header_columns }}">{{ empty }}</td> + </tr> + </tbody> + {% endif %} + {% if footer %} + <tfoot> + {% for row in footer %} + <tr{{ row.attributes }}> + {% for cell in row.cells %} + <{{ cell.tag }}{{ cell.attributes }}> + {{- cell.content -}} + </{{ cell.tag }}> + {% endfor %} + </tr> + {% endfor %} + </tfoot> + {% endif %} +</table> diff --git a/core/themes/stable/templates/field/field--comment.html.twig b/core/themes/stable/templates/field/field--comment.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..33a60ae0bdcbe06e1f92357a2ba6dc86eefe52a9 --- /dev/null +++ b/core/themes/stable/templates/field/field--comment.html.twig @@ -0,0 +1,43 @@ +{# +/** + * @file + * Theme override for comment fields. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the main title tag that appears in the template. + * - title_suffix: Additional title output populated by modules, intended to + * be displayed after the main title tag that appears in the template. + * - comments: List of comments rendered through comment.html.twig. + * - content_attributes: HTML attributes for the form title. + * - comment_form: The 'Add new comment' form. + * - comment_display_mode: Is the comments are threaded. + * - comment_type: The comment type bundle ID for the comment field. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see template_preprocess_field() + * @see comment_preprocess_field() + */ +#} +<section{{ attributes }}> + {% if comments and not label_hidden %} + {{ title_prefix }} + <h2{{ title_attributes }}>{{ label }}</h2> + {{ title_suffix }} + {% endif %} + + {{ comments }} + + {% if comment_form %} + <h2{{ content_attributes }}>{{ 'Add new comment'|t }}</h2> + {{ comment_form }} + {% endif %} + +</section> diff --git a/core/themes/stable/templates/field/field--node--created.html.twig b/core/themes/stable/templates/field/field--node--created.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..e00837d3e08b5f8e3e66a9ccaaeaefc1b69a2145 --- /dev/null +++ b/core/themes/stable/templates/field/field--node--created.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override for the node created field. + * + * This is an override of field.html.twig for the node created field. See that + * template for documentation about its details and overrides. + * + * Available variables: + * - attributes: HTML attributes for the containing span element. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see field.html.twig + */ +#} +<span{{ attributes }}> + {%- for item in items -%} + {{ item.content }} + {%- endfor -%} +</span> diff --git a/core/themes/stable/templates/field/field--node--title.html.twig b/core/themes/stable/templates/field/field--node--title.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5ab974f2ddb1a1114908def085233577ca2bd3c1 --- /dev/null +++ b/core/themes/stable/templates/field/field--node--title.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override for the node title field. + * + * This is an override of field.html.twig for the node title field. See that + * template for documentation about its details and overrides. + * + * Available variables: + * - attributes: HTML attributes for the containing span element. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see field.html.twig + */ +#} +<span{{ attributes }}> + {%- for item in items -%} + {{ item.content }} + {%- endfor -%} +</span> diff --git a/core/themes/stable/templates/field/field--node--uid.html.twig b/core/themes/stable/templates/field/field--node--uid.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..af730dc02b5deefc9e21efd13bf4e5904ed91da6 --- /dev/null +++ b/core/themes/stable/templates/field/field--node--uid.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override for the node user field. + * + * This is an override of field.html.twig for the node user field. See that + * template for documentation about its details and overrides. + * + * Available variables: + * - attributes: HTML attributes for the containing span element. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see field.html.twig + */ +#} +<span{{ attributes }}> + {%- for item in items -%} + {{ item.content }} + {%- endfor -%} +</span> diff --git a/core/themes/stable/templates/field/field.html.twig b/core/themes/stable/templates/field/field.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..05d6e8235a61811e8391bc2bfe3df1e72fdbec62 --- /dev/null +++ b/core/themes/stable/templates/field/field.html.twig @@ -0,0 +1,65 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see template_preprocess_field() + */ +#} + +{% if label_hidden %} + {% if multiple %} + <div{{ attributes }}> + {% for item in items %} + <div{{ item.attributes }}>{{ item.content }}</div> + {% endfor %} + </div> + {% else %} + {% for item in items %} + <div{{ attributes }}>{{ item.content }}</div> + {% endfor %} + {% endif %} +{% else %} + <div{{ attributes }}> + <div{{ title_attributes }}>{{ label }}</div> + {% if multiple %} + <div> + {% endif %} + {% for item in items %} + <div{{ item.attributes }}>{{ item.content }}</div> + {% endfor %} + {% if multiple %} + </div> + {% endif %} + </div> +{% endif %} diff --git a/core/themes/stable/templates/field/file-link.html.twig b/core/themes/stable/templates/field/file-link.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..0424830f574bb065d5362e17cdb620a4c31e9d07 --- /dev/null +++ b/core/themes/stable/templates/field/file-link.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for a link to a file. + * + * Available variables: + * - attributes: The HTML attributes for the containing element. + * - link: A link to the file. + * + * @see template_preprocess_file_link() + */ +#} +<span{{ attributes }}>{{ link }}</span> diff --git a/core/themes/stable/templates/field/image-formatter.html.twig b/core/themes/stable/templates/field/image-formatter.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d0390c041c80cc177be0fc5c72a2d3b3a7d3cc8a --- /dev/null +++ b/core/themes/stable/templates/field/image-formatter.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override to display a formatted image field. + * + * Available variables: + * - image: A collection of image data. + * - image_style: An optional image style. + * - url: An optional URL the image can be linked to. + * + * @see template_preprocess_image_formatter() + */ +#} +{% if url %} + <a href="{{ url }}">{{ image }}</a> +{% else %} + {{ image }} +{% endif %} diff --git a/core/themes/stable/templates/field/image-style.html.twig b/core/themes/stable/templates/field/image-style.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..039089a3ecb5f1f2bf233fc9261c97d0a9c48093 --- /dev/null +++ b/core/themes/stable/templates/field/image-style.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override for an image using a specific image style. + * + * Available variables: + * - attributes: HTML attributes for the image, including the following: + * - src: Full URL or relative path to the image file. + * - class: One or more classes to be applied to the image. + * - width: The width of the image (if known). + * - height: The height of the image (if known). + * - title: The title of the image. + * - alt: The alternative text for the image. + * + * @see template_preprocess_image_style() + */ +#} +{{ image }} diff --git a/core/themes/stable/templates/field/image.html.twig b/core/themes/stable/templates/field/image.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..b342eee6dada08d853efc6ce9afd12f4268b3f0d --- /dev/null +++ b/core/themes/stable/templates/field/image.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override of an image. + * + * Available variables: + * - attributes: HTML attributes for the img tag. + * - style_name: (optional) The name of the image style applied. + * + * @see template_preprocess_image() + */ +#} +<img{{ attributes }} /> diff --git a/core/themes/stable/templates/field/link-formatter-link-separate.html.twig b/core/themes/stable/templates/field/link-formatter-link-separate.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..0aa1b4a11cbb52af80e68203129ac53af1649709 --- /dev/null +++ b/core/themes/stable/templates/field/link-formatter-link-separate.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override of a link with separate title and URL elements. + * + * Available variables: + * - link: The link that has already been formatted by l(). + * - title: (optional) A descriptive or alternate title for the link, which may + * be different than the actual link text. + * + * @see template_preprocess() + * @see template_preprocess_link_formatter_link_separate() + */ +#} +{% spaceless %} + {{ title }} + {{ link }} +{% endspaceless %} diff --git a/core/themes/stable/templates/field/responsive-image-formatter.html.twig b/core/themes/stable/templates/field/responsive-image-formatter.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3f30260697f5759f0756e6d60c653c5f5b0a64ad --- /dev/null +++ b/core/themes/stable/templates/field/responsive-image-formatter.html.twig @@ -0,0 +1,17 @@ +{# +/** + * @file + * Theme override to display a formatted responsive image field. + * + * Available variables: + * - responsive_image: A collection of responsive image data. + * - url: An optional URL the image can be linked to. + * + * @see template_preprocess_responsive_image_formatter() + */ +#} +{% if url %} + <a href="{{ url }}">{{ responsive_image }}</a> +{% else %} + {{ responsive_image }} +{% endif %} diff --git a/core/themes/stable/templates/field/responsive-image.html.twig b/core/themes/stable/templates/field/responsive-image.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..ae77ffb1777b6c659fbe2a9eafc80ecff60d2e4f --- /dev/null +++ b/core/themes/stable/templates/field/responsive-image.html.twig @@ -0,0 +1,34 @@ +{# +/** + * @file + * Theme override of a responsive image. + * + * Available variables: + * - sources: The attributes of the <source> tags for this <picture> tag. + * - img_element: The controlling image, with the fallback image in srcset. + * - output_image_tag: Whether or not to output an <img> tag instead of a + * <picture> tag. + * + * @see template_preprocess() + * @see template_preprocess_responsive_image() + */ +#} +{% if output_image_tag %} + {{ img_element }} +{% else %} + <picture> + {% if sources %} + {# + Internet Explorer 9 doesn't recognise source elements that are wrapped in + picture tags. See http://scottjehl.github.io/picturefill/#ie9 + #} + <!--[if IE 9]><video style="display: none;"><![endif]--> + {% for source_attributes in sources %} + <source{{ source_attributes }}/> + {% endfor %} + <!--[if IE 9]></video><![endif]--> + {% endif %} + {# The controlling image, with the fallback image in srcset. #} + {{ img_element }} + </picture> +{% endif %} diff --git a/core/themes/stable/templates/field/time.html.twig b/core/themes/stable/templates/field/time.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..cb93f9d576fe40a42c876fbffa7756b29afdcf1d --- /dev/null +++ b/core/themes/stable/templates/field/time.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Theme override for a date / time element. + * + * Available variables + * - timestamp: (optional) A UNIX timestamp for the datetime attribute. If the + * datetime cannot be represented as a UNIX timestamp, use a valid datetime + * attribute value in attributes.datetime. + * - text: (optional) The content to display within the <time> element. + * Defaults to a human-readable representation of the timestamp value or the + * datetime attribute value using format_date(). + * - attributes: (optional) HTML attributes to apply to the <time> element. + * A datetime attribute in 'attributes' overrides the 'timestamp'. To + * create a valid datetime attribute value from a UNIX timestamp, use + * format_date() with one of the predefined 'html_*' formats. + * + * @see template_preprocess_time() + * @see http://www.w3.org/TR/html5-author/the-time-element.html#attr-time-datetime + */ +#} +<time{{ attributes }}>{{ text }}</time> diff --git a/core/themes/stable/templates/form/checkboxes.html.twig b/core/themes/stable/templates/form/checkboxes.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9199f7e4c4564eab9b0495eaaa43e8240d23bbe1 --- /dev/null +++ b/core/themes/stable/templates/form/checkboxes.html.twig @@ -0,0 +1,15 @@ +{# +/** + * @file + * Theme override for a 'checkboxes' #type form element. + * + * Available variables + * - attributes: A list of HTML attributes for the wrapper element. + * - children: The rendered checkboxes. + * + * @see template_preprocess_checkboxes() + */ + @todo: remove this file once https://www.drupal.org/node/1819284 is resolved. + This is identical to core/modules/system/templates/container.html.twig +#} +<div{{ attributes.addClass('form-checkboxes') }}>{{ children }}</div> diff --git a/core/themes/stable/templates/form/confirm-form.html.twig b/core/themes/stable/templates/form/confirm-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..725f7f4df2cd2eab53fdef412d1719d96595cc90 --- /dev/null +++ b/core/themes/stable/templates/form/confirm-form.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for confirm form. + * + * By default this does not alter the appearance of a form at all, + * but is provided as a convenience for themers. + * + * Available variables: + * - form: The confirm form. + */ +#} +{{ form }} diff --git a/core/themes/stable/templates/form/container.html.twig b/core/themes/stable/templates/form/container.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3bd88ec25b28e7dae5691387f699619be3c3b6ca --- /dev/null +++ b/core/themes/stable/templates/form/container.html.twig @@ -0,0 +1,26 @@ +{# +/** + * @file + * Theme override of a container used to wrap child elements. + * + * Used for grouped form items. Can also be used as a theme wrapper for any + * renderable element, to surround it with a <div> and HTML attributes. + * See the @link forms_api_reference.html Form API reference @endlink for more + * information on the #theme_wrappers render array property. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - children: The rendered child elements of the container. + * - has_parent: A flag to indicate that the container has one or more parent + containers. + * + * @see template_preprocess_container() + */ +#} +{% + set classes = [ + has_parent ? 'js-form-wrapper', + has_parent ? 'form-wrapper', + ] +%} +<div{{ attributes.addClass(classes) }}>{{ children }}</div> diff --git a/core/themes/stable/templates/form/datetime-form.html.twig b/core/themes/stable/templates/form/datetime-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..1a26f111c587703edf6139b57893ed4ee00c63f6 --- /dev/null +++ b/core/themes/stable/templates/form/datetime-form.html.twig @@ -0,0 +1,15 @@ +{# +/** + * @file + * Theme override of a datetime form element. + * + * Available variables: + * - attributes: HTML attributes for the datetime form element. + * - content: The datelist form element to be output. + * + * @see template_preprocess_datetime_form() + */ +#} +<div{{ attributes }}> + {{ content }} +</div> diff --git a/core/themes/stable/templates/form/datetime-wrapper.html.twig b/core/themes/stable/templates/form/datetime-wrapper.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3c37ffd20db590d75b566d3a6847125dbf6b0bf2 --- /dev/null +++ b/core/themes/stable/templates/form/datetime-wrapper.html.twig @@ -0,0 +1,31 @@ +{# +/** + * @file + * Theme override of a datetime form wrapper. + * + * Available variables: + * - content: The form element to be output, usually a datelist, or datetime. + * - title: The title of the form element. + * - title_attributes: HTML attributes for the title wrapper. + * - description: Description text for the form element. + * - required: An indicator for whether the associated form element is required. + * + * @see template_preprocess_datetime_wrapper() + */ +#} +{% + set title_classes = [ + required ? 'js-form-required', + required ? 'form-required', + ] +%} +{% if title %} + <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4> +{% endif %} +{{ content }} +{% if errors %} + <div> + {{ errors }} + </div> +{% endif %} +{{ description }} diff --git a/core/themes/stable/templates/form/details.html.twig b/core/themes/stable/templates/form/details.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f4c99e11113c514cb27735b761e7757b7b9869f1 --- /dev/null +++ b/core/themes/stable/templates/form/details.html.twig @@ -0,0 +1,31 @@ +{# +/** + * @file + * Theme override for a details element. + * + * Available variables + * - attributes: A list of HTML attributes for the details element. + * - errors: (optional) Any errors for this details element, may not be set. + * - title: (optional) The title of the element, may not be set. + * - description: (optional) The description of the element, may not be set. + * - children: (optional) The children of the element, may not be set. + * - value: (optional) The value of the element, may not be set. + * + * @see template_preprocess_details() + */ +#} +<details{{ attributes }}> + {%- if title -%} + <summary{{ summary_attributes }}>{{ title }}</summary> + {%- endif -%} + + {% if errors %} + <div> + {{ errors }} + </div> + {% endif %} + + {{ description }} + {{ children }} + {{ value }} +</details> diff --git a/core/themes/stable/templates/form/dropbutton-wrapper.html.twig b/core/themes/stable/templates/form/dropbutton-wrapper.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5dccc8548709d0358a8da19ce533f74ecc23a1d9 --- /dev/null +++ b/core/themes/stable/templates/form/dropbutton-wrapper.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for a dropbutton wrapper. + * + * Available variables: + * - children: Contains the child elements of the dropbutton menu. + * + * @see template_preprocess() + * @see template_preprocess_dropbutton_wrapper() + */ +#} +{% if children %} + {% spaceless %} + <div class="dropbutton-wrapper"> + <div class="dropbutton-widget"> + {{ children }} + </div> + </div> + {% endspaceless %} +{% endif %} diff --git a/core/themes/stable/templates/form/field-multiple-value-form.html.twig b/core/themes/stable/templates/form/field-multiple-value-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..6ac2ddf41a3ea4aaf470f600b2999911c93a54ec --- /dev/null +++ b/core/themes/stable/templates/form/field-multiple-value-form.html.twig @@ -0,0 +1,36 @@ +{# +/** + * @file + * Theme override for an individual form element. + * + * Available variables for all fields: + * - multiple: Whether there are multiple instances of the field. + * + * Available variables for single cardinality fields: + * - elements: Form elements to be rendered. + * + * Available variables when there are multiple fields. + * - table: Table of field items. + * - description: The description element containing the following properties: + * - content: The description content of the form element. + * - attributes: HTML attributes to apply to the description container. + * - button: "Add another item" button. + * + * @see template_preprocess_field_multiple_value_form() + */ +#} +{% if multiple %} + <div class="js-form-item form-item"> + {{ table }} + {% if description.content %} + <div{{ description.attributes.addClass('description') }} >{{ description.content }}</div> + {% endif %} + {% if button %} + <div class="clearfix">{{ button }}</div> + {% endif %} + </div> +{% else %} + {% for element in elements %} + {{ element }} + {% endfor %} +{% endif %} diff --git a/core/themes/stable/templates/form/fieldset.html.twig b/core/themes/stable/templates/form/fieldset.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..8f1f73d9813f9d91d4778b1734057cab1f16e8a6 --- /dev/null +++ b/core/themes/stable/templates/form/fieldset.html.twig @@ -0,0 +1,60 @@ +{# +/** + * @file + * Theme override for a fieldset element and its children. + * + * Available variables: + * - attributes: HTML attributes for the fieldset element. + * - errors: (optional) Any errors for this fieldset element, may not be set. + * - required: Boolean indicating whether the fieldeset element is required. + * - legend: The legend element containing the following properties: + * - title: Title of the fieldset, intended for use as the text of the legend. + * - attributes: HTML attributes to apply to the legend. + * - description: The description element containing the following properties: + * - content: The description content of the fieldset. + * - attributes: HTML attributes to apply to the description container. + * - children: The rendered child elements of the fieldset. + * - prefix: The content to add before the fieldset children. + * - suffix: The content to add after the fieldset children. + * + * @see template_preprocess_fieldset() + */ +#} +{% + set classes = [ + 'js-form-item', + 'form-item', + 'js-form-wrapper', + 'form-wrapper', + ] +%} +<fieldset{{ attributes.addClass(classes) }}> + {% + set legend_span_classes = [ + 'fieldset-legend', + required ? 'js-form-required', + required ? 'form-required', + ] + %} + {# Always wrap fieldset legends in a SPAN for CSS positioning. #} + <legend{{ legend.attributes }}> + <span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span> + </legend> + <div class="fieldset-wrapper"> + {% if errors %} + <div> + {{ errors }} + </div> + {% endif %} + {% if prefix %} + <span class="field-prefix">{{ prefix }}</span> + {% endif %} + {{ children }} + {% if suffix %} + <span class="field-suffix">{{ suffix }}</span> + {% endif %} + {% if description.content %} + <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div> + {% endif %} + </div> +</fieldset> diff --git a/core/themes/stable/templates/form/form-element-label.html.twig b/core/themes/stable/templates/form/form-element-label.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..7c2f8f222340cda34c7a3f5d66b469730e8cad60 --- /dev/null +++ b/core/themes/stable/templates/form/form-element-label.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for a form element label. + * + * Available variables: + * - title: The label's text. + * - title_display: Elements title_display setting. + * - required: An indicator for whether the associated form element is required. + * - attributes: A list of HTML attributes for the label. + * + * @see template_preprocess_form_element_label() + */ +#} +{% + set classes = [ + title_display == 'after' ? 'option', + title_display == 'invisible' ? 'visually-hidden', + required ? 'js-form-required', + required ? 'form-required', + ] +%} +{% if title is not empty or required -%} + <label{{ attributes.addClass(classes) }}>{{ title }}</label> +{%- endif %} diff --git a/core/themes/stable/templates/form/form-element.html.twig b/core/themes/stable/templates/form/form-element.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9e87a1b6da3d6f50ae9023d31f3d89ea4babb821 --- /dev/null +++ b/core/themes/stable/templates/form/form-element.html.twig @@ -0,0 +1,94 @@ +{# +/** + * @file + * Theme override for a form element. + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - errors: (optional) Any errors for this form element, may not be set. + * - prefix: (optional) The form element prefix, may not be set. + * - suffix: (optional) The form element suffix, may not be set. + * - required: The required marker, or empty if the associated form element is + * not required. + * - type: The type of the element. + * - name: The name of the element. + * - label: A rendered label element. + * - label_display: Label display setting. It can have these values: + * - before: The label is output before the element. This is the default. + * The label includes the #title and the required marker, if #required. + * - after: The label is output after the element. For example, this is used + * for radio and checkbox #type elements. If the #title is empty but the + * field is #required, the label will contain only the required marker. + * - invisible: Labels are critical for screen readers to enable them to + * properly navigate through forms but can be visually distracting. This + * property hides the label for everyone except screen readers. + * - attribute: Set the title attribute on the element to create a tooltip but + * output no label element. This is supported only for checkboxes and radios + * in \Drupal\Core\Render\Element\CompositeFormElementTrait::preRenderCompositeFormElement(). + * It is used where a visual label is not needed, such as a table of + * checkboxes where the row and column provide the context. The tooltip will + * include the title and required marker. + * - description: (optional) A list of description properties containing: + * - content: A description of the form element, may not be set. + * - attributes: (optional) A list of HTML attributes to apply to the + * description content wrapper. Will only be set when description is set. + * - description_display: Description display setting. It can have these values: + * - before: The description is output before the element. + * - after: The description is output after the element. This is the default + * value. + * - invisible: The description is output after the element, hidden visually + * but available to screen readers. + * - disabled: True if the element is disabled. + * - title_display: Title display setting. + * + * @see template_preprocess_form_element() + */ +#} +{% + set classes = [ + 'js-form-item', + 'form-item', + 'js-form-type-' ~ type|clean_class, + 'form-item-' ~ name|clean_class, + 'js-form-item-' ~ name|clean_class, + title_display not in ['after', 'before'] ? 'form-no-label', + disabled == 'disabled' ? 'form-disabled', + errors ? 'form-item--error', + ] +%} +{% + set description_classes = [ + 'description', + description_display == 'invisible' ? 'visually-hidden', + ] +%} +<div{{ attributes.addClass(classes) }}> + {% if label_display in ['before', 'invisible'] %} + {{ label }} + {% endif %} + {% if prefix is not empty %} + <span class="field-prefix">{{ prefix }}</span> + {% endif %} + {% if description_display == 'before' and description.content %} + <div{{ description.attributes }}> + {{ description.content }} + </div> + {% endif %} + {{ children }} + {% if suffix is not empty %} + <span class="field-suffix">{{ suffix }}</span> + {% endif %} + {% if label_display == 'after' %} + {{ label }} + {% endif %} + {% if errors %} + <div class="form-item--error-message"> + {{ errors }} + </div> + {% endif %} + {% if description_display in ['after', 'invisible'] and description.content %} + <div{{ description.attributes.addClass(description_classes) }}> + {{ description.content }} + </div> + {% endif %} +</div> diff --git a/core/themes/stable/templates/form/form.html.twig b/core/themes/stable/templates/form/form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..97b4b7a3de207fc82d768ad3ce77da4379d4ff76 --- /dev/null +++ b/core/themes/stable/templates/form/form.html.twig @@ -0,0 +1,15 @@ +{# +/** + * @file + * Theme override for a 'form' element. + * + * Available variables + * - attributes: A list of HTML attributes for the wrapper element. + * - children: The child elements of the form. + * + * @see template_preprocess_form() + */ +#} +<form{{ attributes }}> + {{ children }} +</form> diff --git a/core/themes/stable/templates/form/input.html.twig b/core/themes/stable/templates/form/input.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d5cac386e006f7b7e4e2dec206efe1fcaed8a413 --- /dev/null +++ b/core/themes/stable/templates/form/input.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for an 'input' #type form element. + * + * Available variables: + * - attributes: A list of HTML attributes for the input element. + * - children: Optional additional rendered elements. + * + * @see template_preprocess_input() + */ +#} +<input{{ attributes }} />{{ children }} diff --git a/core/themes/stable/templates/form/radios.html.twig b/core/themes/stable/templates/form/radios.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..6e9a9d795b69faf9e74b08340836edb88e2f52db --- /dev/null +++ b/core/themes/stable/templates/form/radios.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for a 'radios' #type form element. + * + * Available variables + * - attributes: A list of HTML attributes for the wrapper element. + * - children: The rendered radios. + * + * @see template_preprocess_radios() + */ +#} +<div{{ attributes }}>{{ children }}</div> diff --git a/core/themes/stable/templates/form/select.html.twig b/core/themes/stable/templates/form/select.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3150bdcb36e3af4fcaa85e5ac53b9f97796d9b7f --- /dev/null +++ b/core/themes/stable/templates/form/select.html.twig @@ -0,0 +1,27 @@ +{# +/** + * @file + * Theme override for a select element. + * + * Available variables: + * - attributes: HTML attributes for the select tag. + * - options: The option element children. + * + * @see template_preprocess_select() + */ +#} +{% spaceless %} + <select{{ attributes }}> + {% for option in options %} + {% if option.type == 'optgroup' %} + <optgroup label="{{ option.label }}"> + {% for sub_option in option.options %} + <option value="{{ sub_option.value }}"{{ sub_option.selected ? ' selected="selected"' }}>{{ sub_option.label }}</option> + {% endfor %} + </optgroup> + {% elseif option.type == 'option' %} + <option value="{{ option.value }}"{{ option.selected ? ' selected="selected"' }}>{{ option.label }}</option> + {% endif %} + {% endfor %} + </select> +{% endspaceless %} diff --git a/core/themes/stable/templates/form/textarea.html.twig b/core/themes/stable/templates/form/textarea.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9767bc583bad5382bfb119f04daa66c93a708b50 --- /dev/null +++ b/core/themes/stable/templates/form/textarea.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override for a 'textarea' #type form element. + * + * Available variables + * - wrapper_attributes: A list of HTML attributes for the wrapper element. + * - attributes: A list of HTML attributes for the textarea element. + * - resizable: An indicator for whether the textarea is resizable. + * - required: An indicator for whether the textarea is required. + * - value: The textarea content. + * + * @see template_preprocess_textarea() + */ +#} +<div{{ wrapper_attributes }}> + <textarea{{ attributes }}>{{ value }}</textarea> +</div> diff --git a/core/themes/stable/templates/layout/book-export-html.html.twig b/core/themes/stable/templates/layout/book-export-html.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..17ac1bc2487b6dac6cd22dfb366ce675e14b87c2 --- /dev/null +++ b/core/themes/stable/templates/layout/book-export-html.html.twig @@ -0,0 +1,45 @@ +{# +/** + * @file + * Theme override for printed version of book outline. + * + * Available variables: + * - title: Top level node title. + * - head: Header tags. + * - language: Language object. + * - language_rtl: A flag indicating whether the current display language is a + * right to left language. + * - base_url: URL to the home page. + * - contents: Nodes within the current outline rendered through + * book-node-export-html.html.twig. + * + * @see template_preprocess_book_export_html() + */ +#} +<!DOCTYPE html> +<html{{ html_attributes }}> + <head> + <title>{{ title }}</title> + {{ page.head }} + <base href="{{ base_url }}" /> + <link type="text/css" rel="stylesheet" href="misc/print.css" /> + </head> + <body> + {# + The given node is embedded to its absolute depth in a top level section. + For example, a child node with depth 2 in the hierarchy is contained in + (otherwise empty) div elements corresponding to depth 0 and depth 1. This + is intended to support WYSIWYG output - e.g., level 3 sections always look + like level 3 sections, no matter their depth relative to the node selected + to be exported as printer-friendly HTML. + #} + + {% for i in 1..depth-1 if depth > 1 %} + <div> + {% endfor %} + {{ contents }} + {% for i in 1..depth-1 if depth > 1 %} + </div> + {% endfor %} + </body> +</html> diff --git a/core/themes/stable/templates/layout/html.html.twig b/core/themes/stable/templates/layout/html.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..4577ac5738f20916a5398e2c482ca61883a48333 --- /dev/null +++ b/core/themes/stable/templates/layout/html.html.twig @@ -0,0 +1,43 @@ +{# +/** + * @file + * Theme override for the basic structure of a single Drupal page. + * + * Variables: + * - logged_in: A flag indicating if user is logged in. + * - root_path: The root path of the current page (e.g., node, admin, user). + * - node_type: The content type for the current node, if the page is a node. + * - head_title: List of text elements that make up the head_title variable. + * May contain or more of the following: + * - title: The title of the page. + * - name: The name of the site. + * - slogan: The slogan of the site. + * - page_top: Initial rendered markup. This should be printed before 'page'. + * - page: The rendered page markup. + * - page_bottom: Closing rendered markup. This variable should be printed after + * 'page'. + * - db_offline: A flag indicating if the database is offline. + * - placeholder_token: The token for generating head, css, js and js-bottom + * placeholders. + * + * @see template_preprocess_html() + */ +#} +<!DOCTYPE html> +<html{{ html_attributes }}> + <head> + <head-placeholder token="{{ placeholder_token|raw }}"> + <title>{{ head_title|safe_join(' | ') }}</title> + <css-placeholder token="{{ placeholder_token|raw }}"> + <js-placeholder token="{{ placeholder_token|raw }}"> + </head> + <body{{ attributes }}> + <a href="#main-content" class="visually-hidden focusable"> + {{ 'Skip to main content'|t }} + </a> + {{ page_top }} + {{ page }} + {{ page_bottom }} + <js-bottom-placeholder token="{{ placeholder_token|raw }}"> + </body> +</html> diff --git a/core/themes/stable/templates/layout/install-page.html.twig b/core/themes/stable/templates/layout/install-page.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..44341f449e107e6bd5085694772bf0321dbfe04f --- /dev/null +++ b/core/themes/stable/templates/layout/install-page.html.twig @@ -0,0 +1,53 @@ +{# +/** + * @file + * Theme override to display a Drupal installation page. + * + * All available variables are mirrored in page.html.twig. + * Some may be blank but they are provided for consistency. + * + * @see template_preprocess_install_page() + */ +#} + <div class="layout-container"> + + <header role="banner"> + {% if site_name or site_slogan %} + <div class="name-and-slogan"> + {% if site_name %} + <h1>{{ site_name }}</h1> + {% endif %} + {% if site_slogan %} + <div class="site-slogan">{{ site_slogan }}</div> + {% endif %} + </div>{# /.name-and-slogan #} + {% endif %} + </header> + + <main role="main"> + {% if title %} + <h1>{{ title }}</h1> + {% endif %} + {{ page.highlighted }} + {{ page.content }} + </main> + + {% if page.sidebar_first %} + <aside class="layout-sidebar-first" role="complementary"> + {{ page.sidebar_first }} + </aside>{# /.layout-sidebar-first #} + {% endif %} + + {% if page.sidebar_second %} + <aside class="layout-sidebar-second" role="complementary"> + {{ page.sidebar_second }} + </aside>{# /.layout-sidebar-second #} + {% endif %} + + {% if page.footer %} + <footer role="contentinfo"> + {{ page.footer }} + </footer> + {% endif %} + + </div>{# /.layout-container #} diff --git a/core/themes/stable/templates/layout/maintenance-page.html.twig b/core/themes/stable/templates/layout/maintenance-page.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..de0acaabbbb427e09cbe2454719a33daccb7b3c4 --- /dev/null +++ b/core/themes/stable/templates/layout/maintenance-page.html.twig @@ -0,0 +1,58 @@ +{# +/** + * @file + * Theme override to display a single Drupal page while offline. + * + * All available variables are mirrored in page.html.twig. + * Some may be blank but they are provided for consistency. + * + * @see template_preprocess_maintenance_page() + */ +#} +<header role="banner"> + {% if logo %} + <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home"> + <img src="{{ logo }}" alt="{{ 'Home'|t }}"/> + </a> + {% endif %} + + {% if site_name or site_slogan %} + {% if site_name %} + <h1> + <a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home">{{ site_name }}</a> + </h1> + {% endif %} + + {% if site_slogan %} + <div>{{ site_slogan }}</div> + {% endif %} + {% endif %} +</header> + +<main role="main"> + {% if title %} + <h1>{{ title }}</h1> + {% endif %} + + {{ page.highlighted }} + + {{ page.content }} +</main> + +{% if page.sidebar_first %} + <aside role="complementary"> + {{ page.sidebar_first }} + </aside> +{% endif %} + +{% if page.sidebar_second %} + <aside role="complementary"> + {{ page.sidebar_second }} + </aside> +{% endif %} + +{% if page.footer %} + <footer role="contentinfo"> + {{ page.footer }} + </footer> +{% endif %} diff --git a/core/themes/stable/templates/layout/page.html.twig b/core/themes/stable/templates/layout/page.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..fc30edd4a7e06116612ea0cfbb2ee233bca9fe68 --- /dev/null +++ b/core/themes/stable/templates/layout/page.html.twig @@ -0,0 +1,93 @@ +{# +/** + * @file + * Theme override to display a single page. + * + * The doctype, html, head and body tags are not in this template. Instead they + * can be found in the html.html.twig template in this directory. + * + * Available variables: + * + * General utility variables: + * - base_path: The base URL path of the Drupal installation. Will usually be + * "/" unless you have installed Drupal in a sub-directory. + * - is_front: A flag indicating if the current page is the front page. + * - logged_in: A flag indicating if the user is registered and signed in. + * - is_admin: A flag indicating if the user has permission to access + * administration pages. + * + * Site identity: + * - front_page: The URL of the front page. Use this instead of base_path when + * linking to the front page. This includes the language domain or prefix. + * - logo: The url of the logo image, as defined in theme settings. + * - site_name: The name of the site. This is empty when displaying the site + * name has been disabled in the theme settings. + * - site_slogan: The slogan of the site. This is empty when displaying the site + * slogan has been disabled in theme settings. + * + * Page content (in order of occurrence in the default page.html.twig): + * - messages: Status and error messages. Should be displayed prominently. + * - node: Fully loaded node, if there is an automatically-loaded node + * associated with the page and the node ID is the second argument in the + * page's path (e.g. node/12345 and node/12345/revisions, but not + * comment/reply/12345). + * + * Regions: + * - page.header: Items for the header region. + * - page.primary_menu: Items for the primary menu region. + * - page.secondary_menu: Items for the secondary menu region. + * - page.highlighted: Items for the highlighted content region. + * - page.help: Dynamic help text, mostly for admin pages. + * - page.content: The main content of the current page. + * - page.sidebar_first: Items for the first sidebar. + * - page.sidebar_second: Items for the second sidebar. + * - page.footer: Items for the footer region. + * - page.breadcrumb: Items for the breadcrumb region. + * + * @see template_preprocess_page() + * @see html.html.twig + */ +#} +<div class="layout-container"> + + <header role="banner"> + {{ page.header }} + </header> + + {{ page.primary_menu }} + {{ page.secondary_menu }} + + {{ page.breadcrumb }} + + {{ page.highlighted }} + + {{ page.help }} + + <main role="main"> + <a id="main-content" tabindex="-1"></a>{# link is in html.html.twig #} + + <div class="layout-content"> + {{ page.content }} + </div>{# /.layout-content #} + + {% if page.sidebar_first %} + <aside class="layout-sidebar-first" role="complementary"> + {{ page.sidebar_first }} + </aside> + {% endif %} + + {% if page.sidebar_second %} + <aside class="layout-sidebar-second" role="complementary"> + {{ page.sidebar_second }} + </aside> + {% endif %} + + </main> + + {% if page.footer %} + <footer role="contentinfo"> + {{ page.footer }} + </footer> + {% endif %} + +</div>{# /.layout-container #} diff --git a/core/themes/stable/templates/layout/region.html.twig b/core/themes/stable/templates/layout/region.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f34998e7eaf127fadc9b39993d71579b0ff7267c --- /dev/null +++ b/core/themes/stable/templates/layout/region.html.twig @@ -0,0 +1,19 @@ +{# +/** + * @file + * Theme override to display a region. + * + * Available variables: + * - content: The content for this region, typically blocks. + * - attributes: HTML attributes for the region div. + * - region: The name of the region variable as defined in the theme's + * .info.yml file. + * + * @see template_preprocess_region() + */ +#} +{% if content %} + <div{{ attributes }}> + {{ content }} + </div> +{% endif %} diff --git a/core/themes/stable/templates/misc/feed-icon.html.twig b/core/themes/stable/templates/misc/feed-icon.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..c7cb9a37ed4c5a6f24ebb42f4f53f6757f3cb788 --- /dev/null +++ b/core/themes/stable/templates/misc/feed-icon.html.twig @@ -0,0 +1,15 @@ +{# +/** + * @file + * Theme override for a feed icon. + * + * Available variables: + * - url: An internal system path or a fully qualified external URL of the feed. + * - attributes: Remaining HTML attributes for the feed link. + * - title: A descriptive title of the feed link. + * - class: HTML classes to be applied to the feed link. + */ +#} +<a href="{{ url }}"{{ attributes.addClass('feed-icon') }}> + {{ 'Subscribe to @title'|t({'@title': title}) }} +</a> diff --git a/core/themes/stable/templates/misc/progress-bar.html.twig b/core/themes/stable/templates/misc/progress-bar.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..7b67afec8f14f2fc41396a97c9093212bb933c02 --- /dev/null +++ b/core/themes/stable/templates/misc/progress-bar.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for a progress bar. + * + * Note that the core Batch API uses this only for non-JavaScript batch jobs. + * + * Available variables: + * - label: The label of the working task. + * - percent: The percentage of the progress. + * - message: A string containing information to be displayed. + */ +#} +<div class="progress" data-drupal-progress> + {% if label %} + <div class="progress__label">{{ label }}</div> + {% endif %} + <div class="progress__track"><div class="progress__bar" style="width: {{ percent }}%"></div></div> + <div class="progress__percentage">{{ percent }}%</div> + <div class="progress__description">{{ message }}</div> +</div> diff --git a/core/themes/stable/templates/misc/rdf-metadata.html.twig b/core/themes/stable/templates/misc/rdf-metadata.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..81d91728240cbff5dcad3464874de1be0b821c8c --- /dev/null +++ b/core/themes/stable/templates/misc/rdf-metadata.html.twig @@ -0,0 +1,20 @@ +{# +/** + * @file + * Theme override for empty spans with RDF attributes. + * + * The XHTML+RDFa doctype allows either <span></span> or <span /> syntax to + * be used, but for maximum browser compatibility, W3C recommends the + * former when serving pages using the text/html media type, see + * http://www.w3.org/TR/xhtml1/#C_3. + * + * Available variables: + * - metadata: Each item within corresponds to its own set of attributes, + * and therefore, needs its own 'attributes' element. + * + * @see template_preprocess_rdf_metadata() + */ +#} +{% for attributes in metadata %} + <span{{ attributes.addClass('hidden') }}></span> +{% endfor %} diff --git a/core/themes/stable/templates/misc/rdf-wrapper.html.twig b/core/themes/stable/templates/misc/rdf-wrapper.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..90f50f4ae50027637930e93048b629c8229d823a --- /dev/null +++ b/core/themes/stable/templates/misc/rdf-wrapper.html.twig @@ -0,0 +1,11 @@ +{# +/** + * @file + * Theme override for wrapping content with RDF attributes. + * + * Available variables: + * - content: The content being wrapped with RDF attributes. + * - attributes: HTML attributes, including RDF attributes for wrapper element. + */ +#} +<span{{ attributes }}>{{ content }}</span> diff --git a/core/themes/stable/templates/misc/status-messages.html.twig b/core/themes/stable/templates/misc/status-messages.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f9e1eaee689a1ac361d03bc6b862d711e1826931 --- /dev/null +++ b/core/themes/stable/templates/misc/status-messages.html.twig @@ -0,0 +1,47 @@ +{# +/** + * @file + * Theme override for status messages. + * + * Displays status, error, and warning messages, grouped by type. + * + * An invisible heading identifies the messages for assistive technology. + * Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html + * for info. + * + * Add an ARIA label to the contentinfo area so that assistive technology + * user agents will better describe this landmark. + * + * Available variables: + * - message_list: List of messages to be displayed, grouped by type. + * - status_headings: List of all status types. + * - display: (optional) May have a value of 'status' or 'error' when only + * displaying messages of that specific type. + * - attributes: HTML attributes for the element, including: + * - class: HTML classes. + * + * @see template_preprocess_status_messages() + */ +#} +{% for type, messages in message_list %} + <div role="contentinfo" aria-label="{{ status_headings[type] }}"{{ attributes|without('role', 'aria-label') }}> + {% if type == 'error' %} + <div role="alert"> + {% endif %} + {% if status_headings[type] %} + <h2 class="visually-hidden">{{ status_headings[type] }}</h2> + {% endif %} + {% if messages|length > 1 %} + <ul> + {% for message in messages %} + <li>{{ message }}</li> + {% endfor %} + </ul> + {% else %} + {{ messages|first }} + {% endif %} + {% if type == 'error' %} + </div> + {% endif %} + </div> +{% endfor %} diff --git a/core/themes/stable/templates/navigation/book-all-books-block.html.twig b/core/themes/stable/templates/navigation/book-all-books-block.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..2eafa8e0c321b5db5b30f5276abb8e258bf89265 --- /dev/null +++ b/core/themes/stable/templates/navigation/book-all-books-block.html.twig @@ -0,0 +1,22 @@ +{# +/** + * @file + * Theme override for rendering book outlines within a block. + * + * This template is used only when the block is configured to "show block on all + * pages", which presents multiple independent books on all pages. + * + * Available variables: + * - book_menus: Book outlines. + * - id: The parent book ID. + * - title: The parent book title. + * - menu: The top-level book links. + * + * @see template_preprocess_book_all_books_block() + */ +#} +{% for book in book_menus %} + <nav role="navigation" aria-label="{% trans %}Book outline for {{ book.title }}{% endtrans %}"> + {{ book.menu }} + </nav> +{% endfor %} diff --git a/core/themes/stable/templates/navigation/book-navigation.html.twig b/core/themes/stable/templates/navigation/book-navigation.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..28a797a12a99821210d4bcd01631affc6188cca4 --- /dev/null +++ b/core/themes/stable/templates/navigation/book-navigation.html.twig @@ -0,0 +1,55 @@ +{# +/** + * @file + * Theme override to navigate books. + * + * Presented under nodes that are a part of book outlines. + * + * Available variables: + * - tree: The immediate children of the current node rendered as an unordered + * list. + * - current_depth: Depth of the current node within the book outline. Provided + * for context. + * - prev_url: URL to the previous node. + * - prev_title: Title of the previous node. + * - parent_url: URL to the parent node. + * - parent_title: Title of the parent node. Not printed by default. Provided + * as an option. + * - next_url: URL to the next node. + * - next_title: Title of the next node. + * - has_links: Flags TRUE whenever the previous, parent or next data has a + * value. + * - book_id: The book ID of the current outline being viewed. Same as the node + * ID containing the entire outline. Provided for context. + * - book_url: The book/node URL of the current outline being viewed. Provided + * as an option. Not used by default. + * - book_title: The book/node title of the current outline being viewed. + * + * @see template_preprocess_book_navigation() + */ +#} +{% if tree or has_links %} + <nav role="navigation" aria-labelledby="book-label-{{ book_id }}"> + {{ tree }} + {% if has_links %} + <h2>{{ 'Book traversal links for'|t }} {{ book_title }}</h2> + <ul> + {% if prev_url %} + <li> + <a href="{{ prev_url }}" rel="prev" title="{{ 'Go to previous page'|t }}"><b>{{ '‹'|t }}</b> {{ prev_title }}</a> + </li> + {% endif %} + {% if parent_url %} + <li> + <a href="{{ parent_url }}" title="{{ 'Go to parent page'|t }}">{{ 'Up'|t }}</a> + </li> + {% endif %} + {% if next_url %} + <li> + <a href="{{ next_url }}" rel="next" title="{{ 'Go to next page'|t }}">{{ next_title }} <b>{{ '›'|t }}</b></a> + </li> + {% endif %} + </ul> + {% endif %} + </nav> +{% endif %} diff --git a/core/themes/stable/templates/navigation/book-tree.html.twig b/core/themes/stable/templates/navigation/book-tree.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..a01248763765c36cc8ea5ecaefd0427e2cca82b5 --- /dev/null +++ b/core/themes/stable/templates/navigation/book-tree.html.twig @@ -0,0 +1,47 @@ +{# +/** + * @file + * Theme override to display a book tree. + * + * Returns HTML for a wrapper for a book sub-tree. + * + * Available variables: + * - items: A nested list of book items. Each book item contains: + * - attributes: HTML attributes for the book item. + * - below: The book item child items. + * - title: The book link title. + * - url: The book link URL, instance of \Drupal\Core\Url. + * - is_expanded: TRUE if the link has visible children within the current + * book tree. + * - is_collapsed: TRUE if the link has children within the current book tree + * that are not currently visible. + * - in_active_trail: TRUE if the link is in the active trail. + */ +#} +{% import _self as book_tree %} + +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html +#} +{{ book_tree.book_links(items, attributes, 0) }} + +{% macro book_links(items, attributes, menu_level) %} + {% import _self as book_tree %} + {% if items %} + {% if menu_level == 0 %} + <ul{{ attributes }}> + {% else %} + <ul> + {% endif %} + {% for item in items %} + <li{{ item.attributes }}> + {{ link(item.title, item.url) }} + {% if item.below %} + {{ book_tree.book_links(item.below, attributes, menu_level + 1) }} + {% endif %} + </li> + {% endfor %} + </ul> + {% endif %} +{% endmacro %} diff --git a/core/themes/stable/templates/navigation/breadcrumb.html.twig b/core/themes/stable/templates/navigation/breadcrumb.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..7b5c6b51b41aa2ce463e297ccd50adc6dad4f5af --- /dev/null +++ b/core/themes/stable/templates/navigation/breadcrumb.html.twig @@ -0,0 +1,25 @@ +{# +/** + * @file + * Theme override for a breadcrumb trail. + * + * Available variables: + * - breadcrumb: Breadcrumb trail items. + */ +#} +{% if breadcrumb %} + <nav role="navigation" aria-labelledby="system-breadcrumb"> + <h2 class="visually-hidden">{{ 'Breadcrumb'|t }}</h2> + <ol> + {% for item in breadcrumb %} + <li> + {% if item.url %} + <a href="{{ item.url }}">{{ item.text }}</a> + {% else %} + {{ item.text }} + {% endif %} + </li> + {% endfor %} + </ol> + </nav> +{% endif %} diff --git a/core/themes/stable/templates/navigation/links.html.twig b/core/themes/stable/templates/navigation/links.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f82f41a158cbcf2a828ae41fe5a55b450513f84b --- /dev/null +++ b/core/themes/stable/templates/navigation/links.html.twig @@ -0,0 +1,56 @@ +{# +/** + * @file + * Theme override for a set of links. + * + * Available variables: + * - attributes: Attributes for the UL containing the list of links. + * - links: Links to be output. + * Each link will have the following elements: + * - title: The link text. + * - href: The link URL. If omitted, the 'title' is shown as a plain text + * item in the links list. If 'href' is supplied, the entire link is passed + * to l() as its $options parameter. + * - attributes: (optional) HTML attributes for the anchor, or for the <span> + * tag if no 'href' is supplied. + * - link_key: The link CSS class. + * - heading: (optional) A heading to precede the links. + * - text: The heading text. + * - level: The heading level (e.g. 'h2', 'h3'). + * - attributes: (optional) A keyed list of attributes for the heading. + * If the heading is a string, it will be used as the text of the heading and + * the level will default to 'h2'. + * + * Headings should be used on navigation menus and any list of links that + * consistently appears on multiple pages. To make the heading invisible use + * the 'visually-hidden' CSS class. Do not use 'display:none', which + * removes it from screen readers and assistive technology. Headings allow + * screen reader and keyboard only users to navigate to or skip the links. + * See http://juicystudio.com/article/screen-readers-display-none.php and + * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. + * + * @see template_preprocess_links() + */ +#} +{% if links -%} + {%- if heading -%} + {%- if heading.level -%} + <{{ heading.level }}{{ heading.attributes }}>{{ heading.text }}</{{ heading.level }}> + {%- else -%} + <h2{{ heading.attributes }}>{{ heading.text }}</h2> + {%- endif -%} + {%- endif -%} + <ul{{ attributes }}> + {%- for key, item in links -%} + <li{{ item.attributes.addClass(key|clean_class) }}> + {%- if item.link -%} + {{ item.link }} + {%- elseif item.text_attributes -%} + <span{{ item.text_attributes }}>{{ item.text }}</span> + {%- else -%} + {{ item.text }} + {%- endif -%} + </li> + {%- endfor -%} + </ul> +{%- endif %} diff --git a/core/themes/stable/templates/navigation/menu--toolbar.html.twig b/core/themes/stable/templates/navigation/menu--toolbar.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..55cfc5b8b44aca3cae2802b339ac98bbff51a362 --- /dev/null +++ b/core/themes/stable/templates/navigation/menu--toolbar.html.twig @@ -0,0 +1,55 @@ +{# +/** + * @file + * Theme override to display a toolbar menu. + * + * Available variables: + * - menu_name: The machine name of the menu. + * - items: A nested list of menu items. Each menu item contains: + * - attributes: HTML attributes for the menu item. + * - below: The menu item child items. + * - title: The menu link title. + * - url: The menu link url, instance of \Drupal\Core\Url + * - localized_options: Menu link localized options. + * - is_expanded: TRUE if the link has visible children within the current + * menu tree. + * - is_collapsed: TRUE if the link has children within the current menu tree + * that are not currently visible. + * - in_active_trail: TRUE if the link is in the active trail. + */ +#} +{% import _self as menus %} + +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html +#} +{{ menus.menu_links(items, attributes, 0) }} + +{% macro menu_links(items, attributes, menu_level) %} + {% import _self as menus %} + {% if items %} + {% if menu_level == 0 %} + <ul{{ attributes.addClass('toolbar-menu') }}> + {% else %} + <ul class="toolbar-menu"> + {% endif %} + {% for item in items %} + {% + set classes = [ + 'menu-item', + item.is_expanded ? 'menu-item--expanded', + item.is_collapsed ? 'menu-item--collapsed', + item.in_active_trail ? 'menu-item--active-trail', + ] + %} + <li{{ item.attributes.addClass(classes) }}> + {{ link(item.title, item.url) }} + {% if item.below %} + {{ menus.menu_links(item.below, attributes, menu_level + 1) }} + {% endif %} + </li> + {% endfor %} + </ul> + {% endif %} +{% endmacro %} diff --git a/core/themes/stable/templates/navigation/menu-local-action.html.twig b/core/themes/stable/templates/navigation/menu-local-action.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..27872837abdca839f016b791feb731656f653108 --- /dev/null +++ b/core/themes/stable/templates/navigation/menu-local-action.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for a single local action link. + * + * Available variables: + * - attributes: HTML attributes for the wrapper element. + * - link: A rendered link element. + * + * @see template_preprocess_menu_local_action() + */ +#} +<li{{ attributes }}>{{ link }}</li> diff --git a/core/themes/stable/templates/navigation/menu-local-task.html.twig b/core/themes/stable/templates/navigation/menu-local-task.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..b6c3ca2419130ba26197feb806f24c927366ae3f --- /dev/null +++ b/core/themes/stable/templates/navigation/menu-local-task.html.twig @@ -0,0 +1,17 @@ +{# +/** + * @file + * Theme override for a local task link. + * + * Available variables: + * - attributes: HTML attributes for the wrapper element. + * - is_active: Whether the task item is an active tab. + * - link: A rendered link element. + * + * Note: This template renders the content for each task item in + * menu-local-tasks.html.twig. + * + * @see template_preprocess_menu_local_task() + */ +#} +<li{{ attributes }}>{{ link }}</li> diff --git a/core/themes/stable/templates/navigation/menu-local-tasks.html.twig b/core/themes/stable/templates/navigation/menu-local-tasks.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..a519f23298e174bff1faddc407725c524adf5ccb --- /dev/null +++ b/core/themes/stable/templates/navigation/menu-local-tasks.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override to display primary and secondary local tasks. + * + * Available variables: + * - primary: HTML list items representing primary tasks. + * - secondary: HTML list items representing primary tasks. + * + * Each item in these variables (primary and secondary) can be individually + * themed in menu-local-task.html.twig. + * + * @see template_preprocess_menu_local_tasks() + */ +#} +{% if primary %} + <h2 class="visually-hidden">{{ 'Primary tabs'|t }}</h2> + <ul>{{ primary }}</ul> +{% endif %} +{% if secondary %} + <h2 class="visually-hidden">{{ 'Secondary tabs'|t }}</h2> + <ul>{{ secondary }}</ul> +{% endif %} diff --git a/core/themes/stable/templates/navigation/menu.html.twig b/core/themes/stable/templates/navigation/menu.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..33efca8003d38507a29bf4ba1cbbfe04330faed8 --- /dev/null +++ b/core/themes/stable/templates/navigation/menu.html.twig @@ -0,0 +1,47 @@ +{# +/** + * @file + * Theme override to display a menu. + * + * Available variables: + * - menu_name: The machine name of the menu. + * - items: A nested list of menu items. Each menu item contains: + * - attributes: HTML attributes for the menu item. + * - below: The menu item child items. + * - title: The menu link title. + * - url: The menu link url, instance of \Drupal\Core\Url + * - localized_options: Menu link localized options. + * - is_expanded: TRUE if the link has visible children within the current + * menu tree. + * - is_collapsed: TRUE if the link has children within the current menu tree + * that are not currently visible. + * - in_active_trail: TRUE if the link is in the active trail. + */ +#} +{% import _self as menus %} + +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html +#} +{{ menus.menu_links(items, attributes, 0) }} + +{% macro menu_links(items, attributes, menu_level) %} + {% import _self as menus %} + {% if items %} + {% if menu_level == 0 %} + <ul{{ attributes }}> + {% else %} + <ul> + {% endif %} + {% for item in items %} + <li{{ item.attributes }}> + {{ link(item.title, item.url) }} + {% if item.below %} + {{ menus.menu_links(item.below, attributes, menu_level + 1) }} + {% endif %} + </li> + {% endfor %} + </ul> + {% endif %} +{% endmacro %} diff --git a/core/themes/stable/templates/navigation/pager.html.twig b/core/themes/stable/templates/navigation/pager.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..fd1454ebe05c920571e9e6144ab5a5a922b65ba6 --- /dev/null +++ b/core/themes/stable/templates/navigation/pager.html.twig @@ -0,0 +1,98 @@ +{# +/** + * @file + * Theme override to display a pager. + * + * Available variables: + * - items: List of pager items. + * The list is keyed by the following elements: + * - first: Item for the first page; not present on the first page of results. + * - previous: Item for the previous page; not present on the first page + * of results. + * - next: Item for the next page; not present on the last page of results. + * - last: Item for the last page; not present on the last page of results. + * - pages: List of pages, keyed by page number. + * Sub-sub elements: + * items.first, items.previous, items.next, items.last, and each item inside + * items.pages contain the following elements: + * - href: URL with appropriate query parameters for the item. + * - attributes: A keyed list of HTML attributes for the item. + * - text: The visible text used for the item link, such as "‹ Previous" + * or "Next ›". + * - current: The page number of the current page. + * - ellipses: If there are more pages than the quantity allows, then an + * ellipsis before or after the listed pages may be present. + * - previous: Present if the currently visible list of pages does not start + * at the first page. + * - next: Present if the visible list of pages ends before the last page. + * + * @see template_preprocess_pager() + */ +#} +{% if items %} + <nav class="pager" role="navigation" aria-labelledby="pagination-heading"> + <h4 id="pagination-heading" class="visually-hidden">{{ 'Pagination'|t }}</h4> + <ul class="pager__items js-pager__items"> + {# Print first item if we are not on the first page. #} + {% if items.first %} + <li class="pager__item pager__item--first"> + <a href="{{ items.first.href }}" title="{{ 'Go to first page'|t }}"{{ items.first.attributes|without('href', 'title') }}> + <span class="visually-hidden">{{ 'First page'|t }}</span> + <span aria-hidden="true">{{ items.first.text|default('« First'|t) }}</span> + </a> + </li> + {% endif %} + {# Print previous item if we are not on the first page. #} + {% if items.previous %} + <li class="pager__item pager__item--previous"> + <a href="{{ items.previous.href }}" title="{{ 'Go to previous page'|t }}" rel="prev"{{ items.previous.attributes|without('href', 'title', 'rel') }}> + <span class="visually-hidden">{{ 'Previous page'|t }}</span> + <span aria-hidden="true">{{ items.previous.text|default('‹ Previous'|t) }}</span> + </a> + </li> + {% endif %} + {# Add an ellipsis if there are further previous pages. #} + {% if ellipses.previous %} + <li class="pager__item pager__item--ellipsis" role="presentation">…</li> + {% endif %} + {# Now generate the actual pager piece. #} + {% for key, item in items.pages %} + <li class="pager__item{{ current == key ? ' is-active' : '' }}"> + {% if current == key %} + {% set title = 'Current page'|t %} + {% else %} + {% set title = 'Go to page @key'|t({'@key': key}) %} + {% endif %} + <a href="{{ item.href }}" title="{{ title }}"{{ item.attributes|without('href', 'title') }}> + <span class="visually-hidden"> + {{ current == key ? 'Current page'|t : 'Page'|t }} + </span> + {{- key -}} + </a> + </li> + {% endfor %} + {# Add an ellipsis if there are further next pages. #} + {% if ellipses.next %} + <li class="pager__item pager__item--ellipsis" role="presentation">…</li> + {% endif %} + {# Print next item if we are not on the last page. #} + {% if items.next %} + <li class="pager__item pager__item--next"> + <a href="{{ items.next.href }}" title="{{ 'Go to next page'|t }}" rel="next"{{ items.next.attributes|without('href', 'title', 'rel') }}> + <span class="visually-hidden">{{ 'Next page'|t }}</span> + <span aria-hidden="true">{{ items.next.text|default('Next ›'|t) }}</span> + </a> + </li> + {% endif %} + {# Print last item if we are not on the last page. #} + {% if items.last %} + <li class="pager__item pager__item--last"> + <a href="{{ items.last.href }}" title="{{ 'Go to last page'|t }}"{{ items.last.attributes|without('href', 'title') }}> + <span class="visually-hidden">{{ 'Last page'|t }}</span> + <span aria-hidden="true">{{ items.last.text|default('Last »'|t) }}</span> + </a> + </li> + {% endif %} + </ul> + </nav> +{% endif %} diff --git a/core/themes/stable/templates/navigation/toolbar.html.twig b/core/themes/stable/templates/navigation/toolbar.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..497bc781e5f8aefdd5a1f58505d081d9d44384ac --- /dev/null +++ b/core/themes/stable/templates/navigation/toolbar.html.twig @@ -0,0 +1,46 @@ +{# +/** + * @file + * Theme override for the administrative toolbar. + * + * Available variables: + * - attributes: HTML attributes for the wrapper. + * - toolbar_attributes: HTML attributes to apply to the toolbar. + * - toolbar_heading: The heading or label for the toolbar. + * - tabs: List of tabs for the toolbar. + * - attributes: HTML attributes for the tab container. + * - link: Link or button for the menu tab. + * - trays: Toolbar tray list, each associated with a tab. Each tray in trays + * contains: + * - attributes: HTML attributes to apply to the tray. + * - label: The tray's label. + * - links: The tray menu links. + * - remainder: Any non-tray, non-tab elements left to be rendered. + * + * @see template_preprocess_toolbar() + */ +#} +<div{{ attributes.addClass('toolbar') }}> + <nav{{ toolbar_attributes.addClass('toolbar-bar') }}> + <h2 class="visually-hidden">{{ toolbar_heading }}</h2> + {% for key, tab in tabs %} + {% set tray = trays[key] %} + <div{{ tab.attributes.addClass('toolbar-tab') }}> + {{ tab.link }} + {% spaceless %} + <div{{ tray.attributes }}> + {% if tray.label %} + <nav class="toolbar-lining clearfix" role="navigation" aria-label="{{ tray.label }}"> + <h3 class="toolbar-tray-name visually-hidden">{{ tray.label }}</h3> + {% else %} + <nav class="toolbar-lining clearfix" role="navigation"> + {% endif %} + {{ tray.links }} + </nav> + </div> + {% endspaceless %} + </div> + {% endfor %} + </nav> + {{ remainder }} +</div> diff --git a/core/themes/stable/templates/navigation/vertical-tabs.html.twig b/core/themes/stable/templates/navigation/vertical-tabs.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d128883bd2562ce59d929b5d819f97b57f16d537 --- /dev/null +++ b/core/themes/stable/templates/navigation/vertical-tabs.html.twig @@ -0,0 +1,13 @@ +{# +/** + * @file + * Theme override for vertical tabs. + * + * Available variables + * - attributes: A list of HTML attributes for the wrapper element. + * - children: The rendered checkboxes. + * + * @see template_preprocess_vertical_tabs() + */ +#} +<div{{ attributes.setAttribute('data-vertical-tabs-panes', TRUE) }}>{{ children }}</div> diff --git a/core/themes/stable/templates/user/forum-submitted.html.twig b/core/themes/stable/templates/user/forum-submitted.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..65680cef1b59b4ffa5b862ed1de78bad6fa42a3b --- /dev/null +++ b/core/themes/stable/templates/user/forum-submitted.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for a forum post submission string. + * + * The submission string indicates when and by whom a topic was submitted. + * + * Available variables: + * - author: The author of the post. + * - time: How long ago the post was created. + * - topic: An object with the raw data of the post. Potentially unsafe. Be + * sure to clean this data before printing. + * + * @see template_preprocess_forum_submitted() + */ +#} +{% if time %} + <span>{% trans %}By {{ author }} {{ time }} ago{% endtrans %}</span> +{% else %} + {{ 'n/a'|t }} +{% endif %} diff --git a/core/themes/stable/templates/user/user.html.twig b/core/themes/stable/templates/user/user.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..99e94726377d780bad26073d93145d3f17e942b1 --- /dev/null +++ b/core/themes/stable/templates/user/user.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override to present all user data. + * + * This template is used when viewing a registered user's page, + * e.g., example.com/user/123. 123 being the user's ID. + * + * Available variables: + * - content: A list of content items. Use 'content' to print all content, or + * print a subset such as 'content.field_example'. Fields attached to a user + * such as 'user_picture' are available as 'content.user_picture'. + * - attributes: HTML attributes for the container element. + * - user: A Drupal User entity. + * + * @see template_preprocess_user() + */ +#} +<article{{ attributes }}> + {% if content %} + {{- content -}} + {% endif %} +</article> diff --git a/core/themes/stable/templates/user/username.html.twig b/core/themes/stable/templates/user/username.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..828f6c6e6c8ca23534e12ca764ed37ae87d451e5 --- /dev/null +++ b/core/themes/stable/templates/user/username.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for displaying a username. + * + * Available variables: + * - account: The full account information for the user. + * - name: The user's name, sanitized. + * - extra: Additional text to append to the user's name, sanitized. + * - link_path: The path or URL of the user's profile page, home page, + * or other desired page to link to for more information about the user. + * - link_options: Options to pass to the url() function's $options parameter if + * linking the user's name to the user's page. + * - attributes: HTML attributes for the containing element. + * + * @see template_preprocess_username() + */ +#} +{% if link_path -%} + <a{{ attributes }}>{{ name }}{{ extra }}</a> +{%- else -%} + <span{{ attributes }}>{{ name }}{{ extra }}</span> +{%- endif -%} diff --git a/core/themes/stable/templates/views/views-exposed-form.html.twig b/core/themes/stable/templates/views/views-exposed-form.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..0d34594d495c8d6beb3eb92b963e3a2f95361f58 --- /dev/null +++ b/core/themes/stable/templates/views/views-exposed-form.html.twig @@ -0,0 +1,19 @@ +{# +/** + * @file + * Theme override of a views exposed form. + * + * Available variables: + * - form: A render element representing the form. + * + * @see template_preprocess_views_exposed_form() + */ +#} +{% if q is not empty %} + {# + This ensures that, if clean URLs are off, the 'q' is added first, + as a hidden form element, so that it shows up first in the POST URL. + #} +{{ q }} +{% endif %} +{{ form }} diff --git a/core/themes/stable/templates/views/views-mini-pager.html.twig b/core/themes/stable/templates/views/views-mini-pager.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..08d794b8cf694c56087a0e05f2cabd10d51e2b58 --- /dev/null +++ b/core/themes/stable/templates/views/views-mini-pager.html.twig @@ -0,0 +1,41 @@ +{# +/** + * @file + * Theme override for a views mini-pager. + * + * Available variables: + * - items: List of pager items. + * + * @see template_preprocess_views_mini_pager() + */ +#} +{% if items.previous or items.next %} + <nav role="navigation" aria-labelledby="pagination-heading"> + <h4 class="visually-hidden">{{ 'Pagination'|t }}</h4> + <ul class="js-pager__items"> + {% if items.previous %} + <li> + <a href="{{ items.previous.href }}" title="{{ 'Go to previous page'|t }}" rel="prev"{{ items.previous.attributes|without('href', 'title', 'rel') }}> + <span class="visually-hidden">{{ 'Previous page'|t }}</span> + <span aria-hidden="true">{{ items.previous.text|default('‹‹'|t) }}</span> + </a> + </li> + {% endif %} + {% if items.current %} + <li> + {% trans %} + Page {{ items.current }} + {% endtrans %} + </li> + {% endif %} + {% if items.next %} + <li> + <a href="{{ items.next.href }}" title="{{ 'Go to next page'|t }}" rel="next"{{ items.next.attributes|without('href', 'title', 'rel') }}> + <span class="visually-hidden">{{ 'Next page'|t }}</span> + <span aria-hidden="true">{{ items.next.text|default('››'|t) }}</span> + </a> + </li> + {% endif %} + </ul> + </nav> +{% endif %} diff --git a/core/themes/stable/templates/views/views-view-field.html.twig b/core/themes/stable/templates/views/views-view-field.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..514b121dd821825c6f6ef3409a62e4e1dd7d5da6 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-field.html.twig @@ -0,0 +1,21 @@ +{# +/** + * @file + * Theme override for a single field in a view. + * + * Available variables: + * - view: The view that the field belongs to. + * - field: The field handler that can process the input. + * - row: The raw result of the database query that generated this field. + * - output: The processed output that will normally be used. + * + * When fetching output from the row this construct should be used: + * data = row[field.field_alias] + * + * The above will guarantee that you'll always get the correct data, regardless + * of any changes in the aliasing that might happen if the view is modified. + * + * @see template_preprocess_views_view_field() + */ +#} +{{ output -}} diff --git a/core/themes/stable/templates/views/views-view-fields.html.twig b/core/themes/stable/templates/views/views-view-fields.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..1370b3979d14e7c19bfae342a4b653a543d39551 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-fields.html.twig @@ -0,0 +1,52 @@ +{# +/** + * @file + * Theme override to display all the fields in a row. + * + * Available variables: + * - view: The view in use. + * - fields: A list of fields, each one contains: + * - content: The output of the field. + * - raw: The raw data for the field, if it exists. This is NOT output safe. + * - class: The safe class ID to use. + * - handler: The Views field handler controlling this field. + * - inline: Whether or not the field should be inline. + * - wrapper_element: An HTML element for a wrapper. + * - wrapper_attributes: List of attributes for wrapper element. + * - separator: An optional separator that may appear before a field. + * - label: The field's label text. + * - label_element: An HTML element for a label wrapper. + * - label_attributes: List of attributes for label wrapper. + * - label_suffix: Colon after the label. + * - element_type: An HTML element for the field content. + * - element_attributes: List of attributes for HTML element for field content. + * - has_label_colon: A boolean indicating whether to display a colon after + * the label. + * - element_type: An HTML element for the field content. + * - element_attributes: List of attributes for HTML element for field content. + * - row: The raw result from the query, with all data it fetched. + * + * @see template_preprocess_views_view_fields() + */ +#} +{% for field in fields -%} + {{ field.separator }} + {%- if field.wrapper_element -%} + <{{ field.wrapper_element }}{{ field.wrapper_attributes }}> + {%- endif %} + {%- if field.label -%} + {%- if field.label_element -%} + <{{ field.label_element }}{{ field.label_attributes }}>{{ field.label }}{{ field.label_suffix }}</{{ field.label_element }}> + {%- else -%} + {{ field.label }}{{ field.label_suffix }} + {%- endif %} + {%- endif %} + {%- if field.element_type -%} + <{{ field.element_type }}{{ field.element_attributes }}>{{ field.content }}</{{ field.element_type }}> + {%- else -%} + {{ field.content }} + {%- endif %} + {%- if field.wrapper_element -%} + </{{ field.wrapper_element }}> + {%- endif %} +{%- endfor %} diff --git a/core/themes/stable/templates/views/views-view-grid.html.twig b/core/themes/stable/templates/views/views-view-grid.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..2fe3028c9304b1a1c00a183c9b68e47a498aee2f --- /dev/null +++ b/core/themes/stable/templates/views/views-view-grid.html.twig @@ -0,0 +1,76 @@ +{# +/** + * @file + * Theme override for views to display rows in a grid. + * + * Available variables: + * - attributes: HTML attributes for the wrapping element. + * - title: The title of this group of rows. + * - view: The view object. + * - rows: The rendered view results. + * - options: The view plugin style options. + * - row_class_default: A flag indicating whether default classes should be + * used on rows. + * - col_class_default: A flag indicating whether default classes should be + * used on columns. + * - items: A list of grid items. Each item contains a list of rows or columns. + * The order in what comes first (row or column) depends on which alignment + * type is chosen (horizontal or vertical). + * - attributes: HTML attributes for each row or column. + * - content: A list of columns or rows. Each row or column contains: + * - attributes: HTML attributes for each row or column. + * - content: The row or column contents. + * + * @see template_preprocess_views_view_grid() + */ +#} +{% + set classes = [ + 'views-view-grid', + options.alignment, + 'cols-' ~ options.columns, + 'clearfix', + ] +%} +{% if options.row_class_default %} + {% + set row_classes = [ + 'views-row', + options.alignment == 'horizontal' ? 'clearfix', + ] + %} +{% endif %} +{% if options.col_class_default %} + {% + set col_classes = [ + 'views-col', + options.alignment == 'vertical' ? 'clearfix', + ] + %} +{% endif %} +{% if title %} + <h3>{{ title }}</h3> +{% endif %} +<div{{ attributes.addClass(classes) }}> + {% if options.alignment == 'horizontal' %} + {% for row in items %} + <div{{ row.attributes.addClass(row_classes, options.row_class_default ? 'row-' ~ loop.index) }}> + {% for column in row.content %} + <div{{ column.attributes.addClass(col_classes, options.col_class_default ? 'col-' ~ loop.index) }}> + {{ column.content }} + </div> + {% endfor %} + </div> + {% endfor %} + {% else %} + {% for column in items %} + <div{{ column.attributes.addClass(col_classes, options.col_class_default ? 'col-' ~ loop.index) }}> + {% for row in column.content %} + <div{{ row.attributes.addClass(row_classes, options.row_class_default ? 'row-' ~ loop.index) }}> + {{ row.content }} + </div> + {% endfor %} + </div> + {% endfor %} + {% endif %} +</div> diff --git a/core/themes/stable/templates/views/views-view-grouping.html.twig b/core/themes/stable/templates/views/views-view-grouping.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..319607c076c682b6a58b2d7c3dd73fc17c7b22e1 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-grouping.html.twig @@ -0,0 +1,18 @@ +{# +/** + * @file + * Theme override to display a single views grouping. + * + * Available variables: + * - view: The view object. + * - grouping: The grouping instruction. + * - grouping_level: A number indicating the hierarchical level of the grouping. + * - title: The group heading. + * - content: The content to be grouped. + * - rows: The rows returned from the view. + * + * @see template_preprocess_views_view_grouping() + */ +#} +{{ title }} +{{ content }} diff --git a/core/themes/stable/templates/views/views-view-list.html.twig b/core/themes/stable/templates/views/views-view-list.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..44d4766d44b20d97b3480a289f01320855412a34 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-list.html.twig @@ -0,0 +1,36 @@ +{# +/** + * @file + * Theme override for a view template to display a list of rows. + * + * Available variables: + * - attributes: HTML attributes for the container. + * - rows: A list of rows for this list. + * - attributes: The row's HTML attributes. + * - content: The row's contents. + * - title: The title of this group of rows. May be empty. + * - list: @todo. + * - type: Starting tag will be either a ul or ol. + * - attributes: HTML attributes for the list element. + * + * @see template_preprocess_views_view_list() + */ +#} +{% if attributes -%} + <div{{ attributes }}> +{% endif %} + {% if title %} + <h3>{{ title }}</h3> + {% endif %} + + <{{ list.type }}{{ list.attributes }}> + + {% for row in rows %} + <li{{ row.attributes }}>{{ row.content }}</li> + {% endfor %} + + </{{ list.type }}> + +{% if attributes -%} + </div> +{% endif %} diff --git a/core/themes/stable/templates/views/views-view-mapping-test.html.twig b/core/themes/stable/templates/views/views-view-mapping-test.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..26d06692967bbab306b00f42cd88b1f862d2e82e --- /dev/null +++ b/core/themes/stable/templates/views/views-view-mapping-test.html.twig @@ -0,0 +1,12 @@ +{# +/** + * @file + * Theme override for testing the mapping row style. + * + * Available variables: + * - element: The view content. + * + * @see template_preprocess_views_view_mapping_test() + */ +#} +{{ element }} diff --git a/core/themes/stable/templates/views/views-view-opml.html.twig b/core/themes/stable/templates/views/views-view-opml.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..a48843aea68c23cb233bd1832f6f38155a6f1366 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-opml.html.twig @@ -0,0 +1,23 @@ +{# +/** + * @file + * Theme override for feed displays that use the OPML style. + * + * Available variables: + * - title: The title of the feed (as set in the view). + * - updated: The modified date of the feed. + * - items: The feed items themselves. + * + * @see template_preprocess_views_view_opml() + */ +#} +<?xml version="1.0" encoding="utf-8" ?> +<opml version="2.0"> + <head> + <title>{{ title }}</title> + <dateModified>{{ updated }}</dateModified> + </head> + <body> + {{ items }} + </body> +</opml> diff --git a/core/themes/stable/templates/views/views-view-row-opml.html.twig b/core/themes/stable/templates/views/views-view-row-opml.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..3316b1a3d7e9daa5e8fc80055028a7c511d21ef0 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-row-opml.html.twig @@ -0,0 +1,12 @@ +{# +/** + * @file + * Theme override to display an item in a views OPML feed. + * + * Available variables: + * - attributes: Attributes for outline element. + * + * @see template_preprocess_views_view_row_opml() + */ +#} + <outline{{ attributes }}/> diff --git a/core/themes/stable/templates/views/views-view-row-rss.html.twig b/core/themes/stable/templates/views/views-view-row-rss.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..4cdeba842c49f6606a3e8d437eec763024b602d3 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-row-rss.html.twig @@ -0,0 +1,28 @@ +{# +/** + * @file + * Theme override to display an item in a views RSS feed. + * + * Available variables: + * - title: RSS item title. + * - link: RSS item link. + * - description: RSS body text. + * - item_elements: RSS item elements to be rendered as XML (pubDate, creator, + * guid). + * + * @see template_preprocess_views_view_row_rss() + */ +#} +<item> + <title>{{ title }}</title> + <link>{{ link }}</link> + <description>{{ description }}</description> + {% for item in item_elements -%} + <{{ item.key }}{{ item.attributes -}} + {% if item.value -%} + >{{ item.value }}</{{ item.key }}> + {% else -%} + {{ ' />' }} + {% endif %} + {%- endfor %} +</item> diff --git a/core/themes/stable/templates/views/views-view-rss.html.twig b/core/themes/stable/templates/views/views-view-rss.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..f772d6370c347f3351a54aa3ecc9cd83e18ae0a4 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-rss.html.twig @@ -0,0 +1,28 @@ +{# +/** + * @file + * Theme override for feed displays that use the RSS style. + * + * Available variables: + * - link: The link to the feed (the view path). + * - namespaces: The XML namespaces (added automatically). + * - title: The title of the feed (as set in the view). + * - description: The feed description (from feed settings). + * - langcode: The language encoding. + * - channel_elements: The formatted channel elements. + * - items: The feed items themselves. + * + * @see template_preprocess_views_view_rss() + */ +#} +<?xml version="1.0" encoding="utf-8" ?> +<rss version="2.0" xml:base="{{ link }}"{{ namespaces }}> + <channel> + <title>{{ title }}</title> + <link>{{ link }}</link> + <description>{{ description }}</description> + <language>{{ langcode }}</language> + {{ channel_elements }} + {{ items }} + </channel> +</rss> diff --git a/core/themes/stable/templates/views/views-view-summary-unformatted.html.twig b/core/themes/stable/templates/views/views-view-summary-unformatted.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d9ff9958b23cf15a7350e559482844ba771f1097 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-summary-unformatted.html.twig @@ -0,0 +1,31 @@ +{# +/** + * @file + * Theme override for unformatted summary links. + * + * Available variables: + * - rows: The rows contained in this view. + * - url: The URL to this row's content. + * - count: The number of items this summary item represents. + * - separator: A separator between each row. + * - attributes: HTML attributes for a row. + * - active: A flag indicating whether the row is active. + * - options: Flags indicating how each row should be displayed. This contains: + * - count: A flag indicating whether the row's 'count' should be displayed. + * - inline: A flag indicating whether the item should be wrapped in an inline + * or block level HTML element. + * + * @see template_preprocess_views_view_summary_unformatted() + */ +#} +{% for row in rows %} + {{ options.inline ? '<span' : '<div' }} > + {% if row.separator -%} + {{ row.separator }} + {%- endif %} + <a href="{{ row.url }}"{{ row.attributes.addClass(row.active ? 'is-active')|without('href') }}>{{ row.link }}</a> + {% if options.count %} + ({{ row.count }}) + {% endif %} + {{ options.inline ? '</span>' : '</div>' }} +{% endfor %} diff --git a/core/themes/stable/templates/views/views-view-summary.html.twig b/core/themes/stable/templates/views/views-view-summary.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d12ba23853e46f5acc1245f2244734fea05a2afd --- /dev/null +++ b/core/themes/stable/templates/views/views-view-summary.html.twig @@ -0,0 +1,29 @@ +{# +/** + * @file + * Theme override to display a list of summary lines. + * + * Available variables: + * - rows: The rows contained in this view. + * Each row contains: + * - url: The summary link URL. + * - link: The summary link text. + * - count: The number of items under this grouping. + * - attributes: HTML attributes to apply to each row. + * - active: A flag indicating whtether the row is active. + * - options: Flags indicating how the summary should be displayed. + * This contains: + * - count: A flag indicating whether the count should be displayed. + * + * @see template_preprocess_views_view_summary() + */ +#} +<ul> + {% for row in rows %} + <li><a href="{{ row.url }}"{{ row.attributes.addClass(row.active ? 'is-active')|without('href') }}>{{ row.link }}</a> + {% if options.count %} + ({{ row.count }}) + {% endif %} + </li> + {% endfor %} +</ul> diff --git a/core/themes/stable/templates/views/views-view-table.html.twig b/core/themes/stable/templates/views/views-view-table.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..6806eb5899380d91cb3a5c333a065610a10c3e50 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-table.html.twig @@ -0,0 +1,124 @@ +{# +/** + * @file + * Theme override for displaying a view as a table. + * + * Available variables: + * - attributes: Remaining HTML attributes for the element. + * - class: HTML classes that can be used to style contextually through CSS. + * - title : The title of this group of rows. + * - header: The table header columns. + * - attributes: Remaining HTML attributes for the element. + * - content: HTML classes to apply to each header cell, indexed by + * the header's key. + * - default_classes: A flag indicating whether default classes should be + * used. + * - caption_needed: Is the caption tag needed. + * - caption: The caption for this table. + * - accessibility_description: Extended description for the table details. + * - accessibility_summary: Summary for the table details. + * - rows: Table row items. Rows are keyed by row number. + * - attributes: HTML classes to apply to each row. + * - columns: Row column items. Columns are keyed by column number. + * - attributes: HTML classes to apply to each column. + * - content: The column content. + * - default_classes: A flag indicating whether default classes should be + * used. + * - responsive: A flag indicating whether table is responsive. + * - sticky: A flag indicating whether table header is sticky. + * + * @see template_preprocess_views_view_table() + */ +#} +{% + set classes = [ + 'cols-' ~ header|length, + responsive ? 'responsive-enabled', + sticky ? 'sticky-enabled', + ] +%} +<table{{ attributes.addClass(classes) }}> + {% if caption_needed %} + <caption> + {% if caption %} + {{ caption }} + {% else %} + {{ title }} + {% endif %} + {% if (summary is not empty) or (description is not empty) %} + <details> + {% if summary is not empty %} + <summary>{{ summary }}</summary> + {% endif %} + {% if description is not empty %} + {{ description }} + {% endif %} + </details> + {% endif %} + </caption> + {% endif %} + {% if header %} + <thead> + <tr> + {% for key, column in header %} + {% if column.default_classes %} + {% + set column_classes = [ + 'views-field', + 'views-field-' ~ fields[key], + ] + %} + {% endif %} + <th{{ column.attributes.addClass(column_classes).setAttribute('scope', 'col') }}> + {%- if column.wrapper_element -%} + <{{ column.wrapper_element }}> + {%- if column.url -%} + <a href="{{ column.url }}" title="{{ column.title }}">{{ column.content }}{{ column.sort_indicator }}</a> + {%- else -%} + {{ column.content }}{{ column.sort_indicator }} + {%- endif -%} + </{{ column.wrapper_element }}> + {%- else -%} + {%- if column.url -%} + <a href="{{ column.url }}" title="{{ column.title }}">{{ column.content }}{{ column.sort_indicator }}</a> + {%- else -%} + {{- column.content }}{{ column.sort_indicator }} + {%- endif -%} + {%- endif -%} + </th> + {% endfor %} + </tr> + </thead> + {% endif %} + <tbody> + {% for row in rows %} + <tr{{ row.attributes }}> + {% for key, column in row.columns %} + {% if column.default_classes %} + {% + set column_classes = [ + 'views-field' + ] + %} + {% for field in column.fields %} + {% set column_classes = column_classes|merge(['views-field-' ~ field]) %} + {% endfor %} + {% endif %} + <td{{ column.attributes.addClass(column_classes) }}> + {%- if column.wrapper_element -%} + <{{ column.wrapper_element }}> + {% for content in column.content %} + {{ content.separator }}{{ content.field_output }} + {% endfor %} + </{{ column.wrapper_element }}> + {%- else -%} + {% for content in column.content %} + {{- content.separator }}{{ content.field_output -}} + {% endfor %} + {%- endif %} + </td> + {% endfor %} + </tr> + {% endfor %} + </tbody> +</table> diff --git a/core/themes/stable/templates/views/views-view-unformatted.html.twig b/core/themes/stable/templates/views/views-view-unformatted.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..bece528c7a69ab9344b460cc66bb25bd2717e793 --- /dev/null +++ b/core/themes/stable/templates/views/views-view-unformatted.html.twig @@ -0,0 +1,30 @@ +{# +/** + * @file + * Theme override to display a view of unformatted rows. + * + * Available variables: + * - title: The title of this group of rows. May be empty. + * - rows: A list of the view's row items. + * - attributes: The row's HTML attributes. + * - content: The row's content. + * - view: The view object. + * - default_row_class: A flag indicating whether default classes should be + * used on rows. + * + * @see template_preprocess_views_view_unformatted() + */ +#} +{% if title %} + <h3>{{ title }}</h3> +{% endif %} +{% for row in rows %} + {% + set row_classes = [ + default_row_class ? 'views-row', + ] + %} + <div{{ row.attributes.addClass(row_classes) }}> + {{ row.content }} + </div> +{% endfor %} diff --git a/core/themes/stable/templates/views/views-view.html.twig b/core/themes/stable/templates/views/views-view.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..5d372d7a928fd658df1cffbac092b914d8d668a0 --- /dev/null +++ b/core/themes/stable/templates/views/views-view.html.twig @@ -0,0 +1,66 @@ +{# +/** + * @file + * Theme override for main view template. + * + * Available variables: + * - attributes: Remaining HTML attributes for the element. + * - css_name: A css-safe version of the view name. + * - css_class: The user-specified classes names, if any. + * - header: The optional header. + * - footer: The optional footer. + * - rows: The results of the view query, if any. + * - empty: The content to display if there are no rows. + * - pager: The optional pager next/prev links to display. + * - exposed: Exposed widget form/info to display. + * - feed_icons: Optional feed icons to display. + * - more: An optional link to the next page of results. + * - title: Title of the view, only used when displaying in the admin preview. + * - title_prefix: Additional output populated by modules, intended to be + * displayed in front of the view title. + * - title_suffix: Additional output populated by modules, intended to be + * displayed after the view title. + * - attachment_before: An optional attachment view to be displayed before the + * view content. + * - attachment_after: An optional attachment view to be displayed after the + * view content. + * - dom_id: Unique id for every view being printed to give unique class for + * Javascript. + * + * @see template_preprocess_views_view() + */ +#} +{% + set classes = [ + dom_id ? 'js-view-dom-id-' ~ dom_id, + ] +%} +<div{{ attributes.addClass(classes) }}> + {{ title_prefix }} + {{ title }} + {{ title_suffix }} + + {% if header %} + <header> + {{ header }} + </header> + {% endif %} + + {{ exposed }} + {{ attachment_before }} + + {{ rows }} + {{ empty }} + {{ pager }} + + {{ attachment_after }} + {{ more }} + + {% if footer %} + <footer> + {{ footer }} + </footer> + {% endif %} + + {{ feed_icons }} +</div>