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

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/cjs/lib/components/canvas.wrapper.cjs +3 -5
  3. package/cjs/lib/components/carousel.wrapper.cjs +3 -3
  4. package/cjs/lib/components/checkbox.wrapper.cjs +28 -0
  5. package/cjs/public-api.cjs +2 -0
  6. package/esm/lib/components/canvas.wrapper.d.ts +13 -21
  7. package/esm/lib/components/canvas.wrapper.mjs +4 -6
  8. package/esm/lib/components/carousel.wrapper.d.ts +8 -0
  9. package/esm/lib/components/carousel.wrapper.mjs +3 -3
  10. package/esm/lib/components/checkbox.wrapper.d.ts +128 -0
  11. package/esm/lib/components/checkbox.wrapper.mjs +26 -0
  12. package/esm/lib/components/index.d.ts +1 -0
  13. package/esm/lib/components/textarea.wrapper.d.ts +2 -0
  14. package/esm/lib/types.d.ts +9 -7
  15. package/esm/public-api.mjs +1 -0
  16. package/package.json +2 -2
  17. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +404 -80
  18. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/canvas.wrapper.cjs +4 -6
  19. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/carousel.wrapper.cjs +4 -4
  20. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/checkbox.wrapper.cjs +39 -0
  21. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/textarea.wrapper.cjs +3 -2
  22. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.cjs +1 -0
  23. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.cjs +1 -0
  24. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +1 -0
  25. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.cjs +1 -0
  26. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.cjs +1 -0
  27. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.cjs +17 -21
  28. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +1 -0
  29. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.cjs +1 -0
  30. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.cjs +108 -0
  31. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-multilevel-item.cjs +1 -0
  32. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-multilevel.cjs +1 -0
  33. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +1 -0
  34. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.cjs +1 -0
  35. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.cjs +1 -0
  36. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.cjs +1 -0
  37. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.cjs +1 -0
  38. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.cjs +1 -0
  39. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.cjs +1 -0
  40. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.cjs +1 -0
  41. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.cjs +1 -0
  42. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.cjs +1 -0
  43. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +1 -0
  44. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.cjs +1 -0
  45. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +1 -0
  46. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.cjs +1 -0
  47. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.cjs +1 -0
  48. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +1 -0
  49. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.cjs +1 -0
  50. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.cjs +1 -0
  51. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.cjs +1 -0
  52. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.cjs +1 -0
  53. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +1 -0
  54. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.cjs +1 -0
  55. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.cjs +1 -0
  56. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +1 -0
  57. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +1 -0
  58. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.cjs +1 -0
  59. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +1 -0
  60. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +1 -0
  61. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +1 -0
  62. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.cjs +1 -0
  63. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.cjs +1 -0
  64. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.cjs +1 -0
  65. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +2 -0
  66. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +395 -72
  67. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/canvas.wrapper.mjs +5 -7
  68. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/carousel.wrapper.mjs +4 -4
  69. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/checkbox.wrapper.mjs +37 -0
  70. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/textarea.wrapper.mjs +3 -2
  71. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +3 -2
  72. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +3 -2
  73. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
  74. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +3 -2
  75. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +3 -2
  76. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +3 -2
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +18 -22
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +3 -2
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +3 -2
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +106 -0
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-multilevel-item.mjs +1 -0
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-multilevel.mjs +1 -0
  83. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +1 -0
  84. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +1 -0
  85. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +1 -0
  86. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.mjs +1 -0
  87. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.mjs +1 -0
  88. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.mjs +1 -0
  89. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +1 -0
  90. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.mjs +1 -0
  91. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.mjs +1 -0
  92. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +1 -0
  93. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +1 -0
  94. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.mjs +1 -0
  95. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +1 -0
  96. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.mjs +1 -0
  97. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.mjs +1 -0
  98. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +1 -0
  99. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.mjs +1 -0
  100. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +1 -0
  101. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.mjs +1 -0
  102. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.mjs +1 -0
  103. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +1 -0
  104. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.mjs +1 -0
  105. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.mjs +1 -0
  106. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +1 -0
  107. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +1 -0
  108. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.mjs +1 -0
  109. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +1 -0
  110. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +1 -0
  111. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +1 -0
  112. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.mjs +1 -0
  113. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.mjs +1 -0
  114. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.mjs +1 -0
  115. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +1 -0
  116. package/ssr/esm/lib/components/canvas.wrapper.d.ts +13 -21
  117. package/ssr/esm/lib/components/carousel.wrapper.d.ts +8 -0
  118. package/ssr/esm/lib/components/checkbox.wrapper.d.ts +128 -0
  119. package/ssr/esm/lib/components/index.d.ts +1 -0
  120. package/ssr/esm/lib/components/textarea.wrapper.d.ts +2 -0
  121. package/ssr/esm/lib/dsr-components/canvas.d.ts +5 -4
  122. package/ssr/esm/lib/dsr-components/checkbox.d.ts +12 -0
  123. package/ssr/esm/lib/types.d.ts +9 -7
