1
0
mirror of https://github.com/roytam1/UXP.git synced 2026-05-27 13:28:54 +00:00
Commit Graph

74 Commits

Author SHA1 Message Date
Moonchild 5a832a6e24 Issue #2857 - Implement inset-block and inset-inline CSS shorthand
Resolves #2857
2025-12-24 09:58:37 +08:00
erixreyes 052b5d1ffa Issue #2489: Disallow percentage overflow and underflow 2025-07-29 10:13:28 +08:00
erixreyes 01b0b8251d Issue #2489: Allow color-mix() to differentiate color spaces 2025-07-29 10:12:38 +08:00
erixreyes eb7eacc565 Issue #2489: Remove unnecessary initializations 2025-07-29 10:11:49 +08:00
erixreyes a3cb799126 Issue #2489: Fix CSS color-mix() percentage parsing 2025-07-29 10:11:34 +08:00
erixreyes 7899850a19 Issue #2489: color-mix function parsing 2025-07-29 10:11:13 +08:00
erixreyes 6b938c48a5 Issue #2489: Include color-mix to avoid filtering 2025-07-29 10:10:16 +08:00
Francis Dominic Fajardo 53e6317bfb Issue #2828 - Part 1: Build and store the array of layer name tokens in the layer at-rules 2025-07-25 20:13:14 +08:00
erixreyes 906f05e606 Issue #2691: Utilize regex for spacing rules 2025-07-18 21:46:19 +08:00
erixreyes f2d6170830 Issue #2691: Refactored ParseSupportsSelector 2025-07-18 21:46:06 +08:00
erixreyes ea580ec54b Issue #2691: Improve Parser State Handling 2025-07-18 21:45:52 +08:00
erixreyes 224d1724b2 Issue #2691: Add special handling for nth-child expressions 2025-07-18 21:45:37 +08:00
erixreyes aaae6484ee Issue #2691: Enhance spacing logic for selector formatting 2025-07-18 21:45:20 +08:00
erixreyes 69556b7b1b Issue #2691: Improve token handling for selectors 2025-07-18 21:45:06 +08:00
erixreyes fcb4b3d01f Issue #2691: Add basic parentheses tracking to ParseSupportsSelector 2025-07-18 21:44:53 +08:00
erixreyes e9a7190529 Issue #2691: Adjusted the function to use ParseSelectorGroup 2025-07-18 21:44:40 +08:00
erixreyes 8be86514f0 Issue #2691: Implement ParseSupportsSelector 2025-07-18 21:44:26 +08:00
Moonchild 07cf2e643f Issue #2720 - Follow-up: Use temp value for duplicate color stop 2025-07-16 15:21:14 +08:00
erixreyes f4ffb1ec16 Issue #2124 - Adjust overflow parser to handle two values 2025-07-07 11:57:59 +08:00
Francis Dominic Fajardo 9105c58a30 Issue #2045 - Part 4: Parse "revert" in property values wherever "unset" is allowed 2025-07-07 11:20:42 +08:00
Francis Dominic Fajardo b0f0972314 Issue #2045 - Part 3: Implement cascade origin tracking to CSS parser
The CSS parser already knows the cascade origin, but it is using a different enum for storing it.
2025-07-07 11:20:23 +08:00
Moonchild 80b30a8177 Issue #2720 - Implement two-location color stop logic.
This allows for two-location color stops (`color x% y%`) which is shorthand
for `color x%, color y%` where both colors are equal. (pct/length accepted)
See code comment for the reason it's implemented the way it is.

Resolves #2720
2025-04-03 09:44:51 +08:00
Martok 2e3953399a Issue #1765 - Follow-Up: For parsing calc() in non-hue component of hsl/a(), explicitly expect <percentage> values 2025-01-23 09:38:03 +08:00
FranklinDM 9ad579bd35 Issue #2486 - Part 5: Fix parsing of nested layer names
This does not handle the merging of same-named layers, however.
2024-07-18 22:32:26 +08:00
FranklinDM 2fc2056be7 Issue #2486 - Part 4: Ensure layer statement rule is appended and invalid tokens are restored 2024-07-18 22:32:09 +08:00
FranklinDM 9630698d31 Issue #2486 - Part 2: Implement parser support for layer block and layer statements
This does not deal with layer specificity.
2024-07-18 22:31:34 +08:00
FranklinDM cac56b8e77 Issue #2486 - Part 1: Initial plumbing and CSSOM support for cascade layers 2024-07-18 22:31:18 +08:00
FranklinDM 2ba31f4e97 Issue #2522 - Part 2: Implement support for logical viewport units 2024-06-11 10:14:40 +08:00
FranklinDM 5c06335c5b Issue #2522 - Part 1: Alias small, large, and dynamic viewport units to base viewport 2024-06-11 10:14:27 +08:00
FranklinDM f41ad3aae5 Issue #2477 - Part 3: Logical box properties should accept auto values 2024-04-11 15:56:49 +08:00
FranklinDM bfe76f65db Issue #2477 - Part 2: Implement shorthand properties for [margin/padding][block/inline] 2024-04-11 15:56:31 +08:00
FranklinDM 1e73f1f2d2 Issue #2477 - Part 1: Implement a separate function for parsing pair box properties
This reuses existing logic from ParseGap.
2024-04-11 15:54:36 +08:00
FranklinDM 6ae0a69ac7 Issue #1765 - Part 3: Provided token type should be used in LookForTokenType
I didn't realize this immediately after moving the code into a method. Oops.
2023-05-15 09:14:24 +08:00
FranklinDM d678cc2c45 Issue #1765 - Part 2: Implement calc() parsing inside rgb/a() and the non-hue component of hsl/a()
This also adds a new helper method for checking the type of tokens that will be parsed after the current token, which is useful for determining the unit of values inside calc() functions.

