@politiet/sheriff-web-components 2.5.0 → 2.6.0

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 (159) hide show
  1. package/custom-elements.json +529 -304
  2. package/dist/frameworks/preact.d.ts +12 -3
  3. package/dist/frameworks/preact.d.ts.map +1 -1
  4. package/dist/frameworks/react.d.ts +12 -3
  5. package/dist/frameworks/react.d.ts.map +1 -1
  6. package/dist/frameworks/solidjs.d.ts +3 -0
  7. package/dist/frameworks/solidjs.d.ts.map +1 -1
  8. package/dist/frameworks/svelte.d.ts +3 -0
  9. package/dist/frameworks/svelte.d.ts.map +1 -1
  10. package/dist/frameworks/vue.d.ts +3 -0
  11. package/dist/frameworks/vue.d.ts.map +1 -1
  12. package/dist/index.d.ts +6 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +3 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/mixins/index.d.ts +3 -0
  17. package/dist/mixins/index.d.ts.map +1 -0
  18. package/dist/mixins/index.js +3 -0
  19. package/dist/mixins/index.js.map +1 -0
  20. package/dist/mixins/sds-delegate-interaction-mixin.d.ts +27 -0
  21. package/dist/mixins/sds-delegate-interaction-mixin.d.ts.map +1 -0
  22. package/dist/mixins/sds-delegate-interaction-mixin.js +29 -0
  23. package/dist/mixins/sds-delegate-interaction-mixin.js.map +1 -0
  24. package/dist/mixins/sds-event-dispatcher-mixin.d.ts +3 -3
  25. package/dist/mixins/sds-event-dispatcher-mixin.d.ts.map +1 -1
  26. package/dist/mixins/sds-event-dispatcher-mixin.js +58 -1
  27. package/dist/mixins/sds-event-dispatcher-mixin.js.map +1 -1
  28. package/dist/mixins/sds-popover-target-mixin.d.ts +8 -0
  29. package/dist/mixins/sds-popover-target-mixin.d.ts.map +1 -0
  30. package/dist/mixins/sds-popover-target-mixin.js +77 -0
  31. package/dist/mixins/sds-popover-target-mixin.js.map +1 -0
  32. package/dist/mixins/types.d.ts +2 -0
  33. package/dist/mixins/types.d.ts.map +1 -0
  34. package/dist/mixins/types.js +2 -0
  35. package/dist/mixins/types.js.map +1 -0
  36. package/dist/react-wrappers/SDSPopoverWrapper.d.ts +3 -0
  37. package/dist/react-wrappers/SDSPopoverWrapper.d.ts.map +1 -0
  38. package/dist/react-wrappers/SDSPopoverWrapper.js +10 -0
  39. package/dist/react-wrappers/SDSPopoverWrapper.js.map +1 -0
  40. package/dist/react-wrappers/SDSProcessStepWrapper.d.ts +3 -0
  41. package/dist/react-wrappers/SDSProcessStepWrapper.d.ts.map +1 -0
  42. package/dist/react-wrappers/SDSProcessStepWrapper.js +10 -0
  43. package/dist/react-wrappers/SDSProcessStepWrapper.js.map +1 -0
  44. package/dist/react-wrappers/SDSProcessWrapper.d.ts +3 -0
  45. package/dist/react-wrappers/SDSProcessWrapper.d.ts.map +1 -0
  46. package/dist/react-wrappers/SDSProcessWrapper.js +10 -0
  47. package/dist/react-wrappers/SDSProcessWrapper.js.map +1 -0
  48. package/dist/react-wrappers/SDSTextFieldWrapper.d.ts +2 -0
  49. package/dist/react-wrappers/SDSTextFieldWrapper.d.ts.map +1 -1
  50. package/dist/react-wrappers/SDSTextFieldWrapper.js +1 -0
  51. package/dist/react-wrappers/SDSTextFieldWrapper.js.map +1 -1
  52. package/dist/react-wrappers/index.d.ts +3 -0
  53. package/dist/react-wrappers/index.d.ts.map +1 -1
  54. package/dist/react-wrappers/index.js +3 -0
  55. package/dist/react-wrappers/index.js.map +1 -1
  56. package/dist/sds-alert/sds-alert.component.d.ts +2 -1
  57. package/dist/sds-alert/sds-alert.component.d.ts.map +1 -1
  58. package/dist/sds-alert/sds-alert.component.js +3 -5
  59. package/dist/sds-alert/sds-alert.component.js.map +1 -1
  60. package/dist/sds-button/sds-button.component.d.ts +5 -4
  61. package/dist/sds-button/sds-button.component.d.ts.map +1 -1
  62. package/dist/sds-button/sds-button.component.js +20 -30
  63. package/dist/sds-button/sds-button.component.js.map +1 -1
  64. package/dist/sds-checkbox/sds-checkbox.d.ts +2 -4
  65. package/dist/sds-checkbox/sds-checkbox.d.ts.map +1 -1
  66. package/dist/sds-checkbox/sds-checkbox.js +5 -16
  67. package/dist/sds-checkbox/sds-checkbox.js.map +1 -1
  68. package/dist/sds-checkbox-group/sds-checkbox-group.d.ts +2 -1
  69. package/dist/sds-checkbox-group/sds-checkbox-group.d.ts.map +1 -1
  70. package/dist/sds-checkbox-group/sds-checkbox-group.js +3 -5
  71. package/dist/sds-checkbox-group/sds-checkbox-group.js.map +1 -1
  72. package/dist/sds-chip/sds-chip.d.ts +14 -12
  73. package/dist/sds-chip/sds-chip.d.ts.map +1 -1
  74. package/dist/sds-chip/sds-chip.js +29 -33
  75. package/dist/sds-chip/sds-chip.js.map +1 -1
  76. package/dist/sds-details/sds-details.d.ts +3 -1
  77. package/dist/sds-details/sds-details.d.ts.map +1 -1
  78. package/dist/sds-details/sds-details.js +3 -6
  79. package/dist/sds-details/sds-details.js.map +1 -1
  80. package/dist/sds-dialog/sds-dialog.d.ts +5 -1
  81. package/dist/sds-dialog/sds-dialog.d.ts.map +1 -1
  82. package/dist/sds-dialog/sds-dialog.js +43 -27
  83. package/dist/sds-dialog/sds-dialog.js.map +1 -1
  84. package/dist/sds-dialog/sds-dialog.styles.d.ts.map +1 -1
  85. package/dist/sds-dialog/sds-dialog.styles.js +3 -1
  86. package/dist/sds-dialog/sds-dialog.styles.js.map +1 -1
  87. package/dist/sds-icon/sds-icon.styles.d.ts.map +1 -1
  88. package/dist/sds-icon/sds-icon.styles.js +2 -1
  89. package/dist/sds-icon/sds-icon.styles.js.map +1 -1
  90. package/dist/sds-notification/sds-notification.d.ts +2 -1
  91. package/dist/sds-notification/sds-notification.d.ts.map +1 -1
  92. package/dist/sds-notification/sds-notification.js +3 -5
  93. package/dist/sds-notification/sds-notification.js.map +1 -1
  94. package/dist/sds-popover/assets/popover-styles.d.ts +3 -0
  95. package/dist/sds-popover/assets/popover-styles.d.ts.map +1 -0
  96. package/dist/sds-popover/assets/popover-styles.js +3 -0
  97. package/dist/sds-popover/assets/popover-styles.js.map +1 -0
  98. package/dist/sds-popover/assets/positioning.js +1 -0
  99. package/dist/sds-popover/sds-popover.d.ts +25 -0
  100. package/dist/sds-popover/sds-popover.d.ts.map +1 -0
  101. package/dist/sds-popover/sds-popover.js +43 -0
  102. package/dist/sds-popover/sds-popover.js.map +1 -0
  103. package/dist/sds-popover/sds-popover.styles.d.ts +2 -0
  104. package/dist/sds-popover/sds-popover.styles.d.ts.map +1 -0
  105. package/dist/sds-popover/sds-popover.styles.js +52 -0
  106. package/dist/sds-popover/sds-popover.styles.js.map +1 -0
  107. package/dist/sds-process/sds-process.d.ts +20 -0
  108. package/dist/sds-process/sds-process.d.ts.map +1 -0
  109. package/dist/sds-process/sds-process.js +29 -0
  110. package/dist/sds-process/sds-process.js.map +1 -0
  111. package/dist/sds-process/sds-process.styles.d.ts +2 -0
  112. package/dist/sds-process/sds-process.styles.d.ts.map +1 -0
  113. package/dist/sds-process/sds-process.styles.js +8 -0
  114. package/dist/sds-process/sds-process.styles.js.map +1 -0
  115. package/dist/sds-process-step/sds-process-step.d.ts +29 -0
  116. package/dist/sds-process-step/sds-process-step.d.ts.map +1 -0
  117. package/dist/sds-process-step/sds-process-step.js +75 -0
  118. package/dist/sds-process-step/sds-process-step.js.map +1 -0
  119. package/dist/sds-process-step/sds-process-step.styles.d.ts +2 -0
  120. package/dist/sds-process-step/sds-process-step.styles.d.ts.map +1 -0
  121. package/dist/sds-process-step/sds-process-step.styles.js +143 -0
  122. package/dist/sds-process-step/sds-process-step.styles.js.map +1 -0
  123. package/dist/sds-radio/sds-radio.d.ts +2 -4
  124. package/dist/sds-radio/sds-radio.d.ts.map +1 -1
  125. package/dist/sds-radio/sds-radio.js +5 -16
  126. package/dist/sds-radio/sds-radio.js.map +1 -1
  127. package/dist/sds-radio-group/sds-radio-group.d.ts +2 -1
  128. package/dist/sds-radio-group/sds-radio-group.d.ts.map +1 -1
  129. package/dist/sds-radio-group/sds-radio-group.js +3 -2
  130. package/dist/sds-radio-group/sds-radio-group.js.map +1 -1
  131. package/dist/sds-select/sds-select.d.ts +2 -4
  132. package/dist/sds-select/sds-select.d.ts.map +1 -1
  133. package/dist/sds-select/sds-select.js +9 -21
  134. package/dist/sds-select/sds-select.js.map +1 -1
  135. package/dist/sds-stepper/sds-stepper.d.ts +1 -1
  136. package/dist/sds-stepper-step/sds-stepper-step.d.ts +1 -1
  137. package/dist/sds-switch/sds-switch.d.ts +2 -1
  138. package/dist/sds-switch/sds-switch.d.ts.map +1 -1
  139. package/dist/sds-switch/sds-switch.js +5 -13
  140. package/dist/sds-switch/sds-switch.js.map +1 -1
  141. package/dist/sds-textarea/sds-textarea.d.ts +3 -4
  142. package/dist/sds-textarea/sds-textarea.d.ts.map +1 -1
  143. package/dist/sds-textarea/sds-textarea.js +15 -17
  144. package/dist/sds-textarea/sds-textarea.js.map +1 -1
  145. package/dist/sds-textfield/sds-textfield.d.ts +3 -4
  146. package/dist/sds-textfield/sds-textfield.d.ts.map +1 -1
  147. package/dist/sds-textfield/sds-textfield.js +28 -28
  148. package/dist/sds-textfield/sds-textfield.js.map +1 -1
  149. package/dist/sds-textfield/sds-textfield.spec.js +3 -3
  150. package/dist/sds-textfield/sds-textfield.spec.js.map +1 -1
  151. package/dist/sheriff-web-components.js +326 -116
  152. package/dist/skill/SKILL.md +172 -0
  153. package/dist/skill/references/components.md +481 -0
  154. package/dist/skill/references/react-wrappers.md +66 -0
  155. package/dist/types.d.ts +1 -0
  156. package/dist/types.d.ts.map +1 -1
  157. package/dist/types.js.map +1 -1
  158. package/package.json +47 -28
  159. package/web-types.json +825 -371
