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.
Files changed (99) hide show
  1. package/metadata/raptor.json +2 -0
  2. package/package.json +17 -8
  3. package/src/lightning/accordionSection/button.slds.css +28 -28
  4. package/src/lightning/baseCombobox/baseCombobox.d.ts.map +1 -1
  5. package/src/lightning/baseCombobox/baseCombobox.js +5 -0
  6. package/src/lightning/baseCombobox/baseComboboxEvents.d.ts.map +1 -1
  7. package/src/lightning/baseCombobox/baseComboboxEvents.js +6 -0
  8. package/src/lightning/baseCombobox/input-text.slds.css +44 -50
  9. package/src/lightning/button/button.slds.css +28 -28
  10. package/src/lightning/buttonIcon/button-icon.slds.css +28 -28
  11. package/src/lightning/buttonIconStateful/button-icon.slds.css +28 -28
  12. package/src/lightning/buttonIconStateful/button.slds.css +28 -28
  13. package/src/lightning/buttonMenu/button-icon.slds.css +28 -28
  14. package/src/lightning/buttonMenu/button.slds.css +28 -28
  15. package/src/lightning/buttonStateful/button.slds.css +28 -28
  16. package/src/lightning/carousel/button.slds.css +28 -28
  17. package/src/lightning/checkboxGroup/checkboxGroup.d.ts +1 -0
  18. package/src/lightning/checkboxGroup/checkboxGroup.d.ts.map +1 -1
  19. package/src/lightning/checkboxGroup/checkboxGroup.html +23 -2
  20. package/src/lightning/checkboxGroup/checkboxGroup.js +5 -1
  21. package/src/lightning/colorPickerCustom/colorPickerCustom.d.ts.map +1 -1
  22. package/src/lightning/colorPickerCustom/colorPickerCustom.js +9 -0
  23. package/src/lightning/colorPickerCustom/input-text.slds.css +44 -50
  24. package/src/lightning/datatable/button-icon.slds.css +28 -28
  25. package/src/lightning/datatable/datatable.d.ts.map +1 -1
  26. package/src/lightning/datatable/datatable.js +3 -0
  27. package/src/lightning/datatable/icon.slds.css +11 -11
  28. package/src/lightning/datatable/input-checkbox.slds.css +20 -20
  29. package/src/lightning/datepicker/input-text.slds.css +44 -50
  30. package/src/lightning/datetimepicker/datetimepicker.d.ts.map +1 -1
  31. package/src/lightning/datetimepicker/datetimepicker.js +9 -0
  32. package/src/lightning/datetimepicker/input-text.slds.css +44 -50
  33. package/src/lightning/features/gates/imports.d.ts +4 -2
  34. package/src/lightning/features/gates/imports.js +4 -2
  35. package/src/lightning/formattedRichText/formattedRichText.d.ts +2 -0
  36. package/src/lightning/formattedRichText/formattedRichText.d.ts.map +1 -1
  37. package/src/lightning/formattedRichText/formattedRichText.html +13 -4
  38. package/src/lightning/formattedRichText/formattedRichText.js +15 -0
  39. package/src/lightning/groupedCombobox/input-text.slds.css +44 -50
  40. package/src/lightning/helptext/button-icon.slds.css +28 -28
  41. package/src/lightning/icon/icon.slds.css +11 -11
  42. package/src/lightning/input/input.d.ts.map +1 -1
  43. package/src/lightning/input/input.js +3 -0
  44. package/src/lightning/inputAddress/input-text.slds.css +44 -50
  45. package/src/lightning/inputLocation/input-text.slds.css +44 -50
  46. package/src/lightning/inputName/input-text.slds.css +44 -50
  47. package/src/lightning/inputName/inputName.d.ts.map +1 -1
  48. package/src/lightning/inputName/inputName.js +4 -0
  49. package/src/lightning/interactiveDialogBase/button.slds.css +28 -28
  50. package/src/lightning/modalHeader/modalHeader.css +2 -11
  51. package/src/lightning/modalHeader/modalHeader.lbc.synthetic.css +7 -0
  52. package/src/lightning/pillContainer/button.slds.css +28 -28
  53. package/src/lightning/pillContainer/standardPillContainer.css +1 -5
  54. package/src/lightning/pillContainer/standardPillContainer.lbc.native.css +5 -0
  55. package/src/lightning/positionLibrary/elementProxy.d.ts +2 -1
  56. package/src/lightning/positionLibrary/elementProxy.d.ts.map +1 -1
  57. package/src/lightning/positionLibrary/elementProxy.js +32 -3
  58. package/src/lightning/primitiveCellCheckbox/checkbox.css +0 -2
  59. package/src/lightning/primitiveCellCheckbox/checkbox.lbc.native.css +2 -0
  60. package/src/lightning/primitiveCellCheckbox/input-checkbox.slds.css +20 -20
  61. package/src/lightning/primitiveCellFactory/button-icon.slds.css +28 -28
  62. package/src/lightning/primitiveCoordinateItem/button.slds.css +28 -28
  63. package/src/lightning/primitiveDatatableStatusBar/button.slds.css +28 -28
  64. package/src/lightning/primitiveDatatableTooltip/button-icon.slds.css +28 -28
  65. package/src/lightning/primitiveDatatableTooltip/button.slds.css +28 -28
  66. package/src/lightning/primitiveFigure/primitiveFigure.css +64 -0
  67. package/src/lightning/primitiveFigure/primitiveFigure.d.ts +33 -0
  68. package/src/lightning/primitiveFigure/primitiveFigure.d.ts.map +1 -0
  69. package/src/lightning/primitiveFigure/primitiveFigure.html +5 -0
  70. package/src/lightning/primitiveFigure/primitiveFigure.js +155 -0
  71. package/src/lightning/primitiveFigure/primitiveFigure.js-meta.xml +4 -0
  72. package/src/lightning/primitiveHeaderFactory/input-checkbox.slds.css +20 -20
  73. package/src/lightning/primitiveIcon/icon.slds.css +11 -11
  74. package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +20 -20
  75. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.d.ts.map +1 -1
  76. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +1 -11
  77. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.css +0 -1
  78. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.d.ts.map +1 -1
  79. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +12 -0
  80. package/src/lightning/primitiveInputColor/input-text.slds.css +44 -50
  81. package/src/lightning/primitiveInputColor/primitiveInputColor.d.ts.map +1 -1
  82. package/src/lightning/primitiveInputColor/primitiveInputColor.js +12 -0
  83. package/src/lightning/primitiveInputFile/button.slds.css +28 -28
  84. package/src/lightning/primitiveInputSimple/input-text.slds.css +44 -50
  85. package/src/lightning/primitiveInputSimple/primitiveInputSimple.d.ts.map +1 -1
  86. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +8 -0
  87. package/src/lightning/primitiveInputToggle/primitiveInputToggle.d.ts.map +1 -1
  88. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +12 -0
  89. package/src/lightning/primitiveTreegridCellToggle/button-icon.slds.css +28 -28
  90. package/src/lightning/prompt/input-text.slds.css +44 -50
  91. package/src/lightning/sldsCommon/sldsCommon.css +10 -10
  92. package/src/lightning/toast/button-icon.slds.css +28 -28
  93. package/src/lightning/toast/icon.slds.css +11 -11
  94. package/src/lightning/tree/treeData.d.ts.map +1 -1
  95. package/src/lightning/tree/treeData.js +18 -0
  96. package/src/lightning/utilsPrivate/normalize.d.ts +1 -1
  97. package/src/lightning/utilsPrivate/normalize.d.ts.map +1 -1
  98. package/src/lightning/verticalNavigationOverflow/button.slds.css +28 -28
  99. 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(--sds-s-button-spacing-gap));
