uivisor 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/overlay/index.js +58 -908
  2. package/package.json +1 -1
@@ -737,609 +737,6 @@ function collectVarNames(rule, out) {
737
737
  if (inner) for (const r of Array.from(inner)) collectVarNames(r, out);
738
738
  }
739
739
 
740
- // src/overlay/cssData.ts
741
- var CSS_PROPERTY_DATA = [
742
- { "property": "display", "category": "Layout", "type": "enum", "keywords": ["block", "inline", "inline-block", "flex", "inline-flex", "grid", "inline-grid", "flow-root", "none", "contents", "table", "inline-table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-cell", "table-column-group", "table-column", "table-caption", "list-item", "ruby"] },
743
- { "property": "position", "category": "Layout", "type": "enum", "keywords": ["static", "relative", "absolute", "fixed", "sticky"] },
744
- { "property": "top", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "box": "inset" },
745
- { "property": "right", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "box": "inset" },
746
- { "property": "bottom", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "box": "inset" },
747
- { "property": "left", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "box": "inset" },
748
- { "property": "inset", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "shorthand": true },
749
- { "property": "inset-block", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "shorthand": true },
750
- { "property": "inset-inline", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"], "shorthand": true },
751
- { "property": "inset-block-start", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"] },
752
- { "property": "inset-block-end", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"] },
753
- { "property": "inset-inline-start", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"] },
754
- { "property": "inset-inline-end", "category": "Layout", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw"] },
755
- { "property": "float", "category": "Layout", "type": "enum", "keywords": ["left", "right", "none", "inline-start", "inline-end"] },
756
- { "property": "clear", "category": "Layout", "type": "enum", "keywords": ["none", "left", "right", "both", "inline-start", "inline-end"] },
757
- { "property": "visibility", "category": "Layout", "type": "enum", "keywords": ["visible", "hidden", "collapse"], "inherited": true },
758
- { "property": "z-index", "category": "Layout", "type": "integer", "keywords": ["auto"] },
759
- { "property": "box-sizing", "category": "Layout", "type": "enum", "keywords": ["content-box", "border-box"] },
760
- { "property": "overflow", "category": "Layout", "type": "enum", "keywords": ["visible", "hidden", "clip", "scroll", "auto"], "shorthand": true },
761
- { "property": "overflow-x", "category": "Layout", "type": "enum", "keywords": ["visible", "hidden", "clip", "scroll", "auto"] },
762
- { "property": "overflow-y", "category": "Layout", "type": "enum", "keywords": ["visible", "hidden", "clip", "scroll", "auto"] },
763
- { "property": "overflow-block", "category": "Layout", "type": "enum", "keywords": ["visible", "hidden", "clip", "scroll", "auto"] },
764
- { "property": "overflow-inline", "category": "Layout", "type": "enum", "keywords": ["visible", "hidden", "clip", "scroll", "auto"] },
765
- { "property": "overflow-clip-margin", "category": "Layout", "type": "length", "keywords": ["content-box", "padding-box", "border-box"], "units": ["px", "em", "rem"] },
766
- { "property": "isolation", "category": "Layout", "type": "enum", "keywords": ["auto", "isolate"] },
767
- { "property": "contain", "category": "Layout", "type": "enum", "keywords": ["none", "strict", "content", "size", "inline-size", "layout", "style", "paint"] },
768
- { "property": "content-visibility", "category": "Layout", "type": "enum", "keywords": ["visible", "auto", "hidden"] },
769
- { "property": "contain-intrinsic-size", "category": "Layout", "type": "length", "keywords": ["none", "auto"], "units": ["px", "em", "rem"], "shorthand": true },
770
- { "property": "contain-intrinsic-width", "category": "Layout", "type": "length", "keywords": ["none", "auto"], "units": ["px", "em", "rem"] },
771
- { "property": "contain-intrinsic-height", "category": "Layout", "type": "length", "keywords": ["none", "auto"], "units": ["px", "em", "rem"] },
772
- { "property": "contain-intrinsic-block-size", "category": "Layout", "type": "length", "keywords": ["none", "auto"], "units": ["px", "em", "rem"] },
773
- { "property": "contain-intrinsic-inline-size", "category": "Layout", "type": "length", "keywords": ["none", "auto"], "units": ["px", "em", "rem"] },
774
- { "property": "order", "category": "Layout", "type": "integer" },
775
- { "property": "flex", "category": "Flexbox", "type": "shorthand", "shorthand": true },
776
- { "property": "flex-grow", "category": "Flexbox", "type": "number" },
777
- { "property": "flex-shrink", "category": "Flexbox", "type": "number" },
778
- { "property": "flex-basis", "category": "Flexbox", "type": "length", "keywords": ["auto", "content", "max-content", "min-content", "fit-content"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
779
- { "property": "flex-direction", "category": "Flexbox", "type": "enum", "keywords": ["row", "row-reverse", "column", "column-reverse"] },
780
- { "property": "flex-wrap", "category": "Flexbox", "type": "enum", "keywords": ["nowrap", "wrap", "wrap-reverse"] },
781
- { "property": "flex-flow", "category": "Flexbox", "type": "shorthand", "keywords": ["row", "row-reverse", "column", "column-reverse", "nowrap", "wrap", "wrap-reverse"], "shorthand": true },
782
- { "property": "justify-content", "category": "Flexbox", "type": "enum", "keywords": ["normal", "flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "start", "end", "left", "right", "stretch", "safe", "unsafe"] },
783
- { "property": "align-items", "category": "Flexbox", "type": "enum", "keywords": ["normal", "stretch", "flex-start", "flex-end", "center", "baseline", "first baseline", "last baseline", "start", "end", "self-start", "self-end", "safe", "unsafe", "anchor-center"] },
784
- { "property": "align-content", "category": "Flexbox", "type": "enum", "keywords": ["normal", "flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "stretch", "start", "end", "baseline", "first baseline", "last baseline", "safe", "unsafe"] },
785
- { "property": "align-self", "category": "Flexbox", "type": "enum", "keywords": ["auto", "normal", "stretch", "flex-start", "flex-end", "center", "baseline", "first baseline", "last baseline", "start", "end", "self-start", "self-end", "safe", "unsafe", "anchor-center"] },
786
- { "property": "justify-self", "category": "Flexbox", "type": "enum", "keywords": ["auto", "normal", "stretch", "flex-start", "flex-end", "center", "baseline", "first baseline", "last baseline", "start", "end", "self-start", "self-end", "left", "right", "safe", "unsafe", "anchor-center"] },
787
- { "property": "justify-items", "category": "Flexbox", "type": "enum", "keywords": ["normal", "stretch", "flex-start", "flex-end", "center", "baseline", "first baseline", "last baseline", "start", "end", "self-start", "self-end", "left", "right", "legacy", "safe", "unsafe", "anchor-center"] },
788
- { "property": "place-content", "category": "Flexbox", "type": "shorthand", "keywords": ["normal", "stretch", "flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "start", "end", "left", "right", "baseline", "first baseline", "last baseline"], "shorthand": true },
789
- { "property": "place-items", "category": "Flexbox", "type": "shorthand", "keywords": ["normal", "stretch", "flex-start", "flex-end", "center", "baseline", "first baseline", "last baseline", "start", "end", "self-start", "self-end", "left", "right", "legacy"], "shorthand": true },
790
- { "property": "place-self", "category": "Flexbox", "type": "shorthand", "keywords": ["auto", "normal", "stretch", "flex-start", "flex-end", "center", "baseline", "first baseline", "last baseline", "start", "end", "self-start", "self-end"], "shorthand": true },
791
- { "property": "gap", "category": "Flexbox", "type": "shorthand", "keywords": ["normal"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
792
- { "property": "row-gap", "category": "Flexbox", "type": "length", "keywords": ["normal"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
793
- { "property": "column-gap", "category": "Flexbox", "type": "length", "keywords": ["normal"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
794
- { "property": "grid", "category": "Grid", "type": "shorthand", "shorthand": true },
795
- { "property": "grid-template", "category": "Grid", "type": "shorthand", "shorthand": true },
796
- { "property": "grid-template-columns", "category": "Grid", "type": "string", "keywords": ["none", "min-content", "max-content", "auto", "subgrid", "masonry"], "units": ["px", "em", "rem", "%", "fr", "vh", "vw", "ch"] },
797
- { "property": "grid-template-rows", "category": "Grid", "type": "string", "keywords": ["none", "min-content", "max-content", "auto", "subgrid", "masonry"], "units": ["px", "em", "rem", "%", "fr", "vh", "vw", "ch"] },
798
- { "property": "grid-template-areas", "category": "Grid", "type": "string", "keywords": ["none"] },
799
- { "property": "grid-auto-columns", "category": "Grid", "type": "length", "keywords": ["auto", "min-content", "max-content"], "units": ["px", "em", "rem", "%", "fr", "vh", "vw", "ch"] },
800
- { "property": "grid-auto-rows", "category": "Grid", "type": "length", "keywords": ["auto", "min-content", "max-content"], "units": ["px", "em", "rem", "%", "fr", "vh", "vw", "ch"] },
801
- { "property": "grid-auto-flow", "category": "Grid", "type": "enum", "keywords": ["row", "column", "dense"] },
802
- { "property": "grid-column", "category": "Grid", "type": "shorthand", "keywords": ["auto", "span"], "shorthand": true },
803
- { "property": "grid-row", "category": "Grid", "type": "shorthand", "keywords": ["auto", "span"], "shorthand": true },
804
- { "property": "grid-column-start", "category": "Grid", "type": "string", "keywords": ["auto", "span"] },
805
- { "property": "grid-column-end", "category": "Grid", "type": "string", "keywords": ["auto", "span"] },
806
- { "property": "grid-row-start", "category": "Grid", "type": "string", "keywords": ["auto", "span"] },
807
- { "property": "grid-row-end", "category": "Grid", "type": "string", "keywords": ["auto", "span"] },
808
- { "property": "grid-area", "category": "Grid", "type": "shorthand", "keywords": ["auto", "span"], "shorthand": true },
809
- { "property": "margin", "category": "Spacing", "type": "shorthand", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin", "shorthand": true },
810
- { "property": "margin-top", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
811
- { "property": "margin-right", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
812
- { "property": "margin-bottom", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
813
- { "property": "margin-left", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
814
- { "property": "margin-block", "category": "Spacing", "type": "shorthand", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin", "shorthand": true },
815
- { "property": "margin-block-start", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
816
- { "property": "margin-block-end", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
817
- { "property": "margin-inline", "category": "Spacing", "type": "shorthand", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin", "shorthand": true },
818
- { "property": "margin-inline-start", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
819
- { "property": "margin-inline-end", "category": "Spacing", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
820
- { "property": "padding", "category": "Spacing", "type": "shorthand", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding", "shorthand": true },
821
- { "property": "padding-top", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
822
- { "property": "padding-right", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
823
- { "property": "padding-bottom", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
824
- { "property": "padding-left", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
825
- { "property": "padding-block", "category": "Spacing", "type": "shorthand", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding", "shorthand": true },
826
- { "property": "padding-block-start", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
827
- { "property": "padding-block-end", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
828
- { "property": "padding-inline", "category": "Spacing", "type": "shorthand", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding", "shorthand": true },
829
- { "property": "padding-inline-start", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
830
- { "property": "padding-inline-end", "category": "Spacing", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
831
- { "property": "width", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
832
- { "property": "height", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
833
- { "property": "min-width", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
834
- { "property": "max-width", "category": "Sizing", "type": "length", "keywords": ["none", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
835
- { "property": "min-height", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
836
- { "property": "max-height", "category": "Sizing", "type": "length", "keywords": ["none", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
837
- { "property": "aspect-ratio", "category": "Sizing", "type": "number", "keywords": ["auto"] },
838
- { "property": "block-size", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
839
- { "property": "inline-size", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
840
- { "property": "min-block-size", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
841
- { "property": "max-block-size", "category": "Sizing", "type": "length", "keywords": ["none", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
842
- { "property": "min-inline-size", "category": "Sizing", "type": "length", "keywords": ["auto", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
843
- { "property": "max-inline-size", "category": "Sizing", "type": "length", "keywords": ["none", "max-content", "min-content", "fit-content", "stretch"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
844
- { "property": "object-fit", "category": "Sizing", "type": "enum", "keywords": ["fill", "contain", "cover", "none", "scale-down"] },
845
- { "property": "object-position", "category": "Sizing", "type": "length", "keywords": ["left", "right", "top", "bottom", "center"], "units": ["px", "%", "em", "rem"] },
846
- { "property": "border", "category": "Border", "type": "shorthand", "shorthand": true },
847
- { "property": "border-width", "category": "Border", "type": "shorthand", "shorthand": true },
848
- { "property": "border-style", "category": "Border", "type": "shorthand", "shorthand": true },
849
- { "property": "border-color", "category": "Border", "type": "shorthand", "shorthand": true },
850
- { "property": "border-top", "category": "Border", "type": "shorthand", "shorthand": true },
851
- { "property": "border-right", "category": "Border", "type": "shorthand", "shorthand": true },
852
- { "property": "border-bottom", "category": "Border", "type": "shorthand", "shorthand": true },
853
- { "property": "border-left", "category": "Border", "type": "shorthand", "shorthand": true },
854
- { "property": "border-top-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "border-width" },
855
- { "property": "border-right-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "border-width" },
856
- { "property": "border-bottom-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "border-width" },
857
- { "property": "border-left-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "border-width" },
858
- { "property": "border-top-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"], "box": "border-style" },
859
- { "property": "border-right-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"], "box": "border-style" },
860
- { "property": "border-bottom-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"], "box": "border-style" },
861
- { "property": "border-left-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"], "box": "border-style" },
862
- { "property": "border-top-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"], "box": "border-color" },
863
- { "property": "border-right-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"], "box": "border-color" },
864
- { "property": "border-bottom-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"], "box": "border-color" },
865
- { "property": "border-left-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"], "box": "border-color" },
866
- { "property": "border-block", "category": "Border", "type": "shorthand", "shorthand": true },
867
- { "property": "border-block-start", "category": "Border", "type": "shorthand", "shorthand": true },
868
- { "property": "border-block-end", "category": "Border", "type": "shorthand", "shorthand": true },
869
- { "property": "border-inline", "category": "Border", "type": "shorthand", "shorthand": true },
870
- { "property": "border-inline-start", "category": "Border", "type": "shorthand", "shorthand": true },
871
- { "property": "border-inline-end", "category": "Border", "type": "shorthand", "shorthand": true },
872
- { "property": "border-block-width", "category": "Border", "type": "shorthand", "shorthand": true },
873
- { "property": "border-inline-width", "category": "Border", "type": "shorthand", "shorthand": true },
874
- { "property": "border-block-style", "category": "Border", "type": "shorthand", "shorthand": true },
875
- { "property": "border-inline-style", "category": "Border", "type": "shorthand", "shorthand": true },
876
- { "property": "border-block-color", "category": "Border", "type": "shorthand", "shorthand": true },
877
- { "property": "border-inline-color", "category": "Border", "type": "shorthand", "shorthand": true },
878
- { "property": "border-block-start-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"] },
879
- { "property": "border-block-end-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"] },
880
- { "property": "border-inline-start-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"] },
881
- { "property": "border-inline-end-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"] },
882
- { "property": "border-block-start-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] },
883
- { "property": "border-block-end-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] },
884
- { "property": "border-inline-start-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] },
885
- { "property": "border-inline-end-style", "category": "Border", "type": "enum", "keywords": ["none", "hidden", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] },
886
- { "property": "border-block-start-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"] },
887
- { "property": "border-block-end-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"] },
888
- { "property": "border-inline-start-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"] },
889
- { "property": "border-inline-end-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "transparent"] },
890
- { "property": "border-radius", "category": "Border", "type": "shorthand", "shorthand": true },
891
- { "property": "border-top-left-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "radius" },
892
- { "property": "border-top-right-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "radius" },
893
- { "property": "border-bottom-right-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "radius" },
894
- { "property": "border-bottom-left-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "radius" },
895
- { "property": "border-start-start-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
896
- { "property": "border-start-end-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
897
- { "property": "border-end-start-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
898
- { "property": "border-end-end-radius", "category": "Border", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
899
- { "property": "border-image", "category": "Border", "type": "shorthand", "shorthand": true },
900
- { "property": "border-image-source", "category": "Border", "type": "image", "keywords": ["none"] },
901
- { "property": "border-image-slice", "category": "Border", "type": "number", "keywords": ["fill"], "units": ["%"] },
902
- { "property": "border-image-width", "category": "Border", "type": "number", "keywords": ["auto"], "units": ["px", "%", "em", "rem"] },
903
- { "property": "border-image-outset", "category": "Border", "type": "number", "units": ["px", "em", "rem"] },
904
- { "property": "border-image-repeat", "category": "Border", "type": "enum", "keywords": ["stretch", "repeat", "round", "space"] },
905
- { "property": "outline", "category": "Border", "type": "shorthand", "shorthand": true },
906
- { "property": "outline-width", "category": "Border", "type": "length", "keywords": ["thin", "medium", "thick"], "units": ["px", "em", "rem", "vh", "vw", "ch"] },
907
- { "property": "outline-style", "category": "Border", "type": "enum", "keywords": ["auto", "none", "dotted", "dashed", "solid", "double", "groove", "ridge", "inset", "outset"] },
908
- { "property": "outline-color", "category": "Border", "type": "color", "keywords": ["currentcolor", "invert"] },
909
- { "property": "outline-offset", "category": "Border", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"] },
910
- { "property": "background", "category": "Background", "type": "shorthand", "shorthand": true },
911
- { "property": "background-color", "category": "Background", "type": "color" },
912
- { "property": "background-image", "category": "Background", "type": "image" },
913
- { "property": "background-position", "category": "Background", "type": "shorthand", "keywords": ["top", "right", "bottom", "left", "center"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
914
- { "property": "background-position-x", "category": "Background", "type": "length", "keywords": ["left", "right", "center"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
915
- { "property": "background-position-y", "category": "Background", "type": "length", "keywords": ["top", "bottom", "center"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
916
- { "property": "background-size", "category": "Background", "type": "shorthand", "keywords": ["auto", "cover", "contain"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
917
- { "property": "background-repeat", "category": "Background", "type": "enum", "keywords": ["repeat", "repeat-x", "repeat-y", "no-repeat", "space", "round"] },
918
- { "property": "background-attachment", "category": "Background", "type": "enum", "keywords": ["scroll", "fixed", "local"] },
919
- { "property": "background-clip", "category": "Background", "type": "enum", "keywords": ["border-box", "padding-box", "content-box", "text"] },
920
- { "property": "background-origin", "category": "Background", "type": "enum", "keywords": ["border-box", "padding-box", "content-box"] },
921
- { "property": "background-blend-mode", "category": "Background", "type": "enum", "keywords": ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"] },
922
- { "property": "color", "category": "Typography", "type": "color", "inherited": true },
923
- { "property": "opacity", "category": "Typography", "type": "number" },
924
- { "property": "font", "category": "Typography", "type": "shorthand", "inherited": true, "shorthand": true },
925
- { "property": "font-family", "category": "Typography", "type": "string", "inherited": true },
926
- { "property": "font-size", "category": "Typography", "type": "length", "keywords": ["xx-small", "x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large", "larger", "smaller"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "inherited": true },
927
- { "property": "font-size-adjust", "category": "Typography", "type": "number", "keywords": ["none", "ex-height", "cap-height", "ch-width", "ic-width", "ic-height", "from-font"], "inherited": true },
928
- { "property": "font-weight", "category": "Typography", "type": "integer", "keywords": ["normal", "bold", "bolder", "lighter"], "inherited": true },
929
- { "property": "font-style", "category": "Typography", "type": "enum", "keywords": ["normal", "italic", "oblique"], "inherited": true },
930
- { "property": "font-variant", "category": "Typography", "type": "shorthand", "keywords": ["normal", "none", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"], "inherited": true, "shorthand": true },
931
- { "property": "font-variant-caps", "category": "Typography", "type": "enum", "keywords": ["normal", "small-caps", "all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"], "inherited": true },
932
- { "property": "font-variant-numeric", "category": "Typography", "type": "enum", "keywords": ["normal", "ordinal", "slashed-zero", "lining-nums", "oldstyle-nums", "proportional-nums", "tabular-nums", "diagonal-fractions", "stacked-fractions"], "inherited": true },
933
- { "property": "font-variant-ligatures", "category": "Typography", "type": "enum", "keywords": ["normal", "none", "common-ligatures", "no-common-ligatures", "discretionary-ligatures", "no-discretionary-ligatures", "historical-ligatures", "no-historical-ligatures", "contextual", "no-contextual"], "inherited": true },
934
- { "property": "font-variant-east-asian", "category": "Typography", "type": "enum", "keywords": ["normal", "ruby", "jis78", "jis83", "jis90", "jis04", "simplified", "traditional", "full-width", "proportional-width"], "inherited": true },
935
- { "property": "font-variant-position", "category": "Typography", "type": "enum", "keywords": ["normal", "sub", "super"], "inherited": true },
936
- { "property": "font-stretch", "category": "Typography", "type": "percentage", "keywords": ["normal", "ultra-condensed", "extra-condensed", "condensed", "semi-condensed", "semi-expanded", "expanded", "extra-expanded", "ultra-expanded"], "units": ["%"], "inherited": true },
937
- { "property": "font-feature-settings", "category": "Typography", "type": "string", "keywords": ["normal"], "inherited": true },
938
- { "property": "font-variation-settings", "category": "Typography", "type": "string", "keywords": ["normal"], "inherited": true },
939
- { "property": "font-kerning", "category": "Typography", "type": "enum", "keywords": ["auto", "normal", "none"], "inherited": true },
940
- { "property": "font-optical-sizing", "category": "Typography", "type": "enum", "keywords": ["auto", "none"], "inherited": true },
941
- { "property": "font-synthesis", "category": "Typography", "type": "enum", "keywords": ["none", "weight", "style", "small-caps", "position"], "inherited": true, "shorthand": true },
942
- { "property": "line-height", "category": "Typography", "type": "number", "keywords": ["normal"], "units": ["px", "%", "em", "rem"], "inherited": true },
943
- { "property": "letter-spacing", "category": "Typography", "type": "length", "keywords": ["normal"], "units": ["px", "em", "rem", "ch"], "inherited": true },
944
- { "property": "word-spacing", "category": "Typography", "type": "length", "keywords": ["normal"], "units": ["px", "%", "em", "rem"], "inherited": true },
945
- { "property": "text-align", "category": "Typography", "type": "enum", "keywords": ["start", "end", "left", "right", "center", "justify", "match-parent", "justify-all"], "inherited": true },
946
- { "property": "text-align-last", "category": "Typography", "type": "enum", "keywords": ["auto", "start", "end", "left", "right", "center", "justify"], "inherited": true },
947
- { "property": "text-justify", "category": "Typography", "type": "enum", "keywords": ["auto", "none", "inter-word", "inter-character"], "inherited": true },
948
- { "property": "text-decoration", "category": "Typography", "type": "shorthand", "shorthand": true },
949
- { "property": "text-decoration-line", "category": "Typography", "type": "enum", "keywords": ["none", "underline", "overline", "line-through", "blink"] },
950
- { "property": "text-decoration-color", "category": "Typography", "type": "color" },
951
- { "property": "text-decoration-style", "category": "Typography", "type": "enum", "keywords": ["solid", "double", "dotted", "dashed", "wavy"] },
952
- { "property": "text-decoration-thickness", "category": "Typography", "type": "length", "keywords": ["auto", "from-font"], "units": ["px", "%", "em", "rem"] },
953
- { "property": "text-decoration-skip-ink", "category": "Typography", "type": "enum", "keywords": ["auto", "none", "all"], "inherited": true },
954
- { "property": "text-underline-offset", "category": "Typography", "type": "length", "keywords": ["auto"], "units": ["px", "%", "em", "rem"], "inherited": true },
955
- { "property": "text-underline-position", "category": "Typography", "type": "enum", "keywords": ["auto", "from-font", "under", "left", "right"], "inherited": true },
956
- { "property": "text-emphasis", "category": "Typography", "type": "shorthand", "inherited": true, "shorthand": true },
957
- { "property": "text-emphasis-style", "category": "Typography", "type": "enum", "keywords": ["none", "filled", "open", "dot", "circle", "double-circle", "triangle", "sesame"], "inherited": true },
958
- { "property": "text-emphasis-color", "category": "Typography", "type": "color", "inherited": true },
959
- { "property": "text-emphasis-position", "category": "Typography", "type": "enum", "keywords": ["over", "under", "left", "right"], "inherited": true },
960
- { "property": "text-transform", "category": "Typography", "type": "enum", "keywords": ["none", "capitalize", "uppercase", "lowercase", "full-width", "full-size-kana"], "inherited": true },
961
- { "property": "text-indent", "category": "Typography", "type": "length", "keywords": ["hanging", "each-line"], "units": ["px", "%", "em", "rem"], "inherited": true },
962
- { "property": "text-overflow", "category": "Typography", "type": "enum", "keywords": ["clip", "ellipsis"] },
963
- { "property": "text-shadow", "category": "Typography", "type": "string", "keywords": ["none"], "inherited": true },
964
- { "property": "white-space", "category": "Typography", "type": "enum", "keywords": ["normal", "nowrap", "pre", "pre-wrap", "pre-line", "break-spaces"], "inherited": true },
965
- { "property": "white-space-collapse", "category": "Typography", "type": "enum", "keywords": ["collapse", "preserve", "preserve-breaks", "preserve-spaces", "break-spaces"], "inherited": true },
966
- { "property": "text-wrap", "category": "Typography", "type": "enum", "keywords": ["wrap", "nowrap", "balance", "pretty", "stable"], "inherited": true },
967
- { "property": "text-wrap-mode", "category": "Typography", "type": "enum", "keywords": ["wrap", "nowrap"], "inherited": true },
968
- { "property": "text-wrap-style", "category": "Typography", "type": "enum", "keywords": ["auto", "balance", "pretty", "stable"], "inherited": true },
969
- { "property": "word-break", "category": "Typography", "type": "enum", "keywords": ["normal", "break-all", "keep-all", "break-word", "auto-phrase"], "inherited": true },
970
- { "property": "line-break", "category": "Typography", "type": "enum", "keywords": ["auto", "loose", "normal", "strict", "anywhere"], "inherited": true },
971
- { "property": "overflow-wrap", "category": "Typography", "type": "enum", "keywords": ["normal", "break-word", "anywhere"], "inherited": true },
972
- { "property": "hyphens", "category": "Typography", "type": "enum", "keywords": ["none", "manual", "auto"], "inherited": true },
973
- { "property": "hyphenate-character", "category": "Typography", "type": "string", "keywords": ["auto"], "inherited": true },
974
- { "property": "direction", "category": "Typography", "type": "enum", "keywords": ["ltr", "rtl"], "inherited": true },
975
- { "property": "unicode-bidi", "category": "Typography", "type": "enum", "keywords": ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"] },
976
- { "property": "writing-mode", "category": "Typography", "type": "enum", "keywords": ["horizontal-tb", "vertical-rl", "vertical-lr", "sideways-rl", "sideways-lr"], "inherited": true },
977
- { "property": "text-orientation", "category": "Typography", "type": "enum", "keywords": ["mixed", "upright", "sideways"], "inherited": true },
978
- { "property": "text-combine-upright", "category": "Typography", "type": "enum", "keywords": ["none", "all", "digits"], "inherited": true },
979
- { "property": "vertical-align", "category": "Typography", "type": "length", "keywords": ["baseline", "sub", "super", "text-top", "text-bottom", "middle", "top", "bottom"], "units": ["px", "%", "em", "rem"] },
980
- { "property": "tab-size", "category": "Typography", "type": "number", "units": ["px", "em", "rem"], "inherited": true },
981
- { "property": "quotes", "category": "Typography", "type": "string", "keywords": ["none", "auto"], "inherited": true },
982
- { "property": "hanging-punctuation", "category": "Typography", "type": "enum", "keywords": ["none", "first", "last", "force-end", "allow-end"], "inherited": true },
983
- { "property": "text-rendering", "category": "Typography", "type": "enum", "keywords": ["auto", "optimizeSpeed", "optimizeLegibility", "geometricPrecision"], "inherited": true },
984
- { "property": "-webkit-text-stroke", "category": "Typography", "type": "shorthand", "shorthand": true },
985
- { "property": "-webkit-text-stroke-width", "category": "Typography", "type": "length", "units": ["px", "em", "rem"] },
986
- { "property": "-webkit-text-stroke-color", "category": "Typography", "type": "color" },
987
- { "property": "-webkit-text-fill-color", "category": "Typography", "type": "color" },
988
- { "property": "-webkit-line-clamp", "category": "Typography", "type": "integer", "keywords": ["none"] },
989
- { "property": "caret-color", "category": "Typography", "type": "color", "keywords": ["auto"], "inherited": true },
990
- { "property": "box-shadow", "category": "Effects", "type": "string", "keywords": ["none"] },
991
- { "property": "filter", "category": "Effects", "type": "string", "keywords": ["none"] },
992
- { "property": "backdrop-filter", "category": "Effects", "type": "string", "keywords": ["none"] },
993
- { "property": "mix-blend-mode", "category": "Effects", "type": "enum", "keywords": ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity", "plus-darker", "plus-lighter"] },
994
- { "property": "clip-path", "category": "Effects", "type": "string", "keywords": ["none", "border-box", "padding-box", "content-box", "margin-box", "fill-box", "stroke-box", "view-box"] },
995
- { "property": "mask", "category": "Effects", "type": "shorthand", "shorthand": true },
996
- { "property": "mask-image", "category": "Effects", "type": "image", "keywords": ["none"] },
997
- { "property": "mask-mode", "category": "Effects", "type": "enum", "keywords": ["alpha", "luminance", "match-source"] },
998
- { "property": "mask-repeat", "category": "Effects", "type": "enum", "keywords": ["repeat", "repeat-x", "repeat-y", "space", "round", "no-repeat"] },
999
- { "property": "mask-position", "category": "Effects", "type": "length", "keywords": ["top", "bottom", "left", "right", "center"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
1000
- { "property": "mask-clip", "category": "Effects", "type": "enum", "keywords": ["border-box", "padding-box", "content-box", "fill-box", "stroke-box", "view-box", "no-clip"] },
1001
- { "property": "mask-origin", "category": "Effects", "type": "enum", "keywords": ["border-box", "padding-box", "content-box", "fill-box", "stroke-box", "view-box"] },
1002
- { "property": "mask-size", "category": "Effects", "type": "length", "keywords": ["auto", "cover", "contain"], "units": ["px", "%", "em", "rem", "vh", "vw", "ch"] },
1003
- { "property": "mask-composite", "category": "Effects", "type": "enum", "keywords": ["add", "subtract", "intersect", "exclude"] },
1004
- { "property": "mask-type", "category": "Effects", "type": "enum", "keywords": ["luminance", "alpha"] },
1005
- { "property": "cursor", "category": "Effects", "type": "enum", "keywords": ["auto", "default", "none", "context-menu", "help", "pointer", "progress", "wait", "cell", "crosshair", "text", "vertical-text", "alias", "copy", "move", "no-drop", "not-allowed", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out"], "inherited": true },
1006
- { "property": "accent-color", "category": "Effects", "type": "color", "keywords": ["auto"], "inherited": true },
1007
- { "property": "color-scheme", "category": "Effects", "type": "enum", "keywords": ["normal", "light", "dark", "only"], "inherited": true },
1008
- { "property": "transform", "category": "Transform", "type": "string" },
1009
- { "property": "transform-origin", "category": "Transform", "type": "string" },
1010
- { "property": "transform-style", "category": "Transform", "type": "enum", "keywords": ["flat", "preserve-3d"] },
1011
- { "property": "transform-box", "category": "Transform", "type": "enum", "keywords": ["content-box", "border-box", "fill-box", "stroke-box", "view-box"] },
1012
- { "property": "translate", "category": "Transform", "type": "string" },
1013
- { "property": "rotate", "category": "Transform", "type": "string" },
1014
- { "property": "scale", "category": "Transform", "type": "string" },
1015
- { "property": "perspective", "category": "Transform", "type": "length", "keywords": ["none"], "units": ["px", "em", "rem", "vh", "vw", "ch"] },
1016
- { "property": "perspective-origin", "category": "Transform", "type": "string" },
1017
- { "property": "backface-visibility", "category": "Transform", "type": "enum", "keywords": ["visible", "hidden"] },
1018
- { "property": "transition", "category": "Animation", "type": "shorthand", "shorthand": true },
1019
- { "property": "transition-property", "category": "Animation", "type": "enum", "keywords": ["none", "all"] },
1020
- { "property": "transition-duration", "category": "Animation", "type": "time", "units": ["s", "ms"] },
1021
- { "property": "transition-timing-function", "category": "Animation", "type": "enum", "keywords": ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps", "cubic-bezier"] },
1022
- { "property": "transition-delay", "category": "Animation", "type": "time", "units": ["s", "ms"] },
1023
- { "property": "transition-behavior", "category": "Animation", "type": "enum", "keywords": ["normal", "allow-discrete"] },
1024
- { "property": "animation", "category": "Animation", "type": "shorthand", "shorthand": true },
1025
- { "property": "animation-name", "category": "Animation", "type": "enum", "keywords": ["none"] },
1026
- { "property": "animation-duration", "category": "Animation", "type": "time", "units": ["s", "ms"] },
1027
- { "property": "animation-timing-function", "category": "Animation", "type": "enum", "keywords": ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "step-start", "step-end", "steps", "cubic-bezier"] },
1028
- { "property": "animation-delay", "category": "Animation", "type": "time", "units": ["s", "ms"] },
1029
- { "property": "animation-iteration-count", "category": "Animation", "type": "number", "keywords": ["infinite"] },
1030
- { "property": "animation-direction", "category": "Animation", "type": "enum", "keywords": ["normal", "reverse", "alternate", "alternate-reverse"] },
1031
- { "property": "animation-fill-mode", "category": "Animation", "type": "enum", "keywords": ["none", "forwards", "backwards", "both"] },
1032
- { "property": "animation-play-state", "category": "Animation", "type": "enum", "keywords": ["running", "paused"] },
1033
- { "property": "animation-composition", "category": "Animation", "type": "enum", "keywords": ["replace", "add", "accumulate"] },
1034
- { "property": "will-change", "category": "Animation", "type": "enum", "keywords": ["auto", "scroll-position", "contents"] },
1035
- { "property": "content", "category": "Misc", "type": "string" },
1036
- { "property": "list-style", "category": "Misc", "type": "shorthand", "inherited": true, "shorthand": true },
1037
- { "property": "list-style-type", "category": "Misc", "type": "enum", "keywords": ["disc", "circle", "square", "decimal", "decimal-leading-zero", "lower-roman", "upper-roman", "lower-greek", "lower-latin", "upper-latin", "lower-alpha", "upper-alpha", "armenian", "georgian", "cjk-decimal", "cjk-ideographic", "hebrew", "hiragana", "hiragana-iroha", "katakana", "katakana-iroha", "arabic-indic", "bengali", "cambodian", "khmer", "devanagari", "gujarati", "gurmukhi", "kannada", "lao", "malayalam", "myanmar", "oriya", "persian", "tamil", "telugu", "thai", "tibetan", "japanese-formal", "japanese-informal", "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal", "simp-chinese-formal", "simp-chinese-informal", "trad-chinese-formal", "trad-chinese-informal", "disclosure-open", "disclosure-closed", "none"], "inherited": true },
1038
- { "property": "list-style-position", "category": "Misc", "type": "enum", "keywords": ["inside", "outside"], "inherited": true },
1039
- { "property": "list-style-image", "category": "Misc", "type": "image", "inherited": true },
1040
- { "property": "scroll-behavior", "category": "Misc", "type": "enum", "keywords": ["auto", "smooth"] },
1041
- { "property": "scroll-snap-type", "category": "Misc", "type": "enum", "keywords": ["none", "x", "y", "block", "inline", "both", "mandatory", "proximity"] },
1042
- { "property": "scroll-snap-align", "category": "Misc", "type": "enum", "keywords": ["none", "start", "end", "center"] },
1043
- { "property": "scroll-snap-stop", "category": "Misc", "type": "enum", "keywords": ["normal", "always"] },
1044
- { "property": "scroll-margin", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
1045
- { "property": "scroll-margin-top", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1046
- { "property": "scroll-margin-right", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1047
- { "property": "scroll-margin-bottom", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1048
- { "property": "scroll-margin-left", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1049
- { "property": "scroll-margin-block", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
1050
- { "property": "scroll-margin-inline", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
1051
- { "property": "scroll-margin-block-start", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1052
- { "property": "scroll-margin-block-end", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1053
- { "property": "scroll-margin-inline-start", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1054
- { "property": "scroll-margin-inline-end", "category": "Misc", "type": "length", "units": ["px", "em", "rem", "vh", "vw", "ch"], "box": "margin" },
1055
- { "property": "scroll-padding", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
1056
- { "property": "scroll-padding-top", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1057
- { "property": "scroll-padding-right", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1058
- { "property": "scroll-padding-bottom", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1059
- { "property": "scroll-padding-left", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1060
- { "property": "scroll-padding-block", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
1061
- { "property": "scroll-padding-inline", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "shorthand": true },
1062
- { "property": "scroll-padding-block-start", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1063
- { "property": "scroll-padding-block-end", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1064
- { "property": "scroll-padding-inline-start", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1065
- { "property": "scroll-padding-inline-end", "category": "Misc", "type": "length", "units": ["px", "%", "em", "rem", "vh", "vw", "ch"], "box": "padding" },
1066
- { "property": "overscroll-behavior", "category": "Misc", "type": "enum", "keywords": ["auto", "contain", "none"], "shorthand": true },
1067
- { "property": "overscroll-behavior-x", "category": "Misc", "type": "enum", "keywords": ["auto", "contain", "none"] },
1068
- { "property": "overscroll-behavior-y", "category": "Misc", "type": "enum", "keywords": ["auto", "contain", "none"] },
1069
- { "property": "overscroll-behavior-block", "category": "Misc", "type": "enum", "keywords": ["auto", "contain", "none"] },
1070
- { "property": "overscroll-behavior-inline", "category": "Misc", "type": "enum", "keywords": ["auto", "contain", "none"] },
1071
- { "property": "user-select", "category": "Misc", "type": "enum", "keywords": ["auto", "text", "none", "all", "contain"] },
1072
- { "property": "pointer-events", "category": "Misc", "type": "enum", "keywords": ["auto", "none", "visiblePainted", "visibleFill", "visibleStroke", "visible", "painted", "fill", "stroke", "all"], "inherited": true },
1073
- { "property": "touch-action", "category": "Misc", "type": "enum", "keywords": ["auto", "none", "pan-x", "pan-left", "pan-right", "pan-y", "pan-up", "pan-down", "pinch-zoom", "manipulation"] },
1074
- { "property": "resize", "category": "Misc", "type": "enum", "keywords": ["none", "both", "horizontal", "vertical", "block", "inline"] },
1075
- { "property": "appearance", "category": "Misc", "type": "enum", "keywords": ["none", "auto", "base-select", "menulist-button", "textfield", "button", "searchfield", "textarea", "checkbox", "radio", "menulist", "listbox", "meter", "progress-bar", "push-button", "slider-horizontal", "square-button"] },
1076
- { "property": "table-layout", "category": "Misc", "type": "enum", "keywords": ["auto", "fixed"] },
1077
- { "property": "border-collapse", "category": "Misc", "type": "enum", "keywords": ["separate", "collapse"], "inherited": true },
1078
- { "property": "border-spacing", "category": "Misc", "type": "length", "units": ["px", "em", "rem"], "inherited": true },
1079
- { "property": "caption-side", "category": "Misc", "type": "enum", "keywords": ["top", "bottom", "block-start", "block-end", "inline-start", "inline-end"], "inherited": true },
1080
- { "property": "empty-cells", "category": "Misc", "type": "enum", "keywords": ["show", "hide"], "inherited": true },
1081
- { "property": "caret", "category": "Misc", "type": "shorthand", "inherited": true, "shorthand": true },
1082
- { "property": "caret-shape", "category": "Misc", "type": "enum", "keywords": ["auto", "bar", "block", "underscore"], "inherited": true },
1083
- { "property": "scrollbar-width", "category": "Misc", "type": "enum", "keywords": ["auto", "thin", "none"] },
1084
- { "property": "scrollbar-color", "category": "Misc", "type": "color", "inherited": true },
1085
- { "property": "scrollbar-gutter", "category": "Misc", "type": "enum", "keywords": ["auto", "stable", "both-edges"] },
1086
- { "property": "image-rendering", "category": "Misc", "type": "enum", "keywords": ["auto", "smooth", "high-quality", "crisp-edges", "pixelated"], "inherited": true },
1087
- { "property": "counter-reset", "category": "Misc", "type": "string" },
1088
- { "property": "counter-increment", "category": "Misc", "type": "string" },
1089
- { "property": "counter-set", "category": "Misc", "type": "string" },
1090
- { "property": "all", "category": "Misc", "type": "enum", "keywords": ["initial", "inherit", "unset", "revert", "revert-layer"], "shorthand": true },
1091
- { "property": "forced-color-adjust", "category": "Misc", "type": "enum", "keywords": ["auto", "none", "preserve-parent-color"], "inherited": true },
1092
- { "property": "print-color-adjust", "category": "Misc", "type": "enum", "keywords": ["economy", "exact"], "inherited": true }
1093
- ];
1094
-
1095
- // src/overlay/cssRegistry.ts
1096
- var COMMON = /* @__PURE__ */ new Set([
1097
- // Layout
1098
- "display",
1099
- "position",
1100
- "top",
1101
- "right",
1102
- "bottom",
1103
- "left",
1104
- "float",
1105
- "clear",
1106
- "z-index",
1107
- "box-sizing",
1108
- "visibility",
1109
- "overflow",
1110
- "overflow-x",
1111
- "overflow-y",
1112
- "opacity",
1113
- // Flexbox
1114
- "flex",
1115
- "flex-direction",
1116
- "flex-wrap",
1117
- "justify-content",
1118
- "align-items",
1119
- "align-content",
1120
- "align-self",
1121
- "justify-self",
1122
- "flex-grow",
1123
- "flex-shrink",
1124
- "flex-basis",
1125
- "order",
1126
- "gap",
1127
- "row-gap",
1128
- "column-gap",
1129
- // Grid
1130
- "grid-template-columns",
1131
- "grid-template-rows",
1132
- "grid-auto-flow",
1133
- "grid-auto-columns",
1134
- "grid-auto-rows",
1135
- "grid-column",
1136
- "grid-row",
1137
- "grid-area",
1138
- "justify-items",
1139
- "place-items",
1140
- // Spacing
1141
- "margin",
1142
- "margin-top",
1143
- "margin-right",
1144
- "margin-bottom",
1145
- "margin-left",
1146
- "padding",
1147
- "padding-top",
1148
- "padding-right",
1149
- "padding-bottom",
1150
- "padding-left",
1151
- // Sizing
1152
- "width",
1153
- "height",
1154
- "min-width",
1155
- "max-width",
1156
- "min-height",
1157
- "max-height",
1158
- "aspect-ratio",
1159
- "object-fit",
1160
- "object-position",
1161
- // Border
1162
- "border",
1163
- "border-width",
1164
- "border-style",
1165
- "border-color",
1166
- "border-top-width",
1167
- "border-right-width",
1168
- "border-bottom-width",
1169
- "border-left-width",
1170
- "border-radius",
1171
- "border-top-left-radius",
1172
- "border-top-right-radius",
1173
- "border-bottom-right-radius",
1174
- "border-bottom-left-radius",
1175
- "outline",
1176
- "outline-width",
1177
- "outline-style",
1178
- "outline-color",
1179
- "outline-offset",
1180
- // Background
1181
- "background",
1182
- "background-color",
1183
- "background-image",
1184
- "background-size",
1185
- "background-position",
1186
- "background-repeat",
1187
- "background-attachment",
1188
- "background-clip",
1189
- // Typography
1190
- "color",
1191
- "font",
1192
- "font-family",
1193
- "font-size",
1194
- "font-weight",
1195
- "font-style",
1196
- "font-variant",
1197
- "line-height",
1198
- "letter-spacing",
1199
- "word-spacing",
1200
- "text-align",
1201
- "text-decoration",
1202
- "text-decoration-line",
1203
- "text-decoration-color",
1204
- "text-transform",
1205
- "text-indent",
1206
- "text-overflow",
1207
- "white-space",
1208
- "text-shadow",
1209
- "direction",
1210
- "vertical-align",
1211
- // Effects
1212
- "box-shadow",
1213
- "filter",
1214
- "backdrop-filter",
1215
- "mix-blend-mode",
1216
- "clip-path",
1217
- "cursor",
1218
- "mask",
1219
- // Transform
1220
- "transform",
1221
- "transform-origin",
1222
- "transform-style",
1223
- "perspective",
1224
- "backface-visibility",
1225
- "translate",
1226
- "rotate",
1227
- "scale",
1228
- // Animation
1229
- "transition",
1230
- "transition-property",
1231
- "transition-duration",
1232
- "transition-timing-function",
1233
- "transition-delay",
1234
- "animation",
1235
- "animation-name",
1236
- "animation-duration",
1237
- "animation-timing-function",
1238
- "animation-delay",
1239
- "animation-iteration-count",
1240
- "animation-direction",
1241
- "animation-fill-mode",
1242
- "will-change",
1243
- // Misc
1244
- "content",
1245
- "list-style",
1246
- "list-style-type",
1247
- "list-style-position",
1248
- "user-select",
1249
- "pointer-events",
1250
- "scroll-behavior",
1251
- "resize",
1252
- "caret-color",
1253
- "accent-color",
1254
- "appearance"
1255
- ]);
1256
- var CATEGORY_ORDER = [
1257
- "Layout",
1258
- "Flexbox",
1259
- "Grid",
1260
- "Spacing",
1261
- "Sizing",
1262
- "Border",
1263
- "Background",
1264
- "Typography",
1265
- "Effects",
1266
- "Transform",
1267
- "Animation",
1268
- "Misc"
1269
- ];
1270
- var DEFAULT_UNITS = ["px", "%", "em", "rem", "vh", "vw", "ch"];
1271
- function categoryFor(p) {
1272
- if (/^grid/.test(p)) return "Grid";
1273
- if (/^(flex|justify|align|order|place)/.test(p)) return "Flexbox";
1274
- if (/^(margin|padding|gap|row-gap|column-gap)/.test(p)) return "Spacing";
1275
- if (/^(width|height|min-|max-|aspect-ratio|inline-size|block-size|object-)/.test(p)) return "Sizing";
1276
- if (/^(border|outline)/.test(p)) return "Border";
1277
- if (/^background/.test(p)) return "Background";
1278
- if (/^(font|text|color$|line-height|letter|word|white-space|writing|direction|vertical-align|tab-size|hyphens|quotes|list-style)/.test(p))
1279
- return "Typography";
1280
- if (/^(transition|animation|will-change)/.test(p)) return "Animation";
1281
- if (/^(transform|translate|rotate|scale|perspective|backface)/.test(p)) return "Transform";
1282
- if (/^(opacity|box-shadow|filter|backdrop|mix-blend|clip-path|mask|cursor)/.test(p)) return "Effects";
1283
- if (/^(display|position|top|right|bottom|left|inset|float|clear|visibility|z-index|box-sizing|overflow|isolation|contain)/.test(p))
1284
- return "Layout";
1285
- return "Misc";
1286
- }
1287
- function typeForValue(p, v) {
1288
- const s = (v || "").trim();
1289
- if (/color/.test(p) || /^(rgb|rgba|hsl|hsla|#|currentcolor|transparent)\b/i.test(s)) return "color";
1290
- if (/^-?\d*\.?\d+(px|em|rem|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc|q)$/i.test(s)) return "length";
1291
- if (/^-?\d*\.?\d+(s|ms)$/i.test(s)) return "time";
1292
- if (/^-?\d*\.?\d+(deg|rad|grad|turn)$/i.test(s)) return "angle";
1293
- if (/^(url\(|linear-gradient|radial-gradient|conic-gradient)/i.test(s)) return "image";
1294
- if (/(^|-)color$/.test(p)) return "color";
1295
- if (/(width|height|size|^inset|margin|padding|gap|^top$|^left$|^right$|^bottom$|spacing|indent|offset|radius|translate|^scroll-padding|^scroll-margin)/.test(p))
1296
- return "length";
1297
- if (/^-?\d+$/.test(s)) return "integer";
1298
- if (/^-?\d*\.?\d+$/.test(s)) return "number";
1299
- return "string";
1300
- }
1301
- var _registry = null;
1302
- function cssRegistry() {
1303
- if (_registry) return _registry;
1304
- const byProp = /* @__PURE__ */ new Map();
1305
- for (const m of CSS_PROPERTY_DATA) {
1306
- byProp.set(m.property, {
1307
- ...m,
1308
- units: m.units && m.units.length ? m.units : m.type === "length" ? DEFAULT_UNITS : void 0,
1309
- common: COMMON.has(m.property)
1310
- });
1311
- }
1312
- try {
1313
- if (typeof document !== "undefined") {
1314
- const cs = getComputedStyle(document.documentElement);
1315
- for (let i = 0; i < cs.length; i++) {
1316
- const p = cs[i];
1317
- if (!p || p.startsWith("--") || byProp.has(p)) continue;
1318
- const type = typeForValue(p, cs.getPropertyValue(p));
1319
- byProp.set(p, { property: p, category: categoryFor(p), type, units: type === "length" ? DEFAULT_UNITS : void 0 });
1320
- }
1321
- }
1322
- } catch {
1323
- }
1324
- const groups = /* @__PURE__ */ new Map();
1325
- for (const [prop, m] of byProp) {
1326
- const cat = m.category || "Misc";
1327
- const arr = groups.get(cat) ?? [];
1328
- arr.push(prop);
1329
- groups.set(cat, arr);
1330
- }
1331
- const orderedNames = [
1332
- ...CATEGORY_ORDER.filter((c) => groups.has(c)),
1333
- ...[...groups.keys()].filter((c) => !CATEGORY_ORDER.includes(c)).sort()
1334
- ];
1335
- const categories = orderedNames.map((name) => ({ name, props: groups.get(name).slice().sort() }));
1336
- _registry = { byProp, categories };
1337
- return _registry;
1338
- }
1339
- function cssMeta(property) {
1340
- return cssRegistry().byProp.get(property);
1341
- }
1342
-
1343
740
  // src/overlay/mechanism.ts
1344
741
  var TW_UTILITY = /^-?(?:p|m|px|py|pt|pr|pb|pl|mx|my|mt|mr|mb|ml|gap|w|h|min-w|max-w|min-h|max-h|text|bg|border|rounded|flex|grid|gap-x|gap-y|items|justify|self|place|font|leading|tracking|space|inline|block|inline-block|hidden|table|absolute|relative|fixed|sticky|static|top|bottom|left|right|inset|z|shadow|opacity|transition|duration|ease|scale|rotate|translate|cursor|overflow|object|aspect|order|col|row|basis|grow|shrink|divide|ring|outline)(?:-|$)/;
1345
742
  var TW_VARIANT = /^(?:sm|md|lg|xl|2xl|hover|focus|focus-visible|focus-within|active|visited|disabled|dark|group|group-hover|peer|first|last|odd|even|motion-safe|motion-reduce|print|rtl|ltr)::?|^(?:sm|md|lg|xl|2xl|hover|focus|active|disabled|dark|group-hover):/;
@@ -2033,6 +1430,10 @@ var CSS = (
2033
1430
  .uiv-bm-i.st-edited { color: #4ade80; }
2034
1431
  .uiv-bm-i.st-inherit { color: #38bdf8; }
2035
1432
  .uiv-bm-i.st-auto { color: #6b7280; }
1433
+ /* a side bound to a design token \u2014 shown by name, accent-coloured, no spin */
1434
+ .uiv-bm-i.uiv-bm-tok { color: #a5b4fc; font-size: 9px; letter-spacing: -0.2px;
1435
+ border-color: #4338ca; background: #1e1b4b40; text-overflow: ellipsis; }
1436
+ .uiv-bm-i.uiv-bm-tok.st-edited { color: #818cf8; }
2036
1437
  /* spacing-token dropdown \u2014 opens when a side value is focused/clicked */
2037
1438
  .uiv-bm-pop { display: flex; flex-wrap: wrap; gap: 5px; align-items: center;
2038
1439
  margin: -3px 0 8px; padding: 8px; background: #1c1c20; border: 1px solid #34343c;
@@ -2044,39 +1445,6 @@ var CSS = (
2044
1445
  padding: 3px 8px; font-size: 10px; cursor: pointer; font-family: ui-monospace, monospace; }
2045
1446
  .uiv-bm-chip:hover { background: #4f46e5; border-color: #6366f1; color: #fff; }
2046
1447
 
2047
- /* ---- All CSS inspector (search + categories + generic smart inputs) ---- */
2048
- .uiv-csssearch { width: 100%; background: #0f0f12; border: 1px solid #3f3f46; color: #e4e4e7;
2049
- border-radius: 7px; padding: 7px 9px; font-size: 12px; outline: none; font-family: ui-monospace, monospace; }
2050
- .uiv-csssearch:focus { border-color: #6366f1; }
2051
- .uiv-csssearch::placeholder { color: #6b6b73; }
2052
- .uiv-catacc .uiv-catn { color: #52525b; font-weight: 700; margin-left: auto; }
2053
- .uiv-showall { background: none; border: 0; color: #818cf8; cursor: pointer;
2054
- font-size: 10px; padding: 2px 0 4px; font-weight: 600; }
2055
- .uiv-showall:hover { color: #a5b4fc; }
2056
- .uiv-gctl { grid-template-columns: 108px 1fr; gap: 8px; margin-bottom: 5px; }
2057
- .uiv-gplabel { font-family: ui-monospace, monospace; font-size: 10px; color: #a1a1aa;
2058
- overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2059
- .uiv-gsel { width: 100%; background: #1c1c20; border: 1px solid #313138; color: #fff;
2060
- border-radius: 7px; padding: 5px 6px; font-size: 11px; outline: none; font-family: ui-monospace, monospace; }
2061
- .uiv-gsel:focus { border-color: #6366f1; }
2062
- .uiv-gnum { display: flex; align-items: stretch; background: #1c1c20; border: 1px solid #313138;
2063
- border-radius: 7px; overflow: hidden; }
2064
- .uiv-gnum:focus-within { border-color: #6366f1; }
2065
- .uiv-gtext { flex: 1; min-width: 0; background: #1c1c20; border: 1px solid #313138; color: #fff;
2066
- border-radius: 7px; padding: 5px 7px; font-size: 11px; outline: none; font-family: ui-monospace, monospace; }
2067
- .uiv-gnum .uiv-gtext { border: none; border-radius: 0; background: transparent; padding-left: 2px; }
2068
- .uiv-gtext:focus { border-color: #6366f1; }
2069
- .uiv-gtext::placeholder { color: #6b6b73; }
2070
- .uiv-gcolorwrap { display: flex; gap: 5px; align-items: center; }
2071
- .uiv-gcolor { width: 28px; height: 26px; padding: 2px; flex: 0 0 auto; background: #1c1c20;
2072
- border: 1px solid #313138; border-radius: 7px; cursor: pointer; }
2073
- .uiv-gtextc { flex: 1; }
2074
- .uiv-gctl.st-file .uiv-gtext, .uiv-gctl.st-file .uiv-gsel { color: #e4e4e7; }
2075
- .uiv-gctl.st-edited .uiv-gtext, .uiv-gctl.st-edited .uiv-gsel { color: #4ade80; }
2076
- .uiv-gctl.st-edited .uiv-gnum, .uiv-gctl.st-edited .uiv-gsel { border-color: #4ade80; }
2077
- .uiv-gctl.st-inherit .uiv-gtext, .uiv-gctl.st-inherit .uiv-gsel { color: #38bdf8; }
2078
- .uiv-gctl.st-auto .uiv-gtext, .uiv-gctl.st-auto .uiv-gsel { color: #6b7280; }
2079
-
2080
1448
  .uiv-toast { position: fixed; right: 16px; bottom: 128px; z-index: 2147483647;
2081
1449
  background: #22c55e; color: #052e16; padding: 8px 12px; border-radius: 8px;
2082
1450
  font-size: 12px; font-weight: 600; display: none; }
@@ -2097,38 +1465,6 @@ var INHERITED_PROPS = /* @__PURE__ */ new Set([
2097
1465
  "text-align",
2098
1466
  "font-family"
2099
1467
  ]);
2100
- var BOX_SIDES = {
2101
- inset: [
2102
- { css: "top", label: "T" },
2103
- { css: "right", label: "R" },
2104
- { css: "bottom", label: "B" },
2105
- { css: "left", label: "L" }
2106
- ],
2107
- padding: [
2108
- { css: "padding-top", label: "T" },
2109
- { css: "padding-right", label: "R" },
2110
- { css: "padding-bottom", label: "B" },
2111
- { css: "padding-left", label: "L" }
2112
- ],
2113
- margin: [
2114
- { css: "margin-top", label: "T" },
2115
- { css: "margin-right", label: "R" },
2116
- { css: "margin-bottom", label: "B" },
2117
- { css: "margin-left", label: "L" }
2118
- ],
2119
- radius: [
2120
- { css: "border-top-left-radius", label: "TL" },
2121
- { css: "border-top-right-radius", label: "TR" },
2122
- { css: "border-bottom-right-radius", label: "BR" },
2123
- { css: "border-bottom-left-radius", label: "BL" }
2124
- ],
2125
- "border-width": [
2126
- { css: "border-top-width", label: "T" },
2127
- { css: "border-right-width", label: "R" },
2128
- { css: "border-bottom-width", label: "B" },
2129
- { css: "border-left-width", label: "L" }
2130
- ]
2131
- };
2132
1468
  var Uivisor = class {
2133
1469
  constructor() {
2134
1470
  this.enabled = false;
@@ -2139,10 +1475,6 @@ var Uivisor = class {
2139
1475
  this.collapsedSecs = /* @__PURE__ */ new Set();
2140
1476
  /** Controls manually revealed via "+" (hideWhenAuto controls that are auto). */
2141
1477
  this.revealedCtls = /* @__PURE__ */ new Set();
2142
- /** "All CSS" search query + which property categories are expanded / showing all. */
2143
- this.cssSearch = "";
2144
- this.expandedCats = /* @__PURE__ */ new Set();
2145
- this.showAllCats = /* @__PURE__ */ new Set();
2146
1478
  /** Box-model widget: the last-focused side the token dropdown targets. */
2147
1479
  this.lastBmSide = "padding-top";
2148
1480
  /** Undo / redo stacks of full edit-state snapshots. */
@@ -2162,6 +1494,11 @@ var Uivisor = class {
2162
1494
  // responsive (virtual screen) mode
2163
1495
  this.responsive = false;
2164
1496
  this.frameWidth = 768;
1497
+ /** The breakpoint new edits are scoped to — chosen explicitly via the chips,
1498
+ * NOT derived from the frame's pixel width. Defaults to 'base' so a casual tweak
1499
+ * applies to EVERY size (and never "disappears" when you view another size).
1500
+ * Picking a specific breakpoint chip narrows the scope to that breakpoint. */
1501
+ this.pickedBp = "base";
2165
1502
  // ---- pointer handling ----
2166
1503
  this.onMove = (e) => {
2167
1504
  if (!this.enabled || this.isOurs(e)) {
@@ -2231,12 +1568,6 @@ var Uivisor = class {
2231
1568
  this.selBox.style.display = "none";
2232
1569
  }
2233
1570
  };
2234
- /** Properties to snapshot on selection: the curated set ∪ the whole registry. */
2235
- this._snapProps = null;
2236
- // ---- "All CSS" inspector (registry-driven, curated like Framer/Webflow) ----
2237
- /** Properties already covered by the curated quick-control sections above — so we
2238
- * don't show them again in the All-CSS area. */
2239
- this._curatedProps = null;
2240
1571
  }
2241
1572
  /** Project breakpoints — re-detect until the stylesheets yield a real set. */
2242
1573
  bpSystem() {
@@ -2380,6 +1711,7 @@ var Uivisor = class {
2380
1711
  } else {
2381
1712
  this.scheduleBpRefresh();
2382
1713
  if (!this.responsive) {
1714
+ this.pickedBp = "base";
2383
1715
  this.frameWidth = this.defaultFrameWidth();
2384
1716
  this.toggleResponsive(true);
2385
1717
  }
@@ -2389,12 +1721,6 @@ var Uivisor = class {
2389
1721
  defaultFrameWidth() {
2390
1722
  return typeof window !== "undefined" ? window.innerWidth : 1280;
2391
1723
  }
2392
- /** Frame width for the "all"/base chip: a phone-ish width in the base range. */
2393
- baseFrameWidth() {
2394
- const bps = this.bpSystem().breakpoints;
2395
- const firstBp = bps.length ? bps[0].minWidth : 640;
2396
- return this.bpSystem().dir === "min" ? Math.min(390, firstBp - 1) : 390;
2397
- }
2398
1724
  /** Stylesheets (esp. JIT/CDN Tailwind) load async — re-detect breakpoints a few
2399
1725
  * times after enabling and re-render only if the set actually changed. */
2400
1726
  scheduleBpRefresh() {
@@ -2489,8 +1815,7 @@ var Uivisor = class {
2489
1815
  this.frameWidth = Math.max(280, Math.min(2400, Math.round(w)));
2490
1816
  const host = this.q(".uiv-framehost");
2491
1817
  host.style.width = `${this.frameWidth}px`;
2492
- const bp = activeBreakpoint(this.frameWidth, this.bpSystem()).name;
2493
- this.q(".uiv-framew").textContent = `${this.frameWidth}px \xB7 ${this.bpLabel(bp)}`;
1818
+ this.q(".uiv-framew").textContent = `${this.frameWidth}px \xB7 editing ${this.bpLabel(this.scopeName())}`;
2494
1819
  this.updateBp();
2495
1820
  this.reposition();
2496
1821
  }
@@ -2550,9 +1875,9 @@ var Uivisor = class {
2550
1875
  this.reposition();
2551
1876
  this.renderBody();
2552
1877
  }
1878
+ /** Properties to snapshot on selection — the curated set the controls can edit. */
2553
1879
  snapshotProps() {
2554
- if (!this._snapProps) this._snapProps = [.../* @__PURE__ */ new Set([...ALL_CSS, ...cssRegistry().byProp.keys()])];
2555
- return this._snapProps;
1880
+ return ALL_CSS;
2556
1881
  }
2557
1882
  // ---- value helpers ----
2558
1883
  st() {
@@ -2586,6 +1911,14 @@ var Uivisor = class {
2586
1911
  if (inline && !inline.includes("var(")) return inline;
2587
1912
  return this.computedVal(css) || st.original[css] || "";
2588
1913
  }
1914
+ /** If a design token is the effective value for `css`, its short name (e.g. "lg"
1915
+ * for --space-lg) — so the field shows the token by name, not its resolved px. */
1916
+ tokenNameFor(css) {
1917
+ const ch = this.effectiveChange(css);
1918
+ if (!ch?.after.designToken) return null;
1919
+ const t = this.designSystem().tokens.find((x) => x.cssVar === ch.after.designToken);
1920
+ return t ? t.name : ch.after.designToken;
1921
+ }
2589
1922
  liveNum(css) {
2590
1923
  const v = this.liveVal(css).trim();
2591
1924
  const m = /^(-?\d*\.?\d+)px$/.exec(v);
@@ -2687,18 +2020,37 @@ var Uivisor = class {
2687
2020
  }
2688
2021
  this.reposition();
2689
2022
  }
2690
- /** The breakpoint recorded edits are scoped to: manual override, else window. */
2691
- /** The breakpoint edits are scoped to: the virtual screen's width when in
2692
- * responsive mode, otherwise the real window. */
2023
+ /** The breakpoint new edits are scoped to. In responsive mode it's the EXPLICITLY
2024
+ * picked breakpoint (default 'base' = every size), decoupled from the frame's
2025
+ * pixel width so editing at a desktop-sized frame still defaults to "all sizes"
2026
+ * instead of silently scoping to the top breakpoint and vanishing elsewhere. */
2693
2027
  activeScope() {
2694
2028
  const sys = this.bpSystem();
2695
- if (this.responsive) return activeBreakpoint(this.frameWidth, sys);
2696
- return currentBreakpoint(sys);
2697
- }
2698
- /** The width the inspector is scoped to (virtual screen, else real window). */
2029
+ if (!this.responsive) return currentBreakpoint(sys);
2030
+ const name = this.scopeName();
2031
+ const bp = sys.breakpoints.find((b) => b.name === name);
2032
+ return { name, minWidth: bp ? bp.minWidth : 0 };
2033
+ }
2034
+ /** The picked breakpoint, validated against the current system (falls back to
2035
+ * 'base' if a previously-picked breakpoint no longer exists after re-detection). */
2036
+ scopeName() {
2037
+ if (this.pickedBp === "base") return "base";
2038
+ return this.bpSystem().breakpoints.some((b) => b.name === this.pickedBp) ? this.pickedBp : "base";
2039
+ }
2040
+ /** The width the cascade is evaluated at — the representative width of the PICKED
2041
+ * scope, not the frame's visual width. base → a width where only base applies (so
2042
+ * base edits win and show everywhere); a named breakpoint → its threshold. */
2699
2043
  activeWidth() {
2700
- if (this.responsive) return this.frameWidth;
2701
- return typeof window !== "undefined" ? window.innerWidth : 0;
2044
+ if (!this.responsive) return typeof window !== "undefined" ? window.innerWidth : 0;
2045
+ return this.scopeWidth(this.scopeName());
2046
+ }
2047
+ scopeWidth(name) {
2048
+ const sys = this.bpSystem();
2049
+ if (name !== "base") {
2050
+ const bp = sys.breakpoints.find((b) => b.name === name);
2051
+ if (bp) return bp.minWidth;
2052
+ }
2053
+ return sys.dir === "min" ? 0 : 1e6;
2702
2054
  }
2703
2055
  /** The recorded change that wins the breakpoint cascade for `css` at the active
2704
2056
  * width — i.e. the value effective here, set on this breakpoint or inherited. */
@@ -2846,7 +2198,6 @@ var Uivisor = class {
2846
2198
  ${this.targetHtml(st)}
2847
2199
  ${this.controlsHtml(this.context(this.selected))}
2848
2200
  ${this.journalHtml()}
2849
- ${this.allCssHtml()}
2850
2201
  `;
2851
2202
  if (this.responsive) this.renderFrameBar();
2852
2203
  this.renderInfo();
@@ -3085,9 +2436,8 @@ var Uivisor = class {
3085
2436
  * project breakpoint. Reused by the panel (Live) and the over-frame bar. */
3086
2437
  breakpointChipsHtml() {
3087
2438
  const sys = this.bpSystem();
3088
- const frameBp = this.responsive ? activeBreakpoint(this.frameWidth, sys).name : null;
3089
2439
  const winBp = currentBreakpoint(sys).name;
3090
- const isActive = (n) => this.responsive ? n === frameBp : n === winBp;
2440
+ const isActive = (n) => this.responsive ? n === this.scopeName() : n === winBp;
3091
2441
  const chip = (n, on, title) => `<button class="uiv-chip${on ? " on" : ""}" data-bp="${n}" title="${escapeAttr(title)}">${this.bpIcon(n)}<span>${this.bpLabel(n)}</span></button>`;
3092
2442
  const all = chip("base", isActive("base"), "No breakpoint \u2014 applies to every size by default");
3093
2443
  const rest = sys.breakpoints.map((b) => chip(b.name, isActive(b.name), sys.dir === "min" ? `\u2265 ${b.minWidth}px` : `\u2264 ${b.minWidth}px`)).join("");
@@ -3174,7 +2524,12 @@ var Uivisor = class {
3174
2524
  const n = this.liveNum(css);
3175
2525
  return n == null ? "0" : String(round2(n));
3176
2526
  };
3177
- const side = (css, pos) => `<input class="uiv-bm-i ${pos}${this.controlStateClass([css])}" data-css="${css}" value="${escapeAttr(num(css))}" title="${css}" inputmode="decimal" spellcheck="false">`;
2527
+ const side = (css, pos) => {
2528
+ const tok = this.tokenNameFor(css);
2529
+ const val = tok ?? num(css);
2530
+ const title = tok ? `${css}: ${tok}` : css;
2531
+ return `<input class="uiv-bm-i ${pos}${this.controlStateClass([css])}${tok ? " uiv-bm-tok" : ""}" data-css="${css}" value="${escapeAttr(val)}" title="${escapeAttr(title)}" inputmode="decimal" spellcheck="false">`;
2532
+ };
3178
2533
  const spaceTokens = this.designSystem().byCategory["spacing"] ?? [];
3179
2534
  const pop = spaceTokens.length ? `<div class="uiv-bm-pop" hidden><span class="uiv-bm-poplabel">Token</span>` + spaceTokens.map((t) => `<button class="uiv-bm-chip" data-var="${escapeAttr(t.cssVar)}" title="${escapeAttr(t.value)}">${escapeHtml(t.name)} \xB7 ${escapeHtml(t.value)}</button>`).join("") + `</div>` : "";
3180
2535
  return `<div class="uiv-bm"><span class="uiv-bm-tag">MARGIN</span>` + side("margin-top", "bm-top") + side("margin-right", "bm-right") + side("margin-bottom", "bm-bottom") + side("margin-left", "bm-left") + `<div class="uiv-bm-pad"><span class="uiv-bm-tag">PADDING</span>` + side("padding-top", "bm-top") + side("padding-right", "bm-right") + side("padding-bottom", "bm-bottom") + side("padding-left", "bm-left") + `<div class="uiv-bm-content"></div></div></div>` + pop;
@@ -3345,213 +2700,8 @@ var Uivisor = class {
3345
2700
  const val = toHexInput(this.liveVal(c.css));
3346
2701
  return `<div class="uiv-ctl${this.controlStateClass([c.css])}">${this.ctlLabel(c.label, [c.css])}<div class="cfield"><input type="color" class="uiv-color${this.isChanged([c.css]) ? " changed" : ""}" data-css="${c.css}" value="${val}"></div><span></span></div>` + this.tokenRowHtml(c.css, "Token");
3347
2702
  }
3348
- curatedCssProps() {
3349
- if (this._curatedProps) return this._curatedProps;
3350
- const set = /* @__PURE__ */ new Set();
3351
- for (const sec of SECTIONS)
3352
- for (const c of sec.controls) {
3353
- if (c.kind === "box") c.sides.forEach((s) => set.add(s.css));
3354
- else set.add(c.css || "");
3355
- }
3356
- set.delete("");
3357
- this._curatedProps = set;
3358
- return set;
3359
- }
3360
- /**
3361
- * Search box + categorised accordions. By default each category shows only the
3362
- * COMMON properties (Framer/Webflow-style — no logical/vendor/rare noise), box
3363
- * groups as a 4-sided editor; "+ N more" reveals the long tail and search reaches
3364
- * literally everything. Additive: the curated sections above are untouched.
3365
- */
3366
- allCssHtml() {
3367
- const reg = cssRegistry();
3368
- const curated = this.curatedCssProps();
3369
- const q = this.cssSearch.trim().toLowerCase();
3370
- const search = `<div class="uiv-sec"><div class="uiv-sectitle">All CSS</div><input class="uiv-csssearch" placeholder="Search any of ${reg.byProp.size} properties\u2026" value="${escapeAttr(this.cssSearch)}" spellcheck="false"></div>`;
3371
- if (q) {
3372
- const hits = [...reg.byProp.values()].filter((m) => m.property.includes(q)).sort((a, b) => a.property.localeCompare(b.property));
3373
- const rows = hits.slice(0, 60).map((m) => this.genericRow(m)).join("");
3374
- const more = hits.length > 60 ? `<div class="uiv-bphint">+${hits.length - 60} more \u2014 refine the search</div>` : "";
3375
- return search + `<div class="uiv-sec"><div class="uiv-sectitle">Results (${hits.length})</div>` + (rows || '<div class="uiv-empty">No property matches.</div>') + more + `</div>`;
3376
- }
3377
- const cats = reg.categories.map((c) => {
3378
- const avail = c.props.filter((p) => !curated.has(p));
3379
- if (!avail.length) return "";
3380
- const common = avail.filter((p) => reg.byProp.get(p).common);
3381
- const open = this.expandedCats.has(c.name);
3382
- const head = `<button class="uiv-sectitle uiv-catacc${open ? "" : " collapsed"}" data-cat="${escapeAttr(c.name)}"><span class="uiv-chev">${ICONS.chevron}</span>${c.name} <span class="uiv-catn">${common.length}</span></button>`;
3383
- let body = "";
3384
- if (open) {
3385
- const showAll = this.showAllCats.has(c.name);
3386
- body = this.renderCommonControls(showAll ? avail : common);
3387
- if (!showAll && avail.length > common.length)
3388
- body += `<button class="uiv-showall" data-cat="${escapeAttr(c.name)}">+ ${avail.length - common.length} more</button>`;
3389
- }
3390
- return `<div class="uiv-sec">${head}${body}</div>`;
3391
- }).filter(Boolean).join("");
3392
- return search + cats;
3393
- }
3394
- /** Render a property list: box-groups (inset etc.) as a 4-sided editor, the rest
3395
- * as smart inputs. Reuses the tested box control + the generic field. */
3396
- renderCommonControls(props) {
3397
- const reg = cssRegistry();
3398
- const boxGroups = {};
3399
- const singles = [];
3400
- for (const p of props) {
3401
- const m = reg.byProp.get(p);
3402
- if (m.box && BOX_SIDES[m.box] && !m.shorthand) boxGroups[m.box] = true;
3403
- else singles.push(p);
3404
- }
3405
- let html = "";
3406
- for (const g of Object.keys(boxGroups)) html += this.boxGroupControl(g);
3407
- for (const p of singles) html += this.genericRow(reg.byProp.get(p));
3408
- return html;
3409
- }
3410
- /** A 4-sided box editor for a box group (inset/padding/…), via the curated control. */
3411
- boxGroupControl(group) {
3412
- const sides = BOX_SIDES[group];
3413
- if (!sides) return "";
3414
- const icon = group === "radius" ? ICONS.radius : group === "border-width" ? ICONS.border : group === "margin" ? ICONS.margin : group === "inset" ? ICONS.margin : ICONS.padding;
3415
- const label = { inset: "Inset", padding: "Padding", margin: "Margin", radius: "Radius", "border-width": "Border" }[group] || group;
3416
- return this.controlRow({ kind: "box", key: `g-${group}`, label, icon, sides });
3417
- }
3418
- genericRow(m) {
3419
- const prop = m.property;
3420
- return `<div class="uiv-ctl uiv-gctl${this.controlStateClass([prop])}"><span class="clabel uiv-gplabel" title="${escapeAttr(prop)}">${escapeHtml(prop)}</span><div class="cfield">${this.genericField(m)}</div></div>`;
3421
- }
3422
- /** Smart input for one property, by its registry type. Commits via the engine. */
3423
- genericField(m) {
3424
- const prop = m.property;
3425
- const cur = this.liveVal(prop);
3426
- const da = `data-gprop="${escapeAttr(prop)}"`;
3427
- if (m.type === "enum" && m.keywords && m.keywords.length) {
3428
- const c = cur.trim();
3429
- const list = c && !m.keywords.includes(c) ? [c, ...m.keywords] : m.keywords;
3430
- const opts = list.map((k) => `<option value="${escapeAttr(k)}"${k === c ? " selected" : ""}>${escapeHtml(k)}</option>`).join("");
3431
- return `<select class="uiv-gsel" ${da}>${opts}</select>`;
3432
- }
3433
- if (m.type === "color") {
3434
- return `<div class="uiv-gcolorwrap"><input type="color" class="uiv-gcolor" ${da} value="${toHexInput(cur)}"><input type="text" class="uiv-gtext uiv-gtextc" ${da} value="${escapeAttr(cur)}" placeholder="\u2014" spellcheck="false"></div>`;
3435
- }
3436
- const complex = (m.type === "shorthand" || m.shorthand || /^grid-template/.test(prop)) && !this.isChanged([prop]);
3437
- const val = complex ? "" : cur;
3438
- const ph = complex && cur ? escapeAttr(cur) : "\u2014";
3439
- const numeric = m.type === "length" || m.type === "number" || m.type === "integer" || m.type === "percentage" || m.type === "time" || m.type === "angle";
3440
- if (numeric) {
3441
- return `<div class="uiv-gnum"><span class="uiv-scrub uiv-gscrub" ${da} title="Drag to change">${ICONS.size}</span><input type="text" class="uiv-gtext" ${da} value="${escapeAttr(val)}" placeholder="${ph}" spellcheck="false"></div>`;
3442
- }
3443
- return `<input type="text" class="uiv-gtext uiv-gtextonly" ${da} value="${escapeAttr(val)}" placeholder="${ph}" spellcheck="false">`;
3444
- }
3445
- /** Bind the "All CSS" search, category toggles and generic inputs. */
3446
- bindGeneric() {
3447
- const root = this.root;
3448
- const search = root.querySelector(".uiv-csssearch");
3449
- if (search) {
3450
- search.addEventListener("input", () => {
3451
- const pos = search.selectionStart ?? search.value.length;
3452
- this.cssSearch = search.value;
3453
- this.renderBody();
3454
- const s2 = this.root.querySelector(".uiv-csssearch");
3455
- if (s2) {
3456
- s2.focus();
3457
- s2.setSelectionRange(pos, pos);
3458
- }
3459
- });
3460
- }
3461
- root.querySelectorAll(".uiv-catacc").forEach((node) => {
3462
- const btn = node;
3463
- const cat = btn.getAttribute("data-cat");
3464
- btn.addEventListener("click", () => {
3465
- if (this.expandedCats.has(cat)) this.expandedCats.delete(cat);
3466
- else this.expandedCats.add(cat);
3467
- this.renderBody();
3468
- });
3469
- });
3470
- root.querySelectorAll(".uiv-showall").forEach((node) => {
3471
- const btn = node;
3472
- const cat = btn.getAttribute("data-cat");
3473
- btn.addEventListener("click", () => {
3474
- this.showAllCats.add(cat);
3475
- this.renderBody();
3476
- });
3477
- });
3478
- const commit = (prop, value) => {
3479
- this.pushHistory();
3480
- this.commitValue([prop], value, true);
3481
- };
3482
- root.querySelectorAll(".uiv-gsel").forEach((node) => {
3483
- const sel = node;
3484
- sel.addEventListener("change", () => commit(sel.getAttribute("data-gprop"), sel.value));
3485
- });
3486
- root.querySelectorAll(".uiv-gcolor").forEach((node) => {
3487
- const inp = node;
3488
- const prop = inp.getAttribute("data-gprop");
3489
- inp.addEventListener("change", () => {
3490
- if (inp.value.toLowerCase() === toHexInput(this.liveVal(prop)).toLowerCase()) return;
3491
- commit(prop, inp.value);
3492
- });
3493
- });
3494
- root.querySelectorAll(".uiv-gtext").forEach((node) => {
3495
- const inp = node;
3496
- inp.addEventListener("change", () => commit(inp.getAttribute("data-gprop"), inp.value));
3497
- inp.addEventListener("keydown", (e) => {
3498
- if (e.key === "Enter") inp.blur();
3499
- });
3500
- });
3501
- root.querySelectorAll(".uiv-gscrub").forEach((node) => {
3502
- const handle = node;
3503
- const prop = handle.getAttribute("data-gprop");
3504
- const input = handle.parentElement.querySelector("input");
3505
- this.bindGenericScrub(handle, input, prop);
3506
- });
3507
- }
3508
- /** Default unit for a numeric property when the current value carries none —
3509
- * from the registry type, so a unitless number never gets a bogus "px". */
3510
- defaultUnit(prop) {
3511
- const t = cssMeta(prop)?.type;
3512
- if (t === "number" || t === "integer") return "";
3513
- if (t === "time") return "s";
3514
- if (t === "angle") return "deg";
3515
- if (t === "percentage") return "%";
3516
- return "px";
3517
- }
3518
- bindGenericScrub(handle, input, prop) {
3519
- handle.addEventListener("pointerdown", (e) => {
3520
- e.preventDefault();
3521
- const startX = e.clientX;
3522
- const m = /^(-?\d*\.?\d+)(\D*)$/.exec(input.value.trim());
3523
- const start2 = m ? parseFloat(m[1]) : 0;
3524
- const unit = m && m[2] ? m[2] : this.defaultUnit(prop);
3525
- const unitless = unit === "";
3526
- const step = unitless ? cssMeta(prop)?.type === "integer" ? 1 : 0.01 : 1;
3527
- let pushed = false;
3528
- try {
3529
- handle.setPointerCapture(e.pointerId);
3530
- } catch {
3531
- }
3532
- const move = (ev) => {
3533
- if (!pushed) {
3534
- this.pushHistory();
3535
- pushed = true;
3536
- }
3537
- let nv = start2 + Math.round(ev.clientX - startX) * step;
3538
- if (ev.shiftKey) nv = Math.round(nv / (10 * step)) * 10 * step;
3539
- nv = +nv.toFixed(unitless && step < 1 ? 2 : 0);
3540
- input.value = `${nv}${unit}`;
3541
- this.liveSet([prop], input.value);
3542
- };
3543
- const up = () => {
3544
- handle.removeEventListener("pointermove", move);
3545
- handle.removeEventListener("pointerup", up);
3546
- this.recordProps([prop]);
3547
- };
3548
- handle.addEventListener("pointermove", move);
3549
- handle.addEventListener("pointerup", up);
3550
- });
3551
- }
3552
2703
  bindControls() {
3553
2704
  const root = this.root;
3554
- this.bindGeneric();
3555
2705
  root.querySelectorAll(".uiv-tbtn").forEach((node) => {
3556
2706
  const btn = node;
3557
2707
  const prop = btn.getAttribute("data-prop");
@@ -3719,8 +2869,8 @@ var Uivisor = class {
3719
2869
  const btn = node;
3720
2870
  const bp = btn.getAttribute("data-bp");
3721
2871
  btn.addEventListener("click", () => {
3722
- const w = bp === "base" ? this.baseFrameWidth() : this.bpSystem().breakpoints.find((b) => b.name === bp)?.minWidth ?? 768;
3723
- this.setFrameWidth(w);
2872
+ this.pickedBp = bp;
2873
+ this.setFrameWidth(bp === "base" ? this.defaultFrameWidth() : this.scopeWidth(bp));
3724
2874
  this.reapplyScope();
3725
2875
  this.renderBody();
3726
2876
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uivisor",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "description": "Dev-only visual UI tweaker that turns mouse edits into a precise, breakpoint-aware prompt for your AI coding agent — without touching your source.",
6
6
  "license": "MIT",