Salesforce Lightning Design System

Overview

Salesforce Lightning Design System

Build Status Dependabot Status

Welcome to the source code repository for Salesforce Lightning Design System, brought to you by Salesforce UX.

SLDS is...

  • Tailored for building Salesforce apps: Using the Lightning Design System markup and CSS framework results in UIs that reflect the Salesforce Lightning look and feel.
  • Continuously updated: As long as you’re using the latest version of the Lightning Design System, your pages are always up to date with Salesforce UI changes.

Getting Started

This project utilizes Storybook for component development. If you would like to know more about Storybook or how it works, check out their website.

Project Installation & Setup:

  1. Clone the repository down locally.
  2. cd into the project and run npm install to install all project dependencies.

Running the Development Environment:

The Storybook development environment can be started by running npm start

Whenever you add, remove, or alter a component's css annotation metadata, you'll need to restart Storybook to see those changes.

Configuring Node and NVM

Node v12 is recommended for use with the Design System repository, and NVM is the recommended choice for managing multiple versions of Node on your computer.

A .nvmrc file is included in this project to aid in local development. To utilize it for setting your project's node version, run nvm use in the root of the directory. Additionally, you can set up a deeper shell integration for automatically invoking the nvmrc file when you change into the project directory by following these instructions.

Developing in Storybook

Once the development server is started with npm start, you can load it at http://localhost:9002.

Annotations

See the annotations guide.

Tasks

npm start

Starts the Storybook server for local development.

npm run gulp -- lint

Lint the code base for syntax and stylistic errors.

# Lint indentation, Sass, JavaScript files
npm run gulp -- lint

# Lint languages independently
npm run gulp -- lint:sass
npm run gulp -- lint:javascript
npm run gulp -- lint:javascript:test
npm run gulp -- lint:spaces
npm run gulp -- lint:html

# HTML5 validation
npm run gulp -- lint:vnu
# HTML5 validation on comma separated blueprint names
npm run gulp -- lint:vnu --components button,path,trees

# a11y validation
npm run gulp -- lint:a11y
# a11y validation on comma separated blueprint names
npm run gulp -- lint:a11y --components button,path,trees

# Lint examples using vnu, aXe, slds validation, and HTML5 validation
npm run gulp -- lint:examples

Pull Request Checks

To run all the checks a pull request will run in Travis use the following command.

# To run every check against all blueprints
npm run pr-checks

# To run every check but target certain blueprints for slow checks like aXe and vnu
npm run pr-checks -- --components button,path,trees

Compilation

npm run build-dist

Generate the Lightning Design System into the .dist directory.

npm run gulp -- styles

Compile Sass to CSS into .assets/styles.

npm run gulp -- clean

Delete temporary build and local files.

Stats

npm run gulp -- styles:stats: Useful stats about the project's deliverables.

Tests

npm test: run all tests

Troubleshooting

See the troubleshooting guide.

Contributing Back to SLDS

See the contributing guide.

Licenses

Got Feedback?

Please open a new GitHub Issue.

