Example #1
0
function dom()
{
    $args = func_get_args();
    $dom = new dom(array_shift($args));
    if (in_array($dom->tag, dom::$singulars)) {
        $dom->singular = true;
        return $dom;
    }
    return $dom->append($args);
}
        return str::equals('close', $self->get('type'));
    });
    $template->let('normalBg', function ($self) {
        return $self->get('type:CLOSE') ? 'hsl(0,30%,40%)' : 'hsl(200,30%,35%)';
    });
    $template->let('normalBorder', function ($self) {
        $normalBorder = $self->get('type:CLOSE') ? 'solid 2px hsl(200,40%,80%)' : 'solid 2px hsl(200,40%,35%)';
    });
    $template->let('hoverBorder', 'solid 2px hsl(50,80%,80%)');
    $template->let('dom', function ($self) {
        $dom = new dom('a');
        $dom->jsCall('toggler', array('states' => $self->get('states'), 'currentIndex' => 0));
        $dom->attr('data-widget', 'toggleButton');
        $dom->attr('onmouseover', "this.style.border = '{$hoverBorder}'; this.style.letterSpacing = '1px';");
        $dom->attr('onmouseout', "this.style.border = '{$normalBorder}'; this.style.letterSpacing = '2px';");
        $dom->css(array('width' => $self->get('width') . 'em', 'cursor' => "default", '-webkit-border-radius' => $self->get('type:CLOSE') ? '0 8px 0 20px' : '4px 4px 0 0', 'display' => 'inline-block', 'vertical-align' => 'text-top', 'letter-spacing' => '2px', 'text-align' => 'center', 'font-size' => $self->get('fontSize') . 'px', 'padding' => $self->get('type:CLOSE') ? '2px 0px 4px 4px' : '2px 0', 'border' => $self->get('normalBorder'), 'color' => $self->get('type:CLOSE') ? 'hsl(200,40%,85%)' : 'hsl(200,40%,80%)', 'margin' => $self->get('type:CLOSE') ? '1px' : '0 8px', 'background' => $self->get('normalBg')));
        return $dom;
    });
    return $template;
});
$widgets->let('window', function () {
    $template = new widget();
    $template->expect('content');
    $template->let('dom', function ($self) {
        $dom = new dom('div');
        $dom->css(array('position' => 'relative', '-webkit-border-radius' => '8px', 'border-bottom' => 'solid 2px hsl(200,35%,55%)', 'background' => 'hsl(200,35%,75%)', 'padding' => '0', 'overflow' => 'hidden'));
        $dom->append(dom('div')->css(array('float' => 'right', 'margin' => '0', 'padding' => '0'))->append(widget('toggleButton')->let('states', array('Close'))->let('type', 'close')), dom('div')->css(array('position' => 'absolute', 'right' => '0', 'bottom' => '0', 'margin' => '0', 'padding' => '0'))->append(widget('toggleButton')->let('states', array('Fullscreen', 'Inline'))), dom('div')->css(array('padding' => '1em', 'padding-bottom' => '10em'))->append($self->get('content')));
        return $dom;
    });
    return $template;
});