@porsche-design-system/components-react 3.19.0 → 3.20.0-rc.0

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 CHANGED
@@ -14,6 +14,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
14
14
 
15
15
  ### [Unreleased]
16
16
 
17
+ ### [3.20.0-rc.0] - 2024-10-18
18
+
19
+ #### Added
20
+
21
+ - `Icon`: `attachment`, `dislike`, `dislike-filled`, `like`, `like-filled`, `new-chat`
22
+
23
+ #### Changed
24
+
25
+ - `Canvas`: Improve UI and UX behaviour
26
+ ([#3515](https://github.com/porsche-design-system/porsche-design-system/pull/3515))
27
+ - `Flyout`, `Modal`: Removed default styling for slotted anchors
28
+ ([#3515](https://github.com/porsche-design-system/porsche-design-system/pull/3515))
29
+
17
30
  ### [3.19.0] - 2024-10-14
18
31
 
19
32
  ### [3.19.0-rc.4] - 2024-10-14
@@ -6,7 +6,7 @@ var react = require('react');
6
6
  var hooks = require('../../hooks.cjs');
7
7
  var utils = require('../../utils.cjs');
8
8
 
9
- const PCanvas = react.forwardRef(({ sidebarEndIcon = 'configurate', sidebarEndOpen = false, sidebarStartIcon = 'menu-lines', sidebarStartOpen = false, theme, className, ...rest }, ref) => {
9
+ const PCanvas = react.forwardRef(({ sidebarEndIcon = 'menu-lines', sidebarEndOpen = false, sidebarStartIcon = 'menu-lines', sidebarStartOpen = false, theme, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef();
11
11
  const WebComponentTag = hooks.usePrefix('p-canvas');
12
12
  const propsToSync = [sidebarEndIcon, sidebarEndOpen, sidebarStartIcon, sidebarStartOpen, theme || hooks.useTheme()];
@@ -2,45 +2,45 @@ import type { BaseProps } from '../../BaseProps';
2
2
  import type { CanvasSidebarEndIcon, CanvasSidebarStartIcon, Theme } from '../types';
3
3
  export type PCanvasProps = BaseProps & {
4
4
  /**
5
- * The icon to toggle the Sidebar on the end side
5
+ * The icon to toggle the sidebar on the end side
6
6
  */
7
7
  sidebarEndIcon?: CanvasSidebarEndIcon;
8
8
  /**
9
- * Open Sidebar on the end side
9
+ * Open the sidebar on the end side
10
10
  */
11
11
  sidebarEndOpen?: boolean;
12
12
  /**
13
- * The icon to toggle the Sidebar on the start side
13
+ * The icon to toggle the sidebar on the start side
14
14
  */
15
15
  sidebarStartIcon?: CanvasSidebarStartIcon;
16
16
  /**
17
- * Open Sidebar on the start side
17
+ * Open the sidebar on the start side
18
18
  */
19
19
  sidebarStartOpen?: boolean;
20
20
  /**
21
- * Adapts the color depending on the theme. Has no effect when "inherit" is set as color prop.
21
+ * Adapts the color depending on the theme.
22
22
  */
23
23
  theme?: Theme;
24
24
  };
25
25
  export declare const PCanvas: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
26
26
  /**
27
- * The icon to toggle the Sidebar on the end side
27
+ * The icon to toggle the sidebar on the end side
28
28
  */
29
29
  sidebarEndIcon?: CanvasSidebarEndIcon;
30
30
  /**
31
- * Open Sidebar on the end side
31
+ * Open the sidebar on the end side
32
32
  */
33
33
  sidebarEndOpen?: boolean;
34
34
  /**
35
- * The icon to toggle the Sidebar on the start side
35
+ * The icon to toggle the sidebar on the start side
36
36
  */
37
37
  sidebarStartIcon?: CanvasSidebarStartIcon;
38
38
  /**
39
- * Open Sidebar on the start side
39
+ * Open the sidebar on the start side
40
40
  */
41
41
  sidebarStartOpen?: boolean;
42
42
  /**
43
- * Adapts the color depending on the theme. Has no effect when "inherit" is set as color prop.
43
+ * Adapts the color depending on the theme.
44
44
  */
45
45
  theme?: Theme;
46
46
  } & {
@@ -4,7 +4,7 @@ import { forwardRef, useRef } from 'react';
4
4
  import { usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PCanvas = forwardRef(({ sidebarEndIcon = 'configurate', sidebarEndOpen = false, sidebarStartIcon = 'menu-lines', sidebarStartOpen = false, theme, className, ...rest }, ref) => {
7
+ const PCanvas = forwardRef(({ sidebarEndIcon = 'menu-lines', sidebarEndOpen = false, sidebarStartIcon = 'menu-lines', sidebarStartOpen = false, theme, className, ...rest }, ref) => {
8
8
  const elementRef = useRef();
9
9
  const WebComponentTag = usePrefix('p-canvas');
10
10
  const propsToSync = [sidebarEndIcon, sidebarEndOpen, sidebarStartIcon, sidebarStartOpen, theme || useTheme()];
@@ -233,6 +233,7 @@ declare const ICON_NAMES: readonly [
233
233
  "arrow-left",
234
234
  "arrow-right",
235
235
  "arrow-up",
236
+ "attachment",
236
237
  "augmented-reality",
237
238
  "battery-empty",
238
239
  "battery-empty-co2",
@@ -269,6 +270,8 @@ declare const ICON_NAMES: readonly [
269
270
  "cubic-capacity",
270
271
  "delete",
271
272
  "disable",
273
+ "dislike",
274
+ "dislike-filled",
272
275
  "document",
273
276
  "download",
274
277
  "duration",
@@ -298,6 +301,8 @@ declare const ICON_NAMES: readonly [
298
301
  "leaf",
299
302
  "leather",
300
303
  "light",
304
+ "like",
305
+ "like-filled",
301
306
  "list",
302
307
  "locate",
303
308
  "lock",
@@ -346,6 +351,7 @@ declare const ICON_NAMES: readonly [
346
351
  "minus",
347
352
  "mobile",
348
353
  "moon",
354
+ "new-chat",
349
355
  "oil-can",
350
356
  "parking-brake",
351
357
  "parking-light",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-react",
3
- "version": "3.19.0",
3
+ "version": "3.20.0-rc.0",
4
4
  "description": "Porsche Design System is a component library designed to help developers create the best experience for software or services distributed by Dr. Ing. h.c. F. Porsche AG.",
5
5
  "keywords": [
6
6
  "porsche",
@@ -17,7 +17,7 @@
17
17
  "license": "SEE LICENSE IN LICENSE",
18
18
  "homepage": "https://designsystem.porsche.com",
19
19
  "dependencies": {
20
- "@porsche-design-system/components-js": "3.19.0"
20
+ "@porsche-design-system/components-js": "3.20.0-rc.0"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "ag-grid-enterprise": ">= 32.0.0 <33.0.0",
@@ -4708,14 +4708,28 @@ const getComponentCss$14 = (icon, iconSource, variant, hideLabel, disabled, load
4708
4708
  }));
4709
4709
  };
4710
4710
 
4711
+ // TODO: styling needs to be cleaned up
4711
4712
  const cssVarSidebarStartWidth = '--p-canvas-sidebar-start-width';
4712
4713
  const cssVarSidebarEndWidth = '--p-canvas-sidebar-end-width';
4713
- const gridProductiveGap = gridGap.replace('36px', '24px');
4714
+ const cssVarGridColumns = '--p-canvas-grid-columns';
4715
+ const cssVarGridMaxWidth = '--p-canvas-grid-max-width';
4716
+ const spacingBase = gridGap.replace('36px', '24px');
4717
+ const mainGridColumnGap = gridGap.replace('36px', '24px').replace('vw', 'cqw');
4718
+ // const mainGridRowGap = gridGap.replace('vw', 'cqw');
4719
+ const mediaQueryTabletView = getMediaQueryMin('s');
4714
4720
  const mediaQueryDesktopView = getMediaQueryMin('m');
4715
4721
  const sidebarWidth = '320px';
4716
- const headerHeight = 'calc(1.5rem + 28px)';
4722
+ const sidebarStartWidth = `var(${cssVarSidebarStartWidth}, ${sidebarWidth})`;
4723
+ const sidebarEndWidth = `var(${cssVarSidebarEndWidth}, ${sidebarWidth})`;
4724
+ const sidebarTransition = getTransition('margin');
4725
+ const borderRadius = '16px';
4726
+ const headerPadding = spacingStaticSmall;
4727
+ const headerMinHeight = '56px';
4717
4728
  const getComponentCss$13 = (theme, isSidebarStartOpen, isSidebarEndOpen) => {
4718
- const { primaryColor, backgroundColor, backgroundSurfaceColor } = getThemedColors(theme);
4729
+ const { primaryColor, backgroundColor, backgroundSurfaceColor, contrastLowColor } = getThemedColors(theme);
4730
+ const { primaryColor: primaryColorDark, backgroundColor: backgroundColorDark, backgroundSurfaceColor: backgroundSurfaceColorDark, contrastLowColor: contrastLowColorDark, } = getThemedColors('dark');
4731
+ const footerGradientDark = '0%';
4732
+ const footerGradient = isThemeDark(theme) ? footerGradientDark : '100%';
4719
4733
  return getCss({
4720
4734
  '@global': {
4721
4735
  ':host': {
@@ -4723,6 +4737,10 @@ const getComponentCss$13 = (theme, isSidebarStartOpen, isSidebarEndOpen) => {
4723
4737
  ...addImportantToEachRule({
4724
4738
  ...colorSchemeStyles,
4725
4739
  ...hostHiddenStyles,
4740
+ containerType: 'inline-size',
4741
+ marginInlineStart: isSidebarStartOpen ? sidebarStartWidth : 0,
4742
+ marginInlineEnd: isSidebarEndOpen ? sidebarEndWidth : 0,
4743
+ transition: sidebarTransition,
4726
4744
  }),
4727
4745
  },
4728
4746
  ...preventFoucOfNestedElementsStyles,
@@ -4732,164 +4750,294 @@ const getComponentCss$13 = (theme, isSidebarStartOpen, isSidebarEndOpen) => {
4732
4750
  alignItems: 'center',
4733
4751
  gap: spacingStaticSmall,
4734
4752
  },
4735
- '&([slot*="sidebar"])': {
4736
- display: 'flex',
4737
- flexDirection: 'column',
4738
- gap: spacingStaticSmall,
4739
- },
4740
- // pre-defined utility classes
4741
- '&(.p-module)': {
4742
- gridColumn: '1/-1',
4743
- },
4744
- '&(.p-module--subgrid)': {
4745
- display: 'grid',
4746
- gridTemplateColumns: 'subgrid',
4747
- rowGap: gridProductiveGap,
4748
- },
4749
- '&(.p-module--more-space-above-small)': {
4750
- marginTop: spacingStaticSmall,
4751
- },
4752
- '&(.p-module--more-space-above-medium)': {
4753
- marginTop: spacingStaticMedium,
4754
- },
4755
- '&(.p-module--more-space-above-large)': {
4756
- marginTop: spacingStaticLarge,
4757
- },
4758
- '&(.p-module--less-space-above-small)': {
4759
- marginTop: `max(calc(-1 * ${gridProductiveGap}), calc(-1 * ${spacingStaticSmall}))`,
4760
- },
4761
- '&(.p-module--less-space-above-medium)': {
4762
- marginTop: `max(calc(-1 * ${gridProductiveGap}), calc(-1 * ${spacingStaticMedium}))`,
4763
- },
4764
- '&(.p-module--less-space-above-large)': {
4765
- marginTop: `max(calc(-1 * ${gridProductiveGap}), calc(-1 * ${spacingStaticLarge}))`,
4766
- },
4767
- '&(.p-flex)': {
4768
- display: 'flex',
4769
- },
4770
- '&(.p-align-items--center)': {
4771
- alignItems: 'center',
4772
- },
4773
- '&(.p-gap--small)': {
4774
- gap: spacingStaticSmall,
4775
- },
4776
- '&(.p-gap--medium)': {
4777
- gap: spacingStaticMedium,
4778
- },
4779
- '&(.p-gap--large)': {
4780
- gap: spacingStaticLarge,
4753
+ },
4754
+ 'slot[name="background"]': {
4755
+ display: 'block',
4756
+ gridArea: '1/1/-1/-1',
4757
+ position: 'sticky',
4758
+ top: 0,
4759
+ zIndex: 0,
4760
+ width: '100dvw',
4761
+ height: '100dvh',
4762
+ pointerEvents: 'none',
4763
+ overflow: 'hidden',
4764
+ transform: 'translate3d(0,0,0)', // needed for Safari to force GPU acceleration
4765
+ '&::slotted(video), &::slotted(img)': {
4766
+ width: '100%',
4767
+ height: '100%',
4768
+ objectFit: 'cover',
4769
+ transition: getTransition('opacity', 'veryLong'),
4781
4770
  },
4782
4771
  },
4783
4772
  'slot[name="title"]::slotted(a)': {
4784
4773
  textDecoration: 'none',
4785
4774
  color: 'inherit',
4786
4775
  },
4776
+ 'slot[name="sidebar-start"]': {
4777
+ display: 'block',
4778
+ marginTop: spacingFluidMedium,
4779
+ [mediaQueryTabletView]: {
4780
+ marginTop: 0,
4781
+ },
4782
+ },
4787
4783
  h2: {
4788
- ...textSmallStyle,
4784
+ ...textXSmallStyle,
4785
+ textOverflow: 'ellipsis',
4786
+ overflow: 'hidden',
4787
+ whiteSpace: 'nowrap',
4788
+ margin: 0,
4789
4789
  color: primaryColor,
4790
4790
  textTransform: 'uppercase',
4791
4791
  letterSpacing: '2px',
4792
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4793
+ color: primaryColorDark,
4794
+ }),
4792
4795
  },
4793
4796
  'header, main, footer, aside': {
4794
- padding: gridProductiveGap,
4797
+ padding: spacingBase,
4795
4798
  boxSizing: 'border-box',
4796
4799
  zIndex: 0,
4797
4800
  },
4798
4801
  header: {
4802
+ paddingBlock: headerPadding,
4799
4803
  gridArea: 'header',
4800
4804
  position: 'sticky',
4805
+ minHeight: headerMinHeight,
4806
+ boxSizing: 'border-box',
4801
4807
  top: 0,
4802
- zIndex: 9999999,
4803
- height: headerHeight,
4808
+ zIndex: 100,
4804
4809
  display: 'grid',
4805
4810
  gridTemplateColumns: 'minmax(0, 1fr) auto minmax(0, 1fr)',
4806
- gap: gridProductiveGap,
4807
- backgroundColor: backgroundSurfaceColor,
4811
+ gap: spacingBase,
4808
4812
  alignItems: 'center',
4809
- paddingBlock: 0,
4810
- '&::before, &::after': {
4811
- content: '""',
4812
- position: 'absolute',
4813
- backgroundColor: 'transparent',
4814
- bottom: `calc(${borderRadiusLarge} * -2)`,
4815
- height: `calc(${borderRadiusLarge} * 2)`,
4816
- width: borderRadiusLarge,
4817
- boxShadow: `0 -${borderRadiusLarge} 0 0 ${backgroundSurfaceColor}`,
4818
- pointerEvents: 'none',
4819
- },
4820
- '&::before': {
4821
- left: 0,
4822
- borderTopLeftRadius: borderRadiusLarge,
4823
- },
4824
- '&::after': {
4825
- right: 0,
4826
- borderTopRightRadius: borderRadiusLarge,
4827
- },
4828
4813
  },
4829
- main: {
4830
- gridArea: 'main',
4831
- '--p-canvas-grid-span-full': 'span 6',
4832
- '--p-canvas-grid-span-one-half': 'span 3',
4833
- '--p-canvas-grid-span-one-third': 'span 2',
4834
- '--p-canvas-grid-span-two-thirds': 'span 4',
4814
+ 'header .blur-layers': {
4815
+ position: 'absolute',
4816
+ inset: 0,
4817
+ zIndex: -1,
4818
+ pointerEvents: 'none',
4819
+ height: '100%',
4820
+ width: '100%',
4821
+ },
4822
+ 'header .blur-layers:before': {
4823
+ content: '""',
4824
+ zIndex: 1,
4825
+ WebkitBackdropFilter: 'blur(64px)',
4826
+ backdropFilter: 'blur(64px)',
4827
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 100%) 0%, rgba(0, 0, 0, 1) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 0) 37.5%)', // Safari prefix
4828
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 100%) 0%, rgba(0, 0, 0, 1) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 0) 37.5%)',
4829
+ position: 'absolute',
4830
+ top: 0,
4831
+ left: 0,
4832
+ right: 0,
4833
+ bottom: 0,
4834
+ },
4835
+ 'header .blur-layers > div': {
4836
+ position: 'absolute',
4837
+ top: 0,
4838
+ left: 0,
4839
+ right: 0,
4840
+ bottom: 0,
4841
+ },
4842
+ 'header .blur-layers > div:nth-of-type(1)': {
4843
+ zIndex: 2,
4844
+ WebkitBackdropFilter: 'blur(32px)',
4845
+ backdropFilter: 'blur(32px)',
4846
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 0) 50%)',
4847
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 0) 50%)',
4848
+ },
4849
+ 'header .blur-layers > div:nth-of-type(2)': {
4850
+ zIndex: 3,
4851
+ WebkitBackdropFilter: 'blur(16px)',
4852
+ backdropFilter: 'blur(16px)',
4853
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 62.5%)',
4854
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 62.5%)',
4855
+ },
4856
+ 'header .blur-layers > div:nth-of-type(3)': {
4857
+ zIndex: 4,
4858
+ WebkitBackdropFilter: 'blur(8px)',
4859
+ backdropFilter: 'blur(8px)',
4860
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 0) 75%)',
4861
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 0) 75%)',
4862
+ },
4863
+ 'header .blur-layers > div:nth-of-type(4)': {
4864
+ zIndex: 5,
4865
+ WebkitBackdropFilter: 'blur(4px)',
4866
+ backdropFilter: 'blur(4px)',
4867
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 87.5%)',
4868
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 87.5%)',
4869
+ },
4870
+ 'header .blur-layers > div:nth-of-type(5)': {
4871
+ zIndex: 6,
4872
+ WebkitBackdropFilter: 'blur(2px)',
4873
+ backdropFilter: 'blur(2px)',
4874
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 0) 100%)',
4875
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 0) 100%)',
4876
+ },
4877
+ 'header .blur-layers > div:nth-of-type(6)': {
4878
+ zIndex: 7,
4879
+ WebkitBackdropFilter: 'blur(1px)',
4880
+ backdropFilter: 'blur(1px)',
4881
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 1) 100%)',
4882
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 1) 100%)',
4883
+ },
4884
+ 'header .blur-layers:after': {
4885
+ content: '""',
4886
+ zIndex: 8,
4887
+ WebkitBackdropFilter: 'blur(0.5px)',
4888
+ backdropFilter: 'blur(0.5px)',
4889
+ WebkitMaskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 1) 100%)',
4890
+ maskImage: 'linear-gradient(to bottom, rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 1) 100%)',
4891
+ },
4892
+ 'main, footer': {
4835
4893
  display: 'grid',
4836
- gridTemplateColumns: 'repeat(6, minmax(0, 1fr))',
4837
- gap: gridProductiveGap,
4894
+ gridTemplateColumns: `repeat(var(${cssVarGridColumns}, 12), minmax(0, 1fr))`,
4895
+ columnGap: mainGridColumnGap,
4838
4896
  alignContent: 'flex-start',
4839
- backgroundColor,
4840
- [mediaQueryDesktopView]: {
4841
- '--p-canvas-grid-span-full': 'span 12',
4842
- '--p-canvas-grid-span-one-half': 'span 6',
4843
- '--p-canvas-grid-span-one-third': 'span 4',
4844
- '--p-canvas-grid-span-two-thirds': 'span 8',
4845
- gridTemplateColumns: 'repeat(12, minmax(0, 1fr))',
4846
- },
4897
+ maxWidth: `var(${cssVarGridMaxWidth}, none)`,
4898
+ marginInline: 'auto',
4899
+ },
4900
+ main: {
4901
+ zIndex: 10,
4902
+ gridArea: 'main',
4903
+ width: '100%',
4847
4904
  },
