@brightspace-ui/core 3.267.0 → 3.267.3

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 (112) hide show
  1. package/components/alert/alert-toast.js +98 -102
  2. package/components/alert/alert.js +109 -113
  3. package/components/backdrop/backdrop-dirty-overlay.js +13 -17
  4. package/components/backdrop/backdrop-loading.js +105 -109
  5. package/components/backdrop/backdrop.js +50 -54
  6. package/components/breadcrumbs/breadcrumb-current-page.js +19 -23
  7. package/components/breadcrumbs/breadcrumb.js +50 -54
  8. package/components/breadcrumbs/breadcrumbs.js +34 -38
  9. package/components/button/button-add.js +156 -164
  10. package/components/button/button-copy-mixin.js +9 -11
  11. package/components/button/button-copy.js +15 -19
  12. package/components/button/button-icon.js +110 -114
  13. package/components/button/button-move.js +153 -157
  14. package/components/button/button-split-item.js +16 -20
  15. package/components/button/button-split.js +70 -74
  16. package/components/button/button-subtle-copy.js +17 -19
  17. package/components/button/button-subtle.js +145 -149
  18. package/components/button/button-toggle.js +25 -29
  19. package/components/button/button.js +70 -74
  20. package/components/button/floating-buttons.js +63 -67
  21. package/components/calendar/calendar.js +244 -248
  22. package/components/card/card-content-meta.js +13 -15
  23. package/components/card/card-content-title.js +9 -11
  24. package/components/card/card-footer-link.js +76 -80
  25. package/components/card/card-loading-shimmer.js +35 -39
  26. package/components/card/card.js +188 -192
  27. package/components/collapsible-panel/collapsible-panel-group.js +17 -21
  28. package/components/collapsible-panel/collapsible-panel-summary-item.js +27 -31
  29. package/components/collapsible-panel/collapsible-panel.js +258 -262
  30. package/components/count-badge/count-badge-icon.js +12 -16
  31. package/components/count-badge/count-badge-mixin.js +124 -128
  32. package/components/count-badge/count-badge.js +2 -4
  33. package/components/description-list/description-list-wrapper.js +27 -31
  34. package/components/dialog/dialog-confirm.js +55 -59
  35. package/components/dialog/dialog-fullscreen.js +128 -132
  36. package/components/dialog/dialog-mixin.js +39 -41
  37. package/components/dialog/dialog.js +61 -65
  38. package/components/dropdown/dropdown-button-subtle.js +21 -25
  39. package/components/dropdown/dropdown-button.js +31 -35
  40. package/components/dropdown/dropdown-context-menu.js +28 -31
  41. package/components/dropdown/dropdown-menu.js +27 -31
  42. package/components/dropdown/dropdown-more.js +23 -26
  43. package/components/dropdown/dropdown-opener-mixin.js +44 -46
  44. package/components/dropdown/dropdown-popover-mixin.js +155 -159
  45. package/components/dropdown/dropdown-tabs.js +5 -7
  46. package/components/dropdown/dropdown.js +1 -3
  47. package/components/empty-state/empty-state-action-button.js +18 -22
  48. package/components/empty-state/empty-state-action-link.js +14 -18
  49. package/components/empty-state/empty-state-illustrated.js +21 -25
  50. package/components/empty-state/empty-state-simple.js +8 -12
  51. package/components/expand-collapse/expand-collapse-content.js +48 -52
  52. package/components/filter/filter-dimension-set-date-text-value.js +34 -36
  53. package/components/filter/filter-dimension-set-date-time-range-value.js +45 -47
  54. package/components/filter/filter-dimension-set-empty-state.js +17 -19
  55. package/components/filter/filter-dimension-set-value.js +27 -29
  56. package/components/filter/filter-dimension-set.js +65 -67
  57. package/components/filter/filter-overflow-group.js +15 -19
  58. package/components/filter/filter-tags.js +16 -19
  59. package/components/filter/filter.js +115 -119
  60. package/components/focus-trap/focus-trap.js +17 -21
  61. package/components/form/form-element-mixin.js +33 -35
  62. package/components/form/form-error-summary.js +37 -42
  63. package/components/form/form.js +33 -37
  64. package/components/hierarchical-view/hierarchical-view-mixin.js +76 -80
  65. package/components/hierarchical-view/hierarchical-view.js +5 -7
  66. package/components/html-block/html-block.js +45 -49
  67. package/components/icons/icon-custom.js +20 -24
  68. package/components/icons/icon.js +20 -24
  69. package/components/icons/slotted-icon-mixin.js +16 -18
  70. package/components/inputs/input-checkbox-group.js +34 -38
  71. package/components/inputs/input-checkbox.js +106 -110
  72. package/components/inputs/input-color.js +142 -148
  73. package/components/inputs/input-date-range.js +90 -94
  74. package/components/inputs/input-date-time-range-to.js +70 -74
  75. package/components/inputs/input-date-time-range.js +110 -115
  76. package/components/inputs/input-date-time.js +75 -79
  77. package/components/inputs/input-date.js +101 -105
  78. package/components/inputs/input-fieldset.js +37 -43
  79. package/components/inputs/input-group.js +10 -12
  80. package/components/inputs/input-inline-help.js +4 -6
  81. package/components/inputs/input-number.js +112 -118
  82. package/components/inputs/input-percent.js +52 -58
  83. package/components/inputs/input-radio-group.js +45 -49
  84. package/components/inputs/input-radio-spacer.js +11 -13
  85. package/components/inputs/input-radio.js +62 -66
  86. package/components/inputs/input-search.js +63 -68
  87. package/components/inputs/input-styles.js +140 -3
  88. package/components/inputs/input-text.js +245 -251
  89. package/components/inputs/input-textarea.js +128 -132
  90. package/components/inputs/input-time-range.js +100 -104
  91. package/components/inputs/input-time.js +107 -113
  92. package/components/link/link-mixin.js +37 -41
  93. package/components/link/link.js +113 -119
  94. package/components/list/list-controls.js +25 -29
  95. package/components/list/list-item-button-mixin.js +10 -12
  96. package/components/list/list-item-checkbox-mixin.js +35 -37
  97. package/components/list/list-item-content.js +33 -35
  98. package/components/list/list-item-drag-drop-mixin.js +45 -47
  99. package/components/list/list-item-drag-handle.js +80 -84
  100. package/components/list/list-item-drag-image.js +77 -81
  101. package/components/list/list-item-expand-collapse-mixin.js +17 -19
  102. package/components/list/list-item-generic-layout.js +222 -226
  103. package/components/list/list-item-link-mixin.js +10 -12
  104. package/components/list/list-item-mixin.js +68 -70
  105. package/components/list/list-item-nav-mixin.js +17 -19
  106. package/components/list/list-item-placement-marker.js +65 -67
  107. package/components/list/list-item-role-mixin.js +9 -11
  108. package/components/list/list-item.js +7 -9
  109. package/components/list/list.js +121 -125
  110. package/components/loading-spinner/loading-spinner.js +93 -97
  111. package/custom-elements.json +1920 -6694
  112. package/package.json +3 -2
