Skip to content

Commit 28fcae0

Browse files
arav-indeps1lon
andauthored
Add support for SVG transformOrigin prop (#26130)
Co-authored-by: eps1lon <[email protected]>
1 parent 3ff1540 commit 28fcae0

File tree

4 files changed

+64
-1
lines changed

4 files changed

+64
-1
lines changed

fixtures/attribute-behavior/AttributeTableSnapshot.md

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## `about` (on `<div>` inside `<div>`)
1+
## `about` (on `<div>` inside `<div>`)
22
| Test Case | Flags | Result |
33
| --- | --- | --- |
44
| `about=(string)`| (changed)| `"a string"` |
@@ -11373,6 +11373,56 @@
1137311373
| `transform=(null)`| (initial)| `[]` |
1137411374
| `transform=(undefined)`| (initial)| `[]` |
1137511375

11376+
## `transform-origin` (on `<svg>` inside `<div>`)
11377+
| Test Case | Flags | Result |
11378+
| --- | --- | --- |
11379+
| `transform-origin=(string)`| (changed, warning)| `"a string"` |
11380+
| `transform-origin=(empty string)`| (changed, warning)| `<empty string>` |
11381+
| `transform-origin=(array with string)`| (changed, warning)| `"string"` |
11382+
| `transform-origin=(empty array)`| (changed, warning)| `<empty string>` |
11383+
| `transform-origin=(object)`| (changed, warning)| `"result of toString()"` |
11384+
| `transform-origin=(numeric string)`| (changed, warning)| `"42"` |
11385+
| `transform-origin=(-1)`| (changed, warning)| `"-1"` |
11386+
| `transform-origin=(0)`| (changed, warning)| `"0"` |
11387+
| `transform-origin=(integer)`| (changed, warning)| `"1"` |
11388+
| `transform-origin=(NaN)`| (changed, warning)| `"NaN"` |
11389+
| `transform-origin=(float)`| (changed, warning)| `"99.99"` |
11390+
| `transform-origin=(true)`| (initial, warning)| `<null>` |
11391+
| `transform-origin=(false)`| (initial, warning)| `<null>` |
11392+
| `transform-origin=(string 'true')`| (changed, warning)| `"true"` |
11393+
| `transform-origin=(string 'false')`| (changed, warning)| `"false"` |
11394+
| `transform-origin=(string 'on')`| (changed, warning)| `"on"` |
11395+
| `transform-origin=(string 'off')`| (changed, warning)| `"off"` |
11396+
| `transform-origin=(symbol)`| (initial, warning)| `<null>` |
11397+
| `transform-origin=(function)`| (initial, warning)| `<null>` |
11398+
| `transform-origin=(null)`| (initial, warning)| `<null>` |
11399+
| `transform-origin=(undefined)`| (initial, warning)| `<null>` |
11400+
11401+
## `transformOrigin` (on `<svg>` inside `<div>`)
11402+
| Test Case | Flags | Result |
11403+
| --- | --- | --- |
11404+
| `transformOrigin=(string)`| (changed)| `"a string"` |
11405+
| `transformOrigin=(empty string)`| (changed)| `<empty string>` |
11406+
| `transformOrigin=(array with string)`| (changed)| `"string"` |
11407+
| `transformOrigin=(empty array)`| (changed)| `<empty string>` |
11408+
| `transformOrigin=(object)`| (changed)| `"result of toString()"` |
11409+
| `transformOrigin=(numeric string)`| (changed)| `"42"` |
11410+
| `transformOrigin=(-1)`| (changed)| `"-1"` |
11411+
| `transformOrigin=(0)`| (changed)| `"0"` |
11412+
| `transformOrigin=(integer)`| (changed)| `"1"` |
11413+
| `transformOrigin=(NaN)`| (changed, warning)| `"NaN"` |
11414+
| `transformOrigin=(float)`| (changed)| `"99.99"` |
11415+
| `transformOrigin=(true)`| (initial, warning)| `<null>` |
11416+
| `transformOrigin=(false)`| (initial, warning)| `<null>` |
11417+
| `transformOrigin=(string 'true')`| (changed)| `"true"` |
11418+
| `transformOrigin=(string 'false')`| (changed)| `"false"` |
11419+
| `transformOrigin=(string 'on')`| (changed)| `"on"` |
11420+
| `transformOrigin=(string 'off')`| (changed)| `"off"` |
11421+
| `transformOrigin=(symbol)`| (initial, warning)| `<null>` |
11422+
| `transformOrigin=(function)`| (initial, warning)| `<null>` |
11423+
| `transformOrigin=(null)`| (initial)| `<null>` |
11424+
| `transformOrigin=(undefined)`| (initial)| `<null>` |
11425+
1137611426
## `type` (on `<button>` inside `<div>`)
1137711427
| Test Case | Flags | Result |
1137811428
| --- | --- | --- |

fixtures/attribute-behavior/src/attributes.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1981,6 +1981,16 @@ const attributes = [
19811981
overrideStringValue:
19821982
'translate(-10,-20) scale(2) rotate(45) translate(5,10)',
19831983
},
1984+
{
1985+
name: 'transform-origin',
1986+
tagName: 'svg',
1987+
read: getSVGAttribute('transform-origin'),
1988+
},
1989+
{
1990+
name: 'transformOrigin',
1991+
tagName: 'svg',
1992+
read: getSVGAttribute('transform-origin'),
1993+
},
19841994
{name: 'type', tagName: 'button', overrideStringValue: 'reset'},
19851995
{
19861996
name: 'type',

packages/react-dom-bindings/src/shared/DOMProperty.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,7 @@ const capitalize = (token: string) => token[1].toUpperCase();
521521
'text-anchor',
522522
'text-decoration',
523523
'text-rendering',
524+
'transform-origin',
524525
'underline-position',
525526
'underline-thickness',
526527
'unicode-bidi',

packages/react-dom-bindings/src/shared/possibleStandardNames.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,8 @@ const possibleStandardNames = {
421421
'text-rendering': 'textRendering',
422422
to: 'to',
423423
transform: 'transform',
424+
transformorigin: 'transformOrigin',
425+
'transform-origin': 'transformOrigin',
424426
typeof: 'typeof',
425427
u1: 'u1',
426428
u2: 'u2',

0 commit comments

Comments
 (0)