/*
 * SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
 * SPDX-License-Identifier: MIT
 */

// samples taken from kosmindoormap MapCSS parser unit tests

@import url("included.mapcss");

// union selector
area[railway=platform],
relation[type=multipolygon][railway=platform]
{
    color: #ff550022;
    fill-color: #80f0e0d0;
}

// chained selector
area[railway=platform] node[sign]
{
    fill-color: #ff0000;
    opacity: 0.5;
}

// condition with colon-separated keys
node[building:part][building:part=elevator]
{
    opacity: 1;
    color: building:color;
}

// text properties
* {
    text: ref;
    text-color: #ff00ff;
}

// line properties
line {
    dashes: 3,5;
    linecap: round;
    linejoin: bevel;
    casing-width: 1;
    casing-color: #444444;
    casing-dashes: 1,1;
}

// zoom ranges
node|z12-13 {}
node|z10 {}
node|z-10 {}
node|z10- {}
node|z12-13[name] {}
node|z14-[name] {}

// numeric comparison conditions
* [layer>1],
* [layer<2],
* [layer>=3],
* [layer<=4] {}

// object types as tag or property values
area[indoor=area] {
    text-position: line;
    width: width;
}

// units
* {
    font-size: 16pt;
    width: 42px;
    casing-width: 2m;
}

// negative numbers
* {
    width: -10.42;
}


// colors
* {
    text-color: #aabbcc;
    fill-color: #80ccbbaa;
    casing-color: #123;
    shield-color: rgb(1.0, 0.5, 0.25);
    shield-casing-color: rgba(0.75, 1.0, 0.25, 0.5);
    color: "red";
}

// set tag
node[shop=bakery] {
    set mx:important;
}

// set tag to a specific value
area[shop=bakery] {
    set mx:importance = "high";
    set mx:importance = 20;
}

// set class
node[shop=bakery],
node[shop=pastry]
{
    set .importantShops;
}

// class selectors
node.importantShops { color: "red"; }
way.importantShops|z20- { color: "green"; }
*.importantShops[access=no] { color: "blue"; }

// layer selectors (see https://wiki.openstreetmap.org/wiki/MapCSS/0.2/Proposal_layer_selector)
way[highway]::road {
  width: 8;
  color: #ffffff;
  casing-width: 2;
  casing-color: #a0a0a0;
}
way[railway=tram]::tram {
  width: 2;
  color: #303030;
  z-index: 1;
}
// default layer selector
node::default {
    icon-image: "bla";
}

//quoted values in conditions
line|z16-[highway=service][service="drive-through"] {
    set .service;
    width: 1.5m;
}

// single quote strings
*[service='drive-through'] {
    text: 'abc\'def"ghi\njkl';
}