From ff743314189579309b9c0aa56916f83a9ee51b9c Mon Sep 17 00:00:00 2001 From: Thierry Bela Nanga Date: Mon, 17 Jun 2024 00:33:03 -0400 Subject: [PATCH] parse validation rules --- dist/index.cjs | 2 +- package.json | 10 +- src/lib/validation/config.json | 37821 +++++++++++++++++++++++++++ src/lib/validation/index.ts | 0 src/lib/validation/parser/index.ts | 3 + src/lib/validation/parser/parse.ts | 847 + src/lib/validation/parser/types.ts | 218 + tools/index.ts | 2 +- tools/validation.ts | 12 + 9 files changed, 38910 insertions(+), 5 deletions(-) create mode 100644 src/lib/validation/config.json create mode 100644 src/lib/validation/index.ts create mode 100644 src/lib/validation/parser/index.ts create mode 100644 src/lib/validation/parser/parse.ts create mode 100644 src/lib/validation/parser/types.ts create mode 100644 tools/validation.ts diff --git a/dist/index.cjs b/dist/index.cjs index 74c4c95..cf30b3e 100644 --- a/dist/index.cjs +++ b/dist/index.cjs @@ -84,7 +84,7 @@ exports.EnumToken = void 0; EnumToken[EnumToken["Time"] = 25] = "Time"; EnumToken[EnumToken["Iden"] = 7] = "Iden"; EnumToken[EnumToken["EOF"] = 47] = "EOF"; - EnumToken[EnumToken["Hash"] = 28] = "Hash"; + EnumToken[EnumToken["HashMark"] = 28] = "Hash"; EnumToken[EnumToken["Flex"] = 57] = "Flex"; EnumToken[EnumToken["Angle"] = 24] = "Angle"; EnumToken[EnumToken["Color"] = 49] = "Color"; diff --git a/package.json b/package.json index 6c37fdf..76877ab 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,12 @@ "c8": "^9.1.0", "mocha": "^10.4.0", "playwright": "^1.42.1", - "rollup": "^4.13.0", - "rollup-plugin-dts": "^6.1.0", - "tslib": "^2.6.2" + "rollup": "^4.18.0", + "rollup-plugin-dts": "^6.1.1", + "tslib": "^2.6.3", + "typescript": "^5.4.5" + }, + "dependencies": { + "esno": "^4.7.0" } } diff --git a/src/lib/validation/config.json b/src/lib/validation/config.json new file mode 100644 index 0000000..60704ad --- /dev/null +++ b/src/lib/validation/config.json @@ -0,0 +1,37821 @@ +{ + "declarations": { + "-ms-accelerator": { + "syntax": "false | true", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "false" + } + ], + "r": [ + { + "typ": 1, + "val": "true" + } + ] + } + ] + }, + "-ms-block-progression": { + "syntax": "tb | rl | bt | lr", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tb" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "rl" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "bt" + } + ], + "r": [ + { + "typ": 1, + "val": "lr" + } + ] + } + ] + } + ] + } + ] + }, + "-ms-content-zoom-chaining": { + "syntax": "none | chained", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 1, + "val": "chained" + } + ] + } + ] + }, + "-ms-content-zooming": { + "syntax": "none | zoom", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 1, + "val": "zoom" + } + ] + } + ] + }, + "-ms-content-zoom-limit": { + "syntax": "<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>", + "ast": [ + { + "typ": 3, + "val": "-ms-content-zoom-limit-min" + }, + { + "typ": 20 + }, + { + "typ": 3, + "val": "-ms-content-zoom-limit-max" + } + ] + }, + "-ms-content-zoom-limit-max": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "percentage" + } + ] + }, + "-ms-content-zoom-limit-min": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "percentage" + } + ] + }, + "-ms-content-zoom-snap": { + "syntax": "<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>", + "ast": [ + { + "typ": 28, + "l": [ + { + "typ": 3, + "val": "-ms-content-zoom-snap-type" + } + ], + "r": [ + { + "typ": 3, + "val": "-ms-content-zoom-snap-points" + } + ] + } + ] + }, + "-ms-content-zoom-snap-points": { + "syntax": "snapInterval( , ) | snapList( # )", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 18, + "val": "snapInterval", + "chi": [ + { + "typ": 2, + "val": "percentage" + }, + { + "typ": 10 + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "percentage" + } + ] + } + ], + "r": [ + { + "typ": 18, + "val": "snapList", + "chi": [ + { + "typ": 2, + "val": "percentage", + "isList": true + } + ] + } + ] + } + ] + }, + "-ms-content-zoom-snap-type": { + "syntax": "none | proximity | mandatory", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "proximity" + } + ], + "r": [ + { + "typ": 1, + "val": "mandatory" + } + ] + } + ] + } + ] + }, + "-ms-filter": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "string" + } + ] + }, + "-ms-flow-from": { + "syntax": "[ none | ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 2, + "val": "custom-ident" + } + ] + } + ], + "isList": true + } + ] + }, + "-ms-flow-into": { + "syntax": "[ none | ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 2, + "val": "custom-ident" + } + ] + } + ], + "isList": true + } + ] + }, + "-ms-grid-columns": { + "syntax": "none | | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "track-list" + } + ], + "r": [ + { + "typ": 2, + "val": "auto-track-list" + } + ] + } + ] + } + ] + }, + "-ms-grid-rows": { + "syntax": "none | | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "track-list" + } + ], + "r": [ + { + "typ": 2, + "val": "auto-track-list" + } + ] + } + ] + } + ] + }, + "-ms-high-contrast-adjust": { + "syntax": "auto | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-ms-hyphenate-limit-chars": { + "syntax": "auto | {1,3}", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 2, + "val": "integer", + "occurence": { + "min": 1, + "max": 3 + } + } + ] + } + ] + }, + "-ms-hyphenate-limit-lines": { + "syntax": "no-limit | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "no-limit" + } + ], + "r": [ + { + "typ": 2, + "val": "integer" + } + ] + } + ] + }, + "-ms-hyphenate-limit-zone": { + "syntax": " | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "percentage" + } + ], + "r": [ + { + "typ": 2, + "val": "length" + } + ] + } + ] + }, + "-ms-ime-align": { + "syntax": "auto | after", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 1, + "val": "after" + } + ] + } + ] + }, + "-ms-overflow-style": { + "syntax": "auto | none | scrollbar | -ms-autohiding-scrollbar", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbar" + } + ], + "r": [ + { + "typ": 1, + "val": "-ms-autohiding-scrollbar" + } + ] + } + ] + } + ] + } + ] + }, + "-ms-scrollbar-3dlight-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-arrow-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-base-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-darkshadow-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-face-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-highlight-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-shadow-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scrollbar-track-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-ms-scroll-chaining": { + "syntax": "chained | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "chained" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-ms-scroll-limit": { + "syntax": "<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>", + "ast": [ + { + "typ": 3, + "val": "-ms-scroll-limit-x-min" + }, + { + "typ": 20 + }, + { + "typ": 3, + "val": "-ms-scroll-limit-y-min" + }, + { + "typ": 20 + }, + { + "typ": 3, + "val": "-ms-scroll-limit-x-max" + }, + { + "typ": 20 + }, + { + "typ": 3, + "val": "-ms-scroll-limit-y-max" + } + ] + }, + "-ms-scroll-limit-x-max": { + "syntax": "auto | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 2, + "val": "length" + } + ] + } + ] + }, + "-ms-scroll-limit-x-min": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "length" + } + ] + }, + "-ms-scroll-limit-y-max": { + "syntax": "auto | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 2, + "val": "length" + } + ] + } + ] + }, + "-ms-scroll-limit-y-min": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "length" + } + ] + }, + "-ms-scroll-rails": { + "syntax": "none | railed", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 1, + "val": "railed" + } + ] + } + ] + }, + "-ms-scroll-snap-points-x": { + "syntax": "snapInterval( , ) | snapList( # )", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 18, + "val": "snapInterval", + "chi": [ + { + "typ": 2, + "val": "length-percentage" + }, + { + "typ": 10 + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "length-percentage" + } + ] + } + ], + "r": [ + { + "typ": 18, + "val": "snapList", + "chi": [ + { + "typ": 2, + "val": "length-percentage", + "isList": true + } + ] + } + ] + } + ] + }, + "-ms-scroll-snap-points-y": { + "syntax": "snapInterval( , ) | snapList( # )", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 18, + "val": "snapInterval", + "chi": [ + { + "typ": 2, + "val": "length-percentage" + }, + { + "typ": 10 + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "length-percentage" + } + ] + } + ], + "r": [ + { + "typ": 18, + "val": "snapList", + "chi": [ + { + "typ": 2, + "val": "length-percentage", + "isList": true + } + ] + } + ] + } + ] + }, + "-ms-scroll-snap-type": { + "syntax": "none | proximity | mandatory", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "proximity" + } + ], + "r": [ + { + "typ": 1, + "val": "mandatory" + } + ] + } + ] + } + ] + }, + "-ms-scroll-snap-x": { + "syntax": "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>", + "ast": [ + { + "typ": 3, + "val": "-ms-scroll-snap-type" + }, + { + "typ": 20 + }, + { + "typ": 3, + "val": "-ms-scroll-snap-points-x" + } + ] + }, + "-ms-scroll-snap-y": { + "syntax": "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>", + "ast": [ + { + "typ": 3, + "val": "-ms-scroll-snap-type" + }, + { + "typ": 20 + }, + { + "typ": 3, + "val": "-ms-scroll-snap-points-y" + } + ] + }, + "-ms-scroll-translation": { + "syntax": "none | vertical-to-horizontal", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 1, + "val": "vertical-to-horizontal" + } + ] + } + ] + }, + "-ms-text-autospace": { + "syntax": "none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "ideograph-alpha" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "ideograph-numeric" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "ideograph-parenthesis" + } + ], + "r": [ + { + "typ": 1, + "val": "ideograph-space" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "-ms-touch-select": { + "syntax": "grippers | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "grippers" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-ms-user-select": { + "syntax": "none | element | text", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "element" + } + ], + "r": [ + { + "typ": 1, + "val": "text" + } + ] + } + ] + } + ] + }, + "-ms-wrap-flow": { + "syntax": "auto | both | start | end | maximum | clear", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "both" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "start" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "end" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "maximum" + } + ], + "r": [ + { + "typ": 1, + "val": "clear" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "-ms-wrap-margin": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "length" + } + ] + }, + "-ms-wrap-through": { + "syntax": "wrap | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "wrap" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-moz-appearance": { + "syntax": "none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-arrow-down" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-arrow-next" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-arrow-previous" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-arrow-up" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-bevel" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-focus" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "caret" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "checkbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "checkbox-container" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "checkbox-label" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "checkmenuitem" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "dualbutton" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "groupbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "listbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "listitem" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menuarrow" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menubar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menucheckbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menuimage" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menuitem" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menuitemtext" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist-text" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist-textfield" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menupopup" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menuradio" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menuseparator" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "meterbar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "meterchunk" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "progressbar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "progressbar-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "progresschunk" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "progresschunk-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "radio" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "radio-container" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "radio-label" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "radiomenuitem" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "range" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "range-thumb" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "resizer" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "resizerpanel" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scale-horizontal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scalethumbend" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scalethumb-horizontal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scalethumbstart" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scalethumbtick" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scalethumb-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scale-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbarbutton-down" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbarbutton-left" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbarbutton-right" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbarbutton-up" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbarthumb-horizontal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbarthumb-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbartrack-horizontal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "scrollbartrack-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "searchfield" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "separator" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "sheet" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "spinner" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "spinner-downbutton" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "spinner-textfield" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "spinner-upbutton" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "splitter" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "statusbar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "statusbarpanel" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tab" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tabpanel" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tabpanels" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tab-scroll-arrow-back" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tab-scroll-arrow-forward" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "textfield" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "textfield-multiline" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "toolbar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "toolbarbutton" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "toolbarbutton-dropdown" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "toolbargripper" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "toolbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tooltip" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treeheader" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treeheadercell" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treeheadersortarrow" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treeitem" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treeline" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treetwisty" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treetwistyopen" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "treeview" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-mac-unified-toolbar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-borderless-glass" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-browsertabbar-toolbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-communicationstext" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-communications-toolbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-exclude-glass" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-glass" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-mediatext" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-win-media-toolbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-button-box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-button-box-maximized" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-button-close" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-button-maximize" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-button-minimize" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-button-restore" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-frame-bottom" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-frame-left" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-frame-right" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "-moz-window-titlebar" + } + ], + "r": [ + { + "typ": 1, + "val": "-moz-window-titlebar-maximized" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "-moz-binding": { + "syntax": " | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "url" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-moz-border-bottom-colors": { + "syntax": "+ | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "color", + "atLeastOnce": true + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-moz-border-left-colors": { + "syntax": "+ | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "color", + "atLeastOnce": true + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-moz-border-right-colors": { + "syntax": "+ | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "color", + "atLeastOnce": true + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-moz-border-top-colors": { + "syntax": "+ | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "color", + "atLeastOnce": true + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-moz-context-properties": { + "syntax": "none | [ fill | fill-opacity | stroke | stroke-opacity ]#", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "fill" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "fill-opacity" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "stroke" + } + ], + "r": [ + { + "typ": 1, + "val": "stroke-opacity" + } + ] + } + ] + } + ] + } + ], + "isList": true + } + ] + } + ] + }, + "-moz-float-edge": { + "syntax": "border-box | content-box | margin-box | padding-box", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "border-box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "content-box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "margin-box" + } + ], + "r": [ + { + "typ": 1, + "val": "padding-box" + } + ] + } + ] + } + ] + } + ] + }, + "-moz-force-broken-image-icon": { + "syntax": "0 | 1", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 19, + "val": 0 + } + ], + "r": [ + { + "typ": 19, + "val": 1 + } + ] + } + ] + }, + "-moz-image-region": { + "syntax": " | auto", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "shape" + } + ], + "r": [ + { + "typ": 1, + "val": "auto" + } + ] + } + ] + }, + "-moz-orient": { + "syntax": "inline | block | horizontal | vertical", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "inline" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "block" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "horizontal" + } + ], + "r": [ + { + "typ": 1, + "val": "vertical" + } + ] + } + ] + } + ] + } + ] + }, + "-moz-outline-radius": { + "syntax": "{1,4} [ / {1,4} ]?", + "ast": [ + { + "typ": 2, + "val": "outline-radius", + "occurence": { + "min": 1, + "max": 4 + } + }, + { + "typ": 20 + }, + { + "typ": 22, + "chi": [ + { + "typ": 24 + }, + { + "typ": 2, + "val": "outline-radius", + "occurence": { + "min": 1, + "max": 4 + } + } + ], + "isOptional": true + } + ] + }, + "-moz-outline-radius-bottomleft": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "outline-radius" + } + ] + }, + "-moz-outline-radius-bottomright": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "outline-radius" + } + ] + }, + "-moz-outline-radius-topleft": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "outline-radius" + } + ] + }, + "-moz-outline-radius-topright": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "outline-radius" + } + ] + }, + "-moz-stack-sizing": { + "syntax": "ignore | stretch-to-fit", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "ignore" + } + ], + "r": [ + { + "typ": 1, + "val": "stretch-to-fit" + } + ] + } + ] + }, + "-moz-text-blink": { + "syntax": "none | blink", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 1, + "val": "blink" + } + ] + } + ] + }, + "-moz-user-focus": { + "syntax": "ignore | normal | select-after | select-before | select-menu | select-same | select-all | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "ignore" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "normal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "select-after" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "select-before" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "select-menu" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "select-same" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "select-all" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "-moz-user-input": { + "syntax": "auto | none | enabled | disabled", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "enabled" + } + ], + "r": [ + { + "typ": 1, + "val": "disabled" + } + ] + } + ] + } + ] + } + ] + }, + "-moz-user-modify": { + "syntax": "read-only | read-write | write-only", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "read-only" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "read-write" + } + ], + "r": [ + { + "typ": 1, + "val": "write-only" + } + ] + } + ] + } + ] + }, + "-moz-window-dragging": { + "syntax": "drag | no-drag", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "drag" + } + ], + "r": [ + { + "typ": 1, + "val": "no-drag" + } + ] + } + ] + }, + "-moz-window-shadow": { + "syntax": "default | menu | tooltip | sheet | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "default" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menu" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "tooltip" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "sheet" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "-webkit-appearance": { + "syntax": "none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "button-bevel" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "caret" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "checkbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "default-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "inner-spin-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "listbox" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "listitem" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-controls-background" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-controls-fullscreen-background" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-current-time-display" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-enter-fullscreen-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-exit-fullscreen-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-fullscreen-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-mute-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-overlay-play-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-play-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-seek-back-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-seek-forward-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-slider" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-sliderthumb" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-time-remaining-display" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-toggle-closed-captions-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-volume-slider" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-volume-slider-container" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "media-volume-sliderthumb" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist-text" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "menulist-textfield" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "meter" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "progress-bar" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "progress-bar-value" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "push-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "radio" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "searchfield" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "searchfield-cancel-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "searchfield-decoration" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "searchfield-results-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "searchfield-results-decoration" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "slider-horizontal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "slider-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "sliderthumb-horizontal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "sliderthumb-vertical" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "square-button" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "textarea" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "textfield" + } + ], + "r": [ + { + "typ": 1, + "val": "-apple-pay-button" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "-webkit-border-before": { + "syntax": "<'border-width'> || <'border-style'> || ", + "ast": [ + { + "typ": 28, + "l": [ + { + "typ": 3, + "val": "border-width" + } + ], + "r": [ + { + "typ": 28, + "l": [ + { + "typ": 3, + "val": "border-style" + } + ], + "r": [ + { + "typ": 2, + "val": "color" + } + ] + } + ] + } + ] + }, + "-webkit-border-before-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-webkit-border-before-style": { + "syntax": "<'border-style'>", + "ast": [ + { + "typ": 3, + "val": "border-style" + } + ] + }, + "-webkit-border-before-width": { + "syntax": "<'border-width'>", + "ast": [ + { + "typ": 3, + "val": "border-width" + } + ] + }, + "-webkit-box-reflect": { + "syntax": "[ above | below | right | left ]? ? ?", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "above" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "below" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "right" + } + ], + "r": [ + { + "typ": 1, + "val": "left" + } + ] + } + ] + } + ] + } + ], + "isOptional": true + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "length", + "isOptional": true + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "image", + "isOptional": true + } + ] + }, + "-webkit-line-clamp": { + "syntax": "none | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 2, + "val": "integer" + } + ] + } + ] + }, + "-webkit-mask": { + "syntax": "[ || [ / ]? || || [ | border | padding | content | text ] || [ | border | padding | content ] ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 28, + "l": [ + { + "typ": 2, + "val": "mask-reference" + } + ], + "r": [ + { + "typ": 2, + "val": "position" + } + ] + }, + { + "typ": 20 + }, + { + "typ": 28, + "l": [ + { + "typ": 22, + "chi": [ + { + "typ": 24 + }, + { + "typ": 2, + "val": "bg-size" + } + ], + "isOptional": true + } + ], + "r": [ + { + "typ": 28, + "l": [ + { + "typ": 2, + "val": "repeat-style" + } + ], + "r": [ + { + "typ": 28, + "l": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "border" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "padding" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "content" + } + ], + "r": [ + { + "typ": 1, + "val": "text" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "r": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "border" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "padding" + } + ], + "r": [ + { + "typ": 1, + "val": "content" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "isList": true + } + ] + }, + "-webkit-mask-attachment": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "attachment", + "isList": true + } + ] + }, + "-webkit-mask-clip": { + "syntax": "[ | border | padding | content | text ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "border" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "padding" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "content" + } + ], + "r": [ + { + "typ": 1, + "val": "text" + } + ] + } + ] + } + ] + } + ] + } + ], + "isList": true + } + ] + }, + "-webkit-mask-composite": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "composite-style", + "isList": true + } + ] + }, + "-webkit-mask-image": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "mask-reference", + "isList": true + } + ] + }, + "-webkit-mask-origin": { + "syntax": "[ | border | padding | content ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "box" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "border" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "padding" + } + ], + "r": [ + { + "typ": 1, + "val": "content" + } + ] + } + ] + } + ] + } + ], + "isList": true + } + ] + }, + "-webkit-mask-position": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "position", + "isList": true + } + ] + }, + "-webkit-mask-position-x": { + "syntax": "[ | left | center | right ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "length-percentage" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "left" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "center" + } + ], + "r": [ + { + "typ": 1, + "val": "right" + } + ] + } + ] + } + ] + } + ], + "isList": true + } + ] + }, + "-webkit-mask-position-y": { + "syntax": "[ | top | center | bottom ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "length-percentage" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "top" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "center" + } + ], + "r": [ + { + "typ": 1, + "val": "bottom" + } + ] + } + ] + } + ] + } + ], + "isList": true + } + ] + }, + "-webkit-mask-repeat": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "repeat-style", + "isList": true + } + ] + }, + "-webkit-mask-repeat-x": { + "syntax": "repeat | no-repeat | space | round", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "repeat" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "no-repeat" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "space" + } + ], + "r": [ + { + "typ": 1, + "val": "round" + } + ] + } + ] + } + ] + } + ] + }, + "-webkit-mask-repeat-y": { + "syntax": "repeat | no-repeat | space | round", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "repeat" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "no-repeat" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "space" + } + ], + "r": [ + { + "typ": 1, + "val": "round" + } + ] + } + ] + } + ] + } + ] + }, + "-webkit-mask-size": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "bg-size", + "isList": true + } + ] + }, + "-webkit-overflow-scrolling": { + "syntax": "auto | touch", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 1, + "val": "touch" + } + ] + } + ] + }, + "-webkit-tap-highlight-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-webkit-text-fill-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-webkit-text-stroke": { + "syntax": " || ", + "ast": [ + { + "typ": 28, + "l": [ + { + "typ": 2, + "val": "length" + } + ], + "r": [ + { + "typ": 2, + "val": "color" + } + ] + } + ] + }, + "-webkit-text-stroke-color": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "color" + } + ] + }, + "-webkit-text-stroke-width": { + "syntax": "", + "ast": [ + { + "typ": 2, + "val": "length" + } + ] + }, + "-webkit-touch-callout": { + "syntax": "default | none", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "default" + } + ], + "r": [ + { + "typ": 1, + "val": "none" + } + ] + } + ] + }, + "-webkit-user-modify": { + "syntax": "read-only | read-write | read-write-plaintext-only", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "read-only" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "read-write" + } + ], + "r": [ + { + "typ": 1, + "val": "read-write-plaintext-only" + } + ] + } + ] + } + ] + }, + "accent-color": { + "syntax": "auto | ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 2, + "val": "color" + } + ] + } + ] + }, + "align-content": { + "syntax": "normal | | | ? ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "normal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "baseline-position" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "content-distribution" + } + ], + "r": [ + { + "typ": 2, + "val": "overflow-position", + "isOptional": true + } + ] + } + ] + } + ] + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "content-position" + } + ] + }, + "align-items": { + "syntax": "normal | stretch | | [ ? ]", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "normal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "stretch" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "baseline-position" + } + ], + "r": [ + { + "typ": 22, + "chi": [ + { + "typ": 2, + "val": "overflow-position", + "isOptional": true + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "self-position" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "align-self": { + "syntax": "auto | normal | stretch | | ? ", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "auto" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "normal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "stretch" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "baseline-position" + } + ], + "r": [ + { + "typ": 2, + "val": "overflow-position", + "isOptional": true + } + ] + } + ] + } + ] + } + ] + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "self-position" + } + ] + }, + "align-tracks": { + "syntax": "[ normal | | | ? ]#", + "ast": [ + { + "typ": 22, + "chi": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "normal" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "baseline-position" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 2, + "val": "content-distribution" + } + ], + "r": [ + { + "typ": 2, + "val": "overflow-position", + "isOptional": true + } + ] + } + ] + } + ] + }, + { + "typ": 20 + }, + { + "typ": 2, + "val": "content-position" + } + ], + "isList": true + } + ] + }, + "all": { + "syntax": "initial | inherit | unset | revert | revert-layer", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "initial" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "inherit" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "unset" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "revert" + } + ], + "r": [ + { + "typ": 1, + "val": "revert-layer" + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "anchor-name": { + "syntax": "none | #", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 2, + "val": "dashed-ident", + "isList": true + } + ] + } + ] + }, + "anchor-scope": { + "syntax": "none | all | #", + "ast": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "none" + } + ], + "r": [ + { + "typ": 27, + "l": [ + { + "typ": 1, + "val": "all" + } + ], + "r": [ + { + "typ": 2, + "val": "dashed-ident", + "isList": true + } + ] + } + ] + } + ] + }, + "animation": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "single-animation", + "isList": true + } + ] + }, + "animation-composition": { + "syntax": "#", + "ast": [ + { + "typ": 2, + "val": "single-animation-composition", + "isList": true + } + ] + }, + "animation-delay": { + "syntax": "