CSS-Prepare

 view release on metacpan or  search on metacpan

lib/CSS/Prepare/Property/UI.pm  view on Meta::CPAN

                $canonical{ $property } = $value;
            }
            else {
                $type =~ s{_}{-}g;
                push @errors, {
                        error => "invalid ${type} property: '${value}'"
                    };
            }
        };
    
    &$valid_property_or_error( 'cursor' )
        if 'cursor' eq $property;
    
    &$valid_property_or_error( 'outline_width' )
        if 'outline-width' eq $property;
    
    &$valid_property_or_error( 'outline_style' )
        if 'outline-style' eq $property;
    
    &$valid_property_or_error( 'outline_colour' )
        if 'outline-colour' eq $property
           || 'outline-color' eq $property;

lib/CSS/Prepare/Property/UI.pm  view on Meta::CPAN

            );
        
        %canonical = validate_any_order_shorthand( $value, %types );
        
        push @errors, {
                error => "invalid outline property: '${value}'"
            }
            unless %canonical;
    }
    
    if ( defined $canonical{'cursor'} ) {
        $canonical{'cursor'} = shorten_url_value(
                $canonical{'cursor'},
                $location,
                $self,
            );
    }
    
    return \%canonical, \@errors;
}
sub output {
    my $self  = shift;
    my $block = shift;

lib/CSS/Prepare/Property/UI.pm  view on Meta::CPAN

    if ( 3 == scalar @outline ) {
        my $value = join ' ', @shorthand;
        push @output, sprintf $self->output_format, 'outline:', $value;
    }
    else {
        push @output, @outline;
    }
    
    push @output,
        sprintf( $self->output_format,
            'cursor:', $block->{'cursor'},
        )
        if defined $block->{'cursor'};
    
    return @output;
}

1;

lib/CSS/Prepare/Property/Values.pm  view on Meta::CPAN

        is_border_spacing_value
        is_border_style_value
        is_border_width_value
        is_caption_side_value
        is_clear_value
        is_clip_value
        is_colour_value
        is_content_value
        is_counter_increment_value
        is_counter_reset_value
        is_cursor_value
        is_direction_value
        is_display_value
        is_empty_cells_value
        is_float_value
        is_font_family_value
        is_font_size_line_height_value
        is_font_size_value
        is_font_style_value
        is_font_variant_value
        is_font_weight_value

lib/CSS/Prepare/Property/Values.pm  view on Meta::CPAN

        (?:
              $counter_value
            | $counter_value
              (?: \s+ $counter_value )+
            | none
            | inherit
        )
    }x;
my $counter_reset_value = qr{ $counter_value_content }x;
my $counter_increment_value = qr{ $counter_value_content }x;
my $cursor_value = qr{
        (?:
              (?: $url_value \s+ )*
              (?:
                    auto     | crosshair | default   | e-resize  | help
                  | move     | n-resize  | ne-resize | nw-resize | pointer
                  | progress | s-resize  | se-resize | sw-resize | text
                  | w-resize | wait
              )
            | inherit
        )

lib/CSS/Prepare/Property/Values.pm  view on Meta::CPAN

    return $value =~ m{^ $content_value $}x;
}
sub is_counter_increment_value {
    my $value = shift;
    return $value =~ m{^ $counter_increment_value $}x;
}
sub is_counter_reset_value {
    my $value = shift;
    return $value =~ m{^ $counter_reset_value $}x;
}
sub is_cursor_value {
    my $value = shift;
    return $value =~ m{^ $cursor_value $}x;
}
sub is_direction_value {
    my $value = shift;
    return $value =~ m{^ $direction_value $}x;
}
sub is_display_value {
    my $value = shift;
    return $value =~ m{^ $display_value $}x;
}
sub is_empty_cells_value {

t/01.values.t  view on Meta::CPAN

    foreach my $value qw( visible  hidden  collapse  inherit ) {
        ok( is_visibility_value( $value ),
            "visibility: '$value'" );
    }
    ok( ! is_visibility_value( 'invisible' ),
        "not visibility: 'invisible'" );
}