@@ -0,0 +1,143 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ --_sds-process-step-border-width: var(--sds-process-step-border-width, 2px);
5
+ --_sds-process-step-border-color: var(--sds-process-step-border-color, var(--sds-color-action-default, var(--sds-color-main-action-default)));
6
+ --_sds-process-step-marker-sm: var(--sds-process-step-marker-sm, 1rem);
7
+ --_sds-process-step-marker-lg: var(--sds-process-step-marker-lg, 2rem);
8
+ --_sds-process-step-marker-size: var(--_sds-process-step-marker-lg);
9
+ --_sds-process-step-marker-base: var(--sds-process-step-marker-base, 2rem);
10
+ --_sds-process-step-marker-text-color: var(--sds-process-step-marker-text-color, var(--sds-color-action-default, var(--sds-color-main-action-default)));
11
+ --_sds-process-step-marker-background: var(--sds-process-step-marker-background, var(--sds-color-action-contrast-subtle, var(--sds-color-main-action-contrast-subtle)));
12
+ --_sds-process-step-marker-margin-block-start: var(--sds-process-step-marker-margin-block-start, calc((var(--_sds-process-step-marker-lg) - var(--_sds-process-step-marker-sm)) / 2));
13
+ --_sds-process-step-marker-border-radius: var(--sds-process-step-marker-border-radius, var(--sds-radius-full));
14
+ --_sds-process-step-grid-template-rows: var(--sds-process-step-grid-template-rows, [line-1] auto [step-start] var(--_sds-process-step-marker-size) [line-2 step-end] auto);
15
+ --_sds-process-step-grid-template-columns: var(--sds-process-step-grid-template-columns, var(--_sds-process-step-marker-base) auto);
16
+ --_sds-process-step-sub-step-margin-block-start: var(--sds-process-step-sub-step-margin-block-start, calc((var(--_sds-process-step-marker-sm) / 2) * -1));
17
+
18
+ --_sds-process-step-item-grid-template-columns: var(--sds-process-step-item-grid-template-columns, [marker] var(--_sds-process-step-marker-base) [content] auto);
19
+ --_sds-process-step-item-grid-area: var(--sds-process-step-item-grid-area, 2 / 1 / -1 / -1);
20
+
21
+ --_sds-process-step-line-display: var(--sds-process-step-line-display, block);
22
+ --_sds-process-step-line-min-height: var(--sds-process-step-line-min-height, 2rem);
23
+
24
+ --_sds-process-step-heading-color: var(--sds-process-step-heading-color, var(--sds-color-neutral-text-default));
25
+ --_sds-process-step-heading-font-weight: var(--sds-process-step-heading-font-weight, var(--sds-typography-body-sm-strong-desktop-font-weight));
26
+ --_sds-process-step-heading-font-size: var(--sds-process-step-heading-font-size, var(--sds-typography-body-md-desktop-font-size));
27
+ --_sds-process-step-heading-line-height: var(--sds-process-step-heading-line-height, var(--sds-typography-body-md-strong-desktop-line-height));
28
+ --_sds-process-step-heading-padding-block: var(--sds-process-step-heading-padding-block, var(--sds-spacing-3xs));
29
+ --_sds-process-step-heading-margin-block: var(--sds-process-step-heading-margin-block, 0);
30
+
31
+ --_sds-process-step-timestamp-color: var(--sds-process-step-timestamp-color, var(--sds-color-neutral-text-subtle));
32
+ --_sds-process-step-timestamp-font-weight: var(--sds-process-step-timestamp-font-weight, var(--sds-typography-body-sm-desktop-font-weight));
33
+ --_sds-process-step-timestamp-font-size: var(--sds-process-step-timestamp-font-size, var(--sds-typography-body-sm-desktop-font-size));
34
+ --_sds-process-step-timestamp-line-height: var(--sds-process-step-timestamp-line-height, var(--sds-typography-body-sm-desktop-line-height));
35
+ --_sds-process-step-timestamp-padding-block-start: var(--sds-process-step-timestamp-padding-block-start, var(--sds-spacing-zero));
36
+ --_sds-process-step-timestamp-padding-block-end: var(--sds-process-step-timestamp-padding-block-end, var(--sds-spacing-3xs));
37
+
38
+ --_sds-process-step-slot-content-padding-block: var(--sds-process-step-slot-content-padding-block, var(--sds-spacing-zero));
39
+
40
+ --sds-icon-color: var(--_sds-process-step-marker-text-color);
41
+ }
42
+
43
+ .sds-process-step {
44
+ display: grid;
45
+ font-family: var(--sds-typography-font-family);
46
+ grid-template-rows: var(--_sds-process-step-grid-template-rows);
47
+ grid-template-columns: var(--_sds-process-step-grid-template-columns);
48
+ justify-items: flex-start;
49
+ }
50
+
51
+ .sds-process-step--sub-step {
52
+ --_sds-process-step-marker-background: var(--sds-process-step-marker-background, var(--sds-color-action-default, var(--sds-color-main-action-default)));
53
+ --_sds-process-step-marker-size: var(--_sds-process-step-marker-sm);
54
+ --_sds-process-step-grid-template-rows: var(--sds-process-step-grid-template-rows, [line-1] auto [step-start] var(--_sds-process-step-marker-size) [line-2 step-end] auto);
55
+ margin-block-start: var(--_sds-process-step-sub-step-margin-block-start);
56
+
57
+ .sds-process-step__marker {
58
+ margin-block-start: var(--_sds-process-step-marker-margin-block-start);
59
+ }
60
+ }
61
+
62
+ .sds-process-step__item {
63
+ grid-area: var(--_sds-process-step-item-grid-area);
64
+ grid-template-columns: var(--_sds-process-step-item-grid-template-columns);
65
+ gap: var(--sds-spacing-xs);
66
+ padding: var(--_sds-process-step-border-width);
67
+ margin: calc(var(--_sds-process-step-border-width) * -1) calc(var(--_sds-process-step-border-width) * -1) var(--sds-spacing-sm);
68
+ justify-content: flex-start;
69
+ width: 100%;
70
+ display: grid;
71
+ }
72
+
73
+ .sds-process-step__marker {
74
+ width: var(--_sds-process-step-marker-size);
75
+ height: var(--_sds-process-step-marker-size);
76
+ border-radius: var(--_sds-process-step-marker-border-radius);
77
+ border: var(--_sds-process-step-border-width) solid;
78
+ color: var(--_sds-process-step-marker-text-color);
79
+ background-color: var(--_sds-process-step-marker-background);
80
+ border-color: var(--_sds-process-step-border-color);
81
+ font-weight: var(--sds-typography-body-sm-strong-desktop-font-weight);
82
+ grid-column: marker;
83
+ place-self: baseline center;
84
+ place-items: center;
85
+ line-height: 1;
86
+ display: inline-grid;
87
+ }
88
+
89
+ .sds-process-step__content {
90
+ grid-column: content;
91
+ }
92
+
93
+ .sds-process-step__line {
94
+ display: var(--_sds-process-step-line-display);
95
+ border: calc(var(--_sds-process-step-border-width) / 2) solid var(--_sds-process-step-border-color);
96
+ grid-column: 1;
97
+ justify-self: center;
98
+ width: 0;
99
+ min-height: var(--_sds-process-step-line-min-height);
100
+ grid-row: line-2;
101
+ position: relative;
102
+ top: var(--_sds-process-step-border-width);
103
+ }
104
+
105
+ .sds-process-step__heading {
106
+ color: var(--_sds-process-step-heading-color);
107
+ font-weight: var(--_sds-process-step-heading-font-weight);
108
+ font-size: var(--_sds-process-step-heading-font-size);
109
+ line-height: var(--_sds-process-step-heading-line-height);
110
+ padding-block: var(--_sds-process-step-heading-padding-block);
111
+ margin-block: var(--_sds-process-step-heading-margin-block);
112
+ }
113
+
114
+ .sds-process-step__timestamp {
115
+ color: var(--_sds-process-step-timestamp-color);
116
+ font-weight: var(--_sds-process-step-timestamp-font-weight);
117
+ font-size: var(--_sds-process-step-timestamp-font-size);
118
+ line-height: var(--_sds-process-step-timestamp-line-height);
119
+ padding-block-start: var(--_sds-process-step-timestamp-padding-block-start);
120
+ padding-block-end: var(--_sds-process-step-timestamp-padding-block-end);
121
+
122
+ &:first-child {
123
+ --_sds-process-step-timestamp-padding-block-start: var(--sds-process-step-timestamp-padding-block-start, var(--sds-spacing-3xs));
124
+ }
125
+
126
+ &:empty {
127
+ display: none;
128
+ }
129
+ }
130
+
131
+ .sds-process-step__slot-content {
132
+ padding-block: var(--_sds-process-step-slot-content-padding-block);
133
+
134
+ &:first-child {
135
+ --_sds-process-step-slot-content-padding-block: var(--sds-process-step-slot-content-padding-block, var(--sds-spacing-3xs));
136
+ }
137
+ }
138
+
139
+ :host(:last-of-type) {
140
+ --_sds-process-step-line-display: none;
141
+ }
142
+ `;
143
+ //# sourceMappingURL=sds-process-step.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sds-process-step.styles.js","sourceRoot":"","sources":["../../src/sds-process-step/sds-process-step.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4IxB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`\n\t:host {\n\t\t--_sds-process-step-border-width: var(--sds-process-step-border-width, 2px);\n\t\t--_sds-process-step-border-color: var(--sds-process-step-border-color, var(--sds-color-action-default, var(--sds-color-main-action-default)));\n\t\t--_sds-process-step-marker-sm: var(--sds-process-step-marker-sm, 1rem);\n\t\t--_sds-process-step-marker-lg: var(--sds-process-step-marker-lg, 2rem);\n\t\t--_sds-process-step-marker-size: var(--_sds-process-step-marker-lg);\n\t\t--_sds-process-step-marker-base: var(--sds-process-step-marker-base, 2rem);\n\t\t--_sds-process-step-marker-text-color: var(--sds-process-step-marker-text-color, var(--sds-color-action-default, var(--sds-color-main-action-default)));\n\t\t--_sds-process-step-marker-background: var(--sds-process-step-marker-background, var(--sds-color-action-contrast-subtle, var(--sds-color-main-action-contrast-subtle)));\n\t\t--_sds-process-step-marker-margin-block-start: var(--sds-process-step-marker-margin-block-start, calc((var(--_sds-process-step-marker-lg) - var(--_sds-process-step-marker-sm)) / 2));\n\t\t--_sds-process-step-marker-border-radius: var(--sds-process-step-marker-border-radius, var(--sds-radius-full));\n\t\t--_sds-process-step-grid-template-rows: var(--sds-process-step-grid-template-rows, [line-1] auto [step-start] var(--_sds-process-step-marker-size) [line-2 step-end] auto);\n\t\t--_sds-process-step-grid-template-columns: var(--sds-process-step-grid-template-columns, var(--_sds-process-step-marker-base) auto);\n\t\t--_sds-process-step-sub-step-margin-block-start: var(--sds-process-step-sub-step-margin-block-start, calc((var(--_sds-process-step-marker-sm) / 2) * -1));\n\n\t\t--_sds-process-step-item-grid-template-columns: var(--sds-process-step-item-grid-template-columns, [marker] var(--_sds-process-step-marker-base) [content] auto);\n\t\t--_sds-process-step-item-grid-area: var(--sds-process-step-item-grid-area, 2 / 1 / -1 / -1);\n\n\t\t--_sds-process-step-line-display: var(--sds-process-step-line-display, block);\n\t\t--_sds-process-step-line-min-height: var(--sds-process-step-line-min-height, 2rem);\n\n\t\t--_sds-process-step-heading-color: var(--sds-process-step-heading-color, var(--sds-color-neutral-text-default));\n\t\t--_sds-process-step-heading-font-weight: var(--sds-process-step-heading-font-weight, var(--sds-typography-body-sm-strong-desktop-font-weight));\n\t\t--_sds-process-step-heading-font-size: var(--sds-process-step-heading-font-size, var(--sds-typography-body-md-desktop-font-size));\n\t\t--_sds-process-step-heading-line-height: var(--sds-process-step-heading-line-height, var(--sds-typography-body-md-strong-desktop-line-height));\n\t\t--_sds-process-step-heading-padding-block: var(--sds-process-step-heading-padding-block, var(--sds-spacing-3xs));\n\t\t--_sds-process-step-heading-margin-block: var(--sds-process-step-heading-margin-block, 0);\n\n\t\t--_sds-process-step-timestamp-color: var(--sds-process-step-timestamp-color, var(--sds-color-neutral-text-subtle));\n\t\t--_sds-process-step-timestamp-font-weight: var(--sds-process-step-timestamp-font-weight, var(--sds-typography-body-sm-desktop-font-weight));\n\t\t--_sds-process-step-timestamp-font-size: var(--sds-process-step-timestamp-font-size, var(--sds-typography-body-sm-desktop-font-size));\n\t\t--_sds-process-step-timestamp-line-height: var(--sds-process-step-timestamp-line-height, var(--sds-typography-body-sm-desktop-line-height));\n\t\t--_sds-process-step-timestamp-padding-block-start: var(--sds-process-step-timestamp-padding-block-start, var(--sds-spacing-zero));\n\t\t--_sds-process-step-timestamp-padding-block-end: var(--sds-process-step-timestamp-padding-block-end, var(--sds-spacing-3xs));\n\n\t\t--_sds-process-step-slot-content-padding-block: var(--sds-process-step-slot-content-padding-block, var(--sds-spacing-zero));\n\n\t\t--sds-icon-color: var(--_sds-process-step-marker-text-color);\n\t}\n\n\t.sds-process-step {\n\t\tdisplay: grid;\n\t\tfont-family: var(--sds-typography-font-family);\n\t\tgrid-template-rows: var(--_sds-process-step-grid-template-rows);\n\t\tgrid-template-columns: var(--_sds-process-step-grid-template-columns);\n\t\tjustify-items: flex-start;\n\t}\n\n\t.sds-process-step--sub-step {\n\t\t--_sds-process-step-marker-background: var(--sds-process-step-marker-background, var(--sds-color-action-default, var(--sds-color-main-action-default)));\n\t\t--_sds-process-step-marker-size: var(--_sds-process-step-marker-sm);\n\t\t--_sds-process-step-grid-template-rows: var(--sds-process-step-grid-template-rows, [line-1] auto [step-start] var(--_sds-process-step-marker-size) [line-2 step-end] auto);\n\t\tmargin-block-start: var(--_sds-process-step-sub-step-margin-block-start);\n\n\t\t.sds-process-step__marker {\n\t\t\tmargin-block-start: var(--_sds-process-step-marker-margin-block-start);\n\t\t}\n\t}\n\n\t.sds-process-step__item {\n\t\tgrid-area: var(--_sds-process-step-item-grid-area);\n\t\tgrid-template-columns: var(--_sds-process-step-item-grid-template-columns);\n\t\tgap: var(--sds-spacing-xs);\n\t\tpadding: var(--_sds-process-step-border-width);\n\t\tmargin: calc(var(--_sds-process-step-border-width) * -1) calc(var(--_sds-process-step-border-width) * -1) var(--sds-spacing-sm);\n\t\tjustify-content: flex-start;\n\t\twidth: 100%;\n\t\tdisplay: grid;\n\t}\n\n\t.sds-process-step__marker {\n\t\twidth: var(--_sds-process-step-marker-size);\n\t\theight: var(--_sds-process-step-marker-size);\n\t\tborder-radius: var(--_sds-process-step-marker-border-radius);\n\t\tborder: var(--_sds-process-step-border-width) solid;\n\t\tcolor: var(--_sds-process-step-marker-text-color);\n\t\tbackground-color: var(--_sds-process-step-marker-background);\n\t\tborder-color: var(--_sds-process-step-border-color);\n\t\tfont-weight: var(--sds-typography-body-sm-strong-desktop-font-weight);\n\t\tgrid-column: marker;\n\t\tplace-self: baseline center;\n\t\tplace-items: center;\n\t\tline-height: 1;\n\t\tdisplay: inline-grid;\n\t}\n\n\t.sds-process-step__content {\n\t\tgrid-column: content;\n\t}\n\n\t.sds-process-step__line {\n\t\tdisplay: var(--_sds-process-step-line-display);\n\t\tborder: calc(var(--_sds-process-step-border-width) / 2) solid var(--_sds-process-step-border-color);\n\t\tgrid-column: 1;\n\t\tjustify-self: center;\n\t\twidth: 0;\n\t\tmin-height: var(--_sds-process-step-line-min-height);\n\t\tgrid-row: line-2;\n\t\tposition: relative;\n\t\ttop: var(--_sds-process-step-border-width);\n\t}\n\n\t.sds-process-step__heading {\n\t\tcolor: var(--_sds-process-step-heading-color);\n\t\tfont-weight: var(--_sds-process-step-heading-font-weight);\n\t\tfont-size: var(--_sds-process-step-heading-font-size);\n\t\tline-height: var(--_sds-process-step-heading-line-height);\n\t\tpadding-block: var(--_sds-process-step-heading-padding-block);\n\t\tmargin-block: var(--_sds-process-step-heading-margin-block);\n\t}\n\n\t.sds-process-step__timestamp {\n\t\tcolor: var(--_sds-process-step-timestamp-color);\n\t\tfont-weight: var(--_sds-process-step-timestamp-font-weight);\n\t\tfont-size: var(--_sds-process-step-timestamp-font-size);\n\t\tline-height: var(--_sds-process-step-timestamp-line-height);\n\t\tpadding-block-start: var(--_sds-process-step-timestamp-padding-block-start);\n\t\tpadding-block-end: var(--_sds-process-step-timestamp-padding-block-end);\n\n\t\t&:first-child {\n\t\t\t--_sds-process-step-timestamp-padding-block-start: var(--sds-process-step-timestamp-padding-block-start, var(--sds-spacing-3xs));\n\t\t}\n\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.sds-process-step__slot-content {\n\t\tpadding-block: var(--_sds-process-step-slot-content-padding-block);\n\n\t\t&:first-child {\n\t\t\t--_sds-process-step-slot-content-padding-block: var(--sds-process-step-slot-content-padding-block, var(--sds-spacing-3xs));\n\t\t}\n\t}\n\n\t:host(:last-of-type) {\n\t\t--_sds-process-step-line-display: none;\n\t}\n`;\n"]}
@@ -15,7 +15,8 @@ export interface SDSRadioProps {
15
15
  'help-text'?: string;
16
16
  parentRequestDisabled?: boolean;
17
17
  }
18
- export declare class SDSRadio extends LitElement {
18
+ declare const SDSRadio_base: import("../mixins/types").Constructable<import("../mixins/sds-delegate-interaction-mixin").DelegateInteractionMixinInterface> & import("../mixins/types").Constructable<import("../mixins/sds-event-dispatcher-mixin").SDSEventDispatcherMixinInterface> & typeof LitElement;
19
+ export declare class SDSRadio extends SDSRadio_base {
19
20
  static styles: import("lit").CSSResult[];
20
21
  static formAssociated: boolean;
21
22
  readonly internals: ElementInternals;
@@ -67,9 +68,6 @@ export declare class SDSRadio extends LitElement {
67
68
  reportValidity(): boolean;
68
69
  setCustomValidity(message: string): void;
69
70
  formDisabledCallback(disabled: boolean): void;
70
- focus(): void;
71
- blur(): void;
72
- click(): void;
73
71
  render(): import("lit-html").TemplateResult<1>;
74
72
  }
75
73
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"sds-radio.d.ts","sourceRoot":"","sources":["../../src/sds-radio/sds-radio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sds-radio.d.ts","sourceRoot":"","sources":["../../src/sds-radio/sds-radio.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ import { ifDefined } from 'lit/directives/if-defined.js';
10
10
  import { classMap } from 'lit/directives/class-map.js';
11
11
  import { guardedCustomElement } from '../utils/guarded-custom-element';
12
12
  import { styles } from './sds-radio.styles';
13
- let SDSRadio = class SDSRadio extends LitElement {
13
+ import { SDSDelegateInteractionMixin, SDSEventDispatcherMixin } from '../mixins';
14
+ let SDSRadio = class SDSRadio extends SDSDelegateInteractionMixin(SDSEventDispatcherMixin(LitElement)) {
14
15
  get disabled() {
15
16
  return this._disabled;
16
17
  }
@@ -99,15 +100,15 @@ let SDSRadio = class SDSRadio extends LitElement {
99
100
  this._uncheckSiblings();
100
101
  }
101
102
  this._updateGroupValidation();
102
- this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }));
103
+ this.dispatchSheriffEvent('change');
103
104
  };
104
105
  this._handleFocus = (event) => {
105
106
  event.stopImmediatePropagation();
106
- this.dispatchEvent(new CustomEvent('focus', { bubbles: true, composed: true }));
107
+ this.dispatchSheriffEvent('focus');
107
108
  };
108
109
  this._handleBlur = (event) => {
109
110
  event.stopImmediatePropagation();
110
- this.dispatchEvent(new CustomEvent('blur', { bubbles: true, composed: true }));
111
+ this.dispatchSheriffEvent('blur');
111
112
  };
112
113
  this.internals = this.attachInternals();
113
114
  }
@@ -218,18 +219,6 @@ let SDSRadio = class SDSRadio extends LitElement {
218
219
  if (this.control)
219
220
  this.control.disabled = disabled;
220
221
  }
221
- focus() {
222
- if (!this.disabled)
223
- this.shadowRoot?.querySelector('input')?.focus();
224
- }
225
- blur() {
226
- if (!this.disabled)
227
- this.shadowRoot?.querySelector('input')?.blur();
228
- }
229
- click() {
230
- if (!this.disabled && !this.readOnly)
231
- this.shadowRoot?.querySelector('input')?.click();
232
- }
233
222
  render() {
234
223
  const radioClasses = {
235
224
  'sds-radio': true,
@@ -1 +1 @@
1
- {"version":3,"file":"sds-radio.js","sourceRoot":"","sources":["../../src/sds-radio/sds-radio.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyValues, html, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-radio.styles';\nimport { SDS_SIZES } from '../types';\n\ntype RadioSize = Extract<SDS_SIZES, 'lg' | 'md' | 'sm'>;\n\nexport interface SDSRadioProps {\n\tdisabled?: boolean;\n\trequired?: boolean;\n\tlabel?: string;\n\t'hide-label'?: boolean;\n\tname?: string;\n\tvalue?: string;\n\tchecked?: boolean;\n\terror?: boolean;\n\treadonly?: boolean;\n\tsize?: RadioSize;\n\t'help-text'?: string;\n\tparentRequestDisabled?: boolean;\n}\n\n@guardedCustomElement('sds-radio')\nexport class SDSRadio extends LitElement {\n\t// Styling\n\tstatic override styles = [styles];\n\n\tstatic formAssociated = true;\n\tpublic readonly internals: ElementInternals;\n\n\tstatic override shadowRootOptions: ShadowRootInit = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t};\n\n\t@property({ type: Boolean, reflect: true }) required: SDSRadioProps['required'] = false;\n\t@property({ type: String, reflect: true }) label: SDSRadioProps['label'] = '';\n\t@property({ type: Boolean, reflect: true, attribute: 'hide-label' }) hideLabel: SDSRadioProps['hide-label'] = false;\n\t@property({ type: String, reflect: true }) name?: SDSRadioProps['name'];\n\t@property({ type: String }) value: SDSRadioProps['value'] = 'on';\n\t@property({ type: Boolean, reflect: true }) checked: SDSRadioProps['checked'] = false;\n\t@property({ type: Boolean, reflect: true }) error: SDSRadioProps['error'] = false;\n\t@property({ type: Boolean, attribute: 'readonly', reflect: true }) readOnly: SDSRadioProps['readonly'] = false;\n\t@property({ type: String, reflect: true }) size: SDSRadioProps['size'] = 'md';\n\t@property({ type: String, attribute: 'help-text' }) helpText?: SDSRadioProps['help-text'];\n\t@property({ type: Boolean, reflect: true })\n\n\t/**\n\t * disabled:\n\t * - If set directly (prop/attr), this radio becomes \"self-controlled\"\n\t * and ignores parentRequestDisabled.\n\t * - If not self-controlled, this follows parentRequestDisabled (group/form).\n\t */\n\tget disabled(): SDSRadioProps['disabled'] {\n\t\treturn this._disabled;\n\t}\n\tset disabled(value: SDSRadioProps['disabled']) {\n\t\tconst newVal = value ?? false;\n\t\tconst oldVal = this._disabled;\n\n\t\tif (oldVal === newVal) return;\n\n\t\tthis._disabled = newVal;\n\t\tthis.requestUpdate('disabled', oldVal);\n\n\t\tif (!this._settingDisabledFromParent) {\n\t\t\tthis._disabledIsAuthorControlled = newVal;\n\t\t}\n\t}\n\n\t/**\n\t * parentRequestDisabled:\n\t * - Set by SDSRadioGroup to request disabled/enabled.\n\t * - Only applied if SDSRadio is NOT self-controlled.\n\t */\n\t@property({ type: Boolean, attribute: false })\n\tget parentRequestDisabled(): SDSRadioProps['parentRequestDisabled'] {\n\t\treturn this._parentRequestDisabled;\n\t}\n\tset parentRequestDisabled(value: SDSRadioProps['parentRequestDisabled']) {\n\t\tconst newVal = value ?? false;\n\t\tconst oldVal = this._parentRequestDisabled;\n\n\t\tif (oldVal === newVal) return;\n\n\t\tthis._parentRequestDisabled = newVal;\n\t\tthis.requestUpdate('parentRequestDisabled', oldVal);\n\n\t\tif (this._disabledIsAuthorControlled) return;\n\n\t\tthis._settingDisabledFromParent = true;\n\t\tthis.disabled = newVal;\n\t\tthis._settingDisabledFromParent = false;\n\t}\n\n\t@query('#control') control!: HTMLInputElement;\n\n\tprivate _disabled: SDSRadioProps['disabled'] = false;\n\tprivate _disabledIsAuthorControlled: boolean = false;\n\tprivate _settingDisabledFromParent: boolean = false;\n\tprivate _parentRequestDisabled: SDSRadioProps['parentRequestDisabled'] = false;\n\tprivate _initialChecked: boolean = false;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.internals = this.attachInternals();\n\t}\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.internals.role = 'radio';\n\t\tif (!this._initialChecked) {\n\t\t\tthis._initialChecked = this.checked ?? false;\n\t\t}\n\t\tthis.addEventListener('keydown', this._handleKeydown);\n\t}\n\n\toverride disconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tthis.removeEventListener('keydown', this._handleKeydown);\n\t}\n\n\toverride firstUpdated(_changedProperties: PropertyValues): void {\n\t\tsuper.firstUpdated(_changedProperties);\n\t\tthis._updateGroupValidation();\n\t}\n\n\toverride updated(changedProperties: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProperties);\n\n\t\tif (changedProperties.has('checked')) {\n\t\t\tif (this.checked) {\n\t\t\t\tthis._uncheckSiblings();\n\t\t\t\tthis.internals.setFormValue(this.value ?? null);\n\t\t\t} else {\n\t\t\t\tthis.internals.setFormValue(null);\n\t\t\t}\n\t\t\tthis._updateGroupValidation();\n\t\t}\n\n\t\tif (changedProperties.has('required') && this.control) {\n\t\t\tthis.control.required = this.required ?? false;\n\t\t}\n\n\t\tif (!this._disabledIsAuthorControlled && this.disabled !== this._parentRequestDisabled) {\n\t\t\tthis._settingDisabledFromParent = true;\n\t\t\tthis.disabled = this._parentRequestDisabled ?? false;\n\t\t\tthis._settingDisabledFromParent = false;\n\t\t}\n\t}\n\n\tprivate _getGroupRadios(): SDSRadio[] {\n\t\tif (!this.name) return [this];\n\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\tconst radioGroup = Array.from(root.querySelectorAll<SDSRadio>(`sds-radio[name=\"${this.name}\"]`));\n\t\treturn radioGroup;\n\t}\n\n\tprivate _updateGroupValidation() {\n\t\tconst group: Array<SDSRadio> = this._getGroupRadios();\n\t\tconst isAnyChecked = group.some((radio) => radio.checked);\n\t\tconst isAnyRequired = group.some((radio) => radio.required);\n\t\tgroup.forEach((radio) => {\n\t\t\tif (!radio.control) return;\n\t\t\tif (isAnyRequired) {\n\t\t\t\tradio.internals.setValidity(isAnyChecked ? {} : { valueMissing: true }, isAnyChecked ? '' : radio.control.validationMessage, radio.control);\n\t\t\t} else {\n\t\t\t\tradio.internals.setValidity({});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate readonly _handleKeydown = (event: KeyboardEvent) => {\n\t\tif (!this.name || this.disabled || this.readOnly) return;\n\n\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\tconst radios = Array.from(root.querySelectorAll<SDSRadio>(`sds-radio[name=\"${this.name}\"]`));\n\t\tconst currentIndex = radios.indexOf(this);\n\n\t\tif (currentIndex === -1) return;\n\n\t\tlet targetIndex: number | null = null;\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowUp':\n\t\t\tcase 'ArrowLeft':\n\t\t\t\ttargetIndex = currentIndex > 0 ? currentIndex - 1 : radios.length - 1;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowRight':\n\t\t\t\ttargetIndex = currentIndex < radios.length - 1 ? currentIndex + 1 : 0;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\tconst targetRadio = radios[targetIndex];\n\t\ttargetRadio?.focus();\n\t\ttargetRadio?.click();\n\t\tevent.preventDefault();\n\t};\n\n\tformResetCallback() {\n\t\tthis.checked = this._initialChecked;\n\t\tthis.control.checked = this._initialChecked;\n\t\tthis.internals.setFormValue(this.checked ? this.value ?? 'on' : null);\n\t\tthis._updateGroupValidation();\n\t}\n\n\tprivate _uncheckSiblings() {\n\t\tif (!this.name) return;\n\t\tconst radios: Array<SDSRadio> = this._getGroupRadios();\n\n\t\tfor (const radio of radios) {\n\t\t\tif (radio !== this && radio.checked) {\n\t\t\t\tradio.checked = false;\n\t\t\t\tradio.internals.setFormValue(null);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate readonly _handleChange = (event: Event) => {\n\t\tif (this.disabled || this.readOnly) {\n\t\t\t(event.target as HTMLInputElement).checked = this.checked ?? false;\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst elem = event.target as HTMLInputElement;\n\t\tthis.checked = elem.checked;\n\t\tif (this.checked) {\n\t\t\tthis._uncheckSiblings();\n\t\t}\n\t\tthis._updateGroupValidation();\n\t\tthis.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }));\n\t};\n\n\tprivate readonly _handleFocus = (event: Event) => {\n\t\tevent.stopImmediatePropagation();\n\t\tthis.dispatchEvent(new CustomEvent('focus', { bubbles: true, composed: true }));\n\t};\n\n\tprivate readonly _handleBlur = (event: Event) => {\n\t\tevent.stopImmediatePropagation();\n\t\tthis.dispatchEvent(new CustomEvent('blur', { bubbles: true, composed: true }));\n\t};\n\n\tget form() {\n\t\treturn this.internals.form;\n\t}\n\n\tget type(): string {\n\t\treturn 'radio';\n\t}\n\n\tget validity() {\n\t\treturn this.internals.validity;\n\t}\n\n\tget validationMessage() {\n\t\treturn this.internals.validationMessage;\n\t}\n\n\tget willValidate() {\n\t\treturn this.internals.willValidate;\n\t}\n\n\tcheckValidity(): boolean {\n\t\treturn this.internals.checkValidity();\n\t}\n\n\treportValidity(): boolean {\n\t\treturn this.internals.reportValidity();\n\t}\n\n\tsetCustomValidity(message: string): void {\n\t\tthis.internals.setValidity({ customError: !!message }, message);\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis._settingDisabledFromParent = true;\n\t\tthis.disabled = disabled;\n\t\tthis._settingDisabledFromParent = false;\n\n\t\tif (this.control) this.control.disabled = disabled;\n\t}\n\n\toverride focus(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('input')?.focus();\n\t}\n\n\toverride blur(): void {\n\t\tif (!this.disabled) this.shadowRoot?.querySelector('input')?.blur();\n\t}\n\n\toverride click(): void {\n\t\tif (!this.disabled && !this.readOnly) this.shadowRoot?.querySelector('input')?.click();\n\t}\n\n\toverride render() {\n\t\tconst radioClasses = {\n\t\t\t'sds-radio': true,\n\t\t\t'sds-radio--error': Boolean(this.error),\n\t\t};\n\n\t\tconst inputClasses = {\n\t\t\t'sds-radio__input': true,\n\t\t\t'sds-radio__input--error': Boolean(this.error),\n\t\t};\n\n\t\treturn html`\n\t\t\t<div class=\"${classMap(radioClasses)}\">\n\t\t\t\t<input\n\t\t\t\t\tid=\"control\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"${ifDefined(this.name)}\"\n\t\t\t\t\tvalue=\"${ifDefined(this.value)}\"\n\t\t\t\t\t?checked=\"${this.checked ?? false}\"\n\t\t\t\t\t.checked=\"${this.checked ?? false}\"\n\t\t\t\t\t?disabled=\"${this.disabled ?? false}\"\n\t\t\t\t\t.disabled=\"${this.disabled ?? false}\"\n\t\t\t\t\t?required=\"${this.required}\"\n\t\t\t\t\t?readonly=\"${this.readOnly}\"\n\t\t\t\t\t@change=\"${this._handleChange}\"\n\t\t\t\t\t@focus=\"${this._handleFocus}\"\n\t\t\t\t\t@blur=\"${this._handleBlur}\"\n\t\t\t\t\tclass=\"${classMap(inputClasses)}\"\n\t\t\t\t/>\n\t\t\t\t${this.label ? html`<label class=\"sds-radio__label\" for=\"control\">${this.label}</label>` : nothing}\n\t\t\t\t${this.helpText ? html`<span class=\"sds-radio__help-text\">${this.helpText}</span>` : nothing}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-radio': SDSRadio;\n\t}\n}\n"]}
1
+ {"version":3,"file":"sds-radio.js","sourceRoot":"","sources":["../../src/sds-radio/sds-radio.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, PropertyValues, html, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-radio.styles';\nimport { SDS_SIZES } from '../types';\nimport { SDSDelegateInteractionMixin, SDSEventDispatcherMixin } from '../mixins';\n\ntype RadioSize = Extract<SDS_SIZES, 'lg' | 'md' | 'sm'>;\n\nexport interface SDSRadioProps {\n\tdisabled?: boolean;\n\trequired?: boolean;\n\tlabel?: string;\n\t'hide-label'?: boolean;\n\tname?: string;\n\tvalue?: string;\n\tchecked?: boolean;\n\terror?: boolean;\n\treadonly?: boolean;\n\tsize?: RadioSize;\n\t'help-text'?: string;\n\tparentRequestDisabled?: boolean;\n}\n\n@guardedCustomElement('sds-radio')\nexport class SDSRadio extends SDSDelegateInteractionMixin(SDSEventDispatcherMixin(LitElement)) {\n\t// Styling\n\tstatic override styles = [styles];\n\n\tstatic formAssociated = true;\n\tpublic readonly internals: ElementInternals;\n\n\tstatic override shadowRootOptions: ShadowRootInit = {\n\t\t...LitElement.shadowRootOptions,\n\t\tdelegatesFocus: true,\n\t};\n\n\t@property({ type: Boolean, reflect: true }) required: SDSRadioProps['required'] = false;\n\t@property({ type: String, reflect: true }) label: SDSRadioProps['label'] = '';\n\t@property({ type: Boolean, reflect: true, attribute: 'hide-label' }) hideLabel: SDSRadioProps['hide-label'] = false;\n\t@property({ type: String, reflect: true }) name?: SDSRadioProps['name'];\n\t@property({ type: String }) value: SDSRadioProps['value'] = 'on';\n\t@property({ type: Boolean, reflect: true }) checked: SDSRadioProps['checked'] = false;\n\t@property({ type: Boolean, reflect: true }) error: SDSRadioProps['error'] = false;\n\t@property({ type: Boolean, attribute: 'readonly', reflect: true }) readOnly: SDSRadioProps['readonly'] = false;\n\t@property({ type: String, reflect: true }) size: SDSRadioProps['size'] = 'md';\n\t@property({ type: String, attribute: 'help-text' }) helpText?: SDSRadioProps['help-text'];\n\t@property({ type: Boolean, reflect: true })\n\n\t/**\n\t * disabled:\n\t * - If set directly (prop/attr), this radio becomes \"self-controlled\"\n\t * and ignores parentRequestDisabled.\n\t * - If not self-controlled, this follows parentRequestDisabled (group/form).\n\t */\n\tget disabled(): SDSRadioProps['disabled'] {\n\t\treturn this._disabled;\n\t}\n\tset disabled(value: SDSRadioProps['disabled']) {\n\t\tconst newVal = value ?? false;\n\t\tconst oldVal = this._disabled;\n\n\t\tif (oldVal === newVal) return;\n\n\t\tthis._disabled = newVal;\n\t\tthis.requestUpdate('disabled', oldVal);\n\n\t\tif (!this._settingDisabledFromParent) {\n\t\t\tthis._disabledIsAuthorControlled = newVal;\n\t\t}\n\t}\n\n\t/**\n\t * parentRequestDisabled:\n\t * - Set by SDSRadioGroup to request disabled/enabled.\n\t * - Only applied if SDSRadio is NOT self-controlled.\n\t */\n\t@property({ type: Boolean, attribute: false })\n\tget parentRequestDisabled(): SDSRadioProps['parentRequestDisabled'] {\n\t\treturn this._parentRequestDisabled;\n\t}\n\tset parentRequestDisabled(value: SDSRadioProps['parentRequestDisabled']) {\n\t\tconst newVal = value ?? false;\n\t\tconst oldVal = this._parentRequestDisabled;\n\n\t\tif (oldVal === newVal) return;\n\n\t\tthis._parentRequestDisabled = newVal;\n\t\tthis.requestUpdate('parentRequestDisabled', oldVal);\n\n\t\tif (this._disabledIsAuthorControlled) return;\n\n\t\tthis._settingDisabledFromParent = true;\n\t\tthis.disabled = newVal;\n\t\tthis._settingDisabledFromParent = false;\n\t}\n\n\t@query('#control') control!: HTMLInputElement;\n\n\tprivate _disabled: SDSRadioProps['disabled'] = false;\n\tprivate _disabledIsAuthorControlled: boolean = false;\n\tprivate _settingDisabledFromParent: boolean = false;\n\tprivate _parentRequestDisabled: SDSRadioProps['parentRequestDisabled'] = false;\n\tprivate _initialChecked: boolean = false;\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.internals = this.attachInternals();\n\t}\n\n\toverride connectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.internals.role = 'radio';\n\t\tif (!this._initialChecked) {\n\t\t\tthis._initialChecked = this.checked ?? false;\n\t\t}\n\t\tthis.addEventListener('keydown', this._handleKeydown);\n\t}\n\n\toverride disconnectedCallback() {\n\t\tsuper.disconnectedCallback();\n\t\tthis.removeEventListener('keydown', this._handleKeydown);\n\t}\n\n\toverride firstUpdated(_changedProperties: PropertyValues): void {\n\t\tsuper.firstUpdated(_changedProperties);\n\t\tthis._updateGroupValidation();\n\t}\n\n\toverride updated(changedProperties: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProperties);\n\n\t\tif (changedProperties.has('checked')) {\n\t\t\tif (this.checked) {\n\t\t\t\tthis._uncheckSiblings();\n\t\t\t\tthis.internals.setFormValue(this.value ?? null);\n\t\t\t} else {\n\t\t\t\tthis.internals.setFormValue(null);\n\t\t\t}\n\t\t\tthis._updateGroupValidation();\n\t\t}\n\n\t\tif (changedProperties.has('required') && this.control) {\n\t\t\tthis.control.required = this.required ?? false;\n\t\t}\n\n\t\tif (!this._disabledIsAuthorControlled && this.disabled !== this._parentRequestDisabled) {\n\t\t\tthis._settingDisabledFromParent = true;\n\t\t\tthis.disabled = this._parentRequestDisabled ?? false;\n\t\t\tthis._settingDisabledFromParent = false;\n\t\t}\n\t}\n\n\tprivate _getGroupRadios(): SDSRadio[] {\n\t\tif (!this.name) return [this];\n\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\tconst radioGroup = Array.from(root.querySelectorAll<SDSRadio>(`sds-radio[name=\"${this.name}\"]`));\n\t\treturn radioGroup;\n\t}\n\n\tprivate _updateGroupValidation() {\n\t\tconst group: Array<SDSRadio> = this._getGroupRadios();\n\t\tconst isAnyChecked = group.some((radio) => radio.checked);\n\t\tconst isAnyRequired = group.some((radio) => radio.required);\n\t\tgroup.forEach((radio) => {\n\t\t\tif (!radio.control) return;\n\t\t\tif (isAnyRequired) {\n\t\t\t\tradio.internals.setValidity(isAnyChecked ? {} : { valueMissing: true }, isAnyChecked ? '' : radio.control.validationMessage, radio.control);\n\t\t\t} else {\n\t\t\t\tradio.internals.setValidity({});\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate readonly _handleKeydown = (event: KeyboardEvent) => {\n\t\tif (!this.name || this.disabled || this.readOnly) return;\n\n\t\tconst root = this.getRootNode() as Document | ShadowRoot;\n\t\tconst radios = Array.from(root.querySelectorAll<SDSRadio>(`sds-radio[name=\"${this.name}\"]`));\n\t\tconst currentIndex = radios.indexOf(this);\n\n\t\tif (currentIndex === -1) return;\n\n\t\tlet targetIndex: number | null = null;\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowUp':\n\t\t\tcase 'ArrowLeft':\n\t\t\t\ttargetIndex = currentIndex > 0 ? currentIndex - 1 : radios.length - 1;\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowRight':\n\t\t\t\ttargetIndex = currentIndex < radios.length - 1 ? currentIndex + 1 : 0;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn;\n\t\t}\n\n\t\tconst targetRadio = radios[targetIndex];\n\t\ttargetRadio?.focus();\n\t\ttargetRadio?.click();\n\t\tevent.preventDefault();\n\t};\n\n\tformResetCallback() {\n\t\tthis.checked = this._initialChecked;\n\t\tthis.control.checked = this._initialChecked;\n\t\tthis.internals.setFormValue(this.checked ? this.value ?? 'on' : null);\n\t\tthis._updateGroupValidation();\n\t}\n\n\tprivate _uncheckSiblings() {\n\t\tif (!this.name) return;\n\t\tconst radios: Array<SDSRadio> = this._getGroupRadios();\n\n\t\tfor (const radio of radios) {\n\t\t\tif (radio !== this && radio.checked) {\n\t\t\t\tradio.checked = false;\n\t\t\t\tradio.internals.setFormValue(null);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate readonly _handleChange = (event: Event) => {\n\t\tif (this.disabled || this.readOnly) {\n\t\t\t(event.target as HTMLInputElement).checked = this.checked ?? false;\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst elem = event.target as HTMLInputElement;\n\t\tthis.checked = elem.checked;\n\t\tif (this.checked) {\n\t\t\tthis._uncheckSiblings();\n\t\t}\n\t\tthis._updateGroupValidation();\n\t\tthis.dispatchSheriffEvent('change');\n\t};\n\n\tprivate readonly _handleFocus = (event: Event) => {\n\t\tevent.stopImmediatePropagation();\n\t\tthis.dispatchSheriffEvent('focus');\n\t};\n\n\tprivate readonly _handleBlur = (event: Event) => {\n\t\tevent.stopImmediatePropagation();\n\t\tthis.dispatchSheriffEvent('blur');\n\t};\n\n\tget form() {\n\t\treturn this.internals.form;\n\t}\n\n\tget type(): string {\n\t\treturn 'radio';\n\t}\n\n\tget validity() {\n\t\treturn this.internals.validity;\n\t}\n\n\tget validationMessage() {\n\t\treturn this.internals.validationMessage;\n\t}\n\n\tget willValidate() {\n\t\treturn this.internals.willValidate;\n\t}\n\n\tcheckValidity(): boolean {\n\t\treturn this.internals.checkValidity();\n\t}\n\n\treportValidity(): boolean {\n\t\treturn this.internals.reportValidity();\n\t}\n\n\tsetCustomValidity(message: string): void {\n\t\tthis.internals.setValidity({ customError: !!message }, message);\n\t}\n\n\tformDisabledCallback(disabled: boolean): void {\n\t\tthis._settingDisabledFromParent = true;\n\t\tthis.disabled = disabled;\n\t\tthis._settingDisabledFromParent = false;\n\n\t\tif (this.control) this.control.disabled = disabled;\n\t}\n\n\toverride render() {\n\t\tconst radioClasses = {\n\t\t\t'sds-radio': true,\n\t\t\t'sds-radio--error': Boolean(this.error),\n\t\t};\n\n\t\tconst inputClasses = {\n\t\t\t'sds-radio__input': true,\n\t\t\t'sds-radio__input--error': Boolean(this.error),\n\t\t};\n\n\t\treturn html`\n\t\t\t<div class=\"${classMap(radioClasses)}\">\n\t\t\t\t<input\n\t\t\t\t\tid=\"control\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"${ifDefined(this.name)}\"\n\t\t\t\t\tvalue=\"${ifDefined(this.value)}\"\n\t\t\t\t\t?checked=\"${this.checked ?? false}\"\n\t\t\t\t\t.checked=\"${this.checked ?? false}\"\n\t\t\t\t\t?disabled=\"${this.disabled ?? false}\"\n\t\t\t\t\t.disabled=\"${this.disabled ?? false}\"\n\t\t\t\t\t?required=\"${this.required}\"\n\t\t\t\t\t?readonly=\"${this.readOnly}\"\n\t\t\t\t\t@change=\"${this._handleChange}\"\n\t\t\t\t\t@focus=\"${this._handleFocus}\"\n\t\t\t\t\t@blur=\"${this._handleBlur}\"\n\t\t\t\t\tclass=\"${classMap(inputClasses)}\"\n\t\t\t\t/>\n\t\t\t\t${this.label ? html`<label class=\"sds-radio__label\" for=\"control\">${this.label}</label>` : nothing}\n\t\t\t\t${this.helpText ? html`<span class=\"sds-radio__help-text\">${this.helpText}</span>` : nothing}\n\t\t\t</div>\n\t\t`;\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-radio': SDSRadio;\n\t}\n}\n"]}
@@ -18,7 +18,8 @@ export interface SDSRadioGroupProps {
18
18
  size?: RadioGroupSize;
19
19
  required?: boolean;
20
20
  }