@@ -80,124 +80,118 @@ function roundPrecisely(val, maxFractionDigits) {
80
80
  */
81
81
  class InputNumber extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(LocalizeCoreElement(LitElement))))) {
82
82
 
83
- static get properties() {
84
- return {
85
- /**
86
- * Specifies which types of values [can be autofilled](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) by the browser.
87
- * @type {string}
88
- */
89
- autocomplete: { type: String },
90
- /**
91
- * @ignore
92
- */
93
- // eslint-disable-next-line lit/no-native-attributes
94
- autofocus: { type: Boolean },
95
- /**
96
- * Disables the input
97
- * @type {boolean}
98
- */
99
- disabled: { type: Boolean },
100
- /**
101
- * ADVANCED: Hide the alert icon when input is invalid
102
- * @type {boolean}
103
- */
104
- hideInvalidIcon: { attribute: 'hide-invalid-icon', type: Boolean, reflect: true },
105
- /**
106
- * Restricts the maximum width of the input box without restricting the width of the label
107
- * @type {string}
108
- */
109
- inputWidth: { attribute: 'input-width', type: String },
110
- /**
111
- * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
112
- * @type {boolean}
113
- */
114
- labelHidden: { type: Boolean, attribute: 'label-hidden' },
115
- /**
116
- * Maximum value allowed
117
- * @type {number}
118
- */
119
- max: { type: Number },
120
- /**
121
- * Indicates whether the max value is exclusive
122
- * @type {boolean}
123
- */
124
- maxExclusive: { type: Boolean, attribute: 'max-exclusive' },
125
- /**
126
- * Maximum number of digits allowed after the decimal place. Must be between 0 and 20 and greater than or equal to `minFractionDigits`. Default is Greater of `minFractionDigits` or `3`.
127
- * @type {number}
128
- */
129
- maxFractionDigits: { type: Number, attribute: 'max-fraction-digits' },
130
- /**
131
- * Minimum value allowed
132
- * @type {number}
133
- */
134
- min: { type: Number },
135
- /**
136
- * Indicates whether the min value is exclusive
137
- * @type {boolean}
138
- */
139
- minExclusive: { type: Boolean, attribute: 'min-exclusive' },
140
- /**
141
- * Minimum number of digits allowed after the decimal place. Must be between 0 and 20 and less than or equal to `maxFractionDigits`. Default is `0`.
142
- * @type {number}
143
- */
144
- minFractionDigits: { type: Number, attribute: 'min-fraction-digits' },
145
- /**
146
- * Indicates that a value is required
147
- * @type {boolean}
148
- */
149
- required: { type: Boolean },
150
- /**
151
- * @ignore
152
- */
153
- trailingZeroes: { type: Boolean, attribute: 'trailing-zeroes' },
154
- /**
155
- * Unit associated with the input value, displayed next to input and announced as part of the label
156
- * @type {string}
157
- */
158
- unit: { type: String },
159
- /**
160
- * ACCESSIBILITY: Label for the unit, which is only picked up by screenreaders. Required if `unit` is used.
161
- * @type {string}
162
- */
163
- unitLabel: { attribute: 'unit-label', type: String },
164
- /**
165
- * Value of the input
166
- * @type {number}
167
- */
168
- value: { type: Number, converter: numberConverter },
169
- /**
170
- * Alignment of the value text within the input
171
- * @type {'start'|'end'}
172
- */
173
- valueAlign: { attribute: 'value-align', type: String },
174
- /**
175
- * @ignore
176
- */
177
- valueTrailingZeroes: { type: String, attribute: 'value-trailing-zeroes' },
178
- _afterSlotWidth: { state: true },
179
- _hintType: { state: true },
180
- _formattedValue: { state: true }
181
- };
182
- }
183
-
184
- static get styles() {
185
- return [ super.styles,
186
- css`
187
- :host {
188
- display: inline-block;
189
- position: var(--d2l-input-position, relative); /* overridden by sticky headers in grades */
190
- width: 100%;
191
- }
192
- :host([hidden]) {
193
- display: none;
194
- }
195
- d2l-input-text:not([skeleton]) {
196
- width: auto;
197
- }
198
- `
199
- ];
200
- }
83
+ static properties = {
84
+ /**
85
+ * Specifies which types of values [can be autofilled](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) by the browser.
86
+ * @type {string}
87
+ */
88
+ autocomplete: { type: String },
89
+ /**
90
+ * @ignore
91
+ */
92
+ // eslint-disable-next-line lit/no-native-attributes
93
+ autofocus: { type: Boolean },
94
+ /**
95
+ * Disables the input
96
+ * @type {boolean}
97
+ */
98
+ disabled: { type: Boolean },
99
+ /**
100
+ * ADVANCED: Hide the alert icon when input is invalid
101
+ * @type {boolean}
102
+ */
103
+ hideInvalidIcon: { attribute: 'hide-invalid-icon', type: Boolean, reflect: true },
104
+ /**
105
+ * Restricts the maximum width of the input box without restricting the width of the label
106
+ * @type {string}
107
+ */
108
+ inputWidth: { attribute: 'input-width', type: String },
109
+ /**
110
+ * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
111
+ * @type {boolean}
112
+ */
113
+ labelHidden: { type: Boolean, attribute: 'label-hidden' },
114
+ /**
115
+ * Maximum value allowed
116
+ * @type {number}
117
+ */
118
+ max: { type: Number },
119
+ /**
120
+ * Indicates whether the max value is exclusive
121
+ * @type {boolean}
122
+ */
123
+ maxExclusive: { type: Boolean, attribute: 'max-exclusive' },
124
+ /**
125
+ * Maximum number of digits allowed after the decimal place. Must be between 0 and 20 and greater than or equal to `minFractionDigits`. Default is Greater of `minFractionDigits` or `3`.
126
+ * @type {number}
127
+ */
128
+ maxFractionDigits: { type: Number, attribute: 'max-fraction-digits' },
129
+ /**
130
+ * Minimum value allowed
131
+ * @type {number}
132
+ */
133
+ min: { type: Number },
134
+ /**
135
+ * Indicates whether the min value is exclusive
136
+ * @type {boolean}
137
+ */
138
+ minExclusive: { type: Boolean, attribute: 'min-exclusive' },
139
+ /**
140
+ * Minimum number of digits allowed after the decimal place. Must be between 0 and 20 and less than or equal to `maxFractionDigits`. Default is `0`.
141
+ * @type {number}
142
+ */
143
+ minFractionDigits: { type: Number, attribute: 'min-fraction-digits' },
144
+ /**
145
+ * Indicates that a value is required
146
+ * @type {boolean}
147
+ */
148
+ required: { type: Boolean },
149
+ /**
150
+ * @ignore
151
+ */
152
+ trailingZeroes: { type: Boolean, attribute: 'trailing-zeroes' },
153
+ /**
154
+ * Unit associated with the input value, displayed next to input and announced as part of the label
155
+ * @type {string}
156
+ */
157
+ unit: { type: String },
158
+ /**
159
+ * ACCESSIBILITY: Label for the unit, which is only picked up by screenreaders. Required if `unit` is used.
160
+ * @type {string}
161
+ */
162
+ unitLabel: { attribute: 'unit-label', type: String },
163
+ /**
164
+ * Value of the input
165
+ * @type {number}
166
+ */
167
+ value: { type: Number, converter: numberConverter },
168
+ /**
169
+ * Alignment of the value text within the input
170
+ * @type {'start'|'end'}
171
+ */
172
+ valueAlign: { attribute: 'value-align', type: String },
173
+ /**
174
+ * @ignore
175
+ */
176
+ valueTrailingZeroes: { type: String, attribute: 'value-trailing-zeroes' },
177
+ _afterSlotWidth: { state: true },
178
+ _hintType: { state: true },
179
+ _formattedValue: { state: true }
180
+ };
181
+
182
+ static styles = [super.styles, css`
183
+ :host {
184
+ display: inline-block;
185
+ position: var(--d2l-input-position, relative); /* overridden by sticky headers in grades */
186
+ width: 100%;
187
+ }
188
+ :host([hidden]) {
189
+ display: none;
190
+ }
191
+ d2l-input-text:not([skeleton]) {
192
+ width: auto;
193
+ }
194
+ `];
201
195
 
202
196
  constructor() {
203
197
  super();
@@ -15,65 +15,59 @@ import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
15
15
  */
16
16
  class InputPercent extends FocusMixin(LabelledMixin(SkeletonMixin(FormElementMixin(LocalizeCoreElement(LitElement))))) {
17
17
 
18
- static get properties() {
19
- return {
20
- /**
21
- * @ignore
22
- */
23
- // eslint-disable-next-line lit/no-native-attributes
24
- autofocus: { type: Boolean },
25
- /**
26
- * Disables the input
27
- * @type {boolean}
28
- */
29
- disabled: { type: Boolean },
30
- /**
31
- * Restricts the maximum width of the input box without restricting the width of the label.
32
- * @type {string}
33
- */
34
- inputWidth: { attribute: 'input-width', type: String },
35
- /**
36
- * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
37
- * @type {boolean}
38
- */
39
- labelHidden: { type: Boolean, attribute: 'label-hidden' },
40
- /**
41
- * Maximum number of decimal values to show (rounds value up or down).
42
- * @type {number}
43
- */
44
- maxFractionDigits: { type: Number, attribute: 'max-fraction-digits' },
45
- /**
46
- * Minimum number of decimal values to show.
47
- * @type {number}
48
- */
49
- minFractionDigits: { type: Number, attribute: 'min-fraction-digits' },
50
- /**
51
- * Indicates that a value is required
52
- * @type {boolean}
53
- */
54
- required: { type: Boolean },
55
- /**
56
- * Value of the input
57
- * @type {number}
58
- */
59
- value: { type: Number }
60
- };
61
- }
18
+ static properties = {
19
+ /**
20
+ * @ignore
21
+ */
22
+ // eslint-disable-next-line lit/no-native-attributes
23
+ autofocus: { type: Boolean },
24
+ /**
25
+ * Disables the input
26
+ * @type {boolean}
27
+ */
28
+ disabled: { type: Boolean },
29
+ /**
30
+ * Restricts the maximum width of the input box without restricting the width of the label.
31
+ * @type {string}
32
+ */
33
+ inputWidth: { attribute: 'input-width', type: String },
34
+ /**
35
+ * Hides the label visually. Hidden labels are still read by screen readers so make sure to set an appropriate label.
36
+ * @type {boolean}
37
+ */
38
+ labelHidden: { type: Boolean, attribute: 'label-hidden' },
39
+ /**
40
+ * Maximum number of decimal values to show (rounds value up or down).
41
+ * @type {number}
42
+ */
43
+ maxFractionDigits: { type: Number, attribute: 'max-fraction-digits' },
44
+ /**
45
+ * Minimum number of decimal values to show.
46
+ * @type {number}
47
+ */
48
+ minFractionDigits: { type: Number, attribute: 'min-fraction-digits' },
49
+ /**
50
+ * Indicates that a value is required
51
+ * @type {boolean}
52
+ */
53
+ required: { type: Boolean },
54
+ /**
55
+ * Value of the input
56
+ * @type {number}
57
+ */
58
+ value: { type: Number }
59
+ };
62
60
 
63
- static get styles() {
64
- return [ super.styles,
65
- css`
66
- :host {
67
- display: inline-block;
68
- position: relative;
69
- width: 100%;
70
- }
71
- :host([hidden]) {
72
- display: none;
73
- }
74
- `
75
- ];
76
- }
61
+ static styles = [super.styles, css`
62
+ :host {
63
+ display: inline-block;
64
+ position: relative;
65
+ width: 100%;
66
+ }
67
+ :host([hidden]) {
68
+ display: none;
69
+ }
70
+ `];
77
71
 
78
72
  constructor() {
79
73
  super();
@@ -13,57 +13,53 @@ import { SkeletonMixin } from '../skeleton/skeleton-mixin.js';
13
13
  */
14
14
  class InputRadioGroup extends PropertyRequiredMixin(SkeletonMixin(FormElementMixin(LitElement))) {
15
15
 
16
- static get properties() {
17
- return {
18
- /**
19
- * Display the radio buttons horizontally
20
- * @type {boolean}
21
- */
22
- horizontal: { type: Boolean, reflect: true },
23
- /**
24
- * REQUIRED: Label for the group of radio inputs
25
- * @type {string}
26
- */
27
- label: { required: true, type: String },
28
- /**
29
- * Hides the label visually
30
- * @type {boolean}
31
- */
32
- labelHidden: { attribute: 'label-hidden', reflect: true, type: Boolean },
33
- /**
34
- * Indicates that a value is required
35
- * @type {boolean}
36
- */
37
- required: { type: Boolean, reflect: true }
38
- };
39
- }
16
+ static properties = {
17
+ /**
18
+ * Display the radio buttons horizontally
19
+ * @type {boolean}
20
+ */
21
+ horizontal: { type: Boolean, reflect: true },
22
+ /**
23
+ * REQUIRED: Label for the group of radio inputs
24
+ * @type {string}
25
+ */
26
+ label: { required: true, type: String },
27
+ /**
28
+ * Hides the label visually
29
+ * @type {boolean}
30
+ */
31
+ labelHidden: { attribute: 'label-hidden', reflect: true, type: Boolean },
32
+ /**
33
+ * Indicates that a value is required
34
+ * @type {boolean}
35
+ */
36
+ required: { type: Boolean, reflect: true }
37
+ };
40
38
 
41
- static get styles() {
42
- return [super.styles, inputLabelStyles, css`
43
- :host {
44
- display: block;
45
- }
46
- :host([hidden]) {
47
- display: none;
48
- }
49
- div[role="radiogroup"] {
50
- display: flex;
51
- flex-direction: column;
52
- gap: 0.6rem;
53
- }
54
- :host([horizontal]) div[role="radiogroup"] {
55
- flex-direction: row;
56
- flex-wrap: wrap;
57
- }
39
+ static styles = [super.styles, inputLabelStyles, css`
40
+ :host {
41
+ display: block;
42
+ }
43
+ :host([hidden]) {
44
+ display: none;
45
+ }
46
+ div[role="radiogroup"] {
47
+ display: flex;
48
+ flex-direction: column;
49
+ gap: 0.6rem;
50
+ }
51
+ :host([horizontal]) div[role="radiogroup"] {
52
+ flex-direction: row;
53
+ flex-wrap: wrap;
54
+ }
58
55
 
59
- .d2l-input-label[hidden] {
60
- display: none;
61
- }
62
- ::slotted(:not(d2l-input-radio)) {
63
- display: none;
64
- }
65
- `];
66
- }
56
+ .d2l-input-label[hidden] {
57
+ display: none;
58
+ }
59
+ ::slotted(:not(d2l-input-radio)) {
60
+ display: none;
61
+ }
62
+ `];
67
63
 
68
64
  constructor() {
69
65
  super();
@@ -6,19 +6,17 @@ import { css, html, LitElement } from 'lit';
6
6
  */
7
7
  class InputRadioSpacer extends LitElement {
8
8
 
9
- static get styles() {
10
- return css`
11
- :host {
12
- box-sizing: border-box;
13
- display: block;
14
- margin-bottom: 0.9rem;
15
- padding-inline-start: 1.7rem;
16
- }
17
- :host(.d2l-input-inline-help) {
18
- margin-bottom: 0.9rem !important;
19
- }
20
- `;
21
- }
9
+ static styles = css`
10
+ :host {
11
+ box-sizing: border-box;
12
+ display: block;
13
+ margin-bottom: 0.9rem;
14
+ padding-inline-start: 1.7rem;
15
+ }
16
+ :host(.d2l-input-inline-help) {
17
+ margin-bottom: 0.9rem !important;
18
+ }
19
+ `;
22
20
 
23
21
  render() {
24
22
  return html`<slot></slot>`;
@@ -18,73 +18,69 @@ import { styleMap } from 'lit/directives/style-map.js';
18
18
  */
19
19
  class InputRadio extends InputInlineHelpMixin(SkeletonMixin(FocusMixin(PropertyRequiredMixin(LitElement)))) {
20
20
 
21
- static get properties() {
22
- return {
23
- /**
24
- * Checked state
25
- * @type {boolean}
26
- */
27
- checked: { type: Boolean, reflect: true },
28
- /**
29
- * ACCESSIBILITY: Additional information communicated to screenreader users when focusing on the input
30
- * @type {string}
31
- */
32
- description: { type: String },
33
- /**
34
- * Disables the input
35
- * @type {boolean}
36
- */
37
- disabled: { type: Boolean, reflect: true },
38
- /**
39
- * Tooltip text displayed when the input is disabled
40
- * @type {string}
41
- */
42
- disabledTooltip: { type: String, attribute: 'disabled-tooltip' },
43
- /**
44
- * REQUIRED: Label for the input
45
- * @type {string}
46
- */
47
- label: { required: true, type: String },
48
- /**
49
- * Hides the supporting slot when unchecked
50
- * @type {boolean}
51
- */
52
- supportingHiddenWhenUnchecked: { type: Boolean, attribute: 'supporting-hidden-when-unchecked', reflect: true },
53
- /**
54
- * Value of the input
55
- * @type {string}
56
- */
57
- value: { type: String },
58
- _checked: { state: true },
59
- _focusable: { state: true },
60
- _hasSupporting: { state: true },
61
- _horizontal: { state: true },
62
- _isHovered: { state: true },
63
- _invalid: { state: true }
64
- };
65
- }
21
+ static properties = {
22
+ /**
23
+ * Checked state
24
+ * @type {boolean}
25
+ */
26
+ checked: { type: Boolean, reflect: true },
27
+ /**
28
+ * ACCESSIBILITY: Additional information communicated to screenreader users when focusing on the input
29
+ * @type {string}
30
+ */
31
+ description: { type: String },
32
+ /**
33
+ * Disables the input
34
+ * @type {boolean}
35
+ */
36
+ disabled: { type: Boolean, reflect: true },
37
+ /**
38
+ * Tooltip text displayed when the input is disabled
39
+ * @type {string}
40
+ */
41
+ disabledTooltip: { type: String, attribute: 'disabled-tooltip' },
42
+ /**
43
+ * REQUIRED: Label for the input
44
+ * @type {string}
45
+ */
46
+ label: { required: true, type: String },
47
+ /**
48
+ * Hides the supporting slot when unchecked
49
+ * @type {boolean}
50
+ */
51
+ supportingHiddenWhenUnchecked: { type: Boolean, attribute: 'supporting-hidden-when-unchecked', reflect: true },
52
+ /**
53
+ * Value of the input
54
+ * @type {string}
55
+ */
56
+ value: { type: String },
57
+ _checked: { state: true },
58
+ _focusable: { state: true },
59
+ _hasSupporting: { state: true },
60
+ _horizontal: { state: true },
61
+ _isHovered: { state: true },
62
+ _invalid: { state: true }
63
+ };
66
64
 
67
- static get styles() {
68
- return [super.styles, radioStyles, css`
69
- :host {
70
- display: block;
71
- }
72
- :host([hidden]) {
73
- display: none;
74
- }
75
- .d2l-input-radio-label {
76
- cursor: default;
77
- margin-block-end: 0;
78
- }
79
- .d2l-input-inline-help,
80
- .d2l-input-radio-supporting {
81
- margin-inline-start: 1.7rem;
82
- }
83
- .d2l-input-radio-supporting {
84
- margin-block-start: 0.6rem;
85
- }
86
- `];
87
- }
65
+ static styles = [super.styles, radioStyles, css`
66
+ :host {
67
+ display: block;
68
+ }
69
+ :host([hidden]) {
70
+ display: none;
71
+ }
72
+ .d2l-input-radio-label {
73
+ cursor: default;
74
+ margin-block-end: 0;
75
+ }
76
+ .d2l-input-inline-help,
77
+ .d2l-input-radio-supporting {
78
+ margin-inline-start: 1.7rem;
79
+ }
80
+ .d2l-input-radio-supporting {
81
+ margin-block-start: 0.6rem;
82
+ }
83
+ `];
88
84
 
89
85
  constructor() {
90
86
  super();