4848
4905
  footer: {
4906
+ position: 'sticky',
4907
+ bottom: 0,
4908
+ width: '100%',
4849
4909
  gridArea: 'footer',
4850
- backgroundColor,
4910
+ zIndex: 200,
4911
+ paddingBottom: spacingFluidSmall,
4912
+ '&::before': {
4913
+ content: '""',
4914
+ zIndex: '-1',
4915
+ position: 'absolute',
4916
+ inset: '-140px -50dvw 0',
4917
+ pointerEvents: 'none',
4918
+ background: `linear-gradient(to bottom, hsla(0, 0%, ${footerGradient}, 0) 0%, hsla(0, 0%, ${footerGradient}, 0.013) 8.1%, hsla(0, 0%, ${footerGradient}, 0.049) 15.5%, hsla(0, 0%, ${footerGradient}, 0.104) 22.5%, hsla(0, 0%, ${footerGradient}, 0.175) 29%, hsla(0, 0%, ${footerGradient}, 0.259) 35.3%, hsla(0, 0%, ${footerGradient}, 0.352) 41.2%, hsla(0, 0%, ${footerGradient}, 0.45) 47.1%, hsla(0, 0%, ${footerGradient}, 0.55) 52.9%, hsla(0, 0%, ${footerGradient}, 0.648) 58.8%, hsla(0, 0%, ${footerGradient}, 0.741) 64.7%, hsla(0, 0%, ${footerGradient}, 0.825) 71%, hsla(0, 0%, ${footerGradient}, 0.896) 77.5%, hsla(0, 0%, ${footerGradient}, 0.951) 84.5%, hsla(0, 0%, ${footerGradient}, 0.987) 91.9%, hsl(0, 0%, ${footerGradient}) 100%)`,
4919
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4920
+ background: `linear-gradient(to bottom, hsla(0, 0%, ${footerGradientDark}, 0) 0%, hsla(0, 0%, ${footerGradientDark}, 0.013) 8.1%, hsla(0, 0%, ${footerGradientDark}, 0.049) 15.5%, hsla(0, 0%, ${footerGradientDark}, 0.104) 22.5%, hsla(0, 0%, ${footerGradientDark}, 0.175) 29%, hsla(0, 0%, ${footerGradientDark}, 0.259) 35.3%, hsla(0, 0%, ${footerGradientDark}, 0.352) 41.2%, hsla(0, 0%, ${footerGradientDark}, 0.45) 47.1%, hsla(0, 0%, ${footerGradientDark}, 0.55) 52.9%, hsla(0, 0%, ${footerGradientDark}, 0.648) 58.8%, hsla(0, 0%, ${footerGradientDark}, 0.741) 64.7%, hsla(0, 0%, ${footerGradientDark}, 0.825) 71%, hsla(0, 0%, ${footerGradientDark}, 0.896) 77.5%, hsla(0, 0%, ${footerGradientDark}, 0.951) 84.5%, hsla(0, 0%, ${footerGradientDark}, 0.987) 91.9%, hsl(0, 0%, ${footerGradientDark}) 100%)`,
4921
+ }),
4922
+ },
4851
4923
  },
