diff --git a/app/code/Magento/Backend/etc/adminhtml/system.xml b/app/code/Magento/Backend/etc/adminhtml/system.xml index 614c5a507892140d30e0e691d5270bd09052d6f3..0f30c62e4a55f81b3ab802d60ec638f02b5a09a0 100644 --- a/app/code/Magento/Backend/etc/adminhtml/system.xml +++ b/app/code/Magento/Backend/etc/adminhtml/system.xml @@ -253,6 +253,10 @@ <label>European Union Countries</label> <source_model>Magento\Directory\Model\Config\Source\Country</source_model> </field> + <field id="destinations" translate="label" type="multiselect" sortOrder="40" showInDefault="1" showInWebsite="0" showInStore="0"> + <label>Top destinations</label> + <source_model>Magento\Directory\Model\Config\Source\Country</source_model> + </field> </group> <group id="locale" translate="label" type="text" sortOrder="8" showInDefault="1" showInWebsite="1" showInStore="1"> <label>Locale Options</label> diff --git a/app/code/Magento/Bundle/Block/Checkout/Cart/Item/Renderer.php b/app/code/Magento/Bundle/Block/Checkout/Cart/Item/Renderer.php index 9139bd45b3e11295f712093142bdacd27981d89f..5a23f62b959ef87ff65698c3011e2e1d7840344e 100644 --- a/app/code/Magento/Bundle/Block/Checkout/Cart/Item/Renderer.php +++ b/app/code/Magento/Bundle/Block/Checkout/Cart/Item/Renderer.php @@ -30,8 +30,8 @@ class Renderer extends \Magento\Checkout\Block\Cart\Item\Renderer * @param \Magento\Framework\Url\Helper\Data $urlHelper * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param PriceCurrencyInterface $priceCurrency - * @param Configuration $bundleProductConfiguration * @param \Magento\Framework\Module\Manager $moduleManager + * @param Configuration $bundleProductConfiguration * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ diff --git a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml index 9c84f6735136c63ec0d0d78449e0d52295e3a014..94ceb9f5440cc6de01d0a7a13863b41d8b753f71 100644 --- a/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Bundle/view/frontend/layout/checkout_cart_item_renderers.xml @@ -8,7 +8,12 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.cart.item.renderers"> - <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::cart/item/default.phtml"/> + <block class="Magento\Bundle\Block\Checkout\Cart\Item\Renderer" as="bundle" template="Magento_Checkout::cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.bundle.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.bundle.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.bundle.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> </referenceBlock> </body> </page> diff --git a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Select.php b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Select.php index 7da80121645d24a199e980a2df32a05aa918145c..cedd7b1f845981a902617fc90a8a4896bf5642c0 100644 --- a/app/code/Magento/Catalog/Block/Product/View/Options/Type/Select.php +++ b/app/code/Magento/Catalog/Block/Product/View/Options/Type/Select.php @@ -46,7 +46,7 @@ class Select extends \Magento\Catalog\Block\Product\View\Options\AbstractOptions if ($_option->getType() == \Magento\Catalog\Model\Product\Option::OPTION_TYPE_DROP_DOWN) { $select->setName('options[' . $_option->getid() . ']')->addOption('', __('-- Please Select --')); } else { - $select->setName('options[' . $_option->getid() . ']'); + $select->setName('options[' . $_option->getid() . '][]'); $select->setClass('multiselect admin__control-multiselect' . $require . ' product-custom-option'); } foreach ($_option->getValues() as $_value) { diff --git a/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml index d14cbd5b13e6e0dc0a2696e007a81e931d4d376e..8760461ac724838b80814aee5db7c635edaccf82 100644 --- a/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Catalog/view/frontend/layout/checkout_cart_item_renderers.xml @@ -8,7 +8,12 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.cart.item.renderers"> - <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="virtual" template="cart/item/default.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="virtual" template="cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.virtual.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.virtual.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.virtual.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> </referenceBlock> </body> </page> diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php index 7394a876366be2966e0ab7a98ca08b7fb0c20af2..0775d1866a45a30aeed2b94c0899757e2481bd06 100644 --- a/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php +++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer.php @@ -8,7 +8,9 @@ namespace Magento\Checkout\Block\Cart\Item; +use Magento\Checkout\Block\Cart\Item\Renderer\Actions; use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Framework\View\Element\AbstractBlock; use Magento\Quote\Model\Quote\Item; use Magento\Catalog\Pricing\Price\ConfiguredPriceInterface; @@ -120,10 +122,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Set item for render * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Item $item * @return $this */ - public function setItem(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function setItem(Item $item) { $this->_item = $item; return $this; @@ -316,19 +318,6 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage return $this->getProductOptions(); } - /** - * Get item configure url - * - * @return string - */ - public function getConfigureUrl() - { - return $this->getUrl( - 'checkout/cart/configure', - ['id' => $this->getItem()->getId(), 'product_id' => $this->getItem()->getProduct()->getId()] - ); - } - /** * Get quote item qty * @@ -432,7 +421,7 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Return product additional information block * - * @return \Magento\Framework\View\Element\AbstractBlock + * @return AbstractBlock */ public function getProductAdditionalInformationBlock() { @@ -529,10 +518,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Return the unit price html * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Item $item * @return string */ - public function getUnitPriceHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getUnitPriceHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.item.price.unit'); @@ -543,10 +532,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Return row total html * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Item $item * @return string */ - public function getRowTotalHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getRowTotalHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.item.price.row'); @@ -557,10 +546,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Return item price html for sidebar * - * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item + * @param Item $item * @return string */ - public function getSidebarItemPriceHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getSidebarItemPriceHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.cart.item.price.sidebar'); @@ -571,10 +560,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Get unit price excluding tax html * - * @param Item\AbstractItem $item + * @param Item $item * @return string */ - public function getUnitPriceExclTaxHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getUnitPriceExclTaxHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.onepage.review.item.price.unit.excl'); @@ -585,10 +574,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Get unit price including tax html * - * @param Item\AbstractItem $item + * @param Item $item * @return string */ - public function getUnitPriceInclTaxHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getUnitPriceInclTaxHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.onepage.review.item.price.unit.incl'); @@ -599,10 +588,10 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Get row total excluding tax html * - * @param Item\AbstractItem $item + * @param Item $item * @return string */ - public function getRowTotalExclTaxHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getRowTotalExclTaxHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.onepage.review.item.price.rowtotal.excl'); @@ -613,14 +602,32 @@ class Renderer extends \Magento\Framework\View\Element\Template implements \Mage /** * Get row total including tax html * - * @param Item\AbstractItem $item + * @param Item $item * @return string */ - public function getRowTotalInclTaxHtml(\Magento\Quote\Model\Quote\Item\AbstractItem $item) + public function getRowTotalInclTaxHtml(Item $item) { /** @var Renderer $block */ $block = $this->getLayout()->getBlock('checkout.onepage.review.item.price.rowtotal.incl'); $block->setItem($item); return $block->toHtml(); } + + /** + * Get row total including tax html + * + * @param Item $item + * @return string + */ + public function getActions(Item $item) + { + /** @var Actions $block */ + $block = $this->getChildBlock('actions'); + if ($block instanceof Actions) { + $block->setItem($item); + return $block->toHtml(); + } else { + return ''; + } + } } diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions.php new file mode 100644 index 0000000000000000000000000000000000000000..e3d27d82677a2e7a925f5211b2563462cf69f5a4 --- /dev/null +++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions.php @@ -0,0 +1,62 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Block\Cart\Item\Renderer; + +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic; +use Magento\Framework\View\Element\Text; +use Magento\Quote\Model\Quote\Item; + +class Actions extends Text +{ + /** + * @var Item + */ + protected $item; + + /** + * Returns current quote item + * + * @return Item + */ + public function getItem() + { + return $this->item; + } + + /** + * Set current quote item + * + * @param Item $item + * @return $this + */ + public function setItem(Item $item) + { + $this->item = $item; + return $this; + } + + /** + * Render html output + * + * @return string + */ + protected function _toHtml() + { + $this->setText(''); + + $layout = $this->getLayout(); + foreach ($this->getChildNames() as $child) { + /** @var Generic $childBlock */ + $childBlock = $layout->getBlock($child); + if ($childBlock instanceof Generic) { + $childBlock->setItem($this->getItem()); + $this->addText($layout->renderElement($child, false)); + } + } + + return parent::_toHtml(); + } +} diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Edit.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Edit.php new file mode 100644 index 0000000000000000000000000000000000000000..39cd103a9ee82c191dfb93b696a8df07251925f3 --- /dev/null +++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Edit.php @@ -0,0 +1,25 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Block\Cart\Item\Renderer\Actions; + +class Edit extends Generic +{ + /** + * Get item configure url + * + * @return string + */ + public function getConfigureUrl() + { + return $this->getUrl( + 'checkout/cart/configure', + [ + 'id' => $this->getItem()->getId(), + 'product_id' => $this->getItem()->getProduct()->getId() + ] + ); + } +} diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Generic.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Generic.php new file mode 100644 index 0000000000000000000000000000000000000000..6ce4f2eb87a700f63b29e6b21c228559a3a782b2 --- /dev/null +++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Generic.php @@ -0,0 +1,59 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Block\Cart\Item\Renderer\Actions; + +use Magento\Framework\View\Element\Template; +use Magento\Quote\Model\Quote\Item; + +class Generic extends Template +{ + /** + * @var Item + */ + protected $item; + + /** + * Returns current quote item + * + * @return Item + */ + public function getItem() + { + return $this->item; + } + + /** + * Set current quote item + * + * @param Item $item + * @return $this + */ + public function setItem(Item $item) + { + $this->item = $item; + return $this; + } + + /** + * Check if product is visible in site visibility + * + * @return bool + */ + public function isProductVisibleInSiteVisibility() + { + return $this->getItem()->getProduct()->isVisibleInSiteVisibility(); + } + + /** + * Check if cart item is virtual + * + * @return bool + */ + public function isVirtual() + { + return (bool)$this->getItem()->getIsVirtual(); + } +} diff --git a/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Remove.php b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Remove.php new file mode 100644 index 0000000000000000000000000000000000000000..066afb6a0822335c35069b35d227fa36ae86f19b --- /dev/null +++ b/app/code/Magento/Checkout/Block/Cart/Item/Renderer/Actions/Remove.php @@ -0,0 +1,41 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Block\Cart\Item\Renderer\Actions; + +use Magento\Checkout\Helper\Cart; +use Magento\Framework\View\Element\Template; + +class Remove extends Generic +{ + /** + * @var Cart + */ + protected $cartHelper; + + /** + * @param Template\Context $context + * @param Cart $cartHelper + * @param array $data + */ + public function __construct( + Template\Context $context, + Cart $cartHelper, + array $data = [] + ) { + $this->cartHelper = $cartHelper; + parent::__construct($context, $data); + } + + /** + * Get delete item POST JSON + * + * @return string + */ + public function getDeletePostJson() + { + return $this->cartHelper->getDeletePostJson($this->getItem()); + } +} diff --git a/app/code/Magento/Checkout/Block/Cart/Shipping.php b/app/code/Magento/Checkout/Block/Cart/Shipping.php index 8cf93dd33eaa66b2e65598029299152b508dc991..fd79502fbcb0d30195e19be88f619b2f7491c56c 100644 --- a/app/code/Magento/Checkout/Block/Cart/Shipping.php +++ b/app/code/Magento/Checkout/Block/Cart/Shipping.php @@ -5,8 +5,16 @@ */ namespace Magento\Checkout\Block\Cart; +use Magento\Customer\Api\AddressRepositoryInterface; +use Magento\Customer\Api\CustomerRepositoryInterface; use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Quote\Api\Data\EstimateAddressInterfaceFactory; +use Magento\Quote\Api\ShippingMethodManagementInterface; +use Magento\Quote\Model\QuoteRepository; +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class Shipping extends \Magento\Checkout\Block\Cart\AbstractCart { /** @@ -43,6 +51,31 @@ class Shipping extends \Magento\Checkout\Block\Cart\AbstractCart */ protected $priceCurrency; + /** + * @var EstimateAddressInterfaceFactory + */ + protected $estimatedAddressFactory; + + /** + * @var ShippingMethodManagementInterface + */ + protected $shippingMethodManager; + + /** + * @var AddressRepositoryInterface + */ + protected $addressRepository; + + /** + * @var CustomerRepositoryInterface + */ + protected $customerRepository; + + /** + * @var QuoteRepository + */ + protected $quoteRepository; + /** * @param \Magento\Framework\View\Element\Template\Context $context * @param \Magento\Customer\Model\Session $customerSession @@ -50,7 +83,13 @@ class Shipping extends \Magento\Checkout\Block\Cart\AbstractCart * @param \Magento\Directory\Block\Data $directoryBlock * @param \Magento\Shipping\Model\CarrierFactoryInterface $carrierFactory * @param PriceCurrencyInterface $priceCurrency + * @param EstimateAddressInterfaceFactory $estimatedAddressFactory + * @param ShippingMethodManagementInterface $shippingMethodManager + * @param AddressRepositoryInterface $addressRepository + * @param CustomerRepositoryInterface $customerRepository + * @param QuoteRepository $quoteRepository * @param array $data + * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( \Magento\Framework\View\Element\Template\Context $context, @@ -59,11 +98,21 @@ class Shipping extends \Magento\Checkout\Block\Cart\AbstractCart \Magento\Directory\Block\Data $directoryBlock, \Magento\Shipping\Model\CarrierFactoryInterface $carrierFactory, PriceCurrencyInterface $priceCurrency, + EstimateAddressInterfaceFactory $estimatedAddressFactory, + ShippingMethodManagementInterface $shippingMethodManager, + AddressRepositoryInterface $addressRepository, + CustomerRepositoryInterface $customerRepository, + QuoteRepository $quoteRepository, array $data = [] ) { $this->priceCurrency = $priceCurrency; $this->_directoryBlock = $directoryBlock; $this->_carrierFactory = $carrierFactory; + $this->estimatedAddressFactory = $estimatedAddressFactory; + $this->shippingMethodManager = $shippingMethodManager; + $this->addressRepository = $addressRepository; + $this->customerRepository = $customerRepository; + $this->quoteRepository = $quoteRepository; parent::__construct($context, $customerSession, $checkoutSession, $data); $this->_isScopePrivate = true; } @@ -309,4 +358,39 @@ class Shipping extends \Magento\Checkout\Block\Cart\AbstractCart $block->setShippingRate($shippingRate); return $block->toHtml(); } + + /** + * {@inheritDoc} + */ + protected function _beforeToHtml() + { + if ($this->_customerSession->isLoggedIn()) { + $customer = $this->customerRepository->getById($this->_customerSession->getCustomerId()); + if ($defaultShipping = $customer->getDefaultShipping()) { + $address = $this->addressRepository->getById($defaultShipping); + if ($address) { + /** @var \Magento\Quote\Api\Data\EstimateAddressInterface $estimatedAddress */ + $estimatedAddress = $this->estimatedAddressFactory->create(); + $estimatedAddress->setCountryId($address->getCountryId()); + $estimatedAddress->setPostcode($address->getPostcode()); + $estimatedAddress->setRegion((string)$address->getRegion()->getRegion()); + $estimatedAddress->setRegionId($address->getRegionId()); + $this->shippingMethodManager->estimateByAddress($this->getQuote()->getId(), $estimatedAddress); + $this->quoteRepository->save($this->getQuote()); + } + } + } + return parent::_beforeToHtml(); + } + + /** + * Check if multiple countries for shipping is allowed + * + * @return bool + */ + public function isMultipleCountriesAllowed() + { + $collection = $this->_directoryBlock->getCountryCollection(); + return $collection->count() > 1 ? true : false; + } } diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/EditTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/EditTest.php new file mode 100644 index 0000000000000000000000000000000000000000..122e8c85909b95a459b6578567d17922681fa113 --- /dev/null +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/EditTest.php @@ -0,0 +1,77 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Test\Unit\Block\Cart\Item\Renderer\Actions; + +use Magento\Catalog\Model\Product; +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit; +use Magento\Quote\Model\Quote\Item; + +class EditTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Edit + */ + protected $model; + + /** @var \Magento\Framework\UrlInterface|\PHPUnit_Framework_MockObject_MockObject */ + protected $urlBuilderMock; + + protected function setUp() + { + $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->urlBuilderMock = $this->getMockBuilder('Magento\Framework\UrlInterface') + ->disableOriginalConstructor() + ->getMock(); + + $this->model = $objectManagerHelper->getObject( + 'Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit', + [ + 'urlBuilder' => $this->urlBuilderMock, + ] + ); + } + + public function testGetConfigureUrl() + { + $itemId = 45; + $productId = 12; + $configureUrl = 'configure url'; + + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + /** + * @var Product|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $productMock = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getProduct') + ->willReturn($productMock); + $itemMock->expects($this->once()) + ->method('getId') + ->willReturn($itemId); + + $productMock->expects($this->once()) + ->method('getId') + ->willReturn($productId); + + $this->urlBuilderMock->expects($this->once()) + ->method('getUrl') + ->with('checkout/cart/configure', ['id' => $itemId, 'product_id' => $productId]) + ->willReturn($configureUrl); + + $this->model->setItem($itemMock); + $this->assertEquals($configureUrl, $this->model->getConfigureUrl()); + } +} diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/GenericTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/GenericTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d6c6f0824c67b3b50c1fd7aaa88e2c224e3f61c5 --- /dev/null +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/GenericTest.php @@ -0,0 +1,87 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Test\Unit\Block\Cart\Item\Renderer\Actions; + +use Magento\Catalog\Model\Product; +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic; +use Magento\Quote\Model\Quote\Item; + +class GenericTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Generic + */ + protected $model; + + protected function setUp() + { + $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->model = $objectManagerHelper->getObject( + 'Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic', + [] + ); + } + + public function testGetItem() + { + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $this->assertEquals($this->model, $this->model->setItem($itemMock)); + $this->assertEquals($itemMock, $this->model->getItem()); + } + + public function testIsProductVisibleInSiteVisibility() + { + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + /** + * @var Product|\PHPUnit_Framework_MockObject_MockObject $productMock + */ + $productMock = $this->getMockBuilder('Magento\Catalog\Model\Product') + ->disableOriginalConstructor() + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getProduct') + ->willReturn($productMock); + + $productMock->expects($this->once()) + ->method('isVisibleInSiteVisibility') + ->willReturn(true); + + $this->assertEquals($this->model, $this->model->setItem($itemMock)); + $this->assertTrue($this->model->isProductVisibleInSiteVisibility()); + } + + public function testIsVirtual() + { + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->setMethods(['getIsVirtual']) + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getIsVirtual') + ->willReturn(true); + + $this->assertEquals($this->model, $this->model->setItem($itemMock)); + $this->assertTrue($this->model->isVirtual()); + } +} diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/RemoveTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/RemoveTest.php new file mode 100644 index 0000000000000000000000000000000000000000..d2ebb0637ea9df67ed0d6846f48694b8b1ac9faf --- /dev/null +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/Actions/RemoveTest.php @@ -0,0 +1,57 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Test\Unit\Block\Cart\Item\Renderer\Actions; + +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove; +use Magento\Checkout\Helper\Cart; +use Magento\Quote\Model\Quote\Item; + +class RemoveTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Remove + */ + protected $model; + + /** @var Cart|\PHPUnit_Framework_MockObject_MockObject */ + protected $cartHelperMock; + + protected function setUp() + { + $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->cartHelperMock = $this->getMockBuilder('Magento\Checkout\Helper\Cart') + ->disableOriginalConstructor() + ->getMock(); + + $this->model = $objectManagerHelper->getObject( + 'Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove', + [ + 'cartHelper' => $this->cartHelperMock, + ] + ); + } + + public function testGetConfigureUrl() + { + $json = '{json;}'; + + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $this->cartHelperMock->expects($this->once()) + ->method('getDeletePostJson') + ->with($itemMock) + ->willReturn($json); + + $this->model->setItem($itemMock); + $this->assertEquals($json, $this->model->getDeletePostJson()); + } +} diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/ActionsTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/ActionsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..514648f0a8c6037acac41ffcd9b0519449fe376f --- /dev/null +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/Renderer/ActionsTest.php @@ -0,0 +1,110 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Checkout\Test\Unit\Block\Cart\Item\Renderer; + +use Magento\Checkout\Block\Cart\Item\Renderer\Actions; +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic; +use Magento\Quote\Model\Quote\Item; + +class ActionsTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var Actions + */ + protected $model; + + /** + * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $scopeConfigMock; + + /** + * @var \Magento\Framework\View\LayoutInterface|\PHPUnit_Framework_MockObject_MockObject + */ + protected $layoutMock; + + protected function setUp() + { + $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->scopeConfigMock = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->getMockForAbstractClass(); + + $this->layoutMock = $this->getMockBuilder('Magento\Framework\View\LayoutInterface') + ->getMockForAbstractClass(); + + $this->model = $objectManagerHelper->getObject( + 'Magento\Checkout\Block\Cart\Item\Renderer\Actions', + [ + 'scopeConfig' => $this->scopeConfigMock, + 'layout' => $this->layoutMock, + ] + ); + } + + public function testGetItem() + { + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $this->assertEquals($this->model, $this->model->setItem($itemMock)); + $this->assertEquals($itemMock, $this->model->getItem()); + } + + public function testToHtml() + { + $childNameOne = 'child.1'; + $childNameTextOne = 'child.1 text'; + $childNameTwo = 'child.2'; + $childNames = [$childNameOne, $childNameTwo]; + + $this->scopeConfigMock->expects($this->once()) + ->method('getValue') + ->willReturn(false); + + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + $this->model->setItem($itemMock); + + $this->layoutMock->expects($this->once()) + ->method('getChildNames') + ->with($this->model->getNameInLayout()) + ->willReturn($childNames); + + /** @var Generic|\PHPUnit_Framework_MockObject_MockObject $childMockOne */ + $childMockOne = $this->getMockBuilder('Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic') + ->disableOriginalConstructor() + ->getMock(); + $childMockOne->expects($this->once()) + ->method('setItem') + ->with($itemMock); + + $childMockTwo = false; + + $this->layoutMock->expects($this->once()) + ->method('renderElement') + ->with($childNameOne, false) + ->willReturn($childNameTextOne); + $this->layoutMock->expects($this->exactly(2)) + ->method('getBlock') + ->willReturnMap( + [ + [$childNameOne, $childMockOne], + [$childNameTwo, $childMockTwo], + ] + ); + + $this->assertEquals($childNameTextOne, $this->model->toHtml()); + } +} diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/RendererTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/RendererTest.php index 575eebc4188964d8eb8365f41068006d263e5e6f..0796e0f6363fc2448164178f869b27cb7bc2f6c9 100644 --- a/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/RendererTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/Item/RendererTest.php @@ -5,7 +5,8 @@ */ namespace Magento\Checkout\Test\Unit\Block\Cart\Item; -use \Magento\Checkout\Block\Cart\Item\Renderer; +use Magento\Checkout\Block\Cart\Item\Renderer; +use Magento\Quote\Model\Quote\Item; class RendererTest extends \PHPUnit_Framework_TestCase { @@ -42,7 +43,7 @@ class RendererTest extends \PHPUnit_Framework_TestCase 'Magento\Checkout\Block\Cart\Item\Renderer', [ 'imageHelper' => $this->_imageHelper, - 'context' => $context + 'context' => $context, ] ); } @@ -89,7 +90,7 @@ class RendererTest extends \PHPUnit_Framework_TestCase ); $product->expects($this->any())->method('getName')->will($this->returnValue('Parent Product')); - /** @var \Magento\Quote\Model\Quote\Item|\PHPUnit_Framework_MockObject_MockObject $item */ + /** @var Item|\PHPUnit_Framework_MockObject_MockObject $item */ $item = $this->getMock('Magento\Quote\Model\Quote\Item', [], [], '', false); $item->expects($this->any())->method('getProduct')->will($this->returnValue($product)); @@ -147,4 +148,59 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->assertEquals($priceHtml, $this->_renderer->getProductPriceHtml($product)); } + + public function testGetActions() + { + $blockNameInLayout = 'block.name'; + $blockHtml = 'block html'; + + /** + * @var \Magento\Checkout\Block\Cart\Item\Renderer\Actions|\PHPUnit_Framework_MockObject_MockObject $blockMock + */ + $blockMock = $this->getMockBuilder('Magento\Checkout\Block\Cart\Item\Renderer\Actions') + ->disableOriginalConstructor() + ->getMock(); + + $this->layout->expects($this->once()) + ->method('getChildName') + ->with($this->_renderer->getNameInLayout(), 'actions') + ->willReturn($blockNameInLayout); + $this->layout->expects($this->once()) + ->method('getBlock') + ->with($blockNameInLayout) + ->willReturn($blockMock); + + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $blockMock->expects($this->once()) + ->method('setItem') + ->with($itemMock); + $blockMock->expects($this->once()) + ->method('toHtml') + ->willReturn($blockHtml); + + $this->assertEquals($blockHtml, $this->_renderer->getActions($itemMock)); + } + + public function testGetActionsWithNoBlock() + { + $this->layout->expects($this->once()) + ->method('getChildName') + ->with($this->_renderer->getNameInLayout(), 'actions') + ->willReturn(false); + + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $this->assertEquals('', $this->_renderer->getActions($itemMock)); + } } diff --git a/app/code/Magento/Checkout/Test/Unit/Block/Cart/ShippingTest.php b/app/code/Magento/Checkout/Test/Unit/Block/Cart/ShippingTest.php index fcb3e58c804dc897df014041384246218b4c2703..13fbfbc990be11852eef14ff41ee0bcbcc708484 100644 --- a/app/code/Magento/Checkout/Test/Unit/Block/Cart/ShippingTest.php +++ b/app/code/Magento/Checkout/Test/Unit/Block/Cart/ShippingTest.php @@ -5,16 +5,217 @@ */ namespace Magento\Checkout\Test\Unit\Block\Cart; +use Magento\Checkout\Block\Cart\Shipping; +use Magento\Checkout\Model\Session as CheckoutSession; +use Magento\Customer\Api\AddressRepositoryInterface; +use Magento\Customer\Api\CustomerRepositoryInterface; +use Magento\Customer\Api\Data\AddressInterface; +use Magento\Customer\Model\Session as CustomerSession; +use Magento\Directory\Block\Data as DirectoryData; +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\Event\ManagerInterface as EventManager; +use Magento\Framework\Pricing\PriceCurrencyInterface; +use Magento\Framework\View\Element\Template\Context; +use Magento\Framework\View\Layout; +use Magento\Quote\Api\Data\EstimateAddressInterface; +use Magento\Quote\Api\Data\EstimateAddressInterfaceFactory; +use Magento\Quote\Api\ShippingMethodManagementInterface; +use Magento\Quote\Model\Quote; +use Magento\Quote\Model\QuoteRepository; +use Magento\Shipping\Model\CarrierFactoryInterface; +use Magento\Store\Model\ScopeInterface; + +/** + * @SuppressWarnings(PHPMD.TooManyFields) + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ class ShippingTest extends \PHPUnit_Framework_TestCase { - /** @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager */ - protected $objectManager; + /** @var Shipping */ + protected $model; + + /** @var Context |\PHPUnit_Framework_MockObject_MockObject */ + protected $context; + + /** @var CustomerSession |\PHPUnit_Framework_MockObject_MockObject */ + protected $customerSession; + + /** @var CheckoutSession |\PHPUnit_Framework_MockObject_MockObject */ + protected $checkoutSession; + + /** @var DirectoryData |\PHPUnit_Framework_MockObject_MockObject */ + protected $directoryData; + + /** @var CarrierFactoryInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $carrierFactory; + + /** @var PriceCurrencyInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $priceCurrency; + + /** @var EstimateAddressInterfaceFactory |\PHPUnit_Framework_MockObject_MockObject */ + protected $estimatedAddressFactory; + + /** @var ShippingMethodManagementInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $shippingMethodManager; + + /** @var AddressRepositoryInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $addressReporitory; + + /** @var CustomerRepositoryInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $customerRepository; + + /** @var QuoteRepository |\PHPUnit_Framework_MockObject_MockObject */ + protected $quoteRepository; - protected $shippingBlock; + /** @var Layout |\PHPUnit_Framework_MockObject_MockObject */ + protected $layout; + + /** @var EventManager |\PHPUnit_Framework_MockObject_MockObject */ + protected $eventManager; + + /** @var ScopeConfigInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $scopeConfig; + + /** @var EstimateAddressInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $estimatedAddress; + + /** @var AddressInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $address; + + /** @var Quote |\PHPUnit_Framework_MockObject_MockObject */ + protected $quote; protected function setUp() { - $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + $this->prepareContext(); + + $this->customerSession = $this->getMockBuilder('Magento\Customer\Model\Session') + ->disableOriginalConstructor() + ->getMock(); + + $this->checkoutSession = $this->getMockBuilder('Magento\Checkout\Model\Session') + ->disableOriginalConstructor() + ->getMock(); + + $this->directoryData = $this->getMockBuilder('Magento\Directory\Block\Data') + ->disableOriginalConstructor() + ->getMock(); + + $this->carrierFactory = $this->getMockBuilder('Magento\Shipping\Model\CarrierFactoryInterface') + ->getMockForAbstractClass(); + + $this->priceCurrency = $this->getMockBuilder('Magento\Framework\Pricing\PriceCurrencyInterface') + ->getMockForAbstractClass(); + + $this->prepareEstimatedAddress(); + + $this->shippingMethodManager = $this->getMockBuilder('Magento\Quote\Api\ShippingMethodManagementInterface') + ->getMockForAbstractClass(); + + $this->prepareAddressRepository(); + + $this->customerRepository = $this->getMockBuilder('Magento\Customer\Api\CustomerRepositoryInterface') + ->getMockForAbstractClass(); + + $this->prepareQuoteRepository(); + + $this->model = new Shipping( + $this->context, + $this->customerSession, + $this->checkoutSession, + $this->directoryData, + $this->carrierFactory, + $this->priceCurrency, + $this->estimatedAddressFactory, + $this->shippingMethodManager, + $this->addressReporitory, + $this->customerRepository, + $this->quoteRepository + ); + } + + protected function prepareContext() + { + $this->layout = $this->getMockBuilder('Magento\Framework\View\Layout') + ->disableOriginalConstructor() + ->getMock(); + + $this->eventManager = $this->getMockBuilder('Magento\Framework\Event\ManagerInterface') + ->setMethods([ + 'dispatch', + ]) + ->getMockForAbstractClass(); + + $this->scopeConfig = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->setMethods([ + 'getValue', + ]) + ->getMockForAbstractClass(); + + $this->context = $this->getMockBuilder('Magento\Framework\View\Element\Template\Context') + ->disableOriginalConstructor() + ->getMock(); + + $this->context->expects($this->once()) + ->method('getLayout') + ->will($this->returnValue($this->layout)); + + $this->context->expects($this->once()) + ->method('getEventManager') + ->will($this->returnValue($this->eventManager)); + + $this->context->expects($this->once()) + ->method('getScopeConfig') + ->will($this->returnValue($this->scopeConfig)); + } + + protected function prepareEstimatedAddress() + { + $this->estimatedAddress = $this->getMockBuilder('Magento\Quote\Api\Data\EstimateAddressInterface') + ->setMethods([ + 'setCountryId', + 'setPostcode', + 'setRegion', + 'setRegionId', + ]) + ->getMockForAbstractClass(); + + $this->estimatedAddressFactory = $this->getMockBuilder('Magento\Quote\Api\Data\EstimateAddressInterfaceFactory') + ->disableOriginalConstructor() + ->setMethods([ + 'create', + ]) + ->getMock(); + + $this->estimatedAddressFactory->expects($this->any()) + ->method('create') + ->willReturn($this->estimatedAddress); + } + + protected function prepareAddressRepository() + { + $this->address = $this->getMockBuilder('Magento\Customer\Api\Data\AddressInterface') + ->setMethods([ + 'getCountryId', + 'getPostcode', + 'getRegion', + 'getRegionId', + ]) + ->getMockForAbstractClass(); + + $this->addressReporitory = $this->getMockBuilder('Magento\Customer\Api\AddressRepositoryInterface') + ->getMockForAbstractClass(); + } + + protected function prepareQuoteRepository() + { + $this->quoteRepository = $this->getMockBuilder('Magento\Quote\Model\QuoteRepository') + ->disableOriginalConstructor() + ->getMock(); + + $this->quote = $this->getMockBuilder('Magento\Quote\Model\Quote') + ->disableOriginalConstructor() + ->getMock(); } public function testGetShippingPriceHtml() @@ -38,30 +239,234 @@ class ShippingTest extends \PHPUnit_Framework_TestCase ->method('toHtml') ->will($this->returnValue($shippingPriceHtml)); - $layoutMock = $this->getMockBuilder('\Magento\Framework\View\Layout') - ->disableOriginalConstructor() - ->getMock(); - - $layoutMock->expects($this->once()) + $this->layout->expects($this->once()) ->method('getBlock') ->with('checkout.shipping.price') ->will($this->returnValue($priceBlockMock)); - $contextMock = $this->getMockBuilder('\Magento\Framework\View\Element\Template\Context') + $this->assertEquals($shippingPriceHtml, $this->model->getShippingPriceHtml($shippingRateMock)); + } + + public function testBeforeToHtmlCustomerNotLoggedIn() + { + $this->eventManager->expects($this->once()) + ->method('dispatch') + ->with('view_block_abstract_to_html_before', ['block' => $this->model]) + ->willReturnSelf(); + + $this->scopeConfig->expects($this->once()) + ->method('getValue') + ->with('advanced/modules_disable_output/Magento_Checkout', ScopeInterface::SCOPE_STORE) + ->willReturn(false); + + $this->customerSession->expects($this->once()) + ->method('isLoggedIn') + ->willReturn(false); + + $this->assertEquals('', $this->model->toHtml()); + } + + public function testBeforeToHtmlNoDefaultShippingAddress() + { + $customerId = 1; + $defaultShipping = 0; + + $this->eventManager->expects($this->once()) + ->method('dispatch') + ->with('view_block_abstract_to_html_before', ['block' => $this->model]) + ->willReturnSelf(); + + $this->scopeConfig->expects($this->once()) + ->method('getValue') + ->with('advanced/modules_disable_output/Magento_Checkout', ScopeInterface::SCOPE_STORE) + ->willReturn(false); + + $this->customerSession->expects($this->once()) + ->method('isLoggedIn') + ->willReturn(true); + $this->customerSession->expects($this->once()) + ->method('getCustomerId') + ->willReturn($customerId); + + $customerData = $this->getMockBuilder('Magento\Customer\Api\Data\CustomerInterface') + ->setMethods([ + 'getDefaultShipping', + ]) + ->getMockForAbstractClass(); + $customerData->expects($this->once()) + ->method('getDefaultShipping') + ->willReturn($defaultShipping); + + $this->customerRepository->expects($this->once()) + ->method('getById') + ->with($customerId) + ->willReturn($customerData); + + $this->assertEquals('', $this->model->toHtml()); + } + + /** + * @param int $customerId + * @param int $defaultShipping + * @param int $countryId + * @param string $postcode + * @param string $region + * @param int $regionId + * @param int $quoteId + * @dataProvider dataProviderBeforeToHtml + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + */ + public function testBeforeToHtml( + $customerId, + $defaultShipping, + $countryId, + $postcode, + $region, + $regionId, + $quoteId + ) { + $this->eventManager->expects($this->once()) + ->method('dispatch') + ->with('view_block_abstract_to_html_before', ['block' => $this->model]) + ->willReturnSelf(); + + $this->scopeConfig->expects($this->once()) + ->method('getValue') + ->with('advanced/modules_disable_output/Magento_Checkout', ScopeInterface::SCOPE_STORE) + ->willReturn(false); + + $this->customerSession->expects($this->once()) + ->method('isLoggedIn') + ->willReturn(true); + $this->customerSession->expects($this->once()) + ->method('getCustomerId') + ->willReturn($customerId); + + $customerDataMock = $this->getMockBuilder('Magento\Customer\Api\Data\CustomerInterface') + ->setMethods([ + 'getDefaultShipping', + ]) + ->getMockForAbstractClass(); + $customerDataMock->expects($this->once()) + ->method('getDefaultShipping') + ->willReturn($defaultShipping); + + $this->customerRepository->expects($this->once()) + ->method('getById') + ->with($customerId) + ->willReturn($customerDataMock); + + $this->addressReporitory->expects($this->once()) + ->method('getById') + ->with($defaultShipping) + ->willReturn($this->address); + + $regionMock = $this->getMockBuilder('Magento\Customer\Api\Data\RegionInterface') + ->setMethods([ + 'getRegion', + ]) + ->getMockForAbstractClass(); + $regionMock->expects($this->once()) + ->method('getRegion') + ->willReturn($region); + + $this->address->expects($this->once()) + ->method('getCountryId') + ->willReturn($countryId); + $this->address->expects($this->once()) + ->method('getPostcode') + ->willReturn($postcode); + $this->address->expects($this->once()) + ->method('getRegion') + ->willReturn($regionMock); + $this->address->expects($this->once()) + ->method('getRegionId') + ->willReturn($regionId); + + $this->estimatedAddress->expects($this->once()) + ->method('setCountryId') + ->with($countryId) + ->willReturnSelf(); + $this->estimatedAddress->expects($this->once()) + ->method('setPostcode') + ->with($postcode) + ->willReturnSelf(); + $this->estimatedAddress->expects($this->once()) + ->method('setRegion') + ->with($region) + ->willReturnSelf(); + $this->estimatedAddress->expects($this->once()) + ->method('setRegionId') + ->with($regionId) + ->willReturnSelf(); + + $this->checkoutSession->expects($this->once()) + ->method('getQuote') + ->willReturn($this->quote); + + $this->quote->expects($this->once()) + ->method('getId') + ->willReturn($quoteId); + + $this->shippingMethodManager->expects($this->once()) + ->method('estimateByAddress') + ->with($quoteId, $this->estimatedAddress) + ->willReturnSelf(); + + $this->quoteRepository->expects($this->once()) + ->method('save') + ->with($this->quote) + ->willReturnSelf(); + + $this->assertEquals('', $this->model->toHtml()); + } + + /** + * @return array + */ + public function dataProviderBeforeToHtml() + { + return [ + [1, 1, 1, '12345', '', 1, 1], + [1, 1, 1, '12345', '', 0, 1], + [1, 1, 1, '', '', 0, 1], + [1, 1, 1, '12345', 'California', 0, 1], + [1, 1, 1, '12345', 'California', 1, 1], + ]; + } + + /** + * @param int $count + * @param bool $expectedResult + * @dataProvider dataProviderIsMultipleCountriesAllowed + */ + public function testIsMultipleCountriesAllowed( + $count, + $expectedResult + ) { + $collection = $this->getMockBuilder('Magento\Directory\Model\Resource\Country\Collection') ->disableOriginalConstructor() - ->setMethods(['getLayout']) ->getMock(); + $collection->expects($this->once()) + ->method('count') + ->willReturn($count); - $contextMock->expects($this->once()) - ->method('getLayout') - ->will($this->returnValue($layoutMock)); + $this->directoryData->expects($this->once()) + ->method('getCountryCollection') + ->willReturn($collection); - /** @var \Magento\Checkout\Block\Cart\Shipping $shippingBlock */ - $shippingBlock = $this->objectManager->getObject( - 'Magento\Checkout\Block\Cart\Shipping', - ['context' => $contextMock] - ); + $this->assertEquals($expectedResult, $this->model->isMultipleCountriesAllowed()); + } - $this->assertEquals($shippingPriceHtml, $shippingBlock->getShippingPriceHtml($shippingRateMock)); + /** + * @return array + */ + public function dataProviderIsMultipleCountriesAllowed() + { + return [ + [0, false], + [1, false], + [2, true], + ]; } } diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json index 7aac4e4eeb32402cdcf6a15b14a9a2488203b5a7..572909061f99a33ba2f588192618604966ddcdf2 100644 --- a/app/code/Magento/Checkout/composer.json +++ b/app/code/Magento/Checkout/composer.json @@ -15,7 +15,6 @@ "magento/module-directory": "0.74.0-beta14", "magento/module-eav": "0.74.0-beta14", "magento/module-gift-message": "0.74.0-beta14", - "magento/module-wishlist": "0.74.0-beta14", "magento/module-page-cache": "0.74.0-beta14", "magento/module-theme": "0.74.0-beta14", "magento/module-msrp": "0.74.0-beta14", diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml index d0aeb1702d330c44a65833c0bfef597b5e09c6b0..93554677907714333edd3b3251c3f1a418473628 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_index.xml @@ -18,6 +18,7 @@ <container name="checkout.cart.form.before" as="form_before" label="Shopping Cart Items Before" htmlTag="div" htmlClass="rewards" before="checkout.cart.form"/> <block class="Magento\Checkout\Block\Cart" name="checkout.cart.form" as="cart-items" template="cart/form.phtml"> <block class="Magento\Framework\View\Element\RendererList" name="checkout.cart.item.renderers" as="renderer.list"/> + <block class="Magento\Framework\View\Element\Text\ListText" name="checkout.cart.order.actions"/> </block> <container name="checkout.cart.widget" as="checkout_cart_widget" label="Shopping Cart Items After"/> <block class="Magento\Checkout\Block\Cart\Shipping" name="checkout.cart.shipping" as="shipping" template="cart/shipping.phtml"/> diff --git a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml index d5462c158bd29ec8124188211368c28bd268c0bf..572820909c24eaf337b6cb1131f1f59199c83972 100644 --- a/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Checkout/view/frontend/layout/checkout_cart_item_renderers.xml @@ -9,8 +9,18 @@ <update handle="checkout_item_price_renderers"/> <body> <referenceBlock name="checkout.cart.item.renderers"> - <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="cart/item/default.phtml"/> - <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="simple" template="cart/item/default.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="default" template="cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.default.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.default.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.default.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> + <block class="Magento\Checkout\Block\Cart\Item\Renderer" as="simple" template="cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.simple.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.simple.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.simple.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> </referenceBlock> </body> </page> diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/form.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/form.phtml index a78b7d152131dd4a66c17f4d2e66afbcdfc60019..a5f8db141716f4da993703cfb5ba37f30fa96a02 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/form.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/form.phtml @@ -60,4 +60,6 @@ <input type="hidden" value="" id="update_cart_action_container" /> </div> </form> +<?php echo $block->getChildHtml('checkout.cart.order.actions') ?> <?php echo $block->getChildHtml('shopping.cart.table.after'); ?> + diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml index a189143ba870fd923daab34f7dad81d062ed393d..e0aa120c9c63ef5b620a66cafa01abbce89a7b68 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/default.phtml @@ -118,35 +118,7 @@ $canApplyMsrp = $helper->isShowBeforeOrderConfirm($product) && $helper->isMinima <tr class="item-actions"> <td colspan="<?php echo $cols;?>"> <div class="actions-toolbar"> - - <?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllowInCart()) : ?> - <?php if ($isVisibleProduct): ?> - <a href="#" - data-post='<?php echo $this->helper('Magento\Wishlist\Helper\Data')->getMoveFromCartParams($_item->getId()); ?>' - class="use-ajax action towishlist"> - <span><?php echo __('Move to Wish List'); ?></span> - </a> - <?php endif ?> - <?php endif ?> - - <?php if ($isVisibleProduct): ?> - <a class="action edit" - href="<?php echo $block->getConfigureUrl() ?>" - title="<?php echo $block->escapeHtml(__('Edit item parameters')); ?>"> - <span> - <?php echo __('Edit') ?> - </span> - </a> - <?php endif ?> - - <a href="#" - title="<?php echo $block->escapeHtml(__('Remove item')); ?>" - class="action delete" - data-post='<?php echo $this->helper('Magento\Checkout\Helper\Cart')->getDeletePostJson($_item); ?>'> - <span> - <?php echo __('Remove item')?> - </span> - </a> + <?php echo $block->getActions($_item) ?> </div> </td> </tr> diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/edit.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/edit.phtml new file mode 100644 index 0000000000000000000000000000000000000000..4123e6419a32c1f5b6d0eeb04f3013cc0a63ec39 --- /dev/null +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/edit.phtml @@ -0,0 +1,19 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +// @codingStandardsIgnoreFile + +/** @var $block \Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit */ +?> +<?php if ($block->isProductVisibleInSiteVisibility()): ?> + <a class="action action-edit" + href="<?php echo $block->getConfigureUrl() ?>" + title="<?php echo $block->escapeHtml(__('Edit item parameters')); ?>"> + <span> + <?php echo __('Edit') ?> + </span> + </a> +<?php endif ?> diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml new file mode 100644 index 0000000000000000000000000000000000000000..bed34897aec6c0f44918036fc3e4624e1dc06626 --- /dev/null +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/item/renderer/actions/remove.phtml @@ -0,0 +1,18 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +// @codingStandardsIgnoreFile + +/** @var $block \Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove */ +?> +<a href="#" + title="<?php echo $block->escapeHtml(__('Remove item')); ?>" + class="action action-delete" + data-post='<?php echo $block->getDeletePostJson(); ?>'> + <span> + <?php echo __('Remove item')?> + </span> +</a> diff --git a/app/code/Magento/Checkout/view/frontend/templates/cart/shipping.phtml b/app/code/Magento/Checkout/view/frontend/templates/cart/shipping.phtml index 7585ca9388f9034e59d9b0a3e3d17434acbb258a..95bce4581bc118830a479a614d6f71cc2d65547e 100644 --- a/app/code/Magento/Checkout/view/frontend/templates/cart/shipping.phtml +++ b/app/code/Magento/Checkout/view/frontend/templates/cart/shipping.phtml @@ -71,7 +71,8 @@ "form": "#shipping-zip-form", "regionJson": <?php echo $this->helper('Magento\Directory\Helper\Data')->getRegionJson() ?>, "defaultRegion": "<?php echo $block->getEstimateRegionId() ?>", - "countriesWithOptionalZip": <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?> + "countriesWithOptionalZip": <?php echo $this->helper('Magento\Directory\Helper\Data')->getCountriesWithOptionalZip(true) ?>, + "isMultipleCountriesAllowed": <?php echo $block->isMultipleCountriesAllowed() ? 'true' : 'false'; ?> } } } diff --git a/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js b/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js index d48975806a79664906a1ff1ab6954f37ba23f536..d6cef062b1d507b82fcc00b5ee99fbc128d533a5 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/region-updater.js @@ -21,24 +21,18 @@ define([ isRegionRequired: true, isZipRequired: true, isCountryRequired: true, - currentRegion: null + currentRegion: null, + isMultipleCountriesAllowed: true }, _create: function () { - this.currentRegionOption = this.options.currentRegion; + this._initCountryElement(); + this.currentRegionOption = this.options.currentRegion; this.regionTmpl = mageTemplate(this.options.regionTemplate); this._updateRegion(this.element.find('option:selected').val()); - this.element.on('change', $.proxy(function (e) { - this._updateRegion($(e.target).val()); - }, this)); - - if (this.isCountryRequired) { - this.element.addClass('required-entry'); - } - $(this.options.regionListId).on('change', $.proxy(function (e) { this.setOption = false; this.currentRegionOption = $(e.target).val(); @@ -49,6 +43,21 @@ define([ }, this)); }, + _initCountryElement: function() { + if (this.options.isMultipleCountriesAllowed) { + this.element.parents('div.field').show(); + this.element.on('change', $.proxy(function (e) { + this._updateRegion($(e.target).val()); + }, this)); + if (this.options.isCountryRequired) { + this.element.addClass('required-entry'); + this.element.parents('div.field').addClass('required'); + } + } else { + this.element.parents('div.field').hide(); + } + }, + /** * Remove options from dropdown list * @param {Object} selectElement - jQuery object for dropdown list diff --git a/app/code/Magento/ConfigurableProduct/Test/Unit/Block/Cart/Item/Renderer/ConfigurableTest.php b/app/code/Magento/ConfigurableProduct/Test/Unit/Block/Cart/Item/Renderer/ConfigurableTest.php index 8594a0fb07f30e864b0d9744eb15f260930f0cf0..23f9b9b8ff1439e46352cf30a3567302222b33fc 100644 --- a/app/code/Magento/ConfigurableProduct/Test/Unit/Block/Cart/Item/Renderer/ConfigurableTest.php +++ b/app/code/Magento/ConfigurableProduct/Test/Unit/Block/Cart/Item/Renderer/ConfigurableTest.php @@ -233,7 +233,7 @@ class ConfigurableTest extends \PHPUnit_Framework_TestCase public function testGetOptionList() { - $itemMock = $this->getMock('Magento\Quote\Model\Quote\Item\AbstractItem', [], [], '', false); + $itemMock = $this->getMock('Magento\Quote\Model\Quote\Item', [], [], '', false); $this->_renderer->setItem($itemMock); $this->productConfigMock->expects($this->once())->method('getOptions')->with($itemMock); $this->_renderer->getOptionList(); diff --git a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml index ed335b6babce89860d2af06041a59957ce9dcea5..8b303c7a667fcec5c25753db40715ed3e168e8b4 100644 --- a/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/ConfigurableProduct/view/frontend/layout/checkout_cart_item_renderers.xml @@ -8,7 +8,12 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.cart.item.renderers"> - <block class="Magento\ConfigurableProduct\Block\Cart\Item\Renderer\Configurable" as="configurable" template="Magento_Checkout::cart/item/default.phtml"/> + <block class="Magento\ConfigurableProduct\Block\Cart\Item\Renderer\Configurable" as="configurable" template="Magento_Checkout::cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.configurable.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.configurable.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.configurable.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> </referenceBlock> </body> </page> diff --git a/app/code/Magento/Directory/Block/Data.php b/app/code/Magento/Directory/Block/Data.php index 9df3c512994106d3827b39bf404a63a8ba9512f8..08242cb6e25dc0fb494970fef8839820e4b26dec 100644 --- a/app/code/Magento/Directory/Block/Data.php +++ b/app/code/Magento/Directory/Block/Data.php @@ -3,10 +3,6 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - -/** - * Directory data block - */ namespace Magento\Directory\Block; class Data extends \Magento\Framework\View\Element\Template @@ -84,6 +80,20 @@ class Data extends \Magento\Framework\View\Element\Template return $collection; } + /** + * Retrieve list of top destinations countries + * + * @return array + */ + protected function getTopDestinations() + { + $destinations = (string)$this->_scopeConfig->getValue( + 'general/country/destinations', + \Magento\Store\Model\ScopeInterface::SCOPE_STORE + ); + return !empty($destinations) ? explode(',', $destinations) : []; + } + /** * @param null|string $defValue * @param string $name @@ -102,7 +112,9 @@ class Data extends \Magento\Framework\View\Element\Template if ($cache) { $options = unserialize($cache); } else { - $options = $this->getCountryCollection()->toOptionArray(); + $options = $this->getCountryCollection() + ->setForegroundCountries($this->getTopDestinations()) + ->toOptionArray(); $this->_configCacheType->save(serialize($options), $cacheKey); } $html = $this->getLayout()->createBlock( diff --git a/app/code/Magento/Directory/Test/Unit/Block/DataTest.php b/app/code/Magento/Directory/Test/Unit/Block/DataTest.php new file mode 100644 index 0000000000000000000000000000000000000000..9d5fb0635bd667381ab5cd3f2cba90bc16736cae --- /dev/null +++ b/app/code/Magento/Directory/Test/Unit/Block/DataTest.php @@ -0,0 +1,329 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Directory\Test\Unit\Block; + +use Magento\Directory\Block\Data; +use Magento\Directory\Helper\Data as HelperData; +use Magento\Directory\Model\Resource\Country\Collection as CountryCollection; +use Magento\Directory\Model\Resource\Country\CollectionFactory as CountryCollectionFactory; +use Magento\Directory\Model\Resource\Region\CollectionFactory as RegionCollectionFactory; +use Magento\Framework\App\Cache\Type\Config; +use Magento\Framework\App\Config\ScopeConfigInterface; +use Magento\Framework\Json\EncoderInterface; +use Magento\Framework\View\Element\Template\Context; +use Magento\Framework\View\LayoutInterface; +use Magento\Store\Model\ScopeInterface; +use Magento\Store\Model\Store; +use Magento\Store\Model\StoreManagerInterface; + +/** + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + */ +class DataTest extends \PHPUnit_Framework_TestCase +{ + /** @var Data */ + protected $model; + + /** @var Context |\PHPUnit_Framework_MockObject_MockObject */ + protected $context; + + /** @var HelperData |\PHPUnit_Framework_MockObject_MockObject */ + protected $helperData; + + /** @var EncoderInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $jsonEncoder; + + /** @var Config |\PHPUnit_Framework_MockObject_MockObject */ + protected $cacheTypeConfig; + + /** @var RegionCollectionFactory |\PHPUnit_Framework_MockObject_MockObject */ + protected $regionCollectionFactory; + + /** @var CountryCollectionFactory |\PHPUnit_Framework_MockObject_MockObject */ + protected $countryCollectionFactory; + + /** @var ScopeConfigInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $scopeConfig; + + /** @var StoreManagerInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $storeManager; + + /** @var Store |\PHPUnit_Framework_MockObject_MockObject */ + protected $store; + + /** @var CountryCollection |\PHPUnit_Framework_MockObject_MockObject */ + protected $countryCollection; + + /** @var LayoutInterface |\PHPUnit_Framework_MockObject_MockObject */ + protected $layout; + + protected function setUp() + { + $this->prepareContext(); + + $this->helperData = $this->getMockBuilder('Magento\Directory\Helper\Data') + ->disableOriginalConstructor() + ->getMock(); + + $this->jsonEncoder = $this->getMockBuilder('Magento\Framework\Json\EncoderInterface') + ->getMockForAbstractClass(); + + $this->cacheTypeConfig = $this->getMockBuilder('Magento\Framework\App\Cache\Type\Config') + ->disableOriginalConstructor() + ->getMock(); + + $this->regionCollectionFactory = $this->getMockBuilder( + 'Magento\Directory\Model\Resource\Region\CollectionFactory' + ) + ->disableOriginalConstructor() + ->getMock(); + + $this->prepareCountryCollection(); + + $this->model = new Data( + $this->context, + $this->helperData, + $this->jsonEncoder, + $this->cacheTypeConfig, + $this->regionCollectionFactory, + $this->countryCollectionFactory + ); + } + + protected function prepareContext() + { + $this->store = $this->getMockBuilder('Magento\Store\Model\Store') + ->disableOriginalConstructor() + ->getMock(); + + $this->scopeConfig = $this->getMockBuilder('Magento\Framework\App\Config\ScopeConfigInterface') + ->getMockForAbstractClass(); + + $this->storeManager = $this->getMockBuilder('Magento\Store\Model\StoreManagerInterface') + ->getMockForAbstractClass(); + + $this->storeManager->expects($this->any()) + ->method('getStore') + ->willReturn($this->store); + + $this->layout = $this->getMockBuilder('Magento\Framework\View\LayoutInterface') + ->getMockForAbstractClass(); + + $this->context = $this->getMockBuilder('Magento\Framework\View\Element\Template\Context') + ->disableOriginalConstructor() + ->getMock(); + + $this->context->expects($this->any()) + ->method('getScopeConfig') + ->willReturn($this->scopeConfig); + + $this->context->expects($this->any()) + ->method('getStoreManager') + ->willReturn($this->storeManager); + + $this->context->expects($this->any()) + ->method('getLayout') + ->willReturn($this->layout); + } + + protected function prepareCountryCollection() + { + $this->countryCollection = $this->getMockBuilder('Magento\Directory\Model\Resource\Country\Collection') + ->disableOriginalConstructor() + ->getMock(); + + $this->countryCollectionFactory = $this->getMockBuilder( + 'Magento\Directory\Model\Resource\Country\CollectionFactory' + ) + ->disableOriginalConstructor() + ->setMethods([ + 'create' + ]) + ->getMock(); + + $this->countryCollectionFactory->expects($this->any()) + ->method('create') + ->willReturn($this->countryCollection); + } + + /** + * @param string $storeCode + * @param int $defaultCountry + * @param string $destinations + * @param array $expectedDestinations + * @param array $options + * @param string $resultHtml + * @dataProvider dataProviderGetCountryHtmlSelect + */ + public function testGetCountryHtmlSelect( + $storeCode, + $defaultCountry, + $destinations, + $expectedDestinations, + $options, + $resultHtml + ) { + $this->helperData->expects($this->once()) + ->method('getDefaultCountry') + ->willReturn($defaultCountry); + + $this->store->expects($this->once()) + ->method('getCode') + ->willReturn($storeCode); + + $this->cacheTypeConfig->expects($this->once()) + ->method('load') + ->with('DIRECTORY_COUNTRY_SELECT_STORE_' . $storeCode) + ->willReturn(false); + $this->cacheTypeConfig->expects($this->once()) + ->method('save') + ->with(serialize($options), 'DIRECTORY_COUNTRY_SELECT_STORE_' . $storeCode) + ->willReturnSelf(); + + $this->scopeConfig->expects($this->once()) + ->method('getValue') + ->with('general/country/destinations', ScopeInterface::SCOPE_STORE) + ->willReturn($destinations); + + $this->countryCollection->expects($this->once()) + ->method('loadByStore') + ->willReturnSelf(); + $this->countryCollection->expects($this->any()) + ->method('setForegroundCountries') + ->with($expectedDestinations) + ->willReturnSelf(); + $this->countryCollection->expects($this->once()) + ->method('toOptionArray') + ->willReturn($options); + + $elementHtmlSelect = $this->mockElementHtmlSelect($defaultCountry, $options, $resultHtml); + + $this->layout->expects($this->once()) + ->method('createBlock') + ->willReturn($elementHtmlSelect); + + $this->assertEquals($resultHtml, $this->model->getCountryHtmlSelect()); + } + + /** + * 1. Store code + * 2. Default Country ID + * 3. Top Destinations + * 4. Exploded Top Destinations + * 5. Result options + * + * @return array + */ + public function dataProviderGetCountryHtmlSelect() + { + return [ + [ + 'default', + 1, + '', + [], + [ + [ + 'value' => 'US', + 'label' => 'United States', + ], + ], + 'result html', + ], + [ + 'default', + 1, + 'US', + [ + 0 => 'US', + ], + [ + [ + 'value' => 'US', + 'label' => 'United States', + ], + ], + 'result html', + ], + [ + 'default', + 1, + 'US,GB', + [ + 0 => 'US', + 1 => 'GB', + ], + [ + [ + 'value' => 'US', + 'label' => 'United States', + ], + [ + 'value' => 'GB', + 'label' => 'Great Britain', + ], + ], + 'result html', + ], + ]; + } + + /** + * @param $defaultCountry + * @param $options + * @param $resultHtml + * @return \PHPUnit_Framework_MockObject_MockObject + */ + protected function mockElementHtmlSelect($defaultCountry, $options, $resultHtml) + { + $name = 'country_id'; + $id = 'country'; + $title = 'Country'; + + $elementHtmlSelect = $this->getMockBuilder('Magento\Framework\View\Element\Html\Select') + ->disableOriginalConstructor() + ->setMethods([ + 'setName', + 'setId', + 'setTitle', + 'setValue', + 'setOptions', + 'setExtraParams', + 'getHtml', + ]) + ->getMock(); + + $elementHtmlSelect->expects($this->once()) + ->method('setName') + ->with($name) + ->willReturnSelf(); + $elementHtmlSelect->expects($this->once()) + ->method('setId') + ->with($id) + ->willReturnSelf(); + $elementHtmlSelect->expects($this->once()) + ->method('setTitle') + ->with(__($title)) + ->willReturnSelf(); + $elementHtmlSelect->expects($this->once()) + ->method('setValue') + ->with($defaultCountry) + ->willReturnSelf(); + $elementHtmlSelect->expects($this->once()) + ->method('setOptions') + ->with($options) + ->willReturnSelf(); + $elementHtmlSelect->expects($this->once()) + ->method('setExtraParams') + ->with('data-validate="{\'validate-select\':true}"') + ->willReturnSelf(); + $elementHtmlSelect->expects($this->once()) + ->method('getHtml') + ->willReturn($resultHtml); + + return $elementHtmlSelect; + } +} diff --git a/app/code/Magento/Downloadable/Block/Checkout/Cart/Item/Renderer.php b/app/code/Magento/Downloadable/Block/Checkout/Cart/Item/Renderer.php index 699e44fe150db1c3f052928ebbe89f212e24eacb..2416dc5d4c9efde09c4dcbcb23d60a700c5c97c5 100644 --- a/app/code/Magento/Downloadable/Block/Checkout/Cart/Item/Renderer.php +++ b/app/code/Magento/Downloadable/Block/Checkout/Cart/Item/Renderer.php @@ -30,8 +30,8 @@ class Renderer extends \Magento\Checkout\Block\Cart\Item\Renderer * @param \Magento\Framework\Url\Helper\Data $urlHelper * @param \Magento\Framework\Message\ManagerInterface $messageManager * @param PriceCurrencyInterface $priceCurrency - * @param \Magento\Downloadable\Helper\Catalog\Product\Configuration $downloadableProductConfiguration * @param \Magento\Framework\Module\Manager $moduleManager + * @param \Magento\Downloadable\Helper\Catalog\Product\Configuration $downloadableProductConfiguration * @param array $data * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json index fb54763027f3ed9b61617b4c2e2ae63a92ddab6a..b28ee43df4619e46d9314a36a88369cb34ce7a94 100644 --- a/app/code/Magento/Downloadable/composer.json +++ b/app/code/Magento/Downloadable/composer.json @@ -13,7 +13,6 @@ "magento/module-sales": "0.74.0-beta14", "magento/module-checkout": "0.74.0-beta14", "magento/module-directory": "0.74.0-beta14", - "magento/module-wishlist": "0.74.0-beta14", "magento/module-gift-message": "0.74.0-beta14", "magento/module-catalog-inventory": "0.74.0-beta14", "magento/module-msrp": "0.74.0-beta14", diff --git a/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml index 7a152eff590fc3608cbec1644a13a9b674b1160e..f6307cf7f80f69f3e424dd155b80f8b5cbbeba20 100644 --- a/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/Downloadable/view/frontend/layout/checkout_cart_item_renderers.xml @@ -8,7 +8,12 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.cart.item.renderers"> - <block class="Magento\Downloadable\Block\Checkout\Cart\Item\Renderer" as="downloadable" template="checkout/cart/item/default.phtml"/> + <block class="Magento\Downloadable\Block\Checkout\Cart\Item\Renderer" as="downloadable" template="checkout/cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.downloadable.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.downloadable.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.downloadable.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> </referenceBlock> <referenceBlock name="additional.product.info"> <block class="Magento\Downloadable\Block\Checkout\Cart\Item\Renderer" name="downloadable.product.links" template="Magento_Downloadable::checkout/links.phtml"/> diff --git a/app/code/Magento/Downloadable/view/frontend/templates/checkout/cart/item/default.phtml b/app/code/Magento/Downloadable/view/frontend/templates/checkout/cart/item/default.phtml index 62441265c7402ef642fcc8027a3a2beb7d93b788..e45c33bba790ddcf3d0cf97ab7130fc0185fd65c 100644 --- a/app/code/Magento/Downloadable/view/frontend/templates/checkout/cart/item/default.phtml +++ b/app/code/Magento/Downloadable/view/frontend/templates/checkout/cart/item/default.phtml @@ -104,22 +104,7 @@ $canApplyMsrp = $helper->isShowBeforeOrderConfirm($product) && $helper->isMinima <tr class="item-actions"> <td colspan="<?php echo $cols;?>"> <div class="actions-toolbar"> - <?php if ($this->helper('Magento\Wishlist\Helper\Data')->isAllowInCart()) : ?> - <?php if ($isVisibleProduct): ?> - <a href="#" data-post='<?php echo $this->helper('Magento\Wishlist\Helper\Data')->getMoveFromCartParams($_item->getId()); ?>' class="use-ajax action towishlist"> - <span><?php echo __('Move to Wish List'); ?></span> - </a> - <?php endif ?> - <?php endif ?> - <?php if ($isVisibleProduct): ?> - <a class="action edit" href="<?php echo $block->getConfigureUrl() ?>" title="<?php echo __('Edit item parameters') ?>"><span><?php echo __('Edit') ?></span></a> - <?php endif ?> - <button title="<?php echo __('Remove item') ?>" - type="button" - class="action delete" - data-post='<?php echo $this->helper('Magento\Checkout\Helper\Cart')->getDeletePostJson($_item); ?>'> - <span><?php echo __('Remove item')?></span> - </button> + <?php echo $block->getActions($_item) ?> </div> </td> </tr> diff --git a/app/code/Magento/GiftMessage/Api/GuestCartRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/GuestCartRepositoryInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..93973b139a221edb40fb63a51691c506a6ac66dd --- /dev/null +++ b/app/code/Magento/GiftMessage/Api/GuestCartRepositoryInterface.php @@ -0,0 +1,33 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Api; + +/** + * Interface GuestCartRepositoryInterface + * @api + */ +interface GuestCartRepositoryInterface +{ + /** + * Return the gift message for a specified order. + * + * @param string $cartId The shopping cart ID. + * @return \Magento\GiftMessage\Api\Data\MessageInterface Gift message. + */ + public function get($cartId); + + /** + * Set the gift message for an entire order. + * + * @param string $cartId The cart ID. + * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage The gift message. + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist. + * @throws \Magento\Framework\Exception\InputException You cannot add gift messages to empty carts. + * @throws \Magento\Framework\Exception\CouldNotSaveException The specified gift message could not be saved. + */ + public function save($cartId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage); +} diff --git a/app/code/Magento/GiftMessage/Api/GuestItemRepositoryInterface.php b/app/code/Magento/GiftMessage/Api/GuestItemRepositoryInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..31ce48c0907271a6d2b47089683a8af1d4f56e8a --- /dev/null +++ b/app/code/Magento/GiftMessage/Api/GuestItemRepositoryInterface.php @@ -0,0 +1,36 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Api; + +/** + * Interface GuestItemRepositoryInterface + * @api + */ +interface GuestItemRepositoryInterface +{ + /** + * Return the gift message for a specified item in a specified shopping cart. + * + * @param string $cartId The shopping cart ID. + * @param int $itemId The item ID. + * @return \Magento\GiftMessage\Api\Data\MessageInterface Gift message. + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified item does not exist in the cart. + */ + public function get($cartId, $itemId); + + /** + * Set the gift message for a specified item in a specified shopping cart. + * + * @param string $cartId The cart ID. + * @param \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage The gift message. + * @param int $itemId The item ID. + * @return bool + * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist. + * @throws \Magento\Framework\Exception\InputException You cannot add gift messages to empty carts. + * @throws \Magento\Framework\Exception\CouldNotSaveException The specified gift message could not be saved. + */ + public function save($cartId, \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage, $itemId); +} diff --git a/app/code/Magento/GiftMessage/Block/Cart/GiftOptions.php b/app/code/Magento/GiftMessage/Block/Cart/GiftOptions.php new file mode 100644 index 0000000000000000000000000000000000000000..bf208eb18eac7714eef0689d9178821e7346cdb5 --- /dev/null +++ b/app/code/Magento/GiftMessage/Block/Cart/GiftOptions.php @@ -0,0 +1,81 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Block\Cart; + +use Magento\Backend\Block\Template\Context; +use Magento\Framework\Json\Encoder; +use Magento\GiftMessage\Model\CompositeConfigProvider; + +class GiftOptions extends \Magento\Backend\Block\Template +{ + /** + * @var bool + */ + protected $_isScopePrivate = false; + + /** + * @var array + */ + protected $jsLayout; + + /** + * @var \Magento\Checkout\Model\CompositeConfigProvider + */ + protected $configProvider; + + /** + * @var array|\Magento\Checkout\Block\Checkout\LayoutProcessorInterface[] + */ + protected $layoutProcessors; + + /** + * @var Encoder + */ + protected $jsonEncoder; + + /** + * @param Context $context + * @param Encoder $jsonEncoder + * @param CompositeConfigProvider $configProvider + * @param array $layoutProcessors + * @param array $data + */ + public function __construct( + Context $context, + Encoder $jsonEncoder, + CompositeConfigProvider $configProvider, + array $layoutProcessors = [], + array $data = [] + ) { + parent::__construct($context, $data); + $this->jsonEncoder = $jsonEncoder; + $this->_isScopePrivate = true; + $this->jsLayout = isset($data['jsLayout']) && is_array($data['jsLayout']) ? $data['jsLayout'] : []; + $this->configProvider = $configProvider; + $this->layoutProcessors = $layoutProcessors; + } + + /** + * @return string + */ + public function getJsLayout() + { + foreach ($this->layoutProcessors as $processor) { + $this->jsLayout = $processor->process($this->jsLayout); + } + return $this->jsonEncoder->encode($this->jsLayout); + } + + /** + * Retrieve gift message configuration + * + * @return array + */ + public function getGiftOptionsConfigJson() + { + return $this->jsonEncoder->encode($this->configProvider->getConfig()); + } +} diff --git a/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/GiftOptions.php b/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/GiftOptions.php new file mode 100644 index 0000000000000000000000000000000000000000..429279e7ff2c9fc409716b6361d6991908e2dccb --- /dev/null +++ b/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/GiftOptions.php @@ -0,0 +1,66 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Block\Cart\Item\Renderer\Actions; + +use Magento\Backend\Block\Template\Context; +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic; +use Magento\Framework\Json\Encoder; + +class GiftOptions extends Generic +{ + /** + * @var bool + */ + protected $_isScopePrivate = false; + + /** + * @var array + */ + protected $jsLayout; + + /** + * @var array|LayoutProcessorInterface[] + */ + protected $layoutProcessors; + + /** + * @var Encoder + */ + protected $jsonEncoder; + + /** + * @param Context $context + * @param Encoder $jsonEncoder + * @param array $layoutProcessors + * @param array $data + */ + public function __construct( + Context $context, + Encoder $jsonEncoder, + array $layoutProcessors = [], + array $data = [] + ) { + parent::__construct($context, $data); + $this->jsonEncoder = $jsonEncoder; + $this->_isScopePrivate = true; + $this->jsLayout = isset($data['jsLayout']) && is_array($data['jsLayout']) ? $data['jsLayout'] : []; + $this->layoutProcessors = $layoutProcessors; + } + + /** + * Return JS layout + * + * @return string + */ + public function getJsLayout() + { + $jsLayout = $this->jsLayout; + foreach ($this->layoutProcessors as $processor) { + $jsLayout = $processor->process($jsLayout, $this->getItem()); + } + return $this->jsonEncoder->encode($jsLayout); + } +} diff --git a/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/ItemIdProcessor.php b/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/ItemIdProcessor.php new file mode 100644 index 0000000000000000000000000000000000000000..e3a2d93376a431294e35ef03ab7371f1e0da8255 --- /dev/null +++ b/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/ItemIdProcessor.php @@ -0,0 +1,34 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Block\Cart\Item\Renderer\Actions; + +use Magento\Quote\Model\Quote\Item; + +class ItemIdProcessor implements LayoutProcessorInterface +{ + /** + * Adds item ID to giftOptionsCartItem configuration and name + * + * @param array $jsLayout + * @param Item $item + * @return array + */ + public function process($jsLayout, Item $item) + { + if (isset($jsLayout['components']['giftOptionsCartItem'])) { + if (!isset($jsLayout['components']['giftOptionsCartItem']['config'])) { + $jsLayout['components']['giftOptionsCartItem']['config'] = []; + } + $jsLayout['components']['giftOptionsCartItem']['config']['itemId'] = $item->getId(); + + $jsLayout['components']['giftOptionsCartItem-' . $item->getId()] = + $jsLayout['components']['giftOptionsCartItem']; + unset($jsLayout['components']['giftOptionsCartItem']); + } + + return $jsLayout; + } +} diff --git a/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/LayoutProcessorInterface.php b/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/LayoutProcessorInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..5e8ecfacb3a3bdcb0cf2cb4a3c41aae8cdfe39a8 --- /dev/null +++ b/app/code/Magento/GiftMessage/Block/Cart/Item/Renderer/Actions/LayoutProcessorInterface.php @@ -0,0 +1,20 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Block\Cart\Item\Renderer\Actions; + +use Magento\Quote\Model\Quote\Item; + +interface LayoutProcessorInterface +{ + /** + * Process JS layout of block + * + * @param array $jsLayout + * @param Item $item + * @return array + */ + public function process($jsLayout, Item $item); +} diff --git a/app/code/Magento/GiftMessage/Model/CartRepository.php b/app/code/Magento/GiftMessage/Model/CartRepository.php index 4fe6b988236c6258fc0d7f7068a72f803468debb..7cb8058bfb250ad003ed865e2bd807cf54a9c607 100644 --- a/app/code/Magento/GiftMessage/Model/CartRepository.php +++ b/app/code/Magento/GiftMessage/Model/CartRepository.php @@ -12,7 +12,7 @@ use Magento\Framework\Exception\InputException; use Magento\Framework\Exception\State\InvalidTransitionException; /** - * Shopping cart gift message repository object. + * Shopping cart gift message repository object for registered customer */ class CartRepository implements \Magento\GiftMessage\Api\CartRepositoryInterface { diff --git a/app/code/Magento/GiftMessage/Model/CompositeConfigProvider.php b/app/code/Magento/GiftMessage/Model/CompositeConfigProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..49fe4c189b1971e7d2eb8b9babea91d665e1fc43 --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/CompositeConfigProvider.php @@ -0,0 +1,37 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Model; + +use Magento\Checkout\Model\ConfigProviderInterface; + +class CompositeConfigProvider implements ConfigProviderInterface +{ + /** + * @var ConfigProviderInterface[] + */ + private $configProviders; + + /** + * @param ConfigProviderInterface[] $configProviders + */ + public function __construct( + array $configProviders + ) { + $this->configProviders = $configProviders; + } + + /** + * {@inheritdoc} + */ + public function getConfig() + { + $config = []; + foreach ($this->configProviders as $configProvider) { + $config = array_merge_recursive($config, $configProvider->getConfig()); + } + return $config; + } +} diff --git a/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php b/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php index aac0982ecb6048d72321897b820d6222fab0b6ec..18d2b55950c90179d2234eb50203e94b1aaf8607 100644 --- a/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php +++ b/app/code/Magento/GiftMessage/Model/GiftMessageConfigProvider.php @@ -7,9 +7,16 @@ namespace Magento\GiftMessage\Model; use Magento\Checkout\Model\ConfigProviderInterface; use Magento\GiftMessage\Helper\Message as GiftMessageHelper; +use Magento\Framework\App\Http\Context as HttpContext; +use Magento\Customer\Model\Context as CustomerContext; +use Magento\Framework\UrlInterface; +use Magento\Framework\Locale\FormatInterface as LocaleFormat; +use Magento\Framework\Data\Form\FormKey; /** - * Configuration provider for GiftMessage rendering on "Shipping Method" step of checkout. + * Configuration provider for GiftMessage rendering on "Checkout cart" page. + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.NPathComplexity) */ class GiftMessageConfigProvider implements ConfigProviderInterface { @@ -33,22 +40,49 @@ class GiftMessageConfigProvider implements ConfigProviderInterface */ protected $checkoutSession; + /** + * @var \Magento\Store\Model\StoreManagerInterface + */ + protected $storeManager; + + /** + * @var LocaleFormat + */ + protected $localeFormat; + + /** + * @var FormKey + */ + protected $formKey; + /** * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\GiftMessage\Api\CartRepositoryInterface $cartRepository * @param \Magento\GiftMessage\Api\ItemRepositoryInterface $itemRepository * @param \Magento\Checkout\Model\Session $checkoutSession + * @param HttpContext $httpContext + * @param \Magento\Store\Model\StoreManagerInterface $storeManager + * @param LocaleFormat $localeFormat + * @param FormKey $formKey */ public function __construct( \Magento\Framework\App\Helper\Context $context, \Magento\GiftMessage\Api\CartRepositoryInterface $cartRepository, \Magento\GiftMessage\Api\ItemRepositoryInterface $itemRepository, - \Magento\Checkout\Model\Session $checkoutSession + \Magento\Checkout\Model\Session $checkoutSession, + HttpContext $httpContext, + \Magento\Store\Model\StoreManagerInterface $storeManager, + LocaleFormat $localeFormat, + FormKey $formKey ) { $this->scopeConfiguration = $context->getScopeConfig(); $this->cartRepository = $cartRepository; $this->itemRepository = $itemRepository; $this->checkoutSession = $checkoutSession; + $this->httpContext = $httpContext; + $this->storeManager = $storeManager; + $this->localeFormat = $localeFormat; + $this-> formKey = $formKey; } /** @@ -57,6 +91,7 @@ class GiftMessageConfigProvider implements ConfigProviderInterface public function getConfig() { $configuration = []; + $configuration['giftMessage'] = []; $orderLevelGiftMessageConfiguration = (bool)$this->scopeConfiguration->getValue( GiftMessageHelper::XPATH_CONFIG_GIFT_MESSAGE_ALLOW_ORDER, \Magento\Store\Model\ScopeInterface::SCOPE_STORE @@ -67,7 +102,7 @@ class GiftMessageConfigProvider implements ConfigProviderInterface ); if ($orderLevelGiftMessageConfiguration) { $orderMessages = $this->getOrderLevelGiftMessages(); - $configuration['isOrderLevelGiftOptionsEnabled'] = true; + $configuration['isOrderLevelGiftOptionsEnabled'] = (bool)$this->isQuoteVirtual() ? false : true; $configuration['giftMessage']['orderLevel'] = $orderMessages === null ? true : $orderMessages->getData(); } if ($itemLevelGiftMessageConfiguration) { @@ -75,9 +110,50 @@ class GiftMessageConfigProvider implements ConfigProviderInterface $configuration['isItemLevelGiftOptionsEnabled'] = true; $configuration['giftMessage']['itemLevel'] = $itemMessages === null ? true : $itemMessages; } + $configuration['priceFormat'] = $this->localeFormat->getPriceFormat( + null, + $this->checkoutSession->getQuote()->getQuoteCurrencyCode() + ); + $configuration['storeCode'] = $this->getStoreCode(); + $configuration['isCustomerLoggedIn'] = $this->isCustomerLoggedIn(); + $configuration['formKey'] = $this->formKey->getFormKey(); + $store = $this->storeManager->getStore(); + $configuration['baseUrl'] = $store->isFrontUrlSecure() + ? $store->getBaseUrl(UrlInterface::URL_TYPE_LINK, true) + : $store->getBaseUrl(UrlInterface::URL_TYPE_LINK, false); return $configuration; } + /** + * Check if customer is logged in + * + * @return bool + */ + private function isCustomerLoggedIn() + { + return (bool)$this->httpContext->getValue(CustomerContext::CONTEXT_AUTH); + } + + /** + * Retrieve store code + * + * @return string + */ + protected function getStoreCode() + { + return $this->checkoutSession->getQuote()->getStore()->getCode(); + } + + /** + * Check if quote is virtual + * + * @return bool + */ + protected function isQuoteVirtual() + { + return $this->checkoutSession->loadCustomerQuote()->getQuote()->getIsVirtual(); + } + /** * Load already specified quote level gift message. * diff --git a/app/code/Magento/GiftMessage/Model/GiftMessageManager.php b/app/code/Magento/GiftMessage/Model/GiftMessageManager.php index bba98363c7d4a608a7e4a23b821b59af8954b642..b230fb2c40c69875bcf35e184c87710e86bbb38b 100644 --- a/app/code/Magento/GiftMessage/Model/GiftMessageManager.php +++ b/app/code/Magento/GiftMessage/Model/GiftMessageManager.php @@ -5,7 +5,6 @@ */ namespace Magento\GiftMessage\Model; -use Magento\Framework\Exception\State\InvalidTransitionException; use Magento\Framework\Exception\CouldNotSaveException; class GiftMessageManager @@ -100,18 +99,9 @@ class GiftMessageManager * @param null|int $entityId The entity ID. * @return void * @throws \Magento\Framework\Exception\CouldNotSaveException The specified gift message is not available. - * @throws \Magento\Framework\Exception\State\InvalidTransitionException The billing or shipping address is not set. */ public function setMessage(\Magento\Quote\Model\Quote $quote, $type, $giftMessage, $entityId = null) { - if ($quote->getBillingAddress()->getCountryId() === null) { - throw new InvalidTransitionException(__('Billing address is not set')); - } - - // check if shipping address is set - if ($quote->getShippingAddress()->getCountryId() === null) { - throw new InvalidTransitionException(__('Shipping address is not set')); - } $message[$type][$entityId] = [ 'from' => $giftMessage->getSender(), 'to' => $giftMessage->getRecipient(), diff --git a/app/code/Magento/GiftMessage/Model/GuestCartRepository.php b/app/code/Magento/GiftMessage/Model/GuestCartRepository.php new file mode 100644 index 0000000000000000000000000000000000000000..b27513fc3550ea850d467d4e0105243664929eb3 --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/GuestCartRepository.php @@ -0,0 +1,61 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\GiftMessage\Model; + +use Magento\GiftMessage\Api\Data\MessageInterface; +use Magento\GiftMessage\Api\GuestCartRepositoryInterface; +use Magento\Quote\Model\QuoteIdMask; +use Magento\Quote\Model\QuoteIdMaskFactory; + +/** + * Shopping cart gift message repository object for guest + */ +class GuestCartRepository implements GuestCartRepositoryInterface +{ + /** + * @var CartRepository + */ + protected $repository; + + /** + * @var QuoteIdMaskFactory + */ + protected $quoteIdMaskFactory; + + /** + * @param CartRepository $repository + * @param QuoteIdMaskFactory $quoteIdMaskFactory + */ + public function __construct( + CartRepository $repository, + QuoteIdMaskFactory $quoteIdMaskFactory + ) { + $this->repository = $repository; + $this->quoteIdMaskFactory = $quoteIdMaskFactory; + } + + /** + * {@inheritDoc} + */ + public function get($cartId) + { + /** @var $quoteIdMask QuoteIdMask */ + $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id'); + return $this->repository->get($quoteIdMask->getQuoteId()); + } + + /** + * {@inheritDoc} + */ + public function save($cartId, MessageInterface $giftMessage) + { + /** @var $quoteIdMask QuoteIdMask */ + $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id'); + return $this->repository->save($quoteIdMask->getQuoteId(), $giftMessage); + } +} diff --git a/app/code/Magento/GiftMessage/Model/GuestItemRepository.php b/app/code/Magento/GiftMessage/Model/GuestItemRepository.php new file mode 100644 index 0000000000000000000000000000000000000000..d46ed3c55894dbf584f0b41aa687a4fbeb66fc4d --- /dev/null +++ b/app/code/Magento/GiftMessage/Model/GuestItemRepository.php @@ -0,0 +1,61 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\GiftMessage\Model; + +use Magento\GiftMessage\Api\Data\MessageInterface; +use Magento\GiftMessage\Api\GuestItemRepositoryInterface; +use Magento\Quote\Model\QuoteIdMask; +use Magento\Quote\Model\QuoteIdMaskFactory; + +/** + * Shopping cart gift message item repository object for guest + */ +class GuestItemRepository implements GuestItemRepositoryInterface +{ + /** + * @var ItemRepository + */ + protected $repository; + + /** + * @var QuoteIdMaskFactory + */ + protected $quoteIdMaskFactory; + + /** + * @param ItemRepository $repository + * @param QuoteIdMaskFactory $quoteIdMaskFactory + */ + public function __construct( + ItemRepository $repository, + QuoteIdMaskFactory $quoteIdMaskFactory + ) { + $this->repository = $repository; + $this->quoteIdMaskFactory = $quoteIdMaskFactory; + } + + /** + * {@inheritDoc} + */ + public function get($cartId, $itemId) + { + /** @var $quoteIdMask QuoteIdMask */ + $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id'); + return $this->repository->get($quoteIdMask->getQuoteId(), $itemId); + } + + /** + * {@inheritDoc} + */ + public function save($cartId, MessageInterface $giftMessage, $itemId) + { + /** @var $quoteIdMask QuoteIdMask */ + $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id'); + return $this->repository->save($quoteIdMask->getQuoteId(), $giftMessage, $itemId); + } +} diff --git a/app/code/Magento/GiftMessage/Model/ItemRepository.php b/app/code/Magento/GiftMessage/Model/ItemRepository.php index d7220d2516f7a2b934d9365a83c481f13249b1c2..cead9782a4ec13bcfacfba5ba47910cf1c4eaa02 100644 --- a/app/code/Magento/GiftMessage/Model/ItemRepository.php +++ b/app/code/Magento/GiftMessage/Model/ItemRepository.php @@ -13,7 +13,7 @@ use Magento\Framework\Exception\State\InvalidTransitionException; use Magento\Framework\Exception\NoSuchEntityException; /** - * Shopping cart gift message item repository object. + * Shopping cart gift message item repository object for registered customer */ class ItemRepository implements \Magento\GiftMessage\Api\ItemRepositoryInterface { diff --git a/app/code/Magento/GiftMessage/Model/Plugin/TotalsDataProcessorPlugin.php b/app/code/Magento/GiftMessage/Model/Plugin/TotalsDataProcessorPlugin.php deleted file mode 100644 index 9d26c0a38b413dc6b3f19718fba77544b0413432..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/Model/Plugin/TotalsDataProcessorPlugin.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -namespace Magento\GiftMessage\Model\Plugin; - -use Magento\Quote\Model\Cart\TotalsAdditionalDataProcessor; -use Magento\Quote\Api\Data\TotalsAdditionalDataInterface; - -/** - * Shopping cart gift message item repository object. - */ -class TotalsDataProcessorPlugin -{ - /** - * @var \Magento\GiftMessage\Api\CartRepositoryInterface - */ - protected $cartRepository; - - /** - * @var \Magento\GiftMessage\Api\ItemRepositoryInterface - */ - protected $itemRepositoryInterface; - - /** - * @param \Magento\GiftMessage\Api\CartRepositoryInterface $cartRepository - * @param \Magento\GiftMessage\Api\ItemRepositoryInterface $itemRepository - */ - public function __construct( - \Magento\GiftMessage\Api\CartRepositoryInterface $cartRepository, - \Magento\GiftMessage\Api\ItemRepositoryInterface $itemRepository - ) { - $this->cartRepository = $cartRepository; - $this->itemRepositoryInterface = $itemRepository; - } - - /** - * Set gift messages from additional data. - * - * @param \Magento\Quote\Model\Cart\TotalsAdditionalDataProcessor $subject - * @param TotalsAdditionalDataInterface $additionalData - * @param int $cartId - * @return void - * @SuppressWarnings(PHPMD.UnusedFormalParameter) - */ - public function beforeProcess( - TotalsAdditionalDataProcessor $subject, - TotalsAdditionalDataInterface $additionalData, - $cartId - ) { - $giftMessages = $additionalData->getExtensionAttributes()->getGiftMessages(); - foreach ($giftMessages as $giftMessage) { - /** @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */ - $entityType = $giftMessage->getExtensionAttributes()->getEntityType(); - $entityId = $giftMessage->getExtensionAttributes()->getEntityId(); - if ($entityType === 'quote') { - $this->cartRepository->save($cartId, $giftMessage); - } elseif ($entityType === 'item') { - $this->itemRepositoryInterface->save($cartId, $giftMessage, $entityId); - } - } - } -} diff --git a/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/GiftOptionsTest.php b/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/GiftOptionsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..32a94d762c75f446d4fab739287f165ae7e9e58f --- /dev/null +++ b/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/GiftOptionsTest.php @@ -0,0 +1,80 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Test\Unit\Block\Cart; + +use Magento\GiftMessage\Block\Cart\GiftOptions; + +class GiftOptionsTest extends \PHPUnit_Framework_TestCase +{ + /** @var \Magento\Backend\Block\Template\Context|\PHPUnit_Framework_MockObject_MockObject */ + protected $context; + + /** @var \Magento\GiftMessage\Model\CompositeConfigProvider|\PHPUnit_Framework_MockObject_MockObject */ + protected $compositeConfigProvider; + + /** @var \Magento\Checkout\Model\CompositeConfigProvider|\PHPUnit_Framework_MockObject_MockObject */ + protected $layoutProcessorMock; + + /** @var \Magento\GiftMessage\Block\Cart\GiftOptions */ + protected $model; + + /** @var \Magento\Framework\Json\Encoder|\PHPUnit_Framework_MockObject_MockObject */ + protected $jsonEncoderMock; + + /** @var array */ + protected $jsLayout = ['root' => 'node']; + + public function setUp() + { + $this->context = $this->getMock('Magento\Backend\Block\Template\Context', [], [], '', false); + $this->jsonEncoderMock = $this->getMock('Magento\Framework\Json\Encoder', [], [], '', false); + $this->compositeConfigProvider = $this->getMock( + 'Magento\GiftMessage\Model\CompositeConfigProvider', + [], + [], + '', + false + ); + $this->layoutProcessorMock = $this->getMockForAbstractClass( + 'Magento\Checkout\Block\Checkout\LayoutProcessorInterface', + [], + '', + false + ); + $this->model = new GiftOptions( + $this->context, + $this->jsonEncoderMock, + $this->compositeConfigProvider, + [$this->layoutProcessorMock], + ['jsLayout' => $this->jsLayout] + ); + } + + public function testGetJsLayout() + { + $this->layoutProcessorMock->expects($this->once()) + ->method('process') + ->with($this->jsLayout) + ->willReturnArgument(0); + $this->jsonEncoderMock->expects($this->once()) + ->method('encode') + ->with($this->jsLayout) + ->willReturnArgument(0); + $this->assertEquals($this->jsLayout, $this->model->getJsLayout()); + } + + public function testGetGiftOptionsConfigJson() + { + $this->compositeConfigProvider->expects($this->once()) + ->method('getConfig') + ->willReturn($this->jsLayout); + $this->jsonEncoderMock->expects($this->once()) + ->method('encode') + ->with($this->jsLayout) + ->willReturnArgument(0); + $this->assertEquals($this->jsLayout, $this->model->getGiftOptionsConfigJson()); + } +} diff --git a/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/Item/Renderer/Actions/GiftOptionsTest.php b/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/Item/Renderer/Actions/GiftOptionsTest.php new file mode 100644 index 0000000000000000000000000000000000000000..0a3f3e89b7db12507f78d643cc47758e7e55eb4c --- /dev/null +++ b/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/Item/Renderer/Actions/GiftOptionsTest.php @@ -0,0 +1,79 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Test\Unit\Block\Cart\Item\Renderer\Actions; + +use Magento\Backend\Block\Template\Context; +use Magento\Checkout\Block\Checkout\LayoutProcessorInterface; +use Magento\Framework\Json\Encoder; +use Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions; +use Magento\Quote\Model\Quote\Item; + +class GiftOptionsTest extends \PHPUnit_Framework_TestCase +{ + /** @var GiftOptions */ + protected $model; + + /** @var Context|\PHPUnit_Framework_MockObject_MockObject */ + protected $contextMock; + + /** @var LayoutProcessorInterface|\PHPUnit_Framework_MockObject_MockObject */ + protected $layoutProcessorMock; + + /** @var Encoder|\PHPUnit_Framework_MockObject_MockObject */ + protected $jsonEncoderMock; + + /** @var array */ + protected $jsLayout = ['root' => 'node']; + + public function setUp() + { + $this->contextMock = $this->getMockBuilder('Magento\Backend\Block\Template\Context') + ->disableOriginalConstructor() + ->getMock(); + + $this->jsonEncoderMock = $this->getMockBuilder('Magento\Framework\Json\Encoder') + ->disableOriginalConstructor() + ->getMock(); + + $this->compositeConfigProvider = $this->getMockBuilder('Magento\Checkout\Model\CompositeConfigProvider') + ->disableOriginalConstructor() + ->getMock(); + + $this->layoutProcessorMock = $this->getMockBuilder('Magento\Checkout\Block\Checkout\LayoutProcessorInterface') + ->disableOriginalConstructor() + ->getMockForAbstractClass(); + + $this->model = new GiftOptions( + $this->contextMock, + $this->jsonEncoderMock, + [$this->layoutProcessorMock], + ['jsLayout' => $this->jsLayout] + ); + } + + public function testGetJsLayout() + { + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $this->layoutProcessorMock->expects($this->once()) + ->method('process') + ->with($this->jsLayout, $itemMock) + ->willReturnArgument(0); + + $this->jsonEncoderMock->expects($this->once()) + ->method('encode') + ->with($this->jsLayout) + ->willReturnArgument(0); + + $this->model->setItem($itemMock); + $this->assertEquals($this->jsLayout, $this->model->getJsLayout()); + } +} diff --git a/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/Item/Renderer/Actions/ItemIdProcessorTest.php b/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/Item/Renderer/Actions/ItemIdProcessorTest.php new file mode 100644 index 0000000000000000000000000000000000000000..3231c73acb741f51b7cad2b2bd12d46d5b349cce --- /dev/null +++ b/app/code/Magento/GiftMessage/Test/Unit/Block/Cart/Item/Renderer/Actions/ItemIdProcessorTest.php @@ -0,0 +1,73 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Test\Unit\Block\Cart\Item\Renderer\Actions; + +use Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\ItemIdProcessor; +use Magento\Quote\Model\Quote\Item; + +class ItemIdProcessorTest extends \PHPUnit_Framework_TestCase +{ + /** @var ItemIdProcessor */ + protected $model; + + public function setUp() + { + $this->model = new ItemIdProcessor(); + } + + /** + * @param int $itemId + * @param array $jsLayout + * @param array $result + * @dataProvider dataProviderProcess + */ + public function testProcess($itemId, array $jsLayout, array $result) + { + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + $itemMock->expects($this->any()) + ->method('getId') + ->willReturn($itemId); + + $this->assertEquals($result, $this->model->process($jsLayout, $itemMock)); + } + + public function dataProviderProcess() + { + return [ + [ + 12, + ['components' => []], + ['components' => []], + ], + [ + 21, + ['components' => ['giftOptionsCartItem' => []]], + ['components' => ['giftOptionsCartItem-21' => ['config' => ['itemId' => 21]]]], + ], + [ + 23, + ['components' => ['giftOptionsCartItem' => ['config' => ['key' => 'value']]]], + ['components' => ['giftOptionsCartItem-23' => ['config' => ['key' => 'value', 'itemId' => 23]]]], + ], + [ + 23, + ['components' => ['giftOptionsCartItem' => ['config' => ['key' => 'value'], 'key2' => 'value2']]], + [ + 'components' => [ + 'giftOptionsCartItem-23' => [ + 'config' => ['key' => 'value', 'itemId' => 23], 'key2' => 'value2' + ] + ] + ], + ], + ]; + } +} diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php index 6974c1f131cda2f511408dde59205c496619a7a1..2998ba06c7614c722c80bfc5e6a68abfc7266500 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/CartRepositoryTest.php @@ -4,9 +4,10 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - namespace Magento\GiftMessage\Test\Unit\Model; +// @codingStandardsIgnoreFile + use Magento\GiftMessage\Model\CartRepository; class CartRepositoryTest extends \PHPUnit_Framework_TestCase diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/GiftMessageManagerTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/GiftMessageManagerTest.php index e44dca6dec3c1d412b24f7110c0a695893267aa6..e578198b12162cdef6f6e7035dce7e48596aa053 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/GiftMessageManagerTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/GiftMessageManagerTest.php @@ -48,16 +48,6 @@ class GiftMessageManagerTest extends \PHPUnit_Framework_TestCase */ protected $giftMessageMock; - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $billingAddressMock; - - /** - * @var \PHPUnit_Framework_MockObject_MockObject - */ - protected $shippingAddressMock; - protected function setUp() { $this->messageFactoryMock = @@ -131,10 +121,6 @@ class GiftMessageManagerTest extends \PHPUnit_Framework_TestCase '', false); - $this->billingAddressMock = - $this->getMock('\Magento\Sales\Model\Quote\Address', ['getCountryId', '__wakeup'], [], '', false); - $this->shippingAddressMock = - $this->getMock('\Magento\Sales\Model\Quote\Address', ['getCountryId', '__wakeup'], [], '', false); $this->model = new \Magento\GiftMessage\Model\GiftMessageManager($this->messageFactoryMock); } @@ -332,52 +318,12 @@ class GiftMessageManagerTest extends \PHPUnit_Framework_TestCase $this->model->add($giftMessages, $this->quoteMock); } - /** - * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException - * @expectedExceptionMessage Billing address is not set - */ - public function testSetMessageEmptyBillingAddressException() - { - $this->quoteMock->expects($this->once()) - ->method('getBillingAddress') - ->will($this->returnValue($this->billingAddressMock)); - $this->billingAddressMock->expects($this->once())->method('getCountryId')->will($this->returnValue(null)); - - $this->model->setMessage($this->quoteMock, 'item', $this->giftMessageMock); - } - - /** - * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException - * @expectedExceptionMessage Shipping address is not set - */ - public function testSetMessageEmptyShippingAddressException() - { - $this->quoteMock->expects($this->once()) - ->method('getBillingAddress') - ->will($this->returnValue($this->billingAddressMock)); - $this->billingAddressMock->expects($this->any())->method('getCountryId')->will($this->returnValue(12)); - $this->quoteMock->expects($this->once()) - ->method('getShippingAddress') - ->will($this->returnValue($this->shippingAddressMock)); - $this->shippingAddressMock->expects($this->any())->method('getCountryId')->will($this->returnValue(null)); - - $this->model->setMessage($this->quoteMock, 'item', $this->giftMessageMock); - } - /** * @expectedException \Magento\Framework\Exception\CouldNotSaveException * @expectedExceptionMessage Could not add gift message to shopping cart */ public function testSetMessageCouldNotAddGiftMessageException() { - $this->quoteMock->expects($this->once()) - ->method('getBillingAddress') - ->will($this->returnValue($this->billingAddressMock)); - $this->billingAddressMock->expects($this->once())->method('getCountryId')->will($this->returnValue(12)); - $this->quoteMock->expects($this->once()) - ->method('getShippingAddress') - ->will($this->returnValue($this->shippingAddressMock)); - $this->shippingAddressMock->expects($this->once())->method('getCountryId')->will($this->returnValue(13)); $this->giftMessageMock->expects($this->once())->method('getSender')->will($this->returnValue('sender')); $this->giftMessageMock->expects($this->once())->method('getRecipient')->will($this->returnValue('recipient')); $this->giftMessageMock->expects($this->once())->method('getMessage')->will($this->returnValue('Message')); @@ -388,5 +334,4 @@ class GiftMessageManagerTest extends \PHPUnit_Framework_TestCase $this->model->setMessage($this->quoteMock, 'item', $this->giftMessageMock); } - } diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/GuestCartRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/GuestCartRepositoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..8344cdd7541ee114dd203e62a4357fe93106344d --- /dev/null +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/GuestCartRepositoryTest.php @@ -0,0 +1,122 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Test\Unit\Model; + +// @codingStandardsIgnoreFile + +use Magento\GiftMessage\Api\Data\MessageInterface; +use Magento\GiftMessage\Model\ItemRepository; +use Magento\GiftMessage\Model\GuestItemRepository; +use Magento\Quote\Model\QuoteIdMask; +use Magento\Quote\Model\QuoteIdMaskFactory; + +class GuestCartRepositoryTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var GuestItemRepository + */ + protected $model; + + /** + * @var ItemRepository|\PHPUnit_Framework_MockObject_MockObject + */ + protected $repositoryMock; + + /** + * @var QuoteIdMaskFactory|\PHPUnit_Framework_MockObject_MockObject + */ + protected $quoteIdMaskFactoryMock; + + protected function setUp() + { + $this->repositoryMock = $this->getMockBuilder('Magento\GiftMessage\Model\ItemRepository') + ->disableOriginalConstructor() + ->getMock(); + + $this->quoteIdMaskFactoryMock = $this->getMockBuilder('Magento\Quote\Model\QuoteIdMaskFactory') + ->disableOriginalConstructor() + ->setMethods(['create']) + ->getMockForAbstractClass(); + + $this->model = new GuestItemRepository( + $this->repositoryMock, + $this->quoteIdMaskFactoryMock + ); + } + + public function testGet() + { + $cartId = 'jIUggbo76'; + $quoteId = 123; + $itemId = 234; + + /** @var QuoteIdMask|\PHPUnit_Framework_MockObject_MockObject $quoteIdMaskMock */ + $quoteIdMaskMock = $this->getMockBuilder('Magento\Quote\Model\QuoteIdMask') + ->setMethods(['getQuoteId', 'load']) + ->disableOriginalConstructor() + ->getMock(); + + $this->quoteIdMaskFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($quoteIdMaskMock); + + $quoteIdMaskMock->expects($this->once()) + ->method('load') + ->with($cartId, 'masked_id') + ->willReturnSelf(); + $quoteIdMaskMock->expects($this->once()) + ->method('getQuoteId') + ->willReturn($quoteId); + + /** @var MessageInterface|\PHPUnit_Framework_MockObject_MockObject $messageMock */ + $messageMock = $this->getMockBuilder('Magento\GiftMessage\Api\Data\MessageInterface') + ->getMockForAbstractClass(); + + $this->repositoryMock->expects($this->once()) + ->method('get') + ->with($quoteId, $itemId) + ->willReturn($messageMock); + + $this->assertEquals($messageMock, $this->model->get($cartId, $itemId)); + } + + public function testSave() + { + $cartId = 'jIUggbo76'; + $quoteId = 123; + $itemId = 234; + + /** @var QuoteIdMask|\PHPUnit_Framework_MockObject_MockObject $quoteIdMaskMock */ + $quoteIdMaskMock = $this->getMockBuilder('Magento\Quote\Model\QuoteIdMask') + ->setMethods(['getQuoteId', 'load']) + ->disableOriginalConstructor() + ->getMock(); + + $this->quoteIdMaskFactoryMock->expects($this->once()) + ->method('create') + ->willReturn($quoteIdMaskMock); + + $quoteIdMaskMock->expects($this->once()) + ->method('load') + ->with($cartId, 'masked_id') + ->willReturnSelf(); + $quoteIdMaskMock->expects($this->once()) + ->method('getQuoteId') + ->willReturn($quoteId); + + /** @var MessageInterface|\PHPUnit_Framework_MockObject_MockObject $messageMock */ + $messageMock = $this->getMockBuilder('Magento\GiftMessage\Api\Data\MessageInterface') + ->getMockForAbstractClass(); + + $this->repositoryMock->expects($this->once()) + ->method('save') + ->with($quoteId, $messageMock, $itemId) + ->willReturn(true); + + $this->assertTrue($this->model->save($cartId, $messageMock, $itemId)); + } +} diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..ec445ead2172ac058ed07506cd31d995d844593c --- /dev/null +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/GuestItemRepositoryTest.php @@ -0,0 +1,225 @@ +<?php +/** + * + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Test\Unit\Model; + +// @codingStandardsIgnoreFile + +use Magento\GiftMessage\Model\ItemRepository; + +class GuestItemRepositoryTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var ItemRepository + */ + protected $itemRepository; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $quoteRepositoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageFactoryMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $quoteMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $messageMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $quoteItemMock; + + /** + * @var string + */ + protected $cartId = 13; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $storeManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $giftMessageManagerMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $helperMock; + + /** + * @var \PHPUnit_Framework_MockObject_MockObject + */ + protected $storeMock; + + protected function setUp() + { + $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Model\QuoteRepository', [], [], '', false); + $this->messageFactoryMock = $this->getMock( + 'Magento\GiftMessage\Model\MessageFactory', + [ + 'create', + '__wakeup' + ], + [], + '', + false + ); + $this->messageMock = $this->getMock('Magento\GiftMessage\Model\Message', [], [], '', false); + $this->quoteItemMock = $this->getMock( + '\Magento\Qote\Model\Quote\Item', + [ + 'getGiftMessageId', + '__wakeup' + ], + [], + '', + false + ); + $this->quoteMock = $this->getMock( + '\Magento\Quote\Model\Quote', + [ + 'getGiftMessageId', + 'getItemById', + '__wakeup', + ], + [], + '', + false + ); + $this->storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface'); + $this->giftMessageManagerMock = + $this->getMock('Magento\GiftMessage\Model\GiftMessageManager', [], [], '', false); + $this->helperMock = $this->getMock('Magento\GiftMessage\Helper\Message', [], [], '', false); + $this->storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false); + $this->itemRepository = new \Magento\GiftMessage\Model\ItemRepository( + $this->quoteRepositoryMock, + $this->storeManagerMock, + $this->giftMessageManagerMock, + $this->helperMock, + $this->messageFactoryMock + ); + + $this->quoteRepositoryMock->expects($this->once()) + ->method('getActive') + ->with($this->cartId) + ->will($this->returnValue($this->quoteMock)); + } + + /** + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + * @expectedExceptionMessage There is no item with provided id in the cart + */ + public function testGetWithNoSuchEntityException() + { + $itemId = 2; + + $this->quoteMock->expects($this->once())->method('getItemById')->with($itemId)->will($this->returnValue(null)); + + $this->itemRepository->get($this->cartId, $itemId); + } + + public function testGetWithoutMessageId() + { + $messageId = 0; + $itemId = 2; + + $this->quoteMock->expects($this->once()) + ->method('getItemById') + ->with($itemId) + ->will($this->returnValue($this->quoteItemMock)); + $this->quoteItemMock->expects($this->once())->method('getGiftMessageId')->will($this->returnValue($messageId)); + + $this->assertNull($this->itemRepository->get($this->cartId, $itemId)); + } + + public function testGet() + { + $messageId = 123; + $itemId = 2; + + $this->quoteMock->expects($this->once()) + ->method('getItemById') + ->with($itemId) + ->will($this->returnValue($this->quoteItemMock)); + $this->quoteItemMock->expects($this->once())->method('getGiftMessageId')->will($this->returnValue($messageId)); + $this->messageFactoryMock->expects($this->once()) + ->method('create') + ->will($this->returnValue($this->messageMock)); + $this->messageMock->expects($this->once()) + ->method('load') + ->with($messageId) + ->will($this->returnValue($this->messageMock)); + + $this->assertEquals($this->messageMock, $this->itemRepository->get($this->cartId, $itemId)); + } + + /** + * @expectedException \Magento\Framework\Exception\NoSuchEntityException + * @expectedExceptionMessage There is no product with provided itemId: 1 in the cart + */ + public function testSaveWithNoSuchEntityException() + { + $itemId = 1; + + $this->quoteMock->expects($this->once())->method('getItemById')->with($itemId)->will($this->returnValue(null)); + + $this->itemRepository->save($this->cartId, $this->messageMock, $itemId); + } + + /** + * @expectedException \Magento\Framework\Exception\State\InvalidTransitionException + * @expectedExceptionMessage Gift Messages is not applicable for virtual products + */ + public function testSaveWithInvalidTransitionException() + { + $itemId = 1; + + $quoteItem = $this->getMock('\Magento\Sales\Model\Quote\Item', ['getIsVirtual', '__wakeup'], [], '', false); + $this->quoteMock->expects($this->once()) + ->method('getItemById') + ->with($itemId) + ->will($this->returnValue($quoteItem)); + $quoteItem->expects($this->once())->method('getIsVirtual')->will($this->returnValue(1)); + + $this->itemRepository->save($this->cartId, $this->messageMock, $itemId); + } + + public function testSave() + { + $itemId = 1; + + $quoteItem = $this->getMock('\Magento\Sales\Model\Quote\Item', ['getIsVirtual', '__wakeup'], [], '', false); + $this->quoteMock->expects($this->once()) + ->method('getItemById') + ->with($itemId) + ->will($this->returnValue($quoteItem)); + $quoteItem->expects($this->once())->method('getIsVirtual')->will($this->returnValue(0)); + $this->storeManagerMock->expects($this->once())->method('getStore')->will($this->returnValue($this->storeMock)); + $this->helperMock->expects($this->once()) + ->method('isMessagesAllowed') + ->with('items', $this->quoteMock, $this->storeMock) + ->will($this->returnValue(true)); + $this->giftMessageManagerMock->expects($this->once()) + ->method('setMessage') + ->with($this->quoteMock, 'quote_item', $this->messageMock, $itemId) + ->will($this->returnValue($this->giftMessageManagerMock)); + + $this->assertTrue($this->itemRepository->save($this->cartId, $this->messageMock, $itemId)); + } +} diff --git a/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php b/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php index 5caa71f1b2bd2a492dc92b99c63c92970169d1bf..ed3f45fd157b4b63a7e747d3172c60e02921aafc 100644 --- a/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php +++ b/app/code/Magento/GiftMessage/Test/Unit/Model/ItemRepositoryTest.php @@ -4,9 +4,10 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - namespace Magento\GiftMessage\Test\Unit\Model; +// @codingStandardsIgnoreFile + use Magento\GiftMessage\Model\ItemRepository; class ItemRepositoryTest extends \PHPUnit_Framework_TestCase diff --git a/app/code/Magento/GiftMessage/etc/di.xml b/app/code/Magento/GiftMessage/etc/di.xml index 6d3a903c6804546afbb95cc7805b746d5acd6e39..47a6c71f15a4028fed977849abe9e3f1e1221219 100644 --- a/app/code/Magento/GiftMessage/etc/di.xml +++ b/app/code/Magento/GiftMessage/etc/di.xml @@ -15,6 +15,8 @@ </type> <preference for="Magento\GiftMessage\Api\CartRepositoryInterface" type="Magento\GiftMessage\Model\CartRepository"/> <preference for="Magento\GiftMessage\Api\ItemRepositoryInterface" type="Magento\GiftMessage\Model\ItemRepository"/> + <preference for="Magento\GiftMessage\Api\GuestCartRepositoryInterface" type="Magento\GiftMessage\Model\GuestCartRepository"/> + <preference for="Magento\GiftMessage\Api\GuestItemRepositoryInterface" type="Magento\GiftMessage\Model\GuestItemRepository"/> <preference for="Magento\GiftMessage\Api\OrderRepositoryInterface" type="Magento\GiftMessage\Model\OrderRepository"/> <preference for="Magento\GiftMessage\Api\OrderItemRepositoryInterface" type="Magento\GiftMessage\Model\OrderItemRepository"/> <preference for="Magento\GiftMessage\Api\Data\MessageInterface" type="Magento\GiftMessage\Model\Message"/> @@ -26,7 +28,4 @@ <plugin name="save_gift_message" type="Magento\GiftMessage\Model\Plugin\OrderSave"/> <plugin name="get_gift_message" type="Magento\GiftMessage\Model\Plugin\OrderGet"/> </type> - <type name="\Magento\Quote\Model\Cart\TotalsAdditionalDataProcessor"> - <plugin name="gift_message_processor" type="Magento\GiftMessage\Model\Plugin\TotalsDataProcessorPlugin" /> - </type> </config> diff --git a/app/code/Magento/GiftMessage/etc/frontend/di.xml b/app/code/Magento/GiftMessage/etc/frontend/di.xml index 36f49a653bd335290781925b7db55593cbc5efe9..faa2f043fe6059d83e3bd1dc97f92c25f6553be9 100644 --- a/app/code/Magento/GiftMessage/etc/frontend/di.xml +++ b/app/code/Magento/GiftMessage/etc/frontend/di.xml @@ -29,11 +29,18 @@ <type name="Magento\Multishipping\Model\Checkout\Type\Multishipping"> <plugin name="save_gift_messages" type="Magento\GiftMessage\Model\Type\Plugin\Multishipping"/> </type> - <type name="Magento\Checkout\Model\CompositeConfigProvider"> + <type name="Magento\GiftMessage\Model\CompositeConfigProvider"> <arguments> <argument name="configProviders" xsi:type="array"> <item name="gift_message_config_provider" xsi:type="object">Magento\GiftMessage\Model\GiftMessageConfigProvider</item> </argument> </arguments> </type> + <type name="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions"> + <arguments> + <argument name="layoutProcessors" xsi:type="array"> + <item name="itemIdProcessor" xsi:type="object">Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\ItemIdProcessor</item> + </argument> + </arguments> + </type> </config> diff --git a/app/code/Magento/GiftMessage/etc/webapi.xml b/app/code/Magento/GiftMessage/etc/webapi.xml index c5dd571a7ac105813159525195c8074be14be8c6..bb0b2f0795634c0b1f798c27883a042dfdc72939 100644 --- a/app/code/Magento/GiftMessage/etc/webapi.xml +++ b/app/code/Magento/GiftMessage/etc/webapi.xml @@ -7,6 +7,7 @@ --> <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd"> + <!-- For authorized customer --> <route url="/V1/carts/:cartId/gift-message" method="GET"> <service class="Magento\GiftMessage\Api\CartRepositoryInterface" method="get"/> <resources> @@ -31,4 +32,68 @@ <resource ref="Magento_Sales::create" /> </resources> </route> + + <!-- For current customer --> + <route url="/V1/carts/mine/gift-message" method="GET"> + <service class="Magento\GiftMessage\Api\CartRepositoryInterface" method="get"/> + <resources> + <resource ref="self" /> + </resources> + <data> + <parameter name="cartId" force="true">%cart_id%</parameter> + </data> + </route> + <route url="/V1/carts/mine/gift-message/:itemId" method="GET"> + <service class="Magento\GiftMessage\Api\ItemRepositoryInterface" method="get"/> + <resources> + <resource ref="self" /> + </resources> + <data> + <parameter name="cartId" force="true">%cart_id%</parameter> + </data> + </route> + <route url="/V1/carts/mine/gift-message" method="POST"> + <service class="Magento\GiftMessage\Api\CartRepositoryInterface" method="save"/> + <resources> + <resource ref="self" /> + </resources> + <data> + <parameter name="cartId" force="true">%cart_id%</parameter> + </data> + </route> + <route url="/V1/carts/mine/gift-message/:itemId" method="POST"> + <service class="Magento\GiftMessage\Api\ItemRepositoryInterface" method="save"/> + <resources> + <resource ref="self" /> + </resources> + <data> + <parameter name="cartId" force="true">%cart_id%</parameter> + </data> + </route> + + <!-- For guests --> + <route url="/V1/guest-carts/:cartId/gift-message" method="GET"> + <service class="Magento\GiftMessage\Api\GuestCartRepositoryInterface" method="get"/> + <resources> + <resource ref="anonymous" /> + </resources> + </route> + <route url="/V1/guest-carts/:cartId/gift-message/:itemId" method="GET"> + <service class="Magento\GiftMessage\Api\GuestItemRepositoryInterface" method="get"/> + <resources> + <resource ref="anonymous" /> + </resources> + </route> + <route url="/V1/guest-carts/:cartId/gift-message" method="POST"> + <service class="Magento\GiftMessage\Api\GuestCartRepositoryInterface" method="save"/> + <resources> + <resource ref="anonymous" /> + </resources> + </route> + <route url="/V1/guest-carts/:cartId/gift-message/:itemId" method="POST"> + <service class="Magento\GiftMessage\Api\GuestItemRepositoryInterface" method="save"/> + <resources> + <resource ref="anonymous" /> + </resources> + </route> </routes> diff --git a/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_index.xml b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_index.xml new file mode 100644 index 0000000000000000000000000000000000000000..66e18b7a0f7f7ecb45b5e3ae98d5d2bc3b019cad --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_index.xml @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> + <body> + <referenceBlock name="checkout.cart.order.actions"> + <block class="Magento\GiftMessage\Block\Cart\GiftOptions" name="checkout.cart.order.actions.gift_options" template="cart/gift_options.phtml" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCart" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + </body> +</page> diff --git a/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml new file mode 100644 index 0000000000000000000000000000000000000000..b94cab5dace25517631f0034bdf5098ee867b64d --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_cart_item_renderers.xml @@ -0,0 +1,119 @@ +<?xml version="1.0"?> +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> + <body> + <referenceBlock name="checkout.cart.item.renderers.default.actions"> + <block class="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions" name="checkout.cart.item.renderers.default.actions.gift_options" template="cart/item/renderer/actions/gift_options.phtml" before="-" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCartItem" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message-item-level</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.simple.actions"> + <block class="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions" name="checkout.cart.item.renderers.simple.actions.gift_options" template="cart/item/renderer/actions/gift_options.phtml" before="-" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCartItem" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message-item-level</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.bundle.actions"> + <block class="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions" name="checkout.cart.item.renderers.bundle.actions.gift_options" template="cart/item/renderer/actions/gift_options.phtml" before="-" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCartItem" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message-item-level</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.grouped.actions"> + <block class="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions" name="checkout.cart.item.renderers.grouped.actions.gift_options" template="cart/item/renderer/actions/gift_options.phtml" before="-" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCartItem" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message-item-level</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.configurable.actions"> + <block class="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions" name="checkout.cart.item.renderers.configurable.actions.gift_options" template="cart/item/renderer/actions/gift_options.phtml" before="-" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCartItem" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message-item-level</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.gift-card.actions"> + <block class="Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions" name="checkout.cart.item.renderers.gift-card.actions.gift_options" template="cart/item/renderer/actions/gift_options.phtml" before="-" cacheable="false"> + <arguments> + <argument name="jsLayout" xsi:type="array"> + <item name="types" xsi:type="array"/> + <item name="components" xsi:type="array"> + <item name="giftOptionsCartItem" xsi:type="array"> + <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-message</item> + <item name="config" xsi:type="array"> + <item name="template" xsi:type="string">Magento_GiftMessage/gift-message-item-level</item> + <item name="formTemplate" xsi:type="string">Magento_GiftMessage/gift-message-form</item> + </item> + </item> + </item> + </argument> + </arguments> + </block> + </referenceBlock> + </body> +</page> diff --git a/app/code/Magento/GiftMessage/view/frontend/layout/checkout_onepage_index.xml b/app/code/Magento/GiftMessage/view/frontend/layout/checkout_onepage_index.xml deleted file mode 100644 index fbaba91cb60ea62a5639373e4b8af76e39a5e3e0..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/layout/checkout_onepage_index.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0"?> -<!-- -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> - <body> - <referenceBlock name="checkout.root"> - <arguments> - <argument name="jsLayout" xsi:type="array"> - <item name="components" xsi:type="array"> - <item name="checkout" xsi:type="array"> - <item name="children" xsi:type="array"> - <item name="steps" xsi:type="array"> - <item name="children" xsi:type="array"> - <item name="shipping" xsi:type="array"> - <item name="children" xsi:type="array"> - <item name="additional" xsi:type="array"> - <item name="component" xsi:type="string">Magento_GiftMessage/js/view/gift-options</item> - <item name="children" xsi:type="array"> - <item name="orderLevelGiftMessage" xsi:type="array"> - <item name="component" xsi:type="string">Magento_GiftMessage/js/view/order-level-gift-message</item> - </item> - <item name="itemLevelGiftMessage" xsi:type="array"> - <item name="component" xsi:type="string">Magento_GiftMessage/js/view/item-level-gift-message</item> - </item> - </item> - </item> - </item> - </item> - </item> - </item> - </item> - </item> - </item> - </argument> - </arguments> - </referenceBlock> - </body> -</page> diff --git a/app/code/Magento/GiftMessage/view/frontend/templates/Cart/gift_options.phtml b/app/code/Magento/GiftMessage/view/frontend/templates/Cart/gift_options.phtml new file mode 100644 index 0000000000000000000000000000000000000000..af4d469a652daaa72c47a607c3769106254da609 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/templates/Cart/gift_options.phtml @@ -0,0 +1,19 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +?> +<div id="gift-options-cart" data-bind="scope:'giftOptionsCart'"> + <!-- ko template: getTemplate() --><!-- /ko --> + <script type="text/x-magento-init"> + { + "#gift-options-cart": { + "Magento_Ui/js/core/app": <?php echo $block->getJsLayout();?> + } + } + </script> + <script> + window.giftOptionsConfig = <?php echo $block->getGiftOptionsConfigJson(); ?>; + </script> +</div> diff --git a/app/code/Magento/GiftMessage/view/frontend/templates/Cart/item/renderer/actions/gift_options.phtml b/app/code/Magento/GiftMessage/view/frontend/templates/Cart/item/renderer/actions/gift_options.phtml new file mode 100644 index 0000000000000000000000000000000000000000..18086f43ed9dae7c913a9b9ed48d7afa98a43d28 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/templates/Cart/item/renderer/actions/gift_options.phtml @@ -0,0 +1,23 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +// @codingStandardsIgnoreFile + +/** @var $block \Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions */ +?> +<?php if (!$block->isVirtual()): ?> + <div id="gift-options-cart-item-<?php echo $block->getItem()->getId() ?>" + data-bind="scope:'giftOptionsCartItem-<?php echo $block->getItem()->getId() ?>'"> + <!-- ko template: getTemplate() --><!-- /ko --> + <script type="text/x-magento-init"> + { + "#gift-options-cart-item-<?php echo $block->getItem()->getId() ?>": { + "Magento_Ui/js/core/app": <?php echo $block->getJsLayout();?> + } + } + </script> + </div> +<?php endif ?> diff --git a/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml b/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml new file mode 100644 index 0000000000000000000000000000000000000000..af4d469a652daaa72c47a607c3769106254da609 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/templates/cart/gift_options.phtml @@ -0,0 +1,19 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +?> +<div id="gift-options-cart" data-bind="scope:'giftOptionsCart'"> + <!-- ko template: getTemplate() --><!-- /ko --> + <script type="text/x-magento-init"> + { + "#gift-options-cart": { + "Magento_Ui/js/core/app": <?php echo $block->getJsLayout();?> + } + } + </script> + <script> + window.giftOptionsConfig = <?php echo $block->getGiftOptionsConfigJson(); ?>; + </script> +</div> diff --git a/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml b/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml new file mode 100644 index 0000000000000000000000000000000000000000..10388eabe38174c6c1d0cc9fff8ede649067f860 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/templates/cart/item/renderer/actions/gift_options.phtml @@ -0,0 +1,24 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +// @codingStandardsIgnoreFile + +/** @var $block \Magento\GiftMessage\Block\Cart\Item\Renderer\Actions\GiftOptions */ +?> +<?php if (!$block->isVirtual()): ?> + <div id="gift-options-cart-item-<?php echo $block->getItem()->getId() ?>" + data-bind="scope:'giftOptionsCartItem-<?php echo $block->getItem()->getId() ?>'" + class="gift-options-cart-item"> + <!-- ko template: getTemplate() --><!-- /ko --> + <script type="text/x-magento-init"> + { + "#gift-options-cart-item-<?php echo $block->getItem()->getId() ?>": { + "Magento_Ui/js/core/app": <?php echo $block->getJsLayout();?> + } + } + </script> + </div> +<?php endif ?> diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/action/gift-options.js b/app/code/Magento/GiftMessage/view/frontend/web/js/action/gift-options.js new file mode 100644 index 0000000000000000000000000000000000000000..4896aeb00b5b87c57ad90cdcc86c26e68da0b794 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/action/gift-options.js @@ -0,0 +1,57 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +/*global define*/ +define( + [ + '../model/url-builder', + 'mage/storage', + 'Magento_Ui/js/model/errorlist', + 'mage/url' + ], + function(urlBuilder, storage, errorList, url) { + "use strict"; + return function(giftMessage, remove) { + url.setBaseUrl(giftMessage.getConfigValue('baseUrl')); + var quoteId = giftMessage.getConfigValue('quoteId'); + var serviceUrl; + if (giftMessage.getConfigValue('isCustomerLoggedIn')) { + serviceUrl = urlBuilder.createUrl('/carts/mine/gift-message', {}); + if (giftMessage.itemId != 'orderLevel') { + serviceUrl = urlBuilder.createUrl('/carts/mine/gift-message/:itemId', {itemId: giftMessage.itemId}); + } + } else { + serviceUrl = urlBuilder.createUrl('/guest-carts/:cartId/gift-message', {cartId: quoteId}); + if (giftMessage.itemId != 'orderLevel') { + serviceUrl = urlBuilder.createUrl( + '/guest-carts/:cartId/gift-message/:itemId', + {cartId: quoteId, itemId: giftMessage.itemId} + ); + } + } + errorList.clear(); + + storage.post( + serviceUrl, + JSON.stringify({ + gift_message: giftMessage.getSubmitParams(remove) + }) + ).done( + function(result) { + giftMessage.reset(); + _.each(giftMessage.getAfterSubmitCallbacks(), function(callback) { + if (_.isFunction(callback)) { + callback(); + } + }); + } + ).fail( + function(response) { + var error = JSON.parse(response.responseText); + errorList.add(error); + } + ); + }; + } +); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js index d5f0e072c77132c455ae521560f4c5f7522d92b7..ad91613b1364535ec43548e251bb46fefb67ec5f 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-message.js @@ -3,57 +3,107 @@ * See COPYING.txt for license details. */ /*global define*/ -define(['underscore', './gift-options'], - function(_, giftOptions) { +define(['Magento_Ui/js/lib/component/provider', 'underscore', 'mage/url'], + function (provider, _, url) { "use strict"; - var itemLevelDefaultMessages, orderLevelDefaultMessage, - isItemLevelGiftOptionsSelected = false, - isOrderLevelGiftOptionsSelected = false, - isGiftOptionsSelected = false; - if (giftOptions.isItemLevelGiftOptionsEnabled() && _.isObject(window.checkoutConfig.giftMessage.itemLevel)) { - itemLevelDefaultMessages = window.checkoutConfig.giftMessage.itemLevel; - isItemLevelGiftOptionsSelected = true; - isGiftOptionsSelected = true; - } - if (giftOptions.isOrderLevelGiftOptionsEnabled() && _.isObject(window.checkoutConfig.giftMessage.orderLevel)) { - orderLevelDefaultMessage = window.checkoutConfig.giftMessage.orderLevel; - isOrderLevelGiftOptionsSelected = true; - isGiftOptionsSelected = true; - } - return { - getDefaultMessageForItem: function(itemId) { - if (_.isObject(itemLevelDefaultMessages) && itemLevelDefaultMessages.hasOwnProperty(itemId)) { - return { - from: itemLevelDefaultMessages[itemId].sender, - to: itemLevelDefaultMessages[itemId].recipient, - message: itemLevelDefaultMessages[itemId].message - }; + return function (itemId) { + var model = { + id: 'message-' + itemId, + itemId: itemId, + observables: {}, + additionalOptions: [], + submitParams: [ + 'recipient', + 'sender', + 'message' + ], + initialize: function() { + this.getObservable('alreadyAdded')(false); + var message = false; + + if (this.itemId == 'orderLevel') { + message = window.giftOptionsConfig.giftMessage.hasOwnProperty(this.itemId) + ? window.giftOptionsConfig.giftMessage[this.itemId] + : null; + } else { + message = + window.giftOptionsConfig.giftMessage.hasOwnProperty('itemLevel') + && window.giftOptionsConfig.giftMessage['itemLevel'].hasOwnProperty(this.itemId) + ? window.giftOptionsConfig.giftMessage['itemLevel'][this.itemId] + : null; + } + if (_.isObject(message)) { + this.getObservable('recipient')(message.recipient); + this.getObservable('sender')(message.sender); + this.getObservable('message')(message.message); + this.getObservable('alreadyAdded')(true); + } + }, + getObservable: function(key) { + this.initObservable(this.id, key); + return provider[this.getUniqueKey(this.id, key)]; + }, + initObservable: function(node, key) { + if (node && !this.observables.hasOwnProperty(node)) { + this.observables[node] = []; + } + if (key && this.observables[node].indexOf(key) == -1) { + this.observables[node].push(key); + provider.observe(this.getUniqueKey(node, key)); + } + }, + getUniqueKey: function(node, key) { + return node + '-' + key; + }, + getConfigValue: function(key) { + return window.giftOptionsConfig.hasOwnProperty(key) ? + window.giftOptionsConfig[key] + : null; + }, + reset: function() { + this.getObservable('isClear')(true); + }, + getAfterSubmitCallbacks: function() { + var callbacks = []; + callbacks.push(this.afterSubmit); + _.each(this.additionalOptions, function(option) { + if (_.isFunction(option.afterSubmit)) { + callbacks.push(option.afterSubmit); + } + }); + return callbacks; + }, + afterSubmit: function() { + window.location.href = url.build('checkout/cart/updatePost') + + '?form_key=' + window.giftOptionsConfig.giftMessage.formKey + + '&cart[]'; + }, + getSubmitParams: function(remove) { + var params = {}, + self = this; + _.each(this.submitParams, function(key) { + var observable = provider[self.getUniqueKey(self.id, key)]; + if (_.isFunction(observable)) { + params[key] = remove ? null : observable(); + } + }); + + if(this.additionalOptions.length) { + params['extension_attributes'] = {}; + } + _.each(this.additionalOptions, function(option) { + if (_.isFunction(option.getSubmitParams)) { + params['extension_attributes'] = _.extend( + params['extension_attributes'], + option.getSubmitParams(remove) + ); + } + }); + return params; } - return { - from: null, to: null, message: null - }; - }, - getDefaultMessageForQuote: function() { - if (orderLevelDefaultMessage) { - return { - from: orderLevelDefaultMessage.sender, - to: orderLevelDefaultMessage.recipient, - message: orderLevelDefaultMessage.message - }; - } - return { - from: null, to: null, message: null - }; - }, - isGiftOptionsSelected: function() { - return isGiftOptionsSelected; - }, - isItemLevelGiftOptionsSelected: function() { - return isItemLevelGiftOptionsSelected; - }, - isOrderLevelGiftOptionsSelected: function() { - return isOrderLevelGiftOptionsSelected; - } - }; + }; + model.initialize(); + return model; + } } ); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-options.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-options.js index 000bf4b508e32c54442401024877cdb2e396279a..187f17e5b3962788ba0eb03a95858e4672d27c7b 100644 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-options.js +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/gift-options.js @@ -4,59 +4,18 @@ */ /*global define*/ define(['underscore'], - function(_) { + function (_) { "use strict"; - var isOrderLevelGiftOptionsEnabled = window.checkoutConfig.isOrderLevelGiftOptionsEnabled || false, - isItemLevelGiftOptionsEnabled = window.checkoutConfig.isItemLevelGiftOptionsEnabled || false; return { - orderLevelGiftOptions: [], - itemLevelGiftOptions: [], - extraGiftOptions: [], - isGiftOptionsAvailable: function() { - var isAvailable = isOrderLevelGiftOptionsEnabled || isItemLevelGiftOptionsEnabled; - - _.each(this.getExtraGiftOptions(), function(option){ - if (typeof option.isAvailable() === 'function') { - isAvailable = isAvailable || option.isAvailable(); - } - }); - - return isAvailable; - }, - isOrderLevelGiftOptionsEnabled: function() { - return isOrderLevelGiftOptionsEnabled; - }, - isItemLevelGiftOptionsEnabled: function() { - return isItemLevelGiftOptionsEnabled; - }, - getExtraGiftOptions: function() { - return this.getGiftOptions(this.extraGiftOptions); - }, - getOrderLevelGiftOptions: function() { - return this.getGiftOptions(this.orderLevelGiftOptions); - }, - getItemLevelGiftOptions: function() { - return this.getGiftOptions(this.itemLevelGiftOptions); - }, - getGiftOptions: function(options) { - return _.map( - _.sortBy(options, function(giftOption){ - return giftOption.sortOrder - }), - function(giftOption) { - return giftOption.option - } - ) - }, - setExtraGiftOptions: function (giftOption, sortOrder) { - this.extraGiftOptions.push({'option': giftOption, 'sortOrder': sortOrder}); - }, - addOrderLevelGiftOptions: function(giftOption, sortOrder) { - this.orderLevelGiftOptions.push({'option': giftOption, 'sortOrder': sortOrder}); - }, - addItemLevelGiftOptions: function(giftOption, sortOrder) { - this.itemLevelGiftOptions.push({'option': giftOption, 'sortOrder': sortOrder}); + options: [], + addOption: function(option) { + if(!this.options.hasOwnProperty(option.itemId)) { + this.options[option.itemId] = option; + } + }, + getOptionByItemId: function(itemId) { + return this.options.hasOwnProperty(itemId) ? this.options[itemId] : null; } - }; + } } ); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/model/url-builder.js b/app/code/Magento/GiftMessage/view/frontend/web/js/model/url-builder.js new file mode 100644 index 0000000000000000000000000000000000000000..ba62ba64f94d06356dc0bebffec378fb0b78c710 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/model/url-builder.js @@ -0,0 +1,38 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +/*jshint browser:true jquery:true*/ +/*global alert*/ +define( + ['jquery'], + function($) { + return { + method: "rest", + storeCode: window.giftOptionsConfig.storeCode, + version: 'V1', + serviceUrl: ':method/:storeCode/:version', + + createUrl: function(url, params) { + var completeUrl = this.serviceUrl + url; + return this.bindParams(completeUrl, params); + }, + bindParams: function(url, params) { + params.method = this.method; + params.storeCode = this.storeCode; + params.version = this.version; + + var urlParts = url.split("/"); + urlParts = urlParts.filter(Boolean); + + $.each(urlParts, function(key, part) { + part = part.replace(':', ''); + if (params[part] != undefined) { + urlParts[key] = params[part]; + } + }); + return urlParts.join('/'); + } + }; + } +); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/view/gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/view/gift-message.js new file mode 100644 index 0000000000000000000000000000000000000000..70a563cc3015afef902a93fff8471c40b255d5c9 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/web/js/view/gift-message.js @@ -0,0 +1,78 @@ +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +/*global define*/ +define(['uiComponent', '../model/gift-message', '../model/gift-options', '../action/gift-options'], + function (Component, giftMessage, giftOptions, giftOptionsService) { + "use strict"; + return Component.extend({ + formBlockVisibility: null, + resultBlockVisibility: null, + model: {}, + initialize: function() { + var self = this; + this._super() + .observe('formBlockVisibility') + .observe({'resultBlockVisibility': false}); + + this.itemId = this.itemId || 'orderLevel'; + var model = new giftMessage(this.itemId); + giftOptions.addOption(model); + this.model = model; + + this.model.getObservable('isClear').subscribe(function(value) { + if (value == true) { + self.formBlockVisibility(false); + self.model.getObservable('alreadyAdded')(true); + } + }); + + this.isResultBlockVisible(); + }, + isResultBlockVisible: function() { + var self = this; + if (this.model.getObservable('alreadyAdded')()) { + this.resultBlockVisibility(true); + } + this.model.getObservable('additionalOptionsApplied').subscribe(function(value) { + if (value == true) { + self.resultBlockVisibility(true); + } + }); + }, + getObservable: function(key) { + return this.model.getObservable(key); + }, + toggleFormBlockVisibility: function() { + if (!this.model.getObservable('alreadyAdded')()) { + this.formBlockVisibility(!this.formBlockVisibility()); + } + }, + editOptions: function() { + this.resultBlockVisibility(false); + this.formBlockVisibility(true); + }, + deleteOptions: function() { + giftOptionsService(this.model, true); + }, + hideFormBlock: function() { + this.formBlockVisibility(false); + if (this.model.getObservable('alreadyAdded')()) { + this.resultBlockVisibility(true); + } + }, + isActive: function() { + switch (this.itemId) { + case 'orderLevel': + return this.model.getConfigValue('isOrderLevelGiftOptionsEnabled') == true; + default: + return this.model.getConfigValue('isItemLevelGiftOptionsEnabled') == true; + } + }, + submitOptions: function() { + giftOptionsService(this.model); + } + }); + } +); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/view/gift-options.js b/app/code/Magento/GiftMessage/view/frontend/web/js/view/gift-options.js deleted file mode 100644 index f216daa41a6090523acd22cf302ffafcbf40cbd1..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/view/gift-options.js +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*global define*/ -define(['uiComponent', 'ko', '../model/gift-options', '../model/gift-message', 'Magento_Ui/js/model/errorlist'], - function (Component, ko, giftOptions, giftMessage, errorList) { - "use strict"; - - return Component.extend({ - defaults: { - template: 'Magento_GiftMessage/gift-options', - displayArea: 'shippingAdditional' - }, - options: [], - isGiftOptionsSelected: ko.observable(giftMessage.isGiftOptionsSelected()), - isOrderLevelGiftOptionsSelected: ko.observable(giftMessage.isOrderLevelGiftOptionsSelected()), - isItemLevelGiftOptionsSelected: ko.observable(giftMessage.isItemLevelGiftOptionsSelected()), - isGiftOptionsAvailable: function() { - return giftOptions.isGiftOptionsAvailable(); - }, - isOrderLevelGiftOptionsEnabled: function() { - return giftOptions.isOrderLevelGiftOptionsEnabled(); - }, - isItemLevelGiftOptionsEnabled: function() { - return giftOptions.isItemLevelGiftOptionsEnabled(); - }, - getOrderLevelGiftOptions: function() { - return this.filterOptions(giftOptions.getOrderLevelGiftOptions()); - }, - getItemLevelGiftOptions: function() { - return this.filterOptions(giftOptions.getItemLevelGiftOptions()); - }, - getExtraGiftOptions: function() { - return this.filterOptions(giftOptions.getExtraGiftOptions()); - }, - filterOptions: function(options) { - return _.filter(options, function(option) { - var result = true; - if (option.isDirectRendering !== 'undefined') { - result = !option.isDirectRendering; - } - return result; - } - ); - }, - collectOptions: function(giftOption, additionalFlag) { - if (!this.isAvailableForSubmiting(giftOption)) { - return false; - } - var self = this; - if (giftOption.optionType === 'undefined') { - errorList.add('You should define type of your custom option'); - } - - if (!this.options.hasOwnProperty(giftOption.optionType)) { - this.options[giftOption.optionType] = []; - } - - _.each(giftOption.submit(additionalFlag), function(optionItem) { - self.options[giftOption.optionType].push(optionItem); - }); - }, - isAvailableForSubmiting: function(option) { - return typeof option.isSubmit == 'undefined' || option.isSubmit ? true : false; - }, - submit: function() { - var self = this; - - var removeOrder = giftOptions.isItemLevelGiftOptionsEnabled() && this.isOrderLevelGiftOptionsEnabled() - && (!this.isGiftOptionsSelected() || !this.isOrderLevelGiftOptionsSelected()) - ? true - : false; - _.each(giftOptions.getOrderLevelGiftOptions(), function(option) { - self.collectOptions(option, removeOrder); - }); - - var removeItem = giftOptions.isItemLevelGiftOptionsEnabled() && this.isItemLevelGiftOptionsEnabled() - && (!this.isGiftOptionsSelected() || !this.isItemLevelGiftOptionsSelected()) - ? true - : false; - _.each(giftOptions.getItemLevelGiftOptions(), function(option) { - self.collectOptions(option, removeItem); - }); - - _.each(giftOptions.getExtraGiftOptions(), function(option) { - self.collectOptions(option); - }); - - var result = this.options; - this.options = []; - return result; - } - }); - } -); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/view/item-level-gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/view/item-level-gift-message.js deleted file mode 100644 index 05ef405b1feaa037798fe7f74912222cee74f0c9..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/view/item-level-gift-message.js +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*global define*/ -define(['uiComponent', 'ko', '../model/gift-options', 'Magento_Checkout/js/model/quote', '../model/gift-message'], - function (Component, ko, giftOptions, quote, giftMessage) { - "use strict"; - return Component.extend({ - defaults: { - template: 'Magento_GiftMessage/item-level-gift-message', - displayArea: 'itemLevelGiftMessage' - }, - messages: {}, - quoteItems: [], - quoteItemsCount: 0, - imagePlaceholder: window.checkoutConfig.staticBaseUrl + - '/frontend/Magento/blank/en_US/Magento_Catalog/images/product/placeholder/thumbnail.jpg', - optionType: 'gift_messages', - initialize: function() { - var item, - that = this, - quoteItems = quote.getItems(); - quote.getShippingAddress().subscribe(function(shippingAddress) { - var name = shippingAddress.firstname + ' ' + shippingAddress.lastname; - for (item in quoteItems) { - if (quoteItems.hasOwnProperty(item)) { - if (quoteItems[item].is_virtual === '0') { - var itemId = quoteItems[item].item_id; - that.messages[itemId] = { - from: ko.observable(giftMessage.getDefaultMessageForItem(itemId).from || name), - to: ko.observable(giftMessage.getDefaultMessageForItem(itemId).to || name), - message: ko.observable(giftMessage.getDefaultMessageForItem(itemId).message) - }; - quoteItems[item].isItemLevelGiftMessageVisible = ko.observable(false); - that.quoteItems.push(quoteItems[item]); - } - } - } - that.quoteItemsCount = that.quoteItems.length; - this.dispose(); - }); - this._super(); - giftOptions.addItemLevelGiftOptions(this); - }, - itemImages: ko.observableArray(), - setItemLevelGiftMessageHidden: function(data, event) { - event.preventDefault(); - if (data.hasOwnProperty('item_id')) { - this.isItemLevelGiftMessageVisible(!this.isItemLevelGiftMessageVisible()); - } - }, - submit: function(remove) { - remove = remove || false; - var itemId, - giftMessages = [], - that = this; - for (itemId in this.messages) { - if (that.messages.hasOwnProperty(itemId)) { - if (that.messages[itemId].message() !== null) { - giftMessages.push({ - sender: remove ? null : that.messages[itemId].from(), - recipient: remove ? null : that.messages[itemId].to(), - message: remove ? null : that.messages[itemId].message(), - extension_attributes: { - entity_id: itemId, - entity_type: 'item' - } - }); - } - } - } - return giftMessages; - } - }); - } -); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/js/view/order-level-gift-message.js b/app/code/Magento/GiftMessage/view/frontend/web/js/view/order-level-gift-message.js deleted file mode 100644 index 277f17a2b4277a61e30d6d9d9ac462f5fe4c2379..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/web/js/view/order-level-gift-message.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ -/*global define*/ -define([ - 'uiComponent', - 'ko', - '../model/gift-options', - 'Magento_Checkout/js/model/quote', - '../model/gift-message' - ], - function (Component, ko, giftOptions, quote, giftMessage) { - "use strict"; - return Component.extend({ - defaults: { - template: 'Magento_GiftMessage/order-level-gift-message', - displayArea: 'orderLevelGiftMessage' - }, - message: {}, - optionType: 'gift_messages', - initialize: function() { - var that = this; - quote.getShippingAddress().subscribe(function(shippingAddress) { - var customerName = shippingAddress.firstname + ' ' + shippingAddress.lastname; - that.message = { - from: ko.observable(giftMessage.getDefaultMessageForQuote().from || customerName), - to: ko.observable(giftMessage.getDefaultMessageForQuote().to || customerName), - message: ko.observable(giftMessage.getDefaultMessageForQuote().message) - }; - this.dispose(); - }); - this._super(); - giftOptions.addOrderLevelGiftOptions(this, 10); - }, - isOrderLevelGiftMessageVisible: ko.observable(false), - setOrderLevelGiftMessageVisible: function(data, event) { - event.preventDefault(); - this.isOrderLevelGiftMessageVisible(!this.isOrderLevelGiftMessageVisible()); - }, - quoteId: quote.entity_id, - submit: function(remove) { - remove = remove || false; - if (this.message.message() !== null) { - return [{ - sender: remove ? null : this.message.from(), - recipient: remove ? null : this.message.to(), - message: remove ? null : this.message.message(), - extension_attributes: { - entity_id: this.quoteId, - entity_type: 'quote' - } - }]; - } - return []; - } - }); - } -); diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-form.html b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-form.html new file mode 100644 index 0000000000000000000000000000000000000000..31cbc7e111aaee3a5b8a9191a68adb43010a45e7 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-form.html @@ -0,0 +1,63 @@ +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<div class="gift-message"> + <div class="gift-options-title"> + <span data-bind="text: $t('Gift Message (optional)')"></span> + </div> + <div class="gift-options-content"> + <fieldset class="fieldset"> + <div class="field field-to"> + <label for="gift-message-whole-to" class="label"> + <span data-bind="text: $t('To') + ':'"></span> + </label> + <div class="control"> + <input type="text" + id="gift-message-whole-to" + class="input-text" + data-bind="value: getObservable('recipient')"> + </div> + </div> + + <div class="field field-from"> + <label for="gift-message-whole-from" class="label"> + <span data-bind="text: $t('From') + ':'"></span> + </label> + <div class="control"> + <input type="text" + id="gift-message-whole-from" + class="input-text" + data-bind="value: getObservable('sender')"> + </div> + </div> + <div class="field text"> + <label for="gift-message-whole-message" class="label"> + <span data-bind="text: $t('Message') + ':'"></span> + </label> + <div class="control"> + <textarea id="gift-message-whole-message" + class="input-text" + rows="5" cols="10" + data-bind="value: getObservable('message')"></textarea> + </div> + </div> + </fieldset> + <div class="actions-toolbar"> + <div class="secondary"> + <button type="submit" class="action secondary action-update" data-bind=" + attr: {title: $t('Update')}, + click: $data.submitOptions.bind($data)"> + <span data-bind="text: $t('Update')"></span> + </button> + <button class="action action-cancel" data-bind=" + attr: {title: $t('Cancel')}, + click: $data.hideFormBlock.bind($data)"> + <span data-bind="text: $t('Cancel')"></span> + </button> + </div> + </div> + </div> +</div> \ No newline at end of file diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html new file mode 100644 index 0000000000000000000000000000000000000000..78f2175867b72a3991912eeda796bd7aff3615ef --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message-item-level.html @@ -0,0 +1,55 @@ +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + --> +<!-- ko if: isActive() --> +<a href="#" + class="action action-gift" + data-bind=" + click: $data.toggleFormBlockVisibility.bind($data), + css: {_active: formBlockVisibility() || resultBlockVisibility()} + "> + <span data-bind="text: $t('Gift options')"></span> +</a> +<div class="gift-content" data-bind="css: {_active: formBlockVisibility() || resultBlockVisibility()}"> <!-- add class "active" to display the content --> + <!-- ko ifnot: resultBlockVisibility() --> + <div class="gift-options"> + <!-- ko foreach: getRegion('additionalOptions') --> + <!-- ko template: getTemplate() --><!-- /ko --> + <!-- /ko --> + <!-- ko template: formTemplate --><!--/ko--> + </div> + <!-- /ko --> + <!-- ko if: resultBlockVisibility() --> + <div class="gift-summary"> + <!-- ko foreach: getRegion('additionalOptions') --> + <!--ko template: appliedTemplate --><!-- /ko --> + <!-- /ko --> + + <!-- ko if: getObservable('message') --> + <div class="gift-message-summary"> + <span data-bind="text: $t('Message') + ':'"></span> + <!-- ko text: getObservable('message') --><!-- /ko --> + </div> + <!-- /ko --> + + <div class="actions-toolbar"> + <div class="secondary"> + <button type="submit" class="action action-edit" data-bind=" + click: $data.editOptions.bind($data), + attr: {title: $t('Edit')"> + <span data-bind="text: $t('Edit')"></span> + </button> + <button class="action action-delete" data-bind=" + click: $data.deleteOptions.bind($data), + attr: {title: $t('Delete')"> + <span data-bind="text: $t('Delete')"></span> + </button> + </div> + </div> + </div> + <!-- /ko --> +</div> +<!-- /ko --> diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html new file mode 100644 index 0000000000000000000000000000000000000000..dbe0ee8c877cd04fc9c25d5e3ab332ecbbb0a916 --- /dev/null +++ b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-message.html @@ -0,0 +1,54 @@ +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<!-- ko if: isActive() --> +<div class="cart-gift-item"> + <div class="gift-item-block block" + data-collapsible="true" + data-bind="css: {_active: formBlockVisibility() || resultBlockVisibility()}"> + <div class="title" data-role="title" data-bind="click: $data.toggleFormBlockVisibility.bind($data)"> + <span data-bind="text: $t('Gift options')"></span> + </div> + <div class="content" data-role="content" data-bind="visible: formBlockVisibility() || resultBlockVisibility()"> + <!-- ko ifnot: resultBlockVisibility() --> + <div class="gift-options"> + <!-- ko foreach: getRegion('additionalOptions') --> + <!-- ko template: getTemplate() --><!-- /ko --> + <!-- /ko --> + <!-- ko template: formTemplate --><!--/ko--> + </div> + <!-- /ko --> + <div class="gift-summary"> + <!-- ko if: resultBlockVisibility() --> + <!-- ko foreach: getRegion('additionalOptions') --> + <!--ko template: appliedTemplate --><!-- /ko --> + <!-- /ko --> + + <!-- ko if: getObservable('message') --> + <div class="gift-message-summary"> + <span data-bind="text: $t('Message') + ':'"></span> + <!-- ko text: getObservable('message') --><!-- /ko --> + </div> + <!-- /ko --> + <div class="actions-toolbar"> + <div class="secondary"> + <button type="submit" + class="action action-edit" + data-bind="attr: {title: $t('Edit')}, click: $data.editOptions.bind($data)"> + <span data-bind="text: $t('Edit')"></span> + </button> + <button class="action action-delete" + data-bind="attr: {title: $t('Delete')}, click: $data.deleteOptions.bind($data)"> + <span data-bind="text: $t('Delete')"></span> + </button> + </div> + </div> + <!-- /ko --> + </div> + </div> + </div> +</div> +<!-- /ko --> diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-options.html b/app/code/Magento/GiftMessage/view/frontend/web/template/gift-options.html deleted file mode 100644 index 02b2c1d5f03c0105ae4ce29fbadb27979998c578..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/web/template/gift-options.html +++ /dev/null @@ -1,42 +0,0 @@ -<!-- -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<fieldset class="fieldset gift-message" data-bind="visible: isGiftOptionsAvailable()"> - <legend class="legend"><span data-bind="text: $t('Do you have any gift items in your order?')"></span></legend><br> - <div class="field choice"> - <input type="checkbox" name="allow_gift_options" id="allow_gift_options" class="checkbox" data-bind="checked: isGiftOptionsSelected"> - <label for="allow_gift_options" class="label"><span data-bind="text: $t('Add gift options')"></span></label> - </div> - <dl class="options-items" id="allow-gift-options-container" data-bind="visible: isGiftOptionsSelected"> - <dt id="add-gift-options-for-order" class="order-title" data-bind="visible: isOrderLevelGiftOptionsEnabled()"> - <div class="field choice"> - <input type="checkbox" name="allow_gift_messages_for_order" id="allow_gift_options_for_order" class="checkbox" data-bind="checked: isOrderLevelGiftOptionsSelected"> - <label for="allow_gift_options_for_order" class="label"><span data-bind="text: $t('Gift Options for the Entire Order')"></span></label> - </div> - <dd id="allow-gift-options-for-order-container" class="order-options" style="display: block;" data-bind="visible: isOrderLevelGiftOptionsSelected"> - <!-- ko foreach: getOrderLevelGiftOptions() --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> - </dd> - </dt> - <dt id="add-gift-options-for-items" class="order-title individual" data-bind="visible: isItemLevelGiftOptionsEnabled()"> - <div class="field choice"> - <input type="checkbox" name="allow_gift_options_for_items" id="allow_gift_options_for_items" class="checkbox" data-bind="checked: isItemLevelGiftOptionsSelected"> - <label for="allow_gift_options_for_items" class="label"><span data-bind="text: $t('Gift Options for Individual Items')"></span></label> - </div> - <dd id="allow-gift-options-for-items-container" class="order-options individual" style="display: block;" data-bind="visible: isItemLevelGiftOptionsSelected"> - <!-- ko foreach: getItemLevelGiftOptions() --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> - </dd> - </dt> - <dt id="extra-options-container" class="extra-options-container"> - <!-- ko foreach: getExtraGiftOptions() --> - <!-- ko template: getTemplate() --><!-- /ko --> - <!-- /ko --> - </dt> - </dl> -</fieldset> diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/item-level-gift-message.html b/app/code/Magento/GiftMessage/view/frontend/web/template/item-level-gift-message.html deleted file mode 100644 index 68aedda15ecea2808f32982860e6ad48dc679311..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/web/template/item-level-gift-message.html +++ /dev/null @@ -1,76 +0,0 @@ -<!-- -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<ol class="items" data-bind="foreach: quoteItems"> - <li class="item"> - <div class="product"> - <div class="number"> - <span> - <!-- ko text: $t('Item') --><!-- /ko --> - <!-- ko text: ($index() + 1) --><!-- /ko --> - </span> - <!-- ko text: $t('of') --><!-- /ko --> - <!-- ko text: $parent.quoteItemsCount --><!-- /ko --> - </div> - <div class="img photo container"> - <span class="product-image-container" style="width:100px;"> - <span class="product-image-wrapper" style="padding-bottom: 100%;"> - <img class="product-image-photo" data-bind="attr: {src: thumbnail || $parent.imagePlaceholder, alt: name}"> - </span> - </span> - </div> - <strong class="product name" style="width:100px;" data-bind="text: name"></strong> - </div> - <div class="options"> - <!-- <div class="options-items-container"></div> --> - <!--ko foreach: $parent.getRegion('item-level-additional-data') --> - <!--ko template: getTemplate() --><!--/ko --> - <!--/ko --> - <a href="#" class="action activate message" data-bind="click: $parent.setItemLevelGiftMessageHidden, text: $t('Gift Message')"></a> - <div id="gift-messages-for-item-container" class="block message" data-bind="visible: isItemLevelGiftMessageVisible"> - <fieldset class="fieldset"> - <p data-bind="text: $t('You can leave a box blank if you don\'t wish to add a gift message for the item.')"></p> - <div class="field from"> - <label class="label" data-bind="attr: {for: 'gift-message-' + item_id + '-from'}"><span data-bind="text: $t('From')"></span></label> - <div class="control"> - <input type="text" title="From" class="input-text" data-bind=" - value: $parent.messages[item_id].from, - attr: { - name: 'giftmessage[quote_item][' + item_id + '][from]', - id: 'gift-message-' + item_id + '-from' - } - "> - </div> - </div> - <div class="field to"> - <label class="label" data-bind="attr: {for: 'gift-message-' + item_id + '-to'}"><span data-bind="text: $t('To')"></span></label> - <div class="control"> - <input type="text" title="To" class="input-text" data-bind=" - value: $parent.messages[item_id].to, - attr: { - name: 'giftmessage[quote_item][' + item_id + '][to]', - id: 'gift-message-' + item_id + '-to' - } - "> - </div> - </div> - <div class="field text"> - <label class="label" data-bind="attr: {for: 'gift-message-' + item_id + '-message'}"><span data-bind="text: $t('Message')"></span></label> - <div class="control"> - <textarea class="input-text giftmessage-area" title="Message" rows="5" cols="40" data-bind=" - value: $parent.messages[item_id].message, - attr: { - id: 'gift-message-' + item_id + '-message', - name: 'giftmessage[quote_item][' + item_id + '][message]' - } - "></textarea> - </div> - </div> - </fieldset> - </div> - </div> - </li> -</ol> diff --git a/app/code/Magento/GiftMessage/view/frontend/web/template/order-level-gift-message.html b/app/code/Magento/GiftMessage/view/frontend/web/template/order-level-gift-message.html deleted file mode 100644 index 3053c94ed655d582d5636affa501258f5aa224ae..0000000000000000000000000000000000000000 --- a/app/code/Magento/GiftMessage/view/frontend/web/template/order-level-gift-message.html +++ /dev/null @@ -1,49 +0,0 @@ -<!-- -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ ---> -<!-- -<div class="options-order-container" id="options-order-container-1"></div> ---> -<a href="#" class="action activate message" data-bind="click: setOrderLevelGiftMessageVisible, text: $t('Gift Message')"></a> -<div id="allow-gift-messages-for-order-container" class="gift-messages-order" data-bind="visible: isOrderLevelGiftMessageVisible"> - <fieldset class="fieldset"> - <p data-bind="text: $t('If you don\'t want to leave a gift message for the entire order, leave this box blank.')"></p> - <div class="field from"> - <label for="gift-message-whole-from" class="label"><span data-bind="text: $t('From')"></span></label> - <div class="control"> - <input type="text" id="gift-message-whole-from" title="From" class="input-text" data-bind=" - value: message.from, - attr: { - name: 'giftmessage[quote][' + quoteId + '][from]' - } - "> - </div> - </div> - <div class="field to"> - <label for="gift-message-whole-to" class="label"><span data-bind="text: $t('To')"></span></label> - <div class="control"> - <input type="text" id="gift-message-whole-to" title="To" class="input-text" data-bind=" - value: message.to, - attr: { - name: 'giftmessage[quote][' + quoteId + '][to]' - } - "> - </div> - </div> - <div class="field text"> - <label for="gift-message-whole-message" class="label"><span data-bind="text: $t('Message')"></span></label> - <div class="control"> - <textarea id="gift-message-whole-message" class="input-text" title="Message" rows="5" cols="10" data-bind=" - value: message.message, - attr: { - name: 'giftmessage[quote][' + quoteId + '][message]' - } - "> - </textarea> - </div> - </div> - </fieldset> -</div> diff --git a/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml index c9021d6bcbd8fbd461cd9463b53bdad518f63203..8044a857c6a3e8863fc2f4299ebc39eb564b7793 100644 --- a/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml +++ b/app/code/Magento/GroupedProduct/view/frontend/layout/checkout_cart_item_renderers.xml @@ -8,7 +8,12 @@ <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="checkout.cart.item.renderers"> - <block class="Magento\GroupedProduct\Block\Cart\Item\Renderer\Grouped" as="grouped" template="Magento_Checkout::cart/item/default.phtml"/> + <block class="Magento\GroupedProduct\Block\Cart\Item\Renderer\Grouped" as="grouped" template="Magento_Checkout::cart/item/default.phtml"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions" name="checkout.cart.item.renderers.grouped.actions" as="actions"> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit" name="checkout.cart.item.renderers.grouped.actions.edit" template="Magento_Checkout::cart/item/renderer/actions/edit.phtml"/> + <block class="Magento\Checkout\Block\Cart\Item\Renderer\Actions\Remove" name="checkout.cart.item.renderers.grouped.actions.remove" template="Magento_Checkout::cart/item/renderer/actions/remove.phtml"/> + </block> + </block> </referenceBlock> </body> </page> diff --git a/app/code/Magento/Quote/Api/Data/EstimateAddressInterface.php b/app/code/Magento/Quote/Api/Data/EstimateAddressInterface.php new file mode 100644 index 0000000000000000000000000000000000000000..5d5eb86351846141bfbd6c6bdca9ef58b6fa63bb --- /dev/null +++ b/app/code/Magento/Quote/Api/Data/EstimateAddressInterface.php @@ -0,0 +1,103 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Quote\Api\Data; + +/** + * Interface EstimateAddressInterface + * @api + */ +interface EstimateAddressInterface extends \Magento\Framework\Api\CustomAttributesDataInterface +{ + /**#@+ + * Constants defined for keys of array, makes typos less likely + */ + const KEY_COUNTRY_ID = 'country_id'; + + const KEY_REGION_ID = 'region_id'; + + const KEY_REGION = 'region'; + + const KEY_POSTCODE = 'postcode'; + + /**#@-*/ + + /** + * Get region name + * + * @return string + */ + public function getRegion(); + + /** + * Set region name + * + * @param string $region + * @return $this + */ + public function setRegion($region); + + /** + * Get region id + * + * @return int + */ + public function getRegionId(); + + /** + * Set region id + * + * @param int $regionId + * @return $this + */ + public function setRegionId($regionId); + + /** + * Get country id + * + * @return string + */ + public function getCountryId(); + + /** + * Set country id + * + * @param string $countryId + * @return $this + */ + public function setCountryId($countryId); + + /** + * Get postcode + * + * @return string + */ + public function getPostcode(); + + /** + * Set postcode + * + * @param string $postcode + * @return $this + */ + public function setPostcode($postcode); + + /** + * Retrieve existing extension attributes object or create a new one. + * + * @return \Magento\Quote\Api\Data\EstimateAddressExtensionInterface|null + */ + public function getExtensionAttributes(); + + /** + * Set an extension attributes object. + * + * @param \Magento\Quote\Api\Data\EstimateAddressExtensionInterface $extensionAttributes + * @return $this + */ + public function setExtensionAttributes( + \Magento\Quote\Api\Data\EstimateAddressExtensionInterface $extensionAttributes + ); +} diff --git a/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php b/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php index 51044998e15e0e20520f690e21bcb0fd51f581d5..e9edbf4241fd0fa6d0decfeacad347b10aa2c04a 100644 --- a/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php +++ b/app/code/Magento/Quote/Api/ShippingMethodManagementInterface.php @@ -26,6 +26,24 @@ interface ShippingMethodManagementInterface */ public function set($cartId, $carrierCode, $methodCode); + /** + * Estimate shipping + * + * @param int $cartId The shopping cart ID. + * @param \Magento\Quote\Api\Data\EstimateAddressInterface $address The estimate address + * @return \Magento\Quote\Api\Data\ShippingMethodInterface[] An array of shipping methods. + */ + public function estimateByAddress($cartId, \Magento\Quote\Api\Data\EstimateAddressInterface $address); + + /** + * Estimate shipping + * + * @param int $cartId The shopping cart ID. + * @param int $addressId The estimate address id + * @return \Magento\Quote\Api\Data\ShippingMethodInterface[] An array of shipping methods. + */ + public function estimateByAddressId($cartId, $addressId); + /** * Returns selected shipping method for a specified quote. * diff --git a/app/code/Magento/Quote/Model/EstimateAddress.php b/app/code/Magento/Quote/Model/EstimateAddress.php new file mode 100644 index 0000000000000000000000000000000000000000..652f8a00f685c9ac36752c1463dda9a5e9f592d4 --- /dev/null +++ b/app/code/Magento/Quote/Model/EstimateAddress.php @@ -0,0 +1,119 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +namespace Magento\Quote\Model; + +use Magento\Framework\Model\AbstractExtensibleModel; +use Magento\Quote\Api\Data\EstimateAddressInterface; + +class EstimateAddress extends AbstractExtensibleModel implements EstimateAddressInterface +{ + /** + * Get region name + * + * @return string + */ + public function getRegion() + { + return $this->getData(self::KEY_REGION); + } + + /** + * Set region name + * + * @param string $region + * @return $this + */ + public function setRegion($region) + { + return $this->setData(self::KEY_REGION, $region); + } + + /** + * Get region id + * + * @return int + */ + public function getRegionId() + { + return $this->getData(self::KEY_REGION_ID); + } + + /** + * Set region id + * + * @param int $regionId + * @return $this + */ + public function setRegionId($regionId) + { + return $this->setData(self::KEY_REGION_ID, $regionId); + } + + /** + * Get country id + * + * @return string + */ + public function getCountryId() + { + return $this->getData(self::KEY_COUNTRY_ID); + } + + /** + * Set country id + * + * @param string $countryId + * @return $this + */ + public function setCountryId($countryId) + { + return $this->setData(self::KEY_COUNTRY_ID, $countryId); + } + + /** + * Get postcode + * + * @return string + */ + public function getPostcode() + { + return $this->getData(self::KEY_POSTCODE); + } + + /** + * Set postcode + * + * @param string $postcode + * @return $this + */ + public function setPostcode($postcode) + { + return $this->setData(self::KEY_POSTCODE, $postcode); + } + + /** + * Retrieve existing extension attributes object or create a new one. + * + * @return \Magento\Quote\Api\Data\EstimateAddressExtensionInterface|null + */ + public function getExtensionAttributes() + { + return $this->_getExtensionAttributes(); + } + + /** + * Set an extension attributes object. + * + * @param \Magento\Quote\Api\Data\EstimateAddressExtensionInterface $extensionAttributes + * @return $this + */ + public function setExtensionAttributes( + \Magento\Quote\Api\Data\EstimateAddressExtensionInterface $extensionAttributes + ) { + $this->_setExtensionAttributes($extensionAttributes); + } +} diff --git a/app/code/Magento/Quote/Model/ShippingMethodManagement.php b/app/code/Magento/Quote/Model/ShippingMethodManagement.php index c1dc45aee4a479b3bfaa1f8671aadd57f9a8ad01..f8a39533b4233cf77b9365821857ca0e973ada0c 100644 --- a/app/code/Magento/Quote/Model/ShippingMethodManagement.php +++ b/app/code/Magento/Quote/Model/ShippingMethodManagement.php @@ -33,18 +33,29 @@ class ShippingMethodManagement implements ShippingMethodManagementInterface */ protected $converter; + /** + * Customer Address repository + * + * @var \Magento\Customer\Api\AddressRepositoryInterface + */ + protected $addressRepository; + /** * Constructs a shipping method read service object. * * @param QuoteRepository $quoteRepository Quote repository. * @param \Magento\Quote\Model\Cart\ShippingMethodConverter $converter Shipping method converter. + * @param \Magento\Customer\Api\AddressRepositoryInterface $addressRepository Customer Address repository + * */ public function __construct( QuoteRepository $quoteRepository, - Cart\ShippingMethodConverter $converter + Cart\ShippingMethodConverter $converter, + \Magento\Customer\Api\AddressRepositoryInterface $addressRepository ) { $this->quoteRepository = $quoteRepository; $this->converter = $converter; + $this->addressRepository = $addressRepository; } /** @@ -146,4 +157,78 @@ class ShippingMethodManagement implements ShippingMethodManagementInterface } return true; } + + /** + * {@inheritDoc} + */ + public function estimateByAddress($cartId, \Magento\Quote\Api\Data\EstimateAddressInterface $address) + { + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->quoteRepository->getActive($cartId); + + // no methods applicable for empty carts or carts with virtual products + if ($quote->isVirtual() || 0 == $quote->getItemsCount()) { + return []; + } + + return $this->getEstimatedRates( + $quote, + $address->getCountryId(), + $address->getPostcode(), + $address->getRegionId(), + $address->getRegion() + ); + } + + /** + * {@inheritDoc} + */ + public function estimateByAddressId($cartId, $addressId) + { + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->quoteRepository->getActive($cartId); + + // no methods applicable for empty carts or carts with virtual products + if ($quote->isVirtual() || 0 == $quote->getItemsCount()) { + return []; + } + $address = $this->addressRepository->getById($addressId); + + return $this->getEstimatedRates( + $quote, + $address->getCountryId(), + $address->getPostcode(), + $address->getRegionId(), + $address->getRegion() + ); + } + + /** + * Get estimated rates + * + * @param Quote $quote + * @param int $country + * @param string $postcode + * @param int $regionId + * @param string $region + * @return \Magento\Quote\Api\Data\ShippingMethodInterface[] An array of shipping methods. + */ + protected function getEstimatedRates(\Magento\Quote\Model\Quote $quote, $country, $postcode, $regionId, $region) + { + $output = []; + $shippingAddress = $quote->getShippingAddress(); + $shippingAddress->setCountryId($country); + $shippingAddress->setPostcode($postcode); + $shippingAddress->setRegionId($regionId); + $shippingAddress->setRegion($region); + $shippingAddress->setCollectShippingRates(true); + $shippingAddress->collectShippingRates(); + $shippingRates = $shippingAddress->getGroupedAllShippingRates(); + foreach ($shippingRates as $carrierRates) { + foreach ($carrierRates as $rate) { + $output[] = $this->converter->modelToDataObject($rate, $quote->getQuoteCurrencyCode()); + } + } + return $output; + } } diff --git a/app/code/Magento/Quote/etc/di.xml b/app/code/Magento/Quote/etc/di.xml index a9c14a1991ffbe85f900d457d5fb7c7193f554a8..66cae592e21018589902a907529cbcc87007c8e4 100644 --- a/app/code/Magento/Quote/etc/di.xml +++ b/app/code/Magento/Quote/etc/di.xml @@ -37,6 +37,7 @@ <preference for="Magento\Quote\Api\GuestBillingAddressManagementInterface" type="Magento\Quote\Model\GuestCart\GuestBillingAddressManagement" /> <preference for="Magento\Quote\Api\GuestAddressDetailsManagementInterface" type="Magento\Quote\Model\GuestCart\GuestAddressDetailsManagement" /> <preference for="Magento\Quote\Api\GuestCartTotalManagementInterface" type="\Magento\Quote\Model\GuestCart\GuestCartTotalManagement" /> + <preference for="Magento\Quote\Api\Data\EstimateAddressInterface" type="Magento\Quote\Model\EstimateAddress" /> <type name="Magento\Webapi\Controller\Rest\ParamsOverrider"> <arguments> <argument name="paramOverriders" xsi:type="array"> diff --git a/app/code/Magento/Ui/Component/Control/ActionPool.php b/app/code/Magento/Ui/Component/Control/ActionPool.php index 74f327fec1531089563d850815d93ad1bdbfc351..6ccb8393648dc0337a7acc66d6f4022acfbce878 100644 --- a/app/code/Magento/Ui/Component/Control/ActionPool.php +++ b/app/code/Magento/Ui/Component/Control/ActionPool.php @@ -128,7 +128,7 @@ class ActionPool implements ActionPoolInterface { $container = $this->context->getPageLayout()->createBlock( 'Magento\Ui\Component\Control\Container', - 'container-' . $key, + 'container-' . $view->getName() . '-' . $key, [ 'data' => [ 'button_item' => $this->items[$key], diff --git a/app/code/Magento/Ui/Test/Unit/Component/Control/ActionPoolTest.php b/app/code/Magento/Ui/Test/Unit/Component/Control/ActionPoolTest.php index eaae007216af0aa226ff98336e22c727190102a0..8d62c797c2f061a82c07d05bfae258a47a1922ef 100644 --- a/app/code/Magento/Ui/Test/Unit/Component/Control/ActionPoolTest.php +++ b/app/code/Magento/Ui/Test/Unit/Component/Control/ActionPoolTest.php @@ -99,6 +99,7 @@ class ActionPoolTest extends \PHPUnit_Framework_TestCase public function testAdd() { $data = ['id' => 'id']; + $this->uiComponentInterfaceMock->expects($this->once())->method('getName')->willReturn('name'); $this->itemFactoryMock->expects($this->any())->method('create')->willReturn($this->items[$this->key]); $this->items[$this->key]->expects($this->any())->method('setData')->with($data)->willReturnSelf(); @@ -114,7 +115,7 @@ class ActionPoolTest extends \PHPUnit_Framework_TestCase ->method('createBlock') ->with( 'Magento\Ui\Component\Control\Container', - 'container-' . $this->key, + 'container-name-' . $this->key, [ 'data' => [ 'button_item' => $this->items[$this->key], diff --git a/app/code/Magento/Wishlist/Block/Cart/Item/Renderer/Actions/MoveToWishlist.php b/app/code/Magento/Wishlist/Block/Cart/Item/Renderer/Actions/MoveToWishlist.php new file mode 100644 index 0000000000000000000000000000000000000000..790280fe2d76c33de1c57a74a2850728f86ae244 --- /dev/null +++ b/app/code/Magento/Wishlist/Block/Cart/Item/Renderer/Actions/MoveToWishlist.php @@ -0,0 +1,52 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Wishlist\Block\Cart\Item\Renderer\Actions; + +use Magento\Checkout\Block\Cart\Item\Renderer\Actions\Generic; +use Magento\Framework\View\Element\Template; +use Magento\Wishlist\Helper\Data; + +class MoveToWishlist extends Generic +{ + /** + * @var Data + */ + protected $wishlistHelper; + + /** + * @param Template\Context $context + * @param Data $wishlistHelper + * @param array $data + */ + public function __construct( + Template\Context $context, + Data $wishlistHelper, + array $data = [] + ) { + $this->wishlistHelper = $wishlistHelper; + parent::__construct($context, $data); + } + + /** + * Check whether "add to wishlist" button is allowed in cart + * + * @return bool + */ + public function isAllowInCart() + { + return $this->wishlistHelper->isAllowInCart(); + } + + /** + * Get JSON POST params for moving from cart + * + * @return string + */ + public function getMoveFromCartParams() + { + return $this->wishlistHelper->getMoveFromCartParams($this->getItem()->getId()); + } +} diff --git a/app/code/Magento/Wishlist/Test/Unit/Block/Cart/Item/Renderer/Actions/MoveToWishlistTest.php b/app/code/Magento/Wishlist/Test/Unit/Block/Cart/Item/Renderer/Actions/MoveToWishlistTest.php new file mode 100644 index 0000000000000000000000000000000000000000..e64e5803f094a2210a09b9b5536f5c441b4416f4 --- /dev/null +++ b/app/code/Magento/Wishlist/Test/Unit/Block/Cart/Item/Renderer/Actions/MoveToWishlistTest.php @@ -0,0 +1,71 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\Wishlist\Test\Unit\Block\Cart\Item\Renderer\Actions; + +use Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist; +use Magento\Quote\Model\Quote\Item; +use Magento\Wishlist\Helper\Data; + +class MoveToWishlistTest extends \PHPUnit_Framework_TestCase +{ + /** + * @var MoveToWishlist + */ + protected $model; + + /** @var Data|\PHPUnit_Framework_MockObject_MockObject */ + protected $wishlistHelperMock; + + protected function setUp() + { + $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); + + $this->wishlistHelperMock = $this->getMockBuilder('Magento\Wishlist\Helper\Data') + ->disableOriginalConstructor() + ->getMock(); + + $this->model = $objectManagerHelper->getObject( + 'Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist', + [ + 'wishlistHelper' => $this->wishlistHelperMock, + ] + ); + } + + public function testIsAllowInCart() + { + $this->wishlistHelperMock->expects($this->once()) + ->method('isAllowInCart') + ->willReturn(true); + + $this->assertTrue($this->model->isAllowInCart()); + } + + public function testGetMoveFromCartParams() + { + $itemId = 45; + $json = '{json;}'; + + /** + * @var Item|\PHPUnit_Framework_MockObject_MockObject $itemMock + */ + $itemMock = $this->getMockBuilder('Magento\Quote\Model\Quote\Item') + ->disableOriginalConstructor() + ->getMock(); + + $itemMock->expects($this->once()) + ->method('getId') + ->willReturn($itemId); + + $this->wishlistHelperMock->expects($this->once()) + ->method('getMoveFromCartParams') + ->with($itemId) + ->willReturn($json); + + $this->model->setItem($itemMock); + $this->assertEquals($json, $this->model->getMoveFromCartParams()); + } +} diff --git a/app/code/Magento/Wishlist/view/frontend/layout/checkout_cart_item_renderers.xml b/app/code/Magento/Wishlist/view/frontend/layout/checkout_cart_item_renderers.xml new file mode 100644 index 0000000000000000000000000000000000000000..6318b605dd52b13999b0337d28905768f4162d14 --- /dev/null +++ b/app/code/Magento/Wishlist/view/frontend/layout/checkout_cart_item_renderers.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> +<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> + <body> + <referenceBlock name="checkout.cart.item.renderers.default.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.default.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.default.actions.edit"/> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.simple.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.simple.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.simple.actions.edit"/> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.bundle.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.bundle.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.bundle.actions.edit"/> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.downloadable.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.downloadable.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.downloadable.actions.edit"/> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.grouped.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.grouped.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.grouped.actions.edit"/> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.configurable.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.configurable.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.configurable.actions.edit"/> + </referenceBlock> + <referenceBlock name="checkout.cart.item.renderers.virtual.actions"> + <block class="Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist" name="checkout.cart.item.renderers.virtual.actions.move_to_wishlist" template="cart/item/renderer/actions/move_to_wishlist.phtml" before="checkout.cart.item.renderers.virtual.actions.edit"/> + </referenceBlock> + </body> +</page> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/cart/item/renderer/actions/move_to_wishlist.phtml b/app/code/Magento/Wishlist/view/frontend/templates/cart/item/renderer/actions/move_to_wishlist.phtml new file mode 100644 index 0000000000000000000000000000000000000000..196122cf80c6e05975bedfd5ec7dfba3df9b3c2e --- /dev/null +++ b/app/code/Magento/Wishlist/view/frontend/templates/cart/item/renderer/actions/move_to_wishlist.phtml @@ -0,0 +1,17 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +// @codingStandardsIgnoreFile + +/** @var $block \Magento\Wishlist\Block\Cart\Item\Renderer\Actions\MoveToWishlist */ +?> +<?php if ($block->isAllowInCart() && $block->isProductVisibleInSiteVisibility()): ?> + <a href="#" + data-post='<?php echo $block->getMoveFromCartParams(); ?>' + class="use-ajax action action-towishlist"> + <span><?php echo __('Move to Wishlist'); ?></span> + </a> +<?php endif ?> diff --git a/app/code/Magento/Wishlist/view/frontend/templates/rss/email.phtml b/app/code/Magento/Wishlist/view/frontend/templates/rss/email.phtml index 8655b864bc2fa14eb7e87f6464710acd5430f7df..7043be8d41932d846e1461f7ed5ce9db6f41afdd 100644 --- a/app/code/Magento/Wishlist/view/frontend/templates/rss/email.phtml +++ b/app/code/Magento/Wishlist/view/frontend/templates/rss/email.phtml @@ -10,7 +10,7 @@ ?> <?php if ($block->getLink()): ?> <p style="font-size:12px; line-height:16px; margin:0 0 16px;"> - <?php echo __("RSS link to %1's wishlist", $this->helper('Magento\Wishlist\Helper\Data')->getCustomerName()) ?> + <?php echo __("RSS link to %1's wishlist", $block->escapeHtml($this->helper('Magento\Wishlist\Helper\Data')->getCustomerName())) ?> <br /> <a href="<?php echo $block->getLink(); ?>"><?php echo $block->getLink(); ?></a> </p> diff --git a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_cart.less b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_cart.less index 68018d4275960d6c94c3b4cff3307c69a8ac584a..089a66bff442b12dda09f922093d1e215abc9e43 100644 --- a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_cart.less +++ b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_cart.less @@ -4,323 +4,326 @@ // */ // -// Common -//-------------------------------------- +// Common +// _____________________________________________ & when (@media-common = true) { -// -// Shopping cart -//-------------------------------------- -.cart { - // Summary block - &-summary { - &:extend(.abs-add-box-sizing all); - .css(background, @sidebar__background-color); - margin-bottom: @indent__m; - padding: 1px 15px @indent__m; - > .title { - .heading(h3); - display: block; - } - .block { - margin-bottom: 0; + // + // Shopping cart + // --------------------------------------------- + + .cart { + // Summary block + &-summary { + &:extend(.abs-add-box-sizing all); + .css(background, @sidebar__background-color); + margin-bottom: @indent__m; + padding: 1px 15px @indent__m; > .title { - .icon-font( - @_icon-font-content: @icon-down, - @_icon-font-size: 30px, - @_icon-font-position: after - ); - border-top: @border-width__base solid @border-color__base; - cursor: pointer; display: block; - font-weight: @font-weight__semibold; - margin-bottom: 0; - overflow: hidden; - padding: 7px 20px 7px 5px; - position: relative; - &:after { - position: absolute; - right: 0; - top: -5px; - } - strong { - .column.main & { - font-weight: @font-weight__regular; - .font-size(18); - } - } - } - > .content { - display: none; + .heading(h3); } - &.active { + .block { + margin-bottom: 0; > .title { - .icon-font-symbol( - @_icon-font-content: @icon-prev, - @_icon-font-position: after + border-top: @border-width__base solid @border-color__base; + cursor: pointer; + font-weight: @font-weight__semibold; + .icon-font( + @_icon-font-content: @icon-down, + @_icon-font-size: 30px, + @_icon-font-position: after, + @_icon-font-display: block ); + margin-bottom: 0; + overflow: hidden; + padding: 7px @indent__base 7px @indent__xs; + position: relative; + &:after { + position: absolute; + right: 0; + top: -5px; + } + strong { + .column.main & { + .font-size(18); + font-weight: @font-weight__regular; + } + } } > .content { - display: block; + display: none; } - } - .item-options { - margin-left: 0; - } - .fieldset { - margin: 15px 0 25px 5px; - .field { - margin: 0 0 @indent__s; - &.note { - font-size: @font-size__s; + &.active { + > .title { + .icon-font-symbol( + @_icon-font-content: @icon-prev, + @_icon-font-position: after + ); + } + > .content { + display: block; } } - } - .fieldset { - .methods { + .item-options { + margin-left: 0; + } + .fieldset { + margin: 15px 0 @indent__m @indent__xs; .field { - > .label { - display: inline; + margin: 0 0 @indent__s; + &.note { + font-size: @font-size__s; } } } - } - .fieldset.estimate { - > .legend, - > .legend + br { - &:extend(.abs-no-display all); + .fieldset { + .methods { + .field { + > .label { + display: inline; + } + } + } + } + .fieldset.estimate { + > .legend, + > .legend + br { + &:extend(.abs-no-display all); + } } } - } - .actions-toolbar { - > .primary { - button { - &:extend(.abs-revert-secondary-color all); + .actions-toolbar { + > .primary { + button { + &:extend(.abs-revert-secondary-color all); + } } } + &:extend(.abs-adjustment-incl-excl-tax all); } - &:extend(.abs-adjustment-incl-excl-tax all); - } - // Totals block - &-totals { - .table-wrapper { - overflow: inherit; - } - border-top: 1px solid @border-color__base; - padding-top: 10px; - .mark { - font-weight: @font-weight__regular; - padding-left: 4px; - strong { + // Totals block + &-totals { + border-top: 1px solid @border-color__base; + padding-top: 10px; + .table-wrapper { + overflow: inherit; + } + .mark { font-weight: @font-weight__regular; - } - } - .amount { - padding-right: 4px; - text-align: right; - strong { - font-weight: @font-weight__regular; - } - } - .grand:last-child { - .mark, - .amount { - padding-top: @indent__base; + padding-left: 4px; + strong { + font-weight: @font-weight__regular; + } } .amount { padding-right: 4px; text-align: right; strong { - font-weight: @font-weight__bold; + font-weight: @font-weight__regular; } } - } - .msrp { - margin-bottom: @indent__s; - } - .totals-tax { - &-summary { + .grand:last-child { .mark, .amount { - border-top: @border-width__base solid @border-color__base; - border-bottom: @border-width__base solid @border-color__base; - cursor: pointer; + padding-top: @indent__base; } - .amount .price { - position: relative; - padding-right: @indent__m; - .icon-font( - @icon-down, - @_icon-font-size: 30px, - @_icon-font-text-hide: true, - @_icon-font-position: after, - @_icon-font-display: block - ); - &:after { - position: absolute; - right: -5px; - top: -12px; + .amount { + padding-right: 4px; + text-align: right; + strong { + font-weight: @font-weight__bold; } } - &.expanded { + } + .msrp { + margin-bottom: @indent__s; + } + .totals-tax { + &-summary { .mark, .amount { - border-bottom: 0; + border-bottom: @border-width__base solid @border-color__base; + border-top: @border-width__base solid @border-color__base; + cursor: pointer; } .amount .price { - .icon-font-symbol( + .icon-font( + @icon-down, + @_icon-font-size: 30px, + @_icon-font-text-hide: true, + @_icon-font-position: after, + @_icon-font-display: block + ); + padding-right: @indent__m; + position: relative; + &:after { + position: absolute; + right: -5px; + top: -12px; + } + } + &.expanded { + .mark, + .amount { + border-bottom: 0; + } + .amount .price { + .icon-font-symbol( @_icon-font-content: @icon-up, @_icon-font-position: after - ); + ); + } } } - } - &-details { - display: none; - border-bottom: @border-width__base solid @border-color__base; - &.shown { - display: table-row; + &-details { + border-bottom: @border-width__base solid @border-color__base; + display: none; + &.shown { + display: table-row; + } } } + .table-wrapper { + margin-bottom: 0; + } + .table-caption { + &:extend(.abs-no-display all); + } } - .table-wrapper { - margin-bottom: 0; - } - .table-caption { - &:extend(.abs-no-display all); - } - } - // Products table - &.table-wrapper { - .items { - thead + .item { - border-top: @border-width__base solid @border-color__base; + // Products table + &.table-wrapper { + .items { + thead + .item { + border-top: @border-width__base solid @border-color__base; + } + > .item { + border-bottom: @border-width__base solid @border-color__base; + position: relative; + } } - > .item { - border-bottom: @border-width__base solid @border-color__base; - position: relative; + .col { + padding-top: 20px; + &.qty { + .input-text { + margin-top: -5px; + &:extend(.abs-input-qty all); + } + .label { + &:extend(.abs-visually-hidden all); + } + } } - } - .col { - padding-top: 20px; - &.qty { - .input-text { - margin-top: -5px; - &:extend(.abs-input-qty all); + .item { + &-actions td { + padding-bottom: @indent__s; + text-align: center; + white-space: normal; } - .label { - &:extend(.abs-visually-hidden all); + .col { + &.item { + display: block; + min-height: 75px; + padding: @indent__m 0 @indent__s 75px; + position: relative; + } } } - } - .item { - &-actions td { - padding-bottom: 10px; - text-align: center; - white-space: normal; + .actions-toolbar { + &:extend(.abs-add-clearfix all); + > .action { + &:extend(button all); + .link-as-button(); + margin-bottom: @indent__s; + margin-right: @indent__s; + &:last-child { + margin-right: 0; + } + } } - .col { - &.item { + .action { + &.help.map { + &:extend(.abs-action-button-as-link all); + font-weight: @font-weight__regular; + } + } + .product { + &-item-photo { display: block; - padding: 25px 0 10px 75px; - position: relative; - min-height: 75px; + left: 0; + max-width: 60px; + padding: 0; + position: absolute; + top: 15px; + width: 100%; + } + &-item-details { + white-space: normal; + } + &-item-name { + display: inline-block; + font-weight: @font-weight__regular; + margin-top: -6px; } } - } - .actions-toolbar { - > .action { - &:extend(button all); - .link-as-button(); - margin-left: @indent__s; - margin-bottom: @indent__s; - &:first-child { - margin-left: 0; + .gift-registry-name-label { + &:after { + content: ':'; } } - } - .action { - &.help.map { - &:extend(.abs-action-button-as-link all); - font-weight: @font-weight__regular; + // Product options + .item-options { + font-size: @font-size__s; + margin-bottom: @indent__s; + &:extend(.abs-product-options-list all); + &:extend(.abs-add-clearfix all); } - } - .product { - &-item-photo { - display: block; - max-width: 60px; - left: 0; - padding: 0; - position: absolute; - top: 15px; - width: 100%; + + .product-item-name + .item-options { + margin-top: @indent__s; } - &-item-details { - white-space: normal; + + .product-image-wrapper { + &:extend(.abs-reset-image-wrapper all); } - &-item-name { + .action.configure { display: inline-block; - font-weight: @font-weight__regular; - margin-top: -6px; + margin: 0 0 @indent__base; } } - .gift-registry-name-label { - &:after { - content: ":"; + &-container { + .form-cart { + &:extend(.abs-shopping-cart-items all); } - } - // Product options - .item-options { - font-size: @font-size__s; - margin-bottom: @indent__s; - &:extend(.abs-product-options-list all); - &:extend(.abs-add-clearfix all); - } - - .product-item-name + .item-options { - margin-top: @indent__s; - } - - .product-image-wrapper { - &:extend(.abs-reset-image-wrapper all); - } - .action.configure { - display: inline-block; - margin: 0 0 @indent__base; - } - } - &-container { - .form-cart { - &:extend(.abs-shopping-cart-items all); - } - .checkout-methods-items { - &:extend(.abs-reset-list all); - text-align: center; - margin-top: @indent__base; - .action.primary { - &:extend(.abs-button-l all); - margin-bottom: @indent__s; - width: 100%; + .checkout-methods-items { + margin-top: @indent__base; + &:extend(.abs-reset-list all); + text-align: center; + .action.primary { + &:extend(.abs-button-l all); + margin-bottom: @indent__s; + width: 100%; + } } } } -} -// -// Cross sell -//-------------------------------------- -.block.crosssell { - margin-top: 70px; -} + // + // Cross sell + // --------------------------------------------- + .block.crosssell { + margin-top: 70px; + } } // -// Mobile -//-------------------------------------- +// Mobile +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { .cart { &.table-wrapper { @@ -341,7 +344,7 @@ white-space: nowrap; width: 33%; &:before { - content: attr(data-th) ":"; + content: attr(data-th) ':'; display: block; font-weight: @font-weight__bold; padding-bottom: 10px; @@ -360,12 +363,16 @@ &:extend(.abs-shopping-cart-items-mobile all); } } + &.table-wrapper { + overflow: inherit; + } } } // -// Desktop -//-------------------------------------- +// Desktop +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .cart { &-container { @@ -378,8 +385,8 @@ } } &-summary { - position: relative; float: right; + position: relative; width: 23%; .actions-toolbar { .column.main & { @@ -413,11 +420,11 @@ .product { &-item-photo { display: table-cell; + max-width: 100%; padding-right: @indent__base; + position: static; vertical-align: top; width: 1%; - position: static; - max-width: 100%; } &-item-details { display: table-cell; diff --git a/app/design/frontend/Magento/blank/Magento_GiftMessage/web/css/source/_module.less b/app/design/frontend/Magento/blank/Magento_GiftMessage/web/css/source/_module.less index 121a06f86bf824d7b5d34d90caf7dfd36c74bad5..2d0e55d1620636743623cfea6dd99a900743cc73 100644 --- a/app/design/frontend/Magento/blank/Magento_GiftMessage/web/css/source/_module.less +++ b/app/design/frontend/Magento/blank/Magento_GiftMessage/web/css/source/_module.less @@ -4,182 +4,288 @@ // */ // -// Common -//-------------------------------------- +// Variables +// _____________________________________________ -& when (@media-common = true) { +@gift-message-field-label__color: @color-gray40; +@gift-item-block__border-color: @color-gray-light5; +@gift-item-block__border-width: @border-width__base; + +// +// Common +// _____________________________________________ -.gift-message { - margin: 0; - .fieldset& { - > .legend { - &:extend(.abs-methods-shipping-title all); +& when (@media-common = true) { + .gift-message { + .actions-toolbar { + .action-cancel { + &:extend(.abs-action-button-as-link all); + display: none; + } } - } - .opc-wrapper .step-content .fieldset& { - br + .field { - margin: 0; + .field { + .label { + .css(color, @gift-message-field-label__color); + .css(font-weight, @font-weight__regular); + } } } - .field.choice { - font-weight: @font-weight__regular; + + .gift-options { + &:extend(.abs-add-clearfix all); + } + + .gift-options-title { margin: 0 0 @indent__base; - &:before { - display: none; + } + + .gift-options-content { + .fieldset { + margin: 0 0 @indent__base; } } - .activate.message { - display: inline-block; - margin: 0 0 @indent__s; - } - .product-image-wrapper { - &:extend(.abs-reset-image-wrapper all); - } - .options-items { - .css(background, @sidebar__background-color); - display: block; - margin: @indent__base 0 0; - padding: @indent__base; - .order-title:not(:first-child), - .extra-options-container { - font-weight: @font-weight__regular; - margin: @indent__base 0 0; - } - .order-options { - margin: 0 0 @indent__base @indent__base; - } - .block.message { - margin-bottom: @indent__s; - } - .items { - .list-reset-styles(); - .item { - border-bottom: @border-width__base solid @border-color__base; - margin-bottom: @indent__base; - padding-bottom: @indent__s; - .product { - .photo { - margin: @indent__s 0; - } - } - &:last-child { - border-bottom: 0; - padding-bottom: 0; + .gift-summary { + .actions-toolbar { + > .secondary { + float: none; + .action { + margin: @indent__s @indent__base 0 0; } } } - .number { - font-size: @font-size__s; - } - .regular-price, - .price-including-tax, - .price-excluding-tax { - &:before { - content: attr(data-label) ": "; - } - .price { - font-weight: @font-weight__bold; + } + + // + // In-table block + // --------------------------------------------- + + .cart.table-wrapper { + .gift-content { + display: none; + clear: left; + float: left; + margin-right: -100%; + padding: @indent__base 0; + width: 100%; + text-align: left; + &._active { + display: block; } } - .price-including-tax { - .font-size(14); + + .action-gift { + &:extend(.cart.table-wrapper .actions-toolbar > .action all); + .button-icon( + @icon-down, + @_icon-font-size: 32px, + @_icon-font-line-height: 16px, + @_icon-font-position: after + ); + &._active { + .icon-font-symbol( + @icon-up, + @_icon-font-position: after + ); + } } } -} -// -// Account order gift message -//-------------------------------------- -.order-details-items { - .order-gift-message, - .block-order-details-gift-message { - .item-options { - dt { - margin: @indent__s 0; - font-weight: @font-weight__regular; + // + // Collapsible block + // --------------------------------------------- + + .gift-item-block { + margin: 0; + &._active { + .title { + .icon-font-symbol( + @icon-up, + @_icon-font-position: after + ); } } - &:extend(.abs-add-clearfix all); - dt:after { - content: ""; - } - .label { - &:extend(.abs-colon all); + + .title { + border-radius: 3px; + .button( + @_button-margin: 20px 0 0, + @_button-padding: 7px 15px, + @_button-icon-use: true, + @_button-font-content: @icon-down, + @_button-icon-font: @button-icon__font, + @_button-icon-font-size: 32px, + @_button-icon-font-line-height: 16px, + @_button-icon-font-position: after + ); + .css(font-weight, @font-weight__bold); + &:active { + .css(box-shadow, @button__shadow); + } } - .item-message { - clear: left; + + .content { + &:extend(.abs-add-clearfix all); + .css(border-bottom, @gift-item-block__border-width solid @gift-item-block__border-color); + padding: @indent__s @indent__s @indent__base; + position: relative; } } -} -.order-details-items .order-items { - .order-gift-message { - &:not(.expanded-content) { - &:extend(.abs-hidden); - } - .action.close { - &:extend(.abs-no-display all); + // + // Account order gift message + // --------------------------------------------- + + .order-details-items { + .order-gift-message, + .block-order-details-gift-message { + .item-options { + dt { + .css(font-weight, @font-weight__regular); + margin: @indent__s 0; + } + } + &:extend(.abs-add-clearfix all); + dt { + &:after { + content: ''; + } + } + .label { + &:extend(.abs-colon all); + } + .item-message { + clear: left; + } } } - .action.show { - padding-right: @indent__base; - position: relative; - .icon-font( + + .order-details-items .order-items { + .order-gift-message { + &:not(.expanded-content) { + &:extend(.abs-hidden); + } + .action.close { + &:extend(.abs-no-display all); + } + } + .action.show { + .icon-font( @_icon-font-content: @icon-down, @_icon-font-size: 22px, @_icon-font-text-hide: false, @_icon-font-position: after, @_icon-font-display: inline-block - ); - &:after { - position: absolute; - right: 0; - top: -4px; - } - &.expanded { - .icon-font-symbol( + ); + padding-right: @indent__base; + position: relative; + &:after { + position: absolute; + right: 0; + top: -4px; + } + &.expanded { + .icon-font-symbol( @_icon-font-content: @icon-up, @_icon-font-position: after - ); + ); + } } } + + .block-order-details-gift-message { + border-top: @border-width__base solid @border-color__base; + padding-top: @indent__s; + } } -.block-order-details-gift-message { - border-top: @border-width__base solid @border-color__base; - padding-top: @indent__s; +// +// Mobile +// _____________________________________________ + +.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { + .gift-message { + .actions-toolbar { + .action-update { + .font-size(20); + padding: 15px; + width: 100%; + } + } + } + .gift-item-block { + border-bottom: 0; + .css(border-top, @gift-item-block__border-width solid @gift-item-block__border-color); + } + .cart.table-wrapper { + .gift-content { + margin-right: -@indent__s; + } + } } +.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) { + .cart.table-wrapper { + .gift-content { + border-bottom: @border-width__base solid @border-color__base; + margin-bottom: @indent__base; + } + } } // -// Desktop -//-------------------------------------- +// Desktop +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .gift-message { - .item { - border-bottom: @border-width__base solid @border-color__base; - margin-bottom: @indent__base; - padding-bottom: @indent__s; - &:extend(.abs-add-clearfix-desktop all); - .product { - float: left; - margin-right: @indent__base; - .photo { - margin: @indent__s 0; + .actions-toolbar { + .secondary { + float: right; + .action { + float: right; + margin-left: @indent__base; } - .name { - text-overflow: ellipsis; - overflow: hidden; - max-width: 145px; + .action-cancel { + display: block; + float: left; + margin-top: 6px; } } - .options { - overflow: hidden; - } } - .price-box > .price { - display: block; + .field { + &:extend(.abs-clearfix all); + .form-field-type-revert( + @_type: inline, + @_type-inline-label-align: left + ); + } + } + .gift-options-title { + .css(font-weight, @font-weight__light); + .font-size(18); + } + .gift-summary, + .cart.table-wrapper .gift-summary { + .actions-toolbar { + &:extend(.abs-reset-left-margin-desktop all); + } + } + .cart-container { + .cart-gift-item { + &:extend(.abs-shopping-cart-items-desktop all); + } + } + + // + // In-table block + // --------------------------------------------- + + .cart.table-wrapper { + .action-gift { + float: left; + } + .gift-content { + padding: @indent__base 0; } } } diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less index 3b102ea7e75ff16c628f0e7dfb72dba27f006640..84fe60c7262910782021ee8c38b2d319cc66efc7 100644 --- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less +++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_cart.less @@ -8,449 +8,483 @@ @cart-item-cell-padding-top: 20px; // -// Common -//-------------------------------------- +// Common +// _____________________________________________ & when (@media-common = true) { -// -// Shopping cart -//-------------------------------------- -.checkout-cart-index { - .page-main { - padding-left: 0; - padding-right: 0; - } - .page-title-wrapper { - padding-left: @layout__width-xs-indent; - padding-right: @layout__width-xs-indent; - } -} -.cart { - // Cart container - &-container { - .form-cart { - &:extend(.abs-shopping-cart-items all); + // + // Shopping cart + // --------------------------------------------- + + .checkout-cart-index { + .page-main { + padding-left: 0; + padding-right: 0; + } + .page-title-wrapper { + padding-left: @layout__width-xs-indent; + padding-right: @layout__width-xs-indent; } } - - // Summary block - &-summary { - &:extend(.abs-add-box-sizing all); - .css(background, @sidebar__background-color); - margin-bottom: 25px; - padding: 1px 0 25px; - > .title { - display: none; - .font-size(24); - font-weight: @font-weight__light; - margin: 12px 0; + .cart { + // Cart container + &-container { + .form-cart { + &:extend(.abs-shopping-cart-items all); + } } - .block { - &:extend(.abs-cart-block all); - .item-options { - margin: 0 0 16px; - .field { - .radio { - float: left; - } - .radio + .label { - display: block; - overflow: hidden; - margin: 0; - } - } + // Summary block + &-summary { + &:extend(.abs-add-box-sizing all); + .css(background, @sidebar__background-color); + margin-bottom: 25px; + padding: 1px 0 25px; + > .title { + display: none; + .font-size(24); + font-weight: @font-weight__light; + margin: 12px 0; } - form:not(:last-of-type) { - .fieldset { - margin: 0 0 @indent__m; + .block { + form:not(:last-of-type) { + .fieldset { + margin: 0 0 @indent__m; + } } - } - .price { - font-weight: @font-weight__bold; - } - - .field { - margin: 0 0 16px; - &.note { - display: none; + .price { + font-weight: @font-weight__bold; } - } - .actions-toolbar { - > .primary { - text-align: left; - .action.primary { - &:extend(.abs-revert-to-action-secondary all); - width: auto; + .field { + margin: 0 0 16px; + &.note { + display: none; } } - } - .fieldset.estimate { - > .legend, - > .legend + br { - &:extend(.abs-no-display all); + .actions-toolbar { + > .primary { + text-align: left; + .action.primary { + &:extend(.abs-revert-to-action-secondary all); + width: auto; + } + } } - } - } - .page-main & { - .block { - margin-bottom: 0; + .fieldset.estimate { + > .legend, + > .legend + br { + &:extend(.abs-no-display all); + } + } + &:extend(.abs-cart-block all); + .title { + strong { + .font-size(14); + font-weight: @font-weight__semibold; + } + } + .item-options { + margin: 0 0 16px; + .field { + .radio { + float: left; + } + .radio { + + .label { + display: block; + margin: 0; + overflow: hidden; + } + } + } + } } - } - .checkout-methods-items { - &:extend(.abs-reset-list all); - margin: 20px 0 0; - padding: 0 @mobile-cart-padding; - text-align: center; - .action.primary.checkout { - &:extend(.abs-button-l all); - width: 100%; - } - .item { - margin-bottom: 25px; - &:last-child { + .page-main & { + .block { margin-bottom: 0; } } - } - .message { - padding-left: 20px; - > *:first-child:before { - display: none; + .checkout-methods-items { + &:extend(.abs-reset-list all); + margin: 20px 0 0; + padding: 0 @mobile-cart-padding; + text-align: center; + .action.primary.checkout { + &:extend(.abs-button-l all); + width: 100%; + } + .item { + margin-bottom: 25px; + &:last-child { + margin-bottom: 0; + } + } } - } - &:extend(.abs-adjustment-incl-excl-tax all); - } - // Totals block - &-totals { - border-top: 1px solid @border-color__base; - padding-top: 10px; - tbody, - tfoot { - .mark { - border: 0; - font-weight: @font-weight__regular; - padding: 6px 0; - text-align: left; - } - .amount { - border: 0; - font-weight: @font-weight__regular; - padding: 6px 0 6px 14px; - text-align: right; + .message { + padding-left: 20px; + > *:first-child:before { + display: none; + } } + &:extend(.abs-adjustment-incl-excl-tax all); } - .table-caption { - &:extend(.abs-no-display all); - } - .grand { - th, - td { - padding: 11px 0; - } - .mark { - border-top: 1px solid @border-color__base; - .font-size(16); - padding-right: @indent__s; - strong { - display: inline-block; + + // Totals block + &-totals { + border-top: 1px solid @border-color__base; + padding-top: 10px; + tbody, + tfoot { + .mark { + border: 0; font-weight: @font-weight__regular; - padding: 3px 0 0; + padding: 6px 0; + text-align: left; + } + .amount { + border: 0; + font-weight: @font-weight__regular; + padding: 6px 0 6px 14px; + text-align: right; } } - .amount { - border-top: 1px solid @border-color__base; - .font-size(18); + .table-caption { + &:extend(.abs-no-display all); } - } - .msrp { - margin-bottom: @indent__s; - } - tbody tr:last-child td { - padding-bottom: 19px; - } - .totals-tax { - &-summary { - .mark, + .grand { + th, + td { + padding: 11px 0; + } + .mark { + border-top: 1px solid @border-color__base; + .font-size(16); + padding-right: @indent__s; + strong { + display: inline-block; + font-weight: @font-weight__regular; + padding: 3px 0 0; + } + } .amount { - border-top: @border-width__base solid @border-color__base; - border-bottom: @border-width__base solid @border-color__base; - cursor: pointer; + border-top: 1px solid @border-color__base; + .font-size(18); } - .amount .price { - position: relative; - padding-right: 20px; - .icon-font( + } + .msrp { + margin-bottom: @indent__s; + } + tbody tr:last-child td { + padding-bottom: 19px; + } + .totals-tax { + &-summary { + .mark, + .amount { + border-bottom: @border-width__base solid @border-color__base; + border-top: @border-width__base solid @border-color__base; + cursor: pointer; + } + .amount .price { + .icon-font( @icon-down, @_icon-font-size: 12px, @_icon-font-line-height: 12px, @_icon-font-text-hide: true, @_icon-font-position: after - ); - &:after { - position: absolute; - right: 3px; - top: 3px; - } - } - &.expanded { - .mark, - .amount { - border-bottom: 0; + ); + padding-right: 20px; + position: relative; + &:after { + position: absolute; + right: 3px; + top: 3px; + } } - .amount .price { - .icon-font-symbol( + &.expanded { + .mark, + .amount { + border-bottom: 0; + } + .amount .price { + .icon-font-symbol( @_icon-font-content: @icon-up, @_icon-font-position: after - ); + ); + } } } - } - &-details { - display: none; - border-bottom: @border-width__base solid @border-color__base; - &.shown { - display: table-row; + &-details { + border-bottom: @border-width__base solid @border-color__base; + display: none; + &.shown { + display: table-row; + } } } + .table-wrapper { + margin-bottom: 0; + } } - .table-wrapper { - margin-bottom: 0; - } - } - // Products table - &.table-wrapper { - .cart { - thead { - tr th.col { - border-bottom: @border-width__base solid @border-color__base; - padding-top: 24px; - padding-bottom: 15px; + // Products table + &.table-wrapper { + .cart { + thead { + tr th.col { + border-bottom: @border-width__base solid @border-color__base; + padding-bottom: 15px; + padding-top: 24px; + } } - } - tbody { - td { - border: 0; + tbody { + td { + border: 0; + } + } + > .item { + border-bottom: @border-width__base solid @border-color__base; + position: relative; } } - > .item { - border-bottom: @border-width__base solid @border-color__base; - position: relative; - } - } - .col { - padding-top: 15px; - &.price, - &.subtotal, - &.msrp { - padding: @cart-item-cell-padding-top 11px @indent__s; - text-align: center; - &:extend(.abs-incl-excl-tax all); - } - &.qty { - padding: 20px 11px @indent__s; - text-align: center; - .label { - &:extend(.abs-visually-hidden all); + .col { + padding-top: 15px; + &.price, + &.subtotal, + &.msrp { + padding: @cart-item-cell-padding-top 11px @indent__s; + text-align: center; + &:extend(.abs-incl-excl-tax all); } - .input-text { - height: 36px; - width: 45px; - margin-top: -7px; + &.qty { + padding: 20px 11px @indent__s; text-align: center; + .label { + &:extend(.abs-visually-hidden all); + } + .input-text { + height: 36px; + margin-top: -7px; + text-align: center; + width: 45px; + } + } + > .price { + .css(color, @primary__color__lighter); + .font-size(18); + font-weight: @font-weight__bold; } } - > .price { - .css(color, @primary__color__lighter); - .font-size(18); - font-weight: @font-weight__bold; - } - } - .item { - &-actions td { - padding-bottom: @indent__base; - padding-left: @mobile-cart-padding; - padding-right: @mobile-cart-padding; - white-space: normal; - .actions-toolbar { - &:extend(.abs-add-clearfix all); + .item-actions { + td { + padding-bottom: 0; + padding-left: @mobile-cart-padding; + padding-right: @mobile-cart-padding; + white-space: normal; } } - .col { - &.item { + .item { + .col.item { display: block; + min-height: 75px; padding: 15px @mobile-cart-padding @indent__s 90px; position: relative; - min-height: 75px; } } - } - .action { - margin-right: @indent__m; - &:last-child { - margin-right: 0; - } - &.help.map { - &:extend(.abs-action-button-as-link all); - font-weight: @font-weight__regular; - } - &.edit { - float: left; + + .actions-toolbar { + &:extend(.abs-add-clearfix all); + min-height: 20px; + padding-bottom: 15px; + position: relative; + > .action-edit, + > .action-delete { + position: absolute; + right: 16px; + top: 0; + .icon-font( + @icon-edit, + @_icon-font-size: 18px, + @_icon-font-line-height: 20px, + @_icon-font-text-hide: true, + @_icon-font-color: @minicart-icons-color, + @_icon-font-color-hover: @primary__color, + @_icon-font-color-active: @minicart-icons-color + ); + } + > .action-delete { + right: 0; + .icon-font-symbol( + @_icon-font-content: @icon-trash + ); + } } - &.delete { - float: right; - &:extend(.abs-action-button-as-link all); + .action { + margin-right: @indent__m; + &:last-child { + margin-right: 0; + } + &.help.map { + &:extend(.abs-action-button-as-link all); + font-weight: @font-weight__regular; + } } - } - .product { - &-item-photo { - display: block; - max-width: 65px; - left: @mobile-cart-padding; - padding: 0; - position: absolute; - top: 15px; - width: 100%; + + .product { + &-item-photo { + display: block; + left: @mobile-cart-padding; + max-width: 65px; + padding: 0; + position: absolute; + top: 15px; + width: 100%; + } + &-item-name { + display: block; + .font-size(18); + margin: -3px 0 @indent__xs; + } } - &-item-name { - display: block; - .font-size(18); - margin: -3px 0 @indent__xs; + .gift-registry-name-label { + &:after { + content: ':'; + } } - } - .gift-registry-name-label { - &:after { - content: ":"; + + // Product options + .item-options { + margin-bottom: 0; + &:extend(.abs-product-options-list all); + &:extend(.abs-add-clearfix all); } - } - // Product options - .item-options { - margin-bottom: 0; - &:extend(.abs-product-options-list all); - &:extend(.abs-add-clearfix all); - } - .product-item-name + .item-options { - margin-top: @indent__base; - } + .product-item-name + .item-options { + margin-top: @indent__base; + } - .cart-tax-total { - &:extend(.abs-tax-total all); - &-expanded { - &:extend(.abs-tax-total-expanded all); + .cart-tax-total { + &:extend(.abs-tax-total all); + &-expanded { + &:extend(.abs-tax-total-expanded all); + } + } + .product-image-wrapper { + &:extend(.abs-reset-image-wrapper all); + } + .action.configure { + display: inline-block; + margin: @indent__s 0 0; + } + .item .message { + margin-top: @indent__base; } } - .product-image-wrapper { - &:extend(.abs-reset-image-wrapper all); - } - .action.configure { - display: inline-block; - margin: @indent__s 0 0; - } - .item .message { - margin-top: @indent__base; - } - } - // Discount - &-discount { - clear: left; - border-bottom: @border-width__base solid @border-color__base; - .block { - &:extend(.abs-cart-block all); - } - .fieldset > .field > .label { - display: none; - } - .actions-toolbar .primary { - .action { - &.primary, - &.cancel { - &:extend(.abs-revert-to-action-secondary all); - border-top-left-radius: 0; - border-bottom-left-radius: 0; + // Discount + &-discount { + border-bottom: @border-width__base solid @border-color__base; + clear: left; + .block { + &:extend(.abs-cart-block all); + > .title { + strong { + color: @color-blue1; + font-weight: @font-weight__regular; + } } } - } - .action.check { - &:extend(.abs-action-button-as-link all); - font-weight: @font-weight__regular; - } - .fieldset { - display: table; - width: 100%; - } - .field { - display: table-cell; - } - .actions-toolbar { - display: table-cell; - vertical-align: top; - width: 1%; - .action { - &.primary, - &.cancel { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin: 0 0 0 -1px; - white-space: nowrap; - width: auto; + .fieldset > .field > .label { + display: none; + } + .actions-toolbar .primary { + .action { + &.primary, + &.cancel { + &:extend(.abs-revert-to-action-secondary all); + border-bottom-left-radius: 0; + border-top-left-radius: 0; + } } } - .secondary { - position: absolute; - bottom: 5px; - left: @mobile-cart-padding; + .action.check { + &:extend(.abs-action-button-as-link all); + font-weight: @font-weight__regular; + } + .fieldset { + display: table; + width: 100%; + } + .field { + display: table-cell; + } + .actions-toolbar { + display: table-cell; + vertical-align: top; + width: 1%; + .action { + &.primary, + &.cancel { + border-bottom-left-radius: 0; + border-top-left-radius: 0; + margin: 0 0 0 -1px; + white-space: nowrap; + width: auto; + } + } + .secondary { + bottom: 5px; + left: @mobile-cart-padding; + position: absolute; + } } } - } - // Empty cart - &-empty { - padding-left: @layout__width-xs-indent; - padding-right: @layout__width-xs-indent; - } + // Empty cart + &-empty { + padding-left: @layout__width-xs-indent; + padding-right: @layout__width-xs-indent; + } - .cart-tax-info + .cart-tax-total { - display: block; + .cart-tax-info + .cart-tax-total { + display: block; + } } } -} - // -// Mobile -//-------------------------------------- +// Mobile +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) { .cart { &-totals { - .table.totals { - th { - &:extend(.abs-col-no-prefix all); - display: table-cell; - } - td { - &:extend(.abs-col-no-prefix all); - display: table-cell; - } - tbody tr:not(:last-child) td { - &:extend(.abs-no-border-bottom-top all); - } - .amount { - text-align: right; - } - } + .table.totals { + th { + &:extend(.abs-col-no-prefix all); + display: table-cell; + } + td { + &:extend(.abs-col-no-prefix all); + display: table-cell; + } + tbody tr:not(:last-child) td { + &:extend(.abs-no-border-bottom-top all); + } + .amount { + text-align: right; + } + } } .table.items { .col.item, @@ -469,7 +503,7 @@ .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { .cart { - // Cart container + // Cart container &-container { .form-cart { .actions.main { @@ -541,27 +575,24 @@ // -// Common -//-------------------------------------- +// Common +// _____________________________________________ & when (@media-common = true) { - -// -// Cross sell -//-------------------------------------- -.block.crosssell { - padding: 0 @mobile-cart-padding; - margin-top: 70px; - .product-item-info { - width: 200px; + // Cross sell + .block.crosssell { + margin-top: 70px; + .css(padding, 0 @mobile-cart-padding); + .product-item-info { + width: 200px; + } } } -} - // -// Desktop -//-------------------------------------- +// Desktop +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .checkout-cart-index { .page-main { @@ -573,7 +604,7 @@ } } .cart { - // Cart container + // Cart container &-container { &:extend(.abs-add-clearfix-desktop all); .form-cart { @@ -589,9 +620,9 @@ // Summary block &-summary { + .layout-column(2, 2, @layout-column-checkout__width-left); padding: 1px @indent__base @indent__m; position: relative; - .layout-column(2, 2, @layout-column-checkout__width-left); > .title { display: block; } @@ -630,30 +661,23 @@ } .item { - .col { - &.item { - padding: @cart-item-cell-padding-top 8px 20px 0; - } - } - &-actions td { - padding: 0; - text-align: left; - .actions-toolbar { - margin-top: -40px; - padding-left: 185px; - position: relative; - } + .col.item { + padding: @cart-item-cell-padding-top 8px 20px 0; } } + .item-actions td { + padding: 0; + } + .product { &-item-photo { display: table-cell; + max-width: 100%; padding-right: 20px; + position: static; vertical-align: top; width: 1%; - position: static; - max-width: 100%; } &-item-details { padding-bottom: 35px; @@ -670,9 +694,9 @@ // Discount &-discount { border: 0; + .layout-column(2, 1, @layout-column-checkout__width-main); &:extend(.abs-add-box-sizing-desktop all); padding-right: 4%; - .layout-column(2, 1, @layout-column-checkout__width-main); .block { &:extend(.abs-blocks-2columns all); width: 48%; @@ -694,9 +718,9 @@ } .actions-toolbar { .secondary { - position: absolute; bottom: -30px; left: 0; + position: absolute; } } } diff --git a/app/design/frontend/Magento/luma/Magento_GiftMessage/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_GiftMessage/web/css/source/_module.less index 0d7da96fe37d12776dd0a9759bd975a03ec1541c..0d3b4cd47ec03767fba0a2a1291fccd7235b6d4e 100644 --- a/app/design/frontend/Magento/luma/Magento_GiftMessage/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_GiftMessage/web/css/source/_module.less @@ -4,199 +4,365 @@ // */ // -// Common -//-------------------------------------- +// Variables +// _____________________________________________ -& when (@media-common = true) { +@gift-message-field-label__color: @color-gray40; -.gift-message { - margin: 0; - .fieldset& { - > .legend { - &:extend(.abs-methods-shipping-title all); - border-bottom: 0; - padding-bottom: 0; - } - } - .product-image-wrapper { - &:extend(.abs-reset-image-wrapper all); - } - .activate.message { - border-top: @border-width__base solid @border-color__base; - border-bottom: @border-width__base solid @border-color__base; - .css(color, @primary__color); - display: block; - font-weight: @font-weight__semibold; - line-height: 36px; - margin: 0 0 @indent__s; - padding: 0 @indent__m 0 0; - position: relative; - .icon-font( - @_icon-font-content: @icon-down, - @_icon-font-size: 10px, - @_icon-font-position: after, - @_icon-font-display: block - ); - &:after { - position: absolute; - right: 12px; - top: 0; - } - &:hover { - .css(color, @filter-link-hover); +@gift-item-block__border-color: @color-gray-light5; +@gift-item-block__border-width: @border-width__base; + +@gift-item-block-title__color: @color-blue1; +@gift-item-block-title-icon__content: @icon-down; +@gift-item-block-title-icon__active__content: @icon-up; +@gift-item-block-title-icon__color: @color-gray52; +@gift-item-block-title-icon__font-size: 18px; +@gift-item-block-title-icon__line-height: 20px; +@gift-item-block-title-icon__margin: 0 0 0 @indent__s; + +// +// Common +// _____________________________________________ + +& when (@media-common = true) { + .gift-message { + .actions-toolbar { + .action-cancel { + &:extend(.abs-action-button-as-link all); + display: none; + } } - &.active { - border-bottom: 0; - .icon-font-symbol( - @_icon-font-content: @icon-up, - @_icon-font-position: after - ); + .field { + .label { + .css(color, @gift-message-field-label__color); + .css(font-weight, @font-weight__regular); + } } } - .options-items { - margin-top: @indent__xl; - .order-title { - margin: 0 0 15px; - > .field.choice { - .font-size(18); - font-weight: @font-weight__light; - border-bottom: @border-width__base solid @border-color__base; - padding-bottom: @indent__xs; + + .cart.table-wrapper { + .item-gift { + &._active { + .css(border-top, @gift-item-block__border-width solid @gift-item-block__border-color); + } + .action { + margin-right: 0; } } - .order-options { + } + + .gift-options { + &:extend(.abs-add-clearfix all); + } + + .gift-options-title { + .css(font-weight, @font-weight__semibold); + margin: 0 0 @indent__base; + } + + .gift-options-content { + .fieldset { margin: 0 0 @indent__base; } - .fieldset { - .field.text { - padding-right: 0; - width: 100%; - .input-text { - height: 90px; + } + + .gift-summary { + position: relative; + .actions-toolbar { + > .secondary { + .action { + margin: 0 0 0 @indent__base; + width: auto; } } } - .field.to { - padding-right: 0; + .action-edit, + .action-delete { + &:extend(.abs-action-button-as-link all); + .icon-font( + @icon-edit, + @_icon-font-size: 18px, + @_icon-font-line-height: 20px, + @_icon-font-text-hide: true, + @_icon-font-color: @minicart-icons-color, + @_icon-font-color-hover: @primary__color, + @_icon-font-color-active: @minicart-icons-color + ); } - .extra-options-container { - font-weight: @font-weight__regular; - .field.choice { - margin: @indent__base 0 15px; - } + .action-delete { + .icon-font-symbol( + @_icon-font-content: @icon-trash + ); } } - .options-order-container, - .options-items-container { - margin-bottom: @indent__s; + .gift-summary, + .cart.table-wrapper .gift-summary { + .actions-toolbar { + padding: 0; + position: absolute; + right: 0; + top: 0; + } } - .gift-messages-order { - margin-bottom: 25px; + + // + // In-table block + // --------------------------------------------- + + .cart.table-wrapper { + .gift-content { + display: none; + clear: left; + float: left; + margin-right: -100%; + padding: @indent__base 0; + width: 100%; + &._active { + display: block; + } + } } - .items { - .list-reset-styles(); - .item { - border-bottom: @border-width__base solid @border-color__base; - padding: 0 0 @indent__base; + + // + // Collapsible block + // --------------------------------------------- + + .gift-item-block { + .css(border-bottom, @gift-item-block__border-width solid @gift-item-block__border-color); + margin: 0; + &._active { + .title { + &:after { + .css(content, @gift-item-block-title-icon__active__content); + } + } + } + + .title { + .css(color, @gift-item-block-title__color); + cursor: pointer; + .icon-font( + @gift-item-block-title-icon__content, + @_icon-font-size: @gift-item-block-title-icon__font-size, + @_icon-font-line-height: @gift-item-block-title-icon__line-height, + @_icon-font-color: @gift-item-block-title-icon__color, + @_icon-font-color-hover: @primary__color, + @_icon-font-margin: @gift-item-block-title-icon__margin, + @_icon-font-position: after, + @_icon-font-display: block + ); + margin: 0; + padding: @indent__s @indent__xl @indent__s 15px; + position: relative; + } + + .content { &:extend(.abs-add-clearfix all); + padding: @indent__s 0 @indent__base; + position: relative; } - .product { - margin: 0 0 @indent__base; - .number { - .css(color, @primary__color__light); - span { - .css(color, @primary__color); - font-weight: @font-weight__semibold; + } + + // + // Account order gift message + // --------------------------------------------- + + .order-details-items { + .order-gift-message, + .block-order-details-gift-message { + &:extend(.abs-add-clearfix all); + dt { + &:after { + content: ''; } } - .name { - .font-size(16); - font-weight: @font-weight__regular; + .label { + &:extend(.abs-colon all); } - .photo.container { - margin: 15px 0; - img { - display: block; + .item-message { + clear: left; + } + .item-options { + dt { + .css(font-weight, @font-weight__regular); + margin: @indent__s 0; } } } } - .regular-price, - .price-including-tax, - .price-excluding-tax { - &:before { - content: attr(data-label) ": "; - } - .price { - font-weight: @font-weight__bold; + + .order-details-items { + .order-items { + .order-gift-message { + &:not(.expanded-content) { + &:extend(.abs-hidden); + } + .action.close { + &:extend(.abs-no-display all); + } + } } } - .price-including-tax { - .font-size(14); + + .options-order-container, + .options-items-container { + margin-bottom: @indent__s; + } + + .gift-messages-order { + margin-bottom: @indent__m; } } // -// Account order gift message -//-------------------------------------- -.order-details-items { - .order-gift-message, - .block-order-details-gift-message { - .item-options { - dt { - margin: @indent__s 0; - font-weight: @font-weight__regular; +// Mobile +// _____________________________________________ + +.media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { + .gift-message { + .actions-toolbar { + .action-update { + .font-size(20); + padding: 15px; + width: 100%; } } - &:extend(.abs-add-clearfix all); - dt:after { - content: ""; - } - .label { - &:extend(.abs-colon all); + } + + .gift-item-block { + border-bottom: 0; + .css(border-top, @gift-item-block__border-width solid @gift-item-block__border-color); + .title { + &:after { + .font-size(12); + position: absolute; + right: 20px; + top: 10px; + } } - .item-message { - clear: left; + .content { + padding-left: 1.5rem; + padding-right: 1.5rem; } } -} -.order-details-items .order-items .order-gift-message { - &:not(.expanded-content) { - &:extend(.abs-hidden); + .gift-message-summary { + padding-right: 7rem; } - .action.close { - &:extend(.abs-no-display all); - } -} + .cart.table-wrapper { + .action-gift { + .icon-font( + @icon-present, + @_icon-font-size: 18px, + @_icon-font-line-height: 20px, + @_icon-font-text-hide: true, + @_icon-font-color: @minicart-icons-color, + @_icon-font-color-hover: @primary__color, + @_icon-font-color-active: @minicart-icons-color, + @_icon-font-position: after + ); + &._active { + border: @border-width__base solid @color-gray-light5; + border-bottom-color: @color-white; + margin: -@indent__xs 14px -1px -15px; + padding: 4px @indent__s 9px 14px; + &:after { + color: @primary__color; + } + } + } + .gift-content { + border-top: @border-width__base solid @color-gray-light5; + margin-left: -@mobile-cart-padding; + margin-right: -@mobile-cart-padding; + padding-left: @mobile-cart-padding; + padding-right: @mobile-cart-padding; + overflow: hidden; + } + } } // -// Mobile -//-------------------------------------- +// Desktop +// _____________________________________________ .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .gift-message { - .items { - .item { - margin: 0 0 @indent__base; - &:extend(.abs-add-clearfix-desktop all); - } - .product { - float: left; - margin: 0 @indent__l 0 0; - width: 145px; - .name { - .font-size(16); - font-weight: @font-weight__regular; - max-width: 145px; - text-overflow: ellipsis; - overflow: hidden; + .actions-toolbar { + padding: 0; + .secondary { + float: right; + .action { + float: right; + margin-left: @indent__base; + margin-right: 0; + } + .action-cancel { + display: block; + float: left; + margin-top: 6px; + } + } + } + .field { + &:extend(.abs-clearfix all); + .form-field-type-revert( + @_type: inline, + @_type-inline-label-align: left + ); + } + } + .gift-options-title { + .css(font-weight, @font-weight__light); + .font-size(18); + } + + .gift-item-block { + .title { + padding: @indent__base 0; + } + } + + .item-gift { + td { + padding-left: 0; + padding-right: 0; + } + } + + // + // In-table block + // --------------------------------------------- + + .cart.table-wrapper { + .action-gift { + float: left; + .icon-font( + @icon-down, + @_icon-font-size: 18px, + @_icon-font-line-height: 20px, + @_icon-font-color: @minicart-icons-color, + @_icon-font-color-hover: @primary__color, + @_icon-font-color-active: @minicart-icons-color, + @_icon-font-margin: 0 0 0 @indent__s, + @_icon-font-position: after + ); + &._active { + &:after { + content: @icon-up; } } - .options { - overflow: hidden; + } + } + + .cart-container { + .cart-gift-item { + &:extend(.abs-shopping-cart-items-desktop all); + margin-bottom: @indent__base; + .gift-options, + .gift-summary { + padding-bottom: @indent__base; } } } diff --git a/app/design/frontend/Magento/luma/Magento_Wishlist/web/css/source/_module.less b/app/design/frontend/Magento/luma/Magento_Wishlist/web/css/source/_module.less index 8b5f2b983d6659f75888cf8de06183ec9f1d34f3..c1388fd10a0f9dfd7f06f7c17c96d0b87ba272c7 100644 --- a/app/design/frontend/Magento/luma/Magento_Wishlist/web/css/source/_module.less +++ b/app/design/frontend/Magento/luma/Magento_Wishlist/web/css/source/_module.less @@ -4,149 +4,148 @@ // */ // -// Common -//-------------------------------------- +// Common +// _____________________________________________ & when (@media-common = true) { - -.form.wishlist.items { - .actions-toolbar { - &:extend(.abs-reset-left-margin all); + .form.wishlist.items { + .actions-toolbar { + &:extend(.abs-reset-left-margin all); + } } -} -.product-social-links, -.block-bundle-summary, -.product-item, -.table-comparison { - .action.towishlist { - &:extend(.abs-actions-addto all); - .icon-font-symbol( + .product-social-links, + .block-bundle-summary, + .product-item, + .table-comparison { + .action.towishlist { + &:extend(.abs-actions-addto all); + .icon-font-symbol( @_icon-font-content: @icon-wishlist-full, @_icon-font-position: before - ); + ); + } } -} -.account .table-wrapper .data.table.wishlist { - .table-bordered( + .account .table-wrapper .data.table.wishlist { + .table-bordered( @_table_type: horizontal - ); - thead > tr > th { - border-bottom: 0; - } - tbody > tr:last-child > td { - border-bottom: 1px solid @table__border-color; - } - .product.name { - display: inline-block; - margin-bottom: @indent__s; - } - .box-tocart { - margin: @indent__s 0; - .qty { - vertical-align: middle; - &:extend(.abs-input-qty all); + ); + thead > tr > th { + border-bottom: 0; } - } - .col { - &.item { - width: 50%; + tbody > tr:last-child > td { + border-bottom: 1px solid @table__border-color; } - &.photo { - max-width: 150px; + .product.name { + display: inline-block; + margin-bottom: @indent__s; } - &.selector { - max-width: 15px; + .box-tocart { + margin: @indent__s 0; + .qty { + vertical-align: middle; + &:extend(.abs-input-qty all); + } } - } - textarea { - margin: @indent__s 0; - } - .input-text.qty { - margin-bottom: @indent__s; - } - .action.primary { - vertical-align: top; - } - .price { - font-weight: @font-weight__bold; - } -} - -.link.wishlist { - .counter { - .css(color, @text__color__muted); - white-space: nowrap; - &:before { - content: "("; + .col { + &.item { + width: 50%; + } + &.photo { + max-width: 150px; + } + &.selector { + max-width: 15px; + } + } + textarea { + margin: @indent__s 0; + } + .input-text.qty { + margin-bottom: @indent__s; } - &:after { - content: ")"; + .action.primary { + vertical-align: top; + } + .price { + font-weight: @font-weight__bold; } } -} -.block-wishlist { - .block-title { - &:extend(.abs-block-widget-title all); - } - .counter { - &:extend(.abs-block-items-counter all); + .link.wishlist { + .counter { + .css(color, @text__color__muted); + white-space: nowrap; + &:before { + content: '('; + } + &:after { + content: ')'; + } + } } - .product-item-name { - margin-right: @indent__m; + + .block-wishlist { + .block-title { + &:extend(.abs-block-widget-title all); + } + .counter { + &:extend(.abs-block-items-counter all); + } + .product-item-name { + margin-right: @indent__m; + } } -} -.products-grid.wishlist { - .product { - &-item { - &-photo { - margin-bottom: @indent__s; - display: block; - } - &-name { - margin-top: 0; - } - .price-box { - margin: 0; - } - .comment-box { - .label { - &:extend(.abs-visually-hidden all); + .products-grid.wishlist { + .product { + &-item { + &-photo { + display: block; + margin-bottom: @indent__s; } - } - &-comment { - display: block; - margin: @indent__s 0; - height: 42px; - } - &-actions { - > * { - margin-right: 15px; - &:last-child { - margin-right: 0; + &-name { + margin-top: 0; + } + .price-box { + margin: 0; + } + .comment-box { + .label { + &:extend(.abs-visually-hidden all); } } - } - .box-tocart { - input.qty { - &:extend(.abs-input-qty all); + &-comment { + display: block; + height: 42px; + margin: @indent__s 0; } - .tocart { - &:extend(.abs-revert-secondary-size all); + &-actions { + > * { + margin-right: 15px; + &:last-child { + margin-right: 0; + } + } + } + .box-tocart { + input.qty { + &:extend(.abs-input-qty all); + } + .tocart { + &:extend(.abs-revert-secondary-size all); + } } } } } } -} - // -// Mobile -//-------------------------------------- +// Mobile +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__s) { .products-grid.wishlist { .product-item { @@ -160,15 +159,15 @@ .media-width(@extremum, @break) when (@extremum = 'max') and (@break = @screen__m) { .products-grid.wishlist { - margin-right: -@indent__s; margin-bottom: @indent__l; + margin-right: -@indent__s; .product { &-item { padding: @indent__base @indent__s @indent__base @indent__base; position: relative; &-photo { - margin-right: @indent__base; float: left; + margin-right: @indent__base; } &-name { .font-size(16); @@ -226,6 +225,20 @@ } } } + + .cart.table-wrapper { + .action-towishlist { + .icon-font( + @icon-wishlist-full, + @_icon-font-size: 18px, + @_icon-font-line-height: 20px, + @_icon-font-text-hide: true, + @_icon-font-color: @minicart-icons-color, + @_icon-font-color-hover: @primary__color, + @_icon-font-color-active: @minicart-icons-color + ); + } + } } .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__s) { @@ -243,8 +256,9 @@ } // -// Desktop -//-------------------------------------- +// Desktop +// _____________________________________________ + .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .products-grid.wishlist { .product { @@ -263,8 +277,8 @@ margin: @indent__s 0 0; > * { display: inline-block; - margin-top: 7px; margin-bottom: 7px; + margin-top: 7px; } } .fieldset { @@ -292,7 +306,7 @@ } } } - .wishlist-index-index { + .wishlist-index-index { .product-item-info { width: auto; } @@ -302,18 +316,19 @@ .media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) { .wishlist-index-index { .product-item-inner { + @_shadow: 3px 4px 4px 0 rgba(0, 0, 0, .3); + + .css(background, @color-white); + .css(border, @border-width__base solid @color-gray-light2); + border-top: none; + .css(box-shadow, @_shadow); display: none; - position: absolute; left: 0; + margin: 9px 0 0 -1px; + padding: 0 9px 9px; + position: absolute; right: -1px; z-index: 2; - .css(background, @color-white); - padding: 0 9px 9px; - margin: 9px 0 0 -1px; - border: 1px solid @color-gray-light2; - border-top: none; - @_shadow: 3px 4px 4px 0 rgba(0, 0, 0, .3); - .css(box-shadow, @_shadow); .comment-box { margin-top: -18px; } @@ -328,10 +343,10 @@ margin: 0; } .product-item { - width: 24.439%; - margin-left: calc(~"(100% - 4 * 24%) / 3"); margin-bottom: @indent__base; + margin-left: calc(~"(100% - 4 * 24%) / 3"); padding: 0; + width: 24.439%; &:nth-child(4n+1) { margin-left: 0; } diff --git a/app/design/frontend/Magento/luma/web/css/source/_extends.less b/app/design/frontend/Magento/luma/web/css/source/_extends.less index 00d74dcf5d0740f048ab7cd0ce0a9f2eb1b8b8b7..cc4ab06b849cb5eec4233e701e915deedb4285ed 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_extends.less +++ b/app/design/frontend/Magento/luma/web/css/source/_extends.less @@ -753,11 +753,8 @@ margin: 0; > .title { &:extend(.abs-toggling-title all); - .column.main & { - strong { - .font-size(14); - font-weight: @font-weight__semibold; - } + &:after { + color: @color-gray52; } } .content { diff --git a/app/design/frontend/Magento/luma/web/css/source/_variables.less b/app/design/frontend/Magento/luma/web/css/source/_variables.less index a6ad436b94df7ea39e07279d315ea795ea8986ce..dbdbeb65ad660dccec8e724925392cf18b254c96 100644 --- a/app/design/frontend/Magento/luma/web/css/source/_variables.less +++ b/app/design/frontend/Magento/luma/web/css/source/_variables.less @@ -31,6 +31,8 @@ @icon-star-empty: '\e625'; @icon-download: '\e626'; @icon-private: '\e629'; +@icon-present: '\e62a'; +@icon-gift-registry: '\e62b'; @icon-calendar__font-size: 23px; diff --git a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.eot b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.eot index 9c574aed777d1435ebaecb4511cbbd877aa3e229..4a12dddaf3e4556c2fa7abda0181abd7950043e0 100644 Binary files a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.eot and b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.eot differ diff --git a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.svg b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.svg index 171e99f64616714b0c97a1155fc6498b90d4a147..5e68e79f8e3e44488f98f45b6a4d1408f485d2ec 100644 --- a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.svg +++ b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.svg @@ -1 +1 @@ -<svg xmlns="http://www.w3.org/2000/svg"><defs><font horiz-adv-x="512"><font-face units-per-em="512" ascent="480" descent="-32"/><glyph horiz-adv-x="256"/><glyph unicode="" d="M436.608 435.568c-65.68 31.424-144.064 2.832-174.976-63.84-2.16-4.64-4.016-10.448-5.664-17.2-1.648 6.752-3.504 12.56-5.632 17.2-30.944 66.672-109.248 95.264-174.944 63.84-65.6-31.424-93.744-110.96-62.832-177.648C43.488 191.248 255.904.08 255.904.08s.016.224.048.576c.048-.352.064-.576.064-.576s212.512 191.168 243.44 257.84c30.896 66.688 2.832 146.224-62.848 177.648z"/><glyph unicode="î˜" d="M362.533 425.05c-49.81-49.79-20.81-20.77-20.81-20.77l96.403-96.385s-31.067-31.05 20.772 20.773-46.61 146.194-96.365 96.384zm-42.386-41.38L92.16 155.686l.33-.293L38.417 8.868 188.25 59.556l.312-.31.786.804v.02l227.2 227.2-96.403 96.402zm-141.11-279.295l-78.812-33.28 37.047 75.044 38.345 38.36 41.764-41.786-38.34-38.346z"/><glyph unicode="" d="M255.952 480L0 32h512L255.952 480zm31.168-126.192v-65.36l-16.688-128.544h-27.088l-18.032 128.544-.992 65.36h62.8zM224.096 64.112v64.112h64.24V64.112h-64.24z"/><glyph unicode="" d="M363.923 112.02C334.118 83.254 295.26 68.516 255.91 68.48c-35.145.037-70.2 11.758-99.347 35.933-37.03 30.83-56.046 74.97-56.1 119.66 0 7.443.55 14.83 1.59 22.18l-60.67-11.373c-.165-3.602-.293-7.186-.293-10.807-.036-61.495 26.46-122.9 77.55-165.285 40.008-33.335 88.886-49.683 137.25-49.683h.13c56.21 0 112.163 22.217 153.745 64.914L449.61 34.24l.31 124.745-131.808.35 45.805-47.326zm29.42 277.21c-40.045 33.335-88.922 49.664-137.27 49.664-55.808 0-111.397-21.833-152.923-63.945L65.463 409.74l-.677-120.722 130.487-.75-46.336 48.494c29.64 28.252 68.188 42.697 107.154 42.733 35.11-.036 70.22-11.72 99.33-35.93 37.03-30.83 56.05-74.937 56.14-119.7 0-6.437-.456-12.89-1.224-19.365l60.436 11.593c.036 2.613.164 5.21.164 7.77-.036 61.55-26.514 122.9-77.587 165.357z"/><glyph unicode="" d="M95.792-32h320.4v320.08h-320.4V-32zm222.544 260.512c0 9.904 8.032 17.904 17.952 17.904 9.904 0 17.936-8 17.936-17.904V39.776c0-9.888-8.032-17.92-17.936-17.92-9.92 0-17.952 8.032-17.952 17.92v188.736zm-80.288 0c0 9.904 8.032 17.904 17.92 17.904s17.92-8 17.92-17.904V39.776c0-9.888-8.032-17.92-17.92-17.92s-17.92 8.032-17.92 17.92v188.736zm-80.448 0c0 9.904 8 17.904 17.92 17.904 9.888 0 17.92-8 17.92-17.904V39.776c0-9.888-8.032-17.92-17.92-17.92-9.92 0-17.92 8.032-17.92 17.92v188.736zm265.616 188.016h-71.232v10.896c0 29.04-19.76 52.576-48.8 52.576h-94.72c-29.008 0-48.48-23.536-48.48-52.576v-10.896H88.752c-13.696 0-24.768-11.088-24.768-24.752v-71.984h384v71.984c0 13.664-11.04 24.752-24.768 24.752zm-103.28 0H191.744v14.704c.032 9.248 7.488 16.736 16.72 16.768h94.72c9.216-.032 16.704-7.52 16.752-16.768v-14.704z"/><glyph unicode="" d="M511.52 278.496c-1.312 4.096-5.152 6.88-9.44 6.88H321.376L265.424 457.12c-1.344 4.096-5.136 6.88-9.44 6.88-4.272 0-8.096-2.784-9.44-6.88l-56.24-171.744H9.92c-4.256 0-8.096-2.784-9.44-6.88-1.312-4.064.128-8.592 3.584-11.088l145.984-106.32-56.256-172.72c-1.328-4.096.128-8.592 3.616-11.12 3.456-2.496 8.208-2.496 11.664 0L255.968 83.872l146.64-106.624c1.792-1.28 3.76-1.936 5.808-1.936 2.096 0 4.144.656 5.856 1.936 3.568 2.528 4.96 7.008 3.6 11.12l-56.24 172.72 146.288 106.32c3.488 2.496 4.928 6.992 3.6 11.088z"/><glyph unicode="" d="M473.015 200.375v49.37l-7.003 2.27-52.882 17.243-14.116 34.103 27.154 57.387-34.908 34.907-6.583-3.31-49.555-25.197-34.103 14.117-21.4 59.755h-49.37l-2.287-6.986-17.262-52.88-34.047-14.1-57.4 27.136-34.924-34.927 3.31-6.564 25.18-49.59-14.08-34.03-59.76-21.414v-49.39l6.95-2.25 52.9-17.28 14.1-34.066L85.813 87.3l34.925-34.925 6.53 3.328 49.59 25.2 34.063-14.115 21.394-59.76h49.37l2.286 6.986 17.28 52.883 34.03 14.116 57.398-27.137 34.95 34.904-3.346 6.546-25.197 49.572 14.116 34.067 59.813 21.413zM256 154.86c-38.2 0-69.156 30.958-69.156 69.14 0 38.217 30.958 69.156 69.156 69.156 38.163 0 69.156-30.94 69.156-69.156 0-38.18-31.012-69.14-69.156-69.14z"/><glyph unicode="" d="M31.008 351.36L256 111.376 481.04 351.36z"/><glyph unicode="" d="M383.415 226.596l-212.57 218.587-37.286-34.98 178.28-183.278L128.566 38.473l36.48-35.657 205.66 211.456-.202.2z"/><glyph unicode="" d="M52.928 345.2h406.144c11.056 0 20 8.976 20 20.016 0 11.072-8.944 20.032-20 20.032H52.928c-11.056 0-20.016-8.96-20.016-20.032 0-11.04 8.96-20.016 20.016-20.016zm406.144-101.184H52.928c-11.056 0-20.016-8.944-20.016-20.016s8.96-20.016 20.016-20.016h406.144c11.056 0 20 8.944 20 20.016s-8.928 20.016-20 20.016zm0-141.216H52.928c-11.056 0-20.016-8.96-20.016-20.032s8.96-20.016 20.016-20.016h406.144c11.056 0 20 8.944 20 20.016s-8.928 20.032-20 20.032z"/><glyph unicode="" d="M256.144 480C167.024 480 94.8 407.76 94.8 318.624 94.8 229.52 256.144-32 256.144-32S417.52 229.52 417.52 318.624C417.52 407.76 345.328 480 256.144 480zm0-210.384c-27.056 0-49.024 21.952-49.024 49.008 0 27.072 21.984 49.024 49.024 49.024 27.104 0 49.088-21.952 49.088-49.024 0-27.056-21.984-49.008-49.088-49.008z"/><glyph unicode="" d="M0 256.144h224.032v223.808H0V256.144zm288.128 223.808v-95.728h224.176v95.728H288.128zM0-32h224.032v223.808H0V-32zm288.128 288.144h224.176v95.728H288.128v-95.728zm0-160.064h224.176v95.728H288.128V96.08zm0-128.08h224.176v95.712H288.128V-32z"/><glyph unicode="" d="M332.764 119.003c-9.216 0-45.495-56.027-65.243-56.027-5.28 0-7.86 4.644-7.86 9.216 0 10.57 7.24 27.044 11.157 36.937l47.396 128.38c23.77 63.89-6.546 81.02-34.87 81.02-38.218 0-72.45-19.09-98.78-44.123-8.576-8.577-37.523-36.207-37.523-48.09 0-3.934 3.93-8.578 8.575-8.578 11.813 0 43.447 57.307 67.803 57.307 5.285 0 11.19-5.923 6.583-17.754l-46.08-115.97c-4.643-11.153-27.043-65.17-27.043-96.785 0-25.014 16.476-36.187 40.192-36.187 66.52.003 143.54 81.65 143.54 100.76-.02 5.925-4.59 9.892-7.846 9.892zm-13.22 320.658c-28.948 0-54.017-23.68-54.017-52.66 0-27.01 17.792-44.8 44.837-44.8 29.55 0 54.62 22.4 54.62 52.7 0 27.01-19.072 44.767-45.44 44.767z"/><glyph unicode="î˜" d="M0 351.552h128.464V480H0V351.552zm191.76 0h128.528V480H191.76V351.552zM383.568 480V351.552h128.496V480H383.568zM0 159.744h128.464v128.464H0V159.744zm191.76 0h128.528v128.464H191.76V159.744zm191.808 0h128.496v128.464H383.568V159.744zM0-32h128.464V96H0V-32zm191.76 0h128.528V96H191.76V-32zm191.808 0h128.496V96H383.568V-32z"/><glyph unicode="" d="M255.296 450.464c-124.688 0-225.76-101.072-225.76-225.76 0-124.672 101.072-225.76 225.76-225.76 124.672 0 225.76 101.088 225.76 225.76 0 124.688-101.072 225.76-225.76 225.76zm-23.36-355.888L106 222.608l32.208 25.936 72.864-57.088c29.76 35.424 96 106.032 187.312 161.984l7.696-17.792c-83.808-77.088-152.48-185.6-174.144-241.072z"/><glyph unicode="î˜" d="M0 241.12h512v-34.064H0v34.064z"/><glyph unicode="î˜" d="M478.263 426.15c-142.555-87.39-245.98-197.633-292.48-252.948L71.99 262.362l-50.266-40.538L218.387 21.85c33.847 86.675 141.056 256.11 271.872 376.486l-12 27.814z"/><glyph unicode="" d="M220.576 83.248c-26.352 0-47.696-21.376-47.696-47.712s21.344-47.664 47.696-47.664c26.336 0 47.696 21.328 47.696 47.664s-21.36 47.712-47.696 47.712zm164.768 0c-26.4 0-47.76-21.376-47.76-47.712s21.344-47.664 47.76-47.664c26.288 0 47.632 21.328 47.632 47.664s-21.344 47.712-47.632 47.712zm74.512 267.072H140s-19.152 52.608-37.392 84.864c-14.128 24.976-43.344 23.968-43.344 23.968-20.096 0-33.024-12.288-33.024-32.4 0-20.096 15.92-36.16 36.032-36.16l8.496-.08 95.2-262.192 266.832-.208S481.584 327.744 479.072 320c8.944 27.68-2.448 30.32-19.216 30.32zm-293.328-92.976c-14 0-25.36 11.36-25.36 25.376s11.36 25.392 25.36 25.392c14.016 0 25.36-11.376 25.36-25.392s-11.344-25.376-25.36-25.376zm54.24-84.704c-14.016 0-25.376 11.376-25.376 25.392 0 13.984 11.36 25.36 25.376 25.36 14 0 25.36-11.376 25.36-25.36.016-14.016-11.36-25.392-25.36-25.392zm27.888 84.704c-14 0-25.376 11.36-25.376 25.376s11.36 25.392 25.376 25.392c14 0 25.36-11.376 25.36-25.392s-11.36-25.376-25.36-25.376zm54.24-84.704c-14 0-25.36 11.376-25.36 25.392 0 13.984 11.36 25.36 25.36 25.36 14.048 0 25.44-11.376 25.44-25.36 0-14.016-11.392-25.392-25.44-25.392zm27.952 84.704c-14 0-25.408 11.36-25.408 25.376s11.408 25.392 25.408 25.392c14 0 25.328-11.376 25.328-25.392s-11.328-25.376-25.328-25.376zm54.192-84.704c-13.984 0-25.328 11.376-25.328 25.392 0 13.984 11.36 25.36 25.328 25.36 14 0 25.408-11.376 25.408-25.36 0-14.016-11.408-25.392-25.408-25.392zm27.92 84.704c-14.016 0-25.36 11.36-25.36 25.376s11.344 25.392 25.36 25.392c14.048 0 25.376-11.376 25.376-25.392s-11.328-25.376-25.376-25.376z"/><glyph unicode="" d="M142.992 332.768c10.352 0 18.8 8.4 18.8 18.8v67.68c0 10.368-8.432 18.784-18.8 18.784-10.384 0-18.8-8.4-18.8-18.784v-67.68c0-10.4 8.416-18.8 18.8-18.8zm251.392 50.576v-.32c7.776-6.944 12.72-17.008 12.72-28.288 0-20.816-16.88-37.712-37.744-37.712s-37.76 16.912-37.76 37.712c0 11.264 4.976 21.344 12.784 28.288v.32H167.968v-.32c7.824-6.944 12.768-17.008 12.768-28.288 0-20.816-16.896-37.712-37.728-37.712-20.864 0-37.744 16.912-37.744 37.712 0 11.264 4.928 21.344 12.752 28.288v.32H32.48V-.256h447.248v383.6h-85.344zM448.72 32.832H65.568v254.72H448.72V32.832zm-79.36 299.936c10.384 0 18.784 8.4 18.784 18.8v67.68c0 10.368-8.4 18.784-18.784 18.784-10.352 0-18.816-8.4-18.816-18.784v-67.68c0-10.4 8.464-18.8 18.816-18.8zm-20.144-148.64H301.28v-47.872h47.952v47.872zm0 71.984H301.28v-47.824h47.952v47.824zm0-142H301.28V66.24h47.952v47.872zm67.44 142h-47.92v-47.824h47.92v47.824zm0-71.984h-47.92v-47.872h47.92v47.872zm-134.96 71.984h-47.872v-47.824h47.872v47.824zM146.8 184.128H98.944v-47.872H146.8v47.872zm67.488-70.016H166.4V66.24h47.872v47.872zm-67.488 0H98.944V66.24H146.8v47.872zm134.896 70.016h-47.872v-47.872h47.872v47.872zm0-70.016h-47.872V66.24h47.872v47.872zm-67.408 70.016H166.4v-47.872h47.872v47.872zm0 71.984H166.4v-47.824h47.872v47.824z"/><glyph unicode="" d="M256 444.727L55.186 201.437H186.24V3.29h139.575v198.144h131.017z"/><glyph unicode="" d="M325.78 246.583v198.144H186.185V246.583h-131L256.02 3.29l200.81 243.294z"/><glyph unicode="" d="M487.232 35.872s-78.176 80.288-109.328 111.312c-13.552 13.552-22.832 22.752-22.832 22.752 10.56 15.088 18.816 31.616 24.704 49.392 5.84 17.76 8.752 36.496 8.752 56.192 0 25.36-4.816 49.2-14.448 71.552-9.664 22.32-22.784 41.824-39.456 58.432-16.64 16.688-36.144 29.824-58.496 39.472-22.336 9.664-46.176 14.496-71.536 14.496-25.344 0-49.184-4.848-71.552-14.496-22.336-9.648-41.712-22.784-58.192-39.472-16.416-16.608-29.52-36.128-39.152-58.448C26.032 324.72 21.2 300.864 21.2 275.504c0-25.376 4.848-49.216 14.496-71.552 9.632-22.304 22.72-41.792 39.152-58.464 16.464-16.608 35.856-29.776 58.176-39.456 22.368-9.664 46.208-14.448 71.552-14.448 19.68 0 38.416 2.88 56.208 8.768 17.776 5.856 34.288 14.144 49.36 24.72 0 0 8.576-8.512 21.2-21.216C365.856 69.216 441.76-9.536 441.76-9.536c11.456-4.992 29.712.336 38.848 8.064 9.04 7.776 14.096 23.984 6.624 37.344zM327.792 223.28c-7.008-16.192-16.576-30.336-28.624-42.336-12.096-12.048-26.192-21.616-42.336-28.608-16.128-7.024-33.392-10.528-51.68-10.528-18.704 0-36.096 3.504-52.256 10.528-16.16 7.008-30.288 16.56-42.336 28.608-12.048 12.016-21.616 26.16-28.608 42.336-7.008 16.112-10.512 33.568-10.512 52.24 0 18.272 3.504 35.632 10.512 51.984 6.992 16.336 16.56 30.56 28.608 42.592 12.048 12.096 26.176 21.664 42.336 28.608 16.16 7.056 33.552 10.512 52.256 10.512 18.288 0 35.552-3.456 51.68-10.512 16.144-6.96 30.24-16.512 42.336-28.608 12.032-12.032 21.616-26.256 28.624-42.592 7.008-16.352 10.48-33.712 10.48-51.984.016-18.672-3.456-36.128-10.48-52.24z"/><glyph unicode="" d="M483.255 415.177l-36.023 35.968-191.25-191.268-191.25 191.268-35.986-35.968 191.268-191.27L28.89 32.767l35.97-35.93L256 187.94 447.12-3.164l35.932 35.932L291.95 223.89z"/><glyph unicode="" d="M200.21 226.89l178.213 183.314-37.248 34.98-212.608-218.587 218.46-223.78 36.388 35.657z"/><glyph unicode="" d="M256 335.168L31.008 95.184H481.04z"/><glyph unicode="" d="M96.624 451.12V-3.12L409.552 224z"/><glyph unicode="" d="M102.992 224L415.904-3.12v454.24z"/><glyph unicode="" d="M0 .464h63.984V480H0V.464zM512.08 480H96.256V192.112H512.08L373.872 334.144 512.08 480z"/><glyph unicode="" d="M512 241.12H273.488V480h-34.016V241.12H0v-34.064h239.472V-32h34.016v239.056H512z"/><glyph unicode="î˜" d="M255.968 228.064l221.488 155.84c-2.656.528-5.344.848-8.128.848H42.672c-2.8 0-5.504-.32-8.144-.848l221.44-155.84zm.96-59.568l-.96 1.408-.944-1.408L.464 347.632c-.176-1.6-.464-3.2-.464-4.816V75.104C0 51.2 19.104 31.792 42.672 31.792h426.656c23.6 0 42.688 19.408 42.688 43.312v267.712c0 1.632-.288 3.216-.496 4.816L256.928 168.496z"/><glyph unicode="" d="M127.584 31.776v127.632H0V31.776h127.584zM319.248 416.24H192.32V31.792h126.928V416.24zm192.336-128.768H384.208V31.792h127.376v255.68z"/><glyph unicode="" d="M255.296 450.464c-124.688 0-225.76-101.072-225.76-225.76 0-124.672 101.072-225.76 225.76-225.76 124.672 0 225.76 101.088 225.76 225.76 0 124.688-101.072 225.76-225.76 225.76zM372.16 144.832l-37.104-37.104-79.088 79.056-79.056-79.04-37.12 37.136 79.024 79.024-79.136 79.12 37.136 37.136 79.12-79.136 79.184 79.184 37.152-37.152-79.2-79.168 79.088-79.056z"/><glyph unicode="î˜ " d="M262.748 418.688c-113.664 2.25-207.214-67.803-208.97-156.435-.584-30.83 9.985-59.813 28.8-84.644l-4.918 4.95c32.384-41.62-31.104-153.31-31.104-153.31l142.28 70.35c22.51-7.094 44.16-11.922 69.725-12.45 113.67-2.232 205.117 78.354 206.85 167.003 1.76 88.63-88.96 162.304-202.66 164.535z"/><glyph unicode="" d="M259.163 285.422L461 89.198l38.546 41.07-240.713 234.02L12.47 123.814l39.26-40.1z"/><glyph unicode="" d="M252.82 162.58L51 358.802l-38.53-41.07 240.68-234.02 246.4 240.476-39.332 40.1z"/><glyph unicode="" d="M256-33.248c-141.408 0-256 114.624-256 256s114.592 256 256 256c141.376 0 256-114.624 256-256s-114.608-256-256-256zm0 481.008c-124.048 0-225.008-100.96-225.008-225.008S131.952-2.272 256-2.272s224.992 100.96 224.992 225.008S380.064 447.76 256 447.76zm64.24-228.608l-15.6-12.128c-8.496-6.624-14.128-14.32-16.912-23.152-1.776-5.6-3.008-12.256-3.168-24h-59.712c.88 24.848 3.504 39.968 7.328 49.472 3.808 9.472 13.632 20.368 29.44 32.72l16.032 12.528c5.28 4 9.536 8.32 12.752 13.024 5.872 8.064 8.784 16.976 8.784 26.656 0 11.152-3.248 21.312-9.776 30.496-6.496 9.184-18.4 13.808-35.712 13.808-17.008 0-29.056-5.68-36.16-17.008s-10.592-21.664-10.592-33.84h-63.68c1.744 41.872 16.32 70.16 43.776 87.632 17.344 11.152 38.656 16.752 63.904 16.752 33.216 0 60.784-7.936 82.752-23.808 21.968-15.84 34.8-48.432 34.8-79.6 0-19.088-6.624-26.096-16.144-39.184-5.584-7.92-16.272-18.048-32.112-30.368zM287.728 64h-63.504v63.68h63.504V64z"/><glyph unicode="" d="M416.656 128v135.696H95.984V128H0v199.344c0 13.76 11.168 24.912 24.944 24.912h462.144c13.744 0 24.912-11.152 24.912-24.912V128h-95.344zm47.648 196.624c-11.024 0-19.92-8.928-19.92-19.936s8.896-19.952 19.92-19.952c10.992 0 19.968 8.96 19.968 19.952 0 11.008-8.992 19.936-19.968 19.936zM127.728 480h256v-96.192h-256V480zm33.248-448.336h191.232V224h31.824V-.08H128.048V224h32.912V31.664z"/><glyph unicode="" d="M502.08 285.376H321.376L265.424 457.12c-1.344 4.096-5.136 6.88-9.44 6.88-4.272 0-8.096-2.784-9.44-6.88l-56.24-171.744H9.92c-4.256 0-8.096-2.784-9.44-6.88-1.312-4.064.128-8.592 3.584-11.088l145.984-106.32-56.256-172.72c-1.328-4.096.128-8.592 3.616-11.12 3.456-2.496 8.208-2.496 11.664 0L255.968 83.872l146.64-106.624c1.792-1.28 3.76-1.936 5.808-1.936 2.096 0 4.144.656 5.856 1.936 3.568 2.528 4.96 7.008 3.6 11.12l-56.24 172.72 146.288 106.32c3.488 2.496 4.928 7.008 3.6 11.088-1.312 4.096-5.168 6.88-9.44 6.88zm-168.656-115.12l48.208-148.064L256 113.552l-125.968-91.44 48.256 148.128L53.12 261.376h154.576l48.256 147.376 48.016-147.376H458.8l-125.376-91.12z"/><glyph unicode="" d="M319.376 223.824v127.76H192.624v-127.76H102.88L256.048 35.216l153.088 188.608zM256.016 480c-141.392 0-256-114.608-256-255.984C.016 82.624 114.624-32 256.016-32c141.376 0 256 114.624 256 256.016 0 141.376-114.624 255.984-256 255.984zm0-480c-123.52 0-224 100.496-224 224.016 0 123.504 100.48 223.984 224 223.984s224-100.48 224-223.984c0-123.52-100.48-224.016-224-224.016z"/><glyph unicode="" d="M255.982 440.594c-119.607 0-216.576-96.97-216.576-216.594S136.376 7.405 255.982 7.405c119.625 0 216.595 96.97 216.595 216.595s-96.95 216.595-216.595 216.595zm0-20.68c108.05 0 195.913-87.882 195.913-195.914 0-45.184-15.507-86.71-41.325-119.9-3.108 1.135-6.217 2.196-9.197 3.457-19.748 8.265-41.71 17.957-61.42 26.094l-16.897 4.61c-6.692 4.59-13.33 19.99-16.914 27.67-3.548.51-7.15 1.005-10.752 1.48.53 11.87 7.88 12.545 10.752 21.54 2.54 7.955.293 18.34 4.28 25.73 2.778 5.12 9.124 5.12 12.232 9.544 2.853 3.95 4.772 10.918 5.668 15.8 1.61 8.905 3.017 21.12-1.207 29.988-2.432 5.066-3.968 5.578-4.644 11.74-.82 7.516 2.218 31.89 2.347 37.175.293 13.68-.055 14.794-3.346 28.124 0 0-4.005 12.087-10.295 15.726l-12.58 2.158-7.77 7.186c-31.306 19.272-64.878 5.76-82.835-1.5-25.91-8.43-42.297-33.79-30.87-87.955 1.96-9.29-5.063-13.42-4.606-18.468 1.042-11.045 1.207-37.614 11.648-44.124.97-.603 8.376-2.47 8.34-1.938 1.006-10.752 2.048-21.522 3.054-32.238 2.616-7.15 8.87-7.954 10.68-18.048l-7.99-1.92c-3.603-7.68-10.186-23.08-16.897-27.668-5.65-1.517-11.284-3.053-16.917-4.59-19.73-8.118-41.654-17.828-61.42-26.093-1.08-.44-2.214-.79-3.29-1.21C74.953 139.154 60.09 179.822 60.09 224c0 108.032 87.88 195.913 195.895 195.913z"/><glyph unicode="" d="M94.8 322.592L1.376 401.056.88 79.088l316.688 56.336-89.216 74.96C410.464 377.904 456.256 202.256 474.624 5.6 540.56 579.664 244.784 450.928 94.8 322.592z"/><glyph unicode="" d="M428.432 224h-20.08v96.176c0 43.36-16.448 83.104-43.632 112.144-27.056 29.056-65.632 47.712-108.16 47.68-42.544.032-81.12-18.624-108.192-47.68-27.184-29.04-43.632-68.784-43.648-112.144V224H83.904c-10.816 0-19.584-8.752-19.584-19.584v-216.8C64.32-23.232 73.088-32 83.904-32h344.528c10.8 0 19.584 8.768 19.584 19.632v216.8c0 10.816-8.784 19.568-19.584 19.568zm-251.616 96.176c0 25.024 9.472 47.168 24.192 62.928 14.848 15.728 34.144 24.784 55.552 24.816 21.376-.032 40.688-9.072 55.536-24.816 14.704-15.744 24.176-37.888 24.176-62.928V224h-159.44v96.176z"/></font></defs></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg"><defs><font id="Luma-Icons" horiz-adv-x="512"><font-face units-per-em="512" ascent="480" descent="-32"/><missing-glyph horiz-adv-x="512"/><glyph unicode=" " d="" horiz-adv-x="256"/><glyph unicode="" d="M436.608 435.568c-65.68 31.424-144.064 2.832-174.976-63.84-2.16-4.64-4.016-10.448-5.664-17.2-1.648 6.752-3.504 12.56-5.632 17.2-30.944 66.672-109.248 95.264-174.944 63.84-65.6-31.424-93.744-110.96-62.832-177.648 30.928-66.672 243.344-257.84 243.344-257.84s0.016 0.224 0.048 0.576c0.048-0.352 0.064-0.576 0.064-0.576s212.512 191.168 243.44 257.84c30.896 66.688 2.832 146.224-62.848 177.648z"/><glyph unicode="" d="M362.533 425.051c-49.81-49.792-20.809-20.772-20.809-20.772l96.402-96.384c0 0-31.067-31.049 20.772 20.773s-46.611 146.194-96.365 96.384zM320.147 383.671l-227.987-227.986 0.329-0.293-54.071-146.524 149.833 50.688 0.311-0.311 0.786 0.805v0.019l227.2 227.2-96.403 96.403zM179.036 104.375l-78.811-33.28 37.047 75.044 38.345 38.363 41.764-41.783-38.345-38.345z"/><glyph unicode="" d="M255.952 480l-255.952-448h512l-256.048 448zM287.12 353.808v-65.36l-16.688-128.544h-27.088l-18.032 128.544-0.992 65.36h62.8zM224.096 64.112v64.112h64.24v-64.112h-64.24z"/><glyph unicode="" d="M363.923 112.019c-29.805-28.764-68.663-43.502-108.013-43.538-35.145 0.036-70.199 11.757-99.347 35.932-37.029 30.829-56.046 74.971-56.1 119.661 0 7.442 0.549 14.829 1.591 22.18l-60.672-11.374c-0.164-3.602-0.292-7.186-0.292-10.807-0.036-61.495 26.459-122.899 77.549-165.285 40.009-33.335 88.887-49.683 137.252-49.683h0.128c56.211 0 112.164 22.217 153.746 64.914l39.844-39.772 0.311 124.745-131.803 0.348 45.805-47.324zM393.344 389.23c-40.046 33.335-88.923 49.664-137.271 49.664-55.808 0-111.397-21.833-152.923-63.945l-37.687 34.798-0.677-120.722 130.487-0.75-46.336 48.493c29.641 28.252 68.188 42.697 107.154 42.733 35.108-0.036 70.217-11.721 99.328-35.932 37.029-30.829 56.046-74.935 56.137-119.698 0-6.437-0.457-12.892-1.225-19.365l60.435 11.593c0.036 2.615 0.164 5.212 0.164 7.772-0.036 61.549-26.514 122.899-77.587 165.357z"/><glyph unicode="" d="M95.792-32h320.4v320.080h-320.4v-320.080zM318.336 228.512c0 9.904 8.032 17.904 17.952 17.904 9.904 0 17.936-8 17.936-17.904v-188.736c0-9.888-8.032-17.92-17.936-17.92-9.92 0-17.952 8.032-17.952 17.92v188.736zM238.048 228.512c0 9.904 8.032 17.904 17.92 17.904s17.92-8 17.92-17.904v-188.736c0-9.888-8.032-17.92-17.92-17.92s-17.92 8.032-17.92 17.92v188.736zM157.6 228.512c0 9.904 8 17.904 17.92 17.904 9.888 0 17.92-8 17.92-17.904v-188.736c0-9.888-8.032-17.92-17.92-17.92-9.92 0-17.92 8.032-17.92 17.92v188.736zM423.216 416.528h-71.232v10.896c0 29.040-19.76 52.576-48.8 52.576h-94.72c-29.008 0-48.48-23.536-48.48-52.576v-10.896h-71.232c-13.696 0-24.768-11.088-24.768-24.752v-71.984h384v71.984c0 13.664-11.040 24.752-24.768 24.752zM319.936 416.528h-128.192v14.704c0.032 9.248 7.488 16.736 16.72 16.768h94.72c9.216-0.032 16.704-7.52 16.752-16.768v-14.704z"/><glyph unicode="" d="M511.52 278.496c-1.312 4.096-5.152 6.88-9.44 6.88h-180.704l-55.952 171.744c-1.344 4.096-5.136 6.88-9.44 6.88-4.272 0-8.096-2.784-9.44-6.88l-56.24-171.744h-180.384c-4.256 0-8.096-2.784-9.44-6.88-1.312-4.064 0.128-8.592 3.584-11.088l145.984-106.32-56.256-172.72c-1.328-4.096 0.128-8.592 3.616-11.12 3.456-2.496 8.208-2.496 11.664 0l146.896 106.624 146.64-106.624c1.792-1.28 3.76-1.936 5.808-1.936 2.096 0 4.144 0.656 5.856 1.936 3.568 2.528 4.96 7.008 3.6 11.12l-56.24 172.72 146.288 106.32c3.488 2.496 4.928 6.992 3.6 11.088z"/><glyph unicode="" d="M473.015 200.375v49.371l-7.003 2.268-52.882 17.244-14.116 34.103 27.154 57.381-34.908 34.907-6.583-3.309-49.555-25.198-34.103 14.117-21.394 59.757h-49.371l-2.286-6.985-17.262-52.882-34.048-14.099-57.399 27.136-34.925-34.926 3.309-6.564 25.18-49.591-14.080-34.029-59.758-21.412v-49.39l6.949-2.249 52.901-17.28 14.099-34.067-27.118-57.38 34.925-34.925 6.528 3.328 49.591 25.197 34.066-14.116 21.394-59.757h49.371l2.286 6.985 17.28 52.882 34.029 14.116 57.399-27.136 34.944 34.908-3.346 6.546-25.197 49.572 14.116 34.067 59.813 21.413zM256 154.861c-38.199 0-69.156 30.957-69.156 69.139 0 38.217 30.958 69.156 69.156 69.156 38.163 0 69.156-30.94 69.156-69.156 0-38.18-31.012-69.139-69.156-69.139z"/><glyph unicode="" d="M31.008 351.36l224.992-239.984 225.040 239.984z"/><glyph unicode="" d="M383.415 226.596l-212.571 218.587-37.285-34.981 178.286-183.277-183.278-188.452 36.48-35.657 205.659 211.456-0.201 0.201z"/><glyph unicode="" d="M52.928 345.2h406.144c11.056 0 20 8.976 20 20.016 0 11.072-8.944 20.032-20 20.032h-406.144c-11.056 0-20.016-8.96-20.016-20.032 0-11.040 8.96-20.016 20.016-20.016zM459.072 244.016h-406.144c-11.056 0-20.016-8.944-20.016-20.016s8.96-20.016 20.016-20.016h406.144c11.056 0 20 8.944 20 20.016s-8.928 20.016-20 20.016zM459.072 102.8h-406.144c-11.056 0-20.016-8.96-20.016-20.032s8.96-20.016 20.016-20.016h406.144c11.056 0 20 8.944 20 20.016s-8.928 20.032-20 20.032z"/><glyph unicode="" d="M256.144 480c-89.12 0-161.344-72.24-161.344-161.376 0-89.104 161.344-350.624 161.344-350.624s161.376 261.52 161.376 350.624c0 89.136-72.192 161.376-161.376 161.376zM256.144 269.616c-27.056 0-49.024 21.952-49.024 49.008 0 27.072 21.984 49.024 49.024 49.024 27.104 0 49.088-21.952 49.088-49.024 0-27.056-21.984-49.008-49.088-49.008z"/><glyph unicode="" d="M0 256.144h224.032v223.808h-224.032v-223.808zM288.128 479.952v-95.728h224.176v95.728h-224.176zM0-32h224.032v223.808h-224.032v-223.808zM288.128 256.144h224.176v95.728h-224.176v-95.728zM288.128 96.080h224.176v95.728h-224.176v-95.728zM288.128-32h224.176v95.712h-224.176v-95.712z"/><glyph unicode="" d="M332.764 119.003c-9.216 0-45.495-56.027-65.243-56.027-5.284 0-7.863 4.644-7.863 9.216 0 10.569 7.241 27.044 11.154 36.937l47.397 128.384c23.772 63.891-6.546 81.024-34.871 81.024-38.217 0-72.448-19.091-98.779-44.124-8.576-8.576-37.523-36.206-37.523-48.091 0-3.932 3.931-8.576 8.576-8.576 11.813 0 43.447 57.308 67.803 57.308 5.285 0 11.191-5.924 6.583-17.755l-46.080-115.968c-4.644-11.154-27.044-65.171-27.044-96.786 0-25.015 16.476-36.188 40.192-36.188 66.523 0 143.543 81.645 143.543 100.755-0.019 5.925-4.589 9.892-7.844 9.892zM319.543 439.661c-28.947 0-54.016-23.68-54.016-52.663 0-27.008 17.792-44.8 44.837-44.8 29.55 0 54.62 22.4 54.62 52.7 0 27.008-19.072 44.764-45.44 44.764z"/><glyph unicode="" d="M0 351.552h128.464v128.448h-128.464v-128.448zM191.76 351.552h128.528v128.448h-128.528v-128.448zM383.568 480v-128.448h128.496v128.448h-128.496zM0 159.744h128.464v128.464h-128.464v-128.464zM191.76 159.744h128.528v128.464h-128.528v-128.464zM383.568 159.744h128.496v128.464h-128.496v-128.464zM0-32h128.464v128h-128.464v-128zM191.76-32h128.528v128h-128.528v-128zM383.568-32h128.496v128h-128.496v-128z"/><glyph unicode="" d="M255.296 450.464c-124.688 0-225.76-101.072-225.76-225.76 0-124.672 101.072-225.76 225.76-225.76 124.672 0 225.76 101.088 225.76 225.76 0 124.688-101.072 225.76-225.76 225.76zM231.936 94.576l-125.936 128.032 32.208 25.936 72.864-57.088c29.76 35.424 96 106.032 187.312 161.984l7.696-17.792c-83.808-77.088-152.48-185.6-174.144-241.072z"/><glyph unicode="" d="M0 241.12h512v-34.064h-512v34.064z"/><glyph unicode="" d="M478.263 426.149c-142.555-87.388-245.98-197.632-292.48-252.947l-113.792 89.161-50.267-40.539 196.663-199.973c33.847 86.674 141.056 256.11 271.872 376.485l-11.995 27.813z"/><glyph unicode="" d="M220.576 83.248c-26.352 0-47.696-21.376-47.696-47.712s21.344-47.664 47.696-47.664c26.336 0 47.696 21.328 47.696 47.664s-21.36 47.712-47.696 47.712zM385.344 83.248c-26.4 0-47.76-21.376-47.76-47.712s21.344-47.664 47.76-47.664c26.288 0 47.632 21.328 47.632 47.664s-21.344 47.712-47.632 47.712zM459.856 350.32c-122.384 0-319.856 0-319.856 0s-19.152 52.608-37.392 84.864c-14.128 24.976-43.344 23.968-43.344 23.968-20.096 0-33.024-12.288-33.024-32.4 0-20.096 15.92-36.16 36.032-36.16l8.496-0.080 95.2-262.192 266.832-0.208c0 0 48.784 199.632 46.272 191.888 8.944 27.68-2.448 30.32-19.216 30.32zM166.528 257.344c-14 0-25.36 11.36-25.36 25.376s11.36 25.392 25.36 25.392c14.016 0 25.36-11.376 25.36-25.392s-11.344-25.376-25.36-25.376zM220.768 172.64c-14.016 0-25.376 11.376-25.376 25.392 0 13.984 11.36 25.36 25.376 25.36 14 0 25.36-11.376 25.36-25.36 0.016-14.016-11.36-25.392-25.36-25.392zM248.656 257.344c-14 0-25.376 11.36-25.376 25.376s11.36 25.392 25.376 25.392c14 0 25.36-11.376 25.36-25.392s-11.36-25.376-25.36-25.376zM302.896 172.64c-14 0-25.36 11.376-25.36 25.392 0 13.984 11.36 25.36 25.36 25.36 14.048 0 25.44-11.376 25.44-25.36 0-14.016-11.392-25.392-25.44-25.392zM330.848 257.344c-14 0-25.408 11.36-25.408 25.376s11.408 25.392 25.408 25.392c14 0 25.328-11.376 25.328-25.392s-11.328-25.376-25.328-25.376zM385.040 172.64c-13.984 0-25.328 11.376-25.328 25.392 0 13.984 11.36 25.36 25.328 25.36 14 0 25.408-11.376 25.408-25.36 0-14.016-11.408-25.392-25.408-25.392zM412.96 257.344c-14.016 0-25.36 11.36-25.36 25.376s11.344 25.392 25.36 25.392c14.048 0 25.376-11.376 25.376-25.392s-11.328-25.376-25.376-25.376z"/><glyph unicode="" d="M142.992 332.768c10.352 0 18.8 8.4 18.8 18.8v67.68c0 10.368-8.432 18.784-18.8 18.784-10.384 0-18.8-8.4-18.8-18.784v-67.68c0-10.4 8.416-18.8 18.8-18.8zM394.384 383.344v-0.32c7.776-6.944 12.72-17.008 12.72-28.288 0-20.816-16.88-37.712-37.744-37.712s-37.76 16.912-37.76 37.712c0 11.264 4.976 21.344 12.784 28.288v0.32h-176.416v-0.32c7.824-6.944 12.768-17.008 12.768-28.288 0-20.816-16.896-37.712-37.728-37.712-20.864 0-37.744 16.912-37.744 37.712 0 11.264 4.928 21.344 12.752 28.288v0.32h-85.536v-383.6h447.248v383.6h-85.344zM448.72 32.832h-383.152v254.72h383.152v-254.72zM369.36 332.768c10.384 0 18.784 8.4 18.784 18.8v67.68c0 10.368-8.4 18.784-18.784 18.784-10.352 0-18.816-8.4-18.816-18.784v-67.68c0-10.4 8.464-18.8 18.816-18.8zM349.216 184.128h-47.936v-47.872h47.952v47.872zM349.216 256.112h-47.936v-47.824h47.952v47.824zM349.216 114.112h-47.936v-47.872h47.952v47.872zM416.656 256.112h-47.92v-47.824h47.92v47.824zM416.656 184.128h-47.92v-47.872h47.92v47.872zM281.696 256.112h-47.872v-47.824h47.872v47.824zM146.8 184.128h-47.856v-47.872h47.856v47.872zM214.288 114.112h-47.888v-47.872h47.872v47.872zM146.8 114.112h-47.856v-47.872h47.856v47.872zM281.696 184.128h-47.872v-47.872h47.872v47.872zM281.696 114.112h-47.872v-47.872h47.872v47.872zM214.288 184.128h-47.888v-47.872h47.872v47.872zM214.288 256.112h-47.888v-47.824h47.872v47.824z"/><glyph unicode="" d="M256 444.727l-200.814-243.291h131.054v-198.144h139.575v198.144h131.017z"/><glyph unicode="" d="M325.779 246.583v198.144h-139.593v-198.144h-130.999l200.832-243.292 200.813 243.292z"/><glyph unicode="" d="M487.232 35.872c0 0-78.176 80.288-109.328 111.312-13.552 13.552-22.832 22.752-22.832 22.752 10.56 15.088 18.816 31.616 24.704 49.392 5.84 17.76 8.752 36.496 8.752 56.192 0 25.36-4.816 49.2-14.448 71.552-9.664 22.32-22.784 41.824-39.456 58.432-16.64 16.688-36.144 29.824-58.496 39.472-22.336 9.664-46.176 14.496-71.536 14.496-25.344 0-49.184-4.848-71.552-14.496-22.336-9.648-41.712-22.784-58.192-39.472-16.416-16.608-29.52-36.128-39.152-58.448-9.664-22.336-14.496-46.192-14.496-71.552 0-25.376 4.848-49.216 14.496-71.552 9.632-22.304 22.72-41.792 39.152-58.464 16.464-16.608 35.856-29.776 58.176-39.456 22.368-9.664 46.208-14.448 71.552-14.448 19.68 0 38.416 2.88 56.208 8.768 17.776 5.856 34.288 14.144 49.36 24.72 0 0 8.576-8.512 21.2-21.216 34.512-34.64 110.416-113.392 110.416-113.392 11.456-4.992 29.712 0.336 38.848 8.064 9.040 7.776 14.096 23.984 6.624 37.344zM327.792 223.28c-7.008-16.192-16.576-30.336-28.624-42.336-12.096-12.048-26.192-21.616-42.336-28.608-16.128-7.024-33.392-10.528-51.68-10.528-18.704 0-36.096 3.504-52.256 10.528-16.16 7.008-30.288 16.56-42.336 28.608-12.048 12.016-21.616 26.16-28.608 42.336-7.008 16.112-10.512 33.568-10.512 52.24 0 18.272 3.504 35.632 10.512 51.984 6.992 16.336 16.56 30.56 28.608 42.592 12.048 12.096 26.176 21.664 42.336 28.608 16.16 7.056 33.552 10.512 52.256 10.512 18.288 0 35.552-3.456 51.68-10.512 16.144-6.96 30.24-16.512 42.336-28.608 12.032-12.032 21.616-26.256 28.624-42.592 7.008-16.352 10.48-33.712 10.48-51.984 0.016-18.672-3.456-36.128-10.48-52.24z"/><glyph unicode="" d="M483.255 415.177l-36.023 35.968-191.25-191.268-191.25 191.268-35.986-35.968 191.268-191.269-191.123-191.14 35.968-35.932 191.14 191.104 191.123-191.104 35.932 35.932-191.104 191.123z"/><glyph unicode="" d="M200.21 226.889l178.213 183.315-37.248 34.981-212.608-218.588 218.459-223.78 36.389 35.657z"/><glyph unicode="" d="M256 335.168l-224.992-239.984h450.032z"/><glyph unicode="" d="M96.624 451.12v-454.24l312.928 227.12z"/><glyph unicode="" d="M102.992 224l312.912-227.12v454.24z"/><glyph unicode="" d="M0 0.464h63.984v479.536h-63.984v-479.536zM512.080 480h-415.824v-287.888h415.824l-138.208 142.032 138.208 145.856z"/><glyph unicode="" d="M512 241.12h-238.512v238.88h-34.016v-238.88h-239.472v-34.064h239.472v-239.056h34.016v239.056h238.512z"/><glyph unicode="" d="M255.968 228.064l221.488 155.84c-2.656 0.528-5.344 0.848-8.128 0.848h-426.656c-2.8 0-5.504-0.32-8.144-0.848l221.44-155.84zM256.928 168.496l-0.96 1.408-0.944-1.408-254.56 179.136c-0.176-1.6-0.464-3.2-0.464-4.816v-267.712c0-23.904 19.104-43.312 42.672-43.312h426.656c23.6 0 42.688 19.408 42.688 43.312v267.712c0 1.632-0.288 3.216-0.496 4.816l-254.592-179.136z"/><glyph unicode="" d="M127.584 31.776v127.632h-127.584v-127.632h127.584zM319.248 416.24h-126.928v-384.448h126.928v384.448zM511.584 287.472h-127.376v-255.68h127.376v255.68z"/><glyph unicode="" d="M255.296 450.464c-124.688 0-225.76-101.072-225.76-225.76 0-124.672 101.072-225.76 225.76-225.76 124.672 0 225.76 101.088 225.76 225.76 0 124.688-101.072 225.76-225.76 225.76zM372.16 144.832l-37.104-37.104-79.088 79.056-79.056-79.040-37.12 37.136 79.024 79.024-79.136 79.12 37.136 37.136 79.12-79.136 79.184 79.184 37.152-37.152-79.2-79.168 79.088-79.056z"/><glyph unicode="" d="M262.748 418.688c-113.664 2.249-207.214-67.803-208.969-156.435-0.585-30.829 9.984-59.813 28.8-84.644l-4.919 4.955c32.384-41.618-31.104-153.308-31.104-153.308l142.281 70.345c22.51-7.095 44.16-11.923 69.724-12.452 113.664-2.231 205.111 78.355 206.848 167.004 1.755 88.631-88.96 162.304-202.661 164.535z"/><glyph unicode="" d="M259.163 285.422l201.837-196.224 38.546 41.070-240.713 234.021-246.363-240.476 39.26-40.101z"/><glyph unicode="" d="M252.819 162.579l-201.82 196.224-38.528-41.070 240.677-234.021 246.4 240.476-39.332 40.101z"/><glyph unicode="" d="M256-33.248c-141.408 0-256 114.624-256 256s114.592 256 256 256c141.376 0 256-114.624 256-256s-114.608-256-256-256zM256 447.76c-124.048 0-225.008-100.96-225.008-225.008s100.96-225.024 225.008-225.024 224.992 100.96 224.992 225.008-100.928 225.024-224.992 225.024zM320.24 219.152l-15.6-12.128c-8.496-6.624-14.128-14.32-16.912-23.152-1.776-5.6-3.008-12.256-3.168-24h-59.712c0.88 24.848 3.504 39.968 7.328 49.472 3.808 9.472 13.632 20.368 29.44 32.72l16.032 12.528c5.28 4 9.536 8.32 12.752 13.024 5.872 8.064 8.784 16.976 8.784 26.656 0 11.152-3.248 21.312-9.776 30.496-6.496 9.184-18.4 13.808-35.712 13.808-17.008 0-29.056-5.68-36.16-17.008s-10.592-21.664-10.592-33.84h-63.68c1.744 41.872 16.32 70.16 43.776 87.632 17.344 11.152 38.656 16.752 63.904 16.752 33.216 0 60.784-7.936 82.752-23.808 21.968-15.84 34.8-48.432 34.8-79.6 0-19.088-6.624-26.096-16.144-39.184-5.584-7.92-16.272-18.048-32.112-30.368zM287.728 64h-63.504v63.68h63.504v-63.68z"/><glyph unicode="" d="M416.656 128v135.696h-320.672v-135.696h-95.984v199.344c0 13.76 11.168 24.912 24.944 24.912h462.144c13.744 0 24.912-11.152 24.912-24.912v-199.344h-95.344zM464.304 324.624c-11.024 0-19.92-8.928-19.92-19.936s8.896-19.952 19.92-19.952c10.992 0 19.968 8.96 19.968 19.952 0 11.008-8.992 19.936-19.968 19.936zM127.728 480h256v-96.192h-256v96.192zM160.976 31.664h191.232v192.336h31.824v-224.080h-255.984v224.080h32.912v-192.336z"/><glyph unicode="" d="M502.080 285.376h-180.704l-55.952 171.744c-1.344 4.096-5.136 6.88-9.44 6.88-4.272 0-8.096-2.784-9.44-6.88l-56.24-171.744h-180.384c-4.256 0-8.096-2.784-9.44-6.88-1.312-4.064 0.128-8.592 3.584-11.088l145.984-106.32-56.256-172.72c-1.328-4.096 0.128-8.592 3.616-11.12 3.456-2.496 8.208-2.496 11.664 0l146.896 106.624 146.64-106.624c1.792-1.28 3.76-1.936 5.808-1.936 2.096 0 4.144 0.656 5.856 1.936 3.568 2.528 4.96 7.008 3.6 11.12l-56.24 172.72 146.288 106.32c3.488 2.496 4.928 7.008 3.6 11.088-1.312 4.096-5.168 6.88-9.44 6.88zM333.424 170.256l48.208-148.064-125.632 91.36-125.968-91.44 48.256 148.128-125.168 91.136h154.576l48.256 147.376 48.016-147.376h154.832l-125.376-91.12z"/><glyph unicode="" d="M319.376 223.824v127.76h-126.752v-127.76h-89.744l153.168-188.608 153.088 188.608zM256.016 480c-141.392 0-256-114.608-256-255.984 0-141.392 114.608-256.016 256-256.016 141.376 0 256 114.624 256 256.016 0 141.376-114.624 255.984-256 255.984zM256.016 0c-123.52 0-224 100.496-224 224.016 0 123.504 100.48 223.984 224 223.984s224-100.48 224-223.984c0-123.52-100.48-224.016-224-224.016z"/><glyph unicode="" d="M255.982 440.594c-119.607 0-216.576-96.969-216.576-216.594s96.969-216.595 216.576-216.595c119.625 0 216.595 96.969 216.595 216.595s-96.951 216.595-216.595 216.595zM255.982 419.913c108.051 0 195.913-87.881 195.913-195.913 0-45.184-15.507-86.711-41.325-119.899-3.108 1.134-6.217 2.195-9.197 3.456-19.748 8.265-41.709 17.957-61.421 26.094-5.632 1.536-11.264 3.072-16.896 4.608-6.692 4.589-13.33 19.986-16.914 27.666-3.548 0.512-7.149 1.005-10.752 1.481 0.531 11.868 7.881 12.544 10.752 21.541 2.541 7.954 0.293 18.341 4.279 25.728 2.779 5.12 9.125 5.12 12.233 9.545 2.853 3.95 4.772 10.917 5.668 15.799 1.609 8.905 3.017 21.12-1.207 29.988-2.432 5.065-3.968 5.577-4.644 11.739-0.823 7.516 2.212 31.891 2.341 37.175 0.293 13.678-0.055 14.793-3.346 28.123 0 0-4.005 12.087-10.295 15.726l-12.58 2.158-7.772 7.186c-31.305 19.273-64.877 5.76-82.834-1.499-25.911-8.43-42.295-33.792-30.867-87.955 1.957-9.289-5.065-13.421-4.608-18.468 1.042-11.045 1.207-37.614 11.648-44.124 0.969-0.603 8.375-2.469 8.339-1.938 1.006-10.752 2.048-21.522 3.054-32.238 2.615-7.149 8.869-7.954 10.679-18.048l-7.991-1.92c-3.602-7.68-10.185-23.077-16.896-27.666-5.65-1.517-11.282-3.053-16.915-4.589-19.731-8.119-41.655-17.829-61.422-26.094-1.079-0.439-2.213-0.786-3.291-1.207-24.759 32.786-39.625 73.454-39.625 117.632 0 108.032 87.881 195.913 195.895 195.913z"/><glyph unicode="" d="M94.8 322.592l-93.424 78.464-0.496-321.968 316.688 56.336-89.216 74.96c182.112 167.52 227.904-8.128 246.272-204.784 65.936 574.064-229.84 445.328-379.824 316.992z"/><glyph unicode="" d="M428.432 224h-20.080v96.176c0 43.36-16.448 83.104-43.632 112.144-27.056 29.056-65.632 47.712-108.16 47.68-42.544 0.032-81.12-18.624-108.192-47.68-27.184-29.040-43.632-68.784-43.648-112.144v-96.176h-20.816c-10.816 0-19.584-8.752-19.584-19.584v-216.8c0-10.848 8.768-19.616 19.584-19.616h344.528c10.8 0 19.584 8.768 19.584 19.632v216.8c0 10.816-8.784 19.568-19.584 19.568zM176.816 320.176c0 25.024 9.472 47.168 24.192 62.928 14.848 15.728 34.144 24.784 55.552 24.816 21.376-0.032 40.688-9.072 55.536-24.816 14.704-15.744 24.176-37.888 24.176-62.928v-96.176h-159.44v96.176z"/><glyph unicode="" d="M150.896 316.944h-112.192c-9.040 0-16.384-7.312-16.384-16.368v-80c0-9.056 7.344-16.368 16.384-16.368h112.192c9.056 0 16.432 7.312 16.432 16.368v80c0 9.056-7.376 16.368-16.432 16.368zM150.896 171.056h-79.376c-9.056 0-16.432-7.312-16.432-16.368v-170.32c-0.016-9.056 7.36-16.368 16.432-16.368h79.376c9.056 0 16.432 7.312 16.432 16.368v170.32c0 9.056-7.376 16.368-16.432 16.368zM473.328 316.944h-244.88c-9.056 0-16.368-7.312-16.368-16.368v-80c0-9.056 7.312-16.368 16.368-16.368h244.88c8.992 0 16.368 7.312 16.368 16.368v80c0 9.056-7.36 16.368-16.368 16.368zM439.52 169.376h-210.56c-9.056 0-16.368-7.344-16.368-16.4v-168.592c0-9.056 7.312-16.368 16.368-16.368h210.56c9.056 0 16.368 7.312 16.368 16.368v168.592c0 9.056-7.312 16.4-16.368 16.4zM251.952 335.68c19.12-3.504 37.568-5.536 54.816-5.536 86.688 0 133.68 46.592 133.936 90.464 0.128 28.256-20.752 58.88-68.368 59.376-63.808 0-103.312-45.056-123.872-78.496-20.944 33.312-60.624 77.472-124.56 77.472-46.256-0.464-67.2-31.088-67.008-59.328 0.176-43.888 47.248-90.512 133.936-90.512v0c18.752 0 38.88 2.128 59.872 6.336l1.248 0.224zM373.264 439.008c8-0.064 26.56-2 26.432-18.192-0.064-20.624-28.992-49.68-92.944-49.68-8.816 0-18 0.56-27.632 1.68 14.576 25.648 45.216 66.192 94.144 66.192zM190.832 370.128v0c-63.936 0-92.88 29.056-92.992 49.68-0.080 16.16 18.496 18.096 27.36 18.192 48.368 0 78.816-40.56 93.184-66.224-9.552-1.088-18.736-1.648-27.552-1.648z"/><glyph unicode="" d="M182.256 403.408c0-9.248-7.504-16.72-16.688-16.72h-9.776c-9.216 0-16.72 7.472-16.72 16.72v59.872c0 9.216 7.504 16.72 16.72 16.72h9.776c9.184 0 16.688-7.504 16.688-16.72v-59.872zM373.072 403.408c0-9.248-7.504-16.72-16.688-16.72h-9.744c-9.248 0-16.688 7.472-16.688 16.72v59.872c0 9.216 7.424 16.72 16.688 16.72h9.744c9.184 0 16.688-7.504 16.688-16.72v-59.872zM398.816 253.152l-33.936 27.664-133.68-163.872-71.312 56.688-25.28-31.728 105.184-83.648zM471.952 434h-62.432v-26.064c0-27.68-22.56-50.192-50.128-50.192h-9.808c-27.68 0-50.128 22.496-50.128 50.192v26.064h-85.504v-26.064c0-27.68-22.496-50.192-50.128-50.192h-9.76c-27.664 0-50.16 22.496-50.16 50.192v26.064h-63.808c-9.216 0-16.72-7.504-16.72-16.688v-432.592c0-9.216 7.504-16.72 16.72-16.72h431.84c9.184 0 16.688 7.504 16.688 16.72v432.592c0.016 9.184-7.488 16.688-16.672 16.688zM438.512 42.592c0-9.248-7.504-16.72-16.752-16.72h-331.504c-9.248 0-16.752 7.472-16.752 16.72v252.096c0 9.248 7.504 16.688 16.752 16.688h331.504c9.248 0 16.752-7.44 16.752-16.688v-252.096z"/></font></defs></svg> \ No newline at end of file diff --git a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.ttf b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.ttf index c096e782506ee3b3b2c4a46dac60529aebd7096e..e2e4864f8b1a9573b3cf18b0bd273bd5b8464f0e 100644 Binary files a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.ttf and b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.ttf differ diff --git a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff index 1b2c57c533e0e13926c58b542c9f17baeb0705b2..881e639aca422fcc6cc5fdf8ff5bd30c433e3c99 100644 Binary files a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff and b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff differ diff --git a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff2 b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff2 index cc91480dac868dc0a36bc6ce3d95bc3bcbf8ed27..66faa61a2d24a488aa52dec055ab8f19a30b9811 100644 Binary files a/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff2 and b/app/design/frontend/Magento/luma/web/fonts/Luma-Icons.woff2 differ diff --git a/app/design/frontend/Magento/luma/web/fonts/selection.json b/app/design/frontend/Magento/luma/web/fonts/selection.json index 11b601ea6493080698a69a0f3f1a1516c2c4b6c7..2c4a03883a15bb5cceee2a24e6e1a0a9b07ae979 100644 --- a/app/design/frontend/Magento/luma/web/fonts/selection.json +++ b/app/design/frontend/Magento/luma/web/fonts/selection.json @@ -1,16 +1,123 @@ { "IcoMoonType": "selection", "icons": [ + { + "icon": { + "paths": [ + "M856.864 512h-40.16v-192.352c0-86.72-32.896-166.208-87.264-224.288-54.112-58.112-131.264-95.424-216.32-95.36-85.088-0.064-162.24 37.248-216.384 95.36-54.368 58.080-87.264 137.568-87.296 224.288v192.352h-41.632c-21.632 0-39.168 17.504-39.168 39.168v433.6c0 21.696 17.536 39.232 39.168 39.232h689.056c21.6 0 39.168-17.536 39.168-39.264v-433.6c0-21.632-17.568-39.136-39.168-39.136zM353.632 319.648c0-50.048 18.944-94.336 48.384-125.856 29.696-31.456 68.288-49.568 111.104-49.632 42.752 0.064 81.376 18.144 111.072 49.632 29.408 31.488 48.352 75.776 48.352 125.856v192.352h-318.88v-192.352z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "grid": 32, + "tags": [ + "private" + ] + }, + "attrs": [ + {} + ], + "properties": { + "order": 40, + "id": 37, + "prevSize": 16, + "code": 58921, + "name": "private" + }, + "setIdx": 0, + "setId": 1, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M364.512 153.184c0 18.496-15.008 33.44-33.376 33.44h-19.552c-18.432 0-33.44-14.944-33.44-33.44v-119.744c0-18.432 15.008-33.44 33.44-33.44h19.552c18.368 0 33.376 15.008 33.376 33.44v119.744z", + "M746.144 153.184c0 18.496-15.008 33.44-33.376 33.44h-19.488c-18.496 0-33.376-14.944-33.376-33.44v-119.744c0-18.432 14.848-33.44 33.376-33.44h19.488c18.368 0 33.376 15.008 33.376 33.44v119.744z", + "M797.632 453.696l-67.872-55.328-267.36 327.744-142.624-113.376-50.56 63.456 210.368 167.296z", + "M943.904 92h-124.864v52.128c0 55.36-45.12 100.384-100.256 100.384h-19.616c-55.36 0-100.256-44.992-100.256-100.384v-52.128h-171.008v52.128c0 55.36-44.992 100.384-100.256 100.384h-19.52c-55.328 0-100.32-44.992-100.32-100.384v-52.128h-127.616c-18.432 0-33.44 15.008-33.44 33.376v865.184c0 18.432 15.008 33.44 33.44 33.44h863.68c18.368 0 33.376-15.008 33.376-33.44v-865.184c0.032-18.368-14.976-33.376-33.344-33.376zM877.024 874.816c0 18.496-15.008 33.44-33.504 33.44h-663.008c-18.496 0-33.504-14.944-33.504-33.44v-504.192c0-18.496 15.008-33.376 33.504-33.376h663.008c18.496 0 33.504 14.88 33.504 33.376v504.192z" + ], + "attrs": [ + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "grid": 32, + "tags": [ + "gift-registry" + ] + }, + "attrs": [ + {}, + {}, + {}, + {} + ], + "properties": { + "order": 39, + "id": 36, + "prevSize": 16, + "code": 58923, + "name": "gift-registry" + }, + "setIdx": 0, + "setId": 1, + "iconIdx": 1 + }, + { + "icon": { + "paths": [ + "M301.792 326.112h-224.384c-18.080 0-32.768 14.624-32.768 32.736v160c0 18.112 14.688 32.736 32.768 32.736h224.384c18.112 0 32.864-14.624 32.864-32.736v-160c0-18.112-14.752-32.736-32.864-32.736z", + "M301.792 617.888h-158.752c-18.112 0-32.864 14.624-32.864 32.736v340.64c-0.032 18.112 14.72 32.736 32.864 32.736h158.752c18.112 0 32.864-14.624 32.864-32.736v-340.64c0-18.112-14.752-32.736-32.864-32.736z", + "M946.656 326.112h-489.76c-18.112 0-32.736 14.624-32.736 32.736v160c0 18.112 14.624 32.736 32.736 32.736h489.76c17.984 0 32.736-14.624 32.736-32.736v-160c0-18.112-14.72-32.736-32.736-32.736z", + "M879.040 621.248h-421.12c-18.112 0-32.736 14.688-32.736 32.8v337.184c0 18.112 14.624 32.736 32.736 32.736h421.12c18.112 0 32.736-14.624 32.736-32.736v-337.184c0-18.112-14.624-32.8-32.736-32.8z", + "M503.904 288.64c38.24 7.008 75.136 11.072 109.632 11.072 173.376 0 267.36-93.184 267.872-180.928 0.256-56.512-41.504-117.76-136.736-118.752-127.616 0-206.624 90.112-247.744 156.992-41.888-66.624-121.248-154.944-249.12-154.944-92.512 0.928-134.4 62.176-134.016 118.656 0.352 87.776 94.496 181.024 267.872 181.024v0c37.504 0 77.76-4.256 119.744-12.672l2.496-0.448zM746.528 81.984c16 0.128 53.12 4 52.864 36.384-0.128 41.248-57.984 99.36-185.888 99.36-17.632 0-36-1.12-55.264-3.36 29.152-51.296 90.432-132.384 188.288-132.384zM381.664 219.744v0c-127.872 0-185.76-58.112-185.984-99.36-0.16-32.32 36.992-36.192 54.72-36.384 96.736 0 157.632 81.12 186.368 132.448-19.104 2.176-37.472 3.296-55.104 3.296z" + ], + "attrs": [ + {}, + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "grid": 32, + "tags": [ + "gift-wrapping" + ] + }, + "attrs": [ + {}, + {}, + {}, + {}, + {} + ], + "properties": { + "order": 38, + "id": 35, + "prevSize": 16, + "code": 58922, + "name": "present" + }, + "setIdx": 0, + "setId": 1, + "iconIdx": 2 + }, { "icon": { "paths": [ "M1004.16 389.248h-361.408l-111.904-343.488c-2.688-8.192-10.272-13.76-18.88-13.76-8.544 0-16.192 5.568-18.88 13.76l-112.48 343.488h-360.768c-8.512 0-16.192 5.568-18.88 13.76-2.624 8.128 0.256 17.184 7.168 22.176l291.968 212.64-112.512 345.44c-2.656 8.192 0.256 17.184 7.232 22.24 6.912 4.992 16.416 4.992 23.328 0l293.792-213.248 293.28 213.248c3.584 2.56 7.52 3.872 11.616 3.872 4.192 0 8.288-1.312 11.712-3.872 7.136-5.056 9.92-14.016 7.2-22.24l-112.48-345.44 292.576-212.64c6.976-4.992 9.856-14.016 7.2-22.176-2.624-8.192-10.336-13.76-18.88-13.76zM666.848 619.488l96.416 296.128-251.264-182.72-251.936 182.88 96.512-296.256-250.336-182.272h309.152l96.512-294.752 96.032 294.752h309.664l-250.752 182.24z" ], - "grid": 0, + "grid": 32, "tags": [ "star-empty" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 3, "id": 2, @@ -20,7 +127,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 0 + "setId": 1, + "iconIdx": 3 }, { "icon": { @@ -28,11 +136,13 @@ "M638.752 512.352v-255.52h-253.504v255.52h-179.488l306.336 377.216 306.176-377.216z", "M512.032 0c-282.784 0-512 229.216-512 511.968 0 282.784 229.216 512.032 512 512.032 282.752 0 512-229.248 512-512.032-0-282.752-229.248-511.968-512-511.968zM512.032 960c-247.040 0-448-200.992-448-448.032-0-247.008 200.96-447.968 448-447.968s448 200.96 448 447.968c0 247.040-200.96 448.032-448 448.032z" ], - "grid": 0, + "grid": 32, "tags": [ "download" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 2, "id": 1, @@ -42,18 +152,21 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 1 + "setId": 1, + "iconIdx": 4 }, { "icon": { "paths": [ "M189.6 314.816l-186.848-156.928-0.992 643.936 633.376-112.672-178.432-149.92c364.224-335.040 455.808 16.256 492.544 409.568 131.872-1148.128-459.68-890.656-759.648-633.984z" ], - "grid": 0, + "grid": 32, "tags": [ "undo" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 1, "id": 0, @@ -63,7 +176,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 2 + "setId": 1, + "iconIdx": 5 }, { "icon": { @@ -73,8 +187,10 @@ "tags": [ "print" ], - "grid": 0 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 2, "id": 0, @@ -83,8 +199,9 @@ "name": "print", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 0 + "setIdx": 0, + "setId": 1, + "iconIdx": 6 }, { "icon": { @@ -94,8 +211,10 @@ "tags": [ "help" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 37, "id": 2, @@ -104,8 +223,9 @@ "name": "help", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 1 + "setIdx": 0, + "setId": 1, + "iconIdx": 7 }, { "icon": { @@ -115,8 +235,10 @@ "tags": [ "success" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 34, "id": 1, @@ -125,8 +247,9 @@ "name": "success", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 2 + "setIdx": 0, + "setId": 1, + "iconIdx": 8 }, { "icon": { @@ -136,8 +259,10 @@ "tags": [ "error" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 35, "id": 0, @@ -146,8 +271,9 @@ "name": "error", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 3 + "setIdx": 0, + "setId": 1, + "iconIdx": 9 }, { "icon": { @@ -157,8 +283,10 @@ "tags": [ "account" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 30, "id": 4, @@ -167,8 +295,9 @@ "name": "account", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 4 + "setIdx": 0, + "setId": 1, + "iconIdx": 10 }, { "icon": { @@ -178,8 +307,10 @@ "tags": [ "edit" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 32, "id": 5, @@ -188,8 +319,9 @@ "name": "edit", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 5 + "setIdx": 0, + "setId": 1, + "iconIdx": 11 }, { "icon": { @@ -199,8 +331,10 @@ "tags": [ "wishlist" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 31, "id": 32, @@ -209,8 +343,9 @@ "name": "wishlist-full", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 6 + "setIdx": 0, + "setId": 1, + "iconIdx": 12 }, { "icon": { @@ -220,8 +355,10 @@ "tags": [ "warning" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 33, "id": 30, @@ -230,8 +367,9 @@ "name": "warning", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 7 + "setIdx": 0, + "setId": 1, + "iconIdx": 13 }, { "icon": { @@ -241,8 +379,10 @@ "tags": [ "update" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 1, "id": 29, @@ -251,8 +391,9 @@ "name": "update", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 8 + "setIdx": 0, + "setId": 1, + "iconIdx": 14 }, { "icon": { @@ -262,8 +403,10 @@ "tags": [ "trash" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 2, "id": 28, @@ -272,8 +415,9 @@ "name": "trash", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 9 + "setIdx": 0, + "setId": 1, + "iconIdx": 15 }, { "icon": { @@ -283,8 +427,10 @@ "tags": [ "star" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 36, "id": 27, @@ -293,8 +439,9 @@ "name": "star", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 10 + "setIdx": 0, + "setId": 1, + "iconIdx": 16 }, { "icon": { @@ -304,8 +451,10 @@ "tags": [ "settings" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 3, "id": 26, @@ -314,8 +463,9 @@ "name": "settings", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 11 + "setIdx": 0, + "setId": 1, + "iconIdx": 17 }, { "icon": { @@ -325,8 +475,10 @@ "tags": [ "pointer down" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 4, "id": 19, @@ -335,8 +487,9 @@ "name": "pointer-down", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 12 + "setIdx": 0, + "setId": 1, + "iconIdx": 18 }, { "icon": { @@ -346,8 +499,10 @@ "tags": [ "next" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 5, "id": 18, @@ -356,8 +511,9 @@ "name": "next", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 13 + "setIdx": 0, + "setId": 1, + "iconIdx": 19 }, { "icon": { @@ -367,8 +523,10 @@ "tags": [ "menu" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 6, "id": 17, @@ -377,8 +535,9 @@ "name": "menu", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 14 + "setIdx": 0, + "setId": 1, + "iconIdx": 20 }, { "icon": { @@ -388,8 +547,10 @@ "tags": [ "location" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 7, "id": 16, @@ -398,8 +559,9 @@ "name": "location", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 15 + "setIdx": 0, + "setId": 1, + "iconIdx": 21 }, { "icon": { @@ -409,8 +571,10 @@ "tags": [ "list" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 8, "id": 15, @@ -419,8 +583,9 @@ "name": "list", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 16 + "setIdx": 0, + "setId": 1, + "iconIdx": 22 }, { "icon": { @@ -430,8 +595,10 @@ "tags": [ "info" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 9, "id": 14, @@ -440,8 +607,9 @@ "name": "info", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 17 + "setIdx": 0, + "setId": 1, + "iconIdx": 23 }, { "icon": { @@ -451,8 +619,10 @@ "tags": [ "grid" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 10, "id": 13, @@ -461,8 +631,9 @@ "name": "grid", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 18 + "setIdx": 0, + "setId": 1, + "iconIdx": 24 }, { "icon": { @@ -472,8 +643,10 @@ "tags": [ "minus" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 11, "id": 5, @@ -482,8 +655,9 @@ "name": "minus", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 19 + "setIdx": 0, + "setId": 1, + "iconIdx": 25 }, { "icon": { @@ -493,8 +667,10 @@ "tags": [ "checkmark" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 12, "id": 4, @@ -503,8 +679,9 @@ "name": "checkmark", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 20 + "setIdx": 0, + "setId": 1, + "iconIdx": 26 }, { "icon": { @@ -514,8 +691,10 @@ "tags": [ "cart" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 13, "id": 3, @@ -524,8 +703,9 @@ "name": "cart", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 21 + "setIdx": 0, + "setId": 1, + "iconIdx": 27 }, { "icon": { @@ -535,8 +715,10 @@ "tags": [ "calendar" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 14, "id": 2, @@ -545,8 +727,9 @@ "name": "calendar", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 22 + "setIdx": 0, + "setId": 1, + "iconIdx": 28 }, { "icon": { @@ -556,8 +739,10 @@ "tags": [ "arrow up" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 15, "id": 1, @@ -566,8 +751,9 @@ "name": "arrow-up", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 23 + "setIdx": 0, + "setId": 1, + "iconIdx": 29 }, { "icon": { @@ -577,8 +763,10 @@ "tags": [ "arrow down" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 16, "id": 0, @@ -587,8 +775,9 @@ "name": "arrow-down", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 24 + "setIdx": 0, + "setId": 1, + "iconIdx": 30 }, { "icon": { @@ -598,8 +787,10 @@ "tags": [ "search" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 17, "id": 25, @@ -608,8 +799,9 @@ "name": "search", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 25 + "setIdx": 0, + "setId": 1, + "iconIdx": 31 }, { "icon": { @@ -619,8 +811,10 @@ "tags": [ "remove" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 18, "id": 24, @@ -629,8 +823,9 @@ "name": "remove", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 26 + "setIdx": 0, + "setId": 1, + "iconIdx": 32 }, { "icon": { @@ -640,8 +835,10 @@ "tags": [ "prev" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 19, "id": 23, @@ -650,8 +847,9 @@ "name": "prev", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 27 + "setIdx": 0, + "setId": 1, + "iconIdx": 33 }, { "icon": { @@ -661,8 +859,10 @@ "tags": [ "pointer up" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 20, "id": 22, @@ -671,8 +871,9 @@ "name": "pointer-up", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 28 + "setIdx": 0, + "setId": 1, + "iconIdx": 34 }, { "icon": { @@ -682,8 +883,10 @@ "tags": [ "pointer right" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 21, "id": 21, @@ -692,8 +895,9 @@ "name": "pointer-right", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 29 + "setIdx": 0, + "setId": 1, + "iconIdx": 35 }, { "icon": { @@ -703,8 +907,10 @@ "tags": [ "pointer left" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 22, "id": 20, @@ -713,8 +919,9 @@ "name": "pointer-left", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 30 + "setIdx": 0, + "setId": 1, + "iconIdx": 36 }, { "icon": { @@ -724,8 +931,10 @@ "tags": [ "flag" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 23, "id": 12, @@ -734,8 +943,9 @@ "name": "flag", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 31 + "setIdx": 0, + "setId": 1, + "iconIdx": 37 }, { "icon": { @@ -745,8 +955,10 @@ "tags": [ "expand" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 24, "id": 11, @@ -755,8 +967,9 @@ "name": "expand", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 32 + "setIdx": 0, + "setId": 1, + "iconIdx": 38 }, { "icon": { @@ -767,8 +980,10 @@ "tags": [ "envelope" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 25, "id": 10, @@ -777,8 +992,9 @@ "name": "envelope", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 33 + "setIdx": 0, + "setId": 1, + "iconIdx": 39 }, { "icon": { @@ -788,8 +1004,10 @@ "tags": [ "compare" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 26, "id": 9, @@ -798,8 +1016,9 @@ "name": "compare-full", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 34 + "setIdx": 0, + "setId": 1, + "iconIdx": 40 }, { "icon": { @@ -809,8 +1028,10 @@ "tags": [ "comment" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 27, "id": 7, @@ -819,8 +1040,9 @@ "name": "comment", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 35 + "setIdx": 0, + "setId": 1, + "iconIdx": 41 }, { "icon": { @@ -830,8 +1052,10 @@ "tags": [ "up" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 28, "id": 34, @@ -840,8 +1064,9 @@ "name": "up", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 36 + "setIdx": 0, + "setId": 1, + "iconIdx": 42 }, { "icon": { @@ -851,8 +1076,10 @@ "tags": [ "down" ], - "grid": 32 + "grid": 32, + "attrs": [] }, + "attrs": [], "properties": { "order": 29, "id": 33, @@ -861,8 +1088,9 @@ "name": "down", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 37 + "setIdx": 0, + "setId": 1, + "iconIdx": 43 } ], "height": 1024, @@ -889,6 +1117,8 @@ "historySize": 100, "showCodes": true, "search": "", - "gridSize": 16 + "gridSize": 16, + "showQuickUse2": true, + "showSVGs": true } } \ No newline at end of file diff --git a/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/CartRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/CartRepositoryTest.php index 2779a7f88a11bb648a963962033bb28cd7341f74..25731e25eb92fb18463be4388b47a6678f6d4971 100644 --- a/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/CartRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/CartRepositoryTest.php @@ -3,9 +3,10 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ - namespace Magento\GiftMessage\Api; +// @codingStandardsIgnoreFile + use Magento\TestFramework\TestCase\WebapiAbstract; class CartRepositoryTest extends WebapiAbstract @@ -26,6 +27,8 @@ class CartRepositoryTest extends WebapiAbstract /** * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_message.php + * @magentoAppIsolation enabled + * @magentoDbIsolation disabled */ public function testGet() { @@ -60,6 +63,42 @@ class CartRepositoryTest extends WebapiAbstract $this->assertEquals($expectedMessage, $resultMessage); } + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_customer_and_message.php + */ + public function testGetForMyCart() + { + $this->_markTestAsRestOnly(); + + // get customer ID token + /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ + $customerTokenService = $this->objectManager->create( + 'Magento\Integration\Api\CustomerTokenServiceInterface' + ); + $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . 'mine/gift-message', + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + 'token' => $token, + ], + ]; + + $expectedMessage = [ + 'recipient' => 'Mercutio', + 'sender' => 'Romeo', + 'message' => 'I thought all for the best.', + ]; + + $requestData = []; + $resultMessage = $this->_webApiCall($serviceInfo, $requestData); + $this->assertCount(5, $resultMessage); + unset($resultMessage['gift_message_id']); + unset($resultMessage['customer_id']); + $this->assertEquals($expectedMessage, $resultMessage); + } + /** * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php */ @@ -102,4 +141,50 @@ class CartRepositoryTest extends WebapiAbstract $this->assertEquals('Jane Roe', $message->getSender()); $this->assertEquals('Gift Message Text New', $message->getMessage()); } + + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + */ + public function testSaveForMyCart() + { + $this->_markTestAsRestOnly(); + + // get customer ID token + /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ + $customerTokenService = $this->objectManager->create( + 'Magento\Integration\Api\CustomerTokenServiceInterface' + ); + $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); + + // sales/gift_options/allow_order must be set to 1 in system configuration + // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed + $this->markTestIncomplete('This test relies on system configuration state.'); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . 'mine/gift-message', + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, + 'token' => $token, + ], + ]; + + $requestData = [ + 'giftMessage' => [ + 'recipient' => 'John Doe', + 'sender' => 'Jane Roe', + 'message' => 'Gift Message Text New', + ], + ]; + $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); + + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $quote->getGiftMessageId(); + /** @var \Magento\GiftMessage\Model\Message $message */ + $message = $this->objectManager->create('Magento\GiftMessage\Model\Message')->load($quote->getGiftMessageId()); + $this->assertEquals('John Doe', $message->getRecipient()); + $this->assertEquals('Jane Roe', $message->getSender()); + $this->assertEquals('Gift Message Text New', $message->getMessage()); + } } diff --git a/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/GuestCartRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/GuestCartRepositoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..2d2da9d2ff9a6ccc7a139787152be21671897341 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/GuestCartRepositoryTest.php @@ -0,0 +1,122 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Api; + +// @codingStandardsIgnoreFile + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class GuestCartRepositoryTest extends WebapiAbstract +{ + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'giftMessageGuestCartRepositoryV1'; + const RESOURCE_PATH = '/V1/guest-carts/'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_message.php + * @magentoAppIsolation enabled + * @magentoDbIsolation disabled + */ + public function testGet() + { + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('message_order_21', 'reserved_order_id'); + $cartId = $quote->getId(); + /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ + $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); + $quoteIdMask->load($cartId, 'quote_id'); + //Use masked cart Id + $cartId = $quoteIdMask->getMaskedId(); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message', + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'Get', + ], + ]; + + $expectedMessage = [ + 'recipient' => 'Mercutio', + 'sender' => 'Romeo', + 'message' => 'I thought all for the best.', + ]; + + $requestData = ["cartId" => $cartId]; + $resultMessage = $this->_webApiCall($serviceInfo, $requestData); + $this->assertCount(5, $resultMessage); + unset($resultMessage['gift_message_id']); + unset($resultMessage['customer_id']); + $this->assertEquals($expectedMessage, $resultMessage); + } + + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + */ + public function testSave() + { + // sales/gift_options/allow_order must be set to 1 in system configuration + // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed + $this->markTestIncomplete('This test relies on system configuration state.'); + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $cartId = $quote->getId(); + /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ + $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); + $quoteIdMask->load($cartId, 'quote_id'); + //Use masked cart Id + $cartId = $quoteIdMask->getMaskedId(); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message', + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'Save', + ], + ]; + + $requestData = [ + 'cartId' => $cartId, + 'giftMessage' => [ + 'recipient' => 'John Doe', + 'sender' => 'Jane Roe', + 'message' => 'Gift Message Text New', + ], + ]; + $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $quote->getGiftMessageId(); + /** @var \Magento\GiftMessage\Model\Message $message */ + $message = $this->objectManager->create('Magento\GiftMessage\Model\Message')->load($quote->getGiftMessageId()); + $this->assertEquals('John Doe', $message->getRecipient()); + $this->assertEquals('Jane Roe', $message->getSender()); + $this->assertEquals('Gift Message Text New', $message->getMessage()); + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/GuestItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/GuestItemRepositoryTest.php new file mode 100644 index 0000000000000000000000000000000000000000..c749c3b39eeca5c3858f1b52b7eab71e309067e7 --- /dev/null +++ b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/GuestItemRepositoryTest.php @@ -0,0 +1,130 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +namespace Magento\GiftMessage\Api; + +// @codingStandardsIgnoreFile + +use Magento\TestFramework\TestCase\WebapiAbstract; + +class GuestItemRepositoryTest extends WebapiAbstract +{ + const SERVICE_VERSION = 'V1'; + const SERVICE_NAME = 'giftMessageGuestItemRepositoryV1'; + const RESOURCE_PATH = '/V1/guest-carts/'; + + /** + * @var \Magento\TestFramework\ObjectManager + */ + protected $objectManager; + + protected function setUp() + { + $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + } + + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + * @magentoAppIsolation enabled + * @magentoDbIsolation disabled + */ + public function testGet() + { + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $product = $this->objectManager->create('Magento\Catalog\Model\Product'); + $product->load($product->getIdBySku('simple_with_message')); + $itemId = $quote->getItemByProduct($product)->getId(); + /** @var \Magento\Catalog\Model\Product $product */ + $cartId = $quote->getId(); + /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ + $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); + $quoteIdMask->load($cartId, 'quote_id'); + //Use masked cart Id + $cartId = $quoteIdMask->getMaskedId(); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' . $itemId, + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'Get', + ], + ]; + + $expectedMessage = [ + 'recipient' => 'Jane Roe', + 'sender' => 'John Doe', + 'message' => 'Gift Message Text', + ]; + + $requestData = ["cartId" => $cartId, "itemId" => $itemId]; + $resultMessage = $this->_webApiCall($serviceInfo, $requestData); + $this->assertCount(5, $resultMessage); + unset($resultMessage['gift_message_id']); + unset($resultMessage['customer_id']); + $this->assertEquals($expectedMessage, $resultMessage); + } + + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + */ + public function testSave() + { + // sales/gift_options/allow_items must be set to 1 in system configuration + // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed + $this->markTestIncomplete('This test relies on system configuration state.'); + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $product = $this->objectManager->create('Magento\Catalog\Model\Product'); + $product->load($product->getIdBySku('simple_with_message')); + $itemId = $quote->getItemByProduct($product)->getId(); + $cartId = $quote->getId(); + /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ + $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); + $quoteIdMask->load($cartId, 'quote_id'); + //Use masked cart Id + $cartId = $quoteIdMask->getMaskedId(); + + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . $cartId . '/gift-message/' . $itemId, + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, + ], + 'soap' => [ + 'service' => self::SERVICE_NAME, + 'serviceVersion' => self::SERVICE_VERSION, + 'operation' => self::SERVICE_NAME . 'Save', + ], + ]; + + $requestData = [ + 'cartId' => $cartId, + 'itemId' => $itemId, + 'giftMessage' => [ + 'recipient' => 'John Doe', + 'sender' => 'Jane Roe', + 'message' => 'Gift Message Text New', + ], + ]; + $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); +// $quote->load('test_order_item_with_message', 'reserved_order_id'); + $messageId = $quote->getItemByProduct($product)->getGiftMessageId(); + /** @var \Magento\GiftMessage\Model\Message $message */ + $message = $this->objectManager->create('Magento\GiftMessage\Model\Message')->load($messageId); + $this->assertEquals('John Doe', $message->getRecipient()); + $this->assertEquals('Jane Roe', $message->getSender()); + $this->assertEquals('Gift Message Text New', $message->getMessage()); + } +} diff --git a/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/ItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/ItemRepositoryTest.php index 3673cb930e82da642a39cdbfded396f829bc1b4a..2dbc24cb67a17afde0f586df5ddab0f3a382aba3 100644 --- a/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/ItemRepositoryTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GiftMessage/Api/ItemRepositoryTest.php @@ -3,11 +3,10 @@ * Copyright © 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ +namespace Magento\GiftMessage\Api; // @codingStandardsIgnoreFile -namespace Magento\GiftMessage\Api; - use Magento\TestFramework\TestCase\WebapiAbstract; class ItemRepositoryTest extends WebapiAbstract @@ -28,6 +27,8 @@ class ItemRepositoryTest extends WebapiAbstract /** * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + * @magentoAppIsolation enabled + * @magentoDbIsolation disabled */ public function testGet() { @@ -65,6 +66,49 @@ class ItemRepositoryTest extends WebapiAbstract $this->assertEquals($expectedMessage, $resultMessage); } + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + */ + public function testGetForMyCart() + { + $this->_markTestAsRestOnly(); + + // get customer ID token + /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ + $customerTokenService = $this->objectManager->create( + 'Magento\Integration\Api\CustomerTokenServiceInterface' + ); + $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); + + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $product = $this->objectManager->create('Magento\Catalog\Model\Product'); + $product->load($product->getIdBySku('simple_with_message')); + $itemId = $quote->getItemByProduct($product)->getId(); + /** @var \Magento\Catalog\Model\Product $product */ + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . 'mine/gift-message/' . $itemId, + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET, + 'token' => $token, + ], + ]; + + $expectedMessage = [ + 'recipient' => 'Jane Roe', + 'sender' => 'John Doe', + 'message' => 'Gift Message Text', + ]; + + $requestData = ["itemId" => $itemId]; + $resultMessage = $this->_webApiCall($serviceInfo, $requestData); + $this->assertCount(5, $resultMessage); + unset($resultMessage['gift_message_id']); + unset($resultMessage['customer_id']); + $this->assertEquals($expectedMessage, $resultMessage); + } + /** * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php */ @@ -102,6 +146,55 @@ class ItemRepositoryTest extends WebapiAbstract ], ]; $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); +// $quote->load('test_order_item_with_message', 'reserved_order_id'); + $messageId = $quote->getItemByProduct($product)->getGiftMessageId(); + /** @var \Magento\GiftMessage\Model\Message $message */ + $message = $this->objectManager->create('Magento\GiftMessage\Model\Message')->load($messageId); + $this->assertEquals('John Doe', $message->getRecipient()); + $this->assertEquals('Jane Roe', $message->getSender()); + $this->assertEquals('Gift Message Text New', $message->getMessage()); + } + + /** + * @magentoApiDataFixture Magento/GiftMessage/_files/quote_with_item_message.php + */ + public function testSaveForMyCart() + { + $this->_markTestAsRestOnly(); + + // get customer ID token + /** @var \Magento\Integration\Api\CustomerTokenServiceInterface $customerTokenService */ + $customerTokenService = $this->objectManager->create( + 'Magento\Integration\Api\CustomerTokenServiceInterface' + ); + $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password'); + + // sales/gift_options/allow_items must be set to 1 in system configuration + // @todo remove next statement when \Magento\TestFramework\TestCase\WebapiAbstract::_updateAppConfig is fixed + $this->markTestIncomplete('This test relies on system configuration state.'); + /** @var \Magento\Quote\Model\Quote $quote */ + $quote = $this->objectManager->create('Magento\Quote\Model\Quote'); + $quote->load('test_order_item_with_message', 'reserved_order_id'); + $product = $this->objectManager->create('Magento\Catalog\Model\Product'); + $product->load($product->getIdBySku('simple_with_message')); + $itemId = $quote->getItemByProduct($product)->getId(); + $serviceInfo = [ + 'rest' => [ + 'resourcePath' => self::RESOURCE_PATH . 'mine/gift-message/' . $itemId, + 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST, + 'token' => $token, + ], + ]; + + $requestData = [ + 'itemId' => $itemId, + 'giftMessage' => [ + 'recipient' => 'John Doe', + 'sender' => 'Jane Roe', + 'message' => 'Gift Message Text New', + ], + ]; + $this->assertTrue($this->_webApiCall($serviceInfo, $requestData)); // $quote->load('test_order_item_with_message', 'reserved_order_id'); $messageId = $quote->getItemByProduct($product)->getGiftMessageId(); /** @var \Magento\GiftMessage\Model\Message $message */ diff --git a/dev/tests/api-functional/testsuite/Magento/Integration/Model/CustomerTokenServiceTest.php b/dev/tests/api-functional/testsuite/Magento/Integration/Model/CustomerTokenServiceTest.php index 5e31104da1607a3d8da4b3e1dd3f497138b58796..993a369782eca345eb717089573788b800f548e2 100644 --- a/dev/tests/api-functional/testsuite/Magento/Integration/Model/CustomerTokenServiceTest.php +++ b/dev/tests/api-functional/testsuite/Magento/Integration/Model/CustomerTokenServiceTest.php @@ -13,6 +13,7 @@ use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\WebapiAbstract; use Magento\User\Model\User as UserModel; use Magento\Framework\Webapi\Exception as HTTPExceptionCodes; +use Magento\Integration\Model\Resource\Oauth\Token\CollectionFactory; /** * api-functional test for \Magento\Integration\Model\CustomerTokenService. @@ -35,9 +36,9 @@ class CustomerTokenServiceTest extends WebapiAbstract private $customerAccountManagement; /** - * @var TokenModel + * @var CollectionFactory */ - private $tokenModel; + private $tokenCollection; /** * @var UserModel @@ -54,7 +55,10 @@ class CustomerTokenServiceTest extends WebapiAbstract $this->customerAccountManagement = Bootstrap::getObjectManager()->get( 'Magento\Customer\Api\AccountManagementInterface' ); - $this->tokenModel = Bootstrap::getObjectManager()->get('Magento\Integration\Model\Oauth\Token'); + $tokenCollectionFactory = Bootstrap::getObjectManager()->get( + 'Magento\Integration\Model\Resource\Oauth\Token\CollectionFactory' + ); + $this->tokenCollection = $tokenCollectionFactory->create(); $this->userModel = Bootstrap::getObjectManager()->get('Magento\User\Model\User'); } @@ -65,6 +69,7 @@ class CustomerTokenServiceTest extends WebapiAbstract { $customerUserName = 'customer@example.com'; $password = 'password'; + $isTokenCorrect = false; $serviceInfo = [ 'rest' => [ @@ -76,9 +81,17 @@ class CustomerTokenServiceTest extends WebapiAbstract $accessToken = $this->_webApiCall($serviceInfo, $requestData); $customerData = $this->customerAccountManagement->authenticate($customerUserName, $password); - /** @var $token TokenModel */ - $token = $this->tokenModel->loadByCustomerId($customerData->getId())->getToken(); - $this->assertEquals($accessToken, $token); + + /** @var $this->tokenCollection \Magento\Integration\Model\Resource\Oauth\Token\Collection */ + $this->tokenCollection->addFilterByCustomerId($customerData->getId()); + + foreach ($this->tokenCollection->getItems() as $item) { + /** @var $item TokenModel */ + if ($item->getToken() == $accessToken) { + $isTokenCorrect = true; + } + } + $this->assertTrue($isTokenCorrect); } /** diff --git a/dev/tests/integration/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php b/dev/tests/integration/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php index a6957a03133f5dbf7030dd568537dca3d102011f..08220dd340ad85bb01a1dffbea9a1490baa0d014 100644 --- a/dev/tests/integration/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php +++ b/dev/tests/integration/testsuite/Magento/Checkout/Block/Cart/Item/RendererTest.php @@ -62,12 +62,6 @@ class RendererTest extends \PHPUnit_Framework_TestCase $this->assertStringEndsWith('magento_image.jpg', $this->_block->getProductThumbnailSidebarUrl()); } - public function testGetConfigureUrl() - { - $testString = 'checkout/cart/configure/id/' . $this->_block->getItem()->getId() . '/product_id/1/'; - $this->assertStringEndsWith($testString, $this->_block->getConfigureUrl()); - } - /** * Gets \Magento\Quote\Model\Quote\Item from \Magento\Quote\Model\Quote by product id * diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_customer_and_message.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_customer_and_message.php new file mode 100644 index 0000000000000000000000000000000000000000..56674a5ba813b2f929843d3be0bcb3c91d4d618f --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_customer_and_message.php @@ -0,0 +1,40 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +require __DIR__ . '/../../Customer/_files/customer.php'; + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +/** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */ +$customerRepository = $objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface'); +$customer = $customerRepository->getById(1); + +/** @var \Magento\GiftMessage\Model\Message $message */ +$message = $objectManager->create('Magento\GiftMessage\Model\Message'); +$message->setSender('Romeo'); +$message->setRecipient('Mercutio'); +$message->setMessage('I thought all for the best.'); +$message->save(); + +/** @var \Magento\Quote\Model\Quote $quote */ +$quote = $objectManager->create('Magento\Quote\Model\Quote'); +$quote->setData( + [ + 'store_id' => 1, + 'is_active' => 1, + 'reserved_order_id' => 'message_order_21', + 'gift_message_id' => $message->getId(), + ] +)->assignCustomer($customer); +$quote->save(); + +/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ +$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); +$quoteIdMask->setQuoteId($quote->getId()); +$quoteIdMask->setDataChanges(true); +$quoteIdMask->save(); diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_customer_and_message_rollback.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_customer_and_message_rollback.php new file mode 100644 index 0000000000000000000000000000000000000000..42ae5826a8e72e9d515bb6c52f71003b108c720f --- /dev/null +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_customer_and_message_rollback.php @@ -0,0 +1,18 @@ +<?php +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ + +$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(); + +/** @var \Magento\Quote\Model\Quote $quote */ +$quote = $objectManager->create('Magento\Quote\Model\Quote'); +$quote->load('message_order_21', 'reserved_order_id'); + +/** @var \Magento\GiftMessage\Model\Message $message */ +$message = $objectManager->create('Magento\GiftMessage\Model\Message'); +$message->load($quote->getGiftMessageId()); +$message->delete(); + +$quote->delete(); diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_item_message.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_item_message.php index cb590f2ddd2d818b9126340b5c13e4ba366d46f2..cb56c205bad7144ef1dc45d51840c374fdc5e803 100644 --- a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_item_message.php +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_item_message.php @@ -44,3 +44,11 @@ $message->setRecipient('Jane Roe'); $message->setMessage('Gift Message Text'); $message->save(); $quote->getItemByProduct($quoteProduct)->setGiftMessageId($message->getId())->save(); + +/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ +$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); +$quoteIdMask->setQuoteId($quote->getId()); +$quoteIdMask->setDataChanges(true); +$quoteIdMask->save(); diff --git a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_message.php b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_message.php index 848b8d256241769a30cdd4f1a4eb6ba38e6bf68d..7a575f296fd59deaf631108d7fd0976fd6fece2e 100644 --- a/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_message.php +++ b/dev/tests/integration/testsuite/Magento/GiftMessage/_files/quote_with_message.php @@ -24,3 +24,11 @@ $quote->setData( ] ); $quote->save(); + +/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */ +$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager() + ->create('Magento\Quote\Model\QuoteIdMaskFactory') + ->create(); +$quoteIdMask->setQuoteId($quote->getId()); +$quoteIdMask->setDataChanges(true); +$quoteIdMask->save(); diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php index 638d18c04958565b8638e3bf97df343a8e58cb9d..4cfed53e55352a8a77865f52862073abbf657605 100755 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php @@ -3656,5 +3656,6 @@ return [ ['Magento\Centinel\Test\TestCase\CentinelPaymentsInvalidCcTest'], ['Magento\Centinel\Test\TestCase\CentinelPaymentsValidCcTest'], ['Magento\Centinel\CreateOrderTest'], - ['Magento\Payment\Model\Checks\PaymentMethodChecksInterface', 'Magento\Payment\Model\MethodInterface'] + ['Magento\Payment\Model\Checks\PaymentMethodChecksInterface', 'Magento\Payment\Model\MethodInterface'], + ['Magento\GiftMessage\Model\Plugin\TotalsDataProcessorPlugin'], ]; diff --git a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php index 6a29c4ccecc5c13c26750ec49375acfe81db6f82..cd660a65eb1223dad2b303f80f1b0eac7e0280d8 100644 --- a/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php +++ b/dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_methods.php @@ -2257,5 +2257,10 @@ return [ ['getOrigData', 'Magento\Framework\Object', 'Moved to Magento\Framework\Model\AbstractModel'], ['dataHasChangedFor', 'Magento\Framework\Object', 'Moved to Magento\Framework\Model\AbstractModel'], ['setDataChanges', 'Magento\Framework\Object', 'Moved to Magento\Framework\Model\AbstractModel'], + [ + 'getConfigureUrl', + 'Magento\Checkout\Block\Cart\Item\Renderer', + '\Magento\Checkout\Block\Cart\Item\Renderer\Actions\Edit::getConfigureUrl' + ], ['getCurrenCategoryKey', 'Magento\Catalog\Block\Navigation', 'getCurrentCategoryKey'], ]; diff --git a/lib/web/css/docs/docs.css b/lib/web/css/docs/docs.css index c582689347ea21d675d48262cc12d75868a93be5..bd3fb54a7376ad58e526e199f281a813f7be7d46 100644 --- a/lib/web/css/docs/docs.css +++ b/lib/web/css/docs/docs.css @@ -8193,7 +8193,6 @@ pre { margin: 0 0 10px; line-height: 1.42857143; padding: 10px; - word-break: break-all; word-wrap: break-word; } pre code { @@ -8258,8 +8257,6 @@ cite { line-height: 3rem; } .example-word-wrap { - word-break: break-all; - word-break: break-word; word-wrap: break-word; -webkit-hyphens: auto; -moz-hyphens: auto; @@ -8562,7 +8559,6 @@ pre { margin: 0 0 10px; line-height: 1.42857143; padding: 10px; - word-break: break-all; word-wrap: break-word; } pre code { @@ -8732,4 +8728,4 @@ body { padding: 15px; background-image: none; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL191dGlsaXRpZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9icmVhZGNydW1icy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2JyZWFkY3J1bWJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2ljb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX3R5cG9ncmFwaHkubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9pY29ucy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2J1dHRvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19idXR0b25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZm9ybXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19mb3Jtcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19sb2FkZXJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9tZXNzYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX21lc3NhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZ3JpZHMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9wYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3BhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmVzcG9uc2l2ZS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3NlY3Rpb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fc2VjdGlvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL190YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90b29sdGlwcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3Rvb2x0aXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3V0aWxpdGllcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2RvY3MubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpREksZ0JBQUM7QUFDRCxnQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosZ0JBQUM7RUFDRyxXQUFBOztBQ25CUixnQkMyQ0k7RUFDSSxXQUFBOztBRDVDUixnQkM4Q0k7RUFDSSxZQUFBOztBRC9DUixnQkNWSTtBRFVKLGdCQ1RJO0VBQ0ks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 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL191dGlsaXRpZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19hY3Rpb25zLXRvb2xiYXIubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9icmVhZGNydW1icy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2JyZWFkY3J1bWJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX2ljb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX3R5cG9ncmFwaHkubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9pY29ucy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2J1dHRvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19idXR0b25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZHJvcGRvd25zLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvZm9ybXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19mb3Jtcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL19sb2FkZXJzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi92YXJpYWJsZXMvX2xvYWRlcnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9tZXNzYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX21lc3NhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fbGF5b3V0Lmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fZ3JpZHMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS9wYWdlcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3BhZ2VzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcG9wdXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fcmF0aW5nLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvcmVzcG9uc2l2ZS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3NlY3Rpb25zLmxlc3MiLCIvbGliL3dlYi9jc3Mvc291cmNlL2xpYi9fc2VjdGlvbnMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9zb3VyY2UvbGliL190YWJsZXMubGVzcyIsIi9saWIvd2ViL2Nzcy9kb2NzL3NvdXJjZS90b29sdGlwcy5sZXNzIiwiL2xpYi93ZWIvY3NzL3NvdXJjZS9saWIvX3Rvb2x0aXBzLmxlc3MiLCIvbGliL3dlYi9jc3MvZG9jcy9zb3VyY2UvdHlwb2dyYXBoeS5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL3V0aWxpdGllcy5sZXNzIiwiL2xpYi93ZWIvY3NzL2RvY3Mvc291cmNlL2RvY3MubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpREksZ0JBQUM7QUFDRCxnQkFBQztFQUNHLFNBQVMsRUFBVDtFQUNBLGNBQUE7O0FBRUosZ0JBQUM7RUFDRyxXQUFBOztBQ25CUixnQkMyQ0k7RUFDSSxXQUFBOztBRDVDUixnQkM4Q0k7RUFDSSxZQUFBOztBRC9DUixnQkNWSTtBRFVKLGdCQ1RJO0VBQ0ks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 */ \ No newline at end of file diff --git a/lib/web/css/docs/icons.html b/lib/web/css/docs/icons.html index c20166dc31e9f29cd1ba8e5d4a9c434d1c5ff13d..7058b1369e74c6a133659d934dbb7ea2b9c0b96c 100644 --- a/lib/web/css/docs/icons.html +++ b/lib/web/css/docs/icons.html @@ -1,12 +1,12 @@ -<!-- -/** - * Copyright © 2015 Magento. All rights reserved. - * See COPYING.txt for license details. - */ ---> - +<!-- +/** + * Copyright © 2015 Magento. All rights reserved. + * See COPYING.txt for license details. + */ +--> + <!DOCTYPE html><html><head><title>icons | Magento UI Library -</title><meta charset="utf-8"><style>*{-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;border:0}body{padding:60px 0 40px;background-color:hsl(207,10%,90%);color:hsl(207,5%,30%)}.container{max-width:1300px;margin:0 auto;padding:0 20px}.section{position:relative;margin-bottom:20px}.docs{position:relative;z-index:2;width:68%;min-height:200px;background-color:hsl(207,0%,100%);background-clip:padding-box;border:1px solid hsla(207,5%,5%,.1);border-radius:5px;box-shadow:0 0 3px hsla(207,5%,5%,.1)}.code{position:absolute;top:5px;bottom:5px;right:0;z-index:1;width:33%;padding:10px 10px 10px 20px;border-radius:0 5px 5px 0;border:1px solid hsla(207,20%,10%,.1);background-color:hsla(207,20%,95%,.9);background-clip:padding-box;opacity:.5;-webkit-transition:opacity .4s;-moz-transition:opacity .4s;-o-transition:opacity .4s;transition:opacity .4s}.code:hover{opacity:1}.preview{background:hsl(207,0%,100%);border-top:1px solid hsl(207,30%,95%);position:relative;z-index:1}.preview-code+.preview{margin-top:0;border-top:0}.preview iframe{display:block;width:100%;height:100%;overflow:hidden}.preview-code{position:relative;z-index:2;display:block;width:100%;color:hsl(207,9%,37%);max-height:200px;padding:10px 20px;overflow-y:auto;background:hsl(207,30%,95%);border:1px solid hsl(207,30%,85%);border-left:0;border-right;box-shadow:inset 0 1px 2px hsla(207,30%,10%,.1);line-height:1.1!important;resize:none}.preview-code:focus{outline:0;background:hsl(207,30%,97%);box-shadow:inset 0 1px 2px hsla(207,30%,10%,.1),0 0 5px hsla(207,75%,75%,.9)}.preview-code:last-child{border-bottom:0;border-radius:0 0 5px 5px}.resizeable{padding:15px;overflow:auto;background:hsl(207,0%,100%);box-shadow:0 0 2px hsla(207,10%,20%,.2);resize:both}.preview-code,pre{white-space:pre-wrap;word-wrap:break-word;overflow-y:auto}.code pre{height:100%;margin-top:0}.bar{position:fixed;left:0;right:0;z-index:1010;min-height:40px;line-height:40px;background-image:-webkit-linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92));background-image:-moz-linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92));background-image:-o-linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92));background-image:linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92))}.bar.top{top:0;box-shadow:0 1px 2px hsla(207,5%,0%,.2)}.bar.bottom{bottom:0;box-shadow:0 -1px 2px hsla(207,5%,0%,.2)}.bar ul{margin:0!important}.bar li{display:block;list-style:none}.bar .icon path{fill:hsla(27,10%,75%,.75)}.docs .icon path{fill:hsla(207,10%,75%,.5)}.docs .permalink:hover .icon path{fill:hsl(207,10%,75%)}.bar button{color:hsla(27,10%,75%,.75)}.bar button:hover .icon path,.bar button.is-active .icon path{fill:hsl(27,10%,85%)}.bar button:hover,.bar button.is-active{color:hsl(27,10%,85%)}.bar .icon{vertical-align:middle;display:inline-block}.bar,.bar a,.bar a:visited{color:hsl(27,10%,85%);text-shadow:1px 1px 0 hsla(27,5%,0%,.5)}.bar a:hover,.bar a.is-active{color:hsl(27,10%,95%);text-shadow:1px 1px 0 hsla(27,5%,0%,1);text-decoration:none}.brand{float:left;margin-right:20px;font-weight:700;font-size:16px;text-decoration:none}.brand,a.brand,a.brand:visited{color:hsl(27,5%,5%);text-shadow:1px 1px 0 hsla(27,5%,100%,.2)}.brand:hover,a.brand:hover{color:hsl(27,5%,0%);text-shadow:1px 1px 0 hsla(27,5%,100%,.3);text-decoration:none}.menu{font-size:12px}.menu>li{float:left;position:relative}.menu a{display:block;margin-right:15px}.dropdown-toggle{position:relative;padding-right:15px}.dropdown-toggle:after{display:block;position:absolute;right:0;top:18px;content:'';border:4px solid;border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.nav-results,.dropdown{position:absolute;z-index:1020;top:32px;left:-16px;width:175px;max-height:500px;padding:10px 0;overflow-y:auto;word-wrap:break-word;font-size:11px;line-height:20px;background-color:hsla(207,10%,25%,.97);border:1px solid hsla(207,5%,70%,.3);border-radius:3px;box-shadow:0 0 3px hsla(207,5%,0%,.2)}.toc-list{width:200px}.nav-results{right:0;width:200px;left:auto;padding:5px 0}.nav-results-filename{display:block;font-size:10px;opacity:.75}.nav-results a{display:block;line-height:15px;padding:5px 10px}.nav-results li:not([hidden])~li a{border-top:1px solid hsla(27,10%,90%,.1)}.dropdown a{padding:0 15px}.dropdown li:hover{background-color:hsl(207,10%,22%)}.nav{float:right;position:relative}.nav input[type="search"]{padding:2px 4px;color:#fff;width:150px;border:1px solid hsla(207,5%,0%,.3);background:hsla(207,12%,40%,.9);box-shadow:inset 1px 1px 3px hsla(207,5%,0%,.05),1px 1px 0 hsla(207,5%,100%,.05);border-radius:10px;-webkit-appearance:textfield}.nav input[type="search"]:focus{outline:0;background:hsla(207,7%,45%,.9)}.settings{text-align:center}.bar button{display:inline-block;vertical-align:middle;padding:0 5px;margin:0 3px;background:transparent}.bar button:first-child{margin-left:0}.settings .auto{line-height:32px;font-size:11px;font-weight:700;letter-spacing:-1px;text-shadow:none;text-transform:uppercase}body{font-family:sans-serif;font-size:14px;line-height:1.618}.docs pre,p,ol,ul,dl,figure,blockquote,table{margin-left:20px;margin-right:20px}.preview,.docs pre,p,ol,ul,dl,figure,blockquote,table{margin-top:10px}ul ul,ol ol,ul ol,ol ul,blockquote p:last-child{margin-top:0}ul,ol{padding-left:1.5em}p:last-child,ol:last-child,ul:last-child,dl:last-child{margin-bottom:20px}hr,h1,h2,h3,h4,h5,h6{margin:1em 20px .5em}h1:first-of-type{margin-top:20px}h1,h2,h3,h4,h5,h6{line-height:1.2;color:hsl(207,10%,50%)}h1 a,h1 a:hover,h1 a:visited{color:inherit;text-decoration:inherit}h1{font-size:3.052em;font-weight:400;color:hsl(207,10%,45%)}h2{font-size:1.953em}h3{font-size:1.536em}h1,h2,h3{letter-spacing:-.025em}h4{font-size:1.25em}h5{font-size:1em;text-transform:uppercase}h6{font-size:1em}.permalink{position:absolute;top:15px;right:15px}a{color:hsl(207,90%,50%);text-decoration:none}a:hover{color:hsl(207,95%,40%);text-decoration:underline}a:visited{color:hsl(207,100%,35%)}.preview-code,pre,code,var{font-style:normal;font-family:"Ubuntu Mono","Andale Mono","DejaVu Sans Mono","Monaco","Bitstream Vera Sans Mono","Consolas","Lucida Console",monospace;font-size:12px}.docs pre,code,var{padding:.1em 3px;background:hsla(207,5%,0%,.025);border:1px solid hsla(207,5%,0%,.05);border-radius:3px}.code pre{line-height:1.1!important}pre code{padding:0;background:transparent;border:0}.cf:before,.cf:after{content:'';display:table}.cf:after{clear:both}[unselectable="on"]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[hidden]{display:none!important}small{font-size:85%;opacity:.9}.docs .vars_list{width:100%}.docs .vars_list th,.docs .vars_list td{width:33%}.docs pre th{text-align:left}.docs pre table{border-collapse:collapse;margin:0}.docs th,.docs td{border:0;padding:9px 10px 9px 0;vertical-align:top}.docs tr th:last-child,.docs tr td:last-child{padding-right:0}.docs pre th{font-weight:400}.docs pre th.vars_head{border-bottom:1px solid #e5e5e5;color:#707070;white-space:nowrap}.docs pre th.vars_section{border-bottom:1px solid #e5e5e5;color:#333;font-size:18px;padding-top:30px}.vars_value{color:#338bb8}.docs li p{margin:0 0 20px}.dropdown a{text-transform:capitalize}#default-button #default-button-big+.preview+.preview-code{display:block}#actions-toolbar-alignment .preview-code,#reverse-primary-and-secondary-blocks .preview-code,#actions-toolbar-indents-customizations .preview-code,#actionstoolbarclearfloats-mixin .preview-code,#responsive-actions-toolbar .preview-code,#button-with-gradient-background .preview-code,#primary-button .preview-code,#button-as-an-icon .preview-code,#button-with-an-icon-on-the-left-or-right-side-of-the-text .preview-code,#button-with-fixed-width .preview-code,#button-as-a-link .preview-code,#link-as-a-button .preview-code,#buttonstyled-breadcrumbs-with-gradient-background-border-and-no-separating-symbol .preview-code,#breadcrumbs-with-solid-background .preview-code,#pagination-without-label-with-solid-background .preview-code,#pagination-with-label-and-text-previousnext-links .preview-code,#pagination-with-label-and-gradient-background-on-links .preview-code,#fixed-height-popup .preview-code,#fixed-content-height-popup .preview-code,#margins-for-header-content-and-footer-block-in-popup .preview-code,#popup-titles-with-styled-as-theme-headings .preview-code,#popup-action-toolbar .preview-code,#popup-close-button-without-an-icon .preview-code,#modify-icon-of-popup-close-button .preview-code,#modify-overlay-styles .preview-code,#rating-summary-multiple-ratings .preview-code,#rating-summary-hide-label .preview-code,#rating-summary-icons-symbol .preview-code,#rating-summary-icons-color .preview-code,#rating-summary-set-number-of-icons .preview-code,#rating-summary .preview-code,#rating-with-vote-icon-symbol .preview-code,#rating-with-vote-setup-icons-colors .preview-code,#rating-with-vote-setup-number-of-icons .preview-code,#tabs-with-content-top-border .preview-code,#accordion-mixin-variables .preview-code,#tabs-base .preview-code,#accordion-base .preview-code,#warning-message .preview-code,#error-message .preview-code,#success-message .preview-code,#notice-message .preview-code,#message-with-inner-icon .preview-code,#message-with-lateral-icon .preview-code,#custom-message-style .preview-code,#modify-dropdown-list-styles .preview-code,#dropdown-with-icon-customization .preview-code,#split-button-button-styling .preview-code,#split-button-icon-customization .preview-code,#split-button-dropdown-list-customization .preview-code,#table-cells-resize .preview-code,#table-caption .preview-code,#table-typography .preview-code,#table-background-customization .preview-code,#table-borders-customization .preview-code,#table-without-borders .preview-code,#table-with-horizontal-borders .preview-code,#table-with-vertical-borders .preview-code,#striped-table .preview-code,#responsive-table-technics-1 .preview-code,#responsive-table-technics-2 .preview-code,#fontsize-mixin .preview-code,#word-breaking-mixin .preview-code,#word-breaking-mixin .preview-code,#text-overflow-mixin .preview-code,#text-hide .preview-code,#hyphens .preview-code,#font-style-and-color .preview-code,#reset-list-styles .preview-code,#inlineblock-list-item-styling .preview-code,#link-styling-mixin .preview-code,#heading-styling-mixin .preview-code,#icon-with-image-or-sprite .preview-code,#change-the-size-of-font-icon .preview-code,#sprite-and-font-icons-for-blank-theme .preview-code,#icon-position-for-an-icon-with-image-or-sprite .preview-code{display:none}article[id$="-variables"] .docs,#resets .docs,#ratings .docs,#tabs-and-accordions .docs,#messages .docs,#dropdown-and-split-buttons-mixins .docs,#font-face-mixin .docs,#layout .docs,#forms-mixins .docs,#including-magento-ui-library-to-your-theme .docs,#global-forms-elements-customization .docs,#mobile-off-canvas-navigation .docs,#desktop-navigation .docs,#layout-width .docs{width:100%}article[id$="-variables"] .code{display:none}article[id$="-variables"] .docs pre{background:#fff;border:0;margin-top:0}</style><script type="text/preview">(function(){"use strict";var a=function(a){return Array.prototype.slice.call(a)},b=document.getElementsByTagName("body")[0],c=["link","visited","hover","active","focus","target","enabled","disabled","checked"],d=new RegExp(":(("+c.join(")|(")+"))","gi"),e=a(document.styleSheets).map(function(b){return a(b.cssRules).filter(function(a){return a.selectorText&&a.selectorText.match(d)}).map(function(a){return a.cssText.replace(d,".\\3A $1")}).join("")}).join("");if(e.length){var f=document.createElement("style");f.innerText=e;var g=document.getElementsByTagName("style")[0];g.parentNode.insertBefore(f,g)}var h=function(){var a=window.getComputedStyle(b,null);return function(){if(b.childElementCount===0)return b.offsetHeight;var c=b.getElementsByTagName("*"),d=[];for(var e=0,f=c.length;e<f;e++)d.push(c[e].offsetTop+c[e].offsetHeight+parseInt(window.getComputedStyle(c[e],null).getPropertyValue("margin-bottom")));var g=Math.max.apply(Math,d);return g+=parseInt(a.getPropertyValue("padding-bottom"),10),Math.max(g,b.offsetHeight)}}(),i={getHeight:function(){window.parent.postMessage({height:h()},"*")}};window.addEventListener("message",function(a){if(a.data==null)return;typeof a.data=="string"&&i[a.data]()},!1)})()</script><style type="text/preview">.actions-toolbar:before,.actions-toolbar:after{content:"";display:table}.actions-toolbar:after{clear:both}.actions-toolbar .primary{float:left}.actions-toolbar .secondary{float:right}.actions-toolbar .primary,.actions-toolbar .secondary{display:inline-block}.actions-toolbar .primary a.action,.actions-toolbar .secondary a.action{display:inline-block}.actions-toolbar .primary .action{margin:0 5px 0 0}.actions-toolbar .secondary a.action{margin-top:6px}.example-actions-toolbar-1:before,.example-actions-toolbar-1:after{content:"";display:table}.example-actions-toolbar-1:after{clear:both}.example-actions-toolbar-1 .primary{float:left}.example-actions-toolbar-1 .secondary{float:right}.example-actions-toolbar-1 .primary,.example-actions-toolbar-1 .secondary{display:inline-block}.example-actions-toolbar-1 .primary a.action,.example-actions-toolbar-1 .secondary a.action{display:inline-block}.example-actions-toolbar-1 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-1 .secondary a.action{margin-top:6px}.example-actions-toolbar-1:before,.example-actions-toolbar-1:after{content:"";display:table}.example-actions-toolbar-1:after{clear:both}.example-actions-toolbar-1 .primary{float:left}.example-actions-toolbar-1 .secondary{float:right}.example-actions-toolbar-1 .primary,.example-actions-toolbar-1 .secondary{display:inline-block}.example-actions-toolbar-1 .primary a.action,.example-actions-toolbar-1 .secondary a.action{display:inline-block}.example-actions-toolbar-1 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-1 .secondary a.action{margin-top:6px}.example-actions-toolbar-2:before,.example-actions-toolbar-2:after{content:"";display:table}.example-actions-toolbar-2:after{clear:both}.example-actions-toolbar-2 .primary{float:left}.example-actions-toolbar-2 .secondary{float:right}.example-actions-toolbar-2 .primary,.example-actions-toolbar-2 .secondary{display:inline-block}.example-actions-toolbar-2 .primary a.action,.example-actions-toolbar-2 .secondary a.action{display:inline-block}.example-actions-toolbar-2 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-2 .secondary a.action{margin-top:6px}.example-actions-toolbar-3{text-align:left}.example-actions-toolbar-3:before,.example-actions-toolbar-3:after{content:"";display:table}.example-actions-toolbar-3:after{clear:both}.example-actions-toolbar-3 .primary{float:left}.example-actions-toolbar-3 .primary,.example-actions-toolbar-3 .secondary{display:inline-block}.example-actions-toolbar-3 .primary a.action,.example-actions-toolbar-3 .secondary a.action{display:inline-block}.example-actions-toolbar-3 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-3 .secondary a.action{margin-top:6px}.example-actions-toolbar-4{text-align:right}.example-actions-toolbar-4:before,.example-actions-toolbar-4:after{content:"";display:table}.example-actions-toolbar-4:after{clear:both}.example-actions-toolbar-4 .secondary{float:right}.example-actions-toolbar-4 .primary,.example-actions-toolbar-4 .secondary{display:inline-block}.example-actions-toolbar-4 .primary a.action,.example-actions-toolbar-4 .secondary a.action{display:inline-block}.example-actions-toolbar-4 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-4 .secondary a.action{margin-top:6px}.example-actions-toolbar-5{text-align:center}.example-actions-toolbar-5:before,.example-actions-toolbar-5:after{content:"";display:table}.example-actions-toolbar-5:after{clear:both}.example-actions-toolbar-5 .primary,.example-actions-toolbar-5 .secondary{vertical-align:top}.example-actions-toolbar-5 .primary,.example-actions-toolbar-5 .secondary{display:inline-block}.example-actions-toolbar-5 .primary a.action,.example-actions-toolbar-5 .secondary a.action{display:inline-block}.example-actions-toolbar-5 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-5 .secondary a.action{margin-top:6px}.example-actions-toolbar-6:before,.example-actions-toolbar-6:after{content:"";display:table}.example-actions-toolbar-6:after{clear:both}.example-actions-toolbar-6 .primary{float:right}.example-actions-toolbar-6 .secondary{float:left}.example-actions-toolbar-6 .primary,.example-actions-toolbar-6 .secondary{display:inline-block}.example-actions-toolbar-6 .primary a.action,.example-actions-toolbar-6 .secondary a.action{display:inline-block}.example-actions-toolbar-6 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-6 .secondary a.action{margin-top:6px}.example-actions-toolbar-7{text-align:left}.example-actions-toolbar-7:before,.example-actions-toolbar-7:after{content:"";display:table}.example-actions-toolbar-7:after{clear:both}.example-actions-toolbar-7 .secondary{float:left}.example-actions-toolbar-7 .primary,.example-actions-toolbar-7 .secondary{display:inline-block}.example-actions-toolbar-7 .primary a.action,.example-actions-toolbar-7 .secondary a.action{display:inline-block}.example-actions-toolbar-7 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-7 .secondary a.action{margin-top:6px}.example-actions-toolbar-8{text-align:right}.example-actions-toolbar-8:before,.example-actions-toolbar-8:after{content:"";display:table}.example-actions-toolbar-8:after{clear:both}.example-actions-toolbar-8 .primary{float:right}.example-actions-toolbar-8 .primary,.example-actions-toolbar-8 .secondary{display:inline-block}.example-actions-toolbar-8 .primary a.action,.example-actions-toolbar-8 .secondary a.action{display:inline-block}.example-actions-toolbar-8 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-8 .secondary a.action{margin-top:6px}.example-actions-toolbar-9{margin:10px;padding:10px}.example-actions-toolbar-9:before,.example-actions-toolbar-9:after{content:"";display:table}.example-actions-toolbar-9:after{clear:both}.example-actions-toolbar-9 .primary{float:left}.example-actions-toolbar-9 .secondary{float:right}.example-actions-toolbar-9 .primary,.example-actions-toolbar-9 .secondary{display:inline-block}.example-actions-toolbar-9 .primary a.action,.example-actions-toolbar-9 .secondary a.action{display:inline-block}.example-actions-toolbar-9 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-9 .secondary a.action{margin-top:6px}.example-actions-toolbar-10{text-align:left}.example-actions-toolbar-10:before,.example-actions-toolbar-10:after{content:"";display:table}.example-actions-toolbar-10:after{clear:both}.example-actions-toolbar-10 .primary{float:left}.example-actions-toolbar-10 .primary,.example-actions-toolbar-10 .secondary{display:inline-block}.example-actions-toolbar-10 .primary a.action,.example-actions-toolbar-10 .secondary a.action{display:inline-block}.example-actions-toolbar-10 .primary .action{margin:0 50px 0 0}.example-actions-toolbar-10 .secondary a.action{margin-top:6px}.example-actions-toolbar-11{text-align:left}.example-actions-toolbar-11:before,.example-actions-toolbar-11:after{content:"";display:table}.example-actions-toolbar-11:after{clear:both}.example-actions-toolbar-11 .primary{float:left}.example-actions-toolbar-11 .primary,.example-actions-toolbar-11 .secondary{display:inline-block}.example-actions-toolbar-11 .primary a.action,.example-actions-toolbar-11 .secondary a.action{display:inline-block}.example-actions-toolbar-11 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-11 .secondary .action{margin:0 50px 0 0}.example-actions-toolbar-11 .secondary a.action{margin-top:6px}.example-actions-toolbar-12:before,.example-actions-toolbar-12:after{content:"";display:table}.example-actions-toolbar-12:after{clear:both}.example-actions-toolbar-12 .primary{float:left}.example-actions-toolbar-12 .secondary{float:right}.example-actions-toolbar-12 .primary,.example-actions-toolbar-12 .secondary{display:inline-block}.example-actions-toolbar-12 .primary a.action,.example-actions-toolbar-12 .secondary a.action{display:inline-block}.example-actions-toolbar-12 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-12 .secondary a.action{margin-top:6px}.example-actions-toolbar-12:before,.example-actions-toolbar-12:after{content:"";display:table}.example-actions-toolbar-12:after{clear:both}.example-actions-toolbar-12 .primary{float:left}.example-actions-toolbar-12 .secondary{float:right}.example-actions-toolbar-12 .primary,.example-actions-toolbar-12 .secondary{display:inline-block}.example-actions-toolbar-12 .primary a.action,.example-actions-toolbar-12 .secondary a.action{display:inline-block}.example-actions-toolbar-12 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-12 .secondary a.action{margin-top:6px}@media only screen and (max-width: 768px){.example-actions-toolbar-12 .primary,.example-actions-toolbar-12 .secondary{ display:block;float:none}}.example-breadcrumbs-1{margin:0 0 20px}.example-breadcrumbs-1 .items{font-size:1.2rem;color:#a3a3a3;margin:0;padding:0;list-style:none none}.example-breadcrumbs-1 .items>li{display:inline-block;vertical-align:top}.example-breadcrumbs-1 .item{margin:0}.example-breadcrumbs-1 a{color:#333;text-decoration:none}.example-breadcrumbs-1 a:visited{color:#333;text-decoration:none}.example-breadcrumbs-1 a:hover{color:#333;text-decoration:underline}.example-breadcrumbs-1 a:active{color:#333;text-decoration:none}.example-breadcrumbs-1 strong{font-weight:400}.example-breadcrumbs-1 .item:not(:last-child){display:inline-block;text-decoration:none}.example-breadcrumbs-1 .item:not(:last-child):after{font-family:'icons-blank-theme';content:'\e608';font-size:24px;line-height:18px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-breadcrumbs-2{margin:0 0 20px}.example-breadcrumbs-2 .items{font-size:1.2rem;color:#1979c3;margin:0;padding:0;list-style:none none}.example-breadcrumbs-2 .items>li{display:inline-block;vertical-align:top}.example-breadcrumbs-2 .item{margin:0}.example-breadcrumbs-2 a{background-color:#ccc;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #f4f4f4 0, #ccc 100%);background-image:linear-gradient(to bottom, #f4f4f4 0, #ccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f4f4', endColorstr='#cccccc', GradientType=0);border:1px solid #ccc;display:inline-block;padding:3px 5px;color:#333;text-decoration:none}.example-breadcrumbs-2 a:visited{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#333;text-decoration:none}.example-breadcrumbs-2 a:hover{background-color:#f4f4f4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #ccc 0, #f4f4f4 100%);background-image:linear-gradient(to bottom, #ccc 0, #f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#f4f4f4', GradientType=0);color:#333;text-decoration:none}.example-breadcrumbs-2 a:active{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#333;text-decoration:none}.example-breadcrumbs-2 strong{background-color:#ff5501;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #f7b32e 0, #ff5501 100%);background-image:linear-gradient(to bottom, #f7b32e 0, #ff5501 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7b32e', endColorstr='#ff5501', GradientType=0);border:1px solid #d04b0a;display:inline-block;padding:3px 5px;font-weight:400}.example-breadcrumbs-2 .item:not(:last-child){display:inline-block;text-decoration:none}.example-breadcrumbs-2 .item:not(:last-child):after{font-family:'icons-blank-theme';content:'\e608';font-size:24px;line-height:18px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-breadcrumbs-3{margin:0 0 20px}.example-breadcrumbs-3 .items{font-size:1.2rem;color:#333;margin:0;padding:0;list-style:none none}.example-breadcrumbs-3 .items>li{display:inline-block;vertical-align:top}.example-breadcrumbs-3 .item{margin:0}.example-breadcrumbs-3 a{background:#f4f4f4;display:inline-block;padding:3px 5px;color:#333;text-decoration:none}.example-breadcrumbs-3 a:visited{color:#333;text-decoration:none}.example-breadcrumbs-3 a:hover{background:#ccc;color:#333;text-decoration:none}.example-breadcrumbs-3 a:active{color:#333;text-decoration:none}.example-breadcrumbs-3 strong{background:#e7e7e7;display:inline-block;padding:3px 5px;font-weight:400}.example-breadcrumbs-3 .item:not(:last-child){display:inline-block;text-decoration:none}.example-breadcrumbs-3 .item:not(:last-child):after{font-family:'icons-blank-theme';content:'\e608';font-size:24px;line-height:18px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-breadcrumbs-3 .item a{position:relative;margin:0 11px 0 0}.example-breadcrumbs-3 .item a:after{border:12px solid transparent;height:0;width:0;border-left-color:#f4f4f4;content:"";position:absolute;display:block;top:0;right:-23px}.example-breadcrumbs-3 .item a:hover:after{border-color:transparent transparent transparent #ccc}button{background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;border-radius:3px}button:focus,button:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}button:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}button.disabled,button[disabled],fieldset[disabled] button{cursor:default;pointer-events:none;opacity:.5}button:active,button:focus{box-shadow:inset 0 2px 1px rgba(0,0,0,.12)}.example-button-1.example-button-2{line-height:2.2rem;padding:14px 17px;font-size:1.8rem}.example-button-1.example-button-3{line-height:1.2rem;padding:5px 8px;font-size:1.1rem;border-radius:0;color:#000}.example-button-1.example-button-3:hover,.example-button-1.example-button-3.active{color:#000}.example-button-10{background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400}.example-button-10>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-button-10:before{font-family:'icons-blank-theme';content:'\e611';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-button-10:hover:before{color:inherit}.example-button-10:active:before{color:inherit}.example-button-10:focus,.example-button-10:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-10:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-10.disabled,.example-button-10[disabled],fieldset[disabled] .example-button-10{cursor:default;pointer-events:none;opacity:.5}.example-button-10:focus,.example-button-10:active{background:0;border:0}.example-button-10:hover{background:0;border:0}.example-button-10.disabled,.example-button-10[disabled],fieldset[disabled] .example-button-10{cursor:not-allowed;pointer-events:none;opacity:.5}.example-button-11{background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;display:inline-block;text-decoration:none}.example-button-11:before{font-family:'icons-blank-theme';content:'\e611';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-button-11:hover:before{color:inherit}.example-button-11:active:before{color:inherit}.example-button-11:focus,.example-button-11:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-11:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-11.disabled,.example-button-11[disabled],fieldset[disabled] .example-button-11{cursor:default;pointer-events:none;opacity:.5}.example-button-12{background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;display:inline-block;text-decoration:none}.example-button-12:after{font-family:'icons-blank-theme';content:'\e611';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-button-12:hover:after{color:inherit}.example-button-12:active:after{color:inherit}.example-button-12:focus,.example-button-12:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-12:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-12.disabled,.example-button-12[disabled],fieldset[disabled] .example-button-12{cursor:default;pointer-events:none;opacity:.5}.example-button-13{background-image:none;background:#f2f2f2;padding:7px 15px;width:100px;color:#333;border:1px solid #cdcdcd;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle}.example-button-13:focus,.example-button-13:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-13:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-13.disabled,.example-button-13[disabled],fieldset[disabled] .example-button-13{cursor:default;pointer-events:none;opacity:.5}.example-button-4{background-image:none;background:#1979c3;padding:7px 15px;color:#fff;border:1px solid #1979c3;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;box-sizing:border-box;margin:3px;vertical-align:middle}.example-button-4:focus,.example-button-4:active{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-4:hover{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-4.disabled,.example-button-4[disabled],fieldset[disabled] .example-button-4{cursor:default;pointer-events:none;opacity:.5}.example-button-4:active{box-shadow:inset 0 3px 1px rgba(0,0,0,.29)}.example-button-4.example-button-5{line-height:2.2rem;padding:7px 35px;font-size:1.8rem}.example-button-4.example-button-6{line-height:1.2rem;padding:5px 8px;font-size:1.1rem;color:#fff}.example-button-4.example-button-6:hover,.example-button-4.example-button-6.active{color:#fff}.example-button-7{background-image:none;background:#f2f2f2;background-color:#006bb4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #1979c3 0, #006bb4 100%);background-image:linear-gradient(to bottom, #1979c3 0, #006bb4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1979c3', endColorstr='#006bb4', GradientType=0);padding:7px 15px;color:#fff;border:1px solid #1979c3;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;border-radius:3px}.example-button-7:focus,.example-button-7:active{background:#e2e2e2;background-color:#006bb4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #006bb4 0, #006bb4 100%);background-image:linear-gradient(to bottom, #006bb4 0, #006bb4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006bb4', endColorstr='#006bb4', GradientType=0);border:1px solid #006bb4;color:#fff}.example-button-7:hover{background:#e2e2e2;background-color:#1979c3;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #006bb4 0, #1979c3 100%);background-image:linear-gradient(to bottom, #006bb4 0, #1979c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006bb4', endColorstr='#1979c3', GradientType=0);border:1px solid #006bb4;color:#fff}.example-button-7.disabled,.example-button-7[disabled],fieldset[disabled] .example-button-7{cursor:default;pointer-events:none;opacity:.5}.example-button-7:active{box-shadow:inset 0 3px 1px rgba(0,0,0,.29)}.example-button-8{background:0;border:0;display:inline;line-height:1.42857143;margin:0;padding:0;color:#1979c3;text-decoration:none;font-weight:400}.example-button-8:visited{color:#1979c3;text-decoration:none}.example-button-8:hover{color:#006bb4;text-decoration:underline}.example-button-8:active{color:#ff5501;text-decoration:underline}.example-button-8:hover{color:#006bb4}.example-button-8:hover,.example-button-8:active,.example-button-8:focus{background:0;border:0}.example-button-8.disabled,.example-button-8[disabled],fieldset[disabled] .example-button-8{color:#1979c3;text-decoration:underline;cursor:default;pointer-events:none;opacity:.5}.example-button-8:active{box-shadow:none}.example-button-9{text-decoration:none;background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:0;vertical-align:middle;margin:3px;border-radius:3px;font-weight:700}.example-button-9:hover,.example-button-9:active,.example-button-9:focus{text-decoration:none}.example-button-9:focus,.example-button-9:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-9:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-9.disabled,.example-button-9[disabled],fieldset[disabled] .example-button-9{cursor:default;pointer-events:none;opacity:.5}.example-button-9:active{box-shadow:inset 0 3px 1px rgba(0,0,0,.29)}.example-button-14{background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400}.example-button-14:focus,.example-button-14:active{background:0;border:0}.example-button-14:hover{background:0;border:0}.example-button-14.disabled,.example-button-14[disabled],fieldset[disabled] .example-button-14{cursor:not-allowed;pointer-events:none;opacity:.5}.example-button-15{background-image:none;background:#1979c3;padding:7px 15px;color:#fff;border:1px solid #1979c3;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;box-sizing:border-box;vertical-align:middle;background:#f2f2f2;color:#333;border:1px solid #cdcdcd}.example-button-15:focus,.example-button-15:active{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-15:hover{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-15.disabled,.example-button-15[disabled],fieldset[disabled] .example-button-15{cursor:default;pointer-events:none;opacity:.5}.example-button-15:focus,.example-button-15:active{background:#e2e2e2;color:#333;border:1px solid #cdcdcd}.example-button-15:hover{background:#e2e2e2;color:#555;border:1px solid #cdcdcd}.example-button-17{line-height:2.2rem;padding:14px 17px;font-size:1.8rem;font-size:1.4rem;line-height:1.6rem;padding:7px 15px}.example-button-18{font-size:1rem;line-height:1.2rem;padding:4px 10px}.example-dropdown-1{display:inline-block;position:relative}.example-dropdown-1:before,.example-dropdown-1:after{content:"";display:table}.example-dropdown-1:after{clear:both}.example-dropdown-1 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-1 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-1 .action.toggle:hover:after{color:inherit}.example-dropdown-1 .action.toggle:active:after{color:inherit}.example-dropdown-1 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-1 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-1 .action.toggle.active:hover:after{color:inherit}.example-dropdown-1 .action.toggle.active:active:after{color:inherit}.example-dropdown-1 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-1 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-1 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-1 ul.dropdown:before,.example-dropdown-1 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-1 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-1 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-1 ul.dropdown:before{top:-12px;left:10px}.example-dropdown-1 ul.dropdown:after{top:-14px;left:9px}.example-dropdown-1.active{overflow:visible}.example-dropdown-1.active ul.dropdown{display:block}.example-dropdown-2{display:inline-block;position:relative}.example-dropdown-2:before,.example-dropdown-2:after{content:"";display:table}.example-dropdown-2:after{clear:both}.example-dropdown-2 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-2 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-2 .action.toggle:hover:after{color:inherit}.example-dropdown-2 .action.toggle:active:after{color:inherit}.example-dropdown-2 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-2 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-2 .action.toggle.active:hover:after{color:inherit}.example-dropdown-2 .action.toggle.active:active:after{color:inherit}.example-dropdown-2 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-2 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-2 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-2 ul.dropdown:before,.example-dropdown-2 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-2 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-2 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-2 ul.dropdown:before{top:-12px;left:10px}.example-dropdown-2 ul.dropdown:after{top:-14px;left:9px}.example-dropdown-2.active{overflow:visible}.example-dropdown-2.active ul.dropdown{display:block}.example-dropdown-3{display:inline-block;position:relative}.example-dropdown-3:before,.example-dropdown-3:after{content:"";display:table}.example-dropdown-3:after{clear:both}.example-dropdown-3 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-3 .action.toggle:before{font-family:'icons-blank-theme';content:'\e61c';font-size:22px;line-height:1;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-3 .action.toggle:hover:before{color:red}.example-dropdown-3 .action.toggle:active:before{color:inherit}.example-dropdown-3 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-3 .action.toggle.active:before{font-family:'icons-blank-theme';content:'\e60f';font-size:22px;line-height:1;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-3 .action.toggle.active:hover:before{color:red}.example-dropdown-3 .action.toggle.active:active:before{color:inherit}.example-dropdown-3 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-3 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-3 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-3 ul.dropdown:before,.example-dropdown-3 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-3 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-3 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-3 ul.dropdown:before{top:-12px;left:10px}.example-dropdown-3 ul.dropdown:after{top:-14px;left:9px}.example-dropdown-3.active{overflow:visible}.example-dropdown-3.active ul.dropdown{display:block}.example-dropdown-5{display:inline-block;position:relative}.example-dropdown-5:before,.example-dropdown-5:after{content:"";display:table}.example-dropdown-5:after{clear:both}.example-dropdown-5 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-5 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:1;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-5 .action.toggle:hover:after{color:inherit}.example-dropdown-5 .action.toggle:active:after{color:inherit}.example-dropdown-5 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-5 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:1;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-5 .action.toggle.active:hover:after{color:inherit}.example-dropdown-5 .action.toggle.active:active:after{color:inherit}.example-dropdown-5 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#eef1f3;border:2px solid #ced1d4;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none}.example-dropdown-5 ul.dropdown li{margin:0;padding:10px;border-top:2px solid #e8eaed}.example-dropdown-5 ul.dropdown li:first-child{border:0}.example-dropdown-5 ul.dropdown li:hover{background:#d8e3e3;cursor:pointer}.example-dropdown-5.active{overflow:visible}.example-dropdown-5.active ul.dropdown{display:block}.example-dropdown-6{display:inline-block;position:relative}.example-dropdown-6:before,.example-dropdown-6:after{content:"";display:table}.example-dropdown-6:after{clear:both}.example-dropdown-6 .action.split{float:left;margin:0}.example-dropdown-6 .action.toggle{float:right;margin:0}.example-dropdown-6 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-6 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-6 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-6 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-6 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-6 .action.toggle:hover:after{color:inherit}.example-dropdown-6 .action.toggle:active:after{color:inherit}.example-dropdown-6 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-6 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-6 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-6 .action.toggle.active:hover:after{color:inherit}.example-dropdown-6 .action.toggle.active:active:after{color:inherit}.example-dropdown-6 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-6 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-6 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-6 ul.dropdown:before,.example-dropdown-6 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-6 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-6 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-6 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-6 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-6.active{overflow:visible}.example-dropdown-6.active ul.dropdown{display:block}.split.example-dropdown-7{display:inline-block;position:relative}.split.example-dropdown-7:before,.split.example-dropdown-7:after{content:"";display:table}.split.example-dropdown-7:after{clear:both}.split.example-dropdown-7 .action.split{float:left;margin:0}.split.example-dropdown-7 .action.toggle{float:right;margin:0}.split.example-dropdown-7 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.split.example-dropdown-7 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.split.example-dropdown-7 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.split.example-dropdown-7 .action.toggle:hover:after{color:inherit}.split.example-dropdown-7 .action.toggle:active:after{color:inherit}.split.example-dropdown-7 .action.toggle.active{display:inline-block;text-decoration:none}.split.example-dropdown-7 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.split.example-dropdown-7 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.split.example-dropdown-7 .action.toggle.active:hover:after{color:inherit}.split.example-dropdown-7 .action.toggle.active:active:after{color:inherit}.split.example-dropdown-7 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.split.example-dropdown-7 ul.dropdown li{margin:0;padding:3px 5px}.split.example-dropdown-7 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.split.example-dropdown-7 ul.dropdown:before,.split.example-dropdown-7 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.split.example-dropdown-7 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.split.example-dropdown-7 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.split.example-dropdown-7 ul.dropdown:before{top:-12px;right:10px}.split.example-dropdown-7 ul.dropdown:after{top:-14px;right:9px}.split.example-dropdown-7.active{overflow:visible}.split.example-dropdown-7.active ul.dropdown{display:block}.example-dropdown-8{display:inline-block;position:relative}.example-dropdown-8:before,.example-dropdown-8:after{content:"";display:table}.example-dropdown-8:after{clear:both}.example-dropdown-8 .action.split{float:left;margin:0}.example-dropdown-8 .action.toggle{float:right;margin:0}.example-dropdown-8 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-8 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-8 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-8 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-8 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-8 .action.toggle:hover:after{color:inherit}.example-dropdown-8 .action.toggle:active:after{color:inherit}.example-dropdown-8 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-8 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-8 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-8 .action.toggle.active:hover:after{color:inherit}.example-dropdown-8 .action.toggle.active:active:after{color:inherit}.example-dropdown-8 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-8 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-8 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-8 ul.dropdown:before,.example-dropdown-8 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-8 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-8 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-8 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-8 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-8.active{overflow:visible}.example-dropdown-8.active ul.dropdown{display:block}.example-dropdown-9{display:inline-block;position:relative}.example-dropdown-9 .action.split,.example-dropdown-9 .action.toggle{line-height:2.2rem;padding:14px 17px;font-size:1.8rem}.example-dropdown-9:before,.example-dropdown-9:after{content:"";display:table}.example-dropdown-9:after{clear:both}.example-dropdown-9 .action.split{float:left;margin:0}.example-dropdown-9 .action.toggle{float:right;margin:0}.example-dropdown-9 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-9 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-9 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-9 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-9 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-9 .action.toggle:hover:after{color:inherit}.example-dropdown-9 .action.toggle:active:after{color:inherit}.example-dropdown-9 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-9 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-9 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-9 .action.toggle.active:hover:after{color:inherit}.example-dropdown-9 .action.toggle.active:active:after{color:inherit}.example-dropdown-9 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-9 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-9 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-9 ul.dropdown:before,.example-dropdown-9 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-9 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-9 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-9 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-9 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-9.active{overflow:visible}.example-dropdown-9.active ul.dropdown{display:block}.example-dropdown-10{display:inline-block;position:relative}.example-dropdown-10 .action.split,.example-dropdown-10 .action.toggle{line-height:1.2rem;padding:5px 8px;font-size:1.1rem}.example-dropdown-10:before,.example-dropdown-10:after{content:"";display:table}.example-dropdown-10:after{clear:both}.example-dropdown-10 .action.split{float:left;margin:0}.example-dropdown-10 .action.toggle{float:right;margin:0}.example-dropdown-10 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-10 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-10 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-10 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-10 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-10 .action.toggle:hover:after{color:inherit}.example-dropdown-10 .action.toggle:active:after{color:inherit}.example-dropdown-10 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-10 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-10 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-10 .action.toggle.active:hover:after{color:inherit}.example-dropdown-10 .action.toggle.active:active:after{color:inherit}.example-dropdown-10 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-10 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-10 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-10 ul.dropdown:before,.example-dropdown-10 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-10 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-10 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-10 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-10 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-10.active{overflow:visible}.example-dropdown-10.active ul.dropdown{display:block}.example-dropdown-11{display:inline-block;position:relative}.example-dropdown-11:before,.example-dropdown-11:after{content:"";display:table}.example-dropdown-11:after{clear:both}.example-dropdown-11 .action.split{float:right;margin:0}.example-dropdown-11 .action.toggle{float:left;margin:0}.example-dropdown-11 button.action.split{border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-11 button+.action.toggle{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-11 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-11 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-11 .action.toggle:before{font-family:'icons-blank-theme';content:'\e61c';font-size:22px;line-height:22px;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-11 .action.toggle:hover:before{color:red}.example-dropdown-11 .action.toggle:active:before{color:inherit}.example-dropdown-11 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-11 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-11 .action.toggle.active:before{font-family:'icons-blank-theme';content:'\e60f';font-size:22px;line-height:22px;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-11 .action.toggle.active:hover:before{color:red}.example-dropdown-11 .action.toggle.active:active:before{color:inherit}.example-dropdown-11 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-11 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-11 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-11 ul.dropdown:before,.example-dropdown-11 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-11 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-11 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-11 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-11 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-11.active{overflow:visible}.example-dropdown-11.active ul.dropdown{display:block}.example-dropdown-12{display:inline-block;position:relative}.example-dropdown-12:before,.example-dropdown-12:after{content:"";display:table}.example-dropdown-12:after{clear:both}.example-dropdown-12 .action.split{float:left;margin:0}.example-dropdown-12 .action.toggle{float:right;margin:0}.example-dropdown-12 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-12 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-12 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-12 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-12 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-12 .action.toggle:hover:after{color:inherit}.example-dropdown-12 .action.toggle:active:after{color:inherit}.example-dropdown-12 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-12 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-12 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-12 .action.toggle.active:hover:after{color:inherit}.example-dropdown-12 .action.toggle.active:active:after{color:inherit}.example-dropdown-12 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#eef1f3;border:2px solid #ced1d4;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none}.example-dropdown-12 ul.dropdown li{margin:0;padding:10px;border-top:2px solid #e8eaed}.example-dropdown-12 ul.dropdown li:first-child{border:0}.example-dropdown-12 ul.dropdown li:hover{background:#d8e3e3;cursor:pointer}.example-dropdown-12.active{overflow:visible}.example-dropdown-12.active ul.dropdown{display:block}.example-form-1 .example-form-1-fieldset{padding:0;margin:0 0 40px;border:0;letter-spacing:-.31em}.example-form-1 .example-form-1-fieldset>*{letter-spacing:normal}.example-form-1 .example-form-1-fieldset>.legend{margin:0 0 25px;padding:0;font-size:2rem;line-height:1.2;box-sizing:border-box;float:left}.example-form-1 .example-form-1-fieldset>.legend+br{display:block;visibility:hidden;height:0;overflow:hidden;clear:both}.example-form-1 .example-form-1-fieldset:after{content:attr(data-hasrequired);display:block;font-size:1.2rem;color:#e02b27;margin:10px 0 0;letter-spacing:normal;word-spacing:normal}.example-form-1 .example-form-1-fieldset>.field{margin:0 0 20px}.example-form-1 .example-form-1-fieldset>.field>.label{display:inline-block;margin:0 0 5px}.example-form-1 .example-form-1-fieldset>.field:last-child{margin-bottom:0}.example-form-1 .example-form-1-fieldset>.field>.label{font-weight:700}.example-form-1 .example-form-1-fieldset>.field>.label+br{display:none}.example-form-1 .example-form-1-fieldset>.field .choice input{vertical-align:top}.example-form-1 .example-form-1-fieldset>.field .fields.group:before,.example-form-1 .example-form-1-fieldset>.field .fields.group:after{content:"";display:table}.example-form-1 .example-form-1-fieldset>.field .fields.group:after{clear:both}.example-form-1 .example-form-1-fieldset>.field .fields.group .field{box-sizing:border-box;float:left}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-2 .field{width:50%!important}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-3 .field{width:33.3%!important}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-4 .field{width:25%!important}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-5 .field{width:20%!important}.example-form-1 .example-form-1-fieldset>.field .addon{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;padding:0;width:100%}.example-form-1 .example-form-1-fieldset>.field .addon textarea,.example-form-1 .example-form-1-fieldset>.field .addon select,.example-form-1 .example-form-1-fieldset>.field .addon input{-ms-flex-order:2;-webkit-order:2;order:2;-webkit-flex-basis:100%;flex-basis:100%;box-shadow:none;display:inline-block;margin:0;width:auto}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore,.example-form-1 .example-form-1-fieldset>.field .addon .addafter{-ms-flex-order:3;-webkit-order:3;order:3;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:0 9px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;width:auto;white-space:nowrap;vertical-align:middle}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore:disabled,.example-form-1 .example-form-1-fieldset>.field .addon .addafter:disabled{opacity:.5}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore::-moz-placeholder,.example-form-1 .example-form-1-fieldset>.field .addon .addafter::-moz-placeholder{color:#c2c2c2}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore::-webkit-input-placeholder,.example-form-1 .example-form-1-fieldset>.field .addon .addafter::-webkit-input-placeholder{color:#c2c2c2}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore:-ms-input-placeholder,.example-form-1 .example-form-1-fieldset>.field .addon .addafter:-ms-input-placeholder{color:#c2c2c2}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore{float:left;-ms-flex-order:1;-webkit-order:1;order:1}.example-form-1 .example-form-1-fieldset>.field .additional{margin-top:10px}.example-form-1 .example-form-1-fieldset>.field.required>.label:after{content:'*';font-size:1.2rem;color:#e02b27;margin:0 0 0 5px}.example-form-1 .example-form-1-fieldset>.field .note{font-size:1.2rem;margin:3px 0 0;padding:0;display:inline-block;text-decoration:none}.example-form-1 .example-form-1-fieldset>.field .note:before{font-family:'icons-blank-theme';content:'\e618';font-size:24px;line-height:12px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-form-2 .example-form-2-fieldset{padding:0;margin:0 0 40px;border:0;letter-spacing:-.31em}.example-form-2 .example-form-2-fieldset>*{letter-spacing:normal}.example-form-2 .example-form-2-fieldset>.legend{margin:0 0 25px;padding:0;font-size:2rem;line-height:1.2;box-sizing:border-box;float:left}.example-form-2 .example-form-2-fieldset>.legend+br{display:block;visibility:hidden;height:0;overflow:hidden;clear:both}.example-form-2 .example-form-2-fieldset>.field{margin:0 0 20px;box-sizing:border-box;display:inline-block;padding:0 12px 0 0;width:50%;vertical-align:top}.example-form-2 .example-form-2-fieldset>.field>.label{display:inline-block;margin:0 0 5px}.example-form-2 .example-form-2-fieldset>.field:last-child{margin-bottom:0}.example-form-2 .example-form-2-fieldset>.field+.fieldset{clear:both}.example-form-2 .example-form-2-fieldset>.field>.label{font-weight:700}.example-form-2 .example-form-2-fieldset>.field>.label+br{display:none}.example-form-2 .example-form-2-fieldset>.field .choice input{vertical-align:top}.example-form-2 .example-form-2-fieldset>.field .fields.group:before,.example-form-2 .example-form-2-fieldset>.field .fields.group:after{content:"";display:table}.example-form-2 .example-form-2-fieldset>.field .fields.group:after{clear:both}.example-form-2 .example-form-2-fieldset>.field .fields.group .field{box-sizing:border-box;float:left}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-2 .field{width:50%!important}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-3 .field{width:33.3%!important}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-4 .field{width:25%!important}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-5 .field{width:20%!important}.example-form-2 .example-form-2-fieldset>.field .addon{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;padding:0;width:100%}.example-form-2 .example-form-2-fieldset>.field .addon textarea,.example-form-2 .example-form-2-fieldset>.field .addon select,.example-form-2 .example-form-2-fieldset>.field .addon input{-ms-flex-order:2;-webkit-order:2;order:2;-webkit-flex-basis:100%;flex-basis:100%;box-shadow:none;display:inline-block;margin:0;width:auto}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore,.example-form-2 .example-form-2-fieldset>.field .addon .addafter{-ms-flex-order:3;-webkit-order:3;order:3;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:0 9px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;width:auto;white-space:nowrap;vertical-align:middle}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore:disabled,.example-form-2 .example-form-2-fieldset>.field .addon .addafter:disabled{opacity:.5}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore::-moz-placeholder,.example-form-2 .example-form-2-fieldset>.field .addon .addafter::-moz-placeholder{color:#c2c2c2}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore::-webkit-input-placeholder,.example-form-2 .example-form-2-fieldset>.field .addon .addafter::-webkit-input-placeholder{color:#c2c2c2}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore:-ms-input-placeholder,.example-form-2 .example-form-2-fieldset>.field .addon .addafter:-ms-input-placeholder{color:#c2c2c2}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore{float:left;-ms-flex-order:1;-webkit-order:1;order:1}.example-form-2 .example-form-2-fieldset>.field .additional{margin-top:10px}.example-form-2 .example-form-2-fieldset>.field.required>.label:after{content:'*';font-size:1.2rem;color:#e02b27;margin:0 0 0 5px}.example-form-2 .example-form-2-fieldset>.field .note{font-size:1.2rem;margin:3px 0 0;padding:0;display:inline-block;text-decoration:none}.example-form-2 .example-form-2-fieldset>.field .note:before{font-family:'icons-blank-theme';content:'\e618';font-size:24px;line-height:12px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}input[type="text"],input[type="password"],input[type="url"],input[type="tel"],input[type="search"],input[type="number"],input[type="datetime"],input[type="email"]{box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:0 9px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;margin-bottom:20px}input[type="text"]:disabled,input[type="password"]:disabled,input[type="url"]:disabled,input[type="tel"]:disabled,input[type="search"]:disabled,input[type="number"]:disabled,input[type="datetime"]:disabled,input[type="email"]:disabled{opacity:.5}input[type="text"]::-moz-placeholder,input[type="password"]::-moz-placeholder,input[type="url"]::-moz-placeholder,input[type="tel"]::-moz-placeholder,input[type="search"]::-moz-placeholder,input[type="number"]::-moz-placeholder,input[type="datetime"]::-moz-placeholder,input[type="email"]::-moz-placeholder{color:#c2c2c2}input[type="text"]::-webkit-input-placeholder,input[type="password"]::-webkit-input-placeholder,input[type="url"]::-webkit-input-placeholder,input[type="tel"]::-webkit-input-placeholder,input[type="search"]::-webkit-input-placeholder,input[type="number"]::-webkit-input-placeholder,input[type="datetime"]::-webkit-input-placeholder,input[type="email"]::-webkit-input-placeholder{color:#c2c2c2}input[type="text"]:-ms-input-placeholder,input[type="password"]:-ms-input-placeholder,input[type="url"]:-ms-input-placeholder,input[type="tel"]:-ms-input-placeholder,input[type="search"]:-ms-input-placeholder,input[type="number"]:-ms-input-placeholder,input[type="datetime"]:-ms-input-placeholder,input[type="email"]:-ms-input-placeholder{color:#c2c2c2}select{box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:5px 10px 4px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;margin-bottom:20px}select:disabled{opacity:.5}select[multiple="multiple"]{height:auto;margin-bottom:20px}textarea{box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:auto;width:100%;padding:10px;margin:0;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;resize:vertical}textarea:disabled{opacity:.5}textarea::-moz-placeholder{color:#c2c2c2}textarea::-webkit-input-placeholder{color:#c2c2c2}textarea:-ms-input-placeholder{color:#c2c2c2}input[type="checkbox"]{margin:2px 5px 0 0}input[type="checkbox"]:disabled{opacity:.5}input[type="radio"]{margin:2px 5px 0 0}input[type="radio"]:disabled{opacity:.5}input.text-example-1,select.select-example-1,textarea.textarea-example-1{background:#fdf0d5;border-color:#fc0;color:#b30000}input.text-example-1:focus,select.select-example-1:focus,textarea.textarea-example-1:focus{border-color:#cff;color:#060}input.text-example-1:disabled,select.select-example-1:disabled,textarea.textarea-example-1:disabled{color:#fcc}input.text-example-1::-moz-placeholder,textarea.textarea-example-1::-moz-placeholder{color:#ccc}input.text-example-1::-webkit-input-placeholder,textarea.textarea-example-1::-webkit-input-placeholder{color:#ccc}input.text-example-1:-ms-input-placeholder,textarea.textarea-example-1:-ms-input-placeholder{color:#ccc}.number-example{-moz-appearance:textfield}.number-example::-webkit-inner-spin-button,.number-example::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.search-example{-webkit-appearance:none}.search-example::-webkit-search-cancel-button,.search-example::-webkit-search-decoration,.search-example::-webkit-search-results-button,.search-example::-webkit-search-results-decoration{-webkit-appearance:none}input,textarea,select{font-size:1.2rem;color:#e02b27}.example-icon-1{display:inline-block}.example-icon-1:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-2{display:inline-block}.example-icon-2:after{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat -26px 0}.example-icon-3{display:inline-block}.example-icon-3>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-icon-3:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat -156px -52px}.example-icon-4{display:inline-block;text-decoration:none}.example-icon-4:before{font-family:'icons-blank-theme';content:'\e606';font-size:24px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-5{display:inline-block;text-decoration:none}.example-icon-5:after{font-family:'icons-blank-theme';content:'\e605';font-size:24px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-6{display:inline-block;text-decoration:none}.example-icon-6>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-icon-6:before{font-family:'icons-blank-theme';content:'\e61b';font-size:24px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-7{display:inline-block}.example-icon-7:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-8{display:inline-block}.example-icon-8:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-8:before{background-position:-182px 0}.example-icon-9{display:inline-block}.example-icon-9:after{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-9:after{background-position:-52px -26px}.example-icon-10{display:inline-block}.example-icon-10:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-10:before{background-position:-104px 0}.example-icon-11{display:inline-block}.example-icon-11:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-11:before{width:30px;height:30px}.example-icon-11:after{width:30px;height:30px}.example-icon-11:before{background-color:#f1f1f1}.example-icon-12{display:inline-block;text-decoration:none}.example-icon-12:before{font-family:'icons-blank-theme';content:'\e612';font-size:28px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-13{display:inline-block;text-decoration:none}.example-icon-13:before{font-family:'icons-blank-theme';content:'\e612';font-size:inherit;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-13:before{font-size:26px;line-height:inherit}.example-icon-14{display:inline-block;text-decoration:none}.example-icon-14:before{font-family:'icons-blank-theme';content:'\e61d';font-size:26px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-14>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.icons-image-list{list-style:none;padding:0}.icons-image-list li{float:left;width:33%}.icons-image-list li>span{display:inline-block}.icons-image-list li>span:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.icons-image-list li .icon-search:before{background-position:0 0}.icons-image-list li .icon-cart:before{background-position:-26px 0}.icons-image-list li .icon-arrow-down:before{background-position:-52px 0}.icons-image-list li .icon-arrow-up:before{background-position:-78px 0}.icons-image-list li .icon-grid:before{background-position:-104px 0}.icons-image-list li .icon-list:before{background-position:-130px 0}.icons-image-list li .icon-remove:before{background-position:-156px 0}.icons-image-list li .icon-star:before{background-position:-182px 0}.icons-image-list li .icon-pointer-down:before{background-position:-208px 0}.icons-image-list li .icon-pointer-up:before{background-position:-234px 0}.icons-image-list li .icon-pointer-left:before{background-position:-260px 0}.icons-image-list li .icon-pointer-right:before{background-position:-286px 0}.icons-image-list li .icon-compare-empty:before{background-position:0 -26px}.icons-image-list li .icon-compare-full:before{background-position:-26px -26px}.icons-image-list li .icon-wishlist-empty:before{background-position:-52px -26px}.icons-image-list li .icon-wishlist-full:before{background-position:-78px -26px}.icons-image-list li .icon-update:before{background-position:-104px -26px}.icons-image-list li .icon-collapse:before{background-position:-130px -26px}.icons-image-list li .icon-expand:before{background-position:-156px -26px}.icons-image-list li .icon-menu:before{background-position:-182px -26px}.icons-image-list li .icon-prev:before{background-position:-208px -26px}.icons-image-list li .icon-next:before{background-position:-234px -26px}.icons-image-list li .icon-settings:before{background-position:-260px -26px}.icons-image-list li .icon-info:before{background-position:-286px -26px}.icons-image-list li .icon-checkmark:before{background-position:0 -52px}.icons-image-list li .icon-calendar:before{background-position:-26px -52px}.icons-image-list li .icon-comment:before{background-position:-52px -52px}.icons-image-list li .icon-comment-reflected:before{background-position:-78px -52px}.icons-image-list li .icon-envelope:before{background-position:-104px -52px}.icons-image-list li .icon-warning:before{background-position:-130px -52px}.icons-image-list li .icon-trash:before{background-position:-156px -52px}.icons-image-list li .icon-flag:before{background-position:-182px -52px}.icons-image-list li .icon-location:before{background-position:-208px -52px}.icons-image-list li .icon-up:before{background-position:-234px -52px}.icons-image-list li .icon-down:before{background-position:-260px -52px}.icons-font-list{list-style:none;padding:0}.icons-font-list li{float:left;width:25%;margin-bottom:35px;text-align:center}.icons-font-list li>span{display:inline-block;text-decoration:none}.icons-font-list li>span:before{font-family:'icons-blank-theme';font-size:34px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.icons-font-list li>span:before{content:attr(data-icon);margin:0 auto;display:block}.loader{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,.5);z-index:9999}.loader:before{border-radius:5px;background:transparent url('/pub/static/frontend/Magento/blank/en_US/images/loader-2.gif') no-repeat 50% 50%;box-sizing:border-box;content:'';position:absolute;top:0;right:0;left:0;bottom:0;margin:auto;width:160px;height:160px}.loading{position:relative}.loading:before{content:'';position:absolute;left:0;top:0;right:0;bottom:0;background:rgba(255,255,255,.5) url('/pub/static/frontend/Magento/blank/en_US/images/loader-2.gif') no-repeat 50% 50%}.example-message-info{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400}.example-message-info a{color:#1979c3}.example-message-info a:hover{color:#006bb4}.example-message-info a:active{color:#006bb4}.example-message-warning{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400}.example-message-warning a{color:#1979c3}.example-message-warning a:hover{color:#006bb4}.example-message-warning a:active{color:#006bb4}.example-message-error{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fae5e5;color:#e02b27}.example-message-error a{color:#1979c3}.example-message-error a:hover{color:#006bb4}.example-message-error a:active{color:#006bb4}.example-message-success{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#e5efe5;color:#006400}.example-message-success a{color:#1979c3}.example-message-success a:hover{color:#006bb4}.example-message-success a:active{color:#006bb4}.example-message-notice{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400}.example-message-notice a{color:#1979c3}.example-message-notice a:hover{color:#006bb4}.example-message-notice a:active{color:#006bb4}.example-message-1{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400;position:relative;padding-left:40px}.example-message-1 a{color:#1979c3}.example-message-1 a:hover{color:#006bb4}.example-message-1 a:active{color:#006bb4}.example-message-1>:first-child:before{font-family:'icons-blank-theme';content:'\e602';font-size:28px;line-height:28px;color:#c07600;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:18px;left:0;text-align:center;width:40px}.example-message-2{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fae5e5;color:#e02b27;position:relative;padding-right:40px}.example-message-2 a{color:#1979c3}.example-message-2 a:hover{color:#006bb4}.example-message-2 a:active{color:#006bb4}.example-message-2:before{content:'';position:absolute;width:30px;text-align:center;top:0;height:100%;display:block;padding:0;background:#b30000}.example-message-2>:first-child:before{content:'';position:absolute;overflow:hidden;top:50%;margin-top:-5px}.example-message-2>:first-child:after{font-family:'icons-blank-theme';content:'\e602';font-size:28px;line-height:28px;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:18px;left:0;text-align:center;width:30px}.example-message-2:before{right:0}.example-message-2>:first-child:before{border:5px solid transparent;height:0;width:0;border-right-color:#b30000;right:30px}.example-message-2>:first-child:after{right:0}.example-message-3{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#e5efe5;color:#006400;position:relative;padding-left:40px}.example-message-3 a{color:#1979c3}.example-message-3 a:hover{color:#006bb4}.example-message-3 a:active{color:#006bb4}.example-message-3:before{content:'';position:absolute;width:30px;text-align:center;top:0;height:100%;display:block;padding:0;background:#006400}.example-message-3>:first-child:before{content:'';position:absolute;overflow:hidden;top:50%;margin-top:-5px}.example-message-3>:first-child:after{font-family:'icons-blank-theme';content:'\e610';font-size:28px;line-height:28px;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:18px;left:0;text-align:center;width:30px}.example-message-3:before{left:0}.example-message-3>:first-child:before{border:5px solid transparent;height:0;width:0;border-left-color:#006400;left:30px}.example-message-3>:first-child:after{left:0}.example-message-4{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fc0;border-color:#ffa500;color:#000;position:relative;padding-left:40px;border-width:4px;border-radius:10px}.example-message-4 a{color:#00f}.example-message-4 a:hover{color:#009}.example-message-4 a:active{color:#006}.example-message-4:before{content:'';position:absolute;width:30px;text-align:center;top:0;height:100%;display:block;padding:0;background:#green}.example-message-4>:first-child:before{content:'';position:absolute;overflow:hidden;top:50%;margin-top:-5px}.example-message-4>:first-child:after{font-family:'icons-blank-theme';content:'\e606';font-size:28px;line-height:28px;color:#000;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:15px;left:0;text-align:center;width:30px}.example-message-4:before{left:0}.example-message-4>:first-child:before{border:5px solid transparent;height:0;width:0;border-left-color:#green;left:30px}.example-message-4>:first-child:after{left:0}header.header{background-color:rgba(255,0,0,.2)}.column.main{background-color:rgba(255,255,0,.2)}.column.left{background-color:rgba(0,255,255,.2)}.column.right{background-color:rgba(0,0,255,.2)}footer.footer{background-color:rgba(0,0,0,.2)}.columns{box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.columns:after{content:" ";display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.columns>.column{padding-bottom:40px}@media (min-width: 600px){.page-layout-1column .column.main{ width:100%;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-3columns .column.main{width:66.66666667%;display:inline-block;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-2columns-left .column.main{width:83.33333333%;float:right;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-2columns-right .column.main{width:83.33333333%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-3columns .column.left{width:16.66666667%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-2columns-left .column.left{width:16.66666667%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-2columns-right .column.left{width:16.66666667%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-3columns .column.right{width:16.66666667%;float:right;-ms-flex-order:3;-webkit-order:3;order:3}.page-layout-2columns-left .column.right{width:16.66666667%;float:right;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-2columns-right .column.right{width:16.66666667%;float:right;-ms-flex-order:2;-webkit-order:2;order:2}}.layout-example-3 .column.main{width:60%;display:inline-block;-ms-flex-order:2;-webkit-order:2;order:2}.layout-example-3 .column.left{width:20%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.layout-example-3 .column.right{width:20%;float:right;-ms-flex-order:3;-webkit-order:3;order:3}.layout-example-3-1 .column.main{width:60%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.layout-example-3-1 .column.left{width:20%;display:inline-block;-ms-flex-order:2;-webkit-order:2;order:2}.layout-example-3-1 .column.right{width:20%;float:right;-ms-flex-order:3;-webkit-order:3;order:3}.pages>.label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.pages .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 2px 0 0;display:inline-block}.pages .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages a.page{color:#1979c3;display:inline-block;padding:0 4px;text-decoration:none}.pages a.page:visited{color:#1979c3}.pages a.page:hover{color:#006bb4;text-decoration:none}.pages a.page:active{color:#ff5501}.pages strong.page{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#333;display:inline-block;font-weight:700;padding:0 4px}.pages .action{border:1px solid #d1d1d1;color:#7d7d7d;display:inline-block;padding:0;text-decoration:none}.pages .action:visited{color:#7d7d7d}.pages .action:hover{color:#7d7d7d;text-decoration:none}.pages .action:active{color:#7d7d7d}.pages .action.next{display:inline-block;text-decoration:none}.pages .action.next:visited:before{color:#7d7d7d}.pages .action.next:active:before{color:#7d7d7d}.pages .action.next>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages .action.next:before{font-family:'icons-blank-theme';content:'\e608';font-size:46px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.pages .action.next:hover:before{color:#7d7d7d}.pages .action.next:active:before{color:#7d7d7d}.pages .action.previous{display:inline-block;text-decoration:none}.pages .action.previous:visited:before{color:#7d7d7d}.pages .action.previous:active:before{color:#7d7d7d}.pages .action.previous>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages .action.previous:before{font-family:'icons-blank-theme';content:'\e617';font-size:46px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.pages .action.previous:hover:before{color:#7d7d7d}.pages .action.previous:active:before{color:#7d7d7d}.example-pages-1>.label{display:inline-block;font-weight:700;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal}.example-pages-1>.label:after{content:':'}.example-pages-1 .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.example-pages-1 .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 3px;display:inline-block}.example-pages-1 .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-1 a.page{background-color:#ccc;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #f4f4f4 0, #ccc 100%);background-image:linear-gradient(to bottom, #f4f4f4 0, #ccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f4f4', endColorstr='#cccccc', GradientType=0);border:1px solid #b3b3b3;color:#333;display:inline-block;padding:0 4px;text-decoration:none}.example-pages-1 a.page:visited{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#1979c3}.example-pages-1 a.page:hover{background-color:#f4f4f4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #ccc 0, #f4f4f4 100%);background-image:linear-gradient(to bottom, #ccc 0, #f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#f4f4f4', GradientType=0);border:1px solid #999;color:#333;text-decoration:none}.example-pages-1 a.page:active{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#ff5501}.example-pages-1 strong.page{background:#1979c3;border:1px solid #135d96;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#f7b32e;display:inline-block;font-weight:700;padding:0 4px}.example-pages-1 .action{border:1px solid #d1d1d1;color:#7d7d7d;display:inline-block;padding:0;text-decoration:none}.example-pages-1 .action:visited{color:#7d7d7d}.example-pages-1 .action:hover{color:#ff5501;text-decoration:none}.example-pages-1 .action:active{color:#7d7d7d}.example-pages-1 .action.next{display:inline-block;text-decoration:none}.example-pages-1 .action.next:visited:before{color:#7d7d7d}.example-pages-1 .action.next:active:before{color:#7d7d7d}.example-pages-1 .action.next>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-1 .action.next:before{font-family:'icons-blank-theme';content:'\e608';font-size:30px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-1 .action.next:hover:before{color:#ff5501}.example-pages-1 .action.next:active:before{color:#7d7d7d}.example-pages-1 .action.previous{display:inline-block;text-decoration:none}.example-pages-1 .action.previous:visited:before{color:#7d7d7d}.example-pages-1 .action.previous:active:before{color:#7d7d7d}.example-pages-1 .action.previous>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-1 .action.previous:before{font-family:'icons-blank-theme';content:'\e617';font-size:30px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-1 .action.previous:hover:before{color:#ff5501}.example-pages-1 .action.previous:active:before{color:#7d7d7d}.example-pages-2>.label{display:inline-block;font-weight:700;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal}.example-pages-2>.label:after{content:':'}.example-pages-2 .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.example-pages-2 .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 2px 0 0;display:inline-block}.example-pages-2 .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-2 a.page{color:#1979c3;display:inline-block;padding:0 4px;text-decoration:none}.example-pages-2 a.page:visited{color:#1979c3}.example-pages-2 a.page:hover{color:#006bb4;text-decoration:none}.example-pages-2 a.page:active{color:#ff5501}.example-pages-2 strong.page{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#333;display:inline-block;font-weight:700;padding:0 4px}.example-pages-2 .action{border:1px solid #d1d1d1;color:#7d7d7d;display:inline-block;padding:0;text-decoration:none}.example-pages-2 .action:visited{color:#7d7d7d}.example-pages-2 .action:hover{color:#7d7d7d;text-decoration:none}.example-pages-2 .action:active{color:#7d7d7d}.example-pages-3>.label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.example-pages-3 .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 2px 0 0;display:inline-block}.example-pages-3 .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 a.page{background:#1979c3;color:#fff;display:inline-block;padding:0 4px;text-decoration:none}.example-pages-3 a.page:visited{background:#1979c3;color:#fff}.example-pages-3 a.page:hover{background:#006bb4;color:#fff;text-decoration:none}.example-pages-3 a.page:active{background:#ff5501;color:#fff}.example-pages-3 strong.page{background:#1979c3;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#fff;display:inline-block;font-weight:700;padding:0 4px}.example-pages-3 .action{background:#1979c3;border:1px solid #d1d1d1;color:#fff;display:inline-block;padding:0;text-decoration:none}.example-pages-3 .action:visited{background:#1979c3;color:#7d7d7d}.example-pages-3 .action:hover{background:#006bb4;color:#fff;text-decoration:none}.example-pages-3 .action:active{background:#ff5501;color:#fff}.example-pages-3 .action.next{display:inline-block;text-decoration:none}.example-pages-3 .action.next:visited:before{color:#7d7d7d}.example-pages-3 .action.next:active:before{color:#fff}.example-pages-3 .action.next>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 .action.next:before{font-family:'icons-blank-theme';content:'\e608';font-size:46px;line-height:inherit;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-3 .action.next:hover:before{color:#fff}.example-pages-3 .action.next:active:before{color:#fff}.example-pages-3 .action.previous{display:inline-block;text-decoration:none}.example-pages-3 .action.previous:visited:before{color:#7d7d7d}.example-pages-3 .action.previous:active:before{color:#fff}.example-pages-3 .action.previous>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 .action.previous:before{font-family:'icons-blank-theme';content:'\e617';font-size:46px;line-height:inherit;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-3 .action.previous:hover:before{color:#fff}.example-pages-3 .action.previous:active:before{color:#fff}.window.popup.popup-example{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example .popup-actions .action.close:focus,.window.popup.popup-example .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example .popup-actions .action.close.disabled,.window.popup.popup-example .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example.active{opacity:1}.window.popup.popup-example-1{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-1 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-1 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-1 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-1 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-1 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-1 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-1 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-1 .popup-actions .action.close:focus,.window.popup.popup-example-1 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-1 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-1 .popup-actions .action.close.disabled,.window.popup.popup-example-1 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-1 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-1.active{opacity:1}.window.overlay{transition:opacity .15s linear;position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:1000;opacity:0}.window.overlay.active{opacity:.5;filter:alpha(opacity=50)}.window.popup.popup-example-2{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;overflow-y:auto;max-height:200px;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-2 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-2 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-2 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-2 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-2 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-2 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-2 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-2 .popup-actions .action.close:focus,.window.popup.popup-example-2 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-2 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-2 .popup-actions .action.close.disabled,.window.popup.popup-example-2 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-2 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-2.active{opacity:1}.window.popup.popup-example-3{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-3 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-3 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-3 .popup-content{overflow-y:auto;max-height:200px}.window.popup.popup-example-3 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-3 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-3 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-3 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-3 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-3 .popup-actions .action.close:focus,.window.popup.popup-example-3 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-3 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-3 .popup-actions .action.close.disabled,.window.popup.popup-example-3 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-3 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-3.active{opacity:1}.window.popup.popup-example-4{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-4 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-4 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-4 .popup-content{margin:0 0 20px}.window.popup.popup-example-4 .popup-footer{margin:0 20px}.window.popup.popup-example-4 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-4 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-4 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-4 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-4 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-4 .popup-actions .action.close:focus,.window.popup.popup-example-4 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-4 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-4 .popup-actions .action.close.disabled,.window.popup.popup-example-4 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-4 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-4.active{opacity:1}.window.popup.popup-example-5{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-5 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-5 .popup-header .title{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}.window.popup.popup-example-5 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-5 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-5 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-5 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-5 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-5 .popup-actions .action.close:focus,.window.popup.popup-example-5 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-5 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-5 .popup-actions .action.close.disabled,.window.popup.popup-example-5 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-5 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-5.active{opacity:1}.window.popup.popup-example-6{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-6 .popup-footer .actions.toolbar{text-align:left}.window.popup.popup-example-6 .popup-footer .actions.toolbar:before,.window.popup.popup-example-6 .popup-footer .actions.toolbar:after{content:"";display:table}.window.popup.popup-example-6 .popup-footer .actions.toolbar:after{clear:both}.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary{float:left}.window.popup.popup-example-6 .popup-footer .actions.toolbar .primary,.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary{display:inline-block}.window.popup.popup-example-6 .popup-footer .actions.toolbar .primary a.action,.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary a.action{display:inline-block}.window.popup.popup-example-6 .popup-footer .actions.toolbar .primary .action{margin:0 5px 0 0}.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary a.action{margin-top:6px}.window.popup.popup-example-6 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-6 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-6 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-6 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-6 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-6 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-6 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-6 .popup-actions .action.close:focus,.window.popup.popup-example-6 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-6 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-6 .popup-actions .action.close.disabled,.window.popup.popup-example-6 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-6 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-6.active{opacity:1}.window.popup.popup-example-7{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-7 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-7 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-7 .popup-actions .action.close{position:absolute;top:10px;right:10px}.window.popup.popup-example-7.active{opacity:1}.window.popup.popup-example-8{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-8 .popup-header{margin:0 0 25px;padding-right:30px}.window.popup.popup-example-8 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-8 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-8 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e613';font-size:30px;line-height:22px;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center;margin:0}.window.popup.popup-example-8 .popup-actions .action.close:hover:before{color:#090}.window.popup.popup-example-8 .popup-actions .action.close:active:before{color:#00f}.window.popup.popup-example-8 .popup-actions .action.close:focus,.window.popup.popup-example-8 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-8 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-8 .popup-actions .action.close.disabled,.window.popup.popup-example-8 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-8 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-8.active{opacity:1}.window.popup.popup-example-9{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-9 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-9 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-9 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-9 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-9 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-9 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-9 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-9 .popup-actions .action.close:focus,.window.popup.popup-example-9 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-9 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-9 .popup-actions .action.close.disabled,.window.popup.popup-example-9 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-9 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-9.active{opacity:1}.window.overlay.example-overlay-1.active{transition:opacity .15s linear;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f5293;z-index:1000;opacity:0}.window.overlay.example-overlay-1.active.active{opacity:.8;filter:alpha(opacity=80)}.example-ratings-1{overflow:hidden}.example-ratings-1:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.example-ratings-1 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-1 input[type="radio"]:focus+label:before,.example-ratings-1 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-1 label{position:absolute;display:block;cursor:pointer}.example-ratings-1 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-1 label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-1 label:hover:before{opacity:1}.example-ratings-1 label:hover~label:before{opacity:0}.example-ratings-1 .rating-5{z-index:2}.example-ratings-1 .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-1 .rating-4{z-index:3}.example-ratings-1 .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.example-ratings-1 .rating-3{z-index:4}.example-ratings-1 .rating-3:before{content:'\e605' '\e605' '\e605'}.example-ratings-1 .rating-2{z-index:5}.example-ratings-1 .rating-2:before{content:'\e605' '\e605'}.example-ratings-1 .rating-1{z-index:6}.example-ratings-1 .rating-1:before{content:'\e605'}.example-ratings-2{overflow:hidden}.example-ratings-2:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.example-ratings-2 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-2 input[type="radio"]:focus+label:before,.example-ratings-2 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-2 label{position:absolute;display:block;cursor:pointer}.example-ratings-2 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-2 label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-2 label:hover:before{opacity:1}.example-ratings-2 label:hover~label:before{opacity:0}.example-ratings-2 .rating-8{z-index:2}.example-ratings-2 .rating-8:before{content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-7{z-index:3}.example-ratings-2 .rating-7:before{content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-6{z-index:4}.example-ratings-2 .rating-6:before{content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-5{z-index:5}.example-ratings-2 .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-4{z-index:6}.example-ratings-2 .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-3{z-index:7}.example-ratings-2 .rating-3:before{content:'\e605' '\e605' '\e605'}.example-ratings-2 .rating-2{z-index:8}.example-ratings-2 .rating-2:before{content:'\e605' '\e605'}.example-ratings-2 .rating-1{z-index:9}.example-ratings-2 .rating-1:before{content:'\e605'}.example-ratings-3{overflow:hidden}.example-ratings-3:before{color:#aff5e3;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.example-ratings-3 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-3 input[type="radio"]:focus+label:before,.example-ratings-3 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-3 label{position:absolute;display:block;cursor:pointer}.example-ratings-3 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-3 label:before{color:#0a6767;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-3 label:hover:before{opacity:1}.example-ratings-3 label:hover~label:before{opacity:0}.example-ratings-3 .rating-5{z-index:2}.example-ratings-3 .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-3 .rating-4{z-index:3}.example-ratings-3 .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.example-ratings-3 .rating-3{z-index:4}.example-ratings-3 .rating-3:before{content:'\e605' '\e605' '\e605'}.example-ratings-3 .rating-2{z-index:5}.example-ratings-3 .rating-2:before{content:'\e605' '\e605'}.example-ratings-3 .rating-1{z-index:6}.example-ratings-3 .rating-1:before{content:'\e605'}.example-ratings-4{overflow:hidden}.example-ratings-4:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e600' '\e600' '\e600' '\e600' '\e600';position:absolute;z-index:1;display:block}.example-ratings-4 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-4 input[type="radio"]:focus+label:before,.example-ratings-4 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-4 label{position:absolute;display:block;cursor:pointer}.example-ratings-4 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-4 label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-4 label:hover:before{opacity:1}.example-ratings-4 label:hover~label:before{opacity:0}.example-ratings-4 .rating-5{z-index:2}.example-ratings-4 .rating-5:before{content:'\e600' '\e600' '\e600' '\e600' '\e600'}.example-ratings-4 .rating-4{z-index:3}.example-ratings-4 .rating-4:before{content:'\e600' '\e600' '\e600' '\e600'}.example-ratings-4 .rating-3{z-index:4}.example-ratings-4 .rating-3:before{content:'\e600' '\e600' '\e600'}.example-ratings-4 .rating-2{z-index:5}.example-ratings-4 .rating-2:before{content:'\e600' '\e600'}.example-ratings-4 .rating-1{z-index:6}.example-ratings-4 .rating-1:before{content:'\e600'}.exapmle-ratings-5 .control.rating.vote{overflow:hidden}.exapmle-ratings-5 .control.rating.vote:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.exapmle-ratings-5 .control.rating.vote input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.exapmle-ratings-5 .control.rating.vote input[type="radio"]:focus+label:before,.exapmle-ratings-5 .control.rating.vote input[type="radio"]:checked+label:before{opacity:1}.exapmle-ratings-5 .control.rating.vote label{position:absolute;display:block;cursor:pointer}.exapmle-ratings-5 .control.rating.vote label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.exapmle-ratings-5 .control.rating.vote label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.exapmle-ratings-5 .control.rating.vote label:hover:before{opacity:1}.exapmle-ratings-5 .control.rating.vote label:hover~label:before{opacity:0}.exapmle-ratings-5 .control.rating.vote .rating-5{z-index:2}.exapmle-ratings-5 .control.rating.vote .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-4{z-index:3}.exapmle-ratings-5 .control.rating.vote .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-3{z-index:4}.exapmle-ratings-5 .control.rating.vote .rating-3:before{content:'\e605' '\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-2{z-index:5}.exapmle-ratings-5 .control.rating.vote .rating-2:before{content:'\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-1{z-index:6}.exapmle-ratings-5 .control.rating.vote .rating-1:before{content:'\e605'}.example-rating-summary-1{white-space:nowrap;overflow:hidden}.example-rating-summary-1 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-1 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-1 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-1 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-1 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-2{white-space:nowrap;overflow:hidden}.example-rating-summary-2 .rating-result{width:154px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-2 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-2 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-2 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-2 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-3{white-space:nowrap;overflow:hidden}.example-rating-summary-3 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-3 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#aff5e3;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-3 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-3 .rating-result>span:before{position:relative;z-index:2;color:#0a6767;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-3 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-4{white-space:nowrap;overflow:hidden}.example-rating-summary-4 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-4 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e600' '\e600' '\e600' '\e600' '\e600';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-4 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-4 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e600' '\e600' '\e600' '\e600' '\e600';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-4 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-5{white-space:nowrap;overflow:hidden}.example-rating-summary-5 .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-5 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-5 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-5 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-5 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-5 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-6 .rating-summary{white-space:nowrap;overflow:hidden}.example-rating-summary-6 .rating-summary .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-6 .rating-summary .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-6 .rating-summary .rating-result>span{display:block;overflow:hidden}.example-rating-summary-6 .rating-summary .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-6 .rating-summary .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-7{white-space:nowrap;overflow:hidden}.example-rating-summary-7 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-7 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-7 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-7 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-7 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-7 .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-responsive-block{padding:10px}.example-sections-1{position:relative;z-index:1}.example-sections-1:before,.example-sections-1:after{content:"";display:table}.example-sections-1:after{clear:both}.example-sections-1>.item.title{float:left;width:auto}.example-sections-1>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-1>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-1>.item.content:before,.example-sections-1>.item.content:after{content:"";display:table}.example-sections-1>.item.content:after{clear:both}.example-sections-1>.item.content.active{display:block}.example-sections-1>.item.title{margin:0 5px 0 0}.example-sections-1>.item.title>.switch{font-size:1.4rem;font-weight:600;line-height:20px;color:#7d7d7d;text-decoration:none;background:#f0f0f0;border:1px solid #d1d1d1;border-bottom:0;height:20px;padding:5px 20px 5px 20px}.example-sections-1>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-1>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-1>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-1>.item.title:not(.disabled)>.switch:focus,.example-sections-1>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-1>.item.title:not(.disabled)>.switch:active,.example-sections-1>.item.title.active>.switch,.example-sections-1>.item.title.active>.switch:focus,.example-sections-1>.item.title.active>.switch:hover{background:#fff;color:#333}.example-sections-1>.item.title.active>.switch,.example-sections-1>.item.title.active>.switch:focus,.example-sections-1>.item.title.active>.switch:hover{padding-bottom:6px}.example-sections-1>.item.content{background:#fff;margin-top:31px;padding:20px 20px 20px 20px;border:1px solid #d1d1d1}.example-sections-2{position:relative;z-index:1}.example-sections-2:before,.example-sections-2:after{content:"";display:table}.example-sections-2:after{clear:both}.example-sections-2>.item.title{float:left;width:auto}.example-sections-2>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-2>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-2>.item.content:before,.example-sections-2>.item.content:after{content:"";display:table}.example-sections-2>.item.content:after{clear:both}.example-sections-2>.item.content.active{display:block}.example-sections-2>.item.title{margin:0 5px 0 0}.example-sections-2>.item.title>.switch{font-size:1.4rem;font-weight:600;line-height:20px;color:#7d7d7d;text-decoration:none;background:#f0f0f0;border:1px solid #d1d1d1;border-bottom:0;height:20px;padding:5px 20px 5px 20px}.example-sections-2>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-2>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-2>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-2>.item.title:not(.disabled)>.switch:focus,.example-sections-2>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-2>.item.title:not(.disabled)>.switch:active,.example-sections-2>.item.title.active>.switch,.example-sections-2>.item.title.active>.switch:focus,.example-sections-2>.item.title.active>.switch:hover{background:#fff;color:#333}.example-sections-2>.item.title.active>.switch,.example-sections-2>.item.title.active>.switch:focus,.example-sections-2>.item.title.active>.switch:hover{padding-bottom:6px}.example-sections-2>.item.content{background:#fff;margin-top:31px;padding:20px 20px 20px 20px;border:0;border-top:1px solid #d1d1d1}.example-sections-3{margin:0;padding:0}.example-sections-3>.item.title{box-sizing:border-box;float:none;width:100%}.example-sections-3>.item.title>.switch{display:block}.example-sections-3>.item.content{box-sizing:border-box;float:none;margin:0;display:block}.example-sections-3>.item.content:before,.example-sections-3>.item.content:after{content:"";display:table}.example-sections-3>.item.content:after{clear:both}.example-sections-3>.item.content.active{display:block}.example-sections-3>.item.title{margin:0 0 5px}.example-sections-3>.item.title>.switch{background:#f0f0f0;border-top:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-left:1px solid #d1d1d1;height:40px;padding:5px 20px 5px 20px;font-size:1.8rem;font-weight:600;line-height:40px;color:#7d7d7d;text-decoration:none}.example-sections-3>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-3>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-3>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-3>.item.title:not(.disabled)>.switch:focus,.example-sections-3>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-3>.item.title:not(.disabled)>.switch:active,.example-sections-3>.item.title.active>.switch,.example-sections-3>.item.title.active>.switch:focus,.example-sections-3>.item.title.active>.switch:hover{background:#fff;padding-bottom:5px}.example-sections-3>.item.content{background:#fff;border:1px solid #d1d1d1;margin:0 0 5px;padding:20px 20px 20px 20px}@media only screen and (max-width: 99999px){.example-sections-4{ position:relative;z-index:1}.example-sections-4:before,.example-sections-4:after{content:"";display:table}.example-sections-4:after{clear:both}.example-sections-4>.item.title{float:left;width:auto}.example-sections-4>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-4>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-4>.item.content:before,.example-sections-4>.item.content:after{content:"";display:table}.example-sections-4>.item.content:after{clear:both}.example-sections-4>.item.content.active{display:block}.example-sections-4>.item.title{margin:0 5px 0 0}.example-sections-4>.item.title>.switch{font-size:1.4rem;font-weight:600;line-height:20px;color:#7d7d7d;text-decoration:none;background:#f0f0f0;border:1px solid #d1d1d1;border-bottom:0;height:20px;padding:5px 20px 5px 20px}.example-sections-4>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-4>.item.title:not(.disabled)>.switch:focus,.example-sections-4>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-4>.item.title:not(.disabled)>.switch:active,.example-sections-4>.item.title.active>.switch,.example-sections-4>.item.title.active>.switch:focus,.example-sections-4>.item.title.active>.switch:hover{background:#fff;color:#333}.example-sections-4>.item.title.active>.switch,.example-sections-4>.item.title.active>.switch:focus,.example-sections-4>.item.title.active>.switch:hover{padding-bottom:6px}.example-sections-4>.item.content{background:#fff;margin-top:31px;padding:20px 20px 20px 20px;border:1px solid #d1d1d1}}@media only screen and (max-width: 768px){.example-sections-4{ margin:0;padding:0}.example-sections-4>.item.title{box-sizing:border-box;float:none;width:100%}.example-sections-4>.item.title>.switch{display:block}.example-sections-4>.item.content{box-sizing:border-box;float:none;margin:0;display:block}.example-sections-4>.item.content:before,.example-sections-4>.item.content:after{content:"";display:table}.example-sections-4>.item.content:after{clear:both}.example-sections-4>.item.content.active{display:block}.example-sections-4>.item.title{margin:0 0 5px}.example-sections-4>.item.title>.switch{background:#f0f0f0;border-top:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-left:1px solid #d1d1d1;height:40px;padding:5px 20px 5px 20px;font-size:1.8rem;font-weight:600;line-height:40px;color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-4>.item.title:not(.disabled)>.switch:focus,.example-sections-4>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-4>.item.title:not(.disabled)>.switch:active,.example-sections-4>.item.title.active>.switch,.example-sections-4>.item.title.active>.switch:focus,.example-sections-4>.item.title.active>.switch:hover{background:#fff;padding-bottom:5px}.example-sections-4>.item.content{background:#fff;border:1px solid #d1d1d1;margin:0 0 5px;padding:20px 20px 20px 20px}}.example-sections-5{position:relative;z-index:1}.example-sections-5:before,.example-sections-5:after{content:"";display:table}.example-sections-5:after{clear:both}.example-sections-5>.item.title{float:left;width:auto}.example-sections-5>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-5>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-5>.item.content:before,.example-sections-5>.item.content:after{content:"";display:table}.example-sections-5>.item.content:after{clear:both}.example-sections-5>.item.content.active{display:block}.example-sections-6{margin:0;padding:0}.example-sections-6>.item.title{box-sizing:border-box;float:none;width:100%}.example-sections-6>.item.title>.switch{display:block}.example-sections-6>.item.content{box-sizing:border-box;float:none;margin:0;display:block}.example-sections-6>.item.content:before,.example-sections-6>.item.content:after{content:"";display:table}.example-sections-6>.item.content:after{clear:both}.example-sections-6>.item.content.active{display:block}.example-table-1{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-1 th{text-align:left}.example-table-1>tbody>tr>th,.example-table-1>tfoot>tr>th,.example-table-1>tbody>tr>td,.example-table-1>tfoot>tr>td{vertical-align:top}.example-table-1>thead>tr>th,.example-table-1>thead>tr>td{vertical-align:bottom}.example-table-1>thead>tr>th,.example-table-1>tbody>tr>th,.example-table-1>tfoot>tr>th,.example-table-1>thead>tr>td,.example-table-1>tbody>tr>td,.example-table-1>tfoot>tr>td{padding:8px 10px}.example-table-2>thead>tr>th,.example-table-2>tbody>tr>th,.example-table-2>tfoot>tr>th{color:#111;font-weight:700}.example-table-3{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-3 th{text-align:left}.example-table-3>tbody>tr>th,.example-table-3>tfoot>tr>th,.example-table-3>tbody>tr>td,.example-table-3>tfoot>tr>td{vertical-align:top}.example-table-3>thead>tr>th,.example-table-3>thead>tr>td{vertical-align:bottom}.example-table-3>thead>tr>th,.example-table-3>tbody>tr>th,.example-table-3>tfoot>tr>th,.example-table-3>thead>tr>td,.example-table-3>tbody>tr>td,.example-table-3>tfoot>tr>td{padding:8px 10px}.example-table-3>caption{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-table-4{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-4 th{text-align:left}.example-table-4>tbody>tr>th,.example-table-4>tfoot>tr>th,.example-table-4>tbody>tr>td,.example-table-4>tfoot>tr>td{vertical-align:top}.example-table-4>thead>tr>th,.example-table-4>thead>tr>td{vertical-align:bottom}.example-table-4>thead>tr>th,.example-table-4>tbody>tr>th,.example-table-4>tfoot>tr>th,.example-table-4>thead>tr>td,.example-table-4>tbody>tr>td,.example-table-4>tfoot>tr>td{padding:8px 10px}.example-table-4>thead>tr>td,.example-table-4>tbody>tr>td,.example-table-4>tfoot>tr>td{padding:15px 25px 5px 0}.example-table-4>thead>tr>th,.example-table-4>tbody>tr>th,.example-table-4>tfoot>tr>th{padding:15px 25px 10px 0}.example-table-5{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;background:#fff}.example-table-5 th{text-align:left}.example-table-5>tbody>tr>th,.example-table-5>tfoot>tr>th,.example-table-5>tbody>tr>td,.example-table-5>tfoot>tr>td{vertical-align:top}.example-table-5>thead>tr>th,.example-table-5>thead>tr>td{vertical-align:bottom}.example-table-5>thead>tr>th,.example-table-5>tbody>tr>th,.example-table-5>tfoot>tr>th,.example-table-5>thead>tr>td,.example-table-5>tbody>tr>td,.example-table-5>tfoot>tr>td{padding:8px 10px}.example-table-5>thead{background:#ccf}.example-table-5>tfoot{background:#cff}.example-table-5>tbody>tr>td{background:#fcc}.example-table-5>tbody>tr>th{background:#ffc}.example-table-6{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:1px solid #d1d1d1}.example-table-6 th{text-align:left}.example-table-6>tbody>tr>th,.example-table-6>tfoot>tr>th,.example-table-6>tbody>tr>td,.example-table-6>tfoot>tr>td{vertical-align:top}.example-table-6>thead>tr>th,.example-table-6>thead>tr>td{vertical-align:bottom}.example-table-6>thead>tr>th,.example-table-6>tbody>tr>th,.example-table-6>tfoot>tr>th,.example-table-6>thead>tr>td,.example-table-6>tbody>tr>td,.example-table-6>tfoot>tr>td{padding:8px 10px}.example-table-6>thead>tr>th,.example-table-6>tbody>tr>th,.example-table-6>tfoot>tr>th,.example-table-6>thead>tr>td,.example-table-6>tbody>tr>td,.example-table-6>tfoot>tr>td{border:1px solid #d1d1d1}.example-table-7{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-7 th{text-align:left}.example-table-7>tbody>tr>th,.example-table-7>tfoot>tr>th,.example-table-7>tbody>tr>td,.example-table-7>tfoot>tr>td{vertical-align:top}.example-table-7>thead>tr>th,.example-table-7>thead>tr>td{vertical-align:bottom}.example-table-7>thead>tr>th,.example-table-7>tbody>tr>th,.example-table-7>tfoot>tr>th,.example-table-7>thead>tr>td,.example-table-7>tbody>tr>td,.example-table-7>tfoot>tr>td{padding:8px 10px}.example-table-7>thead>tr>th,.example-table-7>tbody>tr>th,.example-table-7>tfoot>tr>th,.example-table-7>thead>tr>td,.example-table-7>tbody>tr>td,.example-table-7>tfoot>tr>td{border-top:1px solid #d1d1d1}.example-table-7>caption+thead>tr:first-child>th,.example-table-7>colgroup+thead>tr:first-child>th,.example-table-7>thead:first-child>tr:first-child>th,.example-table-7>caption+thead>tr:first-child>td,.example-table-7>colgroup+thead>tr:first-child>td,.example-table-7>thead:first-child>tr:first-child>td{border-top:0}.example-table-7>tbody+tbody{border-top:1px solid #d1d1d1}.example-table-8{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-8 th{text-align:left}.example-table-8>tbody>tr>th,.example-table-8>tfoot>tr>th,.example-table-8>tbody>tr>td,.example-table-8>tfoot>tr>td{vertical-align:top}.example-table-8>thead>tr>th,.example-table-8>thead>tr>td{vertical-align:bottom}.example-table-8>thead>tr>th,.example-table-8>tbody>tr>th,.example-table-8>tfoot>tr>th,.example-table-8>thead>tr>td,.example-table-8>tbody>tr>td,.example-table-8>tfoot>tr>td{padding:8px 10px}.example-table-8>thead>tr>th,.example-table-8>tbody>tr>th,.example-table-8>tfoot>tr>th,.example-table-8>thead>tr>td,.example-table-8>tbody>tr>td,.example-table-8>tfoot>tr>td{border-left:1px solid #d1d1d1}.example-table-8>thead>tr>th:first-child,.example-table-8>tbody>tr>th:first-child,.example-table-8>tfoot>tr>th:first-child,.example-table-8>thead>tr>td:first-child,.example-table-8>tbody>tr>td:first-child,.example-table-8>tfoot>tr>td:first-child{border-left:0}.example-table-9{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:0}.example-table-9 th{text-align:left}.example-table-9>tbody>tr>th,.example-table-9>tfoot>tr>th,.example-table-9>tbody>tr>td,.example-table-9>tfoot>tr>td{vertical-align:top}.example-table-9>thead>tr>th,.example-table-9>thead>tr>td{vertical-align:bottom}.example-table-9>thead>tr>th,.example-table-9>tbody>tr>th,.example-table-9>tfoot>tr>th,.example-table-9>thead>tr>td,.example-table-9>tbody>tr>td,.example-table-9>tfoot>tr>td{padding:8px 10px}.example-table-9>thead>tr>th,.example-table-9>tbody>tr>th,.example-table-9>tfoot>tr>th,.example-table-9>thead>tr>td,.example-table-9>tbody>tr>td,.example-table-9>tfoot>tr>td{border:0}.example-table-9>thead>tr>th,.example-table-9>thead>tr>td{border-bottom:1px solid #d1d1d1}.example-table-10{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:0}.example-table-10 th{text-align:left}.example-table-10>tbody>tr>th,.example-table-10>tfoot>tr>th,.example-table-10>tbody>tr>td,.example-table-10>tfoot>tr>td{vertical-align:top}.example-table-10>thead>tr>th,.example-table-10>thead>tr>td{vertical-align:bottom}.example-table-10>thead>tr>th,.example-table-10>tbody>tr>th,.example-table-10>tfoot>tr>th,.example-table-10>thead>tr>td,.example-table-10>tbody>tr>td,.example-table-10>tfoot>tr>td{padding:8px 10px}.example-table-10>thead>tr>th,.example-table-10>tbody>tr>th,.example-table-10>tfoot>tr>th,.example-table-10>thead>tr>td,.example-table-10>tbody>tr>td,.example-table-10>tfoot>tr>td{border:0}.example-table-11{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-11 th{text-align:left}.example-table-11>tbody>tr>th,.example-table-11>tfoot>tr>th,.example-table-11>tbody>tr>td,.example-table-11>tfoot>tr>td{vertical-align:top}.example-table-11>thead>tr>th,.example-table-11>thead>tr>td{vertical-align:bottom}.example-table-11>thead>tr>th,.example-table-11>tbody>tr>th,.example-table-11>tfoot>tr>th,.example-table-11>thead>tr>td,.example-table-11>tbody>tr>td,.example-table-11>tfoot>tr>td{padding:8px 10px}.example-table-11>tbody>tr:nth-child(even)>td,.example-table-11>tbody>tr:nth-child(even)>th{background:#ffc;color:#000}.example-table-12{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-12 th{text-align:left}.example-table-12>tbody>tr>th,.example-table-12>tfoot>tr>th,.example-table-12>tbody>tr>td,.example-table-12>tfoot>tr>td{vertical-align:top}.example-table-12>thead>tr>th,.example-table-12>thead>tr>td{vertical-align:bottom}.example-table-12>thead>tr>th,.example-table-12>tbody>tr>th,.example-table-12>tfoot>tr>th,.example-table-12>thead>tr>td,.example-table-12>tbody>tr>td,.example-table-12>tfoot>tr>td{padding:8px 10px}.example-table-12>tbody>tr:nth-child(even):hover>td,.example-table-12>tbody>tr:nth-child(even):hover>th{background:#f0f0f0}.example-table-12>tbody>tr:nth-child(odd):hover>td,.example-table-12>tbody>tr:nth-child(odd):hover>th{background:#f0f0f0}.example-table-13{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:1px solid #d1d1d1}.example-table-13 th{text-align:left}.example-table-13>tbody>tr>th,.example-table-13>tfoot>tr>th,.example-table-13>tbody>tr>td,.example-table-13>tfoot>tr>td{vertical-align:top}.example-table-13>thead>tr>th,.example-table-13>thead>tr>td{vertical-align:bottom}.example-table-13>thead>tr>th,.example-table-13>tbody>tr>th,.example-table-13>tfoot>tr>th,.example-table-13>thead>tr>td,.example-table-13>tbody>tr>td,.example-table-13>tfoot>tr>td{padding:8px 10px}.example-table-13>thead>tr>th,.example-table-13>tbody>tr>th,.example-table-13>tfoot>tr>th,.example-table-13>thead>tr>td,.example-table-13>tbody>tr>td,.example-table-13>tfoot>tr>td{border:1px solid #d1d1d1}.example-table-13>tbody>tr:nth-child(odd)>td,.example-table-13>tbody>tr:nth-child(odd)>th{background:#fff}.example-table-13>tbody>tr:nth-child(even):hover>td,.example-table-13>tbody>tr:nth-child(even):hover>th{background:#f0f0f0}.example-table-13>tbody>tr:nth-child(odd):hover>td,.example-table-13>tbody>tr:nth-child(odd):hover>th{background:#f0f0f0}@media only screen and (max-width: 768px){.example-table-14{ width:100%;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}}.example-table-15{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:1px solid #d1d1d1}.example-table-15 th{text-align:left}.example-table-15>tbody>tr>th,.example-table-15>tfoot>tr>th,.example-table-15>tbody>tr>td,.example-table-15>tfoot>tr>td{vertical-align:top}.example-table-15>thead>tr>th,.example-table-15>thead>tr>td{vertical-align:bottom}.example-table-15>thead>tr>th,.example-table-15>tbody>tr>th,.example-table-15>tfoot>tr>th,.example-table-15>thead>tr>td,.example-table-15>tbody>tr>td,.example-table-15>tfoot>tr>td{padding:8px 10px}.example-table-15>thead>tr>th,.example-table-15>tbody>tr>th,.example-table-15>tfoot>tr>th,.example-table-15>thead>tr>td,.example-table-15>tbody>tr>td,.example-table-15>tfoot>tr>td{border:1px solid #d1d1d1}.example-table-15>tbody>tr:nth-child(odd)>td,.example-table-15>tbody>tr:nth-child(odd)>th{background:#fff}.example-table-15>tbody>tr:nth-child(even):hover>td,.example-table-15>tbody>tr:nth-child(even):hover>th{background:#f0f0f0}.example-table-15>tbody>tr:nth-child(odd):hover>td,.example-table-15>tbody>tr:nth-child(odd):hover>th{background:#f0f0f0}@media only screen and (max-width: 768px){.example-table-15{ border:0;display:block;background:#cff}.example-table-15>tbody>tr:nth-child(odd)>td,.example-table-15>tbody>tr:nth-child(odd)>th{background:#cff}.example-table-15>tbody>tr:nth-child(even):hover>td,.example-table-15>tbody>tr:nth-child(even):hover>th{background:#cff}.example-table-15>tbody>tr:nth-child(odd):hover>td,.example-table-15>tbody>tr:nth-child(odd):hover>th{background:#cff}.example-table-15>thead>tr>th{display:none}.example-table-15>tbody{display:block}.example-table-15>tbody>tr{display:block}.example-table-15>tbody>tr td,.example-table-15>tbody>tr th{border-bottom:0;display:block;padding:5px 0}.example-table-15>tbody>tr td:before,.example-table-15>tbody>tr th:before{content:attr(data-th) ":";display:inline-block;padding-right:10px;color:#111;font-weight:700}.example-table-15>tbody>tr td{background:#cff}.example-table-15>tbody>tr>th{background-color:#ffc!important}}.example-tooltip-bottom{position:relative}.example-tooltip-bottom .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;top:100%;left:0;margin-top:5px}.example-tooltip-bottom .tooltip-content:after,.example-tooltip-bottom .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-bottom .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-bottom .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-bottom .tooltip-content:after,.example-tooltip-bottom .tooltip-content:before{bottom:100%}.example-tooltip-bottom .tooltip-content:after{border-bottom-color:#fff;margin-left:-5px;left:15px}.example-tooltip-bottom .tooltip-content:before{border-bottom-color:#bbb;margin-left:-6px;left:15px}.example-tooltip-bottom .tooltip-toggle{cursor:help}.example-tooltip-bottom .tooltip-toggle:hover+.tooltip-content,.example-tooltip-bottom .tooltip-toggle:focus+.tooltip-content,.example-tooltip-bottom:hover .tooltip-content{display:block}.example-tooltip-left{position:relative}.example-tooltip-left .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;right:100%;top:0;margin-right:5px}.example-tooltip-left .tooltip-content:after,.example-tooltip-left .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-left .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-left .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-left .tooltip-content:after,.example-tooltip-left .tooltip-content:before{left:100%}.example-tooltip-left .tooltip-content:after{border-left-color:#fff;margin-top:-5px;top:15px}.example-tooltip-left .tooltip-content:before{border-left-color:#bbb;margin-top:-6px;top:15px}.example-tooltip-left .tooltip-toggle{cursor:help}.example-tooltip-left .tooltip-toggle:hover+.tooltip-content,.example-tooltip-left .tooltip-toggle:focus+.tooltip-content,.example-tooltip-left:hover .tooltip-content{display:block}.example-tooltip-right{position:relative}.example-tooltip-right .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;left:100%;top:0;margin-left:5px}.example-tooltip-right .tooltip-content:after,.example-tooltip-right .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-right .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-right .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-right .tooltip-content:after,.example-tooltip-right .tooltip-content:before{right:100%}.example-tooltip-right .tooltip-content:after{border-right-color:#fff;margin-top:-5px;top:15px}.example-tooltip-right .tooltip-content:before{border-right-color:#bbb;margin-top:-6px;top:15px}.example-tooltip-right .tooltip-toggle{cursor:help}.example-tooltip-right .tooltip-toggle:hover+.tooltip-content,.example-tooltip-right .tooltip-toggle:focus+.tooltip-content,.example-tooltip-right:hover .tooltip-content{display:block}.example-tooltip-top{position:relative}.example-tooltip-top .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;bottom:100%;left:0;margin-bottom:5px}.example-tooltip-top .tooltip-content:after,.example-tooltip-top .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-top .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-top .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-top .tooltip-content:after,.example-tooltip-top .tooltip-content:before{top:100%}.example-tooltip-top .tooltip-content:after{border-top-color:#fff;margin-left:-5px;left:15px}.example-tooltip-top .tooltip-content:before{border-top-color:#bbb;margin-left:-6px;left:15px}.example-tooltip-top .tooltip-toggle{cursor:help}.example-tooltip-top .tooltip-toggle:hover+.tooltip-content,.example-tooltip-top .tooltip-toggle:focus+.tooltip-content,.example-tooltip-top:hover .tooltip-content{display:block}html{font-size:62.5%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-size-adjust:100%}body{font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1.42857143}p{margin-top:0rem;margin-bottom:1rem}abbr[title]{cursor:help;border-bottom:1px dotted #d1d1d1}b,strong{font-weight:700}em,i{font-style:italic}mark{background:#f0f0f0;color:#000}small,.small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #d1d1d1}sub,sup{font-size:71.42857143%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dfn{font-style:italic}h1{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}h2{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:2.5rem;margin-bottom:2rem}h3{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}h4{font-size:1.4rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h5{font-size:1.2rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h6{font-size:1rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small{font-size:71.42857143%;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1}a,.alink{color:#1979c3;text-decoration:none}a:visited,.alink:visited{color:#1979c3;text-decoration:none}a:hover,.alink:hover{color:#006bb4;text-decoration:underline}a:active,.alink:active{color:#ff5501;text-decoration:underline}ul,ol{margin-top:0rem;margin-bottom:2.5rem}ul>li,ol>li{margin-top:0rem;margin-bottom:1rem}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}dl{margin-top:0;margin-bottom:20px}dt{font-weight:700;margin-top:0;margin-bottom:5px}dd{margin-top:0;margin-bottom:10px;margin-left:0}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,'Courier New',monospace}code{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px;white-space:nowrap}kbd{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px}pre{background:#f0f0f0;border:1px solid #d1d1d1;color:#111;display:block;font-size:1.2rem;margin:0 0 10px;line-height:1.42857143;padding:10px;word-break:break-all;word-wrap:break-word}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}blockquote{border-left:0 solid #d1d1d1;margin:0 0 20px 40px;padding:0;font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:italic;line-height:1.42857143}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{color:#333;display:block;font-size:1rem;line-height:1.42857143}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote cite{font-style:normal}blockquote:before,blockquote:after{content:""}q{quotes:none}q:before,q:after{content:'';content:none}cite{font-style:normal}.example-line-height{line-height:3rem}.example-word-wrap{word-break:break-all;word-break:break-word;word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;background:#ccc;width:120px}.example-text-overflow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#ccc;width:120px}.example-text-hide{background-color:transparent;border:0;font:0/0 a;color:transparent;text-shadow:none}.example-hyphens{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.example-hyphens-none{word-wrap:break-word;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.example-typography{color:#fc0;font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-weight:500;font-style:italic;line-height:1.2}.example-list-reset-styles{margin:0;padding:0;list-style:none none}.example-list-inline{margin:0;padding:0;list-style:none none}.example-list-inline>li{display:inline-block;vertical-align:top}.example-link-default{color:#1979c3;text-decoration:none}.example-link-default:visited{color:#1979c3;text-decoration:none}.example-link-default:hover{color:#006bb4;text-decoration:underline}.example-link-default:active{color:#ff5501;text-decoration:underline}.example-link{color:#008000;text-decoration:none}.example-link:visited{color:#1979c3;text-decoration:none}.example-link:hover{color:#ffa500;text-decoration:none}.example-link:active{color:#ff5501;text-decoration:underline}.example-heading{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}.example-heading-2{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:2.5rem;margin-bottom:2rem}html{font-size:62.5%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-size-adjust:100%}body{font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1.42857143}p{margin-top:0rem;margin-bottom:1rem}abbr[title]{cursor:help;border-bottom:1px dotted #d1d1d1}b,strong{font-weight:700}em,i{font-style:italic}mark{background:#f0f0f0;color:#000}small,.small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #d1d1d1}sub,sup{font-size:71.42857143%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dfn{font-style:italic}h1{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}h2{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:2.5rem;margin-bottom:2rem}h3{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}h4{font-size:1.4rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h5{font-size:1.2rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h6{font-size:1rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small{font-size:71.42857143%;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1}a,.alink{color:#1979c3;text-decoration:none}a:visited,.alink:visited{color:#1979c3;text-decoration:none}a:hover,.alink:hover{color:#006bb4;text-decoration:underline}a:active,.alink:active{color:#ff5501;text-decoration:underline}ul,ol{margin-top:0rem;margin-bottom:2.5rem}ul>li,ol>li{margin-top:0rem;margin-bottom:1rem}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}dl{margin-top:0;margin-bottom:20px}dt{font-weight:700;margin-top:0;margin-bottom:5px}dd{margin-top:0;margin-bottom:10px;margin-left:0}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,'Courier New',monospace}code{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px;white-space:nowrap}kbd{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px}pre{background:#f0f0f0;border:1px solid #d1d1d1;color:#111;display:block;font-size:1.2rem;margin:0 0 10px;line-height:1.42857143;padding:10px;word-break:break-all;word-wrap:break-word}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}blockquote{border-left:0 solid #d1d1d1;margin:0 0 20px 40px;padding:0;font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:italic;line-height:1.42857143}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{color:#333;display:block;font-size:1rem;line-height:1.42857143}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote cite{font-style:normal}blockquote:before,blockquote:after{content:""}q{quotes:none}q:before,q:after{content:'';content:none}cite{font-style:normal}.example-clearfix-container-1{border:1px solid red}.example-clearfix-container-2{border:1px solid #0f0}.example-clearfix-container-2:before,.example-clearfix-container-2:after{content:"";display:table}.example-clearfix-container-2:after{clear:both}.example-clearfix-item.left{float:left}.example-clearfix-item.right{float:right}.example-visibility-hidden{height:0;visibility:hidden}.example-visually-hidden-1{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-visually-hidden-2{background:#fdf0d5;padding:5px;border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-visually-hidden-2{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.example-css-container{padding:20px;background:#e8e8e8}.example-rotate{background:red;position:absolute;height:20px;width:40px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.example-placeholder::-webkit-input-placeholder{color:#808080;font-weight:700}.example-placeholder:-moz-placeholder{color:#808080;font-weight:700}.example-placeholder::-moz-placeholder{color:#808080;font-weight:700}.example-placeholder:-ms-input-placeholder{color:#808080;font-weight:700}.example-background-gradient-1{background-color:#ccf;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #cff 0, #ccf 100%);background-image:linear-gradient(to bottom, #cff 0, #ccf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ccffff', endColorstr='#ccccff', GradientType=0)}.example-background-gradient-2{background-color:#ccf;background-repeat:repeat-x;background-image:-webkit-linear-gradient(left,color-stop( #cff 0),color-stop( #ccf 100%));background-image:linear-gradient(to right, #cff 0, #ccf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ccffff', endColorstr='#ccccff', GradientType=1)}.example-background-gradient-3-wrapper{background:#ffc;padding:10px}.example-background-gradient-3{background-color:rgba(255,255,255,0);background-repeat:repeat-x;background-image:-webkit-linear-gradient(left,color-stop(rgba(255,255,255,0) 0),color-stop( #ccf 100%));background-image:linear-gradient(to right,rgba(255,255,255,0) 0, #ccf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 255, 255, 0)',endColorstr='#ccccff',GradientType=1)}body{padding:15px;background-image:none}</style></head><body><nav class="bar top cf"><div class="container"><a href="index.html" class="brand">Magento UI Library</a><ul class="menu"><li><a href="#" data-toggle="dropdown-1" unselectable="on" class="dropdown-toggle">files</a><ul id="dropdown-1" hidden class="dropdown"><li><a href="actions-toolbar.html">actions-toolbar</a></li><li><a href="breadcrumbs.html">breadcrumbs</a></li><li><a href="buttons.html">buttons</a></li><li><a href="docs.html">docs</a></li><li><a href="dropdowns.html">dropdowns</a></li><li><a href="forms.html">forms</a></li><li><a href="icons.html">icons</a></li><li><a href="layout.html">layout</a></li><li><a href="lib.html">lib</a></li><li><a href="loaders.html">loaders</a></li><li><a href="messages.html">messages</a></li><li><a href="pages.html">pages</a></li><li><a href="popups.html">popups</a></li><li><a href="rating.html">rating</a></li><li><a href="resets.html">resets</a></li><li><a href="responsive.html">responsive</a></li><li><a href="sections.html">sections</a></li><li><a href="tables.html">tables</a></li><li><a href="tooltips.html">tooltips</a></li><li><a href="typography.html">typography</a></li><li><a href="utilities.html">utilities</a></li><li><a href="variables.html">variables</a></li></ul></li></ul><div class="nav"><button title="Table of Contents" data-toggle="nav-toc"><svg viewBox="0 0 512 512" height="22" width="22" class="icon"><path d="M108.9,403.1V462H50v-58.9H108.9z M108.9,285.4H50v58.9h58.9V285.4zM108.9,50H50v58.9h58.9V50z M108.9,167.7H50v58.9h58.9V167.7z M167.7,344.3H462v-58.9H167.7V344.3zM167.7,50v58.9H462V50H167.7z M167.7,462H462v-58.9H167.7V462z M167.7,226.6H462v-58.9H167.7V226.6z"></path></svg></button><input type="search" placeholder="Search" class="search"></div></div></nav><section class="container"><article id="icons" class="section"><div class="docs"><a href="#icons" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icons">Icons</h1> +</title><meta charset="utf-8"><style>*{-moz-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;border:0}body{padding:60px 0 40px;background-color:hsl(207,10%,90%);color:hsl(207,5%,30%)}.container{max-width:1300px;margin:0 auto;padding:0 20px}.section{position:relative;margin-bottom:20px}.docs{position:relative;z-index:2;width:68%;min-height:200px;background-color:hsl(207,0%,100%);background-clip:padding-box;border:1px solid hsla(207,5%,5%,.1);border-radius:5px;box-shadow:0 0 3px hsla(207,5%,5%,.1)}.code{position:absolute;top:5px;bottom:5px;right:0;z-index:1;width:33%;padding:10px 10px 10px 20px;border-radius:0 5px 5px 0;border:1px solid hsla(207,20%,10%,.1);background-color:hsla(207,20%,95%,.9);background-clip:padding-box;opacity:.5;-webkit-transition:opacity .4s;-moz-transition:opacity .4s;-o-transition:opacity .4s;transition:opacity .4s}.code:hover{opacity:1}.preview{background:hsl(207,0%,100%);border-top:1px solid hsl(207,30%,95%);position:relative;z-index:1}.preview-code+.preview{margin-top:0;border-top:0}.preview iframe{display:block;width:100%;height:100%;overflow:hidden}.preview-code{position:relative;z-index:2;display:block;width:100%;color:hsl(207,9%,37%);max-height:200px;padding:10px 20px;overflow-y:auto;background:hsl(207,30%,95%);border:1px solid hsl(207,30%,85%);border-left:0;border-right;box-shadow:inset 0 1px 2px hsla(207,30%,10%,.1);line-height:1.1!important;resize:none}.preview-code:focus{outline:0;background:hsl(207,30%,97%);box-shadow:inset 0 1px 2px hsla(207,30%,10%,.1),0 0 5px hsla(207,75%,75%,.9)}.preview-code:last-child{border-bottom:0;border-radius:0 0 5px 5px}.resizeable{padding:15px;overflow:auto;background:hsl(207,0%,100%);box-shadow:0 0 2px hsla(207,10%,20%,.2);resize:both}.preview-code,pre{white-space:pre-wrap;word-wrap:break-word;overflow-y:auto}.code pre{height:100%;margin-top:0}.bar{position:fixed;left:0;right:0;z-index:1010;min-height:40px;line-height:40px;background-image:-webkit-linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92));background-image:-moz-linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92));background-image:-o-linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92));background-image:linear-gradient(hsla(207,10%,35%,.97),hsla(207,5%,25%,.92))}.bar.top{top:0;box-shadow:0 1px 2px hsla(207,5%,0%,.2)}.bar.bottom{bottom:0;box-shadow:0 -1px 2px hsla(207,5%,0%,.2)}.bar ul{margin:0!important}.bar li{display:block;list-style:none}.bar .icon path{fill:hsla(27,10%,75%,.75)}.docs .icon path{fill:hsla(207,10%,75%,.5)}.docs .permalink:hover .icon path{fill:hsl(207,10%,75%)}.bar button{color:hsla(27,10%,75%,.75)}.bar button:hover .icon path,.bar button.is-active .icon path{fill:hsl(27,10%,85%)}.bar button:hover,.bar button.is-active{color:hsl(27,10%,85%)}.bar .icon{vertical-align:middle;display:inline-block}.bar,.bar a,.bar a:visited{color:hsl(27,10%,85%);text-shadow:1px 1px 0 hsla(27,5%,0%,.5)}.bar a:hover,.bar a.is-active{color:hsl(27,10%,95%);text-shadow:1px 1px 0 hsla(27,5%,0%,1);text-decoration:none}.brand{float:left;margin-right:20px;font-weight:700;font-size:16px;text-decoration:none}.brand,a.brand,a.brand:visited{color:hsl(27,5%,5%);text-shadow:1px 1px 0 hsla(27,5%,100%,.2)}.brand:hover,a.brand:hover{color:hsl(27,5%,0%);text-shadow:1px 1px 0 hsla(27,5%,100%,.3);text-decoration:none}.menu{font-size:12px}.menu>li{float:left;position:relative}.menu a{display:block;margin-right:15px}.dropdown-toggle{position:relative;padding-right:15px}.dropdown-toggle:after{display:block;position:absolute;right:0;top:18px;content:'';border:4px solid;border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.nav-results,.dropdown{position:absolute;z-index:1020;top:32px;left:-16px;width:175px;max-height:500px;padding:10px 0;overflow-y:auto;word-wrap:break-word;font-size:11px;line-height:20px;background-color:hsla(207,10%,25%,.97);border:1px solid hsla(207,5%,70%,.3);border-radius:3px;box-shadow:0 0 3px hsla(207,5%,0%,.2)}.toc-list{width:200px}.nav-results{right:0;width:200px;left:auto;padding:5px 0}.nav-results-filename{display:block;font-size:10px;opacity:.75}.nav-results a{display:block;line-height:15px;padding:5px 10px}.nav-results li:not([hidden])~li a{border-top:1px solid hsla(27,10%,90%,.1)}.dropdown a{padding:0 15px}.dropdown li:hover{background-color:hsl(207,10%,22%)}.nav{float:right;position:relative}.nav input[type="search"]{padding:2px 4px;color:#fff;width:150px;border:1px solid hsla(207,5%,0%,.3);background:hsla(207,12%,40%,.9);box-shadow:inset 1px 1px 3px hsla(207,5%,0%,.05),1px 1px 0 hsla(207,5%,100%,.05);border-radius:10px;-webkit-appearance:textfield}.nav input[type="search"]:focus{outline:0;background:hsla(207,7%,45%,.9)}.settings{text-align:center}.bar button{display:inline-block;vertical-align:middle;padding:0 5px;margin:0 3px;background:transparent}.bar button:first-child{margin-left:0}.settings .auto{line-height:32px;font-size:11px;font-weight:700;letter-spacing:-1px;text-shadow:none;text-transform:uppercase}body{font-family:sans-serif;font-size:14px;line-height:1.618}.docs pre,p,ol,ul,dl,figure,blockquote,table{margin-left:20px;margin-right:20px}.preview,.docs pre,p,ol,ul,dl,figure,blockquote,table{margin-top:10px}ul ul,ol ol,ul ol,ol ul,blockquote p:last-child{margin-top:0}ul,ol{padding-left:1.5em}p:last-child,ol:last-child,ul:last-child,dl:last-child{margin-bottom:20px}hr,h1,h2,h3,h4,h5,h6{margin:1em 20px .5em}h1:first-of-type{margin-top:20px}h1,h2,h3,h4,h5,h6{line-height:1.2;color:hsl(207,10%,50%)}h1 a,h1 a:hover,h1 a:visited{color:inherit;text-decoration:inherit}h1{font-size:3.052em;font-weight:400;color:hsl(207,10%,45%)}h2{font-size:1.953em}h3{font-size:1.536em}h1,h2,h3{letter-spacing:-.025em}h4{font-size:1.25em}h5{font-size:1em;text-transform:uppercase}h6{font-size:1em}.permalink{position:absolute;top:15px;right:15px}a{color:hsl(207,90%,50%);text-decoration:none}a:hover{color:hsl(207,95%,40%);text-decoration:underline}a:visited{color:hsl(207,100%,35%)}.preview-code,pre,code,var{font-style:normal;font-family:"Ubuntu Mono","Andale Mono","DejaVu Sans Mono","Monaco","Bitstream Vera Sans Mono","Consolas","Lucida Console",monospace;font-size:12px}.docs pre,code,var{padding:.1em 3px;background:hsla(207,5%,0%,.025);border:1px solid hsla(207,5%,0%,.05);border-radius:3px}.code pre{line-height:1.1!important}pre code{padding:0;background:transparent;border:0}.cf:before,.cf:after{content:'';display:table}.cf:after{clear:both}[unselectable="on"]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[hidden]{display:none!important}small{font-size:85%;opacity:.9}.docs .vars_list{width:100%}.docs .vars_list th,.docs .vars_list td{width:33%}.docs pre th{text-align:left}.docs pre table{border-collapse:collapse;margin:0}.docs th,.docs td{border:0;padding:9px 10px 9px 0;vertical-align:top}.docs tr th:last-child,.docs tr td:last-child{padding-right:0}.docs pre th{font-weight:400}.docs pre th.vars_head{border-bottom:1px solid #e5e5e5;color:#707070;white-space:nowrap}.docs pre th.vars_section{border-bottom:1px solid #e5e5e5;color:#333;font-size:18px;padding-top:30px}.vars_value{color:#338bb8}.docs li p{margin:0 0 20px}.dropdown a{text-transform:capitalize}#default-button #default-button-big+.preview+.preview-code{display:block}#actions-toolbar-alignment .preview-code,#reverse-primary-and-secondary-blocks .preview-code,#actions-toolbar-indents-customizations .preview-code,#actionstoolbarclearfloats-mixin .preview-code,#responsive-actions-toolbar .preview-code,#button-with-gradient-background .preview-code,#primary-button .preview-code,#button-as-an-icon .preview-code,#button-with-an-icon-on-the-left-or-right-side-of-the-text .preview-code,#button-with-fixed-width .preview-code,#button-as-a-link .preview-code,#link-as-a-button .preview-code,#buttonstyled-breadcrumbs-with-gradient-background-border-and-no-separating-symbol .preview-code,#breadcrumbs-with-solid-background .preview-code,#pagination-without-label-with-solid-background .preview-code,#pagination-with-label-and-text-previousnext-links .preview-code,#pagination-with-label-and-gradient-background-on-links .preview-code,#fixed-height-popup .preview-code,#fixed-content-height-popup .preview-code,#margins-for-header-content-and-footer-block-in-popup .preview-code,#popup-titles-with-styled-as-theme-headings .preview-code,#popup-action-toolbar .preview-code,#popup-close-button-without-an-icon .preview-code,#modify-icon-of-popup-close-button .preview-code,#modify-overlay-styles .preview-code,#rating-summary-multiple-ratings .preview-code,#rating-summary-hide-label .preview-code,#rating-summary-icons-symbol .preview-code,#rating-summary-icons-color .preview-code,#rating-summary-set-number-of-icons .preview-code,#rating-summary .preview-code,#rating-with-vote-icon-symbol .preview-code,#rating-with-vote-setup-icons-colors .preview-code,#rating-with-vote-setup-number-of-icons .preview-code,#tabs-with-content-top-border .preview-code,#accordion-mixin-variables .preview-code,#tabs-base .preview-code,#accordion-base .preview-code,#warning-message .preview-code,#error-message .preview-code,#success-message .preview-code,#notice-message .preview-code,#message-with-inner-icon .preview-code,#message-with-lateral-icon .preview-code,#custom-message-style .preview-code,#modify-dropdown-list-styles .preview-code,#dropdown-with-icon-customization .preview-code,#split-button-button-styling .preview-code,#split-button-icon-customization .preview-code,#split-button-dropdown-list-customization .preview-code,#table-cells-resize .preview-code,#table-caption .preview-code,#table-typography .preview-code,#table-background-customization .preview-code,#table-borders-customization .preview-code,#table-without-borders .preview-code,#table-with-horizontal-borders .preview-code,#table-with-vertical-borders .preview-code,#striped-table .preview-code,#responsive-table-technics-1 .preview-code,#responsive-table-technics-2 .preview-code,#fontsize-mixin .preview-code,#word-breaking-mixin .preview-code,#word-breaking-mixin .preview-code,#text-overflow-mixin .preview-code,#text-hide .preview-code,#hyphens .preview-code,#font-style-and-color .preview-code,#reset-list-styles .preview-code,#inlineblock-list-item-styling .preview-code,#link-styling-mixin .preview-code,#heading-styling-mixin .preview-code,#icon-with-image-or-sprite .preview-code,#change-the-size-of-font-icon .preview-code,#sprite-and-font-icons-for-blank-theme .preview-code,#icon-position-for-an-icon-with-image-or-sprite .preview-code{display:none}article[id$="-variables"] .docs,#resets .docs,#ratings .docs,#tabs-and-accordions .docs,#messages .docs,#dropdown-and-split-buttons-mixins .docs,#font-face-mixin .docs,#layout .docs,#forms-mixins .docs,#including-magento-ui-library-to-your-theme .docs,#global-forms-elements-customization .docs,#mobile-off-canvas-navigation .docs,#desktop-navigation .docs,#utilities .docs,#layout-width .docs,#responsive-breakpoints .docs,#responsive-mixins-usage .docs{width:100%}article[id$="-variables"] .code{display:none}article[id$="-variables"] .docs pre{background:#fff;border:0;margin-top:0}</style><script type="text/preview">(function(){"use strict";var a=function(a){return Array.prototype.slice.call(a)},b=document.getElementsByTagName("body")[0],c=["link","visited","hover","active","focus","target","enabled","disabled","checked"],d=new RegExp(":(("+c.join(")|(")+"))","gi"),e=a(document.styleSheets).map(function(b){return a(b.cssRules).filter(function(a){return a.selectorText&&a.selectorText.match(d)}).map(function(a){return a.cssText.replace(d,".\\3A $1")}).join("")}).join("");if(e.length){var f=document.createElement("style");f.innerText=e;var g=document.getElementsByTagName("style")[0];g.parentNode.insertBefore(f,g)}var h=function(){var a=window.getComputedStyle(b,null);return function(){if(b.childElementCount===0)return b.offsetHeight;var c=b.getElementsByTagName("*"),d=[];for(var e=0,f=c.length;e<f;e++)d.push(c[e].offsetTop+c[e].offsetHeight+parseInt(window.getComputedStyle(c[e],null).getPropertyValue("margin-bottom")));var g=Math.max.apply(Math,d);return g+=parseInt(a.getPropertyValue("padding-bottom"),10),Math.max(g,b.offsetHeight)}}(),i={getHeight:function(){window.parent.postMessage({height:h()},"*")}};window.addEventListener("message",function(a){if(a.data==null)return;typeof a.data=="string"&&i[a.data]()},!1)})()</script><style type="text/preview">.actions-toolbar:before,.actions-toolbar:after{content:"";display:table}.actions-toolbar:after{clear:both}.actions-toolbar .primary{float:left}.actions-toolbar .secondary{float:right}.actions-toolbar .primary,.actions-toolbar .secondary{display:inline-block}.actions-toolbar .primary a.action,.actions-toolbar .secondary a.action{display:inline-block}.actions-toolbar .primary .action{margin:0 5px 0 0}.actions-toolbar .secondary a.action{margin-top:6px}.example-actions-toolbar-1:before,.example-actions-toolbar-1:after{content:"";display:table}.example-actions-toolbar-1:after{clear:both}.example-actions-toolbar-1 .primary{float:left}.example-actions-toolbar-1 .secondary{float:right}.example-actions-toolbar-1 .primary,.example-actions-toolbar-1 .secondary{display:inline-block}.example-actions-toolbar-1 .primary a.action,.example-actions-toolbar-1 .secondary a.action{display:inline-block}.example-actions-toolbar-1 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-1 .secondary a.action{margin-top:6px}.example-actions-toolbar-1:before,.example-actions-toolbar-1:after{content:"";display:table}.example-actions-toolbar-1:after{clear:both}.example-actions-toolbar-1 .primary{float:left}.example-actions-toolbar-1 .secondary{float:right}.example-actions-toolbar-1 .primary,.example-actions-toolbar-1 .secondary{display:inline-block}.example-actions-toolbar-1 .primary a.action,.example-actions-toolbar-1 .secondary a.action{display:inline-block}.example-actions-toolbar-1 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-1 .secondary a.action{margin-top:6px}.example-actions-toolbar-2:before,.example-actions-toolbar-2:after{content:"";display:table}.example-actions-toolbar-2:after{clear:both}.example-actions-toolbar-2 .primary{float:left}.example-actions-toolbar-2 .secondary{float:right}.example-actions-toolbar-2 .primary,.example-actions-toolbar-2 .secondary{display:inline-block}.example-actions-toolbar-2 .primary a.action,.example-actions-toolbar-2 .secondary a.action{display:inline-block}.example-actions-toolbar-2 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-2 .secondary a.action{margin-top:6px}.example-actions-toolbar-3{text-align:left}.example-actions-toolbar-3:before,.example-actions-toolbar-3:after{content:"";display:table}.example-actions-toolbar-3:after{clear:both}.example-actions-toolbar-3 .primary{float:left}.example-actions-toolbar-3 .primary,.example-actions-toolbar-3 .secondary{display:inline-block}.example-actions-toolbar-3 .primary a.action,.example-actions-toolbar-3 .secondary a.action{display:inline-block}.example-actions-toolbar-3 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-3 .secondary a.action{margin-top:6px}.example-actions-toolbar-4{text-align:right}.example-actions-toolbar-4:before,.example-actions-toolbar-4:after{content:"";display:table}.example-actions-toolbar-4:after{clear:both}.example-actions-toolbar-4 .secondary{float:right}.example-actions-toolbar-4 .primary,.example-actions-toolbar-4 .secondary{display:inline-block}.example-actions-toolbar-4 .primary a.action,.example-actions-toolbar-4 .secondary a.action{display:inline-block}.example-actions-toolbar-4 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-4 .secondary a.action{margin-top:6px}.example-actions-toolbar-5{text-align:center}.example-actions-toolbar-5:before,.example-actions-toolbar-5:after{content:"";display:table}.example-actions-toolbar-5:after{clear:both}.example-actions-toolbar-5 .primary,.example-actions-toolbar-5 .secondary{vertical-align:top}.example-actions-toolbar-5 .primary,.example-actions-toolbar-5 .secondary{display:inline-block}.example-actions-toolbar-5 .primary a.action,.example-actions-toolbar-5 .secondary a.action{display:inline-block}.example-actions-toolbar-5 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-5 .secondary a.action{margin-top:6px}.example-actions-toolbar-6:before,.example-actions-toolbar-6:after{content:"";display:table}.example-actions-toolbar-6:after{clear:both}.example-actions-toolbar-6 .primary{float:right}.example-actions-toolbar-6 .secondary{float:left}.example-actions-toolbar-6 .primary,.example-actions-toolbar-6 .secondary{display:inline-block}.example-actions-toolbar-6 .primary a.action,.example-actions-toolbar-6 .secondary a.action{display:inline-block}.example-actions-toolbar-6 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-6 .secondary a.action{margin-top:6px}.example-actions-toolbar-7{text-align:left}.example-actions-toolbar-7:before,.example-actions-toolbar-7:after{content:"";display:table}.example-actions-toolbar-7:after{clear:both}.example-actions-toolbar-7 .secondary{float:left}.example-actions-toolbar-7 .primary,.example-actions-toolbar-7 .secondary{display:inline-block}.example-actions-toolbar-7 .primary a.action,.example-actions-toolbar-7 .secondary a.action{display:inline-block}.example-actions-toolbar-7 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-7 .secondary a.action{margin-top:6px}.example-actions-toolbar-8{text-align:right}.example-actions-toolbar-8:before,.example-actions-toolbar-8:after{content:"";display:table}.example-actions-toolbar-8:after{clear:both}.example-actions-toolbar-8 .primary{float:right}.example-actions-toolbar-8 .primary,.example-actions-toolbar-8 .secondary{display:inline-block}.example-actions-toolbar-8 .primary a.action,.example-actions-toolbar-8 .secondary a.action{display:inline-block}.example-actions-toolbar-8 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-8 .secondary a.action{margin-top:6px}.example-actions-toolbar-9{margin:10px;padding:10px}.example-actions-toolbar-9:before,.example-actions-toolbar-9:after{content:"";display:table}.example-actions-toolbar-9:after{clear:both}.example-actions-toolbar-9 .primary{float:left}.example-actions-toolbar-9 .secondary{float:right}.example-actions-toolbar-9 .primary,.example-actions-toolbar-9 .secondary{display:inline-block}.example-actions-toolbar-9 .primary a.action,.example-actions-toolbar-9 .secondary a.action{display:inline-block}.example-actions-toolbar-9 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-9 .secondary a.action{margin-top:6px}.example-actions-toolbar-10{text-align:left}.example-actions-toolbar-10:before,.example-actions-toolbar-10:after{content:"";display:table}.example-actions-toolbar-10:after{clear:both}.example-actions-toolbar-10 .primary{float:left}.example-actions-toolbar-10 .primary,.example-actions-toolbar-10 .secondary{display:inline-block}.example-actions-toolbar-10 .primary a.action,.example-actions-toolbar-10 .secondary a.action{display:inline-block}.example-actions-toolbar-10 .primary .action{margin:0 50px 0 0}.example-actions-toolbar-10 .secondary a.action{margin-top:6px}.example-actions-toolbar-11{text-align:left}.example-actions-toolbar-11:before,.example-actions-toolbar-11:after{content:"";display:table}.example-actions-toolbar-11:after{clear:both}.example-actions-toolbar-11 .primary{float:left}.example-actions-toolbar-11 .primary,.example-actions-toolbar-11 .secondary{display:inline-block}.example-actions-toolbar-11 .primary a.action,.example-actions-toolbar-11 .secondary a.action{display:inline-block}.example-actions-toolbar-11 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-11 .secondary .action{margin:0 50px 0 0}.example-actions-toolbar-11 .secondary a.action{margin-top:6px}.example-actions-toolbar-12:before,.example-actions-toolbar-12:after{content:"";display:table}.example-actions-toolbar-12:after{clear:both}.example-actions-toolbar-12 .primary{float:left}.example-actions-toolbar-12 .secondary{float:right}.example-actions-toolbar-12 .primary,.example-actions-toolbar-12 .secondary{display:inline-block}.example-actions-toolbar-12 .primary a.action,.example-actions-toolbar-12 .secondary a.action{display:inline-block}.example-actions-toolbar-12 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-12 .secondary a.action{margin-top:6px}.example-actions-toolbar-12:before,.example-actions-toolbar-12:after{content:"";display:table}.example-actions-toolbar-12:after{clear:both}.example-actions-toolbar-12 .primary{float:left}.example-actions-toolbar-12 .secondary{float:right}.example-actions-toolbar-12 .primary,.example-actions-toolbar-12 .secondary{display:inline-block}.example-actions-toolbar-12 .primary a.action,.example-actions-toolbar-12 .secondary a.action{display:inline-block}.example-actions-toolbar-12 .primary .action{margin:0 5px 0 0}.example-actions-toolbar-12 .secondary a.action{margin-top:6px}@media only screen and (max-width: 768px){.example-actions-toolbar-12 .primary,.example-actions-toolbar-12 .secondary{ display:block;float:none}}.example-breadcrumbs-1{margin:0 0 20px}.example-breadcrumbs-1 .items{font-size:1.2rem;color:#a3a3a3;margin:0;padding:0;list-style:none none}.example-breadcrumbs-1 .items>li{display:inline-block;vertical-align:top}.example-breadcrumbs-1 .item{margin:0}.example-breadcrumbs-1 a{color:#333;text-decoration:none}.example-breadcrumbs-1 a:visited{color:#333;text-decoration:none}.example-breadcrumbs-1 a:hover{color:#333;text-decoration:underline}.example-breadcrumbs-1 a:active{color:#333;text-decoration:none}.example-breadcrumbs-1 strong{font-weight:400}.example-breadcrumbs-1 .item:not(:last-child){display:inline-block;text-decoration:none}.example-breadcrumbs-1 .item:not(:last-child):after{font-family:'icons-blank-theme';content:'\e608';font-size:24px;line-height:18px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-breadcrumbs-2{margin:0 0 20px}.example-breadcrumbs-2 .items{font-size:1.2rem;color:#1979c3;margin:0;padding:0;list-style:none none}.example-breadcrumbs-2 .items>li{display:inline-block;vertical-align:top}.example-breadcrumbs-2 .item{margin:0}.example-breadcrumbs-2 a{background-color:#ccc;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #f4f4f4 0, #ccc 100%);background-image:linear-gradient(to bottom, #f4f4f4 0, #ccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f4f4', endColorstr='#cccccc', GradientType=0);border:1px solid #ccc;display:inline-block;padding:3px 5px;color:#333;text-decoration:none}.example-breadcrumbs-2 a:visited{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#333;text-decoration:none}.example-breadcrumbs-2 a:hover{background-color:#f4f4f4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #ccc 0, #f4f4f4 100%);background-image:linear-gradient(to bottom, #ccc 0, #f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#f4f4f4', GradientType=0);color:#333;text-decoration:none}.example-breadcrumbs-2 a:active{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#333;text-decoration:none}.example-breadcrumbs-2 strong{background-color:#ff5501;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #f7b32e 0, #ff5501 100%);background-image:linear-gradient(to bottom, #f7b32e 0, #ff5501 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7b32e', endColorstr='#ff5501', GradientType=0);border:1px solid #d04b0a;display:inline-block;padding:3px 5px;font-weight:400}.example-breadcrumbs-2 .item:not(:last-child){display:inline-block;text-decoration:none}.example-breadcrumbs-2 .item:not(:last-child):after{font-family:'icons-blank-theme';content:'\e608';font-size:24px;line-height:18px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-breadcrumbs-3{margin:0 0 20px}.example-breadcrumbs-3 .items{font-size:1.2rem;color:#333;margin:0;padding:0;list-style:none none}.example-breadcrumbs-3 .items>li{display:inline-block;vertical-align:top}.example-breadcrumbs-3 .item{margin:0}.example-breadcrumbs-3 a{background:#f4f4f4;display:inline-block;padding:3px 5px;color:#333;text-decoration:none}.example-breadcrumbs-3 a:visited{color:#333;text-decoration:none}.example-breadcrumbs-3 a:hover{background:#ccc;color:#333;text-decoration:none}.example-breadcrumbs-3 a:active{color:#333;text-decoration:none}.example-breadcrumbs-3 strong{background:#e7e7e7;display:inline-block;padding:3px 5px;font-weight:400}.example-breadcrumbs-3 .item:not(:last-child){display:inline-block;text-decoration:none}.example-breadcrumbs-3 .item:not(:last-child):after{font-family:'icons-blank-theme';content:'\e608';font-size:24px;line-height:18px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-breadcrumbs-3 .item a{position:relative;margin:0 11px 0 0}.example-breadcrumbs-3 .item a:after{border:12px solid transparent;height:0;width:0;border-left-color:#f4f4f4;content:"";position:absolute;display:block;top:0;right:-23px}.example-breadcrumbs-3 .item a:hover:after{border-color:transparent transparent transparent #ccc}button{background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;border-radius:3px}button:focus,button:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}button:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}button.disabled,button[disabled],fieldset[disabled] button{cursor:default;pointer-events:none;opacity:.5}button:active,button:focus{box-shadow:inset 0 2px 1px rgba(0,0,0,.12)}.example-button-1.example-button-2{line-height:2.2rem;padding:14px 17px;font-size:1.8rem}.example-button-1.example-button-3{line-height:1.2rem;padding:5px 8px;font-size:1.1rem;border-radius:0;color:#000}.example-button-1.example-button-3:hover,.example-button-1.example-button-3.active{color:#000}.example-button-10{background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400}.example-button-10>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-button-10:before{font-family:'icons-blank-theme';content:'\e611';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-button-10:hover:before{color:inherit}.example-button-10:active:before{color:inherit}.example-button-10:focus,.example-button-10:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-10:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-10.disabled,.example-button-10[disabled],fieldset[disabled] .example-button-10{cursor:default;pointer-events:none;opacity:.5}.example-button-10:focus,.example-button-10:active{background:0;border:0}.example-button-10:hover{background:0;border:0}.example-button-10.disabled,.example-button-10[disabled],fieldset[disabled] .example-button-10{cursor:not-allowed;pointer-events:none;opacity:.5}.example-button-11{background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;display:inline-block;text-decoration:none}.example-button-11:before{font-family:'icons-blank-theme';content:'\e611';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-button-11:hover:before{color:inherit}.example-button-11:active:before{color:inherit}.example-button-11:focus,.example-button-11:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-11:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-11.disabled,.example-button-11[disabled],fieldset[disabled] .example-button-11{cursor:default;pointer-events:none;opacity:.5}.example-button-12{background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;display:inline-block;text-decoration:none}.example-button-12:after{font-family:'icons-blank-theme';content:'\e611';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-button-12:hover:after{color:inherit}.example-button-12:active:after{color:inherit}.example-button-12:focus,.example-button-12:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-12:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-12.disabled,.example-button-12[disabled],fieldset[disabled] .example-button-12{cursor:default;pointer-events:none;opacity:.5}.example-button-13{background-image:none;background:#f2f2f2;padding:7px 15px;width:100px;color:#333;border:1px solid #cdcdcd;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle}.example-button-13:focus,.example-button-13:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-13:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-13.disabled,.example-button-13[disabled],fieldset[disabled] .example-button-13{cursor:default;pointer-events:none;opacity:.5}.example-button-4{background-image:none;background:#1979c3;padding:7px 15px;color:#fff;border:1px solid #1979c3;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;box-sizing:border-box;margin:3px;vertical-align:middle}.example-button-4:focus,.example-button-4:active{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-4:hover{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-4.disabled,.example-button-4[disabled],fieldset[disabled] .example-button-4{cursor:default;pointer-events:none;opacity:.5}.example-button-4:active{box-shadow:inset 0 3px 1px rgba(0,0,0,.29)}.example-button-4.example-button-5{line-height:2.2rem;padding:7px 35px;font-size:1.8rem}.example-button-4.example-button-6{line-height:1.2rem;padding:5px 8px;font-size:1.1rem;color:#fff}.example-button-4.example-button-6:hover,.example-button-4.example-button-6.active{color:#fff}.example-button-7{background-image:none;background:#f2f2f2;background-color:#006bb4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #1979c3 0, #006bb4 100%);background-image:linear-gradient(to bottom, #1979c3 0, #006bb4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#1979c3', endColorstr='#006bb4', GradientType=0);padding:7px 15px;color:#fff;border:1px solid #1979c3;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:3px;vertical-align:middle;border-radius:3px}.example-button-7:focus,.example-button-7:active{background:#e2e2e2;background-color:#006bb4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #006bb4 0, #006bb4 100%);background-image:linear-gradient(to bottom, #006bb4 0, #006bb4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006bb4', endColorstr='#006bb4', GradientType=0);border:1px solid #006bb4;color:#fff}.example-button-7:hover{background:#e2e2e2;background-color:#1979c3;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #006bb4 0, #1979c3 100%);background-image:linear-gradient(to bottom, #006bb4 0, #1979c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#006bb4', endColorstr='#1979c3', GradientType=0);border:1px solid #006bb4;color:#fff}.example-button-7.disabled,.example-button-7[disabled],fieldset[disabled] .example-button-7{cursor:default;pointer-events:none;opacity:.5}.example-button-7:active{box-shadow:inset 0 3px 1px rgba(0,0,0,.29)}.example-button-8{background:0;border:0;display:inline;line-height:1.42857143;margin:0;padding:0;color:#1979c3;text-decoration:none;font-weight:400}.example-button-8:visited{color:#1979c3;text-decoration:none}.example-button-8:hover{color:#006bb4;text-decoration:underline}.example-button-8:active{color:#ff5501;text-decoration:underline}.example-button-8:hover{color:#006bb4}.example-button-8:hover,.example-button-8:active,.example-button-8:focus{background:0;border:0}.example-button-8.disabled,.example-button-8[disabled],fieldset[disabled] .example-button-8{color:#1979c3;text-decoration:underline;cursor:default;pointer-events:none;opacity:.5}.example-button-8:active{box-shadow:none}.example-button-9{text-decoration:none;background-image:none;background:#f2f2f2;padding:7px 15px;color:#333;border:1px solid #cdcdcd;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.6rem;box-sizing:border-box;margin:0;vertical-align:middle;margin:3px;border-radius:3px;font-weight:700}.example-button-9:hover,.example-button-9:active,.example-button-9:focus{text-decoration:none}.example-button-9:focus,.example-button-9:active{background:#e2e2e2;border:1px solid #cdcdcd;color:#333}.example-button-9:hover{background:#e2e2e2;border:1px solid #cdcdcd;color:#555}.example-button-9.disabled,.example-button-9[disabled],fieldset[disabled] .example-button-9{cursor:default;pointer-events:none;opacity:.5}.example-button-9:active{box-shadow:inset 0 3px 1px rgba(0,0,0,.29)}.example-button-14{background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400}.example-button-14:focus,.example-button-14:active{background:0;border:0}.example-button-14:hover{background:0;border:0}.example-button-14.disabled,.example-button-14[disabled],fieldset[disabled] .example-button-14{cursor:not-allowed;pointer-events:none;opacity:.5}.example-button-15{background-image:none;background:#1979c3;padding:7px 15px;color:#fff;border:1px solid #1979c3;cursor:pointer;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:1.4rem;font-weight:700;box-sizing:border-box;vertical-align:middle;background:#f2f2f2;color:#333;border:1px solid #cdcdcd}.example-button-15:focus,.example-button-15:active{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-15:hover{background:#006bb4;border:1px solid #006bb4;color:#fff}.example-button-15.disabled,.example-button-15[disabled],fieldset[disabled] .example-button-15{cursor:default;pointer-events:none;opacity:.5}.example-button-15:focus,.example-button-15:active{background:#e2e2e2;color:#333;border:1px solid #cdcdcd}.example-button-15:hover{background:#e2e2e2;color:#555;border:1px solid #cdcdcd}.example-button-17{line-height:2.2rem;padding:14px 17px;font-size:1.8rem;font-size:1.4rem;line-height:1.6rem;padding:7px 15px}.example-button-18{font-size:1rem;line-height:1.2rem;padding:4px 10px}.example-dropdown-1{display:inline-block;position:relative}.example-dropdown-1:before,.example-dropdown-1:after{content:"";display:table}.example-dropdown-1:after{clear:both}.example-dropdown-1 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-1 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-1 .action.toggle:hover:after{color:inherit}.example-dropdown-1 .action.toggle:active:after{color:inherit}.example-dropdown-1 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-1 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-1 .action.toggle.active:hover:after{color:inherit}.example-dropdown-1 .action.toggle.active:active:after{color:inherit}.example-dropdown-1 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-1 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-1 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-1 ul.dropdown:before,.example-dropdown-1 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-1 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-1 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-1 ul.dropdown:before{top:-12px;left:10px}.example-dropdown-1 ul.dropdown:after{top:-14px;left:9px}.example-dropdown-1.active{overflow:visible}.example-dropdown-1.active ul.dropdown{display:block}.example-dropdown-2{display:inline-block;position:relative}.example-dropdown-2:before,.example-dropdown-2:after{content:"";display:table}.example-dropdown-2:after{clear:both}.example-dropdown-2 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-2 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-2 .action.toggle:hover:after{color:inherit}.example-dropdown-2 .action.toggle:active:after{color:inherit}.example-dropdown-2 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-2 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-2 .action.toggle.active:hover:after{color:inherit}.example-dropdown-2 .action.toggle.active:active:after{color:inherit}.example-dropdown-2 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-2 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-2 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-2 ul.dropdown:before,.example-dropdown-2 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-2 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-2 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-2 ul.dropdown:before{top:-12px;left:10px}.example-dropdown-2 ul.dropdown:after{top:-14px;left:9px}.example-dropdown-2.active{overflow:visible}.example-dropdown-2.active ul.dropdown{display:block}.example-dropdown-3{display:inline-block;position:relative}.example-dropdown-3:before,.example-dropdown-3:after{content:"";display:table}.example-dropdown-3:after{clear:both}.example-dropdown-3 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-3 .action.toggle:before{font-family:'icons-blank-theme';content:'\e61c';font-size:22px;line-height:1;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-3 .action.toggle:hover:before{color:red}.example-dropdown-3 .action.toggle:active:before{color:inherit}.example-dropdown-3 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-3 .action.toggle.active:before{font-family:'icons-blank-theme';content:'\e60f';font-size:22px;line-height:1;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-3 .action.toggle.active:hover:before{color:red}.example-dropdown-3 .action.toggle.active:active:before{color:inherit}.example-dropdown-3 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-3 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-3 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-3 ul.dropdown:before,.example-dropdown-3 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-3 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-3 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-3 ul.dropdown:before{top:-12px;left:10px}.example-dropdown-3 ul.dropdown:after{top:-14px;left:9px}.example-dropdown-3.active{overflow:visible}.example-dropdown-3.active ul.dropdown{display:block}.example-dropdown-5{display:inline-block;position:relative}.example-dropdown-5:before,.example-dropdown-5:after{content:"";display:table}.example-dropdown-5:after{clear:both}.example-dropdown-5 .action.toggle{cursor:pointer;display:inline-block;text-decoration:none}.example-dropdown-5 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:1;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-5 .action.toggle:hover:after{color:inherit}.example-dropdown-5 .action.toggle:active:after{color:inherit}.example-dropdown-5 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-5 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:1;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-5 .action.toggle.active:hover:after{color:inherit}.example-dropdown-5 .action.toggle.active:active:after{color:inherit}.example-dropdown-5 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#eef1f3;border:2px solid #ced1d4;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none}.example-dropdown-5 ul.dropdown li{margin:0;padding:10px;border-top:2px solid #e8eaed}.example-dropdown-5 ul.dropdown li:first-child{border:0}.example-dropdown-5 ul.dropdown li:hover{background:#d8e3e3;cursor:pointer}.example-dropdown-5.active{overflow:visible}.example-dropdown-5.active ul.dropdown{display:block}.example-dropdown-6{display:inline-block;position:relative}.example-dropdown-6:before,.example-dropdown-6:after{content:"";display:table}.example-dropdown-6:after{clear:both}.example-dropdown-6 .action.split{float:left;margin:0}.example-dropdown-6 .action.toggle{float:right;margin:0}.example-dropdown-6 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-6 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-6 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-6 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-6 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-6 .action.toggle:hover:after{color:inherit}.example-dropdown-6 .action.toggle:active:after{color:inherit}.example-dropdown-6 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-6 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-6 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-6 .action.toggle.active:hover:after{color:inherit}.example-dropdown-6 .action.toggle.active:active:after{color:inherit}.example-dropdown-6 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-6 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-6 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-6 ul.dropdown:before,.example-dropdown-6 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-6 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-6 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-6 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-6 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-6.active{overflow:visible}.example-dropdown-6.active ul.dropdown{display:block}.split.example-dropdown-7{display:inline-block;position:relative}.split.example-dropdown-7:before,.split.example-dropdown-7:after{content:"";display:table}.split.example-dropdown-7:after{clear:both}.split.example-dropdown-7 .action.split{float:left;margin:0}.split.example-dropdown-7 .action.toggle{float:right;margin:0}.split.example-dropdown-7 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.split.example-dropdown-7 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.split.example-dropdown-7 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.split.example-dropdown-7 .action.toggle:hover:after{color:inherit}.split.example-dropdown-7 .action.toggle:active:after{color:inherit}.split.example-dropdown-7 .action.toggle.active{display:inline-block;text-decoration:none}.split.example-dropdown-7 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.split.example-dropdown-7 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.split.example-dropdown-7 .action.toggle.active:hover:after{color:inherit}.split.example-dropdown-7 .action.toggle.active:active:after{color:inherit}.split.example-dropdown-7 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.split.example-dropdown-7 ul.dropdown li{margin:0;padding:3px 5px}.split.example-dropdown-7 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.split.example-dropdown-7 ul.dropdown:before,.split.example-dropdown-7 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.split.example-dropdown-7 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.split.example-dropdown-7 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.split.example-dropdown-7 ul.dropdown:before{top:-12px;right:10px}.split.example-dropdown-7 ul.dropdown:after{top:-14px;right:9px}.split.example-dropdown-7.active{overflow:visible}.split.example-dropdown-7.active ul.dropdown{display:block}.example-dropdown-8{display:inline-block;position:relative}.example-dropdown-8:before,.example-dropdown-8:after{content:"";display:table}.example-dropdown-8:after{clear:both}.example-dropdown-8 .action.split{float:left;margin:0}.example-dropdown-8 .action.toggle{float:right;margin:0}.example-dropdown-8 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-8 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-8 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-8 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-8 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-8 .action.toggle:hover:after{color:inherit}.example-dropdown-8 .action.toggle:active:after{color:inherit}.example-dropdown-8 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-8 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-8 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-8 .action.toggle.active:hover:after{color:inherit}.example-dropdown-8 .action.toggle.active:active:after{color:inherit}.example-dropdown-8 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-8 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-8 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-8 ul.dropdown:before,.example-dropdown-8 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-8 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-8 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-8 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-8 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-8.active{overflow:visible}.example-dropdown-8.active ul.dropdown{display:block}.example-dropdown-9{display:inline-block;position:relative}.example-dropdown-9 .action.split,.example-dropdown-9 .action.toggle{line-height:2.2rem;padding:14px 17px;font-size:1.8rem}.example-dropdown-9:before,.example-dropdown-9:after{content:"";display:table}.example-dropdown-9:after{clear:both}.example-dropdown-9 .action.split{float:left;margin:0}.example-dropdown-9 .action.toggle{float:right;margin:0}.example-dropdown-9 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-9 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-9 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-9 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-9 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-9 .action.toggle:hover:after{color:inherit}.example-dropdown-9 .action.toggle:active:after{color:inherit}.example-dropdown-9 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-9 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-9 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-9 .action.toggle.active:hover:after{color:inherit}.example-dropdown-9 .action.toggle.active:active:after{color:inherit}.example-dropdown-9 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-9 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-9 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-9 ul.dropdown:before,.example-dropdown-9 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-9 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-9 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-9 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-9 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-9.active{overflow:visible}.example-dropdown-9.active ul.dropdown{display:block}.example-dropdown-10{display:inline-block;position:relative}.example-dropdown-10 .action.split,.example-dropdown-10 .action.toggle{line-height:1.2rem;padding:5px 8px;font-size:1.1rem}.example-dropdown-10:before,.example-dropdown-10:after{content:"";display:table}.example-dropdown-10:after{clear:both}.example-dropdown-10 .action.split{float:left;margin:0}.example-dropdown-10 .action.toggle{float:right;margin:0}.example-dropdown-10 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-10 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-10 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-10 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-10 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-10 .action.toggle:hover:after{color:inherit}.example-dropdown-10 .action.toggle:active:after{color:inherit}.example-dropdown-10 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-10 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-10 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-10 .action.toggle.active:hover:after{color:inherit}.example-dropdown-10 .action.toggle.active:active:after{color:inherit}.example-dropdown-10 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-10 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-10 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-10 ul.dropdown:before,.example-dropdown-10 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-10 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-10 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-10 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-10 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-10.active{overflow:visible}.example-dropdown-10.active ul.dropdown{display:block}.example-dropdown-11{display:inline-block;position:relative}.example-dropdown-11:before,.example-dropdown-11:after{content:"";display:table}.example-dropdown-11:after{clear:both}.example-dropdown-11 .action.split{float:right;margin:0}.example-dropdown-11 .action.toggle{float:left;margin:0}.example-dropdown-11 button.action.split{border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-11 button+.action.toggle{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-11 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-11 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-11 .action.toggle:before{font-family:'icons-blank-theme';content:'\e61c';font-size:22px;line-height:22px;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-11 .action.toggle:hover:before{color:red}.example-dropdown-11 .action.toggle:active:before{color:inherit}.example-dropdown-11 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-11 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-11 .action.toggle.active:before{font-family:'icons-blank-theme';content:'\e60f';font-size:22px;line-height:22px;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-11 .action.toggle.active:hover:before{color:red}.example-dropdown-11 .action.toggle.active:active:before{color:inherit}.example-dropdown-11 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#fff;border:1px solid #bbb;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none;box-shadow:0 3px 3px rgba(0,0,0,.15)}.example-dropdown-11 ul.dropdown li{margin:0;padding:3px 5px}.example-dropdown-11 ul.dropdown li:hover{background:#e8e8e8;cursor:pointer}.example-dropdown-11 ul.dropdown:before,.example-dropdown-11 ul.dropdown:after{content:"";position:absolute;display:block;width:0;height:0;border-bottom-style:solid}.example-dropdown-11 ul.dropdown:before{z-index:99;border:solid 6px;border-color:transparent transparent #fff transparent}.example-dropdown-11 ul.dropdown:after{z-index:98;border:solid 7px;border-color:transparent transparent #bbb transparent}.example-dropdown-11 ul.dropdown:before{top:-12px;right:10px}.example-dropdown-11 ul.dropdown:after{top:-14px;right:9px}.example-dropdown-11.active{overflow:visible}.example-dropdown-11.active ul.dropdown{display:block}.example-dropdown-12{display:inline-block;position:relative}.example-dropdown-12:before,.example-dropdown-12:after{content:"";display:table}.example-dropdown-12:after{clear:both}.example-dropdown-12 .action.split{float:left;margin:0}.example-dropdown-12 .action.toggle{float:right;margin:0}.example-dropdown-12 button.action.split{border-top-right-radius:0;border-bottom-right-radius:0}.example-dropdown-12 button+.action.toggle{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.example-dropdown-12 .action.toggle{padding:4px 5px;display:inline-block;text-decoration:none}.example-dropdown-12 .action.toggle>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-12 .action.toggle:after{font-family:'icons-blank-theme';content:'\e607';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-12 .action.toggle:hover:after{color:inherit}.example-dropdown-12 .action.toggle:active:after{color:inherit}.example-dropdown-12 .action.toggle.active{display:inline-block;text-decoration:none}.example-dropdown-12 .action.toggle.active>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-dropdown-12 .action.toggle.active:after{font-family:'icons-blank-theme';content:'\e618';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.example-dropdown-12 .action.toggle.active:hover:after{color:inherit}.example-dropdown-12 .action.toggle.active:active:after{color:inherit}.example-dropdown-12 ul.dropdown{margin:0;padding:0;list-style:none none;box-sizing:border-box;background:#eef1f3;border:2px solid #ced1d4;position:absolute;z-index:100;top:100%;min-width:100%;margin-top:4px;display:none}.example-dropdown-12 ul.dropdown li{margin:0;padding:10px;border-top:2px solid #e8eaed}.example-dropdown-12 ul.dropdown li:first-child{border:0}.example-dropdown-12 ul.dropdown li:hover{background:#d8e3e3;cursor:pointer}.example-dropdown-12.active{overflow:visible}.example-dropdown-12.active ul.dropdown{display:block}.example-form-1 .example-form-1-fieldset{padding:0;margin:0 0 40px;border:0;letter-spacing:-.31em}.example-form-1 .example-form-1-fieldset>*{letter-spacing:normal}.example-form-1 .example-form-1-fieldset>.legend{margin:0 0 25px;padding:0;font-size:2rem;line-height:1.2;box-sizing:border-box;float:left}.example-form-1 .example-form-1-fieldset>.legend+br{display:block;visibility:hidden;height:0;overflow:hidden;clear:both}.example-form-1 .example-form-1-fieldset:after{content:attr(data-hasrequired);display:block;font-size:1.2rem;color:#e02b27;margin:10px 0 0;letter-spacing:normal;word-spacing:normal}.example-form-1 .example-form-1-fieldset>.field{margin:0 0 20px}.example-form-1 .example-form-1-fieldset>.field>.label{display:inline-block;margin:0 0 5px}.example-form-1 .example-form-1-fieldset>.field:last-child{margin-bottom:0}.example-form-1 .example-form-1-fieldset>.field>.label{font-weight:700}.example-form-1 .example-form-1-fieldset>.field>.label+br{display:none}.example-form-1 .example-form-1-fieldset>.field .choice input{vertical-align:top}.example-form-1 .example-form-1-fieldset>.field .fields.group:before,.example-form-1 .example-form-1-fieldset>.field .fields.group:after{content:"";display:table}.example-form-1 .example-form-1-fieldset>.field .fields.group:after{clear:both}.example-form-1 .example-form-1-fieldset>.field .fields.group .field{box-sizing:border-box;float:left}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-2 .field{width:50%!important}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-3 .field{width:33.3%!important}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-4 .field{width:25%!important}.example-form-1 .example-form-1-fieldset>.field .fields.group.group-5 .field{width:20%!important}.example-form-1 .example-form-1-fieldset>.field .addon{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;padding:0;width:100%}.example-form-1 .example-form-1-fieldset>.field .addon textarea,.example-form-1 .example-form-1-fieldset>.field .addon select,.example-form-1 .example-form-1-fieldset>.field .addon input{-ms-flex-order:2;-webkit-order:2;order:2;-webkit-flex-basis:100%;flex-basis:100%;display:inline-block;margin:0;width:auto}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore,.example-form-1 .example-form-1-fieldset>.field .addon .addafter{-ms-flex-order:3;-webkit-order:3;order:3;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:0 9px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;width:auto;white-space:nowrap;vertical-align:middle}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore:disabled,.example-form-1 .example-form-1-fieldset>.field .addon .addafter:disabled{opacity:.5}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore::-moz-placeholder,.example-form-1 .example-form-1-fieldset>.field .addon .addafter::-moz-placeholder{color:#c2c2c2}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore::-webkit-input-placeholder,.example-form-1 .example-form-1-fieldset>.field .addon .addafter::-webkit-input-placeholder{color:#c2c2c2}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore:-ms-input-placeholder,.example-form-1 .example-form-1-fieldset>.field .addon .addafter:-ms-input-placeholder{color:#c2c2c2}.example-form-1 .example-form-1-fieldset>.field .addon .addbefore{float:left;-ms-flex-order:1;-webkit-order:1;order:1}.example-form-1 .example-form-1-fieldset>.field .additional{margin-top:10px}.example-form-1 .example-form-1-fieldset>.field.required>.label:after{content:'*';font-size:1.2rem;color:#e02b27;margin:0 0 0 5px}.example-form-1 .example-form-1-fieldset>.field .note{font-size:1.2rem;margin:3px 0 0;padding:0;display:inline-block;text-decoration:none}.example-form-1 .example-form-1-fieldset>.field .note:before{font-family:'icons-blank-theme';content:'\e618';font-size:24px;line-height:12px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-form-2 .example-form-2-fieldset{padding:0;margin:0 0 40px;border:0;letter-spacing:-.31em}.example-form-2 .example-form-2-fieldset>*{letter-spacing:normal}.example-form-2 .example-form-2-fieldset>.legend{margin:0 0 25px;padding:0;font-size:2rem;line-height:1.2;box-sizing:border-box;float:left}.example-form-2 .example-form-2-fieldset>.legend+br{display:block;visibility:hidden;height:0;overflow:hidden;clear:both}.example-form-2 .example-form-2-fieldset>.field{margin:0 0 20px;box-sizing:border-box;display:inline-block;padding:0 12px 0 0;width:50%;vertical-align:top}.example-form-2 .example-form-2-fieldset>.field>.label{display:inline-block;margin:0 0 5px}.example-form-2 .example-form-2-fieldset>.field:last-child{margin-bottom:0}.example-form-2 .example-form-2-fieldset>.field+.fieldset{clear:both}.example-form-2 .example-form-2-fieldset>.field>.label{font-weight:700}.example-form-2 .example-form-2-fieldset>.field>.label+br{display:none}.example-form-2 .example-form-2-fieldset>.field .choice input{vertical-align:top}.example-form-2 .example-form-2-fieldset>.field .fields.group:before,.example-form-2 .example-form-2-fieldset>.field .fields.group:after{content:"";display:table}.example-form-2 .example-form-2-fieldset>.field .fields.group:after{clear:both}.example-form-2 .example-form-2-fieldset>.field .fields.group .field{box-sizing:border-box;float:left}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-2 .field{width:50%!important}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-3 .field{width:33.3%!important}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-4 .field{width:25%!important}.example-form-2 .example-form-2-fieldset>.field .fields.group.group-5 .field{width:20%!important}.example-form-2 .example-form-2-fieldset>.field .addon{display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;padding:0;width:100%}.example-form-2 .example-form-2-fieldset>.field .addon textarea,.example-form-2 .example-form-2-fieldset>.field .addon select,.example-form-2 .example-form-2-fieldset>.field .addon input{-ms-flex-order:2;-webkit-order:2;order:2;-webkit-flex-basis:100%;flex-basis:100%;display:inline-block;margin:0;width:auto}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore,.example-form-2 .example-form-2-fieldset>.field .addon .addafter{-ms-flex-order:3;-webkit-order:3;order:3;display:inline-block;box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:0 9px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;width:auto;white-space:nowrap;vertical-align:middle}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore:disabled,.example-form-2 .example-form-2-fieldset>.field .addon .addafter:disabled{opacity:.5}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore::-moz-placeholder,.example-form-2 .example-form-2-fieldset>.field .addon .addafter::-moz-placeholder{color:#c2c2c2}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore::-webkit-input-placeholder,.example-form-2 .example-form-2-fieldset>.field .addon .addafter::-webkit-input-placeholder{color:#c2c2c2}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore:-ms-input-placeholder,.example-form-2 .example-form-2-fieldset>.field .addon .addafter:-ms-input-placeholder{color:#c2c2c2}.example-form-2 .example-form-2-fieldset>.field .addon .addbefore{float:left;-ms-flex-order:1;-webkit-order:1;order:1}.example-form-2 .example-form-2-fieldset>.field .additional{margin-top:10px}.example-form-2 .example-form-2-fieldset>.field.required>.label:after{content:'*';font-size:1.2rem;color:#e02b27;margin:0 0 0 5px}.example-form-2 .example-form-2-fieldset>.field .note{font-size:1.2rem;margin:3px 0 0;padding:0;display:inline-block;text-decoration:none}.example-form-2 .example-form-2-fieldset>.field .note:before{font-family:'icons-blank-theme';content:'\e618';font-size:24px;line-height:12px;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}input[type="text"],input[type="password"],input[type="url"],input[type="tel"],input[type="search"],input[type="number"],input[type="datetime"],input[type="email"]{box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:0 9px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;margin-bottom:20px}input[type="text"]:disabled,input[type="password"]:disabled,input[type="url"]:disabled,input[type="tel"]:disabled,input[type="search"]:disabled,input[type="number"]:disabled,input[type="datetime"]:disabled,input[type="email"]:disabled{opacity:.5}input[type="text"]::-moz-placeholder,input[type="password"]::-moz-placeholder,input[type="url"]::-moz-placeholder,input[type="tel"]::-moz-placeholder,input[type="search"]::-moz-placeholder,input[type="number"]::-moz-placeholder,input[type="datetime"]::-moz-placeholder,input[type="email"]::-moz-placeholder{color:#c2c2c2}input[type="text"]::-webkit-input-placeholder,input[type="password"]::-webkit-input-placeholder,input[type="url"]::-webkit-input-placeholder,input[type="tel"]::-webkit-input-placeholder,input[type="search"]::-webkit-input-placeholder,input[type="number"]::-webkit-input-placeholder,input[type="datetime"]::-webkit-input-placeholder,input[type="email"]::-webkit-input-placeholder{color:#c2c2c2}input[type="text"]:-ms-input-placeholder,input[type="password"]:-ms-input-placeholder,input[type="url"]:-ms-input-placeholder,input[type="tel"]:-ms-input-placeholder,input[type="search"]:-ms-input-placeholder,input[type="number"]:-ms-input-placeholder,input[type="datetime"]:-ms-input-placeholder,input[type="email"]:-ms-input-placeholder{color:#c2c2c2}select{box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:32px;width:100%;padding:5px 10px 4px;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;margin-bottom:20px}select:disabled{opacity:.5}select[multiple="multiple"]{height:auto;margin-bottom:20px}textarea{box-sizing:border-box;background:#fff;border:1px solid #c2c2c2;border-radius:1px;height:auto;width:100%;padding:10px;margin:0;font-size:14px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:1.428571429;background-clip:padding-box;vertical-align:baseline;resize:vertical}textarea:disabled{opacity:.5}textarea::-moz-placeholder{color:#c2c2c2}textarea::-webkit-input-placeholder{color:#c2c2c2}textarea:-ms-input-placeholder{color:#c2c2c2}input[type="checkbox"]{margin:2px 5px 0 0}input[type="checkbox"]:disabled{opacity:.5}input[type="radio"]{margin:2px 5px 0 0}input[type="radio"]:disabled{opacity:.5}input.text-example-1,select.select-example-1,textarea.textarea-example-1{background:#fdf0d5;border-color:#fc0;color:#b30000}input.text-example-1:focus,select.select-example-1:focus,textarea.textarea-example-1:focus{border-color:#cff;color:#060}input.text-example-1:disabled,select.select-example-1:disabled,textarea.textarea-example-1:disabled{color:#fcc}input.text-example-1::-moz-placeholder,textarea.textarea-example-1::-moz-placeholder{color:#ccc}input.text-example-1::-webkit-input-placeholder,textarea.textarea-example-1::-webkit-input-placeholder{color:#ccc}input.text-example-1:-ms-input-placeholder,textarea.textarea-example-1:-ms-input-placeholder{color:#ccc}.number-example{-moz-appearance:textfield}.number-example::-webkit-inner-spin-button,.number-example::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.search-example{-webkit-appearance:none}.search-example::-webkit-search-cancel-button,.search-example::-webkit-search-decoration,.search-example::-webkit-search-results-button,.search-example::-webkit-search-results-decoration{-webkit-appearance:none}input,textarea,select{font-size:1.2rem;color:#e02b27}.example-icon-1{display:inline-block}.example-icon-1:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-2{display:inline-block}.example-icon-2:after{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat -26px 0}.example-icon-3{display:inline-block}.example-icon-3>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-icon-3:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat -156px -52px}.example-icon-4{display:inline-block;text-decoration:none}.example-icon-4:before{font-family:'icons-blank-theme';content:'\e606';font-size:24px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-5{display:inline-block;text-decoration:none}.example-icon-5:after{font-family:'icons-blank-theme';content:'\e605';font-size:24px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-6{display:inline-block;text-decoration:none}.example-icon-6>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-icon-6:before{font-family:'icons-blank-theme';content:'\e61b';font-size:24px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-7{display:inline-block}.example-icon-7:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-8{display:inline-block}.example-icon-8:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-8:before{background-position:-182px 0}.example-icon-9{display:inline-block}.example-icon-9:after{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-9:after{background-position:-52px -26px}.example-icon-10{display:inline-block}.example-icon-10:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-10:before{background-position:-104px 0}.example-icon-11{display:inline-block}.example-icon-11:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.example-icon-11:before{width:30px;height:30px}.example-icon-11:after{width:30px;height:30px}.example-icon-11:before{background-color:#f1f1f1}.example-icon-12{display:inline-block;text-decoration:none}.example-icon-12:before{font-family:'icons-blank-theme';content:'\e612';font-size:28px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-13{display:inline-block;text-decoration:none}.example-icon-13:before{font-family:'icons-blank-theme';content:'\e612';font-size:inherit;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-13:before{font-size:26px;line-height:inherit}.example-icon-14{display:inline-block;text-decoration:none}.example-icon-14:before{font-family:'icons-blank-theme';content:'\e61d';font-size:26px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.example-icon-14>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.icons-image-list{list-style:none;padding:0}.icons-image-list li{float:left;width:33%}.icons-image-list li>span{display:inline-block}.icons-image-list li>span:before{content:'';display:inline-block;width:26px;height:26px;line-height:26px;vertical-align:middle;background:url('/pub/static/frontend/Magento/blank/en_US/images/blank-theme-icons.png') no-repeat 0 0}.icons-image-list li .icon-search:before{background-position:0 0}.icons-image-list li .icon-cart:before{background-position:-26px 0}.icons-image-list li .icon-arrow-down:before{background-position:-52px 0}.icons-image-list li .icon-arrow-up:before{background-position:-78px 0}.icons-image-list li .icon-grid:before{background-position:-104px 0}.icons-image-list li .icon-list:before{background-position:-130px 0}.icons-image-list li .icon-remove:before{background-position:-156px 0}.icons-image-list li .icon-star:before{background-position:-182px 0}.icons-image-list li .icon-pointer-down:before{background-position:-208px 0}.icons-image-list li .icon-pointer-up:before{background-position:-234px 0}.icons-image-list li .icon-pointer-left:before{background-position:-260px 0}.icons-image-list li .icon-pointer-right:before{background-position:-286px 0}.icons-image-list li .icon-compare-empty:before{background-position:0 -26px}.icons-image-list li .icon-compare-full:before{background-position:-26px -26px}.icons-image-list li .icon-wishlist-empty:before{background-position:-52px -26px}.icons-image-list li .icon-wishlist-full:before{background-position:-78px -26px}.icons-image-list li .icon-update:before{background-position:-104px -26px}.icons-image-list li .icon-collapse:before{background-position:-130px -26px}.icons-image-list li .icon-expand:before{background-position:-156px -26px}.icons-image-list li .icon-menu:before{background-position:-182px -26px}.icons-image-list li .icon-prev:before{background-position:-208px -26px}.icons-image-list li .icon-next:before{background-position:-234px -26px}.icons-image-list li .icon-settings:before{background-position:-260px -26px}.icons-image-list li .icon-info:before{background-position:-286px -26px}.icons-image-list li .icon-checkmark:before{background-position:0 -52px}.icons-image-list li .icon-calendar:before{background-position:-26px -52px}.icons-image-list li .icon-comment:before{background-position:-52px -52px}.icons-image-list li .icon-comment-reflected:before{background-position:-78px -52px}.icons-image-list li .icon-envelope:before{background-position:-104px -52px}.icons-image-list li .icon-warning:before{background-position:-130px -52px}.icons-image-list li .icon-trash:before{background-position:-156px -52px}.icons-image-list li .icon-flag:before{background-position:-182px -52px}.icons-image-list li .icon-location:before{background-position:-208px -52px}.icons-image-list li .icon-up:before{background-position:-234px -52px}.icons-image-list li .icon-down:before{background-position:-260px -52px}.icons-font-list{list-style:none;padding:0}.icons-font-list li{float:left;width:25%;margin-bottom:35px;text-align:center}.icons-font-list li>span{display:inline-block;text-decoration:none}.icons-font-list li>span:before{font-family:'icons-blank-theme';font-size:34px;line-height:inherit;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center}.icons-font-list li>span:before{content:attr(data-icon);margin:0 auto;display:block}.loader{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(255,255,255,.5);z-index:9999}.loader:before{border-radius:5px;background:transparent url('/pub/static/frontend/Magento/blank/en_US/images/loader-2.gif') no-repeat 50% 50%;box-sizing:border-box;content:'';position:absolute;top:0;right:0;left:0;bottom:0;margin:auto;width:160px;height:160px}.loading{position:relative}.loading:before{content:'';position:absolute;left:0;top:0;right:0;bottom:0;background:rgba(255,255,255,.5) url('/pub/static/frontend/Magento/blank/en_US/images/loader-2.gif') no-repeat 50% 50%}.example-message-info{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400}.example-message-info a{color:#1979c3}.example-message-info a:hover{color:#006bb4}.example-message-info a:active{color:#006bb4}.example-message-warning{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400}.example-message-warning a{color:#1979c3}.example-message-warning a:hover{color:#006bb4}.example-message-warning a:active{color:#006bb4}.example-message-error{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fae5e5;color:#e02b27}.example-message-error a{color:#1979c3}.example-message-error a:hover{color:#006bb4}.example-message-error a:active{color:#006bb4}.example-message-success{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#e5efe5;color:#006400}.example-message-success a{color:#1979c3}.example-message-success a:hover{color:#006bb4}.example-message-success a:active{color:#006bb4}.example-message-notice{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400}.example-message-notice a{color:#1979c3}.example-message-notice a:hover{color:#006bb4}.example-message-notice a:active{color:#006bb4}.example-message-1{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fdf0d5;color:#6f4400;position:relative;padding-left:40px}.example-message-1 a{color:#1979c3}.example-message-1 a:hover{color:#006bb4}.example-message-1 a:active{color:#006bb4}.example-message-1>:first-child:before{font-family:'icons-blank-theme';content:'\e602';font-size:28px;line-height:28px;color:#c07600;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:18px;left:0;text-align:center;width:40px}.example-message-2{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fae5e5;color:#e02b27;position:relative;padding-right:40px}.example-message-2 a{color:#1979c3}.example-message-2 a:hover{color:#006bb4}.example-message-2 a:active{color:#006bb4}.example-message-2:before{content:'';position:absolute;width:30px;text-align:center;top:0;height:100%;display:block;padding:0;background:#b30000}.example-message-2>:first-child:before{content:'';position:absolute;overflow:hidden;top:50%;margin-top:-5px}.example-message-2>:first-child:after{font-family:'icons-blank-theme';content:'\e602';font-size:28px;line-height:28px;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:18px;left:0;text-align:center;width:30px}.example-message-2:before{right:0}.example-message-2>:first-child:before{border:5px solid transparent;height:0;width:0;border-right-color:#b30000;right:30px}.example-message-2>:first-child:after{right:0}.example-message-3{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#e5efe5;color:#006400;position:relative;padding-left:40px}.example-message-3 a{color:#1979c3}.example-message-3 a:hover{color:#006bb4}.example-message-3 a:active{color:#006bb4}.example-message-3:before{content:'';position:absolute;width:30px;text-align:center;top:0;height:100%;display:block;padding:0;background:#006400}.example-message-3>:first-child:before{content:'';position:absolute;overflow:hidden;top:50%;margin-top:-5px}.example-message-3>:first-child:after{font-family:'icons-blank-theme';content:'\e610';font-size:28px;line-height:28px;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:18px;left:0;text-align:center;width:30px}.example-message-3:before{left:0}.example-message-3>:first-child:before{border:5px solid transparent;height:0;width:0;border-left-color:#006400;left:30px}.example-message-3>:first-child:after{left:0}.example-message-4{display:block;margin:0 0 10px;padding:10px 20px;font-size:1.3rem;line-height:1.2em;background:#fc0;border-color:#ffa500;color:#000;position:relative;padding-left:40px;border-width:4px;border-radius:10px}.example-message-4 a{color:#00f}.example-message-4 a:hover{color:#009}.example-message-4 a:active{color:#006}.example-message-4:before{content:'';position:absolute;width:30px;text-align:center;top:0;height:100%;display:block;padding:0;background:#green}.example-message-4>:first-child:before{content:'';position:absolute;overflow:hidden;top:50%;margin-top:-5px}.example-message-4>:first-child:after{font-family:'icons-blank-theme';content:'\e606';font-size:28px;line-height:28px;color:#000;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;margin:-14px 0 0;position:absolute;top:15px;left:0;text-align:center;width:30px}.example-message-4:before{left:0}.example-message-4>:first-child:before{border:5px solid transparent;height:0;width:0;border-left-color:#green;left:30px}.example-message-4>:first-child:after{left:0}header.header{background-color:rgba(255,0,0,.2)}.column.main{background-color:rgba(255,255,0,.2)}.column.left{background-color:rgba(0,255,255,.2)}.column.right{background-color:rgba(0,0,255,.2)}footer.footer{background-color:rgba(0,0,0,.2)}.columns{box-sizing:border-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.columns:after{content:" ";display:block;height:0;clear:both;overflow:hidden;visibility:hidden}.columns>.column{padding-bottom:40px}@media (min-width: 600px){.page-layout-1column .column.main{ width:100%;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-3columns .column.main{width:66.66666667%;display:inline-block;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-2columns-left .column.main{width:83.33333333%;float:right;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-2columns-right .column.main{width:83.33333333%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-3columns .column.left{width:16.66666667%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-2columns-left .column.left{width:16.66666667%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-2columns-right .column.left{width:16.66666667%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.page-layout-3columns .column.right{width:16.66666667%;float:right;-ms-flex-order:3;-webkit-order:3;order:3}.page-layout-2columns-left .column.right{width:16.66666667%;float:right;-ms-flex-order:2;-webkit-order:2;order:2}.page-layout-2columns-right .column.right{width:16.66666667%;float:right;-ms-flex-order:2;-webkit-order:2;order:2}}.layout-example-3 .column.main{width:60%;display:inline-block;-ms-flex-order:2;-webkit-order:2;order:2}.layout-example-3 .column.left{width:20%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.layout-example-3 .column.right{width:20%;float:right;-ms-flex-order:3;-webkit-order:3;order:3}.layout-example-3-1 .column.main{width:60%;float:left;-ms-flex-order:1;-webkit-order:1;order:1}.layout-example-3-1 .column.left{width:20%;display:inline-block;-ms-flex-order:2;-webkit-order:2;order:2}.layout-example-3-1 .column.right{width:20%;float:right;-ms-flex-order:3;-webkit-order:3;order:3}.pages>.label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.pages .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 2px 0 0;display:inline-block}.pages .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages a.page{color:#1979c3;display:inline-block;padding:0 4px;text-decoration:none}.pages a.page:visited{color:#1979c3}.pages a.page:hover{color:#006bb4;text-decoration:none}.pages a.page:active{color:#ff5501}.pages strong.page{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#333;display:inline-block;font-weight:700;padding:0 4px}.pages .action{border:1px solid #d1d1d1;color:#7d7d7d;display:inline-block;padding:0;text-decoration:none}.pages .action:visited{color:#7d7d7d}.pages .action:hover{color:#7d7d7d;text-decoration:none}.pages .action:active{color:#7d7d7d}.pages .action.next{display:inline-block;text-decoration:none}.pages .action.next:visited:before{color:#7d7d7d}.pages .action.next:active:before{color:#7d7d7d}.pages .action.next>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages .action.next:before{font-family:'icons-blank-theme';content:'\e608';font-size:46px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.pages .action.next:hover:before{color:#7d7d7d}.pages .action.next:active:before{color:#7d7d7d}.pages .action.previous{display:inline-block;text-decoration:none}.pages .action.previous:visited:before{color:#7d7d7d}.pages .action.previous:active:before{color:#7d7d7d}.pages .action.previous>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.pages .action.previous:before{font-family:'icons-blank-theme';content:'\e617';font-size:46px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.pages .action.previous:hover:before{color:#7d7d7d}.pages .action.previous:active:before{color:#7d7d7d}.example-pages-1>.label{display:inline-block;font-weight:700;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal}.example-pages-1>.label:after{content:':'}.example-pages-1 .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.example-pages-1 .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 3px;display:inline-block}.example-pages-1 .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-1 a.page{background-color:#ccc;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #f4f4f4 0, #ccc 100%);background-image:linear-gradient(to bottom, #f4f4f4 0, #ccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f4f4', endColorstr='#cccccc', GradientType=0);border:1px solid #b3b3b3;color:#333;display:inline-block;padding:0 4px;text-decoration:none}.example-pages-1 a.page:visited{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#1979c3}.example-pages-1 a.page:hover{background-color:#f4f4f4;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #ccc 0, #f4f4f4 100%);background-image:linear-gradient(to bottom, #ccc 0, #f4f4f4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cccccc', endColorstr='#f4f4f4', GradientType=0);border:1px solid #999;color:#333;text-decoration:none}.example-pages-1 a.page:active{background-color:false;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top,false 0,false 100%);background-image:linear-gradient(to bottom,false 0,false 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='false', endColorstr='false', GradientType=0);color:#ff5501}.example-pages-1 strong.page{background:#1979c3;border:1px solid #135d96;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#f7b32e;display:inline-block;font-weight:700;padding:0 4px}.example-pages-1 .action{border:1px solid #d1d1d1;color:#7d7d7d;display:inline-block;padding:0;text-decoration:none}.example-pages-1 .action:visited{color:#7d7d7d}.example-pages-1 .action:hover{color:#ff5501;text-decoration:none}.example-pages-1 .action:active{color:#7d7d7d}.example-pages-1 .action.next{display:inline-block;text-decoration:none}.example-pages-1 .action.next:visited:before{color:#7d7d7d}.example-pages-1 .action.next:active:before{color:#7d7d7d}.example-pages-1 .action.next>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-1 .action.next:before{font-family:'icons-blank-theme';content:'\e608';font-size:30px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-1 .action.next:hover:before{color:#ff5501}.example-pages-1 .action.next:active:before{color:#7d7d7d}.example-pages-1 .action.previous{display:inline-block;text-decoration:none}.example-pages-1 .action.previous:visited:before{color:#7d7d7d}.example-pages-1 .action.previous:active:before{color:#7d7d7d}.example-pages-1 .action.previous>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-1 .action.previous:before{font-family:'icons-blank-theme';content:'\e617';font-size:30px;line-height:inherit;color:#7d7d7d;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-1 .action.previous:hover:before{color:#ff5501}.example-pages-1 .action.previous:active:before{color:#7d7d7d}.example-pages-2>.label{display:inline-block;font-weight:700;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal}.example-pages-2>.label:after{content:':'}.example-pages-2 .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.example-pages-2 .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 2px 0 0;display:inline-block}.example-pages-2 .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-2 a.page{color:#1979c3;display:inline-block;padding:0 4px;text-decoration:none}.example-pages-2 a.page:visited{color:#1979c3}.example-pages-2 a.page:hover{color:#006bb4;text-decoration:none}.example-pages-2 a.page:active{color:#ff5501}.example-pages-2 strong.page{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#333;display:inline-block;font-weight:700;padding:0 4px}.example-pages-2 .action{border:1px solid #d1d1d1;color:#7d7d7d;display:inline-block;padding:0;text-decoration:none}.example-pages-2 .action:visited{color:#7d7d7d}.example-pages-2 .action:hover{color:#7d7d7d;text-decoration:none}.example-pages-2 .action:active{color:#7d7d7d}.example-pages-3>.label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 .items{font-size:0;line-height:0;letter-spacing:-1px;white-space:nowrap;margin:0;padding:0;list-style:none none;display:inline-block;font-weight:700}.example-pages-3 .item{font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;margin:0 2px 0 0;display:inline-block}.example-pages-3 .item .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 a.page{background:#1979c3;color:#fff;display:inline-block;padding:0 4px;text-decoration:none}.example-pages-3 a.page:visited{background:#1979c3;color:#fff}.example-pages-3 a.page:hover{background:#006bb4;color:#fff;text-decoration:none}.example-pages-3 a.page:active{background:#ff5501;color:#fff}.example-pages-3 strong.page{background:#1979c3;font-size:1.2rem;font-size:12px;line-height:32px;letter-spacing:normal;color:#fff;display:inline-block;font-weight:700;padding:0 4px}.example-pages-3 .action{background:#1979c3;border:1px solid #d1d1d1;color:#fff;display:inline-block;padding:0;text-decoration:none}.example-pages-3 .action:visited{background:#1979c3;color:#7d7d7d}.example-pages-3 .action:hover{background:#006bb4;color:#fff;text-decoration:none}.example-pages-3 .action:active{background:#ff5501;color:#fff}.example-pages-3 .action.next{display:inline-block;text-decoration:none}.example-pages-3 .action.next:visited:before{color:#7d7d7d}.example-pages-3 .action.next:active:before{color:#fff}.example-pages-3 .action.next>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 .action.next:before{font-family:'icons-blank-theme';content:'\e608';font-size:46px;line-height:inherit;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-3 .action.next:hover:before{color:#fff}.example-pages-3 .action.next:active:before{color:#fff}.example-pages-3 .action.previous{display:inline-block;text-decoration:none}.example-pages-3 .action.previous:visited:before{color:#7d7d7d}.example-pages-3 .action.previous:active:before{color:#fff}.example-pages-3 .action.previous>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-pages-3 .action.previous:before{font-family:'icons-blank-theme';content:'\e617';font-size:46px;line-height:inherit;color:#fff;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0 0 0 -6px}.example-pages-3 .action.previous:hover:before{color:#fff}.example-pages-3 .action.previous:active:before{color:#fff}.window.popup.popup-example{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example .popup-actions .action.close:focus,.window.popup.popup-example .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example .popup-actions .action.close.disabled,.window.popup.popup-example .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example.active{opacity:1}.window.popup.popup-example-1{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-1 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-1 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-1 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-1 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-1 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-1 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-1 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-1 .popup-actions .action.close:focus,.window.popup.popup-example-1 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-1 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-1 .popup-actions .action.close.disabled,.window.popup.popup-example-1 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-1 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-1.active{opacity:1}.window.overlay{transition:opacity .15s linear;position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:1000;opacity:0}.window.overlay.active{opacity:.5;filter:alpha(opacity=50)}.window.popup.popup-example-2{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;overflow-y:auto;max-height:200px;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-2 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-2 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-2 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-2 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-2 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-2 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-2 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-2 .popup-actions .action.close:focus,.window.popup.popup-example-2 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-2 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-2 .popup-actions .action.close.disabled,.window.popup.popup-example-2 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-2 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-2.active{opacity:1}.window.popup.popup-example-3{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-3 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-3 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-3 .popup-content{overflow-y:auto;max-height:200px}.window.popup.popup-example-3 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-3 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-3 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-3 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-3 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-3 .popup-actions .action.close:focus,.window.popup.popup-example-3 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-3 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-3 .popup-actions .action.close.disabled,.window.popup.popup-example-3 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-3 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-3.active{opacity:1}.window.popup.popup-example-4{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-4 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-4 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-4 .popup-content{margin:0 0 20px}.window.popup.popup-example-4 .popup-footer{margin:0 20px}.window.popup.popup-example-4 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-4 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-4 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-4 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-4 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-4 .popup-actions .action.close:focus,.window.popup.popup-example-4 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-4 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-4 .popup-actions .action.close.disabled,.window.popup.popup-example-4 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-4 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-4.active{opacity:1}.window.popup.popup-example-5{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-5 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-5 .popup-header .title{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}.window.popup.popup-example-5 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-5 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-5 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-5 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-5 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-5 .popup-actions .action.close:focus,.window.popup.popup-example-5 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-5 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-5 .popup-actions .action.close.disabled,.window.popup.popup-example-5 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-5 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-5.active{opacity:1}.window.popup.popup-example-6{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-6 .popup-footer .actions.toolbar{text-align:left}.window.popup.popup-example-6 .popup-footer .actions.toolbar:before,.window.popup.popup-example-6 .popup-footer .actions.toolbar:after{content:"";display:table}.window.popup.popup-example-6 .popup-footer .actions.toolbar:after{clear:both}.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary{float:left}.window.popup.popup-example-6 .popup-footer .actions.toolbar .primary,.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary{display:inline-block}.window.popup.popup-example-6 .popup-footer .actions.toolbar .primary a.action,.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary a.action{display:inline-block}.window.popup.popup-example-6 .popup-footer .actions.toolbar .primary .action{margin:0 5px 0 0}.window.popup.popup-example-6 .popup-footer .actions.toolbar .secondary a.action{margin-top:6px}.window.popup.popup-example-6 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-6 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-6 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-6 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-6 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-6 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-6 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-6 .popup-actions .action.close:focus,.window.popup.popup-example-6 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-6 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-6 .popup-actions .action.close.disabled,.window.popup.popup-example-6 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-6 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-6.active{opacity:1}.window.popup.popup-example-7{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-7 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-7 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-7 .popup-actions .action.close{position:absolute;top:10px;right:10px}.window.popup.popup-example-7.active{opacity:1}.window.popup.popup-example-8{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-8 .popup-header{margin:0 0 25px;padding-right:30px}.window.popup.popup-example-8 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-8 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-8 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e613';font-size:30px;line-height:22px;color:red;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:middle;text-align:center;margin:0}.window.popup.popup-example-8 .popup-actions .action.close:hover:before{color:#090}.window.popup.popup-example-8 .popup-actions .action.close:active:before{color:#00f}.window.popup.popup-example-8 .popup-actions .action.close:focus,.window.popup.popup-example-8 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-8 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-8 .popup-actions .action.close.disabled,.window.popup.popup-example-8 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-8 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-8.active{opacity:1}.window.popup.popup-example-9{background:#fff;border:1px solid #aeaeae;padding:22px;width:auto;box-shadow:0 3px 3px rgba(0,0,0,.15);top:0;right:0;bottom:0;left:0;display:none;opacity:0;position:fixed;z-index:1001;transition:opacity .3s linear}.window.popup.popup-example-9 .popup-header{margin:0 0 25px;padding-right:22px}.window.popup.popup-example-9 .popup-header .title{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}.window.popup.popup-example-9 .popup-actions .action.close{position:absolute;display:inline-block;background-image:none;background:0;border:0;margin:0;padding:0;-moz-box-sizing:content-box;box-shadow:none;text-shadow:none;text-decoration:none;line-height:inherit;font-weight:400;top:10px;right:10px}.window.popup.popup-example-9 .popup-actions .action.close>span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.window.popup.popup-example-9 .popup-actions .action.close:before{font-family:'icons-blank-theme';content:'\e616';font-size:22px;line-height:22px;color:inherit;overflow:hidden;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;display:inline-block;vertical-align:top;text-align:center;margin:0}.window.popup.popup-example-9 .popup-actions .action.close:hover:before{color:inherit}.window.popup.popup-example-9 .popup-actions .action.close:active:before{color:inherit}.window.popup.popup-example-9 .popup-actions .action.close:focus,.window.popup.popup-example-9 .popup-actions .action.close:active{background:0;border:0}.window.popup.popup-example-9 .popup-actions .action.close:hover{background:0;border:0}.window.popup.popup-example-9 .popup-actions .action.close.disabled,.window.popup.popup-example-9 .popup-actions .action.close[disabled],fieldset[disabled] .window.popup.popup-example-9 .popup-actions .action.close{cursor:not-allowed;pointer-events:none;opacity:.5}.window.popup.popup-example-9.active{opacity:1}.window.overlay.example-overlay-1.active{transition:opacity .15s linear;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f5293;z-index:1000;opacity:0}.window.overlay.example-overlay-1.active.active{opacity:.8;filter:alpha(opacity=80)}.example-ratings-1{overflow:hidden}.example-ratings-1:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.example-ratings-1 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-1 input[type="radio"]:focus+label:before,.example-ratings-1 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-1 label{position:absolute;display:block;cursor:pointer}.example-ratings-1 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-1 label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-1 label:hover:before{opacity:1}.example-ratings-1 label:hover~label:before{opacity:0}.example-ratings-1 .rating-5{z-index:2}.example-ratings-1 .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-1 .rating-4{z-index:3}.example-ratings-1 .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.example-ratings-1 .rating-3{z-index:4}.example-ratings-1 .rating-3:before{content:'\e605' '\e605' '\e605'}.example-ratings-1 .rating-2{z-index:5}.example-ratings-1 .rating-2:before{content:'\e605' '\e605'}.example-ratings-1 .rating-1{z-index:6}.example-ratings-1 .rating-1:before{content:'\e605'}.example-ratings-2{overflow:hidden}.example-ratings-2:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.example-ratings-2 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-2 input[type="radio"]:focus+label:before,.example-ratings-2 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-2 label{position:absolute;display:block;cursor:pointer}.example-ratings-2 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-2 label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-2 label:hover:before{opacity:1}.example-ratings-2 label:hover~label:before{opacity:0}.example-ratings-2 .rating-8{z-index:2}.example-ratings-2 .rating-8:before{content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-7{z-index:3}.example-ratings-2 .rating-7:before{content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-6{z-index:4}.example-ratings-2 .rating-6:before{content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-5{z-index:5}.example-ratings-2 .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-4{z-index:6}.example-ratings-2 .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.example-ratings-2 .rating-3{z-index:7}.example-ratings-2 .rating-3:before{content:'\e605' '\e605' '\e605'}.example-ratings-2 .rating-2{z-index:8}.example-ratings-2 .rating-2:before{content:'\e605' '\e605'}.example-ratings-2 .rating-1{z-index:9}.example-ratings-2 .rating-1:before{content:'\e605'}.example-ratings-3{overflow:hidden}.example-ratings-3:before{color:#aff5e3;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.example-ratings-3 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-3 input[type="radio"]:focus+label:before,.example-ratings-3 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-3 label{position:absolute;display:block;cursor:pointer}.example-ratings-3 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-3 label:before{color:#0a6767;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-3 label:hover:before{opacity:1}.example-ratings-3 label:hover~label:before{opacity:0}.example-ratings-3 .rating-5{z-index:2}.example-ratings-3 .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.example-ratings-3 .rating-4{z-index:3}.example-ratings-3 .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.example-ratings-3 .rating-3{z-index:4}.example-ratings-3 .rating-3:before{content:'\e605' '\e605' '\e605'}.example-ratings-3 .rating-2{z-index:5}.example-ratings-3 .rating-2:before{content:'\e605' '\e605'}.example-ratings-3 .rating-1{z-index:6}.example-ratings-3 .rating-1:before{content:'\e605'}.example-ratings-4{overflow:hidden}.example-ratings-4:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e600' '\e600' '\e600' '\e600' '\e600';position:absolute;z-index:1;display:block}.example-ratings-4 input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-4 input[type="radio"]:focus+label:before,.example-ratings-4 input[type="radio"]:checked+label:before{opacity:1}.example-ratings-4 label{position:absolute;display:block;cursor:pointer}.example-ratings-4 label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-ratings-4 label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.example-ratings-4 label:hover:before{opacity:1}.example-ratings-4 label:hover~label:before{opacity:0}.example-ratings-4 .rating-5{z-index:2}.example-ratings-4 .rating-5:before{content:'\e600' '\e600' '\e600' '\e600' '\e600'}.example-ratings-4 .rating-4{z-index:3}.example-ratings-4 .rating-4:before{content:'\e600' '\e600' '\e600' '\e600'}.example-ratings-4 .rating-3{z-index:4}.example-ratings-4 .rating-3:before{content:'\e600' '\e600' '\e600'}.example-ratings-4 .rating-2{z-index:5}.example-ratings-4 .rating-2:before{content:'\e600' '\e600'}.example-ratings-4 .rating-1{z-index:6}.example-ratings-4 .rating-1:before{content:'\e600'}.exapmle-ratings-5 .control.rating.vote{overflow:hidden}.exapmle-ratings-5 .control.rating.vote:before{color:#c7c7c7;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;content:'\e605' '\e605' '\e605' '\e605' '\e605';position:absolute;z-index:1;display:block}.exapmle-ratings-5 .control.rating.vote input[type="radio"]{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.exapmle-ratings-5 .control.rating.vote input[type="radio"]:focus+label:before,.exapmle-ratings-5 .control.rating.vote input[type="radio"]:checked+label:before{opacity:1}.exapmle-ratings-5 .control.rating.vote label{position:absolute;display:block;cursor:pointer}.exapmle-ratings-5 .control.rating.vote label span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.exapmle-ratings-5 .control.rating.vote label:before{color:#ff5601;font-family:'icons-blank-theme';font-style:normal;font-size:28px;line-height:28px;letter-spacing:-10px;height:28px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased;vertical-align:top;opacity:0}.exapmle-ratings-5 .control.rating.vote label:hover:before{opacity:1}.exapmle-ratings-5 .control.rating.vote label:hover~label:before{opacity:0}.exapmle-ratings-5 .control.rating.vote .rating-5{z-index:2}.exapmle-ratings-5 .control.rating.vote .rating-5:before{content:'\e605' '\e605' '\e605' '\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-4{z-index:3}.exapmle-ratings-5 .control.rating.vote .rating-4:before{content:'\e605' '\e605' '\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-3{z-index:4}.exapmle-ratings-5 .control.rating.vote .rating-3:before{content:'\e605' '\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-2{z-index:5}.exapmle-ratings-5 .control.rating.vote .rating-2:before{content:'\e605' '\e605'}.exapmle-ratings-5 .control.rating.vote .rating-1{z-index:6}.exapmle-ratings-5 .control.rating.vote .rating-1:before{content:'\e605'}.example-rating-summary-1{white-space:nowrap;overflow:hidden}.example-rating-summary-1 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-1 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-1 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-1 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-1 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-2{white-space:nowrap;overflow:hidden}.example-rating-summary-2 .rating-result{width:154px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-2 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-2 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-2 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-2 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-3{white-space:nowrap;overflow:hidden}.example-rating-summary-3 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-3 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#aff5e3;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-3 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-3 .rating-result>span:before{position:relative;z-index:2;color:#0a6767;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-3 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-4{white-space:nowrap;overflow:hidden}.example-rating-summary-4 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-4 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e600' '\e600' '\e600' '\e600' '\e600';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-4 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-4 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e600' '\e600' '\e600' '\e600' '\e600';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-4 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-5{white-space:nowrap;overflow:hidden}.example-rating-summary-5 .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-5 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-5 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-5 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-5 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-5 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-6 .rating-summary{white-space:nowrap;overflow:hidden}.example-rating-summary-6 .rating-summary .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-6 .rating-summary .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-6 .rating-summary .rating-result>span{display:block;overflow:hidden}.example-rating-summary-6 .rating-summary .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-6 .rating-summary .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-7{white-space:nowrap;overflow:hidden}.example-rating-summary-7 .rating-result{width:100px;display:inline-block;vertical-align:middle;position:relative}.example-rating-summary-7 .rating-result:before{position:absolute;top:0;left:0;width:100%;z-index:1;color:#c7c7c7;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-7 .rating-result>span{display:block;overflow:hidden}.example-rating-summary-7 .rating-result>span:before{position:relative;z-index:2;color:#ff5601;display:block;font-family:'icons-blank-theme';content:'\e605' '\e605' '\e605' '\e605' '\e605';font-style:normal;font-size:28px;height:28px;line-height:28px;letter-spacing:-10px;speak:none;font-weight:400;-webkit-font-smoothing:antialiased}.example-rating-summary-7 .rating-result>span span{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-rating-summary-7 .label{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-responsive-block{padding:10px}.example-sections-1{position:relative;z-index:1}.example-sections-1:before,.example-sections-1:after{content:"";display:table}.example-sections-1:after{clear:both}.example-sections-1>.item.title{float:left;width:auto}.example-sections-1>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-1>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-1>.item.content:before,.example-sections-1>.item.content:after{content:"";display:table}.example-sections-1>.item.content:after{clear:both}.example-sections-1>.item.content.active{display:block}.example-sections-1>.item.title{margin:0 5px 0 0}.example-sections-1>.item.title>.switch{font-size:1.4rem;font-weight:600;line-height:20px;color:#7d7d7d;text-decoration:none;background:#f0f0f0;border:1px solid #d1d1d1;border-bottom:0;height:20px;padding:5px 20px 5px 20px}.example-sections-1>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-1>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-1>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-1>.item.title:not(.disabled)>.switch:focus,.example-sections-1>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-1>.item.title:not(.disabled)>.switch:active,.example-sections-1>.item.title.active>.switch,.example-sections-1>.item.title.active>.switch:focus,.example-sections-1>.item.title.active>.switch:hover{background:#fff;color:#333}.example-sections-1>.item.title.active>.switch,.example-sections-1>.item.title.active>.switch:focus,.example-sections-1>.item.title.active>.switch:hover{padding-bottom:6px}.example-sections-1>.item.content{background:#fff;margin-top:31px;padding:20px 20px 20px 20px;border:1px solid #d1d1d1}.example-sections-2{position:relative;z-index:1}.example-sections-2:before,.example-sections-2:after{content:"";display:table}.example-sections-2:after{clear:both}.example-sections-2>.item.title{float:left;width:auto}.example-sections-2>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-2>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-2>.item.content:before,.example-sections-2>.item.content:after{content:"";display:table}.example-sections-2>.item.content:after{clear:both}.example-sections-2>.item.content.active{display:block}.example-sections-2>.item.title{margin:0 5px 0 0}.example-sections-2>.item.title>.switch{font-size:1.4rem;font-weight:600;line-height:20px;color:#7d7d7d;text-decoration:none;background:#f0f0f0;border:1px solid #d1d1d1;border-bottom:0;height:20px;padding:5px 20px 5px 20px}.example-sections-2>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-2>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-2>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-2>.item.title:not(.disabled)>.switch:focus,.example-sections-2>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-2>.item.title:not(.disabled)>.switch:active,.example-sections-2>.item.title.active>.switch,.example-sections-2>.item.title.active>.switch:focus,.example-sections-2>.item.title.active>.switch:hover{background:#fff;color:#333}.example-sections-2>.item.title.active>.switch,.example-sections-2>.item.title.active>.switch:focus,.example-sections-2>.item.title.active>.switch:hover{padding-bottom:6px}.example-sections-2>.item.content{background:#fff;margin-top:31px;padding:20px 20px 20px 20px;border:0;border-top:1px solid #d1d1d1}.example-sections-3{margin:0;padding:0}.example-sections-3>.item.title{box-sizing:border-box;float:none;width:100%}.example-sections-3>.item.title>.switch{display:block}.example-sections-3>.item.content{box-sizing:border-box;float:none;margin:0;display:block}.example-sections-3>.item.content:before,.example-sections-3>.item.content:after{content:"";display:table}.example-sections-3>.item.content:after{clear:both}.example-sections-3>.item.content.active{display:block}.example-sections-3>.item.title{margin:0 0 5px}.example-sections-3>.item.title>.switch{background:#f0f0f0;border-top:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-left:1px solid #d1d1d1;height:40px;padding:5px 20px 5px 20px;font-size:1.8rem;font-weight:600;line-height:40px;color:#7d7d7d;text-decoration:none}.example-sections-3>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-3>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-3>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-3>.item.title:not(.disabled)>.switch:focus,.example-sections-3>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-3>.item.title:not(.disabled)>.switch:active,.example-sections-3>.item.title.active>.switch,.example-sections-3>.item.title.active>.switch:focus,.example-sections-3>.item.title.active>.switch:hover{background:#fff;padding-bottom:5px}.example-sections-3>.item.content{background:#fff;border:1px solid #d1d1d1;margin:0 0 5px;padding:20px 20px 20px 20px}@media only screen and (max-width: 99999px){.example-sections-4{ position:relative;z-index:1}.example-sections-4:before,.example-sections-4:after{content:"";display:table}.example-sections-4:after{clear:both}.example-sections-4>.item.title{float:left;width:auto}.example-sections-4>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-4>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-4>.item.content:before,.example-sections-4>.item.content:after{content:"";display:table}.example-sections-4>.item.content:after{clear:both}.example-sections-4>.item.content.active{display:block}.example-sections-4>.item.title{margin:0 5px 0 0}.example-sections-4>.item.title>.switch{font-size:1.4rem;font-weight:600;line-height:20px;color:#7d7d7d;text-decoration:none;background:#f0f0f0;border:1px solid #d1d1d1;border-bottom:0;height:20px;padding:5px 20px 5px 20px}.example-sections-4>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-4>.item.title:not(.disabled)>.switch:focus,.example-sections-4>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-4>.item.title:not(.disabled)>.switch:active,.example-sections-4>.item.title.active>.switch,.example-sections-4>.item.title.active>.switch:focus,.example-sections-4>.item.title.active>.switch:hover{background:#fff;color:#333}.example-sections-4>.item.title.active>.switch,.example-sections-4>.item.title.active>.switch:focus,.example-sections-4>.item.title.active>.switch:hover{padding-bottom:6px}.example-sections-4>.item.content{background:#fff;margin-top:31px;padding:20px 20px 20px 20px;border:1px solid #d1d1d1}}@media only screen and (max-width: 768px){.example-sections-4{ margin:0;padding:0}.example-sections-4>.item.title{box-sizing:border-box;float:none;width:100%}.example-sections-4>.item.title>.switch{display:block}.example-sections-4>.item.content{box-sizing:border-box;float:none;margin:0;display:block}.example-sections-4>.item.content:before,.example-sections-4>.item.content:after{content:"";display:table}.example-sections-4>.item.content:after{clear:both}.example-sections-4>.item.content.active{display:block}.example-sections-4>.item.title{margin:0 0 5px}.example-sections-4>.item.title>.switch{background:#f0f0f0;border-top:1px solid #d1d1d1;border-right:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-left:1px solid #d1d1d1;height:40px;padding:5px 20px 5px 20px;font-size:1.8rem;font-weight:600;line-height:40px;color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:visited{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:hover{color:#7d7d7d;text-decoration:none}.example-sections-4>.item.title>.switch:active{color:#333;text-decoration:none}.example-sections-4>.item.title:not(.disabled)>.switch:focus,.example-sections-4>.item.title:not(.disabled)>.switch:hover{background:#fcfcfc}.example-sections-4>.item.title:not(.disabled)>.switch:active,.example-sections-4>.item.title.active>.switch,.example-sections-4>.item.title.active>.switch:focus,.example-sections-4>.item.title.active>.switch:hover{background:#fff;padding-bottom:5px}.example-sections-4>.item.content{background:#fff;border:1px solid #d1d1d1;margin:0 0 5px;padding:20px 20px 20px 20px}}.example-sections-5{position:relative;z-index:1}.example-sections-5:before,.example-sections-5:after{content:"";display:table}.example-sections-5:after{clear:both}.example-sections-5>.item.title{float:left;width:auto}.example-sections-5>.item.title>.switch{display:block;height:20px;position:relative;z-index:2}.example-sections-5>.item.content{box-sizing:border-box;float:right;margin-top:20px;margin-left:-100%;width:100%}.example-sections-5>.item.content:before,.example-sections-5>.item.content:after{content:"";display:table}.example-sections-5>.item.content:after{clear:both}.example-sections-5>.item.content.active{display:block}.example-sections-6{margin:0;padding:0}.example-sections-6>.item.title{box-sizing:border-box;float:none;width:100%}.example-sections-6>.item.title>.switch{display:block}.example-sections-6>.item.content{box-sizing:border-box;float:none;margin:0;display:block}.example-sections-6>.item.content:before,.example-sections-6>.item.content:after{content:"";display:table}.example-sections-6>.item.content:after{clear:both}.example-sections-6>.item.content.active{display:block}.example-table-1{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-1 th{text-align:left}.example-table-1>tbody>tr>th,.example-table-1>tfoot>tr>th,.example-table-1>tbody>tr>td,.example-table-1>tfoot>tr>td{vertical-align:top}.example-table-1>thead>tr>th,.example-table-1>thead>tr>td{vertical-align:bottom}.example-table-1>thead>tr>th,.example-table-1>tbody>tr>th,.example-table-1>tfoot>tr>th,.example-table-1>thead>tr>td,.example-table-1>tbody>tr>td,.example-table-1>tfoot>tr>td{padding:8px 10px}.example-table-2>thead>tr>th,.example-table-2>tbody>tr>th,.example-table-2>tfoot>tr>th{color:#111;font-weight:700}.example-table-3{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-3 th{text-align:left}.example-table-3>tbody>tr>th,.example-table-3>tfoot>tr>th,.example-table-3>tbody>tr>td,.example-table-3>tfoot>tr>td{vertical-align:top}.example-table-3>thead>tr>th,.example-table-3>thead>tr>td{vertical-align:bottom}.example-table-3>thead>tr>th,.example-table-3>tbody>tr>th,.example-table-3>tfoot>tr>th,.example-table-3>thead>tr>td,.example-table-3>tbody>tr>td,.example-table-3>tfoot>tr>td{padding:8px 10px}.example-table-3>caption{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-table-4{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-4 th{text-align:left}.example-table-4>tbody>tr>th,.example-table-4>tfoot>tr>th,.example-table-4>tbody>tr>td,.example-table-4>tfoot>tr>td{vertical-align:top}.example-table-4>thead>tr>th,.example-table-4>thead>tr>td{vertical-align:bottom}.example-table-4>thead>tr>th,.example-table-4>tbody>tr>th,.example-table-4>tfoot>tr>th,.example-table-4>thead>tr>td,.example-table-4>tbody>tr>td,.example-table-4>tfoot>tr>td{padding:8px 10px}.example-table-4>thead>tr>td,.example-table-4>tbody>tr>td,.example-table-4>tfoot>tr>td{padding:15px 25px 5px 0}.example-table-4>thead>tr>th,.example-table-4>tbody>tr>th,.example-table-4>tfoot>tr>th{padding:15px 25px 10px 0}.example-table-5{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;background:#fff}.example-table-5 th{text-align:left}.example-table-5>tbody>tr>th,.example-table-5>tfoot>tr>th,.example-table-5>tbody>tr>td,.example-table-5>tfoot>tr>td{vertical-align:top}.example-table-5>thead>tr>th,.example-table-5>thead>tr>td{vertical-align:bottom}.example-table-5>thead>tr>th,.example-table-5>tbody>tr>th,.example-table-5>tfoot>tr>th,.example-table-5>thead>tr>td,.example-table-5>tbody>tr>td,.example-table-5>tfoot>tr>td{padding:8px 10px}.example-table-5>thead{background:#ccf}.example-table-5>tfoot{background:#cff}.example-table-5>tbody>tr>td{background:#fcc}.example-table-5>tbody>tr>th{background:#ffc}.example-table-6{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:1px solid #d1d1d1}.example-table-6 th{text-align:left}.example-table-6>tbody>tr>th,.example-table-6>tfoot>tr>th,.example-table-6>tbody>tr>td,.example-table-6>tfoot>tr>td{vertical-align:top}.example-table-6>thead>tr>th,.example-table-6>thead>tr>td{vertical-align:bottom}.example-table-6>thead>tr>th,.example-table-6>tbody>tr>th,.example-table-6>tfoot>tr>th,.example-table-6>thead>tr>td,.example-table-6>tbody>tr>td,.example-table-6>tfoot>tr>td{padding:8px 10px}.example-table-6>thead>tr>th,.example-table-6>tbody>tr>th,.example-table-6>tfoot>tr>th,.example-table-6>thead>tr>td,.example-table-6>tbody>tr>td,.example-table-6>tfoot>tr>td{border:1px solid #d1d1d1}.example-table-7{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-7 th{text-align:left}.example-table-7>tbody>tr>th,.example-table-7>tfoot>tr>th,.example-table-7>tbody>tr>td,.example-table-7>tfoot>tr>td{vertical-align:top}.example-table-7>thead>tr>th,.example-table-7>thead>tr>td{vertical-align:bottom}.example-table-7>thead>tr>th,.example-table-7>tbody>tr>th,.example-table-7>tfoot>tr>th,.example-table-7>thead>tr>td,.example-table-7>tbody>tr>td,.example-table-7>tfoot>tr>td{padding:8px 10px}.example-table-7>thead>tr>th,.example-table-7>tbody>tr>th,.example-table-7>tfoot>tr>th,.example-table-7>thead>tr>td,.example-table-7>tbody>tr>td,.example-table-7>tfoot>tr>td{border-top:1px solid #d1d1d1}.example-table-7>caption+thead>tr:first-child>th,.example-table-7>colgroup+thead>tr:first-child>th,.example-table-7>thead:first-child>tr:first-child>th,.example-table-7>caption+thead>tr:first-child>td,.example-table-7>colgroup+thead>tr:first-child>td,.example-table-7>thead:first-child>tr:first-child>td{border-top:0}.example-table-7>tbody+tbody{border-top:1px solid #d1d1d1}.example-table-8{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-8 th{text-align:left}.example-table-8>tbody>tr>th,.example-table-8>tfoot>tr>th,.example-table-8>tbody>tr>td,.example-table-8>tfoot>tr>td{vertical-align:top}.example-table-8>thead>tr>th,.example-table-8>thead>tr>td{vertical-align:bottom}.example-table-8>thead>tr>th,.example-table-8>tbody>tr>th,.example-table-8>tfoot>tr>th,.example-table-8>thead>tr>td,.example-table-8>tbody>tr>td,.example-table-8>tfoot>tr>td{padding:8px 10px}.example-table-8>thead>tr>th,.example-table-8>tbody>tr>th,.example-table-8>tfoot>tr>th,.example-table-8>thead>tr>td,.example-table-8>tbody>tr>td,.example-table-8>tfoot>tr>td{border-left:1px solid #d1d1d1}.example-table-8>thead>tr>th:first-child,.example-table-8>tbody>tr>th:first-child,.example-table-8>tfoot>tr>th:first-child,.example-table-8>thead>tr>td:first-child,.example-table-8>tbody>tr>td:first-child,.example-table-8>tfoot>tr>td:first-child{border-left:0}.example-table-9{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:0}.example-table-9 th{text-align:left}.example-table-9>tbody>tr>th,.example-table-9>tfoot>tr>th,.example-table-9>tbody>tr>td,.example-table-9>tfoot>tr>td{vertical-align:top}.example-table-9>thead>tr>th,.example-table-9>thead>tr>td{vertical-align:bottom}.example-table-9>thead>tr>th,.example-table-9>tbody>tr>th,.example-table-9>tfoot>tr>th,.example-table-9>thead>tr>td,.example-table-9>tbody>tr>td,.example-table-9>tfoot>tr>td{padding:8px 10px}.example-table-9>thead>tr>th,.example-table-9>tbody>tr>th,.example-table-9>tfoot>tr>th,.example-table-9>thead>tr>td,.example-table-9>tbody>tr>td,.example-table-9>tfoot>tr>td{border:0}.example-table-9>thead>tr>th,.example-table-9>thead>tr>td{border-bottom:1px solid #d1d1d1}.example-table-10{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:0}.example-table-10 th{text-align:left}.example-table-10>tbody>tr>th,.example-table-10>tfoot>tr>th,.example-table-10>tbody>tr>td,.example-table-10>tfoot>tr>td{vertical-align:top}.example-table-10>thead>tr>th,.example-table-10>thead>tr>td{vertical-align:bottom}.example-table-10>thead>tr>th,.example-table-10>tbody>tr>th,.example-table-10>tfoot>tr>th,.example-table-10>thead>tr>td,.example-table-10>tbody>tr>td,.example-table-10>tfoot>tr>td{padding:8px 10px}.example-table-10>thead>tr>th,.example-table-10>tbody>tr>th,.example-table-10>tfoot>tr>th,.example-table-10>thead>tr>td,.example-table-10>tbody>tr>td,.example-table-10>tfoot>tr>td{border:0}.example-table-11{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-11 th{text-align:left}.example-table-11>tbody>tr>th,.example-table-11>tfoot>tr>th,.example-table-11>tbody>tr>td,.example-table-11>tfoot>tr>td{vertical-align:top}.example-table-11>thead>tr>th,.example-table-11>thead>tr>td{vertical-align:bottom}.example-table-11>thead>tr>th,.example-table-11>tbody>tr>th,.example-table-11>tfoot>tr>th,.example-table-11>thead>tr>td,.example-table-11>tbody>tr>td,.example-table-11>tfoot>tr>td{padding:8px 10px}.example-table-11>tbody>tr:nth-child(even)>td,.example-table-11>tbody>tr:nth-child(even)>th{background:#ffc;color:#000}.example-table-12{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%}.example-table-12 th{text-align:left}.example-table-12>tbody>tr>th,.example-table-12>tfoot>tr>th,.example-table-12>tbody>tr>td,.example-table-12>tfoot>tr>td{vertical-align:top}.example-table-12>thead>tr>th,.example-table-12>thead>tr>td{vertical-align:bottom}.example-table-12>thead>tr>th,.example-table-12>tbody>tr>th,.example-table-12>tfoot>tr>th,.example-table-12>thead>tr>td,.example-table-12>tbody>tr>td,.example-table-12>tfoot>tr>td{padding:8px 10px}.example-table-12>tbody>tr:nth-child(even):hover>td,.example-table-12>tbody>tr:nth-child(even):hover>th{background:#f0f0f0}.example-table-12>tbody>tr:nth-child(odd):hover>td,.example-table-12>tbody>tr:nth-child(odd):hover>th{background:#f0f0f0}.example-table-13{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:1px solid #d1d1d1}.example-table-13 th{text-align:left}.example-table-13>tbody>tr>th,.example-table-13>tfoot>tr>th,.example-table-13>tbody>tr>td,.example-table-13>tfoot>tr>td{vertical-align:top}.example-table-13>thead>tr>th,.example-table-13>thead>tr>td{vertical-align:bottom}.example-table-13>thead>tr>th,.example-table-13>tbody>tr>th,.example-table-13>tfoot>tr>th,.example-table-13>thead>tr>td,.example-table-13>tbody>tr>td,.example-table-13>tfoot>tr>td{padding:8px 10px}.example-table-13>thead>tr>th,.example-table-13>tbody>tr>th,.example-table-13>tfoot>tr>th,.example-table-13>thead>tr>td,.example-table-13>tbody>tr>td,.example-table-13>tfoot>tr>td{border:1px solid #d1d1d1}.example-table-13>tbody>tr:nth-child(odd)>td,.example-table-13>tbody>tr:nth-child(odd)>th{background:#fff}.example-table-13>tbody>tr:nth-child(even):hover>td,.example-table-13>tbody>tr:nth-child(even):hover>th{background:#f0f0f0}.example-table-13>tbody>tr:nth-child(odd):hover>td,.example-table-13>tbody>tr:nth-child(odd):hover>th{background:#f0f0f0}@media only screen and (max-width: 768px){.example-table-14{ width:100%;overflow-y:hidden;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}}.example-table-15{border-collapse:collapse;border-spacing:0;max-width:100%;width:100%;border:1px solid #d1d1d1}.example-table-15 th{text-align:left}.example-table-15>tbody>tr>th,.example-table-15>tfoot>tr>th,.example-table-15>tbody>tr>td,.example-table-15>tfoot>tr>td{vertical-align:top}.example-table-15>thead>tr>th,.example-table-15>thead>tr>td{vertical-align:bottom}.example-table-15>thead>tr>th,.example-table-15>tbody>tr>th,.example-table-15>tfoot>tr>th,.example-table-15>thead>tr>td,.example-table-15>tbody>tr>td,.example-table-15>tfoot>tr>td{padding:8px 10px}.example-table-15>thead>tr>th,.example-table-15>tbody>tr>th,.example-table-15>tfoot>tr>th,.example-table-15>thead>tr>td,.example-table-15>tbody>tr>td,.example-table-15>tfoot>tr>td{border:1px solid #d1d1d1}.example-table-15>tbody>tr:nth-child(odd)>td,.example-table-15>tbody>tr:nth-child(odd)>th{background:#fff}.example-table-15>tbody>tr:nth-child(even):hover>td,.example-table-15>tbody>tr:nth-child(even):hover>th{background:#f0f0f0}.example-table-15>tbody>tr:nth-child(odd):hover>td,.example-table-15>tbody>tr:nth-child(odd):hover>th{background:#f0f0f0}@media only screen and (max-width: 768px){.example-table-15{ border:0;display:block;background:#cff}.example-table-15>tbody>tr:nth-child(odd)>td,.example-table-15>tbody>tr:nth-child(odd)>th{background:#cff}.example-table-15>tbody>tr:nth-child(even):hover>td,.example-table-15>tbody>tr:nth-child(even):hover>th{background:#cff}.example-table-15>tbody>tr:nth-child(odd):hover>td,.example-table-15>tbody>tr:nth-child(odd):hover>th{background:#cff}.example-table-15>thead>tr>th{display:none}.example-table-15>tbody{display:block}.example-table-15>tbody>tr{display:block}.example-table-15>tbody>tr td,.example-table-15>tbody>tr th{border-bottom:0;display:block;padding:5px 0}.example-table-15>tbody>tr td:before,.example-table-15>tbody>tr th:before{content:attr(data-th) ":";display:inline-block;padding-right:10px;color:#111;font-weight:700}.example-table-15>tbody>tr td{background:#cff}.example-table-15>tbody>tr>th{background-color:#ffc!important}}.example-tooltip-bottom{position:relative}.example-tooltip-bottom .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;top:100%;left:0;margin-top:5px}.example-tooltip-bottom .tooltip-content:after,.example-tooltip-bottom .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-bottom .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-bottom .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-bottom .tooltip-content:after,.example-tooltip-bottom .tooltip-content:before{bottom:100%}.example-tooltip-bottom .tooltip-content:after{border-bottom-color:#fff;margin-left:-5px;left:15px}.example-tooltip-bottom .tooltip-content:before{border-bottom-color:#bbb;margin-left:-6px;left:15px}.example-tooltip-bottom .tooltip-toggle{cursor:help}.example-tooltip-bottom .tooltip-toggle:hover+.tooltip-content,.example-tooltip-bottom .tooltip-toggle:focus+.tooltip-content,.example-tooltip-bottom:hover .tooltip-content{display:block}.example-tooltip-left{position:relative}.example-tooltip-left .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;right:100%;top:0;margin-right:5px}.example-tooltip-left .tooltip-content:after,.example-tooltip-left .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-left .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-left .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-left .tooltip-content:after,.example-tooltip-left .tooltip-content:before{left:100%}.example-tooltip-left .tooltip-content:after{border-left-color:#fff;margin-top:-5px;top:15px}.example-tooltip-left .tooltip-content:before{border-left-color:#bbb;margin-top:-6px;top:15px}.example-tooltip-left .tooltip-toggle{cursor:help}.example-tooltip-left .tooltip-toggle:hover+.tooltip-content,.example-tooltip-left .tooltip-toggle:focus+.tooltip-content,.example-tooltip-left:hover .tooltip-content{display:block}.example-tooltip-right{position:relative}.example-tooltip-right .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;left:100%;top:0;margin-left:5px}.example-tooltip-right .tooltip-content:after,.example-tooltip-right .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-right .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-right .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-right .tooltip-content:after,.example-tooltip-right .tooltip-content:before{right:100%}.example-tooltip-right .tooltip-content:after{border-right-color:#fff;margin-top:-5px;top:15px}.example-tooltip-right .tooltip-content:before{border-right-color:#bbb;margin-top:-6px;top:15px}.example-tooltip-right .tooltip-toggle{cursor:help}.example-tooltip-right .tooltip-toggle:hover+.tooltip-content,.example-tooltip-right .tooltip-toggle:focus+.tooltip-content,.example-tooltip-right:hover .tooltip-content{display:block}.example-tooltip-top{position:relative}.example-tooltip-top .tooltip-content{z-index:100;background:#fff;min-width:210px;max-width:360px;padding:12px 16px;display:none;position:absolute;text-align:left;color:#333;line-height:1.4;border:1px solid #bbb;bottom:100%;left:0;margin-bottom:5px}.example-tooltip-top .tooltip-content:after,.example-tooltip-top .tooltip-content:before{border:solid transparent;content:'';height:0;width:0;position:absolute}.example-tooltip-top .tooltip-content:after{border-color:transparent;border-width:5px}.example-tooltip-top .tooltip-content:before{border-color:transparent;border-width:6px}.example-tooltip-top .tooltip-content:after,.example-tooltip-top .tooltip-content:before{top:100%}.example-tooltip-top .tooltip-content:after{border-top-color:#fff;margin-left:-5px;left:15px}.example-tooltip-top .tooltip-content:before{border-top-color:#bbb;margin-left:-6px;left:15px}.example-tooltip-top .tooltip-toggle{cursor:help}.example-tooltip-top .tooltip-toggle:hover+.tooltip-content,.example-tooltip-top .tooltip-toggle:focus+.tooltip-content,.example-tooltip-top:hover .tooltip-content{display:block}html{font-size:62.5%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-size-adjust:100%}body{font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1.42857143}p{margin-top:0rem;margin-bottom:1rem}abbr[title]{cursor:help;border-bottom:1px dotted #d1d1d1}b,strong{font-weight:700}em,i{font-style:italic}mark{background:#f0f0f0;color:#000}small,.small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #d1d1d1}sub,sup{font-size:71.42857143%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dfn{font-style:italic}h1{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}h2{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:2.5rem;margin-bottom:2rem}h3{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}h4{font-size:1.4rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h5{font-size:1.2rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h6{font-size:1rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small{color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1}a,.alink{color:#1979c3;text-decoration:none}a:visited,.alink:visited{color:#1979c3;text-decoration:none}a:hover,.alink:hover{color:#006bb4;text-decoration:underline}a:active,.alink:active{color:#ff5501;text-decoration:underline}ul,ol{margin-top:0rem;margin-bottom:2.5rem}ul>li,ol>li{margin-top:0rem;margin-bottom:1rem}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}dl{margin-top:0;margin-bottom:20px}dt{font-weight:700;margin-top:0;margin-bottom:5px}dd{margin-top:0;margin-bottom:10px;margin-left:0}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,'Courier New',monospace}code{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px;white-space:nowrap}kbd{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px}pre{background:#f0f0f0;border:1px solid #d1d1d1;color:#111;display:block;font-size:1.2rem;margin:0 0 10px;line-height:1.42857143;padding:10px;word-wrap:break-word}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}blockquote{border-left:0 solid #d1d1d1;margin:0 0 20px 40px;padding:0;font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:italic;line-height:1.42857143}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{color:#333;display:block;font-size:1rem;line-height:1.42857143}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote cite{font-style:normal}blockquote:before,blockquote:after{content:""}q{quotes:none}q:before,q:after{content:'';content:none}cite{font-style:normal}.example{font-size:2.5rem}.example-line-height{line-height:3rem}.example-word-wrap{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto;background:#ccc;width:120px}.example-text-overflow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#ccc;width:120px}.example-text-hide{background-color:transparent;border:0;font:0/0 a;color:transparent;text-shadow:none}.example-hyphens{word-wrap:break-word;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.example-hyphens-none{word-wrap:break-word;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.example-typography{font-size:3rem;color:#fc0;font-family:Menlo,Monaco,Consolas,'Courier New',monospace;font-weight:500;font-style:italic;line-height:1.2}.example-list-reset-styles{margin:0;padding:0;list-style:none none}.example-list-inline{margin:0;padding:0;list-style:none none}.example-list-inline>li{display:inline-block;vertical-align:top}.example-link-default{color:#1979c3;text-decoration:none}.example-link-default:visited{color:#1979c3;text-decoration:none}.example-link-default:hover{color:#006bb4;text-decoration:underline}.example-link-default:active{color:#ff5501;text-decoration:underline}.example-link{color:#008000;text-decoration:none}.example-link:visited{color:#1979c3;text-decoration:none}.example-link:hover{color:#ffa500;text-decoration:none}.example-link:active{color:#ff5501;text-decoration:underline}.example-heading{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}.example-heading-2{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:2.5rem;margin-bottom:2rem}html{font-size:62.5%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-size-adjust:100%}body{font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1.42857143}p{margin-top:0rem;margin-bottom:1rem}abbr[title]{cursor:help;border-bottom:1px dotted #d1d1d1}b,strong{font-weight:700}em,i{font-style:italic}mark{background:#f0f0f0;color:#000}small,.small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #d1d1d1}sub,sup{font-size:71.42857143%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dfn{font-style:italic}h1{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:0rem;margin-bottom:2rem}h2{font-size:2.6rem;font-weight:300;line-height:1.1;margin-top:2.5rem;margin-bottom:2rem}h3{font-size:1.8rem;font-weight:300;line-height:1.1;margin-top:1.5rem;margin-bottom:1rem}h4{font-size:1.4rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h5{font-size:1.2rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h6{font-size:1rem;font-weight:700;line-height:1.1;margin-top:2rem;margin-bottom:2rem}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small{color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:normal;line-height:1}a,.alink{color:#1979c3;text-decoration:none}a:visited,.alink:visited{color:#1979c3;text-decoration:none}a:hover,.alink:hover{color:#006bb4;text-decoration:underline}a:active,.alink:active{color:#ff5501;text-decoration:underline}ul,ol{margin-top:0rem;margin-bottom:2.5rem}ul>li,ol>li{margin-top:0rem;margin-bottom:1rem}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}dl{margin-top:0;margin-bottom:20px}dt{font-weight:700;margin-top:0;margin-bottom:5px}dd{margin-top:0;margin-bottom:10px;margin-left:0}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,'Courier New',monospace}code{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px;white-space:nowrap}kbd{background:#f0f0f0;color:#111;font-size:1.2rem;padding:2px 4px}pre{background:#f0f0f0;border:1px solid #d1d1d1;color:#111;display:block;font-size:1.2rem;margin:0 0 10px;line-height:1.42857143;padding:10px;word-wrap:break-word}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}blockquote{border-left:0 solid #d1d1d1;margin:0 0 20px 40px;padding:0;font-size:1.4rem;color:#333;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;font-style:italic;line-height:1.42857143}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{color:#333;display:block;font-size:1rem;line-height:1.42857143}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote cite{font-style:normal}blockquote:before,blockquote:after{content:""}q{quotes:none}q:before,q:after{content:'';content:none}cite{font-style:normal}.example-clearfix-container-1{border:1px solid red}.example-clearfix-container-2{border:1px solid #0f0}.example-clearfix-container-2:before,.example-clearfix-container-2:after{content:"";display:table}.example-clearfix-container-2:after{clear:both}.example-clearfix-item.left{float:left}.example-clearfix-item.right{float:right}.example-visibility-hidden{height:0;visibility:hidden}.example-visually-hidden-1{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-visually-hidden-2{background:#fdf0d5;padding:5px;border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.example-visually-hidden-2{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.example-css-container{padding:20px;background:#e8e8e8}.example-rotate{background:red;position:absolute;height:20px;width:40px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.example-placeholder::-webkit-input-placeholder{color:#808080;font-weight:700}.example-placeholder:-moz-placeholder{color:#808080;font-weight:700}.example-placeholder::-moz-placeholder{color:#808080;font-weight:700}.example-placeholder:-ms-input-placeholder{color:#808080;font-weight:700}.example-background-gradient-1{background-color:#ccf;background-repeat:repeat-x;background-image:-webkit-linear-gradient(top, #cff 0, #ccf 100%);background-image:linear-gradient(to bottom, #cff 0, #ccf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ccffff', endColorstr='#ccccff', GradientType=0)}.example-background-gradient-2{background-color:#ccf;background-repeat:repeat-x;background-image:-webkit-linear-gradient(left,color-stop( #cff 0),color-stop( #ccf 100%));background-image:linear-gradient(to right, #cff 0, #ccf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ccffff', endColorstr='#ccccff', GradientType=1)}.example-background-gradient-3-wrapper{background:#ffc;padding:10px}.example-background-gradient-3{background-color:rgba(255,255,255,0);background-repeat:repeat-x;background-image:-webkit-linear-gradient(left,color-stop(rgba(255,255,255,0) 0),color-stop( #ccf 100%));background-image:linear-gradient(to right,rgba(255,255,255,0) 0, #ccf 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='rgba(255, 255, 255, 0)',endColorstr='#ccccff',GradientType=1)}body{padding:15px;background-image:none}</style></head><body><nav class="bar top cf"><div class="container"><a href="index.html" class="brand">Magento UI Library</a><ul class="menu"><li><a href="#" data-toggle="dropdown-1" unselectable="on" class="dropdown-toggle">files</a><ul id="dropdown-1" hidden class="dropdown"><li><a href="actions-toolbar.html">actions-toolbar</a></li><li><a href="breadcrumbs.html">breadcrumbs</a></li><li><a href="buttons.html">buttons</a></li><li><a href="docs.html">docs</a></li><li><a href="dropdowns.html">dropdowns</a></li><li><a href="forms.html">forms</a></li><li><a href="icons.html">icons</a></li><li><a href="layout.html">layout</a></li><li><a href="lib.html">lib</a></li><li><a href="loaders.html">loaders</a></li><li><a href="messages.html">messages</a></li><li><a href="pages.html">pages</a></li><li><a href="popups.html">popups</a></li><li><a href="rating.html">rating</a></li><li><a href="resets.html">resets</a></li><li><a href="responsive.html">responsive</a></li><li><a href="sections.html">sections</a></li><li><a href="tables.html">tables</a></li><li><a href="tooltips.html">tooltips</a></li><li><a href="typography.html">typography</a></li><li><a href="utilities.html">utilities</a></li><li><a href="variables.html">variables</a></li></ul></li></ul><div class="nav"><button title="Table of Contents" data-toggle="nav-toc"><svg viewBox="0 0 512 512" height="22" width="22" class="icon"><path d="M108.9,403.1V462H50v-58.9H108.9z M108.9,285.4H50v58.9h58.9V285.4zM108.9,50H50v58.9h58.9V50z M108.9,167.7H50v58.9h58.9V167.7z M167.7,344.3H462v-58.9H167.7V344.3zM167.7,50v58.9H462V50H167.7z M167.7,462H462v-58.9H167.7V462z M167.7,226.6H462v-58.9H167.7V226.6z"></path></svg></button><input type="search" placeholder="Search" class="search"></div></div></nav><section class="container"><article id="icons" class="section"><div class="docs"><a href="#icons" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icons">Icons</h1> <p> Icons can be represented by using the fonts, images, or sprites.</p> <p> An icon can be added to any HTML tag. For this purpose you need to use additional <code><span></code> tag within your tag. This additional tag serves for displaying an icon without visible text, thus following the <strong>accessibility requirements</strong>. Then you need to apply appropriate <code>icon</code> mixin for this tag's class. Icon can be added both before and after element's text. Also, icon can be displayed instead of element's text (in this case the text is hidden).</p> <p> There are two ways to insert icon: first you can use <strong>sprite or image</strong>, second you can use <strong>an icon font</strong>. Magento UI library provides mixins for both of them.</p> @@ -21,59 +21,55 @@ <a href="#" class="example-icon-5"><span>font icon after the text</span></a> <br> <a href="#" class="example-icon-6" title="font icon instead of the text"><span>icon instead of the text</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-1 { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); -} - -.example-icon-2 { - .icon-image( - @_icon-image: '@{baseDir}images/blank-theme-icons.png', - @_icon-image-position-x: -26px, - @_icon-image-position-y: 0, - @_icon-image-position: after - ); -} - -.example-icon-3 { - .icon-image( - @_icon-image: '@{baseDir}images/blank-theme-icons.png', - @_icon-image-position-x: -156px, - @_icon-image-position-y: -52px, - @_icon-image-text-hide: true - ); -} - -.example-icon-4 { - .icon-font( - @_icon-font-content: @icon-settings, - @_icon-font-size: 24px - ); -} - -.example-icon-5 { - .icon-font( - @_icon-font-content: @icon-star, - @_icon-font-size: 24px, - @_icon-font-position: after - ); -} - -.example-icon-6 { - .icon-font( - @_icon-font-content: @icon-flag, - @_icon-font-size: 24px, - @_icon-font-text-hide: true - ); -} - </code></pre></div></article><article id="icon-with-image-or-sprite" class="section"><div class="docs"><a href="#icon-with-image-or-sprite" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-with-image-or-sprite">Icon with image or sprite</h1> +</div><div class="code"><pre><code>.example-icon-1 { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); +} + +.example-icon-2 { + .icon-image( + @_icon-image: '@{baseDir}images/blank-theme-icons.png', + @_icon-image-position-x: -26px, + @_icon-image-position-y: 0, + @_icon-image-position: after + ); +} + +.example-icon-3 { + .icon-image( + @_icon-image: '@{baseDir}images/blank-theme-icons.png', + @_icon-image-position-x: -156px, + @_icon-image-position-y: -52px, + @_icon-image-text-hide: true + ); +} + +.example-icon-4 { + .icon-font( + @_icon-font-content: @icon-settings, + @_icon-font-size: 24px + ); +} + +.example-icon-5 { + .icon-font( + @_icon-font-content: @icon-star, + @_icon-font-size: 24px, + @_icon-font-position: after + ); +} + +.example-icon-6 { + .icon-font( + @_icon-font-content: @icon-flag, + @_icon-font-size: 24px, + @_icon-font-text-hide: true + ); +}</code></pre></div></article><article id="icon-with-image-or-sprite" class="section"><div class="docs"><a href="#icon-with-image-or-sprite" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-with-image-or-sprite">Icon with image or sprite</h1> <p> the <code>.icon-image()</code> mixin is used to create icons using single image or sprite. It has one mandatory parameter - <code>@_icon-image</code>. This parameter accepts the path to an image or sprite.</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-7"><span>icon-search</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-7 { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); -} - </code></pre></div></article><article id="icon-with-image-or-sprite-variables" class="section"><div class="docs"><a href="#icon-with-image-or-sprite-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-with-image-or-sprite-variables">Icon with image or sprite variables</h1> +</div><div class="code"><pre><code>.example-icon-7 { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); +}</code></pre></div></article><article id="icon-with-image-or-sprite-variables" class="section"><div class="docs"><a href="#icon-with-image-or-sprite-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-with-image-or-sprite-variables">Icon with image or sprite variables</h1> <pre> <table> <tr> @@ -138,28 +134,26 @@ </tr> </table> </pre> -</div><div class="code"><pre><code> </code></pre></div></article><article id="icon-position-for-an-icon-with-image-or-sprite" class="section"><div class="docs"><a href="#icon-position-for-an-icon-with-image-or-sprite" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-position-for-an-icon-with-image-or-sprite">Icon position for an icon with image or sprite</h1> +</div></article><article id="icon-position-for-an-icon-with-image-or-sprite" class="section"><div class="docs"><a href="#icon-position-for-an-icon-with-image-or-sprite" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-position-for-an-icon-with-image-or-sprite">Icon position for an icon with image or sprite</h1> <p> To change the position for icons with image the <code>.icon-image-position()</code> mixin is used. By managing its <code>@_icon-image-position-x</code> and <code>@_icon-image-position-y</code> variables you can move the image on element's background. The <code>@_icon-image-position</code> variable is used to define the position of icon (before or after the element).</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-8"><span>icon-star</span></a> <br> <a href="#" class="example-icon-9"><span>icon-heart</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-8 { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); - .icon-image-position( - @_icon-image-position-x: -182px - ); -} - -.example-icon-9 { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png', @_icon-image-position: after); - .icon-image-position( - @_icon-image-position-x: -52px, - @_icon-image-position-y: -26px, - @_icon-image-position: after - ); -} - </code></pre></div></article><article id="position-for-icon-with-image-or-sprite-mixin-variables" class="section"><div class="docs"><a href="#position-for-icon-with-image-or-sprite-mixin-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="position-for-icon-with-image-or-sprite-mixin-variables">Position for icon with image or sprite mixin variables</h1> +</div><div class="code"><pre><code>.example-icon-8 { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); + .icon-image-position( + @_icon-image-position-x: -182px + ); +} + +.example-icon-9 { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png', @_icon-image-position: after); + .icon-image-position( + @_icon-image-position-x: -52px, + @_icon-image-position-y: -26px, + @_icon-image-position: after + ); +}</code></pre></div></article><article id="position-for-icon-with-image-or-sprite-mixin-variables" class="section"><div class="docs"><a href="#position-for-icon-with-image-or-sprite-mixin-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="position-for-icon-with-image-or-sprite-mixin-variables">Position for icon with image or sprite mixin variables</h1> <pre> <table> <tr> @@ -188,15 +182,13 @@ </tr> </table> </pre> -</div><div class="code"><pre><code> </code></pre></div></article><article id="icon-sprite-position-with-grid" class="section"><div class="docs"><a href="#icon-sprite-position-with-grid" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-sprite-position-with-grid">Icon sprite position (with grid)</h1> +</div></article><article id="icon-sprite-position-with-grid" class="section"><div class="docs"><a href="#icon-sprite-position-with-grid" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-sprite-position-with-grid">Icon sprite position (with grid)</h1> <p> Mixin <code>.icon-sprite-position()</code> is used to manage the position of sprite background image. It assumes the use of a single sprite image with individual images <strong>placed on a regular grid</strong>.</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-10"><span>icon text</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-10 { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); - .icon-sprite-position(4, 0); -} - </code></pre></div></article><article id="icon-sprite-position-variables" class="section"><div class="docs"><a href="#icon-sprite-position-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-sprite-position-variables">Icon sprite position variables</h1> +</div><div class="code"><pre><code>.example-icon-10 { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); + .icon-sprite-position(4, 0); +}</code></pre></div></article><article id="icon-sprite-position-variables" class="section"><div class="docs"><a href="#icon-sprite-position-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="icon-sprite-position-variables">Icon sprite position variables</h1> <pre> <table> <tr> @@ -231,18 +223,16 @@ </tr> </table> </pre> -</div><div class="code"><pre><code> </code></pre></div></article><article id="imagesprite-icon-size" class="section"><div class="docs"><a href="#imagesprite-icon-size" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="imagesprite-icon-size">Image/sprite icon size</h1> +</div></article><article id="imagesprite-icon-size" class="section"><div class="docs"><a href="#imagesprite-icon-size" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="imagesprite-icon-size">Image/sprite icon size</h1> <p> Mixin <code>.icon-image-size()</code> is used to change the image/sprite icon size</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-11"><span>icon-search</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-11 { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); - .icon-image-size(30px, 30px); - &:before { - background-color: #f1f1f1; - } -} - </code></pre></div></article><article id="imagesprite-icon-size-variables" class="section"><div class="docs"><a href="#imagesprite-icon-size-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="imagesprite-icon-size-variables">Image/sprite icon size variables</h1> +</div><div class="code"><pre><code>.example-icon-11 { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); + .icon-image-size(30px, 30px); + &:before { + background-color: #f1f1f1; + } +}</code></pre></div></article><article id="imagesprite-icon-size-variables" class="section"><div class="docs"><a href="#imagesprite-icon-size-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="imagesprite-icon-size-variables">Image/sprite icon size variables</h1> <pre> <table> <tr> @@ -274,14 +264,12 @@ </div></article><article id="font-icon" class="section"><div class="docs"><a href="#font-icon" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="font-icon">Font icon</h1> <p> The <code>.icon-font()</code> mixin is used to create icons using font icons. It has one mandatory parameter - <code>@_icon-font-content</code>. This parameter accepts the font icon code.</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-12"><span>icon-calendar</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-12 { - .icon-font( - @icon-calendar, - @_icon-font-size: 28px - ); -} - </code></pre></div></article><article id="font-icon-variables" class="section"><div class="docs"><a href="#font-icon-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="font-icon-variables">Font icon variables</h1> +</div><div class="code"><pre><code>.example-icon-12 { + .icon-font( + @icon-calendar, + @_icon-font-size: 28px + ); +}</code></pre></div></article><article id="font-icon-variables" class="section"><div class="docs"><a href="#font-icon-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="font-icon-variables">Font icon variables</h1> <pre> <table> <tr> @@ -364,17 +352,15 @@ </tr> </table> </pre> -</div><div class="code"><pre><code> </code></pre></div></article><article id="change-the-size-of-font-icon" class="section"><div class="docs"><a href="#change-the-size-of-font-icon" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="change-the-size-of-font-icon">Change the size of font icon</h1> +</div></article><article id="change-the-size-of-font-icon" class="section"><div class="docs"><a href="#change-the-size-of-font-icon" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="change-the-size-of-font-icon">Change the size of font icon</h1> <p> The <code>.icon-font-size()</code> mixin is used to change size of the font icon which is already defined. The mixin generates only new font size and line height without any other options. @_icon-font-position variable is used to define the position of icon (before or after the element) which we want to set font size of.</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-13"><span>icon-calendar</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-13 { - .icon-font(@icon-calendar); - .icon-font-size( - @_icon-font-size: 26px - ); -} - </code></pre></div></article><article id="change-the-size-of-font-icon-variables" class="section"><div class="docs"><a href="#change-the-size-of-font-icon-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="change-the-size-of-font-icon-variables">Change the size of font icon variables</h1> +</div><div class="code"><pre><code>.example-icon-13 { + .icon-font(@icon-calendar); + .icon-font-size( + @_icon-font-size: 26px + ); +}</code></pre></div></article><article id="change-the-size-of-font-icon-variables" class="section"><div class="docs"><a href="#change-the-size-of-font-icon-variables" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="change-the-size-of-font-icon-variables">Change the size of font icon variables</h1> <pre> <table> <tr> @@ -406,15 +392,13 @@ </div></article><article id="hide-icon-text" class="section"><div class="docs"><a href="#hide-icon-text" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="hide-icon-text">Hide icon text</h1> <p> The <code>.icon-text-hide()</code> mixin can be used separately to hide text of an element that has an icon text. This mixin accepts no variables.</p> <textarea class="preview-code" spellcheck="false"> <a href="#" class="example-icon-14"><span>icon-calendar</span></a></textarea> -</div><div class="code"><pre><code> -.example-icon-14 { - .icon-font( - @icon-envelope, - @_icon-font-size: 26px - ); - .icon-text-hide(); -} - </code></pre></div></article><article id="sprite-and-font-icons-for-blank-theme" class="section"><div class="docs"><a href="#sprite-and-font-icons-for-blank-theme" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="sprite-and-font-icons-for-blank-theme">Sprite and font icons for Blank theme</h1> +</div><div class="code"><pre><code>.example-icon-14 { + .icon-font( + @icon-envelope, + @_icon-font-size: 26px + ); + .icon-text-hide(); +}</code></pre></div></article><article id="sprite-and-font-icons-for-blank-theme" class="section"><div class="docs"><a href="#sprite-and-font-icons-for-blank-theme" class="permalink"><svg viewBox="0 0 512 512" height="32" width="32" class="icon"><path d="M156.2,199.7c7.5-7.5,15.9-13.8,24.8-18.7c49.6-27.3,113.1-12.8,145,35.5l-38.5,38.5c-11.1-25.2-38.5-39.6-65.8-33.5c-10.3,2.3-20.1,7.4-28,15.4l-73.9,73.9c-22.4,22.4-22.4,58.9,0,81.4c22.4,22.4,58.9,22.4,81.4,0l22.8-22.8c20.7,8.2,42.9,11.5,64.9,9.9l-50.3,50.3c-43.1,43.1-113,43.1-156.1,0c-43.1-43.1-43.1-113-0-156.1L156.2,199.7z M273.6,82.3l-50.3,50.3c21.9-1.6,44.2,1.6,64.9,9.9l22.8-22.8c22.4-22.4,58.9-22.4,81.4,0c22.4,22.4,22.4,58.9,0,81.4l-73.9,73.9c-22.5,22.5-59.1,22.3-81.4,0c-5.2-5.2-9.7-11.7-12.5-18l-38.5,38.5c4,6.1,8.3,11.5,13.7,16.9c13.9,13.9,31.7,24.3,52.1,29.3c26.5,6.4,54.8,2.8,79.2-10.6c8.9-4.9,17.3-11.1,24.8-18.7l73.9-73.9c43.1-43.1,43.1-113,0-156.1C386.6,39.2,316.7,39.2,273.6,82.3z"></path></svg></a><h1 id="sprite-and-font-icons-for-blank-theme">Sprite and font icons for Blank theme</h1> <p> You can use the icons designed to our Blank theme, which are also available in two variants: sprite and font</p> <h2 id="icons-using-sprite">Icons using sprite</h2> <textarea class="preview-code" spellcheck="false"> <ul class="icons-image-list"> @@ -642,180 +626,185 @@ <li> <span class="icon-arrow-down-thin" data-icon=""><span>@icon-arrow-down-thin</span></span> </li> + <li> + <span class="icon-arrow-left-thin" data-icon=""><span>@icon-gift-registry</span></span> + </li> + <li> + <span class="icon-arrow-down-thin" data-icon=""><span>@icon-present</span></span> + </li> </ul></textarea> -</div><div class="code"><pre><code> -.icons-image-list { - list-style: none; - padding: 0; - li { - float: left; - width: 33%; - > span { - .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); - } - .icon-search { - .icon-sprite-position(0, 0); - } - .icon-cart { - .icon-sprite-position(1, 0); - } - .icon-arrow-down { - .icon-sprite-position(2, 0); - } - .icon-arrow-up { - .icon-sprite-position(3, 0); - } - .icon-grid { - .icon-sprite-position(4, 0); - } - .icon-list { - .icon-sprite-position(5, 0); - } - .icon-remove { - .icon-sprite-position(6, 0); - } - .icon-star { - .icon-sprite-position(7, 0); - } - .icon-pointer-down { - .icon-sprite-position(8, 0); - } - .icon-pointer-up { - .icon-sprite-position(9, 0); - } - .icon-pointer-left { - .icon-sprite-position(10, 0); - } - .icon-pointer-right { - .icon-sprite-position(11, 0); - } - .icon-compare-empty { - .icon-sprite-position(0, 1); - } - .icon-compare-full { - .icon-sprite-position(1, 1); - } - .icon-wishlist-empty { - .icon-sprite-position(2, 1); - } - .icon-wishlist-full { - .icon-sprite-position(3, 1); - } - .icon-update { - .icon-sprite-position(4, 1); - } - .icon-collapse { - .icon-sprite-position(5, 1); - } - .icon-expand { - .icon-sprite-position(6, 1); - } - .icon-menu { - .icon-sprite-position(7, 1); - } - .icon-prev { - .icon-sprite-position(8, 1); - } - .icon-next { - .icon-sprite-position(9, 1); - } - .icon-settings { - .icon-sprite-position(10, 1); - } - .icon-info { - .icon-sprite-position(11, 1); - } - .icon-checkmark { - .icon-sprite-position(0, 2); - } - .icon-calendar { - .icon-sprite-position(1, 2); - } - .icon-comment { - .icon-sprite-position(2, 2); - } - .icon-comment-reflected { - .icon-sprite-position(3, 2); - } - .icon-envelope { - .icon-sprite-position(4, 2); - } - .icon-warning { - .icon-sprite-position(5, 2); - } - .icon-trash { - .icon-sprite-position(6, 2); - } - .icon-flag { - .icon-sprite-position(7, 2); - } - .icon-location { - .icon-sprite-position(8, 2); - } - .icon-up { - .icon-sprite-position(9, 2); - } - .icon-down { - .icon-sprite-position(10, 2); - } - } -} - -@icon-wishlist-full: '\e600'; -@icon-wishlist-empty: '\e601'; -@icon-warning: '\e602'; -@icon-update: '\e603'; -@icon-trash: '\e604'; -@icon-star: '\e605'; -@icon-settings: '\e606'; -@icon-pointer-down: '\e607'; -@icon-next: '\e608'; -@icon-menu: '\e609'; -@icon-location: '\e60a'; -@icon-list: '\e60b'; -@icon-info: '\e60c'; -@icon-grid: '\e60d'; -@icon-comment-reflected: '\e60e'; -@icon-collapse: '\e60f'; -@icon-checkmark: '\e610'; -@icon-cart: '\e611'; -@icon-calendar: '\e612'; -@icon-arrow-up: '\e613'; -@icon-arrow-down: '\e614'; -@icon-search: '\e615'; -@icon-remove: '\e616'; -@icon-prev: '\e617'; -@icon-pointer-up: '\e618'; -@icon-pointer-right: '\e619'; -@icon-pointer-left: '\e61a'; -@icon-flag: '\e61b'; -@icon-expand: '\e61c'; -@icon-envelope: '\e61d'; -@icon-compare-full: '\e61e'; -@icon-compare-empty: '\e61f'; -@icon-comment: '\e620'; -@icon-up: '\e621'; -@icon-down: '\e622'; -@icon-arrow-up-thin: '\e623'; -@icon-arrow-right-thin: '\e624'; -@icon-arrow-left-thin: '\e625'; -@icon-arrow-down-thin: '\e626'; - -.icons-font-list { - list-style: none; - padding: 0; - li { - float: left; - width: 25%; - margin-bottom: 35px; - text-align: center; - > span { - .icon-font('', @_icon-font-size: 34px); - &:before { - content: attr(data-icon); - margin: 0 auto; - display: block; - } - } - } -} </code></pre></div></article></section><div class="bar bottom"><div hidden class="settings container"><!-- Icons from http://iconmonstr.com--><button title="Desktop (1280)" data-width='1280'><svg viewBox="0 0 412 386" height="24" width="26" class="icon"><path d="m147.6,343.9c-4.5,15.9-26.2,37.6-42.1,42.1h201c-15.3,-4-38.1,-26.8-42.1,-42.1H147.6zM387,0.5H25c-13.8,0-25,11.2-25,25V294c0,13.8 11.2,25 25,25h362c13.8,0 25,-11.2 25,-25V25.5C412,11.7 400.8,0.5 387,0.5zM369.9,238.2H42.1L42.1,42.6 369.9,42.6V238.2z"></path></svg></button><button title="Laptop (1024)" data-width='1024'><svg viewBox="0 0 384 312" height="23" width="28" class="icon"><path d="m349.2,20.5c0,-11-9,-20-20,-20H53.6c-11,0-20,9-20,20v194H349.2v-194zm-27,167H60.6V27.5H322.2v160zm28,42H32.6L2.6,282.1c-3.5,6.2-3.5,13.8 0.1,19.9 3.6,6.2 10.2,9.9 17.3,9.9H363.1c7.1,0 13.7,-3.8 17.3,-10 3.6,-6.2 3.6,-13.8 0,-20l-30.2,-52.5zm-196.9,54 8,-23.5h60.5l8,23.5h-76.5z"></path></svg></button><button title="Tablet (768)" data-width='768'><svg viewBox="0 0 317 412" height="24" width="18" class="icon"><path d="M 316.5,380 V 32 c 0,-17.7 -14.3,-32 -32,-32 H 32 C 14.3,0 0,14.3 0,32 v 348 c 0,17.7 14.3,32 32,32 h 252.5 c 17.7,0 32,-14.3 32,-32 z M 40,367 V 45 H 276.5 V 367 H 40 z m 109.8,22.7 c 0,-4.7 3.8,-8.5 8.5,-8.5 4.7,0 8.5,3.8 8.5,8.5 0,4.7 -3.8,8.5 -8.5,8.5 -4.7,0 -8.5,-3.8 -8.5,-8.5 z"></path></svg></button><button title="Smart phone (320)" data-width='320'><svg viewBox="0 0 224 412" height="24" width="13" class="icon"><path d="M 190.7,0 H 33 C 14.8,0 0,14.8 0,33 v 346 c 0,18.2 14.8,33 33,33 h 157.7 c 18.2,0 33,-14.8 33,-33 V 33 c 0,-18.2 -14.8,-33 -33,-33 z M 94.3,30.2 h 37 c 2.2,0 4,1.8 4,4 0,2.2 -1.8,4 -4,4 h -37 c -2.2,0 -4,-1.8 -4,-4 0,-2.2 1.8,-4 4,-4 z m 18.5,362.8 c -8.8,0 -16,-7.2 -16,-16 0,-8.8 7.2,-16 16,-16 8.8,0 16,7.2 16,16 0,8.8 -7.2,16 -16,16 z M 198.6,343.8 H 25.1 V 68.2 h 173.5 v 275.5 z"></path></svg></button><button title="Feature phone (240)" data-width='240'><svg viewBox="0 0 201 412" height="24" width="12" class="icon"><path d="M 165.5,0.2 V 45 H 25 c -13.8,0 -25,11.2 -25,25 V 387 c 0,13.8 11.2,25 25,25 h 150.5 c 13.8,0 25,-11.2 25,-25 V 0.2 h -35 z M 65.2,366.5 H 34.2 v -24.5 h 31 v 24.5 z m 0,-44.3 H 34.2 v -24.5 h 31 v 24.5 z m 50.5,44.3 H 84.7 v -24.5 h 31 v 24.5 z m 0,-44.3 H 84.7 v -24.5 h 31 v 24.5 z m 50.5,44.3 h -31 v -24.5 h 31 v 24.5 z m 0,-44.3 h -31 v -24.5 h 31 v 24.5 z m 0,-59.3 h -132 V 95.4 h 132 V 262.9 z"></path></svg></button><button title="Auto (100%)" data-width="auto" class="auto is-active">Auto</button></div></div><script>(function(){var a=[{title:"actions-toolbar",filename:"actions-toolbar",url:"actions-toolbar.html"},{title:"Actions toolbar",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar"},{title:"Actions toolbar mixin variables",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar-mixin-variables"},{title:"Actions toolbar alignment",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar-alignment"},{title:"Reverse primary and secondary blocks",filename:"actions-toolbar",url:"actions-toolbar.html#reverse-primary-and-secondary-blocks"},{title:"Actions toolbar indents customizations",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar-indents-customizations"},{title:"Responsive actions toolbar",filename:"actions-toolbar",url:"actions-toolbar.html#responsive-actions-toolbar"},{title:"breadcrumbs",filename:"breadcrumbs",url:"breadcrumbs.html"},{title:"Breadcrumbs",filename:"breadcrumbs",url:"breadcrumbs.html#breadcrumbs"},{title:"Breadcrumbs variables",filename:"breadcrumbs",url:"breadcrumbs.html#breadcrumbs-variables"},{title:"Button-styled breadcrumbs with gradient background, border, and no separating symbol",filename:"breadcrumbs",url:"breadcrumbs.html#buttonstyled-breadcrumbs-with-gradient-background-border-and-no-separating-symbol"},{title:"Breadcrumbs with solid background",filename:"breadcrumbs",url:"breadcrumbs.html#breadcrumbs-with-solid-background"},{title:"buttons",filename:"buttons",url:"buttons.html"},{title:"Default button",filename:"buttons",url:"buttons.html#default-button"},{title:"Button variables",filename:"buttons",url:"buttons.html#button-variables"},{title:"Button as an icon",filename:"buttons",url:"buttons.html#button-as-an-icon"},{title:"Button with an icon on the left or right side of the text",filename:"buttons",url:"buttons.html#button-with-an-icon-on-the-left-or-right-side-of-the-text"},{title:"Button with fixed width",filename:"buttons",url:"buttons.html#button-with-fixed-width"},{title:"Primary button",filename:"buttons",url:"buttons.html#primary-button"},{title:"Primary button variables",filename:"buttons",url:"buttons.html#primary-button-variables"},{title:"Button with gradient background",filename:"buttons",url:"buttons.html#button-with-gradient-background"},{title:"Button as a link",filename:"buttons",url:"buttons.html#button-as-a-link"},{title:"Link as a button",filename:"buttons",url:"buttons.html#link-as-a-button"},{title:"Button reset",filename:"buttons",url:"buttons.html#button-reset"},{title:"Button revert secondary color",filename:"buttons",url:"buttons.html#button-revert-secondary-color"},{title:"Button revert secondary color variables",filename:"buttons",url:"buttons.html#button-revert-secondary-color-variables"},{title:"Button revert secondary size",filename:"buttons",url:"buttons.html#button-revert-secondary-size"},{title:"Button revert secondary size variables",filename:"buttons",url:"buttons.html#button-revert-secondary-size-variables"},{title:"docs",filename:"docs",url:"docs.html"},{title:"Documentation",filename:"docs",url:"docs.html#documentation"},{title:"dropdowns",filename:"dropdowns",url:"dropdowns.html"},{title:"Drop-down and split buttons mixins",filename:"dropdowns",url:"dropdowns.html#dropdown-and-split-buttons-mixins"},{title:"Drop-down",filename:"dropdowns",url:"dropdowns.html#dropdown"},{title:"Drop-down variables",filename:"dropdowns",url:"dropdowns.html#dropdown-variables"},{title:"Drop-down with icon customization",filename:"dropdowns",url:"dropdowns.html#dropdown-with-icon-customization"},{title:"Modify dropdown list styles",filename:"dropdowns",url:"dropdowns.html#modify-dropdown-list-styles"},{title:"Split button",filename:"dropdowns",url:"dropdowns.html#split-button"},{title:"Split button variables",filename:"dropdowns",url:"dropdowns.html#split-button-variables"},{title:"Split button - button styling",filename:"dropdowns",url:"dropdowns.html#split-button-button-styling"},{title:"Split button icon customization",filename:"dropdowns",url:"dropdowns.html#split-button-icon-customization"},{title:"Split button drop-down list customization",filename:"dropdowns",url:"dropdowns.html#split-button-dropdown-list-customization"},{title:"forms",filename:"forms",url:"forms.html"},{title:"Forms mixins",filename:"forms",url:"forms.html#forms-mixins"},{title:"Global forms elements customization",filename:"forms",url:"forms.html#global-forms-elements-customization"},{title:"Fieldsets & fields customization",filename:"forms",url:"forms.html#fieldsets-fields-customization"},{title:"Fieldset and legend customization variables",filename:"forms",url:"forms.html#fieldset-and-legend-customization-variables"},{title:"Fields customization variables",filename:"forms",url:"forms.html#fields-customization-variables"},{title:"Required fields message customization variables",filename:"forms",url:"forms.html#required-fields-message-customization-variables"},{title:"Form element inputs customization",filename:"forms",url:"forms.html#form-element-inputs-customization"},{title:"Form element inputs customization variables",filename:"forms",url:"forms.html#form-element-inputs-customization-variables"},{title:"Form element choice",filename:"forms",url:"forms.html#form-element-choice"},{title:"Form element choice variables",filename:"forms",url:"forms.html#form-element-choice-variables"},{title:"Custom color",filename:"forms",url:"forms.html#custom-color"},{title:"Input number - input-text view",filename:"forms",url:"forms.html#input-number-inputtext-view"},{title:"Input search - input-text view",filename:"forms",url:"forms.html#input-search-inputtext-view"},{title:"Form validation",filename:"forms",url:"forms.html#form-validation"},{title:"Form validation variables// <pre>",filename:"forms",url:"forms.html#form-validation-variables-pre"},{title:"icons",filename:"icons",url:"icons.html"},{title:"Icons",filename:"icons",url:"icons.html#icons"},{title:"Icon with image or sprite",filename:"icons",url:"icons.html#icon-with-image-or-sprite"},{title:"Icon with image or sprite variables",filename:"icons",url:"icons.html#icon-with-image-or-sprite-variables"},{title:"Icon position for an icon with image or sprite",filename:"icons",url:"icons.html#icon-position-for-an-icon-with-image-or-sprite"},{title:"Position for icon with image or sprite mixin variables",filename:"icons",url:"icons.html#position-for-icon-with-image-or-sprite-mixin-variables"},{title:"Icon sprite position (with grid)",filename:"icons",url:"icons.html#icon-sprite-position-with-grid"},{title:"Icon sprite position variables",filename:"icons",url:"icons.html#icon-sprite-position-variables"},{title:"Image/sprite icon size",filename:"icons",url:"icons.html#imagesprite-icon-size"},{title:"Image/sprite icon size variables",filename:"icons",url:"icons.html#imagesprite-icon-size-variables"},{title:"Font icon",filename:"icons",url:"icons.html#font-icon"},{title:"Font icon variables",filename:"icons",url:"icons.html#font-icon-variables"},{title:"Change the size of font icon",filename:"icons",url:"icons.html#change-the-size-of-font-icon"},{title:"Change the size of font icon variables",filename:"icons",url:"icons.html#change-the-size-of-font-icon-variables"},{title:"Hide icon text",filename:"icons",url:"icons.html#hide-icon-text"},{title:"Sprite and font icons for Blank theme",filename:"icons",url:"icons.html#sprite-and-font-icons-for-blank-theme"},{title:"layout",filename:"layout",url:"layout.html"},{title:"Layout",filename:"layout",url:"layout.html#layout"},{title:"Layout global variables",filename:"layout",url:"layout.html#layout-global-variables"},{title:"Page layouts",filename:"layout",url:"layout.html#page-layouts"},{title:"Layout column",filename:"layout",url:"layout.html#layout-column"},{title:"Layout column variables",filename:"layout",url:"layout.html#layout-column-variables"},{title:"Layout width",filename:"layout",url:"layout.html#layout-width"},{title:"Layout width variables",filename:"layout",url:"layout.html#layout-width-variables"},{title:"lib",filename:"lib",url:"lib.html"},{title:"Including Magento UI library to your theme",filename:"lib",url:"lib.html#including-magento-ui-library-to-your-theme"},{title:"loaders",filename:"loaders",url:"loaders.html"},{title:"Loaders",filename:"loaders",url:"loaders.html#loaders"},{title:"Default loader variables",filename:"loaders",url:"loaders.html#default-loader-variables"},{title:"Loading",filename:"loaders",url:"loaders.html#loading"},{title:"Loading default variables",filename:"loaders",url:"loaders.html#loading-default-variables"},{title:"messages",filename:"messages",url:"messages.html"},{title:"Messages",filename:"messages",url:"messages.html#messages"},{title:"Information message",filename:"messages",url:"messages.html#information-message"},{title:"Warning message",filename:"messages",url:"messages.html#warning-message"},{title:"Error message",filename:"messages",url:"messages.html#error-message"},{title:"Success message",filename:"messages",url:"messages.html#success-message"},{title:"Notice message",filename:"messages",url:"messages.html#notice-message"},{title:"Message with inner icon",filename:"messages",url:"messages.html#message-with-inner-icon"},{title:"Message with lateral icon",filename:"messages",url:"messages.html#message-with-lateral-icon"},{title:"Custom message style",filename:"messages",url:"messages.html#custom-message-style"},{title:"Messages global variables",filename:"messages",url:"messages.html#messages-global-variables"},{title:"pages",filename:"pages",url:"pages.html"},{title:"Pagination HTML markup",filename:"pages",url:"pages.html#pagination-html-markup"},{title:"Pagination variables",filename:"pages",url:"pages.html#pagination-variables"},{title:"Pagination with label and gradient background on links",filename:"pages",url:"pages.html#pagination-with-label-and-gradient-background-on-links"},{title:'Pagination with "previous"..."next" text links and label',filename:"pages",url:"pages.html#pagination-with-previousnext-text-links-and-label"},{title:"Pagination without label, with solid background",filename:"pages",url:"pages.html#pagination-without-label-with-solid-background"},{title:"popups",filename:"popups",url:"popups.html"},{title:"Popups",filename:"popups",url:"popups.html#popups"},{title:"Popup variables",filename:"popups",url:"popups.html#popup-variables"},{title:"Window overlay mixin variables",filename:"popups",url:"popups.html#window-overlay-mixin-variables"},{title:"Fixed height popup",filename:"popups",url:"popups.html#fixed-height-popup"},{title:"Fixed content height popup",filename:"popups",url:"popups.html#fixed-content-height-popup"},{title:"Margins for header, content and footer block in popup",filename:"popups",url:"popups.html#margins-for-header-content-and-footer-block-in-popup"},{title:"Popup titles styled as theme headings",filename:"popups",url:"popups.html#popup-titles-styled-as-theme-headings"},{title:"Popup action toolbar",filename:"popups",url:"popups.html#popup-action-toolbar"},{title:"Popup Close button without an icon",filename:"popups",url:"popups.html#popup-close-button-without-an-icon"},{title:"Modify the icon of popup Close button",filename:"popups",url:"popups.html#modify-the-icon-of-popup-close-button"},{title:"Modify overlay styles",filename:"popups",url:"popups.html#modify-overlay-styles"},{title:"rating",filename:"rating",url:"rating.html"},{title:"Ratings",filename:"rating",url:"rating.html#ratings"},{title:"Global rating variables",filename:"rating",url:"rating.html#global-rating-variables"},{title:"Rating with vote",filename:"rating",url:"rating.html#rating-with-vote"},{title:"Rating with vote icons number customization",filename:"rating",url:"rating.html#rating-with-vote-icons-number-customization"},{title:"Rating with vote icons colors customization",filename:"rating",url:"rating.html#rating-with-vote-icons-colors-customization"},{title:"Rating with vote icons symbol customization",filename:"rating",url:"rating.html#rating-with-vote-icons-symbol-customization"},{title:"Accessible rating with vote",filename:"rating",url:"rating.html#accessible-rating-with-vote"},{title:"Rating summary",filename:"rating",url:"rating.html#rating-summary"},{title:"Rating summary icons number customization",filename:"rating",url:"rating.html#rating-summary-icons-number-customization"},{title:"Rating summary icons color customization",filename:"rating",url:"rating.html#rating-summary-icons-color-customization"},{title:"Rating summary icons symbol customization",filename:"rating",url:"rating.html#rating-summary-icons-symbol-customization"},{title:"Rating summary hide label",filename:"rating",url:"rating.html#rating-summary-hide-label"},{title:"Rating summary multiple ratings",filename:"rating",url:"rating.html#rating-summary-multiple-ratings"},{title:"Rating hide label mixin",filename:"rating",url:"rating.html#rating-hide-label-mixin"},{title:"resets",filename:"resets",url:"resets.html"},{title:"Resets",filename:"resets",url:"resets.html#resets"},{title:"responsive",filename:"responsive",url:"responsive.html"},{title:"Responsive",filename:"responsive",url:"responsive.html#responsive"},{title:"Responsive mixins usage",filename:"responsive",url:"responsive.html#responsive-mixins-usage"},{title:"Media query style groups separation variables",filename:"responsive",url:"responsive.html#media-query-style-groups-separation-variables"},{title:"Responsive breakpoints",filename:"responsive",url:"responsive.html#responsive-breakpoints"},{title:"sections",filename:"sections",url:"sections.html"},{title:"Tabs and accordions",filename:"sections",url:"sections.html#tabs-and-accordions"},{title:"Tabs",filename:"sections",url:"sections.html#tabs"},{title:"Tabs mixin variables",filename:"sections",url:"sections.html#tabs-mixin-variables"},{title:"Tabs with content top border",filename:"sections",url:"sections.html#tabs-with-content-top-border"},{title:"Accordion",filename:"sections",url:"sections.html#accordion"},{title:"Accordion mixin variables",filename:"sections",url:"sections.html#accordion-mixin-variables"},{title:"Responsive tabs",filename:"sections",url:"sections.html#responsive-tabs"},{title:"Tabs Base",filename:"sections",url:"sections.html#tabs-base"},{title:"Accordion Base",filename:"sections",url:"sections.html#accordion-base"},{title:"tables",filename:"tables",url:"tables.html"},{title:"Tables",filename:"tables",url:"tables.html#tables"},{title:"Table mixin variables",filename:"tables",url:"tables.html#table-mixin-variables"},{title:"Table typography",filename:"tables",url:"tables.html#table-typography"},{title:"Table typography mixin variables",filename:"tables",url:"tables.html#table-typography-mixin-variables"},{title:"Table caption",filename:"tables",url:"tables.html#table-caption"},{title:"Table caption mixin variables",filename:"tables",url:"tables.html#table-caption-mixin-variables"},{title:"Table cells resize",filename:"tables",url:"tables.html#table-cells-resize"},{title:"Table cells resize variables",filename:"tables",url:"tables.html#table-cells-resize-variables"},{title:"Table background customization",filename:"tables",url:"tables.html#table-background-customization"},{title:"Table background mixin variables",filename:"tables",url:"tables.html#table-background-mixin-variables"},{title:"Table borders customization",filename:"tables",url:"tables.html#table-borders-customization"},{title:"Table borders mixin variables",filename:"tables",url:"tables.html#table-borders-mixin-variables"},{title:"Table with horizontal borders",filename:"tables",url:"tables.html#table-with-horizontal-borders"},{title:"Table with vertical borders",filename:"tables",url:"tables.html#table-with-vertical-borders"},{title:"Table with light borders",filename:"tables",url:"tables.html#table-with-light-borders"},{title:"Table without borders",filename:"tables",url:"tables.html#table-without-borders"},{title:"Striped table",filename:"tables",url:"tables.html#striped-table"},{title:"Striped table mixin variables",filename:"tables",url:"tables.html#striped-table-mixin-variables"},{title:"Table with rows hover",filename:"tables",url:"tables.html#table-with-rows-hover"},{title:"Table with rows hover mixin variables",filename:"tables",url:"tables.html#table-with-rows-hover-mixin-variables"},{title:"Responsive table technics #1",filename:"tables",url:"tables.html#responsive-table-technics-1"},{title:"Responsive table technics #2",filename:"tables",url:"tables.html#responsive-table-technics-2"},{title:"Responsive table technics #2 mixin variables",filename:"tables",url:"tables.html#responsive-table-technics-2-mixin-variables"},{title:"tooltips",filename:"tooltips",url:"tooltips.html"},{title:"Tooltips",filename:"tooltips",url:"tooltips.html#tooltips"},{title:"Tooltips variables",filename:"tooltips",url:"tooltips.html#tooltips-variables"},{title:"typography",filename:"typography",url:"typography.html"},{title:"Typogrphy",filename:"typography",url:"typography.html#typogrphy"},{title:"Typography variables",filename:"typography",url:"typography.html#typography-variables"},{title:"Font-size mixin",filename:"typography",url:"typography.html#fontsize-mixin"},{title:"Line-height mixin",filename:"typography",url:"typography.html#lineheight-mixin"},{title:"Word breaking mixin",filename:"typography",url:"typography.html#word-breaking-mixin"},{title:"Font face mixin",filename:"typography",url:"typography.html#font-face-mixin"},{title:"Text overflow mixin",filename:"typography",url:"typography.html#text-overflow-mixin"},{title:"Text hide",filename:"typography",url:"typography.html#text-hide"},{title:"Hyphens",filename:"typography",url:"typography.html#hyphens"},{title:"Font style and color",filename:"typography",url:"typography.html#font-style-and-color"},{title:"Font style mixin variables",filename:"typography",url:"typography.html#font-style-mixin-variables"},{title:"Reset list styles",filename:"typography",url:"typography.html#reset-list-styles"},{title:"Reset list styles variables",filename:"typography",url:"typography.html#reset-list-styles-variables"},{title:"Inline-block list item styling",filename:"typography",url:"typography.html#inlineblock-list-item-styling"},{title:"Link styling mixin",filename:"typography",url:"typography.html#link-styling-mixin"},{title:"Link styling mixin variables",filename:"typography",url:"typography.html#link-styling-mixin-variables"},{title:"Heading styling mixin",filename:"typography",url:"typography.html#heading-styling-mixin"},{title:"Base typography mixins",filename:"typography",url:"typography.html#base-typography-mixins"},{title:"Headings typography mixin",filename:"typography",url:"typography.html#headings-typography-mixin"},{title:"Typography links mixin",filename:"typography",url:"typography.html#typography-links-mixin"},{title:"Typography lists mixin",filename:"typography",url:"typography.html#typography-lists-mixin"},{title:"Typography code elements mixin",filename:"typography",url:"typography.html#typography-code-elements-mixin"},{title:"Typography blockquote",filename:"typography",url:"typography.html#typography-blockquote"},{title:"utilities",filename:"utilities",url:"utilities.html"},{title:"Utilities",filename:"utilities",url:"utilities.html#utilities"},{title:".clearfix()",filename:"utilities",url:"utilities.html#clearfix"},{title:".visibility-hidden()",filename:"utilities",url:"utilities.html#visibilityhidden"},{title:".visually-hidden()",filename:"utilities",url:"utilities.html#visuallyhidden"},{title:".visually-hidden-reset()",filename:"utilities",url:"utilities.html#visuallyhiddenreset"},{title:".css()",filename:"utilities",url:"utilities.html#css"},{title:".css() variables",filename:"utilities",url:"utilities.html#css-variables"},{title:".rotate()",filename:"utilities",url:"utilities.html#rotate"},{title:".rotate() variables",filename:"utilities",url:"utilities.html#rotate-variables"},{title:".input-placeholder()",filename:"utilities",url:"utilities.html#inputplaceholder"},{title:".input-placeholder() variables",filename:"utilities",url:"utilities.html#inputplaceholder-variables"},{title:".background-gradient()",filename:"utilities",url:"utilities.html#backgroundgradient"},{title:".background-gradient() variables",filename:"utilities",url:"utilities.html#backgroundgradient-variables"},{title:"variables",filename:"variables",url:"variables.html"},{title:"List of Global Variables",filename:"variables",url:"variables.html#list-of-global-variables"},{title:"Table with rows hover mixin variables",filename:"variables",url:"variables.html#table-with-rows-hover-mixin-variables"}];(function(){"use strict";var b=function(a,b){return Array.prototype.indexOf.call(a,b)!==-1},c=function(a,b){return Array.prototype.filter.call(a,b)},d=function(a,b){return Array.prototype.forEach.call(a,b)},e=document.getElementsByTagName("body")[0];e.addEventListener("click",function(a){var b=a.target;b.tagName.toLowerCase()==="svg"&&(b=b.parentNode);var c=!1;b.dataset.toggle!=null&&(a.preventDefault(),b.classList.contains("is-active")||(c=!0)),d(e.querySelectorAll("[data-toggle]"),function(a){a.classList.remove("is-active"),document.getElementById(a.dataset.toggle).hidden=!0}),c&&(b.classList.add("is-active"),document.getElementById(b.dataset.toggle).hidden=!1)}),function(){var f=e.getElementsByClassName("nav")[0];if(!f)return;var g=document.createElement("ul");g.className="nav-results",g.id="nav-search",g.hidden=!0,d(a,function(a){var b,c,d;b=document.createElement("li"),b._title=a.title.toLowerCase(),b.hidden=!0,b.appendChild(c=document.createElement("a")),c.href=a.url,c.innerHTML=a.title,c.appendChild(d=document.createElement("span")),d.innerHTML=a.filename,d.className="nav-results-filename",g.appendChild(b)}),f.appendChild(g);var h=g.children,i=function(a){d(h,function(a){a.hidden=!0});var b=this.value.toLowerCase(),e=[];b!==""&&(e=c(h,function(a){return a._title.indexOf(b)!==-1})),e.length>0?(d(e,function(a){a.hidden=!1}),g.hidden=!1):g.hidden=!0},j=f.querySelector('input[type="search"]');j.addEventListener("keyup",i),j.addEventListener("focus",i),e.addEventListener("click",function(a){if(a.target.classList&&a.target.classList.contains("search"))return;g.hidden=!0}),g.addEventListener("click",function(a){j.value=""});var k=document.createElement("ul");k.id="nav-toc",k.hidden=!0,k.className="nav-results toc-list",c(e.getElementsByTagName("*"),function(a){return b(["h1","h2","h3"],a.tagName.toLowerCase())}).map(function(a){var b=document.createElement("li"),c=document.createElement("a"),d=a.tagName.toLowerCase()[1];c.classList.add("level-"+d),b.appendChild(c),c.href="#"+a.id,c.innerHTML=a.innerHTML,k.appendChild(b)}),f.appendChild(k)}()})(),function(){"use strict";if(location.hash==="#__preview__"||location.protocol==="data:")return;var a=function(a,b){return Array.prototype.forEach.call(a,b)},b=function(a,b){var e=Array.prototype.slice.call(arguments,2);return d(a,function(a){return(c(b)?b||a:a[b]).apply(a,e)})},c=function(a){return Object.prototype.toString.call(a)==="[object Function]"},d=function(a,b){return Array.prototype.map.call(a,b)},e=function(a,b){return d(a,function(a){return a[b]})},f=function(a){var b={},c=a.split(";");for(var d=0;c.length>d;d++){var e=c[d].trim().split("=");b[e[0]]=e[1]}return b},g=function(a,c){return b(e(a,"classList"),"remove",c)},h=function(a,b){a.contentDocument.defaultView.postMessage(b,"*")},i=document.getElementsByTagName("head")[0],j=document.getElementsByTagName("body")[0],k=e(i.querySelectorAll('style[type="text/preview"]'),"innerHTML").join(""),l=e(i.querySelectorAll('script[type="text/preview"]'),"innerHTML").join(""),m=location.href.split("#")[0]+"#__preview__",n=document.createElement("iframe");n.src="data:text/html,",j.appendChild(n),n.addEventListener("load",function(){var b={sameOriginDataUri:!0};try{this.contentDocument,this.contentDocument||(b.sameOriginDataUri=!1)}catch(c){b.sameOriginDataUri=!1}this.parentNode.removeChild(this),a(j.getElementsByTagName("textarea"),function(a,c){o(a,b,c),q(),p(a)})});var o=function(a,b,c){var d,e,f;d=document.createElement("div"),d.appendChild(e=document.createElement("div")),d.className="preview",e.appendChild(f=document.createElement("iframe")),e.className="resizeable",f.setAttribute("scrolling","no"),f.name="iframe"+c++,f.addEventListener("load",function(){var c,d,e,f,g,i,j;j=this.contentDocument;if(!b.sameOriginDataUri&&this.src!==m)return;this.src===m&&(c=j.createElement("html"),c.appendChild(j.createElement("head")),c.appendChild(d=j.createElement("body")),d.innerHTML=a.textContent,j.replaceChild(c,j.documentElement)),g=j.createElement("head"),g.appendChild(f=j.createElement("style")),g.appendChild(e=j.createElement("script")),e.textContent=l,f.textContent=k,i=j.getElementsByTagName("head")[0],i.parentNode.replaceChild(g,i),h(this,"getHeight")});var g;b.sameOriginDataUri?g="data:text/html;charset=utf-8,"+encodeURIComponent("<!doctype html><html><head></head></body>"+a.textContent):g=m,f.setAttribute("src",g);var i=function(){f.contentDocument.body.innerHTML=this.value,h(f,"getHeight")};a.addEventListener("keypress",i),a.addEventListener("keyup",i),a.parentNode.insertBefore(d,a)},p=function(a){var b=document.createElement("div");b.className="preview-code",b.style.position="absolute",b.style.left="-9999px",j.appendChild(b);var c=parseInt(window.getComputedStyle(a).getPropertyValue("max-height"),10),d=function(a){b.textContent=this.value+"\n";var d=b.offsetHeight+2;d>=c?this.style.overflow="auto":this.style.overflow="hidden",this.style.height=b.offsetHeight+2+"px"};a.addEventListener("keypress",d),a.addEventListener("keyup",d),d.call(a)},q=function(){var b=j.getElementsByClassName("settings")[0],c=j.getElementsByClassName("resizeable"),d=30,e=function(b){document.cookie="preview-width="+b,a(c,function(a){b==="auto"&&(b=a.parentNode.offsetWidth),a.style.width=b+"px",h(a.getElementsByTagName("iframe")[0],"getHeight")})},i=f(document.cookie)["preview-width"];if(i){e(i),g(b.getElementsByClassName("is-active"),"is-active");var k=b.querySelector('button[data-width="'+i+'"]');k&&k.classList.add("is-active")}window.addEventListener("message",function(a){if(a.data==null||!a.source)return;var b=a.data,c=document.getElementsByName(a.source.name)[0];b.height!=null&&c&&(c.parentNode.style.height=b.height+d+"px")},!1),b&&c.length>0&&(b.hidden=!1,b.addEventListener("click",function(a){var c=a.target.tagName.toLowerCase(),d;if(c==="button")d=a.target;else{if(c!=="svg")return;d=a.target.parentNode}a.preventDefault(),g(b.getElementsByClassName("is-active"),"is-active"),d.classList.add("is-active");var f=d.dataset.width;e(f)}))}}()})()</script></body></html><!-- Generated with StyleDocco (http://jacobrask.github.com/styledocco). --> +</div><div class="code"><pre><code>.icons-image-list { + list-style: none; + padding: 0; + li { + float: left; + width: 33%; + > span { + .icon-image(@_icon-image: '@{baseDir}images/blank-theme-icons.png'); + } + .icon-search { + .icon-sprite-position(0, 0); + } + .icon-cart { + .icon-sprite-position(1, 0); + } + .icon-arrow-down { + .icon-sprite-position(2, 0); + } + .icon-arrow-up { + .icon-sprite-position(3, 0); + } + .icon-grid { + .icon-sprite-position(4, 0); + } + .icon-list { + .icon-sprite-position(5, 0); + } + .icon-remove { + .icon-sprite-position(6, 0); + } + .icon-star { + .icon-sprite-position(7, 0); + } + .icon-pointer-down { + .icon-sprite-position(8, 0); + } + .icon-pointer-up { + .icon-sprite-position(9, 0); + } + .icon-pointer-left { + .icon-sprite-position(10, 0); + } + .icon-pointer-right { + .icon-sprite-position(11, 0); + } + .icon-compare-empty { + .icon-sprite-position(0, 1); + } + .icon-compare-full { + .icon-sprite-position(1, 1); + } + .icon-wishlist-empty { + .icon-sprite-position(2, 1); + } + .icon-wishlist-full { + .icon-sprite-position(3, 1); + } + .icon-update { + .icon-sprite-position(4, 1); + } + .icon-collapse { + .icon-sprite-position(5, 1); + } + .icon-expand { + .icon-sprite-position(6, 1); + } + .icon-menu { + .icon-sprite-position(7, 1); + } + .icon-prev { + .icon-sprite-position(8, 1); + } + .icon-next { + .icon-sprite-position(9, 1); + } + .icon-settings { + .icon-sprite-position(10, 1); + } + .icon-info { + .icon-sprite-position(11, 1); + } + .icon-checkmark { + .icon-sprite-position(0, 2); + } + .icon-calendar { + .icon-sprite-position(1, 2); + } + .icon-comment { + .icon-sprite-position(2, 2); + } + .icon-comment-reflected { + .icon-sprite-position(3, 2); + } + .icon-envelope { + .icon-sprite-position(4, 2); + } + .icon-warning { + .icon-sprite-position(5, 2); + } + .icon-trash { + .icon-sprite-position(6, 2); + } + .icon-flag { + .icon-sprite-position(7, 2); + } + .icon-location { + .icon-sprite-position(8, 2); + } + .icon-up { + .icon-sprite-position(9, 2); + } + .icon-down { + .icon-sprite-position(10, 2); + } + } +} + +@icon-wishlist-full: '\e600'; +@icon-wishlist-empty: '\e601'; +@icon-warning: '\e602'; +@icon-update: '\e603'; +@icon-trash: '\e604'; +@icon-star: '\e605'; +@icon-settings: '\e606'; +@icon-pointer-down: '\e607'; +@icon-next: '\e608'; +@icon-menu: '\e609'; +@icon-location: '\e60a'; +@icon-list: '\e60b'; +@icon-info: '\e60c'; +@icon-grid: '\e60d'; +@icon-comment-reflected: '\e60e'; +@icon-collapse: '\e60f'; +@icon-checkmark: '\e610'; +@icon-cart: '\e611'; +@icon-calendar: '\e612'; +@icon-arrow-up: '\e613'; +@icon-arrow-down: '\e614'; +@icon-search: '\e615'; +@icon-remove: '\e616'; +@icon-prev: '\e617'; +@icon-pointer-up: '\e618'; +@icon-pointer-right: '\e619'; +@icon-pointer-left: '\e61a'; +@icon-flag: '\e61b'; +@icon-expand: '\e61c'; +@icon-envelope: '\e61d'; +@icon-compare-full: '\e61e'; +@icon-compare-empty: '\e61f'; +@icon-comment: '\e620'; +@icon-up: '\e621'; +@icon-down: '\e622'; +@icon-arrow-up-thin: '\e623'; +@icon-arrow-right-thin: '\e624'; +@icon-arrow-left-thin: '\e625'; +@icon-arrow-down-thin: '\e626'; + +.icons-font-list { + list-style: none; + padding: 0; + li { + float: left; + width: 25%; + margin-bottom: 35px; + text-align: center; + > span { + .icon-font('', @_icon-font-size: 34px); + &:before { + content: attr(data-icon); + margin: 0 auto; + display: block; + } + } + } +}</code></pre></div></article></section><div class="bar bottom"><div hidden class="settings container"><!-- Icons from http://iconmonstr.com--><button title="Desktop (1280)" data-width='1280'><svg viewBox="0 0 412 386" height="24" width="26" class="icon"><path d="m147.6,343.9c-4.5,15.9-26.2,37.6-42.1,42.1h201c-15.3,-4-38.1,-26.8-42.1,-42.1H147.6zM387,0.5H25c-13.8,0-25,11.2-25,25V294c0,13.8 11.2,25 25,25h362c13.8,0 25,-11.2 25,-25V25.5C412,11.7 400.8,0.5 387,0.5zM369.9,238.2H42.1L42.1,42.6 369.9,42.6V238.2z"></path></svg></button><button title="Laptop (1024)" data-width='1024'><svg viewBox="0 0 384 312" height="23" width="28" class="icon"><path d="m349.2,20.5c0,-11-9,-20-20,-20H53.6c-11,0-20,9-20,20v194H349.2v-194zm-27,167H60.6V27.5H322.2v160zm28,42H32.6L2.6,282.1c-3.5,6.2-3.5,13.8 0.1,19.9 3.6,6.2 10.2,9.9 17.3,9.9H363.1c7.1,0 13.7,-3.8 17.3,-10 3.6,-6.2 3.6,-13.8 0,-20l-30.2,-52.5zm-196.9,54 8,-23.5h60.5l8,23.5h-76.5z"></path></svg></button><button title="Tablet (768)" data-width='768'><svg viewBox="0 0 317 412" height="24" width="18" class="icon"><path d="M 316.5,380 V 32 c 0,-17.7 -14.3,-32 -32,-32 H 32 C 14.3,0 0,14.3 0,32 v 348 c 0,17.7 14.3,32 32,32 h 252.5 c 17.7,0 32,-14.3 32,-32 z M 40,367 V 45 H 276.5 V 367 H 40 z m 109.8,22.7 c 0,-4.7 3.8,-8.5 8.5,-8.5 4.7,0 8.5,3.8 8.5,8.5 0,4.7 -3.8,8.5 -8.5,8.5 -4.7,0 -8.5,-3.8 -8.5,-8.5 z"></path></svg></button><button title="Smart phone (320)" data-width='320'><svg viewBox="0 0 224 412" height="24" width="13" class="icon"><path d="M 190.7,0 H 33 C 14.8,0 0,14.8 0,33 v 346 c 0,18.2 14.8,33 33,33 h 157.7 c 18.2,0 33,-14.8 33,-33 V 33 c 0,-18.2 -14.8,-33 -33,-33 z M 94.3,30.2 h 37 c 2.2,0 4,1.8 4,4 0,2.2 -1.8,4 -4,4 h -37 c -2.2,0 -4,-1.8 -4,-4 0,-2.2 1.8,-4 4,-4 z m 18.5,362.8 c -8.8,0 -16,-7.2 -16,-16 0,-8.8 7.2,-16 16,-16 8.8,0 16,7.2 16,16 0,8.8 -7.2,16 -16,16 z M 198.6,343.8 H 25.1 V 68.2 h 173.5 v 275.5 z"></path></svg></button><button title="Feature phone (240)" data-width='240'><svg viewBox="0 0 201 412" height="24" width="12" class="icon"><path d="M 165.5,0.2 V 45 H 25 c -13.8,0 -25,11.2 -25,25 V 387 c 0,13.8 11.2,25 25,25 h 150.5 c 13.8,0 25,-11.2 25,-25 V 0.2 h -35 z M 65.2,366.5 H 34.2 v -24.5 h 31 v 24.5 z m 0,-44.3 H 34.2 v -24.5 h 31 v 24.5 z m 50.5,44.3 H 84.7 v -24.5 h 31 v 24.5 z m 0,-44.3 H 84.7 v -24.5 h 31 v 24.5 z m 50.5,44.3 h -31 v -24.5 h 31 v 24.5 z m 0,-44.3 h -31 v -24.5 h 31 v 24.5 z m 0,-59.3 h -132 V 95.4 h 132 V 262.9 z"></path></svg></button><button title="Auto (100%)" data-width="auto" class="auto is-active">Auto</button></div></div><script>(function(){var a=[{title:"actions-toolbar",filename:"actions-toolbar",url:"actions-toolbar.html"},{title:"",filename:"actions-toolbar",url:"actions-toolbar.html#"},{title:"Actions toolbar",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar"},{title:"Actions toolbar mixin variables",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar-mixin-variables"},{title:"Actions toolbar alignment",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar-alignment"},{title:"Reverse primary and secondary blocks",filename:"actions-toolbar",url:"actions-toolbar.html#reverse-primary-and-secondary-blocks"},{title:"Actions toolbar indents customizations",filename:"actions-toolbar",url:"actions-toolbar.html#actions-toolbar-indents-customizations"},{title:"Responsive actions toolbar",filename:"actions-toolbar",url:"actions-toolbar.html#responsive-actions-toolbar"},{title:"breadcrumbs",filename:"breadcrumbs",url:"breadcrumbs.html"},{title:"",filename:"breadcrumbs",url:"breadcrumbs.html#"},{title:"Breadcrumbs",filename:"breadcrumbs",url:"breadcrumbs.html#breadcrumbs"},{title:"Breadcrumbs variables",filename:"breadcrumbs",url:"breadcrumbs.html#breadcrumbs-variables"},{title:"Button-styled breadcrumbs with gradient background, border, and no separating symbol",filename:"breadcrumbs",url:"breadcrumbs.html#buttonstyled-breadcrumbs-with-gradient-background-border-and-no-separating-symbol"},{title:"Breadcrumbs with solid background",filename:"breadcrumbs",url:"breadcrumbs.html#breadcrumbs-with-solid-background"},{title:"buttons",filename:"buttons",url:"buttons.html"},{title:"",filename:"buttons",url:"buttons.html#"},{title:"Default button",filename:"buttons",url:"buttons.html#default-button"},{title:"Button variables",filename:"buttons",url:"buttons.html#button-variables"},{title:"Button as an icon",filename:"buttons",url:"buttons.html#button-as-an-icon"},{title:"Button with an icon on the left or right side of the text",filename:"buttons",url:"buttons.html#button-with-an-icon-on-the-left-or-right-side-of-the-text"},{title:"Button with fixed width",filename:"buttons",url:"buttons.html#button-with-fixed-width"},{title:"Primary button",filename:"buttons",url:"buttons.html#primary-button"},{title:"Primary button variables",filename:"buttons",url:"buttons.html#primary-button-variables"},{title:"Button with gradient background",filename:"buttons",url:"buttons.html#button-with-gradient-background"},{title:"Button as a link",filename:"buttons",url:"buttons.html#button-as-a-link"},{title:"Button as a link variables",filename:"buttons",url:"buttons.html#button-as-a-link-variables"},{title:"Link as a button",filename:"buttons",url:"buttons.html#link-as-a-button"},{title:"Button reset",filename:"buttons",url:"buttons.html#button-reset"},{title:"Button revert secondary color",filename:"buttons",url:"buttons.html#button-revert-secondary-color"},{title:"Button revert secondary color variables",filename:"buttons",url:"buttons.html#button-revert-secondary-color-variables"},{title:"Button revert secondary size",filename:"buttons",url:"buttons.html#button-revert-secondary-size"},{title:"Button revert secondary size variables",filename:"buttons",url:"buttons.html#button-revert-secondary-size-variables"},{title:"docs",filename:"docs",url:"docs.html"},{title:"",filename:"docs",url:"docs.html#"},{title:"Documentation",filename:"docs",url:"docs.html#documentation"},{title:"dropdowns",filename:"dropdowns",url:"dropdowns.html"},{title:"",filename:"dropdowns",url:"dropdowns.html#"},{title:"Drop-down and split buttons mixins",filename:"dropdowns",url:"dropdowns.html#dropdown-and-split-buttons-mixins"},{title:"Drop-down",filename:"dropdowns",url:"dropdowns.html#dropdown"},{title:"Drop-down variables",filename:"dropdowns",url:"dropdowns.html#dropdown-variables"},{title:"Drop-down with icon customization",filename:"dropdowns",url:"dropdowns.html#dropdown-with-icon-customization"},{title:"Modify dropdown list styles",filename:"dropdowns",url:"dropdowns.html#modify-dropdown-list-styles"},{title:"Split button",filename:"dropdowns",url:"dropdowns.html#split-button"},{title:"Split button variables",filename:"dropdowns",url:"dropdowns.html#split-button-variables"},{title:"Split button - button styling",filename:"dropdowns",url:"dropdowns.html#split-button-button-styling"},{title:"Split button icon customization",filename:"dropdowns",url:"dropdowns.html#split-button-icon-customization"},{title:"Split button drop-down list customization",filename:"dropdowns",url:"dropdowns.html#split-button-dropdown-list-customization"},{title:"forms",filename:"forms",url:"forms.html"},{title:"",filename:"forms",url:"forms.html#"},{title:"Forms mixins",filename:"forms",url:"forms.html#forms-mixins"},{title:"Global forms elements customization",filename:"forms",url:"forms.html#global-forms-elements-customization"},{title:"Fieldsets & fields customization",filename:"forms",url:"forms.html#fieldsets-fields-customization"},{title:"Fieldset and legend customization variables",filename:"forms",url:"forms.html#fieldset-and-legend-customization-variables"},{title:"Fields customization variables",filename:"forms",url:"forms.html#fields-customization-variables"},{title:"Required fields message customization variables",filename:"forms",url:"forms.html#required-fields-message-customization-variables"},{title:"Form element inputs customization",filename:"forms",url:"forms.html#form-element-inputs-customization"},{title:"Form element inputs customization variables",filename:"forms",url:"forms.html#form-element-inputs-customization-variables"},{title:"Form element choice",filename:"forms",url:"forms.html#form-element-choice"},{title:"Form element choice variables",filename:"forms",url:"forms.html#form-element-choice-variables"},{title:"Custom color",filename:"forms",url:"forms.html#custom-color"},{title:"Input number - input-text view",filename:"forms",url:"forms.html#input-number-inputtext-view"},{title:"Input search - input-text view",filename:"forms",url:"forms.html#input-search-inputtext-view"},{title:"Form validation",filename:"forms",url:"forms.html#form-validation"},{title:"Form validation variables// <pre>",filename:"forms",url:"forms.html#form-validation-variables-pre"},{title:"icons",filename:"icons",url:"icons.html"},{title:"Icons",filename:"icons",url:"icons.html#icons"},{title:"Icon with image or sprite",filename:"icons",url:"icons.html#icon-with-image-or-sprite"},{title:"Icon with image or sprite variables",filename:"icons",url:"icons.html#icon-with-image-or-sprite-variables"},{title:"Icon position for an icon with image or sprite",filename:"icons",url:"icons.html#icon-position-for-an-icon-with-image-or-sprite"},{title:"Position for icon with image or sprite mixin variables",filename:"icons",url:"icons.html#position-for-icon-with-image-or-sprite-mixin-variables"},{title:"Icon sprite position (with grid)",filename:"icons",url:"icons.html#icon-sprite-position-with-grid"},{title:"Icon sprite position variables",filename:"icons",url:"icons.html#icon-sprite-position-variables"},{title:"Image/sprite icon size",filename:"icons",url:"icons.html#imagesprite-icon-size"},{title:"Image/sprite icon size variables",filename:"icons",url:"icons.html#imagesprite-icon-size-variables"},{title:"Font icon",filename:"icons",url:"icons.html#font-icon"},{title:"Font icon variables",filename:"icons",url:"icons.html#font-icon-variables"},{title:"Change the size of font icon",filename:"icons",url:"icons.html#change-the-size-of-font-icon"},{title:"Change the size of font icon variables",filename:"icons",url:"icons.html#change-the-size-of-font-icon-variables"},{title:"Hide icon text",filename:"icons",url:"icons.html#hide-icon-text"},{title:"Sprite and font icons for Blank theme",filename:"icons",url:"icons.html#sprite-and-font-icons-for-blank-theme"},{title:"layout",filename:"layout",url:"layout.html"},{title:"",filename:"layout",url:"layout.html#"},{title:"Layout",filename:"layout",url:"layout.html#layout"},{title:"Layout global variables",filename:"layout",url:"layout.html#layout-global-variables"},{title:"Page layouts",filename:"layout",url:"layout.html#page-layouts"},{title:"Layout column",filename:"layout",url:"layout.html#layout-column"},{title:"Layout column variables",filename:"layout",url:"layout.html#layout-column-variables"},{title:"Layout width",filename:"layout",url:"layout.html#layout-width"},{title:"Layout width variables",filename:"layout",url:"layout.html#layout-width-variables"},{title:"lib",filename:"lib",url:"lib.html"},{title:"",filename:"lib",url:"lib.html#"},{title:"Including Magento UI library to your theme",filename:"lib",url:"lib.html#including-magento-ui-library-to-your-theme"},{title:"loaders",filename:"loaders",url:"loaders.html"},{title:"",filename:"loaders",url:"loaders.html#"},{title:"Loaders",filename:"loaders",url:"loaders.html#loaders"},{title:"Default loader variables",filename:"loaders",url:"loaders.html#default-loader-variables"},{title:"Loading",filename:"loaders",url:"loaders.html#loading"},{title:"Loading default variables",filename:"loaders",url:"loaders.html#loading-default-variables"},{title:"messages",filename:"messages",url:"messages.html"},{title:"",filename:"messages",url:"messages.html#"},{title:"Messages",filename:"messages",url:"messages.html#messages"},{title:"Information message",filename:"messages",url:"messages.html#information-message"},{title:"Warning message",filename:"messages",url:"messages.html#warning-message"},{title:"Error message",filename:"messages",url:"messages.html#error-message"},{title:"Success message",filename:"messages",url:"messages.html#success-message"},{title:"Notice message",filename:"messages",url:"messages.html#notice-message"},{title:"Message with inner icon",filename:"messages",url:"messages.html#message-with-inner-icon"},{title:"Message with lateral icon",filename:"messages",url:"messages.html#message-with-lateral-icon"},{title:"Custom message style",filename:"messages",url:"messages.html#custom-message-style"},{title:"Messages global variables",filename:"messages",url:"messages.html#messages-global-variables"},{title:"pages",filename:"pages",url:"pages.html"},{title:"",filename:"pages",url:"pages.html#"},{title:"Pagination HTML markup",filename:"pages",url:"pages.html#pagination-html-markup"},{title:"Pagination variables",filename:"pages",url:"pages.html#pagination-variables"},{title:"Pagination with label and gradient background on links",filename:"pages",url:"pages.html#pagination-with-label-and-gradient-background-on-links"},{title:'Pagination with "previous"..."next" text links and label',filename:"pages",url:"pages.html#pagination-with-previousnext-text-links-and-label"},{title:"Pagination without label, with solid background",filename:"pages",url:"pages.html#pagination-without-label-with-solid-background"},{title:"popups",filename:"popups",url:"popups.html"},{title:"",filename:"popups",url:"popups.html#"},{title:"Popups",filename:"popups",url:"popups.html#popups"},{title:"Popup variables",filename:"popups",url:"popups.html#popup-variables"},{title:"Window overlay mixin variables",filename:"popups",url:"popups.html#window-overlay-mixin-variables"},{title:"Fixed height popup",filename:"popups",url:"popups.html#fixed-height-popup"},{title:"Fixed content height popup",filename:"popups",url:"popups.html#fixed-content-height-popup"},{title:"Margins for header, content and footer block in popup",filename:"popups",url:"popups.html#margins-for-header-content-and-footer-block-in-popup"},{title:"Popup titles styled as theme headings",filename:"popups",url:"popups.html#popup-titles-styled-as-theme-headings"},{title:"Popup action toolbar",filename:"popups",url:"popups.html#popup-action-toolbar"},{title:"Popup Close button without an icon",filename:"popups",url:"popups.html#popup-close-button-without-an-icon"},{title:"Modify the icon of popup Close button",filename:"popups",url:"popups.html#modify-the-icon-of-popup-close-button"},{title:"Modify overlay styles",filename:"popups",url:"popups.html#modify-overlay-styles"},{title:"rating",filename:"rating",url:"rating.html"},{title:"",filename:"rating",url:"rating.html#"},{title:"Ratings",filename:"rating",url:"rating.html#ratings"},{title:"Global rating variables",filename:"rating",url:"rating.html#global-rating-variables"},{title:"Rating with vote",filename:"rating",url:"rating.html#rating-with-vote"},{title:"Rating with vote icons number customization",filename:"rating",url:"rating.html#rating-with-vote-icons-number-customization"},{title:"Rating with vote icons colors customization",filename:"rating",url:"rating.html#rating-with-vote-icons-colors-customization"},{title:"Rating with vote icons symbol customization",filename:"rating",url:"rating.html#rating-with-vote-icons-symbol-customization"},{title:"Accessible rating with vote",filename:"rating",url:"rating.html#accessible-rating-with-vote"},{title:"Rating summary",filename:"rating",url:"rating.html#rating-summary"},{title:"Rating summary icons number customization",filename:"rating",url:"rating.html#rating-summary-icons-number-customization"},{title:"Rating summary icons color customization",filename:"rating",url:"rating.html#rating-summary-icons-color-customization"},{title:"Rating summary icons symbol customization",filename:"rating",url:"rating.html#rating-summary-icons-symbol-customization"},{title:"Rating summary hide label",filename:"rating",url:"rating.html#rating-summary-hide-label"},{title:"Rating summary multiple ratings",filename:"rating",url:"rating.html#rating-summary-multiple-ratings"},{title:"Rating hide label mixin",filename:"rating",url:"rating.html#rating-hide-label-mixin"},{title:"resets",filename:"resets",url:"resets.html"},{title:"",filename:"resets",url:"resets.html#"},{title:"Resets",filename:"resets",url:"resets.html#resets"},{title:"responsive",filename:"responsive",url:"responsive.html"},{title:"",filename:"responsive",url:"responsive.html#"},{title:"Responsive",filename:"responsive",url:"responsive.html#responsive"},{title:"Responsive mixins usage",filename:"responsive",url:"responsive.html#responsive-mixins-usage"},{title:"Media query style groups separation variables",filename:"responsive",url:"responsive.html#media-query-style-groups-separation-variables"},{title:"Responsive breakpoints",filename:"responsive",url:"responsive.html#responsive-breakpoints"},{title:"sections",filename:"sections",url:"sections.html"},{title:"",filename:"sections",url:"sections.html#"},{title:"Tabs and accordions",filename:"sections",url:"sections.html#tabs-and-accordions"},{title:"Tabs",filename:"sections",url:"sections.html#tabs"},{title:"Tabs mixin variables",filename:"sections",url:"sections.html#tabs-mixin-variables"},{title:"Tabs with content top border",filename:"sections",url:"sections.html#tabs-with-content-top-border"},{title:"Accordion",filename:"sections",url:"sections.html#accordion"},{title:"Accordion mixin variables",filename:"sections",url:"sections.html#accordion-mixin-variables"},{title:"Responsive tabs",filename:"sections",url:"sections.html#responsive-tabs"},{title:"Tabs Base",filename:"sections",url:"sections.html#tabs-base"},{title:"Accordion Base",filename:"sections",url:"sections.html#accordion-base"},{title:"tables",filename:"tables",url:"tables.html"},{title:"",filename:"tables",url:"tables.html#"},{title:"Tables",filename:"tables",url:"tables.html#tables"},{title:"Table mixin variables",filename:"tables",url:"tables.html#table-mixin-variables"},{title:"Table typography",filename:"tables",url:"tables.html#table-typography"},{title:"Table typography mixin variables",filename:"tables",url:"tables.html#table-typography-mixin-variables"},{title:"Table caption",filename:"tables",url:"tables.html#table-caption"},{title:"Table caption mixin variables",filename:"tables",url:"tables.html#table-caption-mixin-variables"},{title:"Table cells resize",filename:"tables",url:"tables.html#table-cells-resize"},{title:"Table cells resize variables",filename:"tables",url:"tables.html#table-cells-resize-variables"},{title:"Table background customization",filename:"tables",url:"tables.html#table-background-customization"},{title:"Table background mixin variables",filename:"tables",url:"tables.html#table-background-mixin-variables"},{title:"Table borders customization",filename:"tables",url:"tables.html#table-borders-customization"},{title:"Table borders mixin variables",filename:"tables",url:"tables.html#table-borders-mixin-variables"},{title:"Table with horizontal borders",filename:"tables",url:"tables.html#table-with-horizontal-borders"},{title:"Table with vertical borders",filename:"tables",url:"tables.html#table-with-vertical-borders"},{title:"Table with light borders",filename:"tables",url:"tables.html#table-with-light-borders"},{title:"Table without borders",filename:"tables",url:"tables.html#table-without-borders"},{title:"Striped table",filename:"tables",url:"tables.html#striped-table"},{title:"Striped table mixin variables",filename:"tables",url:"tables.html#striped-table-mixin-variables"},{title:"Table with rows hover",filename:"tables",url:"tables.html#table-with-rows-hover"},{title:"Table with rows hover mixin variables",filename:"tables",url:"tables.html#table-with-rows-hover-mixin-variables"},{title:"Responsive table technics #1",filename:"tables",url:"tables.html#responsive-table-technics-1"},{title:"Responsive table technics #2",filename:"tables",url:"tables.html#responsive-table-technics-2"},{title:"Responsive table technics #2 mixin variables",filename:"tables",url:"tables.html#responsive-table-technics-2-mixin-variables"},{title:"tooltips",filename:"tooltips",url:"tooltips.html"},{title:"",filename:"tooltips",url:"tooltips.html#"},{title:"Tooltips",filename:"tooltips",url:"tooltips.html#tooltips"},{title:"Tooltips variables",filename:"tooltips",url:"tooltips.html#tooltips-variables"},{title:"typography",filename:"typography",url:"typography.html"},{title:"",filename:"typography",url:"typography.html#"},{title:"Typogrphy",filename:"typography",url:"typography.html#typogrphy"},{title:"Typography variables",filename:"typography",url:"typography.html#typography-variables"},{title:"Font-size mixin",filename:"typography",url:"typography.html#fontsize-mixin"},{title:"Line-height mixin",filename:"typography",url:"typography.html#lineheight-mixin"},{title:"Word breaking mixin",filename:"typography",url:"typography.html#word-breaking-mixin"},{title:"Font face mixin",filename:"typography",url:"typography.html#font-face-mixin"},{title:"Text overflow mixin",filename:"typography",url:"typography.html#text-overflow-mixin"},{title:"Text hide",filename:"typography",url:"typography.html#text-hide"},{title:"Hyphens",filename:"typography",url:"typography.html#hyphens"},{title:"Font style and color",filename:"typography",url:"typography.html#font-style-and-color"},{title:"Font style mixin variables",filename:"typography",url:"typography.html#font-style-mixin-variables"},{title:"Reset list styles",filename:"typography",url:"typography.html#reset-list-styles"},{title:"Reset list styles variables",filename:"typography",url:"typography.html#reset-list-styles-variables"},{title:"Inline-block list item styling",filename:"typography",url:"typography.html#inlineblock-list-item-styling"},{title:"Link styling mixin",filename:"typography",url:"typography.html#link-styling-mixin"},{title:"Link styling mixin variables",filename:"typography",url:"typography.html#link-styling-mixin-variables"},{title:"Heading styling mixin",filename:"typography",url:"typography.html#heading-styling-mixin"},{title:"Base typography mixins",filename:"typography",url:"typography.html#base-typography-mixins"},{title:"Headings typography mixin",filename:"typography",url:"typography.html#headings-typography-mixin"},{title:"Typography links mixin",filename:"typography",url:"typography.html#typography-links-mixin"},{title:"Typography lists mixin",filename:"typography",url:"typography.html#typography-lists-mixin"},{title:"Typography code elements mixin",filename:"typography",url:"typography.html#typography-code-elements-mixin"},{title:"Typography blockquote",filename:"typography",url:"typography.html#typography-blockquote"},{title:"utilities",filename:"utilities",url:"utilities.html"},{title:"",filename:"utilities",url:"utilities.html#"},{title:"Utilities",filename:"utilities",url:"utilities.html#utilities"},{title:".clearfix()",filename:"utilities",url:"utilities.html#clearfix"},{title:".visibility-hidden()",filename:"utilities",url:"utilities.html#visibilityhidden"},{title:".visually-hidden()",filename:"utilities",url:"utilities.html#visuallyhidden"},{title:".visually-hidden-reset()",filename:"utilities",url:"utilities.html#visuallyhiddenreset"},{title:".css()",filename:"utilities",url:"utilities.html#css"},{title:".css() variables",filename:"utilities",url:"utilities.html#css-variables"},{title:".rotate()",filename:"utilities",url:"utilities.html#rotate"},{title:".rotate() variables",filename:"utilities",url:"utilities.html#rotate-variables"},{title:".input-placeholder()",filename:"utilities",url:"utilities.html#inputplaceholder"},{title:".input-placeholder() variables",filename:"utilities",url:"utilities.html#inputplaceholder-variables"},{title:".background-gradient()",filename:"utilities",url:"utilities.html#backgroundgradient"},{title:".background-gradient() variables",filename:"utilities",url:"utilities.html#backgroundgradient-variables"},{title:"variables",filename:"variables",url:"variables.html"},{title:"",filename:"variables",url:"variables.html#"},{title:"List of Global Variables",filename:"variables",url:"variables.html#list-of-global-variables"},{title:"Table with rows hover mixin variables",filename:"variables",url:"variables.html#table-with-rows-hover-mixin-variables"}];(function(){"use strict";var b=function(a,b){return Array.prototype.indexOf.call(a,b)!==-1},c=function(a,b){return Array.prototype.filter.call(a,b)},d=function(a,b){return Array.prototype.forEach.call(a,b)},e=document.getElementsByTagName("body")[0];e.addEventListener("click",function(a){var b=a.target;b.tagName.toLowerCase()==="svg"&&(b=b.parentNode);var c=!1;b.dataset.toggle!=null&&(a.preventDefault(),b.classList.contains("is-active")||(c=!0)),d(e.querySelectorAll("[data-toggle]"),function(a){a.classList.remove("is-active"),document.getElementById(a.dataset.toggle).hidden=!0}),c&&(b.classList.add("is-active"),document.getElementById(b.dataset.toggle).hidden=!1)}),function(){var f=e.getElementsByClassName("nav")[0];if(!f)return;var g=document.createElement("ul");g.className="nav-results",g.id="nav-search",g.hidden=!0,d(a,function(a){var b,c,d;b=document.createElement("li"),b._title=a.title.toLowerCase(),b.hidden=!0,b.appendChild(c=document.createElement("a")),c.href=a.url,c.innerHTML=a.title,c.appendChild(d=document.createElement("span")),d.innerHTML=a.filename,d.className="nav-results-filename",g.appendChild(b)}),f.appendChild(g);var h=g.children,i=function(a){d(h,function(a){a.hidden=!0});var b=this.value.toLowerCase(),e=[];b!==""&&(e=c(h,function(a){return a._title.indexOf(b)!==-1})),e.length>0?(d(e,function(a){a.hidden=!1}),g.hidden=!1):g.hidden=!0},j=f.querySelector('input[type="search"]');j.addEventListener("keyup",i),j.addEventListener("focus",i),e.addEventListener("click",function(a){if(a.target.classList&&a.target.classList.contains("search"))return;g.hidden=!0}),g.addEventListener("click",function(a){j.value=""});var k=document.createElement("ul");k.id="nav-toc",k.hidden=!0,k.className="nav-results toc-list",c(e.getElementsByTagName("*"),function(a){return b(["h1","h2","h3"],a.tagName.toLowerCase())}).map(function(a){var b=document.createElement("li"),c=document.createElement("a"),d=a.tagName.toLowerCase()[1];c.classList.add("level-"+d),b.appendChild(c),c.href="#"+a.id,c.innerHTML=a.innerHTML,k.appendChild(b)}),f.appendChild(k)}()})(),function(){"use strict";if(location.hash==="#__preview__"||location.protocol==="data:")return;var a=function(a,b){return Array.prototype.forEach.call(a,b)},b=function(a,b){var e=Array.prototype.slice.call(arguments,2);return d(a,function(a){return(c(b)?b||a:a[b]).apply(a,e)})},c=function(a){return Object.prototype.toString.call(a)==="[object Function]"},d=function(a,b){return Array.prototype.map.call(a,b)},e=function(a,b){return d(a,function(a){return a[b]})},f=function(a){var b={},c=a.split(";");for(var d=0;c.length>d;d++){var e=c[d].trim().split("=");b[e[0]]=e[1]}return b},g=function(a,c){return b(e(a,"classList"),"remove",c)},h=function(a,b){a.contentDocument.defaultView.postMessage(b,"*")},i=document.getElementsByTagName("head")[0],j=document.getElementsByTagName("body")[0],k=e(i.querySelectorAll('style[type="text/preview"]'),"innerHTML").join(""),l=e(i.querySelectorAll('script[type="text/preview"]'),"innerHTML").join(""),m=location.href.split("#")[0]+"#__preview__",n=document.createElement("iframe");n.src="data:text/html,",j.appendChild(n),n.addEventListener("load",function(){var b={sameOriginDataUri:!0};try{this.contentDocument,this.contentDocument||(b.sameOriginDataUri=!1)}catch(c){b.sameOriginDataUri=!1}this.parentNode.removeChild(this),a(j.getElementsByTagName("textarea"),function(a,c){o(a,b,c),q(),p(a)})});var o=function(a,b,c){var d,e,f;d=document.createElement("div"),d.appendChild(e=document.createElement("div")),d.className="preview",e.appendChild(f=document.createElement("iframe")),e.className="resizeable",f.setAttribute("scrolling","no"),f.name="iframe"+c++,f.addEventListener("load",function(){var c,d,e,f,g,i,j;j=this.contentDocument;if(!b.sameOriginDataUri&&this.src!==m)return;this.src===m&&(c=j.createElement("html"),c.appendChild(j.createElement("head")),c.appendChild(d=j.createElement("body")),d.innerHTML=a.textContent,j.replaceChild(c,j.documentElement)),g=j.createElement("head"),g.appendChild(f=j.createElement("style")),g.appendChild(e=j.createElement("script")),e.textContent=l,f.textContent=k,i=j.getElementsByTagName("head")[0],i.parentNode.replaceChild(g,i),h(this,"getHeight")});var g;b.sameOriginDataUri?g="data:text/html;charset=utf-8,"+encodeURIComponent("<!doctype html><html><head></head></body>"+a.textContent):g=m,f.setAttribute("src",g);var i=function(){f.contentDocument.body.innerHTML=this.value,h(f,"getHeight")};a.addEventListener("keypress",i),a.addEventListener("keyup",i),a.parentNode.insertBefore(d,a)},p=function(a){var b=document.createElement("div");b.className="preview-code",b.style.position="absolute",b.style.left="-9999px",j.appendChild(b);var c=parseInt(window.getComputedStyle(a).getPropertyValue("max-height"),10),d=function(a){b.textContent=this.value+"\n";var d=b.offsetHeight+2;d>=c?this.style.overflow="auto":this.style.overflow="hidden",this.style.height=b.offsetHeight+2+"px"};a.addEventListener("keypress",d),a.addEventListener("keyup",d),d.call(a)},q=function(){var b=j.getElementsByClassName("settings")[0],c=j.getElementsByClassName("resizeable"),d=30,e=function(b){document.cookie="preview-width="+b,a(c,function(a){b==="auto"&&(b=a.parentNode.offsetWidth),a.style.width=b+"px",h(a.getElementsByTagName("iframe")[0],"getHeight")})},i=f(document.cookie)["preview-width"];if(i){e(i),g(b.getElementsByClassName("is-active"),"is-active");var k=b.querySelector('button[data-width="'+i+'"]');k&&k.classList.add("is-active")}window.addEventListener("message",function(a){if(a.data==null||!a.source)return;var b=a.data,c=document.getElementsByName(a.source.name)[0];b.height!=null&&c&&(c.parentNode.style.height=b.height+d+"px")},!1),b&&c.length>0&&(b.hidden=!1,b.addEventListener("click",function(a){var c=a.target.tagName.toLowerCase(),d;if(c==="button")d=a.target;else{if(c!=="svg")return;d=a.target.parentNode}a.preventDefault(),g(b.getElementsByClassName("is-active"),"is-active"),d.classList.add("is-active");var f=d.dataset.width;e(f)}))}}()})()</script></body></html><!-- Generated with StyleDocco (http://jacobrask.github.com/styledocco). --> diff --git a/lib/web/css/docs/source/icons.less b/lib/web/css/docs/source/icons.less index 97f05c59a017f916960128dceb9314f94e8dd93f..355ece1b150e82fd16b0534c4ed34ddb63bf10aa 100644 --- a/lib/web/css/docs/source/icons.less +++ b/lib/web/css/docs/source/icons.less @@ -685,6 +685,12 @@ // <li> // <span class="icon-arrow-down-thin" data-icon=""><span>@icon-arrow-down-thin</span></span> // </li> +// <li> +// <span class="icon-arrow-left-thin" data-icon=""><span>@icon-gift-registry</span></span> +// </li> +// <li> +// <span class="icon-arrow-down-thin" data-icon=""><span>@icon-present</span></span> +// </li> // </ul> // ``` diff --git a/lib/web/css/source/lib/variables/_icons.less b/lib/web/css/source/lib/variables/_icons.less index 443228833b6d87e93c4030cac230ad50f2c55ad6..999e9c2cf7922b5a9acb500e499ba271a116e992 100644 --- a/lib/web/css/source/lib/variables/_icons.less +++ b/lib/web/css/source/lib/variables/_icons.less @@ -80,3 +80,5 @@ @icon-arrow-left-thin: '\e625'; @icon-arrow-down-thin: '\e626'; @icon-account: '\e627'; +@icon-gift-registry: '\e628'; +@icon-present: '\e629'; diff --git a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.eot b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.eot index 62bdd2789b80e4759cfb379c307f2186aafce389..9bc3197afaa63854e2a13d3f79f31488bf1fe4db 100644 Binary files a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.eot and b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.eot differ diff --git a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.svg b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.svg index d92883dcfa582968714e1932df979ab965effc2f..85f6bf6ddeca82ba961382a061b92c7b6da011b7 100644 --- a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.svg +++ b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.svg @@ -1 +1 @@ -<svg xmlns="http://www.w3.org/2000/svg"><defs><font horiz-adv-x="1024"><font-face units-per-em="1024" ascent="960" descent="-64"/><glyph horiz-adv-x="512"/><glyph unicode="" d="M676.57 637.696c-59.866 28.197-131.254 2.523-159.414-57.307-1.975-4.14-3.657-9.368-5.157-15.4-1.5 6.03-3.188 11.26-5.16 15.394-28.2 59.83-99.55 85.503-159.418 57.306-59.83-28.196-85.504-99.546-57.27-159.377 28.197-59.865 221.805-231.42 221.805-231.42s0 .22.036.584c.036-.37.036-.588.036-.588s193.65 171.555 221.81 231.423c28.23 59.83 2.595 131.182-57.27 159.378z"/><glyph unicode="î˜" d="M676.57 637.696c-59.83 28.197-131.217 2.523-159.45-57.307-1.938-4.14-3.657-9.368-5.157-15.4-1.463 6.03-3.182 11.26-5.157 15.394-28.16 59.83-99.547 85.503-159.378 57.306-59.83-28.196-85.467-99.546-57.27-159.377S511.963 246.89 511.963 246.89s0 .22.037.586v-.623s193.646 171.56 221.842 231.426c28.233 59.864 2.597 131.22-57.27 159.412zm13.643-158.464C664.796 435.456 516.206 294.51 516.206 294.51l-1.573 3S359.168 437.906 333.423 481.5c-30.61 51.822-7.754 108.946 38.948 128.44 43.52 18.175 101.89-27.32 123.508-73.144 1.5-3.182 17.627-1.463 18.798-6.107 1.135 4.64 12.728 2.92 14.227 6.1 21.577 45.825 81.04 93.99 128 72.41 46.007-21.136 66.926-72.153 33.317-129.973z"/><glyph unicode="" d="M512 704.11L215.15 191.854h593.7L512 704.11zm32.22-449.975h-62.76v49.92h62.757v-49.92zm-15.507 89.234h-31.27l-20.808 140.65-1.207 72.7h72.52v-72.7l-19.235-140.65z"/><glyph unicode="" d="M628.846 588.544c-34.085 28.343-75.63 42.24-116.773 42.24-47.47 0-94.757-18.578-130.085-54.382l-32.073 29.586-.585-102.693 110.994-.658L420.9 543.89c25.198 24.027 58.002 36.315 91.136 36.352 29.842-.037 59.72-9.947 84.517-30.574 31.488-26.222 47.69-63.744 47.726-101.815 0-5.45-.37-10.97-1.03-16.457l51.383 9.874c.073 2.23.146 4.425.146 6.62.037 52.37-22.49 104.52-65.938 140.653zm-25.052-235.776c-25.307-24.466-58.405-37.01-91.867-37.047-29.88.04-59.72 9.99-84.517 30.58-31.488 26.22-47.69 63.744-47.726 101.778 0 6.327.475 12.617 1.353 18.87l-51.602-9.69c-.146-3.072-.256-6.107-.256-9.18-.04-52.333 22.49-104.52 65.97-140.616 34.05-28.343 75.592-42.24 116.735-42.24h.11c47.8 0 95.377 18.907 130.742 55.223l33.937-33.83.22 106.096-112.054.29 38.95-40.23z"/><glyph unicode="" d="M696.942 624.933l-19.273 6.107h-74.5v38.583l-12.547 21.03-22.712 13.494H456.77l-23.333-13.495-12.58-21.03v-38.618H347.09l-18.76-6.656-17.19-14.153v-88.87h19.018v-.072h17.555V191.818h36.57v.293H639.7v-.29h36.57V521.26h18.287v.073h18.285v86.6l-15.91 17.007zm-239.507 42.642h109.13v-36.57h-109.13v36.57zm182.272-438.857H384.292v292.57h255.415V228.72zm36.572 329.216H347.72v36.498h328.56v-36.498zM457.43 483.51h-36.57V264.925h36.57V483.51zm73.143 0h-36.57V264.925h36.57V483.51zm73.143 0h-36.57V264.925h36.57V483.51z"/><glyph unicode="" d="M804.645 515.4c-1.5 4.682-5.888 7.9-10.79 7.9H586.9l-64.073 196.754c-1.536 4.645-5.888 7.826-10.825 7.826-4.9 0-9.29-3.182-10.825-7.863l-64.44-196.754h-206.59c-4.902 0-9.29-3.218-10.826-7.863-1.5-4.68.15-9.874 4.1-12.763l167.2-121.783-64.44-197.85c-1.534-4.682.148-9.84 4.135-12.728 3.95-2.89 9.4-2.89 13.35 0L512 292.46l167.937-122.148c2.01-1.463 4.315-2.23 6.693-2.23s4.68.767 6.693 2.23c4.023 2.89 5.67 8.01 4.133 12.727l-64.44 197.85 167.57 121.78c3.95 2.89 5.633 8.044 4.06 12.725z"/><glyph unicode="" d="M807.24 415.854V483l-9.508 3.144-71.936 23.442-19.2 46.373 36.937 78.08-47.506 47.5-8.923-4.498-67.438-34.304-46.373 19.2-29.11 81.3H477l-26.624-81.446-46.336-19.163-78.043 36.9-47.506-47.505 4.5-8.96 34.27-67.438-19.2-46.338-81.3-29.075V413l9.47-3.07 71.977-23.516 19.163-46.373-36.9-78.08 47.504-47.502 8.888 4.498 67.475 34.304 46.373-19.2 29.11-81.3H547l3.072 9.51 23.515 71.935 46.373 19.2 78.08-36.937 47.506 47.506-4.498 8.923-34.304 67.438 19.2 46.373 81.298 29.147zM512 353.938c-51.968 0-94.062 42.13-94.062 94.062 0 52.005 42.094 94.062 94.062 94.062 51.93 0 94.098-42.057 94.098-94.062-.037-51.93-42.167-94.062-94.098-94.062z"/><glyph unicode="" d="M339.602 539.94L512 356.06l172.398 183.88z"/><glyph unicode="" d="M606.94 449.938L448.547 612.79l-27.794-26.074L553.58 450.158l-136.52-140.36 27.173-26.588L597.43 440.76l-.145.146z"/><glyph unicode="" d="M127.634 740.57v-73.14h768.73v73.143h-768.73zm0-329.14h768.73v73.142h-768.73V411.43zm0-256h768.73v73.142h-768.73V155.43z"/><glyph unicode="" d="M512 742.217c-102.437 0-185.417-83.054-185.417-185.454C326.583 454.326 512 153.746 512 153.746s185.454 300.58 185.454 403.017C697.417 659.2 614.437 742.217 512 742.217zm0-241.774c-31.122 0-56.357 25.198-56.357 56.357 0 31.086 25.234 56.357 56.357 56.357 31.16 0 56.393-25.27 56.393-56.357-.037-31.16-25.27-56.357-56.393-56.357z"/><glyph unicode="" d="M219.43 485.595h255.926v254.793H219.43V485.595zM548.57 740.39V631.04h256v109.35h-256zM219.43 156.452h255.926v254.793H219.43V156.453zm329.14 328.3h256v109.35h-256v-109.35zm0-182.856h256v109.35h-256v-109.35zm0-146.286h256v109.35h-256V155.61z"/><glyph unicode="" d="M579.51 677.01c-30.792 0-57.38-25.16-57.38-55.954 0-28.635 18.907-47.58 47.58-47.58 31.414 0 58 23.772 58 55.992 0 28.71-20.223 47.543-48.2 47.543zm14.008-340.516c-9.8 0-48.31-59.502-69.266-59.502-5.595 0-8.375 4.937-8.375 9.8 0 11.228 7.68 28.71 11.85 39.206l50.32 136.375c25.2 67.84-6.984 86.016-37.046 86.016-40.552 0-76.94-20.3-104.88-46.85-9.107-9.07-39.864-38.44-39.864-51.058 0-4.133 4.17-9.07 9.107-9.07 12.544 0 46.153 60.855 72.01 60.855 5.594 0 11.885-6.29 6.984-18.87L435.46 360.225c-4.938-11.85-28.71-69.23-28.71-102.802 0-26.587 17.52-38.437 42.68-38.437 70.655 0 152.43 86.71 152.43 107.007 0 6.29-4.865 10.496-8.34 10.496z"/><glyph unicode="î˜" d="M219.063 593.92H366.08v147.017H219.063V593.92zm219.428 0h147.02v147.017H438.49V593.92zm219.43 147.017V593.92h147.02v147.017H657.92zM219.068 374.49H366.08v147.02H219.063V374.49zm219.428 0h147.02v147.02H438.49V374.49zm219.43 0H804.94v147.02H657.92V374.49zm-438.86-219.426H366.08V302.08H219.063V155.063zm219.43 0h147.02V302.08H438.49V155.063zm219.43 0H804.94V302.08H657.92V155.063z"/><glyph unicode="" d="M711.607 401.59l-5.486-5.52c21.07 27.793 32.88 60.196 32.22 94.72-1.97 99.217-106.68 177.626-233.87 175.14-127.23-2.487-228.79-84.992-226.815-184.21 1.94-99.182 106.68-177.554 233.91-175.067 28.637.585 50.434-5.815 75.63 2.12l159.234-78.7c-.038-.038-71.06 124.964-34.817 171.52z"/><glyph unicode="î˜" d="M236.946 466.286h550.107v-36.57H236.946v36.57z"/><glyph unicode="î˜" d="M749.13 663.698C597.027 570.44 486.655 452.79 437.064 393.764l-121.417 95.16-53.65-43.265 209.847-213.4c36.096 92.49 150.49 273.3 290.158 401.736l-12.873 29.696z"/><glyph unicode="" d="M434.87 259.95c-35.217 0-63.706-28.526-63.706-63.744 0-35.182 28.49-63.67 63.707-63.67 35.188 0 63.71 28.488 63.71 63.67 0 35.218-28.523 63.744-63.704 63.744zm219.978 0c-35.218 0-63.707-28.526-63.707-63.744 0-35.182 28.49-63.67 63.71-63.67 35.148 0 63.71 28.488 63.71 63.67 0 35.218-28.562 63.744-63.707 63.744zm129.426 356.79H357.047s-25.93 70.072-49.957 113.372c-24.027 43.227-57.893 32.037-57.893 32.037-26.843 0-39.314-16.06-39.314-42.977 0-26.843 16.457-48.64 43.337-48.64l16.603-14.848 121.93-330.534 356.424-.255s65.17 261.706 61.806 251.356c11.96 36.975-3.255 40.486-25.71 40.486zm-391.79-124.196c-18.724 0-33.9 15.177-33.9 33.902s15.176 33.902 33.9 33.902 33.903-15.177 33.903-33.902-15.177-33.902-33.902-33.902zm72.45-113.152c-18.726 0-33.903 15.177-33.903 33.902s15.18 33.902 33.908 33.902 33.902-15.177 33.902-33.902-15.178-33.902-33.903-33.902zM502.2 492.544c-18.727 0-33.904 15.177-33.904 33.902s15.177 33.902 33.902 33.902 33.9-15.177 33.9-33.902-15.176-33.902-33.9-33.902zm72.446-113.152c-18.725 0-33.865 15.177-33.865 33.902s15.18 33.902 33.87 33.902 33.938-15.177 33.938-33.902-15.214-33.902-33.938-33.902zm37.266 113.152c-18.725 0-33.938 15.177-33.938 33.902s15.214 33.902 33.938 33.902 33.865-15.177 33.865-33.902-15.14-33.902-33.865-33.902zm72.448-113.152c-18.724 0-33.864 15.177-33.864 33.902s15.14 33.902 33.865 33.902 33.94-15.177 33.94-33.902-15.21-33.902-33.94-33.902zm37.267 113.152c-18.725 0-33.938 15.177-33.938 33.902s15.21 33.902 33.932 33.902 33.865-15.177 33.865-33.902-15.14-33.902-33.865-33.902z"/><glyph unicode="" d="M642.487 578.304c11.96 0 21.65 9.69 21.65 21.65v77.934c0 11.96-9.69 21.65-21.65 21.65-11.922 0-21.65-9.69-21.65-21.65v-77.934c.037-11.96 9.728-21.65 21.65-21.65zm-260.645 0c11.922 0 21.65 9.69 21.65 21.65v77.934c0 11.96-9.728 21.65-21.65 21.65-11.96 0-21.65-9.69-21.65-21.65v-77.934c.037-11.96 9.69-21.65 21.65-21.65zm289.427 58.258v-.402c8.99-7.973 14.7-19.566 14.7-32.55 0-23.99-19.46-43.446-43.487-43.446-23.99 0-43.447 19.456-43.447 43.447 0 12.95 5.705 24.58 14.702 32.55v.407H410.59v-.402c8.996-7.972 14.7-19.565 14.7-32.55 0-23.99-19.455-43.445-43.446-43.445-24.027 0-43.447 19.455-43.447 43.446 0 12.947 5.67 24.577 14.665 32.55v.402h-96.84v-440.1h511.56v440.1H671.27zM732.08 234.57h-437.76v291.69h437.76V234.57zM619.3 407.11h-55.15V352h55.15v55.113zm0 82.908h-55.15v-55.11h55.15v55.113zm0-163.51h-55.15v-55.15h55.15v55.15zm77.642 163.51h-55.15v-55.11h55.15v55.113zm0-82.907h-55.15V352h55.15v55.113zm-310.675-80.6h-55.113v-55.15h55.113v55.15zm77.715 0h-55.15v-55.15h55.15v55.15zm0 80.606h-55.15V352h55.15v55.113zm-77.715 0h-55.113V352h55.113v55.113zm155.32 0h-55.114V352h55.113v55.113zm0 82.908h-55.114v-55.11h55.113v55.114zm-77.605 0h-55.15v-55.11h55.15v55.114zm77.604-163.51h-55.113v-55.15h55.113v55.15z"/><glyph unicode="" d="M512 677.742L302.994 424.485h136.338v-206.19H584.63v206.19h136.375z"/><glyph unicode="" d="M584.63 471.515V677.74H439.334V471.516h-136.34L512 218.296l209.007 253.22z"/><glyph unicode="" d="M836.462 183.918s-109.64 112.677-153.38 156.233c-19.055 19.02-32.074 31.93-32.074 31.93 14.848 21.21 26.405 44.36 34.633 69.34s12.367 51.24 12.367 78.85c0 35.62-6.802 69.083-20.334 100.46-13.57 31.306-32 58.698-55.406 82.03-23.37 23.44-50.725 41.875-82.066 55.407-31.304 13.605-64.767 20.37-100.39 20.37-35.582 0-69.045-6.802-100.423-20.37-31.305-13.53-58.55-31.963-81.664-55.406-23.08-23.297-41.437-50.69-54.97-81.994-13.566-31.378-20.332-64.84-20.332-100.462s6.8-69.083 20.334-100.39c13.534-31.304 31.89-58.66 54.97-82.102 23.114-23.33 50.323-41.8 81.665-55.37 31.377-13.564 64.84-20.293 100.424-20.293 27.647 0 53.942 4.022 78.884 12.287s48.09 19.858 69.303 34.706c0 0 11.923-11.96 29.697-29.805 48.422-48.603 155.027-159.16 155.027-159.16 16.02-6.984 41.73.44 54.456 11.338s19.857 33.683 9.29 52.408zM612.718 447.013c-9.838-22.747-23.223-42.57-40.155-59.43-16.933-16.932-36.718-30.353-59.43-40.19-22.637-9.875-46.847-14.776-72.52-14.776-26.258 0-50.688 4.937-73.362 14.775-22.67 9.838-42.49 23.26-59.423 40.192-16.896 16.86-30.354 36.68-40.155 59.43-9.84 22.6-14.74 47.103-14.74 73.288 0 25.673 4.9 50.03 14.74 72.997 9.837 22.93 23.26 42.892 40.154 59.79 16.933 16.97 36.754 30.352 59.43 40.153 22.673 9.91 47.103 14.738 73.36 14.738 25.674 0 49.884-4.863 72.522-14.737 22.674-9.8 42.496-23.186 59.43-40.155 16.932-16.933 30.317-36.9 40.154-59.83 9.872-22.968 14.736-47.324 14.736-72.998 0-26.15-4.9-50.65-14.738-73.253z"/><glyph unicode="" d="M695.845 602.66l-29.147 29.112L512 477.038 357.268 631.772l-29.11-29.11L482.89 447.926 328.266 293.303l29.11-29.074L512 418.81l154.664-154.58 29.038 29.073-154.586 154.624z"/><glyph unicode="" d="M470.418 450.158l132.79 136.558-27.793 26.075L417.06 449.94l9.62-9.033-.11-.146 153.233-157.55 27.137 26.59z"/><glyph unicode="" d="M512 539.94L339.602 356.06h344.795z"/><glyph unicode="" d="M392.12 622.043V273.956L631.844 448z"/><glyph unicode="" d="M392.12 448l239.725-174.043v348.087z"/><glyph unicode="" d="M237.714 191.16h73.728v513.68h-73.728V191.16zm548.572 511.926H346.003v-292.17h440.283l-148.078 144.13 148.078 148.04z"/><glyph unicode="" d="M787.054 466.36h-256.22v256.694h-36.57V466.36H236.947v-36.572h257.317v-256.84h36.57v256.84h256.22z"/><glyph unicode="î˜" d="M769.134 594.286v36.57h-513.17v-25.27l-1.097-1.097 1.097-1.1v-9.11h.622V301.71h-.622v-8.56l-1.097-1.095 1.097-1.098v-25.82h513.17v36.57h-.585v292.57h.58zM703.89 301.714H316.233l119.88 119.88-25.855 25.857L293.12 330.32v236.36L513.134 349.59l25.856 25.855-1.39 1.353 194.377 194.34v-245.87l-122.15 122.15-25.855-25.856L703.89 301.714zM317.22 594.286h386.16l-191.782-191.78-194.377 191.78z"/><glyph unicode="" d="M310.747 210.36h109.166v328.484H310.747V210.36zM604.05 355.583V210.36h109.202v145.224H604.05zM457.4 210.36h109.2v475.318H457.4v-475.32z"/><glyph unicode="" d="M310.747 210.36h109.166v328.484H310.747V210.36zm37.194 293.265h36.87V246.857h-36.87v256.768zm256.11-148.04V210.358h109.207v145.224H604.05zm73.29-108.874h-36.83v71.87h36.83v-71.87zM457.4 210.36h109.2v475.318H457.4v-475.32zm36.863 439.478h36.827V247.004h-36.827v402.834z"/><glyph unicode="î˜ " d="M519.57 665.893c-127.232 2.487-231.936-75.922-233.91-175.14-.696-34.488 11.153-66.927 32.218-94.72l-5.486 5.52c36.242-46.518-34.816-171.52-34.816-171.52l159.232 78.703c25.16-7.936 46.994-1.536 75.63-2.12 127.232-2.49 231.972 75.884 233.91 175.064 2.012 99.255-99.51 181.723-226.778 184.21z"/><glyph unicode="" d="M514.158 489.582l136.558-132.79 26.075 27.793L513.94 542.94 347.21 380.196l26.588-27.136z"/><glyph unicode="" d="M509.842 406.418l-136.558 132.79-26.075-27.793L510.06 353.06l166.73 162.744-26.588 27.136z"/><glyph unicode="" d="M938.824 426.028l-.504 106.238L512 958.588 85.678 532.266l-.504-106.238L474.618 815.47V-64.536h74.764V815.47z"/><glyph unicode="" d="M1.994 518.75h748.928L467.644 809.956h200.254L1022.006 446 667.898 82.044H467.644l283.278 291.174H1.994V518.75z"/><glyph unicode="" d="M1022.006 375.25H273.078L556.356 84.044H356.102L1.994 448l354.108 363.956h200.254L273.078 520.782h748.928V375.25z"/><glyph unicode="" d="M85.174 468.026l.504-106.238L512-64.536l426.32 426.324.504 106.238L549.38 78.582l.002 880.006h-74.764V78.584z"/><glyph unicode="" d="M511.963 831.086c-211.53 0-383.05-171.52-383.05-383.086S300.398 64.914 511.963 64.914C723.566 64.914 895.05 236.397 895.05 448S723.565 831.086 511.962 831.086zm0-36.572c191.086 0 346.514-155.43 346.514-346.514 0-79.91-27.43-153.344-73.07-212.04-5.486 1.974-11.008 3.84-16.274 6.106-34.926 14.63-73.8 31.78-108.654 46.153-9.917 2.7-19.937 5.41-29.848 8.15-11.85 8.154-23.59 35.364-29.915 48.932-6.29.914-12.654 1.792-19.017 2.633.915 20.99 13.935 22.125 19.018 38.07 4.5 14.08.514 32.44 7.57 45.495 4.94 9.07 16.13 9.07 21.65 16.934 5.085 6.984 8.41 19.272 9.986 27.94 2.853 15.8 5.34 37.34-2.158 53.03-4.28 8.96-6.985 9.873-8.23 20.735-1.425 13.274 3.914 56.43 4.134 65.754.513 24.21-.072 26.15-5.924 49.737 0 0-7.058 21.36-18.213 27.83l-22.272 3.805L573.55 710c-55.37 34.085-114.76 10.167-146.505-2.67-45.824-14.885-74.79-59.758-54.565-155.538 3.474-16.42-8.96-23.698-8.155-32.658 1.83-19.566 2.158-66.487 20.59-78.08 1.72-1.06 14.81-4.352 14.738-3.438 1.794-19.017 3.623-38.07 5.378-57.015 4.61-12.65 15.69-14.08 18.91-31.923l-14.152-3.438c-6.362-13.57-17.992-40.778-29.878-48.934-9.948-2.705-19.93-5.412-29.88-8.154-34.89-14.373-73.69-31.49-108.654-46.153-1.902-.77-3.877-1.39-5.815-2.16-43.775 58.11-70.07 130.01-70.07 208.165 0 191.086 155.43 346.514 346.478 346.514z"/></font></defs></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg"><defs><font id="Blank-Theme-Icons" horiz-adv-x="1024"><font-face units-per-em="1024" ascent="960" descent="-64"/><missing-glyph horiz-adv-x="1024"/><glyph unicode=" " d="" horiz-adv-x="512"/><glyph unicode="" d="M676.571 637.696c-59.867 28.197-131.255 2.523-159.415-57.307-1.975-4.133-3.657-9.362-5.157-15.397-1.499 6.034-3.182 11.264-5.157 15.397-28.197 59.831-99.547 85.504-159.415 57.307-59.831-28.197-85.504-99.547-57.271-159.378 28.197-59.867 221.806-231.424 221.806-231.424s0 0.219 0.037 0.585c0.037-0.366 0.037-0.585 0.037-0.585s193.646 171.557 221.806 231.424c28.233 59.831 2.597 131.182-57.271 159.378z"/><glyph unicode="" d="M676.571 637.696c-59.831 28.197-131.218 2.523-159.451-57.307-1.938-4.133-3.657-9.362-5.157-15.397-1.463 6.034-3.182 11.264-5.157 15.397-28.16 59.831-99.547 85.504-159.378 57.307s-85.467-99.547-57.271-159.378 221.806-231.424 221.806-231.424 0 0.219 0.037 0.585c0-0.402 0-0.622 0-0.622s193.646 171.557 221.842 231.424c28.233 59.867 2.597 131.218-57.271 159.415zM690.213 479.232c-25.417-43.776-174.007-184.722-174.007-184.722l-1.573 2.999c0 0-155.465 140.398-181.211 183.991-30.61 51.822-7.753 108.946 38.949 128.439 43.52 18.176 101.888-27.319 123.502-73.143 1.499-3.182 17.627-1.463 18.798-6.107 1.134 4.645 12.727 2.926 14.226 6.107 21.577 45.824 81.042 93.989 128 72.411 46.007-21.138 66.926-72.155 33.317-129.975z"/><glyph unicode="" d="M512 704.11l-296.85-512.256h593.701l-296.85 512.256zM544.219 254.135h-62.757v49.92h62.757v-49.92zM528.713 343.369h-31.269l-20.809 140.654-1.207 72.704h72.521v-72.704l-19.237-140.654z"/><glyph unicode="" d="M628.846 588.544c-34.085 28.343-75.63 42.24-116.773 42.24-47.47 0-94.757-18.578-130.085-54.382l-32.073 29.586-0.585-102.693 110.994-0.658-39.424 41.253c25.198 24.027 58.002 36.315 91.136 36.352 29.842-0.037 59.721-9.947 84.517-30.574 31.488-26.222 47.689-63.744 47.726-101.815 0-5.449-0.366-10.971-1.024-16.457l51.383 9.874c0.073 2.231 0.146 4.425 0.146 6.619 0.037 52.37-22.491 104.521-65.938 140.654zM603.794 352.768c-25.307-24.466-58.405-37.010-91.867-37.047-29.879 0.037-59.721 9.984-84.517 30.574-31.488 26.222-47.689 63.744-47.726 101.778 0 6.327 0.475 12.617 1.353 18.871l-51.602-9.691c-0.146-3.072-0.256-6.107-0.256-9.179-0.037-52.334 22.491-104.521 65.975-140.617 34.048-28.343 75.593-42.24 116.736-42.24h0.11c47.799 0 95.378 18.907 130.743 55.223l33.938-33.829 0.219 106.094-112.055 0.293 38.949-40.229z"/><glyph unicode="" d="M696.942 624.933l-19.273 6.107h-74.496v38.583l-12.544 21.029-22.711 13.495h-111.141l-23.333-13.495-12.581-21.029v-38.619h-73.765l-18.761-6.656-17.189-14.153v-88.869h19.017v-0.073h17.554v-329.435h36.571v0.293h255.415v-0.293h36.571v329.435h18.286v0.073h18.286v86.601l-15.909 17.006zM457.435 667.575h109.129v-36.571h-109.129v36.571zM639.707 228.718h-255.415v292.571h255.415v-292.571zM676.279 557.934h-328.558v36.498h328.558v-36.498zM457.435 483.511h-36.571v-218.587h36.571v218.587zM530.578 483.511h-36.571v-218.587h36.571v218.587zM603.721 483.511h-36.571v-218.587h36.571v218.587z"/><glyph unicode="" d="M804.645 515.401c-1.499 4.681-5.888 7.899-10.789 7.899h-206.958l-64.073 196.754c-1.536 4.645-5.888 7.826-10.825 7.826-4.901 0-9.289-3.182-10.825-7.863l-64.439-196.754h-206.592c-4.901 0-9.289-3.218-10.825-7.863-1.499-4.681 0.146-9.874 4.096-12.763l167.205-121.783-64.439-197.851c-1.536-4.681 0.146-9.838 4.133-12.727 3.95-2.889 9.399-2.889 13.349 0l168.338 122.185 167.936-122.149c2.011-1.463 4.315-2.231 6.693-2.231s4.681 0.768 6.693 2.231c4.023 2.889 5.669 8.009 4.133 12.727l-64.439 197.851 167.57 121.783c3.95 2.889 5.632 8.046 4.059 12.727z"/><glyph unicode="" d="M807.241 415.854v67.145l-9.509 3.145-71.936 23.442-19.2 46.373 36.937 78.080-47.506 47.506-8.923-4.498-67.438-34.304-46.373 19.2-29.111 81.298h-67.182l-26.624-81.445-46.336-19.163-78.043 36.901-47.506-47.506 4.498-8.96 34.267-67.438-19.2-46.336-81.298-29.074v-67.218l9.472-3.072 71.973-23.515 19.163-46.373-36.901-78.080 47.506-47.506 8.887 4.498 67.474 34.304 46.373-19.2 29.111-81.298h67.182l3.072 9.509 23.515 71.936 46.373 19.2 78.080-36.937 47.506 47.506-4.498 8.923-34.304 67.438 19.2 46.373 81.298 29.147zM512 353.938c-51.968 0-94.062 42.13-94.062 94.062 0 52.005 42.094 94.062 94.062 94.062 51.931 0 94.098-42.057 94.098-94.062-0.037-51.931-42.167-94.062-94.098-94.062z"/><glyph unicode="" d="M339.602 539.941l172.398-183.881 172.398 183.881z"/><glyph unicode="" d="M606.939 449.938l-158.391 162.853-27.794-26.075 132.827-136.558-136.521-140.361 27.173-26.587 153.198 157.55-0.146 0.146z"/><glyph unicode="" d="M127.634 740.571v-73.143h768.731v73.143h-768.731zM127.634 411.429h768.731v73.143h-768.731v-73.143zM127.634 155.429h768.731v73.143h-768.731v-73.143z"/><glyph unicode="" d="M512 742.217c-102.437 0-185.417-83.054-185.417-185.454 0-102.437 185.417-403.017 185.417-403.017s185.454 300.581 185.454 403.017c-0.037 102.437-83.017 185.454-185.454 185.454zM512 500.443c-31.122 0-56.357 25.198-56.357 56.357 0 31.086 25.234 56.357 56.357 56.357 31.159 0 56.393-25.271 56.393-56.357-0.037-31.159-25.271-56.357-56.393-56.357z"/><glyph unicode="" d="M219.429 485.595h255.927v254.793h-255.927v-254.793zM548.571 740.389v-109.349h256v109.349h-256zM219.429 156.453h255.927v254.793h-255.927v-254.793zM548.571 484.754h256v109.349h-256v-109.349zM548.571 301.897h256v109.349h-256v-109.349zM548.571 155.611h256v109.349h-256v-109.349z"/><glyph unicode="" d="M579.511 677.010c-30.793 0-57.381-25.161-57.381-55.954 0-28.635 18.907-47.579 47.579-47.579 31.415 0 58.002 23.771 58.002 55.991 0 28.709-20.224 47.543-48.201 47.543zM593.518 336.494c-9.801 0-48.311-59.502-69.266-59.502-5.595 0-8.375 4.937-8.375 9.801 0 11.227 7.68 28.709 11.849 39.205l50.322 136.375c25.198 67.84-6.985 86.016-37.047 86.016-40.558 0-76.946-20.297-104.887-46.848-9.106-9.070-39.863-38.437-39.863-51.054 0-4.133 4.169-9.070 9.106-9.070 12.544 0 46.153 60.855 72.009 60.855 5.595 0 11.886-6.29 6.985-18.871l-48.896-123.173c-4.937-11.849-28.709-69.23-28.709-102.802 0-26.587 17.518-38.437 42.679-38.437 70.656 0 152.43 86.711 152.43 107.008 0 6.29-4.864 10.496-8.338 10.496z"/><glyph unicode="" d="M219.063 593.92h147.017v147.017h-147.017v-147.017zM438.491 593.92h147.017v147.017h-147.017v-147.017zM657.92 740.937v-147.017h147.017v147.017h-147.017zM219.063 374.491h147.017v147.017h-147.017v-147.017zM438.491 374.491h147.017v147.017h-147.017v-147.017zM657.92 374.491h147.017v147.017h-147.017v-147.017zM219.063 155.063h147.017v147.017h-147.017v-147.017zM438.491 155.063h147.017v147.017h-147.017v-147.017zM657.92 155.063h147.017v147.017h-147.017v-147.017z"/><glyph unicode="" d="M711.607 401.591l-5.486-5.522c21.065 27.794 32.878 60.197 32.219 94.72-1.975 99.218-106.679 177.627-233.874 175.141-127.232-2.487-228.791-84.992-226.816-184.21 1.938-99.182 106.679-177.554 233.911-175.067 28.635 0.585 50.432-5.815 75.63 2.121l159.232-78.702c-0.037-0.037-71.058 124.965-34.816 171.52z"/><glyph unicode="" d="M236.946 466.286h550.107v-36.571h-550.107v36.571z"/><glyph unicode="" d="M749.129 663.698c-152.101-93.257-262.473-210.907-312.064-269.934l-121.417 95.159-53.65-43.264 209.847-213.394c36.096 92.489 150.491 273.298 290.158 401.737l-12.873 29.696z"/><glyph unicode="" d="M434.871 259.95c-35.218 0-63.707-28.526-63.707-63.744 0-35.182 28.489-63.671 63.707-63.671 35.182 0 63.707 28.489 63.707 63.671 0 35.218-28.526 63.744-63.707 63.744zM654.848 259.95c-35.218 0-63.707-28.526-63.707-63.744 0-35.182 28.489-63.671 63.707-63.671 35.145 0 63.707 28.489 63.707 63.671 0 35.218-28.562 63.744-63.707 63.744zM784.274 616.741c-163.511 0-427.227 0-427.227 0s-25.929 70.071-49.957 113.371c-24.027 43.227-57.893 32.037-57.893 32.037-26.843 0-39.314-16.055-39.314-42.971 0-26.843 16.457-48.64 43.337-48.64l16.603-14.848 121.929-330.533 356.425-0.256c0 0 65.17 261.705 61.806 251.355 11.959 36.974-3.255 40.485-25.71 40.485zM392.485 492.544c-18.725 0-33.902 15.177-33.902 33.902s15.177 33.902 33.902 33.902 33.902-15.177 33.902-33.902-15.177-33.902-33.902-33.902zM464.933 379.392c-18.725 0-33.902 15.177-33.902 33.902s15.177 33.902 33.902 33.902 33.902-15.177 33.902-33.902-15.177-33.902-33.902-33.902zM502.199 492.544c-18.725 0-33.902 15.177-33.902 33.902s15.177 33.902 33.902 33.902 33.902-15.177 33.902-33.902-15.177-33.902-33.902-33.902zM574.647 379.392c-18.725 0-33.865 15.177-33.865 33.902s15.177 33.902 33.865 33.902 33.938-15.177 33.938-33.902-15.214-33.902-33.938-33.902zM611.913 492.544c-18.725 0-33.938 15.177-33.938 33.902s15.214 33.902 33.938 33.902 33.865-15.177 33.865-33.902-15.141-33.902-33.865-33.902zM684.361 379.392c-18.725 0-33.865 15.177-33.865 33.902s15.141 33.902 33.865 33.902 33.938-15.177 33.938-33.902-15.214-33.902-33.938-33.902zM721.627 492.544c-18.725 0-33.938 15.177-33.938 33.902s15.214 33.902 33.938 33.902 33.865-15.177 33.865-33.902-15.141-33.902-33.865-33.902z"/><glyph unicode="" d="M642.487 578.304c11.959 0 21.65 9.691 21.65 21.65v77.934c0 11.959-9.691 21.65-21.65 21.65-11.922 0-21.65-9.691-21.65-21.65v-77.934c0.037-11.959 9.728-21.65 21.65-21.65zM381.842 578.304c11.922 0 21.65 9.691 21.65 21.65v77.934c0 11.959-9.728 21.65-21.65 21.65-11.959 0-21.65-9.691-21.65-21.65v-77.934c0.037-11.959 9.691-21.65 21.65-21.65zM671.269 636.562v-0.402c8.997-7.973 14.702-19.566 14.702-32.549 0-23.991-19.456-43.447-43.483-43.447-23.991 0-43.447 19.456-43.447 43.447 0 12.946 5.705 24.576 14.702 32.549v0.402h-203.154v-0.402c8.997-7.973 14.702-19.566 14.702-32.549 0-23.991-19.456-43.447-43.447-43.447-24.027 0-43.447 19.456-43.447 43.447 0 12.946 5.669 24.576 14.665 32.549v0.402h-96.841v-440.101h511.561v440.101h-96.512zM732.087 234.569h-437.76v291.694h437.76v-291.694zM619.301 407.113h-55.15v-55.113h55.15v55.113zM619.301 490.021h-55.15v-55.113h55.15v55.113zM619.301 326.51h-55.15v-55.15h55.15v55.15zM696.942 490.021h-55.15v-55.113h55.15v55.113zM696.942 407.113h-55.15v-55.113h55.15v55.113zM386.267 326.51h-55.113v-55.15h55.113v55.15zM463.982 326.51h-55.15v-55.15h55.15v55.15zM463.982 407.113h-55.15v-55.113h55.15v55.113zM386.267 407.113h-55.113v-55.113h55.113v55.113zM541.586 407.113h-55.113v-55.113h55.113v55.113zM541.586 490.021h-55.113v-55.113h55.113v55.113zM463.982 490.021h-55.15v-55.113h55.15v55.113zM541.586 326.51h-55.113v-55.15h55.113v55.15z"/><glyph unicode="" d="M512 677.742l-209.006-253.257h136.338v-206.19h145.298v206.19h136.375z"/><glyph unicode="" d="M584.631 471.515v206.226h-145.298v-206.226h-136.338l209.006-253.221 209.006 253.221z"/><glyph unicode="" d="M836.462 183.918c0 0-109.641 112.677-153.381 156.233-19.054 19.017-32.073 31.927-32.073 31.927 14.848 21.211 26.405 44.361 34.633 69.339s12.361 51.237 12.361 78.848c0 35.621-6.802 69.083-20.334 100.462-13.568 31.305-32 58.697-55.406 82.030-23.369 23.442-50.725 41.874-82.066 55.406-31.305 13.605-64.768 20.37-100.389 20.37-35.584 0-69.047-6.802-100.425-20.37-31.305-13.531-58.551-31.963-81.664-55.406-23.077-23.296-41.435-50.688-54.967-81.993-13.568-31.378-20.334-64.841-20.334-100.462s6.802-69.083 20.334-100.389c13.531-31.305 31.89-58.661 54.967-82.103 23.113-23.333 50.322-41.801 81.664-55.369 31.378-13.568 64.841-20.297 100.425-20.297 27.648 0 53.943 4.023 78.885 12.288s48.091 19.858 69.303 34.706c0 0 11.922-11.959 29.696-29.806 48.421-48.603 155.026-159.159 155.026-159.159 16.018-6.985 41.728 0.439 54.455 11.337s19.858 33.682 9.289 52.407zM612.718 447.013c-9.838-22.747-23.223-42.569-40.155-59.429-16.933-16.933-36.718-30.354-59.429-40.192-22.638-9.874-46.848-14.775-72.521-14.775-26.258 0-50.688 4.937-73.362 14.775s-42.496 23.259-59.429 40.192c-16.896 16.859-30.354 36.681-40.155 59.429-9.838 22.601-14.738 47.104-14.738 73.289 0 25.673 4.901 50.030 14.738 72.997 9.838 22.93 23.259 42.898 40.155 59.794 16.933 16.969 36.754 30.354 59.429 40.155 22.674 9.911 47.104 14.738 73.362 14.738 25.673 0 49.883-4.864 72.521-14.738 22.674-9.801 42.496-23.186 59.429-40.155 16.933-16.933 30.318-36.901 40.155-59.831 9.874-22.967 14.738-47.323 14.738-72.997 0-26.149-4.901-50.651-14.738-73.253z"/><glyph unicode="" d="M695.845 602.661l-29.147 29.111-154.697-154.734-154.734 154.734-29.111-29.111 154.734-154.734-154.624-154.624 29.111-29.074 154.624 154.587 154.661-154.587 29.038 29.074-154.587 154.624z"/><glyph unicode="" d="M470.418 450.158l132.791 136.558-27.794 26.075-158.354-162.853 9.618-9.033-0.11-0.146 153.234-157.55 27.136 26.587z"/><glyph unicode="" d="M512 539.941l-172.398-183.881h344.795z"/><glyph unicode="" d="M392.119 622.043v-348.087l239.726 174.043z"/><glyph unicode="" d="M392.119 448l239.726-174.043v348.087z"/><glyph unicode="" d="M237.714 191.159h73.728v513.682h-73.728v-513.682zM786.286 703.086h-440.283v-292.169h440.283l-148.078 144.128 148.078 148.041z"/><glyph unicode="" d="M787.054 466.359h-256.219v256.695h-36.571v-256.695h-257.317v-36.571h257.317v-256.841h36.571v256.841h256.219z"/><glyph unicode="" d="M769.134 594.286v36.571h-513.17v-25.271l-1.097-1.097 1.097-1.097v-9.106h0.622v-292.571h-0.622v-8.558l-1.097-1.097 1.097-1.097v-25.819h513.17v36.571h-0.585v292.571h0.585zM703.89 301.714h-387.657l119.881 119.881-25.856 25.856-117.138-117.138v236.361l220.014-217.088 25.856 25.856-1.39 1.353 194.377 194.341v-245.87l-122.149 122.149-25.856-25.856 119.918-119.845zM317.221 594.286h386.158l-191.781-191.781-194.377 191.781z"/><glyph unicode="" d="M310.747 210.359h109.166v328.485h-109.166v-328.485zM604.050 355.584v-145.225h109.202v145.225h-109.202zM457.399 210.359h109.202v475.319h-109.202v-475.319z"/><glyph unicode="" d="M310.747 210.359h109.166v328.485h-109.166v-328.485zM347.941 503.625h36.864v-256.768h-36.864v256.768zM604.050 355.584v-145.225h109.202v145.225h-109.202zM677.339 246.711h-36.827v71.863h36.827v-71.863zM457.399 210.359h109.202v475.319h-109.202v-475.319zM494.263 649.838h36.827v-402.834h-36.827v402.834z"/><glyph unicode="" d="M519.57 665.893c-127.232 2.487-231.936-75.922-233.911-175.141-0.695-34.487 11.154-66.926 32.219-94.72l-5.486 5.522c36.242-46.519-34.816-171.52-34.816-171.52l159.232 78.702c25.161-7.936 46.994-1.536 75.63-2.121 127.232-2.487 231.973 75.886 233.911 175.067 2.011 99.255-99.511 181.723-226.779 184.21z"/><glyph unicode="" d="M514.158 489.582l136.558-132.791 26.075 27.794-162.853 158.354-166.729-162.743 26.587-27.136z"/><glyph unicode="" d="M509.842 406.418l-136.558 132.791-26.075-27.794 162.853-158.354 166.729 162.743-26.587 27.136z"/><glyph unicode="" d="M938.824 426.028l-0.504 106.238-426.32 426.322-426.322-426.322-0.504-106.238 389.444 389.442v-880.006h74.764v880.006z"/><glyph unicode="" d="M1.994 518.75h748.928l-283.278 291.206h200.254l354.108-363.956-354.108-363.956h-200.254l283.278 291.174h-748.928v145.532z"/><glyph unicode="" d="M1022.006 375.25h-748.928l283.278-291.206h-200.254l-354.108 363.956 354.108 363.956h200.254l-283.278-291.174h748.928v-145.532z"/><glyph unicode="" d="M85.174 468.026l0.504-106.238 426.322-426.324 426.32 426.324 0.504 106.238-389.444-389.444 0.002 880.006h-74.764v-880.004z"/><glyph unicode="" d="M511.963 831.086c-211.529 0-383.049-171.52-383.049-383.086s171.483-383.086 383.049-383.086c211.602 0 383.086 171.483 383.086 383.086s-171.483 383.086-383.086 383.086zM511.963 794.514c191.086 0 346.514-155.429 346.514-346.514 0-79.909-27.429-153.344-73.070-212.041-5.486 1.975-11.008 3.84-16.274 6.107-34.926 14.629-73.801 31.781-108.654 46.153-9.911 2.706-19.931 5.413-29.842 8.155-11.849 8.155-23.589 35.365-29.915 48.933-6.29 0.914-12.654 1.792-19.017 2.633 0.914 20.992 13.934 22.126 19.017 38.071 4.498 14.080 0.512 32.439 7.57 45.495 4.937 9.070 16.128 9.070 21.65 16.933 5.083 6.985 8.411 19.273 9.984 27.941 2.853 15.799 5.339 37.339-2.158 53.029-4.279 8.96-6.985 9.874-8.229 20.736-1.426 13.275 3.913 56.43 4.133 65.755 0.512 24.21-0.073 26.149-5.925 49.737 0 0-7.058 21.358-18.213 27.831l-22.272 3.803-13.714 12.727c-55.369 34.085-114.761 10.167-146.505-2.67-45.824-14.885-74.789-59.758-54.565-155.538 3.474-16.421-8.96-23.698-8.155-32.658 1.829-19.566 2.158-66.487 20.59-78.080 1.719-1.061 14.811-4.352 14.738-3.438 1.792-19.017 3.621-38.071 5.376-57.015 4.608-12.654 15.689-14.080 18.907-31.927l-14.153-3.438c-6.363-13.568-17.993-40.777-29.879-48.933-9.947-2.706-19.931-5.413-29.879-8.155-34.889-14.373-73.691-31.488-108.654-46.153-1.902-0.768-3.877-1.39-5.815-2.158-43.776 58.112-70.071 130.011-70.071 208.165 0 191.086 155.429 346.514 346.478 346.514z"/><glyph unicode="" d="M427.703 653.019c0-10.569-8.558-19.090-19.090-19.090h-11.154c-10.533 0-19.090 8.521-19.090 19.090v68.462c0 10.533 8.594 19.090 19.090 19.090h11.154c10.533 0 19.090-8.558 19.090-19.090v-68.462zM645.778 653.019c0-10.569-8.521-19.090-19.054-19.090h-11.154c-10.533 0-19.054 8.521-19.054 19.090v68.462c-0.037 10.533 8.485 19.090 19.054 19.090h11.154c10.533 0 19.054-8.558 19.054-19.090v-68.462zM675.182 481.317l-38.729 31.598-152.795-187.282-81.518 64.805-28.891-36.242 120.21-95.634zM758.784 687.982h-71.351v-29.769c0-31.634-25.746-57.344-57.271-57.344h-11.227c-31.598 0-57.271 25.71-57.271 57.344v29.769h-97.682v-29.769c0-31.634-25.71-57.344-57.307-57.344h-11.154c-31.598 0-57.307 25.71-57.307 57.344v29.769h-72.96c-10.533 0-19.090-8.521-19.090-19.054v-494.373c-0.037-10.569 8.558-19.127 19.090-19.127h493.531c10.533 0 19.054 8.558 19.054 19.090v494.409c0 10.533-8.521 19.054-19.054 19.054zM720.567 240.677c0-10.569-8.558-19.090-19.090-19.090h-378.917c-10.569 0-19.090 8.521-19.090 19.090v288.11c0 10.569 8.521 19.054 19.090 19.054h378.88c10.533 0 19.090-8.485 19.090-19.054v-288.11z"/><glyph unicode="" d="M391.863 554.203h-128.219c-10.35 0-18.761-8.375-18.761-18.725v-91.429c0-10.35 8.375-18.725 18.761-18.725h128.219c10.35 0 18.761 8.375 18.761 18.725v91.429c0 10.386-8.375 18.725-18.761 18.725zM391.863 387.511h-90.734c-10.35 0-18.761-8.375-18.761-18.725v-194.633c0-10.35 8.411-18.725 18.761-18.725h90.734c10.35 0 18.761 8.375 18.761 18.725v194.633c0 10.35-8.375 18.725-18.761 18.725zM760.357 554.203h-279.845c-10.35 0-18.725-8.375-18.725-18.725v-91.429c0-10.35 8.375-18.725 18.725-18.725h279.845c10.313 0 18.725 8.375 18.725 18.725v91.429c-0.037 10.386-8.411 18.725-18.725 18.725zM721.701 385.573h-240.64c-10.313 0-18.725-8.375-18.725-18.761v-192.695c0-10.35 8.375-18.725 18.725-18.725h240.64c10.35 0 18.725 8.375 18.725 18.725v192.695c0 10.35-8.375 18.761-18.725 18.761zM507.355 575.634c21.87-3.986 42.971-6.327 62.647-6.327 99.072 0 152.832 53.248 153.088 103.387 0.183 32.293-23.698 67.291-78.117 67.84-72.923 0-118.089-51.493-141.605-89.71-23.918 38.107-69.266 88.576-142.373 88.576-52.882-0.549-76.763-35.547-76.581-67.84 0.256-50.139 54.016-103.424 153.088-103.424 0.037 0 0.037 0 0.037 0 21.394 0 44.398 2.414 68.425 7.241l1.39 0.256zM645.998 693.723c9.143-0.073 30.354-2.304 30.245-20.773-0.11-23.589-33.17-56.795-106.24-56.795-10.057 0-20.553 0.658-31.525 1.938 16.567 29.294 51.566 75.63 107.52 75.63zM437.504 614.985v0c-73.106 0-106.167 33.207-106.277 56.795-0.11 18.469 21.102 20.699 31.305 20.809 55.259 0 90.039-46.373 106.496-75.666-10.935-1.28-21.467-1.938-31.525-1.938z"/></font></defs></svg> diff --git a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.ttf b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.ttf index 67e7a7f1588bfaee162257fda8b9526699071887..eaec02d1df42b6b0208db02f1da2a3fb3bcae7fd 100644 Binary files a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.ttf and b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.ttf differ diff --git a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff index 809752bf8e5bb222801a256a45bcdcea3b03d190..e9e8395b2574bc6cfbb3c2606213ca204179bf51 100644 Binary files a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff and b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff differ diff --git a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff2 b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff2 index 438e128ae281b026f6fa1309ca2e78b17cf18a8b..1d60f2f95c0facb689b7a0079cfb2b2312bcab17 100644 Binary files a/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff2 and b/lib/web/fonts/Blank-Theme-Icons/Blank-Theme-Icons.woff2 differ diff --git a/lib/web/fonts/Blank-Theme-Icons/selection.json b/lib/web/fonts/Blank-Theme-Icons/selection.json index 307b07ce972e4209487d81adfe63a86024ae2012..e3a71a30c6ae96426ed01b4041c20ae392e1e909 100644 --- a/lib/web/fonts/Blank-Theme-Icons/selection.json +++ b/lib/web/fonts/Blank-Theme-Icons/selection.json @@ -1,6 +1,83 @@ { "IcoMoonType": "selection", "icons": [ + { + "icon": { + "paths": [ + "M427.703 306.981c0 10.569-8.558 19.090-19.090 19.090h-11.154c-10.533 0-19.090-8.521-19.090-19.090v-68.462c0-10.533 8.594-19.090 19.090-19.090h11.154c10.533 0 19.090 8.558 19.090 19.090v68.462z", + "M645.778 306.981c0 10.569-8.521 19.090-19.054 19.090h-11.154c-10.533 0-19.054-8.521-19.054-19.090v-68.462c-0.037-10.533 8.485-19.090 19.054-19.090h11.154c10.533 0 19.054 8.558 19.054 19.090v68.462z", + "M675.182 478.683l-38.729-31.598-152.795 187.282-81.518-64.805-28.891 36.242 120.21 95.634z", + "M758.784 272.018h-71.351v29.769c0 31.634-25.746 57.344-57.271 57.344h-11.227c-31.598 0-57.271-25.71-57.271-57.344v-29.769h-97.682v29.769c0 31.634-25.71 57.344-57.307 57.344h-11.154c-31.598 0-57.307-25.71-57.307-57.344v-29.769h-72.96c-10.533 0-19.090 8.521-19.090 19.054v494.373c-0.037 10.569 8.558 19.127 19.090 19.127h493.531c10.533 0 19.054-8.558 19.054-19.090v-494.409c0-10.533-8.521-19.054-19.054-19.054zM720.567 719.323c0 10.569-8.558 19.090-19.090 19.090h-378.917c-10.569 0-19.090-8.521-19.090-19.090v-288.11c0-10.569 8.521-19.054 19.090-19.054h378.88c10.533 0 19.090 8.485 19.090 19.054v288.11z" + ], + "attrs": [ + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "grid": 0, + "tags": [ + "gift-registry" + ] + }, + "attrs": [ + {}, + {}, + {}, + {} + ], + "properties": { + "order": 41, + "id": 36, + "prevSize": 32, + "code": 58920, + "name": "gift-registry" + }, + "setIdx": 0, + "setId": 1, + "iconIdx": 0 + }, + { + "icon": { + "paths": [ + "M391.863 405.797h-128.219c-10.35 0-18.761 8.375-18.761 18.725v91.429c0 10.35 8.375 18.725 18.761 18.725h128.219c10.35 0 18.761-8.375 18.761-18.725v-91.429c0-10.386-8.375-18.725-18.761-18.725z", + "M391.863 572.489h-90.734c-10.35 0-18.761 8.375-18.761 18.725v194.633c0 10.35 8.411 18.725 18.761 18.725h90.734c10.35 0 18.761-8.375 18.761-18.725v-194.633c0-10.35-8.375-18.725-18.761-18.725z", + "M760.357 405.797h-279.845c-10.35 0-18.725 8.375-18.725 18.725v91.429c0 10.35 8.375 18.725 18.725 18.725h279.845c10.313 0 18.725-8.375 18.725-18.725v-91.429c-0.037-10.386-8.411-18.725-18.725-18.725z", + "M721.701 574.427h-240.64c-10.313 0-18.725 8.375-18.725 18.761v192.695c0 10.35 8.375 18.725 18.725 18.725h240.64c10.35 0 18.725-8.375 18.725-18.725v-192.695c-0-10.35-8.375-18.761-18.725-18.761z", + "M507.355 384.366c21.87 3.986 42.971 6.327 62.647 6.327 99.072 0 152.832-53.248 153.088-103.387 0.183-32.293-23.698-67.291-78.117-67.84-72.923 0-118.089 51.493-141.605 89.71-23.918-38.107-69.266-88.576-142.373-88.576-52.882 0.549-76.763 35.547-76.581 67.84 0.256 50.139 54.016 103.424 153.088 103.424 0.037 0 0.037 0 0.037 0 21.394 0 44.398-2.414 68.425-7.241l1.39-0.256zM645.998 266.277c9.143 0.073 30.354 2.304 30.245 20.773-0.11 23.589-33.17 56.795-106.24 56.795-10.057 0-20.553-0.658-31.525-1.938 16.567-29.294 51.566-75.63 107.52-75.63zM437.504 345.015v0c-73.106 0-106.167-33.207-106.277-56.795-0.11-18.469 21.102-20.699 31.305-20.809 55.259 0 90.039 46.373 106.496 75.666-10.935 1.28-21.467 1.938-31.525 1.938z" + ], + "attrs": [ + {}, + {}, + {}, + {}, + {} + ], + "isMulticolor": false, + "grid": 0, + "tags": [ + "present" + ] + }, + "attrs": [ + {}, + {}, + {}, + {}, + {} + ], + "properties": { + "order": 43, + "id": 35, + "prevSize": 32, + "code": 58921, + "name": "present" + }, + "setIdx": 0, + "setId": 1, + "iconIdx": 1 + }, { "icon": { "paths": [ @@ -9,8 +86,10 @@ "grid": 0, "tags": [ "account" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 40, "id": 4, @@ -20,7 +99,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 0 + "setId": 1, + "iconIdx": 2 }, { "icon": { @@ -30,8 +110,10 @@ "grid": 0, "tags": [ "arrow-up-thin" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 36, "id": 3, @@ -41,7 +123,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 1 + "setId": 1, + "iconIdx": 3 }, { "icon": { @@ -51,8 +134,10 @@ "grid": 0, "tags": [ "arrow-right-thin" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 37, "id": 2, @@ -62,7 +147,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 2 + "setId": 1, + "iconIdx": 4 }, { "icon": { @@ -72,8 +158,10 @@ "grid": 0, "tags": [ "arrow-left-thin" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 38, "id": 1, @@ -83,7 +171,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 3 + "setId": 1, + "iconIdx": 5 }, { "icon": { @@ -93,8 +182,10 @@ "grid": 0, "tags": [ "arrow-down-thin" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 39, "id": 0, @@ -104,7 +195,8 @@ "ligatures": "" }, "setIdx": 0, - "iconIdx": 4 + "setId": 1, + "iconIdx": 6 }, { "icon": { @@ -114,8 +206,10 @@ "grid": 0, "tags": [ "wishlist full" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 1, "id": 32, @@ -124,8 +218,9 @@ "name": "wishlist-full", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 0 + "setIdx": 0, + "setId": 1, + "iconIdx": 7 }, { "icon": { @@ -135,8 +230,10 @@ "grid": 0, "tags": [ "wishlist empty" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 2, "id": 31, @@ -145,8 +242,9 @@ "name": "wishlist-empty", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 1 + "setIdx": 0, + "setId": 1, + "iconIdx": 8 }, { "icon": { @@ -156,8 +254,10 @@ "grid": 0, "tags": [ "warning" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 3, "id": 30, @@ -166,8 +266,9 @@ "name": "warning", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 2 + "setIdx": 0, + "setId": 1, + "iconIdx": 9 }, { "icon": { @@ -177,8 +278,10 @@ "grid": 0, "tags": [ "update" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 4, "id": 29, @@ -187,8 +290,9 @@ "name": "update", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 3 + "setIdx": 0, + "setId": 1, + "iconIdx": 10 }, { "icon": { @@ -198,8 +302,10 @@ "grid": 0, "tags": [ "trash" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 5, "id": 28, @@ -208,8 +314,9 @@ "name": "trash", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 4 + "setIdx": 0, + "setId": 1, + "iconIdx": 11 }, { "icon": { @@ -219,8 +326,10 @@ "grid": 0, "tags": [ "star" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 6, "id": 27, @@ -229,8 +338,9 @@ "name": "star", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 5 + "setIdx": 0, + "setId": 1, + "iconIdx": 12 }, { "icon": { @@ -240,8 +350,10 @@ "grid": 0, "tags": [ "settings" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 7, "id": 26, @@ -250,8 +362,9 @@ "name": "settings", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 6 + "setIdx": 0, + "setId": 1, + "iconIdx": 13 }, { "icon": { @@ -261,8 +374,10 @@ "grid": 0, "tags": [ "pointer down" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 8, "id": 19, @@ -271,8 +386,9 @@ "name": "pointer-down", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 7 + "setIdx": 0, + "setId": 1, + "iconIdx": 14 }, { "icon": { @@ -282,8 +398,10 @@ "grid": 0, "tags": [ "next" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 9, "id": 18, @@ -292,8 +410,9 @@ "name": "next", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 8 + "setIdx": 0, + "setId": 1, + "iconIdx": 15 }, { "icon": { @@ -303,8 +422,10 @@ "grid": 0, "tags": [ "menu" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 10, "id": 17, @@ -313,8 +434,9 @@ "name": "menu", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 9 + "setIdx": 0, + "setId": 1, + "iconIdx": 16 }, { "icon": { @@ -324,8 +446,10 @@ "grid": 0, "tags": [ "location" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 11, "id": 16, @@ -334,8 +458,9 @@ "name": "location", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 10 + "setIdx": 0, + "setId": 1, + "iconIdx": 17 }, { "icon": { @@ -345,8 +470,10 @@ "grid": 0, "tags": [ "list" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 12, "id": 15, @@ -355,8 +482,9 @@ "name": "list", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 11 + "setIdx": 0, + "setId": 1, + "iconIdx": 18 }, { "icon": { @@ -366,8 +494,10 @@ "grid": 0, "tags": [ "info" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 13, "id": 14, @@ -376,8 +506,9 @@ "name": "info", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 12 + "setIdx": 0, + "setId": 1, + "iconIdx": 19 }, { "icon": { @@ -387,8 +518,10 @@ "grid": 0, "tags": [ "grid" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 14, "id": 13, @@ -397,8 +530,9 @@ "name": "grid", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 13 + "setIdx": 0, + "setId": 1, + "iconIdx": 20 }, { "icon": { @@ -408,8 +542,10 @@ "grid": 0, "tags": [ "comment reflected" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 15, "id": 6, @@ -418,8 +554,9 @@ "name": "comment-reflected", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 14 + "setIdx": 0, + "setId": 1, + "iconIdx": 21 }, { "icon": { @@ -429,8 +566,10 @@ "grid": 0, "tags": [ "collapse" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 16, "id": 5, @@ -439,8 +578,9 @@ "name": "collapse", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 15 + "setIdx": 0, + "setId": 1, + "iconIdx": 22 }, { "icon": { @@ -450,8 +590,10 @@ "grid": 0, "tags": [ "checkmark" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 17, "id": 4, @@ -460,8 +602,9 @@ "name": "checkmark", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 16 + "setIdx": 0, + "setId": 1, + "iconIdx": 23 }, { "icon": { @@ -471,8 +614,10 @@ "grid": 0, "tags": [ "cart" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 18, "id": 3, @@ -481,8 +626,9 @@ "name": "cart", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 17 + "setIdx": 0, + "setId": 1, + "iconIdx": 24 }, { "icon": { @@ -492,8 +638,10 @@ "grid": 0, "tags": [ "calendar" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 19, "id": 2, @@ -502,8 +650,9 @@ "name": "calendar", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 18 + "setIdx": 0, + "setId": 1, + "iconIdx": 25 }, { "icon": { @@ -513,8 +662,10 @@ "grid": 0, "tags": [ "arrow up" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 20, "id": 1, @@ -523,8 +674,9 @@ "name": "arrow-up", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 19 + "setIdx": 0, + "setId": 1, + "iconIdx": 26 }, { "icon": { @@ -534,8 +686,10 @@ "grid": 0, "tags": [ "arrow down" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 21, "id": 0, @@ -544,8 +698,9 @@ "name": "arrow-down", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 20 + "setIdx": 0, + "setId": 1, + "iconIdx": 27 }, { "icon": { @@ -555,8 +710,10 @@ "grid": 0, "tags": [ "search" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 22, "id": 25, @@ -565,8 +722,9 @@ "name": "search", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 21 + "setIdx": 0, + "setId": 1, + "iconIdx": 28 }, { "icon": { @@ -576,8 +734,10 @@ "grid": 0, "tags": [ "remove" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 23, "id": 24, @@ -586,8 +746,9 @@ "name": "remove", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 22 + "setIdx": 0, + "setId": 1, + "iconIdx": 29 }, { "icon": { @@ -597,8 +758,10 @@ "grid": 0, "tags": [ "prev" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 24, "id": 23, @@ -607,8 +770,9 @@ "name": "prev", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 23 + "setIdx": 0, + "setId": 1, + "iconIdx": 30 }, { "icon": { @@ -618,8 +782,10 @@ "grid": 0, "tags": [ "pointer up" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 25, "id": 22, @@ -628,8 +794,9 @@ "name": "pointer-up", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 24 + "setIdx": 0, + "setId": 1, + "iconIdx": 31 }, { "icon": { @@ -639,8 +806,10 @@ "grid": 0, "tags": [ "pointer right" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 26, "id": 21, @@ -649,8 +818,9 @@ "name": "pointer-right", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 25 + "setIdx": 0, + "setId": 1, + "iconIdx": 32 }, { "icon": { @@ -660,8 +830,10 @@ "grid": 0, "tags": [ "pointer left" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 27, "id": 20, @@ -670,8 +842,9 @@ "name": "pointer-left", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 26 + "setIdx": 0, + "setId": 1, + "iconIdx": 33 }, { "icon": { @@ -681,8 +854,10 @@ "grid": 0, "tags": [ "flag" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 28, "id": 12, @@ -691,8 +866,9 @@ "name": "flag", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 27 + "setIdx": 0, + "setId": 1, + "iconIdx": 34 }, { "icon": { @@ -702,8 +878,10 @@ "grid": 0, "tags": [ "expand" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 29, "id": 11, @@ -712,8 +890,9 @@ "name": "expand", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 28 + "setIdx": 0, + "setId": 1, + "iconIdx": 35 }, { "icon": { @@ -723,8 +902,10 @@ "grid": 0, "tags": [ "envelope" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 30, "id": 10, @@ -733,8 +914,9 @@ "name": "envelope", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 29 + "setIdx": 0, + "setId": 1, + "iconIdx": 36 }, { "icon": { @@ -744,8 +926,10 @@ "grid": 0, "tags": [ "compare full" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 31, "id": 9, @@ -754,8 +938,9 @@ "name": "compare-full", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 30 + "setIdx": 0, + "setId": 1, + "iconIdx": 37 }, { "icon": { @@ -765,8 +950,10 @@ "grid": 0, "tags": [ "compare empty" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 32, "id": 8, @@ -775,8 +962,9 @@ "name": "compare-empty", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 31 + "setIdx": 0, + "setId": 1, + "iconIdx": 38 }, { "icon": { @@ -786,8 +974,10 @@ "grid": 0, "tags": [ "comment" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 33, "id": 7, @@ -796,8 +986,9 @@ "name": "comment", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 32 + "setIdx": 0, + "setId": 1, + "iconIdx": 39 }, { "icon": { @@ -807,8 +998,10 @@ "grid": 0, "tags": [ "up" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 34, "id": 34, @@ -817,8 +1010,9 @@ "name": "up", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 33 + "setIdx": 0, + "setId": 1, + "iconIdx": 40 }, { "icon": { @@ -828,8 +1022,10 @@ "grid": 0, "tags": [ "down" - ] + ], + "attrs": [] }, + "attrs": [], "properties": { "order": 35, "id": 33, @@ -838,8 +1034,9 @@ "name": "down", "ligatures": "" }, - "setIdx": 1, - "iconIdx": 34 + "setIdx": 0, + "setId": 1, + "iconIdx": 41 } ], "height": 1024, @@ -870,6 +1067,8 @@ "gridSize": 16, "showLiga": false, "search": "", - "showGrid": false + "showGrid": false, + "showQuickUse2": true, + "showSVGs": true } } \ No newline at end of file diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ServiceDataAttributesScannerTest.php b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ServiceDataAttributesScannerTest.php index b7697813590c90cd3845ef83ad5936ce5fb5a110..e0550e1f37097054d8d5d9ccc4d113665f9a6055 100644 --- a/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ServiceDataAttributesScannerTest.php +++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/ServiceDataAttributesScannerTest.php @@ -34,12 +34,7 @@ class ServiceDataAttributesScannerTest extends \PHPUnit_Framework_TestCase 'Magento\Sales\Api\Data\OrderExtension', 'Magento\Sales\Api\Data\OrderItemExtensionInterface', 'Magento\Sales\Api\Data\OrderItemExtension', - 'Magento\GiftMessage\Api\Data\MessageExtensionInterface', - 'Magento\GiftMessage\Api\Data\MessageExtension', - 'Magento\Quote\Api\Data\TotalsAdditionalDataExtensionInterface', - 'Magento\Quote\Api\Data\TotalsAdditionalDataExtension' ]; - $this->assertSame($expectedResult, $this->model->collectEntities($files)); } } diff --git a/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/extension_attributes.xml b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/extension_attributes.xml index 604ebb9dc9ab6850e9e98729f20a2ac9b9bfb5e1..336d89dd4ecc727b5a382ecb0e03878fef50dfaa 100644 --- a/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/extension_attributes.xml +++ b/setup/src/Magento/Setup/Test/Unit/Module/Di/_files/extension_attributes.xml @@ -12,11 +12,4 @@ <extension_attributes for="Magento\Sales\Api\Data\OrderItemInterface"> <attribute code="gift_message" type="Magento\GiftMessage\Api\Data\MessageInterface" /> </extension_attributes> - <extension_attributes for="Magento\GiftMessage\Api\Data\MessageInterface"> - <attribute code="entity_id" type="string" /> - <attribute code="entity_type" type="string" /> - </extension_attributes> - <extension_attributes for="Magento\Quote\Api\Data\TotalsAdditionalDataInterface"> - <attribute code="gift_messages" type="Magento\GiftMessage\Api\Data\MessageInterface[]" /> - </extension_attributes> </config>