Partially based on https://github.com/roytam1/UXP/commit/8a0897d23f5b51526f8a2c6ef63cb26968e6b985
2023-05-15 09:14:07 +08:00
FranklinDM 73a6dc3122 Issue #1765 - Part 1: Move ReduceNumberCalcOps struct up higher, rename IsCSSTokenCalcFunction to CSSParserImpl::IsCalcFunctionToken 2023-05-15 09:13:47 +08:00
FranklinDM 91d2b6f4cf Issue #1592 - Part 6: Allow pseudo-classes with a forgiving selector list argument to follow pseudo-elements
Pseudo-classes with a forgiving selector list argument are allowed to follow a pseudo-element, but must treat any selector that is not of the same type as invalid. It doesn't make any sense, but that's the behavior of other tainted browsers.
2023-03-24 09:12:00 +08:00
FranklinDM 92b31dd255 Issue #1592 - Part 3: Ensure only tree-abiding pseudo-elements will follow ::slotted() 2023-03-24 09:10:42 +08:00
FranklinDM 77ad970db6 Issue #1592 - Part 2: Parse ::slotted() pseudo-element as if it were a pseudo-class
- Block slot elements from being matched by ::slotted
- Ensure ::slotted() is serialized as a pseudo-element
- Add pref to control whether the pseudo-class is enabled
2023-03-24 09:07:36 +08:00
FranklinDM ab63b7b946 Issue #1592 - Part 1c: Pass SelectorParsingFlags as a reference 2023-03-24 09:04:18 +08:00
FranklinDM ef36c56593 Issue #2137 - Part 4: Fix namespace regression 2023-03-12 07:09:56 +08:00
FranklinDM b257a71cce Issue #2137 - Part 3: Don't always use the internal pseudo-class for handling negations 2023-03-12 07:09:41 +08:00
FranklinDM 3bb3c193d0 Issue #2137 - Part 2: Implement SelectorParsingFlags and use it to pass info around 2023-03-12 07:09:22 +08:00
FranklinDM 82fa9fb80b Issue #2137 - Part 1: Modify :not() selector to accept a complex selector list 2023-03-12 07:09:00 +08:00
Martok 2b903a20b3 Issue #2143 - Implement CSS env() Environment Variables 2023-03-07 11:17:39 +08:00
FranklinDM 21d468ee65 Issue #2136 - Part 1: Implement CSS inset property 2023-03-06 16:27:53 +08:00
FranklinDM 439c671b26 Issue #2078 - Follow-up: Propagate combinator restriction to :is()/:where()
Based on spec discussion: https://github.com/w3c/csswg-drafts/issues/5093
2023-02-23 21:15:40 +08:00
FranklinDM 53f5905381 Issue #2078 - Follow-up: Move isForgiving check to ParsePseudoClassWithSelectorListArg 2023-02-23 21:14:58 +08:00
FranklinDM 9037d5662d Issue #1593 - Follow-up: Accept only a single selector in the argument of :host/:host-context
Current spec says these two pseudo-classes accept only a single compound selector:
:host( <compound-selector> )
:host-context( <compound-selector> )
2023-02-22 07:07:39 +08:00
FranklinDM 6d77f755da Issue #2078 - Part 6: Replace empty list head with the next non-empty list for forgiving selector lists
What happens here if aListHead is an empty selector list:
(1) next selector group is parsed and continues to the next iteration if it's empty or invalid
(2) if we're a forgiving selector list and aListHead is empty, replace it with the selector group that we've just parsed
(3) step 1 ignores invalid/empty, so we assert that step 2 should never have an empty selector list
2023-02-22 07:06:24 +08:00
FranklinDM 453b715ef6 Issue #2078 - Part 1: Update CSS rule processor to handle :is() and :where() CSS pseudo-classes
This modifies selector list parsing to accommodate being "forgiving". Aliases for the :is selector's former names were also included. Note that the older and prefixed variant `-moz-any` remains unforgiving.
2023-02-22 07:04:49 +08:00