4852
4924
  aside: {
4853
- transition: getTransition('margin'),
4925
+ zIndex: 200,
4926
+ transition: sidebarTransition,
4854
4927
  position: 'sticky',
4855
- top: headerHeight,
4856
- height: `calc(100dvh - ${headerHeight})`,
4857
- overflow: 'hidden auto',
4928
+ top: 0,
4929
+ height: '100dvh',
4930
+ },
4931
+ },
4932
+ scroller: {
4933
+ position: 'absolute',
4934
+ inset: 0,
4935
+ padding: spacingBase,
4936
+ overflow: 'hidden auto',
4937
+ display: 'grid',
4938
+ gridTemplateRows: 'auto 1fr',
4939
+ gap: spacingBase,
4940
+ },
4941
+ 'sidebar-header': {
4942
+ display: 'flex',
4943
+ gap: spacingStaticSmall,
4944
+ alignItems: 'center',
4945
+ justifyContent: 'var(--p-internal-justify)',
4946
+ position: 'sticky',
4947
+ top: `calc(${spacingBase} * -1)`,
4948
+ padding: `${headerPadding} ${spacingBase}`,
4949
+ marginBlockStart: `calc(${spacingBase} * -1)`,
4950
+ marginInline: `calc(${spacingBase} * -1)`,
4951
+ zIndex: 1,
4952
+ minHeight: headerMinHeight,
4953
+ boxSizing: 'border-box',
4954
+ '&::before': {
4955
+ content: '""',
4956
+ zIndex: '-1',
4957
+ position: 'absolute',
4958
+ inset: '0 0 -8px',
4959
+ background: 'var(--p-internal-gradient)',
4960
+ pointerEvents: 'none',
4858
4961
  },
4859
4962
  },
