Skip to content

Commit 2782299

Browse files
Merge branch '2026.1' into 2026.x
2 parents ad5b2bf + d944f35 commit 2782299

792 files changed

Lines changed: 3283 additions & 30318 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

assets/build/api/docs.jsonopenapi.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

assets/js/src/core/components/background/background.styles.ts

Lines changed: 76 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,18 @@ export const appIntro = keyframes`
4141
`
4242

4343
const orbitTL = keyframes`
44-
from { transform: translate(-50%, -50%) rotate(0deg) translateX(340px); }
45-
to { transform: translate(-50%, -50%) rotate(360deg) translateX(340px); }
44+
from { transform: translate(-50%, -50%) rotate(0deg) translateX(240px); }
45+
to { transform: translate(-50%, -50%) rotate(360deg) translateX(240px); }
4646
`
4747

4848
const orbitBL = keyframes`
49-
from { transform: translate(-50%, -50%) rotate(120deg) translateX(220px); }
50-
to { transform: translate(-50%, -50%) rotate(480deg) translateX(220px); }
49+
from { transform: translate(-50%, -50%) rotate(120deg) translateX(150px); }
50+
to { transform: translate(-50%, -50%) rotate(480deg) translateX(150px); }
5151
`
5252

5353
const orbitBR = keyframes`
54-
from { transform: translate(-50%, -50%) rotate(240deg) translateX(400px); }
55-
to { transform: translate(-50%, -50%) rotate(600deg) translateX(400px); }
54+
from { transform: translate(-50%, -50%) rotate(240deg) translateX(280px); }
55+
to { transform: translate(-50%, -50%) rotate(600deg) translateX(280px); }
5656
`
5757