Comments
  • Stencil example codes (component request)

    Stencil example codes (component request)

    Can we (Salesforce) make some stencil examples available for some of our components?

    For example, having list views, detail, buttons, tabs, cards/tiles, process paths, etc would be helpful.

    Otherwise, you're going to have a whole bunch of people trying to follow our design guide but writing their own stencil stuff.


    Note from Kaelig: "Stencils" are loading patterns, see https://www.lightningdesignsystem.com/design/loading

    feature-request 
    opened by mshanemc 38
  • Visualforce SVG tag issues

    Visualforce SVG tag issues

    Good evening,

    I stumbled onto an issue that appears to be a bug within Salesforce that hasn't been solved for quite a few years. When referencing SVG tags in Visualforce, the renderer seems to trip up when encountering XML namespace attributes. For example, if I reference the SVG component as suggested in the document, the "slds-media__body" tag is rewritten to be inside the "slds-media__figure" tag even though it is declared to be a sibling in the template.

    <apex:page >
        <apex:stylesheet value="{!URLFOR($Resource.SLDS092, 'assets/styles/salesforce-lightning-design-system-vf.css')}" />
        <apex:form styleClass="slds">
            <!-- Without custom component for SVG -->
            <div class="slds-page-header" role="banner">
                <div class="slds-grid">
                    <div class="slds-col slds-has-flexi-truncate">
                        <div class="slds-media">
                            <div class="slds-media__figure">
                                <svg aria-hidden="true" class="slds-icon slds-icon--large slds-icon-standard-opportunity">
                                    <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{!URLFOR($Resource.SLDS092, 'assets/icons/standard-sprite/svg/symbols.svg#opportunity')}" />
                                </svg>
                            </div>
                            <div class="slds-media__body">
                                <p class="slds-text-heading--label">Opportunity</p>
                                <div class="slds-grid">
                                    <h1 class="slds-text-heading--medium slds-m-right--small slds-truncate slds-align-middle" title="Test Opportunity">Test Opportunity</h1>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </apex:form>
    </apex:page>
    

    My solution thus far has been to create a custom component for the SVG tag, which appears to ensure that the template gets written correctly:

    Component:

    <apex:component >
        <apex:attribute name="styleClass" type="String" description="Class for svg tag" />
        <apex:attribute name="path" type="String" description="Path for svg tag" />
        <svg aria-hidden="true" class="{!styleClass}">
            <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{!URLFOR($Resource.SLDS092, path)}" />
        </svg>
    </apex:component>
    

    Page:

    <apex:page >
        <apex:stylesheet value="{!URLFOR($Resource.SLDS092, 'assets/styles/salesforce-lightning-design-system-vf.css')}" />
        <apex:form styleClass="slds">
            <!-- With custom component for SVG -->
            <div class="slds-page-header" role="banner">
                <div class="slds-grid">
                    <div class="slds-col slds-has-flexi-truncate">
                        <div class="slds-media">
                            <div class="slds-media__figure">
                                <c:svg styleClass="slds-icon slds-icon--large slds-icon-standard-opportunity" path="assets/icons/standard-sprite/svg/symbols.svg#opportunity" />
                            </div>
                            <div class="slds-media__body">
                                <p class="slds-text-heading--label">Opportunity</p>
                                <div class="slds-grid">
                                    <h1 class="slds-text-heading--medium slds-m-right--small slds-truncate slds-align-middle" title="Test Opportunity">Test Opportunity</h1>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </apex:form>
    </apex:page>
    
    bug help wanted 
    opened by paxtontech 37
  • Using SLDS from a managed package - fonts & SVG not downloading due to Cross-Origin-Resource-Sharing

    Using SLDS from a managed package - fonts & SVG not downloading due to Cross-Origin-Resource-Sharing

    Hi,

    We're facing an issue whereby we ship our own scoped version of slds 2.0.2. We provide various components for our clients to use which have been styled with this. We've hit a problem whereby if a user creates a VF page in their org which embeds one of our slds based apex components, the fonts and svg icons do not download due to:

    Font from origin 'https://na30.salesforce.com' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

    And

    Unsafe attempt to load URL https://my_managed_package.na30.visual.force.com/resource/1469571737000/my_managed_package__slds/assets/icons/action-sprite/svg/symbols.svg#back from frame with URL https://c.na30.visual.force.com/apex/QEFormsAllElementsLightning. Domains, protocols and ports must match.

    We've seen this issue with our older non-slds theme and were told it's due to the following:

    We discussed the issue with R&D. According to them, you have IE-specific rules in your stylesheet (they are used in filter properties, and look like this: filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);

    that are causing the cssparser (3rd party library) to fail.

    When it fails, the original source is used, that is why the font-face URLs are not being decorated, and you still see the problem.

    There is a known bug for this issue (and one more) logged with the CSSPARSER team

    • CSS Parser's Bug:

      https://sourceforge.net/p/cssparser/bugs/49

    The workaround is to move the @font-face rules out of custom.css, into another CSS file in the same directory.

    He counted only 8 @font-face rules, so the task is trivial.

    I will attach the new files here (custom.css with the removed rules, and custom_font.css with the @font-face rules).

    If you can recreate the zip file with custom_font.css in the same directory as custom.css, upload a new version of the package, and install the package on a subscriber org, then the font files will load again.

    However I've searched slds and there's no old-school IE filters in there, so I'm wondering why this might be happening? And how can we solve it?

    question stale 
    opened by mattgoldspink 34
  • Lightning Design UI Kit

    Lightning Design UI Kit

    Starting to begin a tablet app that incorporates the new Lightning Design System that you guy's have created. Was looking to see if I could get my hands on a UI kit (psd or sketch) for the design system so I can closely stick to this new UI that has been designed. Thanks!

    feature-request 
    opened by DustyScarpitti 29
  • Static resource build exceeds 5MB limit of static resource

    Static resource build exceeds 5MB limit of static resource

    (REQUIRED) Include one or more screenshots if applicable, as well as a Codepen with the reduced test case.

    --

    Describe the issue. Is it a bug or a feature request (new component, new icon, new CSS class)?

    The static resource builds hosted on the Downloads page exceeds the static resource size limit of 5MB.

    Is this issue related to a specific component, variant, and/or state? If so, please detail which.

    --

    Are any specific browsers impacted by this bug?

    --

    Which version of the Salesforce Lightning Design System are you using?

    2.10.0

    What steps and/or code are needed to reproduce this issue?

    • Download static resource build from the website
    • Add it as static resource to the org source
    • Push to org via sfdx

    What did you expect to happen?

    This specific build to work as a static resource (as advertised)

    What actually happened?

    --

    awaiting feedback 
    opened by fspoettel 24
  • iPad/iPhone - Default Scrollbar issue

    iPad/iPhone - Default Scrollbar issue

    The default scroll bar for an outputText inside Lightning Component is not working, especially for iPad and iPhone. The default scroll bar is coming but when one try to scroll it the whole page is getting scrolled instead of the outputText wrapper. Screenshot of the page with default scrollbar is attached below.

    image_screenshot1

    The class 'slds-scrollable--y' for getting the default scroll bar is given for outputText. HTML code for the outputText is shown below:

    <div class="slds-col slds-size--1-of-1 noteBox">
            <ui:outputText value="{!v.quarterlyForecastView.quarterlyForecastObject.scfcst__Notes__c}" aura:id="viewModeScrollBarY" class="slds-scrollable--y"/>
     </div>
    

    Can you please provide a solution? Thanks in advance.

    bug 
    opened by CinoGeorge 23
  • Hard assets URLs usage

    Hard assets URLs usage

    (REQUIRED) Include one or more screenshots if applicable, as well as a Codepen with the reduced test case.

    image

    Describe the issue. Is it a bug or a feature request (new component, new icon, new CSS class)?

    The usage of hard URLs for some asset paths is causing issues when loading the css through a cdn service such as cdnjs. Throughout the file soft URL paths are used which work perfectly (fonts etc.) but the hard URLs being used in some places are leading to issues.

    Is this issue related to a specific component, variant, and/or state? If so, please detail which.

    Brand band, Popover walkthrough, Global header logo, Avatar, Einstein header, Welcome mat

    Are any specific browsers impacted by this bug?

    N/A

    Which version of the Salesforce Lightning Design System are you using?

    2.7.5

    What steps and/or code are needed to reproduce this issue?

    Load the css from cdnjs: https://cdnjs.cloudflare.com/ajax/libs/design-system/2.7.5/styles/salesforce-lightning-design-system.css

    What did you expect to happen?

    Assets imported through soft URLs so that they work on a cdn

    What actually happened?

    Hard URLs cause asset imports to break

    opened by MattIPv4 22
  • @salesforce-ux/design-system  Not Found

    @salesforce-ux/design-system Not Found

    Hi everyone! here is a description of bug after 'npm install'

    package.json dependencies: "dependencies": { ... "@salesforce-ux/design-system": "^0.12.1", ... },

    and body of Bug:

    npm ERR! 404 Not Found : @salesforce-ux/design-system npm ERR! 404 npm ERR! 404 '@salesforce-ux/design-system' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 It was specified as a dependency of 'audio-test' npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url.

    npm-debug.log.zip

    opened by mdolzhko 20
  • Cannot Run Dist for Windows

    Cannot Run Dist for Windows

    Hello, I'm trying to run the npm run build && npm run dist command on Windows 10 and getting the following error: (undefined) __internal\chunked\docs\ui\components\cards\docs.mdx.js from UglifyJs Invalid hex-character pattern in string [__internal\chunked\docs\ui\components\cards\docs.mdx.js:1,28] at webpack.run (C:/Code/git/UI/slds-assets-sync/scripts/compile/bundle.js:104:11) at runWithDependencies.err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\MultiCompiler.js:247:6) at done (C:\Code\git\UI\slds-assets-sync\node_modules\neo-async\async.js:2920:13) at runCompilers (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\MultiCompiler.js:171:48) at err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\MultiCompiler.js:178:7) at compiler.run (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\MultiCompiler.js:242:7) at hooks.done.callAsync.err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\Compiler.js:185:14) at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Code\git\UI\slds-assets-sync\node_modules\tapable\lib\HookCodeFactory.js:24:12), <anonymous>:15:1) at AsyncSeriesHook.lazyCompileHook [as _callAsync] (C:\Code\git\UI\slds-assets-sync\node_modules\tapable\lib\Hook.js:35:21) at emitRecords.err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\Compiler.js:183:22) at Compiler.emitRecords (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\Compiler.js:295:39) at emitAssets.err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\Compiler.js:177:10) at hooks.afterEmit.callAsync.err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\Compiler.js:281:14) at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Code\git\UI\slds-assets-sync\node_modules\tapable\lib\HookCodeFactory.js:24:12), <anonymous>:15:1) at AsyncSeriesHook.lazyCompileHook [as _callAsync] (C:\Code\git\UI\slds-assets-sync\node_modules\tapable\lib\Hook.js:35:21) at asyncLib.forEach.err (C:\Code\git\UI\slds-assets-sync\node_modules\webpack\lib\Compiler.js:278:27) [13:25:42] 'dist' errored after 1.52 min npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] gulp:babel-node ./node_modules/gulp/bin/gulp.js "dist"npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] gulp script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

    I'm running node 8.11.2 and npm 6.4.1

    bug windows stale needs investigation 
    opened by moshner 17
  • Styling is messed up when datepicker is used inside a table

    Styling is messed up when datepicker is used inside a table

    When we use the datepicker inside a table the styling is going completely off. The <table> element inside the datepicker is getting styled as per the parent table rather than having its own styling.

    Below code (and screenshot) should be able to give you guys an idea of what I am talking about.

    <table class="slds-table slds-table--bordered slds-table--cell-buffer">
      <thead>
        <tr class="slds-text-heading--label">
          <th scope="col">
            <center>
                <div class="slds-truncate" title="Some date">Some Date</div>
            </center>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr>
            <td>
                <slds-date></slds-date><!--Exact code available on SLDS website for datepicker-->
            </td>
        </tr>
      </tbody>
    </table>  
    

    image

    bug 
    opened by sameernmiraj 17
  • SVG icon not rendering on IE Edge under Lightning UI.

    SVG icon not rendering on IE Edge under Lightning UI.

    Create Visualforce page and Tab. The svg icons are not rendered on IE edge browser. The visualforce code of page is -

    <apex:page sidebar="false" showHeader="false" docType="html-5.0" applyHtmlTag="false">
      <html xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
            <head>
                <meta charset="UTF-8"/>
                <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    
                <apex:stylesheet value="path to slds css" />
    
                <apex:includeScript value="path to svg4everybody" />
    
            </head>
            <body style="padding: 0;">
                <div class="slds">
                    <span class="slds-icon_container slds-icon_container--circle slds-icon-action-description" title="description of icon when needed">
                      <svg aria-hidden="true" class="slds-icon slds-icon--small">
                        <use xlink:href="path to slds#description"></use>
                      </svg>
                      <span class="slds-assistive-text">Description of icon</span>
                    </span>
                </div>
                <script>
                    svg4everybody();
                </script>   
            </body>
      </html>       
    </apex:page>
    
    opened by kanwalpreet-singh 16
  • TreeGrid accessibility support

    TreeGrid accessibility support

    What accessibility support is there for the TreeGrid component. The treegrid role is in the specs but how well supported is it? How have you tested this component with AT?

    opened by davelovemartin 0
  • Module Not Found Issue

    Module Not Found Issue

    (REQUIRED) Include one or more screenshots if applicable, as well as a Codepen with the reduced test case.

    Describe the issue. Is it a bug or a feature request (new component, new icon, new CSS class)?

    Is this issue related to a specific component, variant, and/or state? If so, please detail which.

    Are any specific browsers impacted by this bug?

    Which version of the Salesforce Lightning Design System are you using?

    What steps and/or code are needed to reproduce this issue?

    What did you expect to happen?

    What actually happened?

    opened by v22asthana 2
  • [DOC] Broken hyperlinks on Visualforce page

    [DOC] Broken hyperlinks on Visualforce page

    There are broken links in the documentation : https://www.lightningdesignsystem.com/platforms/visualforce/

    1. Clicking on most of the trailhead links on the documentation is causing 404 error.
    2. Hyperlink for " A tool to create your custom CSS is available here " is redirecting to an unreachable page.
    opened by stylishbharath 0
  • [Button] Dual Button color not visible

    [Button] Dual Button color not visible

    In the Dual Button, the color should be white. Because when you press it and the button is still focused, the color is the same as the background : image

    See : https://www.lightningdesignsystem.com/components/buttons/#Pressed

    opened by pierre-H 0
  • Fixing typo in Documentation in Icons

    Fixing typo in Documentation in Icons

    Hi,

    I open pull request to fix this typo as mentioned on #735

    I did not go through all recommended checks for pull request, because I think this is just a typo in documentation file.

    Hope it works!

    cla:missing 
    opened by ondrejkonec 1