4860
4963
  'sidebar-start': {
4861
- borderInlineEnd: `1px solid ${backgroundSurfaceColor}`,
4862
- backgroundColor,
4964
+ '--p-internal-gradient': `linear-gradient(180deg, ${backgroundSurfaceColor} 0%, ${backgroundSurfaceColor} 65%, rgba(255,255,255,0) 100%)`,
4965
+ '--p-internal-justify': 'flex-start',
4966
+ backgroundColor: backgroundSurfaceColor,
4863
4967
  gridArea: 'sidebar-start',
4864
- width: `var(${cssVarSidebarStartWidth}, ${sidebarWidth})`,
4865
- marginInlineStart: isSidebarStartOpen ? 0 : `calc(var(${cssVarSidebarStartWidth}, ${sidebarWidth}) * -1)`,
4968
+ width: sidebarStartWidth,
4969
+ marginInlineStart: isSidebarStartOpen
4970
+ ? 0
4971
+ : `calc((var(${cssVarSidebarStartWidth}, ${sidebarWidth}) + ${borderRadius}) * -1)`,
4972
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4973
+ '--p-internal-gradient': `linear-gradient(180deg, ${backgroundSurfaceColorDark} 0%, ${backgroundSurfaceColorDark} 65%, rgba(255,255,255,0) 100%)`,
4974
+ backgroundColor: backgroundSurfaceColorDark,
4975
+ }),
4976
+ '&::before': {
4977
+ content: '""',
4978
+ zIndex: '-1',
4979
+ position: 'absolute',
4980
+ backgroundColor: 'transparent',
4981
+ right: `-${borderRadius}`,
4982
+ height: `calc(${borderRadius} * 2)`,
4983
+ width: borderRadius,
4984
+ pointerEvents: 'none',
4985
+ top: 0,
4986
+ borderTopLeftRadius: borderRadius,
4987
+ boxShadow: `0 -${borderRadius} 0 0 ${backgroundSurfaceColor}`,
4988
+ ...prefersColorSchemeDarkMediaQuery(theme, {
4989
+ boxShadow: `0 -${borderRadius} 0 0 ${backgroundSurfaceColorDark}`,
4990
+ }),
4991
+ },
4866
4992
  },
