lightning-base-components 1.28.7-alpha → 1.28.8-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 (114) hide show
  1. package/package.json +17 -8
  2. package/src/lightning/accordionSection/accordionSection.d.ts +1 -1
  3. package/src/lightning/accordionSection/accordionSection.d.ts.map +1 -1
  4. package/src/lightning/accordionSection/button.slds.css +28 -28
  5. package/src/lightning/avatar/avatar.d.ts +0 -1
  6. package/src/lightning/avatar/avatar.d.ts.map +1 -1
  7. package/src/lightning/baseCombobox/baseCombobox.d.ts.map +1 -1
  8. package/src/lightning/baseCombobox/baseCombobox.js +5 -0
  9. package/src/lightning/baseCombobox/baseComboboxEvents.d.ts.map +1 -1
  10. package/src/lightning/baseCombobox/baseComboboxEvents.js +6 -0
  11. package/src/lightning/baseCombobox/input-text.slds.css +44 -50
  12. package/src/lightning/button/button.slds.css +28 -28
  13. package/src/lightning/buttonIcon/button-icon.slds.css +28 -28
  14. package/src/lightning/buttonIconStateful/button-icon.slds.css +28 -28
  15. package/src/lightning/buttonIconStateful/button.slds.css +28 -28
  16. package/src/lightning/buttonMenu/button-icon.slds.css +28 -28
  17. package/src/lightning/buttonMenu/button.slds.css +28 -28
  18. package/src/lightning/buttonStateful/button.slds.css +28 -28
  19. package/src/lightning/carousel/button.slds.css +28 -28
  20. package/src/lightning/checkboxGroup/checkboxGroup.d.ts +1 -0
  21. package/src/lightning/checkboxGroup/checkboxGroup.d.ts.map +1 -1
  22. package/src/lightning/checkboxGroup/checkboxGroup.html +23 -2
  23. package/src/lightning/checkboxGroup/checkboxGroup.js +5 -1
  24. package/src/lightning/colorPickerCustom/input-text.slds.css +44 -50
  25. package/src/lightning/datatable/button-icon.slds.css +28 -28
  26. package/src/lightning/datatable/datatable.d.ts.map +1 -1
  27. package/src/lightning/datatable/datatable.js +3 -0
  28. package/src/lightning/datatable/icon.slds.css +11 -11
  29. package/src/lightning/datatable/input-checkbox.slds.css +20 -20
  30. package/src/lightning/datepicker/datepicker.d.ts +0 -1
  31. package/src/lightning/datepicker/datepicker.d.ts.map +1 -1
  32. package/src/lightning/datepicker/input-text.slds.css +44 -50
  33. package/src/lightning/datetimepicker/datetimepicker.d.ts.map +1 -1
  34. package/src/lightning/datetimepicker/datetimepicker.js +9 -0
  35. package/src/lightning/datetimepicker/input-text.slds.css +44 -50
  36. package/src/lightning/features/gates/imports.d.ts +1 -37
  37. package/src/lightning/features/gates/imports.js +4 -2
  38. package/src/lightning/formattedRichText/formattedRichText.d.ts +2 -0
  39. package/src/lightning/formattedRichText/formattedRichText.d.ts.map +1 -1
  40. package/src/lightning/formattedRichText/formattedRichText.html +13 -4
  41. package/src/lightning/formattedRichText/formattedRichText.js +15 -0
  42. package/src/lightning/groupedCombobox/groupedCombobox.d.ts +0 -1
  43. package/src/lightning/groupedCombobox/groupedCombobox.d.ts.map +1 -1
  44. package/src/lightning/groupedCombobox/input-text.slds.css +44 -50
  45. package/src/lightning/helptext/button-icon.slds.css +28 -28
  46. package/src/lightning/icon/icon.slds.css +11 -11
  47. package/src/lightning/input/input.d.ts.map +1 -1
  48. package/src/lightning/input/input.js +3 -0
  49. package/src/lightning/inputAddress/input-text.slds.css +44 -50
  50. package/src/lightning/inputLocation/input-text.slds.css +44 -50
  51. package/src/lightning/inputName/input-text.slds.css +44 -50
  52. package/src/lightning/inputName/inputName.d.ts.map +1 -1
  53. package/src/lightning/inputName/inputName.js +4 -0
  54. package/src/lightning/interactiveDialogBase/button.slds.css +28 -28
  55. package/src/lightning/layout/styleUtils.d.ts +0 -1
  56. package/src/lightning/layout/styleUtils.d.ts.map +1 -1
  57. package/src/lightning/layoutItem/styleUtils.d.ts +0 -1
  58. package/src/lightning/layoutItem/styleUtils.d.ts.map +1 -1
  59. package/src/lightning/modalBase/modalBase.d.ts +0 -1
  60. package/src/lightning/modalBase/modalBase.d.ts.map +1 -1
  61. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.d.ts +1 -4
  62. package/src/lightning/multiColumnSortingModal/multiColumnSortingModal.d.ts.map +1 -1
  63. package/src/lightning/pillContainer/button.slds.css +28 -28
  64. package/src/lightning/positionLibrary/__examples__/playground/playground.d.ts +0 -1
  65. package/src/lightning/positionLibrary/__examples__/playground/playground.d.ts.map +1 -1
  66. package/src/lightning/positionLibrary/elementProxy.d.ts +2 -1
  67. package/src/lightning/positionLibrary/elementProxy.d.ts.map +1 -1
  68. package/src/lightning/positionLibrary/elementProxy.js +32 -3
  69. package/src/lightning/primitiveCellCheckbox/input-checkbox.slds.css +20 -20
  70. package/src/lightning/primitiveCellFactory/button-icon.slds.css +28 -28
  71. package/src/lightning/primitiveCoordinateItem/button.slds.css +28 -28
  72. package/src/lightning/primitiveDatatableStatusBar/button.slds.css +28 -28
  73. package/src/lightning/primitiveDatatableTooltip/button-icon.slds.css +28 -28
  74. package/src/lightning/primitiveDatatableTooltip/button.slds.css +28 -28
  75. package/src/lightning/primitiveFigure/primitiveFigure.css +64 -0
  76. package/src/lightning/primitiveFigure/primitiveFigure.d.ts +33 -0
  77. package/src/lightning/primitiveFigure/primitiveFigure.d.ts.map +1 -0
  78. package/src/lightning/primitiveFigure/primitiveFigure.html +5 -0
  79. package/src/lightning/primitiveFigure/primitiveFigure.js +155 -0
  80. package/src/lightning/primitiveFigure/primitiveFigure.js-meta.xml +4 -0
  81. package/src/lightning/primitiveHeaderFactory/input-checkbox.slds.css +20 -20
  82. package/src/lightning/primitiveIcon/icon.slds.css +11 -11
  83. package/src/lightning/primitiveInputCheckbox/input-checkbox.slds.css +20 -20
  84. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.d.ts.map +1 -1
  85. package/src/lightning/primitiveInputCheckbox/primitiveInputCheckbox.js +1 -11
  86. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.d.ts.map +1 -1
  87. package/src/lightning/primitiveInputCheckboxButton/primitiveInputCheckboxButton.js +12 -0
  88. package/src/lightning/primitiveInputColor/input-text.slds.css +44 -50
  89. package/src/lightning/primitiveInputColor/primitiveInputColor.d.ts +0 -1
  90. package/src/lightning/primitiveInputColor/primitiveInputColor.d.ts.map +1 -1
  91. package/src/lightning/primitiveInputColor/primitiveInputColor.js +12 -0
  92. package/src/lightning/primitiveInputFile/button.slds.css +28 -28
  93. package/src/lightning/primitiveInputSimple/input-text.slds.css +44 -50
  94. package/src/lightning/primitiveInputSimple/primitiveInputSimple.d.ts.map +1 -1
  95. package/src/lightning/primitiveInputSimple/primitiveInputSimple.js +8 -0
  96. package/src/lightning/primitiveInputToggle/primitiveInputToggle.d.ts.map +1 -1
  97. package/src/lightning/primitiveInputToggle/primitiveInputToggle.js +12 -0
  98. package/src/lightning/primitiveTreegridCellToggle/button-icon.slds.css +28 -28
  99. package/src/lightning/progressIndicator/progressIndicator.d.ts +0 -1
  100. package/src/lightning/progressIndicator/progressIndicator.d.ts.map +1 -1
  101. package/src/lightning/progressStep/progressStep.d.ts +0 -1
  102. package/src/lightning/progressStep/progressStep.d.ts.map +1 -1
  103. package/src/lightning/prompt/input-text.slds.css +44 -50
  104. package/src/lightning/toast/button-icon.slds.css +28 -28
  105. package/src/lightning/toast/icon.slds.css +11 -11
  106. package/src/lightning/toast/toast.d.ts +0 -1
  107. package/src/lightning/toast/toast.d.ts.map +1 -1
  108. package/src/lightning/toastContainer/toastContainer.d.ts +0 -1
  109. package/src/lightning/toastContainer/toastContainer.d.ts.map +1 -1
  110. package/src/lightning/tree/treeData.d.ts.map +1 -1
  111. package/src/lightning/tree/treeData.js +18 -0
  112. package/src/lightning/utilsPrivate/normalize.d.ts +1 -1
  113. package/src/lightning/utilsPrivate/normalize.d.ts.map +1 -1
  114. package/src/lightning/verticalNavigationOverflow/button.slds.css +28 -28
@@ -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