Releases(v2.19.0)
Owner
Salesforce UX
Clarity. Efficiency. Consistency. Beauty. The product design team at Salesforce.
Salesforce UX
The CSS design system that powers GitHub

Primer CSS The CSS implementation of GitHub's Primer Design System Migrating ?? If you currently use the primer or primer--prefixed npm packages, plea

Primer 11.6k Jan 3, 2023
:mountain_bicyclist: Landing Pages of Ant Design System

Ant Design Landing Landing Pages of Ant Design System English | 简体中文 What is Landing? Landing is a template built by Ant Motion's motion components. I

Ant Design Team 5.2k Dec 31, 2022
Orange Design System theme for Storybook

ODS Storybook Theme Orange Design System Storybook Theme provides a Storybook theme for Orange. Quick start Install with npm: npm install ods-storyboo

Orange 3 Jan 10, 2022
Materialize, a CSS Framework based on Material Design

MaterializeCSS Materialize, a CSS Framework based on material design. -- Browse the docs -- Table of Contents Quickstart Documentation Supported Brows

Alvin Wang 38.8k Jan 2, 2023
Material Design Components in HTML/CSS/JS

Material Design Lite An implementation of Material Design components in vanilla CSS, JS, and HTML. Material Design Lite (MDL) lets you add a Material