# test user interface
{
    my @cursors = qw(
            auto       crosshair  default    pointer    move       e-resize
            ne-resize  nw-resize  n-resize   se-resize  sw-resize  s-resize
            w-resize   text       wait       help       progress
            inherit
        );
    foreach my $value ( @cursors ) {
        ok( is_cursor_value( $value ),
            "cursor: '$value'" );
    }
    ok( is_cursor_value( 'url(blah.gif) crosshair' ),
        "cursor: 'url(blah.gif) crosshair'" );
    ok( ! is_cursor_value( 'url(blah.gif)' ),
        "not cursor: 'url(blah.gif)'" );
    ok( ! is_cursor_value( 'crosshair sw-resize' ),
        "not cursor: 'crosshair sw-resize'" );
    
    
    my @outline_style_values = qw(
            none     hidden  dotted  dashed  solid
            double   groove  ridge   inset   outset
            inherit
        );
    foreach my $value ( @outline_style_values ) {
        ok( is_outline_style_value( $value ),
            "outline-style: '$value'" );

t/02.ui.t  view on Meta::CPAN

local $Data::Dumper::Useqq     = 1;
local $Data::Dumper::Deparse   = 1;
local $Data::Dumper::Quotekeys = 0;
local $Data::Dumper::Sortkeys  = 1;

my $preparer = CSS::Prepare->new();
my( $css, @structure, @parsed );



# cursors
{
    $css = <<CSS;
        a { cursor: url( "blah.gif" ) crosshair; }
CSS
    @structure = (
            {
                original  => ' cursor: url( "blah.gif" ) crosshair; ',
                errors    => [],
                selectors => [ 'a' ],
                block     => {
                    'cursor' => 'url(blah.gif) crosshair',
                },
            },
        );
    
    @parsed = $preparer->parse_string( $css );
    is_deeply( \@structure, \@parsed )
        or say "cursor was:\n" . Dumper \@parsed;
}
{
    $css = <<CSS;
        a { cursor: pointer crosshair; }
CSS
    @structure = (
            {
                original  => ' cursor: pointer crosshair; ',
                errors    => [
                    {
                        error => 'invalid cursor property: '
                                 . q('pointer crosshair'),
                    },
                ],
                selectors => [ 'a' ],
                block     => {},
            },
        );
    
    @parsed = $preparer->parse_string( $css );
    is_deeply( \@structure, \@parsed )
        or say "cursor error was:\n" . Dumper \@parsed;
}

# outline-something properties
{
    $css = <<CSS;
        div { outline-width: thin; }
CSS
    @structure = (
            {
                original  => ' outline-width: thin; ',

t/04.ui.t  view on Meta::CPAN

use Test::More  tests => 20;

use CSS::Prepare;

my $preparer_concise = CSS::Prepare->new();
my $preparer_pretty  = CSS::Prepare->new( pretty => 1 );
my( $css, @structure, $output );



# cursors
{
    @structure = (
            {
                selectors => [ 'a' ],
                block     => {
                    'cursor' => 'url(blah.gif) crosshair',
                },
            },
        );
    
    $css = <<CSS;
a{cursor:url(blah.gif) crosshair;}
CSS

    $output = $preparer_concise->output_as_string( @structure );
    ok( $output eq $css )
        or say "cursor was:\n" . $output;
    
    $css = <<CSS;
a {
    cursor:                 url(blah.gif) crosshair;
}
CSS
    $output = $preparer_pretty->output_as_string( @structure );
    ok( $output eq $css )
        or say "cursor was:\n" . $output;
}

# outline-something properties
{
    $css = <<CSS;
div{outline-width:thin;}
CSS
    @structure = (
            {
                selectors => [ 'div' ],



( run in 0.257 second using v1.01-cache-2.11-cpan-4d50c553e7e )