@politiet/sheriff-web-components 1.3.0 → 2.0.0-beta.1

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 (190) hide show
  1. package/dist/frameworks/preact.d.ts +4 -5
  2. package/dist/frameworks/preact.d.ts.map +1 -1
  3. package/dist/frameworks/react.d.ts +55 -19
  4. package/dist/frameworks/react.d.ts.map +1 -1
  5. package/dist/frameworks/solidjs.d.ts +4 -5
  6. package/dist/frameworks/solidjs.d.ts.map +1 -1
  7. package/dist/frameworks/svelte.d.ts +4 -5
  8. package/dist/frameworks/svelte.d.ts.map +1 -1
  9. package/dist/frameworks/vue.d.ts +4 -5
  10. package/dist/frameworks/vue.d.ts.map +1 -1
  11. package/dist/index.d.ts +21 -6
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +4 -6
  14. package/dist/index.js.map +1 -1
  15. package/dist/playwright-util/screenshot.d.ts +3 -0
  16. package/dist/playwright-util/screenshot.d.ts.map +1 -0
  17. package/dist/playwright-util/screenshot.js +25 -0
  18. package/dist/playwright-util/screenshot.js.map +1 -0
  19. package/dist/react-wrappers/SDSAlertWrapper.d.ts +5 -0
  20. package/dist/react-wrappers/SDSAlertWrapper.d.ts.map +1 -0
  21. package/dist/react-wrappers/SDSAlertWrapper.js +12 -0
  22. package/dist/react-wrappers/SDSAlertWrapper.js.map +1 -0
  23. package/dist/react-wrappers/SDSCardWrapper.d.ts +3 -0
  24. package/dist/react-wrappers/SDSCardWrapper.d.ts.map +1 -0
  25. package/dist/react-wrappers/SDSCardWrapper.js +10 -0
  26. package/dist/react-wrappers/SDSCardWrapper.js.map +1 -0
  27. package/dist/react-wrappers/SDSTagWrapper.d.ts +3 -0
  28. package/dist/react-wrappers/SDSTagWrapper.d.ts.map +1 -0
  29. package/dist/react-wrappers/SDSTagWrapper.js +10 -0
  30. package/dist/react-wrappers/SDSTagWrapper.js.map +1 -0
  31. package/dist/react-wrappers/SDSTextAreaWrapper.d.ts +9 -0
  32. package/dist/react-wrappers/SDSTextAreaWrapper.d.ts.map +1 -0
  33. package/dist/react-wrappers/SDSTextAreaWrapper.js +16 -0
  34. package/dist/react-wrappers/SDSTextAreaWrapper.js.map +1 -0
  35. package/dist/react-wrappers/index.d.ts +2 -5
  36. package/dist/react-wrappers/index.d.ts.map +1 -1
  37. package/dist/react-wrappers/index.js +2 -5
  38. package/dist/react-wrappers/index.js.map +1 -1
  39. package/dist/sds-alert/sds-alert.d.ts +27 -0
  40. package/dist/sds-alert/sds-alert.d.ts.map +1 -0
  41. package/dist/sds-alert/sds-alert.js +65 -0
  42. package/dist/sds-alert/sds-alert.js.map +1 -0
  43. package/dist/sds-alert/sds-alert.styles.d.ts +2 -0
  44. package/dist/sds-alert/sds-alert.styles.d.ts.map +1 -0
  45. package/dist/sds-alert/sds-alert.styles.js +166 -0
  46. package/dist/sds-alert/sds-alert.styles.js.map +1 -0
  47. package/dist/sds-button/sds-button.d.ts +23 -14
  48. package/dist/sds-button/sds-button.d.ts.map +1 -1
  49. package/dist/sds-button/sds-button.js +42 -27
  50. package/dist/sds-button/sds-button.js.map +1 -1
  51. package/dist/sds-button/sds-button.spec.js +53 -38
  52. package/dist/sds-button/sds-button.spec.js.map +1 -1
  53. package/dist/sds-button/sds-button.styles.d.ts.map +1 -1
  54. package/dist/sds-button/sds-button.styles.js +107 -92
  55. package/dist/sds-button/sds-button.styles.js.map +1 -1
  56. package/dist/sds-card/sds-card.d.ts +18 -0
  57. package/dist/sds-card/sds-card.d.ts.map +1 -0
  58. package/dist/sds-card/sds-card.js +58 -0
  59. package/dist/sds-card/sds-card.js.map +1 -0
  60. package/dist/sds-card/sds-card.styles.d.ts +2 -0
  61. package/dist/sds-card/sds-card.styles.d.ts.map +1 -0
  62. package/dist/sds-card/sds-card.styles.js +124 -0
  63. package/dist/sds-card/sds-card.styles.js.map +1 -0
  64. package/dist/sds-checkbox/sds-checkbox.d.ts +9 -0
  65. package/dist/sds-checkbox/sds-checkbox.d.ts.map +1 -1
  66. package/dist/sds-checkbox/sds-checkbox.js +40 -35
  67. package/dist/sds-checkbox/sds-checkbox.js.map +1 -1
  68. package/dist/sds-checkbox/sds-checkbox.styles.d.ts.map +1 -1
  69. package/dist/sds-checkbox/sds-checkbox.styles.js +162 -62
  70. package/dist/sds-checkbox/sds-checkbox.styles.js.map +1 -1
  71. package/dist/sds-checkbox-group/sds-checkbox-group.d.ts +14 -0
  72. package/dist/sds-checkbox-group/sds-checkbox-group.d.ts.map +1 -1
  73. package/dist/sds-checkbox-group/sds-checkbox-group.js +58 -6
  74. package/dist/sds-checkbox-group/sds-checkbox-group.js.map +1 -1
  75. package/dist/sds-checkbox-group/sds-checkbox-group.styles.d.ts.map +1 -1
  76. package/dist/sds-checkbox-group/sds-checkbox-group.styles.js +61 -22
  77. package/dist/sds-checkbox-group/sds-checkbox-group.styles.js.map +1 -1
  78. package/dist/sds-chip/sds-chip.d.ts +3 -1
  79. package/dist/sds-chip/sds-chip.d.ts.map +1 -1
  80. package/dist/sds-chip/sds-chip.js +21 -15
  81. package/dist/sds-chip/sds-chip.js.map +1 -1
  82. package/dist/sds-chip/sds-chip.styles.d.ts.map +1 -1
  83. package/dist/sds-chip/sds-chip.styles.js +105 -40
  84. package/dist/sds-chip/sds-chip.styles.js.map +1 -1
  85. package/dist/sds-detail/sds-detail.styles.js +2 -2
  86. package/dist/sds-detail/sds-detail.styles.js.map +1 -1
  87. package/dist/sds-heading/sds-heading.d.ts +2 -1
  88. package/dist/sds-heading/sds-heading.d.ts.map +1 -1
  89. package/dist/sds-heading/sds-heading.js +12 -15
  90. package/dist/sds-heading/sds-heading.js.map +1 -1
  91. package/dist/sds-heading/sds-heading.styles.d.ts.map +1 -1
  92. package/dist/sds-heading/sds-heading.styles.js +89 -42
  93. package/dist/sds-heading/sds-heading.styles.js.map +1 -1
  94. package/dist/sds-icon/sds-icon-names.d.ts +1 -1
  95. package/dist/sds-icon/sds-icon-names.d.ts.map +1 -1
  96. package/dist/sds-icon/sds-icon-names.js +3626 -554
  97. package/dist/sds-icon/sds-icon-names.js.map +1 -1
  98. package/dist/sds-icon/sds-icon.allowed-colors.js +12 -12
  99. package/dist/sds-icon/sds-icon.color-types.d.ts +1 -1
  100. package/dist/sds-icon/sds-icon.d.ts +10 -1
  101. package/dist/sds-icon/sds-icon.d.ts.map +1 -1
  102. package/dist/sds-icon/sds-icon.js +3 -10
  103. package/dist/sds-icon/sds-icon.js.map +1 -1
  104. package/dist/sds-icon/sds-icon.styles.d.ts.map +1 -1
  105. package/dist/sds-icon/sds-icon.styles.js +20 -6
  106. package/dist/sds-icon/sds-icon.styles.js.map +1 -1
  107. package/dist/sds-label/sds-label.styles.js +2 -2
  108. package/dist/sds-label/sds-label.styles.js.map +1 -1
  109. package/dist/sds-link/sds-link.styles.js +6 -6
  110. package/dist/sds-link/sds-link.styles.js.map +1 -1
  111. package/dist/sds-loader/sds-loader.d.ts +4 -3
  112. package/dist/sds-loader/sds-loader.d.ts.map +1 -1
  113. package/dist/sds-loader/sds-loader.js +16 -8
  114. package/dist/sds-loader/sds-loader.js.map +1 -1
  115. package/dist/sds-loader/sds-loader.styles.d.ts.map +1 -1
  116. package/dist/sds-loader/sds-loader.styles.js +65 -20
  117. package/dist/sds-loader/sds-loader.styles.js.map +1 -1
  118. package/dist/sds-nav-card/sds-nav-card.styles.d.ts.map +1 -1
  119. package/dist/sds-nav-card/sds-nav-card.styles.js +18 -25
  120. package/dist/sds-nav-card/sds-nav-card.styles.js.map +1 -1
  121. package/dist/sds-notification/sds-notification.d.ts +6 -2
  122. package/dist/sds-notification/sds-notification.d.ts.map +1 -1
  123. package/dist/sds-notification/sds-notification.js +31 -19
  124. package/dist/sds-notification/sds-notification.js.map +1 -1
  125. package/dist/sds-notification/sds-notification.styles.d.ts.map +1 -1
  126. package/dist/sds-notification/sds-notification.styles.js +93 -113
  127. package/dist/sds-notification/sds-notification.styles.js.map +1 -1
  128. package/dist/sds-paragraph/sds-paragraph.styles.js +2 -2
  129. package/dist/sds-paragraph/sds-paragraph.styles.js.map +1 -1
  130. package/dist/sds-radio/sds-radio.d.ts +9 -0
  131. package/dist/sds-radio/sds-radio.d.ts.map +1 -1
  132. package/dist/sds-radio/sds-radio.js +43 -33
  133. package/dist/sds-radio/sds-radio.js.map +1 -1
  134. package/dist/sds-radio/sds-radio.styles.d.ts.map +1 -1
  135. package/dist/sds-radio/sds-radio.styles.js +150 -64
  136. package/dist/sds-radio/sds-radio.styles.js.map +1 -1
  137. package/dist/sds-radio-group/sds-radio-group.d.ts +17 -1
  138. package/dist/sds-radio-group/sds-radio-group.d.ts.map +1 -1
  139. package/dist/sds-radio-group/sds-radio-group.js +79 -13
  140. package/dist/sds-radio-group/sds-radio-group.js.map +1 -1
  141. package/dist/sds-radio-group/sds-radio-group.styles.d.ts.map +1 -1
  142. package/dist/sds-radio-group/sds-radio-group.styles.js +73 -23
  143. package/dist/sds-radio-group/sds-radio-group.styles.js.map +1 -1
  144. package/dist/sds-switch/sds-switch.d.ts +7 -1
  145. package/dist/sds-switch/sds-switch.d.ts.map +1 -1
  146. package/dist/sds-switch/sds-switch.js +27 -10
  147. package/dist/sds-switch/sds-switch.js.map +1 -1
  148. package/dist/sds-switch/sds-switch.styles.d.ts.map +1 -1
  149. package/dist/sds-switch/sds-switch.styles.js +92 -64
  150. package/dist/sds-switch/sds-switch.styles.js.map +1 -1
  151. package/dist/sds-tag/sds-tag.d.ts +21 -0
  152. package/dist/sds-tag/sds-tag.d.ts.map +1 -0
  153. package/dist/sds-tag/sds-tag.js +38 -0
  154. package/dist/sds-tag/sds-tag.js.map +1 -0
  155. package/dist/sds-tag/sds-tag.styles.d.ts +2 -0
  156. package/dist/sds-tag/sds-tag.styles.d.ts.map +1 -0
  157. package/dist/sds-tag/sds-tag.styles.js +90 -0
  158. package/dist/sds-tag/sds-tag.styles.js.map +1 -0
  159. package/dist/sds-text/sds-text.d.ts +6 -1
  160. package/dist/sds-text/sds-text.d.ts.map +1 -1
  161. package/dist/sds-text/sds-text.js +11 -11
  162. package/dist/sds-text/sds-text.js.map +1 -1
  163. package/dist/sds-text/sds-text.styles.d.ts.map +1 -1
  164. package/dist/sds-text/sds-text.styles.js +257 -14
  165. package/dist/sds-text/sds-text.styles.js.map +1 -1
  166. package/dist/sds-textarea/sds-textarea.d.ts +7 -0
  167. package/dist/sds-textarea/sds-textarea.d.ts.map +1 -1
  168. package/dist/sds-textarea/sds-textarea.js +21 -24
  169. package/dist/sds-textarea/sds-textarea.js.map +1 -1
  170. package/dist/sds-textarea/sds-textarea.styles.d.ts.map +1 -1
  171. package/dist/sds-textarea/sds-textarea.styles.js +121 -58
  172. package/dist/sds-textarea/sds-textarea.styles.js.map +1 -1
  173. package/dist/sds-textfield/sds-textfield.d.ts +5 -0
  174. package/dist/sds-textfield/sds-textfield.d.ts.map +1 -1
  175. package/dist/sds-textfield/sds-textfield.js +7 -5
  176. package/dist/sds-textfield/sds-textfield.js.map +1 -1
  177. package/dist/sds-textfield/sds-textfield.styles.d.ts.map +1 -1
  178. package/dist/sds-textfield/sds-textfield.styles.js +104 -62
  179. package/dist/sds-textfield/sds-textfield.styles.js.map +1 -1
  180. package/dist/sheriff-web-components.js +2931 -1966
  181. package/dist/types.d.ts +5 -0
  182. package/dist/types.d.ts.map +1 -0
  183. package/dist/types.js +2 -0
  184. package/dist/types.js.map +1 -0
  185. package/dist/utils/renderErrorMessage.js +1 -1
  186. package/dist/utils/slot-validator.d.ts +2 -0
  187. package/dist/utils/slot-validator.d.ts.map +1 -0
  188. package/dist/utils/slot-validator.js +24 -0
  189. package/dist/utils/slot-validator.js.map +1 -0
  190. package/package.json +24 -29
@@ -17,11 +17,6 @@ const primaryButtonIds = [
17
17
  'button-primary-medium-icon-only',
18
18
  'button-primary-small-icon-only',
19
19
  'button-primary-disabled-icon-only',
20
- 'button-as-link-primary-large',
21
- 'button-as-link-primary-medium',
22
- 'button-as-link-primary-small',
23
- 'button-as-link-icon-before',
24
- 'button-as-link-icon-after',
25
20
  ];
26
21
  const secondaryButtonIds = [
27
22
  // Secondary
@@ -41,9 +36,6 @@ const secondaryButtonIds = [
41
36
  'button-secondary-medium-icon-only',
42
37
  'button-secondary-small-icon-only',
43
38
  'button-secondary-disabled-icon-only',
44
- 'button-as-link-secondary-large',
45
- 'button-as-link-secondary-medium',
46
- 'button-as-link-secondary-small',
47
39
  ];
48
40
  const tertiaryButtonIds = [
49
41
  // Tertiary
@@ -63,9 +55,6 @@ const tertiaryButtonIds = [
63
55
  'button-tertiary-medium-icon-only',
64
56
  'button-tertiary-small-icon-only',
65
57
  'button-tertiary-disabled-icon-only',
66
- 'button-as-link-tertiary-large',
67
- 'button-as-link-tertiary-medium',
68
- 'button-as-link-tertiary-small',
69
58
  ];
70
59
  const criticalButtonIds = [
71
60
  // Critical
@@ -85,22 +74,70 @@ const criticalButtonIds = [
85
74
  'button-critical-medium-icon-only',
86
75
  'button-critical-small-icon-only',
87
76
  'button-critical-disabled-icon-only',
88
- 'button-as-link-critical-large',
89
- 'button-as-link-critical-medium',
90
- 'button-as-link-critical-small',
77
+ ];
78
+ const dangerButtonIds = [
79
+ // Danger
80
+ 'button-danger-primary-large',
81
+ 'button-danger-primary-medium',
82
+ 'button-danger-primary-small',
83
+ 'button-danger-primary-disabled',
84
+ 'button-danger-primary-large-icon-before',
85
+ 'button-danger-primary-medium-icon-before',
86
+ 'button-danger-primary-small-icon-before',
87
+ 'button-danger-primary-disabled-icon-before',
88
+ 'button-danger-primary-large-icon-after',
89
+ 'button-danger-primary-medium-icon-after',
90
+ 'button-danger-primary-small-icon-after',
91
+ 'button-danger-primary-disabled-icon-after',
92
+ 'button-danger-primary-large-icon-only',
93
+ 'button-danger-primary-medium-icon-only',
94
+ 'button-danger-primary-small-icon-only',
95
+ 'button-danger-primary-disabled-icon-only',
96
+ 'button-danger-secondary-large',
97
+ 'button-danger-secondary-medium',
98
+ 'button-danger-secondary-small',
99
+ 'button-danger-secondary-disabled',
100
+ 'button-danger-secondary-large-icon-before',
101
+ 'button-danger-secondary-medium-icon-before',
102
+ 'button-danger-secondary-small-icon-before',
103
+ 'button-danger-secondary-disabled-icon-before',
104
+ 'button-danger-secondary-large-icon-after',
105
+ 'button-danger-secondary-medium-icon-after',
106
+ 'button-danger-secondary-small-icon-after',
107
+ 'button-danger-secondary-disabled-icon-after',
108
+ 'button-danger-secondary-large-icon-only',
109
+ 'button-danger-secondary-medium-icon-only',
110
+ 'button-danger-secondary-small-icon-only',
111
+ 'button-danger-secondary-disabled-icon-only',
112
+ 'button-danger-tertiary-large',
113
+ 'button-danger-tertiary-medium',
114
+ 'button-danger-tertiary-small',
115
+ 'button-danger-tertiary-disabled',
116
+ 'button-danger-tertiary-large-icon-before',
117
+ 'button-danger-tertiary-medium-icon-before',
118
+ 'button-danger-tertiary-small-icon-before',
119
+ 'button-danger-tertiary-disabled-icon-before',
120
+ 'button-danger-tertiary-large-icon-after',
121
+ 'button-danger-tertiary-medium-icon-after',
122
+ 'button-danger-tertiary-small-icon-after',
123
+ 'button-danger-tertiary-disabled-icon-after',
124
+ 'button-danger-tertiary-large-icon-only',
125
+ 'button-danger-tertiary-medium-icon-only',
126
+ 'button-danger-tertiary-small-icon-only',
127
+ 'button-danger-tertiary-disabled-icon-only',
91
128
  ];
92
129
  test.describe('button-component', () => {
93
130
  test.beforeEach(async ({ page }) => {
94
131
  await page.goto('iframe.html?viewMode=docs&id=test-button--docs');
95
132
  });
96
133
  test('visibility', async ({ page }) => {
97
- const buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds];
134
+ const buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds, ...dangerButtonIds];
98
135
  for (const id of buttonIds) {
99
136
  await expect(page.locator(`#${id}`)).toBeVisible();
100
137
  }
101
138
  });
102
139
  test('design-implementation', async ({ page }) => {
103
- const buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds];
140
+ const buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds, ...dangerButtonIds];
104
141
  await page.reload();
105
142
  for (const id of buttonIds) {
106
143
  // Default state
@@ -141,27 +178,5 @@ test.describe('button-component', () => {
141
178
  const value = await page.locator('#first-name').getAttribute('value');
142
179
  expect(value).toBeNull();
143
180
  });
144
- test('button-as-link', async ({ page }) => {
145
- const buttonAsLink = page.locator('#button-as-link-target-blank');
146
- await expect(buttonAsLink).toHaveAttribute('href', 'https://www.politiet.no');
147
- const shadowButtonAsLinkHref = await buttonAsLink.evaluate((el) => {
148
- const shadowRoot = el.shadowRoot;
149
- if (shadowRoot) {
150
- const anchorElement = shadowRoot.querySelector('a');
151
- return anchorElement?.getAttribute('href');
152
- }
153
- return null;
154
- });
155
- await expect(shadowButtonAsLinkHref).toBe('https://www.politiet.no');
156
- const shadowButtonAsLinkTarget = await buttonAsLink.evaluate((el) => {
157
- const shadowRoot = el.shadowRoot;
158
- if (shadowRoot) {
159
- const anchorElement = shadowRoot.querySelector('a');
160
- return anchorElement?.getAttribute('target');
161
- }
162
- return null;
163
- });
164
- await expect(shadowButtonAsLinkTarget).toBe('_blank');
165
- });
166
181
  });
167
182
  //# sourceMappingURL=sds-button.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sds-button.spec.js","sourceRoot":"","sources":["../../src/sds-button/sds-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from '@playwright/test';\n\nconst primaryButtonIds = [\n\t// Primary\n\t'button-primary-large',\n\t'button-primary-medium',\n\t'button-primary-small',\n\t'button-primary-disabled',\n\t'button-primary-large-icon-before',\n\t'button-primary-medium-icon-before',\n\t'button-primary-small-icon-before',\n\t'button-primary-disabled-icon-before',\n\t'button-primary-large-icon-after',\n\t'button-primary-medium-icon-after',\n\t'button-primary-small-icon-after',\n\t'button-primary-disabled-icon-after',\n\t'button-primary-large-icon-only',\n\t'button-primary-medium-icon-only',\n\t'button-primary-small-icon-only',\n\t'button-primary-disabled-icon-only',\n\t'button-as-link-primary-large',\n\t'button-as-link-primary-medium',\n\t'button-as-link-primary-small',\n\t'button-as-link-icon-before',\n\t'button-as-link-icon-after',\n];\nconst secondaryButtonIds = [\n\t// Secondary\n\t'button-secondary-large',\n\t'button-secondary-medium',\n\t'button-secondary-small',\n\t'button-secondary-disabled',\n\t'button-secondary-large-icon-before',\n\t'button-secondary-medium-icon-before',\n\t'button-secondary-small-icon-before',\n\t'button-secondary-disabled-icon-before',\n\t'button-secondary-large-icon-after',\n\t'button-secondary-medium-icon-after',\n\t'button-secondary-small-icon-after',\n\t'button-secondary-disabled-icon-after',\n\t'button-secondary-large-icon-only',\n\t'button-secondary-medium-icon-only',\n\t'button-secondary-small-icon-only',\n\t'button-secondary-disabled-icon-only',\n\t'button-as-link-secondary-large',\n\t'button-as-link-secondary-medium',\n\t'button-as-link-secondary-small',\n];\nconst tertiaryButtonIds = [\n\t// Tertiary\n\t'button-tertiary-large',\n\t'button-tertiary-medium',\n\t'button-tertiary-small',\n\t'button-tertiary-disabled',\n\t'button-tertiary-large-icon-before',\n\t'button-tertiary-medium-icon-before',\n\t'button-tertiary-small-icon-before',\n\t'button-tertiary-disabled-icon-before',\n\t'button-tertiary-large-icon-after',\n\t'button-tertiary-medium-icon-after',\n\t'button-tertiary-small-icon-after',\n\t'button-tertiary-disabled-icon-after',\n\t'button-tertiary-large-icon-only',\n\t'button-tertiary-medium-icon-only',\n\t'button-tertiary-small-icon-only',\n\t'button-tertiary-disabled-icon-only',\n\t'button-as-link-tertiary-large',\n\t'button-as-link-tertiary-medium',\n\t'button-as-link-tertiary-small',\n];\nconst criticalButtonIds = [\n\t// Critical\n\t'button-critical-large',\n\t'button-critical-medium',\n\t'button-critical-small',\n\t'button-critical-disabled',\n\t'button-critical-large-icon-before',\n\t'button-critical-medium-icon-before',\n\t'button-critical-small-icon-before',\n\t'button-critical-disabled-icon-before',\n\t'button-critical-large-icon-after',\n\t'button-critical-medium-icon-after',\n\t'button-critical-small-icon-after',\n\t'button-critical-disabled-icon-after',\n\t'button-critical-large-icon-only',\n\t'button-critical-medium-icon-only',\n\t'button-critical-small-icon-only',\n\t'button-critical-disabled-icon-only',\n\t'button-as-link-critical-large',\n\t'button-as-link-critical-medium',\n\t'button-as-link-critical-small',\n];\n\ntest.describe('button-component', () => {\n\ttest.beforeEach(async ({ page }) => {\n\t\tawait page.goto('iframe.html?viewMode=docs&id=test-button--docs');\n\t});\n\n\ttest('visibility', async ({ page }) => {\n\t\tconst buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds];\n\n\t\tfor (const id of buttonIds) {\n\t\t\tawait expect(page.locator(`#${id}`)).toBeVisible();\n\t\t}\n\t});\n\n\ttest('design-implementation', async ({ page }) => {\n\t\tconst buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds];\n\t\tawait page.reload();\n\n\t\tfor (const id of buttonIds) {\n\t\t\t// Default state\n\t\t\tawait expect(page.locator(`#${id}`)).toHaveScreenshot(`${id}.png`);\n\t\t\t// Hover state\n\t\t\tpage.locator(`#${id}`).hover();\n\t\t\tawait expect(page.locator(`#${id}`)).toHaveScreenshot(`${id}-hover.png`);\n\t\t\t// Focus state\n\t\t\tawait page.evaluate((id) => {\n\t\t\t\tconst element = document.getElementById(id);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst parentDiv = document.createElement('div');\n\t\t\t\t\tparentDiv.style.padding = '10px';\n\t\t\t\t\tparentDiv.style.backgroundColor = 'white';\n\t\t\t\t\telement.parentNode?.insertBefore(parentDiv, element);\n\t\t\t\t\tparentDiv.appendChild(element);\n\t\t\t\t}\n\t\t\t}, id);\n\t\t\tpage.locator(`#${id}`).focus();\n\t\t\tconst parentDiv = await page.locator(`#${id}`).locator('xpath=..');\n\t\t\tawait expect(parentDiv).toHaveScreenshot(`${id}-focus.png`);\n\t\t}\n\t});\n\n\ttest('form-submission', async ({ page }) => {\n\t\tlet requestUrl: URL | undefined;\n\t\tpage.on('request', (request) => {\n\t\t\tif (request.url().includes('iframe.html?first-name=John')) {\n\t\t\t\trequestUrl = new URL(request.url());\n\t\t\t}\n\t\t});\n\n\t\tawait page.locator('#first-name').pressSequentially('John');\n\t\tawait page.locator('#submit-button').click();\n\t\tawait expect(requestUrl?.searchParams.get('first-name')).toBe('John');\n\t});\n\n\ttest('form-reset', async ({ page }) => {\n\t\tawait page.locator('#first-name').pressSequentially('John');\n\t\tawait page.locator('#reset-button').click();\n\t\tconst value = await page.locator('#first-name').getAttribute('value');\n\t\texpect(value).toBeNull();\n\t});\n\n\ttest('button-as-link', async ({ page }) => {\n\t\tconst buttonAsLink = page.locator('#button-as-link-target-blank');\n\t\tawait expect(buttonAsLink).toHaveAttribute('href', 'https://www.politiet.no');\n\n\t\tconst shadowButtonAsLinkHref = await buttonAsLink.evaluate((el) => {\n\t\t\tconst shadowRoot = el.shadowRoot;\n\t\t\tif (shadowRoot) {\n\t\t\t\tconst anchorElement = shadowRoot.querySelector('a');\n\t\t\t\treturn anchorElement?.getAttribute('href');\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\t\tawait expect(shadowButtonAsLinkHref).toBe('https://www.politiet.no');\n\n\t\tconst shadowButtonAsLinkTarget = await buttonAsLink.evaluate((el) => {\n\t\t\tconst shadowRoot = el.shadowRoot;\n\t\t\tif (shadowRoot) {\n\t\t\t\tconst anchorElement = shadowRoot.querySelector('a');\n\t\t\t\treturn anchorElement?.getAttribute('target');\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\n\t\tawait expect(shadowButtonAsLinkTarget).toBe('_blank');\n\t});\n});\n"]}
1
+ {"version":3,"file":"sds-button.spec.js","sourceRoot":"","sources":["../../src/sds-button/sds-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from '@playwright/test';\n\nconst primaryButtonIds = [\n\t// Primary\n\t'button-primary-large',\n\t'button-primary-medium',\n\t'button-primary-small',\n\t'button-primary-disabled',\n\t'button-primary-large-icon-before',\n\t'button-primary-medium-icon-before',\n\t'button-primary-small-icon-before',\n\t'button-primary-disabled-icon-before',\n\t'button-primary-large-icon-after',\n\t'button-primary-medium-icon-after',\n\t'button-primary-small-icon-after',\n\t'button-primary-disabled-icon-after',\n\t'button-primary-large-icon-only',\n\t'button-primary-medium-icon-only',\n\t'button-primary-small-icon-only',\n\t'button-primary-disabled-icon-only',\n];\nconst secondaryButtonIds = [\n\t// Secondary\n\t'button-secondary-large',\n\t'button-secondary-medium',\n\t'button-secondary-small',\n\t'button-secondary-disabled',\n\t'button-secondary-large-icon-before',\n\t'button-secondary-medium-icon-before',\n\t'button-secondary-small-icon-before',\n\t'button-secondary-disabled-icon-before',\n\t'button-secondary-large-icon-after',\n\t'button-secondary-medium-icon-after',\n\t'button-secondary-small-icon-after',\n\t'button-secondary-disabled-icon-after',\n\t'button-secondary-large-icon-only',\n\t'button-secondary-medium-icon-only',\n\t'button-secondary-small-icon-only',\n\t'button-secondary-disabled-icon-only',\n];\nconst tertiaryButtonIds = [\n\t// Tertiary\n\t'button-tertiary-large',\n\t'button-tertiary-medium',\n\t'button-tertiary-small',\n\t'button-tertiary-disabled',\n\t'button-tertiary-large-icon-before',\n\t'button-tertiary-medium-icon-before',\n\t'button-tertiary-small-icon-before',\n\t'button-tertiary-disabled-icon-before',\n\t'button-tertiary-large-icon-after',\n\t'button-tertiary-medium-icon-after',\n\t'button-tertiary-small-icon-after',\n\t'button-tertiary-disabled-icon-after',\n\t'button-tertiary-large-icon-only',\n\t'button-tertiary-medium-icon-only',\n\t'button-tertiary-small-icon-only',\n\t'button-tertiary-disabled-icon-only',\n];\nconst criticalButtonIds = [\n\t// Critical\n\t'button-critical-large',\n\t'button-critical-medium',\n\t'button-critical-small',\n\t'button-critical-disabled',\n\t'button-critical-large-icon-before',\n\t'button-critical-medium-icon-before',\n\t'button-critical-small-icon-before',\n\t'button-critical-disabled-icon-before',\n\t'button-critical-large-icon-after',\n\t'button-critical-medium-icon-after',\n\t'button-critical-small-icon-after',\n\t'button-critical-disabled-icon-after',\n\t'button-critical-large-icon-only',\n\t'button-critical-medium-icon-only',\n\t'button-critical-small-icon-only',\n\t'button-critical-disabled-icon-only',\n];\n\nconst dangerButtonIds = [\n\t// Danger\n\t'button-danger-primary-large',\n\t'button-danger-primary-medium',\n\t'button-danger-primary-small',\n\t'button-danger-primary-disabled',\n\t'button-danger-primary-large-icon-before',\n\t'button-danger-primary-medium-icon-before',\n\t'button-danger-primary-small-icon-before',\n\t'button-danger-primary-disabled-icon-before',\n\t'button-danger-primary-large-icon-after',\n\t'button-danger-primary-medium-icon-after',\n\t'button-danger-primary-small-icon-after',\n\t'button-danger-primary-disabled-icon-after',\n\t'button-danger-primary-large-icon-only',\n\t'button-danger-primary-medium-icon-only',\n\t'button-danger-primary-small-icon-only',\n\t'button-danger-primary-disabled-icon-only',\n\t'button-danger-secondary-large',\n\t'button-danger-secondary-medium',\n\t'button-danger-secondary-small',\n\t'button-danger-secondary-disabled',\n\t'button-danger-secondary-large-icon-before',\n\t'button-danger-secondary-medium-icon-before',\n\t'button-danger-secondary-small-icon-before',\n\t'button-danger-secondary-disabled-icon-before',\n\t'button-danger-secondary-large-icon-after',\n\t'button-danger-secondary-medium-icon-after',\n\t'button-danger-secondary-small-icon-after',\n\t'button-danger-secondary-disabled-icon-after',\n\t'button-danger-secondary-large-icon-only',\n\t'button-danger-secondary-medium-icon-only',\n\t'button-danger-secondary-small-icon-only',\n\t'button-danger-secondary-disabled-icon-only',\n\t'button-danger-tertiary-large',\n\t'button-danger-tertiary-medium',\n\t'button-danger-tertiary-small',\n\t'button-danger-tertiary-disabled',\n\t'button-danger-tertiary-large-icon-before',\n\t'button-danger-tertiary-medium-icon-before',\n\t'button-danger-tertiary-small-icon-before',\n\t'button-danger-tertiary-disabled-icon-before',\n\t'button-danger-tertiary-large-icon-after',\n\t'button-danger-tertiary-medium-icon-after',\n\t'button-danger-tertiary-small-icon-after',\n\t'button-danger-tertiary-disabled-icon-after',\n\t'button-danger-tertiary-large-icon-only',\n\t'button-danger-tertiary-medium-icon-only',\n\t'button-danger-tertiary-small-icon-only',\n\t'button-danger-tertiary-disabled-icon-only',\n];\n\ntest.describe('button-component', () => {\n\ttest.beforeEach(async ({ page }) => {\n\t\tawait page.goto('iframe.html?viewMode=docs&id=test-button--docs');\n\t});\n\n\ttest('visibility', async ({ page }) => {\n\t\tconst buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds, ...dangerButtonIds];\n\n\t\tfor (const id of buttonIds) {\n\t\t\tawait expect(page.locator(`#${id}`)).toBeVisible();\n\t\t}\n\t});\n\n\ttest('design-implementation', async ({ page }) => {\n\t\tconst buttonIds = [...primaryButtonIds, ...secondaryButtonIds, ...tertiaryButtonIds, ...criticalButtonIds, ...dangerButtonIds];\n\t\tawait page.reload();\n\n\t\tfor (const id of buttonIds) {\n\t\t\t// Default state\n\t\t\tawait expect(page.locator(`#${id}`)).toHaveScreenshot(`${id}.png`);\n\t\t\t// Hover state\n\t\t\tpage.locator(`#${id}`).hover();\n\t\t\tawait expect(page.locator(`#${id}`)).toHaveScreenshot(`${id}-hover.png`);\n\t\t\t// Focus state\n\t\t\tawait page.evaluate((id) => {\n\t\t\t\tconst element = document.getElementById(id);\n\t\t\t\tif (element) {\n\t\t\t\t\tconst parentDiv = document.createElement('div');\n\t\t\t\t\tparentDiv.style.padding = '10px';\n\t\t\t\t\tparentDiv.style.backgroundColor = 'white';\n\t\t\t\t\telement.parentNode?.insertBefore(parentDiv, element);\n\t\t\t\t\tparentDiv.appendChild(element);\n\t\t\t\t}\n\t\t\t}, id);\n\t\t\tpage.locator(`#${id}`).focus();\n\t\t\tconst parentDiv = await page.locator(`#${id}`).locator('xpath=..');\n\t\t\tawait expect(parentDiv).toHaveScreenshot(`${id}-focus.png`);\n\t\t}\n\t});\n\n\ttest('form-submission', async ({ page }) => {\n\t\tlet requestUrl: URL | undefined;\n\t\tpage.on('request', (request) => {\n\t\t\tif (request.url().includes('iframe.html?first-name=John')) {\n\t\t\t\trequestUrl = new URL(request.url());\n\t\t\t}\n\t\t});\n\n\t\tawait page.locator('#first-name').pressSequentially('John');\n\t\tawait page.locator('#submit-button').click();\n\t\tawait expect(requestUrl?.searchParams.get('first-name')).toBe('John');\n\t});\n\n\ttest('form-reset', async ({ page }) => {\n\t\tawait page.locator('#first-name').pressSequentially('John');\n\t\tawait page.locator('#reset-button').click();\n\t\tconst value = await page.locator('#first-name').getAttribute('value');\n\t\texpect(value).toBeNull();\n\t});\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sds-button.styles.d.ts","sourceRoot":"","sources":["../../src/sds-button/sds-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAsJlB,CAAC"}
1
+ {"version":3,"file":"sds-button.styles.d.ts","sourceRoot":"","sources":["../../src/sds-button/sds-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAqKlB,CAAC"}
@@ -1,153 +1,168 @@
1
1
  import { css } from 'lit';
2
2
  export const styles = css `
3
3
  :host {
4
- --_color-semantic-surface-critical-hover: #b32a23;
4
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-action-default));
5
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-default));
6
+ --_sds-button-border-width: var(--sds-button-border-width, var(--sds-border-md));
7
+ --_sds-button-disabled-opacity: var(--sds-button-disabled-opacity, var(--sds-color-states-disabled-opacity));
8
+ --_sds-button-focus-color: var(--sds-button-focus-color, var(--sds-color-states-focus-outer));
9
+ --_sds-button-focus-inner-color: var(--sds-button-focus-inner-color, var(--sds-color-states-focus-inner));
10
+ --_sds-button-focus-spacing: var(--sds-button-focus-spacing, var(--sds-color-states-focus-spacing));
11
+ --_sds-button-font-family: var(--sds-button-font, var(--sds-typography-font-family-roboto));
12
+ --_sds-button-font-size: var(--sds-button-font-size, var(--sds-typography-body-md-desktop-font-size));
13
+ --_sds-button-font-weight: var(--sds-button-font-weight, var(--sds-typography-body-md-desktop-font-weight));
14
+ --_sds-button-gap: var(--sds-button-gap, var(--sds-spacing-3xs));
15
+ --_sds-button-line-height: var(--sds-button-line-height, var(--sds-typography-body-md-desktop-line-height));
16
+ --_sds-button-min-height: var(--sds-button-height, var(--sds-components-button-lg));
17
+ --_sds-button-padding-block: var(--sds-button-padding-block, 0);
18
+ --_sds-button-padding-inline: var(--sds-button-padding-inline, var(--sds-spacing-xs));
19
+ --_sds-button-radius: var(--sds-button-radius, var(--sds-radius-sm));
20
+ --_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-accent-action-contrast-default));
21
+
5
22
  display: inline-block;
6
23
  box-sizing: border-box;
7
24
  }
8
25
 
9
26
  .sds-button {
10
27
  align-items: center;
28
+ background-color: var(--_sds-button-background-color);
29
+ border-radius: var(--_sds-button-radius);
30
+ border: var(--_sds-button-border-width) solid var(--_sds-button-border-color);
31
+ color: var(--_sds-button-text-color);
32
+ cursor: pointer;
11
33
  display: inline-flex;
12
- gap: var(--sds-spacing-3, 8px);
13
- justify-content: center;
14
- padding: var(--sds-spacing-3) var(--sds-spacing-4);
34
+ font-family: var(--_sds-button-font-family);
35
+ font-size: var(--_sds-button-font-size);
36
+ font-weight: var(--_sds-button-font-weight);
37
+ gap: var(--_sds-button-gap);
15
38
  inline-size: 100%;
16
-
17
- background-color: var(--sds-color-semantic-surface-action-default);
18
- border: 2px solid var(--sds-color-semantic-border-action);
19
- border-radius: var(--sds-radius-4);
20
- cursor: pointer;
21
-
22
- color: var(--sds-color-semantic-text-on-action);
23
- font-family: var(--sds-typography-font-family);
24
- font-size: 1rem;
25
- font-weight: 500;
26
- line-height: 1.5;
39
+ justify-content: center;
40
+ line-height: var(--_sds-button-line-height);
41
+ min-height: var(--_sds-button-min-height);
42
+ padding: var(--_sds-button-padding-block) var(--_sds-button-padding-inline);
27
43
  text-align: center;
28
44
 
29
45
  &:hover {
30
- background-color: var(--sds-color-semantic-surface-action-hover);
31
- border: 2px solid var(--sds-color-semantic-surface-action-hover);
46
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-action-hover));
47
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-hover));
32
48
  }
33
49
 
34
- &:focus {
35
- background-color: var(--sds-color-semantic-surface-action-default);
36
- outline: 2px solid var(--sds-color-semantic-surface-action-default);
37
- outline-offset: 1px;
50
+ &:focus-visible {
51
+ box-shadow: 0 0 0 var(--sds-color-states-focus-spacing) var(--_sds-button-focus-inner-color);
52
+ outline: 3px solid var(--_sds-button-focus-color);
53
+ outline-offset: 3px;
38
54
  }
39
55
 
40
56
  &:active {
41
- background-color: var(--sds-color-semantic-surface-action-active);
42
- border: 2px solid var(--sds-color-semantic-surface-action-active);
43
- outline: 0;
57
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-action-active));
58
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-active));
44
59
  }
45
60
 
46
61
  &:disabled {
47
- background-color: var(--sds-color-semantic-surface-disabled);
48
- border: 2px solid var(--sds-color-semantic-surface-disabled);
49
- color: var(--sds-color-semantic-text-subtle);
62
+ opacity: var(--_sds-button-disabled-opacity);
50
63
  cursor: not-allowed;
64
+ pointer-events: none;
51
65
  }
52
66
  }
53
67
 
54
- .sds-button--secondary {
55
- background-color: var(--sds-color-semantic-surface-action-inverted);
56
- border: 2px solid var(--sds-color-semantic-border-action);
57
- color: var(--sds-color-semantic-text-default);
58
-
59
- &:focus {
60
- background-color: var(--sds-color-semantic-surface-action-inverted);
61
- border: 2px solid var(--sds-color-semantic-border-action);
62
- }
68
+ .sds-button--as-link {
69
+ inline-size: auto;
70
+ text-decoration: none;
71
+ }
63
72
 
64
- &:hover {
65
- background-color: var(--sds-color-semantic-surface-action-subtle);
66
- }
73
+ :host([color='danger']) {
74
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-action-default));
75
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-default));
67
76
 
68
- &:active {
69
- background-color: var(--sds-color-semantic-surface-action-active);
70
- border: 2px solid var(--sds-color-semantic-surface-action-active);
71
- color: var(--sds-color-semantic-text-on-action);
72
- outline: 0;
77
+ .sds-button:hover {
78
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-action-hover));
79
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-hover));
73
80
  }
74
81
 
75
- &:disabled {
76
- border: 2px solid var(--sds-color-semantic-border-disabled);
77
- background: var(--sds-color-semantic-surface-action-inverted);
78
- color: var(--sds-color-semantic-text-disabled);
82
+ .sds-button:active {
83
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-action-active));
84
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-active));
79
85
  }
80
86
  }
81
87
 
82
- .sds-button--tertiary {
83
- background-color: transparent;
84
- border: 2px solid transparent;
85
- color: var(--sds-color-semantic-text-action-default);
88
+ :host([variant='secondary']) {
89
+ --_sds-button-background-color: var(--sds-button-background-color, transparent);
90
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-default));
91
+ --_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-accent-action-default));
86
92
 
87
- &:focus {
88
- background-color: transparent;
89
- border: 2px solid transparent;
93
+ .sds-button:hover {
94
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-hover));
90
95
  }
91
96
 
92
- &:hover {
93
- background-color: var(--sds-color-semantic-surface-action-subtle);
94
- border: 2px solid transparent;
97
+ .sds-button:active {
98
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-active));
95
99
  }
100
+ }
96
101
 
97
- &:active {
98
- background-color: var(--sds-color-semantic-surface-action-active);
99
- border: 2px solid var(--sds-color-semantic-surface-action-active);
100
- color: var(--sds-color-semantic-text-on-action);
101
- outline: 0;
102
- position: relative;
102
+ :host([variant='tertiary']) {
103
+ --_sds-button-background-color: var(--sds-button-background-color, transparent);
104
+ --_sds-button-border-color: var(--sds-button-border-color, transparent);
105
+ --_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-accent-action-default));
106
+
107
+ .sds-button:hover {
108
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-hover));
109
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-surface-hover));
103
110
  }
104
111
 
105
- &:disabled {
106
- border: 2px solid transparent;
107
- background: transparent;
108
- color: var(--sds-color-semantic-text-disabled);
112
+ .sds-button:active {
113
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-active));
114
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-surface-active));
109
115
  }
110
116
  }
111
117
 
112
- .sds-button--critical {
113
- background-color: var(--sds-color-semantic-surface-critical-xtreme);
114
- border: 2px solid var(--sds-color-semantic-border-critical);
115
- color: var(--sds-color-semantic-text-on-critical);
118
+ :host([variant='secondary']):host([color='danger']) {
119
+ --_sds-button-background-color: var(--sds-button-background-color, transparent);
120
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-default));
121
+ --_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-alert-danger-action-default));
116
122
 
117
- &:focus {
118
- background-color: var(--sds-color-semantic-surface-critical-xtreme);
119
- border: 2px solid var(--sds-color-semantic-border-critical);
123
+ .sds-button:hover {
124
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-hover));
120
125
  }
121
126
 
122
- &:hover {
123
- background-color: var(--_color-semantic-surface-critical-hover);
124
- border: 2px solid var(--_color-semantic-surface-critical-hover);
127
+ .sds-button:active {
128
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-active));
125
129
  }
130
+ }
126
131
 
127
- &:active {
128
- background-color: var(--sds-color-semantic-surface-action-active);
129
- border: 2px solid var(--sds-color-semantic-surface-action-active);
132
+ :host([variant='tertiary']):host([color='danger']) {
133
+ --_sds-button-background-color: var(--sds-button-background-color, transparent);
134
+ --_sds-button-border-color: var(--sds-button-border-color, transparent);
135
+ --_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-alert-danger-action-default));
136
+
137
+ .sds-button:hover {
138
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-hover));
139
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-surface-hover));
130
140
  }
131
141
 
132
- &:disabled {
133
- background-color: var(--sds-color-semantic-surface-disabled);
134
- border: 2px solid var(--sds-color-semantic-surface-disabled);
135
- color: var(--sds-color-semantic-text-subtle);
142
+ .sds-button:active {
143
+ --_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-active));
144
+ --_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-surface-active));
136
145
  }
137
146
  }
138
147
 
139
- .sds-button--medium {
140
- padding: var(--sds-spacing-1) var(--sds-spacing-3);
148
+ :host([size='medium']), /* Deprecated */
149
+ :host([size='md']) {
150
+ --_sds-button-min-height: var(--sds-button-height, var(--sds-components-button-md));
151
+ --_sds-button-padding-block: var(--sds-button-padding-block, var(--sds-spacing-4xs));
152
+ --_sds-button-padding-inline: var(--sds-button-padding-inline, var(--sds-spacing-3xs));
141
153
  }
142
154
 
143
- .sds-button--small {
155
+ :host([size='small']), /* Deprecated */
156
+ :host([size='sm']) {
157
+ --_sds-button-min-height: var(--sds-button-height, var(--sds-components-button-sm));
158
+ --_sds-button-padding-block: var(--sds-button-padding-block, 0);
159
+ --_sds-button-padding-inline: var(--sds-button-padding-inline, var(--sds-spacing-3xs));
144
160
  font-size: 0.875rem;
145
- padding: 0 var(--sds-spacing-3);
146
161
  }
147
162
 
148
- .sds-button--as-link {
149
- inline-size: auto;
150
- text-decoration: none;
163
+ :host([icon]) {
164
+ --_sds-button-padding-inline: var(--sds-button-padding-inline, 0);
165
+ min-width: var(--_sds-button-min-height);
151
166
  }
152
167
  `;
153
168
  //# sourceMappingURL=sds-button.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sds-button.styles.js","sourceRoot":"","sources":["../../src/sds-button/sds-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsJxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n\t:host {\n\t\t--_color-semantic-surface-critical-hover: #b32a23;\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\n\t.sds-button {\n\t\talign-items: center;\n\t\tdisplay: inline-flex;\n\t\tgap: var(--sds-spacing-3, 8px);\n\t\tjustify-content: center;\n\t\tpadding: var(--sds-spacing-3) var(--sds-spacing-4);\n\t\tinline-size: 100%;\n\n\t\tbackground-color: var(--sds-color-semantic-surface-action-default);\n\t\tborder: 2px solid var(--sds-color-semantic-border-action);\n\t\tborder-radius: var(--sds-radius-4);\n\t\tcursor: pointer;\n\n\t\tcolor: var(--sds-color-semantic-text-on-action);\n\t\tfont-family: var(--sds-typography-font-family);\n\t\tfont-size: 1rem;\n\t\tfont-weight: 500;\n\t\tline-height: 1.5;\n\t\ttext-align: center;\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-hover);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-action-hover);\n\t\t}\n\n\t\t&:focus {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-default);\n\t\t\toutline: 2px solid var(--sds-color-semantic-surface-action-default);\n\t\t\toutline-offset: 1px;\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-active);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-action-active);\n\t\t\toutline: 0;\n\t\t}\n\n\t\t&:disabled {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-disabled);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-disabled);\n\t\t\tcolor: var(--sds-color-semantic-text-subtle);\n\t\t\tcursor: not-allowed;\n\t\t}\n\t}\n\n\t.sds-button--secondary {\n\t\tbackground-color: var(--sds-color-semantic-surface-action-inverted);\n\t\tborder: 2px solid var(--sds-color-semantic-border-action);\n\t\tcolor: var(--sds-color-semantic-text-default);\n\n\t\t&:focus {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-inverted);\n\t\t\tborder: 2px solid var(--sds-color-semantic-border-action);\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-subtle);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-active);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-action-active);\n\t\t\tcolor: var(--sds-color-semantic-text-on-action);\n\t\t\toutline: 0;\n\t\t}\n\n\t\t&:disabled {\n\t\t\tborder: 2px solid var(--sds-color-semantic-border-disabled);\n\t\t\tbackground: var(--sds-color-semantic-surface-action-inverted);\n\t\t\tcolor: var(--sds-color-semantic-text-disabled);\n\t\t}\n\t}\n\n\t.sds-button--tertiary {\n\t\tbackground-color: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--sds-color-semantic-text-action-default);\n\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t\tborder: 2px solid transparent;\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-subtle);\n\t\t\tborder: 2px solid transparent;\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-active);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-action-active);\n\t\t\tcolor: var(--sds-color-semantic-text-on-action);\n\t\t\toutline: 0;\n\t\t\tposition: relative;\n\t\t}\n\n\t\t&:disabled {\n\t\t\tborder: 2px solid transparent;\n\t\t\tbackground: transparent;\n\t\t\tcolor: var(--sds-color-semantic-text-disabled);\n\t\t}\n\t}\n\n\t.sds-button--critical {\n\t\tbackground-color: var(--sds-color-semantic-surface-critical-xtreme);\n\t\tborder: 2px solid var(--sds-color-semantic-border-critical);\n\t\tcolor: var(--sds-color-semantic-text-on-critical);\n\n\t\t&:focus {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-critical-xtreme);\n\t\t\tborder: 2px solid var(--sds-color-semantic-border-critical);\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--_color-semantic-surface-critical-hover);\n\t\t\tborder: 2px solid var(--_color-semantic-surface-critical-hover);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-action-active);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-action-active);\n\t\t}\n\n\t\t&:disabled {\n\t\t\tbackground-color: var(--sds-color-semantic-surface-disabled);\n\t\t\tborder: 2px solid var(--sds-color-semantic-surface-disabled);\n\t\t\tcolor: var(--sds-color-semantic-text-subtle);\n\t\t}\n\t}\n\n\t.sds-button--medium {\n\t\tpadding: var(--sds-spacing-1) var(--sds-spacing-3);\n\t}\n\n\t.sds-button--small {\n\t\tfont-size: 0.875rem;\n\t\tpadding: 0 var(--sds-spacing-3);\n\t}\n\n\t.sds-button--as-link {\n\t\tinline-size: auto;\n\t\ttext-decoration: none;\n\t}\n`;\n"]}
1
+ {"version":3,"file":"sds-button.styles.js","sourceRoot":"","sources":["../../src/sds-button/sds-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqKxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n\t:host {\n\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-action-default));\n\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-default));\n\t\t--_sds-button-border-width: var(--sds-button-border-width, var(--sds-border-md));\n\t\t--_sds-button-disabled-opacity: var(--sds-button-disabled-opacity, var(--sds-color-states-disabled-opacity));\n\t\t--_sds-button-focus-color: var(--sds-button-focus-color, var(--sds-color-states-focus-outer));\n\t\t--_sds-button-focus-inner-color: var(--sds-button-focus-inner-color, var(--sds-color-states-focus-inner));\n\t\t--_sds-button-focus-spacing: var(--sds-button-focus-spacing, var(--sds-color-states-focus-spacing));\n\t\t--_sds-button-font-family: var(--sds-button-font, var(--sds-typography-font-family-roboto));\n\t\t--_sds-button-font-size: var(--sds-button-font-size, var(--sds-typography-body-md-desktop-font-size));\n\t\t--_sds-button-font-weight: var(--sds-button-font-weight, var(--sds-typography-body-md-desktop-font-weight));\n\t\t--_sds-button-gap: var(--sds-button-gap, var(--sds-spacing-3xs));\n\t\t--_sds-button-line-height: var(--sds-button-line-height, var(--sds-typography-body-md-desktop-line-height));\n\t\t--_sds-button-min-height: var(--sds-button-height, var(--sds-components-button-lg));\n\t\t--_sds-button-padding-block: var(--sds-button-padding-block, 0);\n\t\t--_sds-button-padding-inline: var(--sds-button-padding-inline, var(--sds-spacing-xs));\n\t\t--_sds-button-radius: var(--sds-button-radius, var(--sds-radius-sm));\n\t\t--_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-accent-action-contrast-default));\n\n\t\tdisplay: inline-block;\n\t\tbox-sizing: border-box;\n\t}\n\n\t.sds-button {\n\t\talign-items: center;\n\t\tbackground-color: var(--_sds-button-background-color);\n\t\tborder-radius: var(--_sds-button-radius);\n\t\tborder: var(--_sds-button-border-width) solid var(--_sds-button-border-color);\n\t\tcolor: var(--_sds-button-text-color);\n\t\tcursor: pointer;\n\t\tdisplay: inline-flex;\n\t\tfont-family: var(--_sds-button-font-family);\n\t\tfont-size: var(--_sds-button-font-size);\n\t\tfont-weight: var(--_sds-button-font-weight);\n\t\tgap: var(--_sds-button-gap);\n\t\tinline-size: 100%;\n\t\tjustify-content: center;\n\t\tline-height: var(--_sds-button-line-height);\n\t\tmin-height: var(--_sds-button-min-height);\n\t\tpadding: var(--_sds-button-padding-block) var(--_sds-button-padding-inline);\n\t\ttext-align: center;\n\n\t\t&:hover {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-action-hover));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-hover));\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbox-shadow: 0 0 0 var(--sds-color-states-focus-spacing) var(--_sds-button-focus-inner-color);\n\t\t\toutline: 3px solid var(--_sds-button-focus-color);\n\t\t\toutline-offset: 3px;\n\t\t}\n\n\t\t&:active {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-action-active));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-active));\n\t\t}\n\n\t\t&:disabled {\n\t\t\topacity: var(--_sds-button-disabled-opacity);\n\t\t\tcursor: not-allowed;\n\t\t\tpointer-events: none;\n\t\t}\n\t}\n\n\t.sds-button--as-link {\n\t\tinline-size: auto;\n\t\ttext-decoration: none;\n\t}\n\n\t:host([color='danger']) {\n\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-action-default));\n\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-default));\n\n\t\t.sds-button:hover {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-action-hover));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-hover));\n\t\t}\n\n\t\t.sds-button:active {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-action-active));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-active));\n\t\t}\n\t}\n\n\t:host([variant='secondary']) {\n\t\t--_sds-button-background-color: var(--sds-button-background-color, transparent);\n\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-action-default));\n\t\t--_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-accent-action-default));\n\n\t\t.sds-button:hover {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-hover));\n\t\t}\n\n\t\t.sds-button:active {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-active));\n\t\t}\n\t}\n\n\t:host([variant='tertiary']) {\n\t\t--_sds-button-background-color: var(--sds-button-background-color, transparent);\n\t\t--_sds-button-border-color: var(--sds-button-border-color, transparent);\n\t\t--_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-accent-action-default));\n\n\t\t.sds-button:hover {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-hover));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-surface-hover));\n\t\t}\n\n\t\t.sds-button:active {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-accent-surface-active));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-accent-surface-active));\n\t\t}\n\t}\n\n\t:host([variant='secondary']):host([color='danger']) {\n\t\t--_sds-button-background-color: var(--sds-button-background-color, transparent);\n\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-action-default));\n\t\t--_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-alert-danger-action-default));\n\n\t\t.sds-button:hover {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-hover));\n\t\t}\n\n\t\t.sds-button:active {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-active));\n\t\t}\n\t}\n\n\t:host([variant='tertiary']):host([color='danger']) {\n\t\t--_sds-button-background-color: var(--sds-button-background-color, transparent);\n\t\t--_sds-button-border-color: var(--sds-button-border-color, transparent);\n\t\t--_sds-button-text-color: var(--sds-button-text-color, var(--sds-color-alert-danger-action-default));\n\n\t\t.sds-button:hover {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-hover));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-surface-hover));\n\t\t}\n\n\t\t.sds-button:active {\n\t\t\t--_sds-button-background-color: var(--sds-button-background-color, var(--sds-color-alert-danger-surface-active));\n\t\t\t--_sds-button-border-color: var(--sds-button-border-color, var(--sds-color-alert-danger-surface-active));\n\t\t}\n\t}\n\n\t:host([size='medium']), /* Deprecated */\n\t:host([size='md']) {\n\t\t--_sds-button-min-height: var(--sds-button-height, var(--sds-components-button-md));\n\t\t--_sds-button-padding-block: var(--sds-button-padding-block, var(--sds-spacing-4xs));\n\t\t--_sds-button-padding-inline: var(--sds-button-padding-inline, var(--sds-spacing-3xs));\n\t}\n\n\t:host([size='small']), /* Deprecated */\n\t:host([size='sm']) {\n\t\t--_sds-button-min-height: var(--sds-button-height, var(--sds-components-button-sm));\n\t\t--_sds-button-padding-block: var(--sds-button-padding-block, 0);\n\t\t--_sds-button-padding-inline: var(--sds-button-padding-inline, var(--sds-spacing-3xs));\n\t\tfont-size: 0.875rem;\n\t}\n\n\t:host([icon]) {\n\t\t--_sds-button-padding-inline: var(--sds-button-padding-inline, 0);\n\t\tmin-width: var(--_sds-button-min-height);\n\t}\n`;\n"]}
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export interface SDSCardProps {
3
+ link: string;
4
+ }
5
+ export declare class SDSCard extends LitElement {
6
+ static styles: import("lit").CSSResult[];
7
+ link: string;
8
+ private headingSlot;
9
+ private contentSlot;
10
+ protected firstUpdated(): void;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ }
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'sds-card': SDSCard;
16
+ }
17
+ }
18
+ //# sourceMappingURL=sds-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sds-card.d.ts","sourceRoot":"","sources":["../../src/sds-card/sds-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAMvC,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;CACb;AAED,qBACa,OAAQ,SAAQ,UAAU;IAEtC,OAAgB,MAAM,4BAAY;IAGS,IAAI,EAAG,MAAM,CAAC;IAGlC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,WAAW,CAAmB;cAE1C,YAAY,IAAI,IAAI;IAsB9B,MAAM;CAWf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,UAAU,EAAE,OAAO,CAAC;KACpB;CACD"}
@@ -0,0 +1,58 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html } from 'lit';
8
+ import { property, query } from 'lit/decorators.js';
9
+ import { guardedCustomElement } from '../utils/guarded-custom-element';
10
+ import { validateSlotContent } from '../utils/slot-validator';
11
+ import { styles } from './sds-card.styles';
12
+ let SDSCard = class SDSCard extends LitElement {
13
+ firstUpdated() {
14
+ const contentWarning = '[sds-card] text slot should only contain top-level <p> elements with no nested elements:';
15
+ const headerWarning = '[sds-card] header slot should only contain one of <h2>–<h6> elements:';
16
+ validateSlotContent(this.contentSlot, ['P'], false, contentWarning);
17
+ const headerNodes = this.headingSlot.assignedNodes({ flatten: true });
18
+ if (headerNodes.length > 0) {
19
+ validateSlotContent(this.headingSlot, ['H2', 'H3', 'H4', 'H5', 'H6'], false, headerWarning);
20
+ }
21
+ this.contentSlot.addEventListener('slotchange', () => {
22
+ validateSlotContent(this.contentSlot, ['P'], false, contentWarning);
23
+ });
24
+ this.headingSlot.addEventListener('slotchange', () => {
25
+ const nodes = this.headingSlot.assignedNodes({ flatten: true });
26
+ if (nodes.length > 0) {
27
+ validateSlotContent(this.headingSlot, ['H2', 'H3', 'H4', 'H5', 'H6'], false, headerWarning);
28
+ }
29
+ });
30
+ }
31
+ render() {
32
+ return html `
33
+ <article class="sds-card">
34
+ <a href="${this.link}" class="sds-card__link">
35
+ <slot name="heading" id="heading"></slot>
36
+ <slot name="text" id="content"></slot>
37
+ <sds-icon name="arrow_forward-material-outlined" size="md" class="sds-card__icon"></sds-icon>
38
+ </a>
39
+ </article>
40
+ `;
41
+ }
42
+ };
43
+ // Styling
44
+ SDSCard.styles = [styles];
45
+ __decorate([
46
+ property({ type: String, reflect: true })
47
+ ], SDSCard.prototype, "link", void 0);
48
+ __decorate([
49
+ query('slot#heading')
50
+ ], SDSCard.prototype, "headingSlot", void 0);
51
+ __decorate([
52
+ query('slot#content')
53
+ ], SDSCard.prototype, "contentSlot", void 0);
54
+ SDSCard = __decorate([
55
+ guardedCustomElement('sds-card')
56
+ ], SDSCard);
57
+ export { SDSCard };
58
+ //# sourceMappingURL=sds-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sds-card.js","sourceRoot":"","sources":["../../src/sds-card/sds-card.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAOpC,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAWnB,YAAY;QAC9B,MAAM,cAAc,GAAG,0FAA0F,CAAC;QAClH,MAAM,aAAa,GAAG,uEAAuE,CAAC;QAE9F,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAC7F,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YACpD,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;YAC7F,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEQ,MAAM;QACd,OAAO,IAAI,CAAA;;eAEE,IAAI,CAAC,IAAI;;;;;;GAMrB,CAAC;IACH,CAAC;;AA1CD,UAAU;AACM,cAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAGS;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;qCAAe;AAG1B;IAA9B,KAAK,CAAC,cAAc,CAAC;4CAAuC;AAC9B;IAA9B,KAAK,CAAC,cAAc,CAAC;4CAAuC;AATjD,OAAO;IADnB,oBAAoB,CAAC,UAAU,CAAC;GACpB,OAAO,CA4CnB","sourcesContent":["import { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { validateSlotContent } from '../utils/slot-validator';\nimport { styles } from './sds-card.styles';\n\nexport interface SDSCardProps {\n\tlink: string;\n}\n\n@guardedCustomElement('sds-card')\nexport class SDSCard extends LitElement {\n\t// Styling\n\tstatic override styles = [styles];\n\n\t// Reactive Props\n\t@property({ type: String, reflect: true }) link!: string;\n\n\t// Slots\n\t@query('slot#heading') private headingSlot!: HTMLSlotElement;\n\t@query('slot#content') private contentSlot!: HTMLSlotElement;\n\n\tprotected override firstUpdated(): void {\n\t\tconst contentWarning = '[sds-card] text slot should only contain top-level <p> elements with no nested elements:';\n\t\tconst headerWarning = '[sds-card] header slot should only contain one of <h2>–<h6> elements:';\n\n\t\tvalidateSlotContent(this.contentSlot, ['P'], false, contentWarning);\n\t\tconst headerNodes = this.headingSlot.assignedNodes({ flatten: true });\n\t\tif (headerNodes.length > 0) {\n\t\t\tvalidateSlotContent(this.headingSlot, ['H2', 'H3', 'H4', 'H5', 'H6'], false, headerWarning);\n\t\t}\n\n\t\tthis.contentSlot.addEventListener('slotchange', () => {\n\t\t\tvalidateSlotContent(this.contentSlot, ['P'], false, contentWarning);\n\t\t});\n\n\t\tthis.headingSlot.addEventListener('slotchange', () => {\n\t\t\tconst nodes = this.headingSlot.assignedNodes({ flatten: true });\n\t\t\tif (nodes.length > 0) {\n\t\t\t\tvalidateSlotContent(this.headingSlot, ['H2', 'H3', 'H4', 'H5', 'H6'], false, headerWarning);\n\t\t\t}\n\t\t});\n\t}\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<article class=\"sds-card\">\n\t\t\t\t<a href=\"${this.link}\" class=\"sds-card__link\">\n\t\t\t\t\t<slot name=\"heading\" id=\"heading\"></slot>\n\t\t\t\t\t<slot name=\"text\" id=\"content\"></slot>\n\t\t\t\t\t<sds-icon name=\"arrow_forward-material-outlined\" size=\"md\" class=\"sds-card__icon\"></sds-icon>\n\t\t\t\t</a>\n\t\t\t</article>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-card': SDSCard;\n\t}\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=sds-card.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sds-card.styles.d.ts","sourceRoot":"","sources":["../../src/sds-card/sds-card.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAyHlB,CAAC"}