Google 32.1k Jan 4, 2023
Modular and customizable Material Design UI components for the web

Material Components for the web Material Components for the web helps developers execute Material Design. Developed by a core team of engineers and UX

Material Components 16.6k Jan 3, 2023
A responsive HTML template for coding projects with a clean, user friendly design. Crafted with the latest web technologies, the template is suitable for landing pages and documentations.

Scribbler - a responsive HTML template for coding projects and documentations Scribbler is a responsive HTML/CSS/Javascript template designed for deve

Amie Chen 394 Jan 1, 2023
Material Design Based One Page HTML Template

Material Design One Page HTML Template MD One page template is fully responsive and free to use. This HTML template is based on Materialize, a CSS Fra

Joash 587 Jan 2, 2023
Cool Boostrap Design form for Payout and Register.

Cool Boostrap Design form for Payout and Register. Design for the Payment form you can find the whole Boostrap code in the "payout.html" file. Design

Gabriel Dimitrievski 99 Oct 10, 2022
MDUI 是一个基于 Material Design 的前端框架。

MDUI MDUI 是一个基于 Material Design 的前端框架。 QQ群:635509201 中文文档 特性 轻量级 CSS 文件仅 32KB minified + gzip JavaScript 文件仅 19KB minified + gzip 多主题 CSS 文件中已经包含了 19种

