diff --git a/index.php b/index.php index 8c32d8b..f62f442 100644 --- a/index.php +++ b/index.php @@ -33,29 +33,39 @@ 'type' => 'string' ] ]; + $type->canStyle = true; $type->canImportExport = true; \BearCMS\Internal\ElementsTypes::add($type); - \BearCMS\Internal\Themes::$elementsOptions['shareButton'] = function ($options, $idPrefix, $parentSelector, $context, $details) { - $group = $options->addGroup(__('bearcms/share-button-element-addon/Share button')); - $group->addOption($idPrefix . "ShareButtonCSS", "css", '', [ - "cssOptions" => isset($details['cssOptions']) ? $details['cssOptions'] : [], + \BearCMS\Internal\Themes::$elementsOptions['shareButton'] = ['v1', function ($options, $idPrefix, $parentSelector, $context, $details) { + $isElementContext = $context === \BearCMS\Internal\Themes::OPTIONS_CONTEXT_ELEMENT; + if ($isElementContext) { + $optionsGroup = $options; + $defaultStyleSelector = ''; + } else { + $optionsGroup = $options->addGroup(__('bearcms/share-button-element-addon/Share button')); + $defaultStyleSelector = ' .bearcms-element:not([class*="bearcms-element-style-"])'; + $optionsGroup->details['internalElementSelector'] = [$idPrefix, $parentSelector . " .bearcms-share-button-element"]; + } + + $optionsGroup->addOption($idPrefix . "ShareButtonCSS", "css", '', [ + "cssOptions" => ["*/hoverState", "*/focusState", "*/activeState", "*/visibilityState", "*/sizeState", "*/screenSizeState", "*/pageTypeState", "*/tagsState"], "cssOutput" => [ ["rule", $parentSelector . " .bearcms-share-button-element-button", "box-sizing:border-box;cursor:pointer;display:inline-block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;"], - ["selector", $parentSelector . " .bearcms-share-button-element-button"] + ["selector", $parentSelector . $defaultStyleSelector . "> .bearcms-share-button-element .bearcms-share-button-element-button"] ], "defaultValue" => '{"background-color":"#3374ce","border-top":"1px solid #3169c4","border-right":"1px solid #3169c4","border-bottom":"1px solid #3169c4","border-left":"1px solid #3169c4","font-size":"12px","font-family":"Arial","font-weight":"bold","height":"33px","line-height":"32px","padding-left":"10px","padding-right":"10px","color":"#ffffff","border-top-left-radius":"2px","border-top-right-radius":"2px","border-bottom-left-radius":"2px","border-bottom-right-radius":"2px"}' ]); - $groupContainer = $group->addGroup(__("bearcms/share-button-element-addon/Container")); + $groupContainer = $optionsGroup->addGroup(__("bearcms/share-button-element-addon/Container")); $groupContainer->addOption($idPrefix . "ShareButtonContainerCSS", "css", '', [ "cssTypes" => ["cssPadding", "cssMargin", "cssBorder", "cssRadius", "cssShadow", "cssBackground", "cssSize", "cssTextAlign"], - "cssOptions" => array_diff(isset($details['cssOptions']) ? $details['cssOptions'] : [], ["*/focusState"]), + "cssOptions" => ["*/hoverState", "*/activeState", "*/visibilityState", "*/sizeState", "*/screenSizeState", "*/pageTypeState", "*/tagsState"], "cssOutput" => [ ["rule", $parentSelector . " .bearcms-share-button-element", "box-sizing:border-box;display:flex;"], - ["selector", $parentSelector . " .bearcms-share-button-element"] + ["selector", $parentSelector . $defaultStyleSelector . "> .bearcms-share-button-element"] ] ]); - }; + }]; }; });