Problem/Motivation
CivicTheme when used with uisuite has the following component validation error:
The website encountered an unexpected error. Try again later.
Drupal\Core\Render\Component\Exception\InvalidComponentException: [slots] NULL value found, but an object is required in Drupal\Core\Theme\Component\ComponentValidator->validateDefinition() (line 144 of core/lib/Drupal/Core/Theme/Component/ComponentValidator.php).
Drupal\Core\Theme\ComponentPluginManager->isValidDefinition(Array) (Line: 270)
Drupal\Core\Theme\ComponentPluginManager->Drupal\Core\Theme\{closure}(Array) (Line: 43)
Drupal\Component\Assertion\Inspector::assertAll(Object, Array) (Line: 269)
Drupal\Core\Theme\ComponentPluginManager->alterDefinitions(Array) (Line: 344)
Drupal\Core\Plugin\DefaultPluginManager->findDefinitions() (Line: 216)
Drupal\Core\Plugin\DefaultPluginManager->getDefinitions() (Line: 154)
Drupal\Core\Theme\ComponentPluginManager->getAllComponents() (Line: 487)
Drupal\Core\Asset\LibraryDiscoveryParser->librariesForComponents() (Line: 408)
Drupal\Core\Asset\LibraryDiscoveryParser->parseLibraryInfo('core', 'core') (Line: 153)
Drupal\Core\Asset\LibraryDiscoveryParser->buildByExtension('core') (Line: 87)
Drupal\Core\Asset\LibraryDiscoveryCollector->getLibraryDefinitions('core') (Line: 66)
Drupal\Core\Asset\LibraryDiscoveryCollector->resolveCacheMiss('core') (Line: 149)
Drupal\Core\Cache\CacheCollector->get('core') (Line: 166)
Drupal\Core\Asset\LibraryDiscoveryCollector->getLibrariesByExtension('core') (Line: 173)
Drupal\Core\Asset\LibraryDiscoveryCollector->getLibraryByName('core', 'jquery') (Line: 68)
Drupal\Core\Asset\LibraryDependencyResolver->doGetDependencies(Array, Array) (Line: 70)
Drupal\Core\Asset\LibraryDependencyResolver->doGetDependencies(Array) (Line: 41)
Drupal\Core\Asset\LibraryDependencyResolver->getLibrariesWithDependencies(Array) (Line: 132)
Drupal\Core\Asset\AssetResolver->getLibrariesToLoad(Object, 'css') (Line: 191)
Drupal\Core\Asset\AssetResolver->getCssAssets(Object, 1, Object) (Line: 288)
Drupal\Core\Render\HtmlResponseAttachmentsProcessor->processAssetLibraries(Object, Array) (Line: 132)
Drupal\Core\Render\HtmlResponseAttachmentsProcessor->processAttachments(Object) (Line: 97)
Drupal\big_pipe\Render\BigPipeResponseAttachmentsProcessor->processAttachments(Object) (Line: 45)
Drupal\Core\EventSubscriber\HtmlResponseSubscriber->onRespond(Object, 'kernel.response', Object) (Line: 246)
Symfony\Component\EventDispatcher\EventDispatcher::Symfony\Component\EventDispatcher\{closure}(Object, 'kernel.response', Object) (Line: 206)
Symfony\Component\EventDispatcher\EventDispatcher->callListeners(Array, 'kernel.response', Object) (Line: 56)
Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object, 'kernel.response') (Line: 216)
Symfony\Component\HttpKernel\HttpKernel->filterResponse(Object, Object, 1) (Line: 204)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 116)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 90)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 715)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
Component validation is failing on `breadcrumb` component (and potentially more).
We need to add JSON schema validation using Drupal's core validation to ensure `*.component.yml` is valid.
This should be added in `uikit` GitHub action to ensure it is linted when we are developing components.
Steps to reproduce
1. Enable UI Patterns module with Drupal CMS (drupal/ui_patterns (2.0.5))
2. Clear cache
3. Encounter error (assume validator is turned on by Drupal)
Proposed resolution
1. Implement SDC component validation tool (in addition to sdc_devel in uikit)
2. Make changes to component schema to pass this tool