zdhxiong 3.5k Jan 2, 2023
Reasonable System for CSS Stylesheet Structure

Viewing this from GitHub? Visit the website for the full experience. rscss.io → rscss Styling CSS without losing your sanity Reasonable System for CSS

Rico Sta. Cruz 3.9k Dec 21, 2022
A markdown based documentation system for style guides.

Hologram Hologram is a Ruby gem that parses comments in your CSS and helps you turn them into a beautiful style guide. There are two steps to building

Trulia, LLC. 2.2k Nov 12, 2022
A nas system

火星一云/sparkCloud 这是一个类似于nas的个人项目,布置好服务器后,可以在线观看视频,可以实现文件的上传和下载。 技术 前后端分离的项目。前端是spa应用,使用react全家桶完成,分别适配了pc端和移动端,用videojs实现视频的播放。后端用nodejs完成,主要用express,数

null 69 Dec 26, 2022
An Ember-flavoured Bootstrap 4.x eco-system

ui-bootstrap Adds a complete Ember Bootstrap 4.x eco-system THIS IS CURRENTLY A WORK IN PROGRESS ... it works but it will be "ready" pretty soon Insta

LifeGadget 12 Jan 25, 2021
implementing a hook to listen to system theme changes! it could be a good lib, who knows? 😏

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