20
- background: var(--sds-c-button-color-background, var(--sds-s-button-color-background));
21
- color: var(--sds-c-button-text-color, var(--sds-s-button-color));
22
- font-weight: var(--sds-c-button-font-weight, var(--sds-s-button-font-weight));
23
- font-size: var(--sds-c-button-font-size, var(--sds-s-button-font-size, inherit));
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(--sds-s-button-spacing-inline, var(--sds-s-button-spacing)))
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(--sds-s-button-spacing-inline, var(--sds-s-button-spacing)))
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(--sds-s-button-spacing-block, var(--sds-s-button-spacing)))
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(--sds-s-button-spacing-block, var(--sds-s-button-spacing)))
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(--sds-s-button-sizing-border, 1px));
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(--sds-s-button-color-border, currentColor));
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(--sds-s-button-radius-border-startstart, var(--sds-s-button-radius-border))
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(--sds-s-button-radius-border-startend, var(--sds-s-button-radius-border))
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(--sds-s-button-radius-border-endstart, var(--sds-s-button-radius-border))
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(--sds-s-button-radius-border-endend, var(--sds-s-button-radius-border))
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(--sds-s-button-shadow));
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(--sds-s-button-color-hover, revert));
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(--sds-s-button-color-background-hover, revert)
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(--sds-s-button-color-border-hover, revert)
107
+ var(--slds-s-button-color-border-hover, revert)
108
108
  );
