Sam Atkins
d0f80b40b2
LibWeb: Reimplement CalculatedStyleValue as a calculation node tree
...
VALUES-4 defines the internal representation of `calc()` as a tree of
calculation nodes. ( https://www.w3.org/TR/css-values-4/#calc-internal )
VALUES-3 lacked any definition here, so we had our own ad-hoc
implementation based around the spec grammar. This commit replaces that
with CalculationNodes representing each possible node in the tree.
There are no intended functional changes, though we do now support
nested calc() which previously did not work. For example:
`width: calc( 42 * calc(3 + 7) );`
I have added an example of this to our test page.
A couple of the layout tests that used `calc()` now return values that
are 0.5px different from before. There's no visual difference, so I
have updated the tests to use the new results.
2023-04-13 09:53:47 +02:00
Sam Atkins
1352f8820b
LibWeb: Simplify CalculatedStyleValue types to match CSS-VALUES-4 :^)
...
Level 4 drops the limitations of what types can be a denominator, which
means `<calc-number-sum>`, `<calc-number-product>` and
`<calc-number-value>` all go away.
2023-04-13 09:53:47 +02:00
Luke Wilde
a744ae79ff
LibWeb: Implement the :defined
pseudo class
...
This selects an element if it is either a built-in element, or an
upgraded custom element.
2023-04-06 11:36:56 +02:00
MacDue
bed55ac669
LibWeb: Parse and plumb background-position-x/y
...
This parses the new background-position-x/y longhands and properly
hooks up them up. This requires converting PositionStyleValue to
just contain two EdgeStyleValues so that it can be easily expanded
into the longhands.
2023-04-03 07:10:33 +02:00
Sam Atkins
1280d70d74
LibWeb: Split CalculatedStyleValue out of StyleValue.{h,cpp}
2023-03-30 21:29:50 +02:00
Sam Atkins
d64ddeaec4
LibWeb: Move PositionValue into its own files
...
It's in Position.{h,cpp} because it represents a <position> in CSS, even
though it's currently named PositionValue to avoid collisions.
2023-03-30 21:29:50 +02:00
Sam Atkins
bcebca62d3
LibWeb: Move CSS::EdgeRect into its own files
...
Also remove the unused StyleValue::to_rect() because an EdgeRect is only
ever held by a RectStyleValue.
2023-03-30 21:29:50 +02:00
Sam Atkins
53a4a31af2
LibWeb: Remove CalculatedStyleValue from Length
2023-03-30 21:29:50 +02:00
Sam Atkins
7a1a97f153
LibWeb: Remove CalculatedStyleValue from Angle
...
...and replace it with AngleOrCalculated.
This has the nice bonus effect of actually handling `calc()` for angles
in a transform function. :^) (Previously we just would have asserted.)
2023-03-30 21:29:50 +02:00
Sam Atkins
7d08d5ad6f
LibWeb: Remove now-unused includes from StyleValue.cpp
...
And add them to all the places that relied on getting them transitively.
2023-03-25 16:56:04 +00:00
Sam Atkins
4c54c5d3dd
LibWeb: Split StyleValueList out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
3a2de67c7b
LibWeb: Split RectStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4bf59c59bb
LibWeb: Split UnsetStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1d948f7462
LibWeb: Split UnresolvedStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
87b7efa109
LibWeb: Split TimeStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
cd06b1341b
LibWeb: Split TransformationStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
66cb7edffb
LibWeb: Split TextDecorationStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9b834058ee
LibWeb: Split StringStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
08fa513887
LibWeb: Split ShadowStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
6cedf5e05b
LibWeb: Split ResolutionStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
b1ccd30b02
LibWeb: Split PositionStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4b711932cc
LibWeb: Split PercentageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
f98634586e
LibWeb: Split OverflowStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
7f6add1c6e
LibWeb: Split NumericStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
fba2dacc7a
LibWeb: Split ListStyleStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9a84151169
LibWeb: Split LengthStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1591352531
LibWeb: Split InitialStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
44c9a5b648
LibWeb: Split InheritStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
e61a5ad180
LibWeb: Split AbstractImageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
0f04fa2e6e
LibWeb: Split RadialGradientStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
c8ffd82cb7
LibWeb: Split LinearGradientStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
f30b042890
LibWeb: Split ConicGradientStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
35b240c87d
LibWeb: Split ImageStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
76de017a51
LibWeb: Split IdentifierStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
d39788556a
LibWeb: Split GridTrackSizeStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
486ef3df7f
LibWeb: Split GridTrackPlacementStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
402845fe00
LibWeb: Split GridTrackPlacementShorthandStyleValue out of StyleValue
2023-03-25 16:56:04 +00:00
Sam Atkins
675cb3b9da
LibWeb: Split GridAreaShorthandStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
4dc99e49a1
LibWeb: Split GridTemplateAreaStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
015885f068
LibWeb: Split FrequencyStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
87f920a299
LibWeb: Split FontStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
e24679f870
LibWeb: Split FlexFlowStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
273b9b4ca1
LibWeb: Split FlexStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
89ed8e59f9
LibWeb: Split FilterValueListStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9436b7de83
LibWeb: Split ContentStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
77b2826402
LibWeb: Split ColorStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
66bc816284
LibWeb: Split BorderRadiusStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
25114c159d
LibWeb: Split BorderRadiusShorthandStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
1c03bc7a6f
LibWeb: Split BorderStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00
Sam Atkins
9d5296889f
LibWeb: Split BackgroundSizeStyleValue out of StyleValue.{h,cpp}
2023-03-25 16:56:04 +00:00