5858
// ---------------------------------------------------------------------------
@@ -92,32 +92,43 @@ export const useStyle = createStyles(({ css }, { phase, backgroundShade }: Style
9292
9393
.background-figure {
9494
position: absolute;
95-
filter: blur(310px);
95+
will-change: transform;
96+
flex-shrink: 0;
9697
9798
${isOrbiting
9899
? css`
100+
opacity: 0.7;
99101
top: 50%;
100102
left: 50%;
101103
`
102104
: css`
103-
transition: top 1200ms ease, left 1200ms ease, transform 1200ms ease;
105+
transition:
106+
top 1200ms ease,
107+
left 1200ms ease,
108+
transform 1200ms ease,
109+
width 1200ms ease,
110+
height 1200ms ease,
111+
border-radius 1200ms ease,
112+
opacity 1200ms ease;
104113
`
105114
}
106115
107116
&--top-left {
108-
width: 1324px;
109-
height: 1324px;
110-
flex-shrink: 0;
111-
border-radius: 1324px;
112117
background: rgba(55, 217, 243, 0.20);
113118
114119
${isOrbiting
115120
? css`
121+
width: 794px;
122+
height: 794px;
123+
border-radius: 794px;
116124
animation:
117125
${orbitTL} 11s linear infinite,
118126
${colorPulse} 6s linear 0s infinite;
119127
`
120128
: css`
129+
width: 1324px;
130+
height: 1324px;
131+
border-radius: 1324px;
121132
top: -80%;
122133
left: -30%;
123134
transform: rotate(65.637deg);
@@ -126,19 +137,21 @@ export const useStyle = createStyles(({ css }, { phase, backgroundShade }: Style
126137
}
127138
128139
&--bottom-left {
129-
width: 651.152px;
130-
height: 1503.398px;
131-
flex-shrink: 0;
132-
border-radius: 1503.398px;
133140
background: #FDFFFF;
134141
135142
${isOrbiting
136143
? css`
144+
width: 390.69px;
145+
height: 902.04px;
146+
border-radius: 902.04px;
137147
animation:
138148
${orbitBL} 9s linear infinite,
139149
${colorPulse} 6s linear -2s infinite;
140150
`
141151
: css`
152+
width: 651.152px;
153+
height: 1503.398px;
154+
border-radius: 1503.398px;
142155
top: 0;
143156
left: 0;
144157
transform: rotate(28.303deg);
@@ -147,31 +160,49 @@ export const useStyle = createStyles(({ css }, { phase, backgroundShade }: Style
147160
}
148161
149162
&--bottom-right {
150-
width: 1642px;
151-
height: 686px;
152-
flex-shrink: 0;
153-
border-radius: 1642px;
154163
background: color-mix(in srgb, ${resolvedBackgroundShade} 42%, transparent);
155164
156165
${isOrbiting
157166
? css`
167+
width: 985.2px;
168+
height: 411.6px;
169+
border-radius: 985.2px;
158170
animation:
159171
${orbitBR} 14s linear infinite,
160172
${colorPulse} 6s linear -4s infinite;
161173
`
162174
: css`
175+
width: 1642px;
176+
height: 686px;
177+
border-radius: 1642px;
163178
top: 55%;
164179
left: 33%;
165180
transform: rotate(65.637deg);
166181
`
167182
}
168183
}
169184
}
185+
186+
@media (prefers-reduced-motion: reduce) {
187+
.background-figure {
188+
animation: none !important;
189+
}
190+
.background-figure--top-left {
191+
transform: translate(-50%, -50%) rotate(0deg) translateX(340px);
192+
}
193+
.background-figure--bottom-left {
194+
transform: translate(-50%, -50%) rotate(120deg) translateX(220px);
195+
}
196+
.background-figure--bottom-right {
197+
transform: translate(-50%, -50%) rotate(240deg) translateX(400px);
198+
}
199+
}
170200
`,
171201
backdropBlur: css`
172202
position: absolute;
173203
inset: 0;
174-
backdrop-filter: blur(20px);
204+
backdrop-filter: blur(90px);
205+
-webkit-backdrop-filter: blur(90px);
175206
pointer-events: none;
176207
`,
177208
logoImage: css` position: absolute;
@@ -190,9 +221,19 @@ export const useStyle = createStyles(({ css }, { phase, backgroundShade }: Style
190221
height: 400px;
191222
border-radius: 50%;
192223
background: rgba(253, 255, 255, 0.35);
193-
filter: blur(90px);
194-
animation: ${logoOrbitCW} 3s linear infinite;
224+
filter: blur(75px);
195225
pointer-events: none;
226+
will-change: transform;
227+
228+
${isOrbiting
229+
? css`animation: ${logoOrbitCW} 3s linear infinite;`
230+
: css`transform: translate(-50%, -50%) rotate(0deg) translateX(80px);`
231+
}
232+
233+
@media (prefers-reduced-motion: reduce) {
234+
animation: none;
235+
transform: translate(-50%, -50%) rotate(0deg) translateX(80px);
236+
}
196237
`,
197238
logoOrbitCCW: css`
198239
position: absolute;
@@ -202,9 +243,19 @@ export const useStyle = createStyles(({ css }, { phase, backgroundShade }: Style
202243
height: 400px;
203244
border-radius: 50%;
204245
background: rgba(253, 255, 255, 0.35);
205-
filter: blur(90px);
206-
animation: ${logoOrbitCCW} 4s linear infinite;
246+
filter: blur(75px);
207247
pointer-events: none;
248+
will-change: transform;
249+
250+
${isOrbiting
251+
? css`animation: ${logoOrbitCCW} 4s linear infinite;`
252+
: css`transform: translate(-50%, -50%) rotate(180deg) translateX(80px);`
253+
}
254+
255+
@media (prefers-reduced-motion: reduce) {
256+
animation: none;
257+
transform: translate(-50%, -50%) rotate(180deg) translateX(80px);
258+
}
208259
`
209260
}
210261
}, { hashPriority: 'low' })

assets/js/src/core/components/background/background.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ const Background = ({ phase = 'idle' }: BackgroundProps): React.JSX.Element => {
4343
<div className='background-figure background-figure--bottom-left'></div>
4444
<div className='background-figure background-figure--bottom-right'></div>
4545
<div className='background-figure background-figure--top-left'></div>
46+
<div className={ styles.backdropBlur } />
4647
<div className={ styles.logoOrbitCW } />
4748
<div className={ styles.logoOrbitCCW } />
48-
<div className={ styles.backdropBlur } />
4949
<img
5050
alt="Logo"
5151
className={ styles.logoImage }
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* This source file is available under the terms of the
3+
* Pimcore Open Core License (POCL)
4+
* Full copyright and license information is available in
5+
* LICENSE.md which is distributed with this source code.
6+
*
7+
* @copyright Copyright (c) Pimcore GmbH (https://www.pimcore.com)
8+
* @license Pimcore Open Core License (POCL)
9+
*/
10+
11+
export const transformLanguage = (lang: string): string | null => lang === '-' ? null : lang
12+
13+
// Transforms a locale of type "en-US" into "en_US", and "en" into "EN"
14+
export const formatLocaleKey = (code: string): string => {
15+
if (!code || code === '-') return code
16+
17+
const [lang, region] = code.split('-')
18+
19+
if (!region) return lang.toUpperCase()
20+
21+
return `${lang}_${region}`
22+
}
23+
24+
// Transforms a locale of type "English [en]" into an object containing name and code
25+
export const parseLocaleLabel = (value?: string): { name: string, code: string } | null => {
26+
if (!value) return null
27+
28+
const openBracketIndex = value.lastIndexOf('[')
29+
const closeBracketIndex = value.lastIndexOf(']')
30+
31+
if (openBracketIndex === -1 || closeBracketIndex === -1 || closeBracketIndex < openBracketIndex) {
32+
return { name: value, code: '' }
33+
}
34+
35+
return {
36+
name: value?.slice(0, openBracketIndex)?.trim(),
37+
code: value?.slice(openBracketIndex + 1, closeBracketIndex)?.trim()
38+
}
39+
}

assets/js/src/core/components/language-selection/langguage-selection.styles.ts

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,17 @@ import { createStyles } from 'antd-style'
1212

1313
export const useStyles = createStyles(({ token, css }) => {
1414
return {
15+
dropdownPanel: css`
16+
min-width: 200px;
17+
background: ${token.colorBgElevated};
18+
border-radius: ${token.borderRadiusLG}px;
19+
box-shadow: ${token.boxShadowSecondary} !important;
20+
21+
.ant-dropdown-menu-item-selected {
22+
color: ${token.colorText} !important;
23+
}
24+
`,
25+
1526
languageSelect: css`
1627
display: flex;
1728
gap: 2px;
@@ -30,9 +41,50 @@ export const useStyles = createStyles(({ token, css }) => {
3041
display: flex;
3142
align-items: center;
3243
justify-content: center;
33-
text-transform: uppercase;
3444
gap: 4px;
3545
}
46+
`,
47+
48+
languageSelectValue: css`
49+
cursor: pointer;
50+
min-width: 40px;
51+
`,
52+
53+
languageDropdownItem: css`
54+
width: 100%;
55+
`,
56+
57+
inputWrapper: css`
58+
position: sticky;
59+
top: 0;
60+
z-index: 1;
61+
padding: ${token.paddingXS}px;
62+
background: ${token.colorBgElevated};
63+
border-radius: ${token.borderRadiusLG}px ${token.borderRadiusLG}px 0 0;
64+
`,
65+
66+
languageList: css`
67+
border-radius: 0 0 ${token.borderRadiusLG}px ${token.borderRadiusLG}px !important;
68+
max-height: 300px !important;
69+
overflow-y: auto;
70+
71+
.ant-dropdown-menu-title-content,
72+
.ant-dropdown-menu-title-content > span {
73+
width: 100% !important;
74+
}
75+
`,
76+
77+
icon: css`
78+
color: ${token.Colors.Neutral.Icon.colorIcon};
79+
`,
80+
81+
label: css`
82+
color: ${token.colorTextLabel};
83+
`,
84+
85+
emptyState: css`
86+
padding: ${token.paddingSM}px;
87+
color: ${token.colorTextLabel};
3688
`
3789
}
3890
})

0 commit comments

Comments
 (0)