4867
4993
  'sidebar-end': {
4868
- borderInlineStart: `1px solid ${backgroundSurfaceColor}`,
4994
+ '--p-internal-gradient': `linear-gradient(180deg, ${backgroundColor} 0%, ${backgroundColor} 65%, rgba(255,255,255,0) 100%)`,
4995
+ '--p-internal-justify': 'flex-end',
4996
+ borderInlineStart: `1px solid ${contrastLowColor}`,
4869
4997
  backgroundColor,
4870
4998
  gridArea: 'sidebar-end',
4871
- width: `var(${cssVarSidebarEndWidth}, ${sidebarWidth})`,
4999
+ width: sidebarEndWidth,
4872
5000
  marginInlineEnd: isSidebarEndOpen ? 0 : `calc(var(${cssVarSidebarEndWidth}, ${sidebarWidth}) * -1)`,
5001
+ overflow: 'hidden auto',
5002
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5003
+ borderColor: contrastLowColorDark,
5004
+ backgroundColor: backgroundColorDark,
5005
+ '--p-internal-gradient': `linear-gradient(180deg, ${backgroundColorDark} 0%, ${backgroundColorDark} 65%, rgba(255,255,255,0) 100%)`,
5006
+ }),
4873
5007
  },
4874
5008
  canvas: {
5009
+ marginInlineStart: isSidebarStartOpen ? `calc(${sidebarStartWidth} * -1)` : 0,
5010
+ marginInlineEnd: isSidebarEndOpen ? `calc(${sidebarEndWidth} * -1)` : 0,
5011
+ transition: sidebarTransition,
4875
5012
  display: 'grid',
4876
5013
  gridTemplateRows: 'auto minmax(0, 1fr) auto',
4877
5014
  gridTemplateAreas: '"header" "main" "footer"',
4878
5015
  minWidth: '320px',
4879
5016
  minHeight: '100dvh',
5017
+ font: textSmallStyle.font,
5018
+ color: primaryColor,
5019
+ backgroundColor,
5020
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5021
+ color: primaryColorDark,
5022
+ backgroundColor: backgroundColorDark,
5023
+ }),
5024
+ [mediaQueryTabletView]: {
5025
+ gridTemplate: 'auto minmax(0, 1fr) / auto minmax(0, 1fr) auto',
5026
+ gridTemplateAreas: '"sidebar-start header" "sidebar-start main" "sidebar-start footer"',
5027
+ },
4880
5028
  [mediaQueryDesktopView]: {
4881
5029
  gridTemplate: 'auto minmax(0, 1fr) auto / auto minmax(0, 1fr) auto',
4882
- gridTemplateAreas: '"header header header" "sidebar-start main sidebar-end" "sidebar-start footer sidebar-end"',
5030
+ gridTemplateAreas: '"sidebar-start header sidebar-end" "sidebar-start main sidebar-end" "sidebar-start footer sidebar-end"',
4883
5031
  },