@@ -3951,7 +3951,7 @@ const formatObjectOutput = (value) => {
3951
3951
  'value, ' +
3952
3952
  formatObjectOutput(breakpoints.reduce((prev, key) => ({ ...prev, [key + (key !== 'base' ? '?' : '')]: 'value' }), {})).replace(/"/g, '');
3953
3953
 
3954
- const getComponentCss$18 = (size, compact, open, theme, sticky) => {
3954
+ const getComponentCss$19 = (size, compact, open, theme, sticky) => {
3955
3955
  const { primaryColor, hoverColor, contrastLowColor, backgroundColor } = getThemedColors(theme);
3956
3956
  const { primaryColor: primaryColorDark, hoverColor: hoverColorDark, contrastLowColor: contrastLowColorDark, backgroundColor: backgroundColorDark, } = getThemedColors('dark');
3957
3957
  const cssVariablePositionStickyTop = '--p-accordion-position-sticky-top';
@@ -4121,7 +4121,7 @@ const cssVariableTop = '--p-banner-position-top';
4121
4121
  const cssVariableBottom = '--p-banner-position-bottom';
4122
4122
  const cssVariableZIndex = '--p-internal-banner-z-index';
4123
4123
  const topBottomFallback = '56px';
4124
- const getComponentCss$17 = (isOpen) => {
4124
+ const getComponentCss$18 = (isOpen) => {
4125
4125
  return getCss({
4126
4126
  '@global': {
4127
4127
  ':host': {
@@ -4193,7 +4193,7 @@ const getGroupDirectionJssStyles = (direction) => {
4193
4193
  return groupDirectionJssStyles[direction];
4194
4194
  };
4195
4195
 
4196
- const getComponentCss$16 = (direction) => {
4196
+ const getComponentCss$17 = (direction) => {
4197
4197
  return getCss({
4198
4198
  '@global': {
4199
4199
  ':host': {
@@ -4346,7 +4346,7 @@ const getFunctionalComponentLoadingMessageStyles = () => {
4346
4346
  };
4347
4347
  };
4348
4348
 
4349
- const getComponentCss$15 = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, theme) => {
4349
+ const getComponentCss$16 = (icon, iconSource, active, isLoading, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, theme) => {
4350
4350
  const hasIcon = hasVisibleIcon(icon, iconSource);
4351
4351
  return getCss(mergeDeep(getLinkButtonPureStyles(icon, iconSource, active, isDisabledOrLoading, stretch, size, hideLabel, alignLabel, underline, false, theme), {
4352
4352
  root: {
@@ -4384,7 +4384,7 @@ const getFontWeight = (weight) => {
4384
4384
  return fontWeightMap[weight];
4385
4385
  };
4386
4386
 
4387
- const getComponentCss$14 = (isDisabledOrLoading, aspectRatio, size, weight, background, align, compact, hasGradient, isDisabled) => {
4387
+ const getComponentCss$15 = (isDisabledOrLoading, aspectRatio, size, weight, background, align, compact, hasGradient, isDisabled) => {
4388
4388
  const isTopAligned = align === 'top';
4389
4389
  return getCss({
4390
4390
  '@global': {
@@ -4651,7 +4651,7 @@ const getDisabledColors = (variant, loading, theme) => {
4651
4651
  };
4652
4652
  return colors[variant === 'tertiary' ? 'secondary' : variant];
4653
4653
  };
4654
- const getComponentCss$13 = (icon, iconSource, variant, hideLabel, disabled, loading, compact, theme) => {
4654
+ const getComponentCss$14 = (icon, iconSource, variant, hideLabel, disabled, loading, compact, theme) => {
4655
4655
  const disabledOrLoading = isDisabledOrLoading(disabled, loading);
4656
4656
  const { textColor, borderColor, backgroundColor } = getDisabledColors(variant, loading, theme);
4657
4657
  const { textColor: textColorDark, borderColor: borderColorDark, backgroundColor: backgroundColorDark, } = getDisabledColors(variant, loading, 'dark');
@@ -4706,16 +4706,14 @@ const getComponentCss$13 = (icon, iconSource, variant, hideLabel, disabled, load
4706
4706
  }));
4707
4707
  };
4708
4708
 
4709
- const cssVariableSidebarStartWidth = '--p-canvas-sidebar-start-width';
4710
- const cssVariableSidebarEndWidth = '--p-canvas-sidebar-end-width';
4711
- // TODO: maybe default grid gap would also work
4709
+ const cssVarSidebarStartWidth = '--p-canvas-sidebar-start-width';
4710
+ const cssVarSidebarEndWidth = '--p-canvas-sidebar-end-width';
4712
4711
  const gridProductiveGap = gridGap.replace('36px', '24px');
4713
4712
  const mediaQueryDesktopView = getMediaQueryMin('m');
4714
- const sidebarWidths = {
4715
- medium: '320px',
4716
- large: '480px', // TODO: won't work at viewport 1000px when both sidebars are opened
4717
- };
4718
- const getComponentCss$12 = (isSidebarStartOpen, sidebarStartWidth, isSidebarEndOpen, sidebarEndWidth) => {
4713
+ const sidebarWidth = '320px';
4714
+ const headerHeight = 'calc(1.5rem + 28px)';
4715
+ const getComponentCss$13 = (theme, isSidebarStartOpen, isSidebarEndOpen) => {
4716
+ const { primaryColor, backgroundColor, backgroundSurfaceColor } = getThemedColors(theme);
4719
4717
  return getCss({
4720
4718
  '@global': {
4721
4719
  ':host': {
@@ -4726,7 +4724,71 @@ const getComponentCss$12 = (isSidebarStartOpen, sidebarStartWidth, isSidebarEndO
4726
4724
  }),
4727
4725
  },
4728
4726
  ...preventFoucOfNestedElementsStyles,
4729
- ':is(header, main, footer, aside)': {
4727
+ '::slotted': {
4728
+ '&([slot*="header"])': {
4729
+ display: 'flex',
4730
+ alignItems: 'center',
4731
+ gap: spacingStaticSmall,
4732
+ },
4733
+ '&([slot*="sidebar"])': {
4734
+ display: 'flex',
4735
+ flexDirection: 'column',
4736
+ gap: spacingStaticSmall,
4737
+ },
4738
+ // pre-defined utility classes
4739
+ '&(.p-module)': {
4740
+ gridColumn: '1/-1',
4741
+ },
4742
+ '&(.p-module--subgrid)': {
4743
+ display: 'grid',
4744
+ gridTemplateColumns: 'subgrid',
4745
+ rowGap: gridProductiveGap,
4746
+ },
4747
+ '&(.p-module--more-space-above-small)': {
4748
+ marginTop: spacingStaticSmall,
4749
+ },
4750
+ '&(.p-module--more-space-above-medium)': {
4751
+ marginTop: spacingStaticMedium,
4752
+ },
4753
+ '&(.p-module--more-space-above-large)': {
4754
+ marginTop: spacingStaticLarge,
4755
+ },
4756
+ '&(.p-module--less-space-above-small)': {
4757
+ marginTop: `max(calc(-1 * ${gridProductiveGap}), calc(-1 * ${spacingStaticSmall}))`,
4758
+ },
4759
+ '&(.p-module--less-space-above-medium)': {
4760
+ marginTop: `max(calc(-1 * ${gridProductiveGap}), calc(-1 * ${spacingStaticMedium}))`,
4761
+ },
4762
+ '&(.p-module--less-space-above-large)': {
4763
+ marginTop: `max(calc(-1 * ${gridProductiveGap}), calc(-1 * ${spacingStaticLarge}))`,
4764
+ },
4765
+ '&(.p-flex)': {
4766
+ display: 'flex',
4767
+ },
4768
+ '&(.p-align-items--center)': {
4769
+ alignItems: 'center',
4770
+ },
4771
+ '&(.p-gap--small)': {
4772
+ gap: spacingStaticSmall,
4773
+ },
4774
+ '&(.p-gap--medium)': {
4775
+ gap: spacingStaticMedium,
4776
+ },
4777
+ '&(.p-gap--large)': {
4778
+ gap: spacingStaticLarge,
4779
+ },
4780
+ },
4781
+ 'slot[name="title"]::slotted(a)': {
4782
+ textDecoration: 'none',
4783
+ color: 'inherit',
4784
+ },
4785
+ h2: {
4786
+ ...textSmallStyle,
4787
+ color: primaryColor,
4788
+ textTransform: 'uppercase',
4789
+ letterSpacing: '2px',
4790
+ },
4791
+ 'header, main, footer, aside': {
4730
4792
  padding: gridProductiveGap,
4731
4793
  boxSizing: 'border-box',
4732
4794
  zIndex: 0,
@@ -4735,49 +4797,78 @@ const getComponentCss$12 = (isSidebarStartOpen, sidebarStartWidth, isSidebarEndO
4735
4797
  gridArea: 'header',
4736
4798
  position: 'sticky',
4737
4799
  top: 0,
4738
- zIndex: 1,
4800
+ zIndex: 9999999,
4801
+ height: headerHeight,
4802
+ display: 'grid',
4803
+ gridTemplateColumns: 'minmax(0, 1fr) auto minmax(0, 1fr)',
4804
+ gap: gridProductiveGap,
4805
+ backgroundColor: backgroundSurfaceColor,
4806
+ alignItems: 'center',
4807
+ paddingBlock: 0,
4808
+ '&::before, &::after': {
4809
+ content: '""',
4810
+ position: 'absolute',
4811
+ backgroundColor: 'transparent',
4812
+ bottom: `calc(${borderRadiusLarge} * -2)`,
4813
+ height: `calc(${borderRadiusLarge} * 2)`,
4814
+ width: borderRadiusLarge,
4815
+ boxShadow: `0 -${borderRadiusLarge} 0 0 ${backgroundSurfaceColor}`,
4816
+ pointerEvents: 'none',
4817
+ },
4818
+ '&::before': {
4819
+ left: 0,
4820
+ borderTopLeftRadius: borderRadiusLarge,
4821
+ },
4822
+ '&::after': {
4823
+ right: 0,
4824
+ borderTopRightRadius: borderRadiusLarge,
4825
+ },
4739
4826
  },
4740
4827
  main: {
4741
4828
  gridArea: 'main',
4742
- '--pds-grid-span-full': 'span 6',
4743
- '--pds-grid-span-one-half': 'span 3',
4744
- '--pds-grid-span-one-third': 'span 2',
4745
- '--pds-grid-span-two-thirds': 'span 4',
4829
+ '--p-canvas-grid-span-full': 'span 6',
4830
+ '--p-canvas-grid-span-one-half': 'span 3',
4831
+ '--p-canvas-grid-span-one-third': 'span 2',
4832
+ '--p-canvas-grid-span-two-thirds': 'span 4',
4746
4833
  display: 'grid',
4747
4834
  gridTemplateColumns: 'repeat(6, minmax(0, 1fr))',
4748
4835
  gap: gridProductiveGap,
4749
4836
  alignContent: 'flex-start',
4837
+ backgroundColor,
4750
4838
  [mediaQueryDesktopView]: {
4751
- '--pds-grid-span-full': 'span 12',
4752
- '--pds-grid-span-one-half': 'span 6',
4753
- '--pds-grid-span-one-third': 'span 4',
4754
- '--pds-grid-span-two-thirds': 'span 8',
4839
+ '--p-canvas-grid-span-full': 'span 12',
4840
+ '--p-canvas-grid-span-one-half': 'span 6',
4841
+ '--p-canvas-grid-span-one-third': 'span 4',
4842
+ '--p-canvas-grid-span-two-thirds': 'span 8',
4755
4843
  gridTemplateColumns: 'repeat(12, minmax(0, 1fr))',
4756
4844
  },
4757
4845
  },
4758
4846
  footer: {
4759
4847
  gridArea: 'footer',
4848
+ backgroundColor,
4760
4849
  },
4761
4850
  aside: {
4762
- // TODO: box-shadows or colored surface must be defined, design is missing
4763
- position: 'relative',
4764
4851
  transition: getTransition('margin'),
4765
- '&:first-of-type': {
4766
- gridArea: 'sidebar-start',
4767
- width: `var(${cssVariableSidebarStartWidth}, ${sidebarWidths[sidebarStartWidth]})`,
4768
- marginInlineStart: isSidebarStartOpen
4769
- ? 0
4770
- : `calc(var(${cssVariableSidebarStartWidth}, ${sidebarWidths[sidebarStartWidth]}) * -1)`,
4771
- },
4772
- '&:last-of-type': {
4773
- gridArea: 'sidebar-end',
4774
- width: `var(${cssVariableSidebarEndWidth}, ${sidebarWidths[sidebarEndWidth]})`,
4775
- marginInlineEnd: isSidebarEndOpen
4776
- ? 0
4777
- : `calc(var(${cssVariableSidebarEndWidth}, ${sidebarWidths[sidebarEndWidth]}) * -1)`,
4778
- },
4852
+ position: 'sticky',
4853
+ top: headerHeight,
4854
+ height: `calc(100dvh - ${headerHeight})`,
4855
+ overflow: 'hidden auto',
4779
4856
  },
4780
4857
  },
4858
+ 'sidebar-start': {
4859
+ borderInlineEnd: `1px solid ${backgroundSurfaceColor}`,
4860
+ backgroundColor,
4861
+ gridArea: 'sidebar-start',
4862
+ width: `var(${cssVarSidebarStartWidth}, ${sidebarWidth})`,
4863
+ marginInlineStart: isSidebarStartOpen ? 0 : `calc(var(${cssVarSidebarStartWidth}, ${sidebarWidth}) * -1)`,
4864
+ },
4865
+ 'sidebar-end': {
4866
+ borderInlineStart: `1px solid ${backgroundSurfaceColor}`,
4867
+ backgroundColor,
4868
+ gridArea: 'sidebar-end',
4869
+ width: `var(${cssVarSidebarEndWidth}, ${sidebarWidth})`,
4870
+ marginInlineEnd: isSidebarEndOpen ? 0 : `calc(var(${cssVarSidebarEndWidth}, ${sidebarWidth}) * -1)`,
4871
+ },
4781
4872
  canvas: {
4782
4873
  display: 'grid',
4783
4874
  gridTemplateRows: 'auto minmax(0, 1fr) auto',
@@ -4789,10 +4880,24 @@ const getComponentCss$12 = (isSidebarStartOpen, sidebarStartWidth, isSidebarEndO
4789
4880
  gridTemplateAreas: '"header header header" "sidebar-start main sidebar-end" "sidebar-start footer sidebar-end"',
4790
4881
  },
4791
4882
  },
4792
- close: {
4793
- // TODO: must be positioned properly, design is missing
4794
- position: 'absolute',
4795
- inset: `${spacingStaticXSmall} ${spacingStaticXSmall} auto auto`,
4883
+ crest: {
4884
+ [getMediaQueryMin('s')]: {
4885
+ display: 'none',
4886
+ },
4887
+ },
4888
+ wordmark: {
4889
+ height: '10px',
4890
+ [getMediaQueryMax('s')]: {
4891
+ display: 'none',
4892
+ },
4893
+ },
4894
+ header: {
4895
+ display: 'flex',
4896
+ gap: spacingStaticSmall,
4897
+ alignItems: 'center',
4898
+ '&:last-of-type': {
4899
+ justifyContent: 'end',
4900
+ },
4796
4901
  },
4797
4902
  });
4798
4903
  };
@@ -4848,7 +4953,7 @@ const getGradient$1 = (theme, gradientColorTheme) => {
4848
4953
  `rgba(${gradientColor},0.3) 68%,` +
4849
4954
  `rgba(${gradientColor},0)`);
4850
4955
  };
4851
- const getComponentCss$11 = (gradientColor, hasHeading, hasDescription, hasControlsSlot, headingSize, width, hasPagination, isInfinitePagination, alignHeader, theme, hasNavigation) => {
4956
+ const getComponentCss$12 = (gradientColor, hasHeading, hasDescription, hasControlsSlot, headingSize, width, hasPagination, isInfinitePagination, alignHeader, theme, hasNavigation) => {
4852
4957
  const { primaryColor, contrastMediumColor } = getThemedColors(theme);
4853
4958
  const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark } = getThemedColors('dark');
4854
4959
  const { canvasTextColor } = getHighContrastColors();
@@ -5294,26 +5399,17 @@ const getFunctionalComponentStateMessageStyles = (theme, state, additionalDefaul
5294
5399
  };
5295
5400
  };
5296
5401
 
5297
- const getCheckedSVGBackgroundImage$1 = (fill) => {
5402
+ const getCheckedSVGBackgroundImage$2 = (fill) => {
5298
5403
  return getInlineSVGBackgroundImage(`<path fill="${fill}" d="m20.22,7.47l-1.47-1.42-9.26,9.02-4.24-4.15-1.47,1.42,5.71,5.6,10.73-10.47Z"/>`);
5299
5404
  };
5300
- const getIndeterminateSVGBackgroundImage = (fill) => {
5405
+ const getIndeterminateSVGBackgroundImage$1 = (fill) => {
5301
5406
  return getInlineSVGBackgroundImage(`<path fill="${fill}" d="m20,11v2H4v-2h16Z"/>`);
5302
5407
  };
5303
- const getComponentCss$10 = (hideLabel, state, isDisabled, isLoading, theme) => {
5304
- const { canvasColor } = getHighContrastColors();
5305
- const checkedIconColor = isHighContrastMode
5306
- ? canvasColor
5307
- : escapeHashCharacter(getInvertedThemedColors(theme).primaryColor);
5308
- const checkedIconColorDark = isHighContrastMode
5309
- ? canvasColor
5310
- : escapeHashCharacter(getInvertedThemedColors('dark').primaryColor);
5311
- const indeterminateIconColor = isHighContrastMode
5312
- ? canvasColor
5313
- : escapeHashCharacter(getThemedColors(theme).primaryColor);
5314
- const indeterminateIconColorDark = isHighContrastMode
5315
- ? canvasColor
5316
- : escapeHashCharacter(getThemedColors('dark').primaryColor);
5408
+ const getComponentCss$11 = (hideLabel, state, isDisabled, isLoading, theme) => {
5409
+ const checkedIconColor = escapeHashCharacter(getInvertedThemedColors(theme).primaryColor);
5410
+ const checkedIconColorDark = escapeHashCharacter(getInvertedThemedColors('dark').primaryColor);
5411
+ const indeterminateIconColor = escapeHashCharacter(getThemedColors(theme).primaryColor);
5412
+ const indeterminateIconColorDark = escapeHashCharacter(getThemedColors('dark').primaryColor);
5317
5413
  return getCss({
5318
5414
  '@global': {
5319
5415
  ':host': {
@@ -5334,16 +5430,30 @@ const getComponentCss$10 = (hideLabel, state, isDisabled, isLoading, theme) => {
5334
5430
  // TODO: is it somehow useful possible to make following styles configurable by parameter?
5335
5431
  ...(!isLoading && {
5336
5432
  '&(input:checked)': {
5337
- backgroundImage: getCheckedSVGBackgroundImage$1(checkedIconColor),
5433
+ backgroundImage: getCheckedSVGBackgroundImage$2(checkedIconColor),
5338
5434
  ...prefersColorSchemeDarkMediaQuery(theme, {
5339
- backgroundImage: getCheckedSVGBackgroundImage$1(checkedIconColorDark),
5435
+ backgroundImage: getCheckedSVGBackgroundImage$2(checkedIconColorDark),
5340
5436
  }),
5437
+ // This is a workaround for Blink based browsers, which do not reflect the high contrast system colors (e.g.: "Canvas" and "CanvasText") when added to background SVG's.
5438
+ ...(isHighContrastMode &&
5439
+ getSchemedHighContrastMediaQuery({
5440
+ backgroundImage: getCheckedSVGBackgroundImage$2('white'),
5441
+ }, {
5442
+ backgroundImage: getCheckedSVGBackgroundImage$2('black'),
5443
+ })),
5341
5444
  },
5342
5445
  '&(input:indeterminate)': {
5343
- backgroundImage: getIndeterminateSVGBackgroundImage(indeterminateIconColor),
5446
+ backgroundImage: getIndeterminateSVGBackgroundImage$1(indeterminateIconColor),
5344
5447
  ...prefersColorSchemeDarkMediaQuery(theme, {
5345
- backgroundImage: getIndeterminateSVGBackgroundImage(indeterminateIconColorDark),
5448
+ backgroundImage: getIndeterminateSVGBackgroundImage$1(indeterminateIconColorDark),
5346
5449
  }),
5450
+ // This is a workaround for Blink based browsers, which do not reflect the high contrast system colors (e.g.: "Canvas" and "CanvasText") when added to background SVG's.
5451
+ ...(isHighContrastMode &&
5452
+ getSchemedHighContrastMediaQuery({
5453
+ backgroundImage: getIndeterminateSVGBackgroundImage$1('black'),
5454
+ }, {
5455
+ backgroundImage: getIndeterminateSVGBackgroundImage$1('white'),
5456
+ })),
5347
5457
  },
5348
5458
  }),
5349
5459
  },
@@ -5391,6 +5501,216 @@ const getComponentCss$10 = (hideLabel, state, isDisabled, isLoading, theme) => {
5391
5501
  });
5392
5502
  };
5393
5503
 
5504
+ const getCheckedSVGBackgroundImage$1 = (fill) => {
5505
+ return getInlineSVGBackgroundImage(`<path fill="${fill}" d="m20.22,7.47l-1.47-1.42-9.26,9.02-4.24-4.15-1.47,1.42,5.71,5.6,10.73-10.47Z"/>`);
5506
+ };
5507
+ const getIndeterminateSVGBackgroundImage = (fill) => {
5508
+ return getInlineSVGBackgroundImage(`<path fill="${fill}" d="m20,11v2H4v-2h16Z"/>`);
5509
+ };
5510
+ const getComponentCss$10 = (hideLabel, state, isDisabled, isLoading, theme) => {
5511
+ const { primaryColor, contrastMediumColor, contrastHighColor, disabledColor, focusColor } = getThemedColors(theme);
5512
+ const { primaryColor: primaryColorDark, contrastMediumColor: contrastMediumColorDark, contrastHighColor: contrastHighColorDark, disabledColor: disabledColorDark, focusColor: focusColorDark, } = getThemedColors('dark');
5513
+ const { formStateColor, formStateHoverColor } = getThemedFormStateColors(theme, state);
5514
+ const { formStateColor: formStateColorDark, formStateHoverColor: formStateHoverColorDark } = getThemedFormStateColors('dark', state);
5515
+ const { canvasTextColor } = getHighContrastColors();
5516
+ const disabledOrLoading = isDisabledOrLoading(isDisabled, isLoading);
5517
+ // TODO: needs to be extracted into a color function
5518
+ const uncheckedColor = disabledOrLoading ? disabledColor : formStateColor || contrastMediumColor;
5519
+ const uncheckedColorDark = disabledOrLoading ? disabledColorDark : formStateColorDark || contrastMediumColorDark;
5520
+ const uncheckedHoverColor = formStateHoverColor || primaryColor;
5521
+ const uncheckedHoverColorDark = formStateHoverColorDark || primaryColorDark;
5522
+ const checkedColor = isHighContrastMode
5523
+ ? canvasTextColor
5524
+ : disabledOrLoading
5525
+ ? disabledColor
5526
+ : formStateColor || primaryColor;
5527
+ const checkedColorDark = isHighContrastMode
5528
+ ? canvasTextColor
5529
+ : disabledOrLoading
5530
+ ? disabledColorDark
5531
+ : formStateColorDark || primaryColorDark;
5532
+ const checkedHoverColor = formStateHoverColor || contrastHighColor;
5533
+ const checkedHoverColorDark = formStateHoverColorDark || contrastHighColorDark;
5534
+ const checkedIconColor = escapeHashCharacter(getInvertedThemedColors(theme).primaryColor);
5535
+ const checkedIconColorDark = escapeHashCharacter(getInvertedThemedColors('dark').primaryColor);
5536
+ const indeterminateIconColor = escapeHashCharacter(disabledOrLoading ? disabledColorDark : formStateColor || primaryColor);
5537
+ const indeterminateIconColorDark = escapeHashCharacter(formStateColorDark || primaryColorDark);
5538
+ const indeterminateIconHoverColor = escapeHashCharacter(formStateHoverColor || primaryColor);
5539
+ const indeterminateIconHoverColorDark = escapeHashCharacter(formStateHoverColorDark || primaryColorDark);
5540
+ const background = `transparent 0% 0% / ${fontLineHeight}`;
5541
+ return getCss({
5542
+ '@global': {
5543
+ ':host': {
5544
+ display: 'block',
5545
+ ...addImportantToEachRule({
5546
+ ...colorSchemeStyles,
5547
+ ...hostHiddenStyles,
5548
+ }),
5549
+ },
5550
+ ...preventFoucOfNestedElementsStyles,
5551
+ input: {
5552
+ width: fontLineHeight,
5553
+ height: fontLineHeight,
5554
+ font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
5555
+ display: 'block',
5556
+ margin: 0,
5557
+ padding: 0,
5558
+ WebkitAppearance: 'none', // iOS safari
5559
+ appearance: 'none',
5560
+ boxSizing: 'content-box',
5561
+ background,
5562
+ transition: `${getTransition('background-color')}, ${getTransition('border-color')}`,
5563
+ border: `${borderWidthBase} solid ${uncheckedColor}`,
5564
+ outline: 0, // TODO: only relevant for VRT testing with forced states - prevents :focus style (in case getFocusJssStyle() condition is not matching)
5565
+ ...(disabledOrLoading
5566
+ ? {
5567
+ pointerEvents: 'none', // to prevent form element becomes clickable/toggleable
5568
+ }
5569
+ : {
5570
+ cursor: 'pointer',
5571
+ }),
5572
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5573
+ borderColor: uncheckedColorDark,
5574
+ }),
5575
+ gridArea: '1/1',
5576
+ borderRadius: borderRadiusSmall,
5577
+ },
5578
+ ...(!isLoading
5579
+ ? {
5580
+ 'input:checked': {
5581
+ borderColor: checkedColor,
5582
+ backgroundColor: checkedColor,
5583
+ backgroundImage: getCheckedSVGBackgroundImage$1(checkedIconColor),
5584
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5585
+ backgroundImage: getCheckedSVGBackgroundImage$1(checkedIconColorDark),
5586
+ borderColor: checkedColorDark,
5587
+ backgroundColor: checkedColorDark,
5588
+ }),
5589
+ // This is a workaround for Blink based browsers, which do not reflect the high contrast system colors (e.g.: "Canvas" and "CanvasText") when added to background SVG's.
5590
+ ...(isHighContrastMode &&
5591
+ getSchemedHighContrastMediaQuery({
5592
+ backgroundImage: getCheckedSVGBackgroundImage$1('white'),
5593
+ }, {
5594
+ backgroundImage: getCheckedSVGBackgroundImage$1('black'),
5595
+ })),
5596
+ },
5597
+ 'input:indeterminate': {
5598
+ background, // Safari fix: ensures proper rendering of 'indeterminate' mode with 'checked' state.
5599
+ borderColor: uncheckedColor, // Safari fix: ensures proper rendering of 'indeterminate' mode with 'checked' state.
5600
+ backgroundImage: getIndeterminateSVGBackgroundImage(indeterminateIconColor),
5601
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5602
+ backgroundImage: getIndeterminateSVGBackgroundImage(disabledOrLoading ? indeterminateIconColor : indeterminateIconColorDark),
5603
+ borderColor: uncheckedColorDark, // Safari fix: ensures proper rendering of 'indeterminate' mode with 'checked' state.
5604
+ backgroundColor: 'transparent', // Safari fix: ensures proper rendering of 'indeterminate' mode with 'checked' state.
5605
+ }),
5606
+ // This is a workaround for Blink based browsers, which do not reflect the high contrast system colors (e.g.: "Canvas" and "CanvasText") when added to background SVG's.
5607
+ ...(isHighContrastMode &&
5608
+ getSchemedHighContrastMediaQuery({
5609
+ backgroundImage: getIndeterminateSVGBackgroundImage('black'),
5610
+ }, {
5611
+ backgroundImage: getIndeterminateSVGBackgroundImage('white'),
5612
+ })),
5613
+ },
5614
+ }
5615
+ : {
5616
+ 'input:checked': {
5617
+ // background-image is merged in later
5618
+ borderColor: checkedColor,
5619
+ backgroundColor: checkedColor,
5620
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5621
+ borderColor: checkedColorDark,
5622
+ backgroundColor: checkedColorDark,
5623
+ }),
5624
+ },
5625
+ }),
5626
+ ...(!disabledOrLoading &&
5627
+ !isHighContrastMode &&
5628
+ hoverMediaQuery({
5629
+ 'input:hover,label:hover~.wrapper input': {
5630
+ borderColor: uncheckedHoverColor,
5631
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5632
+ borderColor: uncheckedHoverColorDark,
5633
+ }),
5634
+ },
5635
+ 'input:checked:hover,label:hover~.wrapper input:checked': {
5636
+ borderColor: checkedHoverColor,
5637
+ backgroundColor: checkedHoverColor,
5638
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5639
+ borderColor: checkedHoverColorDark,
5640
+ backgroundColor: checkedHoverColorDark,
5641
+ }),
5642
+ },
5643
+ 'input:indeterminate:hover,label:hover~.wrapper input:indeterminate': {
5644
+ background, // Safari fix: ensures proper rendering of 'indeterminate' mode with 'checked' state.
5645
+ borderColor: uncheckedHoverColor, // Safari fix: ensures proper rendering of 'indeterminate' mode with 'checked' state.
5646
+ backgroundImage: getIndeterminateSVGBackgroundImage(escapeHashCharacter(indeterminateIconHoverColor)),
5647
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5648
+ backgroundImage: getIndeterminateSVGBackgroundImage(escapeHashCharacter(indeterminateIconHoverColorDark)),
5649
+ borderColor: uncheckedHoverColorDark, // Safari fix: ensures proper rendering of 'indeterminate' mode
5650
+ backgroundColor: 'transparent',
5651
+ }),
5652
+ },
5653
+ 'label:hover~.wrapper input': supportsChromiumMediaQuery({
5654
+ transition: 'unset', // Fixes chrome bug where transition properties are stuck on hover
5655
+ }),
5656
+ })),
5657
+ ...(!isDisabled && {
5658
+ 'input::-moz-focus-inner': {
5659
+ border: 0, // reset ua-style (for FF)
5660
+ },
5661
+ 'input:focus': {
5662
+ outline: 0, // reset ua-style (for older browsers)
5663
+ },
5664
+ 'input:focus-visible': {
5665
+ outline: `${borderWidthBase} solid ${focusColor}`,
5666
+ outlineOffset: '2px',
5667
+ ...prefersColorSchemeDarkMediaQuery(theme, {
5668
+ outlineColor: focusColorDark,
5669
+ }),
5670
+ },
5671
+ }),
5672
+ },
5673
+ root: {
5674
+ display: 'grid',
5675
+ gridTemplateColumns: 'auto minmax(0, 1fr)',
5676
+ rowGap: spacingStaticXSmall,
5677
+ ...(disabledOrLoading && {
5678
+ cursor: 'not-allowed',
5679
+ }),
5680
+ },
5681
+ wrapper: {
5682
+ display: 'grid',
5683
+ gridArea: '1/1',
5684
+ alignSelf: 'flex-start', // in case label becomes multiline
5685
+ },
5686
+ ...(isLoading && {
5687
+ spinner: {
5688
+ position: 'relative', // ensure correct stacking, can be removed as soon as focus for input is handled with outline
5689
+ gridArea: '1/1',
5690
+ placeSelf: 'center',
5691
+ width: fontLineHeight,
5692
+ height: fontLineHeight,
5693
+ font: `${fontSizeTextSmall} ${fontFamily}`, // needed for correct width and height definition based on ex-unit
5694
+ pointerEvents: 'none',
5695
+ },
5696
+ }),
5697
+ // .label / .required
5698
+ ...getFunctionalComponentLabelStyles(isDisabled || isLoading, hideLabel, theme, {
5699
+ gridArea: '1/2',
5700
+ ...(isLoading && { pointerEvents: 'none' }), // prevent default htmlFor behavior. TODO: Remove as soon as label component for custom form components exists.
5701
+ }, {
5702
+ paddingTop: '2px', // compensate vertical alignment
5703
+ paddingInlineStart: spacingStaticSmall, // asymmetric padding used instead of gap to prevent not clickable area between label and input
5704
+ }),
5705
+ // .message
5706
+ ...getFunctionalComponentStateMessageStyles(theme, state, {
5707
+ gridColumn: '1/3',
5708
+ }),
5709
+ // .loading
5710
+ ...getFunctionalComponentLoadingMessageStyles(),
5711
+ });
5712
+ };
5713
+
5394
5714
  const widthMap = {
5395
5715
  narrow: gridNarrowOffset,
5396
5716
  basic: gridBasicOffset,
@@ -8395,12 +8715,8 @@ const getCheckedSVGBackgroundImage = (fill) => {
8395
8715
  return getInlineSVGBackgroundImage(`<circle fill="${fill}" cx="12" cy="12" r="6"/>`);
8396
8716
  };
8397
8717
  const getComponentCss$v = (hideLabel, state, isDisabled, isLoading, theme) => {
8398
- const checkedIconColor = isHighContrastMode
8399
- ? getHighContrastColors().canvasColor
8400
- : escapeHashCharacter(getInvertedThemedColors(theme).primaryColor);
8401
- const checkedIconColorDark = isHighContrastMode
8402
- ? getHighContrastColors().canvasColor
8403
- : escapeHashCharacter(getInvertedThemedColors('dark').primaryColor);
8718
+ const checkedIconColor = escapeHashCharacter(getInvertedThemedColors(theme).primaryColor);
8719
+ const checkedIconColorDark = escapeHashCharacter(getInvertedThemedColors('dark').primaryColor);
8404
8720
  return getCss({
8405
8721
  '@global': {
8406
8722
  ':host': {
@@ -8425,6 +8741,13 @@ const getComponentCss$v = (hideLabel, state, isDisabled, isLoading, theme) => {
8425
8741
  ...prefersColorSchemeDarkMediaQuery(theme, {
8426
8742
  backgroundImage: getCheckedSVGBackgroundImage(checkedIconColorDark),
8427
8743
  }),
8744
+ // This is a workaround for Blink based browsers, which do not reflect the high contrast system colors (e.g.: "Canvas" and "CanvasText") when added to background SVG's.
8745
+ ...(isHighContrastMode &&
8746
+ getSchemedHighContrastMediaQuery({
8747
+ backgroundImage: getCheckedSVGBackgroundImage('white'),
8748
+ }, {
8749
+ backgroundImage: getCheckedSVGBackgroundImage('black'),
8750
+ })),
8428
8751
  },
8429
8752
  }),
8430
8753
  },
@@ -10723,4 +11046,4 @@ const getComponentCss = (size, theme) => {
10723
11046
  });
10724
11047
  };
10725
11048
 
10726
- export { getComponentCss$18 as getAccordionCss, getComponentCss$17 as getBannerCss, getComponentCss$13 as getButtonCss, getComponentCss$16 as getButtonGroupCss, getComponentCss$15 as getButtonPureCss, getComponentCss$14 as getButtonTileCss, getComponentCss$12 as getCanvasCss, getComponentCss$11 as getCarouselCss, getComponentCss$10 as getCheckboxWrapperCss, getComponentCss$$ as getContentWrapperCss, getComponentCss$_ as getCrestCss, getComponentCss$Z as getDisplayCss, getComponentCss$Y as getDividerCss, getComponentCss$W as getFieldsetCss, getComponentCss$X as getFieldsetWrapperCss, getComponentCss$U as getFlexCss, getComponentCss$V as getFlexItemCss, getComponentCss$R as getFlyoutCss, getComponentCss$T as getFlyoutMultilevelCss, getComponentCss$S as getFlyoutMultilevelItemCss, getFunctionalComponentLabelStyles, getFunctionalComponentLoadingMessageStyles, getFunctionalComponentRequiredStyles, getFunctionalComponentStateMessageStyles, getComponentCss$P as getGridCss, getComponentCss$Q as getGridItemCss, getComponentCss$O as getHeadingCss, getComponentCss$N as getHeadlineCss, getComponentCss$M as getIconCss, getComponentCss$L as getInlineNotificationCss, getComponentCss$J as getLinkCss, getComponentCss$K as getLinkPureCss, getComponentCss$J as getLinkSocialCss, getComponentCss$G as getLinkTileCss, getComponentCss$I as getLinkTileModelSignatureCss, getComponentCss$H as getLinkTileProductCss, getComponentCss$F as getMarqueCss, getComponentCss$E as getModalCss, getComponentCss$D as getModelSignatureCss, getComponentCss$B as getMultiSelectCss, getComponentCss$C as getMultiSelectOptionCss, getComponentCss$z as getOptgroupCss, getComponentCss$y as getPaginationCss, getComponentCss$x as getPinCodeCss, getComponentCss$w as getPopoverCss, getComponentCss$v as getRadioButtonWrapperCss, getComponentCss$u as getScrollerCss, getComponentCss$s as getSegmentedControlCss, getComponentCss$t as getSegmentedControlItemCss, getComponentCss$p as getSelectCss, getComponentCss$A as getSelectOptionCss, getComponentCss$q as getSelectWrapperCss, getComponentCss$r as getSelectWrapperDropdownCss, getComponentCss$o as getSpinnerCss, getComponentCss$m as getStepperHorizontalCss, getComponentCss$n as getStepperHorizontalItemCss, getComponentCss$l as getSwitchCss, getComponentCss$k as getTableBodyCss, getComponentCss$j as getTableCellCss, getComponentCss$i as getTableCss, getComponentCss$h as getTableHeadCellCss, getComponentCss$f as getTableHeadCss, getComponentCss$g as getTableHeadRowCss, getComponentCss$e as getTableRowCss, getComponentCss$d as getTabsBarCss, getComponentCss$b as getTabsCss, getComponentCss$c as getTabsItemCss, getComponentCss$9 as getTagCss, getComponentCss$a as getTagDismissibleCss, getComponentCss$5 as getTextCss, getComponentCss$8 as getTextFieldWrapperCss, getComponentCss$7 as getTextListCss, getComponentCss$6 as getTextListItemCss, getComponentCss$3 as getTextareaCss, getComponentCss$4 as getTextareaWrapperCss, getComponentCss$1 as getToastCss, getComponentCss as getWordmarkCss };
11049
+ export { getComponentCss$19 as getAccordionCss, getComponentCss$18 as getBannerCss, getComponentCss$14 as getButtonCss, getComponentCss$17 as getButtonGroupCss, getComponentCss$16 as getButtonPureCss, getComponentCss$15 as getButtonTileCss, getComponentCss$13 as getCanvasCss, getComponentCss$12 as getCarouselCss, getComponentCss$10 as getCheckboxCss, getComponentCss$11 as getCheckboxWrapperCss, getComponentCss$$ as getContentWrapperCss, getComponentCss$_ as getCrestCss, getComponentCss$Z as getDisplayCss, getComponentCss$Y as getDividerCss, getComponentCss$W as getFieldsetCss, getComponentCss$X as getFieldsetWrapperCss, getComponentCss$U as getFlexCss, getComponentCss$V as getFlexItemCss, getComponentCss$R as getFlyoutCss, getComponentCss$T as getFlyoutMultilevelCss, getComponentCss$S as getFlyoutMultilevelItemCss, getFunctionalComponentLabelStyles, getFunctionalComponentLoadingMessageStyles, getFunctionalComponentRequiredStyles, getFunctionalComponentStateMessageStyles, getComponentCss$P as getGridCss, getComponentCss$Q as getGridItemCss, getComponentCss$O as getHeadingCss, getComponentCss$N as getHeadlineCss, getComponentCss$M as getIconCss, getComponentCss$L as getInlineNotificationCss, getComponentCss$J as getLinkCss, getComponentCss$K as getLinkPureCss, getComponentCss$J as getLinkSocialCss, getComponentCss$G as getLinkTileCss, getComponentCss$I as getLinkTileModelSignatureCss, getComponentCss$H as getLinkTileProductCss, getComponentCss$F as getMarqueCss, getComponentCss$E as getModalCss, getComponentCss$D as getModelSignatureCss, getComponentCss$B as getMultiSelectCss, getComponentCss$C as getMultiSelectOptionCss, getComponentCss$z as getOptgroupCss, getComponentCss$y as getPaginationCss, getComponentCss$x as getPinCodeCss, getComponentCss$w as getPopoverCss, getComponentCss$v as getRadioButtonWrapperCss, getComponentCss$u as getScrollerCss, getComponentCss$s as getSegmentedControlCss, getComponentCss$t as getSegmentedControlItemCss, getComponentCss$p as getSelectCss, getComponentCss$A as getSelectOptionCss, getComponentCss$q as getSelectWrapperCss, getComponentCss$r as getSelectWrapperDropdownCss, getComponentCss$o as getSpinnerCss, getComponentCss$m as getStepperHorizontalCss, getComponentCss$n as getStepperHorizontalItemCss, getComponentCss$l as getSwitchCss, getComponentCss$k as getTableBodyCss, getComponentCss$j as getTableCellCss, getComponentCss$i as getTableCss, getComponentCss$h as getTableHeadCellCss, getComponentCss$f as getTableHeadCss, getComponentCss$g as getTableHeadRowCss, getComponentCss$e as getTableRowCss, getComponentCss$d as getTabsBarCss, getComponentCss$b as getTabsCss, getComponentCss$c as getTabsItemCss, getComponentCss$9 as getTagCss, getComponentCss$a as getTagDismissibleCss, getComponentCss$5 as getTextCss, getComponentCss$8 as getTextFieldWrapperCss, getComponentCss$7 as getTextListCss, getComponentCss$6 as getTextListItemCss, getComponentCss$3 as getTextareaCss, getComponentCss$4 as getTextareaWrapperCss, getComponentCss$1 as getToastCss, getComponentCss as getWordmarkCss };
@@ -1,26 +1,24 @@
1
1
  "use client";
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useRef } from 'react';
4
- import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
4
+ import { usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
  import { DSRCanvas } from '../dsr-components/canvas.mjs';
7
7
 
8
- const PCanvas = forwardRef(({ onDismissSidebarEnd, onDismissSidebarStart, sidebarEndOpen = false, sidebarEndWidth = 'medium', sidebarStartOpen = false, sidebarStartWidth = 'medium', className, children, ...rest }, ref) => {
8
+ const PCanvas = forwardRef(({ sidebarEndIcon = 'configurate', sidebarEndOpen = false, sidebarStartIcon = 'menu-lines', sidebarStartOpen = false, theme, className, children, ...rest }, ref) => {
9
9
  const elementRef = useRef();
10
- useEventCallback(elementRef, 'dismissSidebarEnd', onDismissSidebarEnd);
11
- useEventCallback(elementRef, 'dismissSidebarStart', onDismissSidebarStart);
12
10
  const WebComponentTag = usePrefix('p-canvas');
13
- const propsToSync = [sidebarEndOpen, sidebarEndWidth, sidebarStartOpen, sidebarStartWidth];
11
+ const propsToSync = [sidebarEndIcon, sidebarEndOpen, sidebarStartIcon, sidebarStartOpen, theme || useTheme()];
14
12
  useBrowserLayoutEffect(() => {
15
13
  const { current } = elementRef;
16
- ['sidebarEndOpen', 'sidebarEndWidth', 'sidebarStartOpen', 'sidebarStartWidth'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ ['sidebarEndIcon', 'sidebarEndOpen', 'sidebarStartIcon', 'sidebarStartOpen', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
15
  }, propsToSync);
18
16
  const props = {
19
17
  ...rest,
20
18
  // @ts-ignore
21
19
  ...(!process.browser
22
20
  ? {
23
- children: (jsx(DSRCanvas, { sidebarEndOpen, sidebarEndWidth, sidebarStartOpen, sidebarStartWidth, children })),
21
+ children: (jsx(DSRCanvas, { sidebarEndIcon, sidebarEndOpen, sidebarStartIcon, sidebarStartOpen, theme: theme || useTheme(), children })),
24
22
  }
25
23
  : {
26
24
  children,