109
- --sds-c-button-shadow: var(--sds-c-button-shadow-hover, var(--sds-s-button-shadow-hover, revert));
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(--sds-s-button-color-background-focus, revert)
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(--sds-s-button-color-border-focus, revert)
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(--sds-s-button-color-focus, revert));
128
- --sds-c-button-shadow: var(--sds-c-button-shadow-focus, var(--sds-s-button-shadow-focus, revert));
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(--sds-s-button-color-active, revert));
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(--sds-s-button-color-background-active, revert)
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(--sds-s-button-color-border-active, revert)
147
+ var(--slds-s-button-color-border-active, revert)
148
148
  );
149
- --sds-c-button-shadow: var(--sds-c-button-shadow-active, var(--sds-s-button-shadow-active, revert));
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,5 @@
1
+ <template>
2
+ <figure lwc:ref="illustration" part="illustration" set={set} symbol={symbol}>
3
+ <slot onslotchange={handleSlotChange}></slot>
4
+ </figure>
5
+ </template>
@@ -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
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <LightningComponentBundle xmlns="xmlns=http://soap.sforce.com/2006/04/metadata">
3
+ <isExposed>true</isExposed>
4
+ </LightningComponentBundle>
@@ -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(--sds-s-input-spacing-gap));
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(--sds-s-input-color-background));
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(--sds-s-input-sizing-border, 1px)) solid
30
- var(--sds-c-inputcheckbox-color-border, var(--sds-s-input-color-border, currentColor));
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(--sds-s-input-shadow-focus, revert)
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(--sds-s-input-color-background-focus, revert)
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(--sds-s-input-color-border-focus, revert)
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(--sds-s-mark-color-foreground));
74
- background-color: var(--sds-c-inputcheckbox-mark-color-background, var(--sds-s-mark-color-background));
75
- width: var(--sds-c-inputcheckbox-mark-sizing, var(--sds-s-mark-sizing, 1em));
76
- height: var(--sds-c-inputcheckbox-mark-sizing, var(--sds-s-mark-sizing, 1em));
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(--sds-s-mark-color-background-checked, revert)
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(--sds-s-label-color));
107
- font-size: var(--sds-c-inputcheckbox-label-font-size, var(--sds-s-label-font-size));
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(--sds-s-helptext-font-size));
132
- color: var(--sds-c-inputcheckbox-helptext-text-color, var(--sds-s-helptext-color));
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(--sds-s-helptext-spacing))
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(--sds-s-helptext-spacing))
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(--sds-s-helptext-spacing))
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(--sds-s-helptext-spacing))
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(--sds-s-icon-spacing)))
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(--sds-s-icon-spacing)))
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(--sds-s-icon-spacing)))
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(--sds-s-icon-spacing)))
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(--sds-s-icon-radius-border));
32
- border-width: var(--sds-c-icon-sizing-border, var(--sds-s-icon-sizing-border));
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(--sds-s-icon-color-border, transparent));
37
- background-color: var(--sds-c-icon-color-background, var(--sds-s-icon-color-background));
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(--sds-s-icon-sizing)));
42
- width: var(--sds-c-icon-sizing-width, var(--sds-c-icon-sizing, var(--sds-s-icon-sizing)));
43
- color: var(--sds-c-icon-color-foreground, var(--sds-s-icon-color-foreground));
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