- Tree-shaking for the 
corepackage (pcln-design-system) - Tree-shaking for the 
iconspackage (pcln-icons) - Tree-shaking for the 
autocompletepackage (pcln-autocomplete) - Tree-shaking for the 
modalpackage (pcln-modal) - Tree-shaking for the 
popoverpackage (pcln-popover) - Tree-shaking for the 
sliderpackage (pcln-slider) 
- peerDependency increase: 
pcln-icons >=3 - GreenButton and RedButton have been removed
- Use 
<Button color='secondary'>...</Button>or<Button color='error'>...</Button>instead 
 - Use 
 - OutlineButton 
<OutlineButton />has been removed- Use 
<Button variation='outline'>...</Button>instead 
 - Use 
 bgprop has been marked as deprecated in favor ofcolorxxlbreakpoint added at 80em - this changes the behavior of<Hide>whenxlis specified.xlwasmin-width: 64em, is nowmin-width: 64em and max-width: 79.999emxxlis nowmin-width: 80em- Add the 
xxlprop to all necessary hide components during an upgrade, likely to be hide components usingxlalready 
- Icon 
<Icon name="iconName" />has been removed - IconButton
name,sizeandcolorprops are removed- added 
iconprop of type node. You should pass thesizeandcolorprops directly to the icon child: 
 
import { IconButton } from 'pcln-design-system
import { ThumbsUp } from 'pcln-icons
<IconButton
    icon={<ThumbsUp size={32} color='primary' />}
/>
- 
Components that now take an
iconnode instead of aniconNamestring- IconButton
 - Hug
 - Banner
 - Step
 - Select
 
 - 
Text
- Added 
textShadowSizeandenableTextShadowprops - Changed default fontSize behavior of Heading to be more inline with Heading styles
 
 - Added 
 
mainandmodulefields inpackage.jsonnow point to CommonJS (CJS) and ES Modules (ESM) builds, respectively.- Usage: 
import { TrendingUp, Timer } from 'pcln-icons'- Imports from 
pcln-icons/lib/are no longer available. This previously contained a CJS build that was incompatible with tree-shaking and dead code elimination in bundlers. - Built artifact now contains separate CJS and ESM builds, targetted by the 
mainandmodulesfields. Modern bundlers like Webpack and Parcel target themodule, since the ESM code supports tree-shaking. Themainbuild is for CJS for Node.js usage, including unit testing (Jest) and Server-Side Rendering (SSR). - Default export removed (
import Icon from 'pcln-icons') - To use 
Icon, the previous default export, use (import { Icon } from 'pcln-icons') instead. 
 - Imports from 
 
- Icon title falls back to the name prop
 - Image now supports responsive widths via 
widthprop - Link now uses dark shade of 
colorprop on hover - Banner now supports a node as its 
headerprop in addition to strings - Popover now supports trapping focus inside of the popup via 
trapFocusprop - Input and TextArea now use 
bordersinstead ofbox-shadow, to prevent misalignments with other components like Select 
- Upgrade all 
pcln-*packages from this monorepo to version3.0.0or higher. - Replace usage of removed 
<Icon>component inpcln-design-system 
- First preference is named imports from 
pcln-icons: 
import { ThumbsUp } from 'pcln-icons'
export default <ThumbsUp />- If required, use the 
<Icon>component frompcln-icons. This has one important caveat - bundlers will need to include ALL of the icons that could potentially be used: 
import { Icon } from 'pcln-icons'
export default <Icon name='ThumbsUp' />- The following components now accept an 
iconprop instead of aniconName: 
IconButtonHugBannerStepSelect
- Simple Replacements
 
| Before | After | 
|---|---|
<GreenButton> | 
<Button color='secondary'> | 
<RedButton> | 
<Button color='error'> | 
<OutlineButton> | 
<Button variation='outline'> | 
- Recommended Optional Change: Replace object literal syntax for 
styled-componentsattrmethod with newer function signature to be ready to benefit from performance improvements in SC v5.