José Tone 4 Jan 15, 2022
Native Angular components & directives for Lightning Design System

ng-lightning This library contains native Angular components and directives written from scratch in TypeScript using the Lightning Design System CSS f

null 910 Dec 8, 2022
The Frontend of Escobar's Inventory Management System, Employee Management System, Ordering System, and Income & Expense System

Usage Create an App # with npx $ npx create-nextron-app my-app --example with-javascript # with yarn $ yarn create nextron-app my-app --example with-

Viver Bungag 4 Jan 2, 2023
Salesforce Commerce Cloud ODS Command Center

ODS Command center The On Demand Sandbox Command Center is a GUI tool which usessfcc-ci under the hood. It aims to provide a simple interface for runn

Sachin Upmanyu 18 Sep 20, 2022
Functions Recipes is a library of examples to help you getting started with Salesforce Functions and get used to their main features.

Functions Recipes Introduction Salesforce Functions lets you use the Salesforce Platform for building event-driven, elastically scalable apps and expe

Trailhead Apps 172 Dec 29, 2022
... a contemporary perspective on how to integrate B2C Commerce and the Salesforce Customer 360 Platform to power frictionless customer experiences in the B2C domain.

Salesforce B2C Commerce / Customer 360 Platform Integration Introduction Salesforce B2C Commerce / CRM Sync is an enablement solution designed by Sale

Salesforce CommerceCloud 45 Dec 9, 2022