4884
5032
  },
4885
5033
  crest: {
4886
- [getMediaQueryMin('s')]: {
5034
+ [`@container(min-width:${breakpointS}px)`]: {
4887
5035
  display: 'none',
4888
5036
  },
4889
5037
  },
4890
5038
  wordmark: {
4891
5039
  height: '10px',
4892
- [getMediaQueryMax('s')]: {
5040
+ [`@container(max-width:${breakpointS - 1}px)`]: {
4893
5041
  display: 'none',
4894
5042
  },
4895
5043
  },
@@ -4901,6 +5049,16 @@ const getComponentCss$13 = (theme, isSidebarStartOpen, isSidebarEndOpen) => {
4901
5049
  justifyContent: 'end',
4902
5050
  },
4903
5051
  },
5052
+ 'flyout-start': {
5053
+ // TODO: why does the flyout component has a fixed min-width defined, should be a CSS variable too?
5054
+ '--p-flyout-width': '100dvw',
5055
+ '--p-flyout-max-width': sidebarStartWidth,
5056
+ },
5057
+ 'flyout-end': {
5058
+ // TODO: why does the flyout component has a fixed min-width defined, should be a CSS variable too?
5059
+ '--p-flyout-width': '100dvw',
5060
+ '--p-flyout-max-width': sidebarEndWidth,
5061
+ },
4904
5062
  });
4905
5063
  };
4906
5064