lightning-base-components 1.28.7-alpha → 1.28.10-alpha
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/metadata/raptor.json +2 -0
- package/package.json +17 -8
- package/src/lightning/accordionSection/button.slds.css +28 -28
- package/src/lightning/baseCombobox/baseCombobox.d.ts.map +1 -1
- package/src/lightning/baseCombobox/baseCombobox.js +5 -0
- package/src/lightning/baseCombobox/baseComboboxEvents.d.ts.map +1 -1
- package/src/lightning/baseCombobox/baseComboboxEvents.js +6 -0
- package/src/lightning/baseCombobox/input-text.slds.css +44 -50
- package/src/lightning/button/button.slds.css +28 -28
- package/src/lightning/buttonIcon/button-icon.slds.css +28 -28
- package/src/lightning/buttonIconStateful/button-icon.slds.css +28 -28
- package/src/lightning/buttonIconStateful/button.slds.css +28 -28
- package/src/lightning/buttonMenu/button-icon.slds.css +28 -28
- package/src/lightning/buttonMenu/button.slds.css +28 -28
- package/src/lightning/buttonStateful/button.slds.css +28 -28
- package/src/lightning/carousel/button.slds.css +28 -28
- package/src/lightning/checkboxGroup/checkboxGroup.d.ts +1 -0
- package/src/lightning/checkboxGroup/checkboxGroup.d.ts.map +1 -1
- package/src/lightning/checkboxGroup/checkboxGroup.html +23 -2
- package/src/lightning/checkboxGroup/checkboxGroup.js +5 -1
- package/src/lightning/colorPickerCustom/colorPickerCustom.d.ts.map +1 -1
- package/src/lightning/colorPickerCustom/colorPickerCustom.js +9 -0
- package/src/lightning/colorPickerCustom/input-text.slds.css +44 -50
- package/src/lightning/datatable/button-icon.slds.css +28 -28
- package/src/lightning/datatable/datatable.d.ts.map +1 -1
- package/src/lightning/datatable/datatable.js +3 -0
- package/src/lightning/datatable/icon.slds.css +11 -11
- package/src/lightning/datatable/input-checkbox.slds.css +20 -20
- package/src/lightning/datepicker/input-text.slds.css +44 -50
- package/src/lightning/datetimepicker/datetimepicker.d.ts.map +1 -1
- package/src/lightning/datetimepicker/datetimepicker.js +9 -0
- package/src/lightning/datetimepicker/input-text.slds.css +44 -50
- package/src/lightning/features/gates/imports.d.ts +4 -2
- package/src/lightning/features/gates/imports.js +4 -2
- package/src/lightning/formattedRichText/formattedRichText.d.ts +2 -0
- package/src/lightning/formattedRichText/formattedRichText.d.ts.map +1 -1
- package/src/lightning/formattedRichText/formattedRichText.html +13 -4
- package/src/lightning/formattedRichText/formattedRichText.js +15 -0
- package/src/lightning/groupedCombobox/input-text.slds.css +44 -50
- package/src/lightning/helptext/button-icon.slds.css +28 -28
- package/src/lightning/icon/icon.slds.css +11 -11
- package/src/lightning/input/input.d.ts.map +1 -1
- package/src/lightning/input/input.js +3 -0
- package/src/lightning/inputAddress/input-text.slds.css +44 -50
- package/src/lightning/inputLocation/input-text.slds.css +44 -50
- package/src/lightning/inputName/input-text.slds.css +44 -50
- package/src/lightning/inputName/inputName.d.ts.map +1 -1
- package/src/lightning/inputName/inputName.js +4 -0
- package/src/lightning/interactiveDialogBase/button.slds.css +28 -28
- package/src/lightning/modalHeader/modalHeader.css +2 -11
- package/src/lightning/modalHeader/modalHeader.lbc.synthetic.css +7 -0
- package/src/lightning/pillContainer/button.slds.css +28 -28
- package/src/lightning/pillContainer/standardPillContainer.css +1 -5
- package/src/lightning/pillContainer/standardPillContainer.lbc.native.css +5 -0
- package/src/lightning/positionLibrary/elementProxy.d.ts +2 -1
- package/src/lightning/positionLibrary/elementProxy.d.ts.map +1 -1
- package/src/lightning/positionLibrary/elementProxy.js +32 -3
- package/src/lightning/primitiveCellCheckbox/checkbox.css +0 -2
- package/src/lightning/primitiveCellCheckbox/checkbox.lbc.native.css +2 -0
- package/src/lightning/primitiveCellCheckbox/input-checkbox.slds.css +20 -20
- package/src/lightning/primitiveCellFactory/button-icon.slds.css +28 -28
- package/src/lightning/primitiveCoordinateItem/button.slds.css +28 -28
- package/src/lightning/primitiveDatatableStatusBar/button.slds.css +28 -28
- package/src/lightning/primitiveDatatableTooltip/button-icon.slds.css +28 -28
- package/src/lightning/primitiveDatatableTooltip/button.slds.css +28 -28
- package/src/lightning/primitiveFigure/primitiveFigure.css +64 -0
- package/src/lightning/primitiveFigure/primitiveFigure.d.ts +33 -0
- package/src/lightning/primitiveFigure/primitiveFigure.d.ts.map +1 -0
- package/src/lightning/primitiveFigure/primitiveFigure.html +5 -0
- package/src/lightning/primitiveFigure/primitiveFigure.js +155 -0
- package/src/lightning/primitiveFigure/primitiveFigure.js-meta.xml +4 -0
- package/src/lightning/primitiveHeaderFactory/input-checkbox.slds.css +20 -20
- package/src/lightning/primitiveIcon/icon.slds.css +11 -11
- package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +20 -20
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.d.ts.map +1 -1
- package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +1 -11
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.css +0 -1
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.d.ts.map +1 -1
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +12 -0
- package/src/lightning/primitiveInputColor/input-text.slds.css +44 -50
- package/src/lightning/primitiveInputColor/primitiveInputColor.d.ts.map +1 -1
- package/src/lightning/primitiveInputColor/primitiveInputColor.js +12 -0
- package/src/lightning/primitiveInputFile/button.slds.css +28 -28
- package/src/lightning/primitiveInputSimple/input-text.slds.css +44 -50
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.d.ts.map +1 -1
- package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +8 -0
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.d.ts.map +1 -1
- package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +12 -0
- package/src/lightning/primitiveTreegridCellToggle/button-icon.slds.css +28 -28
- package/src/lightning/prompt/input-text.slds.css +44 -50
- package/src/lightning/sldsCommon/sldsCommon.css +10 -10
- package/src/lightning/toast/button-icon.slds.css +28 -28
- package/src/lightning/toast/icon.slds.css +11 -11
- package/src/lightning/tree/treeData.d.ts.map +1 -1
- package/src/lightning/tree/treeData.js +18 -0
- package/src/lightning/utilsPrivate/normalize.d.ts +1 -1
- package/src/lightning/utilsPrivate/normalize.d.ts.map +1 -1
- package/src/lightning/verticalNavigationOverflow/button.slds.css +28 -28
- package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.lbc.synthetic.css +0 -2
|
@@ -16,11 +16,11 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
|
16
16
|
*/
|
|
17
17
|
:host([data-render-mode="shadow"]) [part~='button'] {
|
|
18
18
|
display: inline-flex;
|
|
19
|
-
gap: var(--sds-c-button-spacing-gap, var(--
|
|
20
|
-
background: var(--sds-c-button-color-background, var(--
|
|
21
|
-
color: var(--sds-c-button-text-color, var(--
|
|
22
|
-
font-weight: var(--sds-c-button-font-weight, var(--
|
|
23
|
-
font-size: var(--sds-c-button-font-size, var(--
|
|
19
|
+
gap: var(--sds-c-button-spacing-gap, var(--slds-s-button-spacing-gap));
|
|
20
|
+
background: var(--sds-c-button-color-background, var(--slds-s-button-color-background));
|
|
21
|
+
color: var(--sds-c-button-text-color, var(--slds-s-button-color));
|
|
22
|
+
font-weight: var(--sds-c-button-font-weight, var(--slds-s-button-font-weight));
|
|
23
|
+
font-size: var(--sds-c-button-font-size, var(--slds-s-button-font-size, inherit));
|
|
24
24
|
line-height: var(--sds-c-button-font-lineheight);
|
|
25
25
|
height: var(--sds-c-button-sizing-height);
|
|
26
26
|
width: var(--sds-c-button-sizing-width);
|
|
@@ -28,62 +28,62 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
|
28
28
|
--sds-c-button-spacing-inlinestart,
|
|
29
29
|
var(
|
|
30
30
|
--sds-c-button-spacing-inline,
|
|
31
|
-
var(--sds-c-button-spacing, var(--
|
|
31
|
+
var(--sds-c-button-spacing, var(--slds-s-button-spacing-inline, var(--slds-s-button-spacing)))
|
|
32
32
|
)
|
|
33
33
|
);
|
|
34
34
|
padding-inline-end: var(
|
|
35
35
|
--sds-c-button-spacing-inlineend,
|
|
36
36
|
var(
|
|
37
37
|
--sds-c-button-spacing-inline,
|
|
38
|
-
var(--sds-c-button-spacing, var(--
|
|
38
|
+
var(--sds-c-button-spacing, var(--slds-s-button-spacing-inline, var(--slds-s-button-spacing)))
|
|
39
39
|
)
|
|
40
40
|
);
|
|
41
41
|
padding-block-start: var(
|
|
42
42
|
--sds-c-button-spacing-blockstart,
|
|
43
43
|
var(
|
|
44
44
|
--sds-c-button-spacing-block,
|
|
45
|
-
var(--sds-c-button-spacing, var(--
|
|
45
|
+
var(--sds-c-button-spacing, var(--slds-s-button-spacing-block, var(--slds-s-button-spacing)))
|
|
46
46
|
)
|
|
47
47
|
);
|
|
48
48
|
padding-block-end: var(
|
|
49
49
|
--sds-c-button-spacing-blockend,
|
|
50
50
|
var(
|
|
51
51
|
--sds-c-button-spacing-block,
|
|
52
|
-
var(--sds-c-button-spacing, var(--
|
|
52
|
+
var(--sds-c-button-spacing, var(--slds-s-button-spacing-block, var(--slds-s-button-spacing)))
|
|
53
53
|
)
|
|
54
54
|
);
|
|
55
|
-
border-width: var(--sds-c-button-sizing-border, var(--
|
|
55
|
+
border-width: var(--sds-c-button-sizing-border, var(--slds-s-button-sizing-border, 1px));
|
|
56
56
|
border-style: solid;
|
|
57
|
-
border-color: var(--sds-c-button-color-border, var(--
|
|
57
|
+
border-color: var(--sds-c-button-color-border, var(--slds-s-button-color-border, currentColor));
|
|
58
58
|
border-start-start-radius: var(
|
|
59
59
|
--sds-c-button-radius-border-startstart,
|
|
60
60
|
var(
|
|
61
61
|
--sds-c-button-radius-border,
|
|
62
|
-
var(--
|
|
62
|
+
var(--slds-s-button-radius-border-startstart, var(--slds-s-button-radius-border))
|
|
63
63
|
)
|
|
64
64
|
);
|
|
65
65
|
border-start-end-radius: var(
|
|
66
66
|
--sds-c-button-radius-border-startend,
|
|
67
67
|
var(
|
|
68
68
|
--sds-c-button-radius-border,
|
|
69
|
-
var(--
|
|
69
|
+
var(--slds-s-button-radius-border-startend, var(--slds-s-button-radius-border))
|
|
70
70
|
)
|
|
71
71
|
);
|
|
72
72
|
border-end-start-radius: var(
|
|
73
73
|
--sds-c-button-radius-border-endstart,
|
|
74
74
|
var(
|
|
75
75
|
--sds-c-button-radius-border,
|
|
76
|
-
var(--
|
|
76
|
+
var(--slds-s-button-radius-border-endstart, var(--slds-s-button-radius-border))
|
|
77
77
|
)
|
|
78
78
|
);
|
|
79
79
|
border-end-end-radius: var(
|
|
80
80
|
--sds-c-button-radius-border-endend,
|
|
81
81
|
var(
|
|
82
82
|
--sds-c-button-radius-border,
|
|
83
|
-
var(--
|
|
83
|
+
var(--slds-s-button-radius-border-endend, var(--slds-s-button-radius-border))
|
|
84
84
|
)
|
|
85
85
|
);
|
|
86
|
-
box-shadow: var(--sds-c-button-shadow, var(--
|
|
86
|
+
box-shadow: var(--sds-c-button-shadow, var(--slds-s-button-shadow));
|
|
87
87
|
text-decoration: var(--sds-c-button-font-decoration);
|
|
88
88
|
white-space: normal;
|
|
89
89
|
user-select: none;
|
|
@@ -97,16 +97,16 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
|
97
97
|
* Fallback order: Hover > Base
|
|
98
98
|
*/
|
|
99
99
|
:host([data-render-mode="shadow"]) [part~='button']:hover {
|
|
100
|
-
--sds-c-button-text-color: var(--sds-c-button-text-color-hover, var(--
|
|
100
|
+
--sds-c-button-text-color: var(--sds-c-button-text-color-hover, var(--slds-s-button-color-hover, revert));
|
|
101
101
|
--sds-c-button-color-background: var(
|
|
102
102
|
--sds-c-button-color-background-hover,
|
|
103
|
-
var(--
|
|
103
|
+
var(--slds-s-button-color-background-hover, revert)
|
|
104
104
|
);
|
|
105
105
|
--sds-c-button-color-border: var(
|
|
106
106
|
--sds-c-button-color-border-hover,
|
|
107
|
-
var(--
|
|
107
|
+
var(--slds-s-button-color-border-hover, revert)
|
|
108
108
|
);
|
|
109
|
-
--sds-c-button-shadow: var(--sds-c-button-shadow-hover, var(--
|
|
109
|
+
--sds-c-button-shadow: var(--sds-c-button-shadow-hover, var(--slds-s-button-shadow-hover, revert));
|
|
110
110
|
|
|
111
111
|
cursor: pointer;
|
|
112
112
|
}
|
|
@@ -118,14 +118,14 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
|
118
118
|
:host([data-render-mode="shadow"]) [part~='button']:focus {
|
|
119
119
|
--sds-c-button-color-background: var(
|
|
120
120
|
--sds-c-button-color-background-focus,
|
|
121
|
-
var(--
|
|
121
|
+
var(--slds-s-button-color-background-focus, revert)
|
|
122
122
|
);
|
|
123
123
|
--sds-c-button-color-border: var(
|
|
124
124
|
--sds-c-button-color-border-focus,
|
|
125
|
-
var(--
|
|
125
|
+
var(--slds-s-button-color-border-focus, revert)
|
|
126
126
|
);
|
|
127
|
-
--sds-c-button-text-color: var(--sds-c-button-text-color-focus, var(--
|
|
128
|
-
--sds-c-button-shadow: var(--sds-c-button-shadow-focus, var(--
|
|
127
|
+
--sds-c-button-text-color: var(--sds-c-button-text-color-focus, var(--slds-s-button-color-focus, revert));
|
|
128
|
+
--sds-c-button-shadow: var(--sds-c-button-shadow-focus, var(--slds-s-button-shadow-focus, revert));
|
|
129
129
|
|
|
130
130
|
outline: 0;
|
|
131
131
|
}
|
|
@@ -137,16 +137,16 @@ Licensed under BSD 3-Clause - see LICENSE.txt or git.io/sfdc-license */
|
|
|
137
137
|
* @TODO: keep this order (no hover) so active has feedback or go all out?
|
|
138
138
|
*/
|
|
139
139
|
:host([data-render-mode="shadow"]) [part~='button']:active {
|
|
140
|
-
--sds-c-button-text-color: var(--sds-c-button-text-color-active, var(--
|
|
140
|
+
--sds-c-button-text-color: var(--sds-c-button-text-color-active, var(--slds-s-button-color-active, revert));
|
|
141
141
|
--sds-c-button-color-background: var(
|
|
142
142
|
--sds-c-button-color-background-active,
|
|
143
|
-
var(--
|
|
143
|
+
var(--slds-s-button-color-background-active, revert)
|
|
144
144
|
);
|
|
145
145
|
--sds-c-button-color-border: var(
|
|
146
146
|
--sds-c-button-color-border-active,
|
|
147
|
-
var(--
|
|
147
|
+
var(--slds-s-button-color-border-active, revert)
|
|
148
148
|
);
|
|
149
|
-
--sds-c-button-shadow: var(--sds-c-button-shadow-active, var(--
|
|
149
|
+
--sds-c-button-shadow: var(--sds-c-button-shadow-active, var(--slds-s-button-shadow-active, revert));
|
|
150
150
|
}
|
|
151
151
|
/**
|
|
152
152
|
* Disabled button styles
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize figure html
|
|
3
|
+
*/
|
|
4
|
+
figure {
|
|
5
|
+
margin: 0;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
svg {
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: 100%;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Note:
|
|
15
|
+
* These classes and styling hooks are created to support
|
|
16
|
+
* lighting components to enable light/dark mode.
|
|
17
|
+
*/
|
|
18
|
+
.sds-illustration_fill-tone-1 {
|
|
19
|
+
fill: var(--sds-c-illustration-color-tone-1);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.sds-illustration_fill-tone-2 {
|
|
23
|
+
fill: var(--sds-c-illustration-color-tone-2);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.sds-illustration_fill-tone-3 {
|
|
27
|
+
fill: var(--sds-c-illustration-color-tone-3);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.sds-illustration_fill-tone-4 {
|
|
31
|
+
fill: var(--sds-c-illustration-color-tone-4);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.sds-illustration_stroke-tone-1 {
|
|
35
|
+
stroke: var(--sds-c-illustration-color-tone-1);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.sds-illustration_stroke-tone-2 {
|
|
39
|
+
stroke: var(--sds-c-illustration-color-tone-2);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.sds-illustration_stroke-tone-3 {
|
|
43
|
+
stroke: var(--sds-c-illustration-color-tone-3);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.sds-illustration_stroke-tone-4 {
|
|
47
|
+
stroke: var(--sds-c-illustration-color-tone-4);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.sds-illustration_fill-gradient-start {
|
|
51
|
+
stop-color: var(--sds-c-illustration-color-gradient-start);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.sds-illustration_fill-gradient-end {
|
|
55
|
+
stop-color: var(--sds-c-illustration-color-gradient-end);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.sds-illustration_fill-gradient-start-2 {
|
|
59
|
+
stop-color: var(--sds-c-illustration-color-gradient-start-2);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.sds-illustration_fill-gradient-end-2 {
|
|
63
|
+
stop-color: var(--sds-c-illustration-color-gradient-end-2);
|
|
64
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export default class LightningPrimitiveFigure extends LightningElement {
|
|
2
|
+
static shadowSupportMode: string;
|
|
3
|
+
_set: any;
|
|
4
|
+
_symbol: any;
|
|
5
|
+
_figureSets: Map<any, any>;
|
|
6
|
+
_ariaHidden: any;
|
|
7
|
+
_generatedFigure: boolean;
|
|
8
|
+
set figureSets(value: any[]);
|
|
9
|
+
get figureSets(): any[];
|
|
10
|
+
set set(value: string);
|
|
11
|
+
get set(): string;
|
|
12
|
+
set symbol(value: string);
|
|
13
|
+
get symbol(): string;
|
|
14
|
+
getFigureSet(name: string): any;
|
|
15
|
+
getFigureUrl(figureSet: any, set: string, symbol: string): any;
|
|
16
|
+
getSymbolParams(set: any, symbol: string): {
|
|
17
|
+
figureSet: any;
|
|
18
|
+
url: any;
|
|
19
|
+
};
|
|
20
|
+
hasFigureConfigured(): boolean;
|
|
21
|
+
isValidSvgUrl(url: string): boolean;
|
|
22
|
+
isValidContentType(contentType: string): boolean;
|
|
23
|
+
fetchFigure(url: any): Promise<{
|
|
24
|
+
url: any;
|
|
25
|
+
svg: string | SVGSVGElement;
|
|
26
|
+
}>;
|
|
27
|
+
createFigure(): Promise<void>;
|
|
28
|
+
hasSlottedChildren(): boolean;
|
|
29
|
+
handleSlotChange(): Promise<void>;
|
|
30
|
+
renderedCallback(): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
import { LightningElement } from 'lwc';
|
|
33
|
+
//# sourceMappingURL=primitiveFigure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitiveFigure.d.ts","sourceRoot":"","sources":["../../../../../modules/lightning/primitiveFigure/primitiveFigure.js"],"names":[],"mappings":"AAKA;IACI,iCAAoC;IAEpC,UAAK;IACL,aAAQ;IACR,2BAAwB;IACxB,iBAAY;IACZ,0BAAyB;IAWzB,6BAEC;IAND,wBAGC;IAcD,uBAGC;IAPD,kBAGC;IAeD,0BAGC;IAPD,qBAGC;IAWD,mBAFW,MAAM,OAIhB;IAQD,kCAHW,MAAM,UACN,MAAM,OAMhB;IAOD,kCAFW,MAAM;;;MAUhB;IAOD,uBAFa,OAAO,CAInB;IASD,mBAHW,MAAM,GACJ,OAAO,CAKnB;IAQD,gCAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;OA+CC;IAKD,8BAwBC;IAOD,sBAFa,OAAO,CAKnB;IAKD,kCAuBC;IAKD,kCA2BC;CACJ;iCA7QqC,KAAK"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.,
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* For full license text, see the LICENSE.txt file
|
|
5
|
+
*/
|
|
6
|
+
import { LightningElement, api } from 'lwc';
|
|
7
|
+
import { reflectAttribute } from 'lightning/primitiveUtils';
|
|
8
|
+
const sdsFigureParser = new DOMParser();
|
|
9
|
+
export default class LightningPrimitiveFigure extends LightningElement {
|
|
10
|
+
static shadowSupportMode = 'native';
|
|
11
|
+
_set;
|
|
12
|
+
_symbol;
|
|
13
|
+
_figureSets = new Map();
|
|
14
|
+
_ariaHidden;
|
|
15
|
+
_generatedFigure = false;
|
|
16
|
+
@api
|
|
17
|
+
get figureSets() {
|
|
18
|
+
return this._figureSets;
|
|
19
|
+
}
|
|
20
|
+
set figureSets(value) {
|
|
21
|
+
this._figureSets = new Map(value.map((item) => [item.name, item]));
|
|
22
|
+
}
|
|
23
|
+
@api
|
|
24
|
+
get set() {
|
|
25
|
+
return this._set;
|
|
26
|
+
}
|
|
27
|
+
set set(value) {
|
|
28
|
+
this._set = value;
|
|
29
|
+
reflectAttribute(this, 'set', this._set);
|
|
30
|
+
}
|
|
31
|
+
@api
|
|
32
|
+
get symbol() {
|
|
33
|
+
return this._symbol;
|
|
34
|
+
}
|
|
35
|
+
set symbol(value) {
|
|
36
|
+
this._symbol = value;
|
|
37
|
+
reflectAttribute(this, 'symbol', this._symbol);
|
|
38
|
+
}
|
|
39
|
+
getFigureSet(name) {
|
|
40
|
+
return this._figureSets.get(name);
|
|
41
|
+
}
|
|
42
|
+
getFigureUrl(figureSet, set, symbol) {
|
|
43
|
+
if (figureSet && symbol) {
|
|
44
|
+
return figureSet.resolver(set, symbol);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
getSymbolParams(set, symbol) {
|
|
48
|
+
const figureSet = this.getFigureSet(set);
|
|
49
|
+
const url = this.getFigureUrl(figureSet, set, symbol);
|
|
50
|
+
return {
|
|
51
|
+
figureSet,
|
|
52
|
+
url,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
hasFigureConfigured() {
|
|
56
|
+
return Boolean(this._set && this._symbol);
|
|
57
|
+
}
|
|
58
|
+
isValidSvgUrl(url) {
|
|
59
|
+
const svgUrlPattern = /\.svg[?]?/;
|
|
60
|
+
return svgUrlPattern.test(url);
|
|
61
|
+
}
|
|
62
|
+
isValidContentType(contentType) {
|
|
63
|
+
return contentType && contentType.includes('image/svg+xml');
|
|
64
|
+
}
|
|
65
|
+
async fetchFigure(url) {
|
|
66
|
+
try {
|
|
67
|
+
if (!this.isValidSvgUrl(url)) {
|
|
68
|
+
throw new Error(`Invalid URL: ${url}. Only SVG files are allowed.`);
|
|
69
|
+
}
|
|
70
|
+
const response = await fetch(url);
|
|
71
|
+
if (response.ok) {
|
|
72
|
+
const contentType = response.headers.get('content-type');
|
|
73
|
+
if (!this.isValidContentType(contentType)) {
|
|
74
|
+
throw new Error(`Invalid content type: ${contentType}. Only SVG files are allowed.`);
|
|
75
|
+
}
|
|
76
|
+
const fetchText = await response.text();
|
|
77
|
+
const parsedFetchDoc = sdsFigureParser.parseFromString(fetchText, 'text/html');
|
|
78
|
+
const parsedSvgEl = parsedFetchDoc.body.querySelector('svg');
|
|
79
|
+
const result = {
|
|
80
|
+
url: url,
|
|
81
|
+
svg: parsedSvgEl &&
|
|
82
|
+
parsedSvgEl.tagName.toLowerCase() === 'svg'
|
|
83
|
+
? parsedSvgEl
|
|
84
|
+
: '',
|
|
85
|
+
};
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error(`There's an error: Fetch response.ok is false.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
throw new Error(error.message ||
|
|
94
|
+
`Network error: There's an error in the fetch API.`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async createFigure() {
|
|
98
|
+
const { figureSet, url } = this.getSymbolParams(this._set, this._symbol);
|
|
99
|
+
if (figureSet && url) {
|
|
100
|
+
const slotContainer = !this._generatedFigure
|
|
101
|
+
? this.refs.illustration
|
|
102
|
+
: this.template.querySelector(`svg`);
|
|
103
|
+
const figure = await this.fetchFigure(url);
|
|
104
|
+
!this._generatedFigure
|
|
105
|
+
? slotContainer.appendChild(figure.svg)
|
|
106
|
+
: slotContainer.replaceWith(figure.svg);
|
|
107
|
+
this._generatedFigure = true;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
throw new Error(`Unable to create a figure using set: ${this._set}, symbol: ${this._symbol} and URL: ${url}. Double check your registered figureSet name(s) and path(s)`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
hasSlottedChildren() {
|
|
114
|
+
const slot = this.template.querySelector('slot');
|
|
115
|
+
return slot.assignedNodes({ flatten: true }).length !== 0;
|
|
116
|
+
}
|
|
117
|
+
async handleSlotChange() {
|
|
118
|
+
if (this._generatedFigure) {
|
|
119
|
+
this.template.querySelector('svg').remove();
|
|
120
|
+
this._generatedFigure = false;
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
if (!this.hasSlottedChildren() &&
|
|
124
|
+
!this._generatedFigure &&
|
|
125
|
+
this.hasFigureConfigured()) {
|
|
126
|
+
await this.createFigure();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error(error.message ||
|
|
131
|
+
'Error: Unable to create sds-figure. There is no slotted figure. Check all required APIs.');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async renderedCallback() {
|
|
135
|
+
if (!this.hasSlottedChildren() && this.hasFigureConfigured()) {
|
|
136
|
+
try {
|
|
137
|
+
await this.createFigure();
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
this.template
|
|
141
|
+
.querySelectorAll('.slds-figure_error')
|
|
142
|
+
.forEach((el) => el.remove());
|
|
143
|
+
const div = document.createElement('div');
|
|
144
|
+
div.classList.add('slds-figure_error');
|
|
145
|
+
div.textContent = `Error: ${error.message || 'Could not create figure'}`;
|
|
146
|
+
this.template.appendChild(div);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else if (!this.hasSlottedChildren() && !this.hasFigureConfigured()) {
|
|
150
|
+
console.error('Error: Unable to create sds-figure. Check all required APIs.');
|
|
151
|
+
}
|
|
152
|
+
this.ariaHidden = this.ariaLabel ? 'false' : 'true';
|
|
153
|
+
this.role = 'img';
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
:host([data-render-mode="shadow"]) [part~='input-checkbox'] {
|
|
13
13
|
display: inline-flex;
|
|
14
14
|
align-items: center;
|
|
15
|
-
gap: var(--sds-c-inputcheckbox-spacing-gap, var(--
|
|
15
|
+
gap: var(--sds-c-inputcheckbox-spacing-gap, var(--slds-s-input-spacing-gap));
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* The visual container of the checkbox indicator
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
align-items: center;
|
|
23
23
|
justify-content: center;
|
|
24
24
|
position: relative;
|
|
25
|
-
background-color: var(--sds-c-inputcheckbox-color-background, var(--
|
|
25
|
+
background-color: var(--sds-c-inputcheckbox-color-background, var(--slds-s-input-color-background));
|
|
26
26
|
box-shadow: var(--sds-c-inputcheckbox-shadow);
|
|
27
27
|
width: var(--sds-c-inputcheckbox-sizing, 1rem);
|
|
28
28
|
height: var(--sds-c-inputcheckbox-sizing, 1rem);
|
|
29
|
-
border: var(--sds-c-inputcheckbox-sizing-border, var(--
|
|
30
|
-
var(--sds-c-inputcheckbox-color-border, var(--
|
|
29
|
+
border: var(--sds-c-inputcheckbox-sizing-border, var(--slds-s-input-sizing-border, 1px)) solid
|
|
30
|
+
var(--sds-c-inputcheckbox-color-border, var(--slds-s-input-color-border, currentColor));
|
|
31
31
|
border-radius: var(--sds-c-inputcheckbox-radius-border);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
[part='checkbox']:has(:checked):has(:focus) {
|
|
38
38
|
--sds-c-inputcheckbox-shadow: var(
|
|
39
39
|
--sds-c-inputcheckbox-shadow-focus,
|
|
40
|
-
var(--
|
|
40
|
+
var(--slds-s-input-shadow-focus, revert)
|
|
41
41
|
);
|
|
42
42
|
--sds-c-inputcheckbox-color-background: var(
|
|
43
43
|
--sds-c-inputcheckbox-color-background-focus,
|
|
44
|
-
var(--
|
|
44
|
+
var(--slds-s-input-color-background-focus, revert)
|
|
45
45
|
);
|
|
46
46
|
--sds-c-inputcheckbox-color-border: var(
|
|
47
47
|
--sds-c-inputcheckbox-color-border-focus,
|
|
48
|
-
var(--
|
|
48
|
+
var(--slds-s-input-color-border-focus, revert)
|
|
49
49
|
);
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -70,10 +70,10 @@
|
|
|
70
70
|
:host([data-render-mode="shadow"]) [part='mark'] {
|
|
71
71
|
display: inline-flex;
|
|
72
72
|
opacity: 0;
|
|
73
|
-
color: var(--sds-c-inputcheckbox-mark-color-foreground, var(--
|
|
74
|
-
background-color: var(--sds-c-inputcheckbox-mark-color-background, var(--
|
|
75
|
-
width: var(--sds-c-inputcheckbox-mark-sizing, var(--
|
|
76
|
-
height: var(--sds-c-inputcheckbox-mark-sizing, var(--
|
|
73
|
+
color: var(--sds-c-inputcheckbox-mark-color-foreground, var(--slds-s-mark-color-foreground));
|
|
74
|
+
background-color: var(--sds-c-inputcheckbox-mark-color-background, var(--slds-s-mark-color-background));
|
|
75
|
+
width: var(--sds-c-inputcheckbox-mark-sizing, var(--slds-s-mark-sizing, 1em));
|
|
76
|
+
height: var(--sds-c-inputcheckbox-mark-sizing, var(--slds-s-mark-sizing, 1em));
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
79
|
* When the label or checkbox is clicked, a checked state is applied to the host element
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
|
|
84
84
|
--sds-c-inputcheckbox-mark-color-background: var(
|
|
85
85
|
--sds-c-inputcheckbox-mark-color-background-checked,
|
|
86
|
-
var(--
|
|
86
|
+
var(--slds-s-mark-color-background-checked, revert)
|
|
87
87
|
);
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -103,8 +103,8 @@
|
|
|
103
103
|
* The label of the checkbox
|
|
104
104
|
*/
|
|
105
105
|
:host([data-render-mode="shadow"]) [part~='label'] {
|
|
106
|
-
color: var(--sds-c-inputcheckbox-label-color, var(--
|
|
107
|
-
font-size: var(--sds-c-inputcheckbox-label-font-size, var(--
|
|
106
|
+
color: var(--sds-c-inputcheckbox-label-color, var(--slds-s-label-color));
|
|
107
|
+
font-size: var(--sds-c-inputcheckbox-label-font-size, var(--slds-s-label-font-size));
|
|
108
108
|
}
|
|
109
109
|
/**
|
|
110
110
|
* If told, the label will be hidden from view
|
|
@@ -128,23 +128,23 @@
|
|
|
128
128
|
* This prevents box-model customizations from being applied, in the case of no children
|
|
129
129
|
*/
|
|
130
130
|
:host([data-render-mode="shadow"]) [part='help-text visible'] {
|
|
131
|
-
font-size: var(--sds-c-inputcheckbox-helptext-font-size, var(--
|
|
132
|
-
color: var(--sds-c-inputcheckbox-helptext-text-color, var(--
|
|
131
|
+
font-size: var(--sds-c-inputcheckbox-helptext-font-size, var(--slds-s-helptext-font-size));
|
|
132
|
+
color: var(--sds-c-inputcheckbox-helptext-text-color, var(--slds-s-helptext-color));
|
|
133
133
|
padding-inline-start: var(
|
|
134
134
|
--sds-c-inputcheckbox-helptext-spacing-inlinestart,
|
|
135
|
-
var(--sds-c-inputcheckbox-helptext-spacing-inline, var(--
|
|
135
|
+
var(--sds-c-inputcheckbox-helptext-spacing-inline, var(--slds-s-helptext-spacing))
|
|
136
136
|
);
|
|
137
137
|
padding-inline-end: var(
|
|
138
138
|
--sds-c-inputcheckbox-helptext-spacing-inlineend,
|
|
139
|
-
var(--sds-c-inputcheckbox-helptext-spacing-inline, var(--
|
|
139
|
+
var(--sds-c-inputcheckbox-helptext-spacing-inline, var(--slds-s-helptext-spacing))
|
|
140
140
|
);
|
|
141
141
|
padding-block-start: var(
|
|
142
142
|
--sds-c-inputcheckbox-helptext-spacing-blockstart,
|
|
143
|
-
var(--sds-c-inputcheckbox-helptext-spacing-block, var(--
|
|
143
|
+
var(--sds-c-inputcheckbox-helptext-spacing-block, var(--slds-s-helptext-spacing))
|
|
144
144
|
);
|
|
145
145
|
padding-block-end: var(
|
|
146
146
|
--sds-c-inputcheckbox-helptext-spacing-blockend,
|
|
147
|
-
var(--sds-c-inputcheckbox-helptext-spacing-block, var(--
|
|
147
|
+
var(--sds-c-inputcheckbox-helptext-spacing-block, var(--slds-s-helptext-spacing))
|
|
148
148
|
);
|
|
149
149
|
}
|
|
150
150
|
/**
|
|
@@ -14,33 +14,33 @@
|
|
|
14
14
|
:host([data-render-mode="shadow"]) [part~='boundary'] {
|
|
15
15
|
padding-block-start: var(
|
|
16
16
|
--sds-c-icon-spacing-blockstart,
|
|
17
|
-
var(--sds-c-icon-spacing-block, var(--sds-c-icon-spacing, var(--
|
|
17
|
+
var(--sds-c-icon-spacing-block, var(--sds-c-icon-spacing, var(--slds-s-icon-spacing)))
|
|
18
18
|
);
|
|
19
19
|
padding-block-end: var(
|
|
20
20
|
--sds-c-icon-spacing-blockend,
|
|
21
|
-
var(--sds-c-icon-spacing-block, var(--sds-c-icon-spacing, var(--
|
|
21
|
+
var(--sds-c-icon-spacing-block, var(--sds-c-icon-spacing, var(--slds-s-icon-spacing)))
|
|
22
22
|
);
|
|
23
23
|
padding-inline-start: var(
|
|
24
24
|
--sds-c-icon-spacing-inlinestart,
|
|
25
|
-
var(--sds-c-icon-spacing-inline, var(--sds-c-icon-spacing, var(--
|
|
25
|
+
var(--sds-c-icon-spacing-inline, var(--sds-c-icon-spacing, var(--slds-s-icon-spacing)))
|
|
26
26
|
);
|
|
27
27
|
padding-inline-end: var(
|
|
28
28
|
--sds-c-icon-spacing-inlineend,
|
|
29
|
-
var(--sds-c-icon-spacing-inline, var(--sds-c-icon-spacing, var(--
|
|
29
|
+
var(--sds-c-icon-spacing-inline, var(--sds-c-icon-spacing, var(--slds-s-icon-spacing)))
|
|
30
30
|
);
|
|
31
|
-
border-radius: var(--sds-c-icon-radius-border, var(--
|
|
32
|
-
border-width: var(--sds-c-icon-sizing-border, var(--
|
|
31
|
+
border-radius: var(--sds-c-icon-radius-border, var(--slds-s-icon-radius-border));
|
|
32
|
+
border-width: var(--sds-c-icon-sizing-border, var(--slds-s-icon-sizing-border));
|
|
33
33
|
border-style: solid;
|
|
34
34
|
|
|
35
35
|
/* If undefined, border-color resolves to currentColor, so we need to explicitly set to transparent */
|
|
36
|
-
border-color: var(--sds-c-icon-color-border, var(--
|
|
37
|
-
background-color: var(--sds-c-icon-color-background, var(--
|
|
36
|
+
border-color: var(--sds-c-icon-color-border, var(--slds-s-icon-color-border, transparent));
|
|
37
|
+
background-color: var(--sds-c-icon-color-background, var(--slds-s-icon-color-background));
|
|
38
38
|
}
|
|
39
39
|
:host([data-render-mode="shadow"]) [part~='icon'] {
|
|
40
40
|
display: flex; /* See line #5 */
|
|
41
|
-
height: var(--sds-c-icon-sizing-height, var(--sds-c-icon-sizing, var(--
|
|
42
|
-
width: var(--sds-c-icon-sizing-width, var(--sds-c-icon-sizing, var(--
|
|
43
|
-
color: var(--sds-c-icon-color-foreground, var(--
|
|
41
|
+
height: var(--sds-c-icon-sizing-height, var(--sds-c-icon-sizing, var(--slds-s-icon-sizing)));
|
|
42
|
+
width: var(--sds-c-icon-sizing-width, var(--sds-c-icon-sizing, var(--slds-s-icon-sizing)));
|
|
43
|
+
color: var(--sds-c-icon-color-foreground, var(--slds-s-icon-color-foreground));
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Normalize svgs and control width/height with Styling Hooks
|