21
- export declare class SDSRadioGroup extends LitElement {
21
+ declare const SDSRadioGroup_base: import("../mixins/types").Constructable<import("../mixins/sds-event-dispatcher-mixin").SDSEventDispatcherMixinInterface> & typeof LitElement;
22
+ export declare class SDSRadioGroup extends SDSRadioGroup_base {
22
23
  static styles: import("lit").CSSResult[];
23
24
  legend?: SDSRadioGroupProps['legend'];
24
25
  helpText?: SDSRadioGroupProps['help-text'];
@@ -1 +1 @@
1
- {"version":3,"file":"sds-radio-group.d.ts","sourceRoot":"","sources":["../../src/sds-radio-group/sds-radio-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAKhD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAI7D,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAGhC;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBACa,aAAc,SAAQ,UAAU;IAC5C,OAAgB,MAAM,4BAAY;IAEN,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACd,QAAQ,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACxC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAS;IACxF,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAY;IACvB,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAS;IACjD,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAS;IAClD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAQ;IAE1E,OAAO,CAAC,cAAc,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAmB;IAEtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAOjC;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IA0BhB,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAS5D,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAevF,MAAM;IA+Bf,IAAI,KAAK,IAAI,EAAE,CAEd;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,iBAAiB,EAAE,aAAa,CAAC;KACjC;CACD"}
1
+ {"version":3,"file":"sds-radio-group.d.ts","sourceRoot":"","sources":["../../src/sds-radio-group/sds-radio-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAKhD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,KAAK,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAI7D,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAGhC;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;;AAED,qBACa,aAAc,SAAQ,kBAAmC;IACrE,OAAgB,MAAM,4BAAY;IAEN,MAAM,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACd,QAAQ,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACxC,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAS;IACxF,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAY;IACvB,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAS;IACjD,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAS;IAClD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAQ;IAE1E,OAAO,CAAC,cAAc,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAmB;IAEtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAOjC;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IA0BhB,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC;IAS5D,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAevF,MAAM;IA+Bf,IAAI,KAAK,IAAI,EAAE,CAEd;CACD;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,iBAAiB,EAAE,aAAa,CAAC;KACjC;CACD"}
@@ -9,11 +9,12 @@ import { property, state, query } from 'lit/decorators.js';
9
9
  import { classMap } from 'lit/directives/class-map.js';
10
10
  import { guardedCustomElement } from '../utils/guarded-custom-element';
11
11
  import { styles } from './sds-radio-group.styles';
12
+ import { SDSEventDispatcherMixin } from '../mixins/sds-event-dispatcher-mixin';
12
13
  const updatableRadioProps = ['disabled', 'errorMessage', 'readOnly', 'required', 'size'];
13
14
  import '../sds-radio/sds-radio';
14
15
  import '../sds-icon/sds-icon';
15
16
  import '../sds-alert/sds-alert';
16
- let SDSRadioGroup = class SDSRadioGroup extends LitElement {
17
+ let SDSRadioGroup = class SDSRadioGroup extends SDSEventDispatcherMixin(LitElement) {
17
18
  constructor() {
18
19
  super(...arguments);
19
20
  this.readOnly = false;
@@ -26,7 +27,7 @@ let SDSRadioGroup = class SDSRadioGroup extends LitElement {
26
27
  const target = event.composedPath().find((el) => el instanceof HTMLElement && el.tagName === 'SDS-RADIO');
27
28
  if (target) {
28
29
  this._selectedValue = target.getAttribute('value') || null;
29
- this.dispatchEvent(new CustomEvent('sds-update', { bubbles: true, composed: true }));
30
+ this.dispatchSheriffEvent('sds-update');
30
31
  }
31
32
  };
32
33
  this._handleSlotChange = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"sds-radio-group.js","sourceRoot":"","sources":["../../src/sds-radio-group/sds-radio-group.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-radio-group.styles';\nimport { SDS_SIZES } from '../types';\n\ntype RadioGroupSize = Extract<SDS_SIZES, 'lg' | 'md' | 'sm'>;\nconst updatableRadioProps = ['disabled', 'errorMessage', 'readOnly', 'required', 'size'] as const;\ntype UpdatableRadioProp = (typeof updatableRadioProps)[number];\n\nimport '../sds-radio/sds-radio';\nimport '../sds-icon/sds-icon';\nimport '../sds-alert/sds-alert';\nimport { SDSRadio } from '../sds-radio/sds-radio';\n\n/**\n * TODO: Implement keyboard navigation behavior according to\n * https://www.w3.org/WAI/ARIA/apg/patterns/radio/\n */\n\nexport interface SDSRadioGroupProps {\n\tlegend?: string;\n\t'help-text'?: string;\n\t'error-message'?: string;\n\treadonly?: boolean;\n\tdirection?: 'column' | 'row';\n\tdisabled?: boolean;\n\tsize?: RadioGroupSize;\n\trequired?: boolean;\n}\n\n@guardedCustomElement('sds-radio-group')\nexport class SDSRadioGroup extends LitElement {\n\tstatic override styles = [styles];\n\n\t@property({ type: String }) legend?: SDSRadioGroupProps['legend'];\n\t@property({ type: String, attribute: 'help-text' }) helpText?: SDSRadioGroupProps['help-text'];\n\t@property({ type: String, attribute: 'error-message' }) errorMessage?: SDSRadioGroupProps['error-message'];\n\t@property({ type: Boolean, attribute: 'readonly', reflect: true }) readOnly: SDSRadioGroupProps['readonly'] = false;\n\t@property({ type: String }) direction: 'column' | 'row' = 'column';\n\t@property({ type: Boolean, reflect: true }) disabled: SDSRadioGroupProps['disabled'] = false;\n\t@property({ type: Boolean, reflect: true }) required: SDSRadioGroupProps['required'] = false;\n\t@property({ type: String, reflect: true }) size: SDSRadioGroupProps['size'] = 'md';\n\n\t@state() private _selectedValue: string | null = null;\n\t@query('slot') private _slotElement!: HTMLSlotElement;\n\n\tprivate readonly _handleRadioChange = (event: Event): void => {\n\t\tconst target = event.composedPath().find((el) => el instanceof HTMLElement && el.tagName === 'SDS-RADIO') as HTMLElement & { value: string };\n\n\t\tif (target) {\n\t\t\tthis._selectedValue = target.getAttribute('value') || null;\n\t\t\tthis.dispatchEvent(new CustomEvent('sds-update', { bubbles: true, composed: true }));\n\t\t}\n\t};\n\n\tprivate _handleSlotChange = () => {\n\t\tthis._updateChildProps([...updatableRadioProps]);\n\t};\n\n\tprivate _getChildRadios(): SDSRadio[] {\n\t\treturn this._slotElement?.assignedElements({ flatten: true }).filter((element): element is SDSRadio => element.tagName === 'SDS-RADIO') ?? [];\n\t}\n\n\tprivate _updateChildProps(changedAttributes: Array<UpdatableRadioProp>) {\n\t\tconst radios = this._getChildRadios();\n\n\t\tfor (const childRadio of radios) {\n\t\t\tfor (const attribute of changedAttributes) {\n\t\t\t\tswitch (attribute) {\n\t\t\t\t\tcase 'readOnly':\n\t\t\t\t\t\tchildRadio.readOnly = this.readOnly;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'disabled':\n\t\t\t\t\t\tchildRadio.parentRequestDisabled = this.disabled;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'errorMessage':\n\t\t\t\t\t\tchildRadio.error = Boolean(this.errorMessage);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'required':\n\t\t\t\t\t\tchildRadio.required = this.required;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'size':\n\t\t\t\t\t\tchildRadio.size = this.size;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\toverride updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps);\n\n\t\tconst changedKeys = Array.from(changedProps.keys());\n\t\tif (changedKeys.includes('errorMessage') || changedKeys.includes('error-message')) {\n\t\t\tthis._updateChildProps(['errorMessage']);\n\t\t}\n\t}\n\n\toverride attributeChangedCallback(name: string, _old: string | null, value: string | null): void {\n\t\tsuper.attributeChangedCallback(name, _old, value);\n\n\t\t// DOM attribute for readonly has different casing than our types\n\t\tif (name === 'readonly') {\n\t\t\tthis._updateChildProps(['readOnly']);\n\t\t\treturn;\n\t\t}\n\n\t\tconst property = name as UpdatableRadioProp;\n\t\tif (updatableRadioProps.includes(property)) {\n\t\t\tthis._updateChildProps([property]);\n\t\t}\n\t}\n\n\toverride render() {\n\t\tconst radioGroupClasses = {\n\t\t\t'sds-radio-group': true,\n\t\t\t'sds-radio-group--readonly': this.readOnly ?? false,\n\t\t\t'sds-radio-group--disabled': this.disabled ?? false,\n\t\t};\n\n\t\tconst radioClasses = {\n\t\t\t'sds-radio-group__radios': true,\n\t\t\t'sds-radio-group--column': this.direction === 'column',\n\t\t\t'sds-radio-group--row': this.direction === 'row',\n\t\t};\n\n\t\treturn html`\n\t\t\t<fieldset class=\"${classMap(radioGroupClasses)}\">\n\t\t\t\t${this.legend\n\t\t\t\t\t? html`<legend class=\"sds-radio-group__legend\">${this.readOnly ? html`<sds-icon name=\"lock-material-filled\" size=\"md\"></sds-icon>` : nothing}${this.legend}</legend>`\n\t\t\t\t\t: nothing}\n\t\t\t\t${this.helpText ? html`<p class=\"sds-radio-group__help-text\">${this.helpText}</p>` : nothing}\n\t\t\t\t<div class=\"${classMap(radioClasses)}\" @change=${this._handleRadioChange}>\n\t\t\t\t\t<slot @slotchange=${this._handleSlotChange}></slot>\n\t\t\t\t</div>\n\t\t\t\t${this.errorMessage\n\t\t\t\t\t? html`<sds-alert variant=\"secondary\" data-palette=\"danger\">\n\t\t\t\t\t\t\t<p slot=\"message\">${this.errorMessage}</p>\n\t\t\t\t\t\t</sds-alert>`\n\t\t\t\t\t: nothing}\n\t\t\t</fieldset>\n\t\t`;\n\t}\n\n\tget value(): {} {\n\t\treturn { selectedValue: this._selectedValue };\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-radio-group': SDSRadioGroup;\n\t}\n}\n"]}
1
+ {"version":3,"file":"sds-radio-group.js","sourceRoot":"","sources":["../../src/sds-radio-group/sds-radio-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAU,CAAC;AAGlG,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAoBzB,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,uBAAuB,CAAC,UAAU,CAAC;IAA/D;;QAM6D,aAAQ,GAAmC,KAAK,CAAC;QACxF,cAAS,GAAqB,QAAQ,CAAC;QACvB,aAAQ,GAAmC,KAAK,CAAC;QACjD,aAAQ,GAAmC,KAAK,CAAC;QAClD,SAAI,GAA+B,IAAI,CAAC;QAElE,mBAAc,GAAkB,IAAI,CAAC;QAGrC,uBAAkB,GAAG,CAAC,KAAY,EAAQ,EAAE;YAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY,WAAW,IAAI,EAAE,CAAC,OAAO,KAAK,WAAW,CAAoC,CAAC;YAE7I,IAAI,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;gBAC3D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACzC,CAAC;QACF,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IA0FH,CAAC;IAxFQ,eAAe;QACtB,OAAO,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAuB,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/I,CAAC;IAEO,iBAAiB,CAAC,iBAA4C;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAEtC,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;YACjC,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,QAAQ,SAAS,EAAE,CAAC;oBACnB,KAAK,UAAU;wBACd,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,MAAM;oBACP,KAAK,UAAU;wBACd,UAAU,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACjD,MAAM;oBACP,KAAK,cAAc;wBAClB,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC9C,MAAM;oBACP,KAAK,UAAU;wBACd,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACpC,MAAM;oBACP,KAAK,MAAM;wBACV,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC5B,MAAM;gBACR,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAEQ,OAAO,CAAC,YAAoD;QACpE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE5B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACnF,IAAI,CAAC,iBAAiB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAEQ,wBAAwB,CAAC,IAAY,EAAE,IAAmB,EAAE,KAAoB;QACxF,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAElD,iEAAiE;QACjE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACrC,OAAO;QACR,CAAC;QAED,MAAM,QAAQ,GAAG,IAA0B,CAAC;QAC5C,IAAI,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAEQ,MAAM;QACd,MAAM,iBAAiB,GAAG;YACzB,iBAAiB,EAAE,IAAI;YACvB,2BAA2B,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;YACnD,2BAA2B,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;SACnD,CAAC;QAEF,MAAM,YAAY,GAAG;YACpB,yBAAyB,EAAE,IAAI;YAC/B,yBAAyB,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ;YACtD,sBAAsB,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK;SAChD,CAAC;QAEF,OAAO,IAAI,CAAA;sBACS,QAAQ,CAAC,iBAAiB,CAAC;MAC3C,IAAI,CAAC,MAAM;YACZ,CAAC,CAAC,IAAI,CAAA,2CAA2C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,6DAA6D,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,WAAW;YACrK,CAAC,CAAC,OAAO;MACR,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,yCAAyC,IAAI,CAAC,QAAQ,MAAM,CAAC,CAAC,CAAC,OAAO;kBAC9E,QAAQ,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,kBAAkB;yBACnD,IAAI,CAAC,iBAAiB;;MAEzC,IAAI,CAAC,YAAY;YAClB,CAAC,CAAC,IAAI,CAAA;2BACgB,IAAI,CAAC,YAAY;mBACzB;YACd,CAAC,CAAC,OAAO;;GAEX,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACR,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/C,CAAC;;AAlHe,oBAAM,GAAG,CAAC,MAAM,CAAC,AAAX,CAAY;AAEN;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAuC;AACd;IAAnD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;+CAA4C;AACvC;IAAvD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;mDAAoD;AACxC;IAAlE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAkD;AACxF;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAwC;AACvB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAkD;AACjD;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAkD;AAClD;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAyC;AAElE;IAAhB,KAAK,EAAE;qDAA8C;AAC/B;IAAtB,KAAK,CAAC,MAAM,CAAC;mDAAwC;AAb1C,aAAa;IADzB,oBAAoB,CAAC,iBAAiB,CAAC;GAC3B,aAAa,CAoHzB","sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { guardedCustomElement } from '../utils/guarded-custom-element';\nimport { styles } from './sds-radio-group.styles';\nimport { SDS_SIZES } from '../types';\nimport { SDSEventDispatcherMixin } from '../mixins/sds-event-dispatcher-mixin';\n\ntype RadioGroupSize = Extract<SDS_SIZES, 'lg' | 'md' | 'sm'>;\nconst updatableRadioProps = ['disabled', 'errorMessage', 'readOnly', 'required', 'size'] as const;\ntype UpdatableRadioProp = (typeof updatableRadioProps)[number];\n\nimport '../sds-radio/sds-radio';\nimport '../sds-icon/sds-icon';\nimport '../sds-alert/sds-alert';\nimport { SDSRadio } from '../sds-radio/sds-radio';\n\n/**\n * TODO: Implement keyboard navigation behavior according to\n * https://www.w3.org/WAI/ARIA/apg/patterns/radio/\n */\n\nexport interface SDSRadioGroupProps {\n\tlegend?: string;\n\t'help-text'?: string;\n\t'error-message'?: string;\n\treadonly?: boolean;\n\tdirection?: 'column' | 'row';\n\tdisabled?: boolean;\n\tsize?: RadioGroupSize;\n\trequired?: boolean;\n}\n\n@guardedCustomElement('sds-radio-group')\nexport class SDSRadioGroup extends SDSEventDispatcherMixin(LitElement) {\n\tstatic override styles = [styles];\n\n\t@property({ type: String }) legend?: SDSRadioGroupProps['legend'];\n\t@property({ type: String, attribute: 'help-text' }) helpText?: SDSRadioGroupProps['help-text'];\n\t@property({ type: String, attribute: 'error-message' }) errorMessage?: SDSRadioGroupProps['error-message'];\n\t@property({ type: Boolean, attribute: 'readonly', reflect: true }) readOnly: SDSRadioGroupProps['readonly'] = false;\n\t@property({ type: String }) direction: 'column' | 'row' = 'column';\n\t@property({ type: Boolean, reflect: true }) disabled: SDSRadioGroupProps['disabled'] = false;\n\t@property({ type: Boolean, reflect: true }) required: SDSRadioGroupProps['required'] = false;\n\t@property({ type: String, reflect: true }) size: SDSRadioGroupProps['size'] = 'md';\n\n\t@state() private _selectedValue: string | null = null;\n\t@query('slot') private _slotElement!: HTMLSlotElement;\n\n\tprivate readonly _handleRadioChange = (event: Event): void => {\n\t\tconst target = event.composedPath().find((el) => el instanceof HTMLElement && el.tagName === 'SDS-RADIO') as HTMLElement & { value: string };\n\n\t\tif (target) {\n\t\t\tthis._selectedValue = target.getAttribute('value') || null;\n\t\t\tthis.dispatchSheriffEvent('sds-update');\n\t\t}\n\t};\n\n\tprivate _handleSlotChange = () => {\n\t\tthis._updateChildProps([...updatableRadioProps]);\n\t};\n\n\tprivate _getChildRadios(): SDSRadio[] {\n\t\treturn this._slotElement?.assignedElements({ flatten: true }).filter((element): element is SDSRadio => element.tagName === 'SDS-RADIO') ?? [];\n\t}\n\n\tprivate _updateChildProps(changedAttributes: Array<UpdatableRadioProp>) {\n\t\tconst radios = this._getChildRadios();\n\n\t\tfor (const childRadio of radios) {\n\t\t\tfor (const attribute of changedAttributes) {\n\t\t\t\tswitch (attribute) {\n\t\t\t\t\tcase 'readOnly':\n\t\t\t\t\t\tchildRadio.readOnly = this.readOnly;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'disabled':\n\t\t\t\t\t\tchildRadio.parentRequestDisabled = this.disabled;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'errorMessage':\n\t\t\t\t\t\tchildRadio.error = Boolean(this.errorMessage);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'required':\n\t\t\t\t\t\tchildRadio.required = this.required;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'size':\n\t\t\t\t\t\tchildRadio.size = this.size;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\toverride updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps);\n\n\t\tconst changedKeys = Array.from(changedProps.keys());\n\t\tif (changedKeys.includes('errorMessage') || changedKeys.includes('error-message')) {\n\t\t\tthis._updateChildProps(['errorMessage']);\n\t\t}\n\t}\n\n\toverride attributeChangedCallback(name: string, _old: string | null, value: string | null): void {\n\t\tsuper.attributeChangedCallback(name, _old, value);\n\n\t\t// DOM attribute for readonly has different casing than our types\n\t\tif (name === 'readonly') {\n\t\t\tthis._updateChildProps(['readOnly']);\n\t\t\treturn;\n\t\t}\n\n\t\tconst property = name as UpdatableRadioProp;\n\t\tif (updatableRadioProps.includes(property)) {\n\t\t\tthis._updateChildProps([property]);\n\t\t}\n\t}\n\n\toverride render() {\n\t\tconst radioGroupClasses = {\n\t\t\t'sds-radio-group': true,\n\t\t\t'sds-radio-group--readonly': this.readOnly ?? false,\n\t\t\t'sds-radio-group--disabled': this.disabled ?? false,\n\t\t};\n\n\t\tconst radioClasses = {\n\t\t\t'sds-radio-group__radios': true,\n\t\t\t'sds-radio-group--column': this.direction === 'column',\n\t\t\t'sds-radio-group--row': this.direction === 'row',\n\t\t};\n\n\t\treturn html`\n\t\t\t<fieldset class=\"${classMap(radioGroupClasses)}\">\n\t\t\t\t${this.legend\n\t\t\t\t\t? html`<legend class=\"sds-radio-group__legend\">${this.readOnly ? html`<sds-icon name=\"lock-material-filled\" size=\"md\"></sds-icon>` : nothing}${this.legend}</legend>`\n\t\t\t\t\t: nothing}\n\t\t\t\t${this.helpText ? html`<p class=\"sds-radio-group__help-text\">${this.helpText}</p>` : nothing}\n\t\t\t\t<div class=\"${classMap(radioClasses)}\" @change=${this._handleRadioChange}>\n\t\t\t\t\t<slot @slotchange=${this._handleSlotChange}></slot>\n\t\t\t\t</div>\n\t\t\t\t${this.errorMessage\n\t\t\t\t\t? html`<sds-alert variant=\"secondary\" data-palette=\"danger\">\n\t\t\t\t\t\t\t<p slot=\"message\">${this.errorMessage}</p>\n\t\t\t\t\t\t</sds-alert>`\n\t\t\t\t\t: nothing}\n\t\t\t</fieldset>\n\t\t`;\n\t}\n\n\tget value(): {} {\n\t\treturn { selectedValue: this._selectedValue };\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'sds-radio-group': SDSRadioGroup;\n\t}\n}\n"]}
@@ -15,7 +15,8 @@ export interface SDSSelectProps {
15
15
  value?: string;
16
16
  'default-value'?: string;
17
17
  }
18
- export declare class SDSSelect extends LitElement {
18
+ declare const SDSSelect_base: import("../mixins/types").Constructable<import("../mixins/sds-delegate-interaction-mixin").DelegateInteractionMixinInterface> & import("../mixins/types").Constructable<import("../mixins/sds-event-dispatcher-mixin").SDSEventDispatcherMixinInterface> & typeof LitElement;
19
+ export declare class SDSSelect extends SDSSelect_base {
19
20
  static styles: import("lit").CSSResult[];
20
21
  static formAssociated: boolean;
21
22
  readonly internals: ElementInternals;
@@ -55,9 +56,6 @@ export declare class SDSSelect extends LitElement {
55
56
  private readonly _handleFocus;
56
57
  private readonly _handleBlur;
57
58
  private readonly _handleKeyDown;
58
- focus(): void;
59
- blur(): void;
60
- click(): void;
61
59
  private renderFromLightDom;
62
60
  private renderOption;
63
61
  private renderOptgroup;
@@ -1 +1 @@
1
- {"version":3,"file":"sds-select.d.ts","sourceRoot":"","sources":["../../src/sds-select/sds-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAOhD,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,SAAU,SAAQ,UAAU;IAExC,OAAgB,MAAM,4BAAY;IAElC,MAAM,CAAC,cAAc,UAAQ;IAC7B,SAAgB,SAAS,EAAE,gBAAgB,CAAC;IAGD,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC1E,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAS;IAC7C,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAS;IACtB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAS;IACrE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAQ;IAE7D,OAAO,CAAC,OAAO,CAAqB;IAEtD,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;;IAOO,iBAAiB,IAAI,IAAI;IAczB,oBAAoB,IAAI,IAAI;IAK5B,YAAY;IAoBZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAUnD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,sBAAsB;IAM9B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAShC;IAEF,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,wBAAwB;IAOhC,iBAAiB;IAajB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAiB5B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAS7B;IAGc,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIZ,KAAK,IAAI,IAAI;IAK7B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;IAQb,MAAM;CA2Cf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,YAAY,EAAE,SAAS,CAAC;KACxB;CACD"}
1
+ {"version":3,"file":"sds-select.d.ts","sourceRoot":"","sources":["../../src/sds-select/sds-select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAQhD,OAAO,wBAAwB,CAAC;AAChC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;;AAED,qBACa,SAAU,SAAQ,cAAgE;IAE9F,OAAgB,MAAM,4BAAY;IAElC,MAAM,CAAC,cAAc,UAAQ;IAC7B,SAAgB,SAAS,EAAE,gBAAgB,CAAC;IAGD,IAAI,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACtB,YAAY,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC1E,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAS;IAC7C,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAS;IACtB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAS;IACrE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAQ;IAE5D,OAAO,CAAC,OAAO,CAAqB;IAEvD,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;;IAOO,iBAAiB,IAAI,IAAI;IAczB,oBAAoB,IAAI,IAAI;IAK5B,YAAY;IAoBZ,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAUnD,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,uBAAuB;IAoC/B,OAAO,CAAC,sBAAsB;IAM9B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAShC;IAEF,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,wBAAwB;IAOhC,iBAAiB;IAajB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAiB5B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAG3B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAI1B;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAS7B;IAGF,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;IAQb,MAAM;CA2Cf;AAED,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,qBAAqB;QAC9B,YAAY,EAAE,SAAS,CAAC;KACxB;CACD"}
@@ -10,9 +10,10 @@ import { classMap } from 'lit/directives/class-map.js';
10
10
  import { ifDefined } from 'lit/directives/if-defined.js';
11
11
  import { guardedCustomElement } from '../utils/guarded-custom-element';
12
12
  import { styles } from './sds-select.styles';
13
+ import { SDSDelegateInteractionMixin, SDSEventDispatcherMixin } from '../mixins';
13
14
  import '../sds-alert/sds-alert';
14
15
  import '../sds-icon/sds-icon';
15
- let SDSSelect = class SDSSelect extends LitElement {
16
+ let SDSSelect = class SDSSelect extends SDSDelegateInteractionMixin(SDSEventDispatcherMixin(LitElement)) {
16
17
  constructor() {
17
18
  super();
18
19
  this.disabled = false;
@@ -46,17 +47,17 @@ let SDSSelect = class SDSSelect extends LitElement {
46
47
  this.value = event.target.value;
47
48
  this._setFormValue(this.value);
48
49
  this.updateValidity();
49
- this.dispatchEvent(new CustomEvent('input', { bubbles: true, composed: true }));
50
- this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }));
50
+ this.dispatchSheriffEvent('input');
51
+ this.dispatchSheriffEvent('change');
51
52
  };
52
53
  this._handleFocus = (event) => {
53
54
  event.stopImmediatePropagation();
54
- this.dispatchEvent(new CustomEvent('focus', { bubbles: true, composed: true }));
55
+ this.dispatchSheriffEvent('focus');
55
56
  };
56
57
  this._handleBlur = (event) => {
57
58
  event.stopImmediatePropagation();
58
59
  this.updateValidity();
59
- this.dispatchEvent(new CustomEvent('blur', { bubbles: true, composed: true }));
60
+ this.dispatchSheriffEvent('blur');
60
61
  };
61
62
  this._handleKeyDown = (event) => {
62
63
  if (!this.readOnly)
@@ -193,19 +194,6 @@ let SDSSelect = class SDSSelect extends LitElement {
193
194
  this.value = this._defaultValue ?? '';
194
195
  this.updateValidity();
195
196
  }
196
- // Public methods
197
- focus() {
198
- if (!this.disabled && !this.readOnly && this.control)
199
- this.control.focus();
200
- }
201
- blur() {
202
- if (!this.disabled && !this.readOnly && this.control)
203
- this.control.blur();
204
- }
205
- click() {
206
- if (!this.disabled && !this.readOnly && this.control)
207
- this.control.click();
208
- }
209
197
  // Rendering helpers: mirror light DOM structure into the internal <select>
210
198
  renderFromLightDom() {
211
199
  const nodes = this.children ?? [];
@@ -243,7 +231,7 @@ let SDSSelect = class SDSSelect extends LitElement {
243
231
  return html `
244
232
  <div class="${classMap(selectClasses)}">
245
233
  ${this.label
246
- ? html ` <label for="select" class="sds-select__label"> ${this.readOnly ? html `<sds-icon name="lock-material-filled" size="m"></sds-icon>` : nothing} ${this.label} </label> `
234
+ ? html ` <label for="control" class="sds-select__label"> ${this.readOnly ? html `<sds-icon name="lock-material-filled" size="m"></sds-icon>` : nothing} ${this.label} </label> `
247
235
  : nothing}
248
236
  ${this.helpText ? html `<p class="sds-select__help-text">${this.helpText}</p>` : nothing}
249
237
 
@@ -252,7 +240,7 @@ let SDSSelect = class SDSSelect extends LitElement {
252
240
  </div>
253
241
 
254
242
  <select
255
- id="select"
243
+ id="control"
256
244
  class="sds-select__control"
257
245
  name=${ifDefined(this.name)}
258
246
  ?disabled=${this.disabled}
@@ -316,7 +304,7 @@ __decorate([
316
304
  property({ type: String, reflect: true })
317
305
  ], SDSSelect.prototype, "size", void 0);
318
306
  __decorate([
319
- query('#select')
307
+ query('#control')
320
308
  ], SDSSelect.prototype, "control", void 0);
321
309
  SDSSelect = __decorate([
322
310
  guardedCustomElement('sds-select')