@porsche-design-system/components-react 3.11.0 → 3.12.0-rc.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.
- package/CHANGELOG.md +34 -0
- package/esm/lib/components/icon.wrapper.d.ts +1 -1
- package/esm/lib/components/inline-notification.wrapper.d.ts +1 -1
- package/esm/lib/components/tag.wrapper.d.ts +1 -1
- package/esm/lib/types.d.ts +3 -0
- package/package.json +2 -2
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +313 -515
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +3 -5
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +3 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.cjs +3 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.cjs +3 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/loading-message.cjs +11 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +4 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.cjs +3 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +4 -1
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +313 -516
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +3 -5
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +3 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +3 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +3 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/loading-message.mjs +8 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +4 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.mjs +3 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +4 -1
- package/ssr/esm/lib/dsr-components/button-pure.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/button.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/checkbox-wrapper.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/loading-message.d.ts +8 -0
- package/ssr/esm/lib/dsr-components/pin-code.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/radio-button-wrapper.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/switch.d.ts +1 -0
- package/ssr/esm/lib/types.d.ts +3 -0
|
@@ -3208,29 +3208,6 @@ const dropShadowHighStyle = {
|
|
|
3208
3208
|
boxShadow: `0px 8px 40px ${_dropShadowBackgroundColor}`, // filter: drop-shadow() causes visual glitches in Firefox in combination with frostedGlassStyle
|
|
3209
3209
|
};
|
|
3210
3210
|
|
|
3211
|
-
const themeLightStateFocus = '#1A44EA';
|
|
3212
|
-
|
|
3213
|
-
const getFocusStyle = (opts) => {
|
|
3214
|
-
const { borderRadius = 'small', offset = '2px' } = opts || {};
|
|
3215
|
-
const outlineOffset = offset === 'small' ? '2px' : offset === 'none' ? 0 : offset || '2px';
|
|
3216
|
-
const borderRadiusValue = borderRadius === 'small'
|
|
3217
|
-
? borderRadiusSmall
|
|
3218
|
-
: borderRadius === 'medium'
|
|
3219
|
-
? borderRadiusMedium
|
|
3220
|
-
: borderRadius || borderRadiusSmall;
|
|
3221
|
-
return {
|
|
3222
|
-
borderRadius: borderRadiusValue, // it's visually being reflected on both (when placed here), element and focus outline
|
|
3223
|
-
'&:focus': {
|
|
3224
|
-
outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
|
|
3225
|
-
outlineOffset,
|
|
3226
|
-
},
|
|
3227
|
-
// why? have a look at this article https://www.tpgi.com/focus-visible-and-backwards-compatibility/
|
|
3228
|
-
'&:focus:not(:focus-visible)': {
|
|
3229
|
-
outlineColor: 'transparent',
|
|
3230
|
-
},
|
|
3231
|
-
};
|
|
3232
|
-
};
|
|
3233
|
-
|
|
3234
3211
|
const fontFamily = "'Porsche Next','Arial Narrow',Arial,'Heiti SC',SimHei,sans-serif";
|
|
3235
3212
|
|
|
3236
3213
|
const fontHyphenationStyle = {
|
|
@@ -3825,8 +3802,9 @@ const motionEasingMap = {
|
|
|
3825
3802
|
};
|
|
3826
3803
|
const cssVariableTransitionDuration = '--p-transition-duration';
|
|
3827
3804
|
const cssVariableAnimationDuration = '--p-animation-duration';
|
|
3828
|
-
const getTransition = (cssProperty, duration = 'short', easing = 'base', delay) =>
|
|
3829
|
-
|
|
3805
|
+
const getTransition = (cssProperty, duration = 'short', easing = 'base', delay) => {
|
|
3806
|
+
return `${cssProperty} var(${cssVariableTransitionDuration}, ${motionDurationMap[duration]}) ${motionEasingMap[easing]}${delay ? ` var(${cssVariableTransitionDuration}, ${motionDurationMap[delay]})` : ''}`;
|
|
3807
|
+
};
|
|
3830
3808
|
const addImportantToRule = (value) => `${value} !important`;
|
|
3831
3809
|
const addImportantToEachRule = (input) => {
|
|
3832
3810
|
return Object.entries(input).reduce((result, [key, value]) => value === null
|
|
@@ -3840,13 +3818,25 @@ const addImportantToEachRule = (input) => {
|
|
|
3840
3818
|
const doGetThemedColors = (theme = 'light') => {
|
|
3841
3819
|
return getThemedColors(theme);
|
|
3842
3820
|
};
|
|
3843
|
-
const
|
|
3844
|
-
|
|
3821
|
+
const getFocusJssStyle = (theme, opts) => {
|
|
3822
|
+
const { offset = '2px', slotted = '', pseudo = false } = opts || {};
|
|
3823
|
+
const { focusColor } = getThemedColors(theme);
|
|
3824
|
+
const { focusColor: focusColorDark } = getThemedColors('dark');
|
|
3825
|
+
const slottedSelector = slotted && slotted !== true ? slotted : '';
|
|
3845
3826
|
return {
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
|
|
3827
|
+
[`&${slotted ? '(' : ''}${slottedSelector}::-moz-focus-inner${slotted ? ')' : ''}`]: {
|
|
3828
|
+
border: 0, // reset ua-style (for FF)
|
|
3829
|
+
},
|
|
3830
|
+
[`&${slotted ? '(' : ''}${slottedSelector}:focus${slotted ? ')' : ''}`]: {
|
|
3831
|
+
outline: 0, // reset ua-style (for older browsers)
|
|
3832
|
+
},
|
|
3833
|
+
[`&${slotted ? '(' : ''}${slottedSelector}:focus-visible${slotted ? ')' : ''}${pseudo ? '::before' : ''}`]: {
|
|
3834
|
+
outline: `${borderWidthBase} solid ${focusColor}`,
|
|
3835
|
+
outlineOffset: offset,
|
|
3836
|
+
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
3837
|
+
outlineColor: focusColorDark,
|
|
3838
|
+
}),
|
|
3839
|
+
},
|
|
3850
3840
|
};
|
|
3851
3841
|
};
|
|
3852
3842
|
// reset initial styles, e.g. in case link-pure is used with slotted anchor and nested within e.g. an accordion
|
|
@@ -3857,55 +3847,38 @@ const getResetInitialStylesForSlottedAnchor = {
|
|
|
3857
3847
|
borderRadius: 0,
|
|
3858
3848
|
background: 'transparent',
|
|
3859
3849
|
};
|
|
3860
|
-
const focusPseudoJssStyle = {
|
|
3861
|
-
outline: 0,
|
|
3862
|
-
'&::before': {
|
|
3863
|
-
// needs to be defined always to have correct custom click area
|
|
3864
|
-
content: '""',
|
|
3865
|
-
position: 'absolute',
|
|
3866
|
-
...getInsetJssStyle(),
|
|
3867
|
-
},
|
|
3868
|
-
'&:focus::before': {
|
|
3869
|
-
borderRadius: '1px', // TODO: why just 1px border-radius?
|
|
3870
|
-
outline: `${borderWidthBase} solid ${themeLightStateFocus}`,
|
|
3871
|
-
outlineOffset: '2px',
|
|
3872
|
-
},
|
|
3873
|
-
'&:focus:not(:focus-visible)::before': {
|
|
3874
|
-
outline: 0,
|
|
3875
|
-
},
|
|
3876
|
-
};
|
|
3877
3850
|
/**
|
|
3878
3851
|
* Returns a JSS style object that can be used to visually hide text in the browser, while still allowing it to be accessed by screen readers.
|
|
3879
3852
|
* @param {boolean} isHidden - A boolean value indicating whether the text should be hidden or not. Defaults to true.
|
|
3880
3853
|
* @param {JssStyle} isShownJssStyle - Additional styles applied when isHidden = false
|
|
3881
3854
|
* @returns {JssStyle} - A JSS style object containing styles depending on the value of isHidden and isShownJssStyle.
|
|
3882
3855
|
*/
|
|
3883
|
-
const getHiddenTextJssStyle = (isHidden = true, isShownJssStyle) =>
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3856
|
+
const getHiddenTextJssStyle = (isHidden = true, isShownJssStyle) => {
|
|
3857
|
+
return isHidden
|
|
3858
|
+
? {
|
|
3859
|
+
position: 'absolute',
|
|
3860
|
+
width: '1px',
|
|
3861
|
+
height: '1px',
|
|
3862
|
+
padding: 0,
|
|
3863
|
+
margin: '-1px',
|
|
3864
|
+
overflow: 'hidden',
|
|
3865
|
+
clip: 'rect(0,0,0,0)',
|
|
3866
|
+
whiteSpace: 'nowrap',
|
|
3867
|
+
}
|
|
3868
|
+
: {
|
|
3869
|
+
position: 'static',
|
|
3870
|
+
width: 'auto',
|
|
3871
|
+
height: 'auto',
|
|
3872
|
+
padding: 0,
|
|
3873
|
+
margin: 0,
|
|
3874
|
+
overflow: 'visible',
|
|
3875
|
+
clip: 'auto',
|
|
3876
|
+
whiteSpace: 'normal',
|
|
3877
|
+
...isShownJssStyle,
|
|
3878
|
+
};
|
|
3879
|
+
};
|
|
3880
|
+
// TODO: there should be a shared style util for modal, flyout and flyout-navigation instead of having this code in the
|
|
3881
|
+
// main bundle. Or don't share it at all, in case same transition concept isn't ideal to be shared from an UI point of view.
|
|
3909
3882
|
/**
|
|
3910
3883
|
* Generates JSS styles for a frosted glass background.
|
|
3911
3884
|
* @param {boolean} isVisible - Determines if the frosted glass effect is visible.
|
|
@@ -3917,7 +3890,7 @@ const getBackfaceVisibilityJssStyle = () => ({
|
|
|
3917
3890
|
const getBackdropJssStyle = (isVisible, zIndex, theme, duration = 'long') => {
|
|
3918
3891
|
return {
|
|
3919
3892
|
position: 'fixed',
|
|
3920
|
-
|
|
3893
|
+
inset: 0,
|
|
3921
3894
|
zIndex,
|
|
3922
3895
|
// TODO: background shading is missing in getThemedColors(theme).backgroundShading
|
|
3923
3896
|
background: isThemeDark(theme) ? themeDarkBackgroundShading : themeLightBackgroundShading,
|
|
@@ -4090,8 +4063,8 @@ const formatObjectOutput = (value) => {
|
|
|
4090
4063
|
const HEADING_TAGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
|
|
4091
4064
|
|
|
4092
4065
|
const getComponentCss$13 = (size, compact, open, theme) => {
|
|
4093
|
-
const { primaryColor, hoverColor,
|
|
4094
|
-
const { primaryColor: primaryColorDark, hoverColor: hoverColorDark,
|
|
4066
|
+
const { primaryColor, hoverColor, contrastLowColor } = getThemedColors(theme);
|
|
4067
|
+
const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, contrastLowColor: contrastLowColorDark, } = getThemedColors('dark');
|
|
4095
4068
|
return getCss({
|
|
4096
4069
|
'@global': {
|
|
4097
4070
|
':host': {
|
|
@@ -4118,7 +4091,6 @@ const getComponentCss$13 = (size, compact, open, theme) => {
|
|
|
4118
4091
|
width: '100%',
|
|
4119
4092
|
textDecoration: 'none',
|
|
4120
4093
|
border: 0,
|
|
4121
|
-
outline: 0,
|
|
4122
4094
|
margin: 0, // Removes default button margin on safari 15
|
|
4123
4095
|
gap: '24px',
|
|
4124
4096
|
background: 'transparent',
|
|
@@ -4163,15 +4135,7 @@ const getComponentCss$13 = (size, compact, open, theme) => {
|
|
|
4163
4135
|
}),
|
|
4164
4136
|
},
|
|
4165
4137
|
})),
|
|
4166
|
-
'
|
|
4167
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
4168
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
4169
|
-
borderColor: focusColorDark,
|
|
4170
|
-
}),
|
|
4171
|
-
},
|
|
4172
|
-
'&:not(:focus-visible)::before': {
|
|
4173
|
-
border: 0,
|
|
4174
|
-
},
|
|
4138
|
+
...getFocusJssStyle(theme, { pseudo: true, offset: '-2px' }),
|
|
4175
4139
|
},
|
|
4176
4140
|
},
|
|
4177
4141
|
heading: {
|
|
@@ -4330,18 +4294,19 @@ const getFontSizeText = (size) => {
|
|
|
4330
4294
|
return fontSizeTextMap[size];
|
|
4331
4295
|
};
|
|
4332
4296
|
|
|
4297
|
+
// TODO: why not using getHiddenTextJssStyle()?
|
|
4333
4298
|
// Needed for slotted anchor and hidden label, which then enlarges the hidden label to equal host size and indents the text to be visually hidden.
|
|
4334
4299
|
const getVisibilityJssStyle = (hideLabel) => {
|
|
4335
4300
|
return hideLabel
|
|
4336
4301
|
? {
|
|
4337
4302
|
position: 'absolute',
|
|
4338
|
-
|
|
4303
|
+
inset: 0,
|
|
4339
4304
|
whiteSpace: 'nowrap',
|
|
4340
|
-
textIndent: '-999999px',
|
|
4305
|
+
textIndent: '-999999px', // TODO: check if text-indent still works for RTL-mode in this case
|
|
4341
4306
|
}
|
|
4342
4307
|
: {
|
|
4343
4308
|
position: 'relative',
|
|
4344
|
-
|
|
4309
|
+
inset: 'auto',
|
|
4345
4310
|
whiteSpace: 'inherit',
|
|
4346
4311
|
textIndent: 0,
|
|
4347
4312
|
zIndex: 1, // fix Firefox bug on :hover (#2583)
|
|
@@ -4350,8 +4315,8 @@ const getVisibilityJssStyle = (hideLabel) => {
|
|
|
4350
4315
|
const offsetVertical = '-2px';
|
|
4351
4316
|
const offsetHorizontal = '-4px';
|
|
4352
4317
|
const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, hasSlottedAnchor, theme) => {
|
|
4353
|
-
const { primaryColor, disabledColor, hoverColor
|
|
4354
|
-
const { primaryColor: primaryColorDark, disabledColor: disabledColorDark, hoverColor: hoverColorDark,
|
|
4318
|
+
const { primaryColor, disabledColor, hoverColor } = getThemedColors(theme);
|
|
4319
|
+
const { primaryColor: primaryColorDark, disabledColor: disabledColorDark, hoverColor: hoverColorDark, } = getThemedColors('dark');
|
|
4355
4320
|
const hasIcon = hasVisibleIcon(icon, iconSource);
|
|
4356
4321
|
return {
|
|
4357
4322
|
'@global': {
|
|
@@ -4379,7 +4344,6 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
|
|
|
4379
4344
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
4380
4345
|
color: isDisabledOrLoading ? disabledColorDark : primaryColorDark,
|
|
4381
4346
|
}),
|
|
4382
|
-
outline: 0,
|
|
4383
4347
|
...textSmallStyle,
|
|
4384
4348
|
...mergeDeep(buildResponsiveStyles(stretch, (stretchValue) => ({
|
|
4385
4349
|
justifyContent: stretchValue ? 'space-between' : 'flex-start',
|
|
@@ -4416,19 +4380,10 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
|
|
|
4416
4380
|
}),
|
|
4417
4381
|
},
|
|
4418
4382
|
})),
|
|
4419
|
-
...(!hasSlottedAnchor && {
|
|
4420
|
-
'&:focus::before': {
|
|
4421
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
4422
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
4423
|
-
borderColor: focusColorDark,
|
|
4424
|
-
}),
|
|
4425
|
-
},
|
|
4426
|
-
'&:not(:focus-visible)::before': {
|
|
4427
|
-
border: 0,
|
|
4428
|
-
},
|
|
4429
|
-
}),
|
|
4383
|
+
...(!hasSlottedAnchor && getFocusJssStyle(theme, { pseudo: true, offset: '-2px' })),
|
|
4430
4384
|
},
|
|
4431
4385
|
label: {
|
|
4386
|
+
transition: getTransition('opacity'),
|
|
4432
4387
|
position: 'relative', // needed for hover state when icon="none" is set
|
|
4433
4388
|
},
|
|
4434
4389
|
...(hasIcon && {
|
|
@@ -4452,6 +4407,12 @@ const getLinkButtonPureStyles = (icon, iconSource, active, isDisabledOrLoading,
|
|
|
4452
4407
|
};
|
|
4453
4408
|
};
|
|
4454
4409
|
|
|
4410
|
+
const getFunctionalComponentLoadingMessageStyles = () => {
|
|
4411
|
+
return {
|
|
4412
|
+
loading: getHiddenTextJssStyle(),
|
|
4413
|
+
};
|
|
4414
|
+
};
|
|
4415
|
+
|
|
4455
4416
|
const getComponentCss$10 = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, theme) => {
|
|
4456
4417
|
const hasIcon = hasVisibleIcon(icon, iconSource);
|
|
4457
4418
|
return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, false, theme), {
|
|
@@ -4466,7 +4427,7 @@ const getComponentCss$10 = (icon, iconSource, active, isLoading, isDisabledOrLoa
|
|
|
4466
4427
|
...(!hasIcon &&
|
|
4467
4428
|
isLoading && {
|
|
4468
4429
|
label: {
|
|
4469
|
-
|
|
4430
|
+
opacity: 0, // use opacity for smooth transition between states and to keep accessible name available
|
|
4470
4431
|
},
|
|
4471
4432
|
icon: {
|
|
4472
4433
|
position: 'absolute',
|
|
@@ -4476,6 +4437,8 @@ const getComponentCss$10 = (icon, iconSource, active, isLoading, isDisabledOrLoa
|
|
|
4476
4437
|
height: fontLineHeight,
|
|
4477
4438
|
},
|
|
4478
4439
|
}),
|
|
4440
|
+
// .loading
|
|
4441
|
+
...getFunctionalComponentLoadingMessageStyles(),
|
|
4479
4442
|
}));
|
|
4480
4443
|
};
|
|
4481
4444
|
|
|
@@ -4528,7 +4491,7 @@ const getTileBaseStyles = (aspectRatio, isDisabled) => {
|
|
|
4528
4491
|
'::slotted': {
|
|
4529
4492
|
'&(picture)': {
|
|
4530
4493
|
position: 'absolute',
|
|
4531
|
-
|
|
4494
|
+
inset: 0,
|
|
4532
4495
|
},
|
|
4533
4496
|
'&(img)': {
|
|
4534
4497
|
height: '100%',
|
|
@@ -4556,8 +4519,8 @@ const getTileBaseStyles = (aspectRatio, isDisabled) => {
|
|
|
4556
4519
|
},
|
|
4557
4520
|
'image-container': {
|
|
4558
4521
|
position: 'absolute',
|
|
4522
|
+
inset: 0,
|
|
4559
4523
|
transition: getTransition('transform', 'moderate'),
|
|
4560
|
-
...getInsetJssStyle(),
|
|
4561
4524
|
},
|
|
4562
4525
|
content: {
|
|
4563
4526
|
position: 'absolute',
|
|
@@ -4584,7 +4547,7 @@ background, align, compact, hasGradient, isDisabled) => {
|
|
|
4584
4547
|
return mergeDeep(getTileBaseStyles(aspectRatio, isDisabled), {
|
|
4585
4548
|
'@global': {
|
|
4586
4549
|
p: {
|
|
4587
|
-
maxWidth:
|
|
4550
|
+
maxWidth: '34.375rem', // in this case rem unit makes sense to scale up available space
|
|
4588
4551
|
margin: 0,
|
|
4589
4552
|
...textLargeStyle,
|
|
4590
4553
|
hyphens: 'inherit',
|
|
@@ -4688,7 +4651,6 @@ const getLinkButtonStyles = (icon, iconSource, variant, hideLabel, isDisabledOrL
|
|
|
4688
4651
|
minWidth: '54px', // ensure space is already reserved until icon component is loaded (ssr)
|
|
4689
4652
|
minHeight: '54px', // ensure space is already reserved until icon component is loaded (ssr)
|
|
4690
4653
|
boxSizing: 'border-box',
|
|
4691
|
-
outline: 0,
|
|
4692
4654
|
textAlign: 'start',
|
|
4693
4655
|
WebkitAppearance: 'none', // iOS safari
|
|
4694
4656
|
appearance: 'none',
|
|
@@ -4704,18 +4666,7 @@ const getLinkButtonStyles = (icon, iconSource, variant, hideLabel, isDisabledOrL
|
|
|
4704
4666
|
padding: hideLabelValue ? '13px' : '13px 26px',
|
|
4705
4667
|
gap: hideLabelValue ? 0 : spacingStaticSmall,
|
|
4706
4668
|
})),
|
|
4707
|
-
...(!hasSlottedAnchor &&
|
|
4708
|
-
'&:focus::before': {
|
|
4709
|
-
content: '""',
|
|
4710
|
-
position: 'fixed',
|
|
4711
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
4712
|
-
borderRadius: borderRadiusMedium,
|
|
4713
|
-
...getInsetJssStyle(-6),
|
|
4714
|
-
},
|
|
4715
|
-
'&:not(:focus-visible)::before': {
|
|
4716
|
-
border: 0,
|
|
4717
|
-
},
|
|
4718
|
-
}),
|
|
4669
|
+
...(!hasSlottedAnchor && getFocusJssStyle(theme)),
|
|
4719
4670
|
...(!isDisabledOrLoading &&
|
|
4720
4671
|
hoverMediaQuery({
|
|
4721
4672
|
'&:hover': {
|
|
@@ -4814,6 +4765,8 @@ const getComponentCss$_ = (icon, iconSource, variant, hideLabel, disabled, loadi
|
|
|
4814
4765
|
opacity: 0, // use opacity for smooth transition between states
|
|
4815
4766
|
}),
|
|
4816
4767
|
},
|
|
4768
|
+
// .loading
|
|
4769
|
+
...getFunctionalComponentLoadingMessageStyles(),
|
|
4817
4770
|
}));
|
|
4818
4771
|
};
|
|
4819
4772
|
|
|
@@ -4841,9 +4794,13 @@ const spacingMap = {
|
|
|
4841
4794
|
basic: gridBasicOffset,
|
|
4842
4795
|
extended: gridExtendedOffset,
|
|
4843
4796
|
};
|
|
4797
|
+
const backfaceVisibilityJssStyle = {
|
|
4798
|
+
backfaceVisibility: 'hidden',
|
|
4799
|
+
WebkitBackfaceVisibility: 'hidden',
|
|
4800
|
+
};
|
|
4844
4801
|
const getComponentCss$Z = (hasHeading, hasDescription, hasControlsSlot, headingSize, width, hasPagination, isInfinitePagination, alignHeader, theme) => {
|
|
4845
|
-
const { primaryColor, contrastMediumColor
|
|
4846
|
-
const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark
|
|
4802
|
+
const { primaryColor, contrastMediumColor } = getThemedColors(theme);
|
|
4803
|
+
const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark } = getThemedColors('dark');
|
|
4847
4804
|
const { canvasTextColor } = getHighContrastColors();
|
|
4848
4805
|
const isHeaderAlignCenter = alignHeader === 'center';
|
|
4849
4806
|
return getCss({
|
|
@@ -4867,15 +4824,11 @@ const getComponentCss$Z = (hasHeading, hasDescription, hasControlsSlot, headingS
|
|
|
4867
4824
|
},
|
|
4868
4825
|
}),
|
|
4869
4826
|
...addImportantToEachRule({
|
|
4870
|
-
'::slotted
|
|
4871
|
-
|
|
4872
|
-
|
|
4873
|
-
|
|
4874
|
-
|
|
4875
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
4876
|
-
outlineColor: focusColorDark,
|
|
4877
|
-
}),
|
|
4878
|
-
outlineOffset: '2px',
|
|
4827
|
+
'::slotted': {
|
|
4828
|
+
'&(*)': {
|
|
4829
|
+
borderRadius: `var(--p-carousel-border-radius, ${borderRadiusLarge})`,
|
|
4830
|
+
},
|
|
4831
|
+
...getFocusJssStyle(theme, { slotted: true }),
|
|
4879
4832
|
},
|
|
4880
4833
|
// TODO: maybe it's better to style with slot[name="heading"] and slot[name="description"] instead, then styles would be part of shadow dom
|
|
4881
4834
|
// h2,::slotted([slot=heading]),p,::slotted([slot=description])
|
|
@@ -4939,7 +4892,7 @@ const getComponentCss$Z = (hasHeading, hasDescription, hasControlsSlot, headingS
|
|
|
4939
4892
|
'skip-link': {
|
|
4940
4893
|
opacity: 0,
|
|
4941
4894
|
pointerEvents: 'none',
|
|
4942
|
-
'&:focus': {
|
|
4895
|
+
'&:focus-visible': {
|
|
4943
4896
|
opacity: 1,
|
|
4944
4897
|
pointerEvents: 'all',
|
|
4945
4898
|
},
|
|
@@ -4970,12 +4923,12 @@ const getComponentCss$Z = (hasHeading, hasDescription, hasControlsSlot, headingS
|
|
|
4970
4923
|
},
|
|
4971
4924
|
},
|
|
4972
4925
|
'&__list': {
|
|
4926
|
+
...backfaceVisibilityJssStyle,
|
|
4973
4927
|
display: 'flex',
|
|
4974
|
-
...getBackfaceVisibilityJssStyle(),
|
|
4975
4928
|
},
|
|
4976
4929
|
'&__slide': {
|
|
4930
|
+
...backfaceVisibilityJssStyle,
|
|
4977
4931
|
flexShrink: 0,
|
|
4978
|
-
...getBackfaceVisibilityJssStyle(),
|
|
4979
4932
|
transform: 'translateZ(0)', // fixes mobile safari flickering, https://github.com/nolimits4web/swiper/issues/3527#issuecomment-609088939
|
|
4980
4933
|
},
|
|
4981
4934
|
'&__sr': getHiddenTextJssStyle(), // appears in the DOM when sliding
|
|
@@ -5104,8 +5057,8 @@ const getThemedFormStateColors = (theme, state) => {
|
|
|
5104
5057
|
|
|
5105
5058
|
// TODO: move to form-styles.ts
|
|
5106
5059
|
const getSlottedCheckboxRadioButtonStyles = (state, isDisabled, isLoading, theme) => {
|
|
5107
|
-
const { primaryColor, contrastMediumColor, contrastHighColor, disabledColor
|
|
5108
|
-
const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark, contrastHighColor: contrastHighColorDark, disabledColor: disabledColorDark,
|
|
5060
|
+
const { primaryColor, contrastMediumColor, contrastHighColor, disabledColor } = getThemedColors(theme);
|
|
5061
|
+
const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark, contrastHighColor: contrastHighColorDark, disabledColor: disabledColorDark, } = getThemedColors('dark');
|
|
5109
5062
|
const { formStateColor, formStateHoverColor } = getThemedFormStateColors(theme, state);
|
|
5110
5063
|
const { formStateColor: formStateColorDark, formStateHoverColor: formStateHoverColorDark } = getThemedFormStateColors('dark', state);
|
|
5111
5064
|
const { canvasTextColor } = getHighContrastColors();
|
|
@@ -5130,7 +5083,6 @@ const getSlottedCheckboxRadioButtonStyles = (state, isDisabled, isLoading, theme
|
|
|
5130
5083
|
return {
|
|
5131
5084
|
'::slotted': {
|
|
5132
5085
|
'&(input)': {
|
|
5133
|
-
position: 'relative', // TODO: can be removed as soon as focus style was adjusted
|
|
5134
5086
|
width: fontLineHeight,
|
|
5135
5087
|
height: fontLineHeight,
|
|
5136
5088
|
font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
|
|
@@ -5142,8 +5094,8 @@ const getSlottedCheckboxRadioButtonStyles = (state, isDisabled, isLoading, theme
|
|
|
5142
5094
|
boxSizing: 'content-box',
|
|
5143
5095
|
background: `transparent 0% 0% / ${fontLineHeight}`,
|
|
5144
5096
|
transition: `${getTransition('background-color')}, ${getTransition('border-color')}`,
|
|
5145
|
-
border:
|
|
5146
|
-
outline: 0,
|
|
5097
|
+
border: `${borderWidthBase} solid ${uncheckedColor}`,
|
|
5098
|
+
outline: 0, // TODO: only relevant for VRT testing with forced states - prevents :focus style (in case getFocusJssStyle() condition is not matching)
|
|
5147
5099
|
...(disabledOrLoading
|
|
5148
5100
|
? {
|
|
5149
5101
|
pointerEvents: 'none', // to prevent form element becomes clickable/toggleable
|
|
@@ -5185,21 +5137,7 @@ const getSlottedCheckboxRadioButtonStyles = (state, isDisabled, isLoading, theme
|
|
|
5185
5137
|
transition: 'unset', // Fixes chrome bug where transition properties are stuck on hover
|
|
5186
5138
|
}),
|
|
5187
5139
|
})),
|
|
5188
|
-
...(!isDisabled && {
|
|
5189
|
-
// TODO: can be done with getFocusStyle() in the meantime
|
|
5190
|
-
'&(input:focus)::before': {
|
|
5191
|
-
content: '""',
|
|
5192
|
-
position: 'absolute',
|
|
5193
|
-
...getInsetJssStyle(-6),
|
|
5194
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
5195
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5196
|
-
borderColor: focusColorDark,
|
|
5197
|
-
}),
|
|
5198
|
-
},
|
|
5199
|
-
'&(input:focus:not(:focus-visible))::before': {
|
|
5200
|
-
borderColor: 'transparent',
|
|
5201
|
-
},
|
|
5202
|
-
}),
|
|
5140
|
+
...(!isDisabled && getFocusJssStyle(theme, { slotted: 'input' })),
|
|
5203
5141
|
},
|
|
5204
5142
|
};
|
|
5205
5143
|
};
|
|
@@ -5307,7 +5245,7 @@ const getComponentCss$Y = (hideLabel, state, isDisabled, isLoading, theme) => {
|
|
|
5307
5245
|
gridArea: '1/1',
|
|
5308
5246
|
borderRadius: borderRadiusSmall,
|
|
5309
5247
|
},
|
|
5310
|
-
// TODO: is it somehow useful possible to make following styles configurable by
|
|
5248
|
+
// TODO: is it somehow useful possible to make following styles configurable by parameter?
|
|
5311
5249
|
...(!isLoading && {
|
|
5312
5250
|
'&(input:checked)': {
|
|
5313
5251
|
backgroundImage: getCheckedSVGBackgroundImage$1(checkedIconColor),
|
|
@@ -5322,11 +5260,6 @@ const getComponentCss$Y = (hideLabel, state, isDisabled, isLoading, theme) => {
|
|
|
5322
5260
|
}),
|
|
5323
5261
|
},
|
|
5324
5262
|
}),
|
|
5325
|
-
...(!isDisabled && {
|
|
5326
|
-
'&(input:focus)::before': {
|
|
5327
|
-
borderRadius: borderRadiusMedium,
|
|
5328
|
-
},
|
|
5329
|
-
}),
|
|
5330
5263
|
},
|
|
5331
5264
|
})),
|
|
5332
5265
|
},
|
|
@@ -5367,6 +5300,8 @@ const getComponentCss$Y = (hideLabel, state, isDisabled, isLoading, theme) => {
|
|
|
5367
5300
|
...getFunctionalComponentStateMessageStyles(theme, state, {
|
|
5368
5301
|
gridColumn: '1/3',
|
|
5369
5302
|
}),
|
|
5303
|
+
// .loading
|
|
5304
|
+
...getFunctionalComponentLoadingMessageStyles(),
|
|
5370
5305
|
});
|
|
5371
5306
|
};
|
|
5372
5307
|
|
|
@@ -5425,7 +5360,7 @@ const getComponentCss$W = () => {
|
|
|
5425
5360
|
display: 'inline-block',
|
|
5426
5361
|
verticalAlign: 'top',
|
|
5427
5362
|
...addImportantToEachRule({
|
|
5428
|
-
outline: 0,
|
|
5363
|
+
outline: 0, // TODO: is it still necessary?
|
|
5429
5364
|
boxSizing: 'content-box', // needed for correct height calculation when padding is set on host (e.g. custom click area)
|
|
5430
5365
|
...getDimensionStyle,
|
|
5431
5366
|
...colorSchemeStyles,
|
|
@@ -5436,7 +5371,14 @@ const getComponentCss$W = () => {
|
|
|
5436
5371
|
display: 'block',
|
|
5437
5372
|
textDecoration: 'none',
|
|
5438
5373
|
...getDimensionStyle,
|
|
5439
|
-
|
|
5374
|
+
'&::before': {
|
|
5375
|
+
// needs to be defined always to have correct custom click area
|
|
5376
|
+
content: '""',
|
|
5377
|
+
position: 'absolute',
|
|
5378
|
+
inset: 0,
|
|
5379
|
+
borderRadius: '1px',
|
|
5380
|
+
},
|
|
5381
|
+
...getFocusJssStyle('light', { pseudo: true }), // TODO: we need to support theme
|
|
5440
5382
|
},
|
|
5441
5383
|
picture: {
|
|
5442
5384
|
display: 'block',
|
|
@@ -5722,7 +5664,7 @@ const getComponentCss$P = (isPrimaryScrollerVisible, isSecondaryScrollerVisible,
|
|
|
5722
5664
|
},
|
|
5723
5665
|
dialog: {
|
|
5724
5666
|
position: 'fixed',
|
|
5725
|
-
|
|
5667
|
+
inset: 0,
|
|
5726
5668
|
display: 'grid', // ua-style reset
|
|
5727
5669
|
width: 'auto', // ua-style reset and to ensure transition duration works correctly
|
|
5728
5670
|
height: '100vh', // ua-style reset
|
|
@@ -5734,6 +5676,7 @@ const getComponentCss$P = (isPrimaryScrollerVisible, isSecondaryScrollerVisible,
|
|
|
5734
5676
|
visibility: 'inherit', // ua-style reset
|
|
5735
5677
|
background: 'none', // ua-style reset
|
|
5736
5678
|
overflow: 'hidden', // ua-style reset, dialog shall never become scrollable, it's handled by custom scroll areas
|
|
5679
|
+
outline: 0, // ua-style reset
|
|
5737
5680
|
...(isPrimaryScrollerVisible
|
|
5738
5681
|
? {
|
|
5739
5682
|
transform: 'translate3d(0, 0, 0)',
|
|
@@ -5753,9 +5696,6 @@ const getComponentCss$P = (isPrimaryScrollerVisible, isSecondaryScrollerVisible,
|
|
|
5753
5696
|
transform: 'translate3d(100%, 0, 0)', // use correct transitions in rtl mode
|
|
5754
5697
|
}),
|
|
5755
5698
|
},
|
|
5756
|
-
'&:focus-visible': {
|
|
5757
|
-
outline: 'none', // ua-style reset
|
|
5758
|
-
},
|
|
5759
5699
|
'&::backdrop': {
|
|
5760
5700
|
// to improve browser backwards compatibility we visually style the backdrop on the :host,
|
|
5761
5701
|
// although it's not on the #top-layer like it would be for modern browsers supporting ::backdrop
|
|
@@ -5849,8 +5789,8 @@ const getContentJssStyle = () => {
|
|
|
5849
5789
|
const frostedGlassBackgroundColorLight = 'rgba(238, 239, 242, 0.79)';
|
|
5850
5790
|
const frostedGlassBackgroundColorDark = 'rgba(33, 34, 37, 0.79)';
|
|
5851
5791
|
const getComponentCss$O = (isSecondaryScrollerVisible, theme) => {
|
|
5852
|
-
const { primaryColor, backgroundSurfaceColor,
|
|
5853
|
-
const { primaryColor: primaryColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark,
|
|
5792
|
+
const { primaryColor, backgroundSurfaceColor, hoverColor } = getThemedColors(theme);
|
|
5793
|
+
const { primaryColor: primaryColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, hoverColor: hoverColorDark, } = getThemedColors('dark');
|
|
5854
5794
|
const frostedGlassBackgroundColor = isThemeDark(theme)
|
|
5855
5795
|
? frostedGlassBackgroundColorDark
|
|
5856
5796
|
: frostedGlassBackgroundColorLight;
|
|
@@ -5886,56 +5826,49 @@ const getComponentCss$O = (isSecondaryScrollerVisible, theme) => {
|
|
|
5886
5826
|
'::slotted(:is(h1, h2, h3, h4, h5, h6):not(:first-child))': addImportantToEachRule({
|
|
5887
5827
|
margin: `calc(${spacingFluidMedium} - ${spacingFluidXSmall}) 0 0`, // spacingFluidXSmall to compensate default gap
|
|
5888
5828
|
}),
|
|
5889
|
-
'::slotted
|
|
5890
|
-
|
|
5891
|
-
margin: 0,
|
|
5892
|
-
color: primaryColor,
|
|
5893
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5894
|
-
color: primaryColorDark,
|
|
5895
|
-
}),
|
|
5896
|
-
}),
|
|
5897
|
-
// TODO: how can we easily re-use getHoverStyle() and getFocusStyle() with ::slotted(a) selector?
|
|
5898
|
-
'::slotted(a)': {
|
|
5899
|
-
...addImportantToEachRule({
|
|
5829
|
+
'::slotted': addImportantToEachRule({
|
|
5830
|
+
'&(p)': {
|
|
5900
5831
|
...textSmallStyle,
|
|
5901
|
-
|
|
5902
|
-
display: 'block',
|
|
5903
|
-
textDecoration: 'none',
|
|
5904
|
-
cursor: 'pointer',
|
|
5832
|
+
margin: 0,
|
|
5905
5833
|
color: primaryColor,
|
|
5906
|
-
borderRadius: borderRadiusSmall,
|
|
5907
|
-
marginLeft: `-${spacingStaticXSmall}`,
|
|
5908
|
-
marginRight: `-${spacingStaticXSmall}`,
|
|
5909
|
-
padding: `2px ${spacingStaticXSmall}`,
|
|
5910
|
-
transition: `background var(${cssVariableTransitionDuration}, ${motionDurationShort}) ${motionEasingBase}`,
|
|
5911
5834
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5912
5835
|
color: primaryColorDark,
|
|
5913
5836
|
}),
|
|
5914
|
-
}
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5837
|
+
},
|
|
5838
|
+
'&(a)': {
|
|
5839
|
+
...{
|
|
5840
|
+
...textSmallStyle,
|
|
5841
|
+
alignSelf: 'flex-start',
|
|
5842
|
+
display: 'block',
|
|
5843
|
+
textDecoration: 'none',
|
|
5844
|
+
cursor: 'pointer',
|
|
5845
|
+
color: primaryColor,
|
|
5846
|
+
borderRadius: borderRadiusSmall,
|
|
5847
|
+
marginLeft: `-${spacingStaticXSmall}`,
|
|
5848
|
+
marginRight: `-${spacingStaticXSmall}`,
|
|
5849
|
+
padding: `2px ${spacingStaticXSmall}`,
|
|
5850
|
+
transition: `background var(${cssVariableTransitionDuration}, ${motionDurationShort}) ${motionEasingBase}`,
|
|
5851
|
+
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5852
|
+
color: primaryColorDark,
|
|
5853
|
+
}),
|
|
5854
|
+
},
|
|
5855
|
+
},
|
|
5856
|
+
'&(a[aria-current])': {
|
|
5918
5857
|
background: hoverColor,
|
|
5919
5858
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5920
5859
|
background: hoverColorDark,
|
|
5921
5860
|
}),
|
|
5861
|
+
},
|
|
5862
|
+
...hoverMediaQuery({
|
|
5863
|
+
// TODO: how can we easily re-use getHoverStyle() with ::slotted(a) selector?
|
|
5864
|
+
'&(a:hover)': {
|
|
5865
|
+
background: hoverColor,
|
|
5866
|
+
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5867
|
+
background: hoverColorDark,
|
|
5868
|
+
}),
|
|
5869
|
+
},
|
|
5922
5870
|
}),
|
|
5923
|
-
|
|
5924
|
-
'::slotted(a[aria-current])': addImportantToEachRule({
|
|
5925
|
-
background: hoverColor,
|
|
5926
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5927
|
-
background: hoverColorDark,
|
|
5928
|
-
}),
|
|
5929
|
-
}),
|
|
5930
|
-
'::slotted(a:focus)': addImportantToEachRule({
|
|
5931
|
-
outline: `${borderWidthBase} solid ${focusColor}`,
|
|
5932
|
-
outlineOffset: '-2px',
|
|
5933
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
5934
|
-
outlineColor: focusColorDark,
|
|
5935
|
-
}),
|
|
5936
|
-
}),
|
|
5937
|
-
'::slotted(a:focus:not(:focus-visible))': addImportantToEachRule({
|
|
5938
|
-
outlineColor: 'transparent',
|
|
5871
|
+
...getFocusJssStyle(theme, { slotted: 'a', offset: '-2px' }),
|
|
5939
5872
|
}),
|
|
5940
5873
|
},
|
|
5941
5874
|
button: {
|
|
@@ -5945,7 +5878,7 @@ const getComponentCss$O = (isSecondaryScrollerVisible, theme) => {
|
|
|
5945
5878
|
},
|
|
5946
5879
|
scroller: {
|
|
5947
5880
|
position: 'fixed',
|
|
5948
|
-
|
|
5881
|
+
inset: 0,
|
|
5949
5882
|
// "cssVariableTransitionDuration" ensures closing animation of secondary scroller is given when whole flyout-navigation gets closed
|
|
5950
5883
|
// "cssVariableVisibility" ensures secondary scroller is not tabbable when whole flyout-navigation is closed
|
|
5951
5884
|
...(isSecondaryScrollerVisible
|
|
@@ -6048,7 +5981,6 @@ const getComponentCss$N = (isOpen, position, hasFooter, hasSubFooter, theme) =>
|
|
|
6048
5981
|
'--pds-internal-grid-outer-column': `calc(${spacingFluidLarge} - ${gridGap})`,
|
|
6049
5982
|
'--pds-internal-grid-margin': `calc(${spacingFluidLarge} * -1)`,
|
|
6050
5983
|
justifyContent: isPositionStart ? 'flex-start' : 'flex-end',
|
|
6051
|
-
...getInsetJssStyle(),
|
|
6052
5984
|
...getBackdropJssStyle(isOpen, FLYOUT_Z_INDEX, theme),
|
|
6053
5985
|
...colorSchemeStyles,
|
|
6054
5986
|
...hostHiddenStyles,
|
|
@@ -6385,6 +6317,7 @@ const getComponentCss$I = (name, source, color, size, theme) => {
|
|
|
6385
6317
|
const isColorInherit = color === 'inherit';
|
|
6386
6318
|
const isSizeInherit = size === 'inherit';
|
|
6387
6319
|
const isDark = isThemeDark(theme);
|
|
6320
|
+
const animationName = `${isDark ? keyFramesDark : keyFramesLight}-${color}`;
|
|
6388
6321
|
return getCss({
|
|
6389
6322
|
'@global': {
|
|
6390
6323
|
':host': {
|
|
@@ -6411,7 +6344,7 @@ const getComponentCss$I = (name, source, color, size, theme) => {
|
|
|
6411
6344
|
}, {
|
|
6412
6345
|
filter: filterMap.dark[color],
|
|
6413
6346
|
})),
|
|
6414
|
-
WebkitAnimation: `${
|
|
6347
|
+
WebkitAnimation: `${animationName} 1ms`, // needed to enforce repaint in Safari if theme is switched programmatically
|
|
6415
6348
|
}),
|
|
6416
6349
|
...(isSizeInherit
|
|
6417
6350
|
? {
|
|
@@ -6430,7 +6363,7 @@ const getComponentCss$I = (name, source, color, size, theme) => {
|
|
|
6430
6363
|
}),
|
|
6431
6364
|
},
|
|
6432
6365
|
...(!isColorInherit && {
|
|
6433
|
-
[`@keyframes ${
|
|
6366
|
+
[`@keyframes ${animationName}`]: forceRerenderAnimationStyle,
|
|
6434
6367
|
}),
|
|
6435
6368
|
},
|
|
6436
6369
|
});
|
|
@@ -6520,8 +6453,6 @@ const getComponentCss$H = (state, hasAction, hasClose, theme) => {
|
|
|
6520
6453
|
};
|
|
6521
6454
|
|
|
6522
6455
|
const getComponentCss$G = (icon, iconSource, active, stretch, size, hideLabel, alignLabel, underline, hasSlottedAnchor, theme) => {
|
|
6523
|
-
const { focusColor } = getThemedColors(theme);
|
|
6524
|
-
const { focusColor: focusColorDark } = getThemedColors('dark');
|
|
6525
6456
|
return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, false, stretch, size, hideLabel, alignLabel, hasSlottedAnchor, theme), {
|
|
6526
6457
|
root: {
|
|
6527
6458
|
textDecoration: underline ? 'underline' : 'none',
|
|
@@ -6541,31 +6472,19 @@ const getComponentCss$G = (icon, iconSource, active, stretch, size, hideLabel, a
|
|
|
6541
6472
|
'&(a)::before': {
|
|
6542
6473
|
content: '""',
|
|
6543
6474
|
position: 'fixed',
|
|
6544
|
-
|
|
6545
|
-
bottom: offsetVertical,
|
|
6475
|
+
insetBlock: offsetVertical,
|
|
6546
6476
|
borderRadius: borderRadiusSmall,
|
|
6547
6477
|
...buildResponsiveStyles(hideLabel, (hideLabelValue) => ({
|
|
6548
|
-
|
|
6549
|
-
left: hideLabelValue ? offsetVertical : offsetHorizontal,
|
|
6478
|
+
insetInline: hideLabelValue ? offsetVertical : offsetHorizontal,
|
|
6550
6479
|
})),
|
|
6551
6480
|
},
|
|
6552
|
-
|
|
6553
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
6554
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
6555
|
-
borderColor: focusColorDark,
|
|
6556
|
-
}),
|
|
6557
|
-
},
|
|
6558
|
-
'&(a:focus:not(:focus-visible))::before': {
|
|
6559
|
-
border: 0,
|
|
6560
|
-
},
|
|
6481
|
+
...getFocusJssStyle(theme, { slotted: 'a', pseudo: true, offset: '-2px' }),
|
|
6561
6482
|
},
|
|
6562
6483
|
}),
|
|
6563
6484
|
}));
|
|
6564
6485
|
};
|
|
6565
6486
|
|
|
6566
6487
|
const getComponentCss$F = (icon, iconSource, variant, hideLabel, hasSlottedAnchor, theme) => {
|
|
6567
|
-
const { focusColor } = getThemedColors(theme);
|
|
6568
|
-
const { focusColor: focusColorDark } = getThemedColors('dark');
|
|
6569
6488
|
const { linkColor } = getHighContrastColors();
|
|
6570
6489
|
const isPrimary = variant === 'primary';
|
|
6571
6490
|
return getCss(mergeDeep(getLinkButtonStyles(icon, iconSource, variant, hideLabel, false, hasSlottedAnchor, theme), {
|
|
@@ -6598,22 +6517,10 @@ const getComponentCss$F = (icon, iconSource, variant, hideLabel, hasSlottedAncho
|
|
|
6598
6517
|
'&(a)::before': {
|
|
6599
6518
|
content: '""',
|
|
6600
6519
|
position: 'fixed',
|
|
6601
|
-
|
|
6602
|
-
|
|
6603
|
-
},
|
|
6604
|
-
// TODO: combine link-social-styles with link-button-styles and tabs-bar-styles
|
|
6605
|
-
'&(a::-moz-focus-inner)': {
|
|
6606
|
-
border: 0,
|
|
6607
|
-
},
|
|
6608
|
-
'&(a:focus)::before': {
|
|
6609
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
6610
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
6611
|
-
borderColor: focusColorDark,
|
|
6612
|
-
}),
|
|
6613
|
-
},
|
|
6614
|
-
'&(a:focus:not(:focus-visible))::before': {
|
|
6615
|
-
border: 0,
|
|
6520
|
+
inset: '-2px',
|
|
6521
|
+
borderRadius: borderRadiusSmall,
|
|
6616
6522
|
},
|
|
6523
|
+
...getFocusJssStyle(theme, { slotted: 'a', pseudo: true }),
|
|
6617
6524
|
},
|
|
6618
6525
|
}),
|
|
6619
6526
|
}));
|
|
@@ -6669,7 +6576,7 @@ const getComponentCss$E = (aspectRatio, weight, direction, hasDescription) => {
|
|
|
6669
6576
|
'link-overlay': {
|
|
6670
6577
|
// covers entire tile, used for expanded click-area only
|
|
6671
6578
|
position: 'fixed',
|
|
6672
|
-
|
|
6579
|
+
inset: 0,
|
|
6673
6580
|
},
|
|
6674
6581
|
});
|
|
6675
6582
|
};
|
|
@@ -6677,7 +6584,7 @@ const getComponentCss$E = (aspectRatio, weight, direction, hasDescription) => {
|
|
|
6677
6584
|
const slottedAnchorSelector = `a[slot='${anchorSlot}']`;
|
|
6678
6585
|
const anchorJssStyle = {
|
|
6679
6586
|
position: 'absolute',
|
|
6680
|
-
|
|
6587
|
+
inset: 0,
|
|
6681
6588
|
zIndex: 1, // necessary to be on top of img
|
|
6682
6589
|
borderRadius: borderRadiusMedium,
|
|
6683
6590
|
};
|
|
@@ -6690,8 +6597,8 @@ const getMultilineEllipsis = (lineClamp) => {
|
|
|
6690
6597
|
};
|
|
6691
6598
|
};
|
|
6692
6599
|
const getComponentCss$D = (hasLikeButton, hasSlottedAnchor, aspectRatio, theme) => {
|
|
6693
|
-
const { primaryColor, contrastHighColor, backgroundSurfaceColor
|
|
6694
|
-
const { primaryColor: primaryColorDark, contrastHighColor: contrastHighColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark,
|
|
6600
|
+
const { primaryColor, contrastHighColor, backgroundSurfaceColor } = getThemedColors(theme);
|
|
6601
|
+
const { primaryColor: primaryColorDark, contrastHighColor: contrastHighColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, } = getThemedColors('dark');
|
|
6695
6602
|
return getCss({
|
|
6696
6603
|
'@global': {
|
|
6697
6604
|
':host': {
|
|
@@ -6712,17 +6619,7 @@ const getComponentCss$D = (hasLikeButton, hasSlottedAnchor, aspectRatio, theme)
|
|
|
6712
6619
|
...anchorJssStyle,
|
|
6713
6620
|
textIndent: '-999999px', // hide anchor label visually but still usable for a11y (only works in RTL-mode because of `overflow: hidden;` parent)
|
|
6714
6621
|
},
|
|
6715
|
-
|
|
6716
|
-
[`&(${slottedAnchorSelector}:focus)`]: {
|
|
6717
|
-
outline: `${borderWidthBase} solid ${focusColor}`,
|
|
6718
|
-
outlineOffset: '2px',
|
|
6719
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
6720
|
-
outlineColor: focusColorDark,
|
|
6721
|
-
}),
|
|
6722
|
-
},
|
|
6723
|
-
[`&(${slottedAnchorSelector}:focus:not(:focus-visible))`]: {
|
|
6724
|
-
outlineColor: 'transparent',
|
|
6725
|
-
},
|
|
6622
|
+
...getFocusJssStyle(theme, { slotted: slottedAnchorSelector }),
|
|
6726
6623
|
}),
|
|
6727
6624
|
[`&([slot="${headerSlot}"])`]: {
|
|
6728
6625
|
display: 'flex',
|
|
@@ -6761,7 +6658,7 @@ const getComponentCss$D = (hasLikeButton, hasSlottedAnchor, aspectRatio, theme)
|
|
|
6761
6658
|
...(!hasSlottedAnchor && {
|
|
6762
6659
|
anchor: {
|
|
6763
6660
|
...anchorJssStyle,
|
|
6764
|
-
...
|
|
6661
|
+
...getFocusJssStyle(theme),
|
|
6765
6662
|
},
|
|
6766
6663
|
}),
|
|
6767
6664
|
header: {
|
|
@@ -6825,7 +6722,7 @@ const getComponentCss$C = (...args) => {
|
|
|
6825
6722
|
'link-overlay': {
|
|
6826
6723
|
// covers entire tile, used for expanded click-area only
|
|
6827
6724
|
position: 'fixed',
|
|
6828
|
-
|
|
6725
|
+
inset: 0,
|
|
6829
6726
|
},
|
|
6830
6727
|
});
|
|
6831
6728
|
};
|
|
@@ -6856,7 +6753,15 @@ const getComponentCss$B = (size) => {
|
|
|
6856
6753
|
a: {
|
|
6857
6754
|
display: 'block',
|
|
6858
6755
|
textDecoration: 'none',
|
|
6859
|
-
|
|
6756
|
+
outline: 0,
|
|
6757
|
+
'&::before': {
|
|
6758
|
+
// needs to be defined always to have correct custom click area
|
|
6759
|
+
content: '""',
|
|
6760
|
+
position: 'absolute',
|
|
6761
|
+
inset: 0,
|
|
6762
|
+
borderRadius: '1px',
|
|
6763
|
+
},
|
|
6764
|
+
...getFocusJssStyle('light', { pseudo: true }), // TODO: we need to support theme
|
|
6860
6765
|
},
|
|
6861
6766
|
picture: {
|
|
6862
6767
|
display: 'block',
|
|
@@ -6919,7 +6824,7 @@ const getSlottedJssStyle = (marginValue, hasHeader, hasDismissButton) => {
|
|
|
6919
6824
|
},
|
|
6920
6825
|
...(!hasHeader && {
|
|
6921
6826
|
[`&(.${stretchToFullModalWidthClassName}:first-child)`]: {
|
|
6922
|
-
marginTop: hasDismissButton ?
|
|
6827
|
+
marginTop: hasDismissButton ? `${-marginValue / 16}rem` : marginPx,
|
|
6923
6828
|
},
|
|
6924
6829
|
}),
|
|
6925
6830
|
[`&(.${stretchToFullModalWidthClassName}:last-child)`]: {
|
|
@@ -6965,7 +6870,7 @@ const getComponentCss$A = (isOpen, isFullscreen, hasDismissButton, hasHeader, ha
|
|
|
6965
6870
|
},
|
|
6966
6871
|
'scroll-container': {
|
|
6967
6872
|
display: 'flex',
|
|
6968
|
-
|
|
6873
|
+
inset: 0, // TODO: is this still needed?
|
|
6969
6874
|
height: '100%',
|
|
6970
6875
|
overflowY: 'inherit',
|
|
6971
6876
|
alignItems: 'center',
|
|
@@ -6979,10 +6884,12 @@ const getComponentCss$A = (isOpen, isFullscreen, hasDismissButton, hasHeader, ha
|
|
|
6979
6884
|
transform: isOpen ? 'translateY(0%)' : 'translateY(25%)',
|
|
6980
6885
|
opacity: isOpen ? 1 : 0,
|
|
6981
6886
|
transition: `${getTransition('opacity', duration, easing)}, ${getTransition('transform', duration, easing)}`,
|
|
6982
|
-
paddingTop: hasDismissButton ?
|
|
6887
|
+
paddingTop: hasDismissButton ? '2rem' : contentPadding, // rem value needed to prevent overlapping of close button and contents in scaling mode
|
|
6983
6888
|
...(!hasFooter && { paddingBottom: contentPadding }),
|
|
6984
6889
|
background: backgroundColor,
|
|
6985
6890
|
outline: isHighContrastMode ? '1px solid transparent' : 0,
|
|
6891
|
+
// TODO: getFocusJssStyle() can't be re-used atm, but as soon as component is refactored to `<dialog />` then no
|
|
6892
|
+
// focus should be necessary at all because focus is auto forwarded to dismiss button.
|
|
6986
6893
|
// ::after to be above sticky footer without z-index games
|
|
6987
6894
|
'&:focus::after': {
|
|
6988
6895
|
content: '""',
|
|
@@ -6992,7 +6899,7 @@ const getComponentCss$A = (isOpen, isFullscreen, hasDismissButton, hasHeader, ha
|
|
|
6992
6899
|
...buildResponsiveStyles(isFullscreen, (fullscreenValue) => ({
|
|
6993
6900
|
borderRadius: fullscreenValue ? 0 : '12px',
|
|
6994
6901
|
borderColor: fullscreenValue ? primaryColor : darkThemePrimaryColor,
|
|
6995
|
-
|
|
6902
|
+
inset: fullscreenValue ? 0 : '-4px',
|
|
6996
6903
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
6997
6904
|
borderColor: darkThemePrimaryColor,
|
|
6998
6905
|
}),
|
|
@@ -7260,6 +7167,7 @@ const getSlottedTextFieldTextareaSelectStyles = (child, state, isLoading, theme,
|
|
|
7260
7167
|
}),
|
|
7261
7168
|
},
|
|
7262
7169
|
})),
|
|
7170
|
+
// TODO: getFocusJssStyle() can't be re-used because focus style differs for form elements
|
|
7263
7171
|
[`::slotted(${child}:focus)`]: {
|
|
7264
7172
|
borderColor: primaryColor,
|
|
7265
7173
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
@@ -7438,6 +7346,7 @@ const getInputStyles = (isDisabled, direction, isOpen, state, theme) => {
|
|
|
7438
7346
|
},
|
|
7439
7347
|
}),
|
|
7440
7348
|
...(!isDisabled && {
|
|
7349
|
+
// TODO: getFocusJssStyle() can't be re-used because focus style differs for form elements
|
|
7441
7350
|
'&:focus': {
|
|
7442
7351
|
borderColor: primaryColor,
|
|
7443
7352
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
@@ -7525,8 +7434,8 @@ const disabledCursorStyle = {
|
|
|
7525
7434
|
};
|
|
7526
7435
|
const hiddenStyle = { display: 'none' };
|
|
7527
7436
|
const getComponentCss$w = (activePage, pageTotal, showLastPage, theme) => {
|
|
7528
|
-
const { primaryColor, disabledColor, hoverColor
|
|
7529
|
-
const { primaryColor: primaryColorDark, disabledColor: disabledColorDark, hoverColor: hoverColorDark,
|
|
7437
|
+
const { primaryColor, disabledColor, hoverColor } = getThemedColors(theme);
|
|
7438
|
+
const { primaryColor: primaryColorDark, disabledColor: disabledColorDark, hoverColor: hoverColorDark, } = getThemedColors('dark');
|
|
7530
7439
|
return getCss({
|
|
7531
7440
|
'@global': {
|
|
7532
7441
|
':host': {
|
|
@@ -7604,9 +7513,9 @@ const getComponentCss$w = (activePage, pageTotal, showLastPage, theme) => {
|
|
|
7604
7513
|
whiteSpace: 'nowrap',
|
|
7605
7514
|
cursor: 'pointer',
|
|
7606
7515
|
color: primaryColor,
|
|
7607
|
-
outline: 0,
|
|
7608
7516
|
borderRadius: borderRadiusSmall,
|
|
7609
7517
|
borderColor: 'transparent', // default value is needed for smooth transition
|
|
7518
|
+
outline: 0, // TODO: only relevant for VRT testing with forced states - prevents :focus style
|
|
7610
7519
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
7611
7520
|
color: primaryColorDark,
|
|
7612
7521
|
}),
|
|
@@ -7619,16 +7528,6 @@ const getComponentCss$w = (activePage, pageTotal, showLastPage, theme) => {
|
|
|
7619
7528
|
}),
|
|
7620
7529
|
},
|
|
7621
7530
|
}),
|
|
7622
|
-
'&:not(.ellipsis):focus:focus-visible::before': {
|
|
7623
|
-
content: '""',
|
|
7624
|
-
position: 'absolute',
|
|
7625
|
-
...getInsetJssStyle(-4),
|
|
7626
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
7627
|
-
borderRadius: borderRadiusMedium,
|
|
7628
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
7629
|
-
borderColor: focusColorDark,
|
|
7630
|
-
}),
|
|
7631
|
-
},
|
|
7632
7531
|
'&[aria-current]': {
|
|
7633
7532
|
...disabledCursorStyle,
|
|
7634
7533
|
color: primaryColor,
|
|
@@ -7637,7 +7536,6 @@ const getComponentCss$w = (activePage, pageTotal, showLastPage, theme) => {
|
|
|
7637
7536
|
color: primaryColorDark,
|
|
7638
7537
|
borderColor: primaryColorDark,
|
|
7639
7538
|
}),
|
|
7640
|
-
'&:not(.ellipsis):focus::before': getInsetJssStyle(-6), // adjust for missing 2px border
|
|
7641
7539
|
},
|
|
7642
7540
|
'&[aria-disabled]': {
|
|
7643
7541
|
...disabledCursorStyle,
|
|
@@ -7646,6 +7544,8 @@ const getComponentCss$w = (activePage, pageTotal, showLastPage, theme) => {
|
|
|
7646
7544
|
color: disabledColorDark,
|
|
7647
7545
|
}),
|
|
7648
7546
|
},
|
|
7547
|
+
// TODO :not(.ellipsis) is only needed for VRT states tests to work properly
|
|
7548
|
+
'&:not(.ellipsis)': getFocusJssStyle(theme),
|
|
7649
7549
|
},
|
|
7650
7550
|
},
|
|
7651
7551
|
ellipsis: {
|
|
@@ -7745,6 +7645,8 @@ const getComponentCss$v = (hideLabel, state, isDisabled, isLoading, isWithinForm
|
|
|
7745
7645
|
...getFunctionalComponentLabelStyles(isDisabled, hideLabel, theme),
|
|
7746
7646
|
// .message
|
|
7747
7647
|
...getFunctionalComponentStateMessageStyles(theme, state),
|
|
7648
|
+
// .loading
|
|
7649
|
+
...getFunctionalComponentLoadingMessageStyles(),
|
|
7748
7650
|
});
|
|
7749
7651
|
};
|
|
7750
7652
|
|
|
@@ -7848,8 +7750,8 @@ const getDirectionArrowMap = (theme) => {
|
|
|
7848
7750
|
};
|
|
7849
7751
|
};
|
|
7850
7752
|
const getComponentCss$u = (direction, isNative, theme) => {
|
|
7851
|
-
const { hoverColor,
|
|
7852
|
-
const { hoverColor: hoverColorDark,
|
|
7753
|
+
const { hoverColor, backgroundColor, primaryColor, backgroundSurfaceColor } = getThemedColors(theme);
|
|
7754
|
+
const { hoverColor: hoverColorDark, primaryColor: primaryColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, } = getThemedColors('dark');
|
|
7853
7755
|
const shadowColor = 'rgba(0,0,0,0.3)';
|
|
7854
7756
|
return getCss({
|
|
7855
7757
|
'@global': {
|
|
@@ -7868,18 +7770,17 @@ const getComponentCss$u = (direction, isNative, theme) => {
|
|
|
7868
7770
|
},
|
|
7869
7771
|
button: {
|
|
7870
7772
|
display: 'block',
|
|
7871
|
-
position: 'relative',
|
|
7872
7773
|
WebkitAppearance: 'none', // iOS safari
|
|
7873
7774
|
appearance: 'none',
|
|
7874
7775
|
background: 'transparent',
|
|
7875
7776
|
border: 0,
|
|
7876
7777
|
padding: 0,
|
|
7877
|
-
outline: 0,
|
|
7878
7778
|
cursor: 'pointer',
|
|
7879
7779
|
...textSmallStyle,
|
|
7880
7780
|
width: fontLineHeight, // width needed to improve ssr support
|
|
7881
7781
|
height: fontLineHeight, // height needed to improve ssr support
|
|
7882
7782
|
borderRadius: '50%',
|
|
7783
|
+
// TODO: we should try to use getHoverStyle()
|
|
7883
7784
|
...hoverMediaQuery({
|
|
7884
7785
|
transition: getTransition('background-color'),
|
|
7885
7786
|
'&:hover': {
|
|
@@ -7890,22 +7791,7 @@ const getComponentCss$u = (direction, isNative, theme) => {
|
|
|
7890
7791
|
}),
|
|
7891
7792
|
},
|
|
7892
7793
|
}),
|
|
7893
|
-
|
|
7894
|
-
content: '""',
|
|
7895
|
-
position: 'absolute',
|
|
7896
|
-
...getInsetJssStyle(-2),
|
|
7897
|
-
border: `${borderWidthBase} solid transparent`,
|
|
7898
|
-
borderRadius: '50%',
|
|
7899
|
-
},
|
|
7900
|
-
'&:focus::before': {
|
|
7901
|
-
borderColor: focusColor,
|
|
7902
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
7903
|
-
borderColor: focusColorDark,
|
|
7904
|
-
}),
|
|
7905
|
-
},
|
|
7906
|
-
'&:focus:not(:focus-visible)::before': {
|
|
7907
|
-
borderColor: 'transparent',
|
|
7908
|
-
},
|
|
7794
|
+
...getFocusJssStyle(theme, { offset: 0 }),
|
|
7909
7795
|
},
|
|
7910
7796
|
},
|
|
7911
7797
|
label: getHiddenTextJssStyle(),
|
|
@@ -7921,7 +7807,9 @@ const getComponentCss$u = (direction, isNative, theme) => {
|
|
|
7921
7807
|
margin: 0,
|
|
7922
7808
|
padding: 0,
|
|
7923
7809
|
}
|
|
7924
|
-
:
|
|
7810
|
+
: {
|
|
7811
|
+
inset: `${-safeZonePx}px`,
|
|
7812
|
+
}),
|
|
7925
7813
|
position: 'absolute',
|
|
7926
7814
|
zIndex: POPOVER_Z_INDEX,
|
|
7927
7815
|
filter: `drop-shadow(0 0 16px ${shadowColor})`,
|
|
@@ -8007,11 +7895,6 @@ const getComponentCss$t = (hideLabel, state, isDisabled, isLoading, theme) => {
|
|
|
8007
7895
|
}),
|
|
8008
7896
|
},
|
|
8009
7897
|
}),
|
|
8010
|
-
...(!isDisabled && {
|
|
8011
|
-
'&(input:focus)::before': {
|
|
8012
|
-
borderRadius: '50%',
|
|
8013
|
-
},
|
|
8014
|
-
}),
|
|
8015
7898
|
},
|
|
8016
7899
|
})),
|
|
8017
7900
|
},
|
|
@@ -8052,6 +7935,8 @@ const getComponentCss$t = (hideLabel, state, isDisabled, isLoading, theme) => {
|
|
|
8052
7935
|
...getFunctionalComponentStateMessageStyles(theme, state, {
|
|
8053
7936
|
gridColumn: '1/3',
|
|
8054
7937
|
}),
|
|
7938
|
+
// .loading
|
|
7939
|
+
...getFunctionalComponentLoadingMessageStyles(),
|
|
8055
7940
|
});
|
|
8056
7941
|
};
|
|
8057
7942
|
|
|
@@ -8077,8 +7962,8 @@ const getGradient = (theme, gradientColorTheme) => {
|
|
|
8077
7962
|
};
|
|
8078
7963
|
const prevNextWrapperWidth = `calc(${fontLineHeight} + 24px)`;
|
|
8079
7964
|
const getComponentCss$s = (gradientColor, isNextHidden, isPrevHidden, scrollIndicatorPosition, hasScrollbar, theme) => {
|
|
8080
|
-
const { backgroundColor, backgroundSurfaceColor,
|
|
8081
|
-
const { backgroundColor: backgroundColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark,
|
|
7965
|
+
const { backgroundColor, backgroundSurfaceColor, hoverColor } = getThemedColors(theme);
|
|
7966
|
+
const { backgroundColor: backgroundColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, hoverColor: hoverColorDark, } = getThemedColors('dark');
|
|
8082
7967
|
const backgroundColorLight = {
|
|
8083
7968
|
'background-base': backgroundColor,
|
|
8084
7969
|
'background-surface': backgroundSurfaceColor,
|
|
@@ -8171,24 +8056,8 @@ const getComponentCss$s = (gradientColor, isNextHidden, isPrevHidden, scrollIndi
|
|
|
8171
8056
|
minHeight: '28px',
|
|
8172
8057
|
minWidth: '100%',
|
|
8173
8058
|
verticalAlign: 'top',
|
|
8174
|
-
|
|
8175
|
-
|
|
8176
|
-
content: '""',
|
|
8177
|
-
position: 'absolute',
|
|
8178
|
-
...getInsetJssStyle(-4),
|
|
8179
|
-
border: `${borderWidthBase} solid transparent`,
|
|
8180
|
-
borderRadius: borderRadiusSmall,
|
|
8181
|
-
pointerEvents: 'none', // Needed to enable clicks inside of slot
|
|
8182
|
-
},
|
|
8183
|
-
'&:focus::before': {
|
|
8184
|
-
borderColor: focusColor,
|
|
8185
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8186
|
-
borderColor: focusColorDark,
|
|
8187
|
-
}),
|
|
8188
|
-
},
|
|
8189
|
-
'&:focus:not(:focus-visible)::before': {
|
|
8190
|
-
borderColor: 'transparent',
|
|
8191
|
-
},
|
|
8059
|
+
borderRadius: borderRadiusSmall,
|
|
8060
|
+
...getFocusJssStyle(theme),
|
|
8192
8061
|
},
|
|
8193
8062
|
trigger: {
|
|
8194
8063
|
position: 'absolute',
|
|
@@ -8246,8 +8115,8 @@ const getComponentCss$s = (gradientColor, isNextHidden, isPrevHidden, scrollIndi
|
|
|
8246
8115
|
};
|
|
8247
8116
|
|
|
8248
8117
|
const ITEM_PADDING = '17px';
|
|
8249
|
-
const ICON_SIZE =
|
|
8250
|
-
const ICON_MARGIN =
|
|
8118
|
+
const ICON_SIZE = '1.5rem';
|
|
8119
|
+
const ICON_MARGIN = '.25rem';
|
|
8251
8120
|
const getColors$2 = (isDisabled, isSelected, theme) => {
|
|
8252
8121
|
const { primaryColor, contrastMediumColor, disabledColor, contrastLowColor } = getThemedColors(theme);
|
|
8253
8122
|
const { highlightColor } = getHighContrastColors();
|
|
@@ -8260,8 +8129,6 @@ const getColors$2 = (isDisabled, isSelected, theme) => {
|
|
|
8260
8129
|
};
|
|
8261
8130
|
const getItemPadding = (hasIconAndSlottedContent) => hasIconAndSlottedContent ? `13px ${ITEM_PADDING} 13px 13px` : `13px ${ITEM_PADDING}`;
|
|
8262
8131
|
const getComponentCss$r = (isDisabled, isSelected, hasIcon, hasSlottedContent, theme) => {
|
|
8263
|
-
const { focusColor } = getThemedColors(theme);
|
|
8264
|
-
const { focusColor: focusColorDark } = getThemedColors('dark');
|
|
8265
8132
|
const { buttonColor, labelColor, borderColor, hoverBorderColor } = getColors$2(isDisabled, isSelected, theme);
|
|
8266
8133
|
const { buttonColor: buttonColorDark, labelColor: labelColorDark, borderColor: borderColorDark, hoverBorderColor: hoverBorderColorDark, } = getColors$2(isDisabled, isSelected, 'dark');
|
|
8267
8134
|
return getCss({
|
|
@@ -8283,30 +8150,9 @@ const getComponentCss$r = (isDisabled, isSelected, hasIcon, hasSlottedContent, t
|
|
|
8283
8150
|
margin: 0, // Removes default button margin on safari 15
|
|
8284
8151
|
border: `${borderWidthBase} solid ${borderColor}`,
|
|
8285
8152
|
borderRadius: borderRadiusSmall,
|
|
8286
|
-
outline: 0,
|
|
8287
8153
|
background: 'transparent',
|
|
8288
8154
|
color: buttonColor,
|
|
8289
8155
|
...textSmallStyle,
|
|
8290
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8291
|
-
borderColor: borderColorDark,
|
|
8292
|
-
color: buttonColorDark,
|
|
8293
|
-
}),
|
|
8294
|
-
'&::before': {
|
|
8295
|
-
content: '""',
|
|
8296
|
-
position: 'absolute',
|
|
8297
|
-
...getInsetJssStyle(-5),
|
|
8298
|
-
border: `${borderWidthBase} solid transparent`,
|
|
8299
|
-
borderRadius: '7px',
|
|
8300
|
-
},
|
|
8301
|
-
'&:focus::before': {
|
|
8302
|
-
borderColor: focusColor,
|
|
8303
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8304
|
-
borderColor: focusColorDark,
|
|
8305
|
-
}),
|
|
8306
|
-
},
|
|
8307
|
-
'&:focus:not(:focus-visible)::before': {
|
|
8308
|
-
borderColor: 'transparent',
|
|
8309
|
-
},
|
|
8310
8156
|
...(isDisabled
|
|
8311
8157
|
? {
|
|
8312
8158
|
cursor: 'not-allowed',
|
|
@@ -8324,6 +8170,11 @@ const getComponentCss$r = (isDisabled, isSelected, hasIcon, hasSlottedContent, t
|
|
|
8324
8170
|
},
|
|
8325
8171
|
})),
|
|
8326
8172
|
}),
|
|
8173
|
+
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8174
|
+
borderColor: borderColorDark,
|
|
8175
|
+
color: buttonColorDark,
|
|
8176
|
+
}),
|
|
8177
|
+
...getFocusJssStyle(theme),
|
|
8327
8178
|
},
|
|
8328
8179
|
// label
|
|
8329
8180
|
span: {
|
|
@@ -8382,7 +8233,7 @@ const getButtonStyles = (direction, isOpen, state, theme) => {
|
|
|
8382
8233
|
// TODO: extract generic default button/anchor reset style
|
|
8383
8234
|
button: {
|
|
8384
8235
|
position: 'absolute',
|
|
8385
|
-
|
|
8236
|
+
inset: 0,
|
|
8386
8237
|
width: '100%', // fixes Firefox positioning issue
|
|
8387
8238
|
height: '100%', // fixes Firefox positioning issue
|
|
8388
8239
|
margin: 0,
|
|
@@ -8396,6 +8247,7 @@ const getButtonStyles = (direction, isOpen, state, theme) => {
|
|
|
8396
8247
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8397
8248
|
borderColor: isOpen ? primaryColorDark : formStateColorDark || contrastMediumColorDark,
|
|
8398
8249
|
}),
|
|
8250
|
+
// TODO: getFocusJssStyle() can't be re-used because focus style differs for form elements
|
|
8399
8251
|
'&:focus, &:focus ~ ul': {
|
|
8400
8252
|
borderColor: primaryColor,
|
|
8401
8253
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
@@ -8444,7 +8296,7 @@ const getFilterStyles = (direction, isOpen, state, disabled, theme) => {
|
|
|
8444
8296
|
input: {
|
|
8445
8297
|
display: 'block',
|
|
8446
8298
|
position: 'absolute',
|
|
8447
|
-
|
|
8299
|
+
inset: borderWidthBase,
|
|
8448
8300
|
width: 'calc(100% - 4px)', // fixes Firefox positioning issue, 4px = 2 x borderWidthBase
|
|
8449
8301
|
height: 'calc(100% - 4px)', // fixes Firefox positioning issue, 4px = 2 x borderWidthBase
|
|
8450
8302
|
zIndex: 1,
|
|
@@ -8513,7 +8365,7 @@ const getFilterStyles = (direction, isOpen, state, disabled, theme) => {
|
|
|
8513
8365
|
'&+span': {
|
|
8514
8366
|
// for focus outline and clicking arrow since input ends left of the icon
|
|
8515
8367
|
position: 'absolute',
|
|
8516
|
-
|
|
8368
|
+
inset: 0,
|
|
8517
8369
|
transition: getTransition('border-color'),
|
|
8518
8370
|
pointerEvents: 'all',
|
|
8519
8371
|
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
@@ -8842,8 +8694,8 @@ const getSVGPath = (stepCount, numberedCircleColors, isStateCurrent) => {
|
|
|
8842
8694
|
return svgNumberedCirclePaths[stepCount];
|
|
8843
8695
|
};
|
|
8844
8696
|
const getComponentCss$m = (state, disabled, theme) => {
|
|
8845
|
-
const { primaryColor, hoverColor, disabledColor
|
|
8846
|
-
const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, disabledColor: disabledColorDark,
|
|
8697
|
+
const { primaryColor, hoverColor, disabledColor } = getThemedColors(theme);
|
|
8698
|
+
const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, disabledColor: disabledColorDark, } = getThemedColors('dark');
|
|
8847
8699
|
const isStateCurrent = state === 'current';
|
|
8848
8700
|
const isStateCurrentOrUndefined = !state || isStateCurrent;
|
|
8849
8701
|
const isDisabled = !state || disabled;
|
|
@@ -8885,7 +8737,6 @@ const getComponentCss$m = (state, disabled, theme) => {
|
|
|
8885
8737
|
margin: 0, // Removes default button margin on safari 15
|
|
8886
8738
|
background: 0,
|
|
8887
8739
|
border: 0,
|
|
8888
|
-
outline: 0,
|
|
8889
8740
|
...textSmallStyle,
|
|
8890
8741
|
fontSize: 'inherit',
|
|
8891
8742
|
width: 'max-content',
|
|
@@ -8921,19 +8772,7 @@ const getComponentCss$m = (state, disabled, theme) => {
|
|
|
8921
8772
|
width: fontLineHeight,
|
|
8922
8773
|
},
|
|
8923
8774
|
}),
|
|
8924
|
-
'
|
|
8925
|
-
content: '""',
|
|
8926
|
-
position: 'absolute',
|
|
8927
|
-
...getInsetJssStyle(),
|
|
8928
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
8929
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8930
|
-
borderColor: focusColorDark,
|
|
8931
|
-
}),
|
|
8932
|
-
borderRadius: borderRadiusSmall,
|
|
8933
|
-
},
|
|
8934
|
-
'&:focus:not(:focus-visible)::after': {
|
|
8935
|
-
borderColor: 'transparent',
|
|
8936
|
-
},
|
|
8775
|
+
...getFocusJssStyle(theme, { offset: '-2px' }),
|
|
8937
8776
|
},
|
|
8938
8777
|
},
|
|
8939
8778
|
...(!isStateCurrentOrUndefined && {
|
|
@@ -8996,128 +8835,105 @@ const getColors$1 = (checked, disabled, loading, theme) => {
|
|
|
8996
8835
|
const getComponentCss$k = (alignLabel, hideLabel, stretch, checked, disabled, loading, theme) => {
|
|
8997
8836
|
const { buttonBorderColor, buttonBorderColorHover, buttonBackgroundColor, buttonBackgroundColorHover, toggleBackgroundColor, toggleBackgroundColorHover, textColor, } = getColors$1(checked, disabled, loading, theme);
|
|
8998
8837
|
const { buttonBorderColor: buttonBorderColorDark, buttonBorderColorHover: buttonBorderColorHoverDark, buttonBackgroundColor: buttonBackgroundColorDark, buttonBackgroundColorHover: buttonBackgroundColorHoverDark, toggleBackgroundColor: toggleBackgroundColorDark, toggleBackgroundColorHover: toggleBackgroundColorHoverDark, textColor: textColorDark, } = getColors$1(checked, disabled, loading, 'dark');
|
|
8999
|
-
const { focusColor } = getThemedColors(theme);
|
|
9000
|
-
const { focusColor: focusColorDark } = getThemedColors('dark');
|
|
9001
8838
|
return getCss({
|
|
9002
8839
|
'@global': {
|
|
9003
8840
|
':host': {
|
|
9004
8841
|
...buildResponsiveStyles(stretch, (stretchValue) => ({
|
|
9005
|
-
display: stretchValue ? '
|
|
8842
|
+
display: stretchValue ? 'flex' : 'inline-flex',
|
|
9006
8843
|
})),
|
|
9007
8844
|
...addImportantToEachRule({
|
|
9008
8845
|
outline: 0, // custom element is able to delegate the focus
|
|
8846
|
+
gap: spacingStaticSmall,
|
|
9009
8847
|
...colorSchemeStyles,
|
|
9010
8848
|
...hostHiddenStyles,
|
|
9011
8849
|
...buildResponsiveStyles(stretch, (stretchValue) => ({
|
|
8850
|
+
justifyContent: stretchValue ? 'space-between' : 'flex-start',
|
|
9012
8851
|
width: stretchValue ? '100%' : 'auto', // prevents adjusting its size when used as flex or grid child
|
|
9013
8852
|
...(!stretchValue && { verticalAlign: 'top' }),
|
|
9014
8853
|
})),
|
|
9015
8854
|
}),
|
|
9016
8855
|
},
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9039
|
-
|
|
9040
|
-
|
|
9041
|
-
|
|
9042
|
-
backgroundColor: buttonBackgroundColorHoverDark,
|
|
9043
|
-
}),
|
|
9044
|
-
'& .toggle': {
|
|
9045
|
-
backgroundColor: toggleBackgroundColorHover,
|
|
8856
|
+
button: {
|
|
8857
|
+
display: 'flex',
|
|
8858
|
+
alignItems: 'center',
|
|
8859
|
+
flexShrink: 0,
|
|
8860
|
+
width: '48px',
|
|
8861
|
+
height: '28px',
|
|
8862
|
+
boxSizing: 'border-box',
|
|
8863
|
+
border: `${borderWidthBase} solid ${buttonBorderColor}`,
|
|
8864
|
+
borderRadius: '14px',
|
|
8865
|
+
backgroundColor: buttonBackgroundColor,
|
|
8866
|
+
cursor: isDisabledOrLoading(disabled, loading) ? 'not-allowed' : 'pointer',
|
|
8867
|
+
transition: `${getTransition('background-color')}, ${getTransition('border-color')}, ${getTransition('color')}`,
|
|
8868
|
+
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8869
|
+
borderColor: buttonBorderColorDark,
|
|
8870
|
+
backgroundColor: buttonBackgroundColorDark,
|
|
8871
|
+
}),
|
|
8872
|
+
margin: 0, // Removes default button margin on safari 15
|
|
8873
|
+
padding: 0,
|
|
8874
|
+
WebkitAppearance: 'none', // iOS safari
|
|
8875
|
+
appearance: 'none',
|
|
8876
|
+
...(!isDisabledOrLoading(disabled, loading) &&
|
|
8877
|
+
hoverMediaQuery({
|
|
8878
|
+
'&:hover': {
|
|
8879
|
+
borderColor: buttonBorderColorHover,
|
|
8880
|
+
backgroundColor: buttonBackgroundColorHover,
|
|
9046
8881
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9047
|
-
|
|
8882
|
+
borderColor: buttonBorderColorHoverDark,
|
|
8883
|
+
backgroundColor: buttonBackgroundColorHoverDark,
|
|
9048
8884
|
}),
|
|
8885
|
+
'& .toggle': {
|
|
8886
|
+
backgroundColor: toggleBackgroundColorHover,
|
|
8887
|
+
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
8888
|
+
backgroundColor: toggleBackgroundColorHoverDark,
|
|
8889
|
+
}),
|
|
8890
|
+
},
|
|
9049
8891
|
},
|
|
9050
|
-
},
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9055
|
-
|
|
9056
|
-
|
|
8892
|
+
})),
|
|
8893
|
+
...getFocusJssStyle(theme),
|
|
8894
|
+
},
|
|
8895
|
+
label: {
|
|
8896
|
+
...textSmallStyle,
|
|
8897
|
+
minWidth: 0, // prevents flex child to overflow max available parent size
|
|
8898
|
+
minHeight: 0, // prevents flex child to overflow max available parent size
|
|
8899
|
+
cursor: isDisabledOrLoading(disabled, loading) ? 'not-allowed' : 'pointer',
|
|
8900
|
+
color: textColor,
|
|
9057
8901
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9058
|
-
|
|
8902
|
+
color: textColorDark,
|
|
9059
8903
|
}),
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9063
|
-
|
|
8904
|
+
...mergeDeep(buildResponsiveStyles(alignLabel, (alignLabelValue) => ({
|
|
8905
|
+
// TODO: we should remove 'left' here and map the value in the component class already to 'start' but might be difficult due to breakpoint customizable prop value
|
|
8906
|
+
order: alignLabelValue === 'left' || alignLabelValue === 'start' ? -1 : 0,
|
|
8907
|
+
})), buildResponsiveStyles(hideLabel, (isHidden) => getHiddenTextJssStyle(isHidden, {
|
|
8908
|
+
paddingTop: '2px', // currently, line-height of textSmall doesn't match height of switch
|
|
8909
|
+
}))),
|
|
9064
8910
|
},
|
|
9065
8911
|
},
|
|
9066
|
-
switch: {
|
|
9067
|
-
position: 'relative',
|
|
9068
|
-
width: '48px',
|
|
9069
|
-
height: '28px',
|
|
9070
|
-
flexShrink: 0,
|
|
9071
|
-
boxSizing: 'border-box',
|
|
9072
|
-
border: `${borderWidthBase} solid ${buttonBorderColor}`,
|
|
9073
|
-
borderRadius: '14px',
|
|
9074
|
-
backgroundColor: buttonBackgroundColor,
|
|
9075
|
-
cursor: isDisabledOrLoading(disabled, loading) ? 'not-allowed' : 'pointer',
|
|
9076
|
-
transition: `${getTransition('background-color')}, ${getTransition('border-color')}, ${getTransition('color')}`,
|
|
9077
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9078
|
-
borderColor: buttonBorderColorDark,
|
|
9079
|
-
backgroundColor: buttonBackgroundColorDark,
|
|
9080
|
-
}),
|
|
9081
|
-
},
|
|
9082
8912
|
toggle: {
|
|
9083
|
-
|
|
9084
|
-
|
|
9085
|
-
|
|
8913
|
+
display: 'flex',
|
|
8914
|
+
alignItems: 'center',
|
|
8915
|
+
justifyContent: 'center',
|
|
9086
8916
|
width: '20px',
|
|
9087
8917
|
height: '20px',
|
|
9088
|
-
display: 'block',
|
|
9089
8918
|
borderRadius: '50%',
|
|
9090
8919
|
backgroundColor: toggleBackgroundColor,
|
|
8920
|
+
transition: `${getTransition('background-color')}, ${getTransition('transform')}`,
|
|
8921
|
+
transform: `translate3d(${checked ? '22px' : '2px'}, 0, 0)`,
|
|
8922
|
+
'&:dir(rtl)': {
|
|
8923
|
+
transform: `translate3d(${checked ? '-22px' : '-2px'}, 0, 0)`,
|
|
8924
|
+
},
|
|
9091
8925
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9092
8926
|
backgroundColor: toggleBackgroundColorDark,
|
|
9093
8927
|
}),
|
|
9094
|
-
transform: `translate3d(${checked ? '20px' : '0'}, 0, 0)`,
|
|
9095
|
-
transition: `${getTransition('background-color')}, ${getTransition('transform')}`,
|
|
9096
8928
|
},
|
|
9097
8929
|
...(loading && {
|
|
9098
8930
|
spinner: {
|
|
9099
|
-
position: 'absolute',
|
|
9100
|
-
top: '-4px',
|
|
9101
|
-
left: '-4px',
|
|
9102
8931
|
width: '28px',
|
|
9103
8932
|
height: '28px',
|
|
9104
8933
|
},
|
|
9105
8934
|
}),
|
|
9106
|
-
|
|
9107
|
-
|
|
9108
|
-
minWidth: 0, // prevents flex child to overflow max available parent size
|
|
9109
|
-
minHeight: 0, // prevents flex child to overflow max available parent size
|
|
9110
|
-
color: textColor,
|
|
9111
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9112
|
-
color: textColorDark,
|
|
9113
|
-
}),
|
|
9114
|
-
...mergeDeep(buildResponsiveStyles(alignLabel, (alignLabelValue) => ({
|
|
9115
|
-
// TODO: we should remove 'left' here and map the value in the component class already to 'start' but might be difficult due to breakpoint customizable prop value
|
|
9116
|
-
order: alignLabelValue === 'left' || alignLabelValue === 'start' ? -1 : 0,
|
|
9117
|
-
})), buildResponsiveStyles(hideLabel, (isHidden) => getHiddenTextJssStyle(isHidden, {
|
|
9118
|
-
paddingTop: '2px', // currently, line-height of textSmall doesn't match height of switch
|
|
9119
|
-
}))),
|
|
9120
|
-
},
|
|
8935
|
+
// .loading
|
|
8936
|
+
...getFunctionalComponentLoadingMessageStyles(),
|
|
9121
8937
|
});
|
|
9122
8938
|
};
|
|
9123
8939
|
|
|
@@ -9204,7 +9020,7 @@ const getComponentCss$h = (theme) => {
|
|
|
9204
9020
|
});
|
|
9205
9021
|
};
|
|
9206
9022
|
|
|
9207
|
-
const { hoverColor
|
|
9023
|
+
const { hoverColor } = getThemedColors('light'); // hover color and focus color are the same for light and dark
|
|
9208
9024
|
const buttonBeforeOffsetVertical = '-2px';
|
|
9209
9025
|
const buttonBeforeOffsetHorizontal = '-4px';
|
|
9210
9026
|
const getComponentCss$g = (active, direction, hideLabel, multiline) => {
|
|
@@ -9231,7 +9047,6 @@ const getComponentCss$g = (active, direction, hideLabel, multiline) => {
|
|
|
9231
9047
|
padding: 0,
|
|
9232
9048
|
font: 'inherit',
|
|
9233
9049
|
color: 'inherit',
|
|
9234
|
-
outline: 0,
|
|
9235
9050
|
alignItems: 'flex-end',
|
|
9236
9051
|
WebkitAppearance: 'none', // iOS safari
|
|
9237
9052
|
appearance: 'none',
|
|
@@ -9240,19 +9055,17 @@ const getComponentCss$g = (active, direction, hideLabel, multiline) => {
|
|
|
9240
9055
|
border: 0,
|
|
9241
9056
|
zIndex: 0,
|
|
9242
9057
|
cursor: 'pointer',
|
|
9058
|
+
// TODO: re-think if ::before is still needed
|
|
9243
9059
|
'&::before': {
|
|
9244
9060
|
content: '""',
|
|
9245
9061
|
position: 'absolute',
|
|
9246
|
-
|
|
9247
|
-
bottom: buttonBeforeOffsetVertical,
|
|
9248
|
-
right: buttonBeforeOffsetHorizontal,
|
|
9249
|
-
left: buttonBeforeOffsetHorizontal,
|
|
9062
|
+
inset: `${buttonBeforeOffsetVertical} ${buttonBeforeOffsetHorizontal}`,
|
|
9250
9063
|
borderRadius: borderRadiusSmall,
|
|
9251
9064
|
zIndex: -1, // needed so that text behind element is selectable and/or visible
|
|
9252
9065
|
transition: getTransition('background-color'),
|
|
9253
9066
|
},
|
|
9254
9067
|
...hoverMediaQuery({
|
|
9255
|
-
'&:hover, &:focus': {
|
|
9068
|
+
'&:hover, &:focus-visible': {
|
|
9256
9069
|
'& .icon': {
|
|
9257
9070
|
opacity: 1,
|
|
9258
9071
|
},
|
|
@@ -9262,12 +9075,8 @@ const getComponentCss$g = (active, direction, hideLabel, multiline) => {
|
|
|
9262
9075
|
backgroundColor: hoverColor,
|
|
9263
9076
|
},
|
|
9264
9077
|
}),
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
},
|
|
9268
|
-
'&:not(:focus-visible)::before': {
|
|
9269
|
-
border: 0,
|
|
9270
|
-
},
|
|
9078
|
+
// TODO: to be future proof, we need to pass theme parameter
|
|
9079
|
+
...getFocusJssStyle('light', { pseudo: true, offset: '-2px' }),
|
|
9271
9080
|
},
|
|
9272
9081
|
}
|
|
9273
9082
|
: hideLabel && {
|
|
@@ -9343,8 +9152,8 @@ const scrollerAnimatedCssClass = 'scroller--animated';
|
|
|
9343
9152
|
const targetSelectors = ['a', 'button'];
|
|
9344
9153
|
const transformSelector = (selector) => targetSelectors.map((tag) => selector.replace(/\[role]/g, tag)).join();
|
|
9345
9154
|
const getComponentCss$c = (size, weight, theme) => {
|
|
9346
|
-
const { primaryColor, hoverColor
|
|
9347
|
-
const { primaryColor: primaryColorDark, hoverColor: hoverColorDark
|
|
9155
|
+
const { primaryColor, hoverColor } = getThemedColors(theme);
|
|
9156
|
+
const { primaryColor: primaryColorDark, hoverColor: hoverColorDark } = getThemedColors('dark');
|
|
9348
9157
|
const barJssStyle = {
|
|
9349
9158
|
position: 'absolute',
|
|
9350
9159
|
height: '2px',
|
|
@@ -9371,6 +9180,12 @@ const getComponentCss$c = (size, weight, theme) => {
|
|
|
9371
9180
|
}),
|
|
9372
9181
|
},
|
|
9373
9182
|
...addImportantToEachRule({
|
|
9183
|
+
'::slotted': {
|
|
9184
|
+
// TODO: produces duplicated css code in SSR context, we should try to make use of multiple selector like
|
|
9185
|
+
// `::slotted(:is(a,button))`.
|
|
9186
|
+
...getFocusJssStyle(theme, { slotted: 'a', offset: '1px' }),
|
|
9187
|
+
...getFocusJssStyle(theme, { slotted: 'button', offset: '1px' }),
|
|
9188
|
+
},
|
|
9374
9189
|
// would be nice to use shared selector like '::slotted([role])'
|
|
9375
9190
|
// but this doesn't work reliably when rendering in browser
|
|
9376
9191
|
[transformSelector('::slotted([role])')]: {
|
|
@@ -9379,6 +9194,7 @@ const getComponentCss$c = (size, weight, theme) => {
|
|
|
9379
9194
|
position: 'relative',
|
|
9380
9195
|
margin: '0 0 4px 0',
|
|
9381
9196
|
verticalAlign: 'top',
|
|
9197
|
+
// TODO: can we use `all: 'inherit'` instead?
|
|
9382
9198
|
fontFamily: 'inherit',
|
|
9383
9199
|
fontStyle: 'inherit',
|
|
9384
9200
|
fontVariant: 'inherit',
|
|
@@ -9432,13 +9248,6 @@ const getComponentCss$c = (size, weight, theme) => {
|
|
|
9432
9248
|
bottom: isHighContrastMode ? '-4px' : '-6px',
|
|
9433
9249
|
visibility: 'inherit',
|
|
9434
9250
|
},
|
|
9435
|
-
// TODO: combine link-social-styles with link-button-styles and tabs-bar-styles
|
|
9436
|
-
[transformSelector('::slotted([role]:focus:focus-visible)::before')]: {
|
|
9437
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
9438
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9439
|
-
borderColor: focusColorDark,
|
|
9440
|
-
}),
|
|
9441
|
-
},
|
|
9442
9251
|
[transformSelector('::slotted([role]:not(:last-child))')]: {
|
|
9443
9252
|
marginInlineEnd: spacingStaticMedium,
|
|
9444
9253
|
},
|
|
@@ -9474,30 +9283,20 @@ const getComponentCss$c = (size, weight, theme) => {
|
|
|
9474
9283
|
};
|
|
9475
9284
|
|
|
9476
9285
|
const getComponentCss$b = (theme) => {
|
|
9477
|
-
const { primaryColor
|
|
9478
|
-
const { primaryColor: primaryColorDark
|
|
9286
|
+
const { primaryColor } = getThemedColors(theme);
|
|
9287
|
+
const { primaryColor: primaryColorDark } = getThemedColors('dark');
|
|
9479
9288
|
return getCss({
|
|
9480
9289
|
'@global': {
|
|
9481
9290
|
':host': {
|
|
9482
9291
|
display: 'block',
|
|
9483
9292
|
...addImportantToEachRule({
|
|
9484
|
-
position: 'relative',
|
|
9485
9293
|
color: primaryColor, // enables color inheritance for e.g. slotted anchor
|
|
9486
|
-
|
|
9294
|
+
borderRadius: '2px',
|
|
9487
9295
|
...hostHiddenStyles,
|
|
9488
9296
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9489
9297
|
color: primaryColorDark,
|
|
9490
9298
|
}),
|
|
9491
|
-
|
|
9492
|
-
content: '""',
|
|
9493
|
-
position: 'absolute',
|
|
9494
|
-
...getInsetJssStyle(-4),
|
|
9495
|
-
border: `${borderWidthBase} solid ${focusColor}`,
|
|
9496
|
-
borderRadius: borderRadiusSmall,
|
|
9497
|
-
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9498
|
-
borderColor: focusColorDark,
|
|
9499
|
-
}),
|
|
9500
|
-
},
|
|
9299
|
+
...getFocusJssStyle(theme, { slotted: true }),
|
|
9501
9300
|
}),
|
|
9502
9301
|
},
|
|
9503
9302
|
},
|
|
@@ -9521,20 +9320,6 @@ const getComponentCss$a = () => {
|
|
|
9521
9320
|
});
|
|
9522
9321
|
};
|
|
9523
9322
|
|
|
9524
|
-
const getTagFocusJssStyle = (themedColors) => {
|
|
9525
|
-
return {
|
|
9526
|
-
'&:focus::before': {
|
|
9527
|
-
content: '""',
|
|
9528
|
-
position: 'absolute',
|
|
9529
|
-
...getInsetJssStyle(-4),
|
|
9530
|
-
border: `${borderWidthBase} solid ${themedColors.focusColor}`,
|
|
9531
|
-
borderRadius: borderRadiusMedium,
|
|
9532
|
-
},
|
|
9533
|
-
'&:focus:not(:focus-visible)::before': {
|
|
9534
|
-
borderColor: 'transparent',
|
|
9535
|
-
},
|
|
9536
|
-
};
|
|
9537
|
-
};
|
|
9538
9323
|
const getThemedBackgroundColor = (tagColor, themedColors) => {
|
|
9539
9324
|
const colorMap = {
|
|
9540
9325
|
'background-base': themedColors.backgroundColor,
|
|
@@ -9581,7 +9366,10 @@ const getComponentCss$9 = (color, hasLabel, theme) => {
|
|
|
9581
9366
|
color: primaryColor,
|
|
9582
9367
|
textAlign: 'start',
|
|
9583
9368
|
...textSmallStyle,
|
|
9584
|
-
|
|
9369
|
+
...(isHighContrastMode && {
|
|
9370
|
+
// TODO: using border would increase the dimension but using outline interferes with the focus style
|
|
9371
|
+
outline: '1px solid transparent',
|
|
9372
|
+
}),
|
|
9585
9373
|
...prefersColorSchemeDarkMediaQuery(theme, {
|
|
9586
9374
|
background: backgroundColorDark,
|
|
9587
9375
|
color: primaryColorDark,
|
|
@@ -9594,7 +9382,7 @@ const getComponentCss$9 = (color, hasLabel, theme) => {
|
|
|
9594
9382
|
}),
|
|
9595
9383
|
},
|
|
9596
9384
|
}),
|
|
9597
|
-
...
|
|
9385
|
+
...getFocusJssStyle(theme),
|
|
9598
9386
|
},
|
|
9599
9387
|
},
|
|
9600
9388
|
...(hasLabel && {
|
|
@@ -9637,7 +9425,6 @@ const getColors = (themedColors, tagColor, theme) => {
|
|
|
9637
9425
|
const { primaryColor } = tagColor === 'primary' ? getInvertedThemedColors(theme) : themedColors;
|
|
9638
9426
|
return {
|
|
9639
9427
|
primaryColor,
|
|
9640
|
-
focusColor: themedColors.focusColor,
|
|
9641
9428
|
backgroundColor: getThemedBackgroundColor(tagColor, themedColors),
|
|
9642
9429
|
backgroundHoverColor: getThemedBackgroundHoverColor(tagColor, themedColors, theme),
|
|
9643
9430
|
};
|
|
@@ -9700,11 +9487,14 @@ const getComponentCss$8 = (tagColor, isFocusable, theme) => {
|
|
|
9700
9487
|
border: 0,
|
|
9701
9488
|
textAlign: 'start',
|
|
9702
9489
|
},
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9706
|
-
|
|
9707
|
-
|
|
9490
|
+
'&(a)::before,&(button)::before': {
|
|
9491
|
+
content: '""',
|
|
9492
|
+
position: 'absolute',
|
|
9493
|
+
inset: 0,
|
|
9494
|
+
borderRadius: '4px',
|
|
9495
|
+
},
|
|
9496
|
+
...getFocusJssStyle(theme, { slotted: 'a', pseudo: true }),
|
|
9497
|
+
...getFocusJssStyle(theme, { slotted: 'button', pseudo: true }),
|
|
9708
9498
|
'&(br)': {
|
|
9709
9499
|
display: 'none',
|
|
9710
9500
|
},
|
|
@@ -10081,7 +9871,14 @@ const getComponentCss = (size, theme) => {
|
|
|
10081
9871
|
},
|
|
10082
9872
|
a: {
|
|
10083
9873
|
textDecoration: 'none',
|
|
10084
|
-
|
|
9874
|
+
'&::before': {
|
|
9875
|
+
// needs to be defined always to have correct custom click area
|
|
9876
|
+
content: '""',
|
|
9877
|
+
position: 'absolute',
|
|
9878
|
+
inset: 0,
|
|
9879
|
+
borderRadius: '1px',
|
|
9880
|
+
},
|
|
9881
|
+
...getFocusJssStyle('light', { pseudo: true }), // TODO: we need to support theme
|
|
10085
9882
|
},
|
|
10086
9883
|
svg: isHighContrastMode
|
|
10087
9884
|
? {
|
|
@@ -10097,4 +9894,4 @@ const getComponentCss = (size, theme) => {
|
|
|
10097
9894
|
});
|
|
10098
9895
|
};
|
|
10099
9896
|
|
|
10100
|
-
export { getComponentCss$13 as getAccordionCss, getComponentCss$12 as getBannerCss, getComponentCss$_ as getButtonCss, getComponentCss$11 as getButtonGroupCss, getComponentCss$10 as getButtonPureCss, getComponentCss$$ as getButtonTileCss, getComponentCss$Z as getCarouselCss, getComponentCss$Y as getCheckboxWrapperCss, getComponentCss$X as getContentWrapperCss, getComponentCss$W as getCrestCss, getComponentCss$V as getDisplayCss, getComponentCss$U as getDividerCss, getComponentCss$S as getFieldsetCss, getComponentCss$T as getFieldsetWrapperCss, getComponentCss$Q as getFlexCss, getComponentCss$R as getFlexItemCss, getComponentCss$N as getFlyoutCss, getComponentCss$P as getFlyoutNavigationCss, getComponentCss$O as getFlyoutNavigationItemCss, getFunctionalComponentLabelStyles, getFunctionalComponentRequiredStyles, getFunctionalComponentStateMessageStyles, getComponentCss$L as getGridCss, getComponentCss$M as getGridItemCss, getComponentCss$K as getHeadingCss, getComponentCss$J as getHeadlineCss, getComponentCss$I as getIconCss, getComponentCss$H as getInlineNotificationCss, getComponentCss$F as getLinkCss, getComponentCss$G as getLinkPureCss, getComponentCss$F as getLinkSocialCss, getComponentCss$C as getLinkTileCss, getComponentCss$E as getLinkTileModelSignatureCss, getComponentCss$D as getLinkTileProductCss, getComponentCss$B as getMarqueCss, getComponentCss$A as getModalCss, getComponentCss$z as getModelSignatureCss, getComponentCss$x as getMultiSelectCss, getComponentCss$y as getMultiSelectOptionCss, getComponentCss$w as getPaginationCss, getComponentCss$v as getPinCodeCss, getComponentCss$u as getPopoverCss, getComponentCss$t as getRadioButtonWrapperCss, getComponentCss$s as getScrollerCss, getComponentCss$q as getSegmentedControlCss, getComponentCss$r as getSegmentedControlItemCss, getComponentCss$o as getSelectWrapperCss, getComponentCss$p as getSelectWrapperDropdownCss, getComponentCss$n as getSpinnerCss, getComponentCss$l as getStepperHorizontalCss, getComponentCss$m as getStepperHorizontalItemCss, getComponentCss$k as getSwitchCss, getComponentCss$j as getTableBodyCss, getComponentCss$i as getTableCellCss, getComponentCss$h as getTableCss, getComponentCss$g as getTableHeadCellCss, getComponentCss$e as getTableHeadCss, getComponentCss$f as getTableHeadRowCss, getComponentCss$d as getTableRowCss, getComponentCss$c as getTabsBarCss, getComponentCss$a as getTabsCss, getComponentCss$b as getTabsItemCss, getComponentCss$8 as getTagCss, getComponentCss$9 as getTagDismissibleCss, getComponentCss$4 as getTextCss, getComponentCss$7 as getTextFieldWrapperCss, getComponentCss$6 as getTextListCss, getComponentCss$5 as getTextListItemCss, getComponentCss$3 as getTextareaWrapperCss, getComponentCss$1 as getToastCss, getComponentCss as getWordmarkCss };
|
|
9897
|
+
export { getComponentCss$13 as getAccordionCss, getComponentCss$12 as getBannerCss, getComponentCss$_ as getButtonCss, getComponentCss$11 as getButtonGroupCss, getComponentCss$10 as getButtonPureCss, getComponentCss$$ as getButtonTileCss, getComponentCss$Z as getCarouselCss, getComponentCss$Y as getCheckboxWrapperCss, getComponentCss$X as getContentWrapperCss, getComponentCss$W as getCrestCss, getComponentCss$V as getDisplayCss, getComponentCss$U as getDividerCss, getComponentCss$S as getFieldsetCss, getComponentCss$T as getFieldsetWrapperCss, getComponentCss$Q as getFlexCss, getComponentCss$R as getFlexItemCss, getComponentCss$N as getFlyoutCss, getComponentCss$P as getFlyoutNavigationCss, getComponentCss$O as getFlyoutNavigationItemCss, getFunctionalComponentLabelStyles, getFunctionalComponentLoadingMessageStyles, getFunctionalComponentRequiredStyles, getFunctionalComponentStateMessageStyles, getComponentCss$L as getGridCss, getComponentCss$M as getGridItemCss, getComponentCss$K as getHeadingCss, getComponentCss$J as getHeadlineCss, getComponentCss$I as getIconCss, getComponentCss$H as getInlineNotificationCss, getComponentCss$F as getLinkCss, getComponentCss$G as getLinkPureCss, getComponentCss$F as getLinkSocialCss, getComponentCss$C as getLinkTileCss, getComponentCss$E as getLinkTileModelSignatureCss, getComponentCss$D as getLinkTileProductCss, getComponentCss$B as getMarqueCss, getComponentCss$A as getModalCss, getComponentCss$z as getModelSignatureCss, getComponentCss$x as getMultiSelectCss, getComponentCss$y as getMultiSelectOptionCss, getComponentCss$w as getPaginationCss, getComponentCss$v as getPinCodeCss, getComponentCss$u as getPopoverCss, getComponentCss$t as getRadioButtonWrapperCss, getComponentCss$s as getScrollerCss, getComponentCss$q as getSegmentedControlCss, getComponentCss$r as getSegmentedControlItemCss, getComponentCss$o as getSelectWrapperCss, getComponentCss$p as getSelectWrapperDropdownCss, getComponentCss$n as getSpinnerCss, getComponentCss$l as getStepperHorizontalCss, getComponentCss$m as getStepperHorizontalItemCss, getComponentCss$k as getSwitchCss, getComponentCss$j as getTableBodyCss, getComponentCss$i as getTableCellCss, getComponentCss$h as getTableCss, getComponentCss$g as getTableHeadCellCss, getComponentCss$e as getTableHeadCss, getComponentCss$f as getTableHeadRowCss, getComponentCss$d as getTableRowCss, getComponentCss$c as getTabsBarCss, getComponentCss$a as getTabsCss, getComponentCss$b as getTabsItemCss, getComponentCss$8 as getTagCss, getComponentCss$9 as getTagDismissibleCss, getComponentCss$4 as getTextCss, getComponentCss$7 as getTextFieldWrapperCss, getComponentCss$6 as getTextListCss, getComponentCss$5 as getTextListItemCss, getComponentCss$3 as getTextareaWrapperCss, getComponentCss$1 as getToastCss, getComponentCss